]> 4ch.mooo.com Git - 16.git/blob - src/lib/doslib/ext/faad/codebook/hcb_11.h
wwww
[16.git] / src / lib / doslib / ext / faad / codebook / hcb_11.h
1 /*
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
3 ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com
4 **  
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
9 ** 
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 ** GNU General Public License for more details.
14 ** 
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software 
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 **
19 ** Any non-GPL usage of this software or parts of this software is strictly
20 ** forbidden.
21 **
22 ** The "appropriate copyright message" mentioned in section 2c of the GPLv2
23 ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com"
24 **
25 ** Commercial non-GPL licensing of this software is possible.
26 ** For more info contact Nero AG through Mpeg4AAClicense@nero.com.
27 **
28 ** $Id: hcb_11.h,v 1.5 2007/11/01 12:34:11 menno Exp $
29 **/
30
31 /* 2-step huffman table HCB_11 */
32
33
34 /* 1st step: 5 bits
35  *           2^5 = 32 entries
36  *
37  * Used to find offset into 2nd step table and number of extra bits to get
38  */
39 static hcb hcb11_1[] = {
40     /* 4 bits */
41     { /* 00000 */ 0, 0 },
42     { /*       */ 0, 0 },
43     { /* 00010 */ 1, 0 },
44     { /*       */ 1, 0 },
45
46     /* 5 bits */
47     { /* 00100 */ 2, 0 },
48     { /* 00101 */ 3, 0 },
49     { /* 00110 */ 4, 0 },
50     { /* 00111 */ 5, 0 },
51     { /* 01000 */ 6, 0 },
52     { /* 01001 */ 7, 0 },
53
54     /* 6 bits */
55     { /* 01010 */ 8,  1 },
56     { /* 01011 */ 10, 1 },
57     { /* 01100 */ 12, 1 },
58
59     /* 6/7 bits */
60     { /* 01101 */ 14, 2 },
61
62     /* 7 bits */
63     { /* 01110 */ 18, 2 },
64     { /* 01111 */ 22, 2 },
65     { /* 10000 */ 26, 2 },
66
67     /* 7/8 bits */
68     { /* 10001 */ 30, 3 },
69
70     /* 8 bits */
71     { /* 10010 */ 38, 3 },
72     { /* 10011 */ 46, 3 },
73     { /* 10100 */ 54, 3 },
74     { /* 10101 */ 62, 3 },
75     { /* 10110 */ 70, 3 },
76     { /* 10111 */ 78, 3 },
77
78     /* 8/9 bits */
79     { /* 11000 */ 86, 4 },
80
81     /* 9 bits */
82     { /* 11001 */ 102, 4 },
83     { /* 11010 */ 118, 4 },
84     { /* 11011 */ 134, 4 },
85
86     /* 9/10 bits */
87     { /* 11100 */ 150, 5 },
88
89     /* 10 bits */
90     { /* 11101 */ 182, 5 },
91     { /* 11110 */ 214, 5 },
92
93     /* 10/11/12 bits */
94     { /* 11111 */ 246, 7 }
95 };
96
97 /* 2nd step table
98  *
99  * Gives size of codeword and actual data (x,y,v,w)
100  */
101 static hcb_2_pair hcb11_2[] = {
102     /* 4 */
103     { 4,  0,  0 },
104     { 4,  1,  1 },
105
106     /* 5 */
107     { 5, 16, 16 },
108     { 5,  1,  0 },
109     { 5,  0,  1 },
110     { 5,  2,  1 },
111     { 5,  1,  2 },
112     { 5,  2,  2 },
113
114     /* 6 */
115     { 6,  1,  3 },
116     { 6,  3,  1 },
117     { 6,  3,  2 },
118     { 6,  2,  0 },
119     { 6,  2,  3 },
120     { 6,  0,  2 },
121
122     /* 6/7 */
123     { 6,  3,  3 }, { 6,  3,  3 },
124     { 7,  4,  1 },
125     { 7,  1,  4 },
126
127     /* 7 */
128     { 7,  4,  2 },
129     { 7,  2,  4 },
130     { 7,  4,  3 },
131     { 7,  3,  4 },
132     { 7,  3,  0 },
133     { 7,  0,  3 },
134     { 7,  5,  1 },
135     { 7,  5,  2 },
136     { 7,  2,  5 },
137     { 7,  4,  4 },
138     { 7,  1,  5 },
139     { 7,  5,  3 },
140
141     /* 7/8 */
142     { 7,  3,  5 }, { 7,  3,  5 },
143     { 7,  5,  4 }, { 7,  5,  4 },
144     { 8,  4,  5 },
145     { 8,  6,  2 },
146     { 8,  2,  6 },
147     { 8,  6,  1 },
148
149     /* 8 */
150     { 8,  6,  3 },
151     { 8,  3,  6 },
152     { 8,  1,  6 },
153     { 8,  4, 16 },
154     { 8,  3, 16 },
155     { 8, 16,  5 },
156     { 8, 16,  3 },
157     { 8, 16,  4 },
158     { 8,  6,  4 },
159     { 8, 16,  6 },
160     { 8,  4,  0 },
161     { 8,  4,  6 },
162     { 8,  0,  4 },
163     { 8,  2, 16 },
164     { 8,  5,  5 },
165     { 8,  5, 16 },
166     { 8, 16,  7 },
167     { 8, 16,  2 },
168     { 8, 16,  8 },
169     { 8,  2,  7 },
170     { 8,  7,  2 },
171     { 8,  3,  7 },
172     { 8,  6,  5 },
173     { 8,  5,  6 },
174     { 8,  6, 16 },
175     { 8, 16, 10 },
176     { 8,  7,  3 },
177     { 8,  7,  1 },
178     { 8, 16,  9 },
179     { 8,  7, 16 },
180     { 8,  1, 16 },
181     { 8,  1,  7 },
182     { 8,  4,  7 },
183     { 8, 16, 11 },
184     { 8,  7,  4 },
185     { 8, 16, 12 },
186     { 8,  8, 16 },
187     { 8, 16,  1 },
188     { 8,  6,  6 },
189     { 8,  9, 16 },
190     { 8,  2,  8 },
191     { 8,  5,  7 },
192     { 8, 10, 16 },
193     { 8, 16, 13 },
194     { 8,  8,  3 },
195     { 8,  8,  2 },
196     { 8,  3,  8 },
197     { 8,  5,  0 },
198
199     /* 8/9 */
200     { 8, 16, 14 }, { 8, 16, 14 },
201     { 8, 11, 16 }, { 8, 11, 16 },
202     { 8,  7,  5 }, { 8,  7,  5 },
203     { 8,  4,  8 }, { 8,  4,  8 },
204     { 8,  6,  7 }, { 8,  6,  7 },
205     { 8,  7,  6 }, { 8,  7,  6 },
206     { 8,  0,  5 }, { 8,  0,  5 },
207     { 9,  8,  4 },
208     { 9, 16, 15 },
209
210     /* 9 */
211     { 9, 12, 16 },
212     { 9,  1,  8 },
213     { 9,  8,  1 },
214     { 9, 14, 16 },
215     { 9,  5,  8 },
216     { 9, 13, 16 },
217     { 9,  3,  9 },
218     { 9,  8,  5 },
219     { 9,  7,  7 },
220     { 9,  2,  9 },
221     { 9,  8,  6 },
222     { 9,  9,  2 },
223     { 9,  9,  3 },
224     { 9, 15, 16 },
225     { 9,  4,  9 },
226     { 9,  6,  8 },
227     { 9,  6,  0 },
228     { 9,  9,  4 },
229     { 9,  5,  9 },
230     { 9,  8,  7 },
231     { 9,  7,  8 },
232     { 9,  1,  9 },
233     { 9, 10,  3 },
234     { 9,  0,  6 },
235     { 9, 10,  2 },
236     { 9,  9,  1 },
237     { 9,  9,  5 },
238     { 9,  4, 10 },
239     { 9,  2, 10 },
240     { 9,  9,  6 },
241     { 9,  3, 10 },
242     { 9,  6,  9 },
243     { 9, 10,  4 },
244     { 9,  8,  8 },
245     { 9, 10,  5 },
246     { 9,  9,  7 },
247     { 9, 11,  3 },
248     { 9,  1, 10 },
249     { 9,  7,  0 },
250     { 9, 10,  6 },
251     { 9,  7,  9 },
252     { 9,  3, 11 },
253     { 9,  5, 10 },
254     { 9, 10,  1 },
255     { 9,  4, 11 },
256     { 9, 11,  2 },
257     { 9, 13,  2 },
258     { 9,  6, 10 },
259
260     /* 9/10 */
261     { 9, 13,  3 }, { 9, 13,  3 },
262     { 9,  2, 11 }, { 9,  2, 11 },
263     { 9, 16,  0 }, { 9, 16,  0 },
264     { 9,  5, 11 }, { 9,  5, 11 },
265     { 9, 11,  5 }, { 9, 11,  5 },
266     { 10, 11,  4 },
267     { 10,  9,  8 },
268     { 10,  7, 10 },
269     { 10,  8,  9 },
270     { 10,  0, 16 },
271     { 10,  4, 13 },
272     { 10,  0,  7 },
273     { 10,  3, 13 },
274     { 10, 11,  6 },
275     { 10, 13,  1 },
276     { 10, 13,  4 },
277     { 10, 12,  3 },
278     { 10,  2, 13 },
279     { 10, 13,  5 },
280     { 10,  8, 10 },
281     { 10,  6, 11 },
282     { 10, 10,  8 },
283     { 10, 10,  7 },
284     { 10, 14,  2 },
285     { 10, 12,  4 },
286     { 10,  1, 11 },
287     { 10,  4, 12 },
288
289     /* 10 */
290     { 10, 11,  1 },
291     { 10,  3, 12 },
292     { 10,  1, 13 },
293     { 10, 12,  2 },
294     { 10,  7, 11 },
295     { 10,  3, 14 },
296     { 10,  5, 12 },
297     { 10,  5, 13 },
298     { 10, 14,  4 },
299     { 10,  4, 14 },
300     { 10, 11,  7 },
301     { 10, 14,  3 },
302     { 10, 12,  5 },
303     { 10, 13,  6 },
304     { 10, 12,  6 },
305     { 10,  8,  0 },
306     { 10, 11,  8 },
307     { 10,  2, 12 },
308     { 10,  9,  9 },
309     { 10, 14,  5 },
310     { 10,  6, 13 },
311     { 10, 10, 10 },
312     { 10, 15,  2 },
313     { 10,  8, 11 },
314     { 10,  9, 10 },
315     { 10, 14,  6 },
316     { 10, 10,  9 },
317     { 10,  5, 14 },
318     { 10, 11,  9 },
319     { 10, 14,  1 },
320     { 10,  2, 14 },
321     { 10,  6, 12 },
322     { 10,  1, 12 },
323     { 10, 13,  8 },
324     { 10,  0,  8 },
325     { 10, 13,  7 },
326     { 10,  7, 12 },
327     { 10, 12,  7 },
328     { 10,  7, 13 },
329     { 10, 15,  3 },
330     { 10, 12,  1 },
331     { 10,  6, 14 },
332     { 10,  2, 15 },
333     { 10, 15,  5 },
334     { 10, 15,  4 },
335     { 10,  1, 14 },
336     { 10,  9, 11 },
337     { 10,  4, 15 },
338     { 10, 14,  7 },
339     { 10,  8, 13 },
340     { 10, 13,  9 },
341     { 10,  8, 12 },
342     { 10,  5, 15 },
343     { 10,  3, 15 },
344     { 10, 10, 11 },
345     { 10, 11, 10 },
346     { 10, 12,  8 },
347     { 10, 15,  6 },
348     { 10, 15,  7 },
349     { 10,  8, 14 },
350     { 10, 15,  1 },
351     { 10,  7, 14 },
352     { 10,  9,  0 },
353     { 10,  0,  9 },
354
355     /* 10/11/12 */
356     { 10,  9, 13 }, { 10,  9, 13 }, { 10,  9, 13 }, { 10,  9, 13 },
357     { 10,  9, 12 }, { 10,  9, 12 }, { 10,  9, 12 }, { 10,  9, 12 },
358     { 10, 12,  9 }, { 10, 12,  9 }, { 10, 12,  9 }, { 10, 12,  9 },
359     { 10, 14,  8 }, { 10, 14,  8 }, { 10, 14,  8 }, { 10, 14,  8 },
360     { 10, 10, 13 }, { 10, 10, 13 }, { 10, 10, 13 }, { 10, 10, 13 },
361     { 10, 14,  9 }, { 10, 14,  9 }, { 10, 14,  9 }, { 10, 14,  9 },
362     { 10, 12, 10 }, { 10, 12, 10 }, { 10, 12, 10 }, { 10, 12, 10 },
363     { 10,  6, 15 }, { 10,  6, 15 }, { 10,  6, 15 }, { 10,  6, 15 },
364     { 10,  7, 15 }, { 10,  7, 15 }, { 10,  7, 15 }, { 10,  7, 15 },
365
366     { 11,  9, 14 }, { 11,  9, 14 },
367     { 11, 15,  8 }, { 11, 15,  8 },
368     { 11, 11, 11 }, { 11, 11, 11 },
369     { 11, 11, 14 }, { 11, 11, 14 },
370     { 11,  1, 15 }, { 11,  1, 15 },
371     { 11, 10, 12 }, { 11, 10, 12 },
372     { 11, 10, 14 }, { 11, 10, 14 },
373     { 11, 13, 11 }, { 11, 13, 11 },
374     { 11, 13, 10 }, { 11, 13, 10 },
375     { 11, 11, 13 }, { 11, 11, 13 },
376     { 11, 11, 12 }, { 11, 11, 12 },
377     { 11,  8, 15 }, { 11,  8, 15 },
378     { 11, 14, 11 }, { 11, 14, 11 },
379     { 11, 13, 12 }, { 11, 13, 12 },
380     { 11, 12, 13 }, { 11, 12, 13 },
381     { 11, 15,  9 }, { 11, 15,  9 },
382     { 11, 14, 10 }, { 11, 14, 10 },
383     { 11, 10,  0 }, { 11, 10,  0 },
384     { 11, 12, 11 }, { 11, 12, 11 },
385     { 11,  9, 15 }, { 11,  9, 15 },
386     { 11,  0, 10 }, { 11,  0, 10 },
387     { 11, 12, 12 }, { 11, 12, 12 },
388     { 11, 11,  0 }, { 11, 11,  0 },
389     { 11, 12, 14 }, { 11, 12, 14 },
390     { 11, 10, 15 }, { 11, 10, 15 },
391     { 11, 13, 13 }, { 11, 13, 13 },
392     { 11,  0, 13 }, { 11,  0, 13 },
393     { 11, 14, 12 }, { 11, 14, 12 },
394     { 11, 15, 10 }, { 11, 15, 10 },
395     { 11, 15, 11 }, { 11, 15, 11 },
396     { 11, 11, 15 }, { 11, 11, 15 },
397     { 11, 14, 13 }, { 11, 14, 13 },
398     { 11, 13,  0 }, { 11, 13,  0 },
399     { 11,  0, 11 }, { 11,  0, 11 },
400     { 11, 13, 14 }, { 11, 13, 14 },
401     { 11, 15, 12 }, { 11, 15, 12 },
402     { 11, 15, 13 }, { 11, 15, 13 },
403     { 11, 12, 15 }, { 11, 12, 15 },
404     { 11, 14,  0 }, { 11, 14,  0 },
405     { 11, 14, 14 }, { 11, 14, 14 },
406     { 11, 13, 15 }, { 11, 13, 15 },
407     { 11, 12,  0 }, { 11, 12,  0 },
408     { 11, 14, 15 }, { 11, 14, 15 },
409     { 12,  0, 14 },
410     { 12,  0, 12 },
411     { 12, 15, 14 },
412     { 12, 15,  0 },
413     { 12,  0, 15 },
414     { 12, 15, 15 }
415 };