[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