1/* 2 * TechSmith Screen Codec 2 (aka Dora) decoder 3 * Copyright (c) 2012 Konstantin Shishkov 4 * 5 * This file is part of FFmpeg. 6 * 7 * FFmpeg is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * FFmpeg is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with FFmpeg; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 22#ifndef AVCODEC_TSCC2_DATA_H 23#define AVCODEC_TSCC2_DATA_H 24 25#include <stdint.h> 26 27static const uint8_t tscc2_zigzag[16] = { 28 0, 1, 4, 8, 29 5, 2, 3, 6, 30 9, 12, 13, 10, 31 7, 11, 14, 15 32}; 33 34#define NUM_VLC_SETS 13 35 36static const uint16_t tscc2_quants[NUM_VLC_SETS][3] = { 37 { 655, 861, 1130 }, { 983, 1291, 1695 }, { 1311, 1721, 2260 }, 38 { 1638, 2151, 2825 }, { 1966, 2582, 3390 }, { 2294, 3012, 3955 }, 39 { 2621, 3442, 4520 }, { 2949, 3872, 5085 }, { 3277, 4303, 5650 }, 40 { 3604, 4733, 6215 }, { 3932, 5163, 6780 }, { 4260, 5593, 7345 }, 41 { 4588, 6024, 7910 }, 42}; 43 44#define DC_VLC_COUNT 47 45 46static const uint16_t tscc2_dc_vlc_syms[DC_VLC_COUNT] = { 47 0x100, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 48 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 49 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA, 0x17, 50 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 51 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 52 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 53}; 54 55static const uint16_t tscc2_dc_vlc_codes[DC_VLC_COUNT] = { 56 0x000A, 0x0000, 0x0006, 0x002E, 0x0002, 0x000E, 0x001A, 0x007E, 57 0x004E, 0x005A, 0x00E2, 0x01BE, 0x01BA, 0x00BA, 0x0072, 0x0022, 58 0x02BE, 0x00BE, 0x033A, 0x03F2, 0x01F2, 0x03A2, 0x0122, 0x0322, 59 0x01A2, 0x0172, 0x0372, 0x013A, 0x00CE, 0x02CE, 0x02FE, 0x00FE, 60 0x00A2, 0x00F2, 0x003A, 0x01CE, 0x01FE, 0x0062, 0x00DA, 0x003E, 61 0x0032, 0x007A, 0x0012, 0x001E, 0x0016, 0x0004, 0x0001, 62}; 63 64static const uint8_t tscc2_dc_vlc_bits[DC_VLC_COUNT] = { 65 5, 3, 5, 6, 6, 7, 7, 8, 66 8, 8, 8, 9, 9, 9, 9, 9, 67 10, 10, 10, 10, 10, 10, 10, 10, 68 10, 10, 10, 10, 10, 10, 10, 10, 69 9, 9, 9, 9, 9, 8, 8, 8, 70 7, 7, 6, 6, 5, 3, 1, 71}; 72 73static const uint8_t tscc2_nc_vlc_syms[16] = { 74 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 75 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 76}; 77 78static const uint16_t tscc2_nc_vlc_codes[NUM_VLC_SETS][16] = { 79 { 0x0023, 0x0003, 0x0031, 0x0021, 0x0011, 0x0053, 0x0013, 0x0001, 80 0x0009, 0x0029, 0x0033, 0x0019, 0x000B, 0x0005, 0x0007, 0x0000, }, 81 { 0x0030, 0x0022, 0x0028, 0x0020, 0x0008, 0x0000, 0x0032, 0x0072, 82 0x0010, 0x0002, 0x0012, 0x0018, 0x000A, 0x0004, 0x0006, 0x0001, }, 83 { 0x0032, 0x0038, 0x0020, 0x0008, 0x0002, 0x0018, 0x0072, 0x0000, 84 0x0028, 0x0022, 0x0012, 0x0010, 0x000A, 0x0004, 0x0006, 0x0001, }, 85 { 0x0032, 0x0010, 0x0072, 0x0030, 0x0022, 0x0038, 0x0008, 0x0028, 86 0x0018, 0x0002, 0x0012, 0x0000, 0x000A, 0x0004, 0x0006, 0x0001, }, 87 { 0x0012, 0x0052, 0x0000, 0x0020, 0x0018, 0x0022, 0x0008, 0x0028, 88 0x0038, 0x0002, 0x0032, 0x0010, 0x000A, 0x0004, 0x0006, 0x0001, }, 89 { 0x0016, 0x0096, 0x0006, 0x0046, 0x0056, 0x0002, 0x0036, 0x0076, 90 0x0012, 0x0022, 0x0032, 0x0026, 0x000A, 0x000E, 0x0000, 0x0001, }, 91 { 0x001A, 0x009A, 0x0032, 0x0072, 0x005A, 0x007A, 0x003A, 0x0002, 92 0x0012, 0x0022, 0x000A, 0x002A, 0x0006, 0x000E, 0x0000, 0x0001, }, 93 { 0x002A, 0x00AA, 0x0002, 0x0042, 0x006A, 0x003A, 0x007A, 0x0022, 94 0x0032, 0x0012, 0x000A, 0x001A, 0x0006, 0x000E, 0x0000, 0x0001, }, 95 { 0x0042, 0x00C2, 0x0002, 0x000A, 0x004A, 0x003A, 0x007A, 0x0022, 96 0x0012, 0x0032, 0x002A, 0x001A, 0x0006, 0x000E, 0x0000, 0x0001, }, 97 { 0x00BA, 0x01BA, 0x003A, 0x0012, 0x0052, 0x007A, 0x0002, 0x0022, 98 0x0032, 0x000A, 0x002A, 0x001A, 0x0000, 0x0004, 0x0006, 0x0001, }, 99 { 0x00AA, 0x01AA, 0x002A, 0x0022, 0x0062, 0x006A, 0x0002, 0x0012, 100 0x0032, 0x000A, 0x001A, 0x003A, 0x0000, 0x0004, 0x0006, 0x0001, }, 101 { 0x00AA, 0x01AA, 0x002A, 0x0022, 0x0062, 0x006A, 0x0002, 0x0012, 102 0x0032, 0x000A, 0x003A, 0x001A, 0x0000, 0x0004, 0x0006, 0x0001, }, 103 { 0x008A, 0x018A, 0x000A, 0x0022, 0x0062, 0x004A, 0x0002, 0x0012, 104 0x0032, 0x002A, 0x001A, 0x003A, 0x0000, 0x0004, 0x0006, 0x0001, }, 105}; 106 107static const uint8_t tscc2_nc_vlc_bits[NUM_VLC_SETS][16] = { 108 { 6, 6, 6, 6, 6, 7, 7, 6, 6, 6, 6, 5, 4, 3, 3, 1 }, 109 { 6, 6, 6, 6, 6, 6, 7, 7, 6, 6, 6, 5, 4, 3, 3, 1 }, 110 { 7, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 5, 4, 3, 3, 1 }, 111 { 7, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 4, 3, 3, 1 }, 112 { 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 4, 3, 3, 1 }, 113 { 8, 8, 7, 7, 7, 6, 7, 7, 6, 6, 6, 6, 4, 4, 2, 1 }, 114 { 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 4, 4, 2, 1 }, 115 { 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 4, 4, 2, 1 }, 116 { 8, 8, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 4, 4, 2, 1 }, 117 { 9, 9, 8, 7, 7, 7, 6, 6, 6, 6, 6, 6, 3, 3, 3, 1 }, 118 { 9, 9, 8, 7, 7, 7, 6, 6, 6, 6, 6, 6, 3, 3, 3, 1 }, 119 { 9, 9, 8, 7, 7, 7, 6, 6, 6, 6, 6, 6, 3, 3, 3, 1 }, 120 { 9, 9, 8, 7, 7, 7, 6, 6, 6, 6, 6, 6, 3, 3, 3, 1 }, 121}; 122 123static const uint16_t ac_vlc_desc0_syms[172] = { 124 0x1000, 0xFF8, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 0xFF1, 125 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 0xFE0, 126 0xFD6, 0xFD5, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC6, 0xFC5, 127 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB5, 0xFB3, 0xFB2, 0xFB1, 128 0xFB0, 0xFA5, 0xFA3, 0xFA1, 0xFA0, 0xF95, 0xF91, 0xF90, 129 0xF83, 0xF81, 0xF80, 0xF73, 0xF71, 0xF70, 0xF61, 0xF60, 130 0xF51, 0xF50, 0xF45, 0xF41, 0xF40, 0xF31, 0xF30, 0xF21, 131 0xF20, 0xF10, 0xF00, 0xEF0, 0xEE0, 0xED5, 0xED1, 0xED0, 132 0xEC0, 0xEB0, 0xEA0, 0xE90, 0xE80, 0xE70, 0xE60, 0xE50, 133 0xE40, 0xE30, 0xE20, 0xE10, 0xE00, 0xDF0, 0xDE0, 0xDD0, 134 0xDC0, 0xDB0, 0xDA0, 0xD90, 0xD80, 0xD60, 0xCD1, 0x280, 135 0x270, 0x260, 0x250, 0x240, 0x230, 0x220, 0x210, 0x200, 136 0x1F0, 0x1E0, 0x1D0, 0x1C0, 0x1B0, 0x1A1, 0x1A0, 0x190, 137 0x180, 0x170, 0x160, 0x150, 0x140, 0x130, 0x121, 0x120, 138 0x111, 0x110, 0x101, 0x100, 0x0F1, 0x0F0, 0x0E1, 0x0E0, 139 0x0D1, 0x0D0, 0x0C1, 0x0C0, 0x0B1, 0x0B0, 0x0A5, 0x0A1, 140 0x0A0, 0x091, 0x090, 0x081, 0x080, 0x075, 0x071, 0x070, 141 0x065, 0x063, 0x061, 0x060, 0x055, 0x053, 0x052, 0x051, 142 0x050, 0x046, 0x045, 0x043, 0x042, 0x041, 0x040, 0x036, 143 0x035, 0x033, 0x032, 0x031, 0x030, 0x026, 0x025, 0x024, 144 0x023, 0x022, 0x021, 0x020, 0x018, 0x016, 0x015, 0x014, 145 0x013, 0x012, 0x011, 0x010, 146}; 147 148static const uint16_t ac_vlc_desc0_codes[172] = { 149 0x001F, 0x0D71, 0x013F, 0x006C, 0x00A7, 0x0067, 0x001C, 0x0008, 150 0x0005, 0x06F1, 0x002C, 0x04BA, 0x0072, 0x01AA, 0x0002, 0x0006, 151 0x06AC, 0x02AF, 0x06EF, 0x018F, 0x000A, 0x0009, 0x02AC, 0x042A, 152 0x06E1, 0x068F, 0x00B1, 0x0000, 0x0317, 0x0C17, 0x0612, 0x010F, 153 0x0011, 0x0FBA, 0x002A, 0x0172, 0x000C, 0x05AC, 0x03D7, 0x0037, 154 0x0E8F, 0x02F2, 0x0041, 0x0BE1, 0x057F, 0x004A, 0x00AF, 0x006F, 155 0x06AA, 0x0097, 0x0101, 0x0012, 0x0081, 0x0571, 0x0092, 0x0EAF, 156 0x01BF, 0x00D7, 0x0031, 0x0001, 0x01F2, 0x0F17, 0x053A, 0x00BF, 157 0x038F, 0x0217, 0x0371, 0x01F1, 0x01BA, 0x022A, 0x02BF, 0x028F, 158 0x008F, 0x03F1, 0x00E1, 0x00BA, 0x00F2, 0x0EBF, 0x06AF, 0x048F, 159 0x0FE1, 0x0271, 0x07BA, 0x0D3A, 0x0C12, 0x08AC, 0x0717, 0x00AC, 160 0x0412, 0x0901, 0x04E1, 0x07E1, 0x0417, 0x0CAF, 0x04AC, 0x01AC, 161 0x04F2, 0x03BA, 0x05D7, 0x07F1, 0x01D7, 0x04AF, 0x04EF, 0x03AC, 162 0x00AA, 0x01E1, 0x0071, 0x00F1, 0x012C, 0x03EF, 0x082A, 0x0112, 163 0x03E1, 0x01FA, 0x0DAC, 0x0131, 0x0E12, 0x000F, 0x0B17, 0x007F, 164 0x0AEF, 0x007A, 0x02AA, 0x0061, 0x0671, 0x0027, 0x013A, 0x058F, 165 0x00FF, 0x033A, 0x0032, 0x0301, 0x0021, 0x0C8F, 0x037F, 0x0077, 166 0x02F1, 0x02E1, 0x003A, 0x003C, 0x0212, 0x0817, 0x0CE1, 0x003F, 167 0x0007, 0x0017, 0x0501, 0x02BA, 0x06BF, 0x0057, 0x0010, 0x02EF, 168 0x0117, 0x017F, 0x00EF, 0x006A, 0x0019, 0x0171, 0x01EF, 0x06BA, 169 0x012A, 0x00FA, 0x0022, 0x000E, 0x0AE1, 0x01AF, 0x0052, 0x002F, 170 0x004F, 0x001A, 0x0004, 0x0003, 171}; 172 173static const uint8_t ac_vlc_desc0_bits[172] = { 174 6, 12, 9, 7, 8, 7, 6, 4, 175 3, 11, 9, 11, 9, 9, 6, 4, 176 11, 11, 11, 11, 7, 5, 11, 11, 177 11, 12, 8, 5, 12, 12, 12, 9, 178 6, 12, 12, 9, 6, 12, 10, 7, 179 12, 10, 7, 12, 11, 7, 11, 8, 180 11, 8, 12, 11, 8, 12, 8, 12, 181 9, 9, 9, 9, 9, 12, 12, 10, 182 10, 10, 10, 10, 10, 10, 11, 11, 183 11, 11, 11, 11, 11, 12, 12, 12, 184 12, 11, 12, 12, 12, 12, 12, 12, 185 12, 12, 12, 12, 12, 12, 11, 11, 186 11, 11, 11, 11, 11, 12, 11, 10, 187 10, 10, 10, 10, 9, 10, 12, 9, 188 12, 9, 12, 9, 12, 9, 12, 9, 189 12, 8, 11, 8, 11, 8, 11, 11, 190 8, 10, 7, 10, 7, 12, 10, 7, 191 11, 12, 9, 6, 11, 12, 12, 9, 192 6, 12, 11, 11, 12, 8, 5, 12, 193 10, 11, 11, 7, 5, 11, 10, 11, 194 9, 9, 6, 4, 12, 9, 7, 8, 195 7, 6, 4, 3, 196}; 197 198static const uint16_t ac_vlc_desc1_syms[169] = { 199 0x1000, 0xFF8, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 0xFF1, 200 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 0xFE0, 201 0xFD6, 0xFD5, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC6, 0xFC5, 202 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB6, 0xFB5, 0xFB3, 0xFB2, 203 0xFB1, 0xFB0, 0xFA6, 0xFA5, 0xFA3, 0xFA1, 0xFA0, 0xF95, 204 0xF93, 0xF91, 0xF90, 0xF85, 0xF81, 0xF80, 0xF71, 0xF70, 205 0xF61, 0xF60, 0xF51, 0xF50, 0xF45, 0xF41, 0xF40, 0xF31, 206 0xF30, 0xF21, 0xF20, 0xF11, 0xF10, 0xF01, 0xF00, 0xEF1, 207 0xEF0, 0xEE1, 0xEE0, 0xED0, 0xEC6, 0xEC0, 0xEB6, 0xEB0, 208 0xEA0, 0xE90, 0xE80, 0xE70, 0xE60, 0xE50, 0xE40, 0xE33, 209 0xE31, 0xE30, 0xE20, 0xE10, 0xE00, 0xDF0, 0xDE1, 0xDE0, 210 0xDC0, 0xDB0, 0xDA0, 0x250, 0x240, 0x1F0, 0x1E0, 0x1D0, 211 0x1C0, 0x1B0, 0x1A0, 0x190, 0x180, 0x170, 0x160, 0x150, 212 0x140, 0x130, 0x120, 0x111, 0x110, 0x101, 0x100, 0x0F1, 213 0x0F0, 0x0E1, 0x0E0, 0x0D1, 0x0D0, 0x0C6, 0x0C1, 0x0C0, 214 0x0B1, 0x0B0, 0x0A1, 0x0A0, 0x095, 0x091, 0x090, 0x085, 215 0x081, 0x080, 0x075, 0x071, 0x070, 0x065, 0x063, 0x061, 216 0x060, 0x055, 0x053, 0x052, 0x051, 0x050, 0x046, 0x045, 217 0x043, 0x042, 0x041, 0x040, 0x036, 0x035, 0x033, 0x032, 218 0x031, 0x030, 0x026, 0x025, 0x024, 0x023, 0x022, 0x021, 219 0x020, 0x018, 0x016, 0x015, 0x014, 0x013, 0x012, 0x011, 220 0x010, 221}; 222 223static const uint16_t ac_vlc_desc1_codes[169] = { 224 0x0019, 0x027D, 0x0084, 0x0044, 0x009D, 0x003D, 0x000A, 0x0002, 225 0x0003, 0x00EA, 0x02FD, 0x017A, 0x01C6, 0x00B6, 0x0026, 0x000E, 226 0x0095, 0x0260, 0x032A, 0x0360, 0x0006, 0x0005, 0x05B6, 0x036A, 227 0x06F6, 0x0704, 0x00FA, 0x0010, 0x0279, 0x04D4, 0x00F6, 0x066A, 228 0x001D, 0x0029, 0x05F9, 0x0846, 0x04F6, 0x01D4, 0x0038, 0x0446, 229 0x0160, 0x031D, 0x0075, 0x0054, 0x02D4, 0x005A, 0x05FD, 0x0040, 230 0x06EA, 0x0055, 0x0460, 0x009A, 0x052A, 0x00A0, 0x00D8, 0x0380, 231 0x017D, 0x092A, 0x00F9, 0x0D7A, 0x0179, 0x0304, 0x002A, 0x0104, 232 0x01A0, 0x0780, 0x007D, 0x03F9, 0x0C46, 0x03EA, 0x0E6A, 0x0204, 233 0x01FD, 0x051D, 0x02AA, 0x05EA, 0x00AA, 0x0080, 0x067D, 0x09EA, 234 0x0C95, 0x09F9, 0x07B6, 0x0DB6, 0x012A, 0x0904, 0x0454, 0x0FB6, 235 0x0960, 0x08D4, 0x0495, 0x0F80, 0x0560, 0x0B04, 0x057A, 0x0079, 236 0x0795, 0x0E7D, 0x0060, 0x076A, 0x03B6, 0x0395, 0x0180, 0x02A0, 237 0x006A, 0x0195, 0x0295, 0x0646, 0x03FD, 0x01F9, 0x0154, 0x0DF9, 238 0x00C6, 0x0F95, 0x01F6, 0x0480, 0x0000, 0x0A79, 0x04AA, 0x00E0, 239 0x0246, 0x001A, 0x0479, 0x0015, 0x0D60, 0x0280, 0x0018, 0x01EA, 240 0x037A, 0x003A, 0x011D, 0x00FD, 0x0035, 0x0A7D, 0x04A0, 0x0146, 241 0x0024, 0x01B6, 0x0504, 0x0046, 0x0020, 0x0009, 0x00D4, 0x03AA, 242 0x0679, 0x026A, 0x0036, 0x0008, 0x02F6, 0x01AA, 0x016A, 0x0254, 243 0x0039, 0x000D, 0x0004, 0x0176, 0x02EA, 0x007A, 0x0076, 0x0016, 244 0x0001, 0x0879, 0x0058, 0x0014, 0x00D5, 0x005D, 0x0034, 0x000C, 245 0x0007, 246}; 247 248static const uint8_t ac_vlc_desc1_bits[169] = { 249 6, 12, 8, 7, 8, 7, 6, 4, 250 3, 10, 10, 11, 9, 9, 6, 4, 251 11, 10, 10, 10, 7, 5, 12, 11, 252 11, 11, 8, 5, 12, 11, 11, 12, 253 9, 6, 12, 12, 11, 9, 6, 12, 254 12, 10, 7, 11, 10, 7, 11, 7, 255 11, 8, 11, 8, 11, 11, 8, 11, 256 9, 12, 9, 12, 9, 12, 9, 12, 257 9, 12, 10, 10, 12, 10, 12, 10, 258 11, 11, 10, 11, 11, 11, 12, 12, 259 12, 12, 12, 12, 12, 12, 11, 12, 260 12, 12, 12, 12, 12, 12, 12, 12, 261 12, 12, 11, 11, 11, 11, 10, 10, 262 10, 10, 10, 11, 10, 12, 9, 12, 263 9, 12, 9, 11, 8, 12, 11, 8, 264 11, 8, 11, 8, 12, 10, 7, 12, 265 10, 7, 11, 10, 7, 12, 11, 9, 266 6, 11, 11, 12, 8, 6, 12, 10, 267 11, 11, 8, 5, 11, 10, 10, 10, 268 7, 5, 10, 9, 11, 9, 9, 6, 269 4, 12, 8, 7, 8, 7, 6, 4, 270 3, 271}; 272 273static const uint16_t ac_vlc_desc2_syms[165] = { 274 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 275 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 276 0xFE0, 0xFD6, 0xFD5, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC6, 277 0xFC5, 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB6, 0xFB5, 0xFB3, 278 0xFB2, 0xFB1, 0xFB0, 0xFA5, 0xFA3, 0xFA1, 0xFA0, 0xF95, 279 0xF93, 0xF91, 0xF90, 0xF81, 0xF80, 0xF75, 0xF71, 0xF70, 280 0xF61, 0xF60, 0xF51, 0xF50, 0xF41, 0xF40, 0xF36, 0xF31, 281 0xF30, 0xF26, 0xF21, 0xF20, 0xF16, 0xF11, 0xF10, 0xF06, 282 0xF01, 0xF00, 0xEF1, 0xEF0, 0xEE1, 0xEE0, 0xED0, 0xEC0, 283 0xEB3, 0xEB1, 0xEB0, 0xEA3, 0xEA1, 0xEA0, 0xE90, 0xE81, 284 0xE80, 0xE71, 0xE70, 0xE61, 0xE60, 0xE50, 0xE40, 0xE30, 285 0xE10, 0xE00, 0x241, 0x240, 0x231, 0x1D0, 0x1C0, 0x1B3, 286 0x1B0, 0x1A0, 0x190, 0x180, 0x170, 0x160, 0x150, 0x140, 287 0x130, 0x120, 0x110, 0x100, 0x0F0, 0x0E0, 0x0D1, 0x0D0, 288 0x0C1, 0x0C0, 0x0B1, 0x0B0, 0x0A5, 0x0A1, 0x0A0, 0x096, 289 0x095, 0x091, 0x090, 0x086, 0x085, 0x081, 0x080, 0x075, 290 0x071, 0x070, 0x065, 0x063, 0x061, 0x060, 0x055, 0x053, 291 0x052, 0x051, 0x050, 0x045, 0x043, 0x042, 0x041, 0x040, 292 0x036, 0x035, 0x033, 0x032, 0x031, 0x030, 0x026, 0x025, 293 0x024, 0x023, 0x022, 0x021, 0x020, 0x018, 0x016, 0x015, 294 0x014, 0x013, 0x012, 0x011, 0x010, 295}; 296 297static const uint16_t ac_vlc_desc2_codes[165] = { 298 0x0034, 0x059C, 0x0280, 0x001C, 0x004C, 0x00BD, 0x0020, 0x003C, 299 0x000A, 0x0003, 0x00FD, 0x008C, 0x0332, 0x01D5, 0x0055, 0x003E, 300 0x0001, 0x07E4, 0x0264, 0x00B2, 0x00A2, 0x005C, 0x0005, 0x02A2, 301 0x011D, 0x0132, 0x076C, 0x0012, 0x0018, 0x01E4, 0x05E4, 0x02B2, 302 0x0432, 0x017D, 0x000E, 0x055D, 0x0955, 0x0164, 0x0028, 0x0D62, 303 0x0B24, 0x02DE, 0x001E, 0x0340, 0x0014, 0x0555, 0x0180, 0x00DD, 304 0x01B2, 0x0092, 0x036C, 0x00EC, 0x00E4, 0x00C0, 0x0C64, 0x095D, 305 0x01DE, 0x0AE4, 0x0C32, 0x01A2, 0x06E4, 0x0832, 0x01A4, 0x015D, 306 0x0732, 0x031D, 0x0F9C, 0x03E2, 0x09E2, 0x02FD, 0x0224, 0x051D, 307 0x02E4, 0x019C, 0x05B2, 0x0355, 0x0064, 0x016C, 0x038C, 0x0880, 308 0x0480, 0x06B2, 0x0540, 0x0080, 0x075D, 0x0155, 0x0424, 0x0680, 309 0x0A62, 0x0A80, 0x078C, 0x0D9C, 0x0F8C, 0x0562, 0x0FF2, 0x0464, 310 0x0B55, 0x01E2, 0x0032, 0x07F2, 0x0140, 0x03E4, 0x0662, 0x0755, 311 0x0380, 0x026C, 0x0232, 0x001D, 0x0040, 0x00E2, 0x035D, 0x00F2, 312 0x0162, 0x01FD, 0x03F2, 0x000C, 0x0EA2, 0x05F2, 0x0072, 0x04E4, 313 0x0F32, 0x018C, 0x009D, 0x0324, 0x079C, 0x006C, 0x0054, 0x0F5D, 314 0x021D, 0x0015, 0x0024, 0x06A2, 0x009C, 0x0004, 0x0062, 0x056C, 315 0x0262, 0x0000, 0x002E, 0x01F2, 0x0124, 0x039C, 0x005E, 0x0010, 316 0x0724, 0x00A4, 0x00DE, 0x0362, 0x0052, 0x000D, 0x03B2, 0x007D, 317 0x05E2, 0x00D5, 0x005D, 0x0035, 0x0009, 0x099C, 0x0022, 0x002C, 318 0x003D, 0x0008, 0x0002, 0x0006, 0x0007, 319}; 320 321static const uint8_t ac_vlc_desc2_bits[165] = { 322 6, 12, 12, 8, 7, 8, 6, 6, 323 4, 3, 10, 9, 11, 9, 9, 6, 324 4, 11, 10, 10, 10, 7, 5, 11, 325 11, 10, 11, 8, 5, 11, 11, 11, 326 12, 9, 6, 11, 12, 9, 6, 12, 327 12, 10, 7, 10, 7, 11, 10, 8, 328 11, 8, 11, 8, 11, 8, 12, 12, 329 9, 12, 12, 9, 11, 12, 9, 12, 330 12, 10, 12, 10, 12, 10, 10, 11, 331 12, 12, 11, 12, 11, 11, 11, 12, 332 11, 11, 11, 12, 12, 12, 11, 11, 333 12, 12, 12, 12, 12, 12, 12, 12, 334 12, 12, 12, 12, 11, 11, 11, 11, 335 10, 10, 10, 10, 9, 9, 11, 9, 336 11, 9, 11, 8, 12, 11, 8, 11, 337 12, 10, 8, 12, 12, 10, 7, 12, 338 10, 7, 11, 12, 9, 6, 10, 11, 339 12, 8, 6, 11, 10, 11, 8, 5, 340 11, 9, 10, 10, 7, 5, 10, 9, 341 11, 9, 9, 6, 4, 12, 8, 7, 342 8, 6, 6, 4, 3, 343}; 344 345static const uint16_t ac_vlc_desc3_syms[162] = { 346 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 347 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 348 0xFE0, 0xFD6, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 349 0xFC6, 0xFC5, 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB5, 0xFB3, 350 0xFB2, 0xFB1, 0xFB0, 0xFA5, 0xFA3, 0xFA1, 0xFA0, 0xF95, 351 0xF93, 0xF91, 0xF90, 0xF85, 0xF83, 0xF81, 0xF80, 0xF71, 352 0xF70, 0xF66, 0xF61, 0xF60, 0xF56, 0xF51, 0xF50, 0xF46, 353 0xF41, 0xF40, 0xF36, 0xF31, 0xF30, 0xF26, 0xF21, 0xF20, 354 0xF11, 0xF10, 0xF01, 0xF00, 0xEF3, 0xEF1, 0xEF0, 0xEE3, 355 0xEE1, 0xEE0, 0xED3, 0xED1, 0xED0, 0xEC1, 0xEC0, 0xEB1, 356 0xEB0, 0xEA0, 0xE90, 0xE80, 0xE70, 0x1E1, 0x1D1, 0x1D0, 357 0x1C1, 0x1B1, 0x1A1, 0x180, 0x170, 0x163, 0x160, 0x150, 358 0x140, 0x130, 0x123, 0x120, 0x113, 0x110, 0x100, 0x0F0, 359 0x0E0, 0x0D1, 0x0D0, 0x0C1, 0x0C0, 0x0B1, 0x0B0, 0x0A1, 360 0x0A0, 0x095, 0x091, 0x090, 0x085, 0x081, 0x080, 0x076, 361 0x075, 0x073, 0x071, 0x070, 0x066, 0x065, 0x063, 0x061, 362 0x060, 0x055, 0x053, 0x052, 0x051, 0x050, 0x045, 0x043, 363 0x042, 0x041, 0x040, 0x036, 0x035, 0x034, 0x033, 0x032, 364 0x031, 0x030, 0x026, 0x025, 0x024, 0x023, 0x022, 0x021, 365 0x020, 0x018, 0x017, 0x016, 0x015, 0x014, 0x013, 0x012, 366 0x011, 0x010, 367}; 368 369static const uint16_t ac_vlc_desc3_codes[162] = { 370 0x001D, 0x087C, 0x0AE8, 0x003A, 0x001C, 0x0008, 0x000C, 0x0032, 371 0x0006, 0x0003, 0x03A5, 0x01EC, 0x01A5, 0x0080, 0x0030, 0x0005, 372 0x0001, 0x0040, 0x03FC, 0x02D4, 0x0154, 0x02FC, 0x003C, 0x0015, 373 0x051A, 0x0000, 0x02EC, 0x077C, 0x00D2, 0x0018, 0x03E8, 0x04EC, 374 0x027C, 0x01FA, 0x0022, 0x0765, 0x0EA5, 0x0054, 0x0010, 0x08EC, 375 0x0AAC, 0x03BA, 0x0042, 0x065D, 0x0AD4, 0x005C, 0x0028, 0x03C0, 376 0x00E5, 0x035C, 0x04FA, 0x00DC, 0x06A5, 0x075C, 0x00C8, 0x05A5, 377 0x04D4, 0x00BA, 0x01C0, 0x05E8, 0x012C, 0x00E8, 0x01B0, 0x00B0, 378 0x025D, 0x002C, 0x0A52, 0x025C, 0x01E8, 0x00FA, 0x0348, 0x0652, 379 0x0B7C, 0x0365, 0x031A, 0x0E52, 0x011A, 0x0200, 0x01BA, 0x02AC, 380 0x06D4, 0x01FC, 0x05BA, 0x0DFC, 0x0248, 0x0EE8, 0x0B1A, 0x0CFC, 381 0x0F65, 0x0B5C, 0x0DC0, 0x007C, 0x0548, 0x08A5, 0x00FC, 0x03B0, 382 0x0148, 0x06AC, 0x0252, 0x071A, 0x02E8, 0x0240, 0x00AC, 0x021A, 383 0x0140, 0x08E8, 0x01AC, 0x00EC, 0x0152, 0x00A5, 0x0068, 0x001A, 384 0x006C, 0x05C0, 0x015C, 0x0025, 0x05B0, 0x017C, 0x0014, 0x047C, 385 0x00D4, 0x06E8, 0x00C0, 0x0002, 0x0A5D, 0x04E8, 0x0A7C, 0x01D4, 386 0x0020, 0x04A5, 0x07B0, 0x037C, 0x015D, 0x002A, 0x005D, 0x0048, 387 0x067C, 0x007A, 0x0004, 0x04FC, 0x02FA, 0x0648, 0x0100, 0x0052, 388 0x005A, 0x000D, 0x0165, 0x0065, 0x02A5, 0x0070, 0x00F0, 0x003D, 389 0x0009, 0x05FC, 0x0E48, 0x009A, 0x0012, 0x00DD, 0x0034, 0x000A, 390 0x000E, 0x0007, 391}; 392 393static const uint8_t ac_vlc_desc3_bits[162] = { 394 7, 12, 12, 8, 7, 7, 6, 6, 395 4, 3, 10, 9, 11, 8, 8, 6, 396 4, 10, 10, 12, 9, 10, 7, 5, 397 11, 10, 10, 11, 8, 5, 10, 11, 398 12, 9, 6, 12, 12, 9, 6, 12, 399 12, 10, 7, 11, 12, 10, 7, 10, 400 8, 12, 11, 8, 12, 11, 8, 11, 401 11, 9, 11, 11, 9, 12, 11, 9, 402 12, 9, 12, 10, 11, 11, 10, 12, 403 12, 11, 12, 12, 11, 10, 11, 12, 404 11, 11, 11, 12, 11, 12, 12, 12, 405 12, 12, 12, 12, 11, 12, 11, 11, 406 11, 11, 12, 11, 12, 10, 10, 10, 407 9, 12, 9, 12, 9, 12, 8, 10, 408 8, 12, 10, 8, 11, 10, 7, 11, 409 11, 12, 9, 7, 12, 11, 12, 9, 410 6, 11, 11, 12, 9, 6, 10, 10, 411 11, 8, 5, 12, 10, 12, 9, 10, 412 7, 5, 10, 9, 11, 8, 8, 6, 413 4, 12, 12, 8, 7, 8, 6, 6, 414 4, 3, 415}; 416 417static const uint16_t ac_vlc_desc4_syms[131] = { 418 0x1000, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 0xFF1, 0xFF0, 419 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 0xFE0, 0xFD6, 420 0xFD5, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC5, 0xFC3, 0xFC2, 421 0xFC1, 0xFC0, 0xFB5, 0xFB3, 0xFB1, 0xFB0, 0xFA5, 0xFA3, 422 0xFA1, 0xFA0, 0xF93, 0xF91, 0xF90, 0xF81, 0xF80, 0xF76, 423 0xF71, 0xF70, 0xF66, 0xF61, 0xF60, 0xF56, 0xF51, 0xF50, 424 0xF41, 0xF40, 0xF31, 0xF30, 0xF23, 0xF21, 0xF20, 0xF13, 425 0xF11, 0xF10, 0xF03, 0xF01, 0xF00, 0xEF1, 0xEF0, 0xEE0, 426 0xED0, 0xEC0, 0xEB0, 0x191, 0x181, 0x180, 0x171, 0x161, 427 0x140, 0x130, 0x123, 0x120, 0x110, 0x100, 0x0F3, 0x0F0, 428 0x0E0, 0x0D0, 0x0C0, 0x0B1, 0x0B0, 0x0A1, 0x0A0, 0x091, 429 0x090, 0x085, 0x081, 0x080, 0x075, 0x071, 0x070, 0x066, 430 0x065, 0x063, 0x061, 0x060, 0x056, 0x055, 0x053, 0x051, 431 0x050, 0x045, 0x043, 0x042, 0x041, 0x040, 0x036, 0x035, 432 0x033, 0x032, 0x031, 0x030, 0x026, 0x025, 0x024, 0x023, 433 0x022, 0x021, 0x020, 0x018, 0x016, 0x015, 0x014, 0x013, 434 0x012, 0x011, 0x010, 435}; 436 437static const uint16_t ac_vlc_desc4_codes[131] = { 438 0x006B, 0x00BE, 0x0052, 0x00F3, 0x005B, 0x003A, 0x0009, 0x0007, 439 0x00DA, 0x03FB, 0x0123, 0x00B3, 0x01B3, 0x002E, 0x0006, 0x030A, 440 0x005A, 0x004A, 0x034A, 0x0072, 0x0005, 0x02DA, 0x0173, 0x04FB, 441 0x0032, 0x0013, 0x039B, 0x0B9B, 0x011E, 0x0002, 0x00FB, 0x021E, 442 0x009B, 0x007E, 0x0E1A, 0x03CA, 0x007B, 0x02FB, 0x0033, 0x03AB, 443 0x0463, 0x008A, 0x0773, 0x041E, 0x002B, 0x031B, 0x065A, 0x011A, 444 0x060A, 0x01DA, 0x0963, 0x0323, 0x0BAB, 0x059E, 0x010A, 0x05AB, 445 0x0CFB, 0x071B, 0x079E, 0x0F9E, 0x0263, 0x079B, 0x0563, 0x019E, 446 0x01AB, 0x0E63, 0x029B, 0x04CA, 0x0DAB, 0x0663, 0x0B1B, 0x020A, 447 0x0A1E, 0x021A, 0x0063, 0x061E, 0x06FB, 0x025A, 0x0163, 0x0573, 448 0x000A, 0x0223, 0x011B, 0x0C1A, 0x015A, 0x0863, 0x00AB, 0x02CA, 449 0x00B2, 0x0A0A, 0x01CA, 0x00A3, 0x0B73, 0x0023, 0x0012, 0x039E, 450 0x001A, 0x0CCA, 0x01FB, 0x005E, 0x0A9B, 0x00CA, 0x0373, 0x009E, 451 0x0022, 0x07AB, 0x001E, 0x0EFB, 0x009A, 0x000B, 0x041A, 0x019B, 452 0x0363, 0x014A, 0x006A, 0x0015, 0x069B, 0x0073, 0x0523, 0x001B, 453 0x012B, 0x0003, 0x0001, 0x061A, 0x003E, 0x002A, 0x00E3, 0x003B, 454 0x000E, 0x000D, 0x0000, 455}; 456 457static const uint8_t ac_vlc_desc4_bits[131] = { 458 7, 8, 7, 8, 7, 6, 4, 3, 459 10, 10, 11, 9, 9, 6, 4, 10, 460 10, 9, 10, 7, 5, 10, 11, 12, 461 8, 6, 12, 12, 9, 6, 11, 12, 462 10, 7, 12, 10, 8, 11, 8, 12, 463 11, 8, 11, 11, 9, 12, 11, 9, 464 11, 9, 12, 10, 12, 11, 10, 12, 465 12, 11, 12, 12, 11, 11, 11, 11, 466 11, 12, 12, 12, 12, 12, 12, 12, 467 12, 11, 12, 11, 12, 11, 12, 11, 468 10, 10, 10, 12, 9, 12, 9, 10, 469 8, 12, 10, 8, 12, 10, 7, 11, 470 11, 12, 10, 7, 12, 11, 12, 9, 471 6, 11, 11, 12, 8, 6, 12, 10, 472 10, 10, 7, 5, 11, 9, 11, 9, 473 9, 6, 4, 12, 8, 7, 8, 7, 474 6, 4, 2, 475}; 476 477static const uint16_t ac_vlc_desc5_syms[132] = { 478 0x1000, 0xFF8, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 0xFF1, 479 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 0xFE0, 480 0xFD6, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC5, 481 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB5, 0xFB3, 0xFB1, 0xFB0, 482 0xFA3, 0xFA1, 0xFA0, 0xF96, 0xF93, 0xF91, 0xF90, 0xF86, 483 0xF85, 0xF81, 0xF80, 0xF76, 0xF75, 0xF71, 0xF70, 0xF66, 484 0xF61, 0xF60, 0xF51, 0xF50, 0xF43, 0xF41, 0xF40, 0xF33, 485 0xF31, 0xF30, 0xF23, 0xF21, 0xF20, 0xF11, 0xF10, 0xF00, 486 0xEF0, 0xEE0, 0xEC1, 0xEC0, 0x151, 0x141, 0x140, 0x131, 487 0x121, 0x120, 0x111, 0x110, 0x103, 0x100, 0x0F0, 0x0E0, 488 0x0D3, 0x0D0, 0x0C3, 0x0C1, 0x0C0, 0x0B1, 0x0B0, 0x0A1, 489 0x0A0, 0x091, 0x090, 0x081, 0x080, 0x075, 0x071, 0x070, 490 0x065, 0x061, 0x060, 0x056, 0x055, 0x053, 0x052, 0x051, 491 0x050, 0x046, 0x045, 0x043, 0x042, 0x041, 0x040, 0x035, 492 0x034, 0x033, 0x032, 0x031, 0x030, 0x026, 0x025, 0x024, 493 0x023, 0x022, 0x021, 0x020, 0x018, 0x016, 0x015, 0x014, 494 0x013, 0x012, 0x011, 0x010, 495}; 496 497static const uint16_t ac_vlc_desc5_codes[132] = { 498 0x0001, 0x0D62, 0x00BD, 0x0022, 0x009B, 0x0032, 0x0019, 0x0005, 499 0x0007, 0x034D, 0x009A, 0x012B, 0x0052, 0x006B, 0x003A, 0x0006, 500 0x06FD, 0x017D, 0x081A, 0x031B, 0x031A, 0x0012, 0x0011, 0x0202, 501 0x00FD, 0x051B, 0x00D2, 0x001D, 0x011A, 0x0782, 0x018D, 0x007B, 502 0x067D, 0x037D, 0x0021, 0x0E8D, 0x0562, 0x008D, 0x00BB, 0x053D, 503 0x082A, 0x0002, 0x000D, 0x0302, 0x007D, 0x053B, 0x003B, 0x0A4D, 504 0x027D, 0x01FD, 0x042A, 0x01C2, 0x041A, 0x0182, 0x014D, 0x0162, 505 0x00C2, 0x032A, 0x0D9A, 0x012A, 0x0102, 0x087D, 0x072B, 0x039A, 506 0x0362, 0x019A, 0x0C62, 0x04C2, 0x0D1B, 0x028D, 0x0762, 0x0E7D, 507 0x0E41, 0x059A, 0x024D, 0x093B, 0x052B, 0x011B, 0x064D, 0x013D, 508 0x0382, 0x0262, 0x0641, 0x0462, 0x004D, 0x0CC2, 0x033B, 0x068D, 509 0x0141, 0x0D2B, 0x001B, 0x0041, 0x00C1, 0x0C41, 0x01E2, 0x00EB, 510 0x062A, 0x0082, 0x0061, 0x02FD, 0x047D, 0x013B, 0x002A, 0x003D, 511 0x005B, 0x022A, 0x02C2, 0x0241, 0x0062, 0x00AA, 0x000B, 0x00E2, 512 0x001A, 0x033D, 0x021A, 0x006A, 0x0009, 0x032B, 0x002B, 0x04FD, 513 0x0042, 0x016B, 0x002D, 0x000E, 0x0441, 0x00CD, 0x005A, 0x00AB, 514 0x000A, 0x0039, 0x0003, 0x0000, 515}; 516 517static const uint8_t ac_vlc_desc5_bits[132] = { 518 7, 12, 8, 7, 8, 6, 6, 4, 519 3, 10, 9, 11, 8, 9, 6, 4, 520 11, 10, 12, 10, 10, 7, 5, 10, 521 11, 12, 8, 6, 10, 11, 9, 7, 522 12, 10, 7, 12, 12, 10, 8, 11, 523 12, 10, 8, 10, 12, 11, 9, 12, 524 11, 9, 11, 9, 11, 10, 10, 11, 525 11, 10, 12, 10, 10, 12, 11, 10, 526 11, 11, 12, 12, 12, 11, 11, 12, 527 12, 12, 12, 12, 12, 11, 11, 11, 528 11, 10, 12, 12, 10, 12, 10, 12, 529 9, 12, 9, 11, 8, 12, 9, 8, 530 11, 9, 7, 11, 11, 12, 12, 9, 531 7, 11, 10, 11, 11, 8, 6, 9, 532 12, 10, 10, 7, 5, 11, 9, 11, 533 8, 9, 6, 4, 12, 8, 7, 8, 534 6, 6, 4, 2, 535}; 536 537static const uint16_t ac_vlc_desc6_syms[130] = { 538 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 539 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 540 0xFE0, 0xFD6, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 541 0xFC5, 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB5, 0xFB3, 0xFB1, 542 0xFB0, 0xFA6, 0xFA3, 0xFA1, 0xFA0, 0xF96, 0xF95, 0xF93, 543 0xF91, 0xF90, 0xF86, 0xF85, 0xF81, 0xF80, 0xF76, 0xF71, 544 0xF70, 0xF63, 0xF61, 0xF60, 0xF53, 0xF51, 0xF50, 0xF43, 545 0xF41, 0xF40, 0xF31, 0xF30, 0xF20, 0xF10, 0xF00, 0xEF0, 546 0xEE1, 0x131, 0x121, 0x120, 0x111, 0x110, 0x101, 0x100, 547 0x0F1, 0x0F0, 0x0E3, 0x0E1, 0x0E0, 0x0D1, 0x0D0, 0x0C3, 548 0x0C0, 0x0B3, 0x0B1, 0x0B0, 0x0A1, 0x0A0, 0x091, 0x090, 549 0x081, 0x080, 0x075, 0x071, 0x070, 0x065, 0x063, 0x061, 550 0x060, 0x056, 0x055, 0x053, 0x051, 0x050, 0x046, 0x045, 551 0x043, 0x042, 0x041, 0x040, 0x036, 0x035, 0x034, 0x033, 552 0x032, 0x031, 0x030, 0x026, 0x025, 0x024, 0x023, 0x022, 553 0x021, 0x020, 0x018, 0x016, 0x015, 0x014, 0x013, 0x012, 554 0x011, 0x010, 555}; 556 557static const uint16_t ac_vlc_desc6_codes[130] = { 558 0x0022, 0x0BB2, 0x0942, 0x002B, 0x0072, 0x0002, 0x001A, 0x0039, 559 0x000D, 0x0007, 0x007B, 0x008E, 0x06DB, 0x00EA, 0x015B, 0x002E, 560 0x0006, 0x0959, 0x027B, 0x0A0E, 0x01AB, 0x008A, 0x0012, 0x001E, 561 0x0575, 0x005B, 0x02AB, 0x00C2, 0x0015, 0x036A, 0x04B2, 0x0099, 562 0x001B, 0x0519, 0x0C19, 0x00DB, 0x004E, 0x0042, 0x0159, 0x03B2, 563 0x030E, 0x00EB, 0x0252, 0x0EAB, 0x018A, 0x00E2, 0x06AB, 0x0242, 564 0x017B, 0x0452, 0x0319, 0x0152, 0x025B, 0x016A, 0x00AB, 0x0052, 565 0x05B2, 0x010E, 0x038E, 0x028A, 0x0359, 0x0019, 0x078A, 0x0C52, 566 0x0D8E, 0x0ED9, 0x02D9, 0x0662, 0x0119, 0x09B2, 0x0BAB, 0x0D19, 567 0x0C5B, 0x00B2, 0x0542, 0x0B8A, 0x02B2, 0x0142, 0x065B, 0x058E, 568 0x0062, 0x018E, 0x038A, 0x00D9, 0x0419, 0x0162, 0x03AB, 0x0075, 569 0x07B2, 0x0032, 0x020E, 0x07AB, 0x006B, 0x045B, 0x01B2, 0x0199, 570 0x002A, 0x0375, 0x0775, 0x0AAB, 0x01D9, 0x003B, 0x060E, 0x0342, 571 0x0175, 0x0262, 0x000A, 0x0005, 0x0559, 0x006A, 0x0D59, 0x0219, 572 0x000E, 0x004A, 0x0009, 0x0719, 0x0059, 0x02DB, 0x00D2, 0x01DB, 573 0x0025, 0x0001, 0x06D9, 0x00F5, 0x0035, 0x00FB, 0x003A, 0x000B, 574 0x0003, 0x0000, 575}; 576 577static const uint8_t ac_vlc_desc6_bits[130] = { 578 7, 12, 12, 8, 7, 7, 6, 6, 579 4, 3, 10, 9, 11, 8, 9, 6, 580 4, 12, 10, 12, 10, 10, 7, 5, 581 11, 11, 12, 8, 6, 10, 11, 9, 582 7, 12, 12, 10, 7, 10, 12, 12, 583 10, 8, 10, 12, 10, 8, 12, 10, 584 9, 12, 11, 9, 11, 10, 10, 11, 585 11, 10, 10, 10, 10, 11, 11, 12, 586 12, 12, 11, 11, 11, 12, 12, 12, 587 12, 11, 11, 12, 10, 12, 11, 12, 588 10, 11, 12, 10, 12, 9, 12, 9, 589 11, 8, 12, 11, 8, 12, 12, 9, 590 7, 11, 11, 12, 9, 7, 11, 10, 591 11, 11, 8, 6, 12, 9, 12, 10, 592 10, 7, 5, 11, 9, 11, 8, 9, 593 6, 4, 12, 8, 7, 8, 6, 6, 594 4, 2, 595}; 596 597static const uint16_t ac_vlc_desc7_syms[125] = { 598 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 599 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 600 0xFE0, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC5, 601 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB5, 0xFB3, 0xFB1, 0xFB0, 602 0xFA6, 0xFA5, 0xFA3, 0xFA1, 0xFA0, 0xF96, 0xF95, 0xF93, 603 0xF91, 0xF90, 0xF86, 0xF81, 0xF80, 0xF73, 0xF71, 0xF70, 604 0xF63, 0xF61, 0xF60, 0xF53, 0xF51, 0xF50, 0xF41, 0xF40, 605 0xF31, 0xF30, 0xF20, 0xF10, 0xF01, 0xF00, 0x121, 0x111, 606 0x101, 0x100, 0x0F1, 0x0F0, 0x0E1, 0x0E0, 0x0D1, 0x0D0, 607 0x0C3, 0x0C1, 0x0C0, 0x0B1, 0x0B0, 0x0A3, 0x0A1, 0x0A0, 608 0x093, 0x091, 0x090, 0x081, 0x080, 0x071, 0x070, 0x065, 609 0x063, 0x061, 0x060, 0x055, 0x053, 0x052, 0x051, 0x050, 610 0x046, 0x045, 0x043, 0x042, 0x041, 0x040, 0x036, 0x035, 611 0x034, 0x033, 0x032, 0x031, 0x030, 0x026, 0x025, 0x024, 612 0x023, 0x022, 0x021, 0x020, 0x018, 0x017, 0x016, 0x015, 613 0x014, 0x013, 0x012, 0x011, 0x010, 614}; 615 616static const uint16_t ac_vlc_desc7_codes[125] = { 617 0x0053, 0x009A, 0x0EE2, 0x00D3, 0x006A, 0x0052, 0x003A, 0x0035, 618 0x000D, 0x0007, 0x0062, 0x0125, 0x0142, 0x0019, 0x01F3, 0x0029, 619 0x000E, 0x0082, 0x0ADA, 0x02E3, 0x00E2, 0x0022, 0x0006, 0x0065, 620 0x05E3, 0x0765, 0x0032, 0x0039, 0x0F99, 0x05E2, 0x0099, 0x0033, 621 0x0362, 0x0799, 0x0F65, 0x0073, 0x004A, 0x02A5, 0x0162, 0x0742, 622 0x01A5, 0x00D9, 0x0342, 0x005A, 0x00AA, 0x0EF3, 0x0182, 0x01DA, 623 0x0382, 0x035A, 0x00F3, 0x0673, 0x0165, 0x00E5, 0x06F3, 0x0225, 624 0x0842, 0x025A, 0x07E3, 0x0399, 0x07A5, 0x072A, 0x0F2A, 0x09E3, 625 0x0273, 0x049A, 0x02E5, 0x0B99, 0x02E2, 0x0E73, 0x0562, 0x02F3, 626 0x032A, 0x0F42, 0x00DA, 0x0999, 0x012A, 0x0365, 0x00A5, 0x00E3, 627 0x0199, 0x03E3, 0x019A, 0x01E2, 0x0173, 0x06E5, 0x0059, 0x01E3, 628 0x02DA, 0x002A, 0x000A, 0x06DA, 0x0FA5, 0x0042, 0x01E5, 0x0013, 629 0x03E2, 0x015A, 0x03A5, 0x0442, 0x001A, 0x0005, 0x04A5, 0x0265, 630 0x08A5, 0x0025, 0x029A, 0x0072, 0x0016, 0x0599, 0x00C2, 0x0242, 631 0x00B2, 0x0002, 0x0015, 0x0001, 0x0BE3, 0x06E2, 0x0063, 0x0023, 632 0x0012, 0x0009, 0x0003, 0x000B, 0x0000, 633}; 634 635static const uint8_t ac_vlc_desc7_bits[125] = { 636 8, 11, 12, 8, 7, 7, 6, 6, 637 4, 3, 9, 9, 10, 8, 9, 6, 638 4, 9, 12, 10, 10, 7, 5, 10, 639 11, 12, 8, 6, 12, 11, 9, 7, 640 10, 12, 12, 10, 7, 10, 11, 12, 641 10, 8, 11, 10, 8, 12, 10, 9, 642 10, 10, 10, 12, 10, 10, 12, 10, 643 12, 10, 11, 12, 12, 12, 12, 12, 644 11, 11, 11, 12, 11, 12, 11, 11, 645 11, 12, 10, 12, 10, 11, 12, 10, 646 12, 12, 9, 11, 9, 11, 8, 12, 647 12, 9, 7, 11, 12, 12, 9, 7, 648 10, 10, 11, 11, 8, 6, 11, 10, 649 12, 10, 10, 7, 5, 11, 8, 10, 650 8, 8, 6, 4, 12, 12, 8, 7, 651 7, 6, 6, 4, 2, 652}; 653 654static const uint16_t ac_vlc_desc8_syms[121] = { 655 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 656 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 657 0xFE0, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC5, 658 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB6, 0xFB5, 0xFB3, 0xFB1, 659 0xFB0, 0xFA6, 0xFA5, 0xFA3, 0xFA1, 0xFA0, 0xF96, 0xF95, 660 0xF93, 0xF91, 0xF90, 0xF86, 0xF83, 0xF81, 0xF80, 0xF73, 661 0xF71, 0xF70, 0xF63, 0xF61, 0xF60, 0xF51, 0xF50, 0xF41, 662 0xF40, 0xF30, 0xF21, 0xF20, 0x111, 0x101, 0x0F1, 0x0E1, 663 0x0E0, 0x0D1, 0x0D0, 0x0C1, 0x0C0, 0x0B3, 0x0B1, 0x0B0, 664 0x0A3, 0x0A1, 0x0A0, 0x093, 0x091, 0x090, 0x083, 0x081, 665 0x080, 0x073, 0x071, 0x070, 0x065, 0x063, 0x061, 0x060, 666 0x055, 0x053, 0x051, 0x050, 0x046, 0x045, 0x043, 0x042, 667 0x041, 0x040, 0x036, 0x035, 0x034, 0x033, 0x032, 0x031, 668 0x030, 0x026, 0x025, 0x024, 0x023, 0x022, 0x021, 0x020, 669 0x018, 0x017, 0x016, 0x015, 0x014, 0x013, 0x012, 0x011, 670 0x010, 671}; 672 673static const uint16_t ac_vlc_desc8_codes[121] = { 674 0x00F6, 0x0676, 0x0EB6, 0x00F3, 0x0056, 0x006A, 0x0039, 0x0003, 675 0x000D, 0x0007, 0x00A2, 0x0173, 0x00CA, 0x0025, 0x0082, 0x0019, 676 0x0001, 0x00B6, 0x0276, 0x02E3, 0x00B2, 0x0062, 0x001A, 0x0175, 677 0x01E3, 0x0BE5, 0x004A, 0x0029, 0x07A5, 0x00E3, 0x030A, 0x0176, 678 0x0023, 0x0042, 0x05CA, 0x00A5, 0x0142, 0x0052, 0x04A5, 0x0B02, 679 0x0D22, 0x0375, 0x0065, 0x0522, 0x0DE3, 0x010A, 0x00F5, 0x0136, 680 0x0275, 0x01B2, 0x03F5, 0x03E3, 0x0002, 0x08E3, 0x01A2, 0x0B36, 681 0x020A, 0x0076, 0x0CE3, 0x07E5, 0x070A, 0x03A5, 0x02B6, 0x0036, 682 0x01E5, 0x02A5, 0x05E3, 0x07B6, 0x07F5, 0x0736, 0x0BA5, 0x0075, 683 0x0302, 0x0FE5, 0x01B6, 0x0102, 0x04E3, 0x0022, 0x08A5, 0x01CA, 684 0x00E5, 0x0F0A, 0x05E5, 0x0096, 0x0A76, 0x0336, 0x0236, 0x0012, 685 0x03B6, 0x0BF5, 0x0073, 0x0035, 0x02B2, 0x000A, 0x0476, 0x0122, 686 0x0016, 0x0009, 0x0322, 0x01F5, 0x03E5, 0x01A5, 0x03CA, 0x0072, 687 0x0006, 0x06A5, 0x0032, 0x02CA, 0x008A, 0x00C2, 0x0015, 0x000E, 688 0x0702, 0x06B6, 0x0063, 0x0033, 0x002A, 0x0005, 0x0013, 0x000B, 689 0x0000, 690}; 691 692static const uint8_t ac_vlc_desc8_bits[121] = { 693 8, 11, 12, 8, 7, 7, 6, 6, 694 4, 3, 9, 9, 10, 8, 8, 6, 695 4, 10, 12, 10, 10, 7, 5, 10, 696 11, 12, 8, 6, 11, 12, 11, 9, 697 7, 9, 11, 12, 9, 7, 11, 12, 698 12, 10, 8, 12, 12, 10, 9, 10, 699 10, 9, 12, 10, 9, 12, 9, 12, 700 10, 11, 12, 12, 12, 12, 11, 10, 701 11, 11, 12, 11, 11, 11, 12, 10, 702 12, 12, 10, 10, 12, 9, 12, 11, 703 9, 12, 11, 8, 12, 12, 10, 7, 704 11, 12, 9, 7, 10, 10, 11, 11, 705 8, 6, 10, 10, 12, 10, 10, 7, 706 5, 11, 8, 10, 8, 8, 6, 4, 707 11, 12, 8, 7, 7, 6, 6, 4, 708 2, 709}; 710 711static const uint16_t ac_vlc_desc9_syms[114] = { 712 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 713 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 714 0xFE0, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC5, 715 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB6, 0xFB5, 0xFB3, 0xFB2, 716 0xFB1, 0xFB0, 0xFA6, 0xFA5, 0xFA3, 0xFA1, 0xFA0, 0xF96, 717 0xF93, 0xF91, 0xF90, 0xF83, 0xF81, 0xF80, 0xF73, 0xF71, 718 0xF70, 0xF61, 0xF60, 0xF51, 0xF50, 0xF40, 0xF31, 0xF30, 719 0xF21, 0x121, 0x0F1, 0x0E1, 0x0D1, 0x0D0, 0x0C1, 0x0C0, 720 0x0B1, 0x0B0, 0x0A3, 0x0A1, 0x0A0, 0x093, 0x091, 0x090, 721 0x083, 0x081, 0x080, 0x073, 0x071, 0x070, 0x065, 0x063, 722 0x061, 0x060, 0x055, 0x053, 0x051, 0x050, 0x045, 0x043, 723 0x042, 0x041, 0x040, 0x036, 0x035, 0x034, 0x033, 0x032, 724 0x031, 0x030, 0x026, 0x025, 0x024, 0x023, 0x022, 0x021, 725 0x020, 0x018, 0x017, 0x016, 0x015, 0x014, 0x013, 0x012, 726 0x011, 0x010, 727}; 728 729static const uint16_t ac_vlc_desc9_codes[114] = { 730 0x0061, 0x0403, 0x0DB1, 0x0012, 0x0071, 0x0056, 0x0035, 0x0023, 731 0x000D, 0x0007, 0x0243, 0x01D3, 0x026A, 0x00A1, 0x00A2, 0x0011, 732 0x000E, 0x01AA, 0x0531, 0x0093, 0x0222, 0x0032, 0x0006, 0x07F2, 733 0x04D3, 0x0C43, 0x0072, 0x0001, 0x0343, 0x05F2, 0x04AA, 0x03F2, 734 0x0031, 0x0045, 0x0143, 0x00AA, 0x0B31, 0x00F2, 0x00C3, 0x0693, 735 0x0BF2, 0x0203, 0x00E1, 0x03B1, 0x02D3, 0x00B1, 0x056A, 0x01D2, 736 0x008A, 0x046A, 0x01E2, 0x0003, 0x0103, 0x01B1, 0x02E2, 0x0293, 737 0x016A, 0x04E2, 0x0443, 0x0521, 0x0321, 0x0043, 0x00D3, 0x00E2, 738 0x0703, 0x00D2, 0x0731, 0x0A93, 0x0393, 0x0803, 0x0422, 0x0383, 739 0x018A, 0x006A, 0x0021, 0x096A, 0x0303, 0x0052, 0x0CE2, 0x0D31, 740 0x038A, 0x0013, 0x01F2, 0x0E93, 0x0083, 0x0005, 0x02D2, 0x0121, 741 0x0022, 0x00EA, 0x0036, 0x0122, 0x0193, 0x0331, 0x0183, 0x02AA, 742 0x004A, 0x001A, 0x0131, 0x002A, 0x036A, 0x000A, 0x0062, 0x0025, 743 0x0009, 0x06E2, 0x05B1, 0x0053, 0x0002, 0x0016, 0x0015, 0x0033, 744 0x000B, 0x0000, 745}; 746 747static const uint8_t ac_vlc_desc9_bits[114] = { 748 8, 11, 12, 7, 7, 7, 6, 6, 749 4, 3, 10, 9, 10, 8, 8, 6, 750 4, 9, 12, 10, 10, 7, 5, 11, 751 11, 12, 8, 6, 10, 11, 11, 12, 752 9, 7, 10, 11, 12, 9, 8, 12, 753 12, 10, 8, 10, 10, 9, 11, 9, 754 9, 11, 9, 12, 10, 11, 11, 12, 755 12, 12, 12, 11, 10, 11, 11, 11, 756 11, 10, 11, 12, 10, 12, 11, 10, 757 10, 11, 9, 12, 11, 8, 12, 12, 758 10, 8, 11, 12, 9, 7, 10, 11, 759 11, 8, 6, 9, 10, 12, 10, 10, 760 7, 5, 11, 8, 10, 8, 8, 6, 761 4, 11, 12, 8, 6, 7, 6, 6, 762 4, 2, 763}; 764 765static const uint16_t ac_vlc_descA_syms[110] = { 766 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 767 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 768 0xFE0, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC6, 769 0xFC5, 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB6, 0xFB5, 0xFB3, 770 0xFB2, 0xFB1, 0xFB0, 0xFA6, 0xFA5, 0xFA3, 0xFA1, 0xFA0, 771 0xF96, 0xF93, 0xF91, 0xF90, 0xF83, 0xF81, 0xF80, 0xF73, 772 0xF71, 0xF70, 0xF61, 0xF60, 0xF51, 0xF50, 0xF41, 0xF40, 773 0xF31, 0x0E1, 0x0D1, 0x0C1, 0x0C0, 0x0B1, 0x0B0, 0x0A1, 774 0x0A0, 0x093, 0x091, 0x090, 0x083, 0x081, 0x080, 0x073, 775 0x071, 0x070, 0x063, 0x061, 0x060, 0x055, 0x053, 0x051, 776 0x050, 0x045, 0x044, 0x043, 0x042, 0x041, 0x040, 0x036, 777 0x035, 0x034, 0x033, 0x032, 0x031, 0x030, 0x026, 0x025, 778 0x024, 0x023, 0x022, 0x021, 0x020, 0x018, 0x017, 0x016, 779 0x015, 0x014, 0x013, 0x012, 0x011, 0x010, 780}; 781 782static const uint16_t ac_vlc_descA_codes[110] = { 783 0x002A, 0x04C5, 0x02A3, 0x004A, 0x0015, 0x0005, 0x0003, 0x0013, 784 0x000D, 0x0007, 0x0171, 0x0032, 0x0371, 0x0076, 0x0042, 0x0011, 785 0x000E, 0x00AA, 0x04D5, 0x03A3, 0x06A3, 0x0062, 0x001A, 0x06D5, 786 0x07F2, 0x0223, 0x0CD5, 0x006A, 0x0001, 0x00F6, 0x0623, 0x03F2, 787 0x07EA, 0x01F1, 0x0021, 0x03D5, 0x08C2, 0x07F6, 0x00F2, 0x00E3, 788 0x0FEA, 0x02C5, 0x01AA, 0x0082, 0x04A3, 0x00B6, 0x0071, 0x03B2, 789 0x0023, 0x01B6, 0x08A3, 0x0002, 0x0BB2, 0x00C5, 0x02EA, 0x0C23, 790 0x0FF6, 0x0423, 0x07B2, 0x01C5, 0x07D5, 0x01EA, 0x06EA, 0x02C2, 791 0x01F6, 0x01D5, 0x01B2, 0x00B2, 0x04F1, 0x03EA, 0x01A2, 0x02A2, 792 0x02D5, 0x0123, 0x00D5, 0x01F2, 0x0055, 0x05B2, 0x04C2, 0x0102, 793 0x0061, 0x05D5, 0x00C2, 0x00F1, 0x00A3, 0x0045, 0x0016, 0x01A3, 794 0x01C2, 0x08D5, 0x03C5, 0x00EA, 0x000A, 0x0006, 0x00A2, 0x0036, 795 0x02F1, 0x0072, 0x0022, 0x0025, 0x0009, 0x03F6, 0x0AA3, 0x0063, 796 0x0012, 0x0031, 0x0035, 0x0033, 0x000B, 0x0000, 797}; 798 799static const uint8_t ac_vlc_descA_bits[110] = { 800 8, 11, 12, 7, 7, 7, 6, 6, 801 4, 3, 10, 8, 10, 8, 8, 6, 802 4, 9, 12, 10, 11, 7, 5, 11, 803 11, 11, 12, 8, 6, 9, 11, 11, 804 12, 9, 7, 11, 12, 12, 9, 8, 805 12, 10, 9, 8, 11, 9, 9, 12, 806 11, 9, 12, 9, 12, 11, 11, 12, 807 12, 12, 11, 10, 11, 10, 11, 10, 808 10, 11, 11, 9, 11, 11, 9, 10, 809 11, 9, 12, 10, 8, 11, 11, 9, 810 7, 11, 12, 11, 12, 8, 6, 10, 811 9, 12, 10, 10, 7, 5, 10, 8, 812 10, 8, 8, 6, 4, 11, 12, 8, 813 6, 7, 6, 6, 4, 2, 814}; 815 816static const uint16_t ac_vlc_descB_syms[101] = { 817 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 818 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 819 0xFE0, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC6, 820 0xFC5, 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB6, 0xFB5, 0xFB3, 821 0xFB1, 0xFB0, 0xFA6, 0xFA3, 0xFA1, 0xFA0, 0xF93, 0xF91, 822 0xF90, 0xF83, 0xF81, 0xF80, 0xF71, 0xF70, 0xF61, 0xF60, 823 0xF51, 0xF50, 0xF41, 0x0F1, 0x0D1, 0x0C1, 0x0B1, 0x0B0, 824 0x0A1, 0x0A0, 0x091, 0x090, 0x083, 0x081, 0x080, 0x073, 825 0x071, 0x070, 0x063, 0x061, 0x060, 0x055, 0x053, 0x051, 826 0x050, 0x045, 0x043, 0x042, 0x041, 0x040, 0x036, 0x035, 827 0x034, 0x033, 0x032, 0x031, 0x030, 0x026, 0x025, 0x024, 828 0x023, 0x022, 0x021, 0x020, 0x018, 0x017, 0x016, 0x015, 829 0x014, 0x013, 0x012, 0x011, 0x010, 830}; 831 832static const uint16_t ac_vlc_descB_codes[101] = { 833 0x00EE, 0x03A5, 0x0B73, 0x004E, 0x0035, 0x0015, 0x0023, 0x0013, 834 0x000D, 0x0007, 0x0673, 0x01F3, 0x02FE, 0x0096, 0x0133, 0x001E, 835 0x0001, 0x0116, 0x00F5, 0x03F5, 0x0473, 0x0052, 0x001A, 0x01D5, 836 0x0025, 0x0073, 0x0633, 0x0086, 0x0036, 0x012E, 0x0155, 0x0006, 837 0x0055, 0x000E, 0x0106, 0x023E, 0x0192, 0x0075, 0x0173, 0x01AE, 838 0x00D5, 0x08F5, 0x002E, 0x01FE, 0x0406, 0x00AE, 0x0E3E, 0x0206, 839 0x013E, 0x0373, 0x0D55, 0x063E, 0x0E33, 0x033E, 0x01F5, 0x0273, 840 0x003E, 0x06A5, 0x0092, 0x03D5, 0x04F5, 0x053E, 0x0016, 0x00FE, 841 0x07A5, 0x0125, 0x0506, 0x0292, 0x00BE, 0x0425, 0x0F73, 0x02F5, 842 0x0056, 0x0233, 0x02A5, 0x0C25, 0x007E, 0x0026, 0x0355, 0x0033, 843 0x0555, 0x01A5, 0x0306, 0x0046, 0x000A, 0x0225, 0x006E, 0x00A5, 844 0x0012, 0x00F3, 0x0005, 0x0009, 0x073E, 0x0773, 0x00B3, 0x0032, 845 0x0065, 0x0003, 0x0002, 0x000B, 0x0000, 846}; 847 848static const uint8_t ac_vlc_descB_bits[101] = { 849 8, 11, 12, 7, 7, 7, 6, 6, 850 4, 3, 11, 9, 10, 8, 9, 6, 851 4, 9, 12, 10, 11, 7, 5, 10, 852 11, 11, 12, 8, 6, 9, 11, 11, 853 9, 7, 11, 11, 9, 8, 10, 9, 854 9, 12, 9, 9, 11, 9, 12, 10, 855 11, 12, 12, 12, 12, 11, 10, 11, 856 10, 11, 10, 10, 11, 11, 9, 10, 857 11, 9, 11, 10, 8, 12, 12, 10, 858 7, 11, 11, 12, 8, 6, 10, 10, 859 12, 10, 10, 7, 5, 10, 8, 10, 860 8, 9, 6, 4, 11, 12, 8, 6, 861 7, 6, 5, 4, 2, 862}; 863 864static const uint16_t ac_vlc_descC_syms[96] = { 865 0x1000, 0xFF8, 0xFF7, 0xFF6, 0xFF5, 0xFF4, 0xFF3, 0xFF2, 866 0xFF1, 0xFF0, 0xFE6, 0xFE5, 0xFE4, 0xFE3, 0xFE2, 0xFE1, 867 0xFE0, 0xFD5, 0xFD4, 0xFD3, 0xFD2, 0xFD1, 0xFD0, 0xFC6, 868 0xFC5, 0xFC3, 0xFC2, 0xFC1, 0xFC0, 0xFB6, 0xFB5, 0xFB3, 869 0xFB1, 0xFB0, 0xFA6, 0xFA3, 0xFA1, 0xFA0, 0xF93, 0xF91, 870 0xF90, 0xF81, 0xF80, 0xF71, 0xF70, 0xF61, 0xF60, 0xF51, 871 0x0E1, 0x0C1, 0x0B1, 0x0A1, 0x0A0, 0x091, 0x090, 0x083, 872 0x081, 0x080, 0x073, 0x071, 0x070, 0x063, 0x061, 0x060, 873 0x055, 0x053, 0x051, 0x050, 0x045, 0x043, 0x042, 0x041, 874 0x040, 0x036, 0x035, 0x034, 0x033, 0x032, 0x031, 0x030, 875 0x026, 0x025, 0x024, 0x023, 0x022, 0x021, 0x020, 0x018, 876 0x017, 0x016, 0x015, 0x014, 0x013, 0x012, 0x011, 0x010, 877}; 878 879static const uint16_t ac_vlc_descC_codes[96] = { 880 0x00DE, 0x072E, 0x0576, 0x006E, 0x0075, 0x0055, 0x0013, 0x0033, 881 0x000D, 0x0007, 0x07D2, 0x0052, 0x0065, 0x00CE, 0x0183, 0x003E, 882 0x0001, 0x002E, 0x0F35, 0x0003, 0x0243, 0x001A, 0x0006, 0x01A5, 883 0x0043, 0x0012, 0x0E43, 0x00B6, 0x0016, 0x0135, 0x0176, 0x0643, 884 0x0035, 0x001E, 0x0735, 0x0283, 0x0125, 0x00AE, 0x00D2, 0x0165, 885 0x0103, 0x0603, 0x00E5, 0x0C43, 0x02B5, 0x04A5, 0x00A5, 0x0443, 886 0x0265, 0x0476, 0x0212, 0x0112, 0x0376, 0x012E, 0x02D2, 0x0083, 887 0x0483, 0x015E, 0x06A5, 0x0335, 0x005E, 0x0025, 0x01D2, 0x00F6, 888 0x03D2, 0x032E, 0x03B5, 0x005A, 0x0203, 0x02A5, 0x0BD2, 0x004E, 889 0x0032, 0x01B5, 0x00B5, 0x0A65, 0x0225, 0x0276, 0x000E, 0x000A, 890 0x03E5, 0x0143, 0x01E5, 0x0036, 0x0092, 0x0005, 0x0009, 0x0665, 891 0x0076, 0x00C3, 0x003A, 0x0015, 0x0023, 0x0002, 0x000B, 0x0000, 892}; 893 894static const uint8_t ac_vlc_descC_bits[96] = { 895 8, 11, 11, 7, 7, 7, 6, 6, 896 4, 3, 11, 8, 10, 8, 9, 6, 897 4, 9, 12, 10, 11, 7, 5, 9, 898 11, 10, 12, 8, 6, 10, 11, 12, 899 9, 7, 12, 10, 9, 8, 10, 9, 900 9, 11, 9, 12, 10, 11, 11, 12, 901 12, 11, 10, 9, 10, 10, 10, 11, 902 11, 9, 11, 11, 9, 10, 10, 8, 903 12, 11, 10, 7, 11, 11, 12, 8, 904 6, 10, 10, 12, 10, 10, 7, 5, 905 10, 9, 10, 8, 8, 6, 4, 11, 906 11, 8, 6, 7, 6, 5, 4, 2, 907}; 908 909static const int tscc2_ac_vlc_sizes[NUM_VLC_SETS] = { 910 172, 169, 165, 162, 131, 132, 130, 125, 121, 114, 110, 101, 96 911}; 912 913static const uint16_t *tscc2_ac_vlc_syms[NUM_VLC_SETS] = { 914 ac_vlc_desc0_syms, ac_vlc_desc1_syms, ac_vlc_desc2_syms, ac_vlc_desc3_syms, 915 ac_vlc_desc4_syms, ac_vlc_desc5_syms, ac_vlc_desc6_syms, ac_vlc_desc7_syms, 916 ac_vlc_desc8_syms, ac_vlc_desc9_syms, ac_vlc_descA_syms, ac_vlc_descB_syms, 917 ac_vlc_descC_syms, 918}; 919 920static const uint16_t *tscc2_ac_vlc_codes[NUM_VLC_SETS] = { 921 ac_vlc_desc0_codes, ac_vlc_desc1_codes, ac_vlc_desc2_codes, 922 ac_vlc_desc3_codes, ac_vlc_desc4_codes, ac_vlc_desc5_codes, 923 ac_vlc_desc6_codes, ac_vlc_desc7_codes, ac_vlc_desc8_codes, 924 ac_vlc_desc9_codes, ac_vlc_descA_codes, ac_vlc_descB_codes, 925 ac_vlc_descC_codes, 926}; 927 928static const uint8_t *tscc2_ac_vlc_bits[NUM_VLC_SETS] = { 929 ac_vlc_desc0_bits, ac_vlc_desc1_bits, ac_vlc_desc2_bits, ac_vlc_desc3_bits, 930 ac_vlc_desc4_bits, ac_vlc_desc5_bits, ac_vlc_desc6_bits, ac_vlc_desc7_bits, 931 ac_vlc_desc8_bits, ac_vlc_desc9_bits, ac_vlc_descA_bits, ac_vlc_descB_bits, 932 ac_vlc_descC_bits, 933}; 934 935#endif /* AVCODEC_TSCC2_DATA_H */ 936