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-2009             *
9  * by the Xiph.Org Foundation http://www.xiph.org/                  *
10  *                                                                  *
11  ********************************************************************
12 
13  function: toplevel residue templates 16/22kHz
14  last mod: $Id: residue_16.h 16962 2010-03-11 07:30:34Z xiphmont $
15 
16  ********************************************************************/
17 
18 /***** residue backends *********************************************/
19 
20 static const static_bookblock _resbook_16s_0={
21   {
22     {0},
23     {0,0,&_16c0_s_p1_0},
24     {0},
25     {0,0,&_16c0_s_p3_0},
26     {0,0,&_16c0_s_p4_0},
27     {0,0,&_16c0_s_p5_0},
28     {0,0,&_16c0_s_p6_0},
29     {&_16c0_s_p7_0,&_16c0_s_p7_1},
30     {&_16c0_s_p8_0,&_16c0_s_p8_1},
31     {&_16c0_s_p9_0,&_16c0_s_p9_1,&_16c0_s_p9_2}
32    }
33 };
34 static const static_bookblock _resbook_16s_1={
35   {
36     {0},
37     {0,0,&_16c1_s_p1_0},
38     {0},
39     {0,0,&_16c1_s_p3_0},
40     {0,0,&_16c1_s_p4_0},
41     {0,0,&_16c1_s_p5_0},
42     {0,0,&_16c1_s_p6_0},
43     {&_16c1_s_p7_0,&_16c1_s_p7_1},
44     {&_16c1_s_p8_0,&_16c1_s_p8_1},
45     {&_16c1_s_p9_0,&_16c1_s_p9_1,&_16c1_s_p9_2}
46    }
47 };
48 static const static_bookblock _resbook_16s_2={
49   {
50     {0},
51     {0,0,&_16c2_s_p1_0},
52     {0,0,&_16c2_s_p2_0},
53     {0,0,&_16c2_s_p3_0},
54     {0,0,&_16c2_s_p4_0},
55     {&_16c2_s_p5_0,&_16c2_s_p5_1},
56     {&_16c2_s_p6_0,&_16c2_s_p6_1},
57     {&_16c2_s_p7_0,&_16c2_s_p7_1},
58     {&_16c2_s_p8_0,&_16c2_s_p8_1},
59     {&_16c2_s_p9_0,&_16c2_s_p9_1,&_16c2_s_p9_2}
60    }
61 };
62 
63 static const vorbis_residue_template _res_16s_0[]={
64   {2,0,32,  &_residue_44_mid,
65    &_huff_book__16c0_s_single,&_huff_book__16c0_s_single,
66    &_resbook_16s_0,&_resbook_16s_0},
67 };
68 static const vorbis_residue_template _res_16s_1[]={
69   {2,0,32,  &_residue_44_mid,
70    &_huff_book__16c1_s_short,&_huff_book__16c1_s_short,
71    &_resbook_16s_1,&_resbook_16s_1},
72 
73   {2,0,32,  &_residue_44_mid,
74    &_huff_book__16c1_s_long,&_huff_book__16c1_s_long,
75    &_resbook_16s_1,&_resbook_16s_1}
76 };
77 static const vorbis_residue_template _res_16s_2[]={
78   {2,0,32,  &_residue_44_high,
79    &_huff_book__16c2_s_short,&_huff_book__16c2_s_short,
80    &_resbook_16s_2,&_resbook_16s_2},
81 
82   {2,0,32,  &_residue_44_high,
83    &_huff_book__16c2_s_long,&_huff_book__16c2_s_long,
84    &_resbook_16s_2,&_resbook_16s_2}
85 };
86 
87 static const vorbis_mapping_template _mapres_template_16_stereo[3]={
88   { _map_nominal, _res_16s_0 }, /* 0 */
89   { _map_nominal, _res_16s_1 }, /* 1 */
90   { _map_nominal, _res_16s_2 }, /* 2 */
91 };
92 
93 static const static_bookblock _resbook_16u_0={
94   {
95     {0},
96     {0,0,&_16u0__p1_0},
97     {0,0,&_16u0__p2_0},
98     {0,0,&_16u0__p3_0},
99     {0,0,&_16u0__p4_0},
100     {0,0,&_16u0__p5_0},
101     {&_16u0__p6_0,&_16u0__p6_1},
102     {&_16u0__p7_0,&_16u0__p7_1,&_16u0__p7_2}
103    }
104 };
105 static const static_bookblock _resbook_16u_1={
106   {
107     {0},
108     {0,0,&_16u1__p1_0},
109     {0,0,&_16u1__p2_0},
110     {0,0,&_16u1__p3_0},
111     {0,0,&_16u1__p4_0},
112     {0,0,&_16u1__p5_0},
113     {0,0,&_16u1__p6_0},
114     {&_16u1__p7_0,&_16u1__p7_1},
115     {&_16u1__p8_0,&_16u1__p8_1},
116     {&_16u1__p9_0,&_16u1__p9_1,&_16u1__p9_2}
117    }
118 };
119 static const static_bookblock _resbook_16u_2={
120   {
121     {0},
122     {0,0,&_16u2_p1_0},
123     {0,0,&_16u2_p2_0},
124     {0,0,&_16u2_p3_0},
125     {0,0,&_16u2_p4_0},
126     {&_16u2_p5_0,&_16u2_p5_1},
127     {&_16u2_p6_0,&_16u2_p6_1},
128     {&_16u2_p7_0,&_16u2_p7_1},
129     {&_16u2_p8_0,&_16u2_p8_1},
130     {&_16u2_p9_0,&_16u2_p9_1,&_16u2_p9_2}
131    }
132 };
133 
134 static const vorbis_residue_template _res_16u_0[]={
135   {1,0,32,  &_residue_44_low_un,
136    &_huff_book__16u0__single,&_huff_book__16u0__single,
137    &_resbook_16u_0,&_resbook_16u_0},
138 };
139 static const vorbis_residue_template _res_16u_1[]={
140   {1,0,32,  &_residue_44_mid_un,
141    &_huff_book__16u1__short,&_huff_book__16u1__short,
142    &_resbook_16u_1,&_resbook_16u_1},
143 
144   {1,0,32,  &_residue_44_mid_un,
145    &_huff_book__16u1__long,&_huff_book__16u1__long,
146    &_resbook_16u_1,&_resbook_16u_1}
147 };
148 static const vorbis_residue_template _res_16u_2[]={
149   {1,0,32,  &_residue_44_hi_un,
150    &_huff_book__16u2__short,&_huff_book__16u2__short,
151    &_resbook_16u_2,&_resbook_16u_2},
152 
153   {1,0,32,  &_residue_44_hi_un,
154    &_huff_book__16u2__long,&_huff_book__16u2__long,
155    &_resbook_16u_2,&_resbook_16u_2}
156 };
157 
158 
159 static const vorbis_mapping_template _mapres_template_16_uncoupled[3]={
160   { _map_nominal_u, _res_16u_0 }, /* 0 */
161   { _map_nominal_u, _res_16u_1 }, /* 1 */
162   { _map_nominal_u, _res_16u_2 }, /* 2 */
163 };
164