]> git.sesse.net Git - ffmpeg/blob - libavcodec/aactab.c
avcodec/asvdec: Make decoders init-threadsafe
[ffmpeg] / libavcodec / aactab.c
1 /*
2  * AAC data
3  * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4  * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
5  *
6  * This file is part of FFmpeg.
7  *
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.
12  *
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.
17  *
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
21  */
22
23 /**
24  * @file
25  * AAC data
26  * @author Oded Shimon  ( ods15 ods15 dyndns org )
27  * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
28  */
29
30 #include "config.h"
31 #include "libavutil/mem.h"
32 #include "libavutil/thread.h"
33 #include "aac.h"
34 #include "aactab.h"
35
36 #include <stdint.h>
37
38 float ff_aac_pow2sf_tab[428];
39 float ff_aac_pow34sf_tab[428];
40
41 #if CONFIG_AAC_ENCODER || CONFIG_AAC_DECODER
42 #include "kbdwin.h"
43 #include "sinewin.h"
44
45 DECLARE_ALIGNED(32, float,  ff_aac_kbd_long_1024)[1024];
46 DECLARE_ALIGNED(32, float,  ff_aac_kbd_short_128)[128];
47
48 static av_cold void aac_float_common_init(void)
49 {
50     ff_kbd_window_init(ff_aac_kbd_long_1024, 4.0, 1024);
51     ff_kbd_window_init(ff_aac_kbd_short_128, 6.0, 128);
52     ff_init_ff_sine_windows(10);
53     ff_init_ff_sine_windows(7);
54 }
55
56 av_cold void ff_aac_float_common_init(void)
57 {
58     static AVOnce init_static_once = AV_ONCE_INIT;
59     ff_thread_once(&init_static_once, aac_float_common_init);
60 }
61 #endif
62
63 const uint8_t ff_aac_num_swb_1024[] = {
64     41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40, 40
65 };
66
67 const uint8_t ff_aac_num_swb_960[] = {
68     40, 40, 46, 49, 49, 49, 46, 46, 42, 42, 42, 40, 40
69 };
70
71 const uint8_t ff_aac_num_swb_512[] = {
72      0,  0,  0, 36, 36, 37, 31, 31,  0,  0,  0,  0,  0
73 };
74
75 const uint8_t ff_aac_num_swb_480[] = {
76      0,  0,  0, 35, 35, 37, 30, 30,  0,  0,  0,  0,  0
77 };
78
79 const uint8_t ff_aac_num_swb_128[] = {
80     12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15
81 };
82
83 const uint8_t ff_aac_num_swb_120[] = {
84     12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15
85 };
86
87 const uint8_t ff_aac_pred_sfb_max[] = {
88     33, 33, 38, 40, 40, 40, 41, 41, 37, 37, 37, 34, 34
89 };
90
91 const uint32_t ff_aac_scalefactor_code[121] = {
92     0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6,
93     0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7,
94     0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0,
95     0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7,
96     0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5,
97     0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7,
98     0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a,
99     0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b,
100     0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9,
101     0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5,
102     0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4,
103     0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd,
104     0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2,
105     0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0,
106     0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4,
107     0x7fff3,
108 };
109
110 const uint8_t ff_aac_scalefactor_bits[121] = {
111     18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
112     19, 19, 19, 18, 19, 18, 17, 17, 16, 17, 16, 16, 16, 16, 15, 15,
113     14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11, 12, 11, 10, 10,
114     10,  9,  9,  8,  8,  8,  7,  6,  6,  5,  4,  3,  1,  4,  4,  5,
115      6,  6,  7,  7,  8,  8,  9,  9, 10, 10, 10, 11, 11, 11, 11, 12,
116     12, 13, 13, 13, 14, 14, 16, 15, 16, 15, 18, 19, 19, 19, 19, 19,
117     19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
118     19, 19, 19, 19, 19, 19, 19, 19, 19,
119 };
120
121 static const uint16_t codes1[81] = {
122     0x7f8, 0x1f1, 0x7fd, 0x3f5, 0x068, 0x3f0, 0x7f7, 0x1ec,
123     0x7f5, 0x3f1, 0x072, 0x3f4, 0x074, 0x011, 0x076, 0x1eb,
124     0x06c, 0x3f6, 0x7fc, 0x1e1, 0x7f1, 0x1f0, 0x061, 0x1f6,
125     0x7f2, 0x1ea, 0x7fb, 0x1f2, 0x069, 0x1ed, 0x077, 0x017,
126     0x06f, 0x1e6, 0x064, 0x1e5, 0x067, 0x015, 0x062, 0x012,
127     0x000, 0x014, 0x065, 0x016, 0x06d, 0x1e9, 0x063, 0x1e4,
128     0x06b, 0x013, 0x071, 0x1e3, 0x070, 0x1f3, 0x7fe, 0x1e7,
129     0x7f3, 0x1ef, 0x060, 0x1ee, 0x7f0, 0x1e2, 0x7fa, 0x3f3,
130     0x06a, 0x1e8, 0x075, 0x010, 0x073, 0x1f4, 0x06e, 0x3f7,
131     0x7f6, 0x1e0, 0x7f9, 0x3f2, 0x066, 0x1f5, 0x7ff, 0x1f7,
132     0x7f4,
133 };
134
135 static const uint8_t bits1[81] = {
136     11,  9, 11, 10,  7, 10, 11,  9, 11, 10,  7, 10,  7,  5,  7,  9,
137      7, 10, 11,  9, 11,  9,  7,  9, 11,  9, 11,  9,  7,  9,  7,  5,
138      7,  9,  7,  9,  7,  5,  7,  5,  1,  5,  7,  5,  7,  9,  7,  9,
139      7,  5,  7,  9,  7,  9, 11,  9, 11,  9,  7,  9, 11,  9, 11, 10,
140      7,  9,  7,  5,  7,  9,  7, 10, 11,  9, 11, 10,  7,  9, 11,  9,
141     11,
142 };
143
144 static const uint16_t codes2[81] = {
145     0x1f3, 0x06f, 0x1fd, 0x0eb, 0x023, 0x0ea, 0x1f7, 0x0e8,
146     0x1fa, 0x0f2, 0x02d, 0x070, 0x020, 0x006, 0x02b, 0x06e,
147     0x028, 0x0e9, 0x1f9, 0x066, 0x0f8, 0x0e7, 0x01b, 0x0f1,
148     0x1f4, 0x06b, 0x1f5, 0x0ec, 0x02a, 0x06c, 0x02c, 0x00a,
149     0x027, 0x067, 0x01a, 0x0f5, 0x024, 0x008, 0x01f, 0x009,
150     0x000, 0x007, 0x01d, 0x00b, 0x030, 0x0ef, 0x01c, 0x064,
151     0x01e, 0x00c, 0x029, 0x0f3, 0x02f, 0x0f0, 0x1fc, 0x071,
152     0x1f2, 0x0f4, 0x021, 0x0e6, 0x0f7, 0x068, 0x1f8, 0x0ee,
153     0x022, 0x065, 0x031, 0x002, 0x026, 0x0ed, 0x025, 0x06a,
154     0x1fb, 0x072, 0x1fe, 0x069, 0x02e, 0x0f6, 0x1ff, 0x06d,
155     0x1f6,
156 };
157
158 static const uint8_t bits2[81] = {
159     9, 7, 9, 8, 6, 8, 9, 8, 9, 8, 6, 7, 6, 5, 6, 7,
160     6, 8, 9, 7, 8, 8, 6, 8, 9, 7, 9, 8, 6, 7, 6, 5,
161     6, 7, 6, 8, 6, 5, 6, 5, 3, 5, 6, 5, 6, 8, 6, 7,
162     6, 5, 6, 8, 6, 8, 9, 7, 9, 8, 6, 8, 8, 7, 9, 8,
163     6, 7, 6, 4, 6, 8, 6, 7, 9, 7, 9, 7, 6, 8, 9, 7,
164     9,
165 };
166
167 static const uint16_t codes3[81] = {
168     0x0000, 0x0009, 0x00ef, 0x000b, 0x0019, 0x00f0, 0x01eb, 0x01e6,
169     0x03f2, 0x000a, 0x0035, 0x01ef, 0x0034, 0x0037, 0x01e9, 0x01ed,
170     0x01e7, 0x03f3, 0x01ee, 0x03ed, 0x1ffa, 0x01ec, 0x01f2, 0x07f9,
171     0x07f8, 0x03f8, 0x0ff8, 0x0008, 0x0038, 0x03f6, 0x0036, 0x0075,
172     0x03f1, 0x03eb, 0x03ec, 0x0ff4, 0x0018, 0x0076, 0x07f4, 0x0039,
173     0x0074, 0x03ef, 0x01f3, 0x01f4, 0x07f6, 0x01e8, 0x03ea, 0x1ffc,
174     0x00f2, 0x01f1, 0x0ffb, 0x03f5, 0x07f3, 0x0ffc, 0x00ee, 0x03f7,
175     0x7ffe, 0x01f0, 0x07f5, 0x7ffd, 0x1ffb, 0x3ffa, 0xffff, 0x00f1,
176     0x03f0, 0x3ffc, 0x01ea, 0x03ee, 0x3ffb, 0x0ff6, 0x0ffa, 0x7ffc,
177     0x07f2, 0x0ff5, 0xfffe, 0x03f4, 0x07f7, 0x7ffb, 0x0ff7, 0x0ff9,
178     0x7ffa,
179 };
180
181 static const uint8_t bits3[81] = {
182      1,  4,  8,  4,  5,  8,  9,  9, 10,  4,  6,  9,  6,  6,  9,  9,
183      9, 10,  9, 10, 13,  9,  9, 11, 11, 10, 12,  4,  6, 10,  6,  7,
184     10, 10, 10, 12,  5,  7, 11,  6,  7, 10,  9,  9, 11,  9, 10, 13,
185      8,  9, 12, 10, 11, 12,  8, 10, 15,  9, 11, 15, 13, 14, 16,  8,
186     10, 14,  9, 10, 14, 12, 12, 15, 11, 12, 16, 10, 11, 15, 12, 12,
187     15,
188 };
189
190 static const uint16_t codes4[81] = {
191     0x007, 0x016, 0x0f6, 0x018, 0x008, 0x0ef, 0x1ef, 0x0f3,
192     0x7f8, 0x019, 0x017, 0x0ed, 0x015, 0x001, 0x0e2, 0x0f0,
193     0x070, 0x3f0, 0x1ee, 0x0f1, 0x7fa, 0x0ee, 0x0e4, 0x3f2,
194     0x7f6, 0x3ef, 0x7fd, 0x005, 0x014, 0x0f2, 0x009, 0x004,
195     0x0e5, 0x0f4, 0x0e8, 0x3f4, 0x006, 0x002, 0x0e7, 0x003,
196     0x000, 0x06b, 0x0e3, 0x069, 0x1f3, 0x0eb, 0x0e6, 0x3f6,
197     0x06e, 0x06a, 0x1f4, 0x3ec, 0x1f0, 0x3f9, 0x0f5, 0x0ec,
198     0x7fb, 0x0ea, 0x06f, 0x3f7, 0x7f9, 0x3f3, 0xfff, 0x0e9,
199     0x06d, 0x3f8, 0x06c, 0x068, 0x1f5, 0x3ee, 0x1f2, 0x7f4,
200     0x7f7, 0x3f1, 0xffe, 0x3ed, 0x1f1, 0x7f5, 0x7fe, 0x3f5,
201     0x7fc,
202 };
203
204 static const uint8_t bits4[81] = {
205      4,  5,  8,  5,  4,  8,  9,  8, 11,  5,  5,  8,  5,  4,  8,  8,
206      7, 10,  9,  8, 11,  8,  8, 10, 11, 10, 11,  4,  5,  8,  4,  4,
207      8,  8,  8, 10,  4,  4,  8,  4,  4,  7,  8,  7,  9,  8,  8, 10,
208      7,  7,  9, 10,  9, 10,  8,  8, 11,  8,  7, 10, 11, 10, 12,  8,
209      7, 10,  7,  7,  9, 10,  9, 11, 11, 10, 12, 10,  9, 11, 11, 10,
210     11,
211 };
212
213 static const uint16_t codes5[81] = {
214     0x1fff, 0x0ff7, 0x07f4, 0x07e8, 0x03f1, 0x07ee, 0x07f9, 0x0ff8,
215     0x1ffd, 0x0ffd, 0x07f1, 0x03e8, 0x01e8, 0x00f0, 0x01ec, 0x03ee,
216     0x07f2, 0x0ffa, 0x0ff4, 0x03ef, 0x01f2, 0x00e8, 0x0070, 0x00ec,
217     0x01f0, 0x03ea, 0x07f3, 0x07eb, 0x01eb, 0x00ea, 0x001a, 0x0008,
218     0x0019, 0x00ee, 0x01ef, 0x07ed, 0x03f0, 0x00f2, 0x0073, 0x000b,
219     0x0000, 0x000a, 0x0071, 0x00f3, 0x07e9, 0x07ef, 0x01ee, 0x00ef,
220     0x0018, 0x0009, 0x001b, 0x00eb, 0x01e9, 0x07ec, 0x07f6, 0x03eb,
221     0x01f3, 0x00ed, 0x0072, 0x00e9, 0x01f1, 0x03ed, 0x07f7, 0x0ff6,
222     0x07f0, 0x03e9, 0x01ed, 0x00f1, 0x01ea, 0x03ec, 0x07f8, 0x0ff9,
223     0x1ffc, 0x0ffc, 0x0ff5, 0x07ea, 0x03f3, 0x03f2, 0x07f5, 0x0ffb,
224     0x1ffe,
225 };
226
227 static const uint8_t bits5[81] = {
228     13, 12, 11, 11, 10, 11, 11, 12, 13, 12, 11, 10,  9,  8,  9, 10,
229     11, 12, 12, 10,  9,  8,  7,  8,  9, 10, 11, 11,  9,  8,  5,  4,
230      5,  8,  9, 11, 10,  8,  7,  4,  1,  4,  7,  8, 11, 11,  9,  8,
231      5,  4,  5,  8,  9, 11, 11, 10,  9,  8,  7,  8,  9, 10, 11, 12,
232     11, 10,  9,  8,  9, 10, 11, 12, 13, 12, 12, 11, 10, 10, 11, 12,
233     13,
234 };
235
236 static const uint16_t codes6[81] = {
237     0x7fe, 0x3fd, 0x1f1, 0x1eb, 0x1f4, 0x1ea, 0x1f0, 0x3fc,
238     0x7fd, 0x3f6, 0x1e5, 0x0ea, 0x06c, 0x071, 0x068, 0x0f0,
239     0x1e6, 0x3f7, 0x1f3, 0x0ef, 0x032, 0x027, 0x028, 0x026,
240     0x031, 0x0eb, 0x1f7, 0x1e8, 0x06f, 0x02e, 0x008, 0x004,
241     0x006, 0x029, 0x06b, 0x1ee, 0x1ef, 0x072, 0x02d, 0x002,
242     0x000, 0x003, 0x02f, 0x073, 0x1fa, 0x1e7, 0x06e, 0x02b,
243     0x007, 0x001, 0x005, 0x02c, 0x06d, 0x1ec, 0x1f9, 0x0ee,
244     0x030, 0x024, 0x02a, 0x025, 0x033, 0x0ec, 0x1f2, 0x3f8,
245     0x1e4, 0x0ed, 0x06a, 0x070, 0x069, 0x074, 0x0f1, 0x3fa,
246     0x7ff, 0x3f9, 0x1f6, 0x1ed, 0x1f8, 0x1e9, 0x1f5, 0x3fb,
247     0x7fc,
248 };
249
250 static const uint8_t bits6[81] = {
251     11, 10,  9,  9,  9,  9,  9, 10, 11, 10,  9,  8,  7,  7,  7,  8,
252      9, 10,  9,  8,  6,  6,  6,  6,  6,  8,  9,  9,  7,  6,  4,  4,
253      4,  6,  7,  9,  9,  7,  6,  4,  4,  4,  6,  7,  9,  9,  7,  6,
254      4,  4,  4,  6,  7,  9,  9,  8,  6,  6,  6,  6,  6,  8,  9, 10,
255      9,  8,  7,  7,  7,  7,  8, 10, 11, 10,  9,  9,  9,  9,  9, 10,
256     11,
257 };
258
259 static const uint16_t codes7[64] = {
260     0x000, 0x005, 0x037, 0x074, 0x0f2, 0x1eb, 0x3ed, 0x7f7,
261     0x004, 0x00c, 0x035, 0x071, 0x0ec, 0x0ee, 0x1ee, 0x1f5,
262     0x036, 0x034, 0x072, 0x0ea, 0x0f1, 0x1e9, 0x1f3, 0x3f5,
263     0x073, 0x070, 0x0eb, 0x0f0, 0x1f1, 0x1f0, 0x3ec, 0x3fa,
264     0x0f3, 0x0ed, 0x1e8, 0x1ef, 0x3ef, 0x3f1, 0x3f9, 0x7fb,
265     0x1ed, 0x0ef, 0x1ea, 0x1f2, 0x3f3, 0x3f8, 0x7f9, 0x7fc,
266     0x3ee, 0x1ec, 0x1f4, 0x3f4, 0x3f7, 0x7f8, 0xffd, 0xffe,
267     0x7f6, 0x3f0, 0x3f2, 0x3f6, 0x7fa, 0x7fd, 0xffc, 0xfff,
268 };
269
270 static const uint8_t bits7[64] = {
271      1,  3,  6,  7,  8,  9, 10, 11,  3,  4,  6,  7,  8,  8,  9,  9,
272      6,  6,  7,  8,  8,  9,  9, 10,  7,  7,  8,  8,  9,  9, 10, 10,
273      8,  8,  9,  9, 10, 10, 10, 11,  9,  8,  9,  9, 10, 10, 11, 11,
274     10,  9,  9, 10, 10, 11, 12, 12, 11, 10, 10, 10, 11, 11, 12, 12,
275 };
276
277 static const uint16_t codes8[64] = {
278     0x00e, 0x005, 0x010, 0x030, 0x06f, 0x0f1, 0x1fa, 0x3fe,
279     0x003, 0x000, 0x004, 0x012, 0x02c, 0x06a, 0x075, 0x0f8,
280     0x00f, 0x002, 0x006, 0x014, 0x02e, 0x069, 0x072, 0x0f5,
281     0x02f, 0x011, 0x013, 0x02a, 0x032, 0x06c, 0x0ec, 0x0fa,
282     0x071, 0x02b, 0x02d, 0x031, 0x06d, 0x070, 0x0f2, 0x1f9,
283     0x0ef, 0x068, 0x033, 0x06b, 0x06e, 0x0ee, 0x0f9, 0x3fc,
284     0x1f8, 0x074, 0x073, 0x0ed, 0x0f0, 0x0f6, 0x1f6, 0x1fd,
285     0x3fd, 0x0f3, 0x0f4, 0x0f7, 0x1f7, 0x1fb, 0x1fc, 0x3ff,
286 };
287
288 static const uint8_t bits8[64] = {
289      5,  4,  5,  6,  7,  8,  9, 10,  4,  3,  4,  5,  6,  7,  7,  8,
290      5,  4,  4,  5,  6,  7,  7,  8,  6,  5,  5,  6,  6,  7,  8,  8,
291      7,  6,  6,  6,  7,  7,  8,  9,  8,  7,  6,  7,  7,  8,  8, 10,
292      9,  7,  7,  8,  8,  8,  9,  9, 10,  8,  8,  8,  9,  9,  9, 10,
293 };
294
295 static const uint16_t codes9[169] = {
296     0x0000, 0x0005, 0x0037, 0x00e7, 0x01de, 0x03ce, 0x03d9, 0x07c8,
297     0x07cd, 0x0fc8, 0x0fdd, 0x1fe4, 0x1fec, 0x0004, 0x000c, 0x0035,
298     0x0072, 0x00ea, 0x00ed, 0x01e2, 0x03d1, 0x03d3, 0x03e0, 0x07d8,
299     0x0fcf, 0x0fd5, 0x0036, 0x0034, 0x0071, 0x00e8, 0x00ec, 0x01e1,
300     0x03cf, 0x03dd, 0x03db, 0x07d0, 0x0fc7, 0x0fd4, 0x0fe4, 0x00e6,
301     0x0070, 0x00e9, 0x01dd, 0x01e3, 0x03d2, 0x03dc, 0x07cc, 0x07ca,
302     0x07de, 0x0fd8, 0x0fea, 0x1fdb, 0x01df, 0x00eb, 0x01dc, 0x01e6,
303     0x03d5, 0x03de, 0x07cb, 0x07dd, 0x07dc, 0x0fcd, 0x0fe2, 0x0fe7,
304     0x1fe1, 0x03d0, 0x01e0, 0x01e4, 0x03d6, 0x07c5, 0x07d1, 0x07db,
305     0x0fd2, 0x07e0, 0x0fd9, 0x0feb, 0x1fe3, 0x1fe9, 0x07c4, 0x01e5,
306     0x03d7, 0x07c6, 0x07cf, 0x07da, 0x0fcb, 0x0fda, 0x0fe3, 0x0fe9,
307     0x1fe6, 0x1ff3, 0x1ff7, 0x07d3, 0x03d8, 0x03e1, 0x07d4, 0x07d9,
308     0x0fd3, 0x0fde, 0x1fdd, 0x1fd9, 0x1fe2, 0x1fea, 0x1ff1, 0x1ff6,
309     0x07d2, 0x03d4, 0x03da, 0x07c7, 0x07d7, 0x07e2, 0x0fce, 0x0fdb,
310     0x1fd8, 0x1fee, 0x3ff0, 0x1ff4, 0x3ff2, 0x07e1, 0x03df, 0x07c9,
311     0x07d6, 0x0fca, 0x0fd0, 0x0fe5, 0x0fe6, 0x1feb, 0x1fef, 0x3ff3,
312     0x3ff4, 0x3ff5, 0x0fe0, 0x07ce, 0x07d5, 0x0fc6, 0x0fd1, 0x0fe1,
313     0x1fe0, 0x1fe8, 0x1ff0, 0x3ff1, 0x3ff8, 0x3ff6, 0x7ffc, 0x0fe8,
314     0x07df, 0x0fc9, 0x0fd7, 0x0fdc, 0x1fdc, 0x1fdf, 0x1fed, 0x1ff5,
315     0x3ff9, 0x3ffb, 0x7ffd, 0x7ffe, 0x1fe7, 0x0fcc, 0x0fd6, 0x0fdf,
316     0x1fde, 0x1fda, 0x1fe5, 0x1ff2, 0x3ffa, 0x3ff7, 0x3ffc, 0x3ffd,
317     0x7fff,
318 };
319
320 static const uint8_t bits9[169] = {
321      1,  3,  6,  8,  9, 10, 10, 11, 11, 12, 12, 13, 13,  3,  4,  6,
322      7,  8,  8,  9, 10, 10, 10, 11, 12, 12,  6,  6,  7,  8,  8,  9,
323     10, 10, 10, 11, 12, 12, 12,  8,  7,  8,  9,  9, 10, 10, 11, 11,
324     11, 12, 12, 13,  9,  8,  9,  9, 10, 10, 11, 11, 11, 12, 12, 12,
325     13, 10,  9,  9, 10, 11, 11, 11, 12, 11, 12, 12, 13, 13, 11,  9,
326     10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 11, 10, 10, 11, 11,
327     12, 12, 13, 13, 13, 13, 13, 13, 11, 10, 10, 11, 11, 11, 12, 12,
328     13, 13, 14, 13, 14, 11, 10, 11, 11, 12, 12, 12, 12, 13, 13, 14,
329     14, 14, 12, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 12,
330     11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15, 13, 12, 12, 12,
331     13, 13, 13, 13, 14, 14, 14, 14, 15,
332 };
333
334 static const uint16_t codes10[169] = {
335     0x022, 0x008, 0x01d, 0x026, 0x05f, 0x0d3, 0x1cf, 0x3d0,
336     0x3d7, 0x3ed, 0x7f0, 0x7f6, 0xffd, 0x007, 0x000, 0x001,
337     0x009, 0x020, 0x054, 0x060, 0x0d5, 0x0dc, 0x1d4, 0x3cd,
338     0x3de, 0x7e7, 0x01c, 0x002, 0x006, 0x00c, 0x01e, 0x028,
339     0x05b, 0x0cd, 0x0d9, 0x1ce, 0x1dc, 0x3d9, 0x3f1, 0x025,
340     0x00b, 0x00a, 0x00d, 0x024, 0x057, 0x061, 0x0cc, 0x0dd,
341     0x1cc, 0x1de, 0x3d3, 0x3e7, 0x05d, 0x021, 0x01f, 0x023,
342     0x027, 0x059, 0x064, 0x0d8, 0x0df, 0x1d2, 0x1e2, 0x3dd,
343     0x3ee, 0x0d1, 0x055, 0x029, 0x056, 0x058, 0x062, 0x0ce,
344     0x0e0, 0x0e2, 0x1da, 0x3d4, 0x3e3, 0x7eb, 0x1c9, 0x05e,
345     0x05a, 0x05c, 0x063, 0x0ca, 0x0da, 0x1c7, 0x1ca, 0x1e0,
346     0x3db, 0x3e8, 0x7ec, 0x1e3, 0x0d2, 0x0cb, 0x0d0, 0x0d7,
347     0x0db, 0x1c6, 0x1d5, 0x1d8, 0x3ca, 0x3da, 0x7ea, 0x7f1,
348     0x1e1, 0x0d4, 0x0cf, 0x0d6, 0x0de, 0x0e1, 0x1d0, 0x1d6,
349     0x3d1, 0x3d5, 0x3f2, 0x7ee, 0x7fb, 0x3e9, 0x1cd, 0x1c8,
350     0x1cb, 0x1d1, 0x1d7, 0x1df, 0x3cf, 0x3e0, 0x3ef, 0x7e6,
351     0x7f8, 0xffa, 0x3eb, 0x1dd, 0x1d3, 0x1d9, 0x1db, 0x3d2,
352     0x3cc, 0x3dc, 0x3ea, 0x7ed, 0x7f3, 0x7f9, 0xff9, 0x7f2,
353     0x3ce, 0x1e4, 0x3cb, 0x3d8, 0x3d6, 0x3e2, 0x3e5, 0x7e8,
354     0x7f4, 0x7f5, 0x7f7, 0xffb, 0x7fa, 0x3ec, 0x3df, 0x3e1,
355     0x3e4, 0x3e6, 0x3f0, 0x7e9, 0x7ef, 0xff8, 0xffe, 0xffc,
356     0xfff,
357 };
358
359 static const uint8_t bits10[169] = {
360      6,  5,  6,  6,  7,  8,  9, 10, 10, 10, 11, 11, 12,  5,  4,  4,
361      5,  6,  7,  7,  8,  8,  9, 10, 10, 11,  6,  4,  5,  5,  6,  6,
362      7,  8,  8,  9,  9, 10, 10,  6,  5,  5,  5,  6,  7,  7,  8,  8,
363      9,  9, 10, 10,  7,  6,  6,  6,  6,  7,  7,  8,  8,  9,  9, 10,
364     10,  8,  7,  6,  7,  7,  7,  8,  8,  8,  9, 10, 10, 11,  9,  7,
365      7,  7,  7,  8,  8,  9,  9,  9, 10, 10, 11,  9,  8,  8,  8,  8,
366      8,  9,  9,  9, 10, 10, 11, 11,  9,  8,  8,  8,  8,  8,  9,  9,
367     10, 10, 10, 11, 11, 10,  9,  9,  9,  9,  9,  9, 10, 10, 10, 11,
368     11, 12, 10,  9,  9,  9,  9, 10, 10, 10, 10, 11, 11, 11, 12, 11,
369     10,  9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 11, 10, 10, 10,
370     10, 10, 10, 11, 11, 12, 12, 12, 12,
371 };
372
373 static const uint16_t codes11[289] = {
374     0x000, 0x006, 0x019, 0x03d, 0x09c, 0x0c6, 0x1a7, 0x390,
375     0x3c2, 0x3df, 0x7e6, 0x7f3, 0xffb, 0x7ec, 0xffa, 0xffe,
376     0x38e, 0x005, 0x001, 0x008, 0x014, 0x037, 0x042, 0x092,
377     0x0af, 0x191, 0x1a5, 0x1b5, 0x39e, 0x3c0, 0x3a2, 0x3cd,
378     0x7d6, 0x0ae, 0x017, 0x007, 0x009, 0x018, 0x039, 0x040,
379     0x08e, 0x0a3, 0x0b8, 0x199, 0x1ac, 0x1c1, 0x3b1, 0x396,
380     0x3be, 0x3ca, 0x09d, 0x03c, 0x015, 0x016, 0x01a, 0x03b,
381     0x044, 0x091, 0x0a5, 0x0be, 0x196, 0x1ae, 0x1b9, 0x3a1,
382     0x391, 0x3a5, 0x3d5, 0x094, 0x09a, 0x036, 0x038, 0x03a,
383     0x041, 0x08c, 0x09b, 0x0b0, 0x0c3, 0x19e, 0x1ab, 0x1bc,
384     0x39f, 0x38f, 0x3a9, 0x3cf, 0x093, 0x0bf, 0x03e, 0x03f,
385     0x043, 0x045, 0x09e, 0x0a7, 0x0b9, 0x194, 0x1a2, 0x1ba,
386     0x1c3, 0x3a6, 0x3a7, 0x3bb, 0x3d4, 0x09f, 0x1a0, 0x08f,
387     0x08d, 0x090, 0x098, 0x0a6, 0x0b6, 0x0c4, 0x19f, 0x1af,
388     0x1bf, 0x399, 0x3bf, 0x3b4, 0x3c9, 0x3e7, 0x0a8, 0x1b6,
389     0x0ab, 0x0a4, 0x0aa, 0x0b2, 0x0c2, 0x0c5, 0x198, 0x1a4,
390     0x1b8, 0x38c, 0x3a4, 0x3c4, 0x3c6, 0x3dd, 0x3e8, 0x0ad,
391     0x3af, 0x192, 0x0bd, 0x0bc, 0x18e, 0x197, 0x19a, 0x1a3,
392     0x1b1, 0x38d, 0x398, 0x3b7, 0x3d3, 0x3d1, 0x3db, 0x7dd,
393     0x0b4, 0x3de, 0x1a9, 0x19b, 0x19c, 0x1a1, 0x1aa, 0x1ad,
394     0x1b3, 0x38b, 0x3b2, 0x3b8, 0x3ce, 0x3e1, 0x3e0, 0x7d2,
395     0x7e5, 0x0b7, 0x7e3, 0x1bb, 0x1a8, 0x1a6, 0x1b0, 0x1b2,
396     0x1b7, 0x39b, 0x39a, 0x3ba, 0x3b5, 0x3d6, 0x7d7, 0x3e4,
397     0x7d8, 0x7ea, 0x0ba, 0x7e8, 0x3a0, 0x1bd, 0x1b4, 0x38a,
398     0x1c4, 0x392, 0x3aa, 0x3b0, 0x3bc, 0x3d7, 0x7d4, 0x7dc,
399     0x7db, 0x7d5, 0x7f0, 0x0c1, 0x7fb, 0x3c8, 0x3a3, 0x395,
400     0x39d, 0x3ac, 0x3ae, 0x3c5, 0x3d8, 0x3e2, 0x3e6, 0x7e4,
401     0x7e7, 0x7e0, 0x7e9, 0x7f7, 0x190, 0x7f2, 0x393, 0x1be,
402     0x1c0, 0x394, 0x397, 0x3ad, 0x3c3, 0x3c1, 0x3d2, 0x7da,
403     0x7d9, 0x7df, 0x7eb, 0x7f4, 0x7fa, 0x195, 0x7f8, 0x3bd,
404     0x39c, 0x3ab, 0x3a8, 0x3b3, 0x3b9, 0x3d0, 0x3e3, 0x3e5,
405     0x7e2, 0x7de, 0x7ed, 0x7f1, 0x7f9, 0x7fc, 0x193, 0xffd,
406     0x3dc, 0x3b6, 0x3c7, 0x3cc, 0x3cb, 0x3d9, 0x3da, 0x7d3,
407     0x7e1, 0x7ee, 0x7ef, 0x7f5, 0x7f6, 0xffc, 0xfff, 0x19d,
408     0x1c2, 0x0b5, 0x0a1, 0x096, 0x097, 0x095, 0x099, 0x0a0,
409     0x0a2, 0x0ac, 0x0a9, 0x0b1, 0x0b3, 0x0bb, 0x0c0, 0x18f,
410     0x004,
411 };
412
413 static const uint8_t bits11[289] = {
414      4,  5,  6,  7,  8,  8,  9, 10, 10, 10, 11, 11, 12, 11, 12, 12,
415     10,  5,  4,  5,  6,  7,  7,  8,  8,  9,  9,  9, 10, 10, 10, 10,
416     11,  8,  6,  5,  5,  6,  7,  7,  8,  8,  8,  9,  9,  9, 10, 10,
417     10, 10,  8,  7,  6,  6,  6,  7,  7,  8,  8,  8,  9,  9,  9, 10,
418     10, 10, 10,  8,  8,  7,  7,  7,  7,  8,  8,  8,  8,  9,  9,  9,
419     10, 10, 10, 10,  8,  8,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9,
420      9, 10, 10, 10, 10,  8,  9,  8,  8,  8,  8,  8,  8,  8,  9,  9,
421      9, 10, 10, 10, 10, 10,  8,  9,  8,  8,  8,  8,  8,  8,  9,  9,
422      9, 10, 10, 10, 10, 10, 10,  8, 10,  9,  8,  8,  9,  9,  9,  9,
423      9, 10, 10, 10, 10, 10, 10, 11,  8, 10,  9,  9,  9,  9,  9,  9,
424      9, 10, 10, 10, 10, 10, 10, 11, 11,  8, 11,  9,  9,  9,  9,  9,
425      9, 10, 10, 10, 10, 10, 11, 10, 11, 11,  8, 11, 10,  9,  9, 10,
426      9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,  8, 11, 10, 10, 10,
427     10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,  9, 11, 10,  9,
428      9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11,  9, 11, 10,
429     10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11,  9, 12,
430     10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12,  9,
431      9,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  9,
432      5,
433 };
434
435 const uint16_t * const ff_aac_spectral_codes[11] = {
436     codes1,  codes2,  codes3, codes4, codes5, codes6, codes7, codes8,
437     codes9, codes10, codes11,
438 };
439
440 const uint8_t * const ff_aac_spectral_bits[11] = {
441     bits1,  bits2,  bits3, bits4, bits5, bits6, bits7, bits8,
442     bits9, bits10, bits11,
443 };
444
445 const uint16_t ff_aac_spectral_sizes[11] = {
446     81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
447 };
448
449 /* NOTE:
450  * 64.0f is a special value indicating the existence of an escape code in the
451  * bitstream.
452  */
453 static const DECLARE_ALIGNED(16, float, codebook_vector0)[324] = {
454  -1.0000000, -1.0000000, -1.0000000, -1.0000000,
455  -1.0000000, -1.0000000, -1.0000000,  0.0000000,
456  -1.0000000, -1.0000000, -1.0000000,  1.0000000,
457  -1.0000000, -1.0000000,  0.0000000, -1.0000000,
458  -1.0000000, -1.0000000,  0.0000000,  0.0000000,
459  -1.0000000, -1.0000000,  0.0000000,  1.0000000,
460  -1.0000000, -1.0000000,  1.0000000, -1.0000000,
461  -1.0000000, -1.0000000,  1.0000000,  0.0000000,
462  -1.0000000, -1.0000000,  1.0000000,  1.0000000,
463  -1.0000000,  0.0000000, -1.0000000, -1.0000000,
464  -1.0000000,  0.0000000, -1.0000000,  0.0000000,
465  -1.0000000,  0.0000000, -1.0000000,  1.0000000,
466  -1.0000000,  0.0000000,  0.0000000, -1.0000000,
467  -1.0000000,  0.0000000,  0.0000000,  0.0000000,
468  -1.0000000,  0.0000000,  0.0000000,  1.0000000,
469  -1.0000000,  0.0000000,  1.0000000, -1.0000000,
470  -1.0000000,  0.0000000,  1.0000000,  0.0000000,
471  -1.0000000,  0.0000000,  1.0000000,  1.0000000,
472  -1.0000000,  1.0000000, -1.0000000, -1.0000000,
473  -1.0000000,  1.0000000, -1.0000000,  0.0000000,
474  -1.0000000,  1.0000000, -1.0000000,  1.0000000,
475  -1.0000000,  1.0000000,  0.0000000, -1.0000000,
476  -1.0000000,  1.0000000,  0.0000000,  0.0000000,
477  -1.0000000,  1.0000000,  0.0000000,  1.0000000,
478  -1.0000000,  1.0000000,  1.0000000, -1.0000000,
479  -1.0000000,  1.0000000,  1.0000000,  0.0000000,
480  -1.0000000,  1.0000000,  1.0000000,  1.0000000,
481   0.0000000, -1.0000000, -1.0000000, -1.0000000,
482   0.0000000, -1.0000000, -1.0000000,  0.0000000,
483   0.0000000, -1.0000000, -1.0000000,  1.0000000,
484   0.0000000, -1.0000000,  0.0000000, -1.0000000,
485   0.0000000, -1.0000000,  0.0000000,  0.0000000,
486   0.0000000, -1.0000000,  0.0000000,  1.0000000,
487   0.0000000, -1.0000000,  1.0000000, -1.0000000,
488   0.0000000, -1.0000000,  1.0000000,  0.0000000,
489   0.0000000, -1.0000000,  1.0000000,  1.0000000,
490   0.0000000,  0.0000000, -1.0000000, -1.0000000,
491   0.0000000,  0.0000000, -1.0000000,  0.0000000,
492   0.0000000,  0.0000000, -1.0000000,  1.0000000,
493   0.0000000,  0.0000000,  0.0000000, -1.0000000,
494   0.0000000,  0.0000000,  0.0000000,  0.0000000,
495   0.0000000,  0.0000000,  0.0000000,  1.0000000,
496   0.0000000,  0.0000000,  1.0000000, -1.0000000,
497   0.0000000,  0.0000000,  1.0000000,  0.0000000,
498   0.0000000,  0.0000000,  1.0000000,  1.0000000,
499   0.0000000,  1.0000000, -1.0000000, -1.0000000,
500   0.0000000,  1.0000000, -1.0000000,  0.0000000,
501   0.0000000,  1.0000000, -1.0000000,  1.0000000,
502   0.0000000,  1.0000000,  0.0000000, -1.0000000,
503   0.0000000,  1.0000000,  0.0000000,  0.0000000,
504   0.0000000,  1.0000000,  0.0000000,  1.0000000,
505   0.0000000,  1.0000000,  1.0000000, -1.0000000,
506   0.0000000,  1.0000000,  1.0000000,  0.0000000,
507   0.0000000,  1.0000000,  1.0000000,  1.0000000,
508   1.0000000, -1.0000000, -1.0000000, -1.0000000,
509   1.0000000, -1.0000000, -1.0000000,  0.0000000,
510   1.0000000, -1.0000000, -1.0000000,  1.0000000,
511   1.0000000, -1.0000000,  0.0000000, -1.0000000,
512   1.0000000, -1.0000000,  0.0000000,  0.0000000,
513   1.0000000, -1.0000000,  0.0000000,  1.0000000,
514   1.0000000, -1.0000000,  1.0000000, -1.0000000,
515   1.0000000, -1.0000000,  1.0000000,  0.0000000,
516   1.0000000, -1.0000000,  1.0000000,  1.0000000,
517   1.0000000,  0.0000000, -1.0000000, -1.0000000,
518   1.0000000,  0.0000000, -1.0000000,  0.0000000,
519   1.0000000,  0.0000000, -1.0000000,  1.0000000,
520   1.0000000,  0.0000000,  0.0000000, -1.0000000,
521   1.0000000,  0.0000000,  0.0000000,  0.0000000,
522   1.0000000,  0.0000000,  0.0000000,  1.0000000,
523   1.0000000,  0.0000000,  1.0000000, -1.0000000,
524   1.0000000,  0.0000000,  1.0000000,  0.0000000,
525   1.0000000,  0.0000000,  1.0000000,  1.0000000,
526   1.0000000,  1.0000000, -1.0000000, -1.0000000,
527   1.0000000,  1.0000000, -1.0000000,  0.0000000,
528   1.0000000,  1.0000000, -1.0000000,  1.0000000,
529   1.0000000,  1.0000000,  0.0000000, -1.0000000,
530   1.0000000,  1.0000000,  0.0000000,  0.0000000,
531   1.0000000,  1.0000000,  0.0000000,  1.0000000,
532   1.0000000,  1.0000000,  1.0000000, -1.0000000,
533   1.0000000,  1.0000000,  1.0000000,  0.0000000,
534   1.0000000,  1.0000000,  1.0000000,  1.0000000,
535 };
536
537 static const DECLARE_ALIGNED(16, float, codebook_vector2)[324] = {
538   0.0000000,  0.0000000,  0.0000000,  0.0000000,
539   0.0000000,  0.0000000,  0.0000000,  1.0000000,
540   0.0000000,  0.0000000,  0.0000000,  2.5198421,
541   0.0000000,  0.0000000,  1.0000000,  0.0000000,
542   0.0000000,  0.0000000,  1.0000000,  1.0000000,
543   0.0000000,  0.0000000,  1.0000000,  2.5198421,
544   0.0000000,  0.0000000,  2.5198421,  0.0000000,
545   0.0000000,  0.0000000,  2.5198421,  1.0000000,
546   0.0000000,  0.0000000,  2.5198421,  2.5198421,
547   0.0000000,  1.0000000,  0.0000000,  0.0000000,
548   0.0000000,  1.0000000,  0.0000000,  1.0000000,
549   0.0000000,  1.0000000,  0.0000000,  2.5198421,
550   0.0000000,  1.0000000,  1.0000000,  0.0000000,
551   0.0000000,  1.0000000,  1.0000000,  1.0000000,
552   0.0000000,  1.0000000,  1.0000000,  2.5198421,
553   0.0000000,  1.0000000,  2.5198421,  0.0000000,
554   0.0000000,  1.0000000,  2.5198421,  1.0000000,
555   0.0000000,  1.0000000,  2.5198421,  2.5198421,
556   0.0000000,  2.5198421,  0.0000000,  0.0000000,
557   0.0000000,  2.5198421,  0.0000000,  1.0000000,
558   0.0000000,  2.5198421,  0.0000000,  2.5198421,
559   0.0000000,  2.5198421,  1.0000000,  0.0000000,
560   0.0000000,  2.5198421,  1.0000000,  1.0000000,
561   0.0000000,  2.5198421,  1.0000000,  2.5198421,
562   0.0000000,  2.5198421,  2.5198421,  0.0000000,
563   0.0000000,  2.5198421,  2.5198421,  1.0000000,
564   0.0000000,  2.5198421,  2.5198421,  2.5198421,
565   1.0000000,  0.0000000,  0.0000000,  0.0000000,
566   1.0000000,  0.0000000,  0.0000000,  1.0000000,
567   1.0000000,  0.0000000,  0.0000000,  2.5198421,
568   1.0000000,  0.0000000,  1.0000000,  0.0000000,
569   1.0000000,  0.0000000,  1.0000000,  1.0000000,
570   1.0000000,  0.0000000,  1.0000000,  2.5198421,
571   1.0000000,  0.0000000,  2.5198421,  0.0000000,
572   1.0000000,  0.0000000,  2.5198421,  1.0000000,
573   1.0000000,  0.0000000,  2.5198421,  2.5198421,
574   1.0000000,  1.0000000,  0.0000000,  0.0000000,
575   1.0000000,  1.0000000,  0.0000000,  1.0000000,
576   1.0000000,  1.0000000,  0.0000000,  2.5198421,
577   1.0000000,  1.0000000,  1.0000000,  0.0000000,
578   1.0000000,  1.0000000,  1.0000000,  1.0000000,
579   1.0000000,  1.0000000,  1.0000000,  2.5198421,
580   1.0000000,  1.0000000,  2.5198421,  0.0000000,
581   1.0000000,  1.0000000,  2.5198421,  1.0000000,
582   1.0000000,  1.0000000,  2.5198421,  2.5198421,
583   1.0000000,  2.5198421,  0.0000000,  0.0000000,
584   1.0000000,  2.5198421,  0.0000000,  1.0000000,
585   1.0000000,  2.5198421,  0.0000000,  2.5198421,
586   1.0000000,  2.5198421,  1.0000000,  0.0000000,
587   1.0000000,  2.5198421,  1.0000000,  1.0000000,
588   1.0000000,  2.5198421,  1.0000000,  2.5198421,
589   1.0000000,  2.5198421,  2.5198421,  0.0000000,
590   1.0000000,  2.5198421,  2.5198421,  1.0000000,
591   1.0000000,  2.5198421,  2.5198421,  2.5198421,
592   2.5198421,  0.0000000,  0.0000000,  0.0000000,
593   2.5198421,  0.0000000,  0.0000000,  1.0000000,
594   2.5198421,  0.0000000,  0.0000000,  2.5198421,
595   2.5198421,  0.0000000,  1.0000000,  0.0000000,
596   2.5198421,  0.0000000,  1.0000000,  1.0000000,
597   2.5198421,  0.0000000,  1.0000000,  2.5198421,
598   2.5198421,  0.0000000,  2.5198421,  0.0000000,
599   2.5198421,  0.0000000,  2.5198421,  1.0000000,
600   2.5198421,  0.0000000,  2.5198421,  2.5198421,
601   2.5198421,  1.0000000,  0.0000000,  0.0000000,
602   2.5198421,  1.0000000,  0.0000000,  1.0000000,
603   2.5198421,  1.0000000,  0.0000000,  2.5198421,
604   2.5198421,  1.0000000,  1.0000000,  0.0000000,
605   2.5198421,  1.0000000,  1.0000000,  1.0000000,
606   2.5198421,  1.0000000,  1.0000000,  2.5198421,
607   2.5198421,  1.0000000,  2.5198421,  0.0000000,
608   2.5198421,  1.0000000,  2.5198421,  1.0000000,
609   2.5198421,  1.0000000,  2.5198421,  2.5198421,
610   2.5198421,  2.5198421,  0.0000000,  0.0000000,
611   2.5198421,  2.5198421,  0.0000000,  1.0000000,
612   2.5198421,  2.5198421,  0.0000000,  2.5198421,
613   2.5198421,  2.5198421,  1.0000000,  0.0000000,
614   2.5198421,  2.5198421,  1.0000000,  1.0000000,
615   2.5198421,  2.5198421,  1.0000000,  2.5198421,
616   2.5198421,  2.5198421,  2.5198421,  0.0000000,
617   2.5198421,  2.5198421,  2.5198421,  1.0000000,
618   2.5198421,  2.5198421,  2.5198421,  2.5198421,
619 };
620
621 static const DECLARE_ALIGNED(16, float, codebook_vector4)[162] = {
622  -6.3496042, -6.3496042, -6.3496042, -4.3267487,
623  -6.3496042, -2.5198421, -6.3496042, -1.0000000,
624  -6.3496042,  0.0000000, -6.3496042,  1.0000000,
625  -6.3496042,  2.5198421, -6.3496042,  4.3267487,
626  -6.3496042,  6.3496042, -4.3267487, -6.3496042,
627  -4.3267487, -4.3267487, -4.3267487, -2.5198421,
628  -4.3267487, -1.0000000, -4.3267487,  0.0000000,
629  -4.3267487,  1.0000000, -4.3267487,  2.5198421,
630  -4.3267487,  4.3267487, -4.3267487,  6.3496042,
631  -2.5198421, -6.3496042, -2.5198421, -4.3267487,
632  -2.5198421, -2.5198421, -2.5198421, -1.0000000,
633  -2.5198421,  0.0000000, -2.5198421,  1.0000000,
634  -2.5198421,  2.5198421, -2.5198421,  4.3267487,
635  -2.5198421,  6.3496042, -1.0000000, -6.3496042,
636  -1.0000000, -4.3267487, -1.0000000, -2.5198421,
637  -1.0000000, -1.0000000, -1.0000000,  0.0000000,
638  -1.0000000,  1.0000000, -1.0000000,  2.5198421,
639  -1.0000000,  4.3267487, -1.0000000,  6.3496042,
640   0.0000000, -6.3496042,  0.0000000, -4.3267487,
641   0.0000000, -2.5198421,  0.0000000, -1.0000000,
642   0.0000000,  0.0000000,  0.0000000,  1.0000000,
643   0.0000000,  2.5198421,  0.0000000,  4.3267487,
644   0.0000000,  6.3496042,  1.0000000, -6.3496042,
645   1.0000000, -4.3267487,  1.0000000, -2.5198421,
646   1.0000000, -1.0000000,  1.0000000,  0.0000000,
647   1.0000000,  1.0000000,  1.0000000,  2.5198421,
648   1.0000000,  4.3267487,  1.0000000,  6.3496042,
649   2.5198421, -6.3496042,  2.5198421, -4.3267487,
650   2.5198421, -2.5198421,  2.5198421, -1.0000000,
651   2.5198421,  0.0000000,  2.5198421,  1.0000000,
652   2.5198421,  2.5198421,  2.5198421,  4.3267487,
653   2.5198421,  6.3496042,  4.3267487, -6.3496042,
654   4.3267487, -4.3267487,  4.3267487, -2.5198421,
655   4.3267487, -1.0000000,  4.3267487,  0.0000000,
656   4.3267487,  1.0000000,  4.3267487,  2.5198421,
657   4.3267487,  4.3267487,  4.3267487,  6.3496042,
658   6.3496042, -6.3496042,  6.3496042, -4.3267487,
659   6.3496042, -2.5198421,  6.3496042, -1.0000000,
660   6.3496042,  0.0000000,  6.3496042,  1.0000000,
661   6.3496042,  2.5198421,  6.3496042,  4.3267487,
662   6.3496042,  6.3496042,
663 };
664
665 static const DECLARE_ALIGNED(16, float, codebook_vector6)[128] = {
666   0.0000000,  0.0000000,  0.0000000,  1.0000000,
667   0.0000000,  2.5198421,  0.0000000,  4.3267487,
668   0.0000000,  6.3496042,  0.0000000,  8.5498797,
669   0.0000000, 10.9027236,  0.0000000, 13.3905183,
670   1.0000000,  0.0000000,  1.0000000,  1.0000000,
671   1.0000000,  2.5198421,  1.0000000,  4.3267487,
672   1.0000000,  6.3496042,  1.0000000,  8.5498797,
673   1.0000000, 10.9027236,  1.0000000, 13.3905183,
674   2.5198421,  0.0000000,  2.5198421,  1.0000000,
675   2.5198421,  2.5198421,  2.5198421,  4.3267487,
676   2.5198421,  6.3496042,  2.5198421,  8.5498797,
677   2.5198421, 10.9027236,  2.5198421, 13.3905183,
678   4.3267487,  0.0000000,  4.3267487,  1.0000000,
679   4.3267487,  2.5198421,  4.3267487,  4.3267487,
680   4.3267487,  6.3496042,  4.3267487,  8.5498797,
681   4.3267487, 10.9027236,  4.3267487, 13.3905183,
682   6.3496042,  0.0000000,  6.3496042,  1.0000000,
683   6.3496042,  2.5198421,  6.3496042,  4.3267487,
684   6.3496042,  6.3496042,  6.3496042,  8.5498797,
685   6.3496042, 10.9027236,  6.3496042, 13.3905183,
686   8.5498797,  0.0000000,  8.5498797,  1.0000000,
687   8.5498797,  2.5198421,  8.5498797,  4.3267487,
688   8.5498797,  6.3496042,  8.5498797,  8.5498797,
689   8.5498797, 10.9027236,  8.5498797, 13.3905183,
690  10.9027236,  0.0000000, 10.9027236,  1.0000000,
691  10.9027236,  2.5198421, 10.9027236,  4.3267487,
692  10.9027236,  6.3496042, 10.9027236,  8.5498797,
693  10.9027236, 10.9027236, 10.9027236, 13.3905183,
694  13.3905183,  0.0000000, 13.3905183,  1.0000000,
695  13.3905183,  2.5198421, 13.3905183,  4.3267487,
696  13.3905183,  6.3496042, 13.3905183,  8.5498797,
697  13.3905183, 10.9027236, 13.3905183, 13.3905183,
698 };
699
700 static const DECLARE_ALIGNED(16, float, codebook_vector8)[338] = {
701   0.0000000,  0.0000000,  0.0000000,  1.0000000,
702   0.0000000,  2.5198421,  0.0000000,  4.3267487,
703   0.0000000,  6.3496042,  0.0000000,  8.5498797,
704   0.0000000, 10.9027236,  0.0000000, 13.3905183,
705   0.0000000, 16.0000000,  0.0000000, 18.7207544,
706   0.0000000, 21.5443469,  0.0000000, 24.4637810,
707   0.0000000, 27.4731418,  1.0000000,  0.0000000,
708   1.0000000,  1.0000000,  1.0000000,  2.5198421,
709   1.0000000,  4.3267487,  1.0000000,  6.3496042,
710   1.0000000,  8.5498797,  1.0000000, 10.9027236,
711   1.0000000, 13.3905183,  1.0000000, 16.0000000,
712   1.0000000, 18.7207544,  1.0000000, 21.5443469,
713   1.0000000, 24.4637810,  1.0000000, 27.4731418,
714   2.5198421,  0.0000000,  2.5198421,  1.0000000,
715   2.5198421,  2.5198421,  2.5198421,  4.3267487,
716   2.5198421,  6.3496042,  2.5198421,  8.5498797,
717   2.5198421, 10.9027236,  2.5198421, 13.3905183,
718   2.5198421, 16.0000000,  2.5198421, 18.7207544,
719   2.5198421, 21.5443469,  2.5198421, 24.4637810,
720   2.5198421, 27.4731418,  4.3267487,  0.0000000,
721   4.3267487,  1.0000000,  4.3267487,  2.5198421,
722   4.3267487,  4.3267487,  4.3267487,  6.3496042,
723   4.3267487,  8.5498797,  4.3267487, 10.9027236,
724   4.3267487, 13.3905183,  4.3267487, 16.0000000,
725   4.3267487, 18.7207544,  4.3267487, 21.5443469,
726   4.3267487, 24.4637810,  4.3267487, 27.4731418,
727   6.3496042,  0.0000000,  6.3496042,  1.0000000,
728   6.3496042,  2.5198421,  6.3496042,  4.3267487,
729   6.3496042,  6.3496042,  6.3496042,  8.5498797,
730   6.3496042, 10.9027236,  6.3496042, 13.3905183,
731   6.3496042, 16.0000000,  6.3496042, 18.7207544,
732   6.3496042, 21.5443469,  6.3496042, 24.4637810,
733   6.3496042, 27.4731418,  8.5498797,  0.0000000,
734   8.5498797,  1.0000000,  8.5498797,  2.5198421,
735   8.5498797,  4.3267487,  8.5498797,  6.3496042,
736   8.5498797,  8.5498797,  8.5498797, 10.9027236,
737   8.5498797, 13.3905183,  8.5498797, 16.0000000,
738   8.5498797, 18.7207544,  8.5498797, 21.5443469,
739   8.5498797, 24.4637810,  8.5498797, 27.4731418,
740  10.9027236,  0.0000000, 10.9027236,  1.0000000,
741  10.9027236,  2.5198421, 10.9027236,  4.3267487,
742  10.9027236,  6.3496042, 10.9027236,  8.5498797,
743  10.9027236, 10.9027236, 10.9027236, 13.3905183,
744  10.9027236, 16.0000000, 10.9027236, 18.7207544,
745  10.9027236, 21.5443469, 10.9027236, 24.4637810,
746  10.9027236, 27.4731418, 13.3905183,  0.0000000,
747  13.3905183,  1.0000000, 13.3905183,  2.5198421,
748  13.3905183,  4.3267487, 13.3905183,  6.3496042,
749  13.3905183,  8.5498797, 13.3905183, 10.9027236,
750  13.3905183, 13.3905183, 13.3905183, 16.0000000,
751  13.3905183, 18.7207544, 13.3905183, 21.5443469,
752  13.3905183, 24.4637810, 13.3905183, 27.4731418,
753  16.0000000,  0.0000000, 16.0000000,  1.0000000,
754  16.0000000,  2.5198421, 16.0000000,  4.3267487,
755  16.0000000,  6.3496042, 16.0000000,  8.5498797,
756  16.0000000, 10.9027236, 16.0000000, 13.3905183,
757  16.0000000, 16.0000000, 16.0000000, 18.7207544,
758  16.0000000, 21.5443469, 16.0000000, 24.4637810,
759  16.0000000, 27.4731418, 18.7207544,  0.0000000,
760  18.7207544,  1.0000000, 18.7207544,  2.5198421,
761  18.7207544,  4.3267487, 18.7207544,  6.3496042,
762  18.7207544,  8.5498797, 18.7207544, 10.9027236,
763  18.7207544, 13.3905183, 18.7207544, 16.0000000,
764  18.7207544, 18.7207544, 18.7207544, 21.5443469,
765  18.7207544, 24.4637810, 18.7207544, 27.4731418,
766  21.5443469,  0.0000000, 21.5443469,  1.0000000,
767  21.5443469,  2.5198421, 21.5443469,  4.3267487,
768  21.5443469,  6.3496042, 21.5443469,  8.5498797,
769  21.5443469, 10.9027236, 21.5443469, 13.3905183,
770  21.5443469, 16.0000000, 21.5443469, 18.7207544,
771  21.5443469, 21.5443469, 21.5443469, 24.4637810,
772  21.5443469, 27.4731418, 24.4637810,  0.0000000,
773  24.4637810,  1.0000000, 24.4637810,  2.5198421,
774  24.4637810,  4.3267487, 24.4637810,  6.3496042,
775  24.4637810,  8.5498797, 24.4637810, 10.9027236,
776  24.4637810, 13.3905183, 24.4637810, 16.0000000,
777  24.4637810, 18.7207544, 24.4637810, 21.5443469,
778  24.4637810, 24.4637810, 24.4637810, 27.4731418,
779  27.4731418,  0.0000000, 27.4731418,  1.0000000,
780  27.4731418,  2.5198421, 27.4731418,  4.3267487,
781  27.4731418,  6.3496042, 27.4731418,  8.5498797,
782  27.4731418, 10.9027236, 27.4731418, 13.3905183,
783  27.4731418, 16.0000000, 27.4731418, 18.7207544,
784  27.4731418, 21.5443469, 27.4731418, 24.4637810,
785  27.4731418, 27.4731418,
786 };
787
788 static const DECLARE_ALIGNED(16, float, codebook_vector10)[578] = {
789   0.0000000,  0.0000000,  0.0000000,  1.0000000,
790   0.0000000,  2.5198421,  0.0000000,  4.3267487,
791   0.0000000,  6.3496042,  0.0000000,  8.5498797,
792   0.0000000, 10.9027236,  0.0000000, 13.3905183,
793   0.0000000, 16.0000000,  0.0000000, 18.7207544,
794   0.0000000, 21.5443469,  0.0000000, 24.4637810,
795   0.0000000, 27.4731418,  0.0000000, 30.5673509,
796   0.0000000, 33.7419917,  0.0000000, 36.9931811,
797   0.0000000,      64.0f,  1.0000000,  0.0000000,
798   1.0000000,  1.0000000,  1.0000000,  2.5198421,
799   1.0000000,  4.3267487,  1.0000000,  6.3496042,
800   1.0000000,  8.5498797,  1.0000000, 10.9027236,
801   1.0000000, 13.3905183,  1.0000000, 16.0000000,
802   1.0000000, 18.7207544,  1.0000000, 21.5443469,
803   1.0000000, 24.4637810,  1.0000000, 27.4731418,
804   1.0000000, 30.5673509,  1.0000000, 33.7419917,
805   1.0000000, 36.9931811,  1.0000000,      64.0f,
806   2.5198421,  0.0000000,  2.5198421,  1.0000000,
807   2.5198421,  2.5198421,  2.5198421,  4.3267487,
808   2.5198421,  6.3496042,  2.5198421,  8.5498797,
809   2.5198421, 10.9027236,  2.5198421, 13.3905183,
810   2.5198421, 16.0000000,  2.5198421, 18.7207544,
811   2.5198421, 21.5443469,  2.5198421, 24.4637810,
812   2.5198421, 27.4731418,  2.5198421, 30.5673509,
813   2.5198421, 33.7419917,  2.5198421, 36.9931811,
814   2.5198421,      64.0f,  4.3267487,  0.0000000,
815   4.3267487,  1.0000000,  4.3267487,  2.5198421,
816   4.3267487,  4.3267487,  4.3267487,  6.3496042,
817   4.3267487,  8.5498797,  4.3267487, 10.9027236,
818   4.3267487, 13.3905183,  4.3267487, 16.0000000,
819   4.3267487, 18.7207544,  4.3267487, 21.5443469,
820   4.3267487, 24.4637810,  4.3267487, 27.4731418,
821   4.3267487, 30.5673509,  4.3267487, 33.7419917,
822   4.3267487, 36.9931811,  4.3267487,      64.0f,
823   6.3496042,  0.0000000,  6.3496042,  1.0000000,
824   6.3496042,  2.5198421,  6.3496042,  4.3267487,
825   6.3496042,  6.3496042,  6.3496042,  8.5498797,
826   6.3496042, 10.9027236,  6.3496042, 13.3905183,
827   6.3496042, 16.0000000,  6.3496042, 18.7207544,
828   6.3496042, 21.5443469,  6.3496042, 24.4637810,
829   6.3496042, 27.4731418,  6.3496042, 30.5673509,
830   6.3496042, 33.7419917,  6.3496042, 36.9931811,
831   6.3496042,      64.0f,  8.5498797,  0.0000000,
832   8.5498797,  1.0000000,  8.5498797,  2.5198421,
833   8.5498797,  4.3267487,  8.5498797,  6.3496042,
834   8.5498797,  8.5498797,  8.5498797, 10.9027236,
835   8.5498797, 13.3905183,  8.5498797, 16.0000000,
836   8.5498797, 18.7207544,  8.5498797, 21.5443469,
837   8.5498797, 24.4637810,  8.5498797, 27.4731418,
838   8.5498797, 30.5673509,  8.5498797, 33.7419917,
839   8.5498797, 36.9931811,  8.5498797,      64.0f,
840  10.9027236,  0.0000000, 10.9027236,  1.0000000,
841  10.9027236,  2.5198421, 10.9027236,  4.3267487,
842  10.9027236,  6.3496042, 10.9027236,  8.5498797,
843  10.9027236, 10.9027236, 10.9027236, 13.3905183,
844  10.9027236, 16.0000000, 10.9027236, 18.7207544,
845  10.9027236, 21.5443469, 10.9027236, 24.4637810,
846  10.9027236, 27.4731418, 10.9027236, 30.5673509,
847  10.9027236, 33.7419917, 10.9027236, 36.9931811,
848  10.9027236,      64.0f, 13.3905183,  0.0000000,
849  13.3905183,  1.0000000, 13.3905183,  2.5198421,
850  13.3905183,  4.3267487, 13.3905183,  6.3496042,
851  13.3905183,  8.5498797, 13.3905183, 10.9027236,
852  13.3905183, 13.3905183, 13.3905183, 16.0000000,
853  13.3905183, 18.7207544, 13.3905183, 21.5443469,
854  13.3905183, 24.4637810, 13.3905183, 27.4731418,
855  13.3905183, 30.5673509, 13.3905183, 33.7419917,
856  13.3905183, 36.9931811, 13.3905183,      64.0f,
857  16.0000000,  0.0000000, 16.0000000,  1.0000000,
858  16.0000000,  2.5198421, 16.0000000,  4.3267487,
859  16.0000000,  6.3496042, 16.0000000,  8.5498797,
860  16.0000000, 10.9027236, 16.0000000, 13.3905183,
861  16.0000000, 16.0000000, 16.0000000, 18.7207544,
862  16.0000000, 21.5443469, 16.0000000, 24.4637810,
863  16.0000000, 27.4731418, 16.0000000, 30.5673509,
864  16.0000000, 33.7419917, 16.0000000, 36.9931811,
865  16.0000000,      64.0f, 18.7207544,  0.0000000,
866  18.7207544,  1.0000000, 18.7207544,  2.5198421,
867  18.7207544,  4.3267487, 18.7207544,  6.3496042,
868  18.7207544,  8.5498797, 18.7207544, 10.9027236,
869  18.7207544, 13.3905183, 18.7207544, 16.0000000,
870  18.7207544, 18.7207544, 18.7207544, 21.5443469,
871  18.7207544, 24.4637810, 18.7207544, 27.4731418,
872  18.7207544, 30.5673509, 18.7207544, 33.7419917,
873  18.7207544, 36.9931811, 18.7207544,      64.0f,
874  21.5443469,  0.0000000, 21.5443469,  1.0000000,
875  21.5443469,  2.5198421, 21.5443469,  4.3267487,
876  21.5443469,  6.3496042, 21.5443469,  8.5498797,
877  21.5443469, 10.9027236, 21.5443469, 13.3905183,
878  21.5443469, 16.0000000, 21.5443469, 18.7207544,
879  21.5443469, 21.5443469, 21.5443469, 24.4637810,
880  21.5443469, 27.4731418, 21.5443469, 30.5673509,
881  21.5443469, 33.7419917, 21.5443469, 36.9931811,
882  21.5443469,      64.0f, 24.4637810,  0.0000000,
883  24.4637810,  1.0000000, 24.4637810,  2.5198421,
884  24.4637810,  4.3267487, 24.4637810,  6.3496042,
885  24.4637810,  8.5498797, 24.4637810, 10.9027236,
886  24.4637810, 13.3905183, 24.4637810, 16.0000000,
887  24.4637810, 18.7207544, 24.4637810, 21.5443469,
888  24.4637810, 24.4637810, 24.4637810, 27.4731418,
889  24.4637810, 30.5673509, 24.4637810, 33.7419917,
890  24.4637810, 36.9931811, 24.4637810,      64.0f,
891  27.4731418,  0.0000000, 27.4731418,  1.0000000,
892  27.4731418,  2.5198421, 27.4731418,  4.3267487,
893  27.4731418,  6.3496042, 27.4731418,  8.5498797,
894  27.4731418, 10.9027236, 27.4731418, 13.3905183,
895  27.4731418, 16.0000000, 27.4731418, 18.7207544,
896  27.4731418, 21.5443469, 27.4731418, 24.4637810,
897  27.4731418, 27.4731418, 27.4731418, 30.5673509,
898  27.4731418, 33.7419917, 27.4731418, 36.9931811,
899  27.4731418,      64.0f, 30.5673509,  0.0000000,
900  30.5673509,  1.0000000, 30.5673509,  2.5198421,
901  30.5673509,  4.3267487, 30.5673509,  6.3496042,
902  30.5673509,  8.5498797, 30.5673509, 10.9027236,
903  30.5673509, 13.3905183, 30.5673509, 16.0000000,
904  30.5673509, 18.7207544, 30.5673509, 21.5443469,
905  30.5673509, 24.4637810, 30.5673509, 27.4731418,
906  30.5673509, 30.5673509, 30.5673509, 33.7419917,
907  30.5673509, 36.9931811, 30.5673509,      64.0f,
908  33.7419917,  0.0000000, 33.7419917,  1.0000000,
909  33.7419917,  2.5198421, 33.7419917,  4.3267487,
910  33.7419917,  6.3496042, 33.7419917,  8.5498797,
911  33.7419917, 10.9027236, 33.7419917, 13.3905183,
912  33.7419917, 16.0000000, 33.7419917, 18.7207544,
913  33.7419917, 21.5443469, 33.7419917, 24.4637810,
914  33.7419917, 27.4731418, 33.7419917, 30.5673509,
915  33.7419917, 33.7419917, 33.7419917, 36.9931811,
916  33.7419917,      64.0f, 36.9931811,  0.0000000,
917  36.9931811,  1.0000000, 36.9931811,  2.5198421,
918  36.9931811,  4.3267487, 36.9931811,  6.3496042,
919  36.9931811,  8.5498797, 36.9931811, 10.9027236,
920  36.9931811, 13.3905183, 36.9931811, 16.0000000,
921  36.9931811, 18.7207544, 36.9931811, 21.5443469,
922  36.9931811, 24.4637810, 36.9931811, 27.4731418,
923  36.9931811, 30.5673509, 36.9931811, 33.7419917,
924  36.9931811, 36.9931811, 36.9931811,      64.0f,
925       64.0f,  0.0000000,      64.0f,  1.0000000,
926       64.0f,  2.5198421,      64.0f,  4.3267487,
927       64.0f,  6.3496042,      64.0f,  8.5498797,
928       64.0f, 10.9027236,      64.0f, 13.3905183,
929       64.0f, 16.0000000,      64.0f, 18.7207544,
930       64.0f, 21.5443469,      64.0f, 24.4637810,
931       64.0f, 27.4731418,      64.0f, 30.5673509,
932       64.0f, 33.7419917,      64.0f, 36.9931811,
933       64.0f,      64.0f,
934 };
935
936 const float * const ff_aac_codebook_vectors[] = {
937     codebook_vector0, codebook_vector0, codebook_vector2,
938     codebook_vector2, codebook_vector4, codebook_vector4,
939     codebook_vector6, codebook_vector6, codebook_vector8,
940     codebook_vector8, codebook_vector10,
941 };
942
943 static const float codebook_vector0_vals[] = {
944    -1.0000000,  0.0000000,  1.0000000
945 };
946
947 /*
948  * bits  0:1, 2:3, 4:5, 6:7  index into _vals array
949  *       8:11                number of non-zero values
950  *      12:15                bit mask of non-zero values
951  */
952 static const uint16_t codebook_vector02_idx[] = {
953     0x0000, 0x8140, 0x8180, 0x4110, 0xc250, 0xc290, 0x4120, 0xc260, 0xc2a0,
954     0x2104, 0xa244, 0xa284, 0x6214, 0xe354, 0xe394, 0x6224, 0xe364, 0xe3a4,
955     0x2108, 0xa248, 0xa288, 0x6218, 0xe358, 0xe398, 0x6228, 0xe368, 0xe3a8,
956     0x1101, 0x9241, 0x9281, 0x5211, 0xd351, 0xd391, 0x5221, 0xd361, 0xd3a1,
957     0x3205, 0xb345, 0xb385, 0x7315, 0xf455, 0xf495, 0x7325, 0xf465, 0xf4a5,
958     0x3209, 0xb349, 0xb389, 0x7319, 0xf459, 0xf499, 0x7329, 0xf469, 0xf4a9,
959     0x1102, 0x9242, 0x9282, 0x5212, 0xd352, 0xd392, 0x5222, 0xd362, 0xd3a2,
960     0x3206, 0xb346, 0xb386, 0x7316, 0xf456, 0xf496, 0x7326, 0xf466, 0xf4a6,
961     0x320a, 0xb34a, 0xb38a, 0x731a, 0xf45a, 0xf49a, 0x732a, 0xf46a, 0xf4aa,
962 };
963
964 static const float codebook_vector4_vals[] = {
965    -6.3496042, -4.3267487,
966    -2.5198421, -1.0000000,
967     0.0000000,  1.0000000,
968     2.5198421,  4.3267487,
969     6.3496042,
970 };
971
972 /*
973  * bits  0:3, 4:7  index into _vals array
974  */
975 static const uint16_t codebook_vector4_idx[] = {
976     0x0000, 0x0010, 0x0020, 0x0030, 0x0040, 0x0050, 0x0060, 0x0070, 0x0080,
977     0x0001, 0x0011, 0x0021, 0x0031, 0x0041, 0x0051, 0x0061, 0x0071, 0x0081,
978     0x0002, 0x0012, 0x0022, 0x0032, 0x0042, 0x0052, 0x0062, 0x0072, 0x0082,
979     0x0003, 0x0013, 0x0023, 0x0033, 0x0043, 0x0053, 0x0063, 0x0073, 0x0083,
980     0x0004, 0x0014, 0x0024, 0x0034, 0x0044, 0x0054, 0x0064, 0x0074, 0x0084,
981     0x0005, 0x0015, 0x0025, 0x0035, 0x0045, 0x0055, 0x0065, 0x0075, 0x0085,
982     0x0006, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0076, 0x0086,
983     0x0007, 0x0017, 0x0027, 0x0037, 0x0047, 0x0057, 0x0067, 0x0077, 0x0087,
984     0x0008, 0x0018, 0x0028, 0x0038, 0x0048, 0x0058, 0x0068, 0x0078, 0x0088,
985 };
986
987 /*
988  * bits  0:3, 4:7  index into _vals array
989  *       8:11      number of non-zero values
990  *      12:15      1: only second value non-zero
991  *                 0: other cases
992  */
993 static const uint16_t codebook_vector6_idx[] = {
994     0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170,
995     0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261, 0x0271,
996     0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262, 0x0272,
997     0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263, 0x0273,
998     0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264, 0x0274,
999     0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265, 0x0275,
1000     0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266, 0x0276,
1001     0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267, 0x0277,
1002 };
1003
1004 /*
1005  * bits  0:3, 4:7  index into _vals array
1006  *       8:11      number of non-zero values
1007  *      12:15      1: only second value non-zero
1008  *                 0: other cases
1009  */
1010 static const uint16_t codebook_vector8_idx[] = {
1011   0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160,
1012   0x0170, 0x0180, 0x0190, 0x01a0, 0x01b0, 0x01c0,
1013   0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261,
1014   0x0271, 0x0281, 0x0291, 0x02a1, 0x02b1, 0x02c1,
1015   0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262,
1016   0x0272, 0x0282, 0x0292, 0x02a2, 0x02b2, 0x02c2,
1017   0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263,
1018   0x0273, 0x0283, 0x0293, 0x02a3, 0x02b3, 0x02c3,
1019   0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264,
1020   0x0274, 0x0284, 0x0294, 0x02a4, 0x02b4, 0x02c4,
1021   0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265,
1022   0x0275, 0x0285, 0x0295, 0x02a5, 0x02b5, 0x02c5,
1023   0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266,
1024   0x0276, 0x0286, 0x0296, 0x02a6, 0x02b6, 0x02c6,
1025   0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267,
1026   0x0277, 0x0287, 0x0297, 0x02a7, 0x02b7, 0x02c7,
1027   0x1108, 0x0218, 0x0228, 0x0238, 0x0248, 0x0258, 0x0268,
1028   0x0278, 0x0288, 0x0298, 0x02a8, 0x02b8, 0x02c8,
1029   0x1109, 0x0219, 0x0229, 0x0239, 0x0249, 0x0259, 0x0269,
1030   0x0279, 0x0289, 0x0299, 0x02a9, 0x02b9, 0x02c9,
1031   0x110a, 0x021a, 0x022a, 0x023a, 0x024a, 0x025a, 0x026a,
1032   0x027a, 0x028a, 0x029a, 0x02aa, 0x02ba, 0x02ca,
1033   0x110b, 0x021b, 0x022b, 0x023b, 0x024b, 0x025b, 0x026b,
1034   0x027b, 0x028b, 0x029b, 0x02ab, 0x02bb, 0x02cb,
1035   0x110c, 0x021c, 0x022c, 0x023c, 0x024c, 0x025c, 0x026c,
1036   0x027c, 0x028c, 0x029c, 0x02ac, 0x02bc, 0x02cc,
1037 };
1038
1039 static const float codebook_vector10_vals[] = {
1040      0.0000000,  1.0000000,
1041      2.5198421,  4.3267487,
1042      6.3496042,  8.5498797,
1043     10.9027236, 13.3905183,
1044     16.0000000, 18.7207544,
1045     21.5443469, 24.4637810,
1046     27.4731418, 30.5673509,
1047     33.7419917, 36.9931811,
1048 };
1049
1050 /*
1051  * bits  0:3, 4:7  index into _vals array
1052  *       8:9       bit mask of escape-coded entries
1053  *      12:15      number of non-zero values
1054  */
1055 static const uint16_t codebook_vector10_idx[] = {
1056     0x0000, 0x1010, 0x1020, 0x1030, 0x1040, 0x1050, 0x1060, 0x1070,
1057     0x1080, 0x1090, 0x10a0, 0x10b0, 0x10c0, 0x10d0, 0x10e0, 0x10f0, 0x1200,
1058     0x1001, 0x2011, 0x2021, 0x2031, 0x2041, 0x2051, 0x2061, 0x2071,
1059     0x2081, 0x2091, 0x20a1, 0x20b1, 0x20c1, 0x20d1, 0x20e1, 0x20f1, 0x2201,
1060     0x1002, 0x2012, 0x2022, 0x2032, 0x2042, 0x2052, 0x2062, 0x2072,
1061     0x2082, 0x2092, 0x20a2, 0x20b2, 0x20c2, 0x20d2, 0x20e2, 0x20f2, 0x2202,
1062     0x1003, 0x2013, 0x2023, 0x2033, 0x2043, 0x2053, 0x2063, 0x2073,
1063     0x2083, 0x2093, 0x20a3, 0x20b3, 0x20c3, 0x20d3, 0x20e3, 0x20f3, 0x2203,
1064     0x1004, 0x2014, 0x2024, 0x2034, 0x2044, 0x2054, 0x2064, 0x2074,
1065     0x2084, 0x2094, 0x20a4, 0x20b4, 0x20c4, 0x20d4, 0x20e4, 0x20f4, 0x2204,
1066     0x1005, 0x2015, 0x2025, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075,
1067     0x2085, 0x2095, 0x20a5, 0x20b5, 0x20c5, 0x20d5, 0x20e5, 0x20f5, 0x2205,
1068     0x1006, 0x2016, 0x2026, 0x2036, 0x2046, 0x2056, 0x2066, 0x2076,
1069     0x2086, 0x2096, 0x20a6, 0x20b6, 0x20c6, 0x20d6, 0x20e6, 0x20f6, 0x2206,
1070     0x1007, 0x2017, 0x2027, 0x2037, 0x2047, 0x2057, 0x2067, 0x2077,
1071     0x2087, 0x2097, 0x20a7, 0x20b7, 0x20c7, 0x20d7, 0x20e7, 0x20f7, 0x2207,
1072     0x1008, 0x2018, 0x2028, 0x2038, 0x2048, 0x2058, 0x2068, 0x2078,
1073     0x2088, 0x2098, 0x20a8, 0x20b8, 0x20c8, 0x20d8, 0x20e8, 0x20f8, 0x2208,
1074     0x1009, 0x2019, 0x2029, 0x2039, 0x2049, 0x2059, 0x2069, 0x2079,
1075     0x2089, 0x2099, 0x20a9, 0x20b9, 0x20c9, 0x20d9, 0x20e9, 0x20f9, 0x2209,
1076     0x100a, 0x201a, 0x202a, 0x203a, 0x204a, 0x205a, 0x206a, 0x207a,
1077     0x208a, 0x209a, 0x20aa, 0x20ba, 0x20ca, 0x20da, 0x20ea, 0x20fa, 0x220a,
1078     0x100b, 0x201b, 0x202b, 0x203b, 0x204b, 0x205b, 0x206b, 0x207b,
1079     0x208b, 0x209b, 0x20ab, 0x20bb, 0x20cb, 0x20db, 0x20eb, 0x20fb, 0x220b,
1080     0x100c, 0x201c, 0x202c, 0x203c, 0x204c, 0x205c, 0x206c, 0x207c,
1081     0x208c, 0x209c, 0x20ac, 0x20bc, 0x20cc, 0x20dc, 0x20ec, 0x20fc, 0x220c,
1082     0x100d, 0x201d, 0x202d, 0x203d, 0x204d, 0x205d, 0x206d, 0x207d,
1083     0x208d, 0x209d, 0x20ad, 0x20bd, 0x20cd, 0x20dd, 0x20ed, 0x20fd, 0x220d,
1084     0x100e, 0x201e, 0x202e, 0x203e, 0x204e, 0x205e, 0x206e, 0x207e,
1085     0x208e, 0x209e, 0x20ae, 0x20be, 0x20ce, 0x20de, 0x20ee, 0x20fe, 0x220e,
1086     0x100f, 0x201f, 0x202f, 0x203f, 0x204f, 0x205f, 0x206f, 0x207f,
1087     0x208f, 0x209f, 0x20af, 0x20bf, 0x20cf, 0x20df, 0x20ef, 0x20ff, 0x220f,
1088     0x1100, 0x2110, 0x2120, 0x2130, 0x2140, 0x2150, 0x2160, 0x2170,
1089     0x2180, 0x2190, 0x21a0, 0x21b0, 0x21c0, 0x21d0, 0x21e0, 0x21f0, 0x2300,
1090 };
1091
1092 const float *const ff_aac_codebook_vector_vals[] = {
1093     codebook_vector0_vals,  codebook_vector0_vals,
1094     codebook_vector10_vals, codebook_vector10_vals,
1095     codebook_vector4_vals,  codebook_vector4_vals,
1096     codebook_vector10_vals, codebook_vector10_vals,
1097     codebook_vector10_vals, codebook_vector10_vals,
1098     codebook_vector10_vals,
1099 };
1100
1101 const uint16_t *const ff_aac_codebook_vector_idx[] = {
1102     codebook_vector02_idx, codebook_vector02_idx,
1103     codebook_vector02_idx, codebook_vector02_idx,
1104     codebook_vector4_idx,  codebook_vector4_idx,
1105     codebook_vector6_idx,  codebook_vector6_idx,
1106     codebook_vector8_idx,  codebook_vector8_idx,
1107     codebook_vector10_idx,
1108 };
1109
1110 /* @name swb_offsets
1111  * Sample offset into the window indicating the beginning of a scalefactor
1112  * window band
1113  *
1114  * scalefactor window band - term for scalefactor bands within a window,
1115  * given in Table 4.110 to Table 4.128.
1116  *
1117  * scalefactor band - a set of spectral coefficients which are scaled by one
1118  * scalefactor. In case of EIGHT_SHORT_SEQUENCE and grouping a scalefactor band
1119  * may contain several scalefactor window bands of corresponding frequency. For
1120  * all other window_sequences scalefactor bands and scalefactor window bands are
1121  * identical.
1122  * @{
1123  */
1124
1125 static const uint16_t swb_offset_1024_96[] = {
1126       0,   4,   8,  12,  16,  20,  24,  28,
1127      32,  36,  40,  44,  48,  52,  56,  64,
1128      72,  80,  88,  96, 108, 120, 132, 144,
1129     156, 172, 188, 212, 240, 276, 320, 384,
1130     448, 512, 576, 640, 704, 768, 832, 896,
1131     960, 1024
1132 };
1133
1134 static const uint16_t swb_offset_128_96[] = {
1135     0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 128
1136 };
1137
1138 static const uint16_t swb_offset_1024_64[] = {
1139       0,   4,   8,  12,  16,  20,  24,  28,
1140      32,  36,  40,  44,  48,  52,  56,  64,
1141      72,  80,  88, 100, 112, 124, 140, 156,
1142     172, 192, 216, 240, 268, 304, 344, 384,
1143     424, 464, 504, 544, 584, 624, 664, 704,
1144     744, 784, 824, 864, 904, 944, 984, 1024
1145 };
1146
1147 static const uint16_t swb_offset_1024_48[] = {
1148       0,   4,   8,  12,  16,  20,  24,  28,
1149      32,  36,  40,  48,  56,  64,  72,  80,
1150      88,  96, 108, 120, 132, 144, 160, 176,
1151     196, 216, 240, 264, 292, 320, 352, 384,
1152     416, 448, 480, 512, 544, 576, 608, 640,
1153     672, 704, 736, 768, 800, 832, 864, 896,
1154     928, 1024
1155 };
1156
1157 static const uint16_t swb_offset_512_48[] = {
1158       0,   4,   8,  12,  16,  20,  24,  28,
1159      32,  36,  40,  44,  48,  52,  56,  60,
1160      68,  76,  84,  92, 100, 112, 124, 136,
1161     148, 164, 184, 208, 236, 268, 300, 332,
1162     364, 396, 428, 460, 512
1163 };
1164
1165 static const uint16_t swb_offset_480_48[] = {
1166       0,   4,   8,  12,  16,  20,  24,  28,
1167      32,  36,  40,  44,  48,  52,  56,  64,
1168      72,  80,  88,  96, 108, 120, 132, 144,
1169     156, 172, 188, 212, 240, 272, 304, 336,
1170     368, 400, 432, 480
1171 };
1172
1173 static const uint16_t swb_offset_128_48[] = {
1174      0,   4,   8,  12,  16,  20,  28,  36,
1175     44,  56,  68,  80,  96, 112, 128
1176 };
1177
1178 static const uint16_t swb_offset_1024_32[] = {
1179       0,   4,   8,  12,  16,  20,  24,  28,
1180      32,  36,  40,  48,  56,  64,  72,  80,
1181      88,  96, 108, 120, 132, 144, 160, 176,
1182     196, 216, 240, 264, 292, 320, 352, 384,
1183     416, 448, 480, 512, 544, 576, 608, 640,
1184     672, 704, 736, 768, 800, 832, 864, 896,
1185     928, 960, 992, 1024
1186 };
1187
1188 static const uint16_t swb_offset_512_32[] = {
1189       0,   4,   8,  12,  16,  20,  24,  28,
1190      32,  36,  40,  44,  48,  52,  56,  64,
1191      72,  80,  88,  96, 108, 120, 132, 144,
1192     160, 176, 192, 212, 236, 260, 288, 320,
1193     352, 384, 416, 448, 480, 512
1194 };
1195
1196 static const uint16_t swb_offset_480_32[] = {
1197       0,   4,   8,  12,  16,  20,  24,  28,
1198      32,  36,  40,  44,  48,  52,  56,  60,
1199      64,  72,  80,  88,  96, 104, 112, 124,
1200     136, 148, 164, 180, 200, 224, 256, 288,
1201     320, 352, 384, 416, 448, 480
1202  };
1203
1204 static const uint16_t swb_offset_1024_24[] = {
1205       0,   4,   8,  12,  16,  20,  24,  28,
1206      32,  36,  40,  44,  52,  60,  68,  76,
1207      84,  92, 100, 108, 116, 124, 136, 148,
1208     160, 172, 188, 204, 220, 240, 260, 284,
1209     308, 336, 364, 396, 432, 468, 508, 552,
1210     600, 652, 704, 768, 832, 896, 960, 1024
1211 };
1212
1213 static const uint16_t swb_offset_512_24[] = {
1214       0,   4,   8,  12,  16,  20,  24,  28,
1215      32,  36,  40,  44,  52,  60,  68,  80,
1216      92, 104, 120, 140, 164, 192, 224, 256,
1217     288, 320, 352, 384, 416, 448, 480, 512,
1218 };
1219
1220 static const uint16_t swb_offset_480_24[] = {
1221       0,   4,   8,  12,  16,  20,  24,  28,
1222      32,  36,  40,  44,  52,  60,  68,  80,
1223      92, 104, 120, 140, 164, 192, 224, 256,
1224     288, 320, 352, 384, 416, 448, 480
1225 };
1226
1227 static const uint16_t swb_offset_128_24[] = {
1228      0,   4,   8,  12,  16,  20,  24,  28,
1229     36,  44,  52,  64,  76,  92, 108, 128
1230 };
1231
1232 static const uint16_t swb_offset_1024_16[] = {
1233       0,   8,  16,  24,  32,  40,  48,  56,
1234      64,  72,  80,  88, 100, 112, 124, 136,
1235     148, 160, 172, 184, 196, 212, 228, 244,
1236     260, 280, 300, 320, 344, 368, 396, 424,
1237     456, 492, 532, 572, 616, 664, 716, 772,
1238     832, 896, 960, 1024
1239 };
1240
1241 static const uint16_t swb_offset_128_16[] = {
1242      0,   4,   8,  12,  16,  20,  24,  28,
1243     32,  40,  48,  60,  72,  88, 108, 128
1244 };
1245
1246 static const uint16_t swb_offset_1024_8[] = {
1247       0,  12,  24,  36,  48,  60,  72,  84,
1248      96, 108, 120, 132, 144, 156, 172, 188,
1249     204, 220, 236, 252, 268, 288, 308, 328,
1250     348, 372, 396, 420, 448, 476, 508, 544,
1251     580, 620, 664, 712, 764, 820, 880, 944,
1252     1024
1253 };
1254
1255 static const uint16_t swb_offset_128_8[] = {
1256      0,   4,   8,  12,  16,  20,  24,  28,
1257     36,  44,  52,  60,  72,  88, 108, 128
1258 };
1259
1260 static const uint16_t swb_offset_960_96[] =
1261 {
1262     0,   4,   8,   12,  16,  20,  24,  28,  32,  36,
1263     40,  44,  48,  52,  56,  64,  72,  80,  88,  96,
1264     108, 120, 132, 144, 156, 172, 188, 212, 240, 276,
1265     320, 384, 448, 512, 576, 640, 704, 768, 832, 896,
1266     960
1267 };
1268
1269 static const uint16_t swb_offset_960_64[] =
1270 {
1271     0,   4,   8,   12,  16,  20,  24,  28,  32,  36,
1272     40,  44,  48,  52,  56,  64,  72,  80,  88,  100,
1273     112, 124, 140, 156, 172, 192, 216, 240, 268, 304,
1274     344, 384, 424, 464, 504, 544, 584, 624, 664, 704,
1275     744, 784, 824, 864, 904, 944, 960
1276 };
1277
1278 static const uint16_t swb_offset_960_48[] =
1279 {
1280     0,   4,   8,   12,  16,  20,  24,  28,  32,  36,
1281     40,  48,  56,  64,  72,  80,  88,  96,  108, 120,
1282     132, 144, 160, 176, 196, 216, 240, 264, 292, 320,
1283     352, 384, 416, 448, 480, 512, 544, 576, 608, 640,
1284     672, 704, 736, 768, 800, 832, 864, 896, 928, 960
1285 };
1286
1287 static const uint16_t swb_offset_960_32[] =
1288 {
1289     0,   4,   8,   12,  16,  20,  24,  28,  32,  36,
1290     40,  48,  56,  64,  72,  80,  88,  96,  108, 120,
1291     132, 144, 160, 176, 196, 216, 240, 264, 292, 320,
1292     352, 384, 416, 448, 480, 512, 544, 576, 608, 640,
1293     672, 704, 736, 768, 800, 832, 864, 896, 928, 960
1294 };
1295
1296 static const uint16_t swb_offset_960_24[] =
1297 {
1298     0,   4,   8,   12,  16,  20,  24,  28,  32,  36,
1299     40,  44,  52,  60,  68,  76,  84,  92,  100, 108,
1300     116, 124, 136, 148, 160, 172, 188, 204, 220, 240,
1301     260, 284, 308, 336, 364, 396, 432, 468, 508, 552,
1302     600, 652, 704, 768, 832, 896, 960
1303 };
1304
1305 static const uint16_t swb_offset_960_16[] =
1306 {
1307     0,   8,   16,  24,  32,  40,  48,  56,  64,  72,
1308     80,  88,  100, 112, 124, 136, 148, 160, 172, 184,
1309     196, 212, 228, 244, 260, 280, 300, 320, 344, 368,
1310     396, 424, 456, 492, 532, 572, 616, 664, 716, 772,
1311     832, 896, 960
1312 };
1313
1314 static const uint16_t swb_offset_960_8[] =
1315 {
1316     0,   12,  24,  36,  48,  60,  72,  84,  96,  108,
1317     120, 132, 144, 156, 172, 188, 204, 220, 236, 252,
1318     268, 288, 308, 328, 348, 372, 396, 420, 448, 476,
1319     508, 544, 580, 620, 664, 712, 764, 820, 880, 944,
1320     960
1321 };
1322
1323
1324 static const uint16_t swb_offset_120_96[] =
1325 {
1326     0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 120
1327 };
1328
1329 static const uint16_t swb_offset_120_64[] =
1330 {
1331     0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 120
1332 };
1333
1334 static const uint16_t swb_offset_120_48[] =
1335 {
1336     0,  4, 8, 12, 16, 20, 28, 36, 44, 56, 68, 80, 96, 112, 120
1337 };
1338
1339 static const uint16_t swb_offset_120_24[] =
1340 {
1341     0, 4, 8, 12, 16, 20, 24, 28, 36, 44, 52, 64, 76, 92, 108, 120
1342 };
1343
1344 static const uint16_t swb_offset_120_16[] =
1345 {
1346     0, 4, 8, 12, 16, 20, 24, 28, 32, 40, 48, 60, 72, 88, 108, 120
1347 };
1348
1349 static const uint16_t swb_offset_120_8[] =
1350 {
1351     0, 4, 8, 12, 16,  20, 24, 28, 36, 44, 52, 60, 72, 88, 108, 120
1352 };
1353
1354 const uint16_t * const ff_swb_offset_1024[] = {
1355     swb_offset_1024_96, swb_offset_1024_96, swb_offset_1024_64,
1356     swb_offset_1024_48, swb_offset_1024_48, swb_offset_1024_32,
1357     swb_offset_1024_24, swb_offset_1024_24, swb_offset_1024_16,
1358     swb_offset_1024_16, swb_offset_1024_16, swb_offset_1024_8,
1359     swb_offset_1024_8
1360 };
1361
1362 const uint16_t * const ff_swb_offset_960[] = {
1363     swb_offset_960_96, swb_offset_960_96, swb_offset_960_64,
1364     swb_offset_960_48, swb_offset_960_48, swb_offset_960_32,
1365     swb_offset_960_24, swb_offset_960_24, swb_offset_960_16,
1366     swb_offset_960_16, swb_offset_960_16, swb_offset_960_8,
1367     swb_offset_960_8
1368 };
1369
1370 const uint16_t * const ff_swb_offset_512[] = {
1371     NULL,               NULL,               NULL,
1372     swb_offset_512_48,  swb_offset_512_48,  swb_offset_512_32,
1373     swb_offset_512_24,  swb_offset_512_24,  NULL,
1374     NULL,               NULL,               NULL,
1375     NULL
1376 };
1377
1378 const uint16_t * const ff_swb_offset_480[] = {
1379     NULL,               NULL,               NULL,
1380     swb_offset_480_48,  swb_offset_480_48,  swb_offset_480_32,
1381     swb_offset_480_24,  swb_offset_480_24,  NULL,
1382     NULL,               NULL,               NULL,
1383     NULL
1384 };
1385
1386 const uint16_t * const ff_swb_offset_128[] = {
1387     /* The last entry on the following row is swb_offset_128_64 but is a
1388        duplicate of swb_offset_128_96. */
1389     swb_offset_128_96, swb_offset_128_96, swb_offset_128_96,
1390     swb_offset_128_48, swb_offset_128_48, swb_offset_128_48,
1391     swb_offset_128_24, swb_offset_128_24, swb_offset_128_16,
1392     swb_offset_128_16, swb_offset_128_16, swb_offset_128_8,
1393     swb_offset_128_8
1394 };
1395
1396 const uint16_t * const ff_swb_offset_120[] = {
1397     swb_offset_120_96, swb_offset_120_96, swb_offset_120_96,
1398     swb_offset_120_48, swb_offset_120_48, swb_offset_120_48,
1399     swb_offset_120_24, swb_offset_120_24, swb_offset_120_16,
1400     swb_offset_120_16, swb_offset_120_16, swb_offset_120_8,
1401     swb_offset_120_8
1402 };
1403
1404 // @}
1405
1406 /* @name ff_tns_max_bands
1407  * The maximum number of scalefactor bands on which TNS can operate for the long
1408  * and short transforms respectively. The index to these tables is related to
1409  * the sample rate of the audio.
1410  * @{
1411  */
1412 const uint8_t ff_tns_max_bands_1024[] = {
1413     31, 31, 34, 40, 42, 51, 46, 46, 42, 42, 42, 39, 39
1414 };
1415
1416 const uint8_t ff_tns_max_bands_512[] = {
1417     0, 0, 0, 31, 32, 37, 31, 31, 0, 0, 0, 0, 0
1418 };
1419
1420 const uint8_t ff_tns_max_bands_480[] = {
1421     0, 0, 0, 31, 32, 37, 30, 30, 0, 0, 0, 0, 0
1422 };
1423
1424 const uint8_t ff_tns_max_bands_128[] = {
1425     9, 9, 10, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14
1426 };
1427 // @}
1428
1429 const DECLARE_ALIGNED(32, float, ff_aac_eld_window_512)[1920] = {
1430      0.00338834,  0.00567745,  0.00847677,  0.01172641,
1431      0.01532555,  0.01917664,  0.02318809,  0.02729259,
1432      0.03144503,  0.03560261,  0.03972499,  0.04379783,
1433      0.04783094,  0.05183357,  0.05581342,  0.05977723,
1434      0.06373173,  0.06768364,  0.07163937,  0.07559976,
1435      0.07956096,  0.08352024,  0.08747623,  0.09143035,
1436      0.09538618,  0.09934771,  0.10331917,  0.10730456,
1437      0.11130697,  0.11532867,  0.11937133,  0.12343922,
1438      0.12753911,  0.13167705,  0.13585812,  0.14008529,
1439      0.14435986,  0.14868291,  0.15305531,  0.15747594,
1440      0.16194193,  0.16645070,  0.17099991,  0.17558633,
1441      0.18020600,  0.18485548,  0.18953191,  0.19423322,
1442      0.19895800,  0.20370512,  0.20847374,  0.21326312,
1443      0.21807244,  0.22290083,  0.22774742,  0.23261210,
1444      0.23749542,  0.24239767,  0.24731889,  0.25225887,
1445      0.25721719,  0.26219330,  0.26718648,  0.27219630,
1446      0.27722262,  0.28226514,  0.28732336,  0.29239628,
1447      0.29748247,  0.30258055,  0.30768914,  0.31280508,
1448      0.31792385,  0.32304172,  0.32815579,  0.33326397,
1449      0.33836470,  0.34345661,  0.34853868,  0.35361188,
1450      0.35867865,  0.36374072,  0.36879900,  0.37385347,
1451      0.37890349,  0.38394836,  0.38898730,  0.39401912,
1452      0.39904236,  0.40405575,  0.40905820,  0.41404819,
1453      0.41902398,  0.42398423,  0.42892805,  0.43385441,
1454      0.43876210,  0.44365014,  0.44851786,  0.45336632,
1455      0.45819759,  0.46301302,  0.46781309,  0.47259722,
1456      0.47736435,  0.48211365,  0.48684450,  0.49155594,
1457      0.49624679,  0.50091636,  0.50556440,  0.51019132,
1458      0.51479771,  0.51938391,  0.52394998,  0.52849587,
1459      0.53302151,  0.53752680,  0.54201160,  0.54647575,
1460      0.55091916,  0.55534181,  0.55974376,  0.56412513,
1461      0.56848615,  0.57282710,  0.57714834,  0.58145030,
1462      0.58492489,  0.58918511,  0.59342326,  0.59763936,
1463      0.60183347,  0.60600561,  0.61015581,  0.61428412,
1464      0.61839056,  0.62247517,  0.62653799,  0.63057912,
1465      0.63459872,  0.63859697,  0.64257403,  0.64653001,
1466      0.65046495,  0.65437887,  0.65827181,  0.66214383,
1467      0.66599499,  0.66982535,  0.67363499,  0.67742394,
1468      0.68119219,  0.68493972,  0.68866653,  0.69237258,
1469      0.69605778,  0.69972207,  0.70336537,  0.70698758,
1470      0.71058862,  0.71416837,  0.71772674,  0.72126361,
1471      0.72477889,  0.72827246,  0.73174419,  0.73519392,
1472      0.73862141,  0.74202643,  0.74540874,  0.74876817,
1473      0.75210458,  0.75541785,  0.75870785,  0.76197437,
1474      0.76521709,  0.76843570,  0.77162988,  0.77479939,
1475      0.77794403,  0.78106359,  0.78415789,  0.78722670,
1476      0.79026979,  0.79328694,  0.79627791,  0.79924244,
1477      0.80218027,  0.80509112,  0.80797472,  0.81083081,
1478      0.81365915,  0.81645949,  0.81923160,  0.82197528,
1479      0.82469037,  0.82737673,  0.83003419,  0.83266262,
1480      0.83526186,  0.83783176,  0.84037217,  0.84288297,
1481      0.84536401,  0.84781517,  0.85023632,  0.85262739,
1482      0.85498836,  0.85731921,  0.85961993,  0.86189052,
1483      0.86413101,  0.86634140,  0.86852173,  0.87067211,
1484      0.87279275,  0.87488384,  0.87694559,  0.87897824,
1485      0.88098206,  0.88295729,  0.88490423,  0.88682332,
1486      0.88871519,  0.89058048,  0.89241983,  0.89423391,
1487      0.89602338,  0.89778893,  0.89953126,  0.90125142,
1488      0.90295086,  0.90463104,  0.90629341,  0.90793946,
1489      0.90957067,  0.91118856,  0.91279464,  0.91439073,
1490      0.91597898,  0.91756153,  0.91914049,  0.92071690,
1491      0.92229070,  0.92386182,  0.92542993,  0.92698946,
1492      0.92852960,  0.93003929,  0.93150727,  0.93291739,
1493      0.93424863,  0.93547974,  0.93658982,  0.93756587,
1494      0.93894072,  0.93922780,  0.93955477,  0.93991290,
1495      0.94029104,  0.94067794,  0.94106258,  0.94144084,
1496      0.94181549,  0.94218963,  0.94256628,  0.94294662,
1497      0.94332998,  0.94371562,  0.94410280,  0.94449122,
1498      0.94488106,  0.94527249,  0.94566568,  0.94606074,
1499      0.94645772,  0.94685665,  0.94725759,  0.94766054,
1500      0.94806547,  0.94847234,  0.94888115,  0.94929190,
1501      0.94970469,  0.95011960,  0.95053672,  0.95095604,
1502      0.95137751,  0.95180105,  0.95222658,  0.95265413,
1503      0.95308380,  0.95351571,  0.95394994,  0.95438653,
1504      0.95482538,  0.95526643,  0.95570958,  0.95615486,
1505      0.95660234,  0.95705214,  0.95750433,  0.95795892,
1506      0.95841582,  0.95887493,  0.95933616,  0.95979949,
1507      0.96026500,  0.96073277,  0.96120286,  0.96167526,
1508      0.96214986,  0.96262655,  0.96310522,  0.96358586,
1509      0.96406853,  0.96455330,  0.96504026,  0.96552936,
1510      0.96602051,  0.96651360,  0.96700850,  0.96750520,
1511      0.96800376,  0.96850424,  0.96900670,  0.96951112,
1512      0.97001738,  0.97052533,  0.97103488,  0.97154597,
1513      0.97205867,  0.97257304,  0.97308915,  0.97360694,
1514      0.97412631,  0.97464711,  0.97516923,  0.97569262,
1515      0.97621735,  0.97674350,  0.97727111,  0.97780016,
1516      0.97833051,  0.97886205,  0.97939463,  0.97992823,
1517      0.98046291,  0.98099875,  0.98153580,  0.98207405,
1518      0.98261337,  0.98315364,  0.98369474,  0.98423664,
1519      0.98477941,  0.98532311,  0.98586780,  0.98641348,
1520      0.98696003,  0.98750734,  0.98805530,  0.98860389,
1521      0.98915320,  0.98970328,  0.99025423,  0.99080602,
1522      0.99135855,  0.99191171,  0.99246541,  0.99301962,
1523      0.99357443,  0.99412992,  0.99468617,  0.99524320,
1524      0.99580092,  0.99635926,  0.99691814,  0.99747748,
1525      0.99803721,  0.99859725,  0.99915752,  0.99971793,
1526      1.00028215,  1.00084319,  1.00140472,  1.00196665,
1527      1.00252889,  1.00309139,  1.00365404,  1.00421679,
1528      1.00477954,  1.00534221,  1.00590474,  1.00646713,
1529      1.00702945,  1.00759179,  1.00815424,  1.00871678,
1530      1.00927930,  1.00984169,  1.01040384,  1.01096575,
1531      1.01152747,  1.01208910,  1.01265070,  1.01321226,
1532      1.01377365,  1.01433478,  1.01489551,  1.01545584,
1533      1.01601582,  1.01657553,  1.01713502,  1.01769427,
1534      1.01825316,  1.01881154,  1.01936929,  1.01992639,
1535      1.02048289,  1.02103888,  1.02159441,  1.02214945,
1536      1.02270387,  1.02325751,  1.02381025,  1.02436204,
1537      1.02491295,  1.02546304,  1.02601238,  1.02656092,
1538      1.02710853,  1.02765508,  1.02820041,  1.02874449,
1539      1.02928737,  1.02982913,  1.03036981,  1.03090937,
1540      1.03144768,  1.03198460,  1.03252000,  1.03305384,
1541      1.03358617,  1.03411707,  1.03464659,  1.03517470,
1542      1.03570128,  1.03622620,  1.03674934,  1.03727066,
1543      1.03779024,  1.03830815,  1.03882446,  1.03933914,
1544      1.03985206,  1.04036312,  1.04087217,  1.04137920,
1545      1.04188428,  1.04238748,  1.04288888,  1.04338845,
1546      1.04388610,  1.04438170,  1.04487515,  1.04536645,
1547      1.04585569,  1.04634297,  1.04682838,  1.04731192,
1548      1.04779350,  1.04827303,  1.04875042,  1.04922568,
1549      1.04969891,  1.05017022,  1.05063974,  1.05110746,
1550      1.05157332,  1.05203721,  1.05249907,  1.05295889,
1551      1.05341676,  1.05387277,  1.05432700,  1.05477948,
1552      1.05523018,  1.05567906,  1.05612608,  1.05657124,
1553      1.05701459,  1.05745616,  1.05789601,  1.05833426,
1554      1.05877109,  1.05920669,  1.05964125,  1.06007444,
1555      1.06050542,  1.06093335,  1.06135746,  1.06177909,
1556      1.06220164,  1.06262858,  1.06306309,  1.06350050,
1557      1.06392837,  1.06433391,  1.06470443,  1.06502996,
1558      1.06481076,  1.06469765,  1.06445004,  1.06408002,
1559      1.06361382,  1.06307719,  1.06249453,  1.06188365,
1560      1.06125612,  1.06062291,  1.05999418,  1.05937132,
1561      1.05874726,  1.05811486,  1.05746728,  1.05680000,
1562      1.05611070,  1.05539715,  1.05465735,  1.05389329,
1563      1.05311083,  1.05231578,  1.05151372,  1.05070811,
1564      1.04990044,  1.04909210,  1.04828434,  1.04747647,
1565      1.04666590,  1.04585003,  1.04502628,  1.04419009,
1566      1.04333499,  1.04245452,  1.04154244,  1.04059452,
1567      1.03960846,  1.03858207,  1.03751326,  1.03640189,
1568      1.03524976,  1.03405868,  1.03283047,  1.03156812,
1569      1.03027574,  1.02895743,  1.02761717,  1.02625804,
1570      1.02488222,  1.02349184,  1.02208892,  1.02067450,
1571      1.01924861,  1.01781123,  1.01636229,  1.01490045,
1572      1.01342315,  1.01192778,  1.01041175,  1.00887284,
1573      1.00730915,  1.00571882,  1.00409996,  1.00245032,
1574      1.00076734,  0.99904842,  0.99729101,  0.99549380,
1575      0.99365664,  0.99177946,  0.98986234,  0.98791024,
1576      0.98593294,  0.98394037,  0.98194226,  0.97994532,
1577      0.97795324,  0.97596955,  0.97399748,  0.97203326,
1578      0.97006624,  0.96808546,  0.96608018,  0.96404416,
1579      0.96197556,  0.95987276,  0.95773420,  0.95556018,
1580      0.95335291,  0.95111462,  0.94884764,  0.94655663,
1581      0.94424858,  0.94193055,  0.93960953,  0.93729154,
1582      0.93498157,  0.93268456,  0.93040503,  0.92813771,
1583      0.92586755,  0.92357910,  0.92125731,  0.91889642,
1584      0.91649998,  0.91407191,  0.91161623,  0.90913975,
1585      0.90665202,  0.90416271,  0.90168115,  0.89920934,
1586      0.89674189,  0.89427312,  0.89179743,  0.88931147,
1587      0.88681415,  0.88430445,  0.88178141,  0.87924528,
1588      0.87669753,  0.87413966,  0.87157318,  0.86899958,
1589      0.86642037,  0.86383703,  0.86125106,  0.85866393,
1590      0.85604236,  0.85344385,  0.85083093,  0.84820550,
1591      0.84556943,  0.84292458,  0.84027278,  0.83761586,
1592      0.83495565,  0.83229393,  0.82963243,  0.82697135,
1593      0.82430933,  0.82164496,  0.81897669,  0.81630017,
1594      0.81360822,  0.81089355,  0.80814924,  0.80537741,
1595      0.80258920,  0.79979611,  0.79700954,  0.79423813,
1596      0.79148780,  0.78876432,  0.78607290,  0.78340590,
1597      0.78074288,  0.77806279,  0.77534514,  0.77258187,
1598      0.76977737,  0.76693654,  0.76406441,  0.76116851,
1599      0.75825892,  0.75534582,  0.75243924,  0.74954634,
1600      0.74667135,  0.74381840,  0.74099145,  0.73819147,
1601      0.73541641,  0.73266408,  0.72993193,  0.72720913,
1602      0.72447661,  0.72171494,  0.71890515,  0.71603932,
1603      0.71312056,  0.71015250,  0.70713900,  0.70409084,
1604      0.70102565,  0.69796137,  0.69491556,  0.69189772,
1605      0.68890931,  0.68595141,  0.68302498,  0.68012852,
1606      0.67725801,  0.67440936,  0.67157841,  0.66876081,
1607      0.66595195,  0.66314722,  0.66034194,  0.65753027,
1608      0.65470525,  0.65185984,  0.64898709,  0.64608214,
1609      0.64314221,  0.64016460,  0.63714680,  0.63409034,
1610      0.63100082,  0.62788400,  0.62474577,  0.62159473,
1611      0.61844225,  0.61529977,  0.61217866,  0.60908811,
1612      0.60603510,  0.60302654,  0.60006916,  0.59716588,
1613      0.59431580,  0.59151787,  0.58877068,  0.58606495,
1614      0.58338353,  0.58070891,  0.57802356,  0.57530864,
1615      0.57254404,  0.56970958,  0.56678577,  0.56376860,
1616      0.56066951,  0.55750064,  0.55427451,  0.55101301,
1617      0.54774732,  0.54450907,  0.54132936,  0.53822744,
1618      0.53521072,  0.53228613,  0.52945979,  0.52671997,
1619      0.52403708,  0.52138072,  0.51872085,  0.51603570,
1620      0.51331170,  0.51053560,  0.50769466,  0.50478931,
1621      0.50183308,  0.49884001,  0.49582406,  0.49279905,
1622      0.48985748,  0.48679641,  0.48379429,  0.48085363,
1623      0.47796576,  0.47512151,  0.47231151,  0.46952402,
1624      0.46674486,  0.46395978,  0.46115496,  0.45832607,
1625      0.45547830,  0.45261727,  0.44974866,  0.44688011,
1626      0.44402125,  0.44118178,  0.43837094,  0.43558772,
1627      0.43282082,  0.43005847,  0.42728913,  0.42450572,
1628      0.42170567,  0.41888658,  0.41604633,  0.41318897,
1629      0.41032472,  0.40746405,  0.40461724,  0.40178943,
1630      0.39898066,  0.39619073,  0.39341940,  0.39066519,
1631      0.38792536,  0.38519713,  0.38247773,  0.37976476,
1632      0.37705620,  0.37435006,  0.37164438,  0.36893869,
1633      0.36623396,  0.36353124,  0.36083153,  0.35813533,
1634      0.35544262,  0.35275338,  0.35006755,  0.34738530,
1635      0.34470699,  0.34203296,  0.33936359,  0.33669922,
1636      0.33404027,  0.33138711,  0.32874013,  0.32609944,
1637      0.32346493,  0.32083645,  0.31821388,  0.31559703,
1638      0.31298573,  0.31037987,  0.30777941,  0.30518446,
1639      0.30259525,  0.30001202,  0.29743499,  0.29486428,
1640      0.29229989,  0.28974179,  0.28718997,  0.28464452,
1641      0.28210562,  0.27957346,  0.27704820,  0.27452992,
1642      0.27201854,  0.26951399,  0.26701622,  0.26452533,
1643      0.26204158,  0.25956526,  0.25709662,  0.25463583,
1644      0.25218294,  0.24973798,  0.24730100,  0.24487207,
1645      0.24245133,  0.24003893,  0.23763500,  0.23523959,
1646      0.23285262,  0.23047401,  0.22810369,  0.22574170,
1647      0.22338818,  0.22104329,  0.21870719,  0.21637986,
1648      0.21406117,  0.21175095,  0.20944904,  0.20715535,
1649      0.20486987,  0.20259261,  0.20032356,  0.19806259,
1650      0.19580944,  0.19356385,  0.19132556,  0.18909442,
1651      0.18687040,  0.18465350,  0.18244372,  0.18024164,
1652      0.17804841,  0.17586521,  0.17369322,  0.17153360,
1653      0.16938755,  0.16725622,  0.16514081,  0.16304247,
1654      0.16098974,  0.15896561,  0.15696026,  0.15497259,
1655      0.15300151,  0.15104590,  0.14910466,  0.14717666,
1656      0.14526081,  0.14335599,  0.14146111,  0.13957570,
1657      0.13769993,  0.13583399,  0.13397806,  0.13213229,
1658      0.13029682,  0.12847178,  0.12665729,  0.12485353,
1659      0.12306074,  0.12127916,  0.11950900,  0.11775043,
1660      0.11600347,  0.11426820,  0.11254464,  0.11083292,
1661      0.10913318,  0.10744559,  0.10577028,  0.10410733,
1662      0.10245672,  0.10081842,  0.09919240,  0.09757872,
1663      0.09597750,  0.09438884,  0.09281288,  0.09124964,
1664      0.08969907,  0.08816111,  0.08663570,  0.08512288,
1665      0.08362274,  0.08213540,  0.08066096,  0.07919944,
1666      0.07775076,  0.07631484,  0.07489161,  0.07348108,
1667      0.07208335,  0.07069851,  0.06932666,  0.06796781,
1668      0.06662187,  0.06528874,  0.06396833,  0.06266065,
1669      0.06136578,  0.06008380,  0.05881480,  0.05755876,
1670      0.05631557,  0.05508511,  0.05386728,  0.05266206,
1671      0.05146951,  0.05028971,  0.04912272,  0.04796855,
1672      0.04682709,  0.04569825,  0.04458194,  0.04347817,
1673      0.04238704,  0.04130868,  0.04024318,  0.03919056,
1674      0.03815071,  0.03712352,  0.03610890,  0.03510679,
1675      0.03411720,  0.03314013,  0.03217560,  0.03122343,
1676      0.03028332,  0.02935494,  0.02843799,  0.02753230,
1677      0.02663788,  0.02575472,  0.02488283,  0.02402232,
1678      0.02317341,  0.02233631,  0.02151124,  0.02069866,
1679      0.01989922,  0.01911359,  0.01834241,  0.01758563,
1680      0.01684248,  0.01611219,  0.01539397,  0.01468726,
1681      0.01399167,  0.01330687,  0.01263250,  0.01196871,
1682      0.01131609,  0.01067527,  0.01004684,  0.00943077,
1683      0.00882641,  0.00823307,  0.00765011,  0.00707735,
1684      0.00651513,  0.00596377,  0.00542364,  0.00489514,
1685      0.00437884,  0.00387530,  0.00338509,  0.00290795,
1686      0.00244282,  0.00198860,  0.00154417,  0.00110825,
1687      0.00067934,  0.00025589, -0.00016357, -0.00057897,
1688     -0.00098865, -0.00139089, -0.00178397, -0.00216547,
1689     -0.00253230, -0.00288133, -0.00320955, -0.00351626,
1690     -0.00380315, -0.00407198, -0.00432457, -0.00456373,
1691     -0.00479326, -0.00501699, -0.00523871, -0.00546066,
1692     -0.00568360, -0.00590821, -0.00613508, -0.00636311,
1693     -0.00658944, -0.00681117, -0.00702540, -0.00722982,
1694     -0.00742268, -0.00760226, -0.00776687, -0.00791580,
1695     -0.00804933, -0.00816774, -0.00827139, -0.00836122,
1696     -0.00843882, -0.00850583, -0.00856383, -0.00861430,
1697     -0.00865853, -0.00869781, -0.00873344, -0.00876633,
1698     -0.00879707, -0.00882622, -0.00885433, -0.00888132,
1699     -0.00890652, -0.00892925, -0.00894881, -0.00896446,
1700     -0.00897541, -0.00898088, -0.00898010, -0.00897234,
1701     -0.00895696, -0.00893330, -0.00890076, -0.00885914,
1702     -0.00880875, -0.00874987, -0.00868282, -0.00860825,
1703     -0.00852716, -0.00844055, -0.00834941, -0.00825485,
1704     -0.00815807, -0.00806025, -0.00796253, -0.00786519,
1705     -0.00776767, -0.00766937, -0.00756971, -0.00746790,
1706     -0.00736305, -0.00725422, -0.00714055, -0.00702161,
1707     -0.00689746, -0.00676816, -0.00663381, -0.00649489,
1708     -0.00635230, -0.00620694, -0.00605969, -0.00591116,
1709     -0.00576167, -0.00561155, -0.00546110, -0.00531037,
1710     -0.00515917, -0.00500732, -0.00485462, -0.00470075,
1711     -0.00454530, -0.00438786, -0.00422805, -0.00406594,
1712     -0.00390204, -0.00373686, -0.00357091, -0.00340448,
1713     -0.00323770, -0.00307066, -0.00290344, -0.00273610,
1714     -0.00256867, -0.00240117, -0.00223365, -0.00206614,
1715     -0.00189866, -0.00173123, -0.00156390, -0.00139674,
1716     -0.00122989, -0.00106351, -0.00089772, -0.00073267,
1717     -0.00056849, -0.00040530, -0.00024324, -0.00008241,
1718      0.00008214,  0.00024102,  0.00039922,  0.00055660,
1719      0.00071299,  0.00086826,  0.00102224,  0.00117480,
1720      0.00132579,  0.00147507,  0.00162252,  0.00176804,
1721      0.00191161,  0.00205319,  0.00219277,  0.00233029,
1722      0.00246567,  0.00259886,  0.00272975,  0.00285832,
1723      0.00298453,  0.00310839,  0.00322990,  0.00334886,
1724      0.00346494,  0.00357778,  0.00368706,  0.00379273,
1725      0.00389501,  0.00399411,  0.00409020,  0.00418350,
1726      0.00427419,  0.00436249,  0.00444858,  0.00453250,
1727      0.00461411,  0.00469328,  0.00476988,  0.00484356,
1728      0.00491375,  0.00497987,  0.00504139,  0.00509806,
1729      0.00514990,  0.00519693,  0.00523920,  0.00527700,
1730      0.00531083,  0.00534122,  0.00536864,  0.00539357,
1731      0.00541649,  0.00543785,  0.00545809,  0.00547713,
1732      0.00549441,  0.00550936,  0.00552146,  0.00553017,
1733      0.00553494,  0.00553524,  0.00553058,  0.00552065,
1734      0.00550536,  0.00548459,  0.00545828,  0.00542662,
1735      0.00539007,  0.00534910,  0.00530415,  0.00525568,
1736      0.00520417,  0.00515009,  0.00509387,  0.00503595,
1737      0.00497674,  0.00491665,  0.00485605,  0.00479503,
1738      0.00473336,  0.00467082,  0.00460721,  0.00454216,
1739      0.00447517,  0.00440575,  0.00433344,  0.00425768,
1740      0.00417786,  0.00409336,  0.00400363,  0.00390837,
1741      0.00380759,  0.00370130,  0.00358952,  0.00347268,
1742      0.00335157,  0.00322699,  0.00309975,  0.00297088,
1743      0.00284164,  0.00271328,  0.00258700,  0.00246328,
1744      0.00234195,  0.00222281,  0.00210562,  0.00198958,
1745      0.00187331,  0.00175546,  0.00163474,  0.00151020,
1746      0.00138130,  0.00124750,  0.00110831,  0.00096411,
1747      0.00081611,  0.00066554,  0.00051363,  0.00036134,
1748      0.00020940,  0.00005853, -0.00009058, -0.00023783,
1749     -0.00038368, -0.00052861, -0.00067310, -0.00081757,
1750     -0.00096237, -0.00110786, -0.00125442, -0.00140210,
1751     -0.00155065, -0.00169984, -0.00184940, -0.00199910,
1752     -0.00214872, -0.00229798, -0.00244664, -0.00259462,
1753     -0.00274205, -0.00288912, -0.00303596, -0.00318259,
1754     -0.00332890, -0.00347480, -0.00362024, -0.00376519,
1755     -0.00390962, -0.00405345, -0.00419658, -0.00433902,
1756     -0.00448085, -0.00462219, -0.00476309, -0.00490357,
1757     -0.00504361, -0.00518321, -0.00532243, -0.00546132,
1758     -0.00559988, -0.00573811, -0.00587602, -0.00601363,
1759     -0.00615094, -0.00628795, -0.00642466, -0.00656111,
1760     -0.00669737, -0.00683352, -0.00696963, -0.00710578,
1761     -0.00724208, -0.00737862, -0.00751554, -0.00765295,
1762     -0.00779098, -0.00792976, -0.00806941, -0.00821006,
1763     -0.00835183, -0.00849485, -0.00863926, -0.00878522,
1764     -0.00893293, -0.00908260, -0.00923444, -0.00938864,
1765     -0.00954537, -0.00970482, -0.00986715, -0.01003173,
1766     -0.01019711, -0.01036164, -0.01052357, -0.01068184,
1767     -0.01083622, -0.01098652, -0.01113252, -0.01127409,
1768     -0.01141114, -0.01154358, -0.01167135, -0.01179439,
1769     -0.01191268, -0.01202619, -0.01213493, -0.01223891,
1770     -0.01233817, -0.01243275, -0.01252272, -0.01260815,
1771     -0.01268915, -0.01276583, -0.01283832, -0.01290685,
1772     -0.01297171, -0.01303320, -0.01309168, -0.01314722,
1773     -0.01319969, -0.01324889, -0.01329466, -0.01333693,
1774     -0.01337577, -0.01341125, -0.01344345, -0.01347243,
1775     -0.01349823, -0.01352089, -0.01354045, -0.01355700,
1776     -0.01357068, -0.01358164, -0.01359003, -0.01359587,
1777     -0.01359901, -0.01359931, -0.01359661, -0.01359087,
1778     -0.01358219, -0.01357065, -0.01355637, -0.01353935,
1779     -0.01351949, -0.01349670, -0.01347088, -0.01344214,
1780     -0.01341078, -0.01337715, -0.01334158, -0.01330442,
1781     -0.01326601, -0.01322671, -0.01318689, -0.01314692,
1782     -0.01310123, -0.01306470, -0.01302556, -0.01298381,
1783     -0.01293948, -0.01289255, -0.01284305, -0.01279095,
1784     -0.01273625, -0.01267893, -0.01261897, -0.01255632,
1785     -0.01249096, -0.01242283, -0.01235190, -0.01227827,
1786     -0.01220213, -0.01212366, -0.01204304, -0.01196032,
1787     -0.01187543, -0.01178829, -0.01169884, -0.01160718,
1788     -0.01151352, -0.01141809, -0.01132111, -0.01122272,
1789     -0.01112304, -0.01102217, -0.01092022, -0.01081730,
1790     -0.01071355, -0.01060912, -0.01050411, -0.01039854,
1791     -0.01029227, -0.01018521, -0.01007727, -0.00996859,
1792     -0.00985959, -0.00975063, -0.00964208, -0.00953420,
1793     -0.00942723, -0.00932135, -0.00921677, -0.00911364,
1794     -0.00901208, -0.00891220, -0.00881412, -0.00871792,
1795     -0.00862369, -0.00853153, -0.00844149, -0.00835360,
1796     -0.00826785, -0.00818422, -0.00810267, -0.00802312,
1797     -0.00794547, -0.00786959, -0.00779533, -0.00772165,
1798     -0.00764673, -0.00756886, -0.00748649, -0.00739905,
1799     -0.00730681, -0.00721006, -0.00710910, -0.00700419,
1800     -0.00689559, -0.00678354, -0.00666829, -0.00655007,
1801     -0.00642916, -0.00630579, -0.00618022, -0.00605267,
1802     -0.00592333, -0.00579240, -0.00566006, -0.00552651,
1803     -0.00539194, -0.00525653, -0.00512047, -0.00498390,
1804     -0.00484693, -0.00470969, -0.00457228, -0.00443482,
1805     -0.00429746, -0.00416034, -0.00402359, -0.00388738,
1806     -0.00375185, -0.00361718, -0.00348350, -0.00335100,
1807     -0.00321991, -0.00309043, -0.00296276, -0.00283698,
1808     -0.00271307, -0.00259098, -0.00247066, -0.00235210,
1809     -0.00223531, -0.00212030, -0.00200709, -0.00189576,
1810     -0.00178647, -0.00167936, -0.00157457, -0.00147216,
1811     -0.00137205, -0.00127418, -0.00117849, -0.00108498,
1812     -0.00099375, -0.00090486, -0.00081840, -0.00073444,
1813     -0.00065309, -0.00057445, -0.00049860, -0.00042551,
1814     -0.00035503, -0.00028700, -0.00022125, -0.00015761,
1815     -0.00009588, -0.00003583,  0.00002272,  0.00007975,
1816      0.00013501,  0.00018828,  0.00023933,  0.00028784,
1817      0.00033342,  0.00037572,  0.00041438,  0.00044939,
1818      0.00048103,  0.00050958,  0.00053533,  0.00055869,
1819      0.00058015,  0.00060022,  0.00061935,  0.00063781,
1820      0.00065568,  0.00067303,  0.00068991,  0.00070619,
1821      0.00072155,  0.00073567,  0.00074826,  0.00075912,
1822      0.00076811,  0.00077509,  0.00077997,  0.00078275,
1823      0.00078351,  0.00078237,  0.00077943,  0.00077484,
1824      0.00076884,  0.00076160,  0.00075335,  0.00074423,
1825      0.00073442,  0.00072404,  0.00071323,  0.00070209,
1826      0.00069068,  0.00067906,  0.00066728,  0.00065534,
1827      0.00064321,  0.00063086,  0.00061824,  0.00060534,
1828      0.00059211,  0.00057855,  0.00056462,  0.00055033,
1829      0.00053566,  0.00052063,  0.00050522,  0.00048949,
1830      0.00047349,  0.00045728,  0.00044092,  0.00042447,
1831      0.00040803,  0.00039166,  0.00037544,  0.00035943,
1832      0.00034371,  0.00032833,  0.00031333,  0.00029874,
1833      0.00028452,  0.00027067,  0.00025715,  0.00024395,
1834      0.00023104,  0.00021842,  0.00020606,  0.00019398,
1835      0.00018218,  0.00017069,  0.00015953,  0.00014871,
1836      0.00013827,  0.00012823,  0.00011861,  0.00010942,
1837      0.00010067,  0.00009236,  0.00008448,  0.00007703,
1838      0.00006999,  0.00006337,  0.00005714,  0.00005129,
1839      0.00004583,  0.00004072,  0.00003597,  0.00003157,
1840      0.00002752,  0.00002380,  0.00002042,  0.00001736,
1841      0.00001461,  0.00001215,  0.00000998,  0.00000807,
1842      0.00000641,  0.00000499,  0.00000378,  0.00000278,
1843      0.00000196,  0.00000132,  0.00000082,  0.00000046,
1844      0.00000020,  0.00000005, -0.00000003, -0.00000006,
1845     -0.00000004, -0.00000001,  0.00000001,  0.00000001,
1846      0.00000001,  0.00000001, -0.00000001, -0.00000004,
1847     -0.00000005, -0.00000003,  0.00000005,  0.00000020,
1848      0.00000043,  0.00000077,  0.00000123,  0.00000183,
1849      0.00000257,  0.00000348,  0.00000455,  0.00000581,
1850      0.00000727,  0.00000893,  0.00001080,  0.00001290,
1851      0.00001522,  0.00001778,  0.00002057,  0.00002362,
1852      0.00002691,  0.00003044,  0.00003422,  0.00003824,
1853      0.00004250,  0.00004701,  0.00005176,  0.00005676,
1854      0.00006200,  0.00006749,  0.00007322,  0.00007920,
1855      0.00008541,  0.00009186,  0.00009854,  0.00010543,
1856      0.00011251,  0.00011975,  0.00012714,  0.00013465,
1857      0.00014227,  0.00014997,  0.00015775,  0.00016558,
1858      0.00017348,  0.00018144,  0.00018947,  0.00019756,
1859      0.00020573,  0.00021399,  0.00022233,  0.00023076,
1860      0.00023924,  0.00024773,  0.00025621,  0.00026462,
1861      0.00027293,  0.00028108,  0.00028904,  0.00029675,
1862      0.00030419,  0.00031132,  0.00031810,  0.00032453,
1863      0.00033061,  0.00033632,  0.00034169,  0.00034672,
1864      0.00035142,  0.00035580,  0.00035988,  0.00036369,
1865      0.00036723,  0.00037053,  0.00037361,  0.00037647,
1866      0.00037909,  0.00038145,  0.00038352,  0.00038527,
1867      0.00038663,  0.00038757,  0.00038801,  0.00038790,
1868      0.00038717,  0.00038572,  0.00038350,  0.00038044,
1869      0.00037651,  0.00037170,  0.00036597,  0.00035936,
1870      0.00035191,  0.00034370,  0.00033480,  0.00032531,
1871      0.00031537,  0.00030512,  0.00029470,  0.00028417,
1872      0.00027354,  0.00026279,  0.00025191,  0.00024081,
1873      0.00022933,  0.00021731,  0.00020458,  0.00019101,
1874      0.00017654,  0.00016106,  0.00014452,  0.00012694,
1875      0.00010848,  0.00008929,  0.00006953,  0.00004935,
1876      0.00002884,  0.00000813, -0.00001268, -0.00003357,
1877     -0.00005457, -0.00007574, -0.00009714, -0.00011882,
1878     -0.00014082, -0.00016318, -0.00018595, -0.00020912,
1879     -0.00023265, -0.00025650, -0.00028060, -0.00030492,
1880     -0.00032941, -0.00035400, -0.00037865, -0.00040333,
1881     -0.00042804, -0.00045279, -0.00047759, -0.00050243,
1882     -0.00052728, -0.00055209, -0.00057685, -0.00060153,
1883     -0.00062611, -0.00065056, -0.00067485, -0.00069895,
1884     -0.00072287, -0.00074660, -0.00077013, -0.00079345,
1885     -0.00081653, -0.00083936, -0.00086192, -0.00088421,
1886     -0.00090619, -0.00092786, -0.00094919, -0.00097017,
1887     -0.00099077, -0.00101098, -0.00103077, -0.00105012,
1888     -0.00106904, -0.00108750, -0.00110549, -0.00112301,
1889     -0.00114005, -0.00115660, -0.00117265, -0.00118821,
1890     -0.00120325, -0.00121779, -0.00123180, -0.00124528,
1891     -0.00125822, -0.00127061, -0.00128243, -0.00129368,
1892     -0.00130435, -0.00131445, -0.00132395, -0.00133285,
1893     -0.00134113, -0.00134878, -0.00135577, -0.00136215,
1894     -0.00136797, -0.00137333, -0.00137834, -0.00138305,
1895     -0.00138748, -0.00139163, -0.00139551, -0.00139913,
1896     -0.00140249, -0.00140559, -0.00140844, -0.00141102,
1897     -0.00141334, -0.00141538, -0.00141714, -0.00141861,
1898     -0.00141978, -0.00142064, -0.00142117, -0.00142138,
1899     -0.00142125, -0.00142077, -0.00141992, -0.00141870,
1900     -0.00141710, -0.00141510, -0.00141268, -0.00140986,
1901     -0.00140663, -0.00140301, -0.00139900, -0.00139460,
1902     -0.00138981, -0.00138464, -0.00137908, -0.00137313,
1903     -0.00136680, -0.00136010, -0.00135301, -0.00134555,
1904     -0.00133772, -0.00132952, -0.00132095, -0.00131201,
1905     -0.00130272, -0.00129307, -0.00128309, -0.00127277,
1906     -0.00126211, -0.00125113, -0.00123981, -0.00122817,
1907     -0.00121622, -0.00120397, -0.00119141, -0.00117859,
1908     -0.00116552, -0.00115223, -0.00113877, -0.00112517,
1909     -0.00111144, -0.00109764, -0.00108377, -0.00106989,
1910 };
1911
1912 /* Q30 representation of ff_aac_eld_window_512 table */
1913 const DECLARE_ALIGNED(32, int, ff_aac_eld_window_512_fixed)[1920] = {
1914     0x003783ba, 0x005d04f4, 0x008ae226, 0x00c02021,
1915     0x00fb1804, 0x013a30a8, 0x017be9e6, 0x01bf296c,
1916     0x02033204, 0x0247502c, 0x028adab0, 0x02cd9568,
1917     0x030fa980, 0x03513dc0, 0x03927274, 0x03d363e0,
1918     0x04142e40, 0x0454edc0, 0x0495bd48, 0x04d6a060,
1919     0x051786d8, 0x05586548, 0x059935e8, 0x05d9feb0,
1920     0x061acea0, 0x065bb680, 0x069cc800, 0x06de13f0,
1921     0x071fa748, 0x07618b80, 0x07a3c7a8, 0x07e66da0,
1922     0x082999d0, 0x086d6590, 0x08b1e640, 0x08f72850,
1923     0x093d3120, 0x09840550, 0x09cba880, 0x0a1415f0,
1924     0x0a5d41b0, 0x0aa720d0, 0x0af1a9a0, 0x0b3cce70,
1925     0x0b887ec0, 0x0bd4ac10, 0x0c214a70, 0x0c6e5130,
1926     0x0cbbba50, 0x0d098130, 0x0d57a240, 0x0da61a60,
1927     0x0df4e620, 0x0e4401d0, 0x0e9369f0, 0x0ee31de0,
1928     0x0f332000, 0x0f837180, 0x0fd412a0, 0x10250260,
1929     0x10763f20, 0x10c7c660, 0x11199560, 0x116baa00,
1930     0x11be0400, 0x1210a1c0, 0x12638180, 0x12b69ee0,
1931     0x1309f3e0, 0x135d7ac0, 0x13b12dc0, 0x1404ffa0,
1932     0x1458dd40, 0x14acb720, 0x15008120, 0x15543260,
1933     0x15a7c460, 0x15fb3160, 0x164e7520, 0x16a193c0,
1934     0x16f49740, 0x17478720, 0x179a6720, 0x17ed3720,
1935     0x183ff460, 0x18929c20, 0x18e52b00, 0x19379c00,
1936     0x1989e900, 0x19dc0ca0, 0x1a2e0280, 0x1a7fc400,
1937     0x1ad14a00, 0x1b228ec0, 0x1b738ea0, 0x1bc44540,
1938     0x1c14ada0, 0x1c64c380, 0x1cb48440, 0x1d03f420,
1939     0x1d531c00, 0x1da20160, 0x1df0a660, 0x1e3f0860,
1940     0x1e8d2340, 0x1edaf340, 0x1f2875e0, 0x1f75a700,
1941     0x1fc281e0, 0x200f0380, 0x205b2ac0, 0x20a6f980,
1942     0x20f27200, 0x213d9600, 0x21886580, 0x21d2e040,
1943     0x221d0640, 0x2266d6c0, 0x22b05180, 0x22f97580,
1944     0x23424280, 0x238ab880, 0x23d2d780, 0x241aa040,
1945     0x246213c0, 0x24a93300, 0x24efff80, 0x25367b40,
1946     0x256f68c0, 0x25b53580, 0x25faa580, 0x263fb940,
1947     0x26847080, 0x26c8cbc0, 0x270ccb00, 0x27506e40,
1948     0x2793b600, 0x27d6a200, 0x281932c0, 0x285b6880,
1949     0x289d4400, 0x28dec5c0, 0x291feec0, 0x2960bf80,
1950     0x29a137c0, 0x29e15800, 0x2a212000, 0x2a609080,
1951     0x2a9fa980, 0x2ade6b40, 0x2b1cd600, 0x2b5aea00,
1952     0x2b98a740, 0x2bd60d80, 0x2c131cc0, 0x2c4fd500,
1953     0x2c8c3600, 0x2cc83f00, 0x2d03f040, 0x2d3f48c0,
1954     0x2d7a48c0, 0x2db4ef40, 0x2def3c40, 0x2e292ec0,
1955     0x2e62c700, 0x2e9c0400, 0x2ed4e580, 0x2f0d6ac0,
1956     0x2f4592c0, 0x2f7d5c80, 0x2fb4c6c0, 0x2febd140,
1957     0x30227b40, 0x3058c400, 0x308eab40, 0x30c43040,
1958     0x30f95100, 0x312e0d00, 0x31626240, 0x31965040,
1959     0x31c9d5c0, 0x31fcf240, 0x322fa480, 0x3261ec00,
1960     0x3293c7c0, 0x32c53680, 0x32f63780, 0x3326c9c0,
1961     0x3356ec00, 0x33869d00, 0x33b5db80, 0x33e4a700,
1962     0x3412fdc0, 0x3440df40, 0x346e4a80, 0x349b3e40,
1963     0x34c7ba00, 0x34f3bd80, 0x351f47c0, 0x354a5840,
1964     0x3574ee40, 0x359f0900, 0x35c8a840, 0x35f1cb80,
1965     0x361a71c0, 0x36429a80, 0x366a4580, 0x36917280,
1966     0x36b82100, 0x36de5180, 0x37040340, 0x372936c0,
1967     0x374dec40, 0x37722340, 0x3795dc40, 0x37b91780,
1968     0x37dbd600, 0x37fe18c0, 0x381fe080, 0x38412e00,
1969     0x38620280, 0x38825f40, 0x38a24540, 0x38c1b680,
1970     0x38e0b5c0, 0x38ff4540, 0x391d6800, 0x393b20c0,
1971     0x39587280, 0x39755fc0, 0x3991eb80, 0x39ae1a80,
1972     0x39c9f280, 0x39e57980, 0x3a00b600, 0x3a1bae00,
1973     0x3a366800, 0x3a50e9c0, 0x3a6b3a40, 0x3a8560c0,
1974     0x3a9f6640, 0x3ab95400, 0x3ad332c0, 0x3aed0680,
1975     0x3b06cf80, 0x3b208d40, 0x3b3a3e80, 0x3b53cb80,
1976     0x3b6d0780, 0x3b85c380, 0x3b9dd0c0, 0x3bb4eb40,
1977     0x3bcabac0, 0x3bdee680, 0x3bf11680, 0x3c011440,
1978     0x3c179ac0, 0x3c1c4f00, 0x3c21aa40, 0x3c278880,
1979     0x3c2dba80, 0x3c341140, 0x3c3a5e80, 0x3c409100,
1980     0x3c46b480, 0x3c4cd5c0, 0x3c530180, 0x3c593cc0,
1981     0x3c5f84c0, 0x3c65d640, 0x3c6c2e40, 0x3c728b40,
1982     0x3c78ee80, 0x3c7f5840, 0x3c85c940, 0x3c8c4240,
1983     0x3c92c380, 0x3c994cc0, 0x3c9fde40, 0x3ca67880,
1984     0x3cad1ac0, 0x3cb3c540, 0x3cba7800, 0x3cc132c0,
1985     0x3cc7f640, 0x3ccec280, 0x3cd59800, 0x3cdc76c0,
1986     0x3ce35e80, 0x3cea4f00, 0x3cf147c0, 0x3cf84900,
1987     0x3cff5340, 0x3d0666c0, 0x3d0d8400, 0x3d14ab40,
1988     0x3d1bdc00, 0x3d2315c0, 0x3d2a5880, 0x3d31a440,
1989     0x3d38f900, 0x3d405780, 0x3d47c040, 0x3d4f3300,
1990     0x3d56af40, 0x3d5e3500, 0x3d65c380, 0x3d6d5ac0,
1991     0x3d74fb40, 0x3d7ca540, 0x3d845900, 0x3d8c1680,
1992     0x3d93dd00, 0x3d9bac80, 0x3da38400, 0x3dab6400,
1993     0x3db34c80, 0x3dbb3dc0, 0x3dc33840, 0x3dcb3bc0,
1994     0x3dd347c0, 0x3ddb5bc0, 0x3de37780, 0x3deb9b00,
1995     0x3df3c600, 0x3dfbf940, 0x3e0434c0, 0x3e0c7840,
1996     0x3e14c3c0, 0x3e1d1640, 0x3e256f80, 0x3e2dcf40,
1997     0x3e363580, 0x3e3ea300, 0x3e4717c0, 0x3e4f9380,
1998     0x3e581600, 0x3e609e40, 0x3e692c40, 0x3e71bf80,
1999     0x3e7a5840, 0x3e82f740, 0x3e8b9c40, 0x3e944700,
2000     0x3e9cf780, 0x3ea5ad00, 0x3eae66c0, 0x3eb72500,
2001     0x3ebfe780, 0x3ec8af00, 0x3ed17b80, 0x3eda4d00,
2002     0x3ee32340, 0x3eebfd40, 0x3ef4dac0, 0x3efdbbc0,
2003     0x3f06a040, 0x3f0f88c0, 0x3f187540, 0x3f216600,
2004     0x3f2a5a80, 0x3f335200, 0x3f3c4c40, 0x3f454940,
2005     0x3f4e4940, 0x3f574c80, 0x3f605340, 0x3f695dc0,
2006     0x3f726b40, 0x3f7b7b40, 0x3f848dc0, 0x3f8da240,
2007     0x3f96b940, 0x3f9fd300, 0x3fa8f040, 0x3fb21080,
2008     0x3fbb33c0, 0x3fc459c0, 0x3fcd81c0, 0x3fd6abc0,
2009     0x3fdfd780, 0x3fe90480, 0x3ff23280, 0x3ffb6100,
2010     0x40049f80, 0x400dd080, 0x40170400, 0x40203880,
2011     0x40296f00, 0x4032a600, 0x403bde00, 0x40451680,
2012     0x404e4f00, 0x40578700, 0x4060be80, 0x4069f500,
2013     0x40732b80, 0x407c6280, 0x40859980, 0x408ed100,
2014     0x40980800, 0x40a13f00, 0x40aa7500, 0x40b3a980,
2015     0x40bcdd80, 0x40c61180, 0x40cf4500, 0x40d87800,
2016     0x40e1ab00, 0x40eadc80, 0x40f40c80, 0x40fd3a80,
2017     0x41066700, 0x410f9300, 0x4118bd80, 0x4121e700,
2018     0x412b0f80, 0x41343580, 0x413d5880, 0x41467980,
2019     0x414f9780, 0x4158b380, 0x4161cd80, 0x416ae580,
2020     0x4173fb00, 0x417d0d00, 0x41861b80, 0x418f2600,
2021     0x41982c80, 0x41a12f80, 0x41aa3000, 0x41b32c80,
2022     0x41bc2580, 0x41c51a00, 0x41ce0900, 0x41d6f300,
2023     0x41dfd800, 0x41e8b880, 0x41f19400, 0x41fa6b80,
2024     0x42033d00, 0x420c0900, 0x4214cf00, 0x421d8e00,
2025     0x42264680, 0x422ef980, 0x4237a680, 0x42404d80,
2026     0x4248ee00, 0x42518780, 0x425a1a00, 0x4262a480,
2027     0x426b2800, 0x4273a400, 0x427c1980, 0x42848880,
2028     0x428cef80, 0x42954f00, 0x429da680, 0x42a5f500,
2029     0x42ae3b80, 0x42b67a00, 0x42beb100, 0x42c6e080,
2030     0x42cf0780, 0x42d72680, 0x42df3c00, 0x42e74880,
2031     0x42ef4c80, 0x42f74880, 0x42ff3c80, 0x43072880,
2032     0x430f0c80, 0x4316e800, 0x431eba00, 0x43268380,
2033     0x432e4480, 0x4335fd00, 0x433dae80, 0x43455800,
2034     0x434cfa00, 0x43549400, 0x435c2500, 0x4363ad80,
2035     0x436b2e00, 0x4372a700, 0x437a1800, 0x43818200,
2036     0x4388e400, 0x43903f00, 0x43979200, 0x439edd00,
2037     0x43a62080, 0x43ad5c80, 0x43b49180, 0x43bbbf80,
2038     0x43c2e800, 0x43ca0b00, 0x43d12980, 0x43d84280,
2039     0x43df5200, 0x43e65500, 0x43ed4800, 0x43f43080,
2040     0x43fb1c80, 0x44021b80, 0x44093a00, 0x44106480,
2041     0x44176700, 0x441e0c00, 0x44241e00, 0x44297380,
2042     0x4425dc00, 0x44240180, 0x441ff300, 0x4419e300,
2043     0x44123f80, 0x44097500, 0x43ffe900, 0x43f5e700,
2044     0x43eb9f00, 0x43e13f00, 0x43d6f200, 0x43ccbd80,
2045     0x43c28400, 0x43b82780, 0x43ad8b00, 0x43a29c80,
2046     0x43975180, 0x438ba080, 0x437f8180, 0x4372fd00,
2047     0x43662b00, 0x43592480, 0x434c0000, 0x433ecd00,
2048     0x43319180, 0x43245300, 0x43171700, 0x4309da80,
2049     0x42fc9300, 0x42ef3500, 0x42e1b600, 0x42d40280,
2050     0x42c60000, 0x42b79300, 0x42a8a180, 0x42991a00,
2051     0x4288f200, 0x42782100, 0x42669e00, 0x42546880,
2052     0x42418800, 0x422e0480, 0x4219e500, 0x42053680,
2053     0x41f00980, 0x41da7080, 0x41c47b00, 0x41ae3600,
2054     0x4197ab80, 0x4180e400, 0x4169e780, 0x4152bb00,
2055     0x413b5e80, 0x4123d180, 0x410c1480, 0x40f42100,
2056     0x40dbed00, 0x40c36c80, 0x40aa9600, 0x40915f80,
2057     0x4077c100, 0x405db280, 0x40432c80, 0x40282580,
2058     0x400c9280, 0x3ff068c0, 0x3fd39dc0, 0x3fb62bc0,
2059     0x3f981200, 0x3f795080, 0x3f59e780, 0x3f39ebc0,
2060     0x3f198680, 0x3ef8e100, 0x3ed82440, 0x3eb76c80,
2061     0x3e96c940, 0x3e764900, 0x3e55f980, 0x3e35cb00,
2062     0x3e1590c0, 0x3df51cc0, 0x3dd44200, 0x3db2e640,
2063     0x3d910200, 0x3d6e8e40, 0x3d4b8480, 0x3d27e600,
2064     0x3d03bc00, 0x3cdf0fc0, 0x3cb9eb80, 0x3c946240,
2065     0x3c6e9180, 0x3c489700, 0x3c229000, 0x3bfc95c0,
2066     0x3bd6bd00, 0x3bb11a80, 0x3b8bc180, 0x3b669bc0,
2067     0x3b416a00, 0x3b1beb80, 0x3af5e140, 0x3acf3300,
2068     0x3aa7ef80, 0x3a802780, 0x3a57eb80, 0x3a2f5880,
2069     0x3a069640, 0x39ddcd40, 0x39b524c0, 0x398ca540,
2070     0x39643800, 0x393bc540, 0x39133580, 0x38ea7ac0,
2071     0x38c19040, 0x389871c0, 0x386f1b40, 0x38458e00,
2072     0x381bd000, 0x37f1e780, 0x37c7db00, 0x379db080,
2073     0x37736e80, 0x37491b00, 0x371ebcc0, 0x36f45980,
2074     0x36c96600, 0x369ed300, 0x36740380, 0x3648ffc0,
2075     0x361dcf40, 0x35f27a00, 0x35c70780, 0x359b7f80,
2076     0x356fe9c0, 0x35444dc0, 0x3518b280, 0x34ed1940,
2077     0x34c17c00, 0x3495d4c0, 0x346a1d40, 0x343e4300,
2078     0x34122840, 0x33e5ae00, 0x33b8b780, 0x338b4dc0,
2079     0x335d9f00, 0x332fdc00, 0x33023440, 0x32d4cc40,
2080     0x32a7bc80, 0x327b1d40, 0x324f04c0, 0x32235280,
2081     0x31f7b100, 0x31cbc7c0, 0x319f4140, 0x3171fb40,
2082     0x31440840, 0x31157d00, 0x30e66e80, 0x30b6fc40,
2083     0x30875080, 0x30579600, 0x3027f700, 0x2ff89140,
2084     0x2fc976c0, 0x2f9ab880, 0x2f6c6780, 0x2f3e8780,
2085     0x2f111000, 0x2ee3f800, 0x2eb73480, 0x2e8a9840,
2086     0x2e5dd340, 0x2e3093c0, 0x2e028ac0, 0x2dd39680,
2087     0x2da3c480, 0x2d732380, 0x2d41c400, 0x2d0fd300,
2088     0x2cdd9ac0, 0x2cab6640, 0x2c797f00, 0x2c480d40,
2089     0x2c171700, 0x2be6a0c0, 0x2bb6ae80, 0x2b8739c0,
2090     0x2b583200, 0x2b298600, 0x2afb2400, 0x2accfa40,
2091     0x2a9ef500, 0x2a710100, 0x2a430ac0, 0x2a14f9c0,
2092     0x29e6b0c0, 0x29b81240, 0x29890140, 0x29596900,
2093     0x29293e00, 0x28f87500, 0x28c70340, 0x2894efc0,
2094     0x28625140, 0x282f4040, 0x27fbd5c0, 0x27c83540,
2095     0x27948ec0, 0x27611240, 0x272def80, 0x26fb4cc0,
2096     0x26c94780, 0x2697fcc0, 0x26678880, 0x2637f740,
2097     0x26094540, 0x25db6dc0, 0x25ae6b40, 0x25821680,
2098     0x255627c0, 0x252a55c0, 0x24fe5680, 0x24d1db40,
2099     0x24a48fc0, 0x24761f40, 0x244637c0, 0x2414c900,
2100     0x23e20240, 0x23ae1740, 0x23793bc0, 0x2343cc00,
2101     0x230e4ac0, 0x22d93c80, 0x22a52400, 0x22725180,
2102     0x2240e480, 0x2210f9c0, 0x21e2ab40, 0x21b5c7c0,
2103     0x2189d2c0, 0x215e4d40, 0x2132b900, 0x2106ba80,
2104     0x20da1940, 0x20ac9d80, 0x207e11c0, 0x204e77c0,
2105     0x201e0880, 0x1fecfea0, 0x1fbb94e0, 0x1f8a0500,
2106     0x1f59d340, 0x1f27ac20, 0x1ef67c60, 0x1ec64e40,
2107     0x1e96fdc0, 0x1e686400, 0x1e3a5a00, 0x1e0cae80,
2108     0x1ddf25e0, 0x1db18460, 0x1d839020, 0x1d5536e0,
2109     0x1d268e80, 0x1cf7ae60, 0x1cc8aea0, 0x1c99af00,
2110     0x1c6ad820, 0x1c3c5280, 0x1c0e4500, 0x1be0ab60,
2111     0x1bb35620, 0x1b861400, 0x1b58b480, 0x1b2b1a00,
2112     0x1afd39c0, 0x1acf09a0, 0x1aa080c0, 0x1a71b020,
2113     0x1a42c2a0, 0x1a13e420, 0x19e53fc0, 0x19b6eb00,
2114     0x1988e620, 0x195b3060, 0x192dc8a0, 0x1900a8a0,
2115     0x18d3c4e0, 0x18a711e0, 0x187a83e0, 0x184e10e0,
2116     0x1821b060, 0x17f55a00, 0x17c90580, 0x179cb100,
2117     0x177060a0, 0x17441880, 0x1717dd20, 0x16ebb080,
2118     0x16bf9260, 0x169382e0, 0x166781c0, 0x163b8f80,
2119     0x160fade0, 0x15e3de40, 0x15b82220, 0x158c7ae0,
2120     0x1560ea80, 0x15357240, 0x150a1400, 0x14ded020,
2121     0x14b3a640, 0x148895a0, 0x145d9dc0, 0x1432bde0,
2122     0x1407f540, 0x13dd4380, 0x13b2a860, 0x13882460,
2123     0x135db880, 0x133365a0, 0x13092cc0, 0x12df0e60,
2124     0x12b50aa0, 0x128b2120, 0x12615200, 0x12379da0,
2125     0x120e04c0, 0x11e48820, 0x11bb2860, 0x1191e600,
2126     0x1168c080, 0x113fb7a0, 0x1116cb40, 0x10edfba0,
2127     0x10c54a00, 0x109cb7a0, 0x10744560, 0x104bf420,
2128     0x1023c3e0, 0x0ffbb500, 0x0fd3c790, 0x0fabfbe0,
2129     0x0f845290, 0x0f5ccc40, 0x0f356970, 0x0f0e2a60,
2130     0x0ee70eb0, 0x0ec01610, 0x0e994040, 0x0e728d50,
2131     0x0e4bfdf0, 0x0e2592c0, 0x0dff4c70, 0x0dd92af0,
2132     0x0db32da0, 0x0d8d53e0, 0x0d679cf0, 0x0d420880,
2133     0x0d1c9680, 0x0cf74700, 0x0cd219f0, 0x0cad0eb0,
2134     0x0c882450, 0x0c6359a0, 0x0c3ead90, 0x0c1a1f80,
2135     0x0bf5af40, 0x0bd15cf0, 0x0bad2870, 0x0b891440,
2136     0x0b652530, 0x0b416020, 0x0b1dca30, 0x0afa6810,
2137     0x0ad73ee0, 0x0ab45370, 0x0a91aac0, 0x0a6f49b0,
2138     0x0a4da7f0, 0x0a2c7e20, 0x0a0ba310, 0x09eb1220,
2139     0x09cac6e0, 0x09aabc70, 0x098aee40, 0x096b57a0,
2140     0x094bf400, 0x092cbea0, 0x090db2e0, 0x08eecef0,
2141     0x08d01360, 0x08b18110, 0x089318b0, 0x0874db00,
2142     0x0856c880, 0x0838e1b0, 0x081b2730, 0x07fd99a8,
2143     0x07e03a28, 0x07c309a8, 0x07a60910, 0x07893918,
2144     0x076c99d0, 0x07502b90, 0x0733ee70, 0x0717e2f8,
2145     0x06fc09b8, 0x06e06378, 0x06c4f0b8, 0x06a9b1c8,
2146     0x068ea6a0, 0x0673cf18, 0x06592b18, 0x063ebad0,
2147     0x06247ed0, 0x060a7780, 0x05f0a570, 0x05d708b8,
2148     0x05bda128, 0x05a46e80, 0x058b7078, 0x0572a740,
2149     0x055a1330, 0x0541b4d8, 0x05298c98, 0x05119a88,
2150     0x04f9de50, 0x04e257a0, 0x04cb0630, 0x04b3ea00,
2151     0x049d0378, 0x04865308, 0x046fd918, 0x045995a8,
2152     0x04438860, 0x042db0d0, 0x04180ea0, 0x0402a1d0,
2153     0x03ed6abc, 0x03d869b8, 0x03c39f28, 0x03af0af0,
2154     0x039aaca0, 0x038683b4, 0x03728fc0, 0x035ed0b0,
2155     0x034b46c4, 0x0337f254, 0x0324d3a0, 0x0311eab0,
2156     0x02ff370c, 0x02ecb85c, 0x02da6e34, 0x02c858a8,
2157     0x02b67820, 0x02a4cd28, 0x02935820, 0x02821920,
2158     0x02710fac, 0x02603b54, 0x024f9bb4, 0x023f308c,
2159     0x022ef9e8, 0x021ef7c8, 0x020f2a40, 0x01ff908e,
2160     0x01f02974, 0x01e0f38a, 0x01d1ed94, 0x01c316d6,
2161     0x01b46f5e, 0x01a5f720, 0x0197ae28, 0x018994ea,
2162     0x017bac54, 0x016df546, 0x016070ae, 0x01532078,
2163     0x01460760, 0x01392834, 0x012c85a4, 0x01201f7a,
2164     0x0113f27c, 0x0107fb6c, 0x00fc36fd, 0x00f0a2d5,
2165     0x00e53d51, 0x00da050f, 0x00cef88c, 0x00c41869,
2166     0x00b9671f, 0x00aee754, 0x00a49b80, 0x009a8384,
2167     0x00909ca6, 0x0086e400, 0x007d56e3, 0x0073f48e,
2168     0x006abe70, 0x0061b5de, 0x0058dc65, 0x005033b4,
2169     0x0047be30, 0x003f7e30, 0x00377619, 0x002fa4d4,
2170     0x002805ee, 0x002094cb, 0x00194cb8, 0x00122856,
2171     0x000b215c, 0x00043148, 0xfffd51f0, 0xfff683a0,
2172     0xffefcd4d, 0xffe9362f, 0xffe2c57d, 0xffdc855c,
2173     0xffd682c4, 0xffd0cad4, 0xffcb6a2c, 0xffc663bc,
2174     0xffc1b06f, 0xffbd48e1, 0xffb92570, 0xffb53a54,
2175     0xffb1779c, 0xffadcd38, 0xffaa2b42, 0xffa68855,
2176     0xffa2e141, 0xff9f332c, 0xff9b7b9c, 0xff97bf2e,
2177     0xff9409e2, 0xff9067e2, 0xff8ce556, 0xff898bf0,
2178     0xff866306, 0xff8371d0, 0xff80bf63, 0xff7e4eba,
2179     0xff7c1eaa, 0xff7a2e04, 0xff787b47, 0xff770280,
2180     0xff75bd06, 0xff74a3f7, 0xff73b0b2, 0xff72dd02,
2181     0xff72237e, 0xff717ebe, 0xff70e94c, 0xff705f59,
2182     0xff6fde6a, 0xff6f6426, 0xff6eee40, 0xff6e7d0b,
2183     0xff6e1359, 0xff6db403, 0xff6d61f8, 0xff6d2054,
2184     0xff6cf267, 0xff6cdb76, 0xff6cdebb, 0xff6cff47,
2185     0xff6d3fc9, 0xff6da306, 0xff6e2b82, 0xff6eda13,
2186     0xff6fad6d, 0xff70a463, 0xff71bd9d, 0xff72f662,
2187     0xff744a80, 0xff75b5c4, 0xff773409, 0xff78c0a6,
2188     0xff7a5693, 0xff7bf0dc, 0xff7d8abb, 0xff7f2301,
2189     0xff80bc08, 0xff825854, 0xff83fa56, 0xff85a55c,
2190     0xff875d22, 0xff892598, 0xff8b025d, 0xff8cf53c,
2191     0xff8efdf4, 0xff911c48, 0xff934fc9, 0xff959675,
2192     0xff97ec86, 0xff9a4e35, 0xff9cb7d2, 0xff9f26cc,
2193     0xffa199ce, 0xffa40f74, 0xffa6867c, 0xffa8feb2,
2194     0xffab78e0, 0xffadf5c7, 0xffb07640, 0xffb2fba0,
2195     0xffb587a2, 0xffb81bfb, 0xffbaba46, 0xffbd6236,
2196     0xffc011a8, 0xffc2c679, 0xffc57e84, 0xffc83894,
2197     0xffcaf41a, 0xffcdb0b8, 0xffd06e17, 0xffd32bf7,
2198     0xffd5ea38, 0xffd8a8c3, 0xffdb6764, 0xffde25fb,
2199     0xffe0e471, 0xffe3a2b2, 0xffe66087, 0xffe91da6,
2200     0xffebd978, 0xffee9351, 0xfff14ab0, 0xfff3fef6,
2201     0xfff6af94, 0xfff95c0c, 0xfffc03c7, 0xfffea659,
2202     0x00015885, 0x0003f2e9, 0x00068a73, 0x00091e8d,
2203     0x000bae7f, 0x000e39bf, 0x0010bf96, 0x00133f78,
2204     0x0015b8c4, 0x00182ae4, 0x001a9558, 0x001cf7b2,
2205     0x001f51e0, 0x0021a3b4, 0x0023ed25, 0x00262df2,
2206     0x002865c5, 0x002a9469, 0x002cb967, 0x002ed4aa,
2207     0x0030e607, 0x0032ed88, 0x0034eb2f, 0x0036de23,
2208     0x0038c503, 0x003a9e4c, 0x003c68a6, 0x003e23dd,
2209     0x003fd0db, 0x00417083, 0x0043038b, 0x00448adf,
2210     0x00460740, 0x0047799c, 0x0048e2b2, 0x004a42af,
2211     0x004b98fb, 0x004ce50b, 0x004e2654, 0x004f5b5d,
2212     0x005081c3, 0x00519716, 0x00529920, 0x005386d0,
2213     0x0054603f, 0x00552581, 0x0055d6cc, 0x00567558,
2214     0x0057033c, 0x005782b4, 0x0057f5b6, 0x00585e46,
2215     0x0058be68, 0x005917ff, 0x00596ce4, 0x0059bcc0,
2216     0x005a053a, 0x005a43ee, 0x005a76ae, 0x005a9b37,
2217     0x005aaf38, 0x005ab07a, 0x005a9cef, 0x005a7349,
2218     0x005a3328, 0x0059dc0a, 0x00596db0, 0x0058e8e5,
2219     0x00584f98, 0x0057a3c0, 0x0056e738, 0x00561bec,
2220     0x005543df, 0x0054610b, 0x0053753e, 0x0052824e,
2221     0x005189f6, 0x00508dec, 0x004f8fc0, 0x004e8fd0,
2222     0x004d8d26, 0x004c86d7, 0x004b7c0a, 0x004a6b33,
2223     0x00495239, 0x00482f0e, 0x0046ffc4, 0x0045c201,
2224     0x00447337, 0x004310cc, 0x00419871, 0x004008e4,
2225     0x003e6231, 0x003ca460, 0x003acf8a, 0x0038e57a,
2226     0x0036e981, 0x0034defa, 0x0032c94b, 0x0030acc6,
2227     0x002e8eb4, 0x002c7452, 0x002a62aa, 0x00285bbf,
2228     0x00265eda, 0x00246b24, 0x00227f9c, 0x002098e7,
2229     0x001eb13b, 0x001cc2ef, 0x001ac899, 0x0018be3d,
2230     0x0016a198, 0x00147065, 0x00122897, 0x000fcbc5,
2231     0x000d5f03, 0x000ae77a, 0x00086a52, 0x0005eb92,
2232     0x00036e4a, 0x0000f57e, 0xfffe8414, 0xfffc1a78,
2233     0xfff9b6bb, 0xfff756d9, 0xfff4f8d0, 0xfff29add,
2234     0xfff03b87, 0xffedd94c, 0xffeb7295, 0xffe9072b,
2235     0xffe6981a, 0xffe4265b, 0xffe1b30e, 0xffdf3f2b,
2236     0xffdccb9e, 0xffda5993, 0xffd7ea0c, 0xffd57d60,
2237     0xffd31302, 0xffd0aa27, 0xffce4243, 0xffcbdb40,
2238     0xffc97595, 0xffc711a2, 0xffc4af9d, 0xffc24fa6,
2239     0xffbff1de, 0xffbd9699, 0xffbb3e44, 0xffb8e8d5,
2240     0xffb695f4, 0xffb44522, 0xffb1f627, 0xffafa8f0,
2241     0xffad5d91, 0xffab140a, 0xffa8cc1c, 0xffa68590,
2242     0xffa44066, 0xffa1fca0, 0xff9fba30, 0xff9d7902,
2243     0xff9b3916, 0xff98fa6d, 0xff96bd06, 0xff9480b6,
2244     0xff924532, 0xff900a24, 0xff8dcf41, 0xff8b9433,
2245     0xff895884, 0xff871bd3, 0xff84dd8a, 0xff829d34,
2246     0xff805a43, 0xff7e142d, 0xff7bca71, 0xff797c83,
2247     0xff7729e3, 0xff74d204, 0xff727451, 0xff70101e,
2248     0xff6da493, 0xff6b30d1, 0xff68b3f4, 0xff662d31,
2249     0xff639bd1, 0xff60ff09, 0xff5e562c, 0xff5ba3e0,
2250     0xff58ee39, 0xff563c22, 0xff5394f3, 0xff50fd1e,
2251     0xff4e7599, 0xff4bff32, 0xff499ad4, 0xff47490a,
2252     0xff450a36, 0xff42deb7, 0xff40c6cf, 0xff3ec2be,
2253     0xff3cd299, 0xff3af681, 0xff392e6a, 0xff377a4a,
2254     0xff35d9f7, 0xff344d44, 0xff32d3e8, 0xff316d96,
2255     0xff3019d9, 0xff2ed83a, 0xff2da82f, 0xff2c88bf,
2256     0xff2b78b4, 0xff2a76cc, 0xff298184, 0xff289890,
2257     0xff27bc7d, 0xff26ee21, 0xff262e28, 0xff257cdc,
2258     0xff24d9f4, 0xff244524, 0xff23be15, 0xff234488,
2259     0xff22d852, 0xff227947, 0xff22273d, 0xff21e1d2,
2260     0xff21a871, 0xff217a79, 0xff215748, 0xff213eca,
2261     0xff21319e, 0xff21305c, 0xff213baf, 0xff2153c2,
2262     0xff21782b, 0xff21a892, 0xff21e477, 0xff222bda,
2263     0xff227f26, 0xff22debd, 0xff234b09, 0xff23c394,
2264     0xff24471d, 0xff24d42b, 0xff25695c, 0xff260538,
2265     0xff26a652, 0xff274b28, 0xff27f22d, 0xff2899d2,
2266     0xff295975, 0xff29f2ad, 0xff2a96d7, 0xff2b45f4,
2267     0xff2bffe3, 0xff2cc4ba, 0xff2d9458, 0xff2e6ede,
2268     0xff2f544c, 0xff3044b7, 0xff314034, 0xff3246fa,
2269     0xff33591e, 0xff3476e0, 0xff35a060, 0xff36d534,
2270     0xff38148f, 0xff395daf, 0xff3aafd4, 0xff3c0ac8,
2271     0xff3d6ed6, 0xff3edc54, 0xff405382, 0xff41d3f5,
2272     0xff435ccc, 0xff44ed0f, 0xff4683d3, 0xff482080,
2273     0xff49c297, 0xff4b69ab, 0xff4d1547, 0xff4ec4f5,
2274     0xff50781d, 0xff522e20, 0xff53e692, 0xff55a15d,
2275     0xff575f17, 0xff592022, 0xff5ae4de, 0xff5cacb4,
2276     0xff5e75e2, 0xff603ee5, 0xff62062f, 0xff63caab,
2277     0xff658b55, 0xff67476d, 0xff68fe11, 0xff6aaea0,
2278     0xff6c5899, 0xff6dfb86, 0xff6f96e7, 0xff712a65,
2279     0xff72b59f, 0xff74382b, 0xff75b1d3, 0xff772276,
2280     0xff788a20, 0xff79e8e5, 0xff7b3ef0, 0xff7c8c98,
2281     0xff7dd249, 0xff7f108c, 0xff804804, 0xff817d0e,
2282     0xff82b74a, 0xff83fde6, 0xff855762, 0xff86c622,
2283     0xff884904, 0xff89ded1, 0xff8b8646, 0xff8d3e4c,
2284     0xff8f05cc, 0xff90dbc6, 0xff92bf2a, 0xff94af04,
2285     0xff96aa26, 0xff98af9a, 0xff9abe48, 0xff9cd543,
2286     0xff9ef3c1, 0xffa118ea, 0xffa343fd, 0xffa57423,
2287     0xffa7a890, 0xffa9e084, 0xffac1b31, 0xffae5802,
2288     0xffb09680, 0xffb2d621, 0xffb51678, 0xffb75704,
2289     0xffb99726, 0xffbbd645, 0xffbe13d7, 0xffc04f26,
2290     0xffc2879a, 0xffc4bc72, 0xffc6ed24, 0xffc918e3,
2291     0xffcb3eb8, 0xffcd5dcc, 0xffcf7549, 0xffd184d8,
2292     0xffd38c8f, 0xffd58ca4, 0xffd7854d, 0xffd97694,
2293     0xffdb606e, 0xffdd42d1, 0xffdf1da8, 0xffe0f09b,
2294     0xffe2bb00, 0xffe47c41, 0xffe633c6, 0xffe7e150,
2295     0xffe98534, 0xffeb1fb4, 0xffecb10e, 0xffee3944,
2296     0xffefb7e9, 0xfff12cbe, 0xfff29762, 0xfff3f789,
2297     0xfff54cbe, 0xfff69695, 0xfff7d4b8, 0xfff90748,
2298     0xfffa2ee5, 0xfffb4c3c, 0xfffc6003, 0xfffd6af0,
2299     0xfffe6dda, 0xffff69b8, 0x00005f4b, 0x00014e7f,
2300     0x00023646, 0x000315b4, 0x0003ebd3, 0x0004b74a,
2301     0x00057677, 0x000627e2, 0x0006ca09, 0x00075ce1,
2302     0x0007e196, 0x00085955, 0x0008c556, 0x00092751,
2303     0x00098153, 0x0009d581, 0x000a25be, 0x000a732b,
2304     0x000abe1f, 0x000b06e4, 0x000b4db1, 0x000b91fa,
2305     0x000bd266, 0x000c0da0, 0x000c426e, 0x000c6ffb,
2306     0x000c95b0, 0x000cb2f7, 0x000cc76e, 0x000cd317,
2307     0x000cd647, 0x000cd17f, 0x000cc52b, 0x000cb1ea,
2308     0x000c98c0, 0x000c7a62, 0x000c57c7, 0x000c3187,
2309     0x000c0862, 0x000bdcd8, 0x000baf81, 0x000b80c7,
2310     0x000b50ec, 0x000b202f, 0x000aeec6, 0x000abcb2,
2311     0x000a89d2, 0x000a5605, 0x000a2116, 0x0009eafb,
2312     0x0009b37d, 0x00097a9d, 0x00094030, 0x00090440,
2313     0x0008c6b9, 0x000887ae, 0x0008470c, 0x00080512,
2314     0x0007c1f6, 0x00077df9, 0x0007395a, 0x0006f45b,
2315     0x0006af67, 0x00066abe, 0x000626b6, 0x0005e38f,
2316     0x0005a1a0, 0x0005611e, 0x00052234, 0x0004e502,
2317     0x0004a95d, 0x00046f46, 0x00043691, 0x0003ff33,
2318     0x0003c90d, 0x0003941f, 0x00036047, 0x00032d9c,
2319     0x0002fc1e, 0x0002cbed, 0x00029d1e, 0x00026fbc,
2320     0x000243f2, 0x000219d6, 0x0001f17d, 0x0001caf1,
2321     0x0001a63e, 0x00018363, 0x00016256, 0x00014316,
2322     0x0001258f, 0x000109cb, 0x0000efaa, 0x0000d720,
2323     0x0000c03a, 0x0000aacb, 0x000096de, 0x0000846a,
2324     0x0000736d, 0x000063d3, 0x000055a6, 0x000048d0,
2325     0x00003d47, 0x000032f6, 0x000029dc, 0x000021d9,
2326     0x00001ae3, 0x000014ee, 0x00000fdb, 0x00000ba9,
2327     0x00000839, 0x00000589, 0x00000370, 0x000001ee,
2328     0x000000d7, 0x00000036, 0xffffffe0, 0xffffffc0,
2329     0xffffffd5, 0xfffffff5, 0x0000000b, 0x0000000b,
2330     0x0000000b, 0x0000000b, 0xfffffff5, 0xffffffd5,
2331     0xffffffca, 0xffffffe0, 0x00000036, 0x000000d7,
2332     0x000001ce, 0x0000033b, 0x00000529, 0x000007ad,
2333     0x00000ac8, 0x00000e99, 0x00001316, 0x0000185e,
2334     0x00001e7e, 0x00002575, 0x00002d4c, 0x0000361b,
2335     0x00003fd6, 0x00004a93, 0x00005647, 0x00006312,
2336     0x000070de, 0x00007fad, 0x00008f87, 0x0000a064,
2337     0x0000b242, 0x0000c52d, 0x0000d919, 0x0000ee12,
2338     0x0001040c, 0x00011b13, 0x0001331b, 0x00014c30,
2339     0x0001663c, 0x0001814a, 0x00019d4f, 0x0001ba35,
2340     0x0001d7e7, 0x0001f645, 0x00021544, 0x000234c3,
2341     0x000254b9, 0x00027505, 0x000295a7, 0x0002b67e,
2342     0x0002d7a1, 0x0002f904, 0x00031ab2, 0x00033ca0,
2343     0x00035ee5, 0x0003818a, 0x0003a485, 0x0003c7e1,
2344     0x0003eb72, 0x00040f0e, 0x0004329f, 0x000455e6,
2345     0x000478c0, 0x00049aef, 0x0004bc52, 0x0004dca9,
2346     0x0004fbde, 0x000519c5, 0x00053635, 0x0005512d,
2347     0x00056aae, 0x000582a1, 0x00059927, 0x0005ae40,
2348     0x0005c1f6, 0x0005d455, 0x0005e572, 0x0005f56d,
2349     0x00060446, 0x0006121e, 0x00061f09, 0x00062b08,
2350     0x00063605, 0x00063feb, 0x00064899, 0x00064ff0,
2351     0x000655a5, 0x00065996, 0x00065b6f, 0x00065af8,
2352     0x000657e9, 0x000651d4, 0x00064884, 0x00063bae,
2353     0x00062b33, 0x00061706, 0x0005fefd, 0x0005e344,
2354     0x0005c404, 0x0005a195, 0x00057c41, 0x00055473,
2355     0x00052ac2, 0x0004ffc4, 0x0004d410, 0x0004a7e5,
2356     0x00047b4f, 0x00044e39, 0x00042096, 0x0003f208,
2357     0x0003c1e1, 0x00038f77, 0x00035a12, 0x00032127,
2358     0x0002e476, 0x0002a389, 0x00025e29, 0x0002146d,
2359     0x0001c700, 0x00017682, 0x000123a1, 0x0000cefd,
2360     0x000078f7, 0x0000221a, 0xffffcad1, 0xffff7332,
2361     0xffff1b1e, 0xfffec253, 0xfffe6891, 0xfffe0da2,
2362     0xfffdb15c, 0xfffd5393, 0xfffcf412, 0xfffc92e3,
2363     0xfffc3032, 0xfffbcc29, 0xfffb6714, 0xfffb0113,
2364     0xfffa9a5b, 0xfffa3337, 0xfff9cbd4, 0xfff96450,
2365     0xfff8fcac, 0xfff894dc, 0xfff82cd8, 0xfff7c4a8,
2366     0xfff75c6d, 0xfff6f45e, 0xfff68c84, 0xfff62500,
2367     0xfff5bde8, 0xfff5575a, 0xfff4f179, 0xfff48c64,
2368     0xfff42810, 0xfff3c488, 0xfff361d7, 0xfff30008,
2369     0xfff29f3a, 0xfff23f78, 0xfff1e0d8, 0xfff1835b,
2370     0xfff1272a, 0xfff0cc46, 0xfff072cf, 0xfff01ad0,
2371     0xffefc469, 0xffef6fa4, 0xffef1ca3, 0xffeecb7a,
2372     0xffee7c1f, 0xffee2eb2, 0xffede33d, 0xffed99c1,
2373     0xffed5249, 0xffed0cde, 0xffecc98d, 0xffec8849,
2374     0xffec4934, 0xffec0c38, 0xffebd175, 0xffeb98eb,
2375     0xffeb62a4, 0xffeb2ead, 0xffeafd19, 0xffeacdea,
2376     0xffeaa129, 0xffea76cc, 0xffea4ef4, 0xffea299f,
2377     0xffea06e5, 0xffe9e6ce, 0xffe9c97d, 0xffe9aebb,
2378     0xffe99651, 0xffe97fd6, 0xffe96ad3, 0xffe95711,
2379     0xffe9447d, 0xffe93315, 0xffe922ce, 0xffe913a0,
2380     0xffe90588, 0xffe8f887, 0xffe8ec93, 0xffe8e1c1,
2381     0xffe8d806, 0xffe8cf77, 0xffe8c816, 0xffe8c1eb,
2382     0xffe8bd03, 0xffe8b967, 0xffe8b72e, 0xffe8b64d,
2383     0xffe8b6d8, 0xffe8b8dc, 0xffe8bc6c, 0xffe8c18a,
2384     0xffe8c840, 0xffe8d0a4, 0xffe8daca, 0xffe8e69e,
2385     0xffe8f42a, 0xffe9035a, 0xffe9142b, 0xffe926a0,
2386     0xffe93ab7, 0xffe95066, 0xffe967b8, 0xffe980ad,
2387     0xffe99b3a, 0xffe9b754, 0xffe9d511, 0xffe9f45b,
2388     0xffea1532, 0xffea3797, 0xffea5b89, 0xffea8108,
2389     0xffeaa7ff, 0xffead079, 0xffeafa55, 0xffeb259e,
2390     0xffeb5254, 0xffeb8061, 0xffebafdc, 0xffebe0ae,
2391     0xffec12ce, 0xffec462f, 0xffec7add, 0xffecb0a3,
2392     0xffece774, 0xffed1f32, 0xffed57a7, 0xffed90b2,
2393     0xffedca48, 0xffee042a, 0xffee3e57, 0xffee788e,
2394 };
2395
2396 const DECLARE_ALIGNED(32, float, ff_aac_eld_window_480)[1800] = {
2397      0.00101191,  0.00440397,  0.00718669,  0.01072130,
2398      0.01459757,  0.01875954,  0.02308987,  0.02751541,
2399      0.03198130,  0.03643738,  0.04085290,  0.04522835,
2400      0.04957620,  0.05390454,  0.05821503,  0.06251214,
2401      0.06680463,  0.07109582,  0.07538014,  0.07965207,
2402      0.08390857,  0.08815177,  0.09238785,  0.09662163,
2403      0.10085860,  0.10510892,  0.10938110,  0.11367819,
2404      0.11800355,  0.12236410,  0.12676834,  0.13122384,
2405      0.13573476,  0.14030106,  0.14492340,  0.14960315,
2406      0.15433828,  0.15912396,  0.16395663,  0.16883310,
2407      0.17374837,  0.17869679,  0.18367394,  0.18867661,
2408      0.19370368,  0.19875413,  0.20382641,  0.20892055,
2409      0.21403775,  0.21917761,  0.22433899,  0.22952250,
2410      0.23472991,  0.23996189,  0.24521859,  0.25049930,
2411      0.25580312,  0.26112942,  0.26647748,  0.27184703,
2412      0.27723785,  0.28264967,  0.28808086,  0.29352832,
2413      0.29898979,  0.30446379,  0.30994292,  0.31541664,
2414      0.32087942,  0.32632772,  0.33176291,  0.33718641,
2415      0.34259612,  0.34799346,  0.35338857,  0.35878843,
2416      0.36419504,  0.36960630,  0.37501567,  0.38042067,
2417      0.38582069,  0.39121276,  0.39659312,  0.40195993,
2418      0.40731155,  0.41264382,  0.41795277,  0.42323670,
2419      0.42849480,  0.43372753,  0.43893452,  0.44411398,
2420      0.44927117,  0.45441882,  0.45956191,  0.46470167,
2421      0.46983016,  0.47493636,  0.48001827,  0.48507480,
2422      0.49010240,  0.49509781,  0.50005986,  0.50499037,
2423      0.50989790,  0.51478708,  0.51965805,  0.52450975,
2424      0.52933955,  0.53414668,  0.53893113,  0.54369178,
2425      0.54842731,  0.55313757,  0.55782259,  0.56248253,
2426      0.56711762,  0.57172819,  0.57631468,  0.58087761,
2427      0.58719976,  0.59173064,  0.59623644,  0.60071719,
2428      0.60517294,  0.60960372,  0.61400958,  0.61839056,
2429      0.62274670,  0.62707805,  0.63138475,  0.63566700,
2430      0.63992500,  0.64415895,  0.64836893,  0.65255499,
2431      0.65671715,  0.66085548,  0.66497005,  0.66906094,
2432      0.67312824,  0.67717199,  0.68119219,  0.68518882,
2433      0.68916187,  0.69311129,  0.69703698,  0.70093884,
2434      0.70481679,  0.70867071,  0.71250047,  0.71630596,
2435      0.72008705,  0.72384360,  0.72757549,  0.73128256,
2436      0.73496463,  0.73862141,  0.74225263,  0.74585799,
2437      0.74943730,  0.75299039,  0.75651711,  0.76001729,
2438      0.76349062,  0.76693670,  0.77035516,  0.77374564,
2439      0.77710790,  0.78044169,  0.78374678,  0.78702291,
2440      0.79026979,  0.79348715,  0.79667471,  0.79983215,
2441      0.80295914,  0.80605536,  0.80912047,  0.81215417,
2442      0.81515616,  0.81812616,  0.82106389,  0.82396915,
2443      0.82684176,  0.82968154,  0.83248830,  0.83526186,
2444      0.83800204,  0.84070866,  0.84338156,  0.84602058,
2445      0.84862556,  0.85119636,  0.85373292,  0.85623523,
2446      0.85870326,  0.86113701,  0.86353649,  0.86590173,
2447      0.86823275,  0.87052968,  0.87279275,  0.87502220,
2448      0.87721829,  0.87938130,  0.88151157,  0.88360940,
2449      0.88567517,  0.88770954,  0.88971328,  0.89168716,
2450      0.89363199,  0.89554856,  0.89743771,  0.89930025,
2451      0.90113740,  0.90295086,  0.90474240,  0.90651380,
2452      0.90826684,  0.91000335,  0.91172515,  0.91343416,
2453      0.91513276,  0.91682357,  0.91850924,  0.92019170,
2454      0.92187129,  0.92354778,  0.92522116,  0.92688597,
2455      0.92852960,  0.93013861,  0.93169897,  0.93319114,
2456      0.93458502,  0.93587626,  0.93694276,  0.93825562,
2457      0.93882222,  0.93910780,  0.93944183,  0.93981497,
2458      0.94021434,  0.94062629,  0.94103714,  0.94144084,
2459      0.94184042,  0.94223966,  0.94264206,  0.94304859,
2460      0.94345831,  0.94387033,  0.94428390,  0.94469895,
2461      0.94511572,  0.94553441,  0.94595520,  0.94637816,
2462      0.94680335,  0.94723080,  0.94766054,  0.94809253,
2463      0.94852674,  0.94896314,  0.94940178,  0.94984276,
2464      0.95028618,  0.95073213,  0.95118056,  0.95163139,
2465      0.95208451,  0.95253992,  0.95299770,  0.95345799,
2466      0.95392092,  0.95438653,  0.95485472,  0.95532539,
2467      0.95579847,  0.95627397,  0.95675201,  0.95723273,
2468      0.95771618,  0.95820232,  0.95869103,  0.95918218,
2469      0.95967573,  0.96017172,  0.96067026,  0.96117144,
2470      0.96167526,  0.96218157,  0.96269026,  0.96320119,
2471      0.96371437,  0.96422988,  0.96474782,  0.96526824,
2472      0.96579106,  0.96631614,  0.96684334,  0.96737257,
2473      0.96790390,  0.96843740,  0.96897315,  0.96951112,
2474      0.97005119,  0.97059318,  0.97113697,  0.97168253,
2475      0.97222994,  0.97277928,  0.97333058,  0.97388375,
2476      0.97443863,  0.97499505,  0.97555292,  0.97611230,
2477      0.97667326,  0.97723589,  0.97780016,  0.97836591,
2478      0.97893300,  0.97950127,  0.98007071,  0.98064139,
2479      0.98121342,  0.98178684,  0.98236156,  0.98293743,
2480      0.98351428,  0.98409205,  0.98467078,  0.98525056,
2481      0.98583146,  0.98641348,  0.98699650,  0.98758037,
2482      0.98816497,  0.98875030,  0.98933647,  0.98992356,
2483      0.99051163,  0.99110062,  0.99169038,  0.99228079,
2484      0.99287177,  0.99346341,  0.99405581,  0.99464907,
2485      0.99524320,  0.99583812,  0.99643375,  0.99702997,
2486      0.99762671,  0.99822386,  0.99882134,  0.99941903,
2487      1.00058131,  1.00118006,  1.00177930,  1.00237893,
2488      1.00297887,  1.00357902,  1.00417927,  1.00477954,
2489      1.00537972,  1.00597973,  1.00657959,  1.00717940,
2490      1.00777926,  1.00837925,  1.00897929,  1.00957926,
2491      1.01017901,  1.01077847,  1.01137769,  1.01197678,
2492      1.01257582,  1.01317482,  1.01377365,  1.01437217,
2493      1.01497025,  1.01556786,  1.01616510,  1.01676205,
2494      1.01735876,  1.01795514,  1.01855103,  1.01914627,
2495      1.01974076,  1.02033455,  1.02092772,  1.02152037,
2496      1.02211247,  1.02270387,  1.02329439,  1.02388387,
2497      1.02447229,  1.02505972,  1.02564624,  1.02623190,
2498      1.02681660,  1.02740017,  1.02798242,  1.02856326,
2499      1.02914272,  1.02972087,  1.03029778,  1.03087344,
2500      1.03144768,  1.03202035,  1.03259127,  1.03316042,
2501      1.03372788,  1.03429373,  1.03485801,  1.03542064,
2502      1.03598146,  1.03654030,  1.03709708,  1.03765185,
2503      1.03820470,  1.03875571,  1.03930488,  1.03985206,
2504      1.04039712,  1.04093989,  1.04148037,  1.04201865,
2505      1.04255481,  1.04308893,  1.04362093,  1.04415068,
2506      1.04467803,  1.04520292,  1.04572542,  1.04624566,
2507      1.04676376,  1.04727974,  1.04779350,  1.04830493,
2508      1.04881391,  1.04932048,  1.04982477,  1.05032693,
2509      1.05082705,  1.05132510,  1.05182098,  1.05231457,
2510      1.05280584,  1.05329485,  1.05378171,  1.05426654,
2511      1.05474937,  1.05523018,  1.05570892,  1.05618554,
2512      1.05666005,  1.05713251,  1.05760297,  1.05807149,
2513      1.05853828,  1.05900355,  1.05946756,  1.05993024,
2514      1.06039075,  1.06084806,  1.06130111,  1.06175099,
2515      1.06220164,  1.06265732,  1.06312146,  1.06358726,
2516      1.06403924,  1.06446186,  1.06484048,  1.06516440,
2517      1.06527864,  1.06498077,  1.06470196,  1.06425743,
2518      1.06372091,  1.06311464,  1.06246622,  1.06179277,
2519      1.06110808,  1.06042455,  1.05974495,  1.05906206,
2520      1.05836706,  1.05765243,  1.05691470,  1.05615178,
2521      1.05536069,  1.05454152,  1.05370030,  1.05284445,
2522      1.05198094,  1.05111433,  1.05024634,  1.04937859,
2523      1.04851245,  1.04764614,  1.04677586,  1.04589855,
2524      1.04501046,  1.04410500,  1.04317417,  1.04221010,
2525      1.04120649,  1.04016012,  1.03906851,  1.03792894,
2526      1.03674090,  1.03550649,  1.03422800,  1.03290769,
2527      1.03154944,  1.03015834,  1.02873938,  1.02729712,
2528      1.02583470,  1.02435463,  1.02285952,  1.02135114,
2529      1.01982974,  1.01829520,  1.01674752,  1.01518534,
2530      1.01360559,  1.01200510,  1.01038076,  1.00872996,
2531      1.00705045,  1.00533999,  1.00359618,  1.00181613,
2532      0.99999673,  0.99813477,  0.99622793,  0.99427571,
2533      0.99227814,  0.99023501,  0.98815128,  0.98603857,
2534      0.98390898,  0.98177413,  0.97964151,  0.97751528,
2535      0.97539999,  0.97329751,  0.97119933,  0.96909179,
2536      0.96696152,  0.96479824,  0.96259840,  0.96036028,
2537      0.95808180,  0.95576295,  0.95340622,  0.95101436,
2538      0.94859030,  0.94614009,  0.94367232,  0.94119555,
2539      0.93871796,  0.93624630,  0.93378636,  0.93134465,
2540      0.92892076,  0.92649974,  0.92406255,  0.92159041,
2541      0.91907411,  0.91651711,  0.91392425,  0.91130056,
2542      0.90865471,  0.90599838,  0.90334350,  0.90069934,
2543      0.89806435,  0.89543132,  0.89279335,  0.89014496,
2544      0.88748403,  0.88480945,  0.88211997,  0.87941558,
2545      0.87669794,  0.87396891,  0.87123030,  0.86848394,
2546      0.86573164,  0.86297523,  0.86021649,  0.85745725,
2547      0.85474342,  0.85193656,  0.84911455,  0.84627969,
2548      0.84343424,  0.84058046,  0.83772057,  0.83485680,
2549      0.83199134,  0.82912621,  0.82626143,  0.82339529,
2550      0.82052619,  0.81765147,  0.81476433,  0.81185593,
2551      0.80891701,  0.80594452,  0.80294885,  0.79994431,
2552      0.79694485,  0.79396166,  0.79100220,  0.78807349,
2553      0.78518123,  0.78231422,  0.77944709,  0.77655407,
2554      0.77361369,  0.77062281,  0.76758806,  0.76451506,
2555      0.76141145,  0.75828860,  0.75515892,  0.75203479,
2556      0.74892561,  0.74583682,  0.74277342,  0.73974008,
2557      0.73673754,  0.73376310,  0.73081444,  0.72788616,
2558      0.72496070,  0.72201426,  0.71902283,  0.71596990,
2559      0.71285541,  0.70968427,  0.70646064,  0.70319589,
2560      0.69991077,  0.69662714,  0.69336592,  0.69013742,
2561      0.68694302,  0.68378420,  0.68066143,  0.67757157,
2562      0.67450951,  0.67147030,  0.66844879,  0.66543949,
2563      0.66243677,  0.65943505,  0.65642754,  0.65340591,
2564      0.65036160,  0.64728630,  0.64417440,  0.64102268,
2565      0.63782771,  0.63458757,  0.63130628,  0.62799109,
2566      0.62464879,  0.62128816,  0.61792203,  0.61456438,
2567      0.61122915,  0.60792802,  0.60466971,  0.60146257,
2568      0.59831460,  0.59522876,  0.59220375,  0.58923859,
2569      0.58632936,  0.58346064,  0.58061078,  0.57775874,
2570      0.57488246,  0.57195790,  0.56896078,  0.56586637,
2571      0.56266594,  0.55937186,  0.55599898,  0.55256299,
2572      0.54909184,  0.54562376,  0.54219742,  0.53884728,
2573      0.53559047,  0.53243453,  0.52938894,  0.52645052,
2574      0.52358958,  0.52076862,  0.51795080,  0.51510761,
2575      0.51222179,  0.50927733,  0.50625944,  0.50317073,
2576      0.50002767,  0.49685021,  0.49364116,  0.49048690,
2577      0.48726128,  0.48404889,  0.48090875,  0.47783482,
2578      0.47481564,  0.47184024,  0.46889391,  0.46595836,
2579      0.46301611,  0.46005089,  0.45705924,  0.45404822,
2580      0.45102447,  0.44799543,  0.44497138,  0.44196397,
2581      0.43898547,  0.43604105,  0.43312057,  0.43020942,
2582      0.42729337,  0.42436272,  0.42141388,  0.41844400,
2583      0.41545081,  0.41244014,  0.40942464,  0.40641716,
2584      0.40342874,  0.40046292,  0.39751923,  0.39459758,
2585      0.39169692,  0.38881435,  0.38594643,  0.38308980,
2586      0.38024146,  0.37739896,  0.37455986,  0.37172187,
2587      0.36888463,  0.36604937,  0.36321735,  0.36038967,
2588      0.35756668,  0.35474832,  0.35193455,  0.34912542,
2589      0.34632129,  0.34352258,  0.34072974,  0.33794323,
2590      0.33516354,  0.33239114,  0.32962648,  0.32686967,
2591      0.32412042,  0.32137919,  0.31864044,  0.31588373,
2592      0.31309909,  0.31028631,  0.30745528,  0.30462678,
2593      0.30180656,  0.29899424,  0.29619082,  0.29339717,
2594      0.29061333,  0.28783935,  0.28507563,  0.28232266,
2595      0.27958067,  0.27684984,  0.27413017,  0.27142157,
2596      0.26872396,  0.26603737,  0.26336211,  0.26069855,
2597      0.25804700,  0.25540830,  0.25278329,  0.25017211,
2598      0.24757451,  0.24498713,  0.24240740,  0.23983550,
2599      0.23727200,  0.23471866,  0.23217624,  0.22964458,
2600      0.22712346,  0.22461258,  0.22211202,  0.21962197,
2601      0.21714290,  0.21467522,  0.21221877,  0.20977323,
2602      0.20733693,  0.20490860,  0.20248823,  0.20007615,
2603      0.19767358,  0.19528091,  0.19289781,  0.19052347,
2604      0.18815661,  0.18579693,  0.18344441,  0.18110010,
2605      0.17876595,  0.17644344,  0.17413400,  0.17183905,
2606      0.16956003,  0.16729836,  0.16505547,  0.16283278,
2607      0.15990780,  0.15776021,  0.15563325,  0.15352557,
2608      0.15143584,  0.14936270,  0.14730481,  0.14526081,
2609      0.14322937,  0.14120918,  0.13919977,  0.13720138,
2610      0.13521422,  0.13323852,  0.13127445,  0.12932216,
2611      0.12738181,  0.12545358,  0.12353773,  0.12163457,
2612      0.11974436,  0.11786730,  0.11600347,  0.11415293,
2613      0.11231573,  0.11049201,  0.10868196,  0.10688578,
2614      0.10510362,  0.10333551,  0.10158143,  0.09984133,
2615      0.09811524,  0.09640327,  0.09470556,  0.09302228,
2616      0.09135347,  0.08969907,  0.08805903,  0.08643326,
2617      0.08482183,  0.08322486,  0.08164249,  0.08007481,
2618      0.07852179,  0.07698335,  0.07545938,  0.07394984,
2619      0.07245482,  0.07097444,  0.06950883,  0.06805800,
2620      0.06662187,  0.06520031,  0.06379324,  0.06240065,
2621      0.06102266,  0.05965936,  0.05831084,  0.05697701,
2622      0.05565775,  0.05435290,  0.05306239,  0.05178628,
2623      0.05052464,  0.04927758,  0.04804510,  0.04682709,
2624      0.04562344,  0.04443405,  0.04325893,  0.04209822,
2625      0.04095208,  0.03982059,  0.03870371,  0.03760131,
2626      0.03651325,  0.03543944,  0.03437987,  0.03333454,
2627      0.03230348,  0.03128653,  0.03028332,  0.02929346,
2628      0.02831658,  0.02735252,  0.02640127,  0.02546283,
2629      0.02453725,  0.02362471,  0.02272547,  0.02183980,
2630      0.02096810,  0.02011108,  0.01926957,  0.01844439,
2631      0.01763565,  0.01684248,  0.01606394,  0.01529909,
2632      0.01454726,  0.01380802,  0.01308092,  0.01236569,
2633      0.01166273,  0.01097281,  0.01029671,  0.00963479,
2634      0.00898646,  0.00835089,  0.00772725,  0.00711521,
2635      0.00651513,  0.00592741,  0.00535249,  0.00479089,
2636      0.00424328,  0.00371041,  0.00319271,  0.00268947,
2637      0.00219928,  0.00172084,  0.00125271,  0.00079311,
2638      0.00034023, -0.00010786, -0.00055144, -0.00098865,
2639     -0.00141741, -0.00183557, -0.00224010, -0.00262725,
2640     -0.00299314, -0.00333475, -0.00365250, -0.00394867,
2641     -0.00422533, -0.00448528, -0.00473278, -0.00497252,
2642     -0.00520916, -0.00544584, -0.00568360, -0.00592326,
2643     -0.00616547, -0.00640861, -0.00664914, -0.00688354,
2644     -0.00710845, -0.00732136, -0.00752022, -0.00770289,
2645     -0.00786789, -0.00801521, -0.00814526, -0.00825839,
2646     -0.00835563, -0.00843882, -0.00850996, -0.00857097,
2647     -0.00862360, -0.00866943, -0.00871004, -0.00874688,
2648     -0.00878091, -0.00881277, -0.00884320, -0.00887248,
2649     -0.00890002, -0.00892494, -0.00894641, -0.00896355,
2650     -0.00897541, -0.00898104, -0.00897948, -0.00896990,
2651     -0.00895149, -0.00892346, -0.00888519, -0.00883670,
2652     -0.00877839, -0.00871058, -0.00863388, -0.00854936,
2653     -0.00845826, -0.00836179, -0.00826124, -0.00815807,
2654     -0.00805372, -0.00794953, -0.00784572, -0.00774156,
2655     -0.00763634, -0.00752929, -0.00741941, -0.00730556,
2656     -0.00718664, -0.00706184, -0.00693107, -0.00679443,
2657     -0.00665200, -0.00650428, -0.00635230, -0.00619718,
2658     -0.00603995, -0.00588133, -0.00572169, -0.00556143,
2659     -0.00540085, -0.00523988, -0.00507828, -0.00491582,
2660     -0.00475220, -0.00458693, -0.00441953, -0.00424950,
2661     -0.00407681, -0.00390204, -0.00372581, -0.00354874,
2662     -0.00337115, -0.00319318, -0.00301494, -0.00283652,
2663     -0.00265797, -0.00247934, -0.00230066, -0.00212197,
2664     -0.00194331, -0.00176471, -0.00158620, -0.00140787,
2665     -0.00122989, -0.00105244, -0.00087567, -0.00069976,
2666     -0.00052487, -0.00035115, -0.00017875, -0.00000782,
2667      0.00000779,  0.00017701,  0.00034552,  0.00051313,
2668      0.00067966,  0.00084492,  0.00100873,  0.00117093,
2669      0.00133133,  0.00148978,  0.00164611,  0.00180023,
2670      0.00195211,  0.00210172,  0.00224898,  0.00239383,
2671      0.00253618,  0.00267593,  0.00281306,  0.00294756,
2672      0.00307942,  0.00320864,  0.00333502,  0.00345816,
2673      0.00357762,  0.00369297,  0.00380414,  0.00391140,
2674      0.00401499,  0.00411524,  0.00421242,  0.00430678,
2675      0.00439859,  0.00448799,  0.00457487,  0.00465908,
2676      0.00474045,  0.00481857,  0.00489277,  0.00496235,
2677      0.00502666,  0.00508546,  0.00513877,  0.00518662,
2678      0.00522904,  0.00526648,  0.00529956,  0.00532895,
2679      0.00535532,  0.00537929,  0.00540141,  0.00542228,
2680      0.00544196,  0.00545981,  0.00547515,  0.00548726,
2681      0.00549542,  0.00549899,  0.00549732,  0.00548986,
2682      0.00547633,  0.00545664,  0.00543067,  0.00539849,
2683      0.00536061,  0.00531757,  0.00526993,  0.00521822,
2684      0.00516300,  0.00510485,  0.00504432,  0.00498194,
2685      0.00491822,  0.00485364,  0.00478862,  0.00472309,
2686      0.00465675,  0.00458939,  0.00452067,  0.00445003,
2687      0.00437688,  0.00430063,  0.00422062,  0.00413609,
2688      0.00404632,  0.00395060,  0.00384863,  0.00374044,
2689      0.00362600,  0.00350540,  0.00337934,  0.00324885,
2690      0.00311486,  0.00297849,  0.00284122,  0.00270458,
2691      0.00257013,  0.00243867,  0.00231005,  0.00218399,
2692      0.00206023,  0.00193766,  0.00181460,  0.00168938,
2693      0.00156050,  0.00142701,  0.00128830,  0.00114365,
2694      0.00099297,  0.00083752,  0.00067884,  0.00051845,
2695      0.00035760,  0.00019720,  0.00003813, -0.00011885,
2696     -0.00027375, -0.00042718, -0.00057975, -0.00073204,
2697     -0.00088453, -0.00103767, -0.00119192, -0.00134747,
2698     -0.00150411, -0.00166151, -0.00181932, -0.00197723,
2699     -0.00213493, -0.00229210, -0.00244849, -0.00260415,
2700     -0.00275928, -0.00291410, -0.00306879, -0.00322332,
2701     -0.00337759, -0.00353145, -0.00368470, -0.00383722,
2702     -0.00398892, -0.00413972, -0.00428967, -0.00443889,
2703     -0.00458749, -0.00473571, -0.00488366, -0.00503137,
2704     -0.00517887, -0.00532610, -0.00547302, -0.00561965,
2705     -0.00576598, -0.00591199, -0.00605766, -0.00620300,
2706     -0.00634801, -0.00649273, -0.00663727, -0.00678170,
2707     -0.00692617, -0.00707084, -0.00721583, -0.00736129,
2708     -0.00750735, -0.00765415, -0.00780184, -0.00795059,
2709     -0.00810058, -0.00825195, -0.00840487, -0.00855950,
2710     -0.00871607, -0.00887480, -0.00903596, -0.00919978,
2711     -0.00936650, -0.00953635, -0.00970931, -0.00988421,
2712     -0.01005916, -0.01023208, -0.01040130, -0.01056627,
2713     -0.01072678, -0.01088259, -0.01103348, -0.01117933,
2714     -0.01132004, -0.01145552, -0.01158573, -0.01171065,
2715     -0.01183025, -0.01194454, -0.01205352, -0.01215722,
2716     -0.01225572, -0.01234911, -0.01243749, -0.01252102,
2717     -0.01259985, -0.01267419, -0.01274437, -0.01281078,
2718     -0.01287379, -0.01293350, -0.01298972, -0.01304224,
2719     -0.01309086, -0.01313556, -0.01317644, -0.01321357,
2720     -0.01324707, -0.01327697, -0.01330334, -0.01332622,
2721     -0.01334570, -0.01336194, -0.01337510, -0.01338538,
2722     -0.01339276, -0.01339708, -0.01339816, -0.01339584,
2723     -0.01339014, -0.01338116, -0.01336903, -0.01335382,
2724     -0.01333545, -0.01331381, -0.01328876, -0.01326033,
2725     -0.01322880, -0.01319457, -0.01315806, -0.01311968,
2726     -0.01307987, -0.01303906, -0.01299769, -0.01295623,
2727     -0.01308207, -0.01304153, -0.01299802, -0.01295155,
2728     -0.01290215, -0.01284980, -0.01279450, -0.01273625,
2729     -0.01267501, -0.01261077, -0.01254347, -0.01247306,
2730     -0.01239950, -0.01232277, -0.01224304, -0.01216055,
2731     -0.01207554, -0.01198813, -0.01189829, -0.01180590,
2732     -0.01171090, -0.01161335, -0.01151352, -0.01141167,
2733     -0.01130807, -0.01120289, -0.01109626, -0.01098830,
2734     -0.01087916, -0.01076898, -0.01065793, -0.01054618,
2735     -0.01043380, -0.01032068, -0.01020670, -0.01009171,
2736     -0.00997585, -0.00985959, -0.00974338, -0.00962765,
2737     -0.00951273, -0.00939888, -0.00928634, -0.00917534,
2738     -0.00906604, -0.00895860, -0.00885313, -0.00874977,
2739     -0.00864862, -0.00854979, -0.00845337, -0.00835939,
2740     -0.00826785, -0.00817872, -0.00809195, -0.00800745,
2741     -0.00792506, -0.00784469, -0.00776588, -0.00768695,
2742     -0.00760568, -0.00752004, -0.00742875, -0.00733186,
2743     -0.00722976, -0.00712279, -0.00701130, -0.00689559,
2744     -0.00677595, -0.00665269, -0.00652610, -0.00639649,
2745     -0.00626417, -0.00612943, -0.00599252, -0.00585368,
2746     -0.00571315, -0.00557115, -0.00542792, -0.00528367,
2747     -0.00513864, -0.00499301, -0.00484693, -0.00470054,
2748     -0.00455395, -0.00440733, -0.00426086, -0.00411471,
2749     -0.00396904, -0.00382404, -0.00367991, -0.00353684,
2750     -0.00339502, -0.00325472, -0.00311618, -0.00297967,
2751     -0.00284531, -0.00271307, -0.00258290, -0.00245475,
2752     -0.00232860, -0.00220447, -0.00208236, -0.00196233,
2753     -0.00184450, -0.00172906, -0.00161620, -0.00150603,
2754     -0.00139852, -0.00129358, -0.00119112, -0.00109115,
2755     -0.00099375, -0.00089902, -0.00080705, -0.00071796,
2756     -0.00063185, -0.00054886, -0.00046904, -0.00039231,
2757     -0.00031845, -0.00024728, -0.00017860, -0.00011216,
2758     -0.00004771,  0.00001500,  0.00007600,  0.00013501,
2759      0.00019176,  0.00024595,  0.00029720,  0.00034504,
2760      0.00038902,  0.00042881,  0.00046456,  0.00049662,
2761      0.00052534,  0.00055114,  0.00057459,  0.00059629,
2762      0.00061684,  0.00063660,  0.00065568,  0.00067417,
2763      0.00069213,  0.00070935,  0.00072545,  0.00074005,
2764      0.00075283,  0.00076356,  0.00077209,  0.00077828,
2765      0.00078205,  0.00078350,  0.00078275,  0.00077992,
2766      0.00077520,  0.00076884,  0.00076108,  0.00075218,
2767      0.00074232,  0.00073170,  0.00072048,  0.00070881,
2768      0.00069680,  0.00068450,  0.00067201,  0.00065934,
2769      0.00064647,  0.00063335,  0.00061994,  0.00060621,
2770      0.00059211,  0.00057763,  0.00056274,  0.00054743,
2771      0.00053169,  0.00051553,  0.00049897,  0.00048206,
2772      0.00046487,  0.00044748,  0.00042996,  0.00041241,
2773      0.00039492,  0.00037759,  0.00036049,  0.00034371,
2774      0.00032732,  0.00031137,  0.00029587,  0.00028079,
2775      0.00026612,  0.00025183,  0.00023789,  0.00022428,
2776      0.00021097,  0.00019797,  0.00018530,  0.00017297,
2777      0.00016100,  0.00014942,  0.00013827,  0.00012757,
2778      0.00011736,  0.00010764,  0.00009841,  0.00008969,
2779      0.00008145,  0.00007369,  0.00006641,  0.00005958,
2780      0.00005320,  0.00004725,  0.00004171,  0.00003659,
2781      0.00003186,  0.00002752,  0.00002357,  0.00001999,
2782      0.00001679,  0.00001392,  0.00001140,  0.00000918,
2783      0.00000726,  0.00000562,  0.00000424,  0.00000309,
2784      0.00000217,  0.00000143,  0.00000088,  0.00000048,
2785      0.00000020,  0.00000004, -0.00000004, -0.00000006,
2786     -0.00000004, -0.00000000,  0.00000002,  0.00000000,
2787      0.00000000,  0.00000002, -0.00000000, -0.00000004,
2788     -0.00000005, -0.00000004,  0.00000004,  0.00000019,
2789      0.00000045,  0.00000083,  0.00000134,  0.00000201,
2790      0.00000285,  0.00000387,  0.00000510,  0.00000654,
2791      0.00000821,  0.00001011,  0.00001227,  0.00001468,
2792      0.00001735,  0.00002030,  0.00002352,  0.00002702,
2793      0.00003080,  0.00003486,  0.00003918,  0.00004379,
2794      0.00004866,  0.00005382,  0.00005924,  0.00006495,
2795      0.00007093,  0.00007719,  0.00008373,  0.00009053,
2796      0.00009758,  0.00010488,  0.00011240,  0.00012010,
2797      0.00012796,  0.00013596,  0.00014406,  0.00015226,
2798      0.00016053,  0.00016886,  0.00017725,  0.00018571,
2799      0.00019424,  0.00020286,  0.00021156,  0.00022037,
2800      0.00022928,  0.00023825,  0.00024724,  0.00025621,
2801      0.00026509,  0.00027385,  0.00028241,  0.00029072,
2802      0.00029874,  0.00030643,  0.00031374,  0.00032065,
2803      0.00032715,  0.00033325,  0.00033895,  0.00034425,
2804      0.00034917,  0.00035374,  0.00035796,  0.00036187,
2805      0.00036549,  0.00036883,  0.00037194,  0.00037479,
2806      0.00037736,  0.00037963,  0.00038154,  0.00038306,
2807      0.00038411,  0.00038462,  0.00038453,  0.00038373,
2808      0.00038213,  0.00037965,  0.00037621,  0.00037179,
2809      0.00036636,  0.00035989,  0.00035244,  0.00034407,
2810      0.00033488,  0.00032497,  0.00031449,  0.00030361,
2811      0.00029252,  0.00028133,  0.00027003,  0.00025862,
2812      0.00024706,  0.00023524,  0.00022297,  0.00021004,
2813      0.00019626,  0.00018150,  0.00016566,  0.00014864,
2814      0.00013041,  0.00011112,  0.00009096,  0.00007014,
2815      0.00004884,  0.00002718,  0.00000530, -0.00001667,
2816     -0.00003871, -0.00006090, -0.00008331, -0.00010600,
2817     -0.00012902, -0.00015244, -0.00017631, -0.00020065,
2818     -0.00022541, -0.00025052, -0.00027594, -0.00030159,
2819     -0.00032740, -0.00035332, -0.00037928, -0.00040527,
2820     -0.00043131, -0.00045741, -0.00048357, -0.00050978,
2821     -0.00053599, -0.00056217, -0.00058827, -0.00061423,
2822     -0.00064002, -0.00066562, -0.00069100, -0.00071616,
2823     -0.00074110, -0.00076584, -0.00079036, -0.00081465,
2824     -0.00083869, -0.00086245, -0.00088590, -0.00090901,
2825     -0.00093176, -0.00095413, -0.00097608, -0.00099758,
2826     -0.00101862, -0.00103918, -0.00105924, -0.00107879,
2827     -0.00109783, -0.00111635, -0.00113434, -0.00115181,
2828     -0.00116873, -0.00118510, -0.00120091, -0.00121615,
2829     -0.00123082, -0.00124490, -0.00125838, -0.00127125,
2830     -0.00128350, -0.00129511, -0.00130610, -0.00131643,
2831     -0.00132610, -0.00133509, -0.00134334, -0.00135069,
2832     -0.00135711, -0.00136272, -0.00136768, -0.00137225,
2833     -0.00137649, -0.00138042, -0.00138404, -0.00138737,
2834     -0.00139041, -0.00139317, -0.00139565, -0.00139785,
2835     -0.00139976, -0.00140137, -0.00140267, -0.00140366,
2836     -0.00140432, -0.00140464, -0.00140461, -0.00140423,
2837     -0.00140347, -0.00140235, -0.00140084, -0.00139894,
2838     -0.00139664, -0.00139388, -0.00139065, -0.00138694,
2839     -0.00138278, -0.00137818, -0.00137317, -0.00136772,
2840     -0.00136185, -0.00135556, -0.00134884, -0.00134170,
2841     -0.00133415, -0.00132619, -0.00131784, -0.00130908,
2842     -0.00129991, -0.00129031, -0.00128031, -0.00126990,
2843     -0.00125912, -0.00124797, -0.00123645, -0.00122458,
2844     -0.00121233, -0.00119972, -0.00118676, -0.00117347,
2845     -0.00115988, -0.00114605, -0.00113200, -0.00111778,
2846     -0.00110343, -0.00108898, -0.00107448, -0.00105995,
2847 };
2848
2849 const DECLARE_ALIGNED(32, int, ff_aac_eld_window_480_fixed)[1800] = {
2850     0x00109442, 0x00482797, 0x0075bf2a, 0x00afa864,
2851     0x00ef2aa5, 0x01335b36, 0x017a4df0, 0x01c2cffe,
2852     0x020bfb4c, 0x0254fd74, 0x029d557c, 0x02e50574,
2853     0x032c41a8, 0x03732c08, 0x03b9cb88, 0x040032e8,
2854     0x044686f0, 0x048cd578, 0x04d30738, 0x05190500,
2855     0x055ec210, 0x05a44750, 0x05e9aeb8, 0x062f0c80,
2856     0x067477a0, 0x06ba1ac0, 0x07001998, 0x074680e0,
2857     0x078d5ec0, 0x07d4d038, 0x081cf8f0, 0x0865f8b0,
2858     0x08afe0e0, 0x08fab150, 0x09466cd0, 0x09931910,
2859     0x09e0adb0, 0x0a2f1640, 0x0a7e43f0, 0x0ace2960,
2860     0x0b1eb180, 0x0b6fc4b0, 0x0bc15050, 0x0c134710,
2861     0x0c65a420, 0x0cb86340, 0x0d0b7df0, 0x0d5ef450,
2862     0x0db2cb60, 0x0e070180, 0x0e5b91f0, 0x0eb07f20,
2863     0x0f05d0a0, 0x0f5b8920, 0x0fb1a950, 0x10082e40,
2864     0x105f1400, 0x10b65820, 0x110df780, 0x1165f120,
2865     0x11be43e0, 0x1216eea0, 0x126feac0, 0x12c92b00,
2866     0x1322a620, 0x137c55c0, 0x13d61ae0, 0x142fc940,
2867     0x148949e0, 0x14e28da0, 0x153b9a80, 0x15947640,
2868     0x15ed1840, 0x16458660, 0x169deb20, 0x16f663c0,
2869     0x174ef8c0, 0x17a7a120, 0x180041c0, 0x1858d000,
2870     0x18b14940, 0x1909a140, 0x1961c820, 0x19b9b620,
2871     0x1a116480, 0x1a68c1a0, 0x1abfbd00, 0x1b164f60,
2872     0x1b6c7580, 0x1bc23120, 0x1c1780e0, 0x1c6c5d00,
2873     0x1cc0dbe0, 0x1d1532a0, 0x1d697660, 0x1dbdac20,
2874     0x1e11b280, 0x1e655b80, 0x1eb89e80, 0x1f0b7720,
2875     0x1f5dd680, 0x1fafaec0, 0x2000fb00, 0x2051c340,
2876     0x20a22ac0, 0x20f24580, 0x214213c0, 0x21919140,
2877     0x21e0b300, 0x222f7580, 0x227dd900, 0x22cbd880,
2878     0x23196ec0, 0x23669b00, 0x23b35d80, 0x23ffb6c0,
2879     0x244ba7c0, 0x249731c0, 0x24e25700, 0x252d1940,
2880     0x2594ae40, 0x25deea40, 0x2628bd00, 0x26722680,
2881     0x26bb2740, 0x2703bf40, 0x274beec0, 0x2793b600,
2882     0x27db1500, 0x28220c00, 0x28689b80, 0x28aec4c0,
2883     0x28f48800, 0x2939e680, 0x297ee080, 0x29c37600,
2884     0x2a07a740, 0x2a4b74c0, 0x2a8ede80, 0x2ad1e500,
2885     0x2b148880, 0x2b56c940, 0x2b98a740, 0x2bda2240,
2886     0x2c1b3a80, 0x2c5bef80, 0x2c9c4100, 0x2cdc2e80,
2887     0x2d1bb800, 0x2d5adc80, 0x2d999b80, 0x2dd7f500,
2888     0x2e15e800, 0x2e537400, 0x2e9098c0, 0x2ecd5540,
2889     0x2f09a900, 0x2f4592c0, 0x2f811140, 0x2fbc2340,
2890     0x2ff6c7c0, 0x3030fe80, 0x306ac6c0, 0x30a41f80,
2891     0x30dd07c0, 0x31157dc0, 0x314d7fc0, 0x31850c80,
2892     0x31bc22c0, 0x31f2c1c0, 0x3228e840, 0x325e9540,
2893     0x3293c7c0, 0x32c87e40, 0x32fcb800, 0x33307340,
2894     0x3363aec0, 0x33966940, 0x33c8a140, 0x33fa5580,
2895     0x342b84c0, 0x345c2dc0, 0x348c4f80, 0x34bbe900,
2896     0x34eaf9c0, 0x35198080, 0x35477d00, 0x3574ee40,
2897     0x35a1d340, 0x35ce2bc0, 0x35f9f6c0, 0x36253380,
2898     0x364fe180, 0x367a0040, 0x36a38f80, 0x36cc8ec0,
2899     0x36f4fe80, 0x371cde80, 0x37442e80, 0x376aef00,
2900     0x37912000, 0x37b6c200, 0x37dbd600, 0x38005d00,
2901     0x38245840, 0x3847c880, 0x386aaf80, 0x388d0e80,
2902     0x38aee700, 0x38d03bc0, 0x38f11000, 0x39116700,
2903     0x39314440, 0x3950ab00, 0x396f9e80, 0x398e22c0,
2904     0x39ac3c40, 0x39c9f280, 0x39e74cc0, 0x3a045280,
2905     0x3a210b40, 0x3a3d7ec0, 0x3a59b480, 0x3a75b480,
2906     0x3a918900, 0x3aad3cc0, 0x3ac8db00, 0x3ae46bc0,
2907     0x3afff080, 0x3b1b6840, 0x3b36d2c0, 0x3b521980,
2908     0x3b6d0780, 0x3b876400, 0x3ba0f4c0, 0x3bb96740,
2909     0x3bd03dc0, 0x3be56580, 0x3bf6dec0, 0x3c0c6140,
2910     0x3c15a9c0, 0x3c1a5780, 0x3c1fd0c0, 0x3c25edc0,
2911     0x3c2c78c0, 0x3c333880, 0x3c39f3c0, 0x3c409100,
2912     0x3c471d00, 0x3c4da780, 0x3c543f40, 0x3c5ae880,
2913     0x3c619f00, 0x3c685f00, 0x3c6f25c0, 0x3c75f280,
2914     0x3c7cc6c0, 0x3c83a2c0, 0x3c8a87c0, 0x3c9175c0,
2915     0x3c986d00, 0x3c9f6e00, 0x3ca67880, 0x3cad8c40,
2916     0x3cb4a980, 0x3cbbd000, 0x3cc2ffc0, 0x3cca3940,
2917     0x3cd17d40, 0x3cd8cb80, 0x3ce02480, 0x3ce78740,
2918     0x3ceef3c0, 0x3cf66a00, 0x3cfdea00, 0x3d0574c0,
2919     0x3d0d0a40, 0x3d14ab40, 0x3d1c5700, 0x3d240d00,
2920     0x3d2bcd40, 0x3d3397c0, 0x3d3b6cc0, 0x3d434d00,
2921     0x3d4b38c0, 0x3d532fc0, 0x3d5b3180, 0x3d633dc0,
2922     0x3d6b53c0, 0x3d737400, 0x3d7b9f00, 0x3d83d540,
2923     0x3d8c1680, 0x3d946200, 0x3d9cb780, 0x3da51680,
2924     0x3dad7f00, 0x3db5f140, 0x3dbe6dc0, 0x3dc6f480,
2925     0x3dcf8540, 0x3dd81fc0, 0x3de0c300, 0x3de96ec0,
2926     0x3df22340, 0x3dfae0c0, 0x3e03a800, 0x3e0c7840,
2927     0x3e155180, 0x3e1e32c0, 0x3e271bc0, 0x3e300c00,
2928     0x3e390400, 0x3e420400, 0x3e4b0c40, 0x3e541c80,
2929     0x3e5d33c0, 0x3e6651c0, 0x3e6f7580, 0x3e789fc0,
2930     0x3e81d080, 0x3e8b0880, 0x3e944700, 0x3e9d8c00,
2931     0x3ea6d680, 0x3eb02600, 0x3eb97a80, 0x3ec2d400,
2932     0x3ecc3340, 0x3ed59880, 0x3edf0300, 0x3ee87280,
2933     0x3ef1e600, 0x3efb5d40, 0x3f04d880, 0x3f0e5840,
2934     0x3f17dcc0, 0x3f216600, 0x3f2af340, 0x3f348440,
2935     0x3f3e1840, 0x3f47af40, 0x3f514a00, 0x3f5ae840,
2936     0x3f648b00, 0x3f6e3140, 0x3f77db00, 0x3f818740,
2937     0x3f8b3600, 0x3f94e780, 0x3f9e9c40, 0x3fa85480,
2938     0x3fb21080, 0x3fbbcfc0, 0x3fc59200, 0x3fcf56c0,
2939     0x3fd91dc0, 0x3fe2e640, 0x3fecb040, 0x3ff67b40,
2940     0x40098600, 0x40135580, 0x401d2700, 0x4026fa00,
2941     0x4030ce80, 0x403aa380, 0x40447900, 0x404e4f00,
2942     0x40582400, 0x4061f900, 0x406bcd00, 0x4075a080,
2943     0x407f7480, 0x40894900, 0x40931e00, 0x409cf280,
2944     0x40a6c600, 0x40b09800, 0x40ba6980, 0x40c43a80,
2945     0x40ce0b00, 0x40d7db00, 0x40e1ab00, 0x40eb7980,
2946     0x40f54600, 0x40ff1080, 0x4108d980, 0x4112a100,
2947     0x411c6800, 0x41262d80, 0x412ff080, 0x4139b180,
2948     0x41436e80, 0x414d2980, 0x4156e100, 0x41609700,
2949     0x416a4a80, 0x4173fb00, 0x417da800, 0x41875000,
2950     0x4190f400, 0x419a9400, 0x41a43000, 0x41adc880,
2951     0x41b75d00, 0x41c0ec80, 0x41ca7700, 0x41d3fb00,
2952     0x41dd7980, 0x41e6f280, 0x41f06600, 0x41f9d480,
2953     0x42033d00, 0x420c9f00, 0x4215f980, 0x421f4d00,
2954     0x42289900, 0x4231de80, 0x423b1d00, 0x42445500,
2955     0x424d8500, 0x4256ad00, 0x425fcc80, 0x4268e380,
2956     0x4271f200, 0x427af900, 0x4283f880, 0x428cef80,
2957     0x4295de00, 0x429ec280, 0x42a79d80, 0x42b06f00,
2958     0x42b93800, 0x42c1f800, 0x42caaf80, 0x42d35d80,
2959     0x42dc0100, 0x42e49b00, 0x42ed2a80, 0x42f5b080,
2960     0x42fe2d80, 0x4306a180, 0x430f0c80, 0x43176d80,
2961     0x431fc480, 0x43281100, 0x43305400, 0x43388e80,
2962     0x4340c000, 0x4348e900, 0x43510900, 0x43591f00,
2963     0x43612b80, 0x43692f00, 0x43712900, 0x43791a80,
2964     0x43810380, 0x4388e400, 0x4390bc00, 0x43988b00,
2965     0x43a05180, 0x43a80f00, 0x43afc480, 0x43b77180,
2966     0x43bf1780, 0x43c6b700, 0x43ce5100, 0x43d5e580,
2967     0x43dd7100, 0x43e4ef80, 0x43ec5b80, 0x43f3ba80,
2968     0x43fb1c80, 0x44029400, 0x440a2e80, 0x4411d080,
2969     0x44193800, 0x44202480, 0x44265880, 0x442ba780,
2970     0x442d8680, 0x4428a500, 0x44241380, 0x441ccb00,
2971     0x44140100, 0x440a1200, 0x43ff7280, 0x43f46980,
2972     0x43e93200, 0x43ddff00, 0x43d2dc80, 0x43c7ac00,
2973     0x43bc4900, 0x43b09400, 0x43a47d80, 0x4397fd80,
2974     0x438b0780, 0x437d9b80, 0x436fd380, 0x4361cd80,
2975     0x4353a800, 0x43457500, 0x43373c80, 0x43290500,
2976     0x431ad400, 0x430ca280, 0x42fe6000, 0x42f00080,
2977     0x42e17380, 0x42d29e00, 0x42c35d80, 0x42b39200,
2978     0x42a32080, 0x4291fc00, 0x42801900, 0x426d6d80,
2979     0x4259f680, 0x4245bd00, 0x4230ca80, 0x421b2900,
2980     0x4204e800, 0x41ee1d00, 0x41d6dd80, 0x41bf3c80,
2981     0x41a74680, 0x418f0680, 0x41768800, 0x415dd100,
2982     0x4144e400, 0x412bbf80, 0x41126400, 0x40f8cc00,
2983     0x40deea00, 0x40c4b100, 0x40aa1400, 0x408f0800,
2984     0x40738380, 0x40577d80, 0x403aeb80, 0x401dc180,
2985     0x3ffff240, 0x3fe170c0, 0x3fc232c0, 0x3fa23680,
2986     0x3f817c40, 0x3f6002c0, 0x3f3ddec0, 0x3f1b4180,
2987     0x3ef85d40, 0x3ed56340, 0x3eb27240, 0x3e8f9c40,
2988     0x3e6cf400, 0x3e4a81c0, 0x3e282140, 0x3e059980,
2989     0x3de2b280, 0x3dbf4100, 0x3d9b3640, 0x3d768b00,
2990     0x3d513640, 0x3d2b3840, 0x3d049b80, 0x3cdd6b40,
2991     0x3cb5b400, 0x3c8d8f40, 0x3c652080, 0x3c3c8c40,
2992     0x3c13f480, 0x3beb7580, 0x3bc327c0, 0x3b9b2680,
2993     0x3b737000, 0x3b4bc580, 0x3b23d740, 0x3afb5640,
2994     0x3ad21c40, 0x3aa83780, 0x3a7dbc40, 0x3a52bf80,
2995     0x3a276600, 0x39fbe0c0, 0x39d06140, 0x39a50ec0,
2996     0x3979e300, 0x394ebf40, 0x392386c0, 0x38f82280,
2997     0x38cc89c0, 0x38a0b7c0, 0x3874a740, 0x38485840,
2998     0x381bd1c0, 0x37ef1b40, 0x37c23cc0, 0x37953dc0,
2999     0x376825c0, 0x373afc80, 0x370dc980, 0x36e09440,
3000     0x36b41dc0, 0x36862100, 0x3657e480, 0x36297240,
3001     0x35fad380, 0x35cc1200, 0x359d36c0, 0x356e4b40,
3002     0x353f5880, 0x35106780, 0x34e17780, 0x34b28240,
3003     0x34838040, 0x345466c0, 0x34251940, 0x33f57280,
3004     0x33c54bc0, 0x33949840, 0x33638380, 0x33324980,
3005     0x33012500, 0x32d04480, 0x329fc7c0, 0x326fcbc0,
3006     0x324068c0, 0x32116fc0, 0x31e27600, 0x31b30fc0,
3007     0x3182e300, 0x3151e240, 0x312029c0, 0x30edd080,
3008     0x30baf700, 0x3087cd00, 0x30548600, 0x30215680,
3009     0x2fee65c0, 0x2fbbca40, 0x2f899980, 0x2f57e6c0,
3010     0x2f26b540, 0x2ef5f980, 0x2ec5aa00, 0x2e95afc0,
3011     0x2e65c180, 0x2e357b40, 0x2e047840, 0x2dd27380,
3012     0x2d9f6c40, 0x2d6b7780, 0x2d36a6c0, 0x2d012940,
3013     0x2ccb5680, 0x2c958a00, 0x2c601b80, 0x2c2b3640,
3014     0x2bf6dfc0, 0x2bc31ec0, 0x2b8ff500, 0x2b5d5540,
3015     0x2b2b2a00, 0x2af95e80, 0x2ac7dd80, 0x2a968f80,
3016     0x2a655d40, 0x2a342f00, 0x2a02e8c0, 0x29d16700,
3017     0x299f8640, 0x296d2380, 0x293a2740, 0x29068400,
3018     0x28d22b40, 0x289d1540, 0x28675280, 0x28310180,
3019     0x27fa3f00, 0x27c32f80, 0x278c08c0, 0x275505c0,
3020     0x271e60c0, 0x26e84b00, 0x26b2e880, 0x267e5cc0,
3021     0x264ac940, 0x26183a40, 0x25e6aa80, 0x25b615c0,
3022     0x25866b80, 0x25576b40, 0x2528ba00, 0x24f9ffc0,
3023     0x24cadfc0, 0x249af540, 0x2469da80, 0x24372780,
3024     0x2402b800, 0x23ccbfc0, 0x23957cc0, 0x235d3140,
3025     0x23245200, 0x22eb8000, 0x22b35cc0, 0x227c7940,
3026     0x22471d40, 0x22136840, 0x21e18240, 0x21b15d80,
3027     0x21827dc0, 0x21544600, 0x21261b00, 0x20f78600,
3028     0x20c83e00, 0x20980000, 0x20668e00, 0x2033f300,
3029     0x20007400, 0x1fcc64e0, 0x1f97d120, 0x1f642320,
3030     0x1f2f49e0, 0x1efaa840, 0x1ec73580, 0x1e94d880,
3031     0x1e636120, 0x1e32a160, 0x1e025ba0, 0x1dd24300,
3032     0x1da20e60, 0x1d717940, 0x1d407560, 0x1d0f2040,
3033     0x1cdd95c0, 0x1cabf500, 0x1c7a6940, 0x1c492340,
3034     0x1c185680, 0x1be818c0, 0x1bb83f60, 0x1b888d20,
3035     0x1b58c640, 0x1b28c240, 0x1af871e0, 0x1ac7c960,
3036     0x1a96bf00, 0x1a656b60, 0x1a340360, 0x1a02bd20,
3037     0x19d1c6c0, 0x19a12f40, 0x1970f480, 0x19411640,
3038     0x19119000, 0x18e255a0, 0x18b358a0, 0x18848b20,
3039     0x1855e040, 0x18274e00, 0x17f8c9e0, 0x17ca4a80,
3040     0x179bce40, 0x176d5a60, 0x173ef400, 0x17109fe0,
3041     0x16e25f60, 0x16b43240, 0x16861880, 0x16581220,
3042     0x162a20c0, 0x15fc4620, 0x15ce8420, 0x15a0dca0,
3043     0x157351c0, 0x1545e580, 0x151899a0, 0x14eb6ec0,
3044     0x14be63a0, 0x14917a00, 0x14649ae0, 0x14377060,
3045     0x1409d0c0, 0x13dbbb20, 0x13ad58e0, 0x137f0160,
3046     0x1350cc80, 0x1322b8c0, 0x12f4ca60, 0x12c704e0,
3047     0x129968a0, 0x126bf5c0, 0x123eade0, 0x12119300,
3048     0x11e4a660, 0x11b7e860, 0x118b5940, 0x115ef8a0,
3049     0x1132c600, 0x1106c1a0, 0x10daecc0, 0x10af4900,
3050     0x1083d7a0, 0x10589c00, 0x102d9a00, 0x1002d1e0,
3051     0x0fd842c0, 0x0fadde80, 0x0f839a50, 0x0f597700,
3052     0x0f2f76e0, 0x0f05a170, 0x0edbf9c0, 0x0eb27f30,
3053     0x0e8930d0, 0x0e600d70, 0x0e371550, 0x0e0e4950,
3054     0x0de5ab50, 0x0dbd3d20, 0x0d94fe10, 0x0d6cecb0,
3055     0x0d450220, 0x0d1d38f0, 0x0cf59130, 0x0cce0c30,
3056     0x0ca6af10, 0x0c7f7b80, 0x0c587010, 0x0c318960,
3057     0x0c0ac200, 0x0be418d0, 0x0bbd8da0, 0x0b9724e0,
3058     0x0b70e6c0, 0x0b4ad970, 0x0b2502f0, 0x0aff6930,
3059     0x0ada1250, 0x0ab50430, 0x0a9044d0, 0x0a6bda30,
3060     0x0a3bedf0, 0x0a18be40, 0x09f5e530, 0x09d35cf0,
3061     0x09b11ff0, 0x098f2890, 0x096d7120, 0x094bf400,
3062     0x092aab80, 0x09099240, 0x08e8a620, 0x08c7e850,
3063     0x08a75990, 0x0886fae0, 0x0866ccf0, 0x0846d070,
3064     0x08270610, 0x08076e70, 0x07e80ac8, 0x07c8dc60,
3065     0x07a9e440, 0x078b2348, 0x076c99d0, 0x074e4818,
3066     0x07302e50, 0x07124d18, 0x06f4a530, 0x06d73778,
3067     0x06ba0488, 0x069d0c88, 0x06804f68, 0x0663cce0,
3068     0x06478528, 0x062b78a0, 0x060fa7e8, 0x05f413b8,
3069     0x05d8bc38, 0x05bda128, 0x05a2c258, 0x05881f60,
3070     0x056db888, 0x05538e60, 0x0539a170, 0x051ff218,
3071     0x05068040, 0x04ed4b90, 0x04d45398, 0x04bb9820,
3072     0x04a31988, 0x048ad860, 0x0472d528, 0x045b0ff0,
3073     0x04438860, 0x042c3de8, 0x04153040, 0x03fe5f4c,
3074     0x03e7cb98, 0x03d17580, 0x03bb5d64, 0x03a582e8,
3075     0x038fe588, 0x037a8494, 0x03655fcc, 0x03507768,
3076     0x033bcbb4, 0x03275d28, 0x03132bc0, 0x02ff370c,
3077     0x02eb7e94, 0x02d801e8, 0x02c4c11c, 0x02b1bcbc,
3078     0x029ef578, 0x028c6ba8, 0x027a1f20, 0x02680f54,
3079     0x02563bac, 0x0244a3c8, 0x023347a0, 0x02222730,
3080     0x0211429c, 0x02009938, 0x01f02974, 0x01dff1ae,
3081     0x01cff058, 0x01c024c8, 0x01b08ef4, 0x01a12eda,
3082     0x019204b0, 0x01831138, 0x01745588, 0x0165d2c2,
3083     0x01578a96, 0x01497ffc, 0x013bb670, 0x012e3160,
3084     0x0120f146, 0x0113f27c, 0x0107310c, 0x00faa909,
3085     0x00ee57a1, 0x00e23b09, 0x00d6515b, 0x00ca9977,
3086     0x00bf1509, 0x00b3c74d, 0x00a8b388, 0x009ddb3d,
3087     0x00933bf2, 0x0088d22c, 0x007e9a70, 0x0074935a,
3088     0x006abe70, 0x00611d5c, 0x0057b1f8, 0x004e7e73,
3089     0x0045859b, 0x003cca96, 0x00344f32, 0x002c1074,
3090     0x00240873, 0x001c31ba, 0x0014863f, 0x000cfe8b,
3091     0x00059307, 0xfffe3b9a, 0xfff6f718, 0xffefcd4d,
3092     0xffe8c6f4, 0xffe1ed10, 0xffdb4c57, 0xffd4f484,
3093     0xffcef5dc, 0xffc95d0c, 0xffc4284e, 0xffbf4e14,
3094     0xffbac5ae, 0xffb68360, 0xffb27548, 0xffae87be,
3095     0xffaaa733, 0xffa6c67e, 0xffa2e141, 0xff9ef40c,
3096     0xff9afc25, 0xff970058, 0xff930f7c, 0xff8f3857,
3097     0xff8b8900, 0xff880bfe, 0xff84c9ea, 0xff81cbbd,
3098     0xff7f17ad, 0xff7cadc6, 0xff7a8c4e, 0xff78b1cd,
3099     0xff7719f3, 0xff75bd06, 0xff7492a4, 0xff7392bf,
3100     0xff72b600, 0xff71f5c6, 0xff714b72, 0xff70b0ed,
3101     0xff702232, 0xff6f9c90, 0xff6f1cee, 0xff6ea21f,
3102     0xff6e2e9c, 0xff6dc617, 0xff6d6c09, 0xff6d2425,
3103     0xff6cf267, 0xff6cdaca, 0xff6ce155, 0xff6d0983,
3104     0xff6d56bb, 0xff6dcc4c, 0xff6e6cd0, 0xff6f3832,
3105     0xff702cc4, 0xff71492e, 0xff728ae2, 0xff73ed63,
3106     0xff756b7c, 0xff77001c, 0xff78a5d9, 0xff7a5693,
3107     0xff7c0c40, 0xff7dc141, 0xff7f74aa, 0xff81298b,
3108     0xff82e2de, 0xff84a3de, 0xff8670bd, 0xff884e42,
3109     0xff8a410c, 0xff8c4c7f, 0xff8e70fc, 0xff90ae18,
3110     0xff93037e, 0xff956f12, 0xff97ec86, 0xff9a7724,
3111     0xff9d0a9d, 0xff9fa3ea, 0xffa2417e, 0xffa4e1ac,
3112     0xffa78332, 0xffaa265a, 0xffaccc26, 0xffaf758e,
3113     0xffb223d4, 0xffb4d906, 0xffb79726, 0xffba604e,
3114     0xffbd349e, 0xffc011a8, 0xffc2f4d2, 0xffc5db82,
3115     0xffc8c45f, 0xffcbaed5, 0xffce9a6d, 0xffd186c6,
3116     0xffd473aa, 0xffd760e5, 0xffda4e55, 0xffdd3bd0,
3117     0xffe0292b, 0xffe31645, 0xffe602ff, 0xffe8eef7,
3118     0xffebd978, 0xffeec1bf, 0xfff1a72c, 0xfff488fe,
3119     0xfff76689, 0xfffa3f2c, 0xfffd1245, 0xffffdf33,
3120     0x000020ac, 0x0002e66f, 0x0005a937, 0x00086839,
3121     0x000b22b3, 0x000dd7da, 0x001086ec, 0x00132f3c,
3122     0x0015d001, 0x00186897, 0x001af849, 0x001d7eb6,
3123     0x001ffbbe, 0x00226f41, 0x0024d8e8, 0x00273874,
3124     0x00298d82, 0x002bd7aa, 0x002e16d4, 0x00304af6,
3125     0x00327406, 0x00349203, 0x0036a416, 0x0038a893,
3126     0x003a9da0, 0x003c8170, 0x003e53b8, 0x0040159a,
3127     0x0041c816, 0x00436c92, 0x0045042c, 0x00468ff2,
3128     0x00481106, 0x004987fe, 0x004af466, 0x004c5599,
3129     0x004daae4, 0x004ef28c, 0x005029c4, 0x00514d9a,
3130     0x00525b57, 0x005351f7, 0x00543190, 0x0054fa43,
3131     0x0055ac2f, 0x00564938, 0x0056d3f7, 0x00574f3c,
3132     0x0057bdd7, 0x00582260, 0x00587f28, 0x0058d6b1,
3133     0x0059293c, 0x0059741a, 0x0059b472, 0x0059e73c,
3134     0x005a0976, 0x005a1870, 0x005a116e, 0x0059f224,
3135     0x0059b964, 0x005966ce, 0x0058f9e2, 0x005872e8,
3136     0x0057d407, 0x00571f82, 0x005657b0, 0x00557ecd,
3137     0x00549731, 0x0053a34b, 0x0052a56a, 0x00519fc6,
3138     0x00509482, 0x004f85a4, 0x004e74ee, 0x004d6214,
3139     0x004c4bd3, 0x004b314c, 0x004a1110, 0x0048e8c8,
3140     0x0047b5f7, 0x00467626, 0x00452690, 0x0043c405,
3141     0x00424b7f, 0x0040ba04, 0x003f0e53, 0x003d488b,
3142     0x003b688c, 0x00396eb6, 0x00375dfb, 0x00353aaa,
3143     0x003308ac, 0x0030ccb1, 0x002e8cf1, 0x002c4fd5,
3144     0x002a1be8, 0x0027f486, 0x0025d90d, 0x0023c852,
3145     0x0021c13b, 0x001fbf23, 0x001dbafc, 0x001badc6,
3146     0x00199136, 0x00176150, 0x00151b86, 0x0012bcd1,
3147     0x001044d1, 0x000db8d0, 0x000b1f43, 0x00087e89,
3148     0x0005dbe2, 0x00033b1e, 0x00009fee, 0xfffe0d82,
3149     0xfffb83cf, 0xfff90047, 0xfff6805a, 0xfff4019a,
3150     0xfff18203, 0xffeeffb2, 0xffec78ba, 0xffe9ec4d,
3151     0xffe75b4e, 0xffe4c71f, 0xffe23138, 0xffdf9ae6,
3152     0xffdd0574, 0xffda723c, 0xffd7e24a, 0xffd55567,
3153     0xffd2cabe, 0xffd04161, 0xffcdb890, 0xffcb306a,
3154     0xffc8a95c, 0xffc62406, 0xffc3a140, 0xffc12188,
3155     0xffbea542, 0xffbc2cc2, 0xffb9b7d2, 0xffb745f2,
3156     0xffb4d6ac, 0xffb268fe, 0xffaffc72, 0xffad90e8,
3157     0xffab263e, 0xffa8bcb8, 0xffa6547e, 0xffa3ed7b,
3158     0xffa187ba, 0xff9f2351, 0xff9cc055, 0xff9a5ebc,
3159     0xff97fe84, 0xff959f84, 0xff934146, 0xff90e37d,
3160     0xff8e858a, 0xff8c26c0, 0xff89c69e, 0xff876483,
3161     0xff84ffe4, 0xff82982b, 0xff802cb6, 0xff7dbccf,
3162     0xff7b47b4, 0xff78ccd0, 0xff764b6c, 0xff73c2db,
3163     0xff713227, 0xff6e9864, 0xff6bf470, 0xff694553,
3164     0xff668a0d, 0xff63c1a6, 0xff60ec34, 0xff5e0e9e,
3165     0xff5b30d3, 0xff585b8c, 0xff5595c9, 0xff52e1da,
3166     0xff5040a0, 0xff4db31c, 0xff4b3a3b, 0xff48d67e,
3167     0xff468850, 0xff445011, 0xff422ded, 0xff4021f9,
3168     0xff3e2c56, 0xff3c4cf8, 0xff3a83df, 0xff38d0ec,
3169     0xff3733c9, 0xff35ac14, 0xff343963, 0xff32db09,
3170     0xff319066, 0xff305898, 0xff2f323d, 0xff2e1bb2,
3171     0xff2d1369, 0xff2c18f8, 0xff2b2d2a, 0xff2a50e1,
3172     0xff2984f4, 0xff28c978, 0xff281e01, 0xff278245,
3173     0xff26f5c3, 0xff26785a, 0xff2609bf, 0xff25a9c8,
3174     0xff255814, 0xff2513f6, 0xff24dcc4, 0xff24b1a6,
3175     0xff2492b1, 0xff248093, 0xff247c0b, 0xff2485c6,
3176     0xff249daf, 0xff24c359, 0xff24f639, 0xff253605,
3177     0xff258312, 0xff25ddd5, 0xff2646e7, 0xff26be25,
3178     0xff274264, 0xff27d1f6, 0xff286b19, 0xff290c13,
3179     0xff29b30d, 0xff2a5e38, 0xff2b0bbd, 0xff2bb9a2,
3180     0xff29a9d2, 0xff2a53dc, 0xff2b0a5a, 0xff2bcd43,
3181     0xff2c9c76, 0xff2d7808, 0xff2e5ffa, 0xff2f544c,
3182     0xff305528, 0xff316299, 0xff327ce0, 0xff33a432,
3183     0xff34d8ba, 0xff361a8e, 0xff3768f8, 0xff38c2f5,
3184     0xff3a2784, 0xff3b9623, 0xff3d0ef4, 0xff3e9277,
3185     0xff4020ed, 0xff41ba14, 0xff435ccc, 0xff4507fd,
3186     0xff46ba84, 0xff4873ac, 0xff4a32ea, 0xff4bf7bb,
3187     0xff4dc17f, 0xff4f8fa0, 0xff516167, 0xff53361d,
3188     0xff550d79, 0xff56e7ee, 0xff58c5ff, 0xff5aa84d,
3189     0xff5c8e41, 0xff5e75e2, 0xff605d4d, 0xff6242b6,
3190     0xff6424b8, 0xff66023d, 0xff67da44, 0xff69abd6,
3191     0xff6b7646, 0xff6d38e8, 0xff6ef348, 0xff70a4ce,
3192     0xff724d0f, 0xff73eb95, 0xff757fff, 0xff770a2d,
3193     0xff788a20, 0xff79fff6, 0xff7b6be7, 0xff7cce52,
3194     0xff7e27e4, 0xff7f78fc, 0xff80c38a, 0xff820e98,
3195     0xff836378, 0xff84caaa, 0xff864990, 0xff87dff4,
3196     0xff898c30, 0xff8b4cda, 0xff8d207a, 0xff8f05cc,
3197     0xff90fb9b, 0xff930098, 0xff95138e, 0xff97332d,
3198     0xff995e2a, 0xff9b934e, 0xff9dd18c, 0xffa017e3,
3199     0xffa26550, 0xffa4b8e7, 0xffa711a8, 0xffa96eae,
3200     0xffabcefc, 0xffae31cc, 0xffb09680, 0xffb2fc82,
3201     0xffb5635a, 0xffb7ca52, 0xffba30a8, 0xffbc95a8,
3202     0xffbef8a4, 0xffc158d0, 0xffc3b557, 0xffc60d6b,
3203     0xffc86041, 0xffcaacb7, 0xffccf1cb, 0xffcf2e5c,
3204     0xffd161e8, 0xffd38c8f, 0xffd5ae88, 0xffd7c808,
3205     0xffd9d925, 0xffdbe1c8, 0xffdde1f3, 0xffdfd964,
3206     0xffe1c79b, 0xffe3abcc, 0xffe5852a, 0xffe75341,
3207     0xffe9162f, 0xffeace55, 0xffec7c15, 0xffee1f63,
3208     0xffefb7e9, 0xfff1453d, 0xfff2c6fd, 0xfff43ca8,
3209     0xfff5a5d4, 0xfff701ea, 0xfff850b4, 0xfff99288,
3210     0xfffac853, 0xfffbf2d5, 0xfffd12e6, 0xfffe2991,
3211     0xffff37e4, 0x00003eea, 0x00013ec4, 0x00023646,
3212     0x0003244d, 0x00040797, 0x0004de8c, 0x0005a734,
3213     0x00065fab, 0x0007068f, 0x00079c82, 0x000822fa,
3214     0x00089b70, 0x000907a6, 0x00096a01, 0x0009c506,
3215     0x000a1b37, 0x000a6e18, 0x000abe1f, 0x000b0bac,
3216     0x000b5701, 0x000b9f3b, 0x000be2c2, 0x000c1fff,
3217     0x000c5599, 0x000c829a, 0x000ca661, 0x000cc058,
3218     0x000cd028, 0x000cd63d, 0x000cd317, 0x000cc739,
3219     0x000cb36d, 0x000c98c0, 0x000c7833, 0x000c52df,
3220     0x000c2984, 0x000bfcf9, 0x000bcdea, 0x000b9cf7,
3221     0x000b6a97, 0x000b3700, 0x000b029d, 0x000acd79,
3222     0x000a977e, 0x000a6076, 0x000a2838, 0x0009eea1,
3223     0x0009b37d, 0x000976c2, 0x0009384e, 0x0008f816,
3224     0x0008b612, 0x0008724a, 0x00082cd5, 0x0007e5e8,
3225     0x00079dce, 0x000754de, 0x00070b62, 0x0006c1c6,
3226     0x0006786a, 0x00062fba, 0x0005e801, 0x0005a1a0,
3227     0x00055ce1, 0x000519fb, 0x0004d8f8, 0x000499b8,
3228     0x00045c30, 0x00042040, 0x0003e5c8, 0x0003acb3,
3229     0x000374df, 0x00033e59, 0x00030934, 0x0002d57d,
3230     0x0002a348, 0x000272b6, 0x000243f2, 0x00021711,
3231     0x0001ec3e, 0x0001c37a, 0x00019cc3, 0x00017830,
3232     0x000155a0, 0x00013514, 0x0001168b, 0x0000f9e6,
3233     0x0000df23, 0x0000c62e, 0x0000aef2, 0x00009978,
3234     0x000085a1, 0x0000736d, 0x000062dc, 0x000053d8,
3235     0x0000466c, 0x00003a62, 0x00002fd1, 0x00002681,
3236     0x00001e73, 0x00001792, 0x000011c9, 0x00000cf6,
3237     0x0000091a, 0x000005ff, 0x000003b1, 0x00000203,
3238     0x000000d7, 0x0000002b, 0xffffffd5, 0xffffffc0,
3239     0xffffffd5, 0x00000000, 0x00000015, 0x00000000,
3240     0x00000000, 0x00000015, 0x00000000, 0xffffffd5,
3241     0xffffffca, 0xffffffd5, 0x0000002b, 0x000000cc,
3242     0x000001e3, 0x0000037b, 0x0000059f, 0x0000086e,
3243     0x00000bf4, 0x0000103b, 0x00001564, 0x00001b6e,
3244     0x0000226f, 0x00002a68, 0x00003377, 0x00003d93,
3245     0x000048c5, 0x00005525, 0x000062a6, 0x00007155,
3246     0x0000812f, 0x00009237, 0x0000a455, 0x0000b7ab,
3247     0x0000cc18, 0x0000e1bd, 0x0000f878, 0x0001106c,
3248     0x00012981, 0x000143c2, 0x00015f30, 0x00017bb6,
3249     0x00019948, 0x0001b7e6, 0x0001d771, 0x0001f7bc,
3250     0x000218b4, 0x00023a42, 0x00025c3b, 0x00027ea0,
3251     0x0002a150, 0x0002c440, 0x0002e771, 0x00030aed,
3252     0x00032eb4, 0x000352db, 0x00037759, 0x00039c4c,
3253     0x0003c1ac, 0x0003e74b, 0x00040d00, 0x0004329f,
3254     0x000457de, 0x00047c9c, 0x0004a083, 0x0004c35e,
3255     0x0004e502, 0x00050543, 0x000523ec, 0x000540e7,
3256     0x00055c2b, 0x000575c0, 0x00058da9, 0x0005a3e4,
3257     0x0005b886, 0x0005cbb1, 0x0005dd65, 0x0005edcb,
3258     0x0005fcfa, 0x00060afc, 0x00061808, 0x000623fc,
3259     0x00062ec3, 0x00063849, 0x0006404b, 0x000646ac,
3260     0x00064b13, 0x00064d37, 0x00064cd6, 0x0006497b,
3261     0x000642c5, 0x0006385e, 0x000629f0, 0x00061766,
3262     0x000600a0, 0x0005e57d, 0x0005c63e, 0x0005a322,
3263     0x00057c97, 0x00055306, 0x00052711, 0x0004f96f,
3264     0x0004caeb, 0x00049bfc, 0x00046c96, 0x00043cbb,
3265     0x00040c3f, 0x0003daab, 0x0003a734, 0x000370f9,
3266     0x0003372d, 0x0002f944, 0x0002b6d4, 0x00026f71,
3267     0x000222fb, 0x0001d212, 0x00017d84, 0x00012630,
3268     0x0000ccda, 0x00007200, 0x0000163b, 0xffffba15,
3269     0xffff5da3, 0xffff0091, 0xfffea293, 0xfffe4367,
3270     0xfffde2da, 0xfffd809f, 0xfffd1c81, 0xfffcb66a,
3271     0xfffc4e90, 0xfffbe53e, 0xfffb7aa0, 0xfffb0f0a,
3272     0xfffaa2c9, 0xfffa3612, 0xfff9c92f, 0xfff95c2d,
3273     0xfff8eef4, 0xfff8817c, 0xfff813c3, 0xfff7a5d4,
3274     0xfff737e5, 0xfff6ca17, 0xfff65c9e, 0xfff5efbc,
3275     0xfff58390, 0xfff51830, 0xfff4adbc, 0xfff44435,
3276     0xfff3db9a, 0xfff373d6, 0xfff30cfd, 0xfff2a71c,
3277     0xfff24248, 0xfff1de9f, 0xfff17c44, 0xfff11b56,
3278     0xfff0bbea, 0xfff05e17, 0xfff00206, 0xffefa7d9,
3279     0xffef4f99, 0xffeef95d, 0xffeea53a, 0xffee533a,
3280     0xffee035e, 0xffedb5b0, 0xffed6a3c, 0xffed20f5,
3281     0xffecd9fe, 0xffec9555, 0xffec5305, 0xffec1319,
3282     0xffebd591, 0xffeb9a83, 0xffeb61f9, 0xffeb2bfe,
3283     0xffeaf89c, 0xffeac7ea, 0xffea99d2, 0xffea6e7e,
3284     0xffea45ef, 0xffea203a, 0xffe9fda0, 0xffe9decc,
3285     0xffe9c3de, 0xffe9ac56, 0xffe99789, 0xffe9845e,
3286     0xffe97295, 0xffe96219, 0xffe952ea, 0xffe944f3,
3287     0xffe93833, 0xffe92c9f, 0xffe92238, 0xffe918fe,
3288     0xffe910fb, 0xffe90a3a, 0xffe904c6, 0xffe900a0,
3289     0xffe8fddb, 0xffe8fc83, 0xffe8fca4, 0xffe8fe3c,
3290     0xffe9016c, 0xffe9061e, 0xffe90c74, 0xffe9146c,
3291     0xffe91e11, 0xffe929a5, 0xffe93731, 0xffe946c0,
3292     0xffe95833, 0xffe96b7e, 0xffe98082, 0xffe9975e,
3293     0xffe9affd, 0xffe9ca5e, 0xffe9e68e, 0xffea0481,
3294     0xffea242b, 0xffea458e, 0xffea6894, 0xffea8d52,
3295     0xffeab3c8, 0xffeadc0c, 0xffeb05fe, 0xffeb31a7,
3296     0xffeb5ede, 0xffeb8da2, 0xffebbdf4, 0xffebefbd,
3297     0xffec231f, 0xffec5802, 0xffec8e5e, 0xffecc61c,
3298     0xffecff1c, 0xffed391e, 0xffed740c, 0xffedafb1,
3299     0xffedebe1, 0xffee287d, 0xffee654e, 0xffeea23f,
3300 };
3301
3302 static void aac_tableinit(void)
3303 {
3304     /* 2^(i/16) for 0 <= i <= 15 */
3305     static const float exp2_lut[] = {
3306         1.00000000000000000000,
3307         1.04427378242741384032,
3308         1.09050773266525765921,
3309         1.13878863475669165370,
3310         1.18920711500272106672,
3311         1.24185781207348404859,
3312         1.29683955465100966593,
3313         1.35425554693689272830,
3314         1.41421356237309504880,
3315         1.47682614593949931139,
3316         1.54221082540794082361,
3317         1.61049033194925430818,
3318         1.68179283050742908606,
3319         1.75625216037329948311,
3320         1.83400808640934246349,
3321         1.91520656139714729387,
3322     };
3323     float t1 = 8.8817841970012523233890533447265625e-16; // 2^(-50)
3324     float t2 = 3.63797880709171295166015625e-12; // 2^(-38)
3325     int t1_inc_cur, t2_inc_cur;
3326     int t1_inc_prev = 0;
3327     int t2_inc_prev = 8;
3328
3329     for (int i = 0; i < 428; i++) {
3330         t1_inc_cur = 4 * (i % 4);
3331         t2_inc_cur = (8 + 3*i) % 16;
3332         if (t1_inc_cur < t1_inc_prev)
3333             t1 *= 2;
3334         if (t2_inc_cur < t2_inc_prev)
3335             t2 *= 2;
3336         // A much more efficient and accurate way of doing:
3337         // ff_aac_pow2sf_tab[i]  = pow(2, (i - POW_SF2_ZERO) / 4.0);
3338         // ff_aac_pow34sf_tab[i] = pow(ff_aac_pow2sf_tab[i], 3.0/4.0);
3339         ff_aac_pow2sf_tab[i]  = t1 * exp2_lut[t1_inc_cur];
3340         ff_aac_pow34sf_tab[i] = t2 * exp2_lut[t2_inc_cur];
3341         t1_inc_prev = t1_inc_cur;
3342         t2_inc_prev = t2_inc_cur;
3343     }
3344 }
3345
3346 void ff_aac_tableinit(void)
3347 {
3348     static AVOnce init_static_once = AV_ONCE_INIT;
3349     ff_thread_once(&init_static_once, aac_tableinit);
3350 }