00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00030 #include "libavutil/mem.h"
00031 #include "aac.h"
00032 #include "aac_tablegen.h"
00033
00034 #include <stdint.h>
00035
00036 DECLARE_ALIGNED(16, float, ff_aac_kbd_long_1024)[1024];
00037 DECLARE_ALIGNED(16, float, ff_aac_kbd_short_128)[128];
00038
00039 const uint8_t ff_aac_num_swb_1024[] = {
00040 41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40, 40
00041 };
00042
00043 const uint8_t ff_aac_num_swb_128[] = {
00044 12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15
00045 };
00046
00047 const uint8_t ff_aac_pred_sfb_max[] = {
00048 33, 33, 38, 40, 40, 40, 41, 41, 37, 37, 37, 34, 34
00049 };
00050
00051 const uint32_t ff_aac_scalefactor_code[121] = {
00052 0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6,
00053 0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7,
00054 0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0,
00055 0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7,
00056 0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5,
00057 0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7,
00058 0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a,
00059 0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b,
00060 0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9,
00061 0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5,
00062 0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4,
00063 0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd,
00064 0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2,
00065 0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0,
00066 0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4,
00067 0x7fff3,
00068 };
00069
00070 const uint8_t ff_aac_scalefactor_bits[121] = {
00071 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
00072 19, 19, 19, 18, 19, 18, 17, 17, 16, 17, 16, 16, 16, 16, 15, 15,
00073 14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11, 12, 11, 10, 10,
00074 10, 9, 9, 8, 8, 8, 7, 6, 6, 5, 4, 3, 1, 4, 4, 5,
00075 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12,
00076 12, 13, 13, 13, 14, 14, 16, 15, 16, 15, 18, 19, 19, 19, 19, 19,
00077 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
00078 19, 19, 19, 19, 19, 19, 19, 19, 19,
00079 };
00080
00081 static const uint16_t codes1[81] = {
00082 0x7f8, 0x1f1, 0x7fd, 0x3f5, 0x068, 0x3f0, 0x7f7, 0x1ec,
00083 0x7f5, 0x3f1, 0x072, 0x3f4, 0x074, 0x011, 0x076, 0x1eb,
00084 0x06c, 0x3f6, 0x7fc, 0x1e1, 0x7f1, 0x1f0, 0x061, 0x1f6,
00085 0x7f2, 0x1ea, 0x7fb, 0x1f2, 0x069, 0x1ed, 0x077, 0x017,
00086 0x06f, 0x1e6, 0x064, 0x1e5, 0x067, 0x015, 0x062, 0x012,
00087 0x000, 0x014, 0x065, 0x016, 0x06d, 0x1e9, 0x063, 0x1e4,
00088 0x06b, 0x013, 0x071, 0x1e3, 0x070, 0x1f3, 0x7fe, 0x1e7,
00089 0x7f3, 0x1ef, 0x060, 0x1ee, 0x7f0, 0x1e2, 0x7fa, 0x3f3,
00090 0x06a, 0x1e8, 0x075, 0x010, 0x073, 0x1f4, 0x06e, 0x3f7,
00091 0x7f6, 0x1e0, 0x7f9, 0x3f2, 0x066, 0x1f5, 0x7ff, 0x1f7,
00092 0x7f4,
00093 };
00094
00095 static const uint8_t bits1[81] = {
00096 11, 9, 11, 10, 7, 10, 11, 9, 11, 10, 7, 10, 7, 5, 7, 9,
00097 7, 10, 11, 9, 11, 9, 7, 9, 11, 9, 11, 9, 7, 9, 7, 5,
00098 7, 9, 7, 9, 7, 5, 7, 5, 1, 5, 7, 5, 7, 9, 7, 9,
00099 7, 5, 7, 9, 7, 9, 11, 9, 11, 9, 7, 9, 11, 9, 11, 10,
00100 7, 9, 7, 5, 7, 9, 7, 10, 11, 9, 11, 10, 7, 9, 11, 9,
00101 11,
00102 };
00103
00104 static const uint16_t codes2[81] = {
00105 0x1f3, 0x06f, 0x1fd, 0x0eb, 0x023, 0x0ea, 0x1f7, 0x0e8,
00106 0x1fa, 0x0f2, 0x02d, 0x070, 0x020, 0x006, 0x02b, 0x06e,
00107 0x028, 0x0e9, 0x1f9, 0x066, 0x0f8, 0x0e7, 0x01b, 0x0f1,
00108 0x1f4, 0x06b, 0x1f5, 0x0ec, 0x02a, 0x06c, 0x02c, 0x00a,
00109 0x027, 0x067, 0x01a, 0x0f5, 0x024, 0x008, 0x01f, 0x009,
00110 0x000, 0x007, 0x01d, 0x00b, 0x030, 0x0ef, 0x01c, 0x064,
00111 0x01e, 0x00c, 0x029, 0x0f3, 0x02f, 0x0f0, 0x1fc, 0x071,
00112 0x1f2, 0x0f4, 0x021, 0x0e6, 0x0f7, 0x068, 0x1f8, 0x0ee,
00113 0x022, 0x065, 0x031, 0x002, 0x026, 0x0ed, 0x025, 0x06a,
00114 0x1fb, 0x072, 0x1fe, 0x069, 0x02e, 0x0f6, 0x1ff, 0x06d,
00115 0x1f6,
00116 };
00117
00118 static const uint8_t bits2[81] = {
00119 9, 7, 9, 8, 6, 8, 9, 8, 9, 8, 6, 7, 6, 5, 6, 7,
00120 6, 8, 9, 7, 8, 8, 6, 8, 9, 7, 9, 8, 6, 7, 6, 5,
00121 6, 7, 6, 8, 6, 5, 6, 5, 3, 5, 6, 5, 6, 8, 6, 7,
00122 6, 5, 6, 8, 6, 8, 9, 7, 9, 8, 6, 8, 8, 7, 9, 8,
00123 6, 7, 6, 4, 6, 8, 6, 7, 9, 7, 9, 7, 6, 8, 9, 7,
00124 9,
00125 };
00126
00127 static const uint16_t codes3[81] = {
00128 0x0000, 0x0009, 0x00ef, 0x000b, 0x0019, 0x00f0, 0x01eb, 0x01e6,
00129 0x03f2, 0x000a, 0x0035, 0x01ef, 0x0034, 0x0037, 0x01e9, 0x01ed,
00130 0x01e7, 0x03f3, 0x01ee, 0x03ed, 0x1ffa, 0x01ec, 0x01f2, 0x07f9,
00131 0x07f8, 0x03f8, 0x0ff8, 0x0008, 0x0038, 0x03f6, 0x0036, 0x0075,
00132 0x03f1, 0x03eb, 0x03ec, 0x0ff4, 0x0018, 0x0076, 0x07f4, 0x0039,
00133 0x0074, 0x03ef, 0x01f3, 0x01f4, 0x07f6, 0x01e8, 0x03ea, 0x1ffc,
00134 0x00f2, 0x01f1, 0x0ffb, 0x03f5, 0x07f3, 0x0ffc, 0x00ee, 0x03f7,
00135 0x7ffe, 0x01f0, 0x07f5, 0x7ffd, 0x1ffb, 0x3ffa, 0xffff, 0x00f1,
00136 0x03f0, 0x3ffc, 0x01ea, 0x03ee, 0x3ffb, 0x0ff6, 0x0ffa, 0x7ffc,
00137 0x07f2, 0x0ff5, 0xfffe, 0x03f4, 0x07f7, 0x7ffb, 0x0ff7, 0x0ff9,
00138 0x7ffa,
00139 };
00140
00141 static const uint8_t bits3[81] = {
00142 1, 4, 8, 4, 5, 8, 9, 9, 10, 4, 6, 9, 6, 6, 9, 9,
00143 9, 10, 9, 10, 13, 9, 9, 11, 11, 10, 12, 4, 6, 10, 6, 7,
00144 10, 10, 10, 12, 5, 7, 11, 6, 7, 10, 9, 9, 11, 9, 10, 13,
00145 8, 9, 12, 10, 11, 12, 8, 10, 15, 9, 11, 15, 13, 14, 16, 8,
00146 10, 14, 9, 10, 14, 12, 12, 15, 11, 12, 16, 10, 11, 15, 12, 12,
00147 15,
00148 };
00149
00150 static const uint16_t codes4[81] = {
00151 0x007, 0x016, 0x0f6, 0x018, 0x008, 0x0ef, 0x1ef, 0x0f3,
00152 0x7f8, 0x019, 0x017, 0x0ed, 0x015, 0x001, 0x0e2, 0x0f0,
00153 0x070, 0x3f0, 0x1ee, 0x0f1, 0x7fa, 0x0ee, 0x0e4, 0x3f2,
00154 0x7f6, 0x3ef, 0x7fd, 0x005, 0x014, 0x0f2, 0x009, 0x004,
00155 0x0e5, 0x0f4, 0x0e8, 0x3f4, 0x006, 0x002, 0x0e7, 0x003,
00156 0x000, 0x06b, 0x0e3, 0x069, 0x1f3, 0x0eb, 0x0e6, 0x3f6,
00157 0x06e, 0x06a, 0x1f4, 0x3ec, 0x1f0, 0x3f9, 0x0f5, 0x0ec,
00158 0x7fb, 0x0ea, 0x06f, 0x3f7, 0x7f9, 0x3f3, 0xfff, 0x0e9,
00159 0x06d, 0x3f8, 0x06c, 0x068, 0x1f5, 0x3ee, 0x1f2, 0x7f4,
00160 0x7f7, 0x3f1, 0xffe, 0x3ed, 0x1f1, 0x7f5, 0x7fe, 0x3f5,
00161 0x7fc,
00162 };
00163
00164 static const uint8_t bits4[81] = {
00165 4, 5, 8, 5, 4, 8, 9, 8, 11, 5, 5, 8, 5, 4, 8, 8,
00166 7, 10, 9, 8, 11, 8, 8, 10, 11, 10, 11, 4, 5, 8, 4, 4,
00167 8, 8, 8, 10, 4, 4, 8, 4, 4, 7, 8, 7, 9, 8, 8, 10,
00168 7, 7, 9, 10, 9, 10, 8, 8, 11, 8, 7, 10, 11, 10, 12, 8,
00169 7, 10, 7, 7, 9, 10, 9, 11, 11, 10, 12, 10, 9, 11, 11, 10,
00170 11,
00171 };
00172
00173 static const uint16_t codes5[81] = {
00174 0x1fff, 0x0ff7, 0x07f4, 0x07e8, 0x03f1, 0x07ee, 0x07f9, 0x0ff8,
00175 0x1ffd, 0x0ffd, 0x07f1, 0x03e8, 0x01e8, 0x00f0, 0x01ec, 0x03ee,
00176 0x07f2, 0x0ffa, 0x0ff4, 0x03ef, 0x01f2, 0x00e8, 0x0070, 0x00ec,
00177 0x01f0, 0x03ea, 0x07f3, 0x07eb, 0x01eb, 0x00ea, 0x001a, 0x0008,
00178 0x0019, 0x00ee, 0x01ef, 0x07ed, 0x03f0, 0x00f2, 0x0073, 0x000b,
00179 0x0000, 0x000a, 0x0071, 0x00f3, 0x07e9, 0x07ef, 0x01ee, 0x00ef,
00180 0x0018, 0x0009, 0x001b, 0x00eb, 0x01e9, 0x07ec, 0x07f6, 0x03eb,
00181 0x01f3, 0x00ed, 0x0072, 0x00e9, 0x01f1, 0x03ed, 0x07f7, 0x0ff6,
00182 0x07f0, 0x03e9, 0x01ed, 0x00f1, 0x01ea, 0x03ec, 0x07f8, 0x0ff9,
00183 0x1ffc, 0x0ffc, 0x0ff5, 0x07ea, 0x03f3, 0x03f2, 0x07f5, 0x0ffb,
00184 0x1ffe,
00185 };
00186
00187 static const uint8_t bits5[81] = {
00188 13, 12, 11, 11, 10, 11, 11, 12, 13, 12, 11, 10, 9, 8, 9, 10,
00189 11, 12, 12, 10, 9, 8, 7, 8, 9, 10, 11, 11, 9, 8, 5, 4,
00190 5, 8, 9, 11, 10, 8, 7, 4, 1, 4, 7, 8, 11, 11, 9, 8,
00191 5, 4, 5, 8, 9, 11, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12,
00192 11, 10, 9, 8, 9, 10, 11, 12, 13, 12, 12, 11, 10, 10, 11, 12,
00193 13,
00194 };
00195
00196 static const uint16_t codes6[81] = {
00197 0x7fe, 0x3fd, 0x1f1, 0x1eb, 0x1f4, 0x1ea, 0x1f0, 0x3fc,
00198 0x7fd, 0x3f6, 0x1e5, 0x0ea, 0x06c, 0x071, 0x068, 0x0f0,
00199 0x1e6, 0x3f7, 0x1f3, 0x0ef, 0x032, 0x027, 0x028, 0x026,
00200 0x031, 0x0eb, 0x1f7, 0x1e8, 0x06f, 0x02e, 0x008, 0x004,
00201 0x006, 0x029, 0x06b, 0x1ee, 0x1ef, 0x072, 0x02d, 0x002,
00202 0x000, 0x003, 0x02f, 0x073, 0x1fa, 0x1e7, 0x06e, 0x02b,
00203 0x007, 0x001, 0x005, 0x02c, 0x06d, 0x1ec, 0x1f9, 0x0ee,
00204 0x030, 0x024, 0x02a, 0x025, 0x033, 0x0ec, 0x1f2, 0x3f8,
00205 0x1e4, 0x0ed, 0x06a, 0x070, 0x069, 0x074, 0x0f1, 0x3fa,
00206 0x7ff, 0x3f9, 0x1f6, 0x1ed, 0x1f8, 0x1e9, 0x1f5, 0x3fb,
00207 0x7fc,
00208 };
00209
00210 static const uint8_t bits6[81] = {
00211 11, 10, 9, 9, 9, 9, 9, 10, 11, 10, 9, 8, 7, 7, 7, 8,
00212 9, 10, 9, 8, 6, 6, 6, 6, 6, 8, 9, 9, 7, 6, 4, 4,
00213 4, 6, 7, 9, 9, 7, 6, 4, 4, 4, 6, 7, 9, 9, 7, 6,
00214 4, 4, 4, 6, 7, 9, 9, 8, 6, 6, 6, 6, 6, 8, 9, 10,
00215 9, 8, 7, 7, 7, 7, 8, 10, 11, 10, 9, 9, 9, 9, 9, 10,
00216 11,
00217 };
00218
00219 static const uint16_t codes7[64] = {
00220 0x000, 0x005, 0x037, 0x074, 0x0f2, 0x1eb, 0x3ed, 0x7f7,
00221 0x004, 0x00c, 0x035, 0x071, 0x0ec, 0x0ee, 0x1ee, 0x1f5,
00222 0x036, 0x034, 0x072, 0x0ea, 0x0f1, 0x1e9, 0x1f3, 0x3f5,
00223 0x073, 0x070, 0x0eb, 0x0f0, 0x1f1, 0x1f0, 0x3ec, 0x3fa,
00224 0x0f3, 0x0ed, 0x1e8, 0x1ef, 0x3ef, 0x3f1, 0x3f9, 0x7fb,
00225 0x1ed, 0x0ef, 0x1ea, 0x1f2, 0x3f3, 0x3f8, 0x7f9, 0x7fc,
00226 0x3ee, 0x1ec, 0x1f4, 0x3f4, 0x3f7, 0x7f8, 0xffd, 0xffe,
00227 0x7f6, 0x3f0, 0x3f2, 0x3f6, 0x7fa, 0x7fd, 0xffc, 0xfff,
00228 };
00229
00230 static const uint8_t bits7[64] = {
00231 1, 3, 6, 7, 8, 9, 10, 11, 3, 4, 6, 7, 8, 8, 9, 9,
00232 6, 6, 7, 8, 8, 9, 9, 10, 7, 7, 8, 8, 9, 9, 10, 10,
00233 8, 8, 9, 9, 10, 10, 10, 11, 9, 8, 9, 9, 10, 10, 11, 11,
00234 10, 9, 9, 10, 10, 11, 12, 12, 11, 10, 10, 10, 11, 11, 12, 12,
00235 };
00236
00237 static const uint16_t codes8[64] = {
00238 0x00e, 0x005, 0x010, 0x030, 0x06f, 0x0f1, 0x1fa, 0x3fe,
00239 0x003, 0x000, 0x004, 0x012, 0x02c, 0x06a, 0x075, 0x0f8,
00240 0x00f, 0x002, 0x006, 0x014, 0x02e, 0x069, 0x072, 0x0f5,
00241 0x02f, 0x011, 0x013, 0x02a, 0x032, 0x06c, 0x0ec, 0x0fa,
00242 0x071, 0x02b, 0x02d, 0x031, 0x06d, 0x070, 0x0f2, 0x1f9,
00243 0x0ef, 0x068, 0x033, 0x06b, 0x06e, 0x0ee, 0x0f9, 0x3fc,
00244 0x1f8, 0x074, 0x073, 0x0ed, 0x0f0, 0x0f6, 0x1f6, 0x1fd,
00245 0x3fd, 0x0f3, 0x0f4, 0x0f7, 0x1f7, 0x1fb, 0x1fc, 0x3ff,
00246 };
00247
00248 static const uint8_t bits8[64] = {
00249 5, 4, 5, 6, 7, 8, 9, 10, 4, 3, 4, 5, 6, 7, 7, 8,
00250 5, 4, 4, 5, 6, 7, 7, 8, 6, 5, 5, 6, 6, 7, 8, 8,
00251 7, 6, 6, 6, 7, 7, 8, 9, 8, 7, 6, 7, 7, 8, 8, 10,
00252 9, 7, 7, 8, 8, 8, 9, 9, 10, 8, 8, 8, 9, 9, 9, 10,
00253 };
00254
00255 static const uint16_t codes9[169] = {
00256 0x0000, 0x0005, 0x0037, 0x00e7, 0x01de, 0x03ce, 0x03d9, 0x07c8,
00257 0x07cd, 0x0fc8, 0x0fdd, 0x1fe4, 0x1fec, 0x0004, 0x000c, 0x0035,
00258 0x0072, 0x00ea, 0x00ed, 0x01e2, 0x03d1, 0x03d3, 0x03e0, 0x07d8,
00259 0x0fcf, 0x0fd5, 0x0036, 0x0034, 0x0071, 0x00e8, 0x00ec, 0x01e1,
00260 0x03cf, 0x03dd, 0x03db, 0x07d0, 0x0fc7, 0x0fd4, 0x0fe4, 0x00e6,
00261 0x0070, 0x00e9, 0x01dd, 0x01e3, 0x03d2, 0x03dc, 0x07cc, 0x07ca,
00262 0x07de, 0x0fd8, 0x0fea, 0x1fdb, 0x01df, 0x00eb, 0x01dc, 0x01e6,
00263 0x03d5, 0x03de, 0x07cb, 0x07dd, 0x07dc, 0x0fcd, 0x0fe2, 0x0fe7,
00264 0x1fe1, 0x03d0, 0x01e0, 0x01e4, 0x03d6, 0x07c5, 0x07d1, 0x07db,
00265 0x0fd2, 0x07e0, 0x0fd9, 0x0feb, 0x1fe3, 0x1fe9, 0x07c4, 0x01e5,
00266 0x03d7, 0x07c6, 0x07cf, 0x07da, 0x0fcb, 0x0fda, 0x0fe3, 0x0fe9,
00267 0x1fe6, 0x1ff3, 0x1ff7, 0x07d3, 0x03d8, 0x03e1, 0x07d4, 0x07d9,
00268 0x0fd3, 0x0fde, 0x1fdd, 0x1fd9, 0x1fe2, 0x1fea, 0x1ff1, 0x1ff6,
00269 0x07d2, 0x03d4, 0x03da, 0x07c7, 0x07d7, 0x07e2, 0x0fce, 0x0fdb,
00270 0x1fd8, 0x1fee, 0x3ff0, 0x1ff4, 0x3ff2, 0x07e1, 0x03df, 0x07c9,
00271 0x07d6, 0x0fca, 0x0fd0, 0x0fe5, 0x0fe6, 0x1feb, 0x1fef, 0x3ff3,
00272 0x3ff4, 0x3ff5, 0x0fe0, 0x07ce, 0x07d5, 0x0fc6, 0x0fd1, 0x0fe1,
00273 0x1fe0, 0x1fe8, 0x1ff0, 0x3ff1, 0x3ff8, 0x3ff6, 0x7ffc, 0x0fe8,
00274 0x07df, 0x0fc9, 0x0fd7, 0x0fdc, 0x1fdc, 0x1fdf, 0x1fed, 0x1ff5,
00275 0x3ff9, 0x3ffb, 0x7ffd, 0x7ffe, 0x1fe7, 0x0fcc, 0x0fd6, 0x0fdf,
00276 0x1fde, 0x1fda, 0x1fe5, 0x1ff2, 0x3ffa, 0x3ff7, 0x3ffc, 0x3ffd,
00277 0x7fff,
00278 };
00279
00280 static const uint8_t bits9[169] = {
00281 1, 3, 6, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 3, 4, 6,
00282 7, 8, 8, 9, 10, 10, 10, 11, 12, 12, 6, 6, 7, 8, 8, 9,
00283 10, 10, 10, 11, 12, 12, 12, 8, 7, 8, 9, 9, 10, 10, 11, 11,
00284 11, 12, 12, 13, 9, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12,
00285 13, 10, 9, 9, 10, 11, 11, 11, 12, 11, 12, 12, 13, 13, 11, 9,
00286 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 11, 10, 10, 11, 11,
00287 12, 12, 13, 13, 13, 13, 13, 13, 11, 10, 10, 11, 11, 11, 12, 12,
00288 13, 13, 14, 13, 14, 11, 10, 11, 11, 12, 12, 12, 12, 13, 13, 14,
00289 14, 14, 12, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 12,
00290 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15, 13, 12, 12, 12,
00291 13, 13, 13, 13, 14, 14, 14, 14, 15,
00292 };
00293
00294 static const uint16_t codes10[169] = {
00295 0x022, 0x008, 0x01d, 0x026, 0x05f, 0x0d3, 0x1cf, 0x3d0,
00296 0x3d7, 0x3ed, 0x7f0, 0x7f6, 0xffd, 0x007, 0x000, 0x001,
00297 0x009, 0x020, 0x054, 0x060, 0x0d5, 0x0dc, 0x1d4, 0x3cd,
00298 0x3de, 0x7e7, 0x01c, 0x002, 0x006, 0x00c, 0x01e, 0x028,
00299 0x05b, 0x0cd, 0x0d9, 0x1ce, 0x1dc, 0x3d9, 0x3f1, 0x025,
00300 0x00b, 0x00a, 0x00d, 0x024, 0x057, 0x061, 0x0cc, 0x0dd,
00301 0x1cc, 0x1de, 0x3d3, 0x3e7, 0x05d, 0x021, 0x01f, 0x023,
00302 0x027, 0x059, 0x064, 0x0d8, 0x0df, 0x1d2, 0x1e2, 0x3dd,
00303 0x3ee, 0x0d1, 0x055, 0x029, 0x056, 0x058, 0x062, 0x0ce,
00304 0x0e0, 0x0e2, 0x1da, 0x3d4, 0x3e3, 0x7eb, 0x1c9, 0x05e,
00305 0x05a, 0x05c, 0x063, 0x0ca, 0x0da, 0x1c7, 0x1ca, 0x1e0,
00306 0x3db, 0x3e8, 0x7ec, 0x1e3, 0x0d2, 0x0cb, 0x0d0, 0x0d7,
00307 0x0db, 0x1c6, 0x1d5, 0x1d8, 0x3ca, 0x3da, 0x7ea, 0x7f1,
00308 0x1e1, 0x0d4, 0x0cf, 0x0d6, 0x0de, 0x0e1, 0x1d0, 0x1d6,
00309 0x3d1, 0x3d5, 0x3f2, 0x7ee, 0x7fb, 0x3e9, 0x1cd, 0x1c8,
00310 0x1cb, 0x1d1, 0x1d7, 0x1df, 0x3cf, 0x3e0, 0x3ef, 0x7e6,
00311 0x7f8, 0xffa, 0x3eb, 0x1dd, 0x1d3, 0x1d9, 0x1db, 0x3d2,
00312 0x3cc, 0x3dc, 0x3ea, 0x7ed, 0x7f3, 0x7f9, 0xff9, 0x7f2,
00313 0x3ce, 0x1e4, 0x3cb, 0x3d8, 0x3d6, 0x3e2, 0x3e5, 0x7e8,
00314 0x7f4, 0x7f5, 0x7f7, 0xffb, 0x7fa, 0x3ec, 0x3df, 0x3e1,
00315 0x3e4, 0x3e6, 0x3f0, 0x7e9, 0x7ef, 0xff8, 0xffe, 0xffc,
00316 0xfff,
00317 };
00318
00319 static const uint8_t bits10[169] = {
00320 6, 5, 6, 6, 7, 8, 9, 10, 10, 10, 11, 11, 12, 5, 4, 4,
00321 5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 6, 4, 5, 5, 6, 6,
00322 7, 8, 8, 9, 9, 10, 10, 6, 5, 5, 5, 6, 7, 7, 8, 8,
00323 9, 9, 10, 10, 7, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 10,
00324 10, 8, 7, 6, 7, 7, 7, 8, 8, 8, 9, 10, 10, 11, 9, 7,
00325 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 9, 8, 8, 8, 8,
00326 8, 9, 9, 9, 10, 10, 11, 11, 9, 8, 8, 8, 8, 8, 9, 9,
00327 10, 10, 10, 11, 11, 10, 9, 9, 9, 9, 9, 9, 10, 10, 10, 11,
00328 11, 12, 10, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 11,
00329 10, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 11, 10, 10, 10,
00330 10, 10, 10, 11, 11, 12, 12, 12, 12,
00331 };
00332
00333 static const uint16_t codes11[289] = {
00334 0x000, 0x006, 0x019, 0x03d, 0x09c, 0x0c6, 0x1a7, 0x390,
00335 0x3c2, 0x3df, 0x7e6, 0x7f3, 0xffb, 0x7ec, 0xffa, 0xffe,
00336 0x38e, 0x005, 0x001, 0x008, 0x014, 0x037, 0x042, 0x092,
00337 0x0af, 0x191, 0x1a5, 0x1b5, 0x39e, 0x3c0, 0x3a2, 0x3cd,
00338 0x7d6, 0x0ae, 0x017, 0x007, 0x009, 0x018, 0x039, 0x040,
00339 0x08e, 0x0a3, 0x0b8, 0x199, 0x1ac, 0x1c1, 0x3b1, 0x396,
00340 0x3be, 0x3ca, 0x09d, 0x03c, 0x015, 0x016, 0x01a, 0x03b,
00341 0x044, 0x091, 0x0a5, 0x0be, 0x196, 0x1ae, 0x1b9, 0x3a1,
00342 0x391, 0x3a5, 0x3d5, 0x094, 0x09a, 0x036, 0x038, 0x03a,
00343 0x041, 0x08c, 0x09b, 0x0b0, 0x0c3, 0x19e, 0x1ab, 0x1bc,
00344 0x39f, 0x38f, 0x3a9, 0x3cf, 0x093, 0x0bf, 0x03e, 0x03f,
00345 0x043, 0x045, 0x09e, 0x0a7, 0x0b9, 0x194, 0x1a2, 0x1ba,
00346 0x1c3, 0x3a6, 0x3a7, 0x3bb, 0x3d4, 0x09f, 0x1a0, 0x08f,
00347 0x08d, 0x090, 0x098, 0x0a6, 0x0b6, 0x0c4, 0x19f, 0x1af,
00348 0x1bf, 0x399, 0x3bf, 0x3b4, 0x3c9, 0x3e7, 0x0a8, 0x1b6,
00349 0x0ab, 0x0a4, 0x0aa, 0x0b2, 0x0c2, 0x0c5, 0x198, 0x1a4,
00350 0x1b8, 0x38c, 0x3a4, 0x3c4, 0x3c6, 0x3dd, 0x3e8, 0x0ad,
00351 0x3af, 0x192, 0x0bd, 0x0bc, 0x18e, 0x197, 0x19a, 0x1a3,
00352 0x1b1, 0x38d, 0x398, 0x3b7, 0x3d3, 0x3d1, 0x3db, 0x7dd,
00353 0x0b4, 0x3de, 0x1a9, 0x19b, 0x19c, 0x1a1, 0x1aa, 0x1ad,
00354 0x1b3, 0x38b, 0x3b2, 0x3b8, 0x3ce, 0x3e1, 0x3e0, 0x7d2,
00355 0x7e5, 0x0b7, 0x7e3, 0x1bb, 0x1a8, 0x1a6, 0x1b0, 0x1b2,
00356 0x1b7, 0x39b, 0x39a, 0x3ba, 0x3b5, 0x3d6, 0x7d7, 0x3e4,
00357 0x7d8, 0x7ea, 0x0ba, 0x7e8, 0x3a0, 0x1bd, 0x1b4, 0x38a,
00358 0x1c4, 0x392, 0x3aa, 0x3b0, 0x3bc, 0x3d7, 0x7d4, 0x7dc,
00359 0x7db, 0x7d5, 0x7f0, 0x0c1, 0x7fb, 0x3c8, 0x3a3, 0x395,
00360 0x39d, 0x3ac, 0x3ae, 0x3c5, 0x3d8, 0x3e2, 0x3e6, 0x7e4,
00361 0x7e7, 0x7e0, 0x7e9, 0x7f7, 0x190, 0x7f2, 0x393, 0x1be,
00362 0x1c0, 0x394, 0x397, 0x3ad, 0x3c3, 0x3c1, 0x3d2, 0x7da,
00363 0x7d9, 0x7df, 0x7eb, 0x7f4, 0x7fa, 0x195, 0x7f8, 0x3bd,
00364 0x39c, 0x3ab, 0x3a8, 0x3b3, 0x3b9, 0x3d0, 0x3e3, 0x3e5,
00365 0x7e2, 0x7de, 0x7ed, 0x7f1, 0x7f9, 0x7fc, 0x193, 0xffd,
00366 0x3dc, 0x3b6, 0x3c7, 0x3cc, 0x3cb, 0x3d9, 0x3da, 0x7d3,
00367 0x7e1, 0x7ee, 0x7ef, 0x7f5, 0x7f6, 0xffc, 0xfff, 0x19d,
00368 0x1c2, 0x0b5, 0x0a1, 0x096, 0x097, 0x095, 0x099, 0x0a0,
00369 0x0a2, 0x0ac, 0x0a9, 0x0b1, 0x0b3, 0x0bb, 0x0c0, 0x18f,
00370 0x004,
00371 };
00372
00373 static const uint8_t bits11[289] = {
00374 4, 5, 6, 7, 8, 8, 9, 10, 10, 10, 11, 11, 12, 11, 12, 12,
00375 10, 5, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10,
00376 11, 8, 6, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10,
00377 10, 10, 8, 7, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10,
00378 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
00379 10, 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9,
00380 9, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9,
00381 9, 10, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 9, 9,
00382 9, 10, 10, 10, 10, 10, 10, 8, 10, 9, 8, 8, 9, 9, 9, 9,
00383 9, 10, 10, 10, 10, 10, 10, 11, 8, 10, 9, 9, 9, 9, 9, 9,
00384 9, 10, 10, 10, 10, 10, 10, 11, 11, 8, 11, 9, 9, 9, 9, 9,
00385 9, 10, 10, 10, 10, 10, 11, 10, 11, 11, 8, 11, 10, 9, 9, 10,
00386 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 8, 11, 10, 10, 10,
00387 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 9, 11, 10, 9,
00388 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 11, 10,
00389 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 12,
00390 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 9,
00391 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9,
00392 5,
00393 };
00394
00395 const uint16_t * const ff_aac_spectral_codes[11] = {
00396 codes1, codes2, codes3, codes4, codes5, codes6, codes7, codes8,
00397 codes9, codes10, codes11,
00398 };
00399
00400 const uint8_t * const ff_aac_spectral_bits[11] = {
00401 bits1, bits2, bits3, bits4, bits5, bits6, bits7, bits8,
00402 bits9, bits10, bits11,
00403 };
00404
00405 const uint16_t ff_aac_spectral_sizes[11] = {
00406 81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
00407 };
00408
00409
00410
00411
00412
00413 static const DECLARE_ALIGNED(16, float, codebook_vector0)[324] = {
00414 -1.0000000, -1.0000000, -1.0000000, -1.0000000,
00415 -1.0000000, -1.0000000, -1.0000000, 0.0000000,
00416 -1.0000000, -1.0000000, -1.0000000, 1.0000000,
00417 -1.0000000, -1.0000000, 0.0000000, -1.0000000,
00418 -1.0000000, -1.0000000, 0.0000000, 0.0000000,
00419 -1.0000000, -1.0000000, 0.0000000, 1.0000000,
00420 -1.0000000, -1.0000000, 1.0000000, -1.0000000,
00421 -1.0000000, -1.0000000, 1.0000000, 0.0000000,
00422 -1.0000000, -1.0000000, 1.0000000, 1.0000000,
00423 -1.0000000, 0.0000000, -1.0000000, -1.0000000,
00424 -1.0000000, 0.0000000, -1.0000000, 0.0000000,
00425 -1.0000000, 0.0000000, -1.0000000, 1.0000000,
00426 -1.0000000, 0.0000000, 0.0000000, -1.0000000,
00427 -1.0000000, 0.0000000, 0.0000000, 0.0000000,
00428 -1.0000000, 0.0000000, 0.0000000, 1.0000000,
00429 -1.0000000, 0.0000000, 1.0000000, -1.0000000,
00430 -1.0000000, 0.0000000, 1.0000000, 0.0000000,
00431 -1.0000000, 0.0000000, 1.0000000, 1.0000000,
00432 -1.0000000, 1.0000000, -1.0000000, -1.0000000,
00433 -1.0000000, 1.0000000, -1.0000000, 0.0000000,
00434 -1.0000000, 1.0000000, -1.0000000, 1.0000000,
00435 -1.0000000, 1.0000000, 0.0000000, -1.0000000,
00436 -1.0000000, 1.0000000, 0.0000000, 0.0000000,
00437 -1.0000000, 1.0000000, 0.0000000, 1.0000000,
00438 -1.0000000, 1.0000000, 1.0000000, -1.0000000,
00439 -1.0000000, 1.0000000, 1.0000000, 0.0000000,
00440 -1.0000000, 1.0000000, 1.0000000, 1.0000000,
00441 0.0000000, -1.0000000, -1.0000000, -1.0000000,
00442 0.0000000, -1.0000000, -1.0000000, 0.0000000,
00443 0.0000000, -1.0000000, -1.0000000, 1.0000000,
00444 0.0000000, -1.0000000, 0.0000000, -1.0000000,
00445 0.0000000, -1.0000000, 0.0000000, 0.0000000,
00446 0.0000000, -1.0000000, 0.0000000, 1.0000000,
00447 0.0000000, -1.0000000, 1.0000000, -1.0000000,
00448 0.0000000, -1.0000000, 1.0000000, 0.0000000,
00449 0.0000000, -1.0000000, 1.0000000, 1.0000000,
00450 0.0000000, 0.0000000, -1.0000000, -1.0000000,
00451 0.0000000, 0.0000000, -1.0000000, 0.0000000,
00452 0.0000000, 0.0000000, -1.0000000, 1.0000000,
00453 0.0000000, 0.0000000, 0.0000000, -1.0000000,
00454 0.0000000, 0.0000000, 0.0000000, 0.0000000,
00455 0.0000000, 0.0000000, 0.0000000, 1.0000000,
00456 0.0000000, 0.0000000, 1.0000000, -1.0000000,
00457 0.0000000, 0.0000000, 1.0000000, 0.0000000,
00458 0.0000000, 0.0000000, 1.0000000, 1.0000000,
00459 0.0000000, 1.0000000, -1.0000000, -1.0000000,
00460 0.0000000, 1.0000000, -1.0000000, 0.0000000,
00461 0.0000000, 1.0000000, -1.0000000, 1.0000000,
00462 0.0000000, 1.0000000, 0.0000000, -1.0000000,
00463 0.0000000, 1.0000000, 0.0000000, 0.0000000,
00464 0.0000000, 1.0000000, 0.0000000, 1.0000000,
00465 0.0000000, 1.0000000, 1.0000000, -1.0000000,
00466 0.0000000, 1.0000000, 1.0000000, 0.0000000,
00467 0.0000000, 1.0000000, 1.0000000, 1.0000000,
00468 1.0000000, -1.0000000, -1.0000000, -1.0000000,
00469 1.0000000, -1.0000000, -1.0000000, 0.0000000,
00470 1.0000000, -1.0000000, -1.0000000, 1.0000000,
00471 1.0000000, -1.0000000, 0.0000000, -1.0000000,
00472 1.0000000, -1.0000000, 0.0000000, 0.0000000,
00473 1.0000000, -1.0000000, 0.0000000, 1.0000000,
00474 1.0000000, -1.0000000, 1.0000000, -1.0000000,
00475 1.0000000, -1.0000000, 1.0000000, 0.0000000,
00476 1.0000000, -1.0000000, 1.0000000, 1.0000000,
00477 1.0000000, 0.0000000, -1.0000000, -1.0000000,
00478 1.0000000, 0.0000000, -1.0000000, 0.0000000,
00479 1.0000000, 0.0000000, -1.0000000, 1.0000000,
00480 1.0000000, 0.0000000, 0.0000000, -1.0000000,
00481 1.0000000, 0.0000000, 0.0000000, 0.0000000,
00482 1.0000000, 0.0000000, 0.0000000, 1.0000000,
00483 1.0000000, 0.0000000, 1.0000000, -1.0000000,
00484 1.0000000, 0.0000000, 1.0000000, 0.0000000,
00485 1.0000000, 0.0000000, 1.0000000, 1.0000000,
00486 1.0000000, 1.0000000, -1.0000000, -1.0000000,
00487 1.0000000, 1.0000000, -1.0000000, 0.0000000,
00488 1.0000000, 1.0000000, -1.0000000, 1.0000000,
00489 1.0000000, 1.0000000, 0.0000000, -1.0000000,
00490 1.0000000, 1.0000000, 0.0000000, 0.0000000,
00491 1.0000000, 1.0000000, 0.0000000, 1.0000000,
00492 1.0000000, 1.0000000, 1.0000000, -1.0000000,
00493 1.0000000, 1.0000000, 1.0000000, 0.0000000,
00494 1.0000000, 1.0000000, 1.0000000, 1.0000000,
00495 };
00496
00497 static const DECLARE_ALIGNED(16, float, codebook_vector2)[324] = {
00498 0.0000000, 0.0000000, 0.0000000, 0.0000000,
00499 0.0000000, 0.0000000, 0.0000000, 1.0000000,
00500 0.0000000, 0.0000000, 0.0000000, 2.5198421,
00501 0.0000000, 0.0000000, 1.0000000, 0.0000000,
00502 0.0000000, 0.0000000, 1.0000000, 1.0000000,
00503 0.0000000, 0.0000000, 1.0000000, 2.5198421,
00504 0.0000000, 0.0000000, 2.5198421, 0.0000000,
00505 0.0000000, 0.0000000, 2.5198421, 1.0000000,
00506 0.0000000, 0.0000000, 2.5198421, 2.5198421,
00507 0.0000000, 1.0000000, 0.0000000, 0.0000000,
00508 0.0000000, 1.0000000, 0.0000000, 1.0000000,
00509 0.0000000, 1.0000000, 0.0000000, 2.5198421,
00510 0.0000000, 1.0000000, 1.0000000, 0.0000000,
00511 0.0000000, 1.0000000, 1.0000000, 1.0000000,
00512 0.0000000, 1.0000000, 1.0000000, 2.5198421,
00513 0.0000000, 1.0000000, 2.5198421, 0.0000000,
00514 0.0000000, 1.0000000, 2.5198421, 1.0000000,
00515 0.0000000, 1.0000000, 2.5198421, 2.5198421,
00516 0.0000000, 2.5198421, 0.0000000, 0.0000000,
00517 0.0000000, 2.5198421, 0.0000000, 1.0000000,
00518 0.0000000, 2.5198421, 0.0000000, 2.5198421,
00519 0.0000000, 2.5198421, 1.0000000, 0.0000000,
00520 0.0000000, 2.5198421, 1.0000000, 1.0000000,
00521 0.0000000, 2.5198421, 1.0000000, 2.5198421,
00522 0.0000000, 2.5198421, 2.5198421, 0.0000000,
00523 0.0000000, 2.5198421, 2.5198421, 1.0000000,
00524 0.0000000, 2.5198421, 2.5198421, 2.5198421,
00525 1.0000000, 0.0000000, 0.0000000, 0.0000000,
00526 1.0000000, 0.0000000, 0.0000000, 1.0000000,
00527 1.0000000, 0.0000000, 0.0000000, 2.5198421,
00528 1.0000000, 0.0000000, 1.0000000, 0.0000000,
00529 1.0000000, 0.0000000, 1.0000000, 1.0000000,
00530 1.0000000, 0.0000000, 1.0000000, 2.5198421,
00531 1.0000000, 0.0000000, 2.5198421, 0.0000000,
00532 1.0000000, 0.0000000, 2.5198421, 1.0000000,
00533 1.0000000, 0.0000000, 2.5198421, 2.5198421,
00534 1.0000000, 1.0000000, 0.0000000, 0.0000000,
00535 1.0000000, 1.0000000, 0.0000000, 1.0000000,
00536 1.0000000, 1.0000000, 0.0000000, 2.5198421,
00537 1.0000000, 1.0000000, 1.0000000, 0.0000000,
00538 1.0000000, 1.0000000, 1.0000000, 1.0000000,
00539 1.0000000, 1.0000000, 1.0000000, 2.5198421,
00540 1.0000000, 1.0000000, 2.5198421, 0.0000000,
00541 1.0000000, 1.0000000, 2.5198421, 1.0000000,
00542 1.0000000, 1.0000000, 2.5198421, 2.5198421,
00543 1.0000000, 2.5198421, 0.0000000, 0.0000000,
00544 1.0000000, 2.5198421, 0.0000000, 1.0000000,
00545 1.0000000, 2.5198421, 0.0000000, 2.5198421,
00546 1.0000000, 2.5198421, 1.0000000, 0.0000000,
00547 1.0000000, 2.5198421, 1.0000000, 1.0000000,
00548 1.0000000, 2.5198421, 1.0000000, 2.5198421,
00549 1.0000000, 2.5198421, 2.5198421, 0.0000000,
00550 1.0000000, 2.5198421, 2.5198421, 1.0000000,
00551 1.0000000, 2.5198421, 2.5198421, 2.5198421,
00552 2.5198421, 0.0000000, 0.0000000, 0.0000000,
00553 2.5198421, 0.0000000, 0.0000000, 1.0000000,
00554 2.5198421, 0.0000000, 0.0000000, 2.5198421,
00555 2.5198421, 0.0000000, 1.0000000, 0.0000000,
00556 2.5198421, 0.0000000, 1.0000000, 1.0000000,
00557 2.5198421, 0.0000000, 1.0000000, 2.5198421,
00558 2.5198421, 0.0000000, 2.5198421, 0.0000000,
00559 2.5198421, 0.0000000, 2.5198421, 1.0000000,
00560 2.5198421, 0.0000000, 2.5198421, 2.5198421,
00561 2.5198421, 1.0000000, 0.0000000, 0.0000000,
00562 2.5198421, 1.0000000, 0.0000000, 1.0000000,
00563 2.5198421, 1.0000000, 0.0000000, 2.5198421,
00564 2.5198421, 1.0000000, 1.0000000, 0.0000000,
00565 2.5198421, 1.0000000, 1.0000000, 1.0000000,
00566 2.5198421, 1.0000000, 1.0000000, 2.5198421,
00567 2.5198421, 1.0000000, 2.5198421, 0.0000000,
00568 2.5198421, 1.0000000, 2.5198421, 1.0000000,
00569 2.5198421, 1.0000000, 2.5198421, 2.5198421,
00570 2.5198421, 2.5198421, 0.0000000, 0.0000000,
00571 2.5198421, 2.5198421, 0.0000000, 1.0000000,
00572 2.5198421, 2.5198421, 0.0000000, 2.5198421,
00573 2.5198421, 2.5198421, 1.0000000, 0.0000000,
00574 2.5198421, 2.5198421, 1.0000000, 1.0000000,
00575 2.5198421, 2.5198421, 1.0000000, 2.5198421,
00576 2.5198421, 2.5198421, 2.5198421, 0.0000000,
00577 2.5198421, 2.5198421, 2.5198421, 1.0000000,
00578 2.5198421, 2.5198421, 2.5198421, 2.5198421,
00579 };
00580
00581 static const DECLARE_ALIGNED(16, float, codebook_vector4)[162] = {
00582 -6.3496042, -6.3496042, -6.3496042, -4.3267487,
00583 -6.3496042, -2.5198421, -6.3496042, -1.0000000,
00584 -6.3496042, 0.0000000, -6.3496042, 1.0000000,
00585 -6.3496042, 2.5198421, -6.3496042, 4.3267487,
00586 -6.3496042, 6.3496042, -4.3267487, -6.3496042,
00587 -4.3267487, -4.3267487, -4.3267487, -2.5198421,
00588 -4.3267487, -1.0000000, -4.3267487, 0.0000000,
00589 -4.3267487, 1.0000000, -4.3267487, 2.5198421,
00590 -4.3267487, 4.3267487, -4.3267487, 6.3496042,
00591 -2.5198421, -6.3496042, -2.5198421, -4.3267487,
00592 -2.5198421, -2.5198421, -2.5198421, -1.0000000,
00593 -2.5198421, 0.0000000, -2.5198421, 1.0000000,
00594 -2.5198421, 2.5198421, -2.5198421, 4.3267487,
00595 -2.5198421, 6.3496042, -1.0000000, -6.3496042,
00596 -1.0000000, -4.3267487, -1.0000000, -2.5198421,
00597 -1.0000000, -1.0000000, -1.0000000, 0.0000000,
00598 -1.0000000, 1.0000000, -1.0000000, 2.5198421,
00599 -1.0000000, 4.3267487, -1.0000000, 6.3496042,
00600 0.0000000, -6.3496042, 0.0000000, -4.3267487,
00601 0.0000000, -2.5198421, 0.0000000, -1.0000000,
00602 0.0000000, 0.0000000, 0.0000000, 1.0000000,
00603 0.0000000, 2.5198421, 0.0000000, 4.3267487,
00604 0.0000000, 6.3496042, 1.0000000, -6.3496042,
00605 1.0000000, -4.3267487, 1.0000000, -2.5198421,
00606 1.0000000, -1.0000000, 1.0000000, 0.0000000,
00607 1.0000000, 1.0000000, 1.0000000, 2.5198421,
00608 1.0000000, 4.3267487, 1.0000000, 6.3496042,
00609 2.5198421, -6.3496042, 2.5198421, -4.3267487,
00610 2.5198421, -2.5198421, 2.5198421, -1.0000000,
00611 2.5198421, 0.0000000, 2.5198421, 1.0000000,
00612 2.5198421, 2.5198421, 2.5198421, 4.3267487,
00613 2.5198421, 6.3496042, 4.3267487, -6.3496042,
00614 4.3267487, -4.3267487, 4.3267487, -2.5198421,
00615 4.3267487, -1.0000000, 4.3267487, 0.0000000,
00616 4.3267487, 1.0000000, 4.3267487, 2.5198421,
00617 4.3267487, 4.3267487, 4.3267487, 6.3496042,
00618 6.3496042, -6.3496042, 6.3496042, -4.3267487,
00619 6.3496042, -2.5198421, 6.3496042, -1.0000000,
00620 6.3496042, 0.0000000, 6.3496042, 1.0000000,
00621 6.3496042, 2.5198421, 6.3496042, 4.3267487,
00622 6.3496042, 6.3496042,
00623 };
00624
00625 static const DECLARE_ALIGNED(16, float, codebook_vector6)[128] = {
00626 0.0000000, 0.0000000, 0.0000000, 1.0000000,
00627 0.0000000, 2.5198421, 0.0000000, 4.3267487,
00628 0.0000000, 6.3496042, 0.0000000, 8.5498797,
00629 0.0000000, 10.9027236, 0.0000000, 13.3905183,
00630 1.0000000, 0.0000000, 1.0000000, 1.0000000,
00631 1.0000000, 2.5198421, 1.0000000, 4.3267487,
00632 1.0000000, 6.3496042, 1.0000000, 8.5498797,
00633 1.0000000, 10.9027236, 1.0000000, 13.3905183,
00634 2.5198421, 0.0000000, 2.5198421, 1.0000000,
00635 2.5198421, 2.5198421, 2.5198421, 4.3267487,
00636 2.5198421, 6.3496042, 2.5198421, 8.5498797,
00637 2.5198421, 10.9027236, 2.5198421, 13.3905183,
00638 4.3267487, 0.0000000, 4.3267487, 1.0000000,
00639 4.3267487, 2.5198421, 4.3267487, 4.3267487,
00640 4.3267487, 6.3496042, 4.3267487, 8.5498797,
00641 4.3267487, 10.9027236, 4.3267487, 13.3905183,
00642 6.3496042, 0.0000000, 6.3496042, 1.0000000,
00643 6.3496042, 2.5198421, 6.3496042, 4.3267487,
00644 6.3496042, 6.3496042, 6.3496042, 8.5498797,
00645 6.3496042, 10.9027236, 6.3496042, 13.3905183,
00646 8.5498797, 0.0000000, 8.5498797, 1.0000000,
00647 8.5498797, 2.5198421, 8.5498797, 4.3267487,
00648 8.5498797, 6.3496042, 8.5498797, 8.5498797,
00649 8.5498797, 10.9027236, 8.5498797, 13.3905183,
00650 10.9027236, 0.0000000, 10.9027236, 1.0000000,
00651 10.9027236, 2.5198421, 10.9027236, 4.3267487,
00652 10.9027236, 6.3496042, 10.9027236, 8.5498797,
00653 10.9027236, 10.9027236, 10.9027236, 13.3905183,
00654 13.3905183, 0.0000000, 13.3905183, 1.0000000,
00655 13.3905183, 2.5198421, 13.3905183, 4.3267487,
00656 13.3905183, 6.3496042, 13.3905183, 8.5498797,
00657 13.3905183, 10.9027236, 13.3905183, 13.3905183,
00658 };
00659
00660 static const DECLARE_ALIGNED(16, float, codebook_vector8)[338] = {
00661 0.0000000, 0.0000000, 0.0000000, 1.0000000,
00662 0.0000000, 2.5198421, 0.0000000, 4.3267487,
00663 0.0000000, 6.3496042, 0.0000000, 8.5498797,
00664 0.0000000, 10.9027236, 0.0000000, 13.3905183,
00665 0.0000000, 16.0000000, 0.0000000, 18.7207544,
00666 0.0000000, 21.5443469, 0.0000000, 24.4637810,
00667 0.0000000, 27.4731418, 1.0000000, 0.0000000,
00668 1.0000000, 1.0000000, 1.0000000, 2.5198421,
00669 1.0000000, 4.3267487, 1.0000000, 6.3496042,
00670 1.0000000, 8.5498797, 1.0000000, 10.9027236,
00671 1.0000000, 13.3905183, 1.0000000, 16.0000000,
00672 1.0000000, 18.7207544, 1.0000000, 21.5443469,
00673 1.0000000, 24.4637810, 1.0000000, 27.4731418,
00674 2.5198421, 0.0000000, 2.5198421, 1.0000000,
00675 2.5198421, 2.5198421, 2.5198421, 4.3267487,
00676 2.5198421, 6.3496042, 2.5198421, 8.5498797,
00677 2.5198421, 10.9027236, 2.5198421, 13.3905183,
00678 2.5198421, 16.0000000, 2.5198421, 18.7207544,
00679 2.5198421, 21.5443469, 2.5198421, 24.4637810,
00680 2.5198421, 27.4731418, 4.3267487, 0.0000000,
00681 4.3267487, 1.0000000, 4.3267487, 2.5198421,
00682 4.3267487, 4.3267487, 4.3267487, 6.3496042,
00683 4.3267487, 8.5498797, 4.3267487, 10.9027236,
00684 4.3267487, 13.3905183, 4.3267487, 16.0000000,
00685 4.3267487, 18.7207544, 4.3267487, 21.5443469,
00686 4.3267487, 24.4637810, 4.3267487, 27.4731418,
00687 6.3496042, 0.0000000, 6.3496042, 1.0000000,
00688 6.3496042, 2.5198421, 6.3496042, 4.3267487,
00689 6.3496042, 6.3496042, 6.3496042, 8.5498797,
00690 6.3496042, 10.9027236, 6.3496042, 13.3905183,
00691 6.3496042, 16.0000000, 6.3496042, 18.7207544,
00692 6.3496042, 21.5443469, 6.3496042, 24.4637810,
00693 6.3496042, 27.4731418, 8.5498797, 0.0000000,
00694 8.5498797, 1.0000000, 8.5498797, 2.5198421,
00695 8.5498797, 4.3267487, 8.5498797, 6.3496042,
00696 8.5498797, 8.5498797, 8.5498797, 10.9027236,
00697 8.5498797, 13.3905183, 8.5498797, 16.0000000,
00698 8.5498797, 18.7207544, 8.5498797, 21.5443469,
00699 8.5498797, 24.4637810, 8.5498797, 27.4731418,
00700 10.9027236, 0.0000000, 10.9027236, 1.0000000,
00701 10.9027236, 2.5198421, 10.9027236, 4.3267487,
00702 10.9027236, 6.3496042, 10.9027236, 8.5498797,
00703 10.9027236, 10.9027236, 10.9027236, 13.3905183,
00704 10.9027236, 16.0000000, 10.9027236, 18.7207544,
00705 10.9027236, 21.5443469, 10.9027236, 24.4637810,
00706 10.9027236, 27.4731418, 13.3905183, 0.0000000,
00707 13.3905183, 1.0000000, 13.3905183, 2.5198421,
00708 13.3905183, 4.3267487, 13.3905183, 6.3496042,
00709 13.3905183, 8.5498797, 13.3905183, 10.9027236,
00710 13.3905183, 13.3905183, 13.3905183, 16.0000000,
00711 13.3905183, 18.7207544, 13.3905183, 21.5443469,
00712 13.3905183, 24.4637810, 13.3905183, 27.4731418,
00713 16.0000000, 0.0000000, 16.0000000, 1.0000000,
00714 16.0000000, 2.5198421, 16.0000000, 4.3267487,
00715 16.0000000, 6.3496042, 16.0000000, 8.5498797,
00716 16.0000000, 10.9027236, 16.0000000, 13.3905183,
00717 16.0000000, 16.0000000, 16.0000000, 18.7207544,
00718 16.0000000, 21.5443469, 16.0000000, 24.4637810,
00719 16.0000000, 27.4731418, 18.7207544, 0.0000000,
00720 18.7207544, 1.0000000, 18.7207544, 2.5198421,
00721 18.7207544, 4.3267487, 18.7207544, 6.3496042,
00722 18.7207544, 8.5498797, 18.7207544, 10.9027236,
00723 18.7207544, 13.3905183, 18.7207544, 16.0000000,
00724 18.7207544, 18.7207544, 18.7207544, 21.5443469,
00725 18.7207544, 24.4637810, 18.7207544, 27.4731418,
00726 21.5443469, 0.0000000, 21.5443469, 1.0000000,
00727 21.5443469, 2.5198421, 21.5443469, 4.3267487,
00728 21.5443469, 6.3496042, 21.5443469, 8.5498797,
00729 21.5443469, 10.9027236, 21.5443469, 13.3905183,
00730 21.5443469, 16.0000000, 21.5443469, 18.7207544,
00731 21.5443469, 21.5443469, 21.5443469, 24.4637810,
00732 21.5443469, 27.4731418, 24.4637810, 0.0000000,
00733 24.4637810, 1.0000000, 24.4637810, 2.5198421,
00734 24.4637810, 4.3267487, 24.4637810, 6.3496042,
00735 24.4637810, 8.5498797, 24.4637810, 10.9027236,
00736 24.4637810, 13.3905183, 24.4637810, 16.0000000,
00737 24.4637810, 18.7207544, 24.4637810, 21.5443469,
00738 24.4637810, 24.4637810, 24.4637810, 27.4731418,
00739 27.4731418, 0.0000000, 27.4731418, 1.0000000,
00740 27.4731418, 2.5198421, 27.4731418, 4.3267487,
00741 27.4731418, 6.3496042, 27.4731418, 8.5498797,
00742 27.4731418, 10.9027236, 27.4731418, 13.3905183,
00743 27.4731418, 16.0000000, 27.4731418, 18.7207544,
00744 27.4731418, 21.5443469, 27.4731418, 24.4637810,
00745 27.4731418, 27.4731418,
00746 };
00747
00748 static const DECLARE_ALIGNED(16, float, codebook_vector10)[578] = {
00749 0.0000000, 0.0000000, 0.0000000, 1.0000000,
00750 0.0000000, 2.5198421, 0.0000000, 4.3267487,
00751 0.0000000, 6.3496042, 0.0000000, 8.5498797,
00752 0.0000000, 10.9027236, 0.0000000, 13.3905183,
00753 0.0000000, 16.0000000, 0.0000000, 18.7207544,
00754 0.0000000, 21.5443469, 0.0000000, 24.4637810,
00755 0.0000000, 27.4731418, 0.0000000, 30.5673509,
00756 0.0000000, 33.7419917, 0.0000000, 36.9931811,
00757 0.0000000, 64.0f, 1.0000000, 0.0000000,
00758 1.0000000, 1.0000000, 1.0000000, 2.5198421,
00759 1.0000000, 4.3267487, 1.0000000, 6.3496042,
00760 1.0000000, 8.5498797, 1.0000000, 10.9027236,
00761 1.0000000, 13.3905183, 1.0000000, 16.0000000,
00762 1.0000000, 18.7207544, 1.0000000, 21.5443469,
00763 1.0000000, 24.4637810, 1.0000000, 27.4731418,
00764 1.0000000, 30.5673509, 1.0000000, 33.7419917,
00765 1.0000000, 36.9931811, 1.0000000, 64.0f,
00766 2.5198421, 0.0000000, 2.5198421, 1.0000000,
00767 2.5198421, 2.5198421, 2.5198421, 4.3267487,
00768 2.5198421, 6.3496042, 2.5198421, 8.5498797,
00769 2.5198421, 10.9027236, 2.5198421, 13.3905183,
00770 2.5198421, 16.0000000, 2.5198421, 18.7207544,
00771 2.5198421, 21.5443469, 2.5198421, 24.4637810,
00772 2.5198421, 27.4731418, 2.5198421, 30.5673509,
00773 2.5198421, 33.7419917, 2.5198421, 36.9931811,
00774 2.5198421, 64.0f, 4.3267487, 0.0000000,
00775 4.3267487, 1.0000000, 4.3267487, 2.5198421,
00776 4.3267487, 4.3267487, 4.3267487, 6.3496042,
00777 4.3267487, 8.5498797, 4.3267487, 10.9027236,
00778 4.3267487, 13.3905183, 4.3267487, 16.0000000,
00779 4.3267487, 18.7207544, 4.3267487, 21.5443469,
00780 4.3267487, 24.4637810, 4.3267487, 27.4731418,
00781 4.3267487, 30.5673509, 4.3267487, 33.7419917,
00782 4.3267487, 36.9931811, 4.3267487, 64.0f,
00783 6.3496042, 0.0000000, 6.3496042, 1.0000000,
00784 6.3496042, 2.5198421, 6.3496042, 4.3267487,
00785 6.3496042, 6.3496042, 6.3496042, 8.5498797,
00786 6.3496042, 10.9027236, 6.3496042, 13.3905183,
00787 6.3496042, 16.0000000, 6.3496042, 18.7207544,
00788 6.3496042, 21.5443469, 6.3496042, 24.4637810,
00789 6.3496042, 27.4731418, 6.3496042, 30.5673509,
00790 6.3496042, 33.7419917, 6.3496042, 36.9931811,
00791 6.3496042, 64.0f, 8.5498797, 0.0000000,
00792 8.5498797, 1.0000000, 8.5498797, 2.5198421,
00793 8.5498797, 4.3267487, 8.5498797, 6.3496042,
00794 8.5498797, 8.5498797, 8.5498797, 10.9027236,
00795 8.5498797, 13.3905183, 8.5498797, 16.0000000,
00796 8.5498797, 18.7207544, 8.5498797, 21.5443469,
00797 8.5498797, 24.4637810, 8.5498797, 27.4731418,
00798 8.5498797, 30.5673509, 8.5498797, 33.7419917,
00799 8.5498797, 36.9931811, 8.5498797, 64.0f,
00800 10.9027236, 0.0000000, 10.9027236, 1.0000000,
00801 10.9027236, 2.5198421, 10.9027236, 4.3267487,
00802 10.9027236, 6.3496042, 10.9027236, 8.5498797,
00803 10.9027236, 10.9027236, 10.9027236, 13.3905183,
00804 10.9027236, 16.0000000, 10.9027236, 18.7207544,
00805 10.9027236, 21.5443469, 10.9027236, 24.4637810,
00806 10.9027236, 27.4731418, 10.9027236, 30.5673509,
00807 10.9027236, 33.7419917, 10.9027236, 36.9931811,
00808 10.9027236, 64.0f, 13.3905183, 0.0000000,
00809 13.3905183, 1.0000000, 13.3905183, 2.5198421,
00810 13.3905183, 4.3267487, 13.3905183, 6.3496042,
00811 13.3905183, 8.5498797, 13.3905183, 10.9027236,
00812 13.3905183, 13.3905183, 13.3905183, 16.0000000,
00813 13.3905183, 18.7207544, 13.3905183, 21.5443469,
00814 13.3905183, 24.4637810, 13.3905183, 27.4731418,
00815 13.3905183, 30.5673509, 13.3905183, 33.7419917,
00816 13.3905183, 36.9931811, 13.3905183, 64.0f,
00817 16.0000000, 0.0000000, 16.0000000, 1.0000000,
00818 16.0000000, 2.5198421, 16.0000000, 4.3267487,
00819 16.0000000, 6.3496042, 16.0000000, 8.5498797,
00820 16.0000000, 10.9027236, 16.0000000, 13.3905183,
00821 16.0000000, 16.0000000, 16.0000000, 18.7207544,
00822 16.0000000, 21.5443469, 16.0000000, 24.4637810,
00823 16.0000000, 27.4731418, 16.0000000, 30.5673509,
00824 16.0000000, 33.7419917, 16.0000000, 36.9931811,
00825 16.0000000, 64.0f, 18.7207544, 0.0000000,
00826 18.7207544, 1.0000000, 18.7207544, 2.5198421,
00827 18.7207544, 4.3267487, 18.7207544, 6.3496042,
00828 18.7207544, 8.5498797, 18.7207544, 10.9027236,
00829 18.7207544, 13.3905183, 18.7207544, 16.0000000,
00830 18.7207544, 18.7207544, 18.7207544, 21.5443469,
00831 18.7207544, 24.4637810, 18.7207544, 27.4731418,
00832 18.7207544, 30.5673509, 18.7207544, 33.7419917,
00833 18.7207544, 36.9931811, 18.7207544, 64.0f,
00834 21.5443469, 0.0000000, 21.5443469, 1.0000000,
00835 21.5443469, 2.5198421, 21.5443469, 4.3267487,
00836 21.5443469, 6.3496042, 21.5443469, 8.5498797,
00837 21.5443469, 10.9027236, 21.5443469, 13.3905183,
00838 21.5443469, 16.0000000, 21.5443469, 18.7207544,
00839 21.5443469, 21.5443469, 21.5443469, 24.4637810,
00840 21.5443469, 27.4731418, 21.5443469, 30.5673509,
00841 21.5443469, 33.7419917, 21.5443469, 36.9931811,
00842 21.5443469, 64.0f, 24.4637810, 0.0000000,
00843 24.4637810, 1.0000000, 24.4637810, 2.5198421,
00844 24.4637810, 4.3267487, 24.4637810, 6.3496042,
00845 24.4637810, 8.5498797, 24.4637810, 10.9027236,
00846 24.4637810, 13.3905183, 24.4637810, 16.0000000,
00847 24.4637810, 18.7207544, 24.4637810, 21.5443469,
00848 24.4637810, 24.4637810, 24.4637810, 27.4731418,
00849 24.4637810, 30.5673509, 24.4637810, 33.7419917,
00850 24.4637810, 36.9931811, 24.4637810, 64.0f,
00851 27.4731418, 0.0000000, 27.4731418, 1.0000000,
00852 27.4731418, 2.5198421, 27.4731418, 4.3267487,
00853 27.4731418, 6.3496042, 27.4731418, 8.5498797,
00854 27.4731418, 10.9027236, 27.4731418, 13.3905183,
00855 27.4731418, 16.0000000, 27.4731418, 18.7207544,
00856 27.4731418, 21.5443469, 27.4731418, 24.4637810,
00857 27.4731418, 27.4731418, 27.4731418, 30.5673509,
00858 27.4731418, 33.7419917, 27.4731418, 36.9931811,
00859 27.4731418, 64.0f, 30.5673509, 0.0000000,
00860 30.5673509, 1.0000000, 30.5673509, 2.5198421,
00861 30.5673509, 4.3267487, 30.5673509, 6.3496042,
00862 30.5673509, 8.5498797, 30.5673509, 10.9027236,
00863 30.5673509, 13.3905183, 30.5673509, 16.0000000,
00864 30.5673509, 18.7207544, 30.5673509, 21.5443469,
00865 30.5673509, 24.4637810, 30.5673509, 27.4731418,
00866 30.5673509, 30.5673509, 30.5673509, 33.7419917,
00867 30.5673509, 36.9931811, 30.5673509, 64.0f,
00868 33.7419917, 0.0000000, 33.7419917, 1.0000000,
00869 33.7419917, 2.5198421, 33.7419917, 4.3267487,
00870 33.7419917, 6.3496042, 33.7419917, 8.5498797,
00871 33.7419917, 10.9027236, 33.7419917, 13.3905183,
00872 33.7419917, 16.0000000, 33.7419917, 18.7207544,
00873 33.7419917, 21.5443469, 33.7419917, 24.4637810,
00874 33.7419917, 27.4731418, 33.7419917, 30.5673509,
00875 33.7419917, 33.7419917, 33.7419917, 36.9931811,
00876 33.7419917, 64.0f, 36.9931811, 0.0000000,
00877 36.9931811, 1.0000000, 36.9931811, 2.5198421,
00878 36.9931811, 4.3267487, 36.9931811, 6.3496042,
00879 36.9931811, 8.5498797, 36.9931811, 10.9027236,
00880 36.9931811, 13.3905183, 36.9931811, 16.0000000,
00881 36.9931811, 18.7207544, 36.9931811, 21.5443469,
00882 36.9931811, 24.4637810, 36.9931811, 27.4731418,
00883 36.9931811, 30.5673509, 36.9931811, 33.7419917,
00884 36.9931811, 36.9931811, 36.9931811, 64.0f,
00885 64.0f, 0.0000000, 64.0f, 1.0000000,
00886 64.0f, 2.5198421, 64.0f, 4.3267487,
00887 64.0f, 6.3496042, 64.0f, 8.5498797,
00888 64.0f, 10.9027236, 64.0f, 13.3905183,
00889 64.0f, 16.0000000, 64.0f, 18.7207544,
00890 64.0f, 21.5443469, 64.0f, 24.4637810,
00891 64.0f, 27.4731418, 64.0f, 30.5673509,
00892 64.0f, 33.7419917, 64.0f, 36.9931811,
00893 64.0f, 64.0f,
00894 };
00895
00896 const float * const ff_aac_codebook_vectors[] = {
00897 codebook_vector0, codebook_vector0, codebook_vector2,
00898 codebook_vector2, codebook_vector4, codebook_vector4,
00899 codebook_vector6, codebook_vector6, codebook_vector8,
00900 codebook_vector8, codebook_vector10,
00901 };
00902
00903 static const float codebook_vector0_vals[] = {
00904 -1.0000000, 0.0000000, 1.0000000
00905 };
00906
00907
00908
00909
00910
00911
00912 static const uint16_t codebook_vector02_idx[] = {
00913 0x0000, 0x8140, 0x8180, 0x4110, 0xc250, 0xc290, 0x4120, 0xc260, 0xc2a0,
00914 0x2104, 0xa244, 0xa284, 0x6214, 0xe354, 0xe394, 0x6224, 0xe364, 0xe3a4,
00915 0x2108, 0xa248, 0xa288, 0x6218, 0xe358, 0xe398, 0x6228, 0xe368, 0xe3a8,
00916 0x1101, 0x9241, 0x9281, 0x5211, 0xd351, 0xd391, 0x5221, 0xd361, 0xd3a1,
00917 0x3205, 0xb345, 0xb385, 0x7315, 0xf455, 0xf495, 0x7325, 0xf465, 0xf4a5,
00918 0x3209, 0xb349, 0xb389, 0x7319, 0xf459, 0xf499, 0x7329, 0xf469, 0xf4a9,
00919 0x1102, 0x9242, 0x9282, 0x5212, 0xd352, 0xd392, 0x5222, 0xd362, 0xd3a2,
00920 0x3206, 0xb346, 0xb386, 0x7316, 0xf456, 0xf496, 0x7326, 0xf466, 0xf4a6,
00921 0x320a, 0xb34a, 0xb38a, 0x731a, 0xf45a, 0xf49a, 0x732a, 0xf46a, 0xf4aa,
00922 };
00923
00924 static const float codebook_vector4_vals[] = {
00925 -6.3496042, -4.3267487,
00926 -2.5198421, -1.0000000,
00927 0.0000000, 1.0000000,
00928 2.5198421, 4.3267487,
00929 6.3496042,
00930 };
00931
00932
00933
00934
00935 static const uint16_t codebook_vector4_idx[] = {
00936 0x0000, 0x0010, 0x0020, 0x0030, 0x0040, 0x0050, 0x0060, 0x0070, 0x0080,
00937 0x0001, 0x0011, 0x0021, 0x0031, 0x0041, 0x0051, 0x0061, 0x0071, 0x0081,
00938 0x0002, 0x0012, 0x0022, 0x0032, 0x0042, 0x0052, 0x0062, 0x0072, 0x0082,
00939 0x0003, 0x0013, 0x0023, 0x0033, 0x0043, 0x0053, 0x0063, 0x0073, 0x0083,
00940 0x0004, 0x0014, 0x0024, 0x0034, 0x0044, 0x0054, 0x0064, 0x0074, 0x0084,
00941 0x0005, 0x0015, 0x0025, 0x0035, 0x0045, 0x0055, 0x0065, 0x0075, 0x0085,
00942 0x0006, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0076, 0x0086,
00943 0x0007, 0x0017, 0x0027, 0x0037, 0x0047, 0x0057, 0x0067, 0x0077, 0x0087,
00944 0x0008, 0x0018, 0x0028, 0x0038, 0x0048, 0x0058, 0x0068, 0x0078, 0x0088,
00945 };
00946
00947
00948
00949
00950
00951
00952
00953 static const uint16_t codebook_vector6_idx[] = {
00954 0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170,
00955 0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261, 0x0271,
00956 0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262, 0x0272,
00957 0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263, 0x0273,
00958 0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264, 0x0274,
00959 0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265, 0x0275,
00960 0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266, 0x0276,
00961 0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267, 0x0277,
00962 };
00963
00964
00965
00966
00967
00968
00969
00970 static const uint16_t codebook_vector8_idx[] = {
00971 0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160,
00972 0x0170, 0x0180, 0x0190, 0x01a0, 0x01b0, 0x01c0,
00973 0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261,
00974 0x0271, 0x0281, 0x0291, 0x02a1, 0x02b1, 0x02c1,
00975 0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262,
00976 0x0272, 0x0282, 0x0292, 0x02a2, 0x02b2, 0x02c2,
00977 0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263,
00978 0x0273, 0x0283, 0x0293, 0x02a3, 0x02b3, 0x02c3,
00979 0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264,
00980 0x0274, 0x0284, 0x0294, 0x02a4, 0x02b4, 0x02c4,
00981 0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265,
00982 0x0275, 0x0285, 0x0295, 0x02a5, 0x02b5, 0x02c5,
00983 0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266,
00984 0x0276, 0x0286, 0x0296, 0x02a6, 0x02b6, 0x02c6,
00985 0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267,
00986 0x0277, 0x0287, 0x0297, 0x02a7, 0x02b7, 0x02c7,
00987 0x1108, 0x0218, 0x0228, 0x0238, 0x0248, 0x0258, 0x0268,
00988 0x0278, 0x0288, 0x0298, 0x02a8, 0x02b8, 0x02c8,
00989 0x1109, 0x0219, 0x0229, 0x0239, 0x0249, 0x0259, 0x0269,
00990 0x0279, 0x0289, 0x0299, 0x02a9, 0x02b9, 0x02c9,
00991 0x110a, 0x021a, 0x022a, 0x023a, 0x024a, 0x025a, 0x026a,
00992 0x027a, 0x028a, 0x029a, 0x02aa, 0x02ba, 0x02ca,
00993 0x110b, 0x021b, 0x022b, 0x023b, 0x024b, 0x025b, 0x026b,
00994 0x027b, 0x028b, 0x029b, 0x02ab, 0x02bb, 0x02cb,
00995 0x110c, 0x021c, 0x022c, 0x023c, 0x024c, 0x025c, 0x026c,
00996 0x027c, 0x028c, 0x029c, 0x02ac, 0x02bc, 0x02cc,
00997 };
00998
00999 static const float codebook_vector10_vals[] = {
01000 0.0000000, 1.0000000,
01001 2.5198421, 4.3267487,
01002 6.3496042, 8.5498797,
01003 10.9027236, 13.3905183,
01004 16.0000000, 18.7207544,
01005 21.5443469, 24.4637810,
01006 27.4731418, 30.5673509,
01007 33.7419917, 36.9931811,
01008 };
01009
01010
01011
01012
01013
01014
01015 static const uint16_t codebook_vector10_idx[] = {
01016 0x0000, 0x1010, 0x1020, 0x1030, 0x1040, 0x1050, 0x1060, 0x1070,
01017 0x1080, 0x1090, 0x10a0, 0x10b0, 0x10c0, 0x10d0, 0x10e0, 0x10f0, 0x1200,
01018 0x1001, 0x2011, 0x2021, 0x2031, 0x2041, 0x2051, 0x2061, 0x2071,
01019 0x2081, 0x2091, 0x20a1, 0x20b1, 0x20c1, 0x20d1, 0x20e1, 0x20f1, 0x2201,
01020 0x1002, 0x2012, 0x2022, 0x2032, 0x2042, 0x2052, 0x2062, 0x2072,
01021 0x2082, 0x2092, 0x20a2, 0x20b2, 0x20c2, 0x20d2, 0x20e2, 0x20f2, 0x2202,
01022 0x1003, 0x2013, 0x2023, 0x2033, 0x2043, 0x2053, 0x2063, 0x2073,
01023 0x2083, 0x2093, 0x20a3, 0x20b3, 0x20c3, 0x20d3, 0x20e3, 0x20f3, 0x2203,
01024 0x1004, 0x2014, 0x2024, 0x2034, 0x2044, 0x2054, 0x2064, 0x2074,
01025 0x2084, 0x2094, 0x20a4, 0x20b4, 0x20c4, 0x20d4, 0x20e4, 0x20f4, 0x2204,
01026 0x1005, 0x2015, 0x2025, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075,
01027 0x2085, 0x2095, 0x20a5, 0x20b5, 0x20c5, 0x20d5, 0x20e5, 0x20f5, 0x2205,
01028 0x1006, 0x2016, 0x2026, 0x2036, 0x2046, 0x2056, 0x2066, 0x2076,
01029 0x2086, 0x2096, 0x20a6, 0x20b6, 0x20c6, 0x20d6, 0x20e6, 0x20f6, 0x2206,
01030 0x1007, 0x2017, 0x2027, 0x2037, 0x2047, 0x2057, 0x2067, 0x2077,
01031 0x2087, 0x2097, 0x20a7, 0x20b7, 0x20c7, 0x20d7, 0x20e7, 0x20f7, 0x2207,
01032 0x1008, 0x2018, 0x2028, 0x2038, 0x2048, 0x2058, 0x2068, 0x2078,
01033 0x2088, 0x2098, 0x20a8, 0x20b8, 0x20c8, 0x20d8, 0x20e8, 0x20f8, 0x2208,
01034 0x1009, 0x2019, 0x2029, 0x2039, 0x2049, 0x2059, 0x2069, 0x2079,
01035 0x2089, 0x2099, 0x20a9, 0x20b9, 0x20c9, 0x20d9, 0x20e9, 0x20f9, 0x2209,
01036 0x100a, 0x201a, 0x202a, 0x203a, 0x204a, 0x205a, 0x206a, 0x207a,
01037 0x208a, 0x209a, 0x20aa, 0x20ba, 0x20ca, 0x20da, 0x20ea, 0x20fa, 0x220a,
01038 0x100b, 0x201b, 0x202b, 0x203b, 0x204b, 0x205b, 0x206b, 0x207b,
01039 0x208b, 0x209b, 0x20ab, 0x20bb, 0x20cb, 0x20db, 0x20eb, 0x20fb, 0x220b,
01040 0x100c, 0x201c, 0x202c, 0x203c, 0x204c, 0x205c, 0x206c, 0x207c,
01041 0x208c, 0x209c, 0x20ac, 0x20bc, 0x20cc, 0x20dc, 0x20ec, 0x20fc, 0x220c,
01042 0x100d, 0x201d, 0x202d, 0x203d, 0x204d, 0x205d, 0x206d, 0x207d,
01043 0x208d, 0x209d, 0x20ad, 0x20bd, 0x20cd, 0x20dd, 0x20ed, 0x20fd, 0x220d,
01044 0x100e, 0x201e, 0x202e, 0x203e, 0x204e, 0x205e, 0x206e, 0x207e,
01045 0x208e, 0x209e, 0x20ae, 0x20be, 0x20ce, 0x20de, 0x20ee, 0x20fe, 0x220e,
01046 0x100f, 0x201f, 0x202f, 0x203f, 0x204f, 0x205f, 0x206f, 0x207f,
01047 0x208f, 0x209f, 0x20af, 0x20bf, 0x20cf, 0x20df, 0x20ef, 0x20ff, 0x220f,
01048 0x1100, 0x2110, 0x2120, 0x2130, 0x2140, 0x2150, 0x2160, 0x2170,
01049 0x2180, 0x2190, 0x21a0, 0x21b0, 0x21c0, 0x21d0, 0x21e0, 0x21f0, 0x2300,
01050 };
01051
01052 const float *const ff_aac_codebook_vector_vals[] = {
01053 codebook_vector0_vals, codebook_vector0_vals,
01054 codebook_vector10_vals, codebook_vector10_vals,
01055 codebook_vector4_vals, codebook_vector4_vals,
01056 codebook_vector10_vals, codebook_vector10_vals,
01057 codebook_vector10_vals, codebook_vector10_vals,
01058 codebook_vector10_vals,
01059 };
01060
01061 const uint16_t *const ff_aac_codebook_vector_idx[] = {
01062 codebook_vector02_idx, codebook_vector02_idx,
01063 codebook_vector02_idx, codebook_vector02_idx,
01064 codebook_vector4_idx, codebook_vector4_idx,
01065 codebook_vector6_idx, codebook_vector6_idx,
01066 codebook_vector8_idx, codebook_vector8_idx,
01067 codebook_vector10_idx,
01068 };
01069
01070
01071
01072
01073
01074
01075
01076
01077
01078
01079
01080
01081
01082
01083
01084
01085 static const uint16_t swb_offset_1024_96[] = {
01086 0, 4, 8, 12, 16, 20, 24, 28,
01087 32, 36, 40, 44, 48, 52, 56, 64,
01088 72, 80, 88, 96, 108, 120, 132, 144,
01089 156, 172, 188, 212, 240, 276, 320, 384,
01090 448, 512, 576, 640, 704, 768, 832, 896,
01091 960, 1024
01092 };
01093
01094 static const uint16_t swb_offset_128_96[] = {
01095 0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 128
01096 };
01097
01098 static const uint16_t swb_offset_1024_64[] = {
01099 0, 4, 8, 12, 16, 20, 24, 28,
01100 32, 36, 40, 44, 48, 52, 56, 64,
01101 72, 80, 88, 100, 112, 124, 140, 156,
01102 172, 192, 216, 240, 268, 304, 344, 384,
01103 424, 464, 504, 544, 584, 624, 664, 704,
01104 744, 784, 824, 864, 904, 944, 984, 1024
01105 };
01106
01107 static const uint16_t swb_offset_1024_48[] = {
01108 0, 4, 8, 12, 16, 20, 24, 28,
01109 32, 36, 40, 48, 56, 64, 72, 80,
01110 88, 96, 108, 120, 132, 144, 160, 176,
01111 196, 216, 240, 264, 292, 320, 352, 384,
01112 416, 448, 480, 512, 544, 576, 608, 640,
01113 672, 704, 736, 768, 800, 832, 864, 896,
01114 928, 1024
01115 };
01116
01117 static const uint16_t swb_offset_128_48[] = {
01118 0, 4, 8, 12, 16, 20, 28, 36,
01119 44, 56, 68, 80, 96, 112, 128
01120 };
01121
01122 static const uint16_t swb_offset_1024_32[] = {
01123 0, 4, 8, 12, 16, 20, 24, 28,
01124 32, 36, 40, 48, 56, 64, 72, 80,
01125 88, 96, 108, 120, 132, 144, 160, 176,
01126 196, 216, 240, 264, 292, 320, 352, 384,
01127 416, 448, 480, 512, 544, 576, 608, 640,
01128 672, 704, 736, 768, 800, 832, 864, 896,
01129 928, 960, 992, 1024
01130 };
01131
01132 static const uint16_t swb_offset_1024_24[] = {
01133 0, 4, 8, 12, 16, 20, 24, 28,
01134 32, 36, 40, 44, 52, 60, 68, 76,
01135 84, 92, 100, 108, 116, 124, 136, 148,
01136 160, 172, 188, 204, 220, 240, 260, 284,
01137 308, 336, 364, 396, 432, 468, 508, 552,
01138 600, 652, 704, 768, 832, 896, 960, 1024
01139 };
01140
01141 static const uint16_t swb_offset_128_24[] = {
01142 0, 4, 8, 12, 16, 20, 24, 28,
01143 36, 44, 52, 64, 76, 92, 108, 128
01144 };
01145
01146 static const uint16_t swb_offset_1024_16[] = {
01147 0, 8, 16, 24, 32, 40, 48, 56,
01148 64, 72, 80, 88, 100, 112, 124, 136,
01149 148, 160, 172, 184, 196, 212, 228, 244,
01150 260, 280, 300, 320, 344, 368, 396, 424,
01151 456, 492, 532, 572, 616, 664, 716, 772,
01152 832, 896, 960, 1024
01153 };
01154
01155 static const uint16_t swb_offset_128_16[] = {
01156 0, 4, 8, 12, 16, 20, 24, 28,
01157 32, 40, 48, 60, 72, 88, 108, 128
01158 };
01159
01160 static const uint16_t swb_offset_1024_8[] = {
01161 0, 12, 24, 36, 48, 60, 72, 84,
01162 96, 108, 120, 132, 144, 156, 172, 188,
01163 204, 220, 236, 252, 268, 288, 308, 328,
01164 348, 372, 396, 420, 448, 476, 508, 544,
01165 580, 620, 664, 712, 764, 820, 880, 944,
01166 1024
01167 };
01168
01169 static const uint16_t swb_offset_128_8[] = {
01170 0, 4, 8, 12, 16, 20, 24, 28,
01171 36, 44, 52, 60, 72, 88, 108, 128
01172 };
01173
01174 const uint16_t * const ff_swb_offset_1024[] = {
01175 swb_offset_1024_96, swb_offset_1024_96, swb_offset_1024_64,
01176 swb_offset_1024_48, swb_offset_1024_48, swb_offset_1024_32,
01177 swb_offset_1024_24, swb_offset_1024_24, swb_offset_1024_16,
01178 swb_offset_1024_16, swb_offset_1024_16, swb_offset_1024_8,
01179 swb_offset_1024_8
01180 };
01181
01182 const uint16_t * const ff_swb_offset_128[] = {
01183
01184
01185 swb_offset_128_96, swb_offset_128_96, swb_offset_128_96,
01186 swb_offset_128_48, swb_offset_128_48, swb_offset_128_48,
01187 swb_offset_128_24, swb_offset_128_24, swb_offset_128_16,
01188 swb_offset_128_16, swb_offset_128_16, swb_offset_128_8,
01189 swb_offset_128_8
01190 };
01191
01192
01193
01194
01195
01196
01197
01198
01199
01200 const uint8_t ff_tns_max_bands_1024[] = {
01201 31, 31, 34, 40, 42, 51, 46, 46, 42, 42, 42, 39, 39
01202 };
01203
01204 const uint8_t ff_tns_max_bands_128[] = {
01205 9, 9, 10, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14
01206 };
01207