[FFmpeg-cvslog] x86/h264_intrapred: convert ff_pred16x16_horizontal_8_mmxext to sse2

James Almer git at videolan.org
Mon Feb 12 00:23:47 EET 2024


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sun Feb 11 18:35:31 2024 -0300| [2c324fcce06171664d655ab170233a1d7f04074e] | committer: Kieran Kunhya

x86/h264_intrapred: convert ff_pred16x16_horizontal_8_mmxext to sse2

Signed-off-by: James Almer <jamrial at gmail.com>

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

 libavcodec/x86/h264_intrapred.asm    | 4 +---
 libavcodec/x86/h264_intrapred_init.c | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm
index 8a38ba2bb5..49a63f900e 100644
--- a/libavcodec/x86/h264_intrapred.asm
+++ b/libavcodec/x86/h264_intrapred.asm
@@ -86,8 +86,6 @@ cglobal pred16x16_horizontal_8, 2,3
     punpcklbw m1, m1
     SPLATW    m0, m0, 3
     SPLATW    m1, m1, 3
-    mova [r0+r1*0+8], m0
-    mova [r0+r1*1+8], m1
 %endif
 
     mova [r0+r1*0], m0
@@ -98,7 +96,7 @@ cglobal pred16x16_horizontal_8, 2,3
     RET
 %endmacro
 
-INIT_MMX mmxext
+INIT_XMM sse2
 PRED16x16_H
 INIT_XMM ssse3
 PRED16x16_H
diff --git a/libavcodec/x86/h264_intrapred_init.c b/libavcodec/x86/h264_intrapred_init.c
index ee46927a24..06cb0ea8fe 100644
--- a/libavcodec/x86/h264_intrapred_init.c
+++ b/libavcodec/x86/h264_intrapred_init.c
@@ -100,7 +100,7 @@ PRED16x16(horizontal, 10, sse2)
 
 /* 8-bit versions */
 PRED16x16(vertical, 8, sse)
-PRED16x16(horizontal, 8, mmxext)
+PRED16x16(horizontal, 8, sse2)
 PRED16x16(horizontal, 8, ssse3)
 PRED16x16(dc, 8, sse2)
 PRED16x16(dc, 8, ssse3)
@@ -170,7 +170,6 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
         }
 
         if (EXTERNAL_MMXEXT(cpu_flags)) {
-            h->pred16x16[HOR_PRED8x8            ] = ff_pred16x16_horizontal_8_mmxext;
             if (chroma_format_idc <= 1)
                 h->pred8x8[HOR_PRED8x8          ] = ff_pred8x8_horizontal_8_mmxext;
             h->pred8x8l [TOP_DC_PRED            ] = ff_pred8x8l_top_dc_8_mmxext;
@@ -210,6 +209,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
         }
 
         if (EXTERNAL_SSE2(cpu_flags)) {
+            h->pred16x16[HOR_PRED8x8          ] = ff_pred16x16_horizontal_8_sse2;
             h->pred16x16[DC_PRED8x8           ] = ff_pred16x16_dc_8_sse2;
             h->pred8x8l [DIAG_DOWN_LEFT_PRED  ] = ff_pred8x8l_down_left_8_sse2;
             h->pred8x8l [DIAG_DOWN_RIGHT_PRED ] = ff_pred8x8l_down_right_8_sse2;



More information about the ffmpeg-cvslog mailing list