Mercurial > libavcodec.hg
comparison mpegaudiodata.c @ 5031:70f194a2ee53 libavcodec
move some common mpeg audio tables from mpegaudiodectab.h to mpegaudiodata.c
author | aurel |
---|---|
date | Sat, 19 May 2007 00:06:02 +0000 |
parents | |
children | d47ee2d1d7da |
comparison
equal
deleted
inserted
replaced
5030:9ce0052d533a | 5031:70f194a2ee53 |
---|---|
1 /* | |
2 * MPEG Audio common tables | |
3 * copyright (c) 2002 Fabrice Bellard | |
4 * | |
5 * This file is part of FFmpeg. | |
6 * | |
7 * FFmpeg is free software; you can redistribute it and/or | |
8 * modify it under the terms of the GNU Lesser General Public | |
9 * License as published by the Free Software Foundation; either | |
10 * version 2.1 of the License, or (at your option) any later version. | |
11 * | |
12 * FFmpeg is distributed in the hope that it will be useful, | |
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 * Lesser General Public License for more details. | |
16 * | |
17 * You should have received a copy of the GNU Lesser General Public | |
18 * License along with FFmpeg; if not, write to the Free Software | |
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
20 */ | |
21 | |
22 /** | |
23 * @file mpegaudiodata.c | |
24 * mpeg audio layer common tables. | |
25 */ | |
26 | |
27 #include "mpegaudiodata.h" | |
28 | |
29 | |
30 const uint16_t mpa_bitrate_tab[2][3][15] = { | |
31 { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 }, | |
32 {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 }, | |
33 {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 } }, | |
34 { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256}, | |
35 {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}, | |
36 {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160} | |
37 } | |
38 }; | |
39 | |
40 const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 }; | |
41 | |
42 /*******************************************************/ | |
43 /* half mpeg encoding window (full precision) */ | |
44 const int32_t mpa_enwindow[257] = { | |
45 0, -1, -1, -1, -1, -1, -1, -2, | |
46 -2, -2, -2, -3, -3, -4, -4, -5, | |
47 -5, -6, -7, -7, -8, -9, -10, -11, | |
48 -13, -14, -16, -17, -19, -21, -24, -26, | |
49 -29, -31, -35, -38, -41, -45, -49, -53, | |
50 -58, -63, -68, -73, -79, -85, -91, -97, | |
51 -104, -111, -117, -125, -132, -139, -147, -154, | |
52 -161, -169, -176, -183, -190, -196, -202, -208, | |
53 213, 218, 222, 225, 227, 228, 228, 227, | |
54 224, 221, 215, 208, 200, 189, 177, 163, | |
55 146, 127, 106, 83, 57, 29, -2, -36, | |
56 -72, -111, -153, -197, -244, -294, -347, -401, | |
57 -459, -519, -581, -645, -711, -779, -848, -919, | |
58 -991, -1064, -1137, -1210, -1283, -1356, -1428, -1498, | |
59 -1567, -1634, -1698, -1759, -1817, -1870, -1919, -1962, | |
60 -2001, -2032, -2057, -2075, -2085, -2087, -2080, -2063, | |
61 2037, 2000, 1952, 1893, 1822, 1739, 1644, 1535, | |
62 1414, 1280, 1131, 970, 794, 605, 402, 185, | |
63 -45, -288, -545, -814, -1095, -1388, -1692, -2006, | |
64 -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788, | |
65 -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, | |
66 -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585, | |
67 -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750, | |
68 -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134, | |
69 6574, 5959, 5288, 4561, 3776, 2935, 2037, 1082, | |
70 70, -998, -2122, -3300, -4533, -5818, -7154, -8540, | |
71 -9975,-11455,-12980,-14548,-16155,-17799,-19478,-21189, | |
72 -22929,-24694,-26482,-28289,-30112,-31947,-33791,-35640, | |
73 -37489,-39336,-41176,-43006,-44821,-46617,-48390,-50137, | |
74 -51853,-53534,-55178,-56778,-58333,-59838,-61289,-62684, | |
75 -64019,-65290,-66494,-67629,-68692,-69679,-70590,-71420, | |
76 -72169,-72835,-73415,-73908,-74313,-74630,-74856,-74992, | |
77 75038, | |
78 }; | |
79 | |
80 /*******************************************************/ | |
81 /* layer 2 tables */ | |
82 | |
83 const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 }; | |
84 | |
85 const int quant_steps[17] = { | |
86 3, 5, 7, 9, 15, | |
87 31, 63, 127, 255, 511, | |
88 1023, 2047, 4095, 8191, 16383, | |
89 32767, 65535 | |
90 }; | |
91 | |
92 /* we use a negative value if grouped */ | |
93 const int quant_bits[17] = { | |
94 -5, -7, 3, -10, 4, | |
95 5, 6, 7, 8, 9, | |
96 10, 11, 12, 13, 14, | |
97 15, 16 | |
98 }; | |
99 | |
100 /* encoding tables which give the quantization index. Note how it is | |
101 possible to store them efficiently ! */ | |
102 static const unsigned char alloc_table_0[] = { | |
103 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |
104 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |
105 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |
106 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
107 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
108 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
109 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
110 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
111 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
112 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
113 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
114 3, 0, 1, 2, 3, 4, 5, 16, | |
115 3, 0, 1, 2, 3, 4, 5, 16, | |
116 3, 0, 1, 2, 3, 4, 5, 16, | |
117 3, 0, 1, 2, 3, 4, 5, 16, | |
118 3, 0, 1, 2, 3, 4, 5, 16, | |
119 3, 0, 1, 2, 3, 4, 5, 16, | |
120 3, 0, 1, 2, 3, 4, 5, 16, | |
121 3, 0, 1, 2, 3, 4, 5, 16, | |
122 3, 0, 1, 2, 3, 4, 5, 16, | |
123 3, 0, 1, 2, 3, 4, 5, 16, | |
124 3, 0, 1, 2, 3, 4, 5, 16, | |
125 3, 0, 1, 2, 3, 4, 5, 16, | |
126 2, 0, 1, 16, | |
127 2, 0, 1, 16, | |
128 2, 0, 1, 16, | |
129 2, 0, 1, 16, | |
130 }; | |
131 | |
132 static const unsigned char alloc_table_1[] = { | |
133 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |
134 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |
135 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, | |
136 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
137 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
138 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
139 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
140 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
141 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
142 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
143 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, | |
144 3, 0, 1, 2, 3, 4, 5, 16, | |
145 3, 0, 1, 2, 3, 4, 5, 16, | |
146 3, 0, 1, 2, 3, 4, 5, 16, | |
147 3, 0, 1, 2, 3, 4, 5, 16, | |
148 3, 0, 1, 2, 3, 4, 5, 16, | |
149 3, 0, 1, 2, 3, 4, 5, 16, | |
150 3, 0, 1, 2, 3, 4, 5, 16, | |
151 3, 0, 1, 2, 3, 4, 5, 16, | |
152 3, 0, 1, 2, 3, 4, 5, 16, | |
153 3, 0, 1, 2, 3, 4, 5, 16, | |
154 3, 0, 1, 2, 3, 4, 5, 16, | |
155 3, 0, 1, 2, 3, 4, 5, 16, | |
156 2, 0, 1, 16, | |
157 2, 0, 1, 16, | |
158 2, 0, 1, 16, | |
159 2, 0, 1, 16, | |
160 2, 0, 1, 16, | |
161 2, 0, 1, 16, | |
162 2, 0, 1, 16, | |
163 }; | |
164 | |
165 static const unsigned char alloc_table_2[] = { | |
166 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |
167 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |
168 3, 0, 1, 3, 4, 5, 6, 7, | |
169 3, 0, 1, 3, 4, 5, 6, 7, | |
170 3, 0, 1, 3, 4, 5, 6, 7, | |
171 3, 0, 1, 3, 4, 5, 6, 7, | |
172 3, 0, 1, 3, 4, 5, 6, 7, | |
173 3, 0, 1, 3, 4, 5, 6, 7, | |
174 }; | |
175 | |
176 static const unsigned char alloc_table_3[] = { | |
177 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |
178 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |
179 3, 0, 1, 3, 4, 5, 6, 7, | |
180 3, 0, 1, 3, 4, 5, 6, 7, | |
181 3, 0, 1, 3, 4, 5, 6, 7, | |
182 3, 0, 1, 3, 4, 5, 6, 7, | |
183 3, 0, 1, 3, 4, 5, 6, 7, | |
184 3, 0, 1, 3, 4, 5, 6, 7, | |
185 3, 0, 1, 3, 4, 5, 6, 7, | |
186 3, 0, 1, 3, 4, 5, 6, 7, | |
187 3, 0, 1, 3, 4, 5, 6, 7, | |
188 3, 0, 1, 3, 4, 5, 6, 7, | |
189 }; | |
190 | |
191 static const unsigned char alloc_table_4[] = { | |
192 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | |
193 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | |
194 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | |
195 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | |
196 3, 0, 1, 3, 4, 5, 6, 7, | |
197 3, 0, 1, 3, 4, 5, 6, 7, | |
198 3, 0, 1, 3, 4, 5, 6, 7, | |
199 3, 0, 1, 3, 4, 5, 6, 7, | |
200 3, 0, 1, 3, 4, 5, 6, 7, | |
201 3, 0, 1, 3, 4, 5, 6, 7, | |
202 3, 0, 1, 3, 4, 5, 6, 7, | |
203 2, 0, 1, 3, | |
204 2, 0, 1, 3, | |
205 2, 0, 1, 3, | |
206 2, 0, 1, 3, | |
207 2, 0, 1, 3, | |
208 2, 0, 1, 3, | |
209 2, 0, 1, 3, | |
210 2, 0, 1, 3, | |
211 2, 0, 1, 3, | |
212 2, 0, 1, 3, | |
213 2, 0, 1, 3, | |
214 2, 0, 1, 3, | |
215 2, 0, 1, 3, | |
216 2, 0, 1, 3, | |
217 2, 0, 1, 3, | |
218 2, 0, 1, 3, | |
219 2, 0, 1, 3, | |
220 2, 0, 1, 3, | |
221 2, 0, 1, 3, | |
222 }; | |
223 | |
224 const unsigned char *alloc_tables[5] = | |
225 { alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, }; |