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