blob: 0fc9f59f510dcd437805ac178bd0c978d59f8d9c
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_sf.h,v 1.7 2007/11/01 12:34:11 menno Exp $ |
29 | **/ |
30 | |
31 | /* Binary search huffman table HCB_SF */ |
32 | |
33 | |
34 | static uint8_t hcb_sf[][2] = { |
35 | { /* 0 */ 1, 2 }, |
36 | { /* 1 */ 60, 0 }, |
37 | { /* 2 */ 1, 2 }, |
38 | { /* 3 */ 2, 3 }, |
39 | { /* 4 */ 3, 4 }, |
40 | { /* 5 */ 59, 0 }, |
41 | { /* 6 */ 3, 4 }, |
42 | { /* 7 */ 4, 5 }, |
43 | { /* 8 */ 5, 6 }, |
44 | { /* 9 */ 61, 0 }, |
45 | { /* 10 */ 58, 0 }, |
46 | { /* 11 */ 62, 0 }, |
47 | { /* 12 */ 3, 4 }, |
48 | { /* 13 */ 4, 5 }, |
49 | { /* 14 */ 5, 6 }, |
50 | { /* 15 */ 57, 0 }, |
51 | { /* 16 */ 63, 0 }, |
52 | { /* 17 */ 4, 5 }, |
53 | { /* 18 */ 5, 6 }, |
54 | { /* 19 */ 6, 7 }, |
55 | { /* 20 */ 7, 8 }, |
56 | { /* 21 */ 56, 0 }, |
57 | { /* 22 */ 64, 0 }, |
58 | { /* 23 */ 55, 0 }, |
59 | { /* 24 */ 65, 0 }, |
60 | { /* 25 */ 4, 5 }, |
61 | { /* 26 */ 5, 6 }, |
62 | { /* 27 */ 6, 7 }, |
63 | { /* 28 */ 7, 8 }, |
64 | { /* 29 */ 66, 0 }, |
65 | { /* 30 */ 54, 0 }, |
66 | { /* 31 */ 67, 0 }, |
67 | { /* 32 */ 5, 6 }, |
68 | { /* 33 */ 6, 7 }, |
69 | { /* 34 */ 7, 8 }, |
70 | { /* 35 */ 8, 9 }, |
71 | { /* 36 */ 9, 10 }, |
72 | { /* 37 */ 53, 0 }, |
73 | { /* 38 */ 68, 0 }, |
74 | { /* 39 */ 52, 0 }, |
75 | { /* 40 */ 69, 0 }, |
76 | { /* 41 */ 51, 0 }, |
77 | { /* 42 */ 5, 6 }, |
78 | { /* 43 */ 6, 7 }, |
79 | { /* 44 */ 7, 8 }, |
80 | { /* 45 */ 8, 9 }, |
81 | { /* 46 */ 9, 10 }, |
82 | { /* 47 */ 70, 0 }, |
83 | { /* 48 */ 50, 0 }, |
84 | { /* 49 */ 49, 0 }, |
85 | { /* 50 */ 71, 0 }, |
86 | { /* 51 */ 6, 7 }, |
87 | { /* 52 */ 7, 8 }, |
88 | { /* 53 */ 8, 9 }, |
89 | { /* 54 */ 9, 10 }, |
90 | { /* 55 */ 10, 11 }, |
91 | { /* 56 */ 11, 12 }, |
92 | { /* 57 */ 72, 0 }, |
93 | { /* 58 */ 48, 0 }, |
94 | { /* 59 */ 73, 0 }, |
95 | { /* 60 */ 47, 0 }, |
96 | { /* 61 */ 74, 0 }, |
97 | { /* 62 */ 46, 0 }, |
98 | { /* 63 */ 6, 7 }, |
99 | { /* 64 */ 7, 8 }, |
100 | { /* 65 */ 8, 9 }, |
101 | { /* 66 */ 9, 10 }, |
102 | { /* 67 */ 10, 11 }, |
103 | { /* 68 */ 11, 12 }, |
104 | { /* 69 */ 76, 0 }, |
105 | { /* 70 */ 75, 0 }, |
106 | { /* 71 */ 77, 0 }, |
107 | { /* 72 */ 78, 0 }, |
108 | { /* 73 */ 45, 0 }, |
109 | { /* 74 */ 43, 0 }, |
110 | { /* 75 */ 6, 7 }, |
111 | { /* 76 */ 7, 8 }, |
112 | { /* 77 */ 8, 9 }, |
113 | { /* 78 */ 9, 10 }, |
114 | { /* 79 */ 10, 11 }, |
115 | { /* 80 */ 11, 12 }, |
116 | { /* 81 */ 44, 0 }, |
117 | { /* 82 */ 79, 0 }, |
118 | { /* 83 */ 42, 0 }, |
119 | { /* 84 */ 41, 0 }, |
120 | { /* 85 */ 80, 0 }, |
121 | { /* 86 */ 40, 0 }, |
122 | { /* 87 */ 6, 7 }, |
123 | { /* 88 */ 7, 8 }, |
124 | { /* 89 */ 8, 9 }, |
125 | { /* 90 */ 9, 10 }, |
126 | { /* 91 */ 10, 11 }, |
127 | { /* 92 */ 11, 12 }, |
128 | { /* 93 */ 81, 0 }, |
129 | { /* 94 */ 39, 0 }, |
130 | { /* 95 */ 82, 0 }, |
131 | { /* 96 */ 38, 0 }, |
132 | { /* 97 */ 83, 0 }, |
133 | { /* 98 */ 7, 8 }, |
134 | { /* 99 */ 8, 9 }, |
135 | { /* 00 */ 9, 10 }, |
136 | { /* 01 */ 10, 11 }, |
137 | { /* 02 */ 11, 12 }, |
138 | { /* 03 */ 12, 13 }, |
139 | { /* 04 */ 13, 14 }, |
140 | { /* 05 */ 37, 0 }, |
141 | { /* 06 */ 35, 0 }, |
142 | { /* 07 */ 85, 0 }, |
143 | { /* 08 */ 33, 0 }, |
144 | { /* 09 */ 36, 0 }, |
145 | { /* 10 */ 34, 0 }, |
146 | { /* 11 */ 84, 0 }, |
147 | { /* 12 */ 32, 0 }, |
148 | { /* 13 */ 6, 7 }, |
149 | { /* 14 */ 7, 8 }, |
150 | { /* 15 */ 8, 9 }, |
151 | { /* 16 */ 9, 10 }, |
152 | { /* 17 */ 10, 11 }, |
153 | { /* 18 */ 11, 12 }, |
154 | { /* 19 */ 87, 0 }, |
155 | { /* 20 */ 89, 0 }, |
156 | { /* 21 */ 30, 0 }, |
157 | { /* 22 */ 31, 0 }, |
158 | { /* 23 */ 8, 9 }, |
159 | { /* 24 */ 9, 10 }, |
160 | { /* 25 */ 10, 11 }, |
161 | { /* 26 */ 11, 12 }, |
162 | { /* 27 */ 12, 13 }, |
163 | { /* 28 */ 13, 14 }, |
164 | { /* 29 */ 14, 15 }, |
165 | { /* 30 */ 15, 16 }, |
166 | { /* 31 */ 86, 0 }, |
167 | { /* 32 */ 29, 0 }, |
168 | { /* 33 */ 26, 0 }, |
169 | { /* 34 */ 27, 0 }, |
170 | { /* 35 */ 28, 0 }, |
171 | { /* 36 */ 24, 0 }, |
172 | { /* 37 */ 88, 0 }, |
173 | { /* 38 */ 9, 10 }, |
174 | { /* 39 */ 10, 11 }, |
175 | { /* 40 */ 11, 12 }, |
176 | { /* 41 */ 12, 13 }, |
177 | { /* 42 */ 13, 14 }, |
178 | { /* 43 */ 14, 15 }, |
179 | { /* 44 */ 15, 16 }, |
180 | { /* 45 */ 16, 17 }, |
181 | { /* 46 */ 17, 18 }, |
182 | { /* 47 */ 25, 0 }, |
183 | { /* 48 */ 22, 0 }, |
184 | { /* 49 */ 23, 0 }, |
185 | { /* 50 */ 15, 16 }, |
186 | { /* 51 */ 16, 17 }, |
187 | { /* 52 */ 17, 18 }, |
188 | { /* 53 */ 18, 19 }, |
189 | { /* 54 */ 19, 20 }, |
190 | { /* 55 */ 20, 21 }, |
191 | { /* 56 */ 21, 22 }, |
192 | { /* 57 */ 22, 23 }, |
193 | { /* 58 */ 23, 24 }, |
194 | { /* 59 */ 24, 25 }, |
195 | { /* 60 */ 25, 26 }, |
196 | { /* 61 */ 26, 27 }, |
197 | { /* 62 */ 27, 28 }, |
198 | { /* 63 */ 28, 29 }, |
199 | { /* 64 */ 29, 30 }, |
200 | { /* 65 */ 90, 0 }, |
201 | { /* 66 */ 21, 0 }, |
202 | { /* 67 */ 19, 0 }, |
203 | { /* 68 */ 3, 0 }, |
204 | { /* 69 */ 1, 0 }, |
205 | { /* 70 */ 2, 0 }, |
206 | { /* 71 */ 0, 0 }, |
207 | { /* 72 */ 23, 24 }, |
208 | { /* 73 */ 24, 25 }, |
209 | { /* 74 */ 25, 26 }, |
210 | { /* 75 */ 26, 27 }, |
211 | { /* 76 */ 27, 28 }, |
212 | { /* 77 */ 28, 29 }, |
213 | { /* 78 */ 29, 30 }, |
214 | { /* 79 */ 30, 31 }, |
215 | { /* 80 */ 31, 32 }, |
216 | { /* 81 */ 32, 33 }, |
217 | { /* 82 */ 33, 34 }, |
218 | { /* 83 */ 34, 35 }, |
219 | { /* 84 */ 35, 36 }, |
220 | { /* 85 */ 36, 37 }, |
221 | { /* 86 */ 37, 38 }, |
222 | { /* 87 */ 38, 39 }, |
223 | { /* 88 */ 39, 40 }, |
224 | { /* 89 */ 40, 41 }, |
225 | { /* 90 */ 41, 42 }, |
226 | { /* 91 */ 42, 43 }, |
227 | { /* 92 */ 43, 44 }, |
228 | { /* 93 */ 44, 45 }, |
229 | { /* 94 */ 45, 46 }, |
230 | { /* 95 */ 98, 0 }, |
231 | { /* 96 */ 99, 0 }, |
232 | { /* 97 */ 100, 0 }, |
233 | { /* 98 */ 101, 0 }, |
234 | { /* 99 */ 102, 0 }, |
235 | { /* 00 */ 117, 0 }, |
236 | { /* 01 */ 97, 0 }, |
237 | { /* 02 */ 91, 0 }, |
238 | { /* 03 */ 92, 0 }, |
239 | { /* 04 */ 93, 0 }, |
240 | { /* 05 */ 94, 0 }, |
241 | { /* 06 */ 95, 0 }, |
242 | { /* 07 */ 96, 0 }, |
243 | { /* 08 */ 104, 0 }, |
244 | { /* 09 */ 111, 0 }, |
245 | { /* 10 */ 112, 0 }, |
246 | { /* 11 */ 113, 0 }, |
247 | { /* 12 */ 114, 0 }, |
248 | { /* 13 */ 115, 0 }, |
249 | { /* 14 */ 116, 0 }, |
250 | { /* 15 */ 110, 0 }, |
251 | { /* 16 */ 105, 0 }, |
252 | { /* 17 */ 106, 0 }, |
253 | { /* 18 */ 107, 0 }, |
254 | { /* 19 */ 108, 0 }, |
255 | { /* 20 */ 109, 0 }, |
256 | { /* 21 */ 118, 0 }, |
257 | { /* 22 */ 6, 0 }, |
258 | { /* 23 */ 8, 0 }, |
259 | { /* 24 */ 9, 0 }, |
260 | { /* 25 */ 10, 0 }, |
261 | { /* 26 */ 5, 0 }, |
262 | { /* 27 */ 103, 0 }, |
263 | { /* 28 */ 120, 0 }, |
264 | { /* 29 */ 119, 0 }, |
265 | { /* 30 */ 4, 0 }, |
266 | { /* 31 */ 7, 0 }, |
267 | { /* 32 */ 15, 0 }, |
268 | { /* 33 */ 16, 0 }, |
269 | { /* 34 */ 18, 0 }, |
270 | { /* 35 */ 20, 0 }, |
271 | { /* 36 */ 17, 0 }, |
272 | { /* 37 */ 11, 0 }, |
273 | { /* 38 */ 12, 0 }, |
274 | { /* 39 */ 14, 0 }, |
275 | { /* 40 */ 13, 0 } |
276 | }; |
277 |