
This also happens to increase the accuracy since it appears that the new ordering is optimal (at least for 20 ms frames), whereas the previous ordering was pessimal.
595 lines
22 KiB
C
595 lines
22 KiB
C
/* The contents of this file was automatically generated by dump_modes.c
|
|
with arguments: 48000 960
|
|
It contains static definitions for some pre-defined modes. */
|
|
#include "modes.h"
|
|
#include "rate.h"
|
|
|
|
#ifndef DEF_WINDOW120
|
|
#define DEF_WINDOW120
|
|
static const opus_val16 window120[120] = {
|
|
2, 20, 55, 108, 178,
|
|
266, 372, 494, 635, 792,
|
|
966, 1157, 1365, 1590, 1831,
|
|
2089, 2362, 2651, 2956, 3276,
|
|
3611, 3961, 4325, 4703, 5094,
|
|
5499, 5916, 6346, 6788, 7241,
|
|
7705, 8179, 8663, 9156, 9657,
|
|
10167, 10684, 11207, 11736, 12271,
|
|
12810, 13353, 13899, 14447, 14997,
|
|
15547, 16098, 16648, 17197, 17744,
|
|
18287, 18827, 19363, 19893, 20418,
|
|
20936, 21447, 21950, 22445, 22931,
|
|
23407, 23874, 24330, 24774, 25208,
|
|
25629, 26039, 26435, 26819, 27190,
|
|
27548, 27893, 28224, 28541, 28845,
|
|
29135, 29411, 29674, 29924, 30160,
|
|
30384, 30594, 30792, 30977, 31151,
|
|
31313, 31463, 31602, 31731, 31849,
|
|
31958, 32057, 32148, 32229, 32303,
|
|
32370, 32429, 32481, 32528, 32568,
|
|
32604, 32634, 32661, 32683, 32701,
|
|
32717, 32729, 32740, 32748, 32754,
|
|
32758, 32762, 32764, 32766, 32767,
|
|
32767, 32767, 32767, 32767, 32767,
|
|
};
|
|
#endif
|
|
|
|
#ifndef DEF_LOGN400
|
|
#define DEF_LOGN400
|
|
static const opus_int16 logN400[21] = {
|
|
0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 16, 16, 16, 21, 21, 24, 29, 34, 36, };
|
|
#endif
|
|
|
|
#ifndef DEF_PULSE_CACHE50
|
|
#define DEF_PULSE_CACHE50
|
|
static const opus_int16 cache_index50[105] = {
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 41, 41, 41,
|
|
82, 82, 123, 164, 200, 222, 0, 0, 0, 0, 0, 0, 0, 0, 41,
|
|
41, 41, 41, 123, 123, 123, 164, 164, 240, 266, 283, 295, 41, 41, 41,
|
|
41, 41, 41, 41, 41, 123, 123, 123, 123, 240, 240, 240, 266, 266, 305,
|
|
318, 328, 336, 123, 123, 123, 123, 123, 123, 123, 123, 240, 240, 240, 240,
|
|
305, 305, 305, 318, 318, 343, 351, 358, 364, 240, 240, 240, 240, 240, 240,
|
|
240, 240, 305, 305, 305, 305, 343, 343, 343, 351, 351, 370, 376, 382, 387,
|
|
};
|
|
static const unsigned char cache_bits50[392] = {
|
|
40, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 40, 15, 23, 28,
|
|
31, 34, 36, 38, 39, 41, 42, 43, 44, 45, 46, 47, 47, 49, 50,
|
|
51, 52, 53, 54, 55, 55, 57, 58, 59, 60, 61, 62, 63, 63, 65,
|
|
66, 67, 68, 69, 70, 71, 71, 40, 20, 33, 41, 48, 53, 57, 61,
|
|
64, 66, 69, 71, 73, 75, 76, 78, 80, 82, 85, 87, 89, 91, 92,
|
|
94, 96, 98, 101, 103, 105, 107, 108, 110, 112, 114, 117, 119, 121, 123,
|
|
124, 126, 128, 40, 23, 39, 51, 60, 67, 73, 79, 83, 87, 91, 94,
|
|
97, 100, 102, 105, 107, 111, 115, 118, 121, 124, 126, 129, 131, 135, 139,
|
|
142, 145, 148, 150, 153, 155, 159, 163, 166, 169, 172, 174, 177, 179, 35,
|
|
28, 49, 65, 78, 89, 99, 107, 114, 120, 126, 132, 136, 141, 145, 149,
|
|
153, 159, 165, 171, 176, 180, 185, 189, 192, 199, 205, 211, 216, 220, 225,
|
|
229, 232, 239, 245, 251, 21, 33, 58, 79, 97, 112, 125, 137, 148, 157,
|
|
166, 174, 182, 189, 195, 201, 207, 217, 227, 235, 243, 251, 17, 35, 63,
|
|
86, 106, 123, 139, 152, 165, 177, 187, 197, 206, 214, 222, 230, 237, 250,
|
|
25, 31, 55, 75, 91, 105, 117, 128, 138, 146, 154, 161, 168, 174, 180,
|
|
185, 190, 200, 208, 215, 222, 229, 235, 240, 245, 255, 16, 36, 65, 89,
|
|
110, 128, 144, 159, 173, 185, 196, 207, 217, 226, 234, 242, 250, 11, 41,
|
|
74, 103, 128, 151, 172, 191, 209, 225, 241, 255, 9, 43, 79, 110, 138,
|
|
163, 186, 207, 227, 246, 12, 39, 71, 99, 123, 144, 164, 182, 198, 214,
|
|
228, 241, 253, 9, 44, 81, 113, 142, 168, 192, 214, 235, 255, 7, 49,
|
|
90, 127, 160, 191, 220, 247, 6, 51, 95, 134, 170, 203, 234, 7, 47,
|
|
87, 123, 155, 184, 212, 237, 6, 52, 97, 137, 174, 208, 240, 5, 57,
|
|
106, 151, 192, 231, 5, 59, 111, 158, 202, 243, 5, 55, 103, 147, 187,
|
|
224, 5, 60, 113, 161, 206, 248, 4, 65, 122, 175, 224, 4, 67, 127,
|
|
182, 234, };
|
|
static const unsigned char cache_caps50[168] = {
|
|
224, 224, 224, 224, 224, 224, 224, 224, 160, 160, 160, 160, 185, 185, 185,
|
|
178, 178, 168, 134, 61, 37, 224, 224, 224, 224, 224, 224, 224, 224, 240,
|
|
240, 240, 240, 207, 207, 207, 198, 198, 183, 144, 66, 40, 160, 160, 160,
|
|
160, 160, 160, 160, 160, 185, 185, 185, 185, 193, 193, 193, 183, 183, 172,
|
|
138, 64, 38, 240, 240, 240, 240, 240, 240, 240, 240, 207, 207, 207, 207,
|
|
204, 204, 204, 193, 193, 180, 143, 66, 40, 185, 185, 185, 185, 185, 185,
|
|
185, 185, 193, 193, 193, 193, 193, 193, 193, 183, 183, 172, 138, 65, 39,
|
|
207, 207, 207, 207, 207, 207, 207, 207, 204, 204, 204, 204, 201, 201, 201,
|
|
188, 188, 176, 141, 66, 40, 193, 193, 193, 193, 193, 193, 193, 193, 193,
|
|
193, 193, 193, 194, 194, 194, 184, 184, 173, 139, 65, 39, 204, 204, 204,
|
|
204, 204, 204, 204, 204, 201, 201, 201, 201, 198, 198, 198, 187, 187, 175,
|
|
140, 66, 40, };
|
|
#endif
|
|
|
|
#ifndef FFT_TWIDDLES48000_960
|
|
#define FFT_TWIDDLES48000_960
|
|
static const kiss_twiddle_cpx fft_twiddles48000_960[480] = {
|
|
{32767, 0}, {32766, -429},
|
|
{32757, -858}, {32743, -1287},
|
|
{32724, -1715}, {32698, -2143},
|
|
{32667, -2570}, {32631, -2998},
|
|
{32588, -3425}, {32541, -3851},
|
|
{32488, -4277}, {32429, -4701},
|
|
{32364, -5125}, {32295, -5548},
|
|
{32219, -5971}, {32138, -6393},
|
|
{32051, -6813}, {31960, -7231},
|
|
{31863, -7650}, {31760, -8067},
|
|
{31652, -8481}, {31539, -8895},
|
|
{31419, -9306}, {31294, -9716},
|
|
{31165, -10126}, {31030, -10532},
|
|
{30889, -10937}, {30743, -11340},
|
|
{30592, -11741}, {30436, -12141},
|
|
{30274, -12540}, {30107, -12935},
|
|
{29936, -13328}, {29758, -13718},
|
|
{29577, -14107}, {29390, -14493},
|
|
{29197, -14875}, {29000, -15257},
|
|
{28797, -15635}, {28590, -16010},
|
|
{28379, -16384}, {28162, -16753},
|
|
{27940, -17119}, {27714, -17484},
|
|
{27482, -17845}, {27246, -18205},
|
|
{27006, -18560}, {26760, -18911},
|
|
{26510, -19260}, {26257, -19606},
|
|
{25997, -19947}, {25734, -20286},
|
|
{25466, -20621}, {25194, -20952},
|
|
{24918, -21281}, {24637, -21605},
|
|
{24353, -21926}, {24063, -22242},
|
|
{23770, -22555}, {23473, -22865},
|
|
{23171, -23171}, {22866, -23472},
|
|
{22557, -23769}, {22244, -24063},
|
|
{21927, -24352}, {21606, -24636},
|
|
{21282, -24917}, {20954, -25194},
|
|
{20622, -25465}, {20288, -25733},
|
|
{19949, -25997}, {19607, -26255},
|
|
{19261, -26509}, {18914, -26760},
|
|
{18561, -27004}, {18205, -27246},
|
|
{17846, -27481}, {17485, -27713},
|
|
{17122, -27940}, {16755, -28162},
|
|
{16385, -28378}, {16012, -28590},
|
|
{15636, -28797}, {15258, -28999},
|
|
{14878, -29197}, {14494, -29389},
|
|
{14108, -29576}, {13720, -29757},
|
|
{13329, -29934}, {12937, -30107},
|
|
{12540, -30274}, {12142, -30435},
|
|
{11744, -30592}, {11342, -30743},
|
|
{10939, -30889}, {10534, -31030},
|
|
{10127, -31164}, {9718, -31294},
|
|
{9307, -31418}, {8895, -31537},
|
|
{8482, -31652}, {8067, -31759},
|
|
{7650, -31862}, {7233, -31960},
|
|
{6815, -32051}, {6393, -32138},
|
|
{5973, -32219}, {5549, -32294},
|
|
{5127, -32364}, {4703, -32429},
|
|
{4278, -32487}, {3852, -32541},
|
|
{3426, -32588}, {2999, -32630},
|
|
{2572, -32667}, {2144, -32698},
|
|
{1716, -32724}, {1287, -32742},
|
|
{860, -32757}, {430, -32766},
|
|
{0, -32767}, {-429, -32766},
|
|
{-858, -32757}, {-1287, -32743},
|
|
{-1715, -32724}, {-2143, -32698},
|
|
{-2570, -32667}, {-2998, -32631},
|
|
{-3425, -32588}, {-3851, -32541},
|
|
{-4277, -32488}, {-4701, -32429},
|
|
{-5125, -32364}, {-5548, -32295},
|
|
{-5971, -32219}, {-6393, -32138},
|
|
{-6813, -32051}, {-7231, -31960},
|
|
{-7650, -31863}, {-8067, -31760},
|
|
{-8481, -31652}, {-8895, -31539},
|
|
{-9306, -31419}, {-9716, -31294},
|
|
{-10126, -31165}, {-10532, -31030},
|
|
{-10937, -30889}, {-11340, -30743},
|
|
{-11741, -30592}, {-12141, -30436},
|
|
{-12540, -30274}, {-12935, -30107},
|
|
{-13328, -29936}, {-13718, -29758},
|
|
{-14107, -29577}, {-14493, -29390},
|
|
{-14875, -29197}, {-15257, -29000},
|
|
{-15635, -28797}, {-16010, -28590},
|
|
{-16384, -28379}, {-16753, -28162},
|
|
{-17119, -27940}, {-17484, -27714},
|
|
{-17845, -27482}, {-18205, -27246},
|
|
{-18560, -27006}, {-18911, -26760},
|
|
{-19260, -26510}, {-19606, -26257},
|
|
{-19947, -25997}, {-20286, -25734},
|
|
{-20621, -25466}, {-20952, -25194},
|
|
{-21281, -24918}, {-21605, -24637},
|
|
{-21926, -24353}, {-22242, -24063},
|
|
{-22555, -23770}, {-22865, -23473},
|
|
{-23171, -23171}, {-23472, -22866},
|
|
{-23769, -22557}, {-24063, -22244},
|
|
{-24352, -21927}, {-24636, -21606},
|
|
{-24917, -21282}, {-25194, -20954},
|
|
{-25465, -20622}, {-25733, -20288},
|
|
{-25997, -19949}, {-26255, -19607},
|
|
{-26509, -19261}, {-26760, -18914},
|
|
{-27004, -18561}, {-27246, -18205},
|
|
{-27481, -17846}, {-27713, -17485},
|
|
{-27940, -17122}, {-28162, -16755},
|
|
{-28378, -16385}, {-28590, -16012},
|
|
{-28797, -15636}, {-28999, -15258},
|
|
{-29197, -14878}, {-29389, -14494},
|
|
{-29576, -14108}, {-29757, -13720},
|
|
{-29934, -13329}, {-30107, -12937},
|
|
{-30274, -12540}, {-30435, -12142},
|
|
{-30592, -11744}, {-30743, -11342},
|
|
{-30889, -10939}, {-31030, -10534},
|
|
{-31164, -10127}, {-31294, -9718},
|
|
{-31418, -9307}, {-31537, -8895},
|
|
{-31652, -8482}, {-31759, -8067},
|
|
{-31862, -7650}, {-31960, -7233},
|
|
{-32051, -6815}, {-32138, -6393},
|
|
{-32219, -5973}, {-32294, -5549},
|
|
{-32364, -5127}, {-32429, -4703},
|
|
{-32487, -4278}, {-32541, -3852},
|
|
{-32588, -3426}, {-32630, -2999},
|
|
{-32667, -2572}, {-32698, -2144},
|
|
{-32724, -1716}, {-32742, -1287},
|
|
{-32757, -860}, {-32766, -430},
|
|
{-32767, 0}, {-32766, 429},
|
|
{-32757, 858}, {-32743, 1287},
|
|
{-32724, 1715}, {-32698, 2143},
|
|
{-32667, 2570}, {-32631, 2998},
|
|
{-32588, 3425}, {-32541, 3851},
|
|
{-32488, 4277}, {-32429, 4701},
|
|
{-32364, 5125}, {-32295, 5548},
|
|
{-32219, 5971}, {-32138, 6393},
|
|
{-32051, 6813}, {-31960, 7231},
|
|
{-31863, 7650}, {-31760, 8067},
|
|
{-31652, 8481}, {-31539, 8895},
|
|
{-31419, 9306}, {-31294, 9716},
|
|
{-31165, 10126}, {-31030, 10532},
|
|
{-30889, 10937}, {-30743, 11340},
|
|
{-30592, 11741}, {-30436, 12141},
|
|
{-30274, 12540}, {-30107, 12935},
|
|
{-29936, 13328}, {-29758, 13718},
|
|
{-29577, 14107}, {-29390, 14493},
|
|
{-29197, 14875}, {-29000, 15257},
|
|
{-28797, 15635}, {-28590, 16010},
|
|
{-28379, 16384}, {-28162, 16753},
|
|
{-27940, 17119}, {-27714, 17484},
|
|
{-27482, 17845}, {-27246, 18205},
|
|
{-27006, 18560}, {-26760, 18911},
|
|
{-26510, 19260}, {-26257, 19606},
|
|
{-25997, 19947}, {-25734, 20286},
|
|
{-25466, 20621}, {-25194, 20952},
|
|
{-24918, 21281}, {-24637, 21605},
|
|
{-24353, 21926}, {-24063, 22242},
|
|
{-23770, 22555}, {-23473, 22865},
|
|
{-23171, 23171}, {-22866, 23472},
|
|
{-22557, 23769}, {-22244, 24063},
|
|
{-21927, 24352}, {-21606, 24636},
|
|
{-21282, 24917}, {-20954, 25194},
|
|
{-20622, 25465}, {-20288, 25733},
|
|
{-19949, 25997}, {-19607, 26255},
|
|
{-19261, 26509}, {-18914, 26760},
|
|
{-18561, 27004}, {-18205, 27246},
|
|
{-17846, 27481}, {-17485, 27713},
|
|
{-17122, 27940}, {-16755, 28162},
|
|
{-16385, 28378}, {-16012, 28590},
|
|
{-15636, 28797}, {-15258, 28999},
|
|
{-14878, 29197}, {-14494, 29389},
|
|
{-14108, 29576}, {-13720, 29757},
|
|
{-13329, 29934}, {-12937, 30107},
|
|
{-12540, 30274}, {-12142, 30435},
|
|
{-11744, 30592}, {-11342, 30743},
|
|
{-10939, 30889}, {-10534, 31030},
|
|
{-10127, 31164}, {-9718, 31294},
|
|
{-9307, 31418}, {-8895, 31537},
|
|
{-8482, 31652}, {-8067, 31759},
|
|
{-7650, 31862}, {-7233, 31960},
|
|
{-6815, 32051}, {-6393, 32138},
|
|
{-5973, 32219}, {-5549, 32294},
|
|
{-5127, 32364}, {-4703, 32429},
|
|
{-4278, 32487}, {-3852, 32541},
|
|
{-3426, 32588}, {-2999, 32630},
|
|
{-2572, 32667}, {-2144, 32698},
|
|
{-1716, 32724}, {-1287, 32742},
|
|
{-860, 32757}, {-430, 32766},
|
|
{0, 32767}, {429, 32766},
|
|
{858, 32757}, {1287, 32743},
|
|
{1715, 32724}, {2143, 32698},
|
|
{2570, 32667}, {2998, 32631},
|
|
{3425, 32588}, {3851, 32541},
|
|
{4277, 32488}, {4701, 32429},
|
|
{5125, 32364}, {5548, 32295},
|
|
{5971, 32219}, {6393, 32138},
|
|
{6813, 32051}, {7231, 31960},
|
|
{7650, 31863}, {8067, 31760},
|
|
{8481, 31652}, {8895, 31539},
|
|
{9306, 31419}, {9716, 31294},
|
|
{10126, 31165}, {10532, 31030},
|
|
{10937, 30889}, {11340, 30743},
|
|
{11741, 30592}, {12141, 30436},
|
|
{12540, 30274}, {12935, 30107},
|
|
{13328, 29936}, {13718, 29758},
|
|
{14107, 29577}, {14493, 29390},
|
|
{14875, 29197}, {15257, 29000},
|
|
{15635, 28797}, {16010, 28590},
|
|
{16384, 28379}, {16753, 28162},
|
|
{17119, 27940}, {17484, 27714},
|
|
{17845, 27482}, {18205, 27246},
|
|
{18560, 27006}, {18911, 26760},
|
|
{19260, 26510}, {19606, 26257},
|
|
{19947, 25997}, {20286, 25734},
|
|
{20621, 25466}, {20952, 25194},
|
|
{21281, 24918}, {21605, 24637},
|
|
{21926, 24353}, {22242, 24063},
|
|
{22555, 23770}, {22865, 23473},
|
|
{23171, 23171}, {23472, 22866},
|
|
{23769, 22557}, {24063, 22244},
|
|
{24352, 21927}, {24636, 21606},
|
|
{24917, 21282}, {25194, 20954},
|
|
{25465, 20622}, {25733, 20288},
|
|
{25997, 19949}, {26255, 19607},
|
|
{26509, 19261}, {26760, 18914},
|
|
{27004, 18561}, {27246, 18205},
|
|
{27481, 17846}, {27713, 17485},
|
|
{27940, 17122}, {28162, 16755},
|
|
{28378, 16385}, {28590, 16012},
|
|
{28797, 15636}, {28999, 15258},
|
|
{29197, 14878}, {29389, 14494},
|
|
{29576, 14108}, {29757, 13720},
|
|
{29934, 13329}, {30107, 12937},
|
|
{30274, 12540}, {30435, 12142},
|
|
{30592, 11744}, {30743, 11342},
|
|
{30889, 10939}, {31030, 10534},
|
|
{31164, 10127}, {31294, 9718},
|
|
{31418, 9307}, {31537, 8895},
|
|
{31652, 8482}, {31759, 8067},
|
|
{31862, 7650}, {31960, 7233},
|
|
{32051, 6815}, {32138, 6393},
|
|
{32219, 5973}, {32294, 5549},
|
|
{32364, 5127}, {32429, 4703},
|
|
{32487, 4278}, {32541, 3852},
|
|
{32588, 3426}, {32630, 2999},
|
|
{32667, 2572}, {32698, 2144},
|
|
{32724, 1716}, {32742, 1287},
|
|
{32757, 860}, {32766, 430},
|
|
};
|
|
#ifndef FFT_BITREV480
|
|
#define FFT_BITREV480
|
|
static const opus_int16 fft_bitrev480[480] = {
|
|
0, 96, 192, 288, 384, 32, 128, 224, 320, 416, 64, 160, 256, 352, 448,
|
|
16, 112, 208, 304, 400, 48, 144, 240, 336, 432, 80, 176, 272, 368, 464,
|
|
4, 100, 196, 292, 388, 36, 132, 228, 324, 420, 68, 164, 260, 356, 452,
|
|
20, 116, 212, 308, 404, 52, 148, 244, 340, 436, 84, 180, 276, 372, 468,
|
|
8, 104, 200, 296, 392, 40, 136, 232, 328, 424, 72, 168, 264, 360, 456,
|
|
24, 120, 216, 312, 408, 56, 152, 248, 344, 440, 88, 184, 280, 376, 472,
|
|
12, 108, 204, 300, 396, 44, 140, 236, 332, 428, 76, 172, 268, 364, 460,
|
|
28, 124, 220, 316, 412, 60, 156, 252, 348, 444, 92, 188, 284, 380, 476,
|
|
1, 97, 193, 289, 385, 33, 129, 225, 321, 417, 65, 161, 257, 353, 449,
|
|
17, 113, 209, 305, 401, 49, 145, 241, 337, 433, 81, 177, 273, 369, 465,
|
|
5, 101, 197, 293, 389, 37, 133, 229, 325, 421, 69, 165, 261, 357, 453,
|
|
21, 117, 213, 309, 405, 53, 149, 245, 341, 437, 85, 181, 277, 373, 469,
|
|
9, 105, 201, 297, 393, 41, 137, 233, 329, 425, 73, 169, 265, 361, 457,
|
|
25, 121, 217, 313, 409, 57, 153, 249, 345, 441, 89, 185, 281, 377, 473,
|
|
13, 109, 205, 301, 397, 45, 141, 237, 333, 429, 77, 173, 269, 365, 461,
|
|
29, 125, 221, 317, 413, 61, 157, 253, 349, 445, 93, 189, 285, 381, 477,
|
|
2, 98, 194, 290, 386, 34, 130, 226, 322, 418, 66, 162, 258, 354, 450,
|
|
18, 114, 210, 306, 402, 50, 146, 242, 338, 434, 82, 178, 274, 370, 466,
|
|
6, 102, 198, 294, 390, 38, 134, 230, 326, 422, 70, 166, 262, 358, 454,
|
|
22, 118, 214, 310, 406, 54, 150, 246, 342, 438, 86, 182, 278, 374, 470,
|
|
10, 106, 202, 298, 394, 42, 138, 234, 330, 426, 74, 170, 266, 362, 458,
|
|
26, 122, 218, 314, 410, 58, 154, 250, 346, 442, 90, 186, 282, 378, 474,
|
|
14, 110, 206, 302, 398, 46, 142, 238, 334, 430, 78, 174, 270, 366, 462,
|
|
30, 126, 222, 318, 414, 62, 158, 254, 350, 446, 94, 190, 286, 382, 478,
|
|
3, 99, 195, 291, 387, 35, 131, 227, 323, 419, 67, 163, 259, 355, 451,
|
|
19, 115, 211, 307, 403, 51, 147, 243, 339, 435, 83, 179, 275, 371, 467,
|
|
7, 103, 199, 295, 391, 39, 135, 231, 327, 423, 71, 167, 263, 359, 455,
|
|
23, 119, 215, 311, 407, 55, 151, 247, 343, 439, 87, 183, 279, 375, 471,
|
|
11, 107, 203, 299, 395, 43, 139, 235, 331, 427, 75, 171, 267, 363, 459,
|
|
27, 123, 219, 315, 411, 59, 155, 251, 347, 443, 91, 187, 283, 379, 475,
|
|
15, 111, 207, 303, 399, 47, 143, 239, 335, 431, 79, 175, 271, 367, 463,
|
|
31, 127, 223, 319, 415, 63, 159, 255, 351, 447, 95, 191, 287, 383, 479,
|
|
};
|
|
#endif
|
|
|
|
#ifndef FFT_BITREV240
|
|
#define FFT_BITREV240
|
|
static const opus_int16 fft_bitrev240[240] = {
|
|
0, 48, 96, 144, 192, 16, 64, 112, 160, 208, 32, 80, 128, 176, 224,
|
|
4, 52, 100, 148, 196, 20, 68, 116, 164, 212, 36, 84, 132, 180, 228,
|
|
8, 56, 104, 152, 200, 24, 72, 120, 168, 216, 40, 88, 136, 184, 232,
|
|
12, 60, 108, 156, 204, 28, 76, 124, 172, 220, 44, 92, 140, 188, 236,
|
|
1, 49, 97, 145, 193, 17, 65, 113, 161, 209, 33, 81, 129, 177, 225,
|
|
5, 53, 101, 149, 197, 21, 69, 117, 165, 213, 37, 85, 133, 181, 229,
|
|
9, 57, 105, 153, 201, 25, 73, 121, 169, 217, 41, 89, 137, 185, 233,
|
|
13, 61, 109, 157, 205, 29, 77, 125, 173, 221, 45, 93, 141, 189, 237,
|
|
2, 50, 98, 146, 194, 18, 66, 114, 162, 210, 34, 82, 130, 178, 226,
|
|
6, 54, 102, 150, 198, 22, 70, 118, 166, 214, 38, 86, 134, 182, 230,
|
|
10, 58, 106, 154, 202, 26, 74, 122, 170, 218, 42, 90, 138, 186, 234,
|
|
14, 62, 110, 158, 206, 30, 78, 126, 174, 222, 46, 94, 142, 190, 238,
|
|
3, 51, 99, 147, 195, 19, 67, 115, 163, 211, 35, 83, 131, 179, 227,
|
|
7, 55, 103, 151, 199, 23, 71, 119, 167, 215, 39, 87, 135, 183, 231,
|
|
11, 59, 107, 155, 203, 27, 75, 123, 171, 219, 43, 91, 139, 187, 235,
|
|
15, 63, 111, 159, 207, 31, 79, 127, 175, 223, 47, 95, 143, 191, 239,
|
|
};
|
|
#endif
|
|
|
|
#ifndef FFT_BITREV120
|
|
#define FFT_BITREV120
|
|
static const opus_int16 fft_bitrev120[120] = {
|
|
0, 24, 48, 72, 96, 8, 32, 56, 80, 104, 16, 40, 64, 88, 112,
|
|
4, 28, 52, 76, 100, 12, 36, 60, 84, 108, 20, 44, 68, 92, 116,
|
|
1, 25, 49, 73, 97, 9, 33, 57, 81, 105, 17, 41, 65, 89, 113,
|
|
5, 29, 53, 77, 101, 13, 37, 61, 85, 109, 21, 45, 69, 93, 117,
|
|
2, 26, 50, 74, 98, 10, 34, 58, 82, 106, 18, 42, 66, 90, 114,
|
|
6, 30, 54, 78, 102, 14, 38, 62, 86, 110, 22, 46, 70, 94, 118,
|
|
3, 27, 51, 75, 99, 11, 35, 59, 83, 107, 19, 43, 67, 91, 115,
|
|
7, 31, 55, 79, 103, 15, 39, 63, 87, 111, 23, 47, 71, 95, 119,
|
|
};
|
|
#endif
|
|
|
|
#ifndef FFT_BITREV60
|
|
#define FFT_BITREV60
|
|
static const opus_int16 fft_bitrev60[60] = {
|
|
0, 12, 24, 36, 48, 4, 16, 28, 40, 52, 8, 20, 32, 44, 56,
|
|
1, 13, 25, 37, 49, 5, 17, 29, 41, 53, 9, 21, 33, 45, 57,
|
|
2, 14, 26, 38, 50, 6, 18, 30, 42, 54, 10, 22, 34, 46, 58,
|
|
3, 15, 27, 39, 51, 7, 19, 31, 43, 55, 11, 23, 35, 47, 59,
|
|
};
|
|
#endif
|
|
|
|
#ifndef FFT_STATE48000_960_0
|
|
#define FFT_STATE48000_960_0
|
|
static const kiss_fft_state fft_state48000_960_0 = {
|
|
480, /* nfft */
|
|
-1, /* shift */
|
|
{5, 96, 3, 32, 2, 16, 4, 4, 4, 1, 0, 0, 0, 0, 0, 0, }, /* factors */
|
|
fft_bitrev480, /* bitrev */
|
|
fft_twiddles48000_960, /* bitrev */
|
|
};
|
|
#endif
|
|
|
|
#ifndef FFT_STATE48000_960_1
|
|
#define FFT_STATE48000_960_1
|
|
static const kiss_fft_state fft_state48000_960_1 = {
|
|
240, /* nfft */
|
|
1, /* shift */
|
|
{5, 48, 3, 16, 4, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, }, /* factors */
|
|
fft_bitrev240, /* bitrev */
|
|
fft_twiddles48000_960, /* bitrev */
|
|
};
|
|
#endif
|
|
|
|
#ifndef FFT_STATE48000_960_2
|
|
#define FFT_STATE48000_960_2
|
|
static const kiss_fft_state fft_state48000_960_2 = {
|
|
120, /* nfft */
|
|
2, /* shift */
|
|
{5, 24, 3, 8, 2, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, }, /* factors */
|
|
fft_bitrev120, /* bitrev */
|
|
fft_twiddles48000_960, /* bitrev */
|
|
};
|
|
#endif
|
|
|
|
#ifndef FFT_STATE48000_960_3
|
|
#define FFT_STATE48000_960_3
|
|
static const kiss_fft_state fft_state48000_960_3 = {
|
|
60, /* nfft */
|
|
3, /* shift */
|
|
{5, 12, 3, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, /* factors */
|
|
fft_bitrev60, /* bitrev */
|
|
fft_twiddles48000_960, /* bitrev */
|
|
};
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#ifndef MDCT_TWIDDLES960
|
|
#define MDCT_TWIDDLES960
|
|
static const opus_val16 mdct_twiddles960[481] = {
|
|
32767, 32767, 32767, 32767, 32766,
|
|
32763, 32762, 32759, 32757, 32753,
|
|
32751, 32747, 32743, 32738, 32733,
|
|
32729, 32724, 32717, 32711, 32705,
|
|
32698, 32690, 32683, 32676, 32667,
|
|
32658, 32650, 32640, 32631, 32620,
|
|
32610, 32599, 32588, 32577, 32566,
|
|
32554, 32541, 32528, 32515, 32502,
|
|
32487, 32474, 32459, 32444, 32429,
|
|
32413, 32397, 32381, 32364, 32348,
|
|
32331, 32313, 32294, 32277, 32257,
|
|
32239, 32219, 32200, 32180, 32159,
|
|
32138, 32118, 32096, 32074, 32051,
|
|
32029, 32006, 31984, 31960, 31936,
|
|
31912, 31888, 31863, 31837, 31812,
|
|
31786, 31760, 31734, 31707, 31679,
|
|
31652, 31624, 31596, 31567, 31539,
|
|
31508, 31479, 31450, 31419, 31388,
|
|
31357, 31326, 31294, 31262, 31230,
|
|
31198, 31164, 31131, 31097, 31063,
|
|
31030, 30994, 30959, 30924, 30889,
|
|
30853, 30816, 30779, 30743, 30705,
|
|
30668, 30629, 30592, 30553, 30515,
|
|
30475, 30435, 30396, 30356, 30315,
|
|
30274, 30233, 30191, 30149, 30107,
|
|
30065, 30022, 29979, 29936, 29891,
|
|
29847, 29803, 29758, 29713, 29668,
|
|
29622, 29577, 29529, 29483, 29436,
|
|
29390, 29341, 29293, 29246, 29197,
|
|
29148, 29098, 29050, 29000, 28949,
|
|
28899, 28848, 28797, 28746, 28694,
|
|
28642, 28590, 28537, 28485, 28432,
|
|
28378, 28324, 28271, 28217, 28162,
|
|
28106, 28051, 27995, 27940, 27884,
|
|
27827, 27770, 27713, 27657, 27598,
|
|
27540, 27481, 27423, 27365, 27305,
|
|
27246, 27187, 27126, 27066, 27006,
|
|
26945, 26883, 26822, 26760, 26698,
|
|
26636, 26574, 26510, 26448, 26383,
|
|
26320, 26257, 26191, 26127, 26062,
|
|
25997, 25931, 25866, 25800, 25734,
|
|
25667, 25601, 25533, 25466, 25398,
|
|
25330, 25262, 25194, 25125, 25056,
|
|
24987, 24917, 24848, 24778, 24707,
|
|
24636, 24566, 24495, 24424, 24352,
|
|
24280, 24208, 24135, 24063, 23990,
|
|
23917, 23842, 23769, 23695, 23622,
|
|
23546, 23472, 23398, 23322, 23246,
|
|
23171, 23095, 23018, 22942, 22866,
|
|
22788, 22711, 22634, 22557, 22478,
|
|
22400, 22322, 22244, 22165, 22085,
|
|
22006, 21927, 21846, 21766, 21687,
|
|
21606, 21524, 21443, 21363, 21282,
|
|
21199, 21118, 21035, 20954, 20870,
|
|
20788, 20705, 20621, 20538, 20455,
|
|
20371, 20286, 20202, 20118, 20034,
|
|
19947, 19863, 19777, 19692, 19606,
|
|
19520, 19434, 19347, 19260, 19174,
|
|
19088, 18999, 18911, 18825, 18737,
|
|
18648, 18560, 18472, 18384, 18294,
|
|
18205, 18116, 18025, 17936, 17846,
|
|
17757, 17666, 17576, 17485, 17395,
|
|
17303, 17212, 17122, 17030, 16937,
|
|
16846, 16755, 16662, 16569, 16477,
|
|
16385, 16291, 16198, 16105, 16012,
|
|
15917, 15824, 15730, 15636, 15541,
|
|
15447, 15352, 15257, 15162, 15067,
|
|
14973, 14875, 14781, 14685, 14589,
|
|
14493, 14396, 14300, 14204, 14107,
|
|
14010, 13914, 13815, 13718, 13621,
|
|
13524, 13425, 13328, 13230, 13133,
|
|
13033, 12935, 12836, 12738, 12638,
|
|
12540, 12441, 12341, 12241, 12142,
|
|
12044, 11943, 11843, 11744, 11643,
|
|
11542, 11442, 11342, 11241, 11139,
|
|
11039, 10939, 10836, 10736, 10635,
|
|
10534, 10431, 10330, 10228, 10127,
|
|
10024, 9921, 9820, 9718, 9614,
|
|
9512, 9410, 9306, 9204, 9101,
|
|
8998, 8895, 8791, 8689, 8585,
|
|
8481, 8377, 8274, 8171, 8067,
|
|
7962, 7858, 7753, 7650, 7545,
|
|
7441, 7336, 7231, 7129, 7023,
|
|
6917, 6813, 6709, 6604, 6498,
|
|
6393, 6288, 6182, 6077, 5973,
|
|
5867, 5760, 5656, 5549, 5445,
|
|
5339, 5232, 5127, 5022, 4914,
|
|
4809, 4703, 4596, 4490, 4384,
|
|
4278, 4171, 4065, 3958, 3852,
|
|
3745, 3640, 3532, 3426, 3318,
|
|
3212, 3106, 2998, 2891, 2786,
|
|
2679, 2570, 2465, 2358, 2251,
|
|
2143, 2037, 1929, 1823, 1715,
|
|
1609, 1501, 1393, 1287, 1180,
|
|
1073, 964, 858, 751, 644,
|
|
535, 429, 322, 214, 107,
|
|
0, };
|
|
#endif
|
|
|
|
static const CELTMode mode48000_960_120 = {
|
|
48000, /* Fs */
|
|
120, /* overlap */
|
|
21, /* nbEBands */
|
|
21, /* effEBands */
|
|
{27853, 0, 4096, 8192, }, /* preemph */
|
|
eband5ms, /* eBands */
|
|
3, /* maxLM */
|
|
8, /* nbShortMdcts */
|
|
120, /* shortMdctSize */
|
|
11, /* nbAllocVectors */
|
|
band_allocation, /* allocVectors */
|
|
logN400, /* logN */
|
|
window120, /* window */
|
|
{1920, 3, {&fft_state48000_960_0, &fft_state48000_960_1, &fft_state48000_960_2, &fft_state48000_960_3, }, mdct_twiddles960}, /* mdct */
|
|
{392, cache_index50, cache_bits50, cache_caps50}, /* cache */
|
|
};
|
|
|
|
/* List of all the available modes */
|
|
#define TOTAL_MODES 1
|
|
static const CELTMode * const static_mode_list[TOTAL_MODES] = {
|
|
&mode48000_960_120,
|
|
};
|