Statistics
| Branch: | Revision:

ffmpeg / libavcodec / aactab.c @ 848a5815

History | View | Annotate | Download (47.4 KB)

1
/*
2
 * AAC data
3
 * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4
 * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
5
 *
6
 * This file is part of FFmpeg.
7
 *
8
 * FFmpeg is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU Lesser General Public
10
 * License as published by the Free Software Foundation; either
11
 * version 2.1 of the License, or (at your option) any later version.
12
 *
13
 * FFmpeg is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
 * Lesser General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Lesser General Public
19
 * License along with FFmpeg; if not, write to the Free Software
20
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
 */
22

    
23
/**
24
 * @file aactab.c
25
 * AAC data
26
 * @author Oded Shimon  ( ods15 ods15 dyndns org )
27
 * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
28
 */
29

    
30
#include "libavutil/mem.h"
31
#include "aac.h"
32

    
33
#include <stdint.h>
34

    
35
const uint8_t ff_aac_num_swb_1024[] = {
36
    41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40
37
};
38

    
39
const uint8_t ff_aac_num_swb_128[] = {
40
    12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15
41
};
42

    
43
const uint32_t ff_aac_scalefactor_code[121] = {
44
    0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6,
45
    0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7,
46
    0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0,
47
    0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7,
48
    0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5,
49
    0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7,
50
    0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a,
51
    0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b,
52
    0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9,
53
    0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5,
54
    0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4,
55
    0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd,
56
    0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2,
57
    0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0,
58
    0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4,
59
    0x7fff3,
60
};
61

    
62
const uint8_t ff_aac_scalefactor_bits[121] = {
63
    18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
64
    19, 19, 19, 18, 19, 18, 17, 17, 16, 17, 16, 16, 16, 16, 15, 15,
65
    14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11, 12, 11, 10, 10,
66
    10,  9,  9,  8,  8,  8,  7,  6,  6,  5,  4,  3,  1,  4,  4,  5,
67
     6,  6,  7,  7,  8,  8,  9,  9, 10, 10, 10, 11, 11, 11, 11, 12,
68
    12, 13, 13, 13, 14, 14, 16, 15, 16, 15, 18, 19, 19, 19, 19, 19,
69
    19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
70
    19, 19, 19, 19, 19, 19, 19, 19, 19,
71
};
72

    
73
static const uint16_t codes1[81] = {
74
    0x7f8, 0x1f1, 0x7fd, 0x3f5, 0x068, 0x3f0, 0x7f7, 0x1ec,
75
    0x7f5, 0x3f1, 0x072, 0x3f4, 0x074, 0x011, 0x076, 0x1eb,
76
    0x06c, 0x3f6, 0x7fc, 0x1e1, 0x7f1, 0x1f0, 0x061, 0x1f6,
77
    0x7f2, 0x1ea, 0x7fb, 0x1f2, 0x069, 0x1ed, 0x077, 0x017,
78
    0x06f, 0x1e6, 0x064, 0x1e5, 0x067, 0x015, 0x062, 0x012,
79
    0x000, 0x014, 0x065, 0x016, 0x06d, 0x1e9, 0x063, 0x1e4,
80
    0x06b, 0x013, 0x071, 0x1e3, 0x070, 0x1f3, 0x7fe, 0x1e7,
81
    0x7f3, 0x1ef, 0x060, 0x1ee, 0x7f0, 0x1e2, 0x7fa, 0x3f3,
82
    0x06a, 0x1e8, 0x075, 0x010, 0x073, 0x1f4, 0x06e, 0x3f7,
83
    0x7f6, 0x1e0, 0x7f9, 0x3f2, 0x066, 0x1f5, 0x7ff, 0x1f7,
84
    0x7f4,
85
};
86

    
87
static const uint8_t bits1[81] = {
88
    11,  9, 11, 10,  7, 10, 11,  9, 11, 10,  7, 10,  7,  5,  7,  9,
89
     7, 10, 11,  9, 11,  9,  7,  9, 11,  9, 11,  9,  7,  9,  7,  5,
90
     7,  9,  7,  9,  7,  5,  7,  5,  1,  5,  7,  5,  7,  9,  7,  9,
91
     7,  5,  7,  9,  7,  9, 11,  9, 11,  9,  7,  9, 11,  9, 11, 10,
92
     7,  9,  7,  5,  7,  9,  7, 10, 11,  9, 11, 10,  7,  9, 11,  9,
93
    11,
94
};
95

    
96
static const uint16_t codes2[81] = {
97
    0x1f3, 0x06f, 0x1fd, 0x0eb, 0x023, 0x0ea, 0x1f7, 0x0e8,
98
    0x1fa, 0x0f2, 0x02d, 0x070, 0x020, 0x006, 0x02b, 0x06e,
99
    0x028, 0x0e9, 0x1f9, 0x066, 0x0f8, 0x0e7, 0x01b, 0x0f1,
100
    0x1f4, 0x06b, 0x1f5, 0x0ec, 0x02a, 0x06c, 0x02c, 0x00a,
101
    0x027, 0x067, 0x01a, 0x0f5, 0x024, 0x008, 0x01f, 0x009,
102
    0x000, 0x007, 0x01d, 0x00b, 0x030, 0x0ef, 0x01c, 0x064,
103
    0x01e, 0x00c, 0x029, 0x0f3, 0x02f, 0x0f0, 0x1fc, 0x071,
104
    0x1f2, 0x0f4, 0x021, 0x0e6, 0x0f7, 0x068, 0x1f8, 0x0ee,
105
    0x022, 0x065, 0x031, 0x002, 0x026, 0x0ed, 0x025, 0x06a,
106
    0x1fb, 0x072, 0x1fe, 0x069, 0x02e, 0x0f6, 0x1ff, 0x06d,
107
    0x1f6,
108
};
109

    
110
static const uint8_t bits2[81] = {
111
    9, 7, 9, 8, 6, 8, 9, 8, 9, 8, 6, 7, 6, 5, 6, 7,
112
    6, 8, 9, 7, 8, 8, 6, 8, 9, 7, 9, 8, 6, 7, 6, 5,
113
    6, 7, 6, 8, 6, 5, 6, 5, 3, 5, 6, 5, 6, 8, 6, 7,
114
    6, 5, 6, 8, 6, 8, 9, 7, 9, 8, 6, 8, 8, 7, 9, 8,
115
    6, 7, 6, 4, 6, 8, 6, 7, 9, 7, 9, 7, 6, 8, 9, 7,
116
    9,
117
};
118

    
119
static const uint16_t codes3[81] = {
120
    0x0000, 0x0009, 0x00ef, 0x000b, 0x0019, 0x00f0, 0x01eb, 0x01e6,
121
    0x03f2, 0x000a, 0x0035, 0x01ef, 0x0034, 0x0037, 0x01e9, 0x01ed,
122
    0x01e7, 0x03f3, 0x01ee, 0x03ed, 0x1ffa, 0x01ec, 0x01f2, 0x07f9,
123
    0x07f8, 0x03f8, 0x0ff8, 0x0008, 0x0038, 0x03f6, 0x0036, 0x0075,
124
    0x03f1, 0x03eb, 0x03ec, 0x0ff4, 0x0018, 0x0076, 0x07f4, 0x0039,
125
    0x0074, 0x03ef, 0x01f3, 0x01f4, 0x07f6, 0x01e8, 0x03ea, 0x1ffc,
126
    0x00f2, 0x01f1, 0x0ffb, 0x03f5, 0x07f3, 0x0ffc, 0x00ee, 0x03f7,
127
    0x7ffe, 0x01f0, 0x07f5, 0x7ffd, 0x1ffb, 0x3ffa, 0xffff, 0x00f1,
128
    0x03f0, 0x3ffc, 0x01ea, 0x03ee, 0x3ffb, 0x0ff6, 0x0ffa, 0x7ffc,
129
    0x07f2, 0x0ff5, 0xfffe, 0x03f4, 0x07f7, 0x7ffb, 0x0ff7, 0x0ff9,
130
    0x7ffa,
131
};
132

    
133
static const uint8_t bits3[81] = {
134
     1,  4,  8,  4,  5,  8,  9,  9, 10,  4,  6,  9,  6,  6,  9,  9,
135
     9, 10,  9, 10, 13,  9,  9, 11, 11, 10, 12,  4,  6, 10,  6,  7,
136
    10, 10, 10, 12,  5,  7, 11,  6,  7, 10,  9,  9, 11,  9, 10, 13,
137
     8,  9, 12, 10, 11, 12,  8, 10, 15,  9, 11, 15, 13, 14, 16,  8,
138
    10, 14,  9, 10, 14, 12, 12, 15, 11, 12, 16, 10, 11, 15, 12, 12,
139
    15,
140
};
141

    
142
static const uint16_t codes4[81] = {
143
    0x007, 0x016, 0x0f6, 0x018, 0x008, 0x0ef, 0x1ef, 0x0f3,
144
    0x7f8, 0x019, 0x017, 0x0ed, 0x015, 0x001, 0x0e2, 0x0f0,
145
    0x070, 0x3f0, 0x1ee, 0x0f1, 0x7fa, 0x0ee, 0x0e4, 0x3f2,
146
    0x7f6, 0x3ef, 0x7fd, 0x005, 0x014, 0x0f2, 0x009, 0x004,
147
    0x0e5, 0x0f4, 0x0e8, 0x3f4, 0x006, 0x002, 0x0e7, 0x003,
148
    0x000, 0x06b, 0x0e3, 0x069, 0x1f3, 0x0eb, 0x0e6, 0x3f6,
149
    0x06e, 0x06a, 0x1f4, 0x3ec, 0x1f0, 0x3f9, 0x0f5, 0x0ec,
150
    0x7fb, 0x0ea, 0x06f, 0x3f7, 0x7f9, 0x3f3, 0xfff, 0x0e9,
151
    0x06d, 0x3f8, 0x06c, 0x068, 0x1f5, 0x3ee, 0x1f2, 0x7f4,
152
    0x7f7, 0x3f1, 0xffe, 0x3ed, 0x1f1, 0x7f5, 0x7fe, 0x3f5,
153
    0x7fc,
154
};
155

    
156
static const uint8_t bits4[81] = {
157
     4,  5,  8,  5,  4,  8,  9,  8, 11,  5,  5,  8,  5,  4,  8,  8,
158
     7, 10,  9,  8, 11,  8,  8, 10, 11, 10, 11,  4,  5,  8,  4,  4,
159
     8,  8,  8, 10,  4,  4,  8,  4,  4,  7,  8,  7,  9,  8,  8, 10,
160
     7,  7,  9, 10,  9, 10,  8,  8, 11,  8,  7, 10, 11, 10, 12,  8,
161
     7, 10,  7,  7,  9, 10,  9, 11, 11, 10, 12, 10,  9, 11, 11, 10,
162
    11,
163
};
164

    
165
static const uint16_t codes5[81] = {
166
    0x1fff, 0x0ff7, 0x07f4, 0x07e8, 0x03f1, 0x07ee, 0x07f9, 0x0ff8,
167
    0x1ffd, 0x0ffd, 0x07f1, 0x03e8, 0x01e8, 0x00f0, 0x01ec, 0x03ee,
168
    0x07f2, 0x0ffa, 0x0ff4, 0x03ef, 0x01f2, 0x00e8, 0x0070, 0x00ec,
169
    0x01f0, 0x03ea, 0x07f3, 0x07eb, 0x01eb, 0x00ea, 0x001a, 0x0008,
170
    0x0019, 0x00ee, 0x01ef, 0x07ed, 0x03f0, 0x00f2, 0x0073, 0x000b,
171
    0x0000, 0x000a, 0x0071, 0x00f3, 0x07e9, 0x07ef, 0x01ee, 0x00ef,
172
    0x0018, 0x0009, 0x001b, 0x00eb, 0x01e9, 0x07ec, 0x07f6, 0x03eb,
173
    0x01f3, 0x00ed, 0x0072, 0x00e9, 0x01f1, 0x03ed, 0x07f7, 0x0ff6,
174
    0x07f0, 0x03e9, 0x01ed, 0x00f1, 0x01ea, 0x03ec, 0x07f8, 0x0ff9,
175
    0x1ffc, 0x0ffc, 0x0ff5, 0x07ea, 0x03f3, 0x03f2, 0x07f5, 0x0ffb,
176
    0x1ffe,
177
};
178

    
179
static const uint8_t bits5[81] = {
180
    13, 12, 11, 11, 10, 11, 11, 12, 13, 12, 11, 10,  9,  8,  9, 10,
181
    11, 12, 12, 10,  9,  8,  7,  8,  9, 10, 11, 11,  9,  8,  5,  4,
182
     5,  8,  9, 11, 10,  8,  7,  4,  1,  4,  7,  8, 11, 11,  9,  8,
183
     5,  4,  5,  8,  9, 11, 11, 10,  9,  8,  7,  8,  9, 10, 11, 12,
184
    11, 10,  9,  8,  9, 10, 11, 12, 13, 12, 12, 11, 10, 10, 11, 12,
185
    13,
186
};
187

    
188
static const uint16_t codes6[81] = {
189
    0x7fe, 0x3fd, 0x1f1, 0x1eb, 0x1f4, 0x1ea, 0x1f0, 0x3fc,
190
    0x7fd, 0x3f6, 0x1e5, 0x0ea, 0x06c, 0x071, 0x068, 0x0f0,
191
    0x1e6, 0x3f7, 0x1f3, 0x0ef, 0x032, 0x027, 0x028, 0x026,
192
    0x031, 0x0eb, 0x1f7, 0x1e8, 0x06f, 0x02e, 0x008, 0x004,
193
    0x006, 0x029, 0x06b, 0x1ee, 0x1ef, 0x072, 0x02d, 0x002,
194
    0x000, 0x003, 0x02f, 0x073, 0x1fa, 0x1e7, 0x06e, 0x02b,
195
    0x007, 0x001, 0x005, 0x02c, 0x06d, 0x1ec, 0x1f9, 0x0ee,
196
    0x030, 0x024, 0x02a, 0x025, 0x033, 0x0ec, 0x1f2, 0x3f8,
197
    0x1e4, 0x0ed, 0x06a, 0x070, 0x069, 0x074, 0x0f1, 0x3fa,
198
    0x7ff, 0x3f9, 0x1f6, 0x1ed, 0x1f8, 0x1e9, 0x1f5, 0x3fb,
199
    0x7fc,
200
};
201

    
202
static const uint8_t bits6[81] = {
203
    11, 10,  9,  9,  9,  9,  9, 10, 11, 10,  9,  8,  7,  7,  7,  8,
204
     9, 10,  9,  8,  6,  6,  6,  6,  6,  8,  9,  9,  7,  6,  4,  4,
205
     4,  6,  7,  9,  9,  7,  6,  4,  4,  4,  6,  7,  9,  9,  7,  6,
206
     4,  4,  4,  6,  7,  9,  9,  8,  6,  6,  6,  6,  6,  8,  9, 10,
207
     9,  8,  7,  7,  7,  7,  8, 10, 11, 10,  9,  9,  9,  9,  9, 10,
208
    11,
209
};
210

    
211
static const uint16_t codes7[64] = {
212
    0x000, 0x005, 0x037, 0x074, 0x0f2, 0x1eb, 0x3ed, 0x7f7,
213
    0x004, 0x00c, 0x035, 0x071, 0x0ec, 0x0ee, 0x1ee, 0x1f5,
214
    0x036, 0x034, 0x072, 0x0ea, 0x0f1, 0x1e9, 0x1f3, 0x3f5,
215
    0x073, 0x070, 0x0eb, 0x0f0, 0x1f1, 0x1f0, 0x3ec, 0x3fa,
216
    0x0f3, 0x0ed, 0x1e8, 0x1ef, 0x3ef, 0x3f1, 0x3f9, 0x7fb,
217
    0x1ed, 0x0ef, 0x1ea, 0x1f2, 0x3f3, 0x3f8, 0x7f9, 0x7fc,
218
    0x3ee, 0x1ec, 0x1f4, 0x3f4, 0x3f7, 0x7f8, 0xffd, 0xffe,
219
    0x7f6, 0x3f0, 0x3f2, 0x3f6, 0x7fa, 0x7fd, 0xffc, 0xfff,
220
};
221

    
222
static const uint8_t bits7[64] = {
223
     1,  3,  6,  7,  8,  9, 10, 11,  3,  4,  6,  7,  8,  8,  9,  9,
224
     6,  6,  7,  8,  8,  9,  9, 10,  7,  7,  8,  8,  9,  9, 10, 10,
225
     8,  8,  9,  9, 10, 10, 10, 11,  9,  8,  9,  9, 10, 10, 11, 11,
226
    10,  9,  9, 10, 10, 11, 12, 12, 11, 10, 10, 10, 11, 11, 12, 12,
227
};
228

    
229
static const uint16_t codes8[64] = {
230
    0x00e, 0x005, 0x010, 0x030, 0x06f, 0x0f1, 0x1fa, 0x3fe,
231
    0x003, 0x000, 0x004, 0x012, 0x02c, 0x06a, 0x075, 0x0f8,
232
    0x00f, 0x002, 0x006, 0x014, 0x02e, 0x069, 0x072, 0x0f5,
233
    0x02f, 0x011, 0x013, 0x02a, 0x032, 0x06c, 0x0ec, 0x0fa,
234
    0x071, 0x02b, 0x02d, 0x031, 0x06d, 0x070, 0x0f2, 0x1f9,
235
    0x0ef, 0x068, 0x033, 0x06b, 0x06e, 0x0ee, 0x0f9, 0x3fc,
236
    0x1f8, 0x074, 0x073, 0x0ed, 0x0f0, 0x0f6, 0x1f6, 0x1fd,
237
    0x3fd, 0x0f3, 0x0f4, 0x0f7, 0x1f7, 0x1fb, 0x1fc, 0x3ff,
238
};
239

    
240
static const uint8_t bits8[64] = {
241
     5,  4,  5,  6,  7,  8,  9, 10,  4,  3,  4,  5,  6,  7,  7,  8,
242
     5,  4,  4,  5,  6,  7,  7,  8,  6,  5,  5,  6,  6,  7,  8,  8,
243
     7,  6,  6,  6,  7,  7,  8,  9,  8,  7,  6,  7,  7,  8,  8, 10,
244
     9,  7,  7,  8,  8,  8,  9,  9, 10,  8,  8,  8,  9,  9,  9, 10,
245
};
246

    
247
static const uint16_t codes9[169] = {
248
    0x0000, 0x0005, 0x0037, 0x00e7, 0x01de, 0x03ce, 0x03d9, 0x07c8,
249
    0x07cd, 0x0fc8, 0x0fdd, 0x1fe4, 0x1fec, 0x0004, 0x000c, 0x0035,
250
    0x0072, 0x00ea, 0x00ed, 0x01e2, 0x03d1, 0x03d3, 0x03e0, 0x07d8,
251
    0x0fcf, 0x0fd5, 0x0036, 0x0034, 0x0071, 0x00e8, 0x00ec, 0x01e1,
252
    0x03cf, 0x03dd, 0x03db, 0x07d0, 0x0fc7, 0x0fd4, 0x0fe4, 0x00e6,
253
    0x0070, 0x00e9, 0x01dd, 0x01e3, 0x03d2, 0x03dc, 0x07cc, 0x07ca,
254
    0x07de, 0x0fd8, 0x0fea, 0x1fdb, 0x01df, 0x00eb, 0x01dc, 0x01e6,
255
    0x03d5, 0x03de, 0x07cb, 0x07dd, 0x07dc, 0x0fcd, 0x0fe2, 0x0fe7,
256
    0x1fe1, 0x03d0, 0x01e0, 0x01e4, 0x03d6, 0x07c5, 0x07d1, 0x07db,
257
    0x0fd2, 0x07e0, 0x0fd9, 0x0feb, 0x1fe3, 0x1fe9, 0x07c4, 0x01e5,
258
    0x03d7, 0x07c6, 0x07cf, 0x07da, 0x0fcb, 0x0fda, 0x0fe3, 0x0fe9,
259
    0x1fe6, 0x1ff3, 0x1ff7, 0x07d3, 0x03d8, 0x03e1, 0x07d4, 0x07d9,
260
    0x0fd3, 0x0fde, 0x1fdd, 0x1fd9, 0x1fe2, 0x1fea, 0x1ff1, 0x1ff6,
261
    0x07d2, 0x03d4, 0x03da, 0x07c7, 0x07d7, 0x07e2, 0x0fce, 0x0fdb,
262
    0x1fd8, 0x1fee, 0x3ff0, 0x1ff4, 0x3ff2, 0x07e1, 0x03df, 0x07c9,
263
    0x07d6, 0x0fca, 0x0fd0, 0x0fe5, 0x0fe6, 0x1feb, 0x1fef, 0x3ff3,
264
    0x3ff4, 0x3ff5, 0x0fe0, 0x07ce, 0x07d5, 0x0fc6, 0x0fd1, 0x0fe1,
265
    0x1fe0, 0x1fe8, 0x1ff0, 0x3ff1, 0x3ff8, 0x3ff6, 0x7ffc, 0x0fe8,
266
    0x07df, 0x0fc9, 0x0fd7, 0x0fdc, 0x1fdc, 0x1fdf, 0x1fed, 0x1ff5,
267
    0x3ff9, 0x3ffb, 0x7ffd, 0x7ffe, 0x1fe7, 0x0fcc, 0x0fd6, 0x0fdf,
268
    0x1fde, 0x1fda, 0x1fe5, 0x1ff2, 0x3ffa, 0x3ff7, 0x3ffc, 0x3ffd,
269
    0x7fff,
270
};
271

    
272
static const uint8_t bits9[169] = {
273
     1,  3,  6,  8,  9, 10, 10, 11, 11, 12, 12, 13, 13,  3,  4,  6,
274
     7,  8,  8,  9, 10, 10, 10, 11, 12, 12,  6,  6,  7,  8,  8,  9,
275
    10, 10, 10, 11, 12, 12, 12,  8,  7,  8,  9,  9, 10, 10, 11, 11,
276
    11, 12, 12, 13,  9,  8,  9,  9, 10, 10, 11, 11, 11, 12, 12, 12,
277
    13, 10,  9,  9, 10, 11, 11, 11, 12, 11, 12, 12, 13, 13, 11,  9,
278
    10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 11, 10, 10, 11, 11,
279
    12, 12, 13, 13, 13, 13, 13, 13, 11, 10, 10, 11, 11, 11, 12, 12,
280
    13, 13, 14, 13, 14, 11, 10, 11, 11, 12, 12, 12, 12, 13, 13, 14,
281
    14, 14, 12, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 12,
282
    11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15, 13, 12, 12, 12,
283
    13, 13, 13, 13, 14, 14, 14, 14, 15,
284
};
285

    
286
static const uint16_t codes10[169] = {
287
    0x022, 0x008, 0x01d, 0x026, 0x05f, 0x0d3, 0x1cf, 0x3d0,
288
    0x3d7, 0x3ed, 0x7f0, 0x7f6, 0xffd, 0x007, 0x000, 0x001,
289
    0x009, 0x020, 0x054, 0x060, 0x0d5, 0x0dc, 0x1d4, 0x3cd,
290
    0x3de, 0x7e7, 0x01c, 0x002, 0x006, 0x00c, 0x01e, 0x028,
291
    0x05b, 0x0cd, 0x0d9, 0x1ce, 0x1dc, 0x3d9, 0x3f1, 0x025,
292
    0x00b, 0x00a, 0x00d, 0x024, 0x057, 0x061, 0x0cc, 0x0dd,
293
    0x1cc, 0x1de, 0x3d3, 0x3e7, 0x05d, 0x021, 0x01f, 0x023,
294
    0x027, 0x059, 0x064, 0x0d8, 0x0df, 0x1d2, 0x1e2, 0x3dd,
295
    0x3ee, 0x0d1, 0x055, 0x029, 0x056, 0x058, 0x062, 0x0ce,
296
    0x0e0, 0x0e2, 0x1da, 0x3d4, 0x3e3, 0x7eb, 0x1c9, 0x05e,
297
    0x05a, 0x05c, 0x063, 0x0ca, 0x0da, 0x1c7, 0x1ca, 0x1e0,
298
    0x3db, 0x3e8, 0x7ec, 0x1e3, 0x0d2, 0x0cb, 0x0d0, 0x0d7,
299
    0x0db, 0x1c6, 0x1d5, 0x1d8, 0x3ca, 0x3da, 0x7ea, 0x7f1,
300
    0x1e1, 0x0d4, 0x0cf, 0x0d6, 0x0de, 0x0e1, 0x1d0, 0x1d6,
301
    0x3d1, 0x3d5, 0x3f2, 0x7ee, 0x7fb, 0x3e9, 0x1cd, 0x1c8,
302
    0x1cb, 0x1d1, 0x1d7, 0x1df, 0x3cf, 0x3e0, 0x3ef, 0x7e6,
303
    0x7f8, 0xffa, 0x3eb, 0x1dd, 0x1d3, 0x1d9, 0x1db, 0x3d2,
304
    0x3cc, 0x3dc, 0x3ea, 0x7ed, 0x7f3, 0x7f9, 0xff9, 0x7f2,
305
    0x3ce, 0x1e4, 0x3cb, 0x3d8, 0x3d6, 0x3e2, 0x3e5, 0x7e8,
306
    0x7f4, 0x7f5, 0x7f7, 0xffb, 0x7fa, 0x3ec, 0x3df, 0x3e1,
307
    0x3e4, 0x3e6, 0x3f0, 0x7e9, 0x7ef, 0xff8, 0xffe, 0xffc,
308
    0xfff,
309
};
310

    
311
static const uint8_t bits10[169] = {
312
     6,  5,  6,  6,  7,  8,  9, 10, 10, 10, 11, 11, 12,  5,  4,  4,
313
     5,  6,  7,  7,  8,  8,  9, 10, 10, 11,  6,  4,  5,  5,  6,  6,
314
     7,  8,  8,  9,  9, 10, 10,  6,  5,  5,  5,  6,  7,  7,  8,  8,
315
     9,  9, 10, 10,  7,  6,  6,  6,  6,  7,  7,  8,  8,  9,  9, 10,
316
    10,  8,  7,  6,  7,  7,  7,  8,  8,  8,  9, 10, 10, 11,  9,  7,
317
     7,  7,  7,  8,  8,  9,  9,  9, 10, 10, 11,  9,  8,  8,  8,  8,
318
     8,  9,  9,  9, 10, 10, 11, 11,  9,  8,  8,  8,  8,  8,  9,  9,
319
    10, 10, 10, 11, 11, 10,  9,  9,  9,  9,  9,  9, 10, 10, 10, 11,
320
    11, 12, 10,  9,  9,  9,  9, 10, 10, 10, 10, 11, 11, 11, 12, 11,
321
    10,  9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 11, 10, 10, 10,
322
    10, 10, 10, 11, 11, 12, 12, 12, 12,
323
};
324

    
325
static const uint16_t codes11[289] = {
326
    0x000, 0x006, 0x019, 0x03d, 0x09c, 0x0c6, 0x1a7, 0x390,
327
    0x3c2, 0x3df, 0x7e6, 0x7f3, 0xffb, 0x7ec, 0xffa, 0xffe,
328
    0x38e, 0x005, 0x001, 0x008, 0x014, 0x037, 0x042, 0x092,
329
    0x0af, 0x191, 0x1a5, 0x1b5, 0x39e, 0x3c0, 0x3a2, 0x3cd,
330
    0x7d6, 0x0ae, 0x017, 0x007, 0x009, 0x018, 0x039, 0x040,
331
    0x08e, 0x0a3, 0x0b8, 0x199, 0x1ac, 0x1c1, 0x3b1, 0x396,
332
    0x3be, 0x3ca, 0x09d, 0x03c, 0x015, 0x016, 0x01a, 0x03b,
333
    0x044, 0x091, 0x0a5, 0x0be, 0x196, 0x1ae, 0x1b9, 0x3a1,
334
    0x391, 0x3a5, 0x3d5, 0x094, 0x09a, 0x036, 0x038, 0x03a,
335
    0x041, 0x08c, 0x09b, 0x0b0, 0x0c3, 0x19e, 0x1ab, 0x1bc,
336
    0x39f, 0x38f, 0x3a9, 0x3cf, 0x093, 0x0bf, 0x03e, 0x03f,
337
    0x043, 0x045, 0x09e, 0x0a7, 0x0b9, 0x194, 0x1a2, 0x1ba,
338
    0x1c3, 0x3a6, 0x3a7, 0x3bb, 0x3d4, 0x09f, 0x1a0, 0x08f,
339
    0x08d, 0x090, 0x098, 0x0a6, 0x0b6, 0x0c4, 0x19f, 0x1af,
340
    0x1bf, 0x399, 0x3bf, 0x3b4, 0x3c9, 0x3e7, 0x0a8, 0x1b6,
341
    0x0ab, 0x0a4, 0x0aa, 0x0b2, 0x0c2, 0x0c5, 0x198, 0x1a4,
342
    0x1b8, 0x38c, 0x3a4, 0x3c4, 0x3c6, 0x3dd, 0x3e8, 0x0ad,
343
    0x3af, 0x192, 0x0bd, 0x0bc, 0x18e, 0x197, 0x19a, 0x1a3,
344
    0x1b1, 0x38d, 0x398, 0x3b7, 0x3d3, 0x3d1, 0x3db, 0x7dd,
345
    0x0b4, 0x3de, 0x1a9, 0x19b, 0x19c, 0x1a1, 0x1aa, 0x1ad,
346
    0x1b3, 0x38b, 0x3b2, 0x3b8, 0x3ce, 0x3e1, 0x3e0, 0x7d2,
347
    0x7e5, 0x0b7, 0x7e3, 0x1bb, 0x1a8, 0x1a6, 0x1b0, 0x1b2,
348
    0x1b7, 0x39b, 0x39a, 0x3ba, 0x3b5, 0x3d6, 0x7d7, 0x3e4,
349
    0x7d8, 0x7ea, 0x0ba, 0x7e8, 0x3a0, 0x1bd, 0x1b4, 0x38a,
350
    0x1c4, 0x392, 0x3aa, 0x3b0, 0x3bc, 0x3d7, 0x7d4, 0x7dc,
351
    0x7db, 0x7d5, 0x7f0, 0x0c1, 0x7fb, 0x3c8, 0x3a3, 0x395,
352
    0x39d, 0x3ac, 0x3ae, 0x3c5, 0x3d8, 0x3e2, 0x3e6, 0x7e4,
353
    0x7e7, 0x7e0, 0x7e9, 0x7f7, 0x190, 0x7f2, 0x393, 0x1be,
354
    0x1c0, 0x394, 0x397, 0x3ad, 0x3c3, 0x3c1, 0x3d2, 0x7da,
355
    0x7d9, 0x7df, 0x7eb, 0x7f4, 0x7fa, 0x195, 0x7f8, 0x3bd,
356
    0x39c, 0x3ab, 0x3a8, 0x3b3, 0x3b9, 0x3d0, 0x3e3, 0x3e5,
357
    0x7e2, 0x7de, 0x7ed, 0x7f1, 0x7f9, 0x7fc, 0x193, 0xffd,
358
    0x3dc, 0x3b6, 0x3c7, 0x3cc, 0x3cb, 0x3d9, 0x3da, 0x7d3,
359
    0x7e1, 0x7ee, 0x7ef, 0x7f5, 0x7f6, 0xffc, 0xfff, 0x19d,
360
    0x1c2, 0x0b5, 0x0a1, 0x096, 0x097, 0x095, 0x099, 0x0a0,
361
    0x0a2, 0x0ac, 0x0a9, 0x0b1, 0x0b3, 0x0bb, 0x0c0, 0x18f,
362
    0x004,
363
};
364

    
365
static const uint8_t bits11[289] = {
366
     4,  5,  6,  7,  8,  8,  9, 10, 10, 10, 11, 11, 12, 11, 12, 12,
367
    10,  5,  4,  5,  6,  7,  7,  8,  8,  9,  9,  9, 10, 10, 10, 10,
368
    11,  8,  6,  5,  5,  6,  7,  7,  8,  8,  8,  9,  9,  9, 10, 10,
369
    10, 10,  8,  7,  6,  6,  6,  7,  7,  8,  8,  8,  9,  9,  9, 10,
370
    10, 10, 10,  8,  8,  7,  7,  7,  7,  8,  8,  8,  8,  9,  9,  9,
371
    10, 10, 10, 10,  8,  8,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9,
372
     9, 10, 10, 10, 10,  8,  9,  8,  8,  8,  8,  8,  8,  8,  9,  9,
373
     9, 10, 10, 10, 10, 10,  8,  9,  8,  8,  8,  8,  8,  8,  9,  9,
374
     9, 10, 10, 10, 10, 10, 10,  8, 10,  9,  8,  8,  9,  9,  9,  9,
375
     9, 10, 10, 10, 10, 10, 10, 11,  8, 10,  9,  9,  9,  9,  9,  9,
376
     9, 10, 10, 10, 10, 10, 10, 11, 11,  8, 11,  9,  9,  9,  9,  9,
377
     9, 10, 10, 10, 10, 10, 11, 10, 11, 11,  8, 11, 10,  9,  9, 10,
378
     9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,  8, 11, 10, 10, 10,
379
    10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,  9, 11, 10,  9,
380
     9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11,  9, 11, 10,
381
    10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11,  9, 12,
382
    10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12,  9,
383
     9,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  9,
384
     5,
385
};
386

    
387
const uint16_t *ff_aac_spectral_codes[11] = {
388
    codes1,  codes2,  codes3, codes4, codes5, codes6, codes7, codes8,
389
    codes9, codes10, codes11,
390
};
391

    
392
const uint8_t *ff_aac_spectral_bits[11] = {
393
    bits1,  bits2,  bits3, bits4, bits5, bits6, bits7, bits8,
394
    bits9, bits10, bits11,
395
};
396

    
397
const uint16_t ff_aac_spectral_sizes[11] = {
398
    81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
399
};
400

    
401
/* NOTE:
402
 * 64.0f is a special value indicating the existence of an escape code in the
403
 * bitstream.
404
 */
405
static const float codebook_vector0[324] = {
406
 -1.0000000, -1.0000000, -1.0000000, -1.0000000,
407
 -1.0000000, -1.0000000, -1.0000000,  0.0000000,
408
 -1.0000000, -1.0000000, -1.0000000,  1.0000000,
409
 -1.0000000, -1.0000000,  0.0000000, -1.0000000,
410
 -1.0000000, -1.0000000,  0.0000000,  0.0000000,
411
 -1.0000000, -1.0000000,  0.0000000,  1.0000000,
412
 -1.0000000, -1.0000000,  1.0000000, -1.0000000,
413
 -1.0000000, -1.0000000,  1.0000000,  0.0000000,
414
 -1.0000000, -1.0000000,  1.0000000,  1.0000000,
415
 -1.0000000,  0.0000000, -1.0000000, -1.0000000,
416
 -1.0000000,  0.0000000, -1.0000000,  0.0000000,
417
 -1.0000000,  0.0000000, -1.0000000,  1.0000000,
418
 -1.0000000,  0.0000000,  0.0000000, -1.0000000,
419
 -1.0000000,  0.0000000,  0.0000000,  0.0000000,
420
 -1.0000000,  0.0000000,  0.0000000,  1.0000000,
421
 -1.0000000,  0.0000000,  1.0000000, -1.0000000,
422
 -1.0000000,  0.0000000,  1.0000000,  0.0000000,
423
 -1.0000000,  0.0000000,  1.0000000,  1.0000000,
424
 -1.0000000,  1.0000000, -1.0000000, -1.0000000,
425
 -1.0000000,  1.0000000, -1.0000000,  0.0000000,
426
 -1.0000000,  1.0000000, -1.0000000,  1.0000000,
427
 -1.0000000,  1.0000000,  0.0000000, -1.0000000,
428
 -1.0000000,  1.0000000,  0.0000000,  0.0000000,
429
 -1.0000000,  1.0000000,  0.0000000,  1.0000000,
430
 -1.0000000,  1.0000000,  1.0000000, -1.0000000,
431
 -1.0000000,  1.0000000,  1.0000000,  0.0000000,
432
 -1.0000000,  1.0000000,  1.0000000,  1.0000000,
433
  0.0000000, -1.0000000, -1.0000000, -1.0000000,
434
  0.0000000, -1.0000000, -1.0000000,  0.0000000,
435
  0.0000000, -1.0000000, -1.0000000,  1.0000000,
436
  0.0000000, -1.0000000,  0.0000000, -1.0000000,
437
  0.0000000, -1.0000000,  0.0000000,  0.0000000,
438
  0.0000000, -1.0000000,  0.0000000,  1.0000000,
439
  0.0000000, -1.0000000,  1.0000000, -1.0000000,
440
  0.0000000, -1.0000000,  1.0000000,  0.0000000,
441
  0.0000000, -1.0000000,  1.0000000,  1.0000000,
442
  0.0000000,  0.0000000, -1.0000000, -1.0000000,
443
  0.0000000,  0.0000000, -1.0000000,  0.0000000,
444
  0.0000000,  0.0000000, -1.0000000,  1.0000000,
445
  0.0000000,  0.0000000,  0.0000000, -1.0000000,
446
  0.0000000,  0.0000000,  0.0000000,  0.0000000,
447
  0.0000000,  0.0000000,  0.0000000,  1.0000000,
448
  0.0000000,  0.0000000,  1.0000000, -1.0000000,
449
  0.0000000,  0.0000000,  1.0000000,  0.0000000,
450
  0.0000000,  0.0000000,  1.0000000,  1.0000000,
451
  0.0000000,  1.0000000, -1.0000000, -1.0000000,
452
  0.0000000,  1.0000000, -1.0000000,  0.0000000,
453
  0.0000000,  1.0000000, -1.0000000,  1.0000000,
454
  0.0000000,  1.0000000,  0.0000000, -1.0000000,
455
  0.0000000,  1.0000000,  0.0000000,  0.0000000,
456
  0.0000000,  1.0000000,  0.0000000,  1.0000000,
457
  0.0000000,  1.0000000,  1.0000000, -1.0000000,
458
  0.0000000,  1.0000000,  1.0000000,  0.0000000,
459
  0.0000000,  1.0000000,  1.0000000,  1.0000000,
460
  1.0000000, -1.0000000, -1.0000000, -1.0000000,
461
  1.0000000, -1.0000000, -1.0000000,  0.0000000,
462
  1.0000000, -1.0000000, -1.0000000,  1.0000000,
463
  1.0000000, -1.0000000,  0.0000000, -1.0000000,
464
  1.0000000, -1.0000000,  0.0000000,  0.0000000,
465
  1.0000000, -1.0000000,  0.0000000,  1.0000000,
466
  1.0000000, -1.0000000,  1.0000000, -1.0000000,
467
  1.0000000, -1.0000000,  1.0000000,  0.0000000,
468
  1.0000000, -1.0000000,  1.0000000,  1.0000000,
469
  1.0000000,  0.0000000, -1.0000000, -1.0000000,
470
  1.0000000,  0.0000000, -1.0000000,  0.0000000,
471
  1.0000000,  0.0000000, -1.0000000,  1.0000000,
472
  1.0000000,  0.0000000,  0.0000000, -1.0000000,
473
  1.0000000,  0.0000000,  0.0000000,  0.0000000,
474
  1.0000000,  0.0000000,  0.0000000,  1.0000000,
475
  1.0000000,  0.0000000,  1.0000000, -1.0000000,
476
  1.0000000,  0.0000000,  1.0000000,  0.0000000,
477
  1.0000000,  0.0000000,  1.0000000,  1.0000000,
478
  1.0000000,  1.0000000, -1.0000000, -1.0000000,
479
  1.0000000,  1.0000000, -1.0000000,  0.0000000,
480
  1.0000000,  1.0000000, -1.0000000,  1.0000000,
481
  1.0000000,  1.0000000,  0.0000000, -1.0000000,
482
  1.0000000,  1.0000000,  0.0000000,  0.0000000,
483
  1.0000000,  1.0000000,  0.0000000,  1.0000000,
484
  1.0000000,  1.0000000,  1.0000000, -1.0000000,
485
  1.0000000,  1.0000000,  1.0000000,  0.0000000,
486
  1.0000000,  1.0000000,  1.0000000,  1.0000000,
487
};
488

    
489
static const float codebook_vector2[324] = {
490
  0.0000000,  0.0000000,  0.0000000,  0.0000000,
491
  0.0000000,  0.0000000,  0.0000000,  1.0000000,
492
  0.0000000,  0.0000000,  0.0000000,  2.5198421,
493
  0.0000000,  0.0000000,  1.0000000,  0.0000000,
494
  0.0000000,  0.0000000,  1.0000000,  1.0000000,
495
  0.0000000,  0.0000000,  1.0000000,  2.5198421,
496
  0.0000000,  0.0000000,  2.5198421,  0.0000000,
497
  0.0000000,  0.0000000,  2.5198421,  1.0000000,
498
  0.0000000,  0.0000000,  2.5198421,  2.5198421,
499
  0.0000000,  1.0000000,  0.0000000,  0.0000000,
500
  0.0000000,  1.0000000,  0.0000000,  1.0000000,
501
  0.0000000,  1.0000000,  0.0000000,  2.5198421,
502
  0.0000000,  1.0000000,  1.0000000,  0.0000000,
503
  0.0000000,  1.0000000,  1.0000000,  1.0000000,
504
  0.0000000,  1.0000000,  1.0000000,  2.5198421,
505
  0.0000000,  1.0000000,  2.5198421,  0.0000000,
506
  0.0000000,  1.0000000,  2.5198421,  1.0000000,
507
  0.0000000,  1.0000000,  2.5198421,  2.5198421,
508
  0.0000000,  2.5198421,  0.0000000,  0.0000000,
509
  0.0000000,  2.5198421,  0.0000000,  1.0000000,
510
  0.0000000,  2.5198421,  0.0000000,  2.5198421,
511
  0.0000000,  2.5198421,  1.0000000,  0.0000000,
512
  0.0000000,  2.5198421,  1.0000000,  1.0000000,
513
  0.0000000,  2.5198421,  1.0000000,  2.5198421,
514
  0.0000000,  2.5198421,  2.5198421,  0.0000000,
515
  0.0000000,  2.5198421,  2.5198421,  1.0000000,
516
  0.0000000,  2.5198421,  2.5198421,  2.5198421,
517
  1.0000000,  0.0000000,  0.0000000,  0.0000000,
518
  1.0000000,  0.0000000,  0.0000000,  1.0000000,
519
  1.0000000,  0.0000000,  0.0000000,  2.5198421,
520
  1.0000000,  0.0000000,  1.0000000,  0.0000000,
521
  1.0000000,  0.0000000,  1.0000000,  1.0000000,
522
  1.0000000,  0.0000000,  1.0000000,  2.5198421,
523
  1.0000000,  0.0000000,  2.5198421,  0.0000000,
524
  1.0000000,  0.0000000,  2.5198421,  1.0000000,
525
  1.0000000,  0.0000000,  2.5198421,  2.5198421,
526
  1.0000000,  1.0000000,  0.0000000,  0.0000000,
527
  1.0000000,  1.0000000,  0.0000000,  1.0000000,
528
  1.0000000,  1.0000000,  0.0000000,  2.5198421,
529
  1.0000000,  1.0000000,  1.0000000,  0.0000000,
530
  1.0000000,  1.0000000,  1.0000000,  1.0000000,
531
  1.0000000,  1.0000000,  1.0000000,  2.5198421,
532
  1.0000000,  1.0000000,  2.5198421,  0.0000000,
533
  1.0000000,  1.0000000,  2.5198421,  1.0000000,
534
  1.0000000,  1.0000000,  2.5198421,  2.5198421,
535
  1.0000000,  2.5198421,  0.0000000,  0.0000000,
536
  1.0000000,  2.5198421,  0.0000000,  1.0000000,
537
  1.0000000,  2.5198421,  0.0000000,  2.5198421,
538
  1.0000000,  2.5198421,  1.0000000,  0.0000000,
539
  1.0000000,  2.5198421,  1.0000000,  1.0000000,
540
  1.0000000,  2.5198421,  1.0000000,  2.5198421,
541
  1.0000000,  2.5198421,  2.5198421,  0.0000000,
542
  1.0000000,  2.5198421,  2.5198421,  1.0000000,
543
  1.0000000,  2.5198421,  2.5198421,  2.5198421,
544
  2.5198421,  0.0000000,  0.0000000,  0.0000000,
545
  2.5198421,  0.0000000,  0.0000000,  1.0000000,
546
  2.5198421,  0.0000000,  0.0000000,  2.5198421,
547
  2.5198421,  0.0000000,  1.0000000,  0.0000000,
548
  2.5198421,  0.0000000,  1.0000000,  1.0000000,
549
  2.5198421,  0.0000000,  1.0000000,  2.5198421,
550
  2.5198421,  0.0000000,  2.5198421,  0.0000000,
551
  2.5198421,  0.0000000,  2.5198421,  1.0000000,
552
  2.5198421,  0.0000000,  2.5198421,  2.5198421,
553
  2.5198421,  1.0000000,  0.0000000,  0.0000000,
554
  2.5198421,  1.0000000,  0.0000000,  1.0000000,
555
  2.5198421,  1.0000000,  0.0000000,  2.5198421,
556
  2.5198421,  1.0000000,  1.0000000,  0.0000000,
557
  2.5198421,  1.0000000,  1.0000000,  1.0000000,
558
  2.5198421,  1.0000000,  1.0000000,  2.5198421,
559
  2.5198421,  1.0000000,  2.5198421,  0.0000000,
560
  2.5198421,  1.0000000,  2.5198421,  1.0000000,
561
  2.5198421,  1.0000000,  2.5198421,  2.5198421,
562
  2.5198421,  2.5198421,  0.0000000,  0.0000000,
563
  2.5198421,  2.5198421,  0.0000000,  1.0000000,
564
  2.5198421,  2.5198421,  0.0000000,  2.5198421,
565
  2.5198421,  2.5198421,  1.0000000,  0.0000000,
566
  2.5198421,  2.5198421,  1.0000000,  1.0000000,
567
  2.5198421,  2.5198421,  1.0000000,  2.5198421,
568
  2.5198421,  2.5198421,  2.5198421,  0.0000000,
569
  2.5198421,  2.5198421,  2.5198421,  1.0000000,
570
  2.5198421,  2.5198421,  2.5198421,  2.5198421,
571
};
572

    
573
static const float codebook_vector4[162] = {
574
 -6.3496042, -6.3496042, -6.3496042, -4.3267487,
575
 -6.3496042, -2.5198421, -6.3496042, -1.0000000,
576
 -6.3496042,  0.0000000, -6.3496042,  1.0000000,
577
 -6.3496042,  2.5198421, -6.3496042,  4.3267487,
578
 -6.3496042,  6.3496042, -4.3267487, -6.3496042,
579
 -4.3267487, -4.3267487, -4.3267487, -2.5198421,
580
 -4.3267487, -1.0000000, -4.3267487,  0.0000000,
581
 -4.3267487,  1.0000000, -4.3267487,  2.5198421,
582
 -4.3267487,  4.3267487, -4.3267487,  6.3496042,
583
 -2.5198421, -6.3496042, -2.5198421, -4.3267487,
584
 -2.5198421, -2.5198421, -2.5198421, -1.0000000,
585
 -2.5198421,  0.0000000, -2.5198421,  1.0000000,
586
 -2.5198421,  2.5198421, -2.5198421,  4.3267487,
587
 -2.5198421,  6.3496042, -1.0000000, -6.3496042,
588
 -1.0000000, -4.3267487, -1.0000000, -2.5198421,
589
 -1.0000000, -1.0000000, -1.0000000,  0.0000000,
590
 -1.0000000,  1.0000000, -1.0000000,  2.5198421,
591
 -1.0000000,  4.3267487, -1.0000000,  6.3496042,
592
  0.0000000, -6.3496042,  0.0000000, -4.3267487,
593
  0.0000000, -2.5198421,  0.0000000, -1.0000000,
594
  0.0000000,  0.0000000,  0.0000000,  1.0000000,
595
  0.0000000,  2.5198421,  0.0000000,  4.3267487,
596
  0.0000000,  6.3496042,  1.0000000, -6.3496042,
597
  1.0000000, -4.3267487,  1.0000000, -2.5198421,
598
  1.0000000, -1.0000000,  1.0000000,  0.0000000,
599
  1.0000000,  1.0000000,  1.0000000,  2.5198421,
600
  1.0000000,  4.3267487,  1.0000000,  6.3496042,
601
  2.5198421, -6.3496042,  2.5198421, -4.3267487,
602
  2.5198421, -2.5198421,  2.5198421, -1.0000000,
603
  2.5198421,  0.0000000,  2.5198421,  1.0000000,
604
  2.5198421,  2.5198421,  2.5198421,  4.3267487,
605
  2.5198421,  6.3496042,  4.3267487, -6.3496042,
606
  4.3267487, -4.3267487,  4.3267487, -2.5198421,
607
  4.3267487, -1.0000000,  4.3267487,  0.0000000,
608
  4.3267487,  1.0000000,  4.3267487,  2.5198421,
609
  4.3267487,  4.3267487,  4.3267487,  6.3496042,
610
  6.3496042, -6.3496042,  6.3496042, -4.3267487,
611
  6.3496042, -2.5198421,  6.3496042, -1.0000000,
612
  6.3496042,  0.0000000,  6.3496042,  1.0000000,
613
  6.3496042,  2.5198421,  6.3496042,  4.3267487,
614
  6.3496042,  6.3496042,
615
};
616

    
617
static const float codebook_vector6[128] = {
618
  0.0000000,  0.0000000,  0.0000000,  1.0000000,
619
  0.0000000,  2.5198421,  0.0000000,  4.3267487,
620
  0.0000000,  6.3496042,  0.0000000,  8.5498797,
621
  0.0000000, 10.9027236,  0.0000000, 13.3905183,
622
  1.0000000,  0.0000000,  1.0000000,  1.0000000,
623
  1.0000000,  2.5198421,  1.0000000,  4.3267487,
624
  1.0000000,  6.3496042,  1.0000000,  8.5498797,
625
  1.0000000, 10.9027236,  1.0000000, 13.3905183,
626
  2.5198421,  0.0000000,  2.5198421,  1.0000000,
627
  2.5198421,  2.5198421,  2.5198421,  4.3267487,
628
  2.5198421,  6.3496042,  2.5198421,  8.5498797,
629
  2.5198421, 10.9027236,  2.5198421, 13.3905183,
630
  4.3267487,  0.0000000,  4.3267487,  1.0000000,
631
  4.3267487,  2.5198421,  4.3267487,  4.3267487,
632
  4.3267487,  6.3496042,  4.3267487,  8.5498797,
633
  4.3267487, 10.9027236,  4.3267487, 13.3905183,
634
  6.3496042,  0.0000000,  6.3496042,  1.0000000,
635
  6.3496042,  2.5198421,  6.3496042,  4.3267487,
636
  6.3496042,  6.3496042,  6.3496042,  8.5498797,
637
  6.3496042, 10.9027236,  6.3496042, 13.3905183,
638
  8.5498797,  0.0000000,  8.5498797,  1.0000000,
639
  8.5498797,  2.5198421,  8.5498797,  4.3267487,
640
  8.5498797,  6.3496042,  8.5498797,  8.5498797,
641
  8.5498797, 10.9027236,  8.5498797, 13.3905183,
642
 10.9027236,  0.0000000, 10.9027236,  1.0000000,
643
 10.9027236,  2.5198421, 10.9027236,  4.3267487,
644
 10.9027236,  6.3496042, 10.9027236,  8.5498797,
645
 10.9027236, 10.9027236, 10.9027236, 13.3905183,
646
 13.3905183,  0.0000000, 13.3905183,  1.0000000,
647
 13.3905183,  2.5198421, 13.3905183,  4.3267487,
648
 13.3905183,  6.3496042, 13.3905183,  8.5498797,
649
 13.3905183, 10.9027236, 13.3905183, 13.3905183,
650
};
651

    
652
static const float codebook_vector8[338] = {
653
  0.0000000,  0.0000000,  0.0000000,  1.0000000,
654
  0.0000000,  2.5198421,  0.0000000,  4.3267487,
655
  0.0000000,  6.3496042,  0.0000000,  8.5498797,
656
  0.0000000, 10.9027236,  0.0000000, 13.3905183,
657
  0.0000000, 16.0000000,  0.0000000, 18.7207544,
658
  0.0000000, 21.5443469,  0.0000000, 24.4637810,
659
  0.0000000, 27.4731418,  1.0000000,  0.0000000,
660
  1.0000000,  1.0000000,  1.0000000,  2.5198421,
661
  1.0000000,  4.3267487,  1.0000000,  6.3496042,
662
  1.0000000,  8.5498797,  1.0000000, 10.9027236,
663
  1.0000000, 13.3905183,  1.0000000, 16.0000000,
664
  1.0000000, 18.7207544,  1.0000000, 21.5443469,
665
  1.0000000, 24.4637810,  1.0000000, 27.4731418,
666
  2.5198421,  0.0000000,  2.5198421,  1.0000000,
667
  2.5198421,  2.5198421,  2.5198421,  4.3267487,
668
  2.5198421,  6.3496042,  2.5198421,  8.5498797,
669
  2.5198421, 10.9027236,  2.5198421, 13.3905183,
670
  2.5198421, 16.0000000,  2.5198421, 18.7207544,
671
  2.5198421, 21.5443469,  2.5198421, 24.4637810,
672
  2.5198421, 27.4731418,  4.3267487,  0.0000000,
673
  4.3267487,  1.0000000,  4.3267487,  2.5198421,
674
  4.3267487,  4.3267487,  4.3267487,  6.3496042,
675
  4.3267487,  8.5498797,  4.3267487, 10.9027236,
676
  4.3267487, 13.3905183,  4.3267487, 16.0000000,
677
  4.3267487, 18.7207544,  4.3267487, 21.5443469,
678
  4.3267487, 24.4637810,  4.3267487, 27.4731418,
679
  6.3496042,  0.0000000,  6.3496042,  1.0000000,
680
  6.3496042,  2.5198421,  6.3496042,  4.3267487,
681
  6.3496042,  6.3496042,  6.3496042,  8.5498797,
682
  6.3496042, 10.9027236,  6.3496042, 13.3905183,
683
  6.3496042, 16.0000000,  6.3496042, 18.7207544,
684
  6.3496042, 21.5443469,  6.3496042, 24.4637810,
685
  6.3496042, 27.4731418,  8.5498797,  0.0000000,
686
  8.5498797,  1.0000000,  8.5498797,  2.5198421,
687
  8.5498797,  4.3267487,  8.5498797,  6.3496042,
688
  8.5498797,  8.5498797,  8.5498797, 10.9027236,
689
  8.5498797, 13.3905183,  8.5498797, 16.0000000,
690
  8.5498797, 18.7207544,  8.5498797, 21.5443469,
691
  8.5498797, 24.4637810,  8.5498797, 27.4731418,
692
 10.9027236,  0.0000000, 10.9027236,  1.0000000,
693
 10.9027236,  2.5198421, 10.9027236,  4.3267487,
694
 10.9027236,  6.3496042, 10.9027236,  8.5498797,
695
 10.9027236, 10.9027236, 10.9027236, 13.3905183,
696
 10.9027236, 16.0000000, 10.9027236, 18.7207544,
697
 10.9027236, 21.5443469, 10.9027236, 24.4637810,
698
 10.9027236, 27.4731418, 13.3905183,  0.0000000,
699
 13.3905183,  1.0000000, 13.3905183,  2.5198421,
700
 13.3905183,  4.3267487, 13.3905183,  6.3496042,
701
 13.3905183,  8.5498797, 13.3905183, 10.9027236,
702
 13.3905183, 13.3905183, 13.3905183, 16.0000000,
703
 13.3905183, 18.7207544, 13.3905183, 21.5443469,
704
 13.3905183, 24.4637810, 13.3905183, 27.4731418,
705
 16.0000000,  0.0000000, 16.0000000,  1.0000000,
706
 16.0000000,  2.5198421, 16.0000000,  4.3267487,
707
 16.0000000,  6.3496042, 16.0000000,  8.5498797,
708
 16.0000000, 10.9027236, 16.0000000, 13.3905183,
709
 16.0000000, 16.0000000, 16.0000000, 18.7207544,
710
 16.0000000, 21.5443469, 16.0000000, 24.4637810,
711
 16.0000000, 27.4731418, 18.7207544,  0.0000000,
712
 18.7207544,  1.0000000, 18.7207544,  2.5198421,
713
 18.7207544,  4.3267487, 18.7207544,  6.3496042,
714
 18.7207544,  8.5498797, 18.7207544, 10.9027236,
715
 18.7207544, 13.3905183, 18.7207544, 16.0000000,
716
 18.7207544, 18.7207544, 18.7207544, 21.5443469,
717
 18.7207544, 24.4637810, 18.7207544, 27.4731418,
718
 21.5443469,  0.0000000, 21.5443469,  1.0000000,
719
 21.5443469,  2.5198421, 21.5443469,  4.3267487,
720
 21.5443469,  6.3496042, 21.5443469,  8.5498797,
721
 21.5443469, 10.9027236, 21.5443469, 13.3905183,
722
 21.5443469, 16.0000000, 21.5443469, 18.7207544,
723
 21.5443469, 21.5443469, 21.5443469, 24.4637810,
724
 21.5443469, 27.4731418, 24.4637810,  0.0000000,
725
 24.4637810,  1.0000000, 24.4637810,  2.5198421,
726
 24.4637810,  4.3267487, 24.4637810,  6.3496042,
727
 24.4637810,  8.5498797, 24.4637810, 10.9027236,
728
 24.4637810, 13.3905183, 24.4637810, 16.0000000,
729
 24.4637810, 18.7207544, 24.4637810, 21.5443469,
730
 24.4637810, 24.4637810, 24.4637810, 27.4731418,
731
 27.4731418,  0.0000000, 27.4731418,  1.0000000,
732
 27.4731418,  2.5198421, 27.4731418,  4.3267487,
733
 27.4731418,  6.3496042, 27.4731418,  8.5498797,
734
 27.4731418, 10.9027236, 27.4731418, 13.3905183,
735
 27.4731418, 16.0000000, 27.4731418, 18.7207544,
736
 27.4731418, 21.5443469, 27.4731418, 24.4637810,
737
 27.4731418, 27.4731418,
738
};
739

    
740
static const float codebook_vector10[578] = {
741
  0.0000000,  0.0000000,  0.0000000,  1.0000000,
742
  0.0000000,  2.5198421,  0.0000000,  4.3267487,
743
  0.0000000,  6.3496042,  0.0000000,  8.5498797,
744
  0.0000000, 10.9027236,  0.0000000, 13.3905183,
745
  0.0000000, 16.0000000,  0.0000000, 18.7207544,
746
  0.0000000, 21.5443469,  0.0000000, 24.4637810,
747
  0.0000000, 27.4731418,  0.0000000, 30.5673509,
748
  0.0000000, 33.7419917,  0.0000000, 36.9931811,
749
  0.0000000,      64.0f,  1.0000000,  0.0000000,
750
  1.0000000,  1.0000000,  1.0000000,  2.5198421,
751
  1.0000000,  4.3267487,  1.0000000,  6.3496042,
752
  1.0000000,  8.5498797,  1.0000000, 10.9027236,
753
  1.0000000, 13.3905183,  1.0000000, 16.0000000,
754
  1.0000000, 18.7207544,  1.0000000, 21.5443469,
755
  1.0000000, 24.4637810,  1.0000000, 27.4731418,
756
  1.0000000, 30.5673509,  1.0000000, 33.7419917,
757
  1.0000000, 36.9931811,  1.0000000,      64.0f,
758
  2.5198421,  0.0000000,  2.5198421,  1.0000000,
759
  2.5198421,  2.5198421,  2.5198421,  4.3267487,
760
  2.5198421,  6.3496042,  2.5198421,  8.5498797,
761
  2.5198421, 10.9027236,  2.5198421, 13.3905183,
762
  2.5198421, 16.0000000,  2.5198421, 18.7207544,
763
  2.5198421, 21.5443469,  2.5198421, 24.4637810,
764
  2.5198421, 27.4731418,  2.5198421, 30.5673509,
765
  2.5198421, 33.7419917,  2.5198421, 36.9931811,
766
  2.5198421,      64.0f,  4.3267487,  0.0000000,
767
  4.3267487,  1.0000000,  4.3267487,  2.5198421,
768
  4.3267487,  4.3267487,  4.3267487,  6.3496042,
769
  4.3267487,  8.5498797,  4.3267487, 10.9027236,
770
  4.3267487, 13.3905183,  4.3267487, 16.0000000,
771
  4.3267487, 18.7207544,  4.3267487, 21.5443469,
772
  4.3267487, 24.4637810,  4.3267487, 27.4731418,
773
  4.3267487, 30.5673509,  4.3267487, 33.7419917,
774
  4.3267487, 36.9931811,  4.3267487,      64.0f,
775
  6.3496042,  0.0000000,  6.3496042,  1.0000000,
776
  6.3496042,  2.5198421,  6.3496042,  4.3267487,
777
  6.3496042,  6.3496042,  6.3496042,  8.5498797,
778
  6.3496042, 10.9027236,  6.3496042, 13.3905183,
779
  6.3496042, 16.0000000,  6.3496042, 18.7207544,
780
  6.3496042, 21.5443469,  6.3496042, 24.4637810,
781
  6.3496042, 27.4731418,  6.3496042, 30.5673509,
782
  6.3496042, 33.7419917,  6.3496042, 36.9931811,
783
  6.3496042,      64.0f,  8.5498797,  0.0000000,
784
  8.5498797,  1.0000000,  8.5498797,  2.5198421,
785
  8.5498797,  4.3267487,  8.5498797,  6.3496042,
786
  8.5498797,  8.5498797,  8.5498797, 10.9027236,
787
  8.5498797, 13.3905183,  8.5498797, 16.0000000,
788
  8.5498797, 18.7207544,  8.5498797, 21.5443469,
789
  8.5498797, 24.4637810,  8.5498797, 27.4731418,
790
  8.5498797, 30.5673509,  8.5498797, 33.7419917,
791
  8.5498797, 36.9931811,  8.5498797,      64.0f,
792
 10.9027236,  0.0000000, 10.9027236,  1.0000000,
793
 10.9027236,  2.5198421, 10.9027236,  4.3267487,
794
 10.9027236,  6.3496042, 10.9027236,  8.5498797,
795
 10.9027236, 10.9027236, 10.9027236, 13.3905183,
796
 10.9027236, 16.0000000, 10.9027236, 18.7207544,
797
 10.9027236, 21.5443469, 10.9027236, 24.4637810,
798
 10.9027236, 27.4731418, 10.9027236, 30.5673509,
799
 10.9027236, 33.7419917, 10.9027236, 36.9931811,
800
 10.9027236,      64.0f, 13.3905183,  0.0000000,
801
 13.3905183,  1.0000000, 13.3905183,  2.5198421,
802
 13.3905183,  4.3267487, 13.3905183,  6.3496042,
803
 13.3905183,  8.5498797, 13.3905183, 10.9027236,
804
 13.3905183, 13.3905183, 13.3905183, 16.0000000,
805
 13.3905183, 18.7207544, 13.3905183, 21.5443469,
806
 13.3905183, 24.4637810, 13.3905183, 27.4731418,
807
 13.3905183, 30.5673509, 13.3905183, 33.7419917,
808
 13.3905183, 36.9931811, 13.3905183,      64.0f,
809
 16.0000000,  0.0000000, 16.0000000,  1.0000000,
810
 16.0000000,  2.5198421, 16.0000000,  4.3267487,
811
 16.0000000,  6.3496042, 16.0000000,  8.5498797,
812
 16.0000000, 10.9027236, 16.0000000, 13.3905183,
813
 16.0000000, 16.0000000, 16.0000000, 18.7207544,
814
 16.0000000, 21.5443469, 16.0000000, 24.4637810,
815
 16.0000000, 27.4731418, 16.0000000, 30.5673509,
816
 16.0000000, 33.7419917, 16.0000000, 36.9931811,
817
 16.0000000,      64.0f, 18.7207544,  0.0000000,
818
 18.7207544,  1.0000000, 18.7207544,  2.5198421,
819
 18.7207544,  4.3267487, 18.7207544,  6.3496042,
820
 18.7207544,  8.5498797, 18.7207544, 10.9027236,
821
 18.7207544, 13.3905183, 18.7207544, 16.0000000,
822
 18.7207544, 18.7207544, 18.7207544, 21.5443469,
823
 18.7207544, 24.4637810, 18.7207544, 27.4731418,
824
 18.7207544, 30.5673509, 18.7207544, 33.7419917,
825
 18.7207544, 36.9931811, 18.7207544,      64.0f,
826
 21.5443469,  0.0000000, 21.5443469,  1.0000000,
827
 21.5443469,  2.5198421, 21.5443469,  4.3267487,
828
 21.5443469,  6.3496042, 21.5443469,  8.5498797,
829
 21.5443469, 10.9027236, 21.5443469, 13.3905183,
830
 21.5443469, 16.0000000, 21.5443469, 18.7207544,
831
 21.5443469, 21.5443469, 21.5443469, 24.4637810,
832
 21.5443469, 27.4731418, 21.5443469, 30.5673509,
833
 21.5443469, 33.7419917, 21.5443469, 36.9931811,
834
 21.5443469,      64.0f, 24.4637810,  0.0000000,
835
 24.4637810,  1.0000000, 24.4637810,  2.5198421,
836
 24.4637810,  4.3267487, 24.4637810,  6.3496042,
837
 24.4637810,  8.5498797, 24.4637810, 10.9027236,
838
 24.4637810, 13.3905183, 24.4637810, 16.0000000,
839
 24.4637810, 18.7207544, 24.4637810, 21.5443469,
840
 24.4637810, 24.4637810, 24.4637810, 27.4731418,
841
 24.4637810, 30.5673509, 24.4637810, 33.7419917,
842
 24.4637810, 36.9931811, 24.4637810,      64.0f,
843
 27.4731418,  0.0000000, 27.4731418,  1.0000000,
844
 27.4731418,  2.5198421, 27.4731418,  4.3267487,
845
 27.4731418,  6.3496042, 27.4731418,  8.5498797,
846
 27.4731418, 10.9027236, 27.4731418, 13.3905183,
847
 27.4731418, 16.0000000, 27.4731418, 18.7207544,
848
 27.4731418, 21.5443469, 27.4731418, 24.4637810,
849
 27.4731418, 27.4731418, 27.4731418, 30.5673509,
850
 27.4731418, 33.7419917, 27.4731418, 36.9931811,
851
 27.4731418,      64.0f, 30.5673509,  0.0000000,
852
 30.5673509,  1.0000000, 30.5673509,  2.5198421,
853
 30.5673509,  4.3267487, 30.5673509,  6.3496042,
854
 30.5673509,  8.5498797, 30.5673509, 10.9027236,
855
 30.5673509, 13.3905183, 30.5673509, 16.0000000,
856
 30.5673509, 18.7207544, 30.5673509, 21.5443469,
857
 30.5673509, 24.4637810, 30.5673509, 27.4731418,
858
 30.5673509, 30.5673509, 30.5673509, 33.7419917,
859
 30.5673509, 36.9931811, 30.5673509,      64.0f,
860
 33.7419917,  0.0000000, 33.7419917,  1.0000000,
861
 33.7419917,  2.5198421, 33.7419917,  4.3267487,
862
 33.7419917,  6.3496042, 33.7419917,  8.5498797,
863
 33.7419917, 10.9027236, 33.7419917, 13.3905183,
864
 33.7419917, 16.0000000, 33.7419917, 18.7207544,
865
 33.7419917, 21.5443469, 33.7419917, 24.4637810,
866
 33.7419917, 27.4731418, 33.7419917, 30.5673509,
867
 33.7419917, 33.7419917, 33.7419917, 36.9931811,
868
 33.7419917,      64.0f, 36.9931811,  0.0000000,
869
 36.9931811,  1.0000000, 36.9931811,  2.5198421,
870
 36.9931811,  4.3267487, 36.9931811,  6.3496042,
871
 36.9931811,  8.5498797, 36.9931811, 10.9027236,
872
 36.9931811, 13.3905183, 36.9931811, 16.0000000,
873
 36.9931811, 18.7207544, 36.9931811, 21.5443469,
874
 36.9931811, 24.4637810, 36.9931811, 27.4731418,
875
 36.9931811, 30.5673509, 36.9931811, 33.7419917,
876
 36.9931811, 36.9931811, 36.9931811,      64.0f,
877
      64.0f,  0.0000000,      64.0f,  1.0000000,
878
      64.0f,  2.5198421,      64.0f,  4.3267487,
879
      64.0f,  6.3496042,      64.0f,  8.5498797,
880
      64.0f, 10.9027236,      64.0f, 13.3905183,
881
      64.0f, 16.0000000,      64.0f, 18.7207544,
882
      64.0f, 21.5443469,      64.0f, 24.4637810,
883
      64.0f, 27.4731418,      64.0f, 30.5673509,
884
      64.0f, 33.7419917,      64.0f, 36.9931811,
885
      64.0f,      64.0f,
886
};
887

    
888
const float *ff_aac_codebook_vectors[] = {
889
    codebook_vector0, codebook_vector0, codebook_vector2,
890
    codebook_vector2, codebook_vector4, codebook_vector4,
891
    codebook_vector6, codebook_vector6, codebook_vector8,
892
    codebook_vector8, codebook_vector10,
893
};
894

    
895
#ifdef CONFIG_HARDCODED_TABLES
896

    
897
/**
898
 * Table of pow(2, (i - 200)/4.) used for different purposes depending on the
899
 * range of indices to the table:
900
 * [ 0, 255] scale factor decoding when using C dsp.float_to_int16
901
 * [60, 315] scale factor decoding when using SIMD dsp.float_to_int16
902
 * [45, 300] intensity stereo position decoding mapped in reverse order i.e. 0->300, 1->299, ..., 254->46, 255->45
903
 */
904
const float ff_aac_pow2sf_tab[316] = {
905
    8.88178420e-16, 1.05622810e-15, 1.25607397e-15, 1.49373210e-15,
906
    1.77635684e-15, 2.11245619e-15, 2.51214793e-15, 2.98746420e-15,
907
    3.55271368e-15, 4.22491238e-15, 5.02429587e-15, 5.97492839e-15,
908
    7.10542736e-15, 8.44982477e-15, 1.00485917e-14, 1.19498568e-14,
909
    1.42108547e-14, 1.68996495e-14, 2.00971835e-14, 2.38997136e-14,
910
    2.84217094e-14, 3.37992991e-14, 4.01943669e-14, 4.77994272e-14,
911
    5.68434189e-14, 6.75985982e-14, 8.03887339e-14, 9.55988543e-14,
912
    1.13686838e-13, 1.35197196e-13, 1.60777468e-13, 1.91197709e-13,
913
    2.27373675e-13, 2.70394393e-13, 3.21554936e-13, 3.82395417e-13,
914
    4.54747351e-13, 5.40788785e-13, 6.43109871e-13, 7.64790834e-13,
915
    9.09494702e-13, 1.08157757e-12, 1.28621974e-12, 1.52958167e-12,
916
    1.81898940e-12, 2.16315514e-12, 2.57243948e-12, 3.05916334e-12,
917
    3.63797881e-12, 4.32631028e-12, 5.14487897e-12, 6.11832668e-12,
918
    7.27595761e-12, 8.65262056e-12, 1.02897579e-11, 1.22366534e-11,
919
    1.45519152e-11, 1.73052411e-11, 2.05795159e-11, 2.44733067e-11,
920
    2.91038305e-11, 3.46104823e-11, 4.11590317e-11, 4.89466134e-11,
921
    5.82076609e-11, 6.92209645e-11, 8.23180635e-11, 9.78932268e-11,
922
    1.16415322e-10, 1.38441929e-10, 1.64636127e-10, 1.95786454e-10,
923
    2.32830644e-10, 2.76883858e-10, 3.29272254e-10, 3.91572907e-10,
924
    4.65661287e-10, 5.53767716e-10, 6.58544508e-10, 7.83145814e-10,
925
    9.31322575e-10, 1.10753543e-09, 1.31708902e-09, 1.56629163e-09,
926
    1.86264515e-09, 2.21507086e-09, 2.63417803e-09, 3.13258326e-09,
927
    3.72529030e-09, 4.43014173e-09, 5.26835606e-09, 6.26516652e-09,
928
    7.45058060e-09, 8.86028346e-09, 1.05367121e-08, 1.25303330e-08,
929
    1.49011612e-08, 1.77205669e-08, 2.10734243e-08, 2.50606661e-08,
930
    2.98023224e-08, 3.54411338e-08, 4.21468485e-08, 5.01213321e-08,
931
    5.96046448e-08, 7.08822677e-08, 8.42936970e-08, 1.00242664e-07,
932
    1.19209290e-07, 1.41764535e-07, 1.68587394e-07, 2.00485328e-07,
933
    2.38418579e-07, 2.83529071e-07, 3.37174788e-07, 4.00970657e-07,
934
    4.76837158e-07, 5.67058141e-07, 6.74349576e-07, 8.01941314e-07,
935
    9.53674316e-07, 1.13411628e-06, 1.34869915e-06, 1.60388263e-06,
936
    1.90734863e-06, 2.26823256e-06, 2.69739830e-06, 3.20776526e-06,
937
    3.81469727e-06, 4.53646513e-06, 5.39479661e-06, 6.41553051e-06,
938
    7.62939453e-06, 9.07293026e-06, 1.07895932e-05, 1.28310610e-05,
939
    1.52587891e-05, 1.81458605e-05, 2.15791864e-05, 2.56621220e-05,
940
    3.05175781e-05, 3.62917210e-05, 4.31583729e-05, 5.13242441e-05,
941
    6.10351562e-05, 7.25834421e-05, 8.63167458e-05, 1.02648488e-04,
942
    1.22070312e-04, 1.45166884e-04, 1.72633492e-04, 2.05296976e-04,
943
    2.44140625e-04, 2.90333768e-04, 3.45266983e-04, 4.10593953e-04,
944
    4.88281250e-04, 5.80667537e-04, 6.90533966e-04, 8.21187906e-04,
945
    9.76562500e-04, 1.16133507e-03, 1.38106793e-03, 1.64237581e-03,
946
    1.95312500e-03, 2.32267015e-03, 2.76213586e-03, 3.28475162e-03,
947
    3.90625000e-03, 4.64534029e-03, 5.52427173e-03, 6.56950324e-03,
948
    7.81250000e-03, 9.29068059e-03, 1.10485435e-02, 1.31390065e-02,
949
    1.56250000e-02, 1.85813612e-02, 2.20970869e-02, 2.62780130e-02,
950
    3.12500000e-02, 3.71627223e-02, 4.41941738e-02, 5.25560260e-02,
951
    6.25000000e-02, 7.43254447e-02, 8.83883476e-02, 1.05112052e-01,
952
    1.25000000e-01, 1.48650889e-01, 1.76776695e-01, 2.10224104e-01,
953
    2.50000000e-01, 2.97301779e-01, 3.53553391e-01, 4.20448208e-01,
954
    5.00000000e-01, 5.94603558e-01, 7.07106781e-01, 8.40896415e-01,
955
    1.00000000e+00, 1.18920712e+00, 1.41421356e+00, 1.68179283e+00,
956
    2.00000000e+00, 2.37841423e+00, 2.82842712e+00, 3.36358566e+00,
957
    4.00000000e+00, 4.75682846e+00, 5.65685425e+00, 6.72717132e+00,
958
    8.00000000e+00, 9.51365692e+00, 1.13137085e+01, 1.34543426e+01,
959
    1.60000000e+01, 1.90273138e+01, 2.26274170e+01, 2.69086853e+01,
960
    3.20000000e+01, 3.80546277e+01, 4.52548340e+01, 5.38173706e+01,
961
    6.40000000e+01, 7.61092554e+01, 9.05096680e+01, 1.07634741e+02,
962
    1.28000000e+02, 1.52218511e+02, 1.81019336e+02, 2.15269482e+02,
963
    2.56000000e+02, 3.04437021e+02, 3.62038672e+02, 4.30538965e+02,
964
    5.12000000e+02, 6.08874043e+02, 7.24077344e+02, 8.61077929e+02,
965
    1.02400000e+03, 1.21774809e+03, 1.44815469e+03, 1.72215586e+03,
966
    2.04800000e+03, 2.43549617e+03, 2.89630938e+03, 3.44431172e+03,
967
    4.09600000e+03, 4.87099234e+03, 5.79261875e+03, 6.88862343e+03,
968
    8.19200000e+03, 9.74198469e+03, 1.15852375e+04, 1.37772469e+04,
969
    1.63840000e+04, 1.94839694e+04, 2.31704750e+04, 2.75544937e+04,
970
    3.27680000e+04, 3.89679387e+04, 4.63409500e+04, 5.51089875e+04,
971
    6.55360000e+04, 7.79358775e+04, 9.26819000e+04, 1.10217975e+05,
972
    1.31072000e+05, 1.55871755e+05, 1.85363800e+05, 2.20435950e+05,
973
    2.62144000e+05, 3.11743510e+05, 3.70727600e+05, 4.40871900e+05,
974
    5.24288000e+05, 6.23487020e+05, 7.41455200e+05, 8.81743800e+05,
975
    1.04857600e+06, 1.24697404e+06, 1.48291040e+06, 1.76348760e+06,
976
    2.09715200e+06, 2.49394808e+06, 2.96582080e+06, 3.52697520e+06,
977
    4.19430400e+06, 4.98789616e+06, 5.93164160e+06, 7.05395040e+06,
978
    8.38860800e+06, 9.97579232e+06, 1.18632832e+07, 1.41079008e+07,
979
    1.67772160e+07, 1.99515846e+07, 2.37265664e+07, 2.82158016e+07,
980
    3.35544320e+07, 3.99031693e+07, 4.74531328e+07, 5.64316032e+07,
981
    6.71088640e+07, 7.98063385e+07, 9.49062656e+07, 1.12863206e+08,
982
    1.34217728e+08, 1.59612677e+08, 1.89812531e+08, 2.25726413e+08,
983
    2.68435456e+08, 3.19225354e+08, 3.79625062e+08, 4.51452825e+08,
984
};
985

    
986
#endif /* CONFIG_HARDCODED_TABLES */