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 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 35DECLARE_ALIGNED(16, float, ff_aac_kbd_long_1024)[1024]; 36DECLARE_ALIGNED(16, float, ff_aac_kbd_short_128)[128]; 37 38const uint8_t ff_aac_num_swb_1024[] = { 39 41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40, 40 40}; 41 42const uint8_t ff_aac_num_swb_128[] = { 43 12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15 44}; 45 46const uint8_t ff_aac_pred_sfb_max[] = { 47 33, 33, 38, 40, 40, 40, 41, 41, 37, 37, 37, 34, 34 48}; 49 50const uint32_t ff_aac_scalefactor_code[121] = { 51 0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6, 52 0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7, 53 0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0, 54 0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7, 55 0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5, 56 0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7, 57 0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a, 58 0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b, 59 0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9, 60 0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5, 61 0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4, 62 0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd, 63 0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2, 64 0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0, 65 0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4, 66 0x7fff3, 67}; 68 69const uint8_t ff_aac_scalefactor_bits[121] = { 70 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 71 19, 19, 19, 18, 19, 18, 17, 17, 16, 17, 16, 16, 16, 16, 15, 15, 72 14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11, 12, 11, 10, 10, 73 10, 9, 9, 8, 8, 8, 7, 6, 6, 5, 4, 3, 1, 4, 4, 5, 74 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 75 12, 13, 13, 13, 14, 14, 16, 15, 16, 15, 18, 19, 19, 19, 19, 19, 76 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 77 19, 19, 19, 19, 19, 19, 19, 19, 19, 78}; 79 80static const uint16_t codes1[81] = { 81 0x7f8, 0x1f1, 0x7fd, 0x3f5, 0x068, 0x3f0, 0x7f7, 0x1ec, 82 0x7f5, 0x3f1, 0x072, 0x3f4, 0x074, 0x011, 0x076, 0x1eb, 83 0x06c, 0x3f6, 0x7fc, 0x1e1, 0x7f1, 0x1f0, 0x061, 0x1f6, 84 0x7f2, 0x1ea, 0x7fb, 0x1f2, 0x069, 0x1ed, 0x077, 0x017, 85 0x06f, 0x1e6, 0x064, 0x1e5, 0x067, 0x015, 0x062, 0x012, 86 0x000, 0x014, 0x065, 0x016, 0x06d, 0x1e9, 0x063, 0x1e4, 87 0x06b, 0x013, 0x071, 0x1e3, 0x070, 0x1f3, 0x7fe, 0x1e7, 88 0x7f3, 0x1ef, 0x060, 0x1ee, 0x7f0, 0x1e2, 0x7fa, 0x3f3, 89 0x06a, 0x1e8, 0x075, 0x010, 0x073, 0x1f4, 0x06e, 0x3f7, 90 0x7f6, 0x1e0, 0x7f9, 0x3f2, 0x066, 0x1f5, 0x7ff, 0x1f7, 91 0x7f4, 92}; 93 94static const uint8_t bits1[81] = { 95 11, 9, 11, 10, 7, 10, 11, 9, 11, 10, 7, 10, 7, 5, 7, 9, 96 7, 10, 11, 9, 11, 9, 7, 9, 11, 9, 11, 9, 7, 9, 7, 5, 97 7, 9, 7, 9, 7, 5, 7, 5, 1, 5, 7, 5, 7, 9, 7, 9, 98 7, 5, 7, 9, 7, 9, 11, 9, 11, 9, 7, 9, 11, 9, 11, 10, 99 7, 9, 7, 5, 7, 9, 7, 10, 11, 9, 11, 10, 7, 9, 11, 9, 100 11, 101}; 102 103static const uint16_t codes2[81] = { 104 0x1f3, 0x06f, 0x1fd, 0x0eb, 0x023, 0x0ea, 0x1f7, 0x0e8, 105 0x1fa, 0x0f2, 0x02d, 0x070, 0x020, 0x006, 0x02b, 0x06e, 106 0x028, 0x0e9, 0x1f9, 0x066, 0x0f8, 0x0e7, 0x01b, 0x0f1, 107 0x1f4, 0x06b, 0x1f5, 0x0ec, 0x02a, 0x06c, 0x02c, 0x00a, 108 0x027, 0x067, 0x01a, 0x0f5, 0x024, 0x008, 0x01f, 0x009, 109 0x000, 0x007, 0x01d, 0x00b, 0x030, 0x0ef, 0x01c, 0x064, 110 0x01e, 0x00c, 0x029, 0x0f3, 0x02f, 0x0f0, 0x1fc, 0x071, 111 0x1f2, 0x0f4, 0x021, 0x0e6, 0x0f7, 0x068, 0x1f8, 0x0ee, 112 0x022, 0x065, 0x031, 0x002, 0x026, 0x0ed, 0x025, 0x06a, 113 0x1fb, 0x072, 0x1fe, 0x069, 0x02e, 0x0f6, 0x1ff, 0x06d, 114 0x1f6, 115}; 116 117static const uint8_t bits2[81] = { 118 9, 7, 9, 8, 6, 8, 9, 8, 9, 8, 6, 7, 6, 5, 6, 7, 119 6, 8, 9, 7, 8, 8, 6, 8, 9, 7, 9, 8, 6, 7, 6, 5, 120 6, 7, 6, 8, 6, 5, 6, 5, 3, 5, 6, 5, 6, 8, 6, 7, 121 6, 5, 6, 8, 6, 8, 9, 7, 9, 8, 6, 8, 8, 7, 9, 8, 122 6, 7, 6, 4, 6, 8, 6, 7, 9, 7, 9, 7, 6, 8, 9, 7, 123 9, 124}; 125 126static const uint16_t codes3[81] = { 127 0x0000, 0x0009, 0x00ef, 0x000b, 0x0019, 0x00f0, 0x01eb, 0x01e6, 128 0x03f2, 0x000a, 0x0035, 0x01ef, 0x0034, 0x0037, 0x01e9, 0x01ed, 129 0x01e7, 0x03f3, 0x01ee, 0x03ed, 0x1ffa, 0x01ec, 0x01f2, 0x07f9, 130 0x07f8, 0x03f8, 0x0ff8, 0x0008, 0x0038, 0x03f6, 0x0036, 0x0075, 131 0x03f1, 0x03eb, 0x03ec, 0x0ff4, 0x0018, 0x0076, 0x07f4, 0x0039, 132 0x0074, 0x03ef, 0x01f3, 0x01f4, 0x07f6, 0x01e8, 0x03ea, 0x1ffc, 133 0x00f2, 0x01f1, 0x0ffb, 0x03f5, 0x07f3, 0x0ffc, 0x00ee, 0x03f7, 134 0x7ffe, 0x01f0, 0x07f5, 0x7ffd, 0x1ffb, 0x3ffa, 0xffff, 0x00f1, 135 0x03f0, 0x3ffc, 0x01ea, 0x03ee, 0x3ffb, 0x0ff6, 0x0ffa, 0x7ffc, 136 0x07f2, 0x0ff5, 0xfffe, 0x03f4, 0x07f7, 0x7ffb, 0x0ff7, 0x0ff9, 137 0x7ffa, 138}; 139 140static const uint8_t bits3[81] = { 141 1, 4, 8, 4, 5, 8, 9, 9, 10, 4, 6, 9, 6, 6, 9, 9, 142 9, 10, 9, 10, 13, 9, 9, 11, 11, 10, 12, 4, 6, 10, 6, 7, 143 10, 10, 10, 12, 5, 7, 11, 6, 7, 10, 9, 9, 11, 9, 10, 13, 144 8, 9, 12, 10, 11, 12, 8, 10, 15, 9, 11, 15, 13, 14, 16, 8, 145 10, 14, 9, 10, 14, 12, 12, 15, 11, 12, 16, 10, 11, 15, 12, 12, 146 15, 147}; 148 149static const uint16_t codes4[81] = { 150 0x007, 0x016, 0x0f6, 0x018, 0x008, 0x0ef, 0x1ef, 0x0f3, 151 0x7f8, 0x019, 0x017, 0x0ed, 0x015, 0x001, 0x0e2, 0x0f0, 152 0x070, 0x3f0, 0x1ee, 0x0f1, 0x7fa, 0x0ee, 0x0e4, 0x3f2, 153 0x7f6, 0x3ef, 0x7fd, 0x005, 0x014, 0x0f2, 0x009, 0x004, 154 0x0e5, 0x0f4, 0x0e8, 0x3f4, 0x006, 0x002, 0x0e7, 0x003, 155 0x000, 0x06b, 0x0e3, 0x069, 0x1f3, 0x0eb, 0x0e6, 0x3f6, 156 0x06e, 0x06a, 0x1f4, 0x3ec, 0x1f0, 0x3f9, 0x0f5, 0x0ec, 157 0x7fb, 0x0ea, 0x06f, 0x3f7, 0x7f9, 0x3f3, 0xfff, 0x0e9, 158 0x06d, 0x3f8, 0x06c, 0x068, 0x1f5, 0x3ee, 0x1f2, 0x7f4, 159 0x7f7, 0x3f1, 0xffe, 0x3ed, 0x1f1, 0x7f5, 0x7fe, 0x3f5, 160 0x7fc, 161}; 162 163static const uint8_t bits4[81] = { 164 4, 5, 8, 5, 4, 8, 9, 8, 11, 5, 5, 8, 5, 4, 8, 8, 165 7, 10, 9, 8, 11, 8, 8, 10, 11, 10, 11, 4, 5, 8, 4, 4, 166 8, 8, 8, 10, 4, 4, 8, 4, 4, 7, 8, 7, 9, 8, 8, 10, 167 7, 7, 9, 10, 9, 10, 8, 8, 11, 8, 7, 10, 11, 10, 12, 8, 168 7, 10, 7, 7, 9, 10, 9, 11, 11, 10, 12, 10, 9, 11, 11, 10, 169 11, 170}; 171 172static const uint16_t codes5[81] = { 173 0x1fff, 0x0ff7, 0x07f4, 0x07e8, 0x03f1, 0x07ee, 0x07f9, 0x0ff8, 174 0x1ffd, 0x0ffd, 0x07f1, 0x03e8, 0x01e8, 0x00f0, 0x01ec, 0x03ee, 175 0x07f2, 0x0ffa, 0x0ff4, 0x03ef, 0x01f2, 0x00e8, 0x0070, 0x00ec, 176 0x01f0, 0x03ea, 0x07f3, 0x07eb, 0x01eb, 0x00ea, 0x001a, 0x0008, 177 0x0019, 0x00ee, 0x01ef, 0x07ed, 0x03f0, 0x00f2, 0x0073, 0x000b, 178 0x0000, 0x000a, 0x0071, 0x00f3, 0x07e9, 0x07ef, 0x01ee, 0x00ef, 179 0x0018, 0x0009, 0x001b, 0x00eb, 0x01e9, 0x07ec, 0x07f6, 0x03eb, 180 0x01f3, 0x00ed, 0x0072, 0x00e9, 0x01f1, 0x03ed, 0x07f7, 0x0ff6, 181 0x07f0, 0x03e9, 0x01ed, 0x00f1, 0x01ea, 0x03ec, 0x07f8, 0x0ff9, 182 0x1ffc, 0x0ffc, 0x0ff5, 0x07ea, 0x03f3, 0x03f2, 0x07f5, 0x0ffb, 183 0x1ffe, 184}; 185 186static const uint8_t bits5[81] = { 187 13, 12, 11, 11, 10, 11, 11, 12, 13, 12, 11, 10, 9, 8, 9, 10, 188 11, 12, 12, 10, 9, 8, 7, 8, 9, 10, 11, 11, 9, 8, 5, 4, 189 5, 8, 9, 11, 10, 8, 7, 4, 1, 4, 7, 8, 11, 11, 9, 8, 190 5, 4, 5, 8, 9, 11, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12, 191 11, 10, 9, 8, 9, 10, 11, 12, 13, 12, 12, 11, 10, 10, 11, 12, 192 13, 193}; 194 195static const uint16_t codes6[81] = { 196 0x7fe, 0x3fd, 0x1f1, 0x1eb, 0x1f4, 0x1ea, 0x1f0, 0x3fc, 197 0x7fd, 0x3f6, 0x1e5, 0x0ea, 0x06c, 0x071, 0x068, 0x0f0, 198 0x1e6, 0x3f7, 0x1f3, 0x0ef, 0x032, 0x027, 0x028, 0x026, 199 0x031, 0x0eb, 0x1f7, 0x1e8, 0x06f, 0x02e, 0x008, 0x004, 200 0x006, 0x029, 0x06b, 0x1ee, 0x1ef, 0x072, 0x02d, 0x002, 201 0x000, 0x003, 0x02f, 0x073, 0x1fa, 0x1e7, 0x06e, 0x02b, 202 0x007, 0x001, 0x005, 0x02c, 0x06d, 0x1ec, 0x1f9, 0x0ee, 203 0x030, 0x024, 0x02a, 0x025, 0x033, 0x0ec, 0x1f2, 0x3f8, 204 0x1e4, 0x0ed, 0x06a, 0x070, 0x069, 0x074, 0x0f1, 0x3fa, 205 0x7ff, 0x3f9, 0x1f6, 0x1ed, 0x1f8, 0x1e9, 0x1f5, 0x3fb, 206 0x7fc, 207}; 208 209static const uint8_t bits6[81] = { 210 11, 10, 9, 9, 9, 9, 9, 10, 11, 10, 9, 8, 7, 7, 7, 8, 211 9, 10, 9, 8, 6, 6, 6, 6, 6, 8, 9, 9, 7, 6, 4, 4, 212 4, 6, 7, 9, 9, 7, 6, 4, 4, 4, 6, 7, 9, 9, 7, 6, 213 4, 4, 4, 6, 7, 9, 9, 8, 6, 6, 6, 6, 6, 8, 9, 10, 214 9, 8, 7, 7, 7, 7, 8, 10, 11, 10, 9, 9, 9, 9, 9, 10, 215 11, 216}; 217 218static const uint16_t codes7[64] = { 219 0x000, 0x005, 0x037, 0x074, 0x0f2, 0x1eb, 0x3ed, 0x7f7, 220 0x004, 0x00c, 0x035, 0x071, 0x0ec, 0x0ee, 0x1ee, 0x1f5, 221 0x036, 0x034, 0x072, 0x0ea, 0x0f1, 0x1e9, 0x1f3, 0x3f5, 222 0x073, 0x070, 0x0eb, 0x0f0, 0x1f1, 0x1f0, 0x3ec, 0x3fa, 223 0x0f3, 0x0ed, 0x1e8, 0x1ef, 0x3ef, 0x3f1, 0x3f9, 0x7fb, 224 0x1ed, 0x0ef, 0x1ea, 0x1f2, 0x3f3, 0x3f8, 0x7f9, 0x7fc, 225 0x3ee, 0x1ec, 0x1f4, 0x3f4, 0x3f7, 0x7f8, 0xffd, 0xffe, 226 0x7f6, 0x3f0, 0x3f2, 0x3f6, 0x7fa, 0x7fd, 0xffc, 0xfff, 227}; 228 229static const uint8_t bits7[64] = { 230 1, 3, 6, 7, 8, 9, 10, 11, 3, 4, 6, 7, 8, 8, 9, 9, 231 6, 6, 7, 8, 8, 9, 9, 10, 7, 7, 8, 8, 9, 9, 10, 10, 232 8, 8, 9, 9, 10, 10, 10, 11, 9, 8, 9, 9, 10, 10, 11, 11, 233 10, 9, 9, 10, 10, 11, 12, 12, 11, 10, 10, 10, 11, 11, 12, 12, 234}; 235 236static const uint16_t codes8[64] = { 237 0x00e, 0x005, 0x010, 0x030, 0x06f, 0x0f1, 0x1fa, 0x3fe, 238 0x003, 0x000, 0x004, 0x012, 0x02c, 0x06a, 0x075, 0x0f8, 239 0x00f, 0x002, 0x006, 0x014, 0x02e, 0x069, 0x072, 0x0f5, 240 0x02f, 0x011, 0x013, 0x02a, 0x032, 0x06c, 0x0ec, 0x0fa, 241 0x071, 0x02b, 0x02d, 0x031, 0x06d, 0x070, 0x0f2, 0x1f9, 242 0x0ef, 0x068, 0x033, 0x06b, 0x06e, 0x0ee, 0x0f9, 0x3fc, 243 0x1f8, 0x074, 0x073, 0x0ed, 0x0f0, 0x0f6, 0x1f6, 0x1fd, 244 0x3fd, 0x0f3, 0x0f4, 0x0f7, 0x1f7, 0x1fb, 0x1fc, 0x3ff, 245}; 246 247static const uint8_t bits8[64] = { 248 5, 4, 5, 6, 7, 8, 9, 10, 4, 3, 4, 5, 6, 7, 7, 8, 249 5, 4, 4, 5, 6, 7, 7, 8, 6, 5, 5, 6, 6, 7, 8, 8, 250 7, 6, 6, 6, 7, 7, 8, 9, 8, 7, 6, 7, 7, 8, 8, 10, 251 9, 7, 7, 8, 8, 8, 9, 9, 10, 8, 8, 8, 9, 9, 9, 10, 252}; 253 254static const uint16_t codes9[169] = { 255 0x0000, 0x0005, 0x0037, 0x00e7, 0x01de, 0x03ce, 0x03d9, 0x07c8, 256 0x07cd, 0x0fc8, 0x0fdd, 0x1fe4, 0x1fec, 0x0004, 0x000c, 0x0035, 257 0x0072, 0x00ea, 0x00ed, 0x01e2, 0x03d1, 0x03d3, 0x03e0, 0x07d8, 258 0x0fcf, 0x0fd5, 0x0036, 0x0034, 0x0071, 0x00e8, 0x00ec, 0x01e1, 259 0x03cf, 0x03dd, 0x03db, 0x07d0, 0x0fc7, 0x0fd4, 0x0fe4, 0x00e6, 260 0x0070, 0x00e9, 0x01dd, 0x01e3, 0x03d2, 0x03dc, 0x07cc, 0x07ca, 261 0x07de, 0x0fd8, 0x0fea, 0x1fdb, 0x01df, 0x00eb, 0x01dc, 0x01e6, 262 0x03d5, 0x03de, 0x07cb, 0x07dd, 0x07dc, 0x0fcd, 0x0fe2, 0x0fe7, 263 0x1fe1, 0x03d0, 0x01e0, 0x01e4, 0x03d6, 0x07c5, 0x07d1, 0x07db, 264 0x0fd2, 0x07e0, 0x0fd9, 0x0feb, 0x1fe3, 0x1fe9, 0x07c4, 0x01e5, 265 0x03d7, 0x07c6, 0x07cf, 0x07da, 0x0fcb, 0x0fda, 0x0fe3, 0x0fe9, 266 0x1fe6, 0x1ff3, 0x1ff7, 0x07d3, 0x03d8, 0x03e1, 0x07d4, 0x07d9, 267 0x0fd3, 0x0fde, 0x1fdd, 0x1fd9, 0x1fe2, 0x1fea, 0x1ff1, 0x1ff6, 268 0x07d2, 0x03d4, 0x03da, 0x07c7, 0x07d7, 0x07e2, 0x0fce, 0x0fdb, 269 0x1fd8, 0x1fee, 0x3ff0, 0x1ff4, 0x3ff2, 0x07e1, 0x03df, 0x07c9, 270 0x07d6, 0x0fca, 0x0fd0, 0x0fe5, 0x0fe6, 0x1feb, 0x1fef, 0x3ff3, 271 0x3ff4, 0x3ff5, 0x0fe0, 0x07ce, 0x07d5, 0x0fc6, 0x0fd1, 0x0fe1, 272 0x1fe0, 0x1fe8, 0x1ff0, 0x3ff1, 0x3ff8, 0x3ff6, 0x7ffc, 0x0fe8, 273 0x07df, 0x0fc9, 0x0fd7, 0x0fdc, 0x1fdc, 0x1fdf, 0x1fed, 0x1ff5, 274 0x3ff9, 0x3ffb, 0x7ffd, 0x7ffe, 0x1fe7, 0x0fcc, 0x0fd6, 0x0fdf, 275 0x1fde, 0x1fda, 0x1fe5, 0x1ff2, 0x3ffa, 0x3ff7, 0x3ffc, 0x3ffd, 276 0x7fff, 277}; 278 279static const uint8_t bits9[169] = { 280 1, 3, 6, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 3, 4, 6, 281 7, 8, 8, 9, 10, 10, 10, 11, 12, 12, 6, 6, 7, 8, 8, 9, 282 10, 10, 10, 11, 12, 12, 12, 8, 7, 8, 9, 9, 10, 10, 11, 11, 283 11, 12, 12, 13, 9, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 284 13, 10, 9, 9, 10, 11, 11, 11, 12, 11, 12, 12, 13, 13, 11, 9, 285 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 11, 10, 10, 11, 11, 286 12, 12, 13, 13, 13, 13, 13, 13, 11, 10, 10, 11, 11, 11, 12, 12, 287 13, 13, 14, 13, 14, 11, 10, 11, 11, 12, 12, 12, 12, 13, 13, 14, 288 14, 14, 12, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 12, 289 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15, 13, 12, 12, 12, 290 13, 13, 13, 13, 14, 14, 14, 14, 15, 291}; 292 293static const uint16_t codes10[169] = { 294 0x022, 0x008, 0x01d, 0x026, 0x05f, 0x0d3, 0x1cf, 0x3d0, 295 0x3d7, 0x3ed, 0x7f0, 0x7f6, 0xffd, 0x007, 0x000, 0x001, 296 0x009, 0x020, 0x054, 0x060, 0x0d5, 0x0dc, 0x1d4, 0x3cd, 297 0x3de, 0x7e7, 0x01c, 0x002, 0x006, 0x00c, 0x01e, 0x028, 298 0x05b, 0x0cd, 0x0d9, 0x1ce, 0x1dc, 0x3d9, 0x3f1, 0x025, 299 0x00b, 0x00a, 0x00d, 0x024, 0x057, 0x061, 0x0cc, 0x0dd, 300 0x1cc, 0x1de, 0x3d3, 0x3e7, 0x05d, 0x021, 0x01f, 0x023, 301 0x027, 0x059, 0x064, 0x0d8, 0x0df, 0x1d2, 0x1e2, 0x3dd, 302 0x3ee, 0x0d1, 0x055, 0x029, 0x056, 0x058, 0x062, 0x0ce, 303 0x0e0, 0x0e2, 0x1da, 0x3d4, 0x3e3, 0x7eb, 0x1c9, 0x05e, 304 0x05a, 0x05c, 0x063, 0x0ca, 0x0da, 0x1c7, 0x1ca, 0x1e0, 305 0x3db, 0x3e8, 0x7ec, 0x1e3, 0x0d2, 0x0cb, 0x0d0, 0x0d7, 306 0x0db, 0x1c6, 0x1d5, 0x1d8, 0x3ca, 0x3da, 0x7ea, 0x7f1, 307 0x1e1, 0x0d4, 0x0cf, 0x0d6, 0x0de, 0x0e1, 0x1d0, 0x1d6, 308 0x3d1, 0x3d5, 0x3f2, 0x7ee, 0x7fb, 0x3e9, 0x1cd, 0x1c8, 309 0x1cb, 0x1d1, 0x1d7, 0x1df, 0x3cf, 0x3e0, 0x3ef, 0x7e6, 310 0x7f8, 0xffa, 0x3eb, 0x1dd, 0x1d3, 0x1d9, 0x1db, 0x3d2, 311 0x3cc, 0x3dc, 0x3ea, 0x7ed, 0x7f3, 0x7f9, 0xff9, 0x7f2, 312 0x3ce, 0x1e4, 0x3cb, 0x3d8, 0x3d6, 0x3e2, 0x3e5, 0x7e8, 313 0x7f4, 0x7f5, 0x7f7, 0xffb, 0x7fa, 0x3ec, 0x3df, 0x3e1, 314 0x3e4, 0x3e6, 0x3f0, 0x7e9, 0x7ef, 0xff8, 0xffe, 0xffc, 315 0xfff, 316}; 317 318static const uint8_t bits10[169] = { 319 6, 5, 6, 6, 7, 8, 9, 10, 10, 10, 11, 11, 12, 5, 4, 4, 320 5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 6, 4, 5, 5, 6, 6, 321 7, 8, 8, 9, 9, 10, 10, 6, 5, 5, 5, 6, 7, 7, 8, 8, 322 9, 9, 10, 10, 7, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 10, 323 10, 8, 7, 6, 7, 7, 7, 8, 8, 8, 9, 10, 10, 11, 9, 7, 324 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 9, 8, 8, 8, 8, 325 8, 9, 9, 9, 10, 10, 11, 11, 9, 8, 8, 8, 8, 8, 9, 9, 326 10, 10, 10, 11, 11, 10, 9, 9, 9, 9, 9, 9, 10, 10, 10, 11, 327 11, 12, 10, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 11, 328 10, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 11, 10, 10, 10, 329 10, 10, 10, 11, 11, 12, 12, 12, 12, 330}; 331 332static const uint16_t codes11[289] = { 333 0x000, 0x006, 0x019, 0x03d, 0x09c, 0x0c6, 0x1a7, 0x390, 334 0x3c2, 0x3df, 0x7e6, 0x7f3, 0xffb, 0x7ec, 0xffa, 0xffe, 335 0x38e, 0x005, 0x001, 0x008, 0x014, 0x037, 0x042, 0x092, 336 0x0af, 0x191, 0x1a5, 0x1b5, 0x39e, 0x3c0, 0x3a2, 0x3cd, 337 0x7d6, 0x0ae, 0x017, 0x007, 0x009, 0x018, 0x039, 0x040, 338 0x08e, 0x0a3, 0x0b8, 0x199, 0x1ac, 0x1c1, 0x3b1, 0x396, 339 0x3be, 0x3ca, 0x09d, 0x03c, 0x015, 0x016, 0x01a, 0x03b, 340 0x044, 0x091, 0x0a5, 0x0be, 0x196, 0x1ae, 0x1b9, 0x3a1, 341 0x391, 0x3a5, 0x3d5, 0x094, 0x09a, 0x036, 0x038, 0x03a, 342 0x041, 0x08c, 0x09b, 0x0b0, 0x0c3, 0x19e, 0x1ab, 0x1bc, 343 0x39f, 0x38f, 0x3a9, 0x3cf, 0x093, 0x0bf, 0x03e, 0x03f, 344 0x043, 0x045, 0x09e, 0x0a7, 0x0b9, 0x194, 0x1a2, 0x1ba, 345 0x1c3, 0x3a6, 0x3a7, 0x3bb, 0x3d4, 0x09f, 0x1a0, 0x08f, 346 0x08d, 0x090, 0x098, 0x0a6, 0x0b6, 0x0c4, 0x19f, 0x1af, 347 0x1bf, 0x399, 0x3bf, 0x3b4, 0x3c9, 0x3e7, 0x0a8, 0x1b6, 348 0x0ab, 0x0a4, 0x0aa, 0x0b2, 0x0c2, 0x0c5, 0x198, 0x1a4, 349 0x1b8, 0x38c, 0x3a4, 0x3c4, 0x3c6, 0x3dd, 0x3e8, 0x0ad, 350 0x3af, 0x192, 0x0bd, 0x0bc, 0x18e, 0x197, 0x19a, 0x1a3, 351 0x1b1, 0x38d, 0x398, 0x3b7, 0x3d3, 0x3d1, 0x3db, 0x7dd, 352 0x0b4, 0x3de, 0x1a9, 0x19b, 0x19c, 0x1a1, 0x1aa, 0x1ad, 353 0x1b3, 0x38b, 0x3b2, 0x3b8, 0x3ce, 0x3e1, 0x3e0, 0x7d2, 354 0x7e5, 0x0b7, 0x7e3, 0x1bb, 0x1a8, 0x1a6, 0x1b0, 0x1b2, 355 0x1b7, 0x39b, 0x39a, 0x3ba, 0x3b5, 0x3d6, 0x7d7, 0x3e4, 356 0x7d8, 0x7ea, 0x0ba, 0x7e8, 0x3a0, 0x1bd, 0x1b4, 0x38a, 357 0x1c4, 0x392, 0x3aa, 0x3b0, 0x3bc, 0x3d7, 0x7d4, 0x7dc, 358 0x7db, 0x7d5, 0x7f0, 0x0c1, 0x7fb, 0x3c8, 0x3a3, 0x395, 359 0x39d, 0x3ac, 0x3ae, 0x3c5, 0x3d8, 0x3e2, 0x3e6, 0x7e4, 360 0x7e7, 0x7e0, 0x7e9, 0x7f7, 0x190, 0x7f2, 0x393, 0x1be, 361 0x1c0, 0x394, 0x397, 0x3ad, 0x3c3, 0x3c1, 0x3d2, 0x7da, 362 0x7d9, 0x7df, 0x7eb, 0x7f4, 0x7fa, 0x195, 0x7f8, 0x3bd, 363 0x39c, 0x3ab, 0x3a8, 0x3b3, 0x3b9, 0x3d0, 0x3e3, 0x3e5, 364 0x7e2, 0x7de, 0x7ed, 0x7f1, 0x7f9, 0x7fc, 0x193, 0xffd, 365 0x3dc, 0x3b6, 0x3c7, 0x3cc, 0x3cb, 0x3d9, 0x3da, 0x7d3, 366 0x7e1, 0x7ee, 0x7ef, 0x7f5, 0x7f6, 0xffc, 0xfff, 0x19d, 367 0x1c2, 0x0b5, 0x0a1, 0x096, 0x097, 0x095, 0x099, 0x0a0, 368 0x0a2, 0x0ac, 0x0a9, 0x0b1, 0x0b3, 0x0bb, 0x0c0, 0x18f, 369 0x004, 370}; 371 372static const uint8_t bits11[289] = { 373 4, 5, 6, 7, 8, 8, 9, 10, 10, 10, 11, 11, 12, 11, 12, 12, 374 10, 5, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 375 11, 8, 6, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 376 10, 10, 8, 7, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 377 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 378 10, 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 379 9, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 380 9, 10, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 9, 9, 381 9, 10, 10, 10, 10, 10, 10, 8, 10, 9, 8, 8, 9, 9, 9, 9, 382 9, 10, 10, 10, 10, 10, 10, 11, 8, 10, 9, 9, 9, 9, 9, 9, 383 9, 10, 10, 10, 10, 10, 10, 11, 11, 8, 11, 9, 9, 9, 9, 9, 384 9, 10, 10, 10, 10, 10, 11, 10, 11, 11, 8, 11, 10, 9, 9, 10, 385 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 8, 11, 10, 10, 10, 386 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 9, 11, 10, 9, 387 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 11, 10, 388 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 12, 389 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 9, 390 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 391 5, 392}; 393 394const uint16_t * const ff_aac_spectral_codes[11] = { 395 codes1, codes2, codes3, codes4, codes5, codes6, codes7, codes8, 396 codes9, codes10, codes11, 397}; 398 399const uint8_t * const ff_aac_spectral_bits[11] = { 400 bits1, bits2, bits3, bits4, bits5, bits6, bits7, bits8, 401 bits9, bits10, bits11, 402}; 403 404const uint16_t ff_aac_spectral_sizes[11] = { 405 81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289, 406}; 407 408/* NOTE: 409 * 64.0f is a special value indicating the existence of an escape code in the 410 * bitstream. 411 */ 412static const DECLARE_ALIGNED(16, float, codebook_vector0)[324] = { 413 -1.0000000, -1.0000000, -1.0000000, -1.0000000, 414 -1.0000000, -1.0000000, -1.0000000, 0.0000000, 415 -1.0000000, -1.0000000, -1.0000000, 1.0000000, 416 -1.0000000, -1.0000000, 0.0000000, -1.0000000, 417 -1.0000000, -1.0000000, 0.0000000, 0.0000000, 418 -1.0000000, -1.0000000, 0.0000000, 1.0000000, 419 -1.0000000, -1.0000000, 1.0000000, -1.0000000, 420 -1.0000000, -1.0000000, 1.0000000, 0.0000000, 421 -1.0000000, -1.0000000, 1.0000000, 1.0000000, 422 -1.0000000, 0.0000000, -1.0000000, -1.0000000, 423 -1.0000000, 0.0000000, -1.0000000, 0.0000000, 424 -1.0000000, 0.0000000, -1.0000000, 1.0000000, 425 -1.0000000, 0.0000000, 0.0000000, -1.0000000, 426 -1.0000000, 0.0000000, 0.0000000, 0.0000000, 427 -1.0000000, 0.0000000, 0.0000000, 1.0000000, 428 -1.0000000, 0.0000000, 1.0000000, -1.0000000, 429 -1.0000000, 0.0000000, 1.0000000, 0.0000000, 430 -1.0000000, 0.0000000, 1.0000000, 1.0000000, 431 -1.0000000, 1.0000000, -1.0000000, -1.0000000, 432 -1.0000000, 1.0000000, -1.0000000, 0.0000000, 433 -1.0000000, 1.0000000, -1.0000000, 1.0000000, 434 -1.0000000, 1.0000000, 0.0000000, -1.0000000, 435 -1.0000000, 1.0000000, 0.0000000, 0.0000000, 436 -1.0000000, 1.0000000, 0.0000000, 1.0000000, 437 -1.0000000, 1.0000000, 1.0000000, -1.0000000, 438 -1.0000000, 1.0000000, 1.0000000, 0.0000000, 439 -1.0000000, 1.0000000, 1.0000000, 1.0000000, 440 0.0000000, -1.0000000, -1.0000000, -1.0000000, 441 0.0000000, -1.0000000, -1.0000000, 0.0000000, 442 0.0000000, -1.0000000, -1.0000000, 1.0000000, 443 0.0000000, -1.0000000, 0.0000000, -1.0000000, 444 0.0000000, -1.0000000, 0.0000000, 0.0000000, 445 0.0000000, -1.0000000, 0.0000000, 1.0000000, 446 0.0000000, -1.0000000, 1.0000000, -1.0000000, 447 0.0000000, -1.0000000, 1.0000000, 0.0000000, 448 0.0000000, -1.0000000, 1.0000000, 1.0000000, 449 0.0000000, 0.0000000, -1.0000000, -1.0000000, 450 0.0000000, 0.0000000, -1.0000000, 0.0000000, 451 0.0000000, 0.0000000, -1.0000000, 1.0000000, 452 0.0000000, 0.0000000, 0.0000000, -1.0000000, 453 0.0000000, 0.0000000, 0.0000000, 0.0000000, 454 0.0000000, 0.0000000, 0.0000000, 1.0000000, 455 0.0000000, 0.0000000, 1.0000000, -1.0000000, 456 0.0000000, 0.0000000, 1.0000000, 0.0000000, 457 0.0000000, 0.0000000, 1.0000000, 1.0000000, 458 0.0000000, 1.0000000, -1.0000000, -1.0000000, 459 0.0000000, 1.0000000, -1.0000000, 0.0000000, 460 0.0000000, 1.0000000, -1.0000000, 1.0000000, 461 0.0000000, 1.0000000, 0.0000000, -1.0000000, 462 0.0000000, 1.0000000, 0.0000000, 0.0000000, 463 0.0000000, 1.0000000, 0.0000000, 1.0000000, 464 0.0000000, 1.0000000, 1.0000000, -1.0000000, 465 0.0000000, 1.0000000, 1.0000000, 0.0000000, 466 0.0000000, 1.0000000, 1.0000000, 1.0000000, 467 1.0000000, -1.0000000, -1.0000000, -1.0000000, 468 1.0000000, -1.0000000, -1.0000000, 0.0000000, 469 1.0000000, -1.0000000, -1.0000000, 1.0000000, 470 1.0000000, -1.0000000, 0.0000000, -1.0000000, 471 1.0000000, -1.0000000, 0.0000000, 0.0000000, 472 1.0000000, -1.0000000, 0.0000000, 1.0000000, 473 1.0000000, -1.0000000, 1.0000000, -1.0000000, 474 1.0000000, -1.0000000, 1.0000000, 0.0000000, 475 1.0000000, -1.0000000, 1.0000000, 1.0000000, 476 1.0000000, 0.0000000, -1.0000000, -1.0000000, 477 1.0000000, 0.0000000, -1.0000000, 0.0000000, 478 1.0000000, 0.0000000, -1.0000000, 1.0000000, 479 1.0000000, 0.0000000, 0.0000000, -1.0000000, 480 1.0000000, 0.0000000, 0.0000000, 0.0000000, 481 1.0000000, 0.0000000, 0.0000000, 1.0000000, 482 1.0000000, 0.0000000, 1.0000000, -1.0000000, 483 1.0000000, 0.0000000, 1.0000000, 0.0000000, 484 1.0000000, 0.0000000, 1.0000000, 1.0000000, 485 1.0000000, 1.0000000, -1.0000000, -1.0000000, 486 1.0000000, 1.0000000, -1.0000000, 0.0000000, 487 1.0000000, 1.0000000, -1.0000000, 1.0000000, 488 1.0000000, 1.0000000, 0.0000000, -1.0000000, 489 1.0000000, 1.0000000, 0.0000000, 0.0000000, 490 1.0000000, 1.0000000, 0.0000000, 1.0000000, 491 1.0000000, 1.0000000, 1.0000000, -1.0000000, 492 1.0000000, 1.0000000, 1.0000000, 0.0000000, 493 1.0000000, 1.0000000, 1.0000000, 1.0000000, 494}; 495 496static const DECLARE_ALIGNED(16, float, codebook_vector2)[324] = { 497 0.0000000, 0.0000000, 0.0000000, 0.0000000, 498 0.0000000, 0.0000000, 0.0000000, 1.0000000, 499 0.0000000, 0.0000000, 0.0000000, 2.5198421, 500 0.0000000, 0.0000000, 1.0000000, 0.0000000, 501 0.0000000, 0.0000000, 1.0000000, 1.0000000, 502 0.0000000, 0.0000000, 1.0000000, 2.5198421, 503 0.0000000, 0.0000000, 2.5198421, 0.0000000, 504 0.0000000, 0.0000000, 2.5198421, 1.0000000, 505 0.0000000, 0.0000000, 2.5198421, 2.5198421, 506 0.0000000, 1.0000000, 0.0000000, 0.0000000, 507 0.0000000, 1.0000000, 0.0000000, 1.0000000, 508 0.0000000, 1.0000000, 0.0000000, 2.5198421, 509 0.0000000, 1.0000000, 1.0000000, 0.0000000, 510 0.0000000, 1.0000000, 1.0000000, 1.0000000, 511 0.0000000, 1.0000000, 1.0000000, 2.5198421, 512 0.0000000, 1.0000000, 2.5198421, 0.0000000, 513 0.0000000, 1.0000000, 2.5198421, 1.0000000, 514 0.0000000, 1.0000000, 2.5198421, 2.5198421, 515 0.0000000, 2.5198421, 0.0000000, 0.0000000, 516 0.0000000, 2.5198421, 0.0000000, 1.0000000, 517 0.0000000, 2.5198421, 0.0000000, 2.5198421, 518 0.0000000, 2.5198421, 1.0000000, 0.0000000, 519 0.0000000, 2.5198421, 1.0000000, 1.0000000, 520 0.0000000, 2.5198421, 1.0000000, 2.5198421, 521 0.0000000, 2.5198421, 2.5198421, 0.0000000, 522 0.0000000, 2.5198421, 2.5198421, 1.0000000, 523 0.0000000, 2.5198421, 2.5198421, 2.5198421, 524 1.0000000, 0.0000000, 0.0000000, 0.0000000, 525 1.0000000, 0.0000000, 0.0000000, 1.0000000, 526 1.0000000, 0.0000000, 0.0000000, 2.5198421, 527 1.0000000, 0.0000000, 1.0000000, 0.0000000, 528 1.0000000, 0.0000000, 1.0000000, 1.0000000, 529 1.0000000, 0.0000000, 1.0000000, 2.5198421, 530 1.0000000, 0.0000000, 2.5198421, 0.0000000, 531 1.0000000, 0.0000000, 2.5198421, 1.0000000, 532 1.0000000, 0.0000000, 2.5198421, 2.5198421, 533 1.0000000, 1.0000000, 0.0000000, 0.0000000, 534 1.0000000, 1.0000000, 0.0000000, 1.0000000, 535 1.0000000, 1.0000000, 0.0000000, 2.5198421, 536 1.0000000, 1.0000000, 1.0000000, 0.0000000, 537 1.0000000, 1.0000000, 1.0000000, 1.0000000, 538 1.0000000, 1.0000000, 1.0000000, 2.5198421, 539 1.0000000, 1.0000000, 2.5198421, 0.0000000, 540 1.0000000, 1.0000000, 2.5198421, 1.0000000, 541 1.0000000, 1.0000000, 2.5198421, 2.5198421, 542 1.0000000, 2.5198421, 0.0000000, 0.0000000, 543 1.0000000, 2.5198421, 0.0000000, 1.0000000, 544 1.0000000, 2.5198421, 0.0000000, 2.5198421, 545 1.0000000, 2.5198421, 1.0000000, 0.0000000, 546 1.0000000, 2.5198421, 1.0000000, 1.0000000, 547 1.0000000, 2.5198421, 1.0000000, 2.5198421, 548 1.0000000, 2.5198421, 2.5198421, 0.0000000, 549 1.0000000, 2.5198421, 2.5198421, 1.0000000, 550 1.0000000, 2.5198421, 2.5198421, 2.5198421, 551 2.5198421, 0.0000000, 0.0000000, 0.0000000, 552 2.5198421, 0.0000000, 0.0000000, 1.0000000, 553 2.5198421, 0.0000000, 0.0000000, 2.5198421, 554 2.5198421, 0.0000000, 1.0000000, 0.0000000, 555 2.5198421, 0.0000000, 1.0000000, 1.0000000, 556 2.5198421, 0.0000000, 1.0000000, 2.5198421, 557 2.5198421, 0.0000000, 2.5198421, 0.0000000, 558 2.5198421, 0.0000000, 2.5198421, 1.0000000, 559 2.5198421, 0.0000000, 2.5198421, 2.5198421, 560 2.5198421, 1.0000000, 0.0000000, 0.0000000, 561 2.5198421, 1.0000000, 0.0000000, 1.0000000, 562 2.5198421, 1.0000000, 0.0000000, 2.5198421, 563 2.5198421, 1.0000000, 1.0000000, 0.0000000, 564 2.5198421, 1.0000000, 1.0000000, 1.0000000, 565 2.5198421, 1.0000000, 1.0000000, 2.5198421, 566 2.5198421, 1.0000000, 2.5198421, 0.0000000, 567 2.5198421, 1.0000000, 2.5198421, 1.0000000, 568 2.5198421, 1.0000000, 2.5198421, 2.5198421, 569 2.5198421, 2.5198421, 0.0000000, 0.0000000, 570 2.5198421, 2.5198421, 0.0000000, 1.0000000, 571 2.5198421, 2.5198421, 0.0000000, 2.5198421, 572 2.5198421, 2.5198421, 1.0000000, 0.0000000, 573 2.5198421, 2.5198421, 1.0000000, 1.0000000, 574 2.5198421, 2.5198421, 1.0000000, 2.5198421, 575 2.5198421, 2.5198421, 2.5198421, 0.0000000, 576 2.5198421, 2.5198421, 2.5198421, 1.0000000, 577 2.5198421, 2.5198421, 2.5198421, 2.5198421, 578}; 579 580static const DECLARE_ALIGNED(16, float, codebook_vector4)[162] = { 581 -6.3496042, -6.3496042, -6.3496042, -4.3267487, 582 -6.3496042, -2.5198421, -6.3496042, -1.0000000, 583 -6.3496042, 0.0000000, -6.3496042, 1.0000000, 584 -6.3496042, 2.5198421, -6.3496042, 4.3267487, 585 -6.3496042, 6.3496042, -4.3267487, -6.3496042, 586 -4.3267487, -4.3267487, -4.3267487, -2.5198421, 587 -4.3267487, -1.0000000, -4.3267487, 0.0000000, 588 -4.3267487, 1.0000000, -4.3267487, 2.5198421, 589 -4.3267487, 4.3267487, -4.3267487, 6.3496042, 590 -2.5198421, -6.3496042, -2.5198421, -4.3267487, 591 -2.5198421, -2.5198421, -2.5198421, -1.0000000, 592 -2.5198421, 0.0000000, -2.5198421, 1.0000000, 593 -2.5198421, 2.5198421, -2.5198421, 4.3267487, 594 -2.5198421, 6.3496042, -1.0000000, -6.3496042, 595 -1.0000000, -4.3267487, -1.0000000, -2.5198421, 596 -1.0000000, -1.0000000, -1.0000000, 0.0000000, 597 -1.0000000, 1.0000000, -1.0000000, 2.5198421, 598 -1.0000000, 4.3267487, -1.0000000, 6.3496042, 599 0.0000000, -6.3496042, 0.0000000, -4.3267487, 600 0.0000000, -2.5198421, 0.0000000, -1.0000000, 601 0.0000000, 0.0000000, 0.0000000, 1.0000000, 602 0.0000000, 2.5198421, 0.0000000, 4.3267487, 603 0.0000000, 6.3496042, 1.0000000, -6.3496042, 604 1.0000000, -4.3267487, 1.0000000, -2.5198421, 605 1.0000000, -1.0000000, 1.0000000, 0.0000000, 606 1.0000000, 1.0000000, 1.0000000, 2.5198421, 607 1.0000000, 4.3267487, 1.0000000, 6.3496042, 608 2.5198421, -6.3496042, 2.5198421, -4.3267487, 609 2.5198421, -2.5198421, 2.5198421, -1.0000000, 610 2.5198421, 0.0000000, 2.5198421, 1.0000000, 611 2.5198421, 2.5198421, 2.5198421, 4.3267487, 612 2.5198421, 6.3496042, 4.3267487, -6.3496042, 613 4.3267487, -4.3267487, 4.3267487, -2.5198421, 614 4.3267487, -1.0000000, 4.3267487, 0.0000000, 615 4.3267487, 1.0000000, 4.3267487, 2.5198421, 616 4.3267487, 4.3267487, 4.3267487, 6.3496042, 617 6.3496042, -6.3496042, 6.3496042, -4.3267487, 618 6.3496042, -2.5198421, 6.3496042, -1.0000000, 619 6.3496042, 0.0000000, 6.3496042, 1.0000000, 620 6.3496042, 2.5198421, 6.3496042, 4.3267487, 621 6.3496042, 6.3496042, 622}; 623 624static const DECLARE_ALIGNED(16, float, codebook_vector6)[128] = { 625 0.0000000, 0.0000000, 0.0000000, 1.0000000, 626 0.0000000, 2.5198421, 0.0000000, 4.3267487, 627 0.0000000, 6.3496042, 0.0000000, 8.5498797, 628 0.0000000, 10.9027236, 0.0000000, 13.3905183, 629 1.0000000, 0.0000000, 1.0000000, 1.0000000, 630 1.0000000, 2.5198421, 1.0000000, 4.3267487, 631 1.0000000, 6.3496042, 1.0000000, 8.5498797, 632 1.0000000, 10.9027236, 1.0000000, 13.3905183, 633 2.5198421, 0.0000000, 2.5198421, 1.0000000, 634 2.5198421, 2.5198421, 2.5198421, 4.3267487, 635 2.5198421, 6.3496042, 2.5198421, 8.5498797, 636 2.5198421, 10.9027236, 2.5198421, 13.3905183, 637 4.3267487, 0.0000000, 4.3267487, 1.0000000, 638 4.3267487, 2.5198421, 4.3267487, 4.3267487, 639 4.3267487, 6.3496042, 4.3267487, 8.5498797, 640 4.3267487, 10.9027236, 4.3267487, 13.3905183, 641 6.3496042, 0.0000000, 6.3496042, 1.0000000, 642 6.3496042, 2.5198421, 6.3496042, 4.3267487, 643 6.3496042, 6.3496042, 6.3496042, 8.5498797, 644 6.3496042, 10.9027236, 6.3496042, 13.3905183, 645 8.5498797, 0.0000000, 8.5498797, 1.0000000, 646 8.5498797, 2.5198421, 8.5498797, 4.3267487, 647 8.5498797, 6.3496042, 8.5498797, 8.5498797, 648 8.5498797, 10.9027236, 8.5498797, 13.3905183, 649 10.9027236, 0.0000000, 10.9027236, 1.0000000, 650 10.9027236, 2.5198421, 10.9027236, 4.3267487, 651 10.9027236, 6.3496042, 10.9027236, 8.5498797, 652 10.9027236, 10.9027236, 10.9027236, 13.3905183, 653 13.3905183, 0.0000000, 13.3905183, 1.0000000, 654 13.3905183, 2.5198421, 13.3905183, 4.3267487, 655 13.3905183, 6.3496042, 13.3905183, 8.5498797, 656 13.3905183, 10.9027236, 13.3905183, 13.3905183, 657}; 658 659static const DECLARE_ALIGNED(16, float, codebook_vector8)[338] = { 660 0.0000000, 0.0000000, 0.0000000, 1.0000000, 661 0.0000000, 2.5198421, 0.0000000, 4.3267487, 662 0.0000000, 6.3496042, 0.0000000, 8.5498797, 663 0.0000000, 10.9027236, 0.0000000, 13.3905183, 664 0.0000000, 16.0000000, 0.0000000, 18.7207544, 665 0.0000000, 21.5443469, 0.0000000, 24.4637810, 666 0.0000000, 27.4731418, 1.0000000, 0.0000000, 667 1.0000000, 1.0000000, 1.0000000, 2.5198421, 668 1.0000000, 4.3267487, 1.0000000, 6.3496042, 669 1.0000000, 8.5498797, 1.0000000, 10.9027236, 670 1.0000000, 13.3905183, 1.0000000, 16.0000000, 671 1.0000000, 18.7207544, 1.0000000, 21.5443469, 672 1.0000000, 24.4637810, 1.0000000, 27.4731418, 673 2.5198421, 0.0000000, 2.5198421, 1.0000000, 674 2.5198421, 2.5198421, 2.5198421, 4.3267487, 675 2.5198421, 6.3496042, 2.5198421, 8.5498797, 676 2.5198421, 10.9027236, 2.5198421, 13.3905183, 677 2.5198421, 16.0000000, 2.5198421, 18.7207544, 678 2.5198421, 21.5443469, 2.5198421, 24.4637810, 679 2.5198421, 27.4731418, 4.3267487, 0.0000000, 680 4.3267487, 1.0000000, 4.3267487, 2.5198421, 681 4.3267487, 4.3267487, 4.3267487, 6.3496042, 682 4.3267487, 8.5498797, 4.3267487, 10.9027236, 683 4.3267487, 13.3905183, 4.3267487, 16.0000000, 684 4.3267487, 18.7207544, 4.3267487, 21.5443469, 685 4.3267487, 24.4637810, 4.3267487, 27.4731418, 686 6.3496042, 0.0000000, 6.3496042, 1.0000000, 687 6.3496042, 2.5198421, 6.3496042, 4.3267487, 688 6.3496042, 6.3496042, 6.3496042, 8.5498797, 689 6.3496042, 10.9027236, 6.3496042, 13.3905183, 690 6.3496042, 16.0000000, 6.3496042, 18.7207544, 691 6.3496042, 21.5443469, 6.3496042, 24.4637810, 692 6.3496042, 27.4731418, 8.5498797, 0.0000000, 693 8.5498797, 1.0000000, 8.5498797, 2.5198421, 694 8.5498797, 4.3267487, 8.5498797, 6.3496042, 695 8.5498797, 8.5498797, 8.5498797, 10.9027236, 696 8.5498797, 13.3905183, 8.5498797, 16.0000000, 697 8.5498797, 18.7207544, 8.5498797, 21.5443469, 698 8.5498797, 24.4637810, 8.5498797, 27.4731418, 699 10.9027236, 0.0000000, 10.9027236, 1.0000000, 700 10.9027236, 2.5198421, 10.9027236, 4.3267487, 701 10.9027236, 6.3496042, 10.9027236, 8.5498797, 702 10.9027236, 10.9027236, 10.9027236, 13.3905183, 703 10.9027236, 16.0000000, 10.9027236, 18.7207544, 704 10.9027236, 21.5443469, 10.9027236, 24.4637810, 705 10.9027236, 27.4731418, 13.3905183, 0.0000000, 706 13.3905183, 1.0000000, 13.3905183, 2.5198421, 707 13.3905183, 4.3267487, 13.3905183, 6.3496042, 708 13.3905183, 8.5498797, 13.3905183, 10.9027236, 709 13.3905183, 13.3905183, 13.3905183, 16.0000000, 710 13.3905183, 18.7207544, 13.3905183, 21.5443469, 711 13.3905183, 24.4637810, 13.3905183, 27.4731418, 712 16.0000000, 0.0000000, 16.0000000, 1.0000000, 713 16.0000000, 2.5198421, 16.0000000, 4.3267487, 714 16.0000000, 6.3496042, 16.0000000, 8.5498797, 715 16.0000000, 10.9027236, 16.0000000, 13.3905183, 716 16.0000000, 16.0000000, 16.0000000, 18.7207544, 717 16.0000000, 21.5443469, 16.0000000, 24.4637810, 718 16.0000000, 27.4731418, 18.7207544, 0.0000000, 719 18.7207544, 1.0000000, 18.7207544, 2.5198421, 720 18.7207544, 4.3267487, 18.7207544, 6.3496042, 721 18.7207544, 8.5498797, 18.7207544, 10.9027236, 722 18.7207544, 13.3905183, 18.7207544, 16.0000000, 723 18.7207544, 18.7207544, 18.7207544, 21.5443469, 724 18.7207544, 24.4637810, 18.7207544, 27.4731418, 725 21.5443469, 0.0000000, 21.5443469, 1.0000000, 726 21.5443469, 2.5198421, 21.5443469, 4.3267487, 727 21.5443469, 6.3496042, 21.5443469, 8.5498797, 728 21.5443469, 10.9027236, 21.5443469, 13.3905183, 729 21.5443469, 16.0000000, 21.5443469, 18.7207544, 730 21.5443469, 21.5443469, 21.5443469, 24.4637810, 731 21.5443469, 27.4731418, 24.4637810, 0.0000000, 732 24.4637810, 1.0000000, 24.4637810, 2.5198421, 733 24.4637810, 4.3267487, 24.4637810, 6.3496042, 734 24.4637810, 8.5498797, 24.4637810, 10.9027236, 735 24.4637810, 13.3905183, 24.4637810, 16.0000000, 736 24.4637810, 18.7207544, 24.4637810, 21.5443469, 737 24.4637810, 24.4637810, 24.4637810, 27.4731418, 738 27.4731418, 0.0000000, 27.4731418, 1.0000000, 739 27.4731418, 2.5198421, 27.4731418, 4.3267487, 740 27.4731418, 6.3496042, 27.4731418, 8.5498797, 741 27.4731418, 10.9027236, 27.4731418, 13.3905183, 742 27.4731418, 16.0000000, 27.4731418, 18.7207544, 743 27.4731418, 21.5443469, 27.4731418, 24.4637810, 744 27.4731418, 27.4731418, 745}; 746 747static const DECLARE_ALIGNED(16, float, codebook_vector10)[578] = { 748 0.0000000, 0.0000000, 0.0000000, 1.0000000, 749 0.0000000, 2.5198421, 0.0000000, 4.3267487, 750 0.0000000, 6.3496042, 0.0000000, 8.5498797, 751 0.0000000, 10.9027236, 0.0000000, 13.3905183, 752 0.0000000, 16.0000000, 0.0000000, 18.7207544, 753 0.0000000, 21.5443469, 0.0000000, 24.4637810, 754 0.0000000, 27.4731418, 0.0000000, 30.5673509, 755 0.0000000, 33.7419917, 0.0000000, 36.9931811, 756 0.0000000, 64.0f, 1.0000000, 0.0000000, 757 1.0000000, 1.0000000, 1.0000000, 2.5198421, 758 1.0000000, 4.3267487, 1.0000000, 6.3496042, 759 1.0000000, 8.5498797, 1.0000000, 10.9027236, 760 1.0000000, 13.3905183, 1.0000000, 16.0000000, 761 1.0000000, 18.7207544, 1.0000000, 21.5443469, 762 1.0000000, 24.4637810, 1.0000000, 27.4731418, 763 1.0000000, 30.5673509, 1.0000000, 33.7419917, 764 1.0000000, 36.9931811, 1.0000000, 64.0f, 765 2.5198421, 0.0000000, 2.5198421, 1.0000000, 766 2.5198421, 2.5198421, 2.5198421, 4.3267487, 767 2.5198421, 6.3496042, 2.5198421, 8.5498797, 768 2.5198421, 10.9027236, 2.5198421, 13.3905183, 769 2.5198421, 16.0000000, 2.5198421, 18.7207544, 770 2.5198421, 21.5443469, 2.5198421, 24.4637810, 771 2.5198421, 27.4731418, 2.5198421, 30.5673509, 772 2.5198421, 33.7419917, 2.5198421, 36.9931811, 773 2.5198421, 64.0f, 4.3267487, 0.0000000, 774 4.3267487, 1.0000000, 4.3267487, 2.5198421, 775 4.3267487, 4.3267487, 4.3267487, 6.3496042, 776 4.3267487, 8.5498797, 4.3267487, 10.9027236, 777 4.3267487, 13.3905183, 4.3267487, 16.0000000, 778 4.3267487, 18.7207544, 4.3267487, 21.5443469, 779 4.3267487, 24.4637810, 4.3267487, 27.4731418, 780 4.3267487, 30.5673509, 4.3267487, 33.7419917, 781 4.3267487, 36.9931811, 4.3267487, 64.0f, 782 6.3496042, 0.0000000, 6.3496042, 1.0000000, 783 6.3496042, 2.5198421, 6.3496042, 4.3267487, 784 6.3496042, 6.3496042, 6.3496042, 8.5498797, 785 6.3496042, 10.9027236, 6.3496042, 13.3905183, 786 6.3496042, 16.0000000, 6.3496042, 18.7207544, 787 6.3496042, 21.5443469, 6.3496042, 24.4637810, 788 6.3496042, 27.4731418, 6.3496042, 30.5673509, 789 6.3496042, 33.7419917, 6.3496042, 36.9931811, 790 6.3496042, 64.0f, 8.5498797, 0.0000000, 791 8.5498797, 1.0000000, 8.5498797, 2.5198421, 792 8.5498797, 4.3267487, 8.5498797, 6.3496042, 793 8.5498797, 8.5498797, 8.5498797, 10.9027236, 794 8.5498797, 13.3905183, 8.5498797, 16.0000000, 795 8.5498797, 18.7207544, 8.5498797, 21.5443469, 796 8.5498797, 24.4637810, 8.5498797, 27.4731418, 797 8.5498797, 30.5673509, 8.5498797, 33.7419917, 798 8.5498797, 36.9931811, 8.5498797, 64.0f, 799 10.9027236, 0.0000000, 10.9027236, 1.0000000, 800 10.9027236, 2.5198421, 10.9027236, 4.3267487, 801 10.9027236, 6.3496042, 10.9027236, 8.5498797, 802 10.9027236, 10.9027236, 10.9027236, 13.3905183, 803 10.9027236, 16.0000000, 10.9027236, 18.7207544, 804 10.9027236, 21.5443469, 10.9027236, 24.4637810, 805 10.9027236, 27.4731418, 10.9027236, 30.5673509, 806 10.9027236, 33.7419917, 10.9027236, 36.9931811, 807 10.9027236, 64.0f, 13.3905183, 0.0000000, 808 13.3905183, 1.0000000, 13.3905183, 2.5198421, 809 13.3905183, 4.3267487, 13.3905183, 6.3496042, 810 13.3905183, 8.5498797, 13.3905183, 10.9027236, 811 13.3905183, 13.3905183, 13.3905183, 16.0000000, 812 13.3905183, 18.7207544, 13.3905183, 21.5443469, 813 13.3905183, 24.4637810, 13.3905183, 27.4731418, 814 13.3905183, 30.5673509, 13.3905183, 33.7419917, 815 13.3905183, 36.9931811, 13.3905183, 64.0f, 816 16.0000000, 0.0000000, 16.0000000, 1.0000000, 817 16.0000000, 2.5198421, 16.0000000, 4.3267487, 818 16.0000000, 6.3496042, 16.0000000, 8.5498797, 819 16.0000000, 10.9027236, 16.0000000, 13.3905183, 820 16.0000000, 16.0000000, 16.0000000, 18.7207544, 821 16.0000000, 21.5443469, 16.0000000, 24.4637810, 822 16.0000000, 27.4731418, 16.0000000, 30.5673509, 823 16.0000000, 33.7419917, 16.0000000, 36.9931811, 824 16.0000000, 64.0f, 18.7207544, 0.0000000, 825 18.7207544, 1.0000000, 18.7207544, 2.5198421, 826 18.7207544, 4.3267487, 18.7207544, 6.3496042, 827 18.7207544, 8.5498797, 18.7207544, 10.9027236, 828 18.7207544, 13.3905183, 18.7207544, 16.0000000, 829 18.7207544, 18.7207544, 18.7207544, 21.5443469, 830 18.7207544, 24.4637810, 18.7207544, 27.4731418, 831 18.7207544, 30.5673509, 18.7207544, 33.7419917, 832 18.7207544, 36.9931811, 18.7207544, 64.0f, 833 21.5443469, 0.0000000, 21.5443469, 1.0000000, 834 21.5443469, 2.5198421, 21.5443469, 4.3267487, 835 21.5443469, 6.3496042, 21.5443469, 8.5498797, 836 21.5443469, 10.9027236, 21.5443469, 13.3905183, 837 21.5443469, 16.0000000, 21.5443469, 18.7207544, 838 21.5443469, 21.5443469, 21.5443469, 24.4637810, 839 21.5443469, 27.4731418, 21.5443469, 30.5673509, 840 21.5443469, 33.7419917, 21.5443469, 36.9931811, 841 21.5443469, 64.0f, 24.4637810, 0.0000000, 842 24.4637810, 1.0000000, 24.4637810, 2.5198421, 843 24.4637810, 4.3267487, 24.4637810, 6.3496042, 844 24.4637810, 8.5498797, 24.4637810, 10.9027236, 845 24.4637810, 13.3905183, 24.4637810, 16.0000000, 846 24.4637810, 18.7207544, 24.4637810, 21.5443469, 847 24.4637810, 24.4637810, 24.4637810, 27.4731418, 848 24.4637810, 30.5673509, 24.4637810, 33.7419917, 849 24.4637810, 36.9931811, 24.4637810, 64.0f, 850 27.4731418, 0.0000000, 27.4731418, 1.0000000, 851 27.4731418, 2.5198421, 27.4731418, 4.3267487, 852 27.4731418, 6.3496042, 27.4731418, 8.5498797, 853 27.4731418, 10.9027236, 27.4731418, 13.3905183, 854 27.4731418, 16.0000000, 27.4731418, 18.7207544, 855 27.4731418, 21.5443469, 27.4731418, 24.4637810, 856 27.4731418, 27.4731418, 27.4731418, 30.5673509, 857 27.4731418, 33.7419917, 27.4731418, 36.9931811, 858 27.4731418, 64.0f, 30.5673509, 0.0000000, 859 30.5673509, 1.0000000, 30.5673509, 2.5198421, 860 30.5673509, 4.3267487, 30.5673509, 6.3496042, 861 30.5673509, 8.5498797, 30.5673509, 10.9027236, 862 30.5673509, 13.3905183, 30.5673509, 16.0000000, 863 30.5673509, 18.7207544, 30.5673509, 21.5443469, 864 30.5673509, 24.4637810, 30.5673509, 27.4731418, 865 30.5673509, 30.5673509, 30.5673509, 33.7419917, 866 30.5673509, 36.9931811, 30.5673509, 64.0f, 867 33.7419917, 0.0000000, 33.7419917, 1.0000000, 868 33.7419917, 2.5198421, 33.7419917, 4.3267487, 869 33.7419917, 6.3496042, 33.7419917, 8.5498797, 870 33.7419917, 10.9027236, 33.7419917, 13.3905183, 871 33.7419917, 16.0000000, 33.7419917, 18.7207544, 872 33.7419917, 21.5443469, 33.7419917, 24.4637810, 873 33.7419917, 27.4731418, 33.7419917, 30.5673509, 874 33.7419917, 33.7419917, 33.7419917, 36.9931811, 875 33.7419917, 64.0f, 36.9931811, 0.0000000, 876 36.9931811, 1.0000000, 36.9931811, 2.5198421, 877 36.9931811, 4.3267487, 36.9931811, 6.3496042, 878 36.9931811, 8.5498797, 36.9931811, 10.9027236, 879 36.9931811, 13.3905183, 36.9931811, 16.0000000, 880 36.9931811, 18.7207544, 36.9931811, 21.5443469, 881 36.9931811, 24.4637810, 36.9931811, 27.4731418, 882 36.9931811, 30.5673509, 36.9931811, 33.7419917, 883 36.9931811, 36.9931811, 36.9931811, 64.0f, 884 64.0f, 0.0000000, 64.0f, 1.0000000, 885 64.0f, 2.5198421, 64.0f, 4.3267487, 886 64.0f, 6.3496042, 64.0f, 8.5498797, 887 64.0f, 10.9027236, 64.0f, 13.3905183, 888 64.0f, 16.0000000, 64.0f, 18.7207544, 889 64.0f, 21.5443469, 64.0f, 24.4637810, 890 64.0f, 27.4731418, 64.0f, 30.5673509, 891 64.0f, 33.7419917, 64.0f, 36.9931811, 892 64.0f, 64.0f, 893}; 894 895const float * const ff_aac_codebook_vectors[] = { 896 codebook_vector0, codebook_vector0, codebook_vector2, 897 codebook_vector2, codebook_vector4, codebook_vector4, 898 codebook_vector6, codebook_vector6, codebook_vector8, 899 codebook_vector8, codebook_vector10, 900}; 901 902static const float codebook_vector0_vals[] = { 903 -1.0000000, 0.0000000, 1.0000000 904}; 905 906/* 907 * bits 0:1, 2:3, 4:5, 6:7 index into _vals array 908 * 8:11 number of non-zero values 909 * 12:15 bit mask of non-zero values 910 */ 911static const uint16_t codebook_vector02_idx[] = { 912 0x0000, 0x8140, 0x8180, 0x4110, 0xc250, 0xc290, 0x4120, 0xc260, 0xc2a0, 913 0x2104, 0xa244, 0xa284, 0x6214, 0xe354, 0xe394, 0x6224, 0xe364, 0xe3a4, 914 0x2108, 0xa248, 0xa288, 0x6218, 0xe358, 0xe398, 0x6228, 0xe368, 0xe3a8, 915 0x1101, 0x9241, 0x9281, 0x5211, 0xd351, 0xd391, 0x5221, 0xd361, 0xd3a1, 916 0x3205, 0xb345, 0xb385, 0x7315, 0xf455, 0xf495, 0x7325, 0xf465, 0xf4a5, 917 0x3209, 0xb349, 0xb389, 0x7319, 0xf459, 0xf499, 0x7329, 0xf469, 0xf4a9, 918 0x1102, 0x9242, 0x9282, 0x5212, 0xd352, 0xd392, 0x5222, 0xd362, 0xd3a2, 919 0x3206, 0xb346, 0xb386, 0x7316, 0xf456, 0xf496, 0x7326, 0xf466, 0xf4a6, 920 0x320a, 0xb34a, 0xb38a, 0x731a, 0xf45a, 0xf49a, 0x732a, 0xf46a, 0xf4aa, 921}; 922 923static const float codebook_vector4_vals[] = { 924 -6.3496042, -4.3267487, 925 -2.5198421, -1.0000000, 926 0.0000000, 1.0000000, 927 2.5198421, 4.3267487, 928 6.3496042, 929}; 930 931/* 932 * bits 0:3, 4:7 index into _vals array 933 */ 934static const uint16_t codebook_vector4_idx[] = { 935 0x0000, 0x0010, 0x0020, 0x0030, 0x0040, 0x0050, 0x0060, 0x0070, 0x0080, 936 0x0001, 0x0011, 0x0021, 0x0031, 0x0041, 0x0051, 0x0061, 0x0071, 0x0081, 937 0x0002, 0x0012, 0x0022, 0x0032, 0x0042, 0x0052, 0x0062, 0x0072, 0x0082, 938 0x0003, 0x0013, 0x0023, 0x0033, 0x0043, 0x0053, 0x0063, 0x0073, 0x0083, 939 0x0004, 0x0014, 0x0024, 0x0034, 0x0044, 0x0054, 0x0064, 0x0074, 0x0084, 940 0x0005, 0x0015, 0x0025, 0x0035, 0x0045, 0x0055, 0x0065, 0x0075, 0x0085, 941 0x0006, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0076, 0x0086, 942 0x0007, 0x0017, 0x0027, 0x0037, 0x0047, 0x0057, 0x0067, 0x0077, 0x0087, 943 0x0008, 0x0018, 0x0028, 0x0038, 0x0048, 0x0058, 0x0068, 0x0078, 0x0088, 944}; 945 946/* 947 * bits 0:3, 4:7 index into _vals array 948 * 8:11 number of non-zero values 949 * 12:15 1: only second value non-zero 950 * 0: other cases 951 */ 952static const uint16_t codebook_vector6_idx[] = { 953 0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170, 954 0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261, 0x0271, 955 0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262, 0x0272, 956 0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263, 0x0273, 957 0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264, 0x0274, 958 0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265, 0x0275, 959 0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266, 0x0276, 960 0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267, 0x0277, 961}; 962 963/* 964 * bits 0:3, 4:7 index into _vals array 965 * 8:11 number of non-zero values 966 * 12:15 1: only second value non-zero 967 * 0: other cases 968 */ 969static const uint16_t codebook_vector8_idx[] = { 970 0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 971 0x0170, 0x0180, 0x0190, 0x01a0, 0x01b0, 0x01c0, 972 0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261, 973 0x0271, 0x0281, 0x0291, 0x02a1, 0x02b1, 0x02c1, 974 0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262, 975 0x0272, 0x0282, 0x0292, 0x02a2, 0x02b2, 0x02c2, 976 0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263, 977 0x0273, 0x0283, 0x0293, 0x02a3, 0x02b3, 0x02c3, 978 0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264, 979 0x0274, 0x0284, 0x0294, 0x02a4, 0x02b4, 0x02c4, 980 0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265, 981 0x0275, 0x0285, 0x0295, 0x02a5, 0x02b5, 0x02c5, 982 0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266, 983 0x0276, 0x0286, 0x0296, 0x02a6, 0x02b6, 0x02c6, 984 0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267, 985 0x0277, 0x0287, 0x0297, 0x02a7, 0x02b7, 0x02c7, 986 0x1108, 0x0218, 0x0228, 0x0238, 0x0248, 0x0258, 0x0268, 987 0x0278, 0x0288, 0x0298, 0x02a8, 0x02b8, 0x02c8, 988 0x1109, 0x0219, 0x0229, 0x0239, 0x0249, 0x0259, 0x0269, 989 0x0279, 0x0289, 0x0299, 0x02a9, 0x02b9, 0x02c9, 990 0x110a, 0x021a, 0x022a, 0x023a, 0x024a, 0x025a, 0x026a, 991 0x027a, 0x028a, 0x029a, 0x02aa, 0x02ba, 0x02ca, 992 0x110b, 0x021b, 0x022b, 0x023b, 0x024b, 0x025b, 0x026b, 993 0x027b, 0x028b, 0x029b, 0x02ab, 0x02bb, 0x02cb, 994 0x110c, 0x021c, 0x022c, 0x023c, 0x024c, 0x025c, 0x026c, 995 0x027c, 0x028c, 0x029c, 0x02ac, 0x02bc, 0x02cc, 996}; 997 998static const float codebook_vector10_vals[] = { 999 0.0000000, 1.0000000, 1000 2.5198421, 4.3267487, 1001 6.3496042, 8.5498797, 1002 10.9027236, 13.3905183, 1003 16.0000000, 18.7207544, 1004 21.5443469, 24.4637810, 1005 27.4731418, 30.5673509, 1006 33.7419917, 36.9931811, 1007}; 1008 1009/* 1010 * bits 0:3, 4:7 index into _vals array 1011 * 8:9 bit mask of escape-coded entries 1012 * 12:15 number of non-zero values 1013 */ 1014static const uint16_t codebook_vector10_idx[] = { 1015 0x0000, 0x1010, 0x1020, 0x1030, 0x1040, 0x1050, 0x1060, 0x1070, 1016 0x1080, 0x1090, 0x10a0, 0x10b0, 0x10c0, 0x10d0, 0x10e0, 0x10f0, 0x1200, 1017 0x1001, 0x2011, 0x2021, 0x2031, 0x2041, 0x2051, 0x2061, 0x2071, 1018 0x2081, 0x2091, 0x20a1, 0x20b1, 0x20c1, 0x20d1, 0x20e1, 0x20f1, 0x2201, 1019 0x1002, 0x2012, 0x2022, 0x2032, 0x2042, 0x2052, 0x2062, 0x2072, 1020 0x2082, 0x2092, 0x20a2, 0x20b2, 0x20c2, 0x20d2, 0x20e2, 0x20f2, 0x2202, 1021 0x1003, 0x2013, 0x2023, 0x2033, 0x2043, 0x2053, 0x2063, 0x2073, 1022 0x2083, 0x2093, 0x20a3, 0x20b3, 0x20c3, 0x20d3, 0x20e3, 0x20f3, 0x2203, 1023 0x1004, 0x2014, 0x2024, 0x2034, 0x2044, 0x2054, 0x2064, 0x2074, 1024 0x2084, 0x2094, 0x20a4, 0x20b4, 0x20c4, 0x20d4, 0x20e4, 0x20f4, 0x2204, 1025 0x1005, 0x2015, 0x2025, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075, 1026 0x2085, 0x2095, 0x20a5, 0x20b5, 0x20c5, 0x20d5, 0x20e5, 0x20f5, 0x2205, 1027 0x1006, 0x2016, 0x2026, 0x2036, 0x2046, 0x2056, 0x2066, 0x2076, 1028 0x2086, 0x2096, 0x20a6, 0x20b6, 0x20c6, 0x20d6, 0x20e6, 0x20f6, 0x2206, 1029 0x1007, 0x2017, 0x2027, 0x2037, 0x2047, 0x2057, 0x2067, 0x2077, 1030 0x2087, 0x2097, 0x20a7, 0x20b7, 0x20c7, 0x20d7, 0x20e7, 0x20f7, 0x2207, 1031 0x1008, 0x2018, 0x2028, 0x2038, 0x2048, 0x2058, 0x2068, 0x2078, 1032 0x2088, 0x2098, 0x20a8, 0x20b8, 0x20c8, 0x20d8, 0x20e8, 0x20f8, 0x2208, 1033 0x1009, 0x2019, 0x2029, 0x2039, 0x2049, 0x2059, 0x2069, 0x2079, 1034 0x2089, 0x2099, 0x20a9, 0x20b9, 0x20c9, 0x20d9, 0x20e9, 0x20f9, 0x2209, 1035 0x100a, 0x201a, 0x202a, 0x203a, 0x204a, 0x205a, 0x206a, 0x207a, 1036 0x208a, 0x209a, 0x20aa, 0x20ba, 0x20ca, 0x20da, 0x20ea, 0x20fa, 0x220a, 1037 0x100b, 0x201b, 0x202b, 0x203b, 0x204b, 0x205b, 0x206b, 0x207b, 1038 0x208b, 0x209b, 0x20ab, 0x20bb, 0x20cb, 0x20db, 0x20eb, 0x20fb, 0x220b, 1039 0x100c, 0x201c, 0x202c, 0x203c, 0x204c, 0x205c, 0x206c, 0x207c, 1040 0x208c, 0x209c, 0x20ac, 0x20bc, 0x20cc, 0x20dc, 0x20ec, 0x20fc, 0x220c, 1041 0x100d, 0x201d, 0x202d, 0x203d, 0x204d, 0x205d, 0x206d, 0x207d, 1042 0x208d, 0x209d, 0x20ad, 0x20bd, 0x20cd, 0x20dd, 0x20ed, 0x20fd, 0x220d, 1043 0x100e, 0x201e, 0x202e, 0x203e, 0x204e, 0x205e, 0x206e, 0x207e, 1044 0x208e, 0x209e, 0x20ae, 0x20be, 0x20ce, 0x20de, 0x20ee, 0x20fe, 0x220e, 1045 0x100f, 0x201f, 0x202f, 0x203f, 0x204f, 0x205f, 0x206f, 0x207f, 1046 0x208f, 0x209f, 0x20af, 0x20bf, 0x20cf, 0x20df, 0x20ef, 0x20ff, 0x220f, 1047 0x1100, 0x2110, 0x2120, 0x2130, 0x2140, 0x2150, 0x2160, 0x2170, 1048 0x2180, 0x2190, 0x21a0, 0x21b0, 0x21c0, 0x21d0, 0x21e0, 0x21f0, 0x2300, 1049}; 1050 1051const float *const ff_aac_codebook_vector_vals[] = { 1052 codebook_vector0_vals, codebook_vector0_vals, 1053 codebook_vector10_vals, codebook_vector10_vals, 1054 codebook_vector4_vals, codebook_vector4_vals, 1055 codebook_vector10_vals, codebook_vector10_vals, 1056 codebook_vector10_vals, codebook_vector10_vals, 1057 codebook_vector10_vals, 1058}; 1059 1060const uint16_t *const ff_aac_codebook_vector_idx[] = { 1061 codebook_vector02_idx, codebook_vector02_idx, 1062 codebook_vector02_idx, codebook_vector02_idx, 1063 codebook_vector4_idx, codebook_vector4_idx, 1064 codebook_vector6_idx, codebook_vector6_idx, 1065 codebook_vector8_idx, codebook_vector8_idx, 1066 codebook_vector10_idx, 1067}; 1068 1069/* @name swb_offsets 1070 * Sample offset into the window indicating the beginning of a scalefactor 1071 * window band 1072 * 1073 * scalefactor window band - term for scalefactor bands within a window, 1074 * given in Table 4.110 to Table 4.128. 1075 * 1076 * scalefactor band - a set of spectral coefficients which are scaled by one 1077 * scalefactor. In case of EIGHT_SHORT_SEQUENCE and grouping a scalefactor band 1078 * may contain several scalefactor window bands of corresponding frequency. For 1079 * all other window_sequences scalefactor bands and scalefactor window bands are 1080 * identical. 1081 * @{ 1082 */ 1083 1084static const uint16_t swb_offset_1024_96[] = { 1085 0, 4, 8, 12, 16, 20, 24, 28, 1086 32, 36, 40, 44, 48, 52, 56, 64, 1087 72, 80, 88, 96, 108, 120, 132, 144, 1088 156, 172, 188, 212, 240, 276, 320, 384, 1089 448, 512, 576, 640, 704, 768, 832, 896, 1090 960, 1024 1091}; 1092 1093static const uint16_t swb_offset_128_96[] = { 1094 0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 128 1095}; 1096 1097static const uint16_t swb_offset_1024_64[] = { 1098 0, 4, 8, 12, 16, 20, 24, 28, 1099 32, 36, 40, 44, 48, 52, 56, 64, 1100 72, 80, 88, 100, 112, 124, 140, 156, 1101 172, 192, 216, 240, 268, 304, 344, 384, 1102 424, 464, 504, 544, 584, 624, 664, 704, 1103 744, 784, 824, 864, 904, 944, 984, 1024 1104}; 1105 1106static const uint16_t swb_offset_1024_48[] = { 1107 0, 4, 8, 12, 16, 20, 24, 28, 1108 32, 36, 40, 48, 56, 64, 72, 80, 1109 88, 96, 108, 120, 132, 144, 160, 176, 1110 196, 216, 240, 264, 292, 320, 352, 384, 1111 416, 448, 480, 512, 544, 576, 608, 640, 1112 672, 704, 736, 768, 800, 832, 864, 896, 1113 928, 1024 1114}; 1115 1116static const uint16_t swb_offset_128_48[] = { 1117 0, 4, 8, 12, 16, 20, 28, 36, 1118 44, 56, 68, 80, 96, 112, 128 1119}; 1120 1121static const uint16_t swb_offset_1024_32[] = { 1122 0, 4, 8, 12, 16, 20, 24, 28, 1123 32, 36, 40, 48, 56, 64, 72, 80, 1124 88, 96, 108, 120, 132, 144, 160, 176, 1125 196, 216, 240, 264, 292, 320, 352, 384, 1126 416, 448, 480, 512, 544, 576, 608, 640, 1127 672, 704, 736, 768, 800, 832, 864, 896, 1128 928, 960, 992, 1024 1129}; 1130 1131static const uint16_t swb_offset_1024_24[] = { 1132 0, 4, 8, 12, 16, 20, 24, 28, 1133 32, 36, 40, 44, 52, 60, 68, 76, 1134 84, 92, 100, 108, 116, 124, 136, 148, 1135 160, 172, 188, 204, 220, 240, 260, 284, 1136 308, 336, 364, 396, 432, 468, 508, 552, 1137 600, 652, 704, 768, 832, 896, 960, 1024 1138}; 1139 1140static const uint16_t swb_offset_128_24[] = { 1141 0, 4, 8, 12, 16, 20, 24, 28, 1142 36, 44, 52, 64, 76, 92, 108, 128 1143}; 1144 1145static const uint16_t swb_offset_1024_16[] = { 1146 0, 8, 16, 24, 32, 40, 48, 56, 1147 64, 72, 80, 88, 100, 112, 124, 136, 1148 148, 160, 172, 184, 196, 212, 228, 244, 1149 260, 280, 300, 320, 344, 368, 396, 424, 1150 456, 492, 532, 572, 616, 664, 716, 772, 1151 832, 896, 960, 1024 1152}; 1153 1154static const uint16_t swb_offset_128_16[] = { 1155 0, 4, 8, 12, 16, 20, 24, 28, 1156 32, 40, 48, 60, 72, 88, 108, 128 1157}; 1158 1159static const uint16_t swb_offset_1024_8[] = { 1160 0, 12, 24, 36, 48, 60, 72, 84, 1161 96, 108, 120, 132, 144, 156, 172, 188, 1162 204, 220, 236, 252, 268, 288, 308, 328, 1163 348, 372, 396, 420, 448, 476, 508, 544, 1164 580, 620, 664, 712, 764, 820, 880, 944, 1165 1024 1166}; 1167 1168static const uint16_t swb_offset_128_8[] = { 1169 0, 4, 8, 12, 16, 20, 24, 28, 1170 36, 44, 52, 60, 72, 88, 108, 128 1171}; 1172 1173const uint16_t * const ff_swb_offset_1024[] = { 1174 swb_offset_1024_96, swb_offset_1024_96, swb_offset_1024_64, 1175 swb_offset_1024_48, swb_offset_1024_48, swb_offset_1024_32, 1176 swb_offset_1024_24, swb_offset_1024_24, swb_offset_1024_16, 1177 swb_offset_1024_16, swb_offset_1024_16, swb_offset_1024_8, 1178 swb_offset_1024_8 1179}; 1180 1181const uint16_t * const ff_swb_offset_128[] = { 1182 /* The last entry on the following row is swb_offset_128_64 but is a 1183 duplicate of swb_offset_128_96. */ 1184 swb_offset_128_96, swb_offset_128_96, swb_offset_128_96, 1185 swb_offset_128_48, swb_offset_128_48, swb_offset_128_48, 1186 swb_offset_128_24, swb_offset_128_24, swb_offset_128_16, 1187 swb_offset_128_16, swb_offset_128_16, swb_offset_128_8, 1188 swb_offset_128_8 1189}; 1190 1191// @} 1192 1193/* @name ff_tns_max_bands 1194 * The maximum number of scalefactor bands on which TNS can operate for the long 1195 * and short transforms respectively. The index to these tables is related to 1196 * the sample rate of the audio. 1197 * @{ 1198 */ 1199const uint8_t ff_tns_max_bands_1024[] = { 1200 31, 31, 34, 40, 42, 51, 46, 46, 42, 42, 42, 39, 39 1201}; 1202 1203const uint8_t ff_tns_max_bands_128[] = { 1204 9, 9, 10, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 1205}; 1206// @} 1207 1208 1209#if CONFIG_HARDCODED_TABLES 1210 1211/** 1212 * Table of pow(2, (i - 200)/4.) used for different purposes depending on the 1213 * range of indices to the table: 1214 * [ 0, 255] scale factor decoding when using C dsp.float_to_int16 1215 * [60, 315] scale factor decoding when using SIMD dsp.float_to_int16 1216 * [45, 300] intensity stereo position decoding mapped in reverse order i.e. 0->300, 1->299, ..., 254->46, 255->45 1217 */ 1218const float ff_aac_pow2sf_tab[428] = { 1219 8.88178420e-16, 1.05622810e-15, 1.25607397e-15, 1.49373210e-15, 1220 1.77635684e-15, 2.11245619e-15, 2.51214793e-15, 2.98746420e-15, 1221 3.55271368e-15, 4.22491238e-15, 5.02429587e-15, 5.97492839e-15, 1222 7.10542736e-15, 8.44982477e-15, 1.00485917e-14, 1.19498568e-14, 1223 1.42108547e-14, 1.68996495e-14, 2.00971835e-14, 2.38997136e-14, 1224 2.84217094e-14, 3.37992991e-14, 4.01943669e-14, 4.77994272e-14, 1225 5.68434189e-14, 6.75985982e-14, 8.03887339e-14, 9.55988543e-14, 1226 1.13686838e-13, 1.35197196e-13, 1.60777468e-13, 1.91197709e-13, 1227 2.27373675e-13, 2.70394393e-13, 3.21554936e-13, 3.82395417e-13, 1228 4.54747351e-13, 5.40788785e-13, 6.43109871e-13, 7.64790834e-13, 1229 9.09494702e-13, 1.08157757e-12, 1.28621974e-12, 1.52958167e-12, 1230 1.81898940e-12, 2.16315514e-12, 2.57243948e-12, 3.05916334e-12, 1231 3.63797881e-12, 4.32631028e-12, 5.14487897e-12, 6.11832668e-12, 1232 7.27595761e-12, 8.65262056e-12, 1.02897579e-11, 1.22366534e-11, 1233 1.45519152e-11, 1.73052411e-11, 2.05795159e-11, 2.44733067e-11, 1234 2.91038305e-11, 3.46104823e-11, 4.11590317e-11, 4.89466134e-11, 1235 5.82076609e-11, 6.92209645e-11, 8.23180635e-11, 9.78932268e-11, 1236 1.16415322e-10, 1.38441929e-10, 1.64636127e-10, 1.95786454e-10, 1237 2.32830644e-10, 2.76883858e-10, 3.29272254e-10, 3.91572907e-10, 1238 4.65661287e-10, 5.53767716e-10, 6.58544508e-10, 7.83145814e-10, 1239 9.31322575e-10, 1.10753543e-09, 1.31708902e-09, 1.56629163e-09, 1240 1.86264515e-09, 2.21507086e-09, 2.63417803e-09, 3.13258326e-09, 1241 3.72529030e-09, 4.43014173e-09, 5.26835606e-09, 6.26516652e-09, 1242 7.45058060e-09, 8.86028346e-09, 1.05367121e-08, 1.25303330e-08, 1243 1.49011612e-08, 1.77205669e-08, 2.10734243e-08, 2.50606661e-08, 1244 2.98023224e-08, 3.54411338e-08, 4.21468485e-08, 5.01213321e-08, 1245 5.96046448e-08, 7.08822677e-08, 8.42936970e-08, 1.00242664e-07, 1246 1.19209290e-07, 1.41764535e-07, 1.68587394e-07, 2.00485328e-07, 1247 2.38418579e-07, 2.83529071e-07, 3.37174788e-07, 4.00970657e-07, 1248 4.76837158e-07, 5.67058141e-07, 6.74349576e-07, 8.01941314e-07, 1249 9.53674316e-07, 1.13411628e-06, 1.34869915e-06, 1.60388263e-06, 1250 1.90734863e-06, 2.26823256e-06, 2.69739830e-06, 3.20776526e-06, 1251 3.81469727e-06, 4.53646513e-06, 5.39479661e-06, 6.41553051e-06, 1252 7.62939453e-06, 9.07293026e-06, 1.07895932e-05, 1.28310610e-05, 1253 1.52587891e-05, 1.81458605e-05, 2.15791864e-05, 2.56621220e-05, 1254 3.05175781e-05, 3.62917210e-05, 4.31583729e-05, 5.13242441e-05, 1255 6.10351562e-05, 7.25834421e-05, 8.63167458e-05, 1.02648488e-04, 1256 1.22070312e-04, 1.45166884e-04, 1.72633492e-04, 2.05296976e-04, 1257 2.44140625e-04, 2.90333768e-04, 3.45266983e-04, 4.10593953e-04, 1258 4.88281250e-04, 5.80667537e-04, 6.90533966e-04, 8.21187906e-04, 1259 9.76562500e-04, 1.16133507e-03, 1.38106793e-03, 1.64237581e-03, 1260 1.95312500e-03, 2.32267015e-03, 2.76213586e-03, 3.28475162e-03, 1261 3.90625000e-03, 4.64534029e-03, 5.52427173e-03, 6.56950324e-03, 1262 7.81250000e-03, 9.29068059e-03, 1.10485435e-02, 1.31390065e-02, 1263 1.56250000e-02, 1.85813612e-02, 2.20970869e-02, 2.62780130e-02, 1264 3.12500000e-02, 3.71627223e-02, 4.41941738e-02, 5.25560260e-02, 1265 6.25000000e-02, 7.43254447e-02, 8.83883476e-02, 1.05112052e-01, 1266 1.25000000e-01, 1.48650889e-01, 1.76776695e-01, 2.10224104e-01, 1267 2.50000000e-01, 2.97301779e-01, 3.53553391e-01, 4.20448208e-01, 1268 5.00000000e-01, 5.94603558e-01, 7.07106781e-01, 8.40896415e-01, 1269 1.00000000e+00, 1.18920712e+00, 1.41421356e+00, 1.68179283e+00, 1270 2.00000000e+00, 2.37841423e+00, 2.82842712e+00, 3.36358566e+00, 1271 4.00000000e+00, 4.75682846e+00, 5.65685425e+00, 6.72717132e+00, 1272 8.00000000e+00, 9.51365692e+00, 1.13137085e+01, 1.34543426e+01, 1273 1.60000000e+01, 1.90273138e+01, 2.26274170e+01, 2.69086853e+01, 1274 3.20000000e+01, 3.80546277e+01, 4.52548340e+01, 5.38173706e+01, 1275 6.40000000e+01, 7.61092554e+01, 9.05096680e+01, 1.07634741e+02, 1276 1.28000000e+02, 1.52218511e+02, 1.81019336e+02, 2.15269482e+02, 1277 2.56000000e+02, 3.04437021e+02, 3.62038672e+02, 4.30538965e+02, 1278 5.12000000e+02, 6.08874043e+02, 7.24077344e+02, 8.61077929e+02, 1279 1.02400000e+03, 1.21774809e+03, 1.44815469e+03, 1.72215586e+03, 1280 2.04800000e+03, 2.43549617e+03, 2.89630938e+03, 3.44431172e+03, 1281 4.09600000e+03, 4.87099234e+03, 5.79261875e+03, 6.88862343e+03, 1282 8.19200000e+03, 9.74198469e+03, 1.15852375e+04, 1.37772469e+04, 1283 1.63840000e+04, 1.94839694e+04, 2.31704750e+04, 2.75544937e+04, 1284 3.27680000e+04, 3.89679387e+04, 4.63409500e+04, 5.51089875e+04, 1285 6.55360000e+04, 7.79358775e+04, 9.26819000e+04, 1.10217975e+05, 1286 1.31072000e+05, 1.55871755e+05, 1.85363800e+05, 2.20435950e+05, 1287 2.62144000e+05, 3.11743510e+05, 3.70727600e+05, 4.40871900e+05, 1288 5.24288000e+05, 6.23487020e+05, 7.41455200e+05, 8.81743800e+05, 1289 1.04857600e+06, 1.24697404e+06, 1.48291040e+06, 1.76348760e+06, 1290 2.09715200e+06, 2.49394808e+06, 2.96582080e+06, 3.52697520e+06, 1291 4.19430400e+06, 4.98789616e+06, 5.93164160e+06, 7.05395040e+06, 1292 8.38860800e+06, 9.97579232e+06, 1.18632832e+07, 1.41079008e+07, 1293 1.67772160e+07, 1.99515846e+07, 2.37265664e+07, 2.82158016e+07, 1294 3.35544320e+07, 3.99031693e+07, 4.74531328e+07, 5.64316032e+07, 1295 6.71088640e+07, 7.98063385e+07, 9.49062656e+07, 1.12863206e+08, 1296 1.34217728e+08, 1.59612677e+08, 1.89812531e+08, 2.25726413e+08, 1297 2.68435456e+08, 3.19225354e+08, 3.79625062e+08, 4.51452825e+08, 1298 5.36870912e+08, 6.38450708e+08, 7.59250125e+08, 9.02905651e+08, 1299 1.07374182e+09, 1.27690142e+09, 1.51850025e+09, 1.80581130e+09, 1300 2.14748365e+09, 2.55380283e+09, 3.03700050e+09, 3.61162260e+09, 1301 4.29496730e+09, 5.10760567e+09, 6.07400100e+09, 7.22324521e+09, 1302 8.58993459e+09, 1.02152113e+10, 1.21480020e+10, 1.44464904e+10, 1303 1.71798692e+10, 2.04304227e+10, 2.42960040e+10, 2.88929808e+10, 1304 3.43597384e+10, 4.08608453e+10, 4.85920080e+10, 5.77859616e+10, 1305 6.87194767e+10, 8.17216907e+10, 9.71840160e+10, 1.15571923e+11, 1306 1.37438953e+11, 1.63443381e+11, 1.94368032e+11, 2.31143847e+11, 1307 2.74877907e+11, 3.26886763e+11, 3.88736064e+11, 4.62287693e+11, 1308 5.49755814e+11, 6.53773525e+11, 7.77472128e+11, 9.24575386e+11, 1309 1.09951163e+12, 1.30754705e+12, 1.55494426e+12, 1.84915077e+12, 1310 2.19902326e+12, 2.61509410e+12, 3.10988851e+12, 3.69830155e+12, 1311 4.39804651e+12, 5.23018820e+12, 6.21977702e+12, 7.39660309e+12, 1312 8.79609302e+12, 1.04603764e+13, 1.24395540e+13, 1.47932062e+13, 1313 1.75921860e+13, 2.09207528e+13, 2.48791081e+13, 2.95864124e+13, 1314 3.51843721e+13, 4.18415056e+13, 4.97582162e+13, 5.91728247e+13, 1315 7.03687442e+13, 8.36830112e+13, 9.95164324e+13, 1.18345649e+14, 1316 1.40737488e+14, 1.67366022e+14, 1.99032865e+14, 2.36691299e+14, 1317 2.81474977e+14, 3.34732045e+14, 3.98065730e+14, 4.73382598e+14, 1318 5.62949953e+14, 6.69464090e+14, 7.96131459e+14, 9.46765196e+14, 1319 1.12589991e+15, 1.33892818e+15, 1.59226292e+15, 1.89353039e+15, 1320 2.25179981e+15, 2.67785636e+15, 3.18452584e+15, 3.78706078e+15, 1321 4.50359963e+15, 5.35571272e+15, 6.36905167e+15, 7.57412156e+15, 1322 9.00719925e+15, 1.07114254e+16, 1.27381033e+16, 1.51482431e+16, 1323 1.80143985e+16, 2.14228509e+16, 2.54762067e+16, 3.02964863e+16, 1324 3.60287970e+16, 4.28457018e+16, 5.09524134e+16, 6.05929725e+16, 1325 7.20575940e+16, 8.56914035e+16, 1.01904827e+17, 1.21185945e+17, 1326}; 1327 1328#else 1329 1330float ff_aac_pow2sf_tab[428]; 1331 1332#endif /* CONFIG_HARDCODED_TABLES */ 1333