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