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 const int8_t ff_celt_tf_select[4][2][2][2] = {
776 { { { 0, -1 }, { 0, -1 } }, { { 0, -1 }, { 0, -1 } } },
777 { { { 0, -1 }, { 0, -2 } }, { { 1, 0 }, { 1, -1 } } },
778 { { { 0, -2 }, { 0, -3 } }, { { 2, 0 }, { 1, -1 } } },
779 { { { 0, -2 }, { 0, -3 } }, { { 3, 0 }, { 1, -1 } } }
782 const float ff_celt_mean_energy[] = {
783 6.437500f, 6.250000f, 5.750000f, 5.312500f, 5.062500f,
784 4.812500f, 4.500000f, 4.375000f, 4.875000f, 4.687500f,
785 4.562500f, 4.437500f, 4.875000f, 4.625000f, 4.312500f,
786 4.500000f, 4.375000f, 4.625000f, 4.750000f, 4.437500f,
787 3.750000f, 3.750000f, 3.750000f, 3.750000f, 3.750000f
790 const float ff_celt_alpha_coef[] = {
791 29440.0f/32768.0f, 26112.0f/32768.0f, 21248.0f/32768.0f, 16384.0f/32768.0f
794 const float ff_celt_beta_coef[] = { /* TODO: precompute 1 minus this if the code ends up neater */
795 30147.0f/32768.0f, 22282.0f/32768.0f, 12124.0f/32768.0f, 6554.0f/32768.0f
798 const uint8_t ff_celt_coarse_energy_dist[4][2][42] = {
800 { // 120-sample inter
801 72, 127, 65, 129, 66, 128, 65, 128, 64, 128, 62, 128, 64, 128,
802 64, 128, 92, 78, 92, 79, 92, 78, 90, 79, 116, 41, 115, 40,
803 114, 40, 132, 26, 132, 26, 145, 17, 161, 12, 176, 10, 177, 11
804 }, { // 120-sample intra
805 24, 179, 48, 138, 54, 135, 54, 132, 53, 134, 56, 133, 55, 132,
806 55, 132, 61, 114, 70, 96, 74, 88, 75, 88, 87, 74, 89, 66,
807 91, 67, 100, 59, 108, 50, 120, 40, 122, 37, 97, 43, 78, 50
810 { // 240-sample inter
811 83, 78, 84, 81, 88, 75, 86, 74, 87, 71, 90, 73, 93, 74,
812 93, 74, 109, 40, 114, 36, 117, 34, 117, 34, 143, 17, 145, 18,
813 146, 19, 162, 12, 165, 10, 178, 7, 189, 6, 190, 8, 177, 9
814 }, { // 240-sample intra
815 23, 178, 54, 115, 63, 102, 66, 98, 69, 99, 74, 89, 71, 91,
816 73, 91, 78, 89, 86, 80, 92, 66, 93, 64, 102, 59, 103, 60,
817 104, 60, 117, 52, 123, 44, 138, 35, 133, 31, 97, 38, 77, 45
820 { // 480-sample inter
821 61, 90, 93, 60, 105, 42, 107, 41, 110, 45, 116, 38, 113, 38,
822 112, 38, 124, 26, 132, 27, 136, 19, 140, 20, 155, 14, 159, 16,
823 158, 18, 170, 13, 177, 10, 187, 8, 192, 6, 175, 9, 159, 10
824 }, { // 480-sample intra
825 21, 178, 59, 110, 71, 86, 75, 85, 84, 83, 91, 66, 88, 73,
826 87, 72, 92, 75, 98, 72, 105, 58, 107, 54, 115, 52, 114, 55,
827 112, 56, 129, 51, 132, 40, 150, 33, 140, 29, 98, 35, 77, 42
830 { // 960-sample inter
831 42, 121, 96, 66, 108, 43, 111, 40, 117, 44, 123, 32, 120, 36,
832 119, 33, 127, 33, 134, 34, 139, 21, 147, 23, 152, 20, 158, 25,
833 154, 26, 166, 21, 173, 16, 184, 13, 184, 10, 150, 13, 139, 15
834 }, { // 960-sample intra
835 22, 178, 63, 114, 74, 82, 84, 83, 92, 82, 103, 62, 96, 72,
836 96, 67, 101, 73, 107, 72, 113, 55, 118, 52, 125, 52, 118, 52,
837 117, 55, 135, 49, 137, 39, 157, 32, 145, 29, 97, 33, 77, 40
842 const uint8_t ff_celt_static_alloc[11][21] = { /* 1/32 bit/sample */
843 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
844 { 90, 80, 75, 69, 63, 56, 49, 40, 34, 29, 20, 18, 10, 0, 0, 0, 0, 0, 0, 0, 0 },
845 { 110, 100, 90, 84, 78, 71, 65, 58, 51, 45, 39, 32, 26, 20, 12, 0, 0, 0, 0, 0, 0 },
846 { 118, 110, 103, 93, 86, 80, 75, 70, 65, 59, 53, 47, 40, 31, 23, 15, 4, 0, 0, 0, 0 },
847 { 126, 119, 112, 104, 95, 89, 83, 78, 72, 66, 60, 54, 47, 39, 32, 25, 17, 12, 1, 0, 0 },
848 { 134, 127, 120, 114, 103, 97, 91, 85, 78, 72, 66, 60, 54, 47, 41, 35, 29, 23, 16, 10, 1 },
849 { 144, 137, 130, 124, 113, 107, 101, 95, 88, 82, 76, 70, 64, 57, 51, 45, 39, 33, 26, 15, 1 },
850 { 152, 145, 138, 132, 123, 117, 111, 105, 98, 92, 86, 80, 74, 67, 61, 55, 49, 43, 36, 20, 1 },
851 { 162, 155, 148, 142, 133, 127, 121, 115, 108, 102, 96, 90, 84, 77, 71, 65, 59, 53, 46, 30, 1 },
852 { 172, 165, 158, 152, 143, 137, 131, 125, 118, 112, 106, 100, 94, 87, 81, 75, 69, 63, 56, 45, 20 },
853 { 200, 200, 200, 200, 200, 200, 200, 200, 198, 193, 188, 183, 178, 173, 168, 163, 158, 153, 148, 129, 104 }
856 const uint8_t ff_celt_static_caps[4][2][21] = {
858 {224, 224, 224, 224, 224, 224, 224, 224, 160, 160,
859 160, 160, 185, 185, 185, 178, 178, 168, 134, 61, 37},
860 {224, 224, 224, 224, 224, 224, 224, 224, 240, 240,
861 240, 240, 207, 207, 207, 198, 198, 183, 144, 66, 40},
863 {160, 160, 160, 160, 160, 160, 160, 160, 185, 185,
864 185, 185, 193, 193, 193, 183, 183, 172, 138, 64, 38},
865 {240, 240, 240, 240, 240, 240, 240, 240, 207, 207,
866 207, 207, 204, 204, 204, 193, 193, 180, 143, 66, 40},
868 {185, 185, 185, 185, 185, 185, 185, 185, 193, 193,
869 193, 193, 193, 193, 193, 183, 183, 172, 138, 65, 39},
870 {207, 207, 207, 207, 207, 207, 207, 207, 204, 204,
871 204, 204, 201, 201, 201, 188, 188, 176, 141, 66, 40},
873 {193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
874 193, 193, 194, 194, 194, 184, 184, 173, 139, 65, 39},
875 {204, 204, 204, 204, 204, 204, 204, 204, 201, 201,
876 201, 201, 198, 198, 198, 187, 187, 175, 140, 66, 40}
880 const uint8_t ff_celt_cache_bits[392] = {
881 40, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
882 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
883 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 40, 15, 23, 28,
884 31, 34, 36, 38, 39, 41, 42, 43, 44, 45, 46, 47, 47, 49, 50,
885 51, 52, 53, 54, 55, 55, 57, 58, 59, 60, 61, 62, 63, 63, 65,
886 66, 67, 68, 69, 70, 71, 71, 40, 20, 33, 41, 48, 53, 57, 61,
887 64, 66, 69, 71, 73, 75, 76, 78, 80, 82, 85, 87, 89, 91, 92,
888 94, 96, 98, 101, 103, 105, 107, 108, 110, 112, 114, 117, 119, 121, 123,
889 124, 126, 128, 40, 23, 39, 51, 60, 67, 73, 79, 83, 87, 91, 94,
890 97, 100, 102, 105, 107, 111, 115, 118, 121, 124, 126, 129, 131, 135, 139,
891 142, 145, 148, 150, 153, 155, 159, 163, 166, 169, 172, 174, 177, 179, 35,
892 28, 49, 65, 78, 89, 99, 107, 114, 120, 126, 132, 136, 141, 145, 149,
893 153, 159, 165, 171, 176, 180, 185, 189, 192, 199, 205, 211, 216, 220, 225,
894 229, 232, 239, 245, 251, 21, 33, 58, 79, 97, 112, 125, 137, 148, 157,
895 166, 174, 182, 189, 195, 201, 207, 217, 227, 235, 243, 251, 17, 35, 63,
896 86, 106, 123, 139, 152, 165, 177, 187, 197, 206, 214, 222, 230, 237, 250,
897 25, 31, 55, 75, 91, 105, 117, 128, 138, 146, 154, 161, 168, 174, 180,
898 185, 190, 200, 208, 215, 222, 229, 235, 240, 245, 255, 16, 36, 65, 89,
899 110, 128, 144, 159, 173, 185, 196, 207, 217, 226, 234, 242, 250, 11, 41,
900 74, 103, 128, 151, 172, 191, 209, 225, 241, 255, 9, 43, 79, 110, 138,
901 163, 186, 207, 227, 246, 12, 39, 71, 99, 123, 144, 164, 182, 198, 214,
902 228, 241, 253, 9, 44, 81, 113, 142, 168, 192, 214, 235, 255, 7, 49,
903 90, 127, 160, 191, 220, 247, 6, 51, 95, 134, 170, 203, 234, 7, 47,
904 87, 123, 155, 184, 212, 237, 6, 52, 97, 137, 174, 208, 240, 5, 57,
905 106, 151, 192, 231, 5, 59, 111, 158, 202, 243, 5, 55, 103, 147, 187,
906 224, 5, 60, 113, 161, 206, 248, 4, 65, 122, 175, 224, 4, 67, 127,
910 const int16_t ff_celt_cache_index[105] = {
911 -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 41, 41, 41,
912 82, 82, 123, 164, 200, 222, 0, 0, 0, 0, 0, 0, 0, 0, 41,
913 41, 41, 41, 123, 123, 123, 164, 164, 240, 266, 283, 295, 41, 41, 41,
914 41, 41, 41, 41, 41, 123, 123, 123, 123, 240, 240, 240, 266, 266, 305,
915 318, 328, 336, 123, 123, 123, 123, 123, 123, 123, 123, 240, 240, 240, 240,
916 305, 305, 305, 318, 318, 343, 351, 358, 364, 240, 240, 240, 240, 240, 240,
917 240, 240, 305, 305, 305, 305, 343, 343, 343, 351, 351, 370, 376, 382, 387,
920 const uint8_t ff_celt_log2_frac[] = {
921 0, 8, 13, 16, 19, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37
924 const uint8_t ff_celt_bit_interleave[] = {
925 0, 1, 1, 1, 2, 3, 3, 3, 2, 3, 3, 3, 2, 3, 3, 3
928 const uint8_t ff_celt_bit_deinterleave[] = {
929 0x00, 0x03, 0x0C, 0x0F, 0x30, 0x33, 0x3C, 0x3F,
930 0xC0, 0xC3, 0xCC, 0xCF, 0xF0, 0xF3, 0xFC, 0xFF
933 const uint8_t ff_celt_hadamard_order[] = {
936 7, 0, 4, 3, 6, 1, 5, 2,
937 15, 0, 8, 7, 12, 3, 11, 4, 14, 1, 9, 6, 13, 2, 10, 5,
938 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
941 const uint16_t ff_celt_qn_exp2[] = {
942 16384, 17866, 19483, 21247, 23170, 25267, 27554, 30048
945 const uint32_t ff_celt_pvq_u[1272] = {
946 /* N = 0, K = 0...176 */
947 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,
948 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,
949 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,
950 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,
951 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,
952 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,
953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
954 /* N = 1, K = 1...176 */
955 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,
956 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,
957 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,
958 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,
959 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,
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,
962 /* N = 2, K = 2...176 */
963 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41,
964 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
965 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113,
966 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143,
967 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173,
968 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203,
969 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233,
970 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, 263,
971 265, 267, 269, 271, 273, 275, 277, 279, 281, 283, 285, 287, 289, 291, 293,
972 295, 297, 299, 301, 303, 305, 307, 309, 311, 313, 315, 317, 319, 321, 323,
973 325, 327, 329, 331, 333, 335, 337, 339, 341, 343, 345, 347, 349, 351,
974 /* N = 3, K = 3...176 */
975 13, 25, 41, 61, 85, 113, 145, 181, 221, 265, 313, 365, 421, 481, 545, 613,
976 685, 761, 841, 925, 1013, 1105, 1201, 1301, 1405, 1513, 1625, 1741, 1861,
977 1985, 2113, 2245, 2381, 2521, 2665, 2813, 2965, 3121, 3281, 3445, 3613, 3785,
978 3961, 4141, 4325, 4513, 4705, 4901, 5101, 5305, 5513, 5725, 5941, 6161, 6385,
979 6613, 6845, 7081, 7321, 7565, 7813, 8065, 8321, 8581, 8845, 9113, 9385, 9661,
980 9941, 10225, 10513, 10805, 11101, 11401, 11705, 12013, 12325, 12641, 12961,
981 13285, 13613, 13945, 14281, 14621, 14965, 15313, 15665, 16021, 16381, 16745,
982 17113, 17485, 17861, 18241, 18625, 19013, 19405, 19801, 20201, 20605, 21013,
983 21425, 21841, 22261, 22685, 23113, 23545, 23981, 24421, 24865, 25313, 25765,
984 26221, 26681, 27145, 27613, 28085, 28561, 29041, 29525, 30013, 30505, 31001,
985 31501, 32005, 32513, 33025, 33541, 34061, 34585, 35113, 35645, 36181, 36721,
986 37265, 37813, 38365, 38921, 39481, 40045, 40613, 41185, 41761, 42341, 42925,
987 43513, 44105, 44701, 45301, 45905, 46513, 47125, 47741, 48361, 48985, 49613,
988 50245, 50881, 51521, 52165, 52813, 53465, 54121, 54781, 55445, 56113, 56785,
989 57461, 58141, 58825, 59513, 60205, 60901, 61601,
990 /* N = 4, K = 4...176 */
991 63, 129, 231, 377, 575, 833, 1159, 1561, 2047, 2625, 3303, 4089, 4991, 6017,
992 7175, 8473, 9919, 11521, 13287, 15225, 17343, 19649, 22151, 24857, 27775,
993 30913, 34279, 37881, 41727, 45825, 50183, 54809, 59711, 64897, 70375, 76153,
994 82239, 88641, 95367, 102425, 109823, 117569, 125671, 134137, 142975, 152193,
995 161799, 171801, 182207, 193025, 204263, 215929, 228031, 240577, 253575,
996 267033, 280959, 295361, 310247, 325625, 341503, 357889, 374791, 392217,
997 410175, 428673, 447719, 467321, 487487, 508225, 529543, 551449, 573951,
998 597057, 620775, 645113, 670079, 695681, 721927, 748825, 776383, 804609,
999 833511, 863097, 893375, 924353, 956039, 988441, 1021567, 1055425, 1090023,
1000 1125369, 1161471, 1198337, 1235975, 1274393, 1313599, 1353601, 1394407,
1001 1436025, 1478463, 1521729, 1565831, 1610777, 1656575, 1703233, 1750759,
1002 1799161, 1848447, 1898625, 1949703, 2001689, 2054591, 2108417, 2163175,
1003 2218873, 2275519, 2333121, 2391687, 2451225, 2511743, 2573249, 2635751,
1004 2699257, 2763775, 2829313, 2895879, 2963481, 3032127, 3101825, 3172583,
1005 3244409, 3317311, 3391297, 3466375, 3542553, 3619839, 3698241, 3777767,
1006 3858425, 3940223, 4023169, 4107271, 4192537, 4278975, 4366593, 4455399,
1007 4545401, 4636607, 4729025, 4822663, 4917529, 5013631, 5110977, 5209575,
1008 5309433, 5410559, 5512961, 5616647, 5721625, 5827903, 5935489, 6044391,
1009 6154617, 6266175, 6379073, 6493319, 6608921, 6725887, 6844225, 6963943,
1011 /* N = 5, K = 5...176 */
1012 321, 681, 1289, 2241, 3649, 5641, 8361, 11969, 16641, 22569, 29961, 39041,
1013 50049, 63241, 78889, 97281, 118721, 143529, 172041, 204609, 241601, 283401,
1014 330409, 383041, 441729, 506921, 579081, 658689, 746241, 842249, 947241,
1015 1061761, 1186369, 1321641, 1468169, 1626561, 1797441, 1981449, 2179241,
1016 2391489, 2618881, 2862121, 3121929, 3399041, 3694209, 4008201, 4341801,
1017 4695809, 5071041, 5468329, 5888521, 6332481, 6801089, 7295241, 7815849,
1018 8363841, 8940161, 9545769, 10181641, 10848769, 11548161, 12280841, 13047849,
1019 13850241, 14689089, 15565481, 16480521, 17435329, 18431041, 19468809,
1020 20549801, 21675201, 22846209, 24064041, 25329929, 26645121, 28010881,
1021 29428489, 30899241, 32424449, 34005441, 35643561, 37340169, 39096641,
1022 40914369, 42794761, 44739241, 46749249, 48826241, 50971689, 53187081,
1023 55473921, 57833729, 60268041, 62778409, 65366401, 68033601, 70781609,
1024 73612041, 76526529, 79526721, 82614281, 85790889, 89058241, 92418049,
1025 95872041, 99421961, 103069569, 106816641, 110664969, 114616361, 118672641,
1026 122835649, 127107241, 131489289, 135983681, 140592321, 145317129, 150160041,
1027 155123009, 160208001, 165417001, 170752009, 176215041, 181808129, 187533321,
1028 193392681, 199388289, 205522241, 211796649, 218213641, 224775361, 231483969,
1029 238341641, 245350569, 252512961, 259831041, 267307049, 274943241, 282741889,
1030 290705281, 298835721, 307135529, 315607041, 324252609, 333074601, 342075401,
1031 351257409, 360623041, 370174729, 379914921, 389846081, 399970689, 410291241,
1032 420810249, 431530241, 442453761, 453583369, 464921641, 476471169, 488234561,
1033 500214441, 512413449, 524834241, 537479489, 550351881, 563454121, 576788929,
1034 590359041, 604167209, 618216201, 632508801,
1035 /* N = 6, K = 6...96 (technically V(109,5) fits in 32 bits, but that can't be
1036 achieved by splitting an Opus band) */
1037 1683, 3653, 7183, 13073, 22363, 36365, 56695, 85305, 124515, 177045, 246047,
1038 335137, 448427, 590557, 766727, 982729, 1244979, 1560549, 1937199, 2383409,
1039 2908411, 3522221, 4235671, 5060441, 6009091, 7095093, 8332863, 9737793,
1040 11326283, 13115773, 15124775, 17372905, 19880915, 22670725, 25765455,
1041 29189457, 32968347, 37129037, 41699767, 46710137, 52191139, 58175189,
1042 64696159, 71789409, 79491819, 87841821, 96879431, 106646281, 117185651,
1043 128542501, 140763503, 153897073, 167993403, 183104493, 199284183, 216588185,
1044 235074115, 254801525, 275831935, 298228865, 322057867, 347386557, 374284647,
1045 402823977, 433078547, 465124549, 499040399, 534906769, 572806619, 612825229,
1046 655050231, 699571641, 746481891, 795875861, 847850911, 902506913, 959946283,
1047 1020274013, 1083597703, 1150027593, 1219676595, 1292660325, 1369097135,
1048 1449108145, 1532817275, 1620351277, 1711839767, 1807415257, 1907213187,
1049 2011371957, 2120032959,
1050 /* N = 7, K = 7...54 (technically V(60,6) fits in 32 bits, but that can't be
1051 achieved by splitting an Opus band) */
1052 8989, 19825, 40081, 75517, 134245, 227305, 369305, 579125, 880685, 1303777,
1053 1884961, 2668525, 3707509, 5064793, 6814249, 9041957, 11847485, 15345233,
1054 19665841, 24957661, 31388293, 39146185, 48442297, 59511829, 72616013,
1055 88043969, 106114625, 127178701, 151620757, 179861305, 212358985, 249612805,
1056 292164445, 340600625, 395555537, 457713341, 527810725, 606639529, 695049433,
1057 793950709, 904317037, 1027188385, 1163673953, 1314955181, 1482288821,
1058 1667010073, 1870535785, 2094367717,
1059 /* N = 8, K = 8...37 (technically V(40,7) fits in 32 bits, but that can't be
1060 achieved by splitting an Opus band) */
1061 48639, 108545, 224143, 433905, 795455, 1392065, 2340495, 3800305, 5984767,
1062 9173505, 13726991, 20103025, 28875327, 40754369, 56610575, 77500017,
1063 104692735, 139703809, 184327311, 240673265, 311207743, 398796225, 506750351,
1064 638878193, 799538175, 993696769, 1226990095, 1505789553, 1837271615,
1066 /* N = 9, K = 9...28 (technically V(29,8) fits in 32 bits, but that can't be
1067 achieved by splitting an Opus band) */
1068 265729, 598417, 1256465, 2485825, 4673345, 8405905, 14546705, 24331777,
1069 39490049, 62390545, 96220561, 145198913, 214828609, 312193553, 446304145,
1070 628496897, 872893441, 1196924561, 1621925137, 2173806145,
1071 /* N = 10, K = 10...24 */
1072 1462563, 3317445, 7059735, 14218905, 27298155, 50250765, 89129247, 152951073,
1073 254831667, 413442773, 654862247, 1014889769, 1541911931, 2300409629,
1075 /* N = 11, K = 11...19 (technically V(20,10) fits in 32 bits, but that can't be
1076 achieved by splitting an Opus band) */
1077 8097453, 18474633, 39753273, 81270333, 158819253, 298199265, 540279585,
1078 948062325, 1616336765,
1079 /* N = 12, K = 12...18 */
1080 45046719, 103274625, 224298231, 464387817, 921406335, 1759885185,
1082 /* N = 13, K = 13...16 */
1083 251595969, 579168825, 1267854873, 2653649025,
1084 /* N = 14, K = 14 */
1088 DECLARE_ALIGNED(32, const float, ff_celt_window)[120] = {
1089 6.7286966e-05f, 0.00060551348f, 0.0016815970f, 0.0032947962f, 0.0054439943f,
1090 0.0081276923f, 0.011344001f, 0.015090633f, 0.019364886f, 0.024163635f,
1091 0.029483315f, 0.035319905f, 0.041668911f, 0.048525347f, 0.055883718f,
1092 0.063737999f, 0.072081616f, 0.080907428f, 0.090207705f, 0.099974111f,
1093 0.11019769f, 0.12086883f, 0.13197729f, 0.14351214f, 0.15546177f,
1094 0.16781389f, 0.18055550f, 0.19367290f, 0.20715171f, 0.22097682f,
1095 0.23513243f, 0.24960208f, 0.26436860f, 0.27941419f, 0.29472040f,
1096 0.31026818f, 0.32603788f, 0.34200931f, 0.35816177f, 0.37447407f,
1097 0.39092462f, 0.40749142f, 0.42415215f, 0.44088423f, 0.45766484f,
1098 0.47447104f, 0.49127978f, 0.50806798f, 0.52481261f, 0.54149077f,
1099 0.55807973f, 0.57455701f, 0.59090049f, 0.60708841f, 0.62309951f,
1100 0.63891306f, 0.65450896f, 0.66986776f, 0.68497077f, 0.69980010f,
1101 0.71433873f, 0.72857055f, 0.74248043f, 0.75605424f, 0.76927895f,
1102 0.78214257f, 0.79463430f, 0.80674445f, 0.81846456f, 0.82978733f,
1103 0.84070669f, 0.85121779f, 0.86131698f, 0.87100183f, 0.88027111f,
1104 0.88912479f, 0.89756398f, 0.90559094f, 0.91320904f, 0.92042270f,
1105 0.92723738f, 0.93365955f, 0.93969656f, 0.94535671f, 0.95064907f,
1106 0.95558353f, 0.96017067f, 0.96442171f, 0.96834849f, 0.97196334f,
1107 0.97527906f, 0.97830883f, 0.98106616f, 0.98356480f, 0.98581869f,
1108 0.98784191f, 0.98964856f, 0.99125274f, 0.99266849f, 0.99390969f,
1109 0.99499004f, 0.99592297f, 0.99672162f, 0.99739874f, 0.99796667f,
1110 0.99843728f, 0.99882195f, 0.99913147f, 0.99937606f, 0.99956527f,
1111 0.99970802f, 0.99981248f, 0.99988613f, 0.99993565f, 0.99996697f,
1112 0.99998518f, 0.99999457f, 0.99999859f, 0.99999982f, 1.0000000f,
1115 /* square of the window, used for the postfilter */
1116 const float ff_celt_window2[120] = {
1117 4.5275357e-09f, 3.66647e-07f, 2.82777e-06f, 1.08557e-05f, 2.96371e-05f, 6.60594e-05f,
1118 0.000128686f, 0.000227727f, 0.000374999f, 0.000583881f, 0.000869266f, 0.0012475f,
1119 0.0017363f, 0.00235471f, 0.00312299f, 0.00406253f, 0.00519576f, 0.00654601f,
1120 0.00813743f, 0.00999482f, 0.0121435f, 0.0146093f, 0.017418f, 0.0205957f, 0.0241684f,
1121 0.0281615f, 0.0326003f, 0.0375092f, 0.0429118f, 0.0488308f, 0.0552873f, 0.0623012f,
1122 0.0698908f, 0.0780723f, 0.0868601f, 0.0962664f, 0.106301f, 0.11697f, 0.12828f,
1123 0.140231f, 0.152822f, 0.166049f, 0.179905f, 0.194379f, 0.209457f, 0.225123f, 0.241356f,
1124 0.258133f, 0.275428f, 0.293212f, 0.311453f, 0.330116f, 0.349163f, 0.368556f, 0.388253f,
1125 0.40821f, 0.428382f, 0.448723f, 0.469185f, 0.48972f, 0.51028f, 0.530815f, 0.551277f,
1126 0.571618f, 0.59179f, 0.611747f, 0.631444f, 0.650837f, 0.669884f, 0.688547f, 0.706788f,
1127 0.724572f, 0.741867f, 0.758644f, 0.774877f, 0.790543f, 0.805621f, 0.820095f, 0.833951f,
1128 0.847178f, 0.859769f, 0.87172f, 0.88303f, 0.893699f, 0.903734f, 0.91314f, 0.921928f,
1129 0.930109f, 0.937699f, 0.944713f, 0.951169f, 0.957088f, 0.962491f, 0.9674f, 0.971838f,
1130 0.975832f, 0.979404f, 0.982582f, 0.985391f, 0.987857f, 0.990005f, 0.991863f, 0.993454f,
1131 0.994804f, 0.995937f, 0.996877f, 0.997645f, 0.998264f, 0.998753f, 0.999131f, 0.999416f,
1132 0.999625f, 0.999772f, 0.999871f, 0.999934f, 0.99997f, 0.999989f, 0.999997f, 0.99999964f, 1.0f,
1135 const uint32_t * const ff_celt_pvq_u_row[15] = {
1136 ff_celt_pvq_u + 0, ff_celt_pvq_u + 176, ff_celt_pvq_u + 351,
1137 ff_celt_pvq_u + 525, ff_celt_pvq_u + 698, ff_celt_pvq_u + 870,
1138 ff_celt_pvq_u + 1041, ff_celt_pvq_u + 1131, ff_celt_pvq_u + 1178,
1139 ff_celt_pvq_u + 1207, ff_celt_pvq_u + 1226, ff_celt_pvq_u + 1240,
1140 ff_celt_pvq_u + 1248, ff_celt_pvq_u + 1254, ff_celt_pvq_u + 1257