Remove svn $Id$ header.
[platform/upstream/libvorbis.git] / lib / modes / residue_44p51.h
1 /********************************************************************
2  *                                                                  *
3  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
4  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
5  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
7  *                                                                  *
8  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010             *
9  * by the Xiph.Org Foundation http://www.xiph.org/                  *
10  *                                                                  *
11  ********************************************************************
12
13  function: toplevel residue templates for 32/44.1/48kHz uncoupled
14
15  ********************************************************************/
16
17 #include "vorbis/codec.h"
18 #include "backends.h"
19
20 #include "books/coupled/res_books_51.h"
21
22 /***** residue backends *********************************************/
23
24 static const vorbis_info_residue0 _residue_44p_lo={
25   0,-1, -1, 7,-1,-1,
26   /* 0   1   2   3   4   5   6   7   8  */
27   {0},
28   {-1},
29   {  0,  1,  2,  7, 17, 31},
30   {  0,  0, 99,  7, 17, 31},
31 };
32
33 static const vorbis_info_residue0 _residue_44p={
34   0,-1, -1, 8,-1,-1,
35   /* 0   1   2   3   4   5   6   7   8  */
36   {0},
37   {-1},
38   {  0,  1,  1,   2,  7, 17, 31},
39   {  0,  0, 99,  99,  7, 17, 31},
40 };
41
42 static const vorbis_info_residue0 _residue_44p_hi={
43   0,-1, -1, 8,-1,-1,
44   /* 0   1   2   3   4   5   6   7   8  */
45   {0},
46   {-1},
47   {  0,  1,  2,  4,  7, 17, 31},
48   {  0,  1,  2,  4,  7, 17, 31},
49 };
50
51 static const vorbis_info_residue0 _residue_44p_lfe={
52   0,-1, -1, 2,-1,-1,
53   /* 0   1   2   3   4   5   6   7   8  */
54   {0},
55   {-1},
56   { 32},
57   { -1}
58 };
59
60 static const static_bookblock _resbook_44p_n1={
61   {
62     {0},
63     {0,&_44pn1_p1_0},
64
65     {&_44pn1_p2_0,&_44pn1_p2_1,0},
66     {&_44pn1_p3_0,&_44pn1_p3_1,0},
67     {&_44pn1_p4_0,&_44pn1_p4_1,0},
68
69     {&_44pn1_p5_0,&_44pn1_p5_1,&_44pn1_p4_1},
70     {&_44pn1_p6_0,&_44pn1_p6_1,&_44pn1_p6_2},
71    }
72 };
73
74 static const static_bookblock _resbook_44p_0={
75   {
76     {0},
77     {0,&_44p0_p1_0},
78
79     {&_44p0_p2_0,&_44p0_p2_1,0},
80     {&_44p0_p3_0,&_44p0_p3_1,0},
81     {&_44p0_p4_0,&_44p0_p4_1,0},
82
83     {&_44p0_p5_0,&_44p0_p5_1,&_44p0_p4_1},
84     {&_44p0_p6_0,&_44p0_p6_1,&_44p0_p6_2},
85    }
86 };
87
88 static const static_bookblock _resbook_44p_1={
89   {
90     {0},
91     {0,&_44p1_p1_0},
92
93     {&_44p1_p2_0,&_44p1_p2_1,0},
94     {&_44p1_p3_0,&_44p1_p3_1,0},
95     {&_44p1_p4_0,&_44p1_p4_1,0},
96
97     {&_44p1_p5_0,&_44p1_p5_1,&_44p1_p4_1},
98     {&_44p1_p6_0,&_44p1_p6_1,&_44p1_p6_2},
99    }
100 };
101
102 static const static_bookblock _resbook_44p_2={
103   {
104     {0},
105     {0,0,&_44p2_p1_0},
106     {0,&_44p2_p2_0,0},
107
108     {&_44p2_p3_0,&_44p2_p3_1,0},
109     {&_44p2_p4_0,&_44p2_p4_1,0},
110     {&_44p2_p5_0,&_44p2_p5_1,0},
111
112     {&_44p2_p6_0,&_44p2_p6_1,&_44p2_p5_1},
113     {&_44p2_p7_0,&_44p2_p7_1,&_44p2_p7_2,&_44p2_p7_3}
114    }
115 };
116 static const static_bookblock _resbook_44p_3={
117   {
118     {0},
119     {0,0,&_44p3_p1_0},
120     {0,&_44p3_p2_0,0},
121
122     {&_44p3_p3_0,&_44p3_p3_1,0},
123     {&_44p3_p4_0,&_44p3_p4_1,0},
124     {&_44p3_p5_0,&_44p3_p5_1,0},
125
126     {&_44p3_p6_0,&_44p3_p6_1,&_44p3_p5_1},
127     {&_44p3_p7_0,&_44p3_p7_1,&_44p3_p7_2,&_44p3_p7_3}
128    }
129 };
130 static const static_bookblock _resbook_44p_4={
131   {
132     {0},
133     {0,0,&_44p4_p1_0},
134     {0,&_44p4_p2_0,0},
135
136     {&_44p4_p3_0,&_44p4_p3_1,0},
137     {&_44p4_p4_0,&_44p4_p4_1,0},
138     {&_44p4_p5_0,&_44p4_p5_1,0},
139
140     {&_44p4_p6_0,&_44p4_p6_1,&_44p4_p5_1},
141     {&_44p4_p7_0,&_44p4_p7_1,&_44p4_p7_2,&_44p4_p7_3}
142    }
143 };
144 static const static_bookblock _resbook_44p_5={
145   {
146     {0},
147     {0,0,&_44p5_p1_0},
148     {0,&_44p5_p2_0,0},
149
150     {&_44p5_p3_0,&_44p5_p3_1,0},
151     {&_44p5_p4_0,&_44p5_p4_1,0},
152     {&_44p5_p5_0,&_44p5_p5_1,0},
153
154     {&_44p5_p6_0,&_44p5_p6_1,&_44p5_p5_1},
155     {&_44p5_p7_0,&_44p5_p7_1,&_44p5_p7_2,&_44p5_p7_3}
156    }
157 };
158 static const static_bookblock _resbook_44p_6={
159   {
160     {0},
161     {0,0,&_44p6_p1_0},
162     {0,&_44p6_p2_0,0},
163
164     {&_44p6_p3_0,&_44p6_p3_1,0},
165     {&_44p6_p4_0,&_44p6_p4_1,0},
166     {&_44p6_p5_0,&_44p6_p5_1,0},
167
168     {&_44p6_p6_0,&_44p6_p6_1,&_44p6_p5_1},
169     {&_44p6_p7_0,&_44p6_p7_1,&_44p6_p7_2,&_44p6_p7_3}
170    }
171 };
172 static const static_bookblock _resbook_44p_7={
173   {
174     {0},
175     {0,0,&_44p7_p1_0},
176     {0,&_44p7_p2_0,0},
177
178     {&_44p7_p3_0,&_44p7_p3_1,0},
179     {&_44p7_p4_0,&_44p7_p4_1,0},
180     {&_44p7_p5_0,&_44p7_p5_1,0},
181
182     {&_44p7_p6_0,&_44p7_p6_1,&_44p7_p5_1},
183     {&_44p7_p7_0,&_44p7_p7_1,&_44p7_p7_2,&_44p7_p7_3}
184    }
185 };
186 static const static_bookblock _resbook_44p_8={
187   {
188     {0},
189     {0,0,&_44p8_p1_0},
190     {0,&_44p8_p2_0,0},
191
192     {&_44p8_p3_0,&_44p8_p3_1,0},
193     {&_44p8_p4_0,&_44p8_p4_1,0},
194     {&_44p8_p5_0,&_44p8_p5_1,0},
195
196     {&_44p8_p6_0,&_44p8_p6_1,&_44p8_p5_1},
197     {&_44p8_p7_0,&_44p8_p7_1,&_44p8_p7_2,&_44p8_p7_3}
198    }
199 };
200 static const static_bookblock _resbook_44p_9={
201   {
202     {0},
203     {0,0,&_44p9_p1_0},
204     {0,&_44p9_p2_0,0},
205
206     {&_44p9_p3_0,&_44p9_p3_1,0},
207     {&_44p9_p4_0,&_44p9_p4_1,0},
208     {&_44p9_p5_0,&_44p9_p5_1,0},
209
210     {&_44p9_p6_0,&_44p9_p6_1,&_44p9_p5_1},
211     {&_44p9_p7_0,&_44p9_p7_1,&_44p9_p7_2,&_44p9_p7_3}
212    }
213 };
214
215 static const static_bookblock _resbook_44p_ln1={
216   {
217     {&_44pn1_l0_0,&_44pn1_l0_1,0},
218     {&_44pn1_l1_0,&_44pn1_p6_1,&_44pn1_p6_2},
219    }
220 };
221 static const static_bookblock _resbook_44p_l0={
222   {
223     {&_44p0_l0_0,&_44p0_l0_1,0},
224     {&_44p0_l1_0,&_44p0_p6_1,&_44p0_p6_2},
225    }
226 };
227 static const static_bookblock _resbook_44p_l1={
228   {
229     {&_44p1_l0_0,&_44p1_l0_1,0},
230     {&_44p1_l1_0,&_44p1_p6_1,&_44p1_p6_2},
231    }
232 };
233 static const static_bookblock _resbook_44p_l2={
234   {
235     {&_44p2_l0_0,&_44p2_l0_1,0},
236     {&_44p2_l1_0,&_44p2_p7_2,&_44p2_p7_3},
237    }
238 };
239 static const static_bookblock _resbook_44p_l3={
240   {
241     {&_44p3_l0_0,&_44p3_l0_1,0},
242     {&_44p3_l1_0,&_44p3_p7_2,&_44p3_p7_3},
243    }
244 };
245 static const static_bookblock _resbook_44p_l4={
246   {
247     {&_44p4_l0_0,&_44p4_l0_1,0},
248     {&_44p4_l1_0,&_44p4_p7_2,&_44p4_p7_3},
249    }
250 };
251 static const static_bookblock _resbook_44p_l5={
252   {
253     {&_44p5_l0_0,&_44p5_l0_1,0},
254     {&_44p5_l1_0,&_44p5_p7_2,&_44p5_p7_3},
255    }
256 };
257 static const static_bookblock _resbook_44p_l6={
258   {
259     {&_44p6_l0_0,&_44p6_l0_1,0},
260     {&_44p6_l1_0,&_44p6_p7_2,&_44p6_p7_3},
261    }
262 };
263 static const static_bookblock _resbook_44p_l7={
264   {
265     {&_44p7_l0_0,&_44p7_l0_1,0},
266     {&_44p7_l1_0,&_44p7_p7_2,&_44p7_p7_3},
267    }
268 };
269 static const static_bookblock _resbook_44p_l8={
270   {
271     {&_44p8_l0_0,&_44p8_l0_1,0},
272     {&_44p8_l1_0,&_44p8_p7_2,&_44p8_p7_3},
273    }
274 };
275 static const static_bookblock _resbook_44p_l9={
276   {
277     {&_44p9_l0_0,&_44p9_l0_1,0},
278     {&_44p9_l1_0,&_44p9_p7_2,&_44p9_p7_3},
279    }
280 };
281
282
283 static const vorbis_info_mapping0 _map_nominal_51[2]={
284   {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 4,{0,3,0,0},{2,4,1,3}},
285   {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 4,{0,3,0,0},{2,4,1,3}}
286 };
287 static const vorbis_info_mapping0 _map_nominal_51u[2]={
288   {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 0,{0},{0}},
289   {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 0,{0},{0}}
290 };
291
292 static const vorbis_residue_template _res_44p51_n1[]={
293   {2,0,30,  &_residue_44p_lo,
294    &_huff_book__44pn1_short,&_huff_book__44pn1_short,
295    &_resbook_44p_n1,&_resbook_44p_n1},
296
297   {2,0,30,  &_residue_44p_lo,
298    &_huff_book__44pn1_long,&_huff_book__44pn1_long,
299    &_resbook_44p_n1,&_resbook_44p_n1},
300
301   {1,2,6,  &_residue_44p_lfe,
302    &_huff_book__44pn1_lfe,&_huff_book__44pn1_lfe,
303    &_resbook_44p_ln1,&_resbook_44p_ln1}
304 };
305 static const vorbis_residue_template _res_44p51_0[]={
306   {2,0,15,  &_residue_44p_lo,
307    &_huff_book__44p0_short,&_huff_book__44p0_short,
308    &_resbook_44p_0,&_resbook_44p_0},
309
310   {2,0,30,  &_residue_44p_lo,
311    &_huff_book__44p0_long,&_huff_book__44p0_long,
312    &_resbook_44p_0,&_resbook_44p_0},
313
314   {1,2,6,  &_residue_44p_lfe,
315    &_huff_book__44p0_lfe,&_huff_book__44p0_lfe,
316    &_resbook_44p_l0,&_resbook_44p_l0}
317 };
318 static const vorbis_residue_template _res_44p51_1[]={
319   {2,0,15,  &_residue_44p_lo,
320    &_huff_book__44p1_short,&_huff_book__44p1_short,
321    &_resbook_44p_1,&_resbook_44p_1},
322
323   {2,0,30,  &_residue_44p_lo,
324    &_huff_book__44p1_long,&_huff_book__44p1_long,
325    &_resbook_44p_1,&_resbook_44p_1},
326
327   {1,2,6,  &_residue_44p_lfe,
328    &_huff_book__44p1_lfe,&_huff_book__44p1_lfe,
329    &_resbook_44p_l1,&_resbook_44p_l1}
330 };
331 static const vorbis_residue_template _res_44p51_2[]={
332   {2,0,15,  &_residue_44p,
333    &_huff_book__44p2_short,&_huff_book__44p2_short,
334    &_resbook_44p_2,&_resbook_44p_2},
335
336   {2,0,30,  &_residue_44p,
337    &_huff_book__44p2_long,&_huff_book__44p2_long,
338    &_resbook_44p_2,&_resbook_44p_2},
339
340   {1,2,6,  &_residue_44p_lfe,
341    &_huff_book__44p2_lfe,&_huff_book__44p2_lfe,
342    &_resbook_44p_l2,&_resbook_44p_l2}
343 };
344 static const vorbis_residue_template _res_44p51_3[]={
345   {2,0,15,  &_residue_44p,
346    &_huff_book__44p3_short,&_huff_book__44p3_short,
347    &_resbook_44p_3,&_resbook_44p_3},
348
349   {2,0,30,  &_residue_44p,
350    &_huff_book__44p3_long,&_huff_book__44p3_long,
351    &_resbook_44p_3,&_resbook_44p_3},
352
353   {1,2,6,  &_residue_44p_lfe,
354    &_huff_book__44p3_lfe,&_huff_book__44p3_lfe,
355    &_resbook_44p_l3,&_resbook_44p_l3}
356 };
357 static const vorbis_residue_template _res_44p51_4[]={
358   {2,0,15,  &_residue_44p,
359    &_huff_book__44p4_short,&_huff_book__44p4_short,
360    &_resbook_44p_4,&_resbook_44p_4},
361
362   {2,0,30,  &_residue_44p,
363    &_huff_book__44p4_long,&_huff_book__44p4_long,
364    &_resbook_44p_4,&_resbook_44p_4},
365
366   {1,2,6,  &_residue_44p_lfe,
367    &_huff_book__44p4_lfe,&_huff_book__44p4_lfe,
368    &_resbook_44p_l4,&_resbook_44p_l4}
369 };
370 static const vorbis_residue_template _res_44p51_5[]={
371   {2,0,15,  &_residue_44p_hi,
372    &_huff_book__44p5_short,&_huff_book__44p5_short,
373    &_resbook_44p_5,&_resbook_44p_5},
374
375   {2,0,30,  &_residue_44p_hi,
376    &_huff_book__44p5_long,&_huff_book__44p5_long,
377    &_resbook_44p_5,&_resbook_44p_5},
378
379   {1,2,6,  &_residue_44p_lfe,
380    &_huff_book__44p5_lfe,&_huff_book__44p5_lfe,
381    &_resbook_44p_l5,&_resbook_44p_l5}
382 };
383 static const vorbis_residue_template _res_44p51_6[]={
384   {2,0,15,  &_residue_44p_hi,
385    &_huff_book__44p6_short,&_huff_book__44p6_short,
386    &_resbook_44p_6,&_resbook_44p_6},
387
388   {2,0,30,  &_residue_44p_hi,
389    &_huff_book__44p6_long,&_huff_book__44p6_long,
390    &_resbook_44p_6,&_resbook_44p_6},
391
392   {1,2,6,  &_residue_44p_lfe,
393    &_huff_book__44p6_lfe,&_huff_book__44p6_lfe,
394    &_resbook_44p_l6,&_resbook_44p_l6}
395 };
396
397
398 static const vorbis_residue_template _res_44p51_7[]={
399   {2,0,15,  &_residue_44p_hi,
400    &_huff_book__44p7_short,&_huff_book__44p7_short,
401    &_resbook_44p_7,&_resbook_44p_7},
402
403   {2,0,30,  &_residue_44p_hi,
404    &_huff_book__44p7_long,&_huff_book__44p7_long,
405    &_resbook_44p_7,&_resbook_44p_7},
406
407   {1,2,6,  &_residue_44p_lfe,
408    &_huff_book__44p6_lfe,&_huff_book__44p6_lfe,
409    &_resbook_44p_l6,&_resbook_44p_l6}
410 };
411 static const vorbis_residue_template _res_44p51_8[]={
412   {2,0,15,  &_residue_44p_hi,
413    &_huff_book__44p8_short,&_huff_book__44p8_short,
414    &_resbook_44p_8,&_resbook_44p_8},
415
416   {2,0,30,  &_residue_44p_hi,
417    &_huff_book__44p8_long,&_huff_book__44p8_long,
418    &_resbook_44p_8,&_resbook_44p_8},
419
420   {1,2,6,  &_residue_44p_lfe,
421    &_huff_book__44p6_lfe,&_huff_book__44p6_lfe,
422    &_resbook_44p_l6,&_resbook_44p_l6}
423 };
424 static const vorbis_residue_template _res_44p51_9[]={
425   {2,0,15,  &_residue_44p_hi,
426    &_huff_book__44p9_short,&_huff_book__44p9_short,
427    &_resbook_44p_9,&_resbook_44p_9},
428
429   {2,0,30,  &_residue_44p_hi,
430    &_huff_book__44p9_long,&_huff_book__44p9_long,
431    &_resbook_44p_9,&_resbook_44p_9},
432
433   {1,2,6,  &_residue_44p_lfe,
434    &_huff_book__44p6_lfe,&_huff_book__44p6_lfe,
435    &_resbook_44p_l6,&_resbook_44p_l6}
436 };
437
438 static const vorbis_mapping_template _mapres_template_44_51[]={
439   { _map_nominal_51, _res_44p51_n1 }, /* -1 */
440   { _map_nominal_51, _res_44p51_0 }, /* 0 */
441   { _map_nominal_51, _res_44p51_1 }, /* 1 */
442   { _map_nominal_51, _res_44p51_2 }, /* 2 */
443   { _map_nominal_51, _res_44p51_3 }, /* 3 */
444   { _map_nominal_51, _res_44p51_4 }, /* 4 */
445   { _map_nominal_51u, _res_44p51_5 }, /* 5 */
446   { _map_nominal_51u, _res_44p51_6 }, /* 6 */
447   { _map_nominal_51u, _res_44p51_7 }, /* 7 */
448   { _map_nominal_51u, _res_44p51_8 }, /* 8 */
449   { _map_nominal_51u, _res_44p51_9 }, /* 9 */
450 };