[FFmpeg-devel] [RFC][PATCHv2] swscale: NEON optimized unscaled rgba to nv12 conversion

Michael Niedermayer michaelni at gmx.at
Mon Dec 16 01:22:31 CET 2013


On Sat, Dec 14, 2013 at 03:31:42PM +0800, Yu Xiaolei wrote:
> On 12/9/2013 10:38 AM, Michael Niedermayer wrote:
> > On Sat, Dec 07, 2013 at 02:42:55PM +0800, Yu Xiaolei wrote:
> >> On Wed, Dec 4, 2013 at 7:54 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> >>> On Wed, Dec 04, 2013 at 02:57:30PM +0800, Yu Xiaolei wrote:
> >>>> Added copyright headers.
> >>>>
> >>>> RGB2YUV coeffs are loaded from SwsContext, but signs are still hardcoded.
> >>>> If this is not acceptable, I will rewrite it using multiply by scalar
> >>>> at the cost of several more instructions (widening operations) per
> >>>> 16x2 block.
> >>>>
> >>>
> >>>> Conversion is done in unsigned 16bit math. There will be rounding
> >>>> errors compared to c implementation.
> >>>
> >>> then SWS_ACCURATE_RND should be checked before using the neon code
> >>>
> >>
> >> Added 32-bit code path.
> >> 16-bit code path is rewritten using multiply-by-scalar to allow code
> >> sharing with 32-bit path.
> >> As a result signs are no longer hardcoded.
> >>
> >> get_unscaled_swscale_neon will select 16-bit or 32-bit routine based
> >> on SWS_ACCURATE_RND
> >
> > i wanted to test it but it seems there are some stray newlines in
> > the patch
> >
> > Applying: swscale: NEON optimized unscaled rgba to nv12 conversion
> > fatal: corrupt patch at line 573
> >
> 
> Sorry, I had a misconfigured mail client.
> Reposting.
> 
> 
> Signed-off-by: Yu Xiaolei <dreifachstein at gmail.com>
> ---
>  libswscale/arm/Makefile              |    5 +
>  libswscale/arm/rgb2yuv_neon_16.S     |   81 ++++++++++
>  libswscale/arm/rgb2yuv_neon_32.S     |  119 ++++++++++++++
>  libswscale/arm/rgb2yuv_neon_common.S |  292 ++++++++++++++++++++++++++++++++++
>  libswscale/arm/swscale_unscaled.c    |   80 +++++++++
>  libswscale/swscale_internal.h        |    1 +
>  libswscale/swscale_unscaled.c        |    3 +
>  7 files changed, 581 insertions(+), 0 deletions(-)
>  create mode 100644 libswscale/arm/Makefile
>  create mode 100644 libswscale/arm/rgb2yuv_neon_16.S
>  create mode 100755 libswscale/arm/rgb2yuv_neon_32.S
>  create mode 100755 libswscale/arm/rgb2yuv_neon_common.S
>  create mode 100644 libswscale/arm/swscale_unscaled.c

applied

also, if you want to maintain the code, feel free to send a patch
that adds you to the MAINTAINERs file

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In a rich man's house there is no place to spit but his face.
-- Diogenes of Sinope
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20131216/febc48c3/attachment.asc>


More information about the ffmpeg-devel mailing list