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