From f741bd06748d95f1fe45edf1c24e493216170c24 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 8 Dec 2020 21:28:25 +0100 Subject: avcodec/mpeg12enc, speedhqenc: Avoid redundant copies of tables Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg12enc.c | 12 ++---------- libavcodec/speedhqenc.c | 12 ++---------- 2 files changed, 4 insertions(+), 20 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index 155971fecd..daf3ac981d 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -62,9 +62,6 @@ static uint8_t uni_mpeg2_ac_vlc_len[64 * 64 * 2]; static uint32_t mpeg1_lum_dc_uni[512]; static uint32_t mpeg1_chr_dc_uni[512]; -static uint8_t mpeg1_index_run[2][64]; -static int8_t mpeg1_max_level[2][64]; - #define A53_MAX_CC_COUNT 0x1f #endif /* CONFIG_MPEG1VIDEO_ENCODER || CONFIG_MPEG2VIDEO_ENCODER */ @@ -722,8 +719,8 @@ next_coef: MASK_ABS(sign, alevel); sign &= 1; - if (alevel <= mpeg1_max_level[0][run]) { - code = mpeg1_index_run[0][run] + alevel - 1; + if (alevel <= ff_rl_mpeg1.max_level[0][run]) { + code = ff_rl_mpeg1.index_run[0][run] + alevel - 1; /* store the VLC & sign at once */ put_bits(&s->pb, table_vlc[code][1] + 1, (table_vlc[code][0] << 1) + sign); @@ -1046,11 +1043,6 @@ static av_cold void mpeg12_encode_init_static(void) ff_rl_init(&ff_rl_mpeg1, mpeg12_static_rl_table_store[0]); ff_rl_init(&ff_rl_mpeg2, mpeg12_static_rl_table_store[1]); - for (int i = 0; i < 64; i++) { - mpeg1_max_level[0][i] = ff_rl_mpeg1.max_level[0][i]; - mpeg1_index_run[0][i] = ff_rl_mpeg1.index_run[0][i]; - } - ff_mpeg1_init_uni_ac_vlc(&ff_rl_mpeg1, uni_mpeg1_ac_vlc_len); ff_mpeg1_init_uni_ac_vlc(&ff_rl_mpeg2, uni_mpeg2_ac_vlc_len); diff --git a/libavcodec/speedhqenc.c b/libavcodec/speedhqenc.c index 51f67c0d5e..a5bedd5301 100644 --- a/libavcodec/speedhqenc.c +++ b/libavcodec/speedhqenc.c @@ -46,9 +46,6 @@ static uint16_t mpeg12_vlc_dc_chroma_code_reversed[12]; static uint32_t speedhq_lum_dc_uni[512]; static uint32_t speedhq_chr_dc_uni[512]; -static uint8_t speedhq_index_run[2][64]; -static int8_t speedhq_max_level[2][64]; - static uint8_t uni_speedhq_ac_vlc_len[64 * 64 * 2]; static uint32_t reverse(uint32_t num, int bits) @@ -77,11 +74,6 @@ static av_cold void speedhq_init_static_data(void) ff_rl_init(&ff_rl_speedhq, speedhq_static_rl_table_store); - for (int i = 0; i < 64; i++) { - speedhq_max_level[0][i] = ff_rl_speedhq.max_level[0][i]; - speedhq_index_run[0][i] = ff_rl_speedhq.index_run[0][i]; - } - /* build unified dc encoding tables */ for (int i = -255; i < 256; i++) { int adiff, index; @@ -231,8 +223,8 @@ static void encode_block(MpegEncContext *s, int16_t *block, int n) MASK_ABS(sign, alevel); sign &= 1; - if (alevel <= speedhq_max_level[0][run]) { - code = speedhq_index_run[0][run] + alevel - 1; + if (alevel <= ff_rl_speedhq.max_level[0][run]) { + code = ff_rl_speedhq.index_run[0][run] + alevel - 1; /* store the VLC & sign at once */ put_bits_le(&s->pb, ff_rl_speedhq.table_vlc[code][1] + 1, ff_rl_speedhq.table_vlc[code][0] + (sign << ff_rl_speedhq.table_vlc[code][1])); -- cgit v1.2.3