Sync already committed code with that in SoC and commit more OKed hunks of code
[libav.git] / libavcodec / aactab.c
1 /*
2 * AAC data
3 * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4 * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23 /**
24 * @file aactab.c
25 * AAC data
26 * @author Oded Shimon ( ods15 ods15 dyndns org )
27 * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
28 */
29
30 #include "libavutil/mem.h"
31 #include "aac.h"
32
33 #include <stdint.h>
34
35 const uint32_t ff_aac_scalefactor_code[121] = {
36 0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6,
37 0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7,
38 0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0,
39 0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7,
40 0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5,
41 0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7,
42 0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a,
43 0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b,
44 0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9,
45 0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5,
46 0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4,
47 0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd,
48 0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2,
49 0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0,
50 0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4,
51 0x7fff3,
52 };
53
54 const uint8_t ff_aac_scalefactor_bits[121] = {
55 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
56 19, 19, 19, 18, 19, 18, 17, 17, 16, 17, 16, 16, 16, 16, 15, 15,
57 14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11, 12, 11, 10, 10,
58 10, 9, 9, 8, 8, 8, 7, 6, 6, 5, 4, 3, 1, 4, 4, 5,
59 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12,
60 12, 13, 13, 13, 14, 14, 16, 15, 16, 15, 18, 19, 19, 19, 19, 19,
61 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
62 19, 19, 19, 19, 19, 19, 19, 19, 19,
63 };
64
65 static const uint16_t codes1[81] = {
66 0x7f8, 0x1f1, 0x7fd, 0x3f5, 0x068, 0x3f0, 0x7f7, 0x1ec,
67 0x7f5, 0x3f1, 0x072, 0x3f4, 0x074, 0x011, 0x076, 0x1eb,
68 0x06c, 0x3f6, 0x7fc, 0x1e1, 0x7f1, 0x1f0, 0x061, 0x1f6,
69 0x7f2, 0x1ea, 0x7fb, 0x1f2, 0x069, 0x1ed, 0x077, 0x017,
70 0x06f, 0x1e6, 0x064, 0x1e5, 0x067, 0x015, 0x062, 0x012,
71 0x000, 0x014, 0x065, 0x016, 0x06d, 0x1e9, 0x063, 0x1e4,
72 0x06b, 0x013, 0x071, 0x1e3, 0x070, 0x1f3, 0x7fe, 0x1e7,
73 0x7f3, 0x1ef, 0x060, 0x1ee, 0x7f0, 0x1e2, 0x7fa, 0x3f3,
74 0x06a, 0x1e8, 0x075, 0x010, 0x073, 0x1f4, 0x06e, 0x3f7,
75 0x7f6, 0x1e0, 0x7f9, 0x3f2, 0x066, 0x1f5, 0x7ff, 0x1f7,
76 0x7f4,
77 };
78
79 static const uint8_t bits1[81] = {
80 11, 9, 11, 10, 7, 10, 11, 9, 11, 10, 7, 10, 7, 5, 7, 9,
81 7, 10, 11, 9, 11, 9, 7, 9, 11, 9, 11, 9, 7, 9, 7, 5,
82 7, 9, 7, 9, 7, 5, 7, 5, 1, 5, 7, 5, 7, 9, 7, 9,
83 7, 5, 7, 9, 7, 9, 11, 9, 11, 9, 7, 9, 11, 9, 11, 10,
84 7, 9, 7, 5, 7, 9, 7, 10, 11, 9, 11, 10, 7, 9, 11, 9,
85 11,
86 };
87
88 static const uint16_t codes2[81] = {
89 0x1f3, 0x06f, 0x1fd, 0x0eb, 0x023, 0x0ea, 0x1f7, 0x0e8,
90 0x1fa, 0x0f2, 0x02d, 0x070, 0x020, 0x006, 0x02b, 0x06e,
91 0x028, 0x0e9, 0x1f9, 0x066, 0x0f8, 0x0e7, 0x01b, 0x0f1,
92 0x1f4, 0x06b, 0x1f5, 0x0ec, 0x02a, 0x06c, 0x02c, 0x00a,
93 0x027, 0x067, 0x01a, 0x0f5, 0x024, 0x008, 0x01f, 0x009,
94 0x000, 0x007, 0x01d, 0x00b, 0x030, 0x0ef, 0x01c, 0x064,
95 0x01e, 0x00c, 0x029, 0x0f3, 0x02f, 0x0f0, 0x1fc, 0x071,
96 0x1f2, 0x0f4, 0x021, 0x0e6, 0x0f7, 0x068, 0x1f8, 0x0ee,
97 0x022, 0x065, 0x031, 0x002, 0x026, 0x0ed, 0x025, 0x06a,
98 0x1fb, 0x072, 0x1fe, 0x069, 0x02e, 0x0f6, 0x1ff, 0x06d,
99 0x1f6,
100 };
101
102 static const uint8_t bits2[81] = {
103 9, 7, 9, 8, 6, 8, 9, 8, 9, 8, 6, 7, 6, 5, 6, 7,
104 6, 8, 9, 7, 8, 8, 6, 8, 9, 7, 9, 8, 6, 7, 6, 5,
105 6, 7, 6, 8, 6, 5, 6, 5, 3, 5, 6, 5, 6, 8, 6, 7,
106 6, 5, 6, 8, 6, 8, 9, 7, 9, 8, 6, 8, 8, 7, 9, 8,
107 6, 7, 6, 4, 6, 8, 6, 7, 9, 7, 9, 7, 6, 8, 9, 7,
108 9,
109 };
110
111 static const uint16_t codes3[81] = {
112 0x0000, 0x0009, 0x00ef, 0x000b, 0x0019, 0x00f0, 0x01eb, 0x01e6,
113 0x03f2, 0x000a, 0x0035, 0x01ef, 0x0034, 0x0037, 0x01e9, 0x01ed,
114 0x01e7, 0x03f3, 0x01ee, 0x03ed, 0x1ffa, 0x01ec, 0x01f2, 0x07f9,
115 0x07f8, 0x03f8, 0x0ff8, 0x0008, 0x0038, 0x03f6, 0x0036, 0x0075,
116 0x03f1, 0x03eb, 0x03ec, 0x0ff4, 0x0018, 0x0076, 0x07f4, 0x0039,
117 0x0074, 0x03ef, 0x01f3, 0x01f4, 0x07f6, 0x01e8, 0x03ea, 0x1ffc,
118 0x00f2, 0x01f1, 0x0ffb, 0x03f5, 0x07f3, 0x0ffc, 0x00ee, 0x03f7,
119 0x7ffe, 0x01f0, 0x07f5, 0x7ffd, 0x1ffb, 0x3ffa, 0xffff, 0x00f1,
120 0x03f0, 0x3ffc, 0x01ea, 0x03ee, 0x3ffb, 0x0ff6, 0x0ffa, 0x7ffc,
121 0x07f2, 0x0ff5, 0xfffe, 0x03f4, 0x07f7, 0x7ffb, 0x0ff7, 0x0ff9,
122 0x7ffa,
123 };
124
125 static const uint8_t bits3[81] = {
126 1, 4, 8, 4, 5, 8, 9, 9, 10, 4, 6, 9, 6, 6, 9, 9,
127 9, 10, 9, 10, 13, 9, 9, 11, 11, 10, 12, 4, 6, 10, 6, 7,
128 10, 10, 10, 12, 5, 7, 11, 6, 7, 10, 9, 9, 11, 9, 10, 13,
129 8, 9, 12, 10, 11, 12, 8, 10, 15, 9, 11, 15, 13, 14, 16, 8,
130 10, 14, 9, 10, 14, 12, 12, 15, 11, 12, 16, 10, 11, 15, 12, 12,
131 15,
132 };
133
134 static const uint16_t codes4[81] = {
135 0x007, 0x016, 0x0f6, 0x018, 0x008, 0x0ef, 0x1ef, 0x0f3,
136 0x7f8, 0x019, 0x017, 0x0ed, 0x015, 0x001, 0x0e2, 0x0f0,
137 0x070, 0x3f0, 0x1ee, 0x0f1, 0x7fa, 0x0ee, 0x0e4, 0x3f2,
138 0x7f6, 0x3ef, 0x7fd, 0x005, 0x014, 0x0f2, 0x009, 0x004,
139 0x0e5, 0x0f4, 0x0e8, 0x3f4, 0x006, 0x002, 0x0e7, 0x003,
140 0x000, 0x06b, 0x0e3, 0x069, 0x1f3, 0x0eb, 0x0e6, 0x3f6,
141 0x06e, 0x06a, 0x1f4, 0x3ec, 0x1f0, 0x3f9, 0x0f5, 0x0ec,
142 0x7fb, 0x0ea, 0x06f, 0x3f7, 0x7f9, 0x3f3, 0xfff, 0x0e9,
143 0x06d, 0x3f8, 0x06c, 0x068, 0x1f5, 0x3ee, 0x1f2, 0x7f4,
144 0x7f7, 0x3f1, 0xffe, 0x3ed, 0x1f1, 0x7f5, 0x7fe, 0x3f5,
145 0x7fc,
146 };
147
148 static const uint8_t bits4[81] = {
149 4, 5, 8, 5, 4, 8, 9, 8, 11, 5, 5, 8, 5, 4, 8, 8,
150 7, 10, 9, 8, 11, 8, 8, 10, 11, 10, 11, 4, 5, 8, 4, 4,
151 8, 8, 8, 10, 4, 4, 8, 4, 4, 7, 8, 7, 9, 8, 8, 10,
152 7, 7, 9, 10, 9, 10, 8, 8, 11, 8, 7, 10, 11, 10, 12, 8,
153 7, 10, 7, 7, 9, 10, 9, 11, 11, 10, 12, 10, 9, 11, 11, 10,
154 11,
155 };
156
157 static const uint16_t codes5[81] = {
158 0x1fff, 0x0ff7, 0x07f4, 0x07e8, 0x03f1, 0x07ee, 0x07f9, 0x0ff8,
159 0x1ffd, 0x0ffd, 0x07f1, 0x03e8, 0x01e8, 0x00f0, 0x01ec, 0x03ee,
160 0x07f2, 0x0ffa, 0x0ff4, 0x03ef, 0x01f2, 0x00e8, 0x0070, 0x00ec,
161 0x01f0, 0x03ea, 0x07f3, 0x07eb, 0x01eb, 0x00ea, 0x001a, 0x0008,
162 0x0019, 0x00ee, 0x01ef, 0x07ed, 0x03f0, 0x00f2, 0x0073, 0x000b,
163 0x0000, 0x000a, 0x0071, 0x00f3, 0x07e9, 0x07ef, 0x01ee, 0x00ef,
164 0x0018, 0x0009, 0x001b, 0x00eb, 0x01e9, 0x07ec, 0x07f6, 0x03eb,
165 0x01f3, 0x00ed, 0x0072, 0x00e9, 0x01f1, 0x03ed, 0x07f7, 0x0ff6,
166 0x07f0, 0x03e9, 0x01ed, 0x00f1, 0x01ea, 0x03ec, 0x07f8, 0x0ff9,
167 0x1ffc, 0x0ffc, 0x0ff5, 0x07ea, 0x03f3, 0x03f2, 0x07f5, 0x0ffb,
168 0x1ffe,
169 };
170
171 static const uint8_t bits5[81] = {
172 13, 12, 11, 11, 10, 11, 11, 12, 13, 12, 11, 10, 9, 8, 9, 10,
173 11, 12, 12, 10, 9, 8, 7, 8, 9, 10, 11, 11, 9, 8, 5, 4,
174 5, 8, 9, 11, 10, 8, 7, 4, 1, 4, 7, 8, 11, 11, 9, 8,
175 5, 4, 5, 8, 9, 11, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12,
176 11, 10, 9, 8, 9, 10, 11, 12, 13, 12, 12, 11, 10, 10, 11, 12,
177 13,
178 };
179
180 static const uint16_t codes6[81] = {
181 0x7fe, 0x3fd, 0x1f1, 0x1eb, 0x1f4, 0x1ea, 0x1f0, 0x3fc,
182 0x7fd, 0x3f6, 0x1e5, 0x0ea, 0x06c, 0x071, 0x068, 0x0f0,
183 0x1e6, 0x3f7, 0x1f3, 0x0ef, 0x032, 0x027, 0x028, 0x026,
184 0x031, 0x0eb, 0x1f7, 0x1e8, 0x06f, 0x02e, 0x008, 0x004,
185 0x006, 0x029, 0x06b, 0x1ee, 0x1ef, 0x072, 0x02d, 0x002,
186 0x000, 0x003, 0x02f, 0x073, 0x1fa, 0x1e7, 0x06e, 0x02b,
187 0x007, 0x001, 0x005, 0x02c, 0x06d, 0x1ec, 0x1f9, 0x0ee,
188 0x030, 0x024, 0x02a, 0x025, 0x033, 0x0ec, 0x1f2, 0x3f8,
189 0x1e4, 0x0ed, 0x06a, 0x070, 0x069, 0x074, 0x0f1, 0x3fa,
190 0x7ff, 0x3f9, 0x1f6, 0x1ed, 0x1f8, 0x1e9, 0x1f5, 0x3fb,
191 0x7fc,
192 };
193
194 static const uint8_t bits6[81] = {
195 11, 10, 9, 9, 9, 9, 9, 10, 11, 10, 9, 8, 7, 7, 7, 8,
196 9, 10, 9, 8, 6, 6, 6, 6, 6, 8, 9, 9, 7, 6, 4, 4,
197 4, 6, 7, 9, 9, 7, 6, 4, 4, 4, 6, 7, 9, 9, 7, 6,
198 4, 4, 4, 6, 7, 9, 9, 8, 6, 6, 6, 6, 6, 8, 9, 10,
199 9, 8, 7, 7, 7, 7, 8, 10, 11, 10, 9, 9, 9, 9, 9, 10,
200 11,
201 };
202
203 static const uint16_t codes7[64] = {
204 0x000, 0x005, 0x037, 0x074, 0x0f2, 0x1eb, 0x3ed, 0x7f7,
205 0x004, 0x00c, 0x035, 0x071, 0x0ec, 0x0ee, 0x1ee, 0x1f5,
206 0x036, 0x034, 0x072, 0x0ea, 0x0f1, 0x1e9, 0x1f3, 0x3f5,
207 0x073, 0x070, 0x0eb, 0x0f0, 0x1f1, 0x1f0, 0x3ec, 0x3fa,
208 0x0f3, 0x0ed, 0x1e8, 0x1ef, 0x3ef, 0x3f1, 0x3f9, 0x7fb,
209 0x1ed, 0x0ef, 0x1ea, 0x1f2, 0x3f3, 0x3f8, 0x7f9, 0x7fc,
210 0x3ee, 0x1ec, 0x1f4, 0x3f4, 0x3f7, 0x7f8, 0xffd, 0xffe,
211 0x7f6, 0x3f0, 0x3f2, 0x3f6, 0x7fa, 0x7fd, 0xffc, 0xfff,
212 };
213
214 static const uint8_t bits7[64] = {
215 1, 3, 6, 7, 8, 9, 10, 11, 3, 4, 6, 7, 8, 8, 9, 9,
216 6, 6, 7, 8, 8, 9, 9, 10, 7, 7, 8, 8, 9, 9, 10, 10,
217 8, 8, 9, 9, 10, 10, 10, 11, 9, 8, 9, 9, 10, 10, 11, 11,
218 10, 9, 9, 10, 10, 11, 12, 12, 11, 10, 10, 10, 11, 11, 12, 12,
219 };
220
221 static const uint16_t codes8[64] = {
222 0x00e, 0x005, 0x010, 0x030, 0x06f, 0x0f1, 0x1fa, 0x3fe,
223 0x003, 0x000, 0x004, 0x012, 0x02c, 0x06a, 0x075, 0x0f8,
224 0x00f, 0x002, 0x006, 0x014, 0x02e, 0x069, 0x072, 0x0f5,
225 0x02f, 0x011, 0x013, 0x02a, 0x032, 0x06c, 0x0ec, 0x0fa,
226 0x071, 0x02b, 0x02d, 0x031, 0x06d, 0x070, 0x0f2, 0x1f9,
227 0x0ef, 0x068, 0x033, 0x06b, 0x06e, 0x0ee, 0x0f9, 0x3fc,
228 0x1f8, 0x074, 0x073, 0x0ed, 0x0f0, 0x0f6, 0x1f6, 0x1fd,
229 0x3fd, 0x0f3, 0x0f4, 0x0f7, 0x1f7, 0x1fb, 0x1fc, 0x3ff,
230 };
231
232 static const uint8_t bits8[64] = {
233 5, 4, 5, 6, 7, 8, 9, 10, 4, 3, 4, 5, 6, 7, 7, 8,
234 5, 4, 4, 5, 6, 7, 7, 8, 6, 5, 5, 6, 6, 7, 8, 8,
235 7, 6, 6, 6, 7, 7, 8, 9, 8, 7, 6, 7, 7, 8, 8, 10,
236 9, 7, 7, 8, 8, 8, 9, 9, 10, 8, 8, 8, 9, 9, 9, 10,
237 };
238
239 static const uint16_t codes9[169] = {
240 0x0000, 0x0005, 0x0037, 0x00e7, 0x01de, 0x03ce, 0x03d9, 0x07c8,
241 0x07cd, 0x0fc8, 0x0fdd, 0x1fe4, 0x1fec, 0x0004, 0x000c, 0x0035,
242 0x0072, 0x00ea, 0x00ed, 0x01e2, 0x03d1, 0x03d3, 0x03e0, 0x07d8,
243 0x0fcf, 0x0fd5, 0x0036, 0x0034, 0x0071, 0x00e8, 0x00ec, 0x01e1,
244 0x03cf, 0x03dd, 0x03db, 0x07d0, 0x0fc7, 0x0fd4, 0x0fe4, 0x00e6,
245 0x0070, 0x00e9, 0x01dd, 0x01e3, 0x03d2, 0x03dc, 0x07cc, 0x07ca,
246 0x07de, 0x0fd8, 0x0fea, 0x1fdb, 0x01df, 0x00eb, 0x01dc, 0x01e6,
247 0x03d5, 0x03de, 0x07cb, 0x07dd, 0x07dc, 0x0fcd, 0x0fe2, 0x0fe7,
248 0x1fe1, 0x03d0, 0x01e0, 0x01e4, 0x03d6, 0x07c5, 0x07d1, 0x07db,
249 0x0fd2, 0x07e0, 0x0fd9, 0x0feb, 0x1fe3, 0x1fe9, 0x07c4, 0x01e5,
250 0x03d7, 0x07c6, 0x07cf, 0x07da, 0x0fcb, 0x0fda, 0x0fe3, 0x0fe9,
251 0x1fe6, 0x1ff3, 0x1ff7, 0x07d3, 0x03d8, 0x03e1, 0x07d4, 0x07d9,
252 0x0fd3, 0x0fde, 0x1fdd, 0x1fd9, 0x1fe2, 0x1fea, 0x1ff1, 0x1ff6,
253 0x07d2, 0x03d4, 0x03da, 0x07c7, 0x07d7, 0x07e2, 0x0fce, 0x0fdb,
254 0x1fd8, 0x1fee, 0x3ff0, 0x1ff4, 0x3ff2, 0x07e1, 0x03df, 0x07c9,
255 0x07d6, 0x0fca, 0x0fd0, 0x0fe5, 0x0fe6, 0x1feb, 0x1fef, 0x3ff3,
256 0x3ff4, 0x3ff5, 0x0fe0, 0x07ce, 0x07d5, 0x0fc6, 0x0fd1, 0x0fe1,
257 0x1fe0, 0x1fe8, 0x1ff0, 0x3ff1, 0x3ff8, 0x3ff6, 0x7ffc, 0x0fe8,
258 0x07df, 0x0fc9, 0x0fd7, 0x0fdc, 0x1fdc, 0x1fdf, 0x1fed, 0x1ff5,
259 0x3ff9, 0x3ffb, 0x7ffd, 0x7ffe, 0x1fe7, 0x0fcc, 0x0fd6, 0x0fdf,
260 0x1fde, 0x1fda, 0x1fe5, 0x1ff2, 0x3ffa, 0x3ff7, 0x3ffc, 0x3ffd,
261 0x7fff,
262 };
263
264 static const uint8_t bits9[169] = {
265 1, 3, 6, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 3, 4, 6,
266 7, 8, 8, 9, 10, 10, 10, 11, 12, 12, 6, 6, 7, 8, 8, 9,
267 10, 10, 10, 11, 12, 12, 12, 8, 7, 8, 9, 9, 10, 10, 11, 11,
268 11, 12, 12, 13, 9, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12,
269 13, 10, 9, 9, 10, 11, 11, 11, 12, 11, 12, 12, 13, 13, 11, 9,
270 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 11, 10, 10, 11, 11,
271 12, 12, 13, 13, 13, 13, 13, 13, 11, 10, 10, 11, 11, 11, 12, 12,
272 13, 13, 14, 13, 14, 11, 10, 11, 11, 12, 12, 12, 12, 13, 13, 14,
273 14, 14, 12, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 12,
274 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15, 13, 12, 12, 12,
275 13, 13, 13, 13, 14, 14, 14, 14, 15,
276 };
277
278 static const uint16_t codes10[169] = {
279 0x022, 0x008, 0x01d, 0x026, 0x05f, 0x0d3, 0x1cf, 0x3d0,
280 0x3d7, 0x3ed, 0x7f0, 0x7f6, 0xffd, 0x007, 0x000, 0x001,
281 0x009, 0x020, 0x054, 0x060, 0x0d5, 0x0dc, 0x1d4, 0x3cd,
282 0x3de, 0x7e7, 0x01c, 0x002, 0x006, 0x00c, 0x01e, 0x028,
283 0x05b, 0x0cd, 0x0d9, 0x1ce, 0x1dc, 0x3d9, 0x3f1, 0x025,
284 0x00b, 0x00a, 0x00d, 0x024, 0x057, 0x061, 0x0cc, 0x0dd,
285 0x1cc, 0x1de, 0x3d3, 0x3e7, 0x05d, 0x021, 0x01f, 0x023,
286 0x027, 0x059, 0x064, 0x0d8, 0x0df, 0x1d2, 0x1e2, 0x3dd,
287 0x3ee, 0x0d1, 0x055, 0x029, 0x056, 0x058, 0x062, 0x0ce,
288 0x0e0, 0x0e2, 0x1da, 0x3d4, 0x3e3, 0x7eb, 0x1c9, 0x05e,
289 0x05a, 0x05c, 0x063, 0x0ca, 0x0da, 0x1c7, 0x1ca, 0x1e0,
290 0x3db, 0x3e8, 0x7ec, 0x1e3, 0x0d2, 0x0cb, 0x0d0, 0x0d7,
291 0x0db, 0x1c6, 0x1d5, 0x1d8, 0x3ca, 0x3da, 0x7ea, 0x7f1,
292 0x1e1, 0x0d4, 0x0cf, 0x0d6, 0x0de, 0x0e1, 0x1d0, 0x1d6,
293 0x3d1, 0x3d5, 0x3f2, 0x7ee, 0x7fb, 0x3e9, 0x1cd, 0x1c8,
294 0x1cb, 0x1d1, 0x1d7, 0x1df, 0x3cf, 0x3e0, 0x3ef, 0x7e6,
295 0x7f8, 0xffa, 0x3eb, 0x1dd, 0x1d3, 0x1d9, 0x1db, 0x3d2,
296 0x3cc, 0x3dc, 0x3ea, 0x7ed, 0x7f3, 0x7f9, 0xff9, 0x7f2,
297 0x3ce, 0x1e4, 0x3cb, 0x3d8, 0x3d6, 0x3e2, 0x3e5, 0x7e8,
298 0x7f4, 0x7f5, 0x7f7, 0xffb, 0x7fa, 0x3ec, 0x3df, 0x3e1,
299 0x3e4, 0x3e6, 0x3f0, 0x7e9, 0x7ef, 0xff8, 0xffe, 0xffc,
300 0xfff,
301 };
302
303 static const uint8_t bits10[169] = {
304 6, 5, 6, 6, 7, 8, 9, 10, 10, 10, 11, 11, 12, 5, 4, 4,
305 5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 6, 4, 5, 5, 6, 6,
306 7, 8, 8, 9, 9, 10, 10, 6, 5, 5, 5, 6, 7, 7, 8, 8,
307 9, 9, 10, 10, 7, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 10,
308 10, 8, 7, 6, 7, 7, 7, 8, 8, 8, 9, 10, 10, 11, 9, 7,
309 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 9, 8, 8, 8, 8,
310 8, 9, 9, 9, 10, 10, 11, 11, 9, 8, 8, 8, 8, 8, 9, 9,
311 10, 10, 10, 11, 11, 10, 9, 9, 9, 9, 9, 9, 10, 10, 10, 11,
312 11, 12, 10, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 11,
313 10, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 11, 10, 10, 10,
314 10, 10, 10, 11, 11, 12, 12, 12, 12,
315 };
316
317 static const uint16_t codes11[289] = {
318 0x000, 0x006, 0x019, 0x03d, 0x09c, 0x0c6, 0x1a7, 0x390,
319 0x3c2, 0x3df, 0x7e6, 0x7f3, 0xffb, 0x7ec, 0xffa, 0xffe,
320 0x38e, 0x005, 0x001, 0x008, 0x014, 0x037, 0x042, 0x092,
321 0x0af, 0x191, 0x1a5, 0x1b5, 0x39e, 0x3c0, 0x3a2, 0x3cd,
322 0x7d6, 0x0ae, 0x017, 0x007, 0x009, 0x018, 0x039, 0x040,
323 0x08e, 0x0a3, 0x0b8, 0x199, 0x1ac, 0x1c1, 0x3b1, 0x396,
324 0x3be, 0x3ca, 0x09d, 0x03c, 0x015, 0x016, 0x01a, 0x03b,
325 0x044, 0x091, 0x0a5, 0x0be, 0x196, 0x1ae, 0x1b9, 0x3a1,
326 0x391, 0x3a5, 0x3d5, 0x094, 0x09a, 0x036, 0x038, 0x03a,
327 0x041, 0x08c, 0x09b, 0x0b0, 0x0c3, 0x19e, 0x1ab, 0x1bc,
328 0x39f, 0x38f, 0x3a9, 0x3cf, 0x093, 0x0bf, 0x03e, 0x03f,
329 0x043, 0x045, 0x09e, 0x0a7, 0x0b9, 0x194, 0x1a2, 0x1ba,
330 0x1c3, 0x3a6, 0x3a7, 0x3bb, 0x3d4, 0x09f, 0x1a0, 0x08f,
331 0x08d, 0x090, 0x098, 0x0a6, 0x0b6, 0x0c4, 0x19f, 0x1af,
332 0x1bf, 0x399, 0x3bf, 0x3b4, 0x3c9, 0x3e7, 0x0a8, 0x1b6,
333 0x0ab, 0x0a4, 0x0aa, 0x0b2, 0x0c2, 0x0c5, 0x198, 0x1a4,
334 0x1b8, 0x38c, 0x3a4, 0x3c4, 0x3c6, 0x3dd, 0x3e8, 0x0ad,
335 0x3af, 0x192, 0x0bd, 0x0bc, 0x18e, 0x197, 0x19a, 0x1a3,
336 0x1b1, 0x38d, 0x398, 0x3b7, 0x3d3, 0x3d1, 0x3db, 0x7dd,
337 0x0b4, 0x3de, 0x1a9, 0x19b, 0x19c, 0x1a1, 0x1aa, 0x1ad,
338 0x1b3, 0x38b, 0x3b2, 0x3b8, 0x3ce, 0x3e1, 0x3e0, 0x7d2,
339 0x7e5, 0x0b7, 0x7e3, 0x1bb, 0x1a8, 0x1a6, 0x1b0, 0x1b2,
340 0x1b7, 0x39b, 0x39a, 0x3ba, 0x3b5, 0x3d6, 0x7d7, 0x3e4,
341 0x7d8, 0x7ea, 0x0ba, 0x7e8, 0x3a0, 0x1bd, 0x1b4, 0x38a,
342 0x1c4, 0x392, 0x3aa, 0x3b0, 0x3bc, 0x3d7, 0x7d4, 0x7dc,
343 0x7db, 0x7d5, 0x7f0, 0x0c1, 0x7fb, 0x3c8, 0x3a3, 0x395,
344 0x39d, 0x3ac, 0x3ae, 0x3c5, 0x3d8, 0x3e2, 0x3e6, 0x7e4,
345 0x7e7, 0x7e0, 0x7e9, 0x7f7, 0x190, 0x7f2, 0x393, 0x1be,
346 0x1c0, 0x394, 0x397, 0x3ad, 0x3c3, 0x3c1, 0x3d2, 0x7da,
347 0x7d9, 0x7df, 0x7eb, 0x7f4, 0x7fa, 0x195, 0x7f8, 0x3bd,
348 0x39c, 0x3ab, 0x3a8, 0x3b3, 0x3b9, 0x3d0, 0x3e3, 0x3e5,
349 0x7e2, 0x7de, 0x7ed, 0x7f1, 0x7f9, 0x7fc, 0x193, 0xffd,
350 0x3dc, 0x3b6, 0x3c7, 0x3cc, 0x3cb, 0x3d9, 0x3da, 0x7d3,
351 0x7e1, 0x7ee, 0x7ef, 0x7f5, 0x7f6, 0xffc, 0xfff, 0x19d,
352 0x1c2, 0x0b5, 0x0a1, 0x096, 0x097, 0x095, 0x099, 0x0a0,
353 0x0a2, 0x0ac, 0x0a9, 0x0b1, 0x0b3, 0x0bb, 0x0c0, 0x18f,
354 0x004,
355 };
356
357 static const uint8_t bits11[289] = {
358 4, 5, 6, 7, 8, 8, 9, 10, 10, 10, 11, 11, 12, 11, 12, 12,
359 10, 5, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10,
360 11, 8, 6, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10,
361 10, 10, 8, 7, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10,
362 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
363 10, 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9,
364 9, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9,
365 9, 10, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 9, 9,
366 9, 10, 10, 10, 10, 10, 10, 8, 10, 9, 8, 8, 9, 9, 9, 9,
367 9, 10, 10, 10, 10, 10, 10, 11, 8, 10, 9, 9, 9, 9, 9, 9,
368 9, 10, 10, 10, 10, 10, 10, 11, 11, 8, 11, 9, 9, 9, 9, 9,
369 9, 10, 10, 10, 10, 10, 11, 10, 11, 11, 8, 11, 10, 9, 9, 10,
370 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 8, 11, 10, 10, 10,
371 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 9, 11, 10, 9,
372 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 11, 10,
373 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 12,
374 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 9,
375 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9,
376 5,
377 };
378
379 const uint16_t *ff_aac_spectral_codes[11] = {
380 codes1, codes2, codes3, codes4, codes5, codes6, codes7, codes8,
381 codes9, codes10, codes11,
382 };
383
384 const uint8_t *ff_aac_spectral_bits[11] = {
385 bits1, bits2, bits3, bits4, bits5, bits6, bits7, bits8,
386 bits9, bits10, bits11,
387 };
388
389 const uint16_t ff_aac_spectral_sizes[11] = {
390 81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
391 };
392
393 static const int8_t codebook_vector0[324] = {
394 -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 1, -1, -1, 0, -1,
395 -1, -1, 0, 0, -1, -1, 0, 1, -1, -1, 1, -1, -1, -1, 1, 0,
396 -1, -1, 1, 1, -1, 0, -1, -1, -1, 0, -1, 0, -1, 0, -1, 1,
397 -1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 1, -1, 0, 1, -1,
398 -1, 0, 1, 0, -1, 0, 1, 1, -1, 1, -1, -1, -1, 1, -1, 0,
399 -1, 1, -1, 1, -1, 1, 0, -1, -1, 1, 0, 0, -1, 1, 0, 1,
400 -1, 1, 1, -1, -1, 1, 1, 0, -1, 1, 1, 1, 0, -1, -1, -1,
401 0, -1, -1, 0, 0, -1, -1, 1, 0, -1, 0, -1, 0, -1, 0, 0,
402 0, -1, 0, 1, 0, -1, 1, -1, 0, -1, 1, 0, 0, -1, 1, 1,
403 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, -1, 1, 0, 0, 0, -1,
404 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, 0, 0, 1, 0,
405 0, 0, 1, 1, 0, 1, -1, -1, 0, 1, -1, 0, 0, 1, -1, 1,
406 0, 1, 0, -1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, -1,
407 0, 1, 1, 0, 0, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 0,
408 1, -1, -1, 1, 1, -1, 0, -1, 1, -1, 0, 0, 1, -1, 0, 1,
409 1, -1, 1, -1, 1, -1, 1, 0, 1, -1, 1, 1, 1, 0, -1, -1,
410 1, 0, -1, 0, 1, 0, -1, 1, 1, 0, 0, -1, 1, 0, 0, 0,
411 1, 0, 0, 1, 1, 0, 1, -1, 1, 0, 1, 0, 1, 0, 1, 1,
412 1, 1, -1, -1, 1, 1, -1, 0, 1, 1, -1, 1, 1, 1, 0, -1,
413 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, -1, 1, 1, 1, 0,
414 1, 1, 1, 1,
415 };
416
417 static const int8_t codebook_vector2[324] = {
418 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 1, 0,
419 0, 0, 1, 1, 0, 0, 1, 2, 0, 0, 2, 0, 0, 0, 2, 1,
420 0, 0, 2, 2, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 2,
421 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 2, 0, 1, 2, 0,
422 0, 1, 2, 1, 0, 1, 2, 2, 0, 2, 0, 0, 0, 2, 0, 1,
423 0, 2, 0, 2, 0, 2, 1, 0, 0, 2, 1, 1, 0, 2, 1, 2,
424 0, 2, 2, 0, 0, 2, 2, 1, 0, 2, 2, 2, 1, 0, 0, 0,
425 1, 0, 0, 1, 1, 0, 0, 2, 1, 0, 1, 0, 1, 0, 1, 1,
426 1, 0, 1, 2, 1, 0, 2, 0, 1, 0, 2, 1, 1, 0, 2, 2,
427 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 2, 1, 1, 1, 0,
428 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 0, 1, 1, 2, 1,
429 1, 1, 2, 2, 1, 2, 0, 0, 1, 2, 0, 1, 1, 2, 0, 2,
430 1, 2, 1, 0, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 0,
431 1, 2, 2, 1, 1, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 1,
432 2, 0, 0, 2, 2, 0, 1, 0, 2, 0, 1, 1, 2, 0, 1, 2,
433 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 2, 2, 1, 0, 0,
434 2, 1, 0, 1, 2, 1, 0, 2, 2, 1, 1, 0, 2, 1, 1, 1,
435 2, 1, 1, 2, 2, 1, 2, 0, 2, 1, 2, 1, 2, 1, 2, 2,
436 2, 2, 0, 0, 2, 2, 0, 1, 2, 2, 0, 2, 2, 2, 1, 0,
437 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 0, 2, 2, 2, 1,
438 2, 2, 2, 2,
439 };
440
441 static const int8_t codebook_vector4[162] = {
442 -4, -4, -4, -3, -4, -2, -4, -1, -4, 0, -4, 1, -4, 2, -4, 3,
443 -4, 4, -3, -4, -3, -3, -3, -2, -3, -1, -3, 0, -3, 1, -3, 2,
444 -3, 3, -3, 4, -2, -4, -2, -3, -2, -2, -2, -1, -2, 0, -2, 1,
445 -2, 2, -2, 3, -2, 4, -1, -4, -1, -3, -1, -2, -1, -1, -1, 0,
446 -1, 1, -1, 2, -1, 3, -1, 4, 0, -4, 0, -3, 0, -2, 0, -1,
447 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 1, -4, 1, -3, 1, -2,
448 1, -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 2, -4, 2, -3,
449 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 3, -4,
450 3, -3, 3, -2, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4,
451 4, -4, 4, -3, 4, -2, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3,
452 4, 4,
453 };
454
455 static const int8_t codebook_vector6[128] = {
456 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,
457 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7,
458 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7,
459 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7,
460 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7,
461 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7,
462 6, 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7,
463 7, 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7,
464 };
465
466 static const int8_t codebook_vector8[338] = {
467 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,
468 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 1, 0, 1, 1, 1, 2,
469 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10,
470 1, 11, 1, 12, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5,
471 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 3, 0,
472 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8,
473 3, 9, 3, 10, 3, 11, 3, 12, 4, 0, 4, 1, 4, 2, 4, 3,
474 4, 4, 4, 5, 4, 6, 4, 7, 4, 8, 4, 9, 4, 10, 4, 11,
475 4, 12, 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6,
476 5, 7, 5, 8, 5, 9, 5, 10, 5, 11, 5, 12, 6, 0, 6, 1,
477 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8, 6, 9,
478 6, 10, 6, 11, 6, 12, 7, 0, 7, 1, 7, 2, 7, 3, 7, 4,
479 7, 5, 7, 6, 7, 7, 7, 8, 7, 9, 7, 10, 7, 11, 7, 12,
480 8, 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7,
481 8, 8, 8, 9, 8, 10, 8, 11, 8, 12, 9, 0, 9, 1, 9, 2,
482 9, 3, 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 9, 10,
483 9, 11, 9, 12, 10, 0, 10, 1, 10, 2, 10, 3, 10, 4, 10, 5,
484 10, 6, 10, 7, 10, 8, 10, 9, 10, 10, 10, 11, 10, 12, 11, 0,
485 11, 1, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8,
486 11, 9, 11, 10, 11, 11, 11, 12, 12, 0, 12, 1, 12, 2, 12, 3,
487 12, 4, 12, 5, 12, 6, 12, 7, 12, 8, 12, 9, 12, 10, 12, 11,
488 12, 12,
489 };
490
491 static const int8_t codebook_vector10[578] = {
492 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,
493 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15,
494 0, 16, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6,
495 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14,
496 1, 15, 1, 16, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5,
497 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13,
498 2, 14, 2, 15, 2, 16, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4,
499 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3, 10, 3, 11, 3, 12,
500 3, 13, 3, 14, 3, 15, 3, 16, 4, 0, 4, 1, 4, 2, 4, 3,
501 4, 4, 4, 5, 4, 6, 4, 7, 4, 8, 4, 9, 4, 10, 4, 11,
502 4, 12, 4, 13, 4, 14, 4, 15, 4, 16, 5, 0, 5, 1, 5, 2,
503 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 5, 8, 5, 9, 5, 10,
504 5, 11, 5, 12, 5, 13, 5, 14, 5, 15, 5, 16, 6, 0, 6, 1,
505 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8, 6, 9,
506 6, 10, 6, 11, 6, 12, 6, 13, 6, 14, 6, 15, 6, 16, 7, 0,
507 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7, 7, 8,
508 7, 9, 7, 10, 7, 11, 7, 12, 7, 13, 7, 14, 7, 15, 7, 16,
509 8, 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7,
510 8, 8, 8, 9, 8, 10, 8, 11, 8, 12, 8, 13, 8, 14, 8, 15,
511 8, 16, 9, 0, 9, 1, 9, 2, 9, 3, 9, 4, 9, 5, 9, 6,
512 9, 7, 9, 8, 9, 9, 9, 10, 9, 11, 9, 12, 9, 13, 9, 14,
513 9, 15, 9, 16, 10, 0, 10, 1, 10, 2, 10, 3, 10, 4, 10, 5,
514 10, 6, 10, 7, 10, 8, 10, 9, 10, 10, 10, 11, 10, 12, 10, 13,
515 10, 14, 10, 15, 10, 16, 11, 0, 11, 1, 11, 2, 11, 3, 11, 4,
516 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 11, 11, 11, 12,
517 11, 13, 11, 14, 11, 15, 11, 16, 12, 0, 12, 1, 12, 2, 12, 3,
518 12, 4, 12, 5, 12, 6, 12, 7, 12, 8, 12, 9, 12, 10, 12, 11,
519 12, 12, 12, 13, 12, 14, 12, 15, 12, 16, 13, 0, 13, 1, 13, 2,
520 13, 3, 13, 4, 13, 5, 13, 6, 13, 7, 13, 8, 13, 9, 13, 10,
521 13, 11, 13, 12, 13, 13, 13, 14, 13, 15, 13, 16, 14, 0, 14, 1,
522 14, 2, 14, 3, 14, 4, 14, 5, 14, 6, 14, 7, 14, 8, 14, 9,
523 14, 10, 14, 11, 14, 12, 14, 13, 14, 14, 14, 15, 14, 16, 15, 0,
524 15, 1, 15, 2, 15, 3, 15, 4, 15, 5, 15, 6, 15, 7, 15, 8,
525 15, 9, 15, 10, 15, 11, 15, 12, 15, 13, 15, 14, 15, 15, 15, 16,
526 16, 0, 16, 1, 16, 2, 16, 3, 16, 4, 16, 5, 16, 6, 16, 7,
527 16, 8, 16, 9, 16, 10, 16, 11, 16, 12, 16, 13, 16, 14, 16, 15,
528 16, 16,
529 };
530
531 const int8_t *ff_aac_codebook_vectors[] = {
532 codebook_vector0, codebook_vector0, codebook_vector2,
533 codebook_vector2, codebook_vector4, codebook_vector4,
534 codebook_vector6, codebook_vector6, codebook_vector8,
535 codebook_vector8, codebook_vector10,
536 };
537
538 #ifdef CONFIG_HARDCODED_TABLES
539
540 const float ff_aac_ivquant_tab[IVQUANT_SIZE] = {
541 -4085.3368071, -4074.6805676, -4064.0312908, -4053.3889857,
542 -4042.7536614, -4032.1253271, -4021.5039921, -4010.8896656,
543 -4000.2823568, -3989.6820750, -3979.0888296, -3968.5026299,
544 -3957.9234854, -3947.3514054, -3936.7863993, -3926.2284768,
545 -3915.6776473, -3905.1339203, -3894.5973054, -3884.0678123,
546 -3873.5454506, -3863.0302299, -3852.5221601, -3842.0212507,
547 -3831.5275117, -3821.0409528, -3810.5615838, -3800.0894147,
548 -3789.6244554, -3779.1667157, -3768.7162058, -3758.2729355,
549 -3747.8369150, -3737.4081544, -3726.9866637, -3716.5724532,
550 -3706.1655329, -3695.7659132, -3685.3736044, -3674.9886166,
551 -3664.6109603, -3654.2406458, -3643.8776835, -3633.5220839,
552 -3623.1738574, -3612.8330147, -3602.4995662, -3592.1735225,
553 -3581.8548943, -3571.5436923, -3561.2399271, -3550.9436095,
554 -3540.6547503, -3530.3733604, -3520.0994506, -3509.8330317,
555 -3499.5741148, -3489.3227109, -3479.0788309, -3468.8424860,
556 -3458.6136872, -3448.3924458, -3438.1787728, -3427.9726795,
557 -3417.7741773, -3407.5832773, -3397.3999911, -3387.2243299,
558 -3377.0563052, -3366.8959286, -3356.7432115, -3346.5981655,
559 -3336.4608022, -3326.3311334, -3316.2091706, -3306.0949257,
560 -3295.9884105, -3285.8896367, -3275.7986164, -3265.7153613,
561 -3255.6398836, -3245.5721951, -3235.5123081, -3225.4602346,
562 -3215.4159867, -3205.3795768, -3195.3510169, -3185.3303196,
563 -3175.3174970, -3165.3125617, -3155.3155261, -3145.3264026,
564 -3135.3452039, -3125.3719425, -3115.4066312, -3105.4492825,
565 -3095.4999092, -3085.5585243, -3075.6251404, -3065.6997706,
566 -3055.7824278, -3045.8731250, -3035.9718753, -3026.0786917,
567 -3016.1935876, -3006.3165760, -2996.4476703, -2986.5868839,
568 -2976.7342300, -2966.8897222, -2957.0533740, -2947.2251989,
569 -2937.4052106, -2927.5934226, -2917.7898488, -2907.9945030,
570 -2898.2073989, -2888.4285505, -2878.6579717, -2868.8956767,
571 -2859.1416793, -2849.3959939, -2839.6586345, -2829.9296156,
572 -2820.2089512, -2810.4966560, -2800.7927443, -2791.0972306,
573 -2781.4101295, -2771.7314556, -2762.0612237, -2752.3994485,
574 -2742.7461448, -2733.1013276, -2723.4650117, -2713.8372123,
575 -2704.2179443, -2694.6072231, -2685.0050637, -2675.4114815,
576 -2665.8264919, -2656.2501103, -2646.6823521, -2637.1232331,
577 -2627.5727687, -2618.0309748, -2608.4978671, -2598.9734614,
578 -2589.4577738, -2579.9508201, -2570.4526166, -2560.9631792,
579 -2551.4825244, -2542.0106682, -2532.5476273, -2523.0934179,
580 -2513.6480566, -2504.2115601, -2494.7839450, -2485.3652281,
581 -2475.9554262, -2466.5545562, -2457.1626352, -2447.7796803,
582 -2438.4057086, -2429.0407373, -2419.6847838, -2410.3378655,
583 -2401.0000000, -2391.6712048, -2382.3514975, -2373.0408959,
584 -2363.7394180, -2354.4470815, -2345.1639046, -2335.8899054,
585 -2326.6251019, -2317.3695127, -2308.1231559, -2298.8860501,
586 -2289.6582139, -2280.4396659, -2271.2304249, -2262.0305097,
587 -2252.8399393, -2243.6587327, -2234.4869090, -2225.3244875,
588 -2216.1714876, -2207.0279286, -2197.8938301, -2188.7692117,
589 -2179.6540933, -2170.5484945, -2161.4524354, -2152.3659360,
590 -2143.2890165, -2134.2216972, -2125.1639983, -2116.1159404,
591 -2107.0775442, -2098.0488302, -2089.0298192, -2080.0205323,
592 -2071.0209905, -2062.0312148, -2053.0512267, -2044.0810473,
593 -2035.1206983, -2026.1702013, -2017.2295780, -2008.2988502,
594 -1999.3780400, -1990.4671694, -1981.5662607, -1972.6753362,
595 -1963.7944183, -1954.9235298, -1946.0626932, -1937.2119316,
596 -1928.3712678, -1919.5407249, -1910.7203263, -1901.9100954,
597 -1893.1100555, -1884.3202305, -1875.5406441, -1866.7713202,
598 -1858.0122829, -1849.2635565, -1840.5251653, -1831.7971337,
599 -1823.0794865, -1814.3722485, -1805.6754445, -1796.9890997,
600 -1788.3132394, -1779.6478889, -1770.9930739, -1762.3488199,
601 -1753.7151529, -1745.0920989, -1736.4796841, -1727.8779349,
602 -1719.2868777, -1710.7065393, -1702.1369465, -1693.5781262,
603 -1685.0301058, -1676.4929125, -1667.9665739, -1659.4511177,
604 -1650.9465718, -1642.4529642, -1633.9703232, -1625.4986772,
605 -1617.0380549, -1608.5884850, -1600.1499965, -1591.7226186,
606 -1583.3063807, -1574.9013124, -1566.5074433, -1558.1248036,
607 -1549.7534233, -1541.3933328, -1533.0445627, -1524.7071438,
608 -1516.3811070, -1508.0664836, -1499.7633050, -1491.4716029,
609 -1483.1914090, -1474.9227555, -1466.6656746, -1458.4201990,
610 -1450.1863613, -1441.9641946, -1433.7537320, -1425.5550071,
611 -1417.3680536, -1409.1929053, -1401.0295965, -1392.8781617,
612 -1384.7386355, -1376.6110529, -1368.4954490, -1360.3918594,
613 -1352.3003198, -1344.2208661, -1336.1535347, -1328.0983621,
614 -1320.0553851, -1312.0246407, -1304.0061665, -1296.0000000,
615 -1288.0061792, -1280.0247424, -1272.0557280, -1264.0991750,
616 -1256.1551226, -1248.2236101, -1240.3046773, -1232.3983645,
617 -1224.5047118, -1216.6237602, -1208.7555507, -1200.9001246,
618 -1193.0575238, -1185.2277903, -1177.4109665, -1169.6070953,
619 -1161.8162197, -1154.0383833, -1146.2736299, -1138.5220038,
620 -1130.7835495, -1123.0583122, -1115.3463371, -1107.6476700,
621 -1099.9623571, -1092.2904450, -1084.6319806, -1076.9870114,
622 -1069.3555851, -1061.7377500, -1054.1335548, -1046.5430486,
623 -1038.9662809, -1031.4033017, -1023.8541615, -1016.3189112,
624 -1008.7976022, -1001.2902864, -993.7970162, -986.3178444,
625 -978.8528243, -971.4020099, -963.9654554, -956.5432158,
626 -949.1353466, -941.7419036, -934.3629435, -926.9985233,
627 -919.6487005, -912.3135336, -904.9930812, -897.6874027,
628 -890.3965581, -883.1206081, -875.8596139, -868.6136373,
629 -861.3827409, -854.1669878, -846.9664418, -839.7811675,
630 -832.6112300, -825.4566953, -818.3176299, -811.1941012,
631 -804.0861773, -796.9939269, -789.9174197, -782.8567260,
632 -775.8119169, -768.7830645, -761.7702415, -754.7735215,
633 -747.7929790, -740.8286894, -733.8807287, -726.9491743,
634 -720.0341040, -713.1355968, -706.2537328, -699.3885927,
635 -692.5402584, -685.7088129, -678.8943400, -672.0969248,
636 -665.3166532, -658.5536125, -651.8078908, -645.0795775,
637 -638.3687633, -631.6755398, -625.0000000, -618.3422381,
638 -611.7023495, -605.0804310, -598.4765806, -591.8908978,
639 -585.3234834, -578.7744395, -572.2438698, -565.7318795,
640 -559.2385751, -552.7640648, -546.3084584, -539.8718672,
641 -533.4544042, -527.0561843, -520.6773237, -514.3179408,
642 -507.9781556, -501.6580901, -495.3578679, -489.0776150,
643 -482.8174592, -476.5775303, -470.3579603, -464.1588834,
644 -457.9804359, -451.8227566, -445.6859865, -439.5702691,
645 -433.4757504, -427.4025787, -421.3509053, -415.3208841,
646 -409.3126715, -403.3264272, -397.3623135, -391.4204959,
647 -385.5011431, -379.6044268, -373.7305221, -367.8796078,
648 -362.0518657, -356.2474818, -350.4666456, -344.7095504,
649 -338.9763937, -333.2673772, -327.5827066, -321.9225924,
650 -316.2872495, -310.6768976, -305.0917613, -299.5320705,
651 -293.9980602, -288.4899710, -283.0080491, -277.5525469,
652 -272.1237227, -266.7218414, -261.3471743, -256.0000000,
653 -250.6806041, -245.3892798, -240.1263282, -234.8920585,
654 -229.6867885, -224.5108452, -219.3645645, -214.2482925,
655 -209.1623853, -204.1072101, -199.0831450, -194.0905802,
656 -189.1299182, -184.2015749, -179.3059798, -174.4435769,
657 -169.6148258, -164.8202021, -160.0601987, -155.3353268,
658 -150.6461166, -145.9931191, -141.3769069, -136.7980757,
659 -132.2572463, -127.7550655, -123.2922085, -118.8693810,
660 -114.4873209, -110.1468012, -105.8486329, -101.5936673,
661 -97.3828002, -93.2169752, -89.0971879, -85.0244912,
662 -81.0000000, -77.0248978, -73.1004435, -69.2279794,
663 -65.4089405, -61.6448653, -57.9374077, -54.2883523,
664 -50.6996313, -47.1733451, -43.7117870, -40.3174736,
665 -36.9931811, -33.7419917, -30.5673509, -27.4731418,
666 -24.4637810, -21.5443469, -18.7207544, -16.0000000,
667 -13.3905183, -10.9027236, -8.5498797, -6.3496042,
668 -4.3267487, -2.5198421, -1.0000000, 0.0000000,
669 1.0000000, 2.5198421, 4.3267487, 6.3496042,
670 8.5498797, 10.9027236, 13.3905183, 16.0000000,
671 18.7207544, 21.5443469, 24.4637810, 27.4731418,
672 30.5673509, 33.7419917, 36.9931811, 40.3174736,
673 43.7117870, 47.1733451, 50.6996313, 54.2883523,
674 57.9374077, 61.6448653, 65.4089405, 69.2279794,
675 73.1004435, 77.0248978, 81.0000000, 85.0244912,
676 89.0971879, 93.2169752, 97.3828002, 101.5936673,
677 105.8486329, 110.1468012, 114.4873209, 118.8693810,
678 123.2922085, 127.7550655, 132.2572463, 136.7980757,
679 141.3769069, 145.9931191, 150.6461166, 155.3353268,
680 160.0601987, 164.8202021, 169.6148258, 174.4435769,
681 179.3059798, 184.2015749, 189.1299182, 194.0905802,
682 199.0831450, 204.1072101, 209.1623853, 214.2482925,
683 219.3645645, 224.5108452, 229.6867885, 234.8920585,
684 240.1263282, 245.3892798, 250.6806041, 256.0000000,
685 261.3471743, 266.7218414, 272.1237227, 277.5525469,
686 283.0080491, 288.4899710, 293.9980602, 299.5320705,
687 305.0917613, 310.6768976, 316.2872495, 321.9225924,
688 327.5827066, 333.2673772, 338.9763937, 344.7095504,
689 350.4666456, 356.2474818, 362.0518657, 367.8796078,
690 373.7305221, 379.6044268, 385.5011431, 391.4204959,
691 397.3623135, 403.3264272, 409.3126715, 415.3208841,
692 421.3509053, 427.4025787, 433.4757504, 439.5702691,
693 445.6859865, 451.8227566, 457.9804359, 464.1588834,
694 470.3579603, 476.5775303, 482.8174592, 489.0776150,
695 495.3578679, 501.6580901, 507.9781556, 514.3179408,
696 520.6773237, 527.0561843, 533.4544042, 539.8718672,
697 546.3084584, 552.7640648, 559.2385751, 565.7318795,
698 572.2438698, 578.7744395, 585.3234834, 591.8908978,
699 598.4765806, 605.0804310, 611.7023495, 618.3422381,
700 625.0000000, 631.6755398, 638.3687633, 645.0795775,
701 651.8078908, 658.5536125, 665.3166532, 672.0969248,
702 678.8943400, 685.7088129, 692.5402584, 699.3885927,
703 706.2537328, 713.1355968, 720.0341040, 726.9491743,
704 733.8807287, 740.8286894, 747.7929790, 754.7735215,
705 761.7702415, 768.7830645, 775.8119169, 782.8567260,
706 789.9174197, 796.9939269, 804.0861773, 811.1941012,
707 818.3176299, 825.4566953, 832.6112300, 839.7811675,
708 846.9664418, 854.1669878, 861.3827409, 868.6136373,
709 875.8596139, 883.1206081, 890.3965581, 897.6874027,
710 904.9930812, 912.3135336, 919.6487005, 926.9985233,
711 934.3629435, 941.7419036, 949.1353466, 956.5432158,
712 963.9654554, 971.4020099, 978.8528243, 986.3178444,
713 993.7970162, 1001.2902864, 1008.7976022, 1016.3189112,
714 1023.8541615, 1031.4033017, 1038.9662809, 1046.5430486,
715 1054.1335548, 1061.7377500, 1069.3555851, 1076.9870114,
716 1084.6319806, 1092.2904450, 1099.9623571, 1107.6476700,
717 1115.3463371, 1123.0583122, 1130.7835495, 1138.5220038,
718 1146.2736299, 1154.0383833, 1161.8162197, 1169.6070953,
719 1177.4109665, 1185.2277903, 1193.0575238, 1200.9001246,
720 1208.7555507, 1216.6237602, 1224.5047118, 1232.3983645,
721 1240.3046773, 1248.2236101, 1256.1551226, 1264.0991750,
722 1272.0557280, 1280.0247424, 1288.0061792, 1296.0000000,
723 1304.0061665, 1312.0246407, 1320.0553851, 1328.0983621,
724 1336.1535347, 1344.2208661, 1352.3003198, 1360.3918594,
725 1368.4954490, 1376.6110529, 1384.7386355, 1392.8781617,
726 1401.0295965, 1409.1929053, 1417.3680536, 1425.5550071,
727 1433.7537320, 1441.9641946, 1450.1863613, 1458.4201990,
728 1466.6656746, 1474.9227555, 1483.1914090, 1491.4716029,
729 1499.7633050, 1508.0664836, 1516.3811070, 1524.7071438,
730 1533.0445627, 1541.3933328, 1549.7534233, 1558.1248036,
731 1566.5074433, 1574.9013124, 1583.3063807, 1591.7226186,
732 1600.1499965, 1608.5884850, 1617.0380549, 1625.4986772,
733 1633.9703232, 1642.4529642, 1650.9465718, 1659.4511177,
734 1667.9665739, 1676.4929125, 1685.0301058, 1693.5781262,
735 1702.1369465, 1710.7065393, 1719.2868777, 1727.8779349,
736 1736.4796841, 1745.0920989, 1753.7151529, 1762.3488199,
737 1770.9930739, 1779.6478889, 1788.3132394, 1796.9890997,
738 1805.6754445, 1814.3722485, 1823.0794865, 1831.7971337,
739 1840.5251653, 1849.2635565, 1858.0122829, 1866.7713202,
740 1875.5406441, 1884.3202305, 1893.1100555, 1901.9100954,
741 1910.7203263, 1919.5407249, 1928.3712678, 1937.2119316,
742 1946.0626932, 1954.9235298, 1963.7944183, 1972.6753362,
743 1981.5662607, 1990.4671694, 1999.3780400, 2008.2988502,
744 2017.2295780, 2026.1702013, 2035.1206983, 2044.0810473,
745 2053.0512267, 2062.0312148, 2071.0209905, 2080.0205323,
746 2089.0298192, 2098.0488302, 2107.0775442, 2116.1159404,
747 2125.1639983, 2134.2216972, 2143.2890165, 2152.3659360,
748 2161.4524354, 2170.5484945, 2179.6540933, 2188.7692117,
749 2197.8938301, 2207.0279286, 2216.1714876, 2225.3244875,
750 2234.4869090, 2243.6587327, 2252.8399393, 2262.0305097,
751 2271.2304249, 2280.4396659, 2289.6582139, 2298.8860501,
752 2308.1231559, 2317.3695127, 2326.6251019, 2335.8899054,
753 2345.1639046, 2354.4470815, 2363.7394180, 2373.0408959,
754 2382.3514975, 2391.6712048, 2401.0000000, 2410.3378655,
755 2419.6847838, 2429.0407373, 2438.4057086, 2447.7796803,
756 2457.1626352, 2466.5545562, 2475.9554262, 2485.3652281,
757 2494.7839450, 2504.2115601, 2513.6480566, 2523.0934179,
758 2532.5476273, 2542.0106682, 2551.4825244, 2560.9631792,
759 2570.4526166, 2579.9508201, 2589.4577738, 2598.9734614,
760 2608.4978671, 2618.0309748, 2627.5727687, 2637.1232331,
761 2646.6823521, 2656.2501103, 2665.8264919, 2675.4114815,
762 2685.0050637, 2694.6072231, 2704.2179443, 2713.8372123,
763 2723.4650117, 2733.1013276, 2742.7461448, 2752.3994485,
764 2762.0612237, 2771.7314556, 2781.4101295, 2791.0972306,
765 2800.7927443, 2810.4966560, 2820.2089512, 2829.9296156,
766 2839.6586345, 2849.3959939, 2859.1416793, 2868.8956767,
767 2878.6579717, 2888.4285505, 2898.2073989, 2907.9945030,
768 2917.7898488, 2927.5934226, 2937.4052106, 2947.2251989,
769 2957.0533740, 2966.8897222, 2976.7342300, 2986.5868839,
770 2996.4476703, 3006.3165760, 3016.1935876, 3026.0786917,
771 3035.9718753, 3045.8731250, 3055.7824278, 3065.6997706,
772 3075.6251404, 3085.5585243, 3095.4999092, 3105.4492825,
773 3115.4066312, 3125.3719425, 3135.3452039, 3145.3264026,
774 3155.3155261, 3165.3125617, 3175.3174970, 3185.3303196,
775 3195.3510169, 3205.3795768, 3215.4159867, 3225.4602346,
776 3235.5123081, 3245.5721951, 3255.6398836, 3265.7153613,
777 3275.7986164, 3285.8896367, 3295.9884105, 3306.0949257,
778 3316.2091706, 3326.3311334, 3336.4608022, 3346.5981655,
779 3356.7432115, 3366.8959286, 3377.0563052, 3387.2243299,
780 3397.3999911, 3407.5832773, 3417.7741773, 3427.9726795,
781 3438.1787728, 3448.3924458, 3458.6136872, 3468.8424860,
782 3479.0788309, 3489.3227109, 3499.5741148, 3509.8330317,
783 3520.0994506, 3530.3733604, 3540.6547503, 3550.9436095,
784 3561.2399271, 3571.5436923, 3581.8548943, 3592.1735225,
785 3602.4995662, 3612.8330147, 3623.1738574, 3633.5220839,
786 3643.8776835, 3654.2406458, 3664.6109603, 3674.9886166,
787 3685.3736044, 3695.7659132, 3706.1655329, 3716.5724532,
788 3726.9866637, 3737.4081544, 3747.8369150, 3758.2729355,
789 3768.7162058, 3779.1667157, 3789.6244554, 3800.0894147,
790 3810.5615838, 3821.0409528, 3831.5275117, 3842.0212507,
791 3852.5221601, 3863.0302299, 3873.5454506, 3884.0678123,
792 3894.5973054, 3905.1339203, 3915.6776473, 3926.2284768,
793 3936.7863993, 3947.3514054, 3957.9234854, 3968.5026299,
794 3979.0888296, 3989.6820750, 4000.2823568, 4010.8896656,
795 4021.5039921, 4032.1253271, 4042.7536614, 4053.3889857,
796 4064.0312908, 4074.6805676, 4085.3368071, 4096.0000000,
797 };
798
799 const float ff_aac_pow2sf_tab[316] = {
800 8.88178420e-16, 1.05622810e-15, 1.25607397e-15, 1.49373210e-15,
801 1.77635684e-15, 2.11245619e-15, 2.51214793e-15, 2.98746420e-15,
802 3.55271368e-15, 4.22491238e-15, 5.02429587e-15, 5.97492839e-15,
803 7.10542736e-15, 8.44982477e-15, 1.00485917e-14, 1.19498568e-14,
804 1.42108547e-14, 1.68996495e-14, 2.00971835e-14, 2.38997136e-14,
805 2.84217094e-14, 3.37992991e-14, 4.01943669e-14, 4.77994272e-14,
806 5.68434189e-14, 6.75985982e-14, 8.03887339e-14, 9.55988543e-14,
807 1.13686838e-13, 1.35197196e-13, 1.60777468e-13, 1.91197709e-13,
808 2.27373675e-13, 2.70394393e-13, 3.21554936e-13, 3.82395417e-13,
809 4.54747351e-13, 5.40788785e-13, 6.43109871e-13, 7.64790834e-13,
810 9.09494702e-13, 1.08157757e-12, 1.28621974e-12, 1.52958167e-12,
811 1.81898940e-12, 2.16315514e-12, 2.57243948e-12, 3.05916334e-12,
812 3.63797881e-12, 4.32631028e-12, 5.14487897e-12, 6.11832668e-12,
813 7.27595761e-12, 8.65262056e-12, 1.02897579e-11, 1.22366534e-11,
814 1.45519152e-11, 1.73052411e-11, 2.05795159e-11, 2.44733067e-11,
815 2.91038305e-11, 3.46104823e-11, 4.11590317e-11, 4.89466134e-11,
816 5.82076609e-11, 6.92209645e-11, 8.23180635e-11, 9.78932268e-11,
817 1.16415322e-10, 1.38441929e-10, 1.64636127e-10, 1.95786454e-10,
818 2.32830644e-10, 2.76883858e-10, 3.29272254e-10, 3.91572907e-10,
819 4.65661287e-10, 5.53767716e-10, 6.58544508e-10, 7.83145814e-10,
820 9.31322575e-10, 1.10753543e-09, 1.31708902e-09, 1.56629163e-09,
821 1.86264515e-09, 2.21507086e-09, 2.63417803e-09, 3.13258326e-09,
822 3.72529030e-09, 4.43014173e-09, 5.26835606e-09, 6.26516652e-09,
823 7.45058060e-09, 8.86028346e-09, 1.05367121e-08, 1.25303330e-08,
824 1.49011612e-08, 1.77205669e-08, 2.10734243e-08, 2.50606661e-08,
825 2.98023224e-08, 3.54411338e-08, 4.21468485e-08, 5.01213321e-08,
826 5.96046448e-08, 7.08822677e-08, 8.42936970e-08, 1.00242664e-07,
827 1.19209290e-07, 1.41764535e-07, 1.68587394e-07, 2.00485328e-07,
828 2.38418579e-07, 2.83529071e-07, 3.37174788e-07, 4.00970657e-07,
829 4.76837158e-07, 5.67058141e-07, 6.74349576e-07, 8.01941314e-07,
830 9.53674316e-07, 1.13411628e-06, 1.34869915e-06, 1.60388263e-06,
831 1.90734863e-06, 2.26823256e-06, 2.69739830e-06, 3.20776526e-06,
832 3.81469727e-06, 4.53646513e-06, 5.39479661e-06, 6.41553051e-06,
833 7.62939453e-06, 9.07293026e-06, 1.07895932e-05, 1.28310610e-05,
834 1.52587891e-05, 1.81458605e-05, 2.15791864e-05, 2.56621220e-05,
835 3.05175781e-05, 3.62917210e-05, 4.31583729e-05, 5.13242441e-05,
836 6.10351562e-05, 7.25834421e-05, 8.63167458e-05, 1.02648488e-04,
837 1.22070312e-04, 1.45166884e-04, 1.72633492e-04, 2.05296976e-04,
838 2.44140625e-04, 2.90333768e-04, 3.45266983e-04, 4.10593953e-04,
839 4.88281250e-04, 5.80667537e-04, 6.90533966e-04, 8.21187906e-04,
840 9.76562500e-04, 1.16133507e-03, 1.38106793e-03, 1.64237581e-03,
841 1.95312500e-03, 2.32267015e-03, 2.76213586e-03, 3.28475162e-03,
842 3.90625000e-03, 4.64534029e-03, 5.52427173e-03, 6.56950324e-03,
843 7.81250000e-03, 9.29068059e-03, 1.10485435e-02, 1.31390065e-02,
844 1.56250000e-02, 1.85813612e-02, 2.20970869e-02, 2.62780130e-02,
845 3.12500000e-02, 3.71627223e-02, 4.41941738e-02, 5.25560260e-02,
846 6.25000000e-02, 7.43254447e-02, 8.83883476e-02, 1.05112052e-01,
847 1.25000000e-01, 1.48650889e-01, 1.76776695e-01, 2.10224104e-01,
848 2.50000000e-01, 2.97301779e-01, 3.53553391e-01, 4.20448208e-01,
849 5.00000000e-01, 5.94603558e-01, 7.07106781e-01, 8.40896415e-01,
850 1.00000000e+00, 1.18920712e+00, 1.41421356e+00, 1.68179283e+00,
851 2.00000000e+00, 2.37841423e+00, 2.82842712e+00, 3.36358566e+00,
852 4.00000000e+00, 4.75682846e+00, 5.65685425e+00, 6.72717132e+00,
853 8.00000000e+00, 9.51365692e+00, 1.13137085e+01, 1.34543426e+01,
854 1.60000000e+01, 1.90273138e+01, 2.26274170e+01, 2.69086853e+01,
855 3.20000000e+01, 3.80546277e+01, 4.52548340e+01, 5.38173706e+01,
856 6.40000000e+01, 7.61092554e+01, 9.05096680e+01, 1.07634741e+02,
857 1.28000000e+02, 1.52218511e+02, 1.81019336e+02, 2.15269482e+02,
858 2.56000000e+02, 3.04437021e+02, 3.62038672e+02, 4.30538965e+02,
859 5.12000000e+02, 6.08874043e+02, 7.24077344e+02, 8.61077929e+02,
860 1.02400000e+03, 1.21774809e+03, 1.44815469e+03, 1.72215586e+03,
861 2.04800000e+03, 2.43549617e+03, 2.89630938e+03, 3.44431172e+03,
862 4.09600000e+03, 4.87099234e+03, 5.79261875e+03, 6.88862343e+03,
863 8.19200000e+03, 9.74198469e+03, 1.15852375e+04, 1.37772469e+04,
864 1.63840000e+04, 1.94839694e+04, 2.31704750e+04, 2.75544937e+04,
865 3.27680000e+04, 3.89679387e+04, 4.63409500e+04, 5.51089875e+04,
866 6.55360000e+04, 7.79358775e+04, 9.26819000e+04, 1.10217975e+05,
867 1.31072000e+05, 1.55871755e+05, 1.85363800e+05, 2.20435950e+05,
868 2.62144000e+05, 3.11743510e+05, 3.70727600e+05, 4.40871900e+05,
869 5.24288000e+05, 6.23487020e+05, 7.41455200e+05, 8.81743800e+05,
870 1.04857600e+06, 1.24697404e+06, 1.48291040e+06, 1.76348760e+06,
871 2.09715200e+06, 2.49394808e+06, 2.96582080e+06, 3.52697520e+06,
872 4.19430400e+06, 4.98789616e+06, 5.93164160e+06, 7.05395040e+06,
873 8.38860800e+06, 9.97579232e+06, 1.18632832e+07, 1.41079008e+07,
874 1.67772160e+07, 1.99515846e+07, 2.37265664e+07, 2.82158016e+07,
875 3.35544320e+07, 3.99031693e+07, 4.74531328e+07, 5.64316032e+07,
876 6.71088640e+07, 7.98063385e+07, 9.49062656e+07, 1.12863206e+08,
877 1.34217728e+08, 1.59612677e+08, 1.89812531e+08, 2.25726413e+08,
878 2.68435456e+08, 3.19225354e+08, 3.79625062e+08, 4.51452825e+08,
879 };
880
881 #endif /* CONFIG_HARDCODED_TABLES */