swscale/output: Altivec-optimize float yuv2plane1
authorLauri Kasanen <cand@gmx.com>
Sun, 16 Dec 2018 09:06:53 +0000 (11:06 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 26 Dec 2018 19:28:58 +0000 (20:28 +0100)
commit8dd9df9ecd258cff84cef559f16e682949e78e38
treeafeebceccfcf3c25f05598f3b07a125c4c5637f5
parentc268712895f6fd557e5affa6566983815046b9a8
swscale/output: Altivec-optimize float yuv2plane1

This function wouldn't benefit from VSX instructions, so I put it
under altivec.

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

3743 UNITS in planar1,   65495 runs,     41 skips

-cpuflags 0

23511 UNITS in planar1,   65530 runs,      6 skips

grayf32be

4647 UNITS in planar1,   65449 runs,     87 skips

-cpuflags 0

28608 UNITS in planar1,   65530 runs,      6 skips

The native speedup is 6.28133, and the bswapping one 6.15623.
Fate passes, each format tested with an image to video conversion.

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