Add modes Dc and Ec
[platform/upstream/libvorbis.git] / lib / modes / mode_44c_Y.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: predefined encoding modes; 44kHz stereo ~64kbps true VBR
14  last mod: $Id: mode_44c_Y.h,v 1.1 2001/08/13 06:04:24 xiphmont Exp $
15
16  ********************************************************************/
17
18 #ifndef _V_MODES_44c_Y_H_
19 #define _V_MODES_44c_Y_H_
20
21 #include <stdio.h>
22 #include "vorbis/codec.h"
23 #include "backends.h"
24
25 #include "books/line_128x7_class1.vqh"
26 #include "books/line_128x7_class2.vqh"
27
28 #include "books/line_128x7_0sub0.vqh"
29 #include "books/line_128x7_1sub1.vqh"
30 #include "books/line_128x7_1sub2.vqh"
31 #include "books/line_128x7_1sub3.vqh"
32 #include "books/line_128x7_2sub1.vqh"
33 #include "books/line_128x7_2sub2.vqh"
34 #include "books/line_128x7_2sub3.vqh"
35
36 #include "books/line_1024x31_class0.vqh"
37 #include "books/line_1024x31_class1.vqh"
38 #include "books/line_1024x31_class2.vqh"
39 #include "books/line_1024x31_class3.vqh"
40
41 #include "books/line_1024x31_0sub0.vqh"
42 #include "books/line_1024x31_0sub1.vqh"
43 #include "books/line_1024x31_1sub0.vqh"
44 #include "books/line_1024x31_1sub1.vqh"
45 #include "books/line_1024x31_2sub1.vqh"
46 #include "books/line_1024x31_2sub2.vqh"
47 #include "books/line_1024x31_2sub3.vqh"
48 #include "books/line_1024x31_3sub1.vqh"
49 #include "books/line_1024x31_3sub2.vqh"
50 #include "books/line_1024x31_3sub3.vqh"
51
52 #include "books/res_44c_Y_128aux.vqh"
53 #include "books/res_44c_Y_1024aux.vqh"
54
55 #include "books/res_Zc_1.vqh"
56 #include "books/res_Zc_2.vqh"
57 #include "books/res_Zc_3.vqh"
58 #include "books/res_Zc_4.vqh"
59 #include "books/res_Zc_5.vqh"
60 #include "books/res_Zc_6.vqh"
61 #include "books/res_Zc_7.vqh"
62 #include "books/res_Zc_8.vqh"
63 #include "books/res_Zc_9.vqh"
64 #include "books/res_Zc_9a.vqh"
65 #include "books/res_Zc_9b.vqh"
66
67 #include "maskadj_X.h"
68
69 static vorbis_info_psy_global _psy_set_44c_YG={
70   0, /* decaydBpms */
71   8,   /* lines per eighth octave */
72   
73   /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */
74   256, {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f,
75   -6.f, 
76   
77   0,
78 };
79
80 static struct vp_couple_pass _psy_pass_44c_Y0[]={
81   {1.f,1.f,
82     {{24,    0,0,       0,0,      0,0},
83      {9999,  0,0,   7.5f,12,  7.5f,0}}
84   },
85 };
86
87 static vp_couple_pass _psy_pass_44c_Y[]={
88   {1.f,1.f,
89     {{288,   0,0,       0,0,      0,0},
90      {9999,  0,0,   7.5f,12,  7.5f,0}}
91   }
92 };
93
94 static vorbis_info_psy _psy_set_44c_Y0={
95   ATH_Bark_dB_lineaggressive,
96   -100.,-110.,
97
98   /* tonemaskp */
99   0.f, -24.f,&_vp_tonemask_consbass_X,
100   /* peakattp, curvelimitp */
101   1, 0, &_vp_peakatt_X,
102
103   /*noisemaskp */
104   1,-24.f,     /* suppress any noise curve over maxspec+n */
105   1.f, 1.f,   /* low/high window */
106   2, 2, -1,
107
108   /*63     125     250     500      1k      2k      4k       8k     16k*/
109   {-20,-20,-20,-20,-20,-20,-10, -5,  0,  0,  1,  1,  2,  2,  2,  2,  4},
110   {1.f,1.f,1.f,1.f,1.f,1.f,.8f,.7f,.7f,.7f,.7f,.7f,.8f,.88f,.89f,.9f,.9f},
111
112   95.f,  /* even decade + 5 is important; saves an rint() later in a
113             tight loop) */
114   1,
115   _psy_pass_44c_Y0
116 };
117
118 static vorbis_info_psy _psy_set_44c_YT={
119   ATH_Bark_dB_lineaggressive,
120   -100.f,-110.f,
121
122   /* tonemask */
123   0.f,-24.f,&_vp_tonemask_consbass_X,
124   /* peakattp,curvelimitp */
125   1, 0,  &_vp_peakatt_X,
126
127   /*noisemaskp */
128   1,  -24.f,     /* suppress any noise curve over maxspec+n */
129       .5f,.5f,   /* low/high window */
130       10,10,100,
131
132   /*63     125     250     500      1k      2k      4k       8k     16k*/
133   {-20,-20,-20,-20,-20,-20,-20, -6,  2,  2,  2,  2,  3,   3,  3,  4, 6},
134   {1.f,1.f,1.f,1.f,1.f,1.f,.8f,.7f,.7f,.7f,.7f,.7f,.8f,.88f,.89f,.9f,.9f},
135
136   95.f,  /* even decade + 5 is important; saves an rint() later in a
137             tight loop) */
138   1,_psy_pass_44c_Y
139 };
140
141 static vorbis_info_psy _psy_set_44c_Y={
142   ATH_Bark_dB_lineaggressive,
143   -100.f,  -110.f,
144
145   /* tonemask */
146   0.f,-24.f,&_vp_tonemask_X,
147   /* peakattp, curvelimitp */
148   1, 0, &_vp_peakatt_X,
149
150   /*noisemaskp */
151   1,  -24.f,     /* suppress any noise curve over maxspec+n */
152       .5f,.5f,   /* low/high window */
153       10,10,100,
154
155   /*63     125     250     500      1k      2k      4k       8k     16k*/
156   {-20,-20,-20,-20,-20,-20,-10,-6,  0,  0,  1,  1,  2,   2,  2,  2, 6},
157   {1.f,1.f,1.f,1.f,1.f,1.f,.8f,.7f,.7f,.7f,.7f,.8f,.85f,.88f,.89f,.9f,.9f},
158
159   95.f,  /* even decade + 5 is important; saves an rint() later in a
160             tight loop) */
161   1,_psy_pass_44c_Y
162 };
163
164 static vorbis_info_time0 _time_set_44c_Y={0};
165
166 static vorbis_info_floor1 _floor_set_44c_Y0={
167   3,
168   {0,1,2},
169   
170   {1,3,3},
171   {0,2,2},
172   {-1,0,1},
173   {{2},{-1,3,4,5},{-1,6,7,8}},
174   
175   4,
176   
177   {0,128,  
178    
179    7,
180    
181    2,1,4,
182    23,13,45},
183   
184   60,30,500,
185   999,999,0,18.,
186   8,70,
187   90};
188
189 static vorbis_info_floor1 _floor_set_44c_Y={
190   10,
191   {0,1,2,2,2,2,2, 3,3,3},
192   
193   {3,4,3,3},
194   {1,1,2,2},
195   {9,10,11,12},
196   {{13,14},
197    {15,16},
198    {-1,17,18,19},
199    {-1,20,21,22},
200   },
201   
202   4,
203   {0,1024,
204    
205    88,31,243,
206    
207    14,54,143,460,
208    
209    6,3,10, 22,18,26, 41,36,47, 
210    69,61,78, 112,99,126, 185,162,211,  
211    329,282,387, 672,553,825
212   },
213   
214   60,30,400,
215   20,8,1,18.,
216   20,600,
217   720};
218
219 static vorbis_info_residue0 _residue_set_44c_Y0={
220   0,180, 12, 10,23,
221   {0,1,1,1,1,1,1,1,1,7},
222   {25, 26, 27, 28, 29, 30, 31, 32, 33,34,35},
223   {9999, 9999, 9999, 9999, 2,9999, 9999, 9999, 9999, 9999},
224   {.5, 1.5, 2.5f, 7.5, 1.5f,1.5, 2.5, 7.5, 22.5f},
225   {0},
226   {99, 4, 4, 4, 99,99, 99, 99, 99},
227   {3}};
228
229 static vorbis_info_residue0 _residue_set_44c_Y={
230   0,1440, 32, 10,24,
231   {0,1,1,1,1,1,1,1,1,7},
232   {25, 26, 27, 28, 29, 30, 31, 32, 33,34,35},
233   {9999, 9999, 9999, 9999, 3,9999, 9999, 9999, 9999, 9999},
234   {.5, 1.5, 2.5f, 7.5, 1.5f,1.5, 2.5, 7.5, 22.5f},
235   {0},
236   {99, 18, 18, 18, 99,99, 99, 99, 99},
237   {3}};
238
239 static vorbis_info_mapping0 _mapping_set_44c_Y0={
240   1, {0,0}, {0}, {0}, {0}, {0,0}, 1,{0},{1}};
241 static vorbis_info_mapping0 _mapping_set_44c_Y={
242   1, {0,0}, {0}, {1}, {1}, {1,2}, 1,{0},{1}};
243
244 static vorbis_info_mode _mode_set_44c_Y0={0,0,0,0};
245 static vorbis_info_mode _mode_set_44c_Y={1,0,0,1};
246
247 codec_setup_info info_44c_Y={
248
249   /* smallblock, largeblock */
250   {256, 2048}, 
251   /* modes,maps,times,floors,residues,books,psys */
252   2,          2,    1,     2,       2,   36,   3,
253   /* modes */
254   {&_mode_set_44c_Y0,&_mode_set_44c_Y},
255   /* maps */
256   {0,0},{&_mapping_set_44c_Y0,&_mapping_set_44c_Y},
257   /* times */
258   {0,0},{&_time_set_44c_Y},
259   /* floors */
260   {1,1},{&_floor_set_44c_Y0,&_floor_set_44c_Y},
261   /* residue */
262   {2,2},{&_residue_set_44c_Y0,&_residue_set_44c_Y},
263   /* books */
264     
265   {  
266    &_huff_book_line_128x7_class1,
267    &_huff_book_line_128x7_class2, /* 1 */
268    
269    &_huff_book_line_128x7_0sub0,  /* 2 */
270    &_huff_book_line_128x7_1sub1,  /* 3 */
271    &_huff_book_line_128x7_1sub2,
272    &_huff_book_line_128x7_1sub3,  /* 5 */
273    &_huff_book_line_128x7_2sub1,
274    &_huff_book_line_128x7_2sub2,  /* 7 */
275    &_huff_book_line_128x7_2sub3, 
276
277    &_huff_book_line_1024x31_class0,
278    &_huff_book_line_1024x31_class1, /* 10 */
279    &_huff_book_line_1024x31_class2,
280    &_huff_book_line_1024x31_class3, /* 12 */
281
282    &_huff_book_line_1024x31_0sub0,
283    &_huff_book_line_1024x31_0sub1, /* 14 */
284    &_huff_book_line_1024x31_1sub0, 
285    &_huff_book_line_1024x31_1sub1,
286    &_huff_book_line_1024x31_2sub1,  
287    &_huff_book_line_1024x31_2sub2, /* 18 */
288    &_huff_book_line_1024x31_2sub3, 
289    &_huff_book_line_1024x31_3sub1,
290    &_huff_book_line_1024x31_3sub2,
291    &_huff_book_line_1024x31_3sub3, /* 22 */
292
293    &_huff_book_res_44c_Y_128aux, 
294    &_huff_book_res_44c_Y_1024aux,
295
296    &_vq_book_res_Zc_1,
297    &_vq_book_res_Zc_2,
298    &_vq_book_res_Zc_3,
299    &_vq_book_res_Zc_4,
300    &_vq_book_res_Zc_5,
301    &_vq_book_res_Zc_6,
302    &_vq_book_res_Zc_7,
303    &_vq_book_res_Zc_8,
304    &_vq_book_res_Zc_9,
305    &_vq_book_res_Zc_9a,
306    &_vq_book_res_Zc_9b,
307
308   },
309   /* psy */
310   {&_psy_set_44c_Y0,&_psy_set_44c_YT,&_psy_set_44c_Y},
311   &_psy_set_44c_YG
312 };
313
314 #endif