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