[FFmpeg-devel] [RFC][PATCHv2] swscale: NEON optimized unscaled rgba to nv12 conversion
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.
> 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
also, if you want to maintain the code, feel free to send a patch
that adds you to the MAINTAINERs file
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
Size: 198 bytes
Desc: Digital signature
More information about the ffmpeg-devel