asfdec: also read Metadata Library Object
[FFMpeg-mirror/mplayer-patches.git] / libavcodec / aactab.c
blob9176e37d485d97a98a04c61e067f2cdcf88d500b
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 )
6 * This file is part of Libav.
8 * Libav 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.
13 * Libav 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.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with Libav; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 /**
24 * @file
25 * AAC data
26 * @author Oded Shimon ( ods15 ods15 dyndns org )
27 * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
30 #include "libavutil/mem.h"
31 #include "aac.h"
32 #include "aac_tablegen.h"
34 #include <stdint.h>
36 DECLARE_ALIGNED(32, float, ff_aac_kbd_long_1024)[1024];
37 DECLARE_ALIGNED(32, float, ff_aac_kbd_short_128)[128];
39 const uint8_t ff_aac_num_swb_1024[] = {
40 41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40, 40
43 const uint8_t ff_aac_num_swb_128[] = {
44 12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15
47 const uint8_t ff_aac_pred_sfb_max[] = {
48 33, 33, 38, 40, 40, 40, 41, 41, 37, 37, 37, 34, 34
51 const uint32_t ff_aac_scalefactor_code[121] = {
52 0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6,
53 0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7,
54 0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0,
55 0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7,
56 0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5,
57 0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7,
58 0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a,
59 0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b,
60 0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9,
61 0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5,
62 0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4,
63 0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd,
64 0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2,
65 0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0,
66 0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4,
67 0x7fff3,
70 const uint8_t ff_aac_scalefactor_bits[121] = {
71 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
72 19, 19, 19, 18, 19, 18, 17, 17, 16, 17, 16, 16, 16, 16, 15, 15,
73 14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11, 12, 11, 10, 10,
74 10, 9, 9, 8, 8, 8, 7, 6, 6, 5, 4, 3, 1, 4, 4, 5,
75 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12,
76 12, 13, 13, 13, 14, 14, 16, 15, 16, 15, 18, 19, 19, 19, 19, 19,
77 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
78 19, 19, 19, 19, 19, 19, 19, 19, 19,
81 static const uint16_t codes1[81] = {
82 0x7f8, 0x1f1, 0x7fd, 0x3f5, 0x068, 0x3f0, 0x7f7, 0x1ec,
83 0x7f5, 0x3f1, 0x072, 0x3f4, 0x074, 0x011, 0x076, 0x1eb,
84 0x06c, 0x3f6, 0x7fc, 0x1e1, 0x7f1, 0x1f0, 0x061, 0x1f6,
85 0x7f2, 0x1ea, 0x7fb, 0x1f2, 0x069, 0x1ed, 0x077, 0x017,
86 0x06f, 0x1e6, 0x064, 0x1e5, 0x067, 0x015, 0x062, 0x012,
87 0x000, 0x014, 0x065, 0x016, 0x06d, 0x1e9, 0x063, 0x1e4,
88 0x06b, 0x013, 0x071, 0x1e3, 0x070, 0x1f3, 0x7fe, 0x1e7,
89 0x7f3, 0x1ef, 0x060, 0x1ee, 0x7f0, 0x1e2, 0x7fa, 0x3f3,
90 0x06a, 0x1e8, 0x075, 0x010, 0x073, 0x1f4, 0x06e, 0x3f7,
91 0x7f6, 0x1e0, 0x7f9, 0x3f2, 0x066, 0x1f5, 0x7ff, 0x1f7,
92 0x7f4,
95 static const uint8_t bits1[81] = {
96 11, 9, 11, 10, 7, 10, 11, 9, 11, 10, 7, 10, 7, 5, 7, 9,
97 7, 10, 11, 9, 11, 9, 7, 9, 11, 9, 11, 9, 7, 9, 7, 5,
98 7, 9, 7, 9, 7, 5, 7, 5, 1, 5, 7, 5, 7, 9, 7, 9,
99 7, 5, 7, 9, 7, 9, 11, 9, 11, 9, 7, 9, 11, 9, 11, 10,
100 7, 9, 7, 5, 7, 9, 7, 10, 11, 9, 11, 10, 7, 9, 11, 9,
104 static const uint16_t codes2[81] = {
105 0x1f3, 0x06f, 0x1fd, 0x0eb, 0x023, 0x0ea, 0x1f7, 0x0e8,
106 0x1fa, 0x0f2, 0x02d, 0x070, 0x020, 0x006, 0x02b, 0x06e,
107 0x028, 0x0e9, 0x1f9, 0x066, 0x0f8, 0x0e7, 0x01b, 0x0f1,
108 0x1f4, 0x06b, 0x1f5, 0x0ec, 0x02a, 0x06c, 0x02c, 0x00a,
109 0x027, 0x067, 0x01a, 0x0f5, 0x024, 0x008, 0x01f, 0x009,
110 0x000, 0x007, 0x01d, 0x00b, 0x030, 0x0ef, 0x01c, 0x064,
111 0x01e, 0x00c, 0x029, 0x0f3, 0x02f, 0x0f0, 0x1fc, 0x071,
112 0x1f2, 0x0f4, 0x021, 0x0e6, 0x0f7, 0x068, 0x1f8, 0x0ee,
113 0x022, 0x065, 0x031, 0x002, 0x026, 0x0ed, 0x025, 0x06a,
114 0x1fb, 0x072, 0x1fe, 0x069, 0x02e, 0x0f6, 0x1ff, 0x06d,
115 0x1f6,
118 static const uint8_t bits2[81] = {
119 9, 7, 9, 8, 6, 8, 9, 8, 9, 8, 6, 7, 6, 5, 6, 7,
120 6, 8, 9, 7, 8, 8, 6, 8, 9, 7, 9, 8, 6, 7, 6, 5,
121 6, 7, 6, 8, 6, 5, 6, 5, 3, 5, 6, 5, 6, 8, 6, 7,
122 6, 5, 6, 8, 6, 8, 9, 7, 9, 8, 6, 8, 8, 7, 9, 8,
123 6, 7, 6, 4, 6, 8, 6, 7, 9, 7, 9, 7, 6, 8, 9, 7,
127 static const uint16_t codes3[81] = {
128 0x0000, 0x0009, 0x00ef, 0x000b, 0x0019, 0x00f0, 0x01eb, 0x01e6,
129 0x03f2, 0x000a, 0x0035, 0x01ef, 0x0034, 0x0037, 0x01e9, 0x01ed,
130 0x01e7, 0x03f3, 0x01ee, 0x03ed, 0x1ffa, 0x01ec, 0x01f2, 0x07f9,
131 0x07f8, 0x03f8, 0x0ff8, 0x0008, 0x0038, 0x03f6, 0x0036, 0x0075,
132 0x03f1, 0x03eb, 0x03ec, 0x0ff4, 0x0018, 0x0076, 0x07f4, 0x0039,
133 0x0074, 0x03ef, 0x01f3, 0x01f4, 0x07f6, 0x01e8, 0x03ea, 0x1ffc,
134 0x00f2, 0x01f1, 0x0ffb, 0x03f5, 0x07f3, 0x0ffc, 0x00ee, 0x03f7,
135 0x7ffe, 0x01f0, 0x07f5, 0x7ffd, 0x1ffb, 0x3ffa, 0xffff, 0x00f1,
136 0x03f0, 0x3ffc, 0x01ea, 0x03ee, 0x3ffb, 0x0ff6, 0x0ffa, 0x7ffc,
137 0x07f2, 0x0ff5, 0xfffe, 0x03f4, 0x07f7, 0x7ffb, 0x0ff7, 0x0ff9,
138 0x7ffa,
141 static const uint8_t bits3[81] = {
142 1, 4, 8, 4, 5, 8, 9, 9, 10, 4, 6, 9, 6, 6, 9, 9,
143 9, 10, 9, 10, 13, 9, 9, 11, 11, 10, 12, 4, 6, 10, 6, 7,
144 10, 10, 10, 12, 5, 7, 11, 6, 7, 10, 9, 9, 11, 9, 10, 13,
145 8, 9, 12, 10, 11, 12, 8, 10, 15, 9, 11, 15, 13, 14, 16, 8,
146 10, 14, 9, 10, 14, 12, 12, 15, 11, 12, 16, 10, 11, 15, 12, 12,
150 static const uint16_t codes4[81] = {
151 0x007, 0x016, 0x0f6, 0x018, 0x008, 0x0ef, 0x1ef, 0x0f3,
152 0x7f8, 0x019, 0x017, 0x0ed, 0x015, 0x001, 0x0e2, 0x0f0,
153 0x070, 0x3f0, 0x1ee, 0x0f1, 0x7fa, 0x0ee, 0x0e4, 0x3f2,
154 0x7f6, 0x3ef, 0x7fd, 0x005, 0x014, 0x0f2, 0x009, 0x004,
155 0x0e5, 0x0f4, 0x0e8, 0x3f4, 0x006, 0x002, 0x0e7, 0x003,
156 0x000, 0x06b, 0x0e3, 0x069, 0x1f3, 0x0eb, 0x0e6, 0x3f6,
157 0x06e, 0x06a, 0x1f4, 0x3ec, 0x1f0, 0x3f9, 0x0f5, 0x0ec,
158 0x7fb, 0x0ea, 0x06f, 0x3f7, 0x7f9, 0x3f3, 0xfff, 0x0e9,
159 0x06d, 0x3f8, 0x06c, 0x068, 0x1f5, 0x3ee, 0x1f2, 0x7f4,
160 0x7f7, 0x3f1, 0xffe, 0x3ed, 0x1f1, 0x7f5, 0x7fe, 0x3f5,
161 0x7fc,
164 static const uint8_t bits4[81] = {
165 4, 5, 8, 5, 4, 8, 9, 8, 11, 5, 5, 8, 5, 4, 8, 8,
166 7, 10, 9, 8, 11, 8, 8, 10, 11, 10, 11, 4, 5, 8, 4, 4,
167 8, 8, 8, 10, 4, 4, 8, 4, 4, 7, 8, 7, 9, 8, 8, 10,
168 7, 7, 9, 10, 9, 10, 8, 8, 11, 8, 7, 10, 11, 10, 12, 8,
169 7, 10, 7, 7, 9, 10, 9, 11, 11, 10, 12, 10, 9, 11, 11, 10,
173 static const uint16_t codes5[81] = {
174 0x1fff, 0x0ff7, 0x07f4, 0x07e8, 0x03f1, 0x07ee, 0x07f9, 0x0ff8,
175 0x1ffd, 0x0ffd, 0x07f1, 0x03e8, 0x01e8, 0x00f0, 0x01ec, 0x03ee,
176 0x07f2, 0x0ffa, 0x0ff4, 0x03ef, 0x01f2, 0x00e8, 0x0070, 0x00ec,
177 0x01f0, 0x03ea, 0x07f3, 0x07eb, 0x01eb, 0x00ea, 0x001a, 0x0008,
178 0x0019, 0x00ee, 0x01ef, 0x07ed, 0x03f0, 0x00f2, 0x0073, 0x000b,
179 0x0000, 0x000a, 0x0071, 0x00f3, 0x07e9, 0x07ef, 0x01ee, 0x00ef,
180 0x0018, 0x0009, 0x001b, 0x00eb, 0x01e9, 0x07ec, 0x07f6, 0x03eb,
181 0x01f3, 0x00ed, 0x0072, 0x00e9, 0x01f1, 0x03ed, 0x07f7, 0x0ff6,
182 0x07f0, 0x03e9, 0x01ed, 0x00f1, 0x01ea, 0x03ec, 0x07f8, 0x0ff9,
183 0x1ffc, 0x0ffc, 0x0ff5, 0x07ea, 0x03f3, 0x03f2, 0x07f5, 0x0ffb,
184 0x1ffe,
187 static const uint8_t bits5[81] = {
188 13, 12, 11, 11, 10, 11, 11, 12, 13, 12, 11, 10, 9, 8, 9, 10,
189 11, 12, 12, 10, 9, 8, 7, 8, 9, 10, 11, 11, 9, 8, 5, 4,
190 5, 8, 9, 11, 10, 8, 7, 4, 1, 4, 7, 8, 11, 11, 9, 8,
191 5, 4, 5, 8, 9, 11, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12,
192 11, 10, 9, 8, 9, 10, 11, 12, 13, 12, 12, 11, 10, 10, 11, 12,
196 static const uint16_t codes6[81] = {
197 0x7fe, 0x3fd, 0x1f1, 0x1eb, 0x1f4, 0x1ea, 0x1f0, 0x3fc,
198 0x7fd, 0x3f6, 0x1e5, 0x0ea, 0x06c, 0x071, 0x068, 0x0f0,
199 0x1e6, 0x3f7, 0x1f3, 0x0ef, 0x032, 0x027, 0x028, 0x026,
200 0x031, 0x0eb, 0x1f7, 0x1e8, 0x06f, 0x02e, 0x008, 0x004,
201 0x006, 0x029, 0x06b, 0x1ee, 0x1ef, 0x072, 0x02d, 0x002,
202 0x000, 0x003, 0x02f, 0x073, 0x1fa, 0x1e7, 0x06e, 0x02b,
203 0x007, 0x001, 0x005, 0x02c, 0x06d, 0x1ec, 0x1f9, 0x0ee,
204 0x030, 0x024, 0x02a, 0x025, 0x033, 0x0ec, 0x1f2, 0x3f8,
205 0x1e4, 0x0ed, 0x06a, 0x070, 0x069, 0x074, 0x0f1, 0x3fa,
206 0x7ff, 0x3f9, 0x1f6, 0x1ed, 0x1f8, 0x1e9, 0x1f5, 0x3fb,
207 0x7fc,
210 static const uint8_t bits6[81] = {
211 11, 10, 9, 9, 9, 9, 9, 10, 11, 10, 9, 8, 7, 7, 7, 8,
212 9, 10, 9, 8, 6, 6, 6, 6, 6, 8, 9, 9, 7, 6, 4, 4,
213 4, 6, 7, 9, 9, 7, 6, 4, 4, 4, 6, 7, 9, 9, 7, 6,
214 4, 4, 4, 6, 7, 9, 9, 8, 6, 6, 6, 6, 6, 8, 9, 10,
215 9, 8, 7, 7, 7, 7, 8, 10, 11, 10, 9, 9, 9, 9, 9, 10,
219 static const uint16_t codes7[64] = {
220 0x000, 0x005, 0x037, 0x074, 0x0f2, 0x1eb, 0x3ed, 0x7f7,
221 0x004, 0x00c, 0x035, 0x071, 0x0ec, 0x0ee, 0x1ee, 0x1f5,
222 0x036, 0x034, 0x072, 0x0ea, 0x0f1, 0x1e9, 0x1f3, 0x3f5,
223 0x073, 0x070, 0x0eb, 0x0f0, 0x1f1, 0x1f0, 0x3ec, 0x3fa,
224 0x0f3, 0x0ed, 0x1e8, 0x1ef, 0x3ef, 0x3f1, 0x3f9, 0x7fb,
225 0x1ed, 0x0ef, 0x1ea, 0x1f2, 0x3f3, 0x3f8, 0x7f9, 0x7fc,
226 0x3ee, 0x1ec, 0x1f4, 0x3f4, 0x3f7, 0x7f8, 0xffd, 0xffe,
227 0x7f6, 0x3f0, 0x3f2, 0x3f6, 0x7fa, 0x7fd, 0xffc, 0xfff,
230 static const uint8_t bits7[64] = {
231 1, 3, 6, 7, 8, 9, 10, 11, 3, 4, 6, 7, 8, 8, 9, 9,
232 6, 6, 7, 8, 8, 9, 9, 10, 7, 7, 8, 8, 9, 9, 10, 10,
233 8, 8, 9, 9, 10, 10, 10, 11, 9, 8, 9, 9, 10, 10, 11, 11,
234 10, 9, 9, 10, 10, 11, 12, 12, 11, 10, 10, 10, 11, 11, 12, 12,
237 static const uint16_t codes8[64] = {
238 0x00e, 0x005, 0x010, 0x030, 0x06f, 0x0f1, 0x1fa, 0x3fe,
239 0x003, 0x000, 0x004, 0x012, 0x02c, 0x06a, 0x075, 0x0f8,
240 0x00f, 0x002, 0x006, 0x014, 0x02e, 0x069, 0x072, 0x0f5,
241 0x02f, 0x011, 0x013, 0x02a, 0x032, 0x06c, 0x0ec, 0x0fa,
242 0x071, 0x02b, 0x02d, 0x031, 0x06d, 0x070, 0x0f2, 0x1f9,
243 0x0ef, 0x068, 0x033, 0x06b, 0x06e, 0x0ee, 0x0f9, 0x3fc,
244 0x1f8, 0x074, 0x073, 0x0ed, 0x0f0, 0x0f6, 0x1f6, 0x1fd,
245 0x3fd, 0x0f3, 0x0f4, 0x0f7, 0x1f7, 0x1fb, 0x1fc, 0x3ff,
248 static const uint8_t bits8[64] = {
249 5, 4, 5, 6, 7, 8, 9, 10, 4, 3, 4, 5, 6, 7, 7, 8,
250 5, 4, 4, 5, 6, 7, 7, 8, 6, 5, 5, 6, 6, 7, 8, 8,
251 7, 6, 6, 6, 7, 7, 8, 9, 8, 7, 6, 7, 7, 8, 8, 10,
252 9, 7, 7, 8, 8, 8, 9, 9, 10, 8, 8, 8, 9, 9, 9, 10,
255 static const uint16_t codes9[169] = {
256 0x0000, 0x0005, 0x0037, 0x00e7, 0x01de, 0x03ce, 0x03d9, 0x07c8,
257 0x07cd, 0x0fc8, 0x0fdd, 0x1fe4, 0x1fec, 0x0004, 0x000c, 0x0035,
258 0x0072, 0x00ea, 0x00ed, 0x01e2, 0x03d1, 0x03d3, 0x03e0, 0x07d8,
259 0x0fcf, 0x0fd5, 0x0036, 0x0034, 0x0071, 0x00e8, 0x00ec, 0x01e1,
260 0x03cf, 0x03dd, 0x03db, 0x07d0, 0x0fc7, 0x0fd4, 0x0fe4, 0x00e6,
261 0x0070, 0x00e9, 0x01dd, 0x01e3, 0x03d2, 0x03dc, 0x07cc, 0x07ca,
262 0x07de, 0x0fd8, 0x0fea, 0x1fdb, 0x01df, 0x00eb, 0x01dc, 0x01e6,
263 0x03d5, 0x03de, 0x07cb, 0x07dd, 0x07dc, 0x0fcd, 0x0fe2, 0x0fe7,
264 0x1fe1, 0x03d0, 0x01e0, 0x01e4, 0x03d6, 0x07c5, 0x07d1, 0x07db,
265 0x0fd2, 0x07e0, 0x0fd9, 0x0feb, 0x1fe3, 0x1fe9, 0x07c4, 0x01e5,
266 0x03d7, 0x07c6, 0x07cf, 0x07da, 0x0fcb, 0x0fda, 0x0fe3, 0x0fe9,
267 0x1fe6, 0x1ff3, 0x1ff7, 0x07d3, 0x03d8, 0x03e1, 0x07d4, 0x07d9,
268 0x0fd3, 0x0fde, 0x1fdd, 0x1fd9, 0x1fe2, 0x1fea, 0x1ff1, 0x1ff6,
269 0x07d2, 0x03d4, 0x03da, 0x07c7, 0x07d7, 0x07e2, 0x0fce, 0x0fdb,
270 0x1fd8, 0x1fee, 0x3ff0, 0x1ff4, 0x3ff2, 0x07e1, 0x03df, 0x07c9,
271 0x07d6, 0x0fca, 0x0fd0, 0x0fe5, 0x0fe6, 0x1feb, 0x1fef, 0x3ff3,
272 0x3ff4, 0x3ff5, 0x0fe0, 0x07ce, 0x07d5, 0x0fc6, 0x0fd1, 0x0fe1,
273 0x1fe0, 0x1fe8, 0x1ff0, 0x3ff1, 0x3ff8, 0x3ff6, 0x7ffc, 0x0fe8,
274 0x07df, 0x0fc9, 0x0fd7, 0x0fdc, 0x1fdc, 0x1fdf, 0x1fed, 0x1ff5,
275 0x3ff9, 0x3ffb, 0x7ffd, 0x7ffe, 0x1fe7, 0x0fcc, 0x0fd6, 0x0fdf,
276 0x1fde, 0x1fda, 0x1fe5, 0x1ff2, 0x3ffa, 0x3ff7, 0x3ffc, 0x3ffd,
277 0x7fff,
280 static const uint8_t bits9[169] = {
281 1, 3, 6, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 3, 4, 6,
282 7, 8, 8, 9, 10, 10, 10, 11, 12, 12, 6, 6, 7, 8, 8, 9,
283 10, 10, 10, 11, 12, 12, 12, 8, 7, 8, 9, 9, 10, 10, 11, 11,
284 11, 12, 12, 13, 9, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12,
285 13, 10, 9, 9, 10, 11, 11, 11, 12, 11, 12, 12, 13, 13, 11, 9,
286 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 11, 10, 10, 11, 11,
287 12, 12, 13, 13, 13, 13, 13, 13, 11, 10, 10, 11, 11, 11, 12, 12,
288 13, 13, 14, 13, 14, 11, 10, 11, 11, 12, 12, 12, 12, 13, 13, 14,
289 14, 14, 12, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 12,
290 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15, 13, 12, 12, 12,
291 13, 13, 13, 13, 14, 14, 14, 14, 15,
294 static const uint16_t codes10[169] = {
295 0x022, 0x008, 0x01d, 0x026, 0x05f, 0x0d3, 0x1cf, 0x3d0,
296 0x3d7, 0x3ed, 0x7f0, 0x7f6, 0xffd, 0x007, 0x000, 0x001,
297 0x009, 0x020, 0x054, 0x060, 0x0d5, 0x0dc, 0x1d4, 0x3cd,
298 0x3de, 0x7e7, 0x01c, 0x002, 0x006, 0x00c, 0x01e, 0x028,
299 0x05b, 0x0cd, 0x0d9, 0x1ce, 0x1dc, 0x3d9, 0x3f1, 0x025,
300 0x00b, 0x00a, 0x00d, 0x024, 0x057, 0x061, 0x0cc, 0x0dd,
301 0x1cc, 0x1de, 0x3d3, 0x3e7, 0x05d, 0x021, 0x01f, 0x023,
302 0x027, 0x059, 0x064, 0x0d8, 0x0df, 0x1d2, 0x1e2, 0x3dd,
303 0x3ee, 0x0d1, 0x055, 0x029, 0x056, 0x058, 0x062, 0x0ce,
304 0x0e0, 0x0e2, 0x1da, 0x3d4, 0x3e3, 0x7eb, 0x1c9, 0x05e,
305 0x05a, 0x05c, 0x063, 0x0ca, 0x0da, 0x1c7, 0x1ca, 0x1e0,
306 0x3db, 0x3e8, 0x7ec, 0x1e3, 0x0d2, 0x0cb, 0x0d0, 0x0d7,
307 0x0db, 0x1c6, 0x1d5, 0x1d8, 0x3ca, 0x3da, 0x7ea, 0x7f1,
308 0x1e1, 0x0d4, 0x0cf, 0x0d6, 0x0de, 0x0e1, 0x1d0, 0x1d6,
309 0x3d1, 0x3d5, 0x3f2, 0x7ee, 0x7fb, 0x3e9, 0x1cd, 0x1c8,
310 0x1cb, 0x1d1, 0x1d7, 0x1df, 0x3cf, 0x3e0, 0x3ef, 0x7e6,
311 0x7f8, 0xffa, 0x3eb, 0x1dd, 0x1d3, 0x1d9, 0x1db, 0x3d2,
312 0x3cc, 0x3dc, 0x3ea, 0x7ed, 0x7f3, 0x7f9, 0xff9, 0x7f2,
313 0x3ce, 0x1e4, 0x3cb, 0x3d8, 0x3d6, 0x3e2, 0x3e5, 0x7e8,
314 0x7f4, 0x7f5, 0x7f7, 0xffb, 0x7fa, 0x3ec, 0x3df, 0x3e1,
315 0x3e4, 0x3e6, 0x3f0, 0x7e9, 0x7ef, 0xff8, 0xffe, 0xffc,
316 0xfff,
319 static const uint8_t bits10[169] = {
320 6, 5, 6, 6, 7, 8, 9, 10, 10, 10, 11, 11, 12, 5, 4, 4,
321 5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 6, 4, 5, 5, 6, 6,
322 7, 8, 8, 9, 9, 10, 10, 6, 5, 5, 5, 6, 7, 7, 8, 8,
323 9, 9, 10, 10, 7, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 10,
324 10, 8, 7, 6, 7, 7, 7, 8, 8, 8, 9, 10, 10, 11, 9, 7,
325 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 9, 8, 8, 8, 8,
326 8, 9, 9, 9, 10, 10, 11, 11, 9, 8, 8, 8, 8, 8, 9, 9,
327 10, 10, 10, 11, 11, 10, 9, 9, 9, 9, 9, 9, 10, 10, 10, 11,
328 11, 12, 10, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 11,
329 10, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 11, 10, 10, 10,
330 10, 10, 10, 11, 11, 12, 12, 12, 12,
333 static const uint16_t codes11[289] = {
334 0x000, 0x006, 0x019, 0x03d, 0x09c, 0x0c6, 0x1a7, 0x390,
335 0x3c2, 0x3df, 0x7e6, 0x7f3, 0xffb, 0x7ec, 0xffa, 0xffe,
336 0x38e, 0x005, 0x001, 0x008, 0x014, 0x037, 0x042, 0x092,
337 0x0af, 0x191, 0x1a5, 0x1b5, 0x39e, 0x3c0, 0x3a2, 0x3cd,
338 0x7d6, 0x0ae, 0x017, 0x007, 0x009, 0x018, 0x039, 0x040,
339 0x08e, 0x0a3, 0x0b8, 0x199, 0x1ac, 0x1c1, 0x3b1, 0x396,
340 0x3be, 0x3ca, 0x09d, 0x03c, 0x015, 0x016, 0x01a, 0x03b,
341 0x044, 0x091, 0x0a5, 0x0be, 0x196, 0x1ae, 0x1b9, 0x3a1,
342 0x391, 0x3a5, 0x3d5, 0x094, 0x09a, 0x036, 0x038, 0x03a,
343 0x041, 0x08c, 0x09b, 0x0b0, 0x0c3, 0x19e, 0x1ab, 0x1bc,
344 0x39f, 0x38f, 0x3a9, 0x3cf, 0x093, 0x0bf, 0x03e, 0x03f,
345 0x043, 0x045, 0x09e, 0x0a7, 0x0b9, 0x194, 0x1a2, 0x1ba,
346 0x1c3, 0x3a6, 0x3a7, 0x3bb, 0x3d4, 0x09f, 0x1a0, 0x08f,
347 0x08d, 0x090, 0x098, 0x0a6, 0x0b6, 0x0c4, 0x19f, 0x1af,
348 0x1bf, 0x399, 0x3bf, 0x3b4, 0x3c9, 0x3e7, 0x0a8, 0x1b6,
349 0x0ab, 0x0a4, 0x0aa, 0x0b2, 0x0c2, 0x0c5, 0x198, 0x1a4,
350 0x1b8, 0x38c, 0x3a4, 0x3c4, 0x3c6, 0x3dd, 0x3e8, 0x0ad,
351 0x3af, 0x192, 0x0bd, 0x0bc, 0x18e, 0x197, 0x19a, 0x1a3,
352 0x1b1, 0x38d, 0x398, 0x3b7, 0x3d3, 0x3d1, 0x3db, 0x7dd,
353 0x0b4, 0x3de, 0x1a9, 0x19b, 0x19c, 0x1a1, 0x1aa, 0x1ad,
354 0x1b3, 0x38b, 0x3b2, 0x3b8, 0x3ce, 0x3e1, 0x3e0, 0x7d2,
355 0x7e5, 0x0b7, 0x7e3, 0x1bb, 0x1a8, 0x1a6, 0x1b0, 0x1b2,
356 0x1b7, 0x39b, 0x39a, 0x3ba, 0x3b5, 0x3d6, 0x7d7, 0x3e4,
357 0x7d8, 0x7ea, 0x0ba, 0x7e8, 0x3a0, 0x1bd, 0x1b4, 0x38a,
358 0x1c4, 0x392, 0x3aa, 0x3b0, 0x3bc, 0x3d7, 0x7d4, 0x7dc,
359 0x7db, 0x7d5, 0x7f0, 0x0c1, 0x7fb, 0x3c8, 0x3a3, 0x395,
360 0x39d, 0x3ac, 0x3ae, 0x3c5, 0x3d8, 0x3e2, 0x3e6, 0x7e4,
361 0x7e7, 0x7e0, 0x7e9, 0x7f7, 0x190, 0x7f2, 0x393, 0x1be,
362 0x1c0, 0x394, 0x397, 0x3ad, 0x3c3, 0x3c1, 0x3d2, 0x7da,
363 0x7d9, 0x7df, 0x7eb, 0x7f4, 0x7fa, 0x195, 0x7f8, 0x3bd,
364 0x39c, 0x3ab, 0x3a8, 0x3b3, 0x3b9, 0x3d0, 0x3e3, 0x3e5,
365 0x7e2, 0x7de, 0x7ed, 0x7f1, 0x7f9, 0x7fc, 0x193, 0xffd,
366 0x3dc, 0x3b6, 0x3c7, 0x3cc, 0x3cb, 0x3d9, 0x3da, 0x7d3,
367 0x7e1, 0x7ee, 0x7ef, 0x7f5, 0x7f6, 0xffc, 0xfff, 0x19d,
368 0x1c2, 0x0b5, 0x0a1, 0x096, 0x097, 0x095, 0x099, 0x0a0,
369 0x0a2, 0x0ac, 0x0a9, 0x0b1, 0x0b3, 0x0bb, 0x0c0, 0x18f,
370 0x004,
373 static const uint8_t bits11[289] = {
374 4, 5, 6, 7, 8, 8, 9, 10, 10, 10, 11, 11, 12, 11, 12, 12,
375 10, 5, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10,
376 11, 8, 6, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10,
377 10, 10, 8, 7, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10,
378 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
379 10, 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9,
380 9, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9,
381 9, 10, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 9, 9,
382 9, 10, 10, 10, 10, 10, 10, 8, 10, 9, 8, 8, 9, 9, 9, 9,
383 9, 10, 10, 10, 10, 10, 10, 11, 8, 10, 9, 9, 9, 9, 9, 9,
384 9, 10, 10, 10, 10, 10, 10, 11, 11, 8, 11, 9, 9, 9, 9, 9,
385 9, 10, 10, 10, 10, 10, 11, 10, 11, 11, 8, 11, 10, 9, 9, 10,
386 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 8, 11, 10, 10, 10,
387 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 9, 11, 10, 9,
388 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 11, 10,
389 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 12,
390 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 9,
391 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9,
395 const uint16_t * const ff_aac_spectral_codes[11] = {
396 codes1, codes2, codes3, codes4, codes5, codes6, codes7, codes8,
397 codes9, codes10, codes11,
400 const uint8_t * const ff_aac_spectral_bits[11] = {
401 bits1, bits2, bits3, bits4, bits5, bits6, bits7, bits8,
402 bits9, bits10, bits11,
405 const uint16_t ff_aac_spectral_sizes[11] = {
406 81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
409 /* NOTE:
410 * 64.0f is a special value indicating the existence of an escape code in the
411 * bitstream.
413 static const DECLARE_ALIGNED(16, float, codebook_vector0)[324] = {
414 -1.0000000, -1.0000000, -1.0000000, -1.0000000,
415 -1.0000000, -1.0000000, -1.0000000, 0.0000000,
416 -1.0000000, -1.0000000, -1.0000000, 1.0000000,
417 -1.0000000, -1.0000000, 0.0000000, -1.0000000,
418 -1.0000000, -1.0000000, 0.0000000, 0.0000000,
419 -1.0000000, -1.0000000, 0.0000000, 1.0000000,
420 -1.0000000, -1.0000000, 1.0000000, -1.0000000,
421 -1.0000000, -1.0000000, 1.0000000, 0.0000000,
422 -1.0000000, -1.0000000, 1.0000000, 1.0000000,
423 -1.0000000, 0.0000000, -1.0000000, -1.0000000,
424 -1.0000000, 0.0000000, -1.0000000, 0.0000000,
425 -1.0000000, 0.0000000, -1.0000000, 1.0000000,
426 -1.0000000, 0.0000000, 0.0000000, -1.0000000,
427 -1.0000000, 0.0000000, 0.0000000, 0.0000000,
428 -1.0000000, 0.0000000, 0.0000000, 1.0000000,
429 -1.0000000, 0.0000000, 1.0000000, -1.0000000,
430 -1.0000000, 0.0000000, 1.0000000, 0.0000000,
431 -1.0000000, 0.0000000, 1.0000000, 1.0000000,
432 -1.0000000, 1.0000000, -1.0000000, -1.0000000,
433 -1.0000000, 1.0000000, -1.0000000, 0.0000000,
434 -1.0000000, 1.0000000, -1.0000000, 1.0000000,
435 -1.0000000, 1.0000000, 0.0000000, -1.0000000,
436 -1.0000000, 1.0000000, 0.0000000, 0.0000000,
437 -1.0000000, 1.0000000, 0.0000000, 1.0000000,
438 -1.0000000, 1.0000000, 1.0000000, -1.0000000,
439 -1.0000000, 1.0000000, 1.0000000, 0.0000000,
440 -1.0000000, 1.0000000, 1.0000000, 1.0000000,
441 0.0000000, -1.0000000, -1.0000000, -1.0000000,
442 0.0000000, -1.0000000, -1.0000000, 0.0000000,
443 0.0000000, -1.0000000, -1.0000000, 1.0000000,
444 0.0000000, -1.0000000, 0.0000000, -1.0000000,
445 0.0000000, -1.0000000, 0.0000000, 0.0000000,
446 0.0000000, -1.0000000, 0.0000000, 1.0000000,
447 0.0000000, -1.0000000, 1.0000000, -1.0000000,
448 0.0000000, -1.0000000, 1.0000000, 0.0000000,
449 0.0000000, -1.0000000, 1.0000000, 1.0000000,
450 0.0000000, 0.0000000, -1.0000000, -1.0000000,
451 0.0000000, 0.0000000, -1.0000000, 0.0000000,
452 0.0000000, 0.0000000, -1.0000000, 1.0000000,
453 0.0000000, 0.0000000, 0.0000000, -1.0000000,
454 0.0000000, 0.0000000, 0.0000000, 0.0000000,
455 0.0000000, 0.0000000, 0.0000000, 1.0000000,
456 0.0000000, 0.0000000, 1.0000000, -1.0000000,
457 0.0000000, 0.0000000, 1.0000000, 0.0000000,
458 0.0000000, 0.0000000, 1.0000000, 1.0000000,
459 0.0000000, 1.0000000, -1.0000000, -1.0000000,
460 0.0000000, 1.0000000, -1.0000000, 0.0000000,
461 0.0000000, 1.0000000, -1.0000000, 1.0000000,
462 0.0000000, 1.0000000, 0.0000000, -1.0000000,
463 0.0000000, 1.0000000, 0.0000000, 0.0000000,
464 0.0000000, 1.0000000, 0.0000000, 1.0000000,
465 0.0000000, 1.0000000, 1.0000000, -1.0000000,
466 0.0000000, 1.0000000, 1.0000000, 0.0000000,
467 0.0000000, 1.0000000, 1.0000000, 1.0000000,
468 1.0000000, -1.0000000, -1.0000000, -1.0000000,
469 1.0000000, -1.0000000, -1.0000000, 0.0000000,
470 1.0000000, -1.0000000, -1.0000000, 1.0000000,
471 1.0000000, -1.0000000, 0.0000000, -1.0000000,
472 1.0000000, -1.0000000, 0.0000000, 0.0000000,
473 1.0000000, -1.0000000, 0.0000000, 1.0000000,
474 1.0000000, -1.0000000, 1.0000000, -1.0000000,
475 1.0000000, -1.0000000, 1.0000000, 0.0000000,
476 1.0000000, -1.0000000, 1.0000000, 1.0000000,
477 1.0000000, 0.0000000, -1.0000000, -1.0000000,
478 1.0000000, 0.0000000, -1.0000000, 0.0000000,
479 1.0000000, 0.0000000, -1.0000000, 1.0000000,
480 1.0000000, 0.0000000, 0.0000000, -1.0000000,
481 1.0000000, 0.0000000, 0.0000000, 0.0000000,
482 1.0000000, 0.0000000, 0.0000000, 1.0000000,
483 1.0000000, 0.0000000, 1.0000000, -1.0000000,
484 1.0000000, 0.0000000, 1.0000000, 0.0000000,
485 1.0000000, 0.0000000, 1.0000000, 1.0000000,
486 1.0000000, 1.0000000, -1.0000000, -1.0000000,
487 1.0000000, 1.0000000, -1.0000000, 0.0000000,
488 1.0000000, 1.0000000, -1.0000000, 1.0000000,
489 1.0000000, 1.0000000, 0.0000000, -1.0000000,
490 1.0000000, 1.0000000, 0.0000000, 0.0000000,
491 1.0000000, 1.0000000, 0.0000000, 1.0000000,
492 1.0000000, 1.0000000, 1.0000000, -1.0000000,
493 1.0000000, 1.0000000, 1.0000000, 0.0000000,
494 1.0000000, 1.0000000, 1.0000000, 1.0000000,
497 static const DECLARE_ALIGNED(16, float, codebook_vector2)[324] = {
498 0.0000000, 0.0000000, 0.0000000, 0.0000000,
499 0.0000000, 0.0000000, 0.0000000, 1.0000000,
500 0.0000000, 0.0000000, 0.0000000, 2.5198421,
501 0.0000000, 0.0000000, 1.0000000, 0.0000000,
502 0.0000000, 0.0000000, 1.0000000, 1.0000000,
503 0.0000000, 0.0000000, 1.0000000, 2.5198421,
504 0.0000000, 0.0000000, 2.5198421, 0.0000000,
505 0.0000000, 0.0000000, 2.5198421, 1.0000000,
506 0.0000000, 0.0000000, 2.5198421, 2.5198421,
507 0.0000000, 1.0000000, 0.0000000, 0.0000000,
508 0.0000000, 1.0000000, 0.0000000, 1.0000000,
509 0.0000000, 1.0000000, 0.0000000, 2.5198421,
510 0.0000000, 1.0000000, 1.0000000, 0.0000000,
511 0.0000000, 1.0000000, 1.0000000, 1.0000000,
512 0.0000000, 1.0000000, 1.0000000, 2.5198421,
513 0.0000000, 1.0000000, 2.5198421, 0.0000000,
514 0.0000000, 1.0000000, 2.5198421, 1.0000000,
515 0.0000000, 1.0000000, 2.5198421, 2.5198421,
516 0.0000000, 2.5198421, 0.0000000, 0.0000000,
517 0.0000000, 2.5198421, 0.0000000, 1.0000000,
518 0.0000000, 2.5198421, 0.0000000, 2.5198421,
519 0.0000000, 2.5198421, 1.0000000, 0.0000000,
520 0.0000000, 2.5198421, 1.0000000, 1.0000000,
521 0.0000000, 2.5198421, 1.0000000, 2.5198421,
522 0.0000000, 2.5198421, 2.5198421, 0.0000000,
523 0.0000000, 2.5198421, 2.5198421, 1.0000000,
524 0.0000000, 2.5198421, 2.5198421, 2.5198421,
525 1.0000000, 0.0000000, 0.0000000, 0.0000000,
526 1.0000000, 0.0000000, 0.0000000, 1.0000000,
527 1.0000000, 0.0000000, 0.0000000, 2.5198421,
528 1.0000000, 0.0000000, 1.0000000, 0.0000000,
529 1.0000000, 0.0000000, 1.0000000, 1.0000000,
530 1.0000000, 0.0000000, 1.0000000, 2.5198421,
531 1.0000000, 0.0000000, 2.5198421, 0.0000000,
532 1.0000000, 0.0000000, 2.5198421, 1.0000000,
533 1.0000000, 0.0000000, 2.5198421, 2.5198421,
534 1.0000000, 1.0000000, 0.0000000, 0.0000000,
535 1.0000000, 1.0000000, 0.0000000, 1.0000000,
536 1.0000000, 1.0000000, 0.0000000, 2.5198421,
537 1.0000000, 1.0000000, 1.0000000, 0.0000000,
538 1.0000000, 1.0000000, 1.0000000, 1.0000000,
539 1.0000000, 1.0000000, 1.0000000, 2.5198421,
540 1.0000000, 1.0000000, 2.5198421, 0.0000000,
541 1.0000000, 1.0000000, 2.5198421, 1.0000000,
542 1.0000000, 1.0000000, 2.5198421, 2.5198421,
543 1.0000000, 2.5198421, 0.0000000, 0.0000000,
544 1.0000000, 2.5198421, 0.0000000, 1.0000000,
545 1.0000000, 2.5198421, 0.0000000, 2.5198421,
546 1.0000000, 2.5198421, 1.0000000, 0.0000000,
547 1.0000000, 2.5198421, 1.0000000, 1.0000000,
548 1.0000000, 2.5198421, 1.0000000, 2.5198421,
549 1.0000000, 2.5198421, 2.5198421, 0.0000000,
550 1.0000000, 2.5198421, 2.5198421, 1.0000000,
551 1.0000000, 2.5198421, 2.5198421, 2.5198421,
552 2.5198421, 0.0000000, 0.0000000, 0.0000000,
553 2.5198421, 0.0000000, 0.0000000, 1.0000000,
554 2.5198421, 0.0000000, 0.0000000, 2.5198421,
555 2.5198421, 0.0000000, 1.0000000, 0.0000000,
556 2.5198421, 0.0000000, 1.0000000, 1.0000000,
557 2.5198421, 0.0000000, 1.0000000, 2.5198421,
558 2.5198421, 0.0000000, 2.5198421, 0.0000000,
559 2.5198421, 0.0000000, 2.5198421, 1.0000000,
560 2.5198421, 0.0000000, 2.5198421, 2.5198421,
561 2.5198421, 1.0000000, 0.0000000, 0.0000000,
562 2.5198421, 1.0000000, 0.0000000, 1.0000000,
563 2.5198421, 1.0000000, 0.0000000, 2.5198421,
564 2.5198421, 1.0000000, 1.0000000, 0.0000000,
565 2.5198421, 1.0000000, 1.0000000, 1.0000000,
566 2.5198421, 1.0000000, 1.0000000, 2.5198421,
567 2.5198421, 1.0000000, 2.5198421, 0.0000000,
568 2.5198421, 1.0000000, 2.5198421, 1.0000000,
569 2.5198421, 1.0000000, 2.5198421, 2.5198421,
570 2.5198421, 2.5198421, 0.0000000, 0.0000000,
571 2.5198421, 2.5198421, 0.0000000, 1.0000000,
572 2.5198421, 2.5198421, 0.0000000, 2.5198421,
573 2.5198421, 2.5198421, 1.0000000, 0.0000000,
574 2.5198421, 2.5198421, 1.0000000, 1.0000000,
575 2.5198421, 2.5198421, 1.0000000, 2.5198421,
576 2.5198421, 2.5198421, 2.5198421, 0.0000000,
577 2.5198421, 2.5198421, 2.5198421, 1.0000000,
578 2.5198421, 2.5198421, 2.5198421, 2.5198421,
581 static const DECLARE_ALIGNED(16, float, codebook_vector4)[162] = {
582 -6.3496042, -6.3496042, -6.3496042, -4.3267487,
583 -6.3496042, -2.5198421, -6.3496042, -1.0000000,
584 -6.3496042, 0.0000000, -6.3496042, 1.0000000,
585 -6.3496042, 2.5198421, -6.3496042, 4.3267487,
586 -6.3496042, 6.3496042, -4.3267487, -6.3496042,
587 -4.3267487, -4.3267487, -4.3267487, -2.5198421,
588 -4.3267487, -1.0000000, -4.3267487, 0.0000000,
589 -4.3267487, 1.0000000, -4.3267487, 2.5198421,
590 -4.3267487, 4.3267487, -4.3267487, 6.3496042,
591 -2.5198421, -6.3496042, -2.5198421, -4.3267487,
592 -2.5198421, -2.5198421, -2.5198421, -1.0000000,
593 -2.5198421, 0.0000000, -2.5198421, 1.0000000,
594 -2.5198421, 2.5198421, -2.5198421, 4.3267487,
595 -2.5198421, 6.3496042, -1.0000000, -6.3496042,
596 -1.0000000, -4.3267487, -1.0000000, -2.5198421,
597 -1.0000000, -1.0000000, -1.0000000, 0.0000000,
598 -1.0000000, 1.0000000, -1.0000000, 2.5198421,
599 -1.0000000, 4.3267487, -1.0000000, 6.3496042,
600 0.0000000, -6.3496042, 0.0000000, -4.3267487,
601 0.0000000, -2.5198421, 0.0000000, -1.0000000,
602 0.0000000, 0.0000000, 0.0000000, 1.0000000,
603 0.0000000, 2.5198421, 0.0000000, 4.3267487,
604 0.0000000, 6.3496042, 1.0000000, -6.3496042,
605 1.0000000, -4.3267487, 1.0000000, -2.5198421,
606 1.0000000, -1.0000000, 1.0000000, 0.0000000,
607 1.0000000, 1.0000000, 1.0000000, 2.5198421,
608 1.0000000, 4.3267487, 1.0000000, 6.3496042,
609 2.5198421, -6.3496042, 2.5198421, -4.3267487,
610 2.5198421, -2.5198421, 2.5198421, -1.0000000,
611 2.5198421, 0.0000000, 2.5198421, 1.0000000,
612 2.5198421, 2.5198421, 2.5198421, 4.3267487,
613 2.5198421, 6.3496042, 4.3267487, -6.3496042,
614 4.3267487, -4.3267487, 4.3267487, -2.5198421,
615 4.3267487, -1.0000000, 4.3267487, 0.0000000,
616 4.3267487, 1.0000000, 4.3267487, 2.5198421,
617 4.3267487, 4.3267487, 4.3267487, 6.3496042,
618 6.3496042, -6.3496042, 6.3496042, -4.3267487,
619 6.3496042, -2.5198421, 6.3496042, -1.0000000,
620 6.3496042, 0.0000000, 6.3496042, 1.0000000,
621 6.3496042, 2.5198421, 6.3496042, 4.3267487,
622 6.3496042, 6.3496042,
625 static const DECLARE_ALIGNED(16, float, codebook_vector6)[128] = {
626 0.0000000, 0.0000000, 0.0000000, 1.0000000,
627 0.0000000, 2.5198421, 0.0000000, 4.3267487,
628 0.0000000, 6.3496042, 0.0000000, 8.5498797,
629 0.0000000, 10.9027236, 0.0000000, 13.3905183,
630 1.0000000, 0.0000000, 1.0000000, 1.0000000,
631 1.0000000, 2.5198421, 1.0000000, 4.3267487,
632 1.0000000, 6.3496042, 1.0000000, 8.5498797,
633 1.0000000, 10.9027236, 1.0000000, 13.3905183,
634 2.5198421, 0.0000000, 2.5198421, 1.0000000,
635 2.5198421, 2.5198421, 2.5198421, 4.3267487,
636 2.5198421, 6.3496042, 2.5198421, 8.5498797,
637 2.5198421, 10.9027236, 2.5198421, 13.3905183,
638 4.3267487, 0.0000000, 4.3267487, 1.0000000,
639 4.3267487, 2.5198421, 4.3267487, 4.3267487,
640 4.3267487, 6.3496042, 4.3267487, 8.5498797,
641 4.3267487, 10.9027236, 4.3267487, 13.3905183,
642 6.3496042, 0.0000000, 6.3496042, 1.0000000,
643 6.3496042, 2.5198421, 6.3496042, 4.3267487,
644 6.3496042, 6.3496042, 6.3496042, 8.5498797,
645 6.3496042, 10.9027236, 6.3496042, 13.3905183,
646 8.5498797, 0.0000000, 8.5498797, 1.0000000,
647 8.5498797, 2.5198421, 8.5498797, 4.3267487,
648 8.5498797, 6.3496042, 8.5498797, 8.5498797,
649 8.5498797, 10.9027236, 8.5498797, 13.3905183,
650 10.9027236, 0.0000000, 10.9027236, 1.0000000,
651 10.9027236, 2.5198421, 10.9027236, 4.3267487,
652 10.9027236, 6.3496042, 10.9027236, 8.5498797,
653 10.9027236, 10.9027236, 10.9027236, 13.3905183,
654 13.3905183, 0.0000000, 13.3905183, 1.0000000,
655 13.3905183, 2.5198421, 13.3905183, 4.3267487,
656 13.3905183, 6.3496042, 13.3905183, 8.5498797,
657 13.3905183, 10.9027236, 13.3905183, 13.3905183,
660 static const DECLARE_ALIGNED(16, float, codebook_vector8)[338] = {
661 0.0000000, 0.0000000, 0.0000000, 1.0000000,
662 0.0000000, 2.5198421, 0.0000000, 4.3267487,
663 0.0000000, 6.3496042, 0.0000000, 8.5498797,
664 0.0000000, 10.9027236, 0.0000000, 13.3905183,
665 0.0000000, 16.0000000, 0.0000000, 18.7207544,
666 0.0000000, 21.5443469, 0.0000000, 24.4637810,
667 0.0000000, 27.4731418, 1.0000000, 0.0000000,
668 1.0000000, 1.0000000, 1.0000000, 2.5198421,
669 1.0000000, 4.3267487, 1.0000000, 6.3496042,
670 1.0000000, 8.5498797, 1.0000000, 10.9027236,
671 1.0000000, 13.3905183, 1.0000000, 16.0000000,
672 1.0000000, 18.7207544, 1.0000000, 21.5443469,
673 1.0000000, 24.4637810, 1.0000000, 27.4731418,
674 2.5198421, 0.0000000, 2.5198421, 1.0000000,
675 2.5198421, 2.5198421, 2.5198421, 4.3267487,
676 2.5198421, 6.3496042, 2.5198421, 8.5498797,
677 2.5198421, 10.9027236, 2.5198421, 13.3905183,
678 2.5198421, 16.0000000, 2.5198421, 18.7207544,
679 2.5198421, 21.5443469, 2.5198421, 24.4637810,
680 2.5198421, 27.4731418, 4.3267487, 0.0000000,
681 4.3267487, 1.0000000, 4.3267487, 2.5198421,
682 4.3267487, 4.3267487, 4.3267487, 6.3496042,
683 4.3267487, 8.5498797, 4.3267487, 10.9027236,
684 4.3267487, 13.3905183, 4.3267487, 16.0000000,
685 4.3267487, 18.7207544, 4.3267487, 21.5443469,
686 4.3267487, 24.4637810, 4.3267487, 27.4731418,
687 6.3496042, 0.0000000, 6.3496042, 1.0000000,
688 6.3496042, 2.5198421, 6.3496042, 4.3267487,
689 6.3496042, 6.3496042, 6.3496042, 8.5498797,
690 6.3496042, 10.9027236, 6.3496042, 13.3905183,
691 6.3496042, 16.0000000, 6.3496042, 18.7207544,
692 6.3496042, 21.5443469, 6.3496042, 24.4637810,
693 6.3496042, 27.4731418, 8.5498797, 0.0000000,
694 8.5498797, 1.0000000, 8.5498797, 2.5198421,
695 8.5498797, 4.3267487, 8.5498797, 6.3496042,
696 8.5498797, 8.5498797, 8.5498797, 10.9027236,
697 8.5498797, 13.3905183, 8.5498797, 16.0000000,
698 8.5498797, 18.7207544, 8.5498797, 21.5443469,
699 8.5498797, 24.4637810, 8.5498797, 27.4731418,
700 10.9027236, 0.0000000, 10.9027236, 1.0000000,
701 10.9027236, 2.5198421, 10.9027236, 4.3267487,
702 10.9027236, 6.3496042, 10.9027236, 8.5498797,
703 10.9027236, 10.9027236, 10.9027236, 13.3905183,
704 10.9027236, 16.0000000, 10.9027236, 18.7207544,
705 10.9027236, 21.5443469, 10.9027236, 24.4637810,
706 10.9027236, 27.4731418, 13.3905183, 0.0000000,
707 13.3905183, 1.0000000, 13.3905183, 2.5198421,
708 13.3905183, 4.3267487, 13.3905183, 6.3496042,
709 13.3905183, 8.5498797, 13.3905183, 10.9027236,
710 13.3905183, 13.3905183, 13.3905183, 16.0000000,
711 13.3905183, 18.7207544, 13.3905183, 21.5443469,
712 13.3905183, 24.4637810, 13.3905183, 27.4731418,
713 16.0000000, 0.0000000, 16.0000000, 1.0000000,
714 16.0000000, 2.5198421, 16.0000000, 4.3267487,
715 16.0000000, 6.3496042, 16.0000000, 8.5498797,
716 16.0000000, 10.9027236, 16.0000000, 13.3905183,
717 16.0000000, 16.0000000, 16.0000000, 18.7207544,
718 16.0000000, 21.5443469, 16.0000000, 24.4637810,
719 16.0000000, 27.4731418, 18.7207544, 0.0000000,
720 18.7207544, 1.0000000, 18.7207544, 2.5198421,
721 18.7207544, 4.3267487, 18.7207544, 6.3496042,
722 18.7207544, 8.5498797, 18.7207544, 10.9027236,
723 18.7207544, 13.3905183, 18.7207544, 16.0000000,
724 18.7207544, 18.7207544, 18.7207544, 21.5443469,
725 18.7207544, 24.4637810, 18.7207544, 27.4731418,
726 21.5443469, 0.0000000, 21.5443469, 1.0000000,
727 21.5443469, 2.5198421, 21.5443469, 4.3267487,
728 21.5443469, 6.3496042, 21.5443469, 8.5498797,
729 21.5443469, 10.9027236, 21.5443469, 13.3905183,
730 21.5443469, 16.0000000, 21.5443469, 18.7207544,
731 21.5443469, 21.5443469, 21.5443469, 24.4637810,
732 21.5443469, 27.4731418, 24.4637810, 0.0000000,
733 24.4637810, 1.0000000, 24.4637810, 2.5198421,
734 24.4637810, 4.3267487, 24.4637810, 6.3496042,
735 24.4637810, 8.5498797, 24.4637810, 10.9027236,
736 24.4637810, 13.3905183, 24.4637810, 16.0000000,
737 24.4637810, 18.7207544, 24.4637810, 21.5443469,
738 24.4637810, 24.4637810, 24.4637810, 27.4731418,
739 27.4731418, 0.0000000, 27.4731418, 1.0000000,
740 27.4731418, 2.5198421, 27.4731418, 4.3267487,
741 27.4731418, 6.3496042, 27.4731418, 8.5498797,
742 27.4731418, 10.9027236, 27.4731418, 13.3905183,
743 27.4731418, 16.0000000, 27.4731418, 18.7207544,
744 27.4731418, 21.5443469, 27.4731418, 24.4637810,
745 27.4731418, 27.4731418,
748 static const DECLARE_ALIGNED(16, float, codebook_vector10)[578] = {
749 0.0000000, 0.0000000, 0.0000000, 1.0000000,
750 0.0000000, 2.5198421, 0.0000000, 4.3267487,
751 0.0000000, 6.3496042, 0.0000000, 8.5498797,
752 0.0000000, 10.9027236, 0.0000000, 13.3905183,
753 0.0000000, 16.0000000, 0.0000000, 18.7207544,
754 0.0000000, 21.5443469, 0.0000000, 24.4637810,
755 0.0000000, 27.4731418, 0.0000000, 30.5673509,
756 0.0000000, 33.7419917, 0.0000000, 36.9931811,
757 0.0000000, 64.0f, 1.0000000, 0.0000000,
758 1.0000000, 1.0000000, 1.0000000, 2.5198421,
759 1.0000000, 4.3267487, 1.0000000, 6.3496042,
760 1.0000000, 8.5498797, 1.0000000, 10.9027236,
761 1.0000000, 13.3905183, 1.0000000, 16.0000000,
762 1.0000000, 18.7207544, 1.0000000, 21.5443469,
763 1.0000000, 24.4637810, 1.0000000, 27.4731418,
764 1.0000000, 30.5673509, 1.0000000, 33.7419917,
765 1.0000000, 36.9931811, 1.0000000, 64.0f,
766 2.5198421, 0.0000000, 2.5198421, 1.0000000,
767 2.5198421, 2.5198421, 2.5198421, 4.3267487,
768 2.5198421, 6.3496042, 2.5198421, 8.5498797,
769 2.5198421, 10.9027236, 2.5198421, 13.3905183,
770 2.5198421, 16.0000000, 2.5198421, 18.7207544,
771 2.5198421, 21.5443469, 2.5198421, 24.4637810,
772 2.5198421, 27.4731418, 2.5198421, 30.5673509,
773 2.5198421, 33.7419917, 2.5198421, 36.9931811,
774 2.5198421, 64.0f, 4.3267487, 0.0000000,
775 4.3267487, 1.0000000, 4.3267487, 2.5198421,
776 4.3267487, 4.3267487, 4.3267487, 6.3496042,
777 4.3267487, 8.5498797, 4.3267487, 10.9027236,
778 4.3267487, 13.3905183, 4.3267487, 16.0000000,
779 4.3267487, 18.7207544, 4.3267487, 21.5443469,
780 4.3267487, 24.4637810, 4.3267487, 27.4731418,
781 4.3267487, 30.5673509, 4.3267487, 33.7419917,
782 4.3267487, 36.9931811, 4.3267487, 64.0f,
783 6.3496042, 0.0000000, 6.3496042, 1.0000000,
784 6.3496042, 2.5198421, 6.3496042, 4.3267487,
785 6.3496042, 6.3496042, 6.3496042, 8.5498797,
786 6.3496042, 10.9027236, 6.3496042, 13.3905183,
787 6.3496042, 16.0000000, 6.3496042, 18.7207544,
788 6.3496042, 21.5443469, 6.3496042, 24.4637810,
789 6.3496042, 27.4731418, 6.3496042, 30.5673509,
790 6.3496042, 33.7419917, 6.3496042, 36.9931811,
791 6.3496042, 64.0f, 8.5498797, 0.0000000,
792 8.5498797, 1.0000000, 8.5498797, 2.5198421,
793 8.5498797, 4.3267487, 8.5498797, 6.3496042,
794 8.5498797, 8.5498797, 8.5498797, 10.9027236,
795 8.5498797, 13.3905183, 8.5498797, 16.0000000,
796 8.5498797, 18.7207544, 8.5498797, 21.5443469,
797 8.5498797, 24.4637810, 8.5498797, 27.4731418,
798 8.5498797, 30.5673509, 8.5498797, 33.7419917,
799 8.5498797, 36.9931811, 8.5498797, 64.0f,
800 10.9027236, 0.0000000, 10.9027236, 1.0000000,
801 10.9027236, 2.5198421, 10.9027236, 4.3267487,
802 10.9027236, 6.3496042, 10.9027236, 8.5498797,
803 10.9027236, 10.9027236, 10.9027236, 13.3905183,
804 10.9027236, 16.0000000, 10.9027236, 18.7207544,
805 10.9027236, 21.5443469, 10.9027236, 24.4637810,
806 10.9027236, 27.4731418, 10.9027236, 30.5673509,
807 10.9027236, 33.7419917, 10.9027236, 36.9931811,
808 10.9027236, 64.0f, 13.3905183, 0.0000000,
809 13.3905183, 1.0000000, 13.3905183, 2.5198421,
810 13.3905183, 4.3267487, 13.3905183, 6.3496042,
811 13.3905183, 8.5498797, 13.3905183, 10.9027236,
812 13.3905183, 13.3905183, 13.3905183, 16.0000000,
813 13.3905183, 18.7207544, 13.3905183, 21.5443469,
814 13.3905183, 24.4637810, 13.3905183, 27.4731418,
815 13.3905183, 30.5673509, 13.3905183, 33.7419917,
816 13.3905183, 36.9931811, 13.3905183, 64.0f,
817 16.0000000, 0.0000000, 16.0000000, 1.0000000,
818 16.0000000, 2.5198421, 16.0000000, 4.3267487,
819 16.0000000, 6.3496042, 16.0000000, 8.5498797,
820 16.0000000, 10.9027236, 16.0000000, 13.3905183,
821 16.0000000, 16.0000000, 16.0000000, 18.7207544,
822 16.0000000, 21.5443469, 16.0000000, 24.4637810,
823 16.0000000, 27.4731418, 16.0000000, 30.5673509,
824 16.0000000, 33.7419917, 16.0000000, 36.9931811,
825 16.0000000, 64.0f, 18.7207544, 0.0000000,
826 18.7207544, 1.0000000, 18.7207544, 2.5198421,
827 18.7207544, 4.3267487, 18.7207544, 6.3496042,
828 18.7207544, 8.5498797, 18.7207544, 10.9027236,
829 18.7207544, 13.3905183, 18.7207544, 16.0000000,
830 18.7207544, 18.7207544, 18.7207544, 21.5443469,
831 18.7207544, 24.4637810, 18.7207544, 27.4731418,
832 18.7207544, 30.5673509, 18.7207544, 33.7419917,
833 18.7207544, 36.9931811, 18.7207544, 64.0f,
834 21.5443469, 0.0000000, 21.5443469, 1.0000000,
835 21.5443469, 2.5198421, 21.5443469, 4.3267487,
836 21.5443469, 6.3496042, 21.5443469, 8.5498797,
837 21.5443469, 10.9027236, 21.5443469, 13.3905183,
838 21.5443469, 16.0000000, 21.5443469, 18.7207544,
839 21.5443469, 21.5443469, 21.5443469, 24.4637810,
840 21.5443469, 27.4731418, 21.5443469, 30.5673509,
841 21.5443469, 33.7419917, 21.5443469, 36.9931811,
842 21.5443469, 64.0f, 24.4637810, 0.0000000,
843 24.4637810, 1.0000000, 24.4637810, 2.5198421,
844 24.4637810, 4.3267487, 24.4637810, 6.3496042,
845 24.4637810, 8.5498797, 24.4637810, 10.9027236,
846 24.4637810, 13.3905183, 24.4637810, 16.0000000,
847 24.4637810, 18.7207544, 24.4637810, 21.5443469,
848 24.4637810, 24.4637810, 24.4637810, 27.4731418,
849 24.4637810, 30.5673509, 24.4637810, 33.7419917,
850 24.4637810, 36.9931811, 24.4637810, 64.0f,
851 27.4731418, 0.0000000, 27.4731418, 1.0000000,
852 27.4731418, 2.5198421, 27.4731418, 4.3267487,
853 27.4731418, 6.3496042, 27.4731418, 8.5498797,
854 27.4731418, 10.9027236, 27.4731418, 13.3905183,
855 27.4731418, 16.0000000, 27.4731418, 18.7207544,
856 27.4731418, 21.5443469, 27.4731418, 24.4637810,
857 27.4731418, 27.4731418, 27.4731418, 30.5673509,
858 27.4731418, 33.7419917, 27.4731418, 36.9931811,
859 27.4731418, 64.0f, 30.5673509, 0.0000000,
860 30.5673509, 1.0000000, 30.5673509, 2.5198421,
861 30.5673509, 4.3267487, 30.5673509, 6.3496042,
862 30.5673509, 8.5498797, 30.5673509, 10.9027236,
863 30.5673509, 13.3905183, 30.5673509, 16.0000000,
864 30.5673509, 18.7207544, 30.5673509, 21.5443469,
865 30.5673509, 24.4637810, 30.5673509, 27.4731418,
866 30.5673509, 30.5673509, 30.5673509, 33.7419917,
867 30.5673509, 36.9931811, 30.5673509, 64.0f,
868 33.7419917, 0.0000000, 33.7419917, 1.0000000,
869 33.7419917, 2.5198421, 33.7419917, 4.3267487,
870 33.7419917, 6.3496042, 33.7419917, 8.5498797,
871 33.7419917, 10.9027236, 33.7419917, 13.3905183,
872 33.7419917, 16.0000000, 33.7419917, 18.7207544,
873 33.7419917, 21.5443469, 33.7419917, 24.4637810,
874 33.7419917, 27.4731418, 33.7419917, 30.5673509,
875 33.7419917, 33.7419917, 33.7419917, 36.9931811,
876 33.7419917, 64.0f, 36.9931811, 0.0000000,
877 36.9931811, 1.0000000, 36.9931811, 2.5198421,
878 36.9931811, 4.3267487, 36.9931811, 6.3496042,
879 36.9931811, 8.5498797, 36.9931811, 10.9027236,
880 36.9931811, 13.3905183, 36.9931811, 16.0000000,
881 36.9931811, 18.7207544, 36.9931811, 21.5443469,
882 36.9931811, 24.4637810, 36.9931811, 27.4731418,
883 36.9931811, 30.5673509, 36.9931811, 33.7419917,
884 36.9931811, 36.9931811, 36.9931811, 64.0f,
885 64.0f, 0.0000000, 64.0f, 1.0000000,
886 64.0f, 2.5198421, 64.0f, 4.3267487,
887 64.0f, 6.3496042, 64.0f, 8.5498797,
888 64.0f, 10.9027236, 64.0f, 13.3905183,
889 64.0f, 16.0000000, 64.0f, 18.7207544,
890 64.0f, 21.5443469, 64.0f, 24.4637810,
891 64.0f, 27.4731418, 64.0f, 30.5673509,
892 64.0f, 33.7419917, 64.0f, 36.9931811,
893 64.0f, 64.0f,
896 const float * const ff_aac_codebook_vectors[] = {
897 codebook_vector0, codebook_vector0, codebook_vector2,
898 codebook_vector2, codebook_vector4, codebook_vector4,
899 codebook_vector6, codebook_vector6, codebook_vector8,
900 codebook_vector8, codebook_vector10,
903 static const float codebook_vector0_vals[] = {
904 -1.0000000, 0.0000000, 1.0000000
908 * bits 0:1, 2:3, 4:5, 6:7 index into _vals array
909 * 8:11 number of non-zero values
910 * 12:15 bit mask of non-zero values
912 static const uint16_t codebook_vector02_idx[] = {
913 0x0000, 0x8140, 0x8180, 0x4110, 0xc250, 0xc290, 0x4120, 0xc260, 0xc2a0,
914 0x2104, 0xa244, 0xa284, 0x6214, 0xe354, 0xe394, 0x6224, 0xe364, 0xe3a4,
915 0x2108, 0xa248, 0xa288, 0x6218, 0xe358, 0xe398, 0x6228, 0xe368, 0xe3a8,
916 0x1101, 0x9241, 0x9281, 0x5211, 0xd351, 0xd391, 0x5221, 0xd361, 0xd3a1,
917 0x3205, 0xb345, 0xb385, 0x7315, 0xf455, 0xf495, 0x7325, 0xf465, 0xf4a5,
918 0x3209, 0xb349, 0xb389, 0x7319, 0xf459, 0xf499, 0x7329, 0xf469, 0xf4a9,
919 0x1102, 0x9242, 0x9282, 0x5212, 0xd352, 0xd392, 0x5222, 0xd362, 0xd3a2,
920 0x3206, 0xb346, 0xb386, 0x7316, 0xf456, 0xf496, 0x7326, 0xf466, 0xf4a6,
921 0x320a, 0xb34a, 0xb38a, 0x731a, 0xf45a, 0xf49a, 0x732a, 0xf46a, 0xf4aa,
924 static const float codebook_vector4_vals[] = {
925 -6.3496042, -4.3267487,
926 -2.5198421, -1.0000000,
927 0.0000000, 1.0000000,
928 2.5198421, 4.3267487,
929 6.3496042,
933 * bits 0:3, 4:7 index into _vals array
935 static const uint16_t codebook_vector4_idx[] = {
936 0x0000, 0x0010, 0x0020, 0x0030, 0x0040, 0x0050, 0x0060, 0x0070, 0x0080,
937 0x0001, 0x0011, 0x0021, 0x0031, 0x0041, 0x0051, 0x0061, 0x0071, 0x0081,
938 0x0002, 0x0012, 0x0022, 0x0032, 0x0042, 0x0052, 0x0062, 0x0072, 0x0082,
939 0x0003, 0x0013, 0x0023, 0x0033, 0x0043, 0x0053, 0x0063, 0x0073, 0x0083,
940 0x0004, 0x0014, 0x0024, 0x0034, 0x0044, 0x0054, 0x0064, 0x0074, 0x0084,
941 0x0005, 0x0015, 0x0025, 0x0035, 0x0045, 0x0055, 0x0065, 0x0075, 0x0085,
942 0x0006, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0076, 0x0086,
943 0x0007, 0x0017, 0x0027, 0x0037, 0x0047, 0x0057, 0x0067, 0x0077, 0x0087,
944 0x0008, 0x0018, 0x0028, 0x0038, 0x0048, 0x0058, 0x0068, 0x0078, 0x0088,
948 * bits 0:3, 4:7 index into _vals array
949 * 8:11 number of non-zero values
950 * 12:15 1: only second value non-zero
951 * 0: other cases
953 static const uint16_t codebook_vector6_idx[] = {
954 0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170,
955 0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261, 0x0271,
956 0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262, 0x0272,
957 0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263, 0x0273,
958 0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264, 0x0274,
959 0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265, 0x0275,
960 0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266, 0x0276,
961 0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267, 0x0277,
965 * bits 0:3, 4:7 index into _vals array
966 * 8:11 number of non-zero values
967 * 12:15 1: only second value non-zero
968 * 0: other cases
970 static const uint16_t codebook_vector8_idx[] = {
971 0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160,
972 0x0170, 0x0180, 0x0190, 0x01a0, 0x01b0, 0x01c0,
973 0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261,
974 0x0271, 0x0281, 0x0291, 0x02a1, 0x02b1, 0x02c1,
975 0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262,
976 0x0272, 0x0282, 0x0292, 0x02a2, 0x02b2, 0x02c2,
977 0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263,
978 0x0273, 0x0283, 0x0293, 0x02a3, 0x02b3, 0x02c3,
979 0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264,
980 0x0274, 0x0284, 0x0294, 0x02a4, 0x02b4, 0x02c4,
981 0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265,
982 0x0275, 0x0285, 0x0295, 0x02a5, 0x02b5, 0x02c5,
983 0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266,
984 0x0276, 0x0286, 0x0296, 0x02a6, 0x02b6, 0x02c6,
985 0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267,
986 0x0277, 0x0287, 0x0297, 0x02a7, 0x02b7, 0x02c7,
987 0x1108, 0x0218, 0x0228, 0x0238, 0x0248, 0x0258, 0x0268,
988 0x0278, 0x0288, 0x0298, 0x02a8, 0x02b8, 0x02c8,
989 0x1109, 0x0219, 0x0229, 0x0239, 0x0249, 0x0259, 0x0269,
990 0x0279, 0x0289, 0x0299, 0x02a9, 0x02b9, 0x02c9,
991 0x110a, 0x021a, 0x022a, 0x023a, 0x024a, 0x025a, 0x026a,
992 0x027a, 0x028a, 0x029a, 0x02aa, 0x02ba, 0x02ca,
993 0x110b, 0x021b, 0x022b, 0x023b, 0x024b, 0x025b, 0x026b,
994 0x027b, 0x028b, 0x029b, 0x02ab, 0x02bb, 0x02cb,
995 0x110c, 0x021c, 0x022c, 0x023c, 0x024c, 0x025c, 0x026c,
996 0x027c, 0x028c, 0x029c, 0x02ac, 0x02bc, 0x02cc,
999 static const float codebook_vector10_vals[] = {
1000 0.0000000, 1.0000000,
1001 2.5198421, 4.3267487,
1002 6.3496042, 8.5498797,
1003 10.9027236, 13.3905183,
1004 16.0000000, 18.7207544,
1005 21.5443469, 24.4637810,
1006 27.4731418, 30.5673509,
1007 33.7419917, 36.9931811,
1011 * bits 0:3, 4:7 index into _vals array
1012 * 8:9 bit mask of escape-coded entries
1013 * 12:15 number of non-zero values
1015 static const uint16_t codebook_vector10_idx[] = {
1016 0x0000, 0x1010, 0x1020, 0x1030, 0x1040, 0x1050, 0x1060, 0x1070,
1017 0x1080, 0x1090, 0x10a0, 0x10b0, 0x10c0, 0x10d0, 0x10e0, 0x10f0, 0x1200,
1018 0x1001, 0x2011, 0x2021, 0x2031, 0x2041, 0x2051, 0x2061, 0x2071,
1019 0x2081, 0x2091, 0x20a1, 0x20b1, 0x20c1, 0x20d1, 0x20e1, 0x20f1, 0x2201,
1020 0x1002, 0x2012, 0x2022, 0x2032, 0x2042, 0x2052, 0x2062, 0x2072,
1021 0x2082, 0x2092, 0x20a2, 0x20b2, 0x20c2, 0x20d2, 0x20e2, 0x20f2, 0x2202,
1022 0x1003, 0x2013, 0x2023, 0x2033, 0x2043, 0x2053, 0x2063, 0x2073,
1023 0x2083, 0x2093, 0x20a3, 0x20b3, 0x20c3, 0x20d3, 0x20e3, 0x20f3, 0x2203,
1024 0x1004, 0x2014, 0x2024, 0x2034, 0x2044, 0x2054, 0x2064, 0x2074,
1025 0x2084, 0x2094, 0x20a4, 0x20b4, 0x20c4, 0x20d4, 0x20e4, 0x20f4, 0x2204,
1026 0x1005, 0x2015, 0x2025, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075,
1027 0x2085, 0x2095, 0x20a5, 0x20b5, 0x20c5, 0x20d5, 0x20e5, 0x20f5, 0x2205,
1028 0x1006, 0x2016, 0x2026, 0x2036, 0x2046, 0x2056, 0x2066, 0x2076,
1029 0x2086, 0x2096, 0x20a6, 0x20b6, 0x20c6, 0x20d6, 0x20e6, 0x20f6, 0x2206,
1030 0x1007, 0x2017, 0x2027, 0x2037, 0x2047, 0x2057, 0x2067, 0x2077,
1031 0x2087, 0x2097, 0x20a7, 0x20b7, 0x20c7, 0x20d7, 0x20e7, 0x20f7, 0x2207,
1032 0x1008, 0x2018, 0x2028, 0x2038, 0x2048, 0x2058, 0x2068, 0x2078,
1033 0x2088, 0x2098, 0x20a8, 0x20b8, 0x20c8, 0x20d8, 0x20e8, 0x20f8, 0x2208,
1034 0x1009, 0x2019, 0x2029, 0x2039, 0x2049, 0x2059, 0x2069, 0x2079,
1035 0x2089, 0x2099, 0x20a9, 0x20b9, 0x20c9, 0x20d9, 0x20e9, 0x20f9, 0x2209,
1036 0x100a, 0x201a, 0x202a, 0x203a, 0x204a, 0x205a, 0x206a, 0x207a,
1037 0x208a, 0x209a, 0x20aa, 0x20ba, 0x20ca, 0x20da, 0x20ea, 0x20fa, 0x220a,
1038 0x100b, 0x201b, 0x202b, 0x203b, 0x204b, 0x205b, 0x206b, 0x207b,
1039 0x208b, 0x209b, 0x20ab, 0x20bb, 0x20cb, 0x20db, 0x20eb, 0x20fb, 0x220b,
1040 0x100c, 0x201c, 0x202c, 0x203c, 0x204c, 0x205c, 0x206c, 0x207c,
1041 0x208c, 0x209c, 0x20ac, 0x20bc, 0x20cc, 0x20dc, 0x20ec, 0x20fc, 0x220c,
1042 0x100d, 0x201d, 0x202d, 0x203d, 0x204d, 0x205d, 0x206d, 0x207d,
1043 0x208d, 0x209d, 0x20ad, 0x20bd, 0x20cd, 0x20dd, 0x20ed, 0x20fd, 0x220d,
1044 0x100e, 0x201e, 0x202e, 0x203e, 0x204e, 0x205e, 0x206e, 0x207e,
1045 0x208e, 0x209e, 0x20ae, 0x20be, 0x20ce, 0x20de, 0x20ee, 0x20fe, 0x220e,
1046 0x100f, 0x201f, 0x202f, 0x203f, 0x204f, 0x205f, 0x206f, 0x207f,
1047 0x208f, 0x209f, 0x20af, 0x20bf, 0x20cf, 0x20df, 0x20ef, 0x20ff, 0x220f,
1048 0x1100, 0x2110, 0x2120, 0x2130, 0x2140, 0x2150, 0x2160, 0x2170,
1049 0x2180, 0x2190, 0x21a0, 0x21b0, 0x21c0, 0x21d0, 0x21e0, 0x21f0, 0x2300,
1052 const float *const ff_aac_codebook_vector_vals[] = {
1053 codebook_vector0_vals, codebook_vector0_vals,
1054 codebook_vector10_vals, codebook_vector10_vals,
1055 codebook_vector4_vals, codebook_vector4_vals,
1056 codebook_vector10_vals, codebook_vector10_vals,
1057 codebook_vector10_vals, codebook_vector10_vals,
1058 codebook_vector10_vals,
1061 const uint16_t *const ff_aac_codebook_vector_idx[] = {
1062 codebook_vector02_idx, codebook_vector02_idx,
1063 codebook_vector02_idx, codebook_vector02_idx,
1064 codebook_vector4_idx, codebook_vector4_idx,
1065 codebook_vector6_idx, codebook_vector6_idx,
1066 codebook_vector8_idx, codebook_vector8_idx,
1067 codebook_vector10_idx,
1070 /* @name swb_offsets
1071 * Sample offset into the window indicating the beginning of a scalefactor
1072 * window band
1074 * scalefactor window band - term for scalefactor bands within a window,
1075 * given in Table 4.110 to Table 4.128.
1077 * scalefactor band - a set of spectral coefficients which are scaled by one
1078 * scalefactor. In case of EIGHT_SHORT_SEQUENCE and grouping a scalefactor band
1079 * may contain several scalefactor window bands of corresponding frequency. For
1080 * all other window_sequences scalefactor bands and scalefactor window bands are
1081 * identical.
1082 * @{
1085 static const uint16_t swb_offset_1024_96[] = {
1086 0, 4, 8, 12, 16, 20, 24, 28,
1087 32, 36, 40, 44, 48, 52, 56, 64,
1088 72, 80, 88, 96, 108, 120, 132, 144,
1089 156, 172, 188, 212, 240, 276, 320, 384,
1090 448, 512, 576, 640, 704, 768, 832, 896,
1091 960, 1024
1094 static const uint16_t swb_offset_128_96[] = {
1095 0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 128
1098 static const uint16_t swb_offset_1024_64[] = {
1099 0, 4, 8, 12, 16, 20, 24, 28,
1100 32, 36, 40, 44, 48, 52, 56, 64,
1101 72, 80, 88, 100, 112, 124, 140, 156,
1102 172, 192, 216, 240, 268, 304, 344, 384,
1103 424, 464, 504, 544, 584, 624, 664, 704,
1104 744, 784, 824, 864, 904, 944, 984, 1024
1107 static const uint16_t swb_offset_1024_48[] = {
1108 0, 4, 8, 12, 16, 20, 24, 28,
1109 32, 36, 40, 48, 56, 64, 72, 80,
1110 88, 96, 108, 120, 132, 144, 160, 176,
1111 196, 216, 240, 264, 292, 320, 352, 384,
1112 416, 448, 480, 512, 544, 576, 608, 640,
1113 672, 704, 736, 768, 800, 832, 864, 896,
1114 928, 1024
1117 static const uint16_t swb_offset_128_48[] = {
1118 0, 4, 8, 12, 16, 20, 28, 36,
1119 44, 56, 68, 80, 96, 112, 128
1122 static const uint16_t swb_offset_1024_32[] = {
1123 0, 4, 8, 12, 16, 20, 24, 28,
1124 32, 36, 40, 48, 56, 64, 72, 80,
1125 88, 96, 108, 120, 132, 144, 160, 176,
1126 196, 216, 240, 264, 292, 320, 352, 384,
1127 416, 448, 480, 512, 544, 576, 608, 640,
1128 672, 704, 736, 768, 800, 832, 864, 896,
1129 928, 960, 992, 1024
1132 static const uint16_t swb_offset_1024_24[] = {
1133 0, 4, 8, 12, 16, 20, 24, 28,
1134 32, 36, 40, 44, 52, 60, 68, 76,
1135 84, 92, 100, 108, 116, 124, 136, 148,
1136 160, 172, 188, 204, 220, 240, 260, 284,
1137 308, 336, 364, 396, 432, 468, 508, 552,
1138 600, 652, 704, 768, 832, 896, 960, 1024
1141 static const uint16_t swb_offset_128_24[] = {
1142 0, 4, 8, 12, 16, 20, 24, 28,
1143 36, 44, 52, 64, 76, 92, 108, 128
1146 static const uint16_t swb_offset_1024_16[] = {
1147 0, 8, 16, 24, 32, 40, 48, 56,
1148 64, 72, 80, 88, 100, 112, 124, 136,
1149 148, 160, 172, 184, 196, 212, 228, 244,
1150 260, 280, 300, 320, 344, 368, 396, 424,
1151 456, 492, 532, 572, 616, 664, 716, 772,
1152 832, 896, 960, 1024
1155 static const uint16_t swb_offset_128_16[] = {
1156 0, 4, 8, 12, 16, 20, 24, 28,
1157 32, 40, 48, 60, 72, 88, 108, 128
1160 static const uint16_t swb_offset_1024_8[] = {
1161 0, 12, 24, 36, 48, 60, 72, 84,
1162 96, 108, 120, 132, 144, 156, 172, 188,
1163 204, 220, 236, 252, 268, 288, 308, 328,
1164 348, 372, 396, 420, 448, 476, 508, 544,
1165 580, 620, 664, 712, 764, 820, 880, 944,
1166 1024
1169 static const uint16_t swb_offset_128_8[] = {
1170 0, 4, 8, 12, 16, 20, 24, 28,
1171 36, 44, 52, 60, 72, 88, 108, 128
1174 const uint16_t * const ff_swb_offset_1024[] = {
1175 swb_offset_1024_96, swb_offset_1024_96, swb_offset_1024_64,
1176 swb_offset_1024_48, swb_offset_1024_48, swb_offset_1024_32,
1177 swb_offset_1024_24, swb_offset_1024_24, swb_offset_1024_16,
1178 swb_offset_1024_16, swb_offset_1024_16, swb_offset_1024_8,
1179 swb_offset_1024_8
1182 const uint16_t * const ff_swb_offset_128[] = {
1183 /* The last entry on the following row is swb_offset_128_64 but is a
1184 duplicate of swb_offset_128_96. */
1185 swb_offset_128_96, swb_offset_128_96, swb_offset_128_96,
1186 swb_offset_128_48, swb_offset_128_48, swb_offset_128_48,
1187 swb_offset_128_24, swb_offset_128_24, swb_offset_128_16,
1188 swb_offset_128_16, swb_offset_128_16, swb_offset_128_8,
1189 swb_offset_128_8
1192 // @}
1194 /* @name ff_tns_max_bands
1195 * The maximum number of scalefactor bands on which TNS can operate for the long
1196 * and short transforms respectively. The index to these tables is related to
1197 * the sample rate of the audio.
1198 * @{
1200 const uint8_t ff_tns_max_bands_1024[] = {
1201 31, 31, 34, 40, 42, 51, 46, 46, 42, 42, 42, 39, 39
1204 const uint8_t ff_tns_max_bands_128[] = {
1205 9, 9, 10, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14
1207 // @}