From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> To: ffmpeg-devel@ffmpeg.org Cc: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Subject: [FFmpeg-devel] [PATCH 05/13] avcodec/dcahuff: Always use three bits for transition mode VLCs Date: Tue, 13 Sep 2022 13:33:02 +0200 Message-ID: <GV1P250MB0737014DA9914DFFB67A93728F479@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> (raw) In-Reply-To: <GV1P250MB0737F59A25C260BC89CFE14F8F479@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> It increases the size of one VLC from two to three bits, thereby requiring four more VLCEntries (16 bytes .bss), but it allows to inline the number of bits used when reading them. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/dca_core.c | 2 +- libavcodec/dcahuff.c | 5 ++--- libavcodec/dcahuff.h | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/dca_core.c b/libavcodec/dca_core.c index 499afc8204..069d428fff 100644 --- a/libavcodec/dca_core.c +++ b/libavcodec/dca_core.c @@ -457,7 +457,7 @@ static int parse_subframe_header(DCACoreDecoder *s, int sf, for (band = 0; band < s->subband_vq_start[ch]; band++) if (s->bit_allocation[ch][band]) s->transition_mode[sf][ch][band] = get_vlc2(&s->gb, ff_dca_vlc_transition_mode[sel].table, - ff_dca_vlc_transition_mode[sel].bits,1); + DCA_TMODE_VLC_BITS, 1); } } diff --git a/libavcodec/dcahuff.c b/libavcodec/dcahuff.c index 49fb06eeb4..842b1401dd 100644 --- a/libavcodec/dcahuff.c +++ b/libavcodec/dcahuff.c @@ -29,7 +29,6 @@ #include "put_bits.h" #define TMODE_COUNT 4 -static const uint8_t tmode_vlc_bits[TMODE_COUNT] = { 3, 3, 3, 2 }; static const uint16_t tmode_codes[TMODE_COUNT][4] = { { 0x0000, 0x0002, 0x0006, 0x0007 }, { 0x0002, 0x0006, 0x0007, 0x0000 }, @@ -1252,7 +1251,7 @@ VLC ff_dca_vlc_rsd; av_cold void ff_dca_init_vlcs(void) { - static VLCElem dca_table[30214]; + static VLCElem dca_table[30218]; unsigned offset = 0; int i, j; @@ -1277,7 +1276,7 @@ av_cold void ff_dca_init_vlcs(void) scales_bits[i], scales_codes[i]); for (unsigned i = 0; i < FF_ARRAY_ELEMS(ff_dca_vlc_transition_mode); i++) - DCA_INIT_VLC(ff_dca_vlc_transition_mode[i], tmode_vlc_bits[i], 4, + DCA_INIT_VLC(ff_dca_vlc_transition_mode[i], DCA_TMODE_VLC_BITS, 4, tmode_bits[i], tmode_codes[i]); for (i = 0; i < DCA_CODE_BOOKS; i++) { diff --git a/libavcodec/dcahuff.h b/libavcodec/dcahuff.h index 87e1fd1cea..1f13b6f443 100644 --- a/libavcodec/dcahuff.h +++ b/libavcodec/dcahuff.h @@ -40,6 +40,7 @@ typedef struct DCAVLC { } DCAVLC; extern DCAVLC ff_dca_vlc_bit_allocation; +#define DCA_TMODE_VLC_BITS 3 extern VLC ff_dca_vlc_transition_mode[4]; extern DCAVLC ff_dca_vlc_scale_factor; extern DCAVLC ff_dca_vlc_quant_index[DCA_CODE_BOOKS]; -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2022-09-13 11:33 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-09-13 11:28 [FFmpeg-devel] [PATCH 01/13] avcodec/dolby_e_parser: Remove unnecessary headers Andreas Rheinhardt 2022-09-13 11:32 ` [FFmpeg-devel] [PATCH 02/13] avcodec/dcahuff: Remove unused define Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 03/13] avcodec/dcahuff: Avoid redundant offset table Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 04/13] avcodec/dca_core, dcahuff: Don't use DCAVLC unnecessarily Andreas Rheinhardt 2022-09-13 11:33 ` Andreas Rheinhardt [this message] 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 06/13] avcodec/dcaenc: Create encoder-adapted tables Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 07/13] avcodec/dcahuff: Combine tables, use ff_init_vlc_from_lengths() Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 08/13] avcodec/dcahuff, dca_core, dca_lbr: Apply offset during VLC creation Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 09/13] avcodec/dca_core: Inline number of bits of scale factor VLCs Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 10/13] avcodec/dca_core: Don't use too big max_depth in get_vlc2() Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 11/13] avcodec/dcahuff: Replace DCAVLC by ordinary VLCs Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 12/13] avcodec/dca_lbr: Hardcode lpc table to save space Andreas Rheinhardt 2022-09-13 11:33 ` [FFmpeg-devel] [PATCH 13/13] avcodec/dca_lbr: Inline nb_bits for VLCs Andreas Rheinhardt 2022-09-15 19:34 ` [FFmpeg-devel] [PATCH 01/13] avcodec/dolby_e_parser: Remove unnecessary headers Andreas Rheinhardt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=GV1P250MB0737014DA9914DFFB67A93728F479@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM \ --to=andreas.rheinhardt@outlook.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git