Mercurial > libavcodec.hg
annotate qdm2_tablegen.c @ 11762:91b9bd17e79c libavcodec
aacenc: Trellis over scalefactors using an estimated codebook rather than every codebook.
The minimal codebook to encode the band without clipping is used (as is done in the TLS).
author | alexc |
---|---|
date | Tue, 25 May 2010 18:31:55 +0000 |
parents | e03e3df6fb7d |
children | 59f399926c12 |
rev | line source |
---|---|
11488
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
1 /* |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
2 * Generate a header file for hardcoded QDM2 tables |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
3 * |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
4 * Copyright (c) 2010 Reimar Döffinger <Reimar.Doeffinger@gmx.de> |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
5 * |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
6 * This file is part of FFmpeg. |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
7 * |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
9 * modify it under the terms of the GNU Lesser General Public |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
10 * License as published by the Free Software Foundation; either |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
12 * |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
16 * Lesser General Public License for more details. |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
17 * |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
18 * You should have received a copy of the GNU Lesser General Public |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
21 */ |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
22 |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
23 #include <stdlib.h> |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
24 #define CONFIG_HARDCODED_TABLES 0 |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
25 #include "qdm2_tablegen.h" |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
26 #include "tableprint.h" |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
27 |
11570 | 28 int main(void) |
11488
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
29 { |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
30 softclip_table_init(); |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
31 rnd_table_init(); |
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
32 init_noise_samples(); |
11570 | 33 |
34 write_fileheader(); | |
35 | |
36 printf("static const uint16_t softclip_table[HARDCLIP_THRESHOLD - SOFTCLIP_THRESHOLD + 1] = {\n"); | |
37 write_uint16_array(softclip_table, HARDCLIP_THRESHOLD - SOFTCLIP_THRESHOLD + 1); | |
38 printf("};\n"); | |
39 | |
40 printf("static const float noise_table[4096] = {\n"); | |
41 write_float_array(noise_table, 4096); | |
42 printf("};\n"); | |
11488
424b8482f316
Allow hard-coding several QDM2 tables (about 32 kB size).
reimar
parents:
diff
changeset
|
43 |
11570 | 44 printf("static const uint8_t random_dequant_index[256][5] = {\n"); |
45 write_uint8_2d_array(random_dequant_index, 256, 5); | |
46 printf("};\n"); | |
47 | |
48 printf("static const uint8_t random_dequant_type24[128][3] = {\n"); | |
49 write_uint8_2d_array(random_dequant_type24, 128, 3); | |
50 printf("};\n"); | |
51 | |
52 printf("static const float noise_samples[128] = {\n"); | |
53 write_float_array(noise_samples, 128); | |
54 printf("};\n"); | |
55 | |
56 return 0; | |
57 } |