2 * Copyright (c) 2012 Andrew D'Addesio
3 * Copyright (c) 2013-2014 Mozilla Corporation
4 * Copyright (c) 2016 Rostislav Pehlivanov <atomnuker@gmail.com>
6 * This file is part of FFmpeg.
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 const uint8_t ff_opus_default_coupled_streams[] = { 0, 1, 1, 2, 2, 2, 2, 3 };
27 const uint8_t ff_celt_band_end[] = { 13, 17, 17, 19, 21 };
29 const uint16_t ff_silk_model_stereo_s1[] = {
30 256, 7, 9, 10, 11, 12, 22, 46, 54, 55, 56, 59, 82, 174, 197, 200,
31 201, 202, 210, 234, 244, 245, 246, 247, 249, 256
34 const uint16_t ff_silk_model_stereo_s2[] = {256, 85, 171, 256};
36 const uint16_t ff_silk_model_stereo_s3[] = {256, 51, 102, 154, 205, 256};
38 const uint16_t ff_silk_model_mid_only[] = {256, 192, 256};
40 const uint16_t ff_silk_model_frame_type_inactive[] = {256, 26, 256};
42 const uint16_t ff_silk_model_frame_type_active[] = {256, 24, 98, 246, 256};
44 const uint16_t ff_silk_model_gain_highbits[3][9] = {
45 {256, 32, 144, 212, 241, 253, 254, 255, 256},
46 {256, 2, 19, 64, 124, 186, 233, 252, 256},
47 {256, 1, 4, 30, 101, 195, 245, 254, 256}
50 const uint16_t ff_silk_model_gain_lowbits[] = {256, 32, 64, 96, 128, 160, 192, 224, 256};
52 const uint16_t ff_silk_model_gain_delta[] = {
53 256, 6, 11, 22, 53, 185, 206, 214, 218, 221, 223, 225, 227, 228, 229, 230,
54 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
55 247, 248, 249, 250, 251, 252, 253, 254, 255, 256
57 const uint16_t ff_silk_model_lsf_s1[2][2][33] = {
59 { // NB or MB, unvoiced
60 256, 44, 78, 108, 127, 148, 160, 171, 174, 177, 179, 195, 197, 199, 200, 205,
61 207, 208, 211, 214, 215, 216, 218, 220, 222, 225, 226, 235, 244, 246, 253, 255, 256
62 }, { // NB or MB, voiced
63 256, 1, 11, 12, 20, 23, 31, 39, 53, 66, 80, 81, 95, 107, 120, 131,
64 142, 154, 165, 175, 185, 196, 204, 213, 221, 228, 236, 237, 238, 244, 245, 251, 256
68 256, 31, 52, 55, 72, 73, 81, 98, 102, 103, 121, 137, 141, 143, 146, 147,
69 157, 158, 161, 177, 188, 204, 206, 208, 211, 213, 224, 225, 229, 238, 246, 253, 256
71 256, 1, 5, 21, 26, 44, 55, 60, 74, 89, 90, 93, 105, 118, 132, 146,
72 152, 166, 178, 180, 186, 187, 199, 211, 222, 232, 235, 245, 250, 251, 252, 253, 256
77 const uint16_t ff_silk_model_lsf_s2[32][10] = {
79 { 256, 1, 2, 3, 18, 242, 253, 254, 255, 256 },
80 { 256, 1, 2, 4, 38, 221, 253, 254, 255, 256 },
81 { 256, 1, 2, 6, 48, 197, 252, 254, 255, 256 },
82 { 256, 1, 2, 10, 62, 185, 246, 254, 255, 256 },
83 { 256, 1, 4, 20, 73, 174, 248, 254, 255, 256 },
84 { 256, 1, 4, 21, 76, 166, 239, 254, 255, 256 },
85 { 256, 1, 8, 32, 85, 159, 226, 252, 255, 256 },
86 { 256, 1, 2, 20, 83, 161, 219, 249, 255, 256 },
89 { 256, 1, 2, 3, 12, 244, 253, 254, 255, 256 },
90 { 256, 1, 2, 4, 32, 218, 253, 254, 255, 256 },
91 { 256, 1, 2, 5, 47, 199, 252, 254, 255, 256 },
92 { 256, 1, 2, 12, 61, 187, 252, 254, 255, 256 },
93 { 256, 1, 5, 24, 72, 172, 249, 254, 255, 256 },
94 { 256, 1, 2, 16, 70, 170, 242, 254, 255, 256 },
95 { 256, 1, 2, 17, 78, 165, 226, 251, 255, 256 },
96 { 256, 1, 8, 29, 79, 156, 237, 254, 255, 256 }
99 const uint16_t ff_silk_model_lsf_s2_ext[] = { 256, 156, 216, 240, 249, 253, 255, 256 };
101 const uint16_t ff_silk_model_lsf_interpolation_offset[] = { 256, 13, 35, 64, 75, 256 };
103 const uint16_t ff_silk_model_pitch_highbits[] = {
104 256, 3, 6, 12, 23, 44, 74, 106, 125, 136, 146, 158, 171, 184, 196, 207,
105 216, 224, 231, 237, 241, 243, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256
108 const uint16_t ff_silk_model_pitch_lowbits_nb[] = { 256, 64, 128, 192, 256 };
110 const uint16_t ff_silk_model_pitch_lowbits_mb[] = { 256, 43, 85, 128, 171, 213, 256 };
112 const uint16_t ff_silk_model_pitch_lowbits_wb[] = { 256, 32, 64, 96, 128, 160, 192, 224, 256 };
114 const uint16_t ff_silk_model_pitch_delta[] = {
115 256, 46, 48, 50, 53, 57, 63, 73, 88, 114, 152, 182, 204, 219, 229, 236,
116 242, 246, 250, 252, 254, 256
119 const uint16_t ff_silk_model_pitch_contour_nb10ms[] = { 256, 143, 193, 256 };
121 const uint16_t ff_silk_model_pitch_contour_nb20ms[] = {
122 256, 68, 80, 101, 118, 137, 159, 189, 213, 230, 246, 256
125 const uint16_t ff_silk_model_pitch_contour_mbwb10ms[] = {
126 256, 91, 137, 176, 195, 209, 221, 229, 236, 242, 247, 252, 256
129 const uint16_t ff_silk_model_pitch_contour_mbwb20ms[] = {
130 256, 33, 55, 73, 89, 104, 118, 132, 145, 158, 168, 177, 186, 194, 200, 206,
131 212, 217, 221, 225, 229, 232, 235, 238, 240, 242, 244, 246, 248, 250, 252, 253,
135 const uint16_t ff_silk_model_ltp_filter[] = { 256, 77, 157, 256 };
137 const uint16_t ff_silk_model_ltp_filter0_sel[] = {
138 256, 185, 200, 213, 226, 235, 244, 250, 256
141 const uint16_t ff_silk_model_ltp_filter1_sel[] = {
142 256, 57, 91, 112, 132, 147, 160, 172, 185, 195, 205, 214, 224, 233, 241, 248, 256
145 const uint16_t ff_silk_model_ltp_filter2_sel[] = {
146 256, 15, 31, 45, 57, 69, 81, 92, 103, 114, 124, 133, 142, 151, 160, 168,
147 176, 184, 192, 199, 206, 212, 218, 223, 227, 232, 236, 240, 244, 247, 251, 254, 256
150 const uint16_t ff_silk_model_ltp_scale_index[] = { 256, 128, 192, 256 };
152 const uint16_t ff_silk_model_lcg_seed[] = { 256, 64, 128, 192, 256 };
154 const uint16_t ff_silk_model_exc_rate[2][10] = {
155 { 256, 15, 66, 78, 124, 169, 182, 215, 242, 256 }, // unvoiced
156 { 256, 33, 63, 99, 116, 150, 199, 217, 238, 256 } // voiced
159 const uint16_t ff_silk_model_pulse_count[11][19] = {
160 { 256, 131, 205, 230, 238, 241, 244, 245, 246,
161 247, 248, 249, 250, 251, 252, 253, 254, 255, 256 },
162 { 256, 58, 151, 211, 234, 241, 244, 245, 246,
163 247, 248, 249, 250, 251, 252, 253, 254, 255, 256 },
164 { 256, 43, 94, 140, 173, 197, 213, 224, 232,
165 238, 241, 244, 247, 249, 250, 251, 253, 254, 256 },
166 { 256, 17, 69, 140, 197, 228, 240, 245, 246,
167 247, 248, 249, 250, 251, 252, 253, 254, 255, 256 },
168 { 256, 6, 27, 68, 121, 170, 205, 226, 237,
169 243, 246, 248, 250, 251, 252, 253, 254, 255, 256 },
170 { 256, 7, 21, 43, 71, 100, 128, 153, 173,
171 190, 203, 214, 223, 230, 235, 239, 243, 246, 256 },
172 { 256, 2, 7, 21, 50, 92, 138, 179, 210,
173 229, 240, 246, 249, 251, 252, 253, 254, 255, 256 },
174 { 256, 1, 3, 7, 17, 36, 65, 100, 137,
175 171, 199, 219, 233, 241, 246, 250, 252, 254, 256 },
176 { 256, 1, 3, 5, 10, 19, 33, 53, 77,
177 104, 132, 158, 181, 201, 216, 227, 235, 241, 256 },
178 { 256, 1, 2, 3, 9, 36, 94, 150, 189,
179 214, 228, 238, 244, 247, 250, 252, 253, 254, 256 },
180 { 256, 2, 3, 9, 36, 94, 150, 189, 214,
181 228, 238, 244, 247, 250, 252, 253, 254, 256, 256 }
184 const uint16_t ff_silk_model_pulse_location[4][168] = {
188 256, 25, 126, 230, 256,
189 256, 12, 72, 180, 244, 256,
190 256, 7, 42, 126, 213, 250, 256,
191 256, 4, 24, 83, 169, 232, 253, 256,
192 256, 3, 15, 53, 125, 200, 242, 254, 256,
193 256, 2, 10, 35, 89, 162, 221, 248, 255, 256,
194 256, 2, 7, 24, 63, 126, 191, 233, 251, 255, 256,
195 256, 1, 5, 17, 45, 94, 157, 211, 241, 252, 255, 256,
196 256, 1, 5, 13, 33, 70, 125, 182, 223, 245, 253, 255, 256,
197 256, 1, 4, 11, 26, 54, 98, 151, 199, 232, 248, 254, 255, 256,
198 256, 1, 3, 9, 21, 42, 77, 124, 172, 212, 237, 249, 254, 255, 256,
199 256, 1, 2, 6, 16, 33, 60, 97, 144, 187, 220, 241, 250, 254, 255, 256,
200 256, 1, 2, 3, 11, 25, 47, 80, 120, 163, 201, 229, 245, 253, 254, 255, 256,
201 256, 1, 2, 3, 4, 17, 35, 62, 98, 139, 180, 214, 238, 252, 253, 254, 255, 256
205 256, 22, 127, 233, 256,
206 256, 11, 72, 183, 246, 256,
207 256, 6, 41, 127, 215, 251, 256,
208 256, 4, 24, 83, 170, 232, 253, 256,
209 256, 3, 16, 56, 127, 200, 241, 254, 256,
210 256, 3, 12, 39, 92, 162, 218, 246, 255, 256,
211 256, 3, 11, 30, 67, 124, 185, 229, 249, 255, 256,
212 256, 3, 10, 25, 53, 97, 151, 200, 233, 250, 255, 256,
213 256, 1, 8, 21, 43, 77, 123, 171, 209, 237, 251, 255, 256,
214 256, 1, 2, 13, 35, 62, 97, 139, 186, 219, 244, 254, 255, 256,
215 256, 1, 2, 8, 22, 48, 85, 128, 171, 208, 234, 248, 254, 255, 256,
216 256, 1, 2, 6, 16, 36, 67, 107, 149, 189, 220, 240, 250, 254, 255, 256,
217 256, 1, 2, 5, 13, 29, 55, 90, 128, 166, 201, 227, 243, 251, 254, 255, 256,
218 256, 1, 2, 4, 10, 22, 43, 73, 109, 147, 183, 213, 234, 246, 252, 254, 255, 256
222 256, 20, 127, 236, 256,
223 256, 11, 71, 184, 246, 256,
224 256, 7, 43, 127, 214, 250, 256,
225 256, 6, 30, 87, 169, 229, 252, 256,
226 256, 5, 23, 62, 126, 194, 236, 252, 256,
227 256, 6, 20, 49, 96, 157, 209, 239, 253, 256,
228 256, 1, 16, 39, 74, 125, 175, 215, 245, 255, 256,
229 256, 1, 2, 23, 55, 97, 149, 195, 236, 254, 255, 256,
230 256, 1, 7, 23, 50, 86, 128, 170, 206, 233, 249, 255, 256,
231 256, 1, 6, 18, 39, 70, 108, 148, 186, 217, 238, 250, 255, 256,
232 256, 1, 4, 13, 30, 56, 90, 128, 166, 200, 226, 243, 252, 255, 256,
233 256, 1, 4, 11, 25, 47, 76, 110, 146, 180, 209, 231, 245, 252, 255, 256,
234 256, 1, 3, 8, 19, 37, 62, 93, 128, 163, 194, 219, 237, 248, 253, 255, 256,
235 256, 1, 2, 6, 15, 30, 51, 79, 111, 145, 177, 205, 226, 241, 250, 254, 255, 256
239 256, 21, 128, 235, 256,
240 256, 12, 72, 184, 245, 256,
241 256, 8, 42, 128, 214, 249, 256,
242 256, 8, 31, 86, 176, 231, 251, 256,
243 256, 5, 20, 58, 130, 202, 238, 253, 256,
244 256, 6, 18, 45, 97, 174, 221, 241, 251, 256,
245 256, 6, 25, 53, 88, 128, 168, 203, 231, 250, 256,
246 256, 4, 18, 40, 71, 108, 148, 185, 216, 238, 252, 256,
247 256, 3, 13, 31, 57, 90, 128, 166, 199, 225, 243, 253, 256,
248 256, 2, 10, 23, 44, 73, 109, 147, 183, 212, 233, 246, 254, 256,
249 256, 1, 6, 16, 33, 58, 90, 128, 166, 198, 223, 240, 250, 255, 256,
250 256, 1, 5, 12, 25, 46, 75, 110, 146, 181, 210, 231, 244, 251, 255, 256,
251 256, 1, 3, 8, 18, 35, 60, 92, 128, 164, 196, 221, 238, 248, 253, 255, 256,
252 256, 1, 3, 7, 14, 27, 48, 76, 110, 146, 180, 208, 229, 242, 249, 253, 255, 256
256 const uint16_t ff_silk_model_excitation_lsb[] = {256, 136, 256};
258 const uint16_t ff_silk_model_excitation_sign[3][2][7][3] = {
316 const int16_t ff_silk_stereo_weights[] = {
317 -13732, -10050, -8266, -7526, -6500, -5000, -2950, -820,
318 820, 2950, 5000, 6500, 7526, 8266, 10050, 13732
321 const uint8_t ff_silk_lsf_s2_model_sel_nbmb[32][10] = {
322 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
323 { 1, 3, 1, 2, 2, 1, 2, 1, 1, 1 },
324 { 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
325 { 1, 2, 2, 2, 2, 1, 2, 1, 1, 1 },
326 { 2, 3, 3, 3, 3, 2, 2, 2, 2, 2 },
327 { 0, 5, 3, 3, 2, 2, 2, 2, 1, 1 },
328 { 0, 2, 2, 2, 2, 2, 2, 2, 2, 1 },
329 { 2, 3, 6, 4, 4, 4, 5, 4, 5, 5 },
330 { 2, 4, 5, 5, 4, 5, 4, 6, 4, 4 },
331 { 2, 4, 4, 7, 4, 5, 4, 5, 5, 4 },
332 { 4, 3, 3, 3, 2, 3, 2, 2, 2, 2 },
333 { 1, 5, 5, 6, 4, 5, 4, 5, 5, 5 },
334 { 2, 7, 4, 6, 5, 5, 5, 5, 5, 5 },
335 { 2, 7, 5, 5, 5, 5, 5, 6, 5, 4 },
336 { 3, 3, 5, 4, 4, 5, 4, 5, 4, 4 },
337 { 2, 3, 3, 5, 5, 4, 4, 4, 4, 4 },
338 { 2, 4, 4, 6, 4, 5, 4, 5, 5, 5 },
339 { 2, 5, 4, 6, 5, 5, 5, 4, 5, 4 },
340 { 2, 7, 4, 5, 4, 5, 4, 5, 5, 5 },
341 { 2, 5, 4, 6, 7, 6, 5, 6, 5, 4 },
342 { 3, 6, 7, 4, 6, 5, 5, 6, 4, 5 },
343 { 2, 7, 6, 4, 4, 4, 5, 4, 5, 5 },
344 { 4, 5, 5, 4, 6, 6, 5, 6, 5, 4 },
345 { 2, 5, 5, 6, 5, 6, 4, 6, 4, 4 },
346 { 4, 5, 5, 5, 3, 7, 4, 5, 5, 4 },
347 { 2, 3, 4, 5, 5, 6, 4, 5, 5, 4 },
348 { 2, 3, 2, 3, 3, 4, 2, 3, 3, 3 },
349 { 1, 1, 2, 2, 2, 2, 2, 3, 2, 2 },
350 { 4, 5, 5, 6, 6, 6, 5, 6, 4, 5 },
351 { 3, 5, 5, 4, 4, 4, 4, 3, 3, 2 },
352 { 2, 5, 3, 7, 5, 5, 4, 4, 5, 4 },
353 { 4, 4, 5, 4, 5, 6, 5, 6, 5, 4 }
356 const uint8_t ff_silk_lsf_s2_model_sel_wb[32][16] = {
357 { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 },
358 { 10, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 9, 9, 9, 8, 11 },
359 { 10, 13, 13, 11, 15, 12, 12, 13, 10, 13, 12, 13, 13, 12, 11, 11 },
360 { 8, 10, 9, 10, 10, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9 },
361 { 8, 14, 13, 12, 14, 12, 15, 13, 12, 12, 12, 13, 13, 12, 12, 11 },
362 { 8, 11, 13, 13, 12, 11, 11, 13, 11, 11, 11, 11, 11, 11, 10, 12 },
363 { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 },
364 { 8, 10, 14, 11, 15, 10, 13, 11, 12, 13, 13, 12, 11, 11, 10, 11 },
365 { 8, 14, 10, 14, 14, 12, 13, 12, 14, 13, 12, 12, 13, 11, 11, 11 },
366 { 10, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 },
367 { 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9 },
368 { 10, 10, 11, 12, 13, 11, 11, 11, 11, 11, 11, 11, 10, 10, 9, 11 },
369 { 10, 10, 11, 11, 12, 11, 11, 11, 11, 11, 11, 11, 11, 10, 9, 11 },
370 { 11, 12, 12, 12, 14, 12, 12, 13, 11, 13, 12, 12, 13, 12, 11, 12 },
371 { 8, 14, 12, 13, 12, 15, 13, 10, 14, 13, 15, 12, 12, 11, 13, 11 },
372 { 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 8 },
373 { 9, 14, 13, 15, 13, 12, 13, 11, 12, 13, 12, 12, 12, 11, 11, 12 },
374 { 9, 11, 11, 12, 12, 11, 11, 13, 10, 11, 11, 13, 13, 13, 11, 12 },
375 { 10, 11, 11, 10, 10, 10, 11, 10, 9, 10, 9, 10, 9, 9, 9, 12 },
376 { 8, 10, 11, 13, 11, 11, 10, 10, 10, 9, 9, 8, 8, 8, 8, 8 },
377 { 11, 12, 11, 13, 11, 11, 10, 10, 9, 9, 9, 9, 9, 10, 10, 12 },
378 { 10, 14, 11, 15, 15, 12, 13, 12, 13, 11, 13, 11, 11, 10, 11, 11 },
379 { 10, 11, 13, 14, 14, 11, 13, 11, 12, 12, 11, 11, 11, 11, 10, 12 },
380 { 9, 11, 11, 12, 12, 12, 12, 11, 13, 13, 13, 11, 9, 9, 9, 9 },
381 { 10, 13, 11, 14, 14, 12, 15, 12, 12, 13, 11, 12, 12, 11, 11, 11 },
382 { 8, 14, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 },
383 { 8, 14, 14, 11, 13, 10, 13, 13, 11, 12, 12, 15, 15, 12, 12, 12 },
384 { 11, 11, 15, 11, 13, 12, 11, 11, 11, 10, 10, 11, 11, 11, 10, 11 },
385 { 8, 8, 9, 8, 8, 8, 10, 9, 10, 9, 9, 10, 10, 10, 9, 9 },
386 { 8, 11, 10, 13, 11, 11, 10, 11, 10, 9, 8, 8, 9, 8, 8, 9 },
387 { 11, 13, 13, 12, 15, 13, 11, 11, 10, 11, 10, 10, 9, 8, 9, 8 },
388 { 10, 11, 13, 11, 12, 11, 11, 11, 10, 9, 10, 14, 12, 8, 8, 8 }
391 const uint8_t ff_silk_lsf_pred_weights_nbmb[2][9] = {
392 {179, 138, 140, 148, 151, 149, 153, 151, 163},
393 {116, 67, 82, 59, 92, 72, 100, 89, 92}
396 const uint8_t ff_silk_lsf_pred_weights_wb[2][15] = {
397 {175, 148, 160, 176, 178, 173, 174, 164, 177, 174, 196, 182, 198, 192, 182},
398 { 68, 62, 66, 60, 72, 117, 85, 90, 118, 136, 151, 142, 160, 142, 155}
401 const uint8_t ff_silk_lsf_weight_sel_nbmb[32][9] = {
402 { 0, 1, 0, 0, 0, 0, 0, 0, 0 },
403 { 1, 0, 0, 0, 0, 0, 0, 0, 0 },
404 { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
405 { 1, 1, 1, 0, 0, 0, 0, 1, 0 },
406 { 0, 1, 0, 0, 0, 0, 0, 0, 0 },
407 { 0, 1, 0, 0, 0, 0, 0, 0, 0 },
408 { 1, 0, 1, 1, 0, 0, 0, 1, 0 },
409 { 0, 1, 1, 0, 0, 1, 1, 0, 0 },
410 { 0, 0, 1, 1, 0, 1, 0, 1, 1 },
411 { 0, 0, 1, 1, 0, 0, 1, 1, 1 },
412 { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
413 { 0, 1, 0, 1, 1, 1, 1, 1, 0 },
414 { 0, 1, 0, 1, 1, 1, 1, 1, 0 },
415 { 0, 1, 1, 1, 1, 1, 1, 1, 0 },
416 { 1, 0, 1, 1, 0, 1, 1, 1, 1 },
417 { 0, 1, 1, 1, 1, 1, 0, 1, 0 },
418 { 0, 0, 1, 1, 0, 1, 0, 1, 0 },
419 { 0, 0, 1, 1, 1, 0, 1, 1, 1 },
420 { 0, 1, 1, 0, 0, 1, 1, 1, 0 },
421 { 0, 0, 0, 1, 1, 1, 0, 1, 0 },
422 { 0, 1, 1, 0, 0, 1, 0, 1, 0 },
423 { 0, 1, 1, 0, 0, 0, 1, 1, 0 },
424 { 0, 0, 0, 0, 0, 1, 1, 1, 1 },
425 { 0, 0, 1, 1, 0, 0, 0, 1, 1 },
426 { 0, 0, 0, 1, 0, 1, 1, 1, 1 },
427 { 0, 1, 1, 1, 1, 1, 1, 1, 0 },
428 { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
429 { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
430 { 0, 0, 1, 0, 1, 1, 0, 1, 0 },
431 { 1, 0, 0, 1, 0, 0, 0, 0, 0 },
432 { 0, 0, 0, 1, 1, 0, 1, 0, 1 },
433 { 1, 0, 1, 1, 0, 1, 1, 1, 1 }
436 const uint8_t ff_silk_lsf_weight_sel_wb[32][15] = {
437 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
438 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
439 { 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0 },
440 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
441 { 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0 },
442 { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
443 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0 },
444 { 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1 },
445 { 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1 },
446 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
447 { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
448 { 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0 },
449 { 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0 },
450 { 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0 },
451 { 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 },
452 { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
453 { 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0 },
454 { 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0 },
455 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
456 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
457 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
458 { 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0 },
459 { 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
460 { 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0 },
461 { 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
462 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
463 { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1 },
464 { 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1 },
465 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
466 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
467 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
468 { 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0 }
471 const uint8_t ff_silk_lsf_codebook_nbmb[32][10] = {
472 { 12, 35, 60, 83, 108, 132, 157, 180, 206, 228 },
473 { 15, 32, 55, 77, 101, 125, 151, 175, 201, 225 },
474 { 19, 42, 66, 89, 114, 137, 162, 184, 209, 230 },
475 { 12, 25, 50, 72, 97, 120, 147, 172, 200, 223 },
476 { 26, 44, 69, 90, 114, 135, 159, 180, 205, 225 },
477 { 13, 22, 53, 80, 106, 130, 156, 180, 205, 228 },
478 { 15, 25, 44, 64, 90, 115, 142, 168, 196, 222 },
479 { 19, 24, 62, 82, 100, 120, 145, 168, 190, 214 },
480 { 22, 31, 50, 79, 103, 120, 151, 170, 203, 227 },
481 { 21, 29, 45, 65, 106, 124, 150, 171, 196, 224 },
482 { 30, 49, 75, 97, 121, 142, 165, 186, 209, 229 },
483 { 19, 25, 52, 70, 93, 116, 143, 166, 192, 219 },
484 { 26, 34, 62, 75, 97, 118, 145, 167, 194, 217 },
485 { 25, 33, 56, 70, 91, 113, 143, 165, 196, 223 },
486 { 21, 34, 51, 72, 97, 117, 145, 171, 196, 222 },
487 { 20, 29, 50, 67, 90, 117, 144, 168, 197, 221 },
488 { 22, 31, 48, 66, 95, 117, 146, 168, 196, 222 },
489 { 24, 33, 51, 77, 116, 134, 158, 180, 200, 224 },
490 { 21, 28, 70, 87, 106, 124, 149, 170, 194, 217 },
491 { 26, 33, 53, 64, 83, 117, 152, 173, 204, 225 },
492 { 27, 34, 65, 95, 108, 129, 155, 174, 210, 225 },
493 { 20, 26, 72, 99, 113, 131, 154, 176, 200, 219 },
494 { 34, 43, 61, 78, 93, 114, 155, 177, 205, 229 },
495 { 23, 29, 54, 97, 124, 138, 163, 179, 209, 229 },
496 { 30, 38, 56, 89, 118, 129, 158, 178, 200, 231 },
497 { 21, 29, 49, 63, 85, 111, 142, 163, 193, 222 },
498 { 27, 48, 77, 103, 133, 158, 179, 196, 215, 232 },
499 { 29, 47, 74, 99, 124, 151, 176, 198, 220, 237 },
500 { 33, 42, 61, 76, 93, 121, 155, 174, 207, 225 },
501 { 29, 53, 87, 112, 136, 154, 170, 188, 208, 227 },
502 { 24, 30, 52, 84, 131, 150, 166, 186, 203, 229 },
503 { 37, 48, 64, 84, 104, 118, 156, 177, 201, 230 }
506 const uint8_t ff_silk_lsf_codebook_wb[32][16] = {
507 { 7, 23, 38, 54, 69, 85, 100, 116, 131, 147, 162, 178, 193, 208, 223, 239 },
508 { 13, 25, 41, 55, 69, 83, 98, 112, 127, 142, 157, 171, 187, 203, 220, 236 },
509 { 15, 21, 34, 51, 61, 78, 92, 106, 126, 136, 152, 167, 185, 205, 225, 240 },
510 { 10, 21, 36, 50, 63, 79, 95, 110, 126, 141, 157, 173, 189, 205, 221, 237 },
511 { 17, 20, 37, 51, 59, 78, 89, 107, 123, 134, 150, 164, 184, 205, 224, 240 },
512 { 10, 15, 32, 51, 67, 81, 96, 112, 129, 142, 158, 173, 189, 204, 220, 236 },
513 { 8, 21, 37, 51, 65, 79, 98, 113, 126, 138, 155, 168, 179, 192, 209, 218 },
514 { 12, 15, 34, 55, 63, 78, 87, 108, 118, 131, 148, 167, 185, 203, 219, 236 },
515 { 16, 19, 32, 36, 56, 79, 91, 108, 118, 136, 154, 171, 186, 204, 220, 237 },
516 { 11, 28, 43, 58, 74, 89, 105, 120, 135, 150, 165, 180, 196, 211, 226, 241 },
517 { 6, 16, 33, 46, 60, 75, 92, 107, 123, 137, 156, 169, 185, 199, 214, 225 },
518 { 11, 19, 30, 44, 57, 74, 89, 105, 121, 135, 152, 169, 186, 202, 218, 234 },
519 { 12, 19, 29, 46, 57, 71, 88, 100, 120, 132, 148, 165, 182, 199, 216, 233 },
520 { 17, 23, 35, 46, 56, 77, 92, 106, 123, 134, 152, 167, 185, 204, 222, 237 },
521 { 14, 17, 45, 53, 63, 75, 89, 107, 115, 132, 151, 171, 188, 206, 221, 240 },
522 { 9, 16, 29, 40, 56, 71, 88, 103, 119, 137, 154, 171, 189, 205, 222, 237 },
523 { 16, 19, 36, 48, 57, 76, 87, 105, 118, 132, 150, 167, 185, 202, 218, 236 },
524 { 12, 17, 29, 54, 71, 81, 94, 104, 126, 136, 149, 164, 182, 201, 221, 237 },
525 { 15, 28, 47, 62, 79, 97, 115, 129, 142, 155, 168, 180, 194, 208, 223, 238 },
526 { 8, 14, 30, 45, 62, 78, 94, 111, 127, 143, 159, 175, 192, 207, 223, 239 },
527 { 17, 30, 49, 62, 79, 92, 107, 119, 132, 145, 160, 174, 190, 204, 220, 235 },
528 { 14, 19, 36, 45, 61, 76, 91, 108, 121, 138, 154, 172, 189, 205, 222, 238 },
529 { 12, 18, 31, 45, 60, 76, 91, 107, 123, 138, 154, 171, 187, 204, 221, 236 },
530 { 13, 17, 31, 43, 53, 70, 83, 103, 114, 131, 149, 167, 185, 203, 220, 237 },
531 { 17, 22, 35, 42, 58, 78, 93, 110, 125, 139, 155, 170, 188, 206, 224, 240 },
532 { 8, 15, 34, 50, 67, 83, 99, 115, 131, 146, 162, 178, 193, 209, 224, 239 },
533 { 13, 16, 41, 66, 73, 86, 95, 111, 128, 137, 150, 163, 183, 206, 225, 241 },
534 { 17, 25, 37, 52, 63, 75, 92, 102, 119, 132, 144, 160, 175, 191, 212, 231 },
535 { 19, 31, 49, 65, 83, 100, 117, 133, 147, 161, 174, 187, 200, 213, 227, 242 },
536 { 18, 31, 52, 68, 88, 103, 117, 126, 138, 149, 163, 177, 192, 207, 223, 239 },
537 { 16, 29, 47, 61, 76, 90, 106, 119, 133, 147, 161, 176, 193, 209, 224, 240 },
538 { 15, 21, 35, 50, 61, 73, 86, 97, 110, 119, 129, 141, 175, 198, 218, 237 }
541 const uint16_t ff_silk_lsf_min_spacing_nbmb[] = {
542 250, 3, 6, 3, 3, 3, 4, 3, 3, 3, 461
545 const uint16_t ff_silk_lsf_min_spacing_wb[] = {
546 100, 3, 40, 3, 3, 3, 5, 14, 14, 10, 11, 3, 8, 9, 7, 3, 347
549 const uint8_t ff_silk_lsf_ordering_nbmb[] = {
550 0, 9, 6, 3, 4, 5, 8, 1, 2, 7
553 const uint8_t ff_silk_lsf_ordering_wb[] = {
554 0, 15, 8, 7, 4, 11, 12, 3, 2, 13, 10, 5, 6, 9, 14, 1
557 const int16_t ff_silk_cosine[] = { /* (0.12) */
558 4096, 4095, 4091, 4085,
559 4076, 4065, 4052, 4036,
560 4017, 3997, 3973, 3948,
561 3920, 3889, 3857, 3822,
562 3784, 3745, 3703, 3659,
563 3613, 3564, 3513, 3461,
564 3406, 3349, 3290, 3229,
565 3166, 3102, 3035, 2967,
566 2896, 2824, 2751, 2676,
567 2599, 2520, 2440, 2359,
568 2276, 2191, 2106, 2019,
569 1931, 1842, 1751, 1660,
570 1568, 1474, 1380, 1285,
571 1189, 1093, 995, 897,
575 -401, -501, -601, -700,
576 -799, -897, -995, -1093,
577 -1189, -1285, -1380, -1474,
578 -1568, -1660, -1751, -1842,
579 -1931, -2019, -2106, -2191,
580 -2276, -2359, -2440, -2520,
581 -2599, -2676, -2751, -2824,
582 -2896, -2967, -3035, -3102,
583 -3166, -3229, -3290, -3349,
584 -3406, -3461, -3513, -3564,
585 -3613, -3659, -3703, -3745,
586 -3784, -3822, -3857, -3889,
587 -3920, -3948, -3973, -3997,
588 -4017, -4036, -4052, -4065,
589 -4076, -4085, -4091, -4095,
593 const uint16_t ff_silk_pitch_scale[] = { 4, 6, 8};
595 const uint16_t ff_silk_pitch_min_lag[] = { 16, 24, 32};
597 const uint16_t ff_silk_pitch_max_lag[] = {144, 216, 288};
599 const int8_t ff_silk_pitch_offset_nb10ms[3][2] = {
605 const int8_t ff_silk_pitch_offset_nb20ms[11][4] = {
619 const int8_t ff_silk_pitch_offset_mbwb10ms[12][2] = {
634 const int8_t ff_silk_pitch_offset_mbwb20ms[34][4] = {
671 const int8_t ff_silk_ltp_filter0_taps[8][5] = {
674 { 12, 28, 41, 13, -4},
675 { -9, 15, 42, 25, 14},
676 { 1, -2, 62, 41, -9},
677 {-10, 37, 65, -4, 3},
679 { 16, 14, 38, -3, 33}
682 const int8_t ff_silk_ltp_filter1_taps[16][5] = {
683 { 13, 22, 39, 23, 12},
684 { -1, 36, 64, 27, -6},
685 { -7, 10, 55, 43, 17},
687 { 6, -11, 74, 53, -9},
688 {-12, 55, 76, -12, 8},
689 { -3, 3, 93, 27, -4},
690 { 26, 39, 59, 3, -8},
692 { -8, 22, 44, -6, 7},
694 { -7, 20, 101, -7, 4},
696 {-15, 33, 68, 2, 23},
697 { -2, 55, 46, -2, 15},
701 const int8_t ff_silk_ltp_filter2_taps[32][5] = {
702 { -6, 27, 61, 39, 5},
704 { -2, 60, 65, 6, -4},
705 { -1, -5, 73, 56, 1},
706 { -9, 19, 94, 29, -9},
708 { 8, -19, 102, 46, -13},
710 { 9, -21, 84, 72, -18},
711 {-11, 46, 104, -22, 8},
712 { 18, 38, 48, 23, 0},
713 {-16, 70, 83, -21, 11},
714 { 5, -11, 117, 22, -8},
715 { -6, 23, 117, -12, 3},
717 {-10, 15, 77, 60, -15},
718 { -1, 4, 124, 2, -4},
719 { 3, 38, 84, 24, -25},
720 { 2, 13, 42, 13, 31},
721 { 21, -4, 56, 46, -1},
722 { -1, 35, 79, -13, 19},
723 { -7, 65, 88, -9, -14},
724 { 20, 4, 81, 49, -29},
725 { 20, 0, 75, 3, -17},
726 { 5, -9, 44, 92, -8},
727 { 1, -3, 22, 69, 31},
728 { -6, 95, 41, -12, 5},
729 { 39, 67, 16, -4, 1},
730 { 0, -6, 120, 55, -36},
731 {-13, 44, 122, 4, -24},
736 const uint16_t ff_silk_ltp_scale_factor[] = {15565, 12288, 8192};
738 const uint8_t ff_silk_shell_blocks[3][2] = {
744 const uint8_t ff_silk_quant_offset[2][2] = { /* (0.23) */
745 {25, 60}, // Inactive or Unvoiced
749 const int ff_silk_stereo_interp_len[3] = {
753 const uint16_t ff_celt_model_tapset[] = { 4, 2, 3, 4 };
755 const uint16_t ff_celt_model_spread[] = { 32, 7, 9, 30, 32 };
757 const uint16_t ff_celt_model_alloc_trim[] = {
758 128, 2, 4, 9, 19, 41, 87, 109, 119, 124, 126, 128
761 const uint16_t ff_celt_model_energy_small[] = { 4, 2, 3, 4 };
763 const uint8_t ff_celt_freq_bands[] = { /* in steps of 200Hz */
764 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 34, 40, 48, 60, 78, 100
767 const uint8_t ff_celt_freq_range[] = {
768 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 6, 6, 8, 12, 18, 22
771 const uint8_t ff_celt_log_freq_range[] = {
772 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 16, 16, 16, 21, 21, 24, 29, 34, 36
775 /* Positive - increased freqeuency resolution (only possible on transients)
776 * Negative - increased time resolution */
777 const int8_t ff_celt_tf_select[4][2][2][2] = {
778 /* OFF ON Transient frame */
779 /* OFF ON OFF ON TF select flag */
780 /* OFF ON OFF ON OFF ON OFF ON TF change flag */
781 { { { 0, -1 }, { 0, -1 } }, { { 0, -1 }, { 0, -1 } } }, /* 120 */
782 { { { 0, -1 }, { 0, -2 } }, { { 1, 0 }, { 1, -1 } } }, /* 240 */
783 { { { 0, -2 }, { 0, -3 } }, { { 2, 0 }, { 1, -1 } } }, /* 480 */
784 { { { 0, -2 }, { 0, -3 } }, { { 3, 0 }, { 1, -1 } } } /* 960 */
787 const float ff_celt_mean_energy[] = {
788 6.437500f, 6.250000f, 5.750000f, 5.312500f, 5.062500f,
789 4.812500f, 4.500000f, 4.375000f, 4.875000f, 4.687500f,
790 4.562500f, 4.437500f, 4.875000f, 4.625000f, 4.312500f,
791 4.500000f, 4.375000f, 4.625000f, 4.750000f, 4.437500f,
792 3.750000f, 3.750000f, 3.750000f, 3.750000f, 3.750000f
795 const float ff_celt_alpha_coef[] = {
796 29440.0f/32768.0f, 26112.0f/32768.0f, 21248.0f/32768.0f, 16384.0f/32768.0f
799 const float ff_celt_beta_coef[] = {
800 1.0f - (30147.0f/32768.0f), 1.0f - (22282.0f/32768.0f), 1.0f - (12124.0f/32768.0f), 1.0f - (6554.0f/32768.0f),
803 const uint8_t ff_celt_coarse_energy_dist[4][2][42] = {
805 { // 120-sample inter
806 72, 127, 65, 129, 66, 128, 65, 128, 64, 128, 62, 128, 64, 128,
807 64, 128, 92, 78, 92, 79, 92, 78, 90, 79, 116, 41, 115, 40,
808 114, 40, 132, 26, 132, 26, 145, 17, 161, 12, 176, 10, 177, 11
809 }, { // 120-sample intra
810 24, 179, 48, 138, 54, 135, 54, 132, 53, 134, 56, 133, 55, 132,
811 55, 132, 61, 114, 70, 96, 74, 88, 75, 88, 87, 74, 89, 66,
812 91, 67, 100, 59, 108, 50, 120, 40, 122, 37, 97, 43, 78, 50
815 { // 240-sample inter
816 83, 78, 84, 81, 88, 75, 86, 74, 87, 71, 90, 73, 93, 74,
817 93, 74, 109, 40, 114, 36, 117, 34, 117, 34, 143, 17, 145, 18,
818 146, 19, 162, 12, 165, 10, 178, 7, 189, 6, 190, 8, 177, 9
819 }, { // 240-sample intra
820 23, 178, 54, 115, 63, 102, 66, 98, 69, 99, 74, 89, 71, 91,
821 73, 91, 78, 89, 86, 80, 92, 66, 93, 64, 102, 59, 103, 60,
822 104, 60, 117, 52, 123, 44, 138, 35, 133, 31, 97, 38, 77, 45
825 { // 480-sample inter
826 61, 90, 93, 60, 105, 42, 107, 41, 110, 45, 116, 38, 113, 38,
827 112, 38, 124, 26, 132, 27, 136, 19, 140, 20, 155, 14, 159, 16,
828 158, 18, 170, 13, 177, 10, 187, 8, 192, 6, 175, 9, 159, 10
829 }, { // 480-sample intra
830 21, 178, 59, 110, 71, 86, 75, 85, 84, 83, 91, 66, 88, 73,
831 87, 72, 92, 75, 98, 72, 105, 58, 107, 54, 115, 52, 114, 55,
832 112, 56, 129, 51, 132, 40, 150, 33, 140, 29, 98, 35, 77, 42
835 { // 960-sample inter
836 42, 121, 96, 66, 108, 43, 111, 40, 117, 44, 123, 32, 120, 36,
837 119, 33, 127, 33, 134, 34, 139, 21, 147, 23, 152, 20, 158, 25,
838 154, 26, 166, 21, 173, 16, 184, 13, 184, 10, 150, 13, 139, 15
839 }, { // 960-sample intra
840 22, 178, 63, 114, 74, 82, 84, 83, 92, 82, 103, 62, 96, 72,
841 96, 67, 101, 73, 107, 72, 113, 55, 118, 52, 125, 52, 118, 52,
842 117, 55, 135, 49, 137, 39, 157, 32, 145, 29, 97, 33, 77, 40
847 const uint8_t ff_celt_static_alloc[11][21] = { /* 1/32 bit/sample */
848 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
849 { 90, 80, 75, 69, 63, 56, 49, 40, 34, 29, 20, 18, 10, 0, 0, 0, 0, 0, 0, 0, 0 },
850 { 110, 100, 90, 84, 78, 71, 65, 58, 51, 45, 39, 32, 26, 20, 12, 0, 0, 0, 0, 0, 0 },
851 { 118, 110, 103, 93, 86, 80, 75, 70, 65, 59, 53, 47, 40, 31, 23, 15, 4, 0, 0, 0, 0 },
852 { 126, 119, 112, 104, 95, 89, 83, 78, 72, 66, 60, 54, 47, 39, 32, 25, 17, 12, 1, 0, 0 },
853 { 134, 127, 120, 114, 103, 97, 91, 85, 78, 72, 66, 60, 54, 47, 41, 35, 29, 23, 16, 10, 1 },
854 { 144, 137, 130, 124, 113, 107, 101, 95, 88, 82, 76, 70, 64, 57, 51, 45, 39, 33, 26, 15, 1 },
855 { 152, 145, 138, 132, 123, 117, 111, 105, 98, 92, 86, 80, 74, 67, 61, 55, 49, 43, 36, 20, 1 },
856 { 162, 155, 148, 142, 133, 127, 121, 115, 108, 102, 96, 90, 84, 77, 71, 65, 59, 53, 46, 30, 1 },
857 { 172, 165, 158, 152, 143, 137, 131, 125, 118, 112, 106, 100, 94, 87, 81, 75, 69, 63, 56, 45, 20 },
858 { 200, 200, 200, 200, 200, 200, 200, 200, 198, 193, 188, 183, 178, 173, 168, 163, 158, 153, 148, 129, 104 }
861 const uint8_t ff_celt_static_caps[4][2][21] = {
863 {224, 224, 224, 224, 224, 224, 224, 224, 160, 160,
864 160, 160, 185, 185, 185, 178, 178, 168, 134, 61, 37},
865 {224, 224, 224, 224, 224, 224, 224, 224, 240, 240,
866 240, 240, 207, 207, 207, 198, 198, 183, 144, 66, 40},
868 {160, 160, 160, 160, 160, 160, 160, 160, 185, 185,
869 185, 185, 193, 193, 193, 183, 183, 172, 138, 64, 38},
870 {240, 240, 240, 240, 240, 240, 240, 240, 207, 207,
871 207, 207, 204, 204, 204, 193, 193, 180, 143, 66, 40},
873 {185, 185, 185, 185, 185, 185, 185, 185, 193, 193,
874 193, 193, 193, 193, 193, 183, 183, 172, 138, 65, 39},
875 {207, 207, 207, 207, 207, 207, 207, 207, 204, 204,
876 204, 204, 201, 201, 201, 188, 188, 176, 141, 66, 40},
878 {193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
879 193, 193, 194, 194, 194, 184, 184, 173, 139, 65, 39},
880 {204, 204, 204, 204, 204, 204, 204, 204, 201, 201,
881 201, 201, 198, 198, 198, 187, 187, 175, 140, 66, 40}
885 const uint8_t ff_celt_cache_bits[392] = {
886 40, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
887 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
888 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 40, 15, 23, 28,
889 31, 34, 36, 38, 39, 41, 42, 43, 44, 45, 46, 47, 47, 49, 50,
890 51, 52, 53, 54, 55, 55, 57, 58, 59, 60, 61, 62, 63, 63, 65,
891 66, 67, 68, 69, 70, 71, 71, 40, 20, 33, 41, 48, 53, 57, 61,
892 64, 66, 69, 71, 73, 75, 76, 78, 80, 82, 85, 87, 89, 91, 92,
893 94, 96, 98, 101, 103, 105, 107, 108, 110, 112, 114, 117, 119, 121, 123,
894 124, 126, 128, 40, 23, 39, 51, 60, 67, 73, 79, 83, 87, 91, 94,
895 97, 100, 102, 105, 107, 111, 115, 118, 121, 124, 126, 129, 131, 135, 139,
896 142, 145, 148, 150, 153, 155, 159, 163, 166, 169, 172, 174, 177, 179, 35,
897 28, 49, 65, 78, 89, 99, 107, 114, 120, 126, 132, 136, 141, 145, 149,
898 153, 159, 165, 171, 176, 180, 185, 189, 192, 199, 205, 211, 216, 220, 225,
899 229, 232, 239, 245, 251, 21, 33, 58, 79, 97, 112, 125, 137, 148, 157,
900 166, 174, 182, 189, 195, 201, 207, 217, 227, 235, 243, 251, 17, 35, 63,
901 86, 106, 123, 139, 152, 165, 177, 187, 197, 206, 214, 222, 230, 237, 250,
902 25, 31, 55, 75, 91, 105, 117, 128, 138, 146, 154, 161, 168, 174, 180,
903 185, 190, 200, 208, 215, 222, 229, 235, 240, 245, 255, 16, 36, 65, 89,
904 110, 128, 144, 159, 173, 185, 196, 207, 217, 226, 234, 242, 250, 11, 41,
905 74, 103, 128, 151, 172, 191, 209, 225, 241, 255, 9, 43, 79, 110, 138,
906 163, 186, 207, 227, 246, 12, 39, 71, 99, 123, 144, 164, 182, 198, 214,
907 228, 241, 253, 9, 44, 81, 113, 142, 168, 192, 214, 235, 255, 7, 49,
908 90, 127, 160, 191, 220, 247, 6, 51, 95, 134, 170, 203, 234, 7, 47,
909 87, 123, 155, 184, 212, 237, 6, 52, 97, 137, 174, 208, 240, 5, 57,
910 106, 151, 192, 231, 5, 59, 111, 158, 202, 243, 5, 55, 103, 147, 187,
911 224, 5, 60, 113, 161, 206, 248, 4, 65, 122, 175, 224, 4, 67, 127,
915 const int16_t ff_celt_cache_index[105] = {
916 -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 41, 41, 41,
917 82, 82, 123, 164, 200, 222, 0, 0, 0, 0, 0, 0, 0, 0, 41,
918 41, 41, 41, 123, 123, 123, 164, 164, 240, 266, 283, 295, 41, 41, 41,
919 41, 41, 41, 41, 41, 123, 123, 123, 123, 240, 240, 240, 266, 266, 305,
920 318, 328, 336, 123, 123, 123, 123, 123, 123, 123, 123, 240, 240, 240, 240,
921 305, 305, 305, 318, 318, 343, 351, 358, 364, 240, 240, 240, 240, 240, 240,
922 240, 240, 305, 305, 305, 305, 343, 343, 343, 351, 351, 370, 376, 382, 387,
925 const uint8_t ff_celt_log2_frac[] = {
926 0, 8, 13, 16, 19, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37
929 const uint8_t ff_celt_bit_interleave[] = {
930 0, 1, 1, 1, 2, 3, 3, 3, 2, 3, 3, 3, 2, 3, 3, 3
933 const uint8_t ff_celt_bit_deinterleave[] = {
934 0x00, 0x03, 0x0C, 0x0F, 0x30, 0x33, 0x3C, 0x3F,
935 0xC0, 0xC3, 0xCC, 0xCF, 0xF0, 0xF3, 0xFC, 0xFF
938 const uint8_t ff_celt_hadamard_order[] = {
941 7, 0, 4, 3, 6, 1, 5, 2,
942 15, 0, 8, 7, 12, 3, 11, 4, 14, 1, 9, 6, 13, 2, 10, 5,
943 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
946 const uint16_t ff_celt_qn_exp2[] = {
947 16384, 17866, 19483, 21247, 23170, 25267, 27554, 30048
950 const uint32_t ff_celt_pvq_u[1272] = {
951 /* N = 0, K = 0...176 */
952 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
959 /* N = 1, K = 1...176 */
960 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
961 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
962 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
963 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
964 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
965 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
966 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
967 /* N = 2, K = 2...176 */
968 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41,
969 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
970 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113,
971 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143,
972 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173,
973 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203,
974 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233,
975 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, 263,
976 265, 267, 269, 271, 273, 275, 277, 279, 281, 283, 285, 287, 289, 291, 293,
977 295, 297, 299, 301, 303, 305, 307, 309, 311, 313, 315, 317, 319, 321, 323,
978 325, 327, 329, 331, 333, 335, 337, 339, 341, 343, 345, 347, 349, 351,
979 /* N = 3, K = 3...176 */
980 13, 25, 41, 61, 85, 113, 145, 181, 221, 265, 313, 365, 421, 481, 545, 613,
981 685, 761, 841, 925, 1013, 1105, 1201, 1301, 1405, 1513, 1625, 1741, 1861,
982 1985, 2113, 2245, 2381, 2521, 2665, 2813, 2965, 3121, 3281, 3445, 3613, 3785,
983 3961, 4141, 4325, 4513, 4705, 4901, 5101, 5305, 5513, 5725, 5941, 6161, 6385,
984 6613, 6845, 7081, 7321, 7565, 7813, 8065, 8321, 8581, 8845, 9113, 9385, 9661,
985 9941, 10225, 10513, 10805, 11101, 11401, 11705, 12013, 12325, 12641, 12961,
986 13285, 13613, 13945, 14281, 14621, 14965, 15313, 15665, 16021, 16381, 16745,
987 17113, 17485, 17861, 18241, 18625, 19013, 19405, 19801, 20201, 20605, 21013,
988 21425, 21841, 22261, 22685, 23113, 23545, 23981, 24421, 24865, 25313, 25765,
989 26221, 26681, 27145, 27613, 28085, 28561, 29041, 29525, 30013, 30505, 31001,
990 31501, 32005, 32513, 33025, 33541, 34061, 34585, 35113, 35645, 36181, 36721,
991 37265, 37813, 38365, 38921, 39481, 40045, 40613, 41185, 41761, 42341, 42925,
992 43513, 44105, 44701, 45301, 45905, 46513, 47125, 47741, 48361, 48985, 49613,
993 50245, 50881, 51521, 52165, 52813, 53465, 54121, 54781, 55445, 56113, 56785,
994 57461, 58141, 58825, 59513, 60205, 60901, 61601,
995 /* N = 4, K = 4...176 */
996 63, 129, 231, 377, 575, 833, 1159, 1561, 2047, 2625, 3303, 4089, 4991, 6017,
997 7175, 8473, 9919, 11521, 13287, 15225, 17343, 19649, 22151, 24857, 27775,
998 30913, 34279, 37881, 41727, 45825, 50183, 54809, 59711, 64897, 70375, 76153,
999 82239, 88641, 95367, 102425, 109823, 117569, 125671, 134137, 142975, 152193,
1000 161799, 171801, 182207, 193025, 204263, 215929, 228031, 240577, 253575,
1001 267033, 280959, 295361, 310247, 325625, 341503, 357889, 374791, 392217,
1002 410175, 428673, 447719, 467321, 487487, 508225, 529543, 551449, 573951,
1003 597057, 620775, 645113, 670079, 695681, 721927, 748825, 776383, 804609,
1004 833511, 863097, 893375, 924353, 956039, 988441, 1021567, 1055425, 1090023,
1005 1125369, 1161471, 1198337, 1235975, 1274393, 1313599, 1353601, 1394407,
1006 1436025, 1478463, 1521729, 1565831, 1610777, 1656575, 1703233, 1750759,
1007 1799161, 1848447, 1898625, 1949703, 2001689, 2054591, 2108417, 2163175,
1008 2218873, 2275519, 2333121, 2391687, 2451225, 2511743, 2573249, 2635751,
1009 2699257, 2763775, 2829313, 2895879, 2963481, 3032127, 3101825, 3172583,
1010 3244409, 3317311, 3391297, 3466375, 3542553, 3619839, 3698241, 3777767,
1011 3858425, 3940223, 4023169, 4107271, 4192537, 4278975, 4366593, 4455399,
1012 4545401, 4636607, 4729025, 4822663, 4917529, 5013631, 5110977, 5209575,
1013 5309433, 5410559, 5512961, 5616647, 5721625, 5827903, 5935489, 6044391,
1014 6154617, 6266175, 6379073, 6493319, 6608921, 6725887, 6844225, 6963943,
1016 /* N = 5, K = 5...176 */
1017 321, 681, 1289, 2241, 3649, 5641, 8361, 11969, 16641, 22569, 29961, 39041,
1018 50049, 63241, 78889, 97281, 118721, 143529, 172041, 204609, 241601, 283401,
1019 330409, 383041, 441729, 506921, 579081, 658689, 746241, 842249, 947241,
1020 1061761, 1186369, 1321641, 1468169, 1626561, 1797441, 1981449, 2179241,
1021 2391489, 2618881, 2862121, 3121929, 3399041, 3694209, 4008201, 4341801,
1022 4695809, 5071041, 5468329, 5888521, 6332481, 6801089, 7295241, 7815849,
1023 8363841, 8940161, 9545769, 10181641, 10848769, 11548161, 12280841, 13047849,
1024 13850241, 14689089, 15565481, 16480521, 17435329, 18431041, 19468809,
1025 20549801, 21675201, 22846209, 24064041, 25329929, 26645121, 28010881,
1026 29428489, 30899241, 32424449, 34005441, 35643561, 37340169, 39096641,
1027 40914369, 42794761, 44739241, 46749249, 48826241, 50971689, 53187081,
1028 55473921, 57833729, 60268041, 62778409, 65366401, 68033601, 70781609,
1029 73612041, 76526529, 79526721, 82614281, 85790889, 89058241, 92418049,
1030 95872041, 99421961, 103069569, 106816641, 110664969, 114616361, 118672641,
1031 122835649, 127107241, 131489289, 135983681, 140592321, 145317129, 150160041,
1032 155123009, 160208001, 165417001, 170752009, 176215041, 181808129, 187533321,
1033 193392681, 199388289, 205522241, 211796649, 218213641, 224775361, 231483969,
1034 238341641, 245350569, 252512961, 259831041, 267307049, 274943241, 282741889,
1035 290705281, 298835721, 307135529, 315607041, 324252609, 333074601, 342075401,
1036 351257409, 360623041, 370174729, 379914921, 389846081, 399970689, 410291241,
1037 420810249, 431530241, 442453761, 453583369, 464921641, 476471169, 488234561,
1038 500214441, 512413449, 524834241, 537479489, 550351881, 563454121, 576788929,
1039 590359041, 604167209, 618216201, 632508801,
1040 /* N = 6, K = 6...96 (technically V(109,5) fits in 32 bits, but that can't be
1041 achieved by splitting an Opus band) */
1042 1683, 3653, 7183, 13073, 22363, 36365, 56695, 85305, 124515, 177045, 246047,
1043 335137, 448427, 590557, 766727, 982729, 1244979, 1560549, 1937199, 2383409,
1044 2908411, 3522221, 4235671, 5060441, 6009091, 7095093, 8332863, 9737793,
1045 11326283, 13115773, 15124775, 17372905, 19880915, 22670725, 25765455,
1046 29189457, 32968347, 37129037, 41699767, 46710137, 52191139, 58175189,
1047 64696159, 71789409, 79491819, 87841821, 96879431, 106646281, 117185651,
1048 128542501, 140763503, 153897073, 167993403, 183104493, 199284183, 216588185,
1049 235074115, 254801525, 275831935, 298228865, 322057867, 347386557, 374284647,
1050 402823977, 433078547, 465124549, 499040399, 534906769, 572806619, 612825229,
1051 655050231, 699571641, 746481891, 795875861, 847850911, 902506913, 959946283,
1052 1020274013, 1083597703, 1150027593, 1219676595, 1292660325, 1369097135,
1053 1449108145, 1532817275, 1620351277, 1711839767, 1807415257, 1907213187,
1054 2011371957, 2120032959,
1055 /* N = 7, K = 7...54 (technically V(60,6) fits in 32 bits, but that can't be
1056 achieved by splitting an Opus band) */
1057 8989, 19825, 40081, 75517, 134245, 227305, 369305, 579125, 880685, 1303777,
1058 1884961, 2668525, 3707509, 5064793, 6814249, 9041957, 11847485, 15345233,
1059 19665841, 24957661, 31388293, 39146185, 48442297, 59511829, 72616013,
1060 88043969, 106114625, 127178701, 151620757, 179861305, 212358985, 249612805,
1061 292164445, 340600625, 395555537, 457713341, 527810725, 606639529, 695049433,
1062 793950709, 904317037, 1027188385, 1163673953, 1314955181, 1482288821,
1063 1667010073, 1870535785, 2094367717,
1064 /* N = 8, K = 8...37 (technically V(40,7) fits in 32 bits, but that can't be
1065 achieved by splitting an Opus band) */
1066 48639, 108545, 224143, 433905, 795455, 1392065, 2340495, 3800305, 5984767,
1067 9173505, 13726991, 20103025, 28875327, 40754369, 56610575, 77500017,
1068 104692735, 139703809, 184327311, 240673265, 311207743, 398796225, 506750351,
1069 638878193, 799538175, 993696769, 1226990095, 1505789553, 1837271615,
1071 /* N = 9, K = 9...28 (technically V(29,8) fits in 32 bits, but that can't be
1072 achieved by splitting an Opus band) */
1073 265729, 598417, 1256465, 2485825, 4673345, 8405905, 14546705, 24331777,
1074 39490049, 62390545, 96220561, 145198913, 214828609, 312193553, 446304145,
1075 628496897, 872893441, 1196924561, 1621925137, 2173806145,
1076 /* N = 10, K = 10...24 */
1077 1462563, 3317445, 7059735, 14218905, 27298155, 50250765, 89129247, 152951073,
1078 254831667, 413442773, 654862247, 1014889769, 1541911931, 2300409629,
1080 /* N = 11, K = 11...19 (technically V(20,10) fits in 32 bits, but that can't be
1081 achieved by splitting an Opus band) */
1082 8097453, 18474633, 39753273, 81270333, 158819253, 298199265, 540279585,
1083 948062325, 1616336765,
1084 /* N = 12, K = 12...18 */
1085 45046719, 103274625, 224298231, 464387817, 921406335, 1759885185,
1087 /* N = 13, K = 13...16 */
1088 251595969, 579168825, 1267854873, 2653649025,
1089 /* N = 14, K = 14 */
1093 const float ff_celt_postfilter_taps[3][3] = {
1094 { 0.3066406250f, 0.2170410156f, 0.1296386719f },
1095 { 0.4638671875f, 0.2680664062f, 0.0 },
1096 { 0.7998046875f, 0.1000976562f, 0.0 }
1099 DECLARE_ALIGNED(32, static const float, ff_celt_window_padded)[136] = {
1100 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
1101 0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f,
1102 6.7286966e-05f, 0.00060551348f, 0.0016815970f, 0.0032947962f, 0.0054439943f,
1103 0.0081276923f, 0.011344001f, 0.015090633f, 0.019364886f, 0.024163635f,
1104 0.029483315f, 0.035319905f, 0.041668911f, 0.048525347f, 0.055883718f,
1105 0.063737999f, 0.072081616f, 0.080907428f, 0.090207705f, 0.099974111f,
1106 0.11019769f, 0.12086883f, 0.13197729f, 0.14351214f, 0.15546177f,
1107 0.16781389f, 0.18055550f, 0.19367290f, 0.20715171f, 0.22097682f,
1108 0.23513243f, 0.24960208f, 0.26436860f, 0.27941419f, 0.29472040f,
1109 0.31026818f, 0.32603788f, 0.34200931f, 0.35816177f, 0.37447407f,
1110 0.39092462f, 0.40749142f, 0.42415215f, 0.44088423f, 0.45766484f,
1111 0.47447104f, 0.49127978f, 0.50806798f, 0.52481261f, 0.54149077f,
1112 0.55807973f, 0.57455701f, 0.59090049f, 0.60708841f, 0.62309951f,
1113 0.63891306f, 0.65450896f, 0.66986776f, 0.68497077f, 0.69980010f,
1114 0.71433873f, 0.72857055f, 0.74248043f, 0.75605424f, 0.76927895f,
1115 0.78214257f, 0.79463430f, 0.80674445f, 0.81846456f, 0.82978733f,
1116 0.84070669f, 0.85121779f, 0.86131698f, 0.87100183f, 0.88027111f,
1117 0.88912479f, 0.89756398f, 0.90559094f, 0.91320904f, 0.92042270f,
1118 0.92723738f, 0.93365955f, 0.93969656f, 0.94535671f, 0.95064907f,
1119 0.95558353f, 0.96017067f, 0.96442171f, 0.96834849f, 0.97196334f,
1120 0.97527906f, 0.97830883f, 0.98106616f, 0.98356480f, 0.98581869f,
1121 0.98784191f, 0.98964856f, 0.99125274f, 0.99266849f, 0.99390969f,
1122 0.99499004f, 0.99592297f, 0.99672162f, 0.99739874f, 0.99796667f,
1123 0.99843728f, 0.99882195f, 0.99913147f, 0.99937606f, 0.99956527f,
1124 0.99970802f, 0.99981248f, 0.99988613f, 0.99993565f, 0.99996697f,
1125 0.99998518f, 0.99999457f, 0.99999859f, 0.99999982f, 1.00000000f,
1126 1.00000000f, 1.00000000f, 1.00000000f, 1.00000000f, 1.00000000f,
1127 1.00000000f, 1.00000000f, 1.00000000f,
1130 const float *ff_celt_window = &ff_celt_window_padded[8];
1132 /* square of the window, used for the postfilter */
1133 const float ff_celt_window2[120] = {
1134 4.5275357e-09f, 3.66647e-07f, 2.82777e-06f, 1.08557e-05f, 2.96371e-05f, 6.60594e-05f,
1135 0.000128686f, 0.000227727f, 0.000374999f, 0.000583881f, 0.000869266f, 0.0012475f,
1136 0.0017363f, 0.00235471f, 0.00312299f, 0.00406253f, 0.00519576f, 0.00654601f,
1137 0.00813743f, 0.00999482f, 0.0121435f, 0.0146093f, 0.017418f, 0.0205957f, 0.0241684f,
1138 0.0281615f, 0.0326003f, 0.0375092f, 0.0429118f, 0.0488308f, 0.0552873f, 0.0623012f,
1139 0.0698908f, 0.0780723f, 0.0868601f, 0.0962664f, 0.106301f, 0.11697f, 0.12828f,
1140 0.140231f, 0.152822f, 0.166049f, 0.179905f, 0.194379f, 0.209457f, 0.225123f, 0.241356f,
1141 0.258133f, 0.275428f, 0.293212f, 0.311453f, 0.330116f, 0.349163f, 0.368556f, 0.388253f,
1142 0.40821f, 0.428382f, 0.448723f, 0.469185f, 0.48972f, 0.51028f, 0.530815f, 0.551277f,
1143 0.571618f, 0.59179f, 0.611747f, 0.631444f, 0.650837f, 0.669884f, 0.688547f, 0.706788f,
1144 0.724572f, 0.741867f, 0.758644f, 0.774877f, 0.790543f, 0.805621f, 0.820095f, 0.833951f,
1145 0.847178f, 0.859769f, 0.87172f, 0.88303f, 0.893699f, 0.903734f, 0.91314f, 0.921928f,
1146 0.930109f, 0.937699f, 0.944713f, 0.951169f, 0.957088f, 0.962491f, 0.9674f, 0.971838f,
1147 0.975832f, 0.979404f, 0.982582f, 0.985391f, 0.987857f, 0.990005f, 0.991863f, 0.993454f,
1148 0.994804f, 0.995937f, 0.996877f, 0.997645f, 0.998264f, 0.998753f, 0.999131f, 0.999416f,
1149 0.999625f, 0.999772f, 0.999871f, 0.999934f, 0.99997f, 0.999989f, 0.999997f, 0.99999964f, 1.0f,
1152 const uint32_t * const ff_celt_pvq_u_row[15] = {
1153 ff_celt_pvq_u + 0, ff_celt_pvq_u + 176, ff_celt_pvq_u + 351,
1154 ff_celt_pvq_u + 525, ff_celt_pvq_u + 698, ff_celt_pvq_u + 870,
1155 ff_celt_pvq_u + 1041, ff_celt_pvq_u + 1131, ff_celt_pvq_u + 1178,
1156 ff_celt_pvq_u + 1207, ff_celt_pvq_u + 1226, ff_celt_pvq_u + 1240,
1157 ff_celt_pvq_u + 1248, ff_celt_pvq_u + 1254, ff_celt_pvq_u + 1257