New stereo VBR modes are live
[platform/upstream/libvorbis.git] / lib / modes / residue_44.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-2001             *
9  * by the XIPHOPHORUS Company http://www.xiph.org/                  *
10  *                                                                  *
11  ********************************************************************
12
13  function: toplevel residue templates for 32/44.1/48kHz
14  last mod: $Id: residue_44.h,v 1.3 2001/12/14 07:21:29 xiphmont Exp $
15
16  ********************************************************************/
17
18 #include "vorbis/codec.h"
19 #include "backends.h"
20
21 static bitrate_manager_info _bm_44_default={
22   /* progressive coding and bitrate controls */
23   2.,.5,
24   2.,       0,           0,  
25             0,           0,
26            
27   4.0, 0.,  -1.,              .05, 
28             -.05,             .05,
29   3.5,5.0,
30   -10.f,+2.f
31 };
32
33 /***** residue backends *********************************************/
34
35 /* the books used depend on stereo-or-not, but the residue setup below
36    can apply to coupled or not.  These templates are for a first pass;
37    a last pass is mechanically added in vorbisenc for residue backfill
38    at 1/3 and 1/9, as well as an optional middle pass for stereo
39    backfill */
40
41 /*     0   1   2   4  26   1   2   4  26   +      
42            0   0   0   0         
43
44        0   1   2   3   4   5   6   7   8   9
45    1                   .               .   .
46    2                   .               .   .
47    4       .   .   .       .   .   .       .
48  
49        0   4   4   4   3   4   4   4   3   7 */
50 static vorbis_info_residue0 _residue_44_low={
51   0,-1, -1, 8,-1,
52   {0},
53   {-1},
54   {9999, 9999, 9999, 9999, 9999, 9999, 9999},
55   {  .5,  1.5,  2.5,  4.5, 26.5,  1.5,  4.5},
56   {0},
57   {  99,   -1,   -1,   -1,   -1,   99,   99}
58 };
59
60 /*     0   1   2   4   1   2   4  16  42   +      
61            0   0   0            
62
63        0   1   2   3   4   5   6   7   8   9
64    1                               .   .   .
65    2                               .   .   .
66    4       .   .   .   .   .   .           .
67  
68        0   4   4   4   4   4   4   3   3   7 */
69 static vorbis_info_residue0 _residue_44_mid={
70   0,-1, -1, 10,-1,
71   /*  0     1     2     3     4     5     6     7     8     9 */
72   {0},
73   {-1},
74   {9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999},
75   {  .5,  1.5,  1.5,  2.5,  2.5,  4.5,  4.5, 16.5, 42.5},
76   {0},
77   {  99,   -1,   99,   -1,   99,   -1,   99,   99,   99}
78 };
79
80
81 /*     0   8  42   1   2   4   8  16  56   +      
82            0   0   0            
83
84        0   1   2   3   4   5   6   7   8   9
85    1           .                   .   .   .
86    2           .                   .   .   .
87    4       .       .   .   .   .           .
88  
89        0   4   3   4   4   4   4   3   3   7 */
90 static vorbis_info_residue0 _residue_44_high={
91   0,-1, -1, 10,-1,
92   /*  0     1     2     3     4     5     6     7     8     9 */
93   {0},
94   {-1},
95   {9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999},
96   {  .5,  8.5, 42.5,  1.5,  2.5,  4.5,  8.5, 16.5, 56.5},
97   {0},
98   {  99,   -1,   -1,   99,   99,   99,   99,   99,   99}
99 };
100
101 #include "books/coupled/_44c0_short.vqh"
102 #include "books/coupled/_44c0_long.vqh"
103
104 #include "books/coupled/_44c0_s0_p1_0.vqh"
105 #include "books/coupled/_44c0_s0_p2_0.vqh"
106 #include "books/coupled/_44c0_s0_p3_0.vqh"
107 #include "books/coupled/_44c0_s0_p4_0.vqh"
108 #include "books/coupled/_44c0_s0_p4_1.vqh"
109 #include "books/coupled/_44c0_s1_p5_0.vqh"
110 #include "books/coupled/_44c0_s2_p6_0.vqh"
111 #include "books/coupled/_44c0_s4_p7_0.vqh"
112 #include "books/coupled/_44c0_s4_p7_1.vqh"
113 #include "books/coupled/_44c0_s4_p7_2.vqh"
114
115 #include "books/coupled/_44c1_short.vqh"
116 #include "books/coupled/_44c1_long.vqh"
117
118 #include "books/coupled/_44c1_s0_p1_0.vqh"
119 #include "books/coupled/_44c1_s0_p2_0.vqh"
120 #include "books/coupled/_44c1_s0_p3_0.vqh"
121 #include "books/coupled/_44c1_s0_p4_0.vqh"
122 #include "books/coupled/_44c1_s0_p4_1.vqh"
123 #include "books/coupled/_44c1_s1_p5_0.vqh"
124 #include "books/coupled/_44c1_s2_p6_0.vqh"
125 #include "books/coupled/_44c1_s3_p7_0.vqh"
126 #include "books/coupled/_44c1_s3_p7_1.vqh"
127 #include "books/coupled/_44c1_s3_p7_2.vqh"
128
129 #include "books/coupled/_44c2_short.vqh"
130 #include "books/coupled/_44c2_long.vqh"
131
132 #include "books/coupled/_44c2_s0_p1_0.vqh"
133 #include "books/coupled/_44c2_s0_p2_0.vqh"
134 #include "books/coupled/_44c2_s0_p3_0.vqh"
135 #include "books/coupled/_44c2_s0_p4_0.vqh"
136 #include "books/coupled/_44c2_s0_p4_1.vqh"
137 #include "books/coupled/_44c2_s1_p5_0.vqh"
138 #include "books/coupled/_44c2_s2_p6_0.vqh"
139 #include "books/coupled/_44c2_s2_p7_0.vqh"
140 #include "books/coupled/_44c2_s2_p7_1.vqh"
141 #include "books/coupled/_44c2_s2_p7_2.vqh"
142
143 #include "books/coupled/_44c3_short.vqh"
144 #include "books/coupled/_44c3_long.vqh"
145
146 #include "books/coupled/_44c3_s0_p1_0.vqh"
147 #include "books/coupled/_44c3_s0_p2_0.vqh"
148 #include "books/coupled/_44c3_s0_p3_0.vqh"
149 #include "books/coupled/_44c3_s0_p4_0.vqh"
150 #include "books/coupled/_44c3_s0_p4_1.vqh"
151 #include "books/coupled/_44c3_s1_p5_0.vqh"
152 #include "books/coupled/_44c3_s2_p6_0.vqh"
153 #include "books/coupled/_44c3_s2_p7_0.vqh"
154 #include "books/coupled/_44c3_s2_p7_1.vqh"
155 #include "books/coupled/_44c3_s2_p7_2.vqh"
156
157 #include "books/coupled/_44c4_short.vqh"
158 #include "books/coupled/_44c4_long.vqh"
159
160 #include "books/coupled/_44c4_s0_p1_0.vqh"
161 #include "books/coupled/_44c4_s1_p2_0.vqh"
162 #include "books/coupled/_44c4_s0_p3_0.vqh"
163 #include "books/coupled/_44c4_s1_p4_0.vqh"
164 #include "books/coupled/_44c4_s0_p5_0.vqh"
165 #include "books/coupled/_44c4_s1_p6_0.vqh"
166 #include "books/coupled/_44c4_s1_p7_0.vqh"
167 #include "books/coupled/_44c4_s1_p7_1.vqh"
168 #include "books/coupled/_44c4_s1_p8_0.vqh"
169 #include "books/coupled/_44c4_s1_p8_1.vqh"
170 #include "books/coupled/_44c4_s1_p9_0.vqh"
171 #include "books/coupled/_44c4_s1_p9_1.vqh"
172 #include "books/coupled/_44c4_s1_p9_2.vqh"
173
174 #include "books/coupled/_44c5_short.vqh"
175 #include "books/coupled/_44c5_long.vqh"
176
177 #include "books/coupled/_44c5_s0_p1_0.vqh"
178 #include "books/coupled/_44c5_s0_p2_0.vqh"
179 #include "books/coupled/_44c5_s0_p3_0.vqh"
180 #include "books/coupled/_44c5_s0_p4_0.vqh"
181 #include "books/coupled/_44c5_s0_p5_0.vqh"
182 #include "books/coupled/_44c5_s0_p6_0.vqh"
183 #include "books/coupled/_44c5_s0_p7_0.vqh"
184 #include "books/coupled/_44c5_s0_p7_1.vqh"
185 #include "books/coupled/_44c5_s0_p8_0.vqh"
186 #include "books/coupled/_44c5_s0_p8_1.vqh"
187 #include "books/coupled/_44c5_s0_p9_0.vqh"
188 #include "books/coupled/_44c5_s0_p9_1.vqh"
189 #include "books/coupled/_44c5_s0_p9_2.vqh"
190
191 #include "books/coupled/_44c6_short.vqh"
192 #include "books/coupled/_44c6_long.vqh"
193
194 #include "books/coupled/_44c6_s0_p1_0.vqh"
195 #include "books/coupled/_44c6_s0_p2_0.vqh"
196 #include "books/coupled/_44c6_s0_p3_0.vqh"
197 #include "books/coupled/_44c6_s0_p4_0.vqh"
198 #include "books/coupled/_44c6_s0_p5_0.vqh"
199 #include "books/coupled/_44c6_s0_p6_0.vqh"
200 #include "books/coupled/_44c6_s0_p7_0.vqh"
201 #include "books/coupled/_44c6_s0_p7_1.vqh"
202 #include "books/coupled/_44c6_s0_p8_0.vqh"
203 #include "books/coupled/_44c6_s0_p8_1.vqh"
204 #include "books/coupled/_44c6_s0_p9_0.vqh"
205 #include "books/coupled/_44c6_s0_p9_1.vqh"
206 #include "books/coupled/_44c6_s0_p9_2.vqh"
207
208 #include "books/coupled/_44c7_short.vqh"
209 #include "books/coupled/_44c7_long.vqh"
210
211 #include "books/coupled/_44c7_s0_p1_0.vqh"
212 #include "books/coupled/_44c7_s0_p1_1.vqh"
213 #include "books/coupled/_44c7_s0_p2_0.vqh"
214 #include "books/coupled/_44c7_s0_p2_1.vqh"
215 #include "books/coupled/_44c7_s0_p3_0.vqh"
216 #include "books/coupled/_44c7_s0_p4_0.vqh"
217 #include "books/coupled/_44c7_s0_p5_0.vqh"
218 #include "books/coupled/_44c7_s0_p6_0.vqh"
219 #include "books/coupled/_44c7_s0_p6_1.vqh"
220 #include "books/coupled/_44c7_s0_p7_0.vqh"
221 #include "books/coupled/_44c7_s0_p7_1.vqh"
222 #include "books/coupled/_44c7_s0_p8_0.vqh"
223 #include "books/coupled/_44c7_s0_p8_1.vqh"
224 #include "books/coupled/_44c7_s0_p9_0.vqh"
225 #include "books/coupled/_44c7_s0_p9_1.vqh"
226 #include "books/coupled/_44c7_s0_p9_2.vqh"
227
228 #include "books/coupled/_44c8_short.vqh"
229 #include "books/coupled/_44c8_long.vqh"
230
231 #include "books/coupled/_44c8_s0_p1_0.vqh"
232 #include "books/coupled/_44c8_s0_p1_1.vqh"
233 #include "books/coupled/_44c8_s0_p2_0.vqh"
234 #include "books/coupled/_44c8_s0_p2_1.vqh"
235 #include "books/coupled/_44c8_s0_p3_0.vqh"
236 #include "books/coupled/_44c8_s0_p4_0.vqh"
237 #include "books/coupled/_44c8_s0_p5_0.vqh"
238 #include "books/coupled/_44c8_s0_p6_0.vqh"
239 #include "books/coupled/_44c8_s0_p6_1.vqh"
240 #include "books/coupled/_44c8_s0_p7_0.vqh"
241 #include "books/coupled/_44c8_s0_p7_1.vqh"
242 #include "books/coupled/_44c8_s0_p8_0.vqh"
243 #include "books/coupled/_44c8_s0_p8_1.vqh"
244 #include "books/coupled/_44c8_s0_p9_0.vqh"
245 #include "books/coupled/_44c8_s0_p9_1.vqh"
246 #include "books/coupled/_44c8_s0_p9_2.vqh"
247
248 #include "books/coupled/_44c9_short.vqh"
249 #include "books/coupled/_44c9_long.vqh"
250
251 #include "books/coupled/_44c9_s0_p1_0.vqh"
252 #include "books/coupled/_44c9_s0_p1_1.vqh"
253 #include "books/coupled/_44c9_s0_p2_0.vqh"
254 #include "books/coupled/_44c9_s0_p2_1.vqh"
255 #include "books/coupled/_44c9_s0_p3_0.vqh"
256 #include "books/coupled/_44c9_s0_p4_0.vqh"
257 #include "books/coupled/_44c9_s0_p5_0.vqh"
258 #include "books/coupled/_44c9_s0_p6_0.vqh"
259 #include "books/coupled/_44c9_s0_p6_1.vqh"
260 #include "books/coupled/_44c9_s0_p7_0.vqh"
261 #include "books/coupled/_44c9_s0_p7_1.vqh"
262 #include "books/coupled/_44c9_s0_p8_0.vqh"
263 #include "books/coupled/_44c9_s0_p8_1.vqh"
264 #include "books/coupled/_44c9_s0_p9_0.vqh"
265 #include "books/coupled/_44c9_s0_p9_1.vqh"
266 #include "books/coupled/_44c9_s0_p9_2.vqh"
267
268 /* residue backfill is entered in the template array as if stereo
269    backfill is not in use.  It's up to vorbisenc to make the
270    appropriate index adjustment */
271 static vorbis_residue_template _residue_template_44_stereo[11]={
272   /* mode 0; 64-ish */
273   {{&_residue_44_low, &_residue_44_low},  
274    {&_huff_book__44c0_short,&_huff_book__44c0_long},
275    { {{0}}, /* lossless stereo */
276      {{0}}, /* 6dB (2.5) stereo */
277      {{0}}, /* 12dB (4.5) stereo */
278      {{0}}, /* 18dB (8.5) stereo */
279      {{0},{0,0,&_44c0_s0_p1_0},{0,0,&_44c0_s0_p2_0},{0,0,&_44c0_s0_p3_0},
280       {&_44c0_s0_p4_0,&_44c0_s0_p4_1},{0,0,&_44c0_s1_p5_0},{0,0,&_44c0_s2_p6_0},
281       {&_44c0_s4_p7_0,&_44c0_s4_p7_1,&_44c0_s4_p7_2}}, /* 24dB (16.5) stereo */
282    },
283    { {0}, /* lossless stereo */
284      {0}, /* 6dB (2.5) stereo */
285      {0}, /* 12dB (4.5) stereo */
286      {0}, /* 18dB (8.5) stereo */
287      {0},
288      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
289    },
290    { {{0}}, /* lossless stereo */
291      {{0}}, /* 6dB (2.5) stereo */
292      {{0}}, /* 12dB (4.5) stereo */
293      {{0}}, /* 18dB (8.5) stereo */
294      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
295      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
296      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
297      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
298      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
299      {{0}}, /* 24dB (16.5) stereo */
300    },
301   },
302
303   /* mode 1; 80-ish */
304   {{&_residue_44_low, &_residue_44_low},  
305    {&_huff_book__44c1_short,&_huff_book__44c1_long},
306    { {{0}}, /* lossless stereo */
307      {{0}}, /* 6dB (2.5) stereo */
308      {{0}}, /* 12dB (4.5) stereo */
309      {{0},{0,0,&_44c1_s0_p1_0},{0,0,&_44c1_s0_p2_0},{0,0,&_44c1_s0_p3_0},
310       {&_44c1_s0_p4_0,&_44c1_s0_p4_1},{0,0,&_44c1_s1_p5_0},{0,0,&_44c1_s2_p6_0},
311       {&_44c1_s3_p7_0,&_44c1_s3_p7_1,&_44c1_s3_p7_2}}, /* 24dB (8.5) stereo */
312      {{0}}, /* 24dB (16.5) stereo */
313    },
314    { {0}, /* lossless stereo */
315      {0}, /* 6dB (2.5) stereo */
316      {0}, /* 12dB (4.5) stereo */
317      {0}, /* 18dB (8.5) stereo */
318      {0},
319      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
320    },
321    { {{0}}, /* lossless stereo */
322      {{0}}, /* 6dB (2.5) stereo */
323      {{0}}, /* 12dB (4.5) stereo */
324      {{0}}, /* 18dB (8.5) stereo */
325      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
326      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
327      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
328      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
329      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
330      {{0}}, /* 24dB (16.5) stereo */
331    },
332   },
333
334   /* mode 2; 96-ish */
335   {{&_residue_44_low, &_residue_44_low},  
336    {&_huff_book__44c2_short,&_huff_book__44c2_long},
337    { {{0}}, /* lossless stereo */
338      {{0}}, /* 6dB (2.5) stereo */
339      {{0},{0,0,&_44c2_s0_p1_0},{0,0,&_44c2_s0_p2_0},{0,0,&_44c2_s0_p3_0},
340       {&_44c2_s0_p4_0,&_44c2_s0_p4_1},{0,0,&_44c2_s1_p5_0},{0,0,&_44c2_s2_p6_0},
341       {&_44c2_s2_p7_0,&_44c2_s2_p7_1,&_44c2_s2_p7_2}}, /* 12dB (4.5) stereo */
342      {{0}}, /* 18dB (8.5) stereo */
343      {{0}}, /* 24dB (16.5) stereo */
344    },
345    { {0}, /* lossless stereo */
346      {0}, /* 6dB (2.5) stereo */
347      {0}, /* 12dB (4.5) stereo */
348      {0}, /* 18dB (8.5) stereo */
349      {0},
350      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
351    },
352    { {{0}}, /* lossless stereo */
353      {{0}}, /* 6dB (2.5) stereo */
354      {{0}}, /* 12dB (4.5) stereo */
355      {{0}}, /* 18dB (8.5) stereo */
356      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
357      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
358      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
359      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
360      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
361      {{0}}, /* 24dB (16.5) stereo */
362    },
363   },
364
365   /* mode 3; 112-ish */
366   {{&_residue_44_low, &_residue_44_low},  
367    {&_huff_book__44c3_short,&_huff_book__44c3_long},
368    { {{0}}, /* lossless stereo */
369      {{0}}, /* 6dB (2.5) stereo */
370      {{0},{0,0,&_44c3_s0_p1_0},{0,0,&_44c3_s0_p2_0},{0,0,&_44c3_s0_p3_0},
371       {&_44c3_s0_p4_0,&_44c3_s0_p4_1},{0,0,&_44c3_s1_p5_0},{0,0,&_44c3_s2_p6_0},
372       {&_44c3_s2_p7_0,&_44c3_s2_p7_1,&_44c3_s2_p7_2}}, /* 12dB (4.5) stereo */
373      {{0}}, /* 18dB (8.5) stereo */
374      {{0}}, /* 24dB (16.5) stereo */
375    },
376    { {0}, /* lossless stereo */
377      {0}, /* 6dB (2.5) stereo */
378      {0}, /* 12dB (4.5) stereo */
379      {0}, /* 18dB (8.5) stereo */
380      {0},
381      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
382    },
383    { {{0}}, /* lossless stereo */
384      {{0}}, /* 6dB (2.5) stereo */
385      {{0}}, /* 12dB (4.5) stereo */
386      {{0}}, /* 18dB (8.5) stereo */
387      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
388      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
389      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
390      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
391      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
392      {{0}}, /* 24dB (16.5) stereo */
393    },
394   },
395
396   /* mode 4; 128-ish */
397   {{&_residue_44_mid, &_residue_44_mid},  
398    {&_huff_book__44c4_short,&_huff_book__44c4_long},
399    { {{0}}, /* lossless stereo */
400      {{0},{0,0,&_44c4_s0_p1_0},{0,0,&_44c4_s1_p2_0},{0,0,&_44c4_s0_p3_0},
401       {0,0,&_44c4_s1_p4_0},{0,0,&_44c4_s0_p5_0},{0,0,&_44c4_s1_p6_0},
402       {&_44c4_s1_p7_0,&_44c4_s1_p7_1},{&_44c4_s1_p8_0,&_44c4_s1_p8_1},
403       {&_44c4_s1_p9_0,&_44c4_s1_p9_1,&_44c4_s1_p9_2}}, 
404      {{0}}, /* 12dB (4.5) stereo */
405      {{0}}, /* 18dB (8.5) stereo */
406      {{0}}, /* 24dB (16.5) stereo */
407    },
408    { {0}, /* lossless stereo */
409      {0}, /* 6dB (2.5) stereo */
410      {0}, /* 12dB (4.5) stereo */
411      {0}, /* 18dB (8.5) stereo */
412      {0},
413      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
414    },
415    { {{0}}, /* lossless stereo */
416      {{0}}, /* 6dB (2.5) stereo */
417      {{0}}, /* 12dB (4.5) stereo */
418      {{0}}, /* 18dB (8.5) stereo */
419      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
420      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
421      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
422      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
423      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
424      {{0}}, /* 24dB (16.5) stereo */
425    },
426   },
427
428   /* mode 5; 160-ish */
429   {{&_residue_44_mid, &_residue_44_mid},  
430    {&_huff_book__44c5_short,&_huff_book__44c5_long},
431    { {{0},{0,0,&_44c5_s0_p1_0},{0,0,&_44c5_s0_p2_0},{0,0,&_44c5_s0_p3_0},
432       {0,0,&_44c5_s0_p4_0},{0,0,&_44c5_s0_p5_0},{0,0,&_44c5_s0_p6_0},
433       {&_44c5_s0_p7_0,&_44c5_s0_p7_1},{&_44c5_s0_p8_0,&_44c5_s0_p8_1},
434       {&_44c5_s0_p9_0,&_44c5_s0_p9_1,&_44c5_s0_p9_2}}, 
435      {{0}}, /* 6dB  (2.5) stereo */
436      {{0}}, /* 12dB (4.5) stereo */
437      {{0}}, /* 18dB (8.5) stereo */
438      {{0}}, /* 24dB (16.5) stereo */
439    },
440    { {0}, /* lossless stereo */
441      {0}, /* 6dB (2.5) stereo */
442      {0}, /* 12dB (4.5) stereo */
443      {0}, /* 18dB (8.5) stereo */
444      {0},
445      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
446    },
447    { {{0}}, /* lossless stereo */
448      {{0}}, /* 6dB (2.5) stereo */
449      {{0}}, /* 12dB (4.5) stereo */
450      {{0}}, /* 18dB (8.5) stereo */
451      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
452      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
453      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
454      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
455      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
456      {{0}}, /* 24dB (16.5) stereo */
457    },
458   },
459
460   /* mode 6; 192-ish */
461   {{&_residue_44_mid, &_residue_44_mid},  
462    {&_huff_book__44c6_short,&_huff_book__44c6_long},
463    { {{0},{0,0,&_44c6_s0_p1_0},{0,0,&_44c6_s0_p2_0},{0,0,&_44c6_s0_p3_0},
464       {0,0,&_44c6_s0_p4_0},{0,0,&_44c6_s0_p5_0},{0,0,&_44c6_s0_p6_0},
465       {&_44c6_s0_p7_0,&_44c6_s0_p7_1},{&_44c6_s0_p8_0,&_44c6_s0_p8_1},
466       {&_44c6_s0_p9_0,&_44c6_s0_p9_1,&_44c6_s0_p9_2}}, 
467      {{0}}, /* 6dB  (2.5) stereo */
468      {{0}}, /* 12dB (4.5) stereo */
469      {{0}}, /* 18dB (8.5) stereo */
470      {{0}}, /* 24dB (16.5) stereo */
471    },
472    { {0}, /* lossless stereo */
473      {0}, /* 6dB (2.5) stereo */
474      {0}, /* 12dB (4.5) stereo */
475      {0}, /* 18dB (8.5) stereo */
476      {0},
477      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
478    },
479    { {{0}}, /* lossless stereo */
480      {{0}}, /* 6dB (2.5) stereo */
481      {{0}}, /* 12dB (4.5) stereo */
482      {{0}}, /* 18dB (8.5) stereo */
483      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
484      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
485      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
486      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
487      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
488      {{0}}, /* 24dB (16.5) stereo */
489    },
490   },
491   
492   /* mode 7; 224-ish */
493   {{&_residue_44_high, &_residue_44_high},  
494    {&_huff_book__44c7_short,&_huff_book__44c7_long},
495    { {{0},{&_44c7_s0_p1_0,&_44c7_s0_p1_1},
496       {&_44c7_s0_p2_0,&_44c7_s0_p2_1},
497       {0,0,&_44c6_s0_p3_0},{0,0,&_44c6_s0_p4_0},{0,0,&_44c6_s0_p5_0},
498       {&_44c7_s0_p6_0,&_44c7_s0_p6_1},
499       {&_44c7_s0_p7_0,&_44c7_s0_p7_1},
500       {&_44c7_s0_p8_0,&_44c7_s0_p8_1},
501       {&_44c7_s0_p9_0,&_44c7_s0_p9_1,&_44c7_s0_p9_2}}, 
502      {{0}}, /* 6dB  (2.5) stereo */
503      {{0}}, /* 12dB (4.5) stereo */
504      {{0}}, /* 18dB (8.5) stereo */
505      {{0}}, /* 24dB (16.5) stereo */
506    },
507    { {0}, /* lossless stereo */
508      {0}, /* 6dB (2.5) stereo */
509      {0}, /* 12dB (4.5) stereo */
510      {0}, /* 18dB (8.5) stereo */
511      {0},
512      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
513    },
514    { {{0}}, /* lossless stereo */
515      {{0}}, /* 6dB (2.5) stereo */
516      {{0}}, /* 12dB (4.5) stereo */
517      {{0}}, /* 18dB (8.5) stereo */
518      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
519      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
520      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
521      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
522      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
523      {{0}}, /* 24dB (16.5) stereo */
524    },
525   },
526
527   /* mode 8; 256-ish */
528   {{&_residue_44_high, &_residue_44_high},  
529    {&_huff_book__44c8_short,&_huff_book__44c8_long},
530    { {{0},{&_44c8_s0_p1_0,&_44c8_s0_p1_1},
531       {&_44c8_s0_p2_0,&_44c8_s0_p2_1},
532       {0,0,&_44c6_s0_p3_0},{0,0,&_44c6_s0_p4_0},{0,0,&_44c6_s0_p5_0},
533       {&_44c8_s0_p6_0,&_44c8_s0_p6_1},
534       {&_44c8_s0_p7_0,&_44c8_s0_p7_1},
535       {&_44c8_s0_p8_0,&_44c8_s0_p8_1},
536       {&_44c8_s0_p9_0,&_44c8_s0_p9_1,&_44c8_s0_p9_2}}, 
537      {{0}}, /* 6dB  (2.5) stereo */
538      {{0}}, /* 12dB (4.5) stereo */
539      {{0}}, /* 18dB (8.5) stereo */
540      {{0}}, /* 24dB (16.5) stereo */
541    },
542    { {0}, /* lossless stereo */
543      {0}, /* 6dB (2.5) stereo */
544      {0}, /* 12dB (4.5) stereo */
545      {0}, /* 18dB (8.5) stereo */
546      {0},
547      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
548    },
549    { {{0}}, /* lossless stereo */
550      {{0}}, /* 6dB (2.5) stereo */
551      {{0}}, /* 12dB (4.5) stereo */
552      {{0}}, /* 18dB (8.5) stereo */
553      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
554      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
555      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
556      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
557      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
558      {{0}}, /* 24dB (16.5) stereo */
559    },
560   },
561   /* mode 9; 320-ish */
562   {{&_residue_44_high, &_residue_44_high},  
563    {&_huff_book__44c9_short,&_huff_book__44c9_long},
564    { {{0},{&_44c9_s0_p1_0,&_44c9_s0_p1_1},
565       {&_44c9_s0_p2_0,&_44c9_s0_p2_1},
566       {0,0,&_44c6_s0_p3_0},{0,0,&_44c6_s0_p4_0},{0,0,&_44c6_s0_p5_0},
567       {&_44c9_s0_p6_0,&_44c9_s0_p6_1},
568       {&_44c9_s0_p7_0,&_44c9_s0_p7_1},
569       {&_44c9_s0_p8_0,&_44c9_s0_p8_1},
570       {&_44c9_s0_p9_0,&_44c9_s0_p9_1,&_44c9_s0_p9_2}}, 
571      {{0}}, /* 6dB  (2.5) stereo */
572      {{0}}, /* 12dB (4.5) stereo */
573      {{0}}, /* 18dB (8.5) stereo */
574      {{0}}, /* 24dB (16.5) stereo */
575    },
576    { {0}, /* lossless stereo */
577      {0}, /* 6dB (2.5) stereo */
578      {0}, /* 12dB (4.5) stereo */
579      {0}, /* 18dB (8.5) stereo */
580      {0},
581      //{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},/* 24dB (16.5) stereo */
582    },
583    { {{0}}, /* lossless stereo */
584      {{0}}, /* 6dB (2.5) stereo */
585      {{0}}, /* 12dB (4.5) stereo */
586      {{0}}, /* 18dB (8.5) stereo */
587      //{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
588      // {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
589      // {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
590      // {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
591      // {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}}, /* 18dB (8.5) stereo */
592      {{0}}, /* 24dB (16.5) stereo */
593    },
594   }
595
596 };
597
598
599
600
601
602
603
604
605
606
607
608