tscc2data.h
Go to the documentation of this file.
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 
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 
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] = {
918 };
919 
920 static const uint16_t *tscc2_ac_vlc_codes[NUM_VLC_SETS] = {
926 };
927 
933 };
934 
935 #endif /* AVCODEC_TSCC2_DATA_H */
static const uint8_t ac_vlc_desc1_bits[169]
Definition: tscc2data.h:248
static const uint16_t ac_vlc_desc2_syms[165]
Definition: tscc2data.h:273
static const uint16_t ac_vlc_descC_syms[96]
Definition: tscc2data.h:864
static const uint8_t ac_vlc_desc4_bits[131]
Definition: tscc2data.h:457
static const uint16_t ac_vlc_desc6_codes[130]
Definition: tscc2data.h:557
static const uint16_t tscc2_dc_vlc_syms[DC_VLC_COUNT]
Definition: tscc2data.h:46
static const uint16_t ac_vlc_desc0_syms[172]
Definition: tscc2data.h:123
static const uint16_t ac_vlc_descC_codes[96]
Definition: tscc2data.h:879
#define NUM_VLC_SETS
Definition: tscc2data.h:34
static const uint16_t ac_vlc_desc0_codes[172]
Definition: tscc2data.h:148
static const int tscc2_ac_vlc_sizes[NUM_VLC_SETS]
Definition: tscc2data.h:909
static const uint16_t ac_vlc_desc5_codes[132]
Definition: tscc2data.h:497
static const uint16_t ac_vlc_descA_codes[110]
Definition: tscc2data.h:782
static const uint16_t ac_vlc_desc9_syms[114]
Definition: tscc2data.h:711
static const uint16_t * tscc2_ac_vlc_codes[NUM_VLC_SETS]
Definition: tscc2data.h:920
static const uint16_t ac_vlc_desc7_codes[125]
Definition: tscc2data.h:616
uint8_t
static const uint16_t ac_vlc_desc9_codes[114]
Definition: tscc2data.h:729
static const uint8_t ac_vlc_desc2_bits[165]
Definition: tscc2data.h:321
static const uint16_t ac_vlc_descB_syms[101]
Definition: tscc2data.h:816
static const uint8_t tscc2_dc_vlc_bits[DC_VLC_COUNT]
Definition: tscc2data.h:64
static const uint16_t ac_vlc_descB_codes[101]
Definition: tscc2data.h:832
static const uint16_t ac_vlc_desc1_syms[169]
Definition: tscc2data.h:198
static const uint16_t ac_vlc_desc7_syms[125]
Definition: tscc2data.h:597
static const uint16_t ac_vlc_desc1_codes[169]
Definition: tscc2data.h:223
static const uint8_t ac_vlc_descC_bits[96]
Definition: tscc2data.h:894
static const uint16_t ac_vlc_descA_syms[110]
Definition: tscc2data.h:765
static const uint16_t ac_vlc_desc6_syms[130]
Definition: tscc2data.h:537
#define DC_VLC_COUNT
Definition: tscc2data.h:44
static const uint16_t ac_vlc_desc2_codes[165]
Definition: tscc2data.h:297
static const uint16_t ac_vlc_desc3_codes[162]
Definition: tscc2data.h:369
static const uint8_t ac_vlc_desc0_bits[172]
Definition: tscc2data.h:173
static const uint16_t tscc2_nc_vlc_codes[NUM_VLC_SETS][16]
Definition: tscc2data.h:78
static const uint16_t ac_vlc_desc4_syms[131]
Definition: tscc2data.h:417
static const uint16_t tscc2_quants[NUM_VLC_SETS][3]
Definition: tscc2data.h:36
static const uint8_t tscc2_zigzag[16]
Definition: tscc2data.h:27
static const uint16_t ac_vlc_desc8_codes[121]
Definition: tscc2data.h:673
static const uint8_t ac_vlc_desc8_bits[121]
Definition: tscc2data.h:692
static const uint8_t * tscc2_ac_vlc_bits[NUM_VLC_SETS]
Definition: tscc2data.h:928
static const uint16_t tscc2_dc_vlc_codes[DC_VLC_COUNT]
Definition: tscc2data.h:55
static const uint16_t ac_vlc_desc4_codes[131]
Definition: tscc2data.h:437
static const uint8_t ac_vlc_desc6_bits[130]
Definition: tscc2data.h:577
static const uint8_t ac_vlc_desc5_bits[132]
Definition: tscc2data.h:517
static const uint16_t ac_vlc_desc3_syms[162]
Definition: tscc2data.h:345
static const uint8_t ac_vlc_descB_bits[101]
Definition: tscc2data.h:848
static const uint8_t ac_vlc_desc3_bits[162]
Definition: tscc2data.h:393
static const uint8_t tscc2_nc_vlc_bits[NUM_VLC_SETS][16]
Definition: tscc2data.h:107
static const uint8_t tscc2_nc_vlc_syms[16]
Definition: tscc2data.h:73
static const uint8_t ac_vlc_descA_bits[110]
Definition: tscc2data.h:799
static const uint8_t ac_vlc_desc7_bits[125]
Definition: tscc2data.h:635
static const uint16_t ac_vlc_desc5_syms[132]
Definition: tscc2data.h:477
static const uint16_t ac_vlc_desc8_syms[121]
Definition: tscc2data.h:654
static const uint16_t * tscc2_ac_vlc_syms[NUM_VLC_SETS]
Definition: tscc2data.h:913
static const uint8_t ac_vlc_desc9_bits[114]
Definition: tscc2data.h:747