OSDN Git Service

yadif: x86 assembly for 16-bit samples
authorJames Darnley <james.darnley@gmail.com>
Sat, 16 Mar 2013 20:42:23 +0000 (21:42 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 16 Mar 2013 21:32:34 +0000 (22:32 +0100)
commit17e7b495013de644dc49e61673846d6c0c1bde47
treea44ef046b8e233a217be30d1738491355f47b084
parent75c7e4583f4fd727d236a12763a265502fe00988
yadif: x86 assembly for 16-bit samples

This is a fairly dumb copy of the assembly for 8-bit samples but it
works and produces identical output to the C version.  The options have
been tested on an Athlon64 and a Core2Quad.

Athlon64:
1810385 decicycles in C,    32726 runs, 42 skips
1080744 decicycles in mmx,  32744 runs, 24 skips, 1.7x faster
 818315 decicycles in sse2, 32735 runs, 33 skips, 2.2x faster

Core2Quad:
 924025 decicycles in C,     32750 runs, 18 skips
 623995 decicycles in mmx,   32767 runs,  1 skips, 1.5x faster
 406223 decicycles in sse2,  32764 runs,  4 skips, 2.3x faster
 387842 decicycles in ssse3, 32767 runs,  1 skips, 2.4x faster
 307726 decicycles in sse4,  32763 runs,  5 skips, 3.0x faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavfilter/vf_yadif.c
libavfilter/x86/Makefile
libavfilter/x86/vf_yadif_init.c
libavfilter/x86/yadif-16.asm [new file with mode: 0644]