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 https://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 | };
|
---|