swscale/output: Altivec-optimize yuv2plane1_8
authorLauri Kasanen <cand@gmx.com>
Sat, 17 Nov 2018 08:12:14 +0000 (10:12 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 26 Nov 2018 01:56:25 +0000 (02:56 +0100)
commit46c5693ea3a9364e24e2f5336bcdb5b191a2329f
treee1b3f250598d8e62048e8ecdc8fa75f591fc2562
parentcc25529420e3c559fcb4c7a993f112983da7d397
swscale/output: Altivec-optimize yuv2plane1_8

./ffmpeg_g -f rawvideo -pix_fmt rgb24 -s hd1080 -i /dev/zero -pix_fmt yuv420p \
-f null -vframes 100 -v error -nostats -

1158 UNITS in planar1,   65528 runs,      8 skips

-cpuflags 0

19082 UNITS in planar1,   65533 runs,      3 skips

16.48 speedup ratio. On x86, SSE2 is ~7. Curiously, the Power C version
takes as many cycles as the x86 SSE2 version, yikes it's fast.

Note that this function uses VSX instructions, but is not marked so.
This is because several existing functions also make that mistake.
I'll submit a patch moving them once this is reviewed.

Signed-off-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libswscale/ppc/swscale_altivec.c