diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-10-28 12:06:38 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-10-31 12:01:33 +0100 |
commit | 908b7fcfb29712e5a9cacb005ad734c53e26e72c (patch) | |
tree | e69241d0b29a8ca0cd515262da04f398af203315 /libavcodec | |
parent | 920ce150c60b36b8039fd187a228c4e8df5dcfb5 (diff) | |
download | ffmpeg-908b7fcfb29712e5a9cacb005ad734c53e26e72c.tar.gz |
avcodec/mpegvideodata: Join mpeg1/2 dc scale tables
Avoids relocations.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/mpeg12enc.c | 2 | ||||
-rw-r--r-- | libavcodec/mpegvideo_enc.c | 4 | ||||
-rw-r--r-- | libavcodec/mpegvideodata.c | 26 | ||||
-rw-r--r-- | libavcodec/mpegvideodata.h | 4 | ||||
-rw-r--r-- | libavcodec/speedhqenc.c | 2 |
5 files changed, 15 insertions, 23 deletions
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index 2db1d93d0e..3ad1cd84a1 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -1148,7 +1148,7 @@ av_cold void ff_mpeg1_encode_init(MpegEncContext *s) static AVOnce init_static_once = AV_ONCE_INIT; s->y_dc_scale_table = - s->c_dc_scale_table = ff_mpeg2_dc_scale_table[s->intra_dc_precision]; + s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision]; s->me.mv_penalty = mv_penalty; s->fcode_tab = fcode_tab; diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 0b709974a1..1bcc849782 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -3736,9 +3736,9 @@ static int encode_picture(MpegEncContext *s, int picture_number) s-> intra_matrix[j] = av_clip_uint8(( luma_matrix[i] * s->qscale) >> 3); } s->y_dc_scale_table= - s->c_dc_scale_table= ff_mpeg2_dc_scale_table[s->intra_dc_precision]; + s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision]; s->chroma_intra_matrix[0] = - s->intra_matrix[0] = ff_mpeg2_dc_scale_table[s->intra_dc_precision][8]; + s->intra_matrix[0] = ff_mpeg12_dc_scale_table[s->intra_dc_precision][8]; ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, s->intra_matrix, s->intra_quant_bias, 8, 8, 1); ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16, diff --git a/libavcodec/mpegvideodata.c b/libavcodec/mpegvideodata.c index b98e90cf43..68ad84276e 100644 --- a/libavcodec/mpegvideodata.c +++ b/libavcodec/mpegvideodata.c @@ -30,31 +30,23 @@ const uint8_t ff_mpeg2_non_linear_qscale[32] = { 56, 64, 72, 80, 88, 96, 104, 112, }; -const uint8_t ff_mpeg1_dc_scale_table[32] = { +const uint8_t ff_mpeg12_dc_scale_table[4][32] = { +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const uint8_t mpeg2_dc_scale_table1[32] = { +}, +{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -}; - -static const uint8_t mpeg2_dc_scale_table2[32] = { +}, +{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -}; - -static const uint8_t mpeg2_dc_scale_table3[32] = { +}, +{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -}; - -const uint8_t *const ff_mpeg2_dc_scale_table[4] = { - ff_mpeg1_dc_scale_table, - mpeg2_dc_scale_table1, - mpeg2_dc_scale_table2, - mpeg2_dc_scale_table3, +}, }; const uint8_t ff_alternate_horizontal_scan[64] = { diff --git a/libavcodec/mpegvideodata.h b/libavcodec/mpegvideodata.h index cf783ef31c..7264b434ae 100644 --- a/libavcodec/mpegvideodata.h +++ b/libavcodec/mpegvideodata.h @@ -25,8 +25,8 @@ extern const uint8_t ff_alternate_horizontal_scan[64]; extern const uint8_t ff_alternate_vertical_scan[64]; -extern const uint8_t ff_mpeg1_dc_scale_table[32]; -extern const uint8_t * const ff_mpeg2_dc_scale_table[4]; +extern const uint8_t ff_mpeg12_dc_scale_table[4][32]; +static const uint8_t *const ff_mpeg1_dc_scale_table = ff_mpeg12_dc_scale_table[0]; extern const uint8_t ff_mpeg2_non_linear_qscale[32]; diff --git a/libavcodec/speedhqenc.c b/libavcodec/speedhqenc.c index 65e66afae4..7269e345d3 100644 --- a/libavcodec/speedhqenc.c +++ b/libavcodec/speedhqenc.c @@ -115,7 +115,7 @@ av_cold int ff_speedhq_encode_init(MpegEncContext *s) s->intra_chroma_ac_vlc_last_length = uni_speedhq_ac_vlc_len; s->y_dc_scale_table = - s->c_dc_scale_table = ff_mpeg2_dc_scale_table[3]; + s->c_dc_scale_table = ff_mpeg12_dc_scale_table[3]; switch (s->avctx->pix_fmt) { case AV_PIX_FMT_YUV420P: |