[FFmpeg-devel] DSP function ARM NEON patches for hevc
Michael Niedermayer
michael at niedermayer.cc
Mon Feb 16 18:54:20 CET 2015
On Mon, Feb 16, 2015 at 12:47:36PM +0000, Tomperi Seppo wrote:
> More NEON optimizations for testing. fate-hevc passes on Tegra K1, but these haven't been tested for NEON clobbering.
>
> -Seppo
>
> ________________________________________
> From: Tomperi Seppo
> Sent: Monday, February 16, 2015 1:30 PM
> To: Michael Niedermayer
> Cc: Michael Niedermayer; FFmpeg development discussions and patches; Mickaël Raulet
> Subject: RE: [FFmpeg-devel] DSP function ARM NEON patches for hevc
>
> Hi Michael,
>
> Here is a totally shot in a dark fix attempt for NEON register clobbering for deblocking. Could you test it with qemu and check if it works.
>
>
> -Seppo
>
> ________________________________________
> From: Michael Niedermayer [michael at niedermayer.cc]
> Sent: Monday, February 16, 2015 3:28 AM
> To: Tomperi Seppo
> Cc: Michael Niedermayer; FFmpeg development discussions and patches; Mickaël Raulet
> Subject: Re: [FFmpeg-devel] DSP function ARM NEON patches for hevc
>
> Hi
>
> On Sun, Feb 15, 2015 at 08:31:32PM +0000, Tomperi Seppo wrote:
> > Hi!
> >
> > The reason is chroma deblocking which is using q4 without pushing it to stack. :/
> > Unfortunately I am in Geneve this week and don't have ARM linux board with me so it is not easy to test.
> >
> > Mickael Raulet: maybe guys at INSA could run tests this week if I make a fix? Could you ask?
>
> If they cant, then i probably can test it too if its a patch which
> applies cleanly to ffmpeg and testing fate-hevc with
> --enable-neon-clobber-test under qemu is what is needed
> i could test on a arm board too if needed
>
>
> >
> > I also have SAO, qpel and epel NEON patches for latest FFmpeg. They pass fate-hevc on Jetson TK1, but should be iOS and clobber checked.
> >
> > -Seppo
> >
> >
> > ________________________________________
> > From: Michael Niedermayer [michaelni at gmx.at]
> > Sent: Friday, February 13, 2015 5:38 PM
> > To: FFmpeg development discussions and patches
> > Cc: Tomperi Seppo; Mickaël Raulet
> > Subject: Re: [FFmpeg-devel] DSP function ARM NEON patches for hevc
> >
> > On Thu, Feb 05, 2015 at 02:22:28PM +0100, Mickaël Raulet wrote:
> > > Michael,
> > >
> > > Please find some commits that can be cherry picked from
> > > https://github.com/OpenHEVC/FFmpeg/commits/ffmpeg_patch
> > >
> >
> > > Optimized deblocking filter (8bits only)
> > > 1b9ee47d2f43b0a029a9468233626102eb1473b8
> >
> > this breaks the neon clobber test see:
> > fate.ffmpeg.org/report.cgi?time=20150211030204&slot=armv7l-panda-gcc4.6-cortexa8-clobber
> >
> > [...]
> > --
> > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> >
> > The worst form of inequality is to try to make unequal things equal.
> > -- Aristotle
> >
>
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Opposition brings concord. Out of discord comes the fairest harmony.
> -- Heraclitus
> Makefile | 3
> hevcdsp_init_neon.c | 159 ++++++++
> hevcdsp_qpel_neon.S | 999 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 1160 insertions(+), 1 deletion(-)
> 9fb0b3c33edf085845b7a0fba3ca77d1ba55dd6c 0001-hevcdsp-ARM-NEON-optimized-qpel-functions.patch
> From ce06cb2bea4b051995608b11651b185e7a825a4c Mon Sep 17 00:00:00 2001
> From: Seppo Tomperi <seppo.tomperi at vtt.fi>
> Date: Wed, 11 Feb 2015 10:20:26 +0000
> Subject: [PATCH] hevcdsp: ARM NEON optimized qpel functions
>
> ---
> libavcodec/arm/Makefile | 3 +-
> libavcodec/arm/hevcdsp_init_neon.c | 159 ++++++
> libavcodec/arm/hevcdsp_qpel_neon.S | 999 +++++++++++++++++++++++++++++++++++++
> 3 files changed, 1160 insertions(+), 1 deletion(-)
> create mode 100644 libavcodec/arm/hevcdsp_qpel_neon.S
seems to fail building:
libavformat/utils.o
CC libavcodec/arm/hevcdsp_init_neon.o
AS libavcodec/arm/hevcdsp_qpel_neon.o
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S: Assembler messages:
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:992: Error: expected } -- `vld1.32 {d0[0]d0[1]d1[0]d1[1]},[r2],r3'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:992: Error: Neon double or quad precision register expected -- `vld1.32 {},[r2],r3'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:992: Error: Neon double or quad precision register expected -- `vld1.32 {},[r2],r3'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:992: Error: Neon double or quad precision register expected -- `vld1.32 {},[r2],r3'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:992: Error: expected } -- `vst1.32 {d0[0]d0[1]d1[0]d1[1]},[r0],r1'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:992: Error: Neon double or quad precision register expected -- `vst1.32 {},[r0],r1'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:992: Error: Neon double or quad precision register expected -- `vst1.32 {},[r0],r1'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:992: Error: Neon double or quad precision register expected -- `vst1.32 {},[r0],r1'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:994: Error: expected } -- `vld1.32 {d1[0]d2},[r2]'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:994: Error: Neon double or quad precision register expected -- `vld1.32 {},[r2]'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:994: Error: expected } -- `vst1.32 {d1[0]d2},[r0]'
ffmpeg/libavcodec/arm/hevcdsp_qpel_neon.S:994: Error: Neon double or quad precision register expected -- `vst1.32 {},[r0]'
make: *** [libavcodec/arm/hevcdsp_qpel_neon.o] Error 1
make: *** Waiting for unfinished jobs....
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The real ebay dictionary, page 1
"Used only once" - "Some unspecified defect prevented a second use"
"In good condition" - "Can be repaird by experienced expert"
"As is" - "You wouldnt want it even if you were payed for it, if you knew ..."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150216/c6834d73/attachment.asc>
More information about the ffmpeg-devel
mailing list