vp9: decode_mode context optimizations.
[ffmpeg.git] / libavcodec / tscc2data.h
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
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 */