Remove svn $Id$ header.
[platform/upstream/libvorbis.git] / lib / modes / floor_all.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-2009             *
9  * by the Xiph.Org Foundation http://www.xiph.org/                  *
10  *                                                                  *
11  ********************************************************************
12
13  function: key floor settings
14
15  ********************************************************************/
16
17 #include "vorbis/codec.h"
18 #include "backends.h"
19 #include "books/floor/floor_books.h"
20
21 static const static_codebook*const _floor_128x4_books[]={
22   &_huff_book_line_128x4_class0,
23   &_huff_book_line_128x4_0sub0,
24   &_huff_book_line_128x4_0sub1,
25   &_huff_book_line_128x4_0sub2,
26   &_huff_book_line_128x4_0sub3,
27 };
28 static const static_codebook*const _floor_256x4_books[]={
29   &_huff_book_line_256x4_class0,
30   &_huff_book_line_256x4_0sub0,
31   &_huff_book_line_256x4_0sub1,
32   &_huff_book_line_256x4_0sub2,
33   &_huff_book_line_256x4_0sub3,
34 };
35 static const static_codebook*const _floor_128x7_books[]={
36   &_huff_book_line_128x7_class0,
37   &_huff_book_line_128x7_class1,
38
39   &_huff_book_line_128x7_0sub1,
40   &_huff_book_line_128x7_0sub2,
41   &_huff_book_line_128x7_0sub3,
42   &_huff_book_line_128x7_1sub1,
43   &_huff_book_line_128x7_1sub2,
44   &_huff_book_line_128x7_1sub3,
45 };
46 static const static_codebook*const _floor_256x7_books[]={
47   &_huff_book_line_256x7_class0,
48   &_huff_book_line_256x7_class1,
49
50   &_huff_book_line_256x7_0sub1,
51   &_huff_book_line_256x7_0sub2,
52   &_huff_book_line_256x7_0sub3,
53   &_huff_book_line_256x7_1sub1,
54   &_huff_book_line_256x7_1sub2,
55   &_huff_book_line_256x7_1sub3,
56 };
57 static const static_codebook*const _floor_128x11_books[]={
58   &_huff_book_line_128x11_class1,
59   &_huff_book_line_128x11_class2,
60   &_huff_book_line_128x11_class3,
61
62   &_huff_book_line_128x11_0sub0,
63   &_huff_book_line_128x11_1sub0,
64   &_huff_book_line_128x11_1sub1,
65   &_huff_book_line_128x11_2sub1,
66   &_huff_book_line_128x11_2sub2,
67   &_huff_book_line_128x11_2sub3,
68   &_huff_book_line_128x11_3sub1,
69   &_huff_book_line_128x11_3sub2,
70   &_huff_book_line_128x11_3sub3,
71 };
72 static const static_codebook*const _floor_128x17_books[]={
73   &_huff_book_line_128x17_class1,
74   &_huff_book_line_128x17_class2,
75   &_huff_book_line_128x17_class3,
76
77   &_huff_book_line_128x17_0sub0,
78   &_huff_book_line_128x17_1sub0,
79   &_huff_book_line_128x17_1sub1,
80   &_huff_book_line_128x17_2sub1,
81   &_huff_book_line_128x17_2sub2,
82   &_huff_book_line_128x17_2sub3,
83   &_huff_book_line_128x17_3sub1,
84   &_huff_book_line_128x17_3sub2,
85   &_huff_book_line_128x17_3sub3,
86 };
87 static const static_codebook*const _floor_256x4low_books[]={
88   &_huff_book_line_256x4low_class0,
89   &_huff_book_line_256x4low_0sub0,
90   &_huff_book_line_256x4low_0sub1,
91   &_huff_book_line_256x4low_0sub2,
92   &_huff_book_line_256x4low_0sub3,
93 };
94 static const static_codebook*const _floor_1024x27_books[]={
95   &_huff_book_line_1024x27_class1,
96   &_huff_book_line_1024x27_class2,
97   &_huff_book_line_1024x27_class3,
98   &_huff_book_line_1024x27_class4,
99
100   &_huff_book_line_1024x27_0sub0,
101   &_huff_book_line_1024x27_1sub0,
102   &_huff_book_line_1024x27_1sub1,
103   &_huff_book_line_1024x27_2sub0,
104   &_huff_book_line_1024x27_2sub1,
105   &_huff_book_line_1024x27_3sub1,
106   &_huff_book_line_1024x27_3sub2,
107   &_huff_book_line_1024x27_3sub3,
108   &_huff_book_line_1024x27_4sub1,
109   &_huff_book_line_1024x27_4sub2,
110   &_huff_book_line_1024x27_4sub3,
111 };
112 static const static_codebook*const _floor_2048x27_books[]={
113   &_huff_book_line_2048x27_class1,
114   &_huff_book_line_2048x27_class2,
115   &_huff_book_line_2048x27_class3,
116   &_huff_book_line_2048x27_class4,
117
118   &_huff_book_line_2048x27_0sub0,
119   &_huff_book_line_2048x27_1sub0,
120   &_huff_book_line_2048x27_1sub1,
121   &_huff_book_line_2048x27_2sub0,
122   &_huff_book_line_2048x27_2sub1,
123   &_huff_book_line_2048x27_3sub1,
124   &_huff_book_line_2048x27_3sub2,
125   &_huff_book_line_2048x27_3sub3,
126   &_huff_book_line_2048x27_4sub1,
127   &_huff_book_line_2048x27_4sub2,
128   &_huff_book_line_2048x27_4sub3,
129 };
130
131 static const static_codebook*const _floor_512x17_books[]={
132   &_huff_book_line_512x17_class1,
133   &_huff_book_line_512x17_class2,
134   &_huff_book_line_512x17_class3,
135
136   &_huff_book_line_512x17_0sub0,
137   &_huff_book_line_512x17_1sub0,
138   &_huff_book_line_512x17_1sub1,
139   &_huff_book_line_512x17_2sub1,
140   &_huff_book_line_512x17_2sub2,
141   &_huff_book_line_512x17_2sub3,
142   &_huff_book_line_512x17_3sub1,
143   &_huff_book_line_512x17_3sub2,
144   &_huff_book_line_512x17_3sub3,
145 };
146
147 static const static_codebook*const _floor_Xx0_books[]={
148   0
149 };
150
151 static const static_codebook*const *const _floor_books[11]={
152   _floor_128x4_books,
153   _floor_256x4_books,
154   _floor_128x7_books,
155   _floor_256x7_books,
156   _floor_128x11_books,
157   _floor_128x17_books,
158   _floor_256x4low_books,
159   _floor_1024x27_books,
160   _floor_2048x27_books,
161   _floor_512x17_books,
162   _floor_Xx0_books,
163 };
164
165 static const vorbis_info_floor1 _floor[11]={
166   /* 0: 128 x 4 */
167   {
168     1,{0},{4},{2},{0},
169     {{1,2,3,4}},
170     4,{0,128, 33,8,16,70},
171
172     60,30,500,   1.,18.,  128
173   },
174   /* 1: 256 x 4 */
175   {
176     1,{0},{4},{2},{0},
177     {{1,2,3,4}},
178     4,{0,256, 66,16,32,140},
179
180     60,30,500,   1.,18.,  256
181   },
182   /* 2: 128 x 7 */
183   {
184     2,{0,1},{3,4},{2,2},{0,1},
185     {{-1,2,3,4},{-1,5,6,7}},
186     4,{0,128, 14,4,58, 2,8,28,90},
187
188     60,30,500,   1.,18.,  128
189   },
190   /* 3: 256 x 7 */
191   {
192     2,{0,1},{3,4},{2,2},{0,1},
193     {{-1,2,3,4},{-1,5,6,7}},
194     4,{0,256, 28,8,116, 4,16,56,180},
195
196     60,30,500,   1.,18.,  256
197   },
198   /* 4: 128 x 11 */
199   {
200     4,{0,1,2,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
201     {{3},{4,5},{-1,6,7,8},{-1,9,10,11}},
202
203     2,{0,128,  8,33,  4,16,70,  2,6,12,  23,46,90},
204
205      60,30,500,   1,18.,  128
206   },
207   /* 5: 128 x 17 */
208   {
209     6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
210     {{3},{4,5},{-1,6,7,8},{-1,9,10,11}},
211     2,{0,128,  12,46,  4,8,16,  23,33,70,  2,6,10,  14,19,28,  39,58,90},
212
213     60,30,500,    1,18.,  128
214   },
215   /* 6: 256 x 4 (low bitrate version) */
216   {
217     1,{0},{4},{2},{0},
218     {{1,2,3,4}},
219     4,{0,256, 66,16,32,140},
220
221     60,30,500,   1.,18.,  256
222   },
223   /* 7: 1024 x 27 */
224   {
225     8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3},
226     {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}},
227     2,{0,1024,   93,23,372, 6,46,186,750,  14,33,65, 130,260,556,
228        3,10,18,28,  39,55,79,111,  158,220,312,  464,650,850},
229
230     60,30,500,    3,18.,  1024
231   },
232   /* 8: 2048 x 27 */
233   {
234     8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3},
235     {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}},
236     2,{0,2048,   186,46,744, 12,92,372,1500,  28,66,130, 260,520,1112,
237        6,20,36,56,  78,110,158,222,  316,440,624,  928,1300,1700},
238
239     60,30,500,    3,18.,  2048
240   },
241   /* 9: 512 x 17 */
242   {
243     6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
244     {{3},{4,5},{-1,6,7,8},{-1,9,10,11}},
245     2,{0,512,  46,186,  16,33,65,  93,130,278,
246        7,23,39,  55,79,110,  156,232,360},
247
248     60,30,500,    1,18.,  512
249   },
250
251   /* 10: X x 0 (LFE floor; edge posts only) */
252   {
253     0,{0}, {0},{0},{-1},
254     {{-1}},
255     2,{0,12},
256     60,30,500,   1.,18.,  10
257   },
258
259 };