blob: 6bcf66ccf0a54a2b161c029e9668f31e758e30ad
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_3.h,v 1.5 2007/11/01 12:34:11 menno Exp $ |
29 | **/ |
30 | |
31 | /* Binary search huffman table HCB_3 */ |
32 | |
33 | |
34 | static hcb_bin_quad hcb3[] = { |
35 | { /* 0 */ 0, { 1, 2, 0, 0 } }, |
36 | { /* 1 */ 1, { 0, 0, 0, 0 } }, /* 0 */ |
37 | { /* 2 */ 0, { 1, 2, 0, 0 } }, |
38 | { /* 3 */ 0, { 2, 3, 0, 0 } }, |
39 | { /* 4 */ 0, { 3, 4, 0, 0 } }, |
40 | { /* 5 */ 0, { 4, 5, 0, 0 } }, |
41 | { /* 6 */ 0, { 5, 6, 0, 0 } }, |
42 | { /* 7 */ 0, { 6, 7, 0, 0 } }, |
43 | { /* 8 */ 0, { 7, 8, 0, 0 } }, |
44 | { /* 9 */ 1, { 1, 0, 0, 0 } }, /* 1000 */ |
45 | { /* 10 */ 1, { 0, 0, 0, 1 } }, /* 1001 */ |
46 | { /* 11 */ 1, { 0, 1, 0, 0 } }, /* 1010 */ |
47 | { /* 12 */ 1, { 0, 0, 1, 0 } }, /* 1011 */ |
48 | { /* 13 */ 0, { 4, 5, 0, 0 } }, |
49 | { /* 14 */ 0, { 5, 6, 0, 0 } }, |
50 | { /* 15 */ 0, { 6, 7, 0, 0 } }, |
51 | { /* 16 */ 0, { 7, 8, 0, 0 } }, |
52 | { /* 17 */ 1, { 1, 1, 0, 0 } }, |
53 | { /* 18 */ 1, { 0, 0, 1, 1 } }, |
54 | { /* 19 */ 0, { 6, 7, 0, 0 } }, |
55 | { /* 20 */ 0, { 7, 8, 0, 0 } }, |
56 | { /* 21 */ 0, { 8, 9, 0, 0 } }, |
57 | { /* 22 */ 0, { 9, 10, 0, 0 } }, |
58 | { /* 23 */ 0, { 10, 11, 0, 0 } }, |
59 | { /* 24 */ 0, { 11, 12, 0, 0 } }, |
60 | { /* 25 */ 1, { 0, 1, 1, 0 } }, /* 110100 */ |
61 | { /* 26 */ 1, { 0, 1, 0, 1 } }, /* 110101 */ |
62 | { /* 27 */ 1, { 1, 0, 1, 0 } }, /* 110110 */ |
63 | { /* 28 */ 1, { 0, 1, 1, 1 } }, /* 110111 */ |
64 | { /* 29 */ 1, { 1, 0, 0, 1 } }, /* 111000 */ |
65 | { /* 30 */ 1, { 1, 1, 1, 0 } }, /* 111001 */ |
66 | { /* 31 */ 0, { 6, 7, 0, 0 } }, |
67 | { /* 32 */ 0, { 7, 8, 0, 0 } }, |
68 | { /* 33 */ 0, { 8, 9, 0, 0 } }, |
69 | { /* 34 */ 0, { 9, 10, 0, 0 } }, |
70 | { /* 35 */ 0, { 10, 11, 0, 0 } }, |
71 | { /* 36 */ 0, { 11, 12, 0, 0 } }, |
72 | { /* 37 */ 1, { 1, 1, 1, 1 } }, /* 1110100 */ |
73 | { /* 38 */ 1, { 1, 0, 1, 1 } }, /* 1110101 */ |
74 | { /* 39 */ 1, { 1, 1, 0, 1 } }, /* 1110110 */ |
75 | { /* 40 */ 0, { 9, 10, 0, 0 } }, |
76 | { /* 41 */ 0, { 10, 11, 0, 0 } }, |
77 | { /* 42 */ 0, { 11, 12, 0, 0 } }, |
78 | { /* 43 */ 0, { 12, 13, 0, 0 } }, |
79 | { /* 44 */ 0, { 13, 14, 0, 0 } }, |
80 | { /* 45 */ 0, { 14, 15, 0, 0 } }, |
81 | { /* 46 */ 0, { 15, 16, 0, 0 } }, |
82 | { /* 47 */ 0, { 16, 17, 0, 0 } }, |
83 | { /* 48 */ 0, { 17, 18, 0, 0 } }, |
84 | { /* 49 */ 1, { 2, 0, 0, 0 } }, /* 11101110 */ |
85 | { /* 50 */ 1, { 0, 0, 0, 2 } }, /* 11101111 */ |
86 | { /* 51 */ 1, { 0, 0, 1, 2 } }, /* 11110000 */ |
87 | { /* 52 */ 1, { 2, 1, 0, 0 } }, /* 11110001 */ |
88 | { /* 53 */ 1, { 1, 2, 1, 0 } }, /* 11110010 */ |
89 | { /* 54 */ 0, { 13, 14, 0, 0 } }, |
90 | { /* 55 */ 0, { 14, 15, 0, 0 } }, |
91 | { /* 56 */ 0, { 15, 16, 0, 0 } }, |
92 | { /* 57 */ 0, { 16, 17, 0, 0 } }, |
93 | { /* 58 */ 0, { 17, 18, 0, 0 } }, |
94 | { /* 59 */ 0, { 18, 19, 0, 0 } }, |
95 | { /* 60 */ 0, { 19, 20, 0, 0 } }, |
96 | { /* 61 */ 0, { 20, 21, 0, 0 } }, |
97 | { /* 62 */ 0, { 21, 22, 0, 0 } }, |
98 | { /* 63 */ 0, { 22, 23, 0, 0 } }, |
99 | { /* 64 */ 0, { 23, 24, 0, 0 } }, |
100 | { /* 65 */ 0, { 24, 25, 0, 0 } }, |
101 | { /* 66 */ 0, { 25, 26, 0, 0 } }, |
102 | { /* 67 */ 1, { 0, 0, 2, 1 } }, |
103 | { /* 68 */ 1, { 0, 1, 2, 1 } }, |
104 | { /* 69 */ 1, { 1, 2, 0, 0 } }, |
105 | { /* 70 */ 1, { 0, 1, 1, 2 } }, |
106 | { /* 71 */ 1, { 2, 1, 1, 0 } }, |
107 | { /* 72 */ 1, { 0, 0, 2, 0 } }, |
108 | { /* 73 */ 1, { 0, 2, 1, 0 } }, |
109 | { /* 74 */ 1, { 0, 1, 2, 0 } }, |
110 | { /* 75 */ 1, { 0, 2, 0, 0 } }, |
111 | { /* 76 */ 1, { 0, 1, 0, 2 } }, |
112 | { /* 77 */ 1, { 2, 0, 1, 0 } }, |
113 | { /* 78 */ 1, { 1, 2, 1, 1 } }, |
114 | { /* 79 */ 1, { 0, 2, 1, 1 } }, |
115 | { /* 80 */ 1, { 1, 1, 2, 0 } }, |
116 | { /* 81 */ 1, { 1, 1, 2, 1 } }, |
117 | { /* 82 */ 0, { 11, 12, 0, 0 } }, |
118 | { /* 83 */ 0, { 12, 13, 0, 0 } }, |
119 | { /* 84 */ 0, { 13, 14, 0, 0 } }, |
120 | { /* 85 */ 0, { 14, 15, 0, 0 } }, |
121 | { /* 86 */ 0, { 15, 16, 0, 0 } }, |
122 | { /* 87 */ 0, { 16, 17, 0, 0 } }, |
123 | { /* 88 */ 0, { 17, 18, 0, 0 } }, |
124 | { /* 89 */ 0, { 18, 19, 0, 0 } }, |
125 | { /* 90 */ 0, { 19, 20, 0, 0 } }, |
126 | { /* 91 */ 0, { 20, 21, 0, 0 } }, |
127 | { /* 92 */ 0, { 21, 22, 0, 0 } }, |
128 | { /* 93 */ 1, { 1, 2, 0, 1 } }, /* 1111101010 */ |
129 | { /* 94 */ 1, { 1, 0, 2, 0 } }, /* 1111101011 */ |
130 | { /* 95 */ 1, { 1, 0, 2, 1 } }, /* 1111101100 */ |
131 | { /* 96 */ 1, { 0, 2, 0, 1 } }, /* 1111101101 */ |
132 | { /* 97 */ 1, { 2, 1, 1, 1 } }, /* 1111101110 */ |
133 | { /* 98 */ 1, { 1, 1, 1, 2 } }, /* 1111101111 */ |
134 | { /* 99 */ 1, { 2, 1, 0, 1 } }, /* 1111110000 */ |
135 | { /* 00 */ 1, { 1, 0, 1, 2 } }, /* 1111110001 */ |
136 | { /* 01 */ 1, { 0, 0, 2, 2 } }, /* 1111110010 */ |
137 | { /* 02 */ 1, { 0, 1, 2, 2 } }, /* 1111110011 */ |
138 | { /* 03 */ 1, { 2, 2, 1, 0 } }, /* 1111110100 */ |
139 | { /* 04 */ 1, { 1, 2, 2, 0 } }, /* 1111110101 */ |
140 | { /* 05 */ 1, { 1, 0, 0, 2 } }, /* 1111110110 */ |
141 | { /* 06 */ 1, { 2, 0, 0, 1 } }, /* 1111110111 */ |
142 | { /* 07 */ 1, { 0, 2, 2, 1 } }, /* 1111111000 */ |
143 | { /* 08 */ 0, { 7, 8, 0, 0 } }, |
144 | { /* 09 */ 0, { 8, 9, 0, 0 } }, |
145 | { /* 10 */ 0, { 9, 10, 0, 0 } }, |
146 | { /* 11 */ 0, { 10, 11, 0, 0 } }, |
147 | { /* 12 */ 0, { 11, 12, 0, 0 } }, |
148 | { /* 13 */ 0, { 12, 13, 0, 0 } }, |
149 | { /* 14 */ 0, { 13, 14, 0, 0 } }, |
150 | { /* 15 */ 1, { 2, 2, 0, 0 } }, /* 11111110010 */ |
151 | { /* 16 */ 1, { 1, 2, 2, 1 } }, /* 11111110011 */ |
152 | { /* 17 */ 1, { 1, 1, 0, 2 } }, /* 11111110100 */ |
153 | { /* 18 */ 1, { 2, 0, 1, 1 } }, /* 11111110101 */ |
154 | { /* 19 */ 1, { 1, 1, 2, 2 } }, /* 11111110110 */ |
155 | { /* 20 */ 1, { 2, 2, 1, 1 } }, /* 11111110111 */ |
156 | { /* 21 */ 1, { 0, 2, 2, 0 } }, /* 11111111000 */ |
157 | { /* 22 */ 1, { 0, 2, 1, 2 } }, /* 11111111001 */ |
158 | { /* 23 */ 0, { 6, 7, 0, 0 } }, |
159 | { /* 24 */ 0, { 7, 8, 0, 0 } }, |
160 | { /* 25 */ 0, { 8, 9, 0, 0 } }, |
161 | { /* 26 */ 0, { 9, 10, 0, 0 } }, |
162 | { /* 27 */ 0, { 10, 11, 0, 0 } }, |
163 | { /* 28 */ 0, { 11, 12, 0, 0 } }, |
164 | { /* 29 */ 1, { 1, 0, 2, 2 } }, /* 111111110100 */ |
165 | { /* 30 */ 1, { 2, 2, 0, 1 } }, /* 111111110101 */ |
166 | { /* 31 */ 1, { 2, 1, 2, 0 } }, /* 111111110110 */ |
167 | { /* 32 */ 1, { 2, 2, 2, 0 } }, /* 111111110111 */ |
168 | { /* 33 */ 1, { 0, 2, 2, 2 } }, /* 111111111000 */ |
169 | { /* 34 */ 1, { 2, 2, 2, 1 } }, /* 111111111001 */ |
170 | { /* 35 */ 1, { 2, 1, 2, 1 } }, /* 111111111010 */ |
171 | { /* 36 */ 1, { 1, 2, 1, 2 } }, /* 111111111011 */ |
172 | { /* 37 */ 1, { 1, 2, 2, 2 } }, /* 111111111100 */ |
173 | { /* 38 */ 0, { 3, 4, 0, 0 } }, |
174 | { /* 39 */ 0, { 4, 5, 0, 0 } }, |
175 | { /* 40 */ 0, { 5, 6, 0, 0 } }, |
176 | { /* 41 */ 1, { 0, 2, 0, 2 } }, /* 1111111111010 */ |
177 | { /* 42 */ 1, { 2, 0, 2, 0 } }, /* 1111111111011 */ |
178 | { /* 43 */ 1, { 1, 2, 0, 2 } }, /* 1111111111100 */ |
179 | { /* 44 */ 0, { 3, 4, 0, 0 } }, |
180 | { /* 45 */ 0, { 4, 5, 0, 0 } }, |
181 | { /* 46 */ 0, { 5, 6, 0, 0 } }, |
182 | { /* 47 */ 1, { 2, 0, 2, 1 } }, /* 11111111111010 */ |
183 | { /* 48 */ 1, { 2, 1, 1, 2 } }, /* 11111111111011 */ |
184 | { /* 49 */ 1, { 2, 1, 0, 2 } }, /* 11111111111100 */ |
185 | { /* 50 */ 0, { 3, 4, 0, 0 } }, |
186 | { /* 51 */ 0, { 4, 5, 0, 0 } }, |
187 | { /* 52 */ 0, { 5, 6, 0, 0 } }, |
188 | { /* 53 */ 1, { 2, 2, 2, 2 } }, /* 111111111111010 */ |
189 | { /* 54 */ 1, { 2, 2, 1, 2 } }, /* 111111111111011 */ |
190 | { /* 55 */ 1, { 2, 1, 2, 2 } }, /* 111111111111100 */ |
191 | { /* 56 */ 1, { 2, 0, 1, 2 } }, /* 111111111111101 */ |
192 | { /* 57 */ 1, { 2, 0, 0, 2 } }, /* 111111111111110 */ |
193 | { /* 58 */ 0, { 1, 2, 0, 0 } }, |
194 | { /* 59 */ 1, { 2, 2, 0, 2 } }, /* 1111111111111110 */ |
195 | { /* 60 */ 1, { 2, 0, 2, 2 } } /* 1111111111111111 */ |
196 | }; |
197 |