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