[FFmpeg-devel] [PATCH 2/2] lavc/h264dsp: remove MMI 8-bit 4:2:2 chroma DC dequant

Rémi Denis-Courmont remi at remlab.net
Sun Jul 7 14:44:48 EEST 2024


The function is exactly identical to the C reference, only with the
constant propagated and the loop unrolled manually.
---
 libavcodec/mips/h264dsp_init_mips.c |  4 ----
 libavcodec/mips/h264dsp_mips.h      |  1 -
 libavcodec/mips/h264dsp_mmi.c       | 33 -----------------------------
 3 files changed, 38 deletions(-)

diff --git a/libavcodec/mips/h264dsp_init_mips.c b/libavcodec/mips/h264dsp_init_mips.c
index 615b00d142..72f42895e8 100644
--- a/libavcodec/mips/h264dsp_init_mips.c
+++ b/libavcodec/mips/h264dsp_init_mips.c
@@ -46,10 +46,6 @@ av_cold void ff_h264dsp_init_mips(H264DSPContext *c, const int bit_depth,
 
             c->h264_luma_dc_dequant_idct = ff_h264_luma_dc_dequant_idct_8_mmi;
 
-            if (chroma_format_idc > 1)
-                c->h264_chroma_dc_dequant_idct =
-                    ff_h264_chroma422_dc_dequant_idct_8_mmi;
-
             c->weight_h264_pixels_tab[0] = ff_h264_weight_pixels16_8_mmi;
             c->weight_h264_pixels_tab[1] = ff_h264_weight_pixels8_8_mmi;
             c->weight_h264_pixels_tab[2] = ff_h264_weight_pixels4_8_mmi;
diff --git a/libavcodec/mips/h264dsp_mips.h b/libavcodec/mips/h264dsp_mips.h
index 7e1dcdd013..4a2a2c2559 100644
--- a/libavcodec/mips/h264dsp_mips.h
+++ b/libavcodec/mips/h264dsp_mips.h
@@ -340,7 +340,6 @@ void ff_h264_idct_add8_422_8_mmi(uint8_t **dest, const int *block_offset,
         int16_t *block, int stride, const uint8_t nnzc[15*8]);
 void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
         int qmul);
-void ff_h264_chroma422_dc_dequant_idct_8_mmi(int16_t *block, int qmul);
 
 void ff_h264_weight_pixels16_8_mmi(uint8_t *block, ptrdiff_t stride, int height,
         int log2_denom, int weight, int offset);
diff --git a/libavcodec/mips/h264dsp_mmi.c b/libavcodec/mips/h264dsp_mmi.c
index 1ee8ca2f1c..bae1052dcf 100644
--- a/libavcodec/mips/h264dsp_mmi.c
+++ b/libavcodec/mips/h264dsp_mmi.c
@@ -1084,39 +1084,6 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
     );
 }
 
-void ff_h264_chroma422_dc_dequant_idct_8_mmi(int16_t *block, int qmul)
-{
-    int temp[8];
-    int t[8];
-
-    temp[0] = block[0] + block[16];
-    temp[1] = block[0] - block[16];
-    temp[2] = block[32] + block[48];
-    temp[3] = block[32] - block[48];
-    temp[4] = block[64] + block[80];
-    temp[5] = block[64] - block[80];
-    temp[6] = block[96] + block[112];
-    temp[7] = block[96] - block[112];
-
-    t[0] = temp[0] + temp[4] + temp[2] + temp[6];
-    t[1] = temp[0] - temp[4] + temp[2] - temp[6];
-    t[2] = temp[0] - temp[4] - temp[2] + temp[6];
-    t[3] = temp[0] + temp[4] - temp[2] - temp[6];
-    t[4] = temp[1] + temp[5] + temp[3] + temp[7];
-    t[5] = temp[1] - temp[5] + temp[3] - temp[7];
-    t[6] = temp[1] - temp[5] - temp[3] + temp[7];
-    t[7] = temp[1] + temp[5] - temp[3] - temp[7];
-
-    block[  0]= (t[0]*qmul + 128) >> 8;
-    block[ 32]= (t[1]*qmul + 128) >> 8;
-    block[ 64]= (t[2]*qmul + 128) >> 8;
-    block[ 96]= (t[3]*qmul + 128) >> 8;
-    block[ 16]= (t[4]*qmul + 128) >> 8;
-    block[ 48]= (t[5]*qmul + 128) >> 8;
-    block[ 80]= (t[6]*qmul + 128) >> 8;
-    block[112]= (t[7]*qmul + 128) >> 8;
-}
-
 void ff_h264_weight_pixels16_8_mmi(uint8_t *block, ptrdiff_t stride, int height,
         int log2_denom, int weight, int offset)
 {
-- 
2.45.2



More information about the ffmpeg-devel mailing list