[FFmpeg-cvslog] avfilter/vf_tinterlace : add AVX2 func for lowpass_line 8 and 16

Martin Vignali git at videolan.org
Tue Dec 19 22:02:52 EET 2017


ffmpeg | branch: master | Martin Vignali <martin.vignali at gmail.com> | Mon Dec 18 11:30:31 2017 +0100| [8fb1d63d919286971b8e6afad372730d6d6f25c8] | committer: Martin Vignali

avfilter/vf_tinterlace : add AVX2 func for lowpass_line 8 and 16

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8fb1d63d919286971b8e6afad372730d6d6f25c8
---

 libavfilter/x86/vf_tinterlace_init.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/libavfilter/x86/vf_tinterlace_init.c b/libavfilter/x86/vf_tinterlace_init.c
index 209812964d..2c9b1de581 100644
--- a/libavfilter/x86/vf_tinterlace_init.c
+++ b/libavfilter/x86/vf_tinterlace_init.c
@@ -33,6 +33,9 @@ void ff_lowpass_line_sse2(uint8_t *dstp, ptrdiff_t linesize,
 void ff_lowpass_line_avx (uint8_t *dstp, ptrdiff_t linesize,
                           const uint8_t *srcp, ptrdiff_t mref,
                           ptrdiff_t pref, int clip_max);
+void ff_lowpass_line_avx2 (uint8_t *dstp, ptrdiff_t linesize,
+                          const uint8_t *srcp, ptrdiff_t mref,
+                          ptrdiff_t pref, int clip_max);
 
 void ff_lowpass_line_16_sse2(uint8_t *dstp, ptrdiff_t linesize,
                              const uint8_t *srcp, ptrdiff_t mref,
@@ -40,6 +43,9 @@ void ff_lowpass_line_16_sse2(uint8_t *dstp, ptrdiff_t linesize,
 void ff_lowpass_line_16_avx (uint8_t *dstp, ptrdiff_t linesize,
                              const uint8_t *srcp, ptrdiff_t mref,
                              ptrdiff_t pref, int clip_max);
+void ff_lowpass_line_16_avx2 (uint8_t *dstp, ptrdiff_t linesize,
+                             const uint8_t *srcp, ptrdiff_t mref,
+                             ptrdiff_t pref, int clip_max);
 
 void ff_lowpass_line_complex_sse2(uint8_t *dstp, ptrdiff_t linesize,
                                   const uint8_t *srcp, ptrdiff_t mref,
@@ -63,6 +69,11 @@ av_cold void ff_tinterlace_init_x86(TInterlaceContext *s)
         if (EXTERNAL_AVX(cpu_flags))
             if (!(s->flags & TINTERLACE_FLAG_CVLPF))
                 s->lowpass_line = ff_lowpass_line_16_avx;
+        if (EXTERNAL_AVX2_FAST(cpu_flags)) {
+            if (!(s->flags & TINTERLACE_FLAG_CVLPF)) {
+                s->lowpass_line = ff_lowpass_line_16_avx2;
+            }
+        }
     } else {
         if (EXTERNAL_SSE2(cpu_flags)) {
             if (!(s->flags & TINTERLACE_FLAG_CVLPF))
@@ -73,5 +84,10 @@ av_cold void ff_tinterlace_init_x86(TInterlaceContext *s)
         if (EXTERNAL_AVX(cpu_flags))
             if (!(s->flags & TINTERLACE_FLAG_CVLPF))
                 s->lowpass_line = ff_lowpass_line_avx;
+        if (EXTERNAL_AVX2_FAST(cpu_flags)) {
+            if (!(s->flags & TINTERLACE_FLAG_CVLPF)) {
+                s->lowpass_line = ff_lowpass_line_avx2;
+            }
+        }
     }
 }



More information about the ffmpeg-cvslog mailing list