[FFmpeg-devel] [PATCH] Moves yuv2yuvX_sse3 to yasm, unrolls main loop and other small optimizations for ~20% speedup.

Michael Niedermayer michael at niedermayer.cc
Tue Nov 10 18:43:10 EET 2020


On Tue, Nov 10, 2020 at 09:43:47AM +0100, Alan Kelly wrote:
> ---
>  yuv2yuvX.asm: Ports yuv2yuvX to asm, unrolls main loop and adds
>  other small optimizations for ~20% speed-up. Copyright updated to
>  include the original from swscale.c
>  swscale.c: Removes yuv2yuvX_sse3 and calls new function ff_yuv2yuvX_sse3.
>  Calls yuv2yuvX_mmxext on remainining elements if required.
>  Makefile: Compiles yuv2yuvX.asm
> 
>  libswscale/x86/Makefile     |   1 +
>  libswscale/x86/swscale.c    |  75 ++++--------------------
>  libswscale/x86/yuv2yuvX.asm | 110 ++++++++++++++++++++++++++++++++++++
>  3 files changed, 121 insertions(+), 65 deletions(-)
>  create mode 100644 libswscale/x86/yuv2yuvX.asm

on x86-32

X86ASM	libswscale/x86/yuv2yuvX.o
src/libswscale/x86/yuv2yuvX.asm:110: error: invalid combination of opcode and operands
src/libswscale/x86/yuv2yuvX.asm:55: ... from macro `YUV2YUVX_FUNC' defined here
src//libavutil/x86/x86inc.asm:1395: ... from macro `movd' defined here
src//libavutil/x86/x86inc.asm:1263: ... from macro `RUN_AVX_INSTR' defined here
/home/michael/ffmpeg-git/ffmpeg/ffbuild/common.mak:89: recipe for target 'libswscale/x86/yuv2yuvX.o' failed
make: *** [libswscale/x86/yuv2yuvX.o] Error 1
make: Target 'all' not remade because of errors.

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

"Nothing to hide" only works if the folks in power share the values of
you and everyone you know entirely and always will -- Tom Scott

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20201110/14bdb1e0/attachment.sig>


More information about the ffmpeg-devel mailing list