Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 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 
26
 
27
static 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
 
36
static 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
 
46
static 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
 
55
static 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
 
64
static 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
 
73
static 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
 
78
static 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
 
107
static 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
 
123
static 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
 
148
static 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
 
173
static 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
 
198
static 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
 
223
static 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
 
248
static 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
 
273
static 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
 
297
static 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
 
321
static 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
 
345
static 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
 
369
static 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
 
393
static 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
 
417
static 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
 
437
static 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
 
457
static 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
 
477
static 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
 
497
static 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
 
517
static 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
 
537
static 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
 
557
static 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
 
577
static 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
 
597
static 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
 
616
static 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
 
635
static 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
 
654
static 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
 
673
static 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
 
692
static 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
 
711
static 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
 
729
static 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
 
747
static 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
 
765
static 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
 
782
static 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
 
799
static 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
 
816
static 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
 
832
static 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
 
848
static 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
 
864
static 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
 
879
static 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
 
894
static 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
 
909
static 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
 
913
static 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
 
920
static 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
 
928
static 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 */