comparison aactab.h @ 7422:e29ac68d3152 libavcodec

AAC tables and data that have been OKed by Michael
author superdump
date Sun, 27 Jul 2008 08:21:48 +0000
parents
children 0499a257d17f
comparison
equal deleted inserted replaced
7421:74534206d329 7422:e29ac68d3152
1 /*
2 * AAC data and definitions
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.h
25 * AAC data and definitions
26 * @author Oded Shimon ( ods15 ods15 dyndns org )
27 * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
28 */
29
30 #ifndef FFMPEG_AACTAB_H
31 #define FFMPEG_AACTAB_H
32
33 #include <stdint.h>
34
35 static const uint32_t 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 static const uint8_t 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 code1[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 code2[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 code3[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 code4[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 code5[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 code6[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 code7[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 code8[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 code9[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 code10[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 code11[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 #define IVQUANT_SIZE 1024
380
381 static const int8_t aac_codebook_vector0[324] = {
382 -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 1, -1, -1, 0, -1,
383 -1, -1, 0, 0, -1, -1, 0, 1, -1, -1, 1, -1, -1, -1, 1, 0,
384 -1, -1, 1, 1, -1, 0, -1, -1, -1, 0, -1, 0, -1, 0, -1, 1,
385 -1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 1, -1, 0, 1, -1,
386 -1, 0, 1, 0, -1, 0, 1, 1, -1, 1, -1, -1, -1, 1, -1, 0,
387 -1, 1, -1, 1, -1, 1, 0, -1, -1, 1, 0, 0, -1, 1, 0, 1,
388 -1, 1, 1, -1, -1, 1, 1, 0, -1, 1, 1, 1, 0, -1, -1, -1,
389 0, -1, -1, 0, 0, -1, -1, 1, 0, -1, 0, -1, 0, -1, 0, 0,
390 0, -1, 0, 1, 0, -1, 1, -1, 0, -1, 1, 0, 0, -1, 1, 1,
391 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, -1, 1, 0, 0, 0, -1,
392 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, 0, 0, 1, 0,
393 0, 0, 1, 1, 0, 1, -1, -1, 0, 1, -1, 0, 0, 1, -1, 1,
394 0, 1, 0, -1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, -1,
395 0, 1, 1, 0, 0, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 0,
396 1, -1, -1, 1, 1, -1, 0, -1, 1, -1, 0, 0, 1, -1, 0, 1,
397 1, -1, 1, -1, 1, -1, 1, 0, 1, -1, 1, 1, 1, 0, -1, -1,
398 1, 0, -1, 0, 1, 0, -1, 1, 1, 0, 0, -1, 1, 0, 0, 0,
399 1, 0, 0, 1, 1, 0, 1, -1, 1, 0, 1, 0, 1, 0, 1, 1,
400 1, 1, -1, -1, 1, 1, -1, 0, 1, 1, -1, 1, 1, 1, 0, -1,
401 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, -1, 1, 1, 1, 0,
402 1, 1, 1, 1,
403 };
404
405 static const int8_t aac_codebook_vector2[324] = {
406 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 1, 0,
407 0, 0, 1, 1, 0, 0, 1, 2, 0, 0, 2, 0, 0, 0, 2, 1,
408 0, 0, 2, 2, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 2,
409 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 2, 0, 1, 2, 0,
410 0, 1, 2, 1, 0, 1, 2, 2, 0, 2, 0, 0, 0, 2, 0, 1,
411 0, 2, 0, 2, 0, 2, 1, 0, 0, 2, 1, 1, 0, 2, 1, 2,
412 0, 2, 2, 0, 0, 2, 2, 1, 0, 2, 2, 2, 1, 0, 0, 0,
413 1, 0, 0, 1, 1, 0, 0, 2, 1, 0, 1, 0, 1, 0, 1, 1,
414 1, 0, 1, 2, 1, 0, 2, 0, 1, 0, 2, 1, 1, 0, 2, 2,
415 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 2, 1, 1, 1, 0,
416 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 0, 1, 1, 2, 1,
417 1, 1, 2, 2, 1, 2, 0, 0, 1, 2, 0, 1, 1, 2, 0, 2,
418 1, 2, 1, 0, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 0,
419 1, 2, 2, 1, 1, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 1,
420 2, 0, 0, 2, 2, 0, 1, 0, 2, 0, 1, 1, 2, 0, 1, 2,
421 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 2, 2, 1, 0, 0,
422 2, 1, 0, 1, 2, 1, 0, 2, 2, 1, 1, 0, 2, 1, 1, 1,
423 2, 1, 1, 2, 2, 1, 2, 0, 2, 1, 2, 1, 2, 1, 2, 2,
424 2, 2, 0, 0, 2, 2, 0, 1, 2, 2, 0, 2, 2, 2, 1, 0,
425 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 0, 2, 2, 2, 1,
426 2, 2, 2, 2,
427 };
428
429 static const int8_t aac_codebook_vector4[162] = {
430 -4, -4, -4, -3, -4, -2, -4, -1, -4, 0, -4, 1, -4, 2, -4, 3,
431 -4, 4, -3, -4, -3, -3, -3, -2, -3, -1, -3, 0, -3, 1, -3, 2,
432 -3, 3, -3, 4, -2, -4, -2, -3, -2, -2, -2, -1, -2, 0, -2, 1,
433 -2, 2, -2, 3, -2, 4, -1, -4, -1, -3, -1, -2, -1, -1, -1, 0,
434 -1, 1, -1, 2, -1, 3, -1, 4, 0, -4, 0, -3, 0, -2, 0, -1,
435 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 1, -4, 1, -3, 1, -2,
436 1, -1, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 2, -4, 2, -3,
437 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 3, -4,
438 3, -3, 3, -2, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4,
439 4, -4, 4, -3, 4, -2, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3,
440 4, 4,
441 };
442
443 static const int8_t aac_codebook_vector6[128] = {
444 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,
445 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7,
446 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7,
447 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7,
448 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7,
449 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7,
450 6, 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7,
451 7, 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7,
452
453 };
454
455 static const int8_t aac_codebook_vector8[338] = {
456 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,
457 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 1, 0, 1, 1, 1, 2,
458 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10,
459 1, 11, 1, 12, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5,
460 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 3, 0,
461 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8,
462 3, 9, 3, 10, 3, 11, 3, 12, 4, 0, 4, 1, 4, 2, 4, 3,
463 4, 4, 4, 5, 4, 6, 4, 7, 4, 8, 4, 9, 4, 10, 4, 11,
464 4, 12, 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6,
465 5, 7, 5, 8, 5, 9, 5, 10, 5, 11, 5, 12, 6, 0, 6, 1,
466 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8, 6, 9,
467 6, 10, 6, 11, 6, 12, 7, 0, 7, 1, 7, 2, 7, 3, 7, 4,
468 7, 5, 7, 6, 7, 7, 7, 8, 7, 9, 7, 10, 7, 11, 7, 12,
469 8, 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7,
470 8, 8, 8, 9, 8, 10, 8, 11, 8, 12, 9, 0, 9, 1, 9, 2,
471 9, 3, 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 9, 10,
472 9, 11, 9, 12, 10, 0, 10, 1, 10, 2, 10, 3, 10, 4, 10, 5,
473 10, 6, 10, 7, 10, 8, 10, 9, 10, 10, 10, 11, 10, 12, 11, 0,
474 11, 1, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8,
475 11, 9, 11, 10, 11, 11, 11, 12, 12, 0, 12, 1, 12, 2, 12, 3,
476 12, 4, 12, 5, 12, 6, 12, 7, 12, 8, 12, 9, 12, 10, 12, 11,
477 12, 12,
478 };
479
480 static const int8_t aac_codebook_vector10[578] = {
481 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,
482 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15,
483 0, 16, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6,
484 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14,
485 1, 15, 1, 16, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5,
486 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13,
487 2, 14, 2, 15, 2, 16, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4,
488 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3, 10, 3, 11, 3, 12,
489 3, 13, 3, 14, 3, 15, 3, 16, 4, 0, 4, 1, 4, 2, 4, 3,
490 4, 4, 4, 5, 4, 6, 4, 7, 4, 8, 4, 9, 4, 10, 4, 11,
491 4, 12, 4, 13, 4, 14, 4, 15, 4, 16, 5, 0, 5, 1, 5, 2,
492 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 5, 8, 5, 9, 5, 10,
493 5, 11, 5, 12, 5, 13, 5, 14, 5, 15, 5, 16, 6, 0, 6, 1,
494 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8, 6, 9,
495 6, 10, 6, 11, 6, 12, 6, 13, 6, 14, 6, 15, 6, 16, 7, 0,
496 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7, 7, 8,
497 7, 9, 7, 10, 7, 11, 7, 12, 7, 13, 7, 14, 7, 15, 7, 16,
498 8, 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7,
499 8, 8, 8, 9, 8, 10, 8, 11, 8, 12, 8, 13, 8, 14, 8, 15,
500 8, 16, 9, 0, 9, 1, 9, 2, 9, 3, 9, 4, 9, 5, 9, 6,
501 9, 7, 9, 8, 9, 9, 9, 10, 9, 11, 9, 12, 9, 13, 9, 14,
502 9, 15, 9, 16, 10, 0, 10, 1, 10, 2, 10, 3, 10, 4, 10, 5,
503 10, 6, 10, 7, 10, 8, 10, 9, 10, 10, 10, 11, 10, 12, 10, 13,
504 10, 14, 10, 15, 10, 16, 11, 0, 11, 1, 11, 2, 11, 3, 11, 4,
505 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 11, 11, 11, 12,
506 11, 13, 11, 14, 11, 15, 11, 16, 12, 0, 12, 1, 12, 2, 12, 3,
507 12, 4, 12, 5, 12, 6, 12, 7, 12, 8, 12, 9, 12, 10, 12, 11,
508 12, 12, 12, 13, 12, 14, 12, 15, 12, 16, 13, 0, 13, 1, 13, 2,
509 13, 3, 13, 4, 13, 5, 13, 6, 13, 7, 13, 8, 13, 9, 13, 10,
510 13, 11, 13, 12, 13, 13, 13, 14, 13, 15, 13, 16, 14, 0, 14, 1,
511 14, 2, 14, 3, 14, 4, 14, 5, 14, 6, 14, 7, 14, 8, 14, 9,
512 14, 10, 14, 11, 14, 12, 14, 13, 14, 14, 14, 15, 14, 16, 15, 0,
513 15, 1, 15, 2, 15, 3, 15, 4, 15, 5, 15, 6, 15, 7, 15, 8,
514 15, 9, 15, 10, 15, 11, 15, 12, 15, 13, 15, 14, 15, 15, 15, 16,
515 16, 0, 16, 1, 16, 2, 16, 3, 16, 4, 16, 5, 16, 6, 16, 7,
516 16, 8, 16, 9, 16, 10, 16, 11, 16, 12, 16, 13, 16, 14, 16, 15,
517 16, 16,
518 };
519
520 static const int8_t *codebook_vectors[] = {
521 aac_codebook_vector0, aac_codebook_vector0, aac_codebook_vector2,
522 aac_codebook_vector2, aac_codebook_vector4, aac_codebook_vector4,
523 aac_codebook_vector6, aac_codebook_vector6, aac_codebook_vector8,
524 aac_codebook_vector8, aac_codebook_vector10,
525 };
526
527 #ifdef CONFIG_HARDCODED_TABLES
528
529 static const float ivquant_tab[IVQUANT_SIZE] = {
530 -4085.3368071, -4074.6805676, -4064.0312908, -4053.3889857,
531 -4042.7536614, -4032.1253271, -4021.5039921, -4010.8896656,
532 -4000.2823568, -3989.6820750, -3979.0888296, -3968.5026299,
533 -3957.9234854, -3947.3514054, -3936.7863993, -3926.2284768,
534 -3915.6776473, -3905.1339203, -3894.5973054, -3884.0678123,
535 -3873.5454506, -3863.0302299, -3852.5221601, -3842.0212507,
536 -3831.5275117, -3821.0409528, -3810.5615838, -3800.0894147,
537 -3789.6244554, -3779.1667157, -3768.7162058, -3758.2729355,
538 -3747.8369150, -3737.4081544, -3726.9866637, -3716.5724532,
539 -3706.1655329, -3695.7659132, -3685.3736044, -3674.9886166,
540 -3664.6109603, -3654.2406458, -3643.8776835, -3633.5220839,
541 -3623.1738574, -3612.8330147, -3602.4995662, -3592.1735225,
542 -3581.8548943, -3571.5436923, -3561.2399271, -3550.9436095,
543 -3540.6547503, -3530.3733604, -3520.0994506, -3509.8330317,
544 -3499.5741148, -3489.3227109, -3479.0788309, -3468.8424860,
545 -3458.6136872, -3448.3924458, -3438.1787728, -3427.9726795,
546 -3417.7741773, -3407.5832773, -3397.3999911, -3387.2243299,
547 -3377.0563052, -3366.8959286, -3356.7432115, -3346.5981655,
548 -3336.4608022, -3326.3311334, -3316.2091706, -3306.0949257,
549 -3295.9884105, -3285.8896367, -3275.7986164, -3265.7153613,
550 -3255.6398836, -3245.5721951, -3235.5123081, -3225.4602346,
551 -3215.4159867, -3205.3795768, -3195.3510169, -3185.3303196,
552 -3175.3174970, -3165.3125617, -3155.3155261, -3145.3264026,
553 -3135.3452039, -3125.3719425, -3115.4066312, -3105.4492825,
554 -3095.4999092, -3085.5585243, -3075.6251404, -3065.6997706,
555 -3055.7824278, -3045.8731250, -3035.9718753, -3026.0786917,
556 -3016.1935876, -3006.3165760, -2996.4476703, -2986.5868839,
557 -2976.7342300, -2966.8897222, -2957.0533740, -2947.2251989,
558 -2937.4052106, -2927.5934226, -2917.7898488, -2907.9945030,
559 -2898.2073989, -2888.4285505, -2878.6579717, -2868.8956767,
560 -2859.1416793, -2849.3959939, -2839.6586345, -2829.9296156,
561 -2820.2089512, -2810.4966560, -2800.7927443, -2791.0972306,
562 -2781.4101295, -2771.7314556, -2762.0612237, -2752.3994485,
563 -2742.7461448, -2733.1013276, -2723.4650117, -2713.8372123,
564 -2704.2179443, -2694.6072231, -2685.0050637, -2675.4114815,
565 -2665.8264919, -2656.2501103, -2646.6823521, -2637.1232331,
566 -2627.5727687, -2618.0309748, -2608.4978671, -2598.9734614,
567 -2589.4577738, -2579.9508201, -2570.4526166, -2560.9631792,
568 -2551.4825244, -2542.0106682, -2532.5476273, -2523.0934179,
569 -2513.6480566, -2504.2115601, -2494.7839450, -2485.3652281,
570 -2475.9554262, -2466.5545562, -2457.1626352, -2447.7796803,
571 -2438.4057086, -2429.0407373, -2419.6847838, -2410.3378655,
572 -2401.0000000, -2391.6712048, -2382.3514975, -2373.0408959,
573 -2363.7394180, -2354.4470815, -2345.1639046, -2335.8899054,
574 -2326.6251019, -2317.3695127, -2308.1231559, -2298.8860501,
575 -2289.6582139, -2280.4396659, -2271.2304249, -2262.0305097,
576 -2252.8399393, -2243.6587327, -2234.4869090, -2225.3244875,
577 -2216.1714876, -2207.0279286, -2197.8938301, -2188.7692117,
578 -2179.6540933, -2170.5484945, -2161.4524354, -2152.3659360,
579 -2143.2890165, -2134.2216972, -2125.1639983, -2116.1159404,
580 -2107.0775442, -2098.0488302, -2089.0298192, -2080.0205323,
581 -2071.0209905, -2062.0312148, -2053.0512267, -2044.0810473,
582 -2035.1206983, -2026.1702013, -2017.2295780, -2008.2988502,
583 -1999.3780400, -1990.4671694, -1981.5662607, -1972.6753362,
584 -1963.7944183, -1954.9235298, -1946.0626932, -1937.2119316,
585 -1928.3712678, -1919.5407249, -1910.7203263, -1901.9100954,
586 -1893.1100555, -1884.3202305, -1875.5406441, -1866.7713202,
587 -1858.0122829, -1849.2635565, -1840.5251653, -1831.7971337,
588 -1823.0794865, -1814.3722485, -1805.6754445, -1796.9890997,
589 -1788.3132394, -1779.6478889, -1770.9930739, -1762.3488199,
590 -1753.7151529, -1745.0920989, -1736.4796841, -1727.8779349,
591 -1719.2868777, -1710.7065393, -1702.1369465, -1693.5781262,
592 -1685.0301058, -1676.4929125, -1667.9665739, -1659.4511177,
593 -1650.9465718, -1642.4529642, -1633.9703232, -1625.4986772,
594 -1617.0380549, -1608.5884850, -1600.1499965, -1591.7226186,
595 -1583.3063807, -1574.9013124, -1566.5074433, -1558.1248036,
596 -1549.7534233, -1541.3933328, -1533.0445627, -1524.7071438,
597 -1516.3811070, -1508.0664836, -1499.7633050, -1491.4716029,
598 -1483.1914090, -1474.9227555, -1466.6656746, -1458.4201990,
599 -1450.1863613, -1441.9641946, -1433.7537320, -1425.5550071,
600 -1417.3680536, -1409.1929053, -1401.0295965, -1392.8781617,
601 -1384.7386355, -1376.6110529, -1368.4954490, -1360.3918594,
602 -1352.3003198, -1344.2208661, -1336.1535347, -1328.0983621,
603 -1320.0553851, -1312.0246407, -1304.0061665, -1296.0000000,
604 -1288.0061792, -1280.0247424, -1272.0557280, -1264.0991750,
605 -1256.1551226, -1248.2236101, -1240.3046773, -1232.3983645,
606 -1224.5047118, -1216.6237602, -1208.7555507, -1200.9001246,
607 -1193.0575238, -1185.2277903, -1177.4109665, -1169.6070953,
608 -1161.8162197, -1154.0383833, -1146.2736299, -1138.5220038,
609 -1130.7835495, -1123.0583122, -1115.3463371, -1107.6476700,
610 -1099.9623571, -1092.2904450, -1084.6319806, -1076.9870114,
611 -1069.3555851, -1061.7377500, -1054.1335548, -1046.5430486,
612 -1038.9662809, -1031.4033017, -1023.8541615, -1016.3189112,
613 -1008.7976022, -1001.2902864, -993.7970162, -986.3178444,
614 -978.8528243, -971.4020099, -963.9654554, -956.5432158,
615 -949.1353466, -941.7419036, -934.3629435, -926.9985233,
616 -919.6487005, -912.3135336, -904.9930812, -897.6874027,
617 -890.3965581, -883.1206081, -875.8596139, -868.6136373,
618 -861.3827409, -854.1669878, -846.9664418, -839.7811675,
619 -832.6112300, -825.4566953, -818.3176299, -811.1941012,
620 -804.0861773, -796.9939269, -789.9174197, -782.8567260,
621 -775.8119169, -768.7830645, -761.7702415, -754.7735215,
622 -747.7929790, -740.8286894, -733.8807287, -726.9491743,
623 -720.0341040, -713.1355968, -706.2537328, -699.3885927,
624 -692.5402584, -685.7088129, -678.8943400, -672.0969248,
625 -665.3166532, -658.5536125, -651.8078908, -645.0795775,
626 -638.3687633, -631.6755398, -625.0000000, -618.3422381,
627 -611.7023495, -605.0804310, -598.4765806, -591.8908978,
628 -585.3234834, -578.7744395, -572.2438698, -565.7318795,
629 -559.2385751, -552.7640648, -546.3084584, -539.8718672,
630 -533.4544042, -527.0561843, -520.6773237, -514.3179408,
631 -507.9781556, -501.6580901, -495.3578679, -489.0776150,
632 -482.8174592, -476.5775303, -470.3579603, -464.1588834,
633 -457.9804359, -451.8227566, -445.6859865, -439.5702691,
634 -433.4757504, -427.4025787, -421.3509053, -415.3208841,
635 -409.3126715, -403.3264272, -397.3623135, -391.4204959,
636 -385.5011431, -379.6044268, -373.7305221, -367.8796078,
637 -362.0518657, -356.2474818, -350.4666456, -344.7095504,
638 -338.9763937, -333.2673772, -327.5827066, -321.9225924,
639 -316.2872495, -310.6768976, -305.0917613, -299.5320705,
640 -293.9980602, -288.4899710, -283.0080491, -277.5525469,
641 -272.1237227, -266.7218414, -261.3471743, -256.0000000,
642 -250.6806041, -245.3892798, -240.1263282, -234.8920585,
643 -229.6867885, -224.5108452, -219.3645645, -214.2482925,
644 -209.1623853, -204.1072101, -199.0831450, -194.0905802,
645 -189.1299182, -184.2015749, -179.3059798, -174.4435769,
646 -169.6148258, -164.8202021, -160.0601987, -155.3353268,
647 -150.6461166, -145.9931191, -141.3769069, -136.7980757,
648 -132.2572463, -127.7550655, -123.2922085, -118.8693810,
649 -114.4873209, -110.1468012, -105.8486329, -101.5936673,
650 -97.3828002, -93.2169752, -89.0971879, -85.0244912,
651 -81.0000000, -77.0248978, -73.1004435, -69.2279794,
652 -65.4089405, -61.6448653, -57.9374077, -54.2883523,
653 -50.6996313, -47.1733451, -43.7117870, -40.3174736,
654 -36.9931811, -33.7419917, -30.5673509, -27.4731418,
655 -24.4637810, -21.5443469, -18.7207544, -16.0000000,
656 -13.3905183, -10.9027236, -8.5498797, -6.3496042,
657 -4.3267487, -2.5198421, -1.0000000, 0.0000000,
658 1.0000000, 2.5198421, 4.3267487, 6.3496042,
659 8.5498797, 10.9027236, 13.3905183, 16.0000000,
660 18.7207544, 21.5443469, 24.4637810, 27.4731418,
661 30.5673509, 33.7419917, 36.9931811, 40.3174736,
662 43.7117870, 47.1733451, 50.6996313, 54.2883523,
663 57.9374077, 61.6448653, 65.4089405, 69.2279794,
664 73.1004435, 77.0248978, 81.0000000, 85.0244912,
665 89.0971879, 93.2169752, 97.3828002, 101.5936673,
666 105.8486329, 110.1468012, 114.4873209, 118.8693810,
667 123.2922085, 127.7550655, 132.2572463, 136.7980757,
668 141.3769069, 145.9931191, 150.6461166, 155.3353268,
669 160.0601987, 164.8202021, 169.6148258, 174.4435769,
670 179.3059798, 184.2015749, 189.1299182, 194.0905802,
671 199.0831450, 204.1072101, 209.1623853, 214.2482925,
672 219.3645645, 224.5108452, 229.6867885, 234.8920585,
673 240.1263282, 245.3892798, 250.6806041, 256.0000000,
674 261.3471743, 266.7218414, 272.1237227, 277.5525469,
675 283.0080491, 288.4899710, 293.9980602, 299.5320705,
676 305.0917613, 310.6768976, 316.2872495, 321.9225924,
677 327.5827066, 333.2673772, 338.9763937, 344.7095504,
678 350.4666456, 356.2474818, 362.0518657, 367.8796078,
679 373.7305221, 379.6044268, 385.5011431, 391.4204959,
680 397.3623135, 403.3264272, 409.3126715, 415.3208841,
681 421.3509053, 427.4025787, 433.4757504, 439.5702691,
682 445.6859865, 451.8227566, 457.9804359, 464.1588834,
683 470.3579603, 476.5775303, 482.8174592, 489.0776150,
684 495.3578679, 501.6580901, 507.9781556, 514.3179408,
685 520.6773237, 527.0561843, 533.4544042, 539.8718672,
686 546.3084584, 552.7640648, 559.2385751, 565.7318795,
687 572.2438698, 578.7744395, 585.3234834, 591.8908978,
688 598.4765806, 605.0804310, 611.7023495, 618.3422381,
689 625.0000000, 631.6755398, 638.3687633, 645.0795775,
690 651.8078908, 658.5536125, 665.3166532, 672.0969248,
691 678.8943400, 685.7088129, 692.5402584, 699.3885927,
692 706.2537328, 713.1355968, 720.0341040, 726.9491743,
693 733.8807287, 740.8286894, 747.7929790, 754.7735215,
694 761.7702415, 768.7830645, 775.8119169, 782.8567260,
695 789.9174197, 796.9939269, 804.0861773, 811.1941012,
696 818.3176299, 825.4566953, 832.6112300, 839.7811675,
697 846.9664418, 854.1669878, 861.3827409, 868.6136373,
698 875.8596139, 883.1206081, 890.3965581, 897.6874027,
699 904.9930812, 912.3135336, 919.6487005, 926.9985233,
700 934.3629435, 941.7419036, 949.1353466, 956.5432158,
701 963.9654554, 971.4020099, 978.8528243, 986.3178444,
702 993.7970162, 1001.2902864, 1008.7976022, 1016.3189112,
703 1023.8541615, 1031.4033017, 1038.9662809, 1046.5430486,
704 1054.1335548, 1061.7377500, 1069.3555851, 1076.9870114,
705 1084.6319806, 1092.2904450, 1099.9623571, 1107.6476700,
706 1115.3463371, 1123.0583122, 1130.7835495, 1138.5220038,
707 1146.2736299, 1154.0383833, 1161.8162197, 1169.6070953,
708 1177.4109665, 1185.2277903, 1193.0575238, 1200.9001246,
709 1208.7555507, 1216.6237602, 1224.5047118, 1232.3983645,
710 1240.3046773, 1248.2236101, 1256.1551226, 1264.0991750,
711 1272.0557280, 1280.0247424, 1288.0061792, 1296.0000000,
712 1304.0061665, 1312.0246407, 1320.0553851, 1328.0983621,
713 1336.1535347, 1344.2208661, 1352.3003198, 1360.3918594,
714 1368.4954490, 1376.6110529, 1384.7386355, 1392.8781617,
715 1401.0295965, 1409.1929053, 1417.3680536, 1425.5550071,
716 1433.7537320, 1441.9641946, 1450.1863613, 1458.4201990,
717 1466.6656746, 1474.9227555, 1483.1914090, 1491.4716029,
718 1499.7633050, 1508.0664836, 1516.3811070, 1524.7071438,
719 1533.0445627, 1541.3933328, 1549.7534233, 1558.1248036,
720 1566.5074433, 1574.9013124, 1583.3063807, 1591.7226186,
721 1600.1499965, 1608.5884850, 1617.0380549, 1625.4986772,
722 1633.9703232, 1642.4529642, 1650.9465718, 1659.4511177,
723 1667.9665739, 1676.4929125, 1685.0301058, 1693.5781262,
724 1702.1369465, 1710.7065393, 1719.2868777, 1727.8779349,
725 1736.4796841, 1745.0920989, 1753.7151529, 1762.3488199,
726 1770.9930739, 1779.6478889, 1788.3132394, 1796.9890997,
727 1805.6754445, 1814.3722485, 1823.0794865, 1831.7971337,
728 1840.5251653, 1849.2635565, 1858.0122829, 1866.7713202,
729 1875.5406441, 1884.3202305, 1893.1100555, 1901.9100954,
730 1910.7203263, 1919.5407249, 1928.3712678, 1937.2119316,
731 1946.0626932, 1954.9235298, 1963.7944183, 1972.6753362,
732 1981.5662607, 1990.4671694, 1999.3780400, 2008.2988502,
733 2017.2295780, 2026.1702013, 2035.1206983, 2044.0810473,
734 2053.0512267, 2062.0312148, 2071.0209905, 2080.0205323,
735 2089.0298192, 2098.0488302, 2107.0775442, 2116.1159404,
736 2125.1639983, 2134.2216972, 2143.2890165, 2152.3659360,
737 2161.4524354, 2170.5484945, 2179.6540933, 2188.7692117,
738 2197.8938301, 2207.0279286, 2216.1714876, 2225.3244875,
739 2234.4869090, 2243.6587327, 2252.8399393, 2262.0305097,
740 2271.2304249, 2280.4396659, 2289.6582139, 2298.8860501,
741 2308.1231559, 2317.3695127, 2326.6251019, 2335.8899054,
742 2345.1639046, 2354.4470815, 2363.7394180, 2373.0408959,
743 2382.3514975, 2391.6712048, 2401.0000000, 2410.3378655,
744 2419.6847838, 2429.0407373, 2438.4057086, 2447.7796803,
745 2457.1626352, 2466.5545562, 2475.9554262, 2485.3652281,
746 2494.7839450, 2504.2115601, 2513.6480566, 2523.0934179,
747 2532.5476273, 2542.0106682, 2551.4825244, 2560.9631792,
748 2570.4526166, 2579.9508201, 2589.4577738, 2598.9734614,
749 2608.4978671, 2618.0309748, 2627.5727687, 2637.1232331,
750 2646.6823521, 2656.2501103, 2665.8264919, 2675.4114815,
751 2685.0050637, 2694.6072231, 2704.2179443, 2713.8372123,
752 2723.4650117, 2733.1013276, 2742.7461448, 2752.3994485,
753 2762.0612237, 2771.7314556, 2781.4101295, 2791.0972306,
754 2800.7927443, 2810.4966560, 2820.2089512, 2829.9296156,
755 2839.6586345, 2849.3959939, 2859.1416793, 2868.8956767,
756 2878.6579717, 2888.4285505, 2898.2073989, 2907.9945030,
757 2917.7898488, 2927.5934226, 2937.4052106, 2947.2251989,
758 2957.0533740, 2966.8897222, 2976.7342300, 2986.5868839,
759 2996.4476703, 3006.3165760, 3016.1935876, 3026.0786917,
760 3035.9718753, 3045.8731250, 3055.7824278, 3065.6997706,
761 3075.6251404, 3085.5585243, 3095.4999092, 3105.4492825,
762 3115.4066312, 3125.3719425, 3135.3452039, 3145.3264026,
763 3155.3155261, 3165.3125617, 3175.3174970, 3185.3303196,
764 3195.3510169, 3205.3795768, 3215.4159867, 3225.4602346,
765 3235.5123081, 3245.5721951, 3255.6398836, 3265.7153613,
766 3275.7986164, 3285.8896367, 3295.9884105, 3306.0949257,
767 3316.2091706, 3326.3311334, 3336.4608022, 3346.5981655,
768 3356.7432115, 3366.8959286, 3377.0563052, 3387.2243299,
769 3397.3999911, 3407.5832773, 3417.7741773, 3427.9726795,
770 3438.1787728, 3448.3924458, 3458.6136872, 3468.8424860,
771 3479.0788309, 3489.3227109, 3499.5741148, 3509.8330317,
772 3520.0994506, 3530.3733604, 3540.6547503, 3550.9436095,
773 3561.2399271, 3571.5436923, 3581.8548943, 3592.1735225,
774 3602.4995662, 3612.8330147, 3623.1738574, 3633.5220839,
775 3643.8776835, 3654.2406458, 3664.6109603, 3674.9886166,
776 3685.3736044, 3695.7659132, 3706.1655329, 3716.5724532,
777 3726.9866637, 3737.4081544, 3747.8369150, 3758.2729355,
778 3768.7162058, 3779.1667157, 3789.6244554, 3800.0894147,
779 3810.5615838, 3821.0409528, 3831.5275117, 3842.0212507,
780 3852.5221601, 3863.0302299, 3873.5454506, 3884.0678123,
781 3894.5973054, 3905.1339203, 3915.6776473, 3926.2284768,
782 3936.7863993, 3947.3514054, 3957.9234854, 3968.5026299,
783 3979.0888296, 3989.6820750, 4000.2823568, 4010.8896656,
784 4021.5039921, 4032.1253271, 4042.7536614, 4053.3889857,
785 4064.0312908, 4074.6805676, 4085.3368071, 4096.0000000,
786 };
787
788 #endif /* CONFIG_HARDCODED_TABLES */
789
790 #endif /* FFMPEG_AACTAB_H */