qdm2: Allow hard-coding VLC tables.

Also adds a lot of infrastructure necessary for it.
Some of it is a bit ugly though.
Increases binary size for hardcoded tables by about 12 kB,
which is about 15 kB from qdm2_table minus data and code
saved that was only used for creating it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
This commit is contained in:
Reimar Döffinger
2014-09-07 13:55:23 +02:00
parent de6d44829c
commit 70d80ed40f
5 changed files with 265 additions and 166 deletions

View File

@@ -21,9 +21,9 @@
*/
#include <stdlib.h>
#include "tableprint_vlc.h"
#define CONFIG_HARDCODED_TABLES 0
#include "qdm2_tablegen.h"
#include "tableprint.h"
int main(void)
{
@@ -40,5 +40,22 @@ int main(void)
WRITE_2D_ARRAY("static const", uint8_t, random_dequant_index);
WRITE_2D_ARRAY("static const", uint8_t, random_dequant_type24);
qdm2_init_vlc();
WRITE_2D_ARRAY("static const", VLC_TYPE, qdm2_table);
WRITE_VLC_TYPE("static const", vlc_tab_level, qdm2_table);
WRITE_VLC_TYPE("static const", vlc_tab_diff, qdm2_table);
WRITE_VLC_TYPE("static const", vlc_tab_run, qdm2_table);
WRITE_VLC_TYPE("static const", fft_level_exp_alt_vlc, qdm2_table);
WRITE_VLC_TYPE("static const", fft_level_exp_vlc, qdm2_table);
WRITE_VLC_TYPE("static const", fft_stereo_exp_vlc, qdm2_table);
WRITE_VLC_TYPE("static const", fft_stereo_phase_vlc, qdm2_table);
WRITE_VLC_TYPE("static const", vlc_tab_tone_level_idx_hi1, qdm2_table);
WRITE_VLC_TYPE("static const", vlc_tab_tone_level_idx_mid, qdm2_table);
WRITE_VLC_TYPE("static const", vlc_tab_tone_level_idx_hi2, qdm2_table);
WRITE_VLC_TYPE("static const", vlc_tab_type30, qdm2_table);
WRITE_VLC_TYPE("static const", vlc_tab_type34, qdm2_table);
WRITE_VLC_ARRAY("static const", vlc_tab_fft_tone_offset, qdm2_table);
return 0;
}