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