diff options
author | James Darnley <james.darnley@gmail.com> | 2013-03-10 15:08:50 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-03-13 22:07:25 +0100 |
commit | 0735b5088055896cb48574ad417b0cf796820d25 (patch) | |
tree | 1738cebe04a601502c9bc8f09c1c4e586b7a47cd /libavfilter/x86 | |
parent | ae732640ab3415a661a88b7c9cbd9691a07a67ca (diff) | |
download | ffmpeg-0735b5088055896cb48574ad417b0cf796820d25.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: Michael Niedermayer <michaelni@gmx.at>
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 2873744d4b..8d5e76833f 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) #if HAVE_YASM #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 */ } |