diff options
author | James Darnley <james.darnley@gmail.com> | 2013-03-10 15:08:50 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-05-14 09:23:55 +0200 |
commit | b0ef0ae77608a5e3d2ba68af503e8b1277a215d3 (patch) | |
tree | e20e68000ab598606e20e3671f2a028118f69857 /libavfilter/x86 | |
parent | 252c0bfdc014c1fb6ad4fe06242c7beca58a6b41 (diff) | |
download | ffmpeg-b0ef0ae77608a5e3d2ba68af503e8b1277a215d3.tar.gz |
yadif: restore speed of the C filtering code
Always use the special filter for the first and last 3 columns (only).
Changes made in 64ed397 slowed the filter to just under 3/4 of what it
was. This commit restores the speed while maintaining identical output.
For reference, on my Athlon64:
1733222 decicycles in old
2358563 decicycles in new
1727558 decicycles in this
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavfilter/x86')
-rw-r--r-- | libavfilter/x86/vf_yadif_init.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/libavfilter/x86/vf_yadif_init.c b/libavfilter/x86/vf_yadif_init.c index 99520a2ee8..5978a4fd42 100644 --- a/libavfilter/x86/vf_yadif_init.c +++ b/libavfilter/x86/vf_yadif_init.c @@ -42,18 +42,12 @@ av_cold void ff_yadif_init_x86(YADIFContext *yadif) int cpu_flags = av_get_cpu_flags(); #if ARCH_X86_32 - if (EXTERNAL_MMXEXT(cpu_flags)) { + if (EXTERNAL_MMXEXT(cpu_flags)) yadif->filter_line = ff_yadif_filter_line_mmxext; - yadif->req_align = 8; - } #endif /* ARCH_X86_32 */ - if (EXTERNAL_SSE2(cpu_flags)) { + if (EXTERNAL_SSE2(cpu_flags)) yadif->filter_line = ff_yadif_filter_line_sse2; - yadif->req_align = 16; - } - if (EXTERNAL_SSSE3(cpu_flags)) { + if (EXTERNAL_SSSE3(cpu_flags)) yadif->filter_line = ff_yadif_filter_line_ssse3; - yadif->req_align = 16; - } #endif /* HAVE_YASM */ } |