]> git.sesse.net Git - ffmpeg/blob - libavcodec/tscc2data.h
avcodec/tscc2: Reduce the size of the tables used to initialize VLCs
[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     0x0FF, 0x001, 0x0FC, 0x0F1, 0x0EA, 0x017, 0x00E, 0x016, 0x0EB, 0x009,
41     0x0F6, 0x004, 0x006, 0x0F2, 0x015, 0x014, 0x00D, 0x0EC, 0x0ED, 0x100,
42     0x0FA, 0x0F7, 0x008, 0x00C, 0x013, 0x0EE, 0x0F3, 0x0F4, 0x005, 0x0FE,
43     0x002, 0x0FB, 0x0F8, 0x012, 0x011, 0x00B, 0x0FD, 0x003, 0x007, 0x0EF,
44     0x0F0, 0x0F5, 0x0F9, 0x00F, 0x010, 0x00A, 0x000,
45 };
46
47 static const uint8_t tscc2_dc_vlc_lens[DC_VLC_COUNT] = {
48      3,  3,  6,  9, 10, 10,  9, 10, 10,  8,  8,  6,  7,  9, 10, 10,  9, 10,
49     10,  5,  7,  8,  8,  9, 10, 10,  9,  9,  7,  5,  5,  7,  8, 10, 10,  9,
50      6,  6,  8, 10, 10,  9,  8, 10, 10,  9,  1,
51 };
52
53 static const uint8_t tscc2_nc_vlc_syms[NUM_VLC_SETS][16] = {
54     { 0x00, 0x08, 0x0C, 0x0B, 0x0D, 0x07, 0x06, 0x04,
55       0x02, 0x0E, 0x0F, 0x09, 0x0A, 0x05, 0x03, 0x01 },
56     { 0x0A, 0x0C, 0x07, 0x0F, 0x0B, 0x0D, 0x04, 0x02,
57       0x06, 0x0E, 0x05, 0x09, 0x08, 0x03, 0x01, 0x00 },
58     { 0x08, 0x0D, 0x04, 0x0C, 0x07, 0x0A, 0x0E, 0x02,
59       0x0B, 0x06, 0x05, 0x0F, 0x09, 0x03, 0x01, 0x00 },
60     { 0x04, 0x0E, 0x0C, 0x09, 0x08, 0x07, 0x0A, 0x02,
61       0x06, 0x0B, 0x05, 0x0F, 0x0D, 0x03, 0x01, 0x00 },
62     { 0x0D, 0x0C, 0x04, 0x09, 0x08, 0x0B, 0x07, 0x02,
63       0x06, 0x0A, 0x0F, 0x0E, 0x05, 0x03, 0x01, 0x00 },
64     { 0x01, 0x0A, 0x06, 0x07, 0x05, 0x03, 0x0D, 0x0C,
65       0x04, 0x0F, 0x0E, 0x0B, 0x09, 0x08, 0x02, 0x00 },
66     { 0x01, 0x08, 0x06, 0x07, 0x0D, 0x0C, 0x05, 0x04,
67       0x0F, 0x0E, 0x0B, 0x09, 0x0A, 0x03, 0x02, 0x00 },
68     { 0x01, 0x0D, 0x0C, 0x08, 0x06, 0x07, 0x05, 0x0F,
69       0x0E, 0x0B, 0x04, 0x0A, 0x09, 0x03, 0x02, 0x00 },
70     { 0x01, 0x0D, 0x0F, 0x0E, 0x08, 0x07, 0x06, 0x0C,
71       0x0B, 0x05, 0x04, 0x0A, 0x09, 0x03, 0x02, 0x00 },
72     { 0x03, 0x02, 0x09, 0x08, 0x0C, 0x0B, 0x07, 0x06,
73       0x05, 0x04, 0x0D, 0x0F, 0x0E, 0x0A, 0x01, 0x00 },
74     { 0x03, 0x02, 0x09, 0x0C, 0x0B, 0x08, 0x07, 0x06,
75       0x0D, 0x0F, 0x0E, 0x0A, 0x05, 0x04, 0x01, 0x00 },
76     { 0x03, 0x02, 0x09, 0x0C, 0x0B, 0x08, 0x07, 0x06,
77       0x0D, 0x0F, 0x0E, 0x0A, 0x04, 0x05, 0x01, 0x00 },
78     { 0x03, 0x02, 0x09, 0x0C, 0x0B, 0x08, 0x07, 0x0D,
79       0x0F, 0x0E, 0x0A, 0x06, 0x05, 0x04, 0x01, 0x00 },
80 };
81
82 static const uint8_t tscc2_nc_vlc_lens[NUM_VLC_SETS][16] = {
83     { 1, 6, 6, 6, 6, 6, 6, 5, 3, 6, 6, 7, 7, 6, 4, 3 },
84     { 6, 6, 6, 6, 6, 6, 5, 3, 6, 6, 6, 7, 7, 4, 3, 1 },
85     { 6, 6, 5, 6, 6, 6, 6, 3, 6, 6, 6, 7, 7, 4, 3, 1 },
86     { 5, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 7, 7, 4, 3, 1 },
87     { 6, 6, 5, 6, 6, 6, 6, 3, 6, 6, 7, 7, 6, 4, 3, 1 },
88     { 2, 6, 6, 6, 6, 4, 7, 7, 6, 8, 8, 7, 7, 7, 4, 1 },
89     { 2, 6, 6, 6, 7, 7, 6, 6, 8, 8, 7, 7, 7, 4, 4, 1 },
90     { 2, 7, 7, 6, 6, 6, 6, 8, 8, 7, 6, 7, 7, 4, 4, 1 },
91     { 2, 7, 8, 8, 6, 6, 6, 7, 7, 6, 6, 7, 7, 4, 4, 1 },
92     { 3, 3, 6, 6, 7, 7, 6, 6, 6, 6, 8, 9, 9, 7, 3, 1 },
93     { 3, 3, 6, 7, 7, 6, 6, 6, 8, 9, 9, 7, 6, 6, 3, 1 },
94     { 3, 3, 6, 7, 7, 6, 6, 6, 8, 9, 9, 7, 6, 6, 3, 1 },
95     { 3, 3, 6, 7, 7, 6, 6, 8, 9, 9, 7, 6, 6, 6, 3, 1 },
96 };
97
98 static const uint16_t ac_vlc_desc0_syms[172] = {
99     0x0FC0, 0x0040, 0x0FF1, 0x0011, 0x0FA0, 0x0FE5, 0x0140, 0x0280, 0x0D60,
100     0x0210, 0x0FC6, 0x0FD6, 0x0200, 0x0F95, 0x0101, 0x0190, 0x0FF5, 0x0FF2,
101     0x0060, 0x0FE1, 0x0021, 0x0F41, 0x0270, 0x0D80, 0x0055, 0x0FB2, 0x00F1,
102     0x0120, 0x0F30, 0x0015, 0x0090, 0x0FE3, 0x0FA1, 0x0E00, 0x01F0, 0x0F81,
103     0x0EE0, 0x0FD1, 0x0F70, 0x0FA3, 0x0121, 0x0FC5, 0x0E70, 0x0023, 0x0180,
104     0x00C1, 0x0F51, 0x0FE2, 0x0031, 0x0012, 0x0061, 0x00A5, 0x0ED1, 0x0D90,
105     0x0091, 0x0E10, 0x0FE4, 0x0043, 0x0024, 0x0E80, 0x01E0, 0x0DA0, 0x0FA5,
106     0x00D0, 0x0022, 0x0110, 0x0FE0, 0x0020, 0x0EF0, 0x0F45, 0x0260, 0x0045,
107     0x0081, 0x0F40, 0x0F80, 0x0080, 0x00C0, 0x0E20, 0x0250, 0x0052, 0x0063,
108     0x0018, 0x0FC3, 0x0170, 0x0111, 0x0F73, 0x0240, 0x0DC0, 0x0FB0, 0x0F00,
109     0x0100, 0x0FC1, 0x0160, 0x0DB0, 0x00B1, 0x0026, 0x0F31, 0x0FF8, 0x0EA0,
110     0x0150, 0x0065, 0x0FE6, 0x0E90, 0x0E30, 0x01C0, 0x0FD0, 0x0030, 0x0FF0,
111     0x0010, 0x0050, 0x00B0, 0x0FF4, 0x0FF3, 0x0046, 0x0053, 0x0230, 0x0FB3,
112     0x0EB0, 0x0035, 0x0FB5, 0x00E1, 0x0CD1, 0x0ED5, 0x0F50, 0x0041, 0x0F10,
113     0x01B0, 0x01D0, 0x0F91, 0x0F90, 0x0070, 0x00F0, 0x0FB1, 0x0E40, 0x0DD0,
114     0x0075, 0x0E50, 0x0FC2, 0x0F83, 0x0FD2, 0x00A1, 0x0EC0, 0x0013, 0x0014,
115     0x0F61, 0x01A1, 0x0220, 0x0FD5, 0x0DE0, 0x0F21, 0x0016, 0x0F60, 0x0032,
116     0x01A0, 0x0036, 0x00D1, 0x0FD3, 0x0025, 0x0130, 0x1000, 0x0051, 0x0FF6,
117     0x0ED0, 0x0E60, 0x0042, 0x0DF0, 0x0F20, 0x00E0, 0x0033, 0x0F71, 0x0071,
118     0x00A0,
119 };
120
121 static const uint16_t ac_vlc_desc1_syms[169] = {
122     0x00D0, 0x0E50, 0x00D1, 0x0091, 0x0160, 0x0F31, 0x0EE1, 0x0250, 0x0F70,
123     0x0051, 0x0F41, 0x0063, 0x0150, 0x0EF0, 0x01A0, 0x0F51, 0x0FD5, 0x0F93,
124     0x0DC0, 0x0240, 0x0095, 0x0FD2, 0x00C0, 0x0FC0, 0x0040, 0x0090, 0x0016,
125     0x0F40, 0x0FA0, 0x0026, 0x0EB0, 0x0EF1, 0x0DF0, 0x0053, 0x0F01, 0x01F0,
126     0x0FC2, 0x0FF6, 0x0FF5, 0x0060, 0x0015, 0x0F85, 0x0DE1, 0x0032, 0x0100,
127     0x0046, 0x0DB0, 0x0FB5, 0x0F81, 0x0FA1, 0x0012, 0x0011, 0x0FF1, 0x0FF2,
128     0x0F00, 0x0E00, 0x0F21, 0x0F45, 0x0FD3, 0x0E60, 0x00C1, 0x0E80, 0x0035,
129     0x0045, 0x0140, 0x0042, 0x0FB2, 0x0EB6, 0x0033, 0x0FC5, 0x0190, 0x0FE6,
130     0x0024, 0x0F61, 0x0085, 0x0E33, 0x0E70, 0x0EC0, 0x00B0, 0x0F50, 0x0F80,
131     0x0080, 0x0023, 0x0FE4, 0x01E0, 0x0F11, 0x0081, 0x0FC1, 0x0FD1, 0x0052,
132     0x0FA5, 0x0F95, 0x0EC6, 0x00B1, 0x0111, 0x0061, 0x00F0, 0x0FE3, 0x0FE1,
133     0x0021, 0x0041, 0x0FE2, 0x0055, 0x0FC6, 0x0E10, 0x0180, 0x0E20, 0x0DE0,
134     0x0022, 0x0025, 0x0FB3, 0x0FA3, 0x0036, 0x0FC3, 0x00E0, 0x0FE0, 0x0020,
135     0x0050, 0x0FB0, 0x1000, 0x0031, 0x01D0, 0x0018, 0x00A1, 0x0FB6, 0x00C6,
136     0x0043, 0x0F10, 0x0F20, 0x0101, 0x0E30, 0x0FA6, 0x00F1, 0x0ED0, 0x0FD0,
137     0x00A0, 0x0FD6, 0x0DA0, 0x0E31, 0x0120, 0x0130, 0x0170, 0x01C0, 0x00E1,
138     0x0F60, 0x0014, 0x0070, 0x0F90, 0x0030, 0x0FB1, 0x0075, 0x0E90, 0x0F91,
139     0x0FF4, 0x0013, 0x0FF3, 0x0EE0, 0x0FF8, 0x0065, 0x0E40, 0x01B0, 0x0F30,
140     0x0071, 0x0FE5, 0x0EA0, 0x0F71, 0x0110, 0x0FF0, 0x0010,
141 };
142
143 static const uint16_t ac_vlc_desc2_syms[165] = {
144     0x0051, 0x0E61, 0x0E81, 0x0E80, 0x0FF7, 0x0E00, 0x0E30, 0x0F71, 0x0130,
145     0x00F0, 0x0170, 0x0E70, 0x0F81, 0x0F40, 0x0FF3, 0x0040, 0x0013, 0x0FA0,
146     0x0FC0, 0x0060, 0x0065, 0x0E40, 0x0ED0, 0x0043, 0x0086, 0x0F93, 0x0036,
147     0x0035, 0x0F10, 0x0EA1, 0x01B3, 0x0F36, 0x0FD5, 0x0FA1, 0x0F41, 0x0096,
148     0x0EB3, 0x0F26, 0x0F16, 0x0FB6, 0x0FB5, 0x0160, 0x0FD6, 0x0F80, 0x0080,
149     0x1000, 0x00B0, 0x0FE5, 0x0091, 0x0E90, 0x0241, 0x0231, 0x0FF5, 0x0015,
150     0x0081, 0x0120, 0x0EA0, 0x0053, 0x0F51, 0x0FC2, 0x0F50, 0x0FF6, 0x0061,
151     0x0EB1, 0x0018, 0x0FF8, 0x0240, 0x0042, 0x0085, 0x0EF1, 0x0FD1, 0x0FF2,
152     0x0012, 0x0016, 0x0FD2, 0x0FC6, 0x0063, 0x00A5, 0x0F20, 0x0055, 0x0052,
153     0x0E10, 0x0150, 0x00C1, 0x01D0, 0x0F95, 0x0032, 0x00E0, 0x01A0, 0x0EE1,
154     0x0024, 0x0EF0, 0x0FC1, 0x0F60, 0x0031, 0x0190, 0x0F11, 0x0FB2, 0x0F21,
155     0x0110, 0x0FC3, 0x0FE4, 0x0F01, 0x0095, 0x0FD3, 0x0FB3, 0x0E71, 0x0F61,
156     0x0EB0, 0x0026, 0x00A0, 0x00D0, 0x0045, 0x00A1, 0x00B1, 0x0180, 0x01C0,
157     0x0FF1, 0x0011, 0x0FB0, 0x0050, 0x0F90, 0x0041, 0x0033, 0x0F91, 0x0F30,
158     0x0FE1, 0x0FE0, 0x0020, 0x0FD0, 0x0070, 0x0FE2, 0x0E50, 0x0FA3, 0x0F75,
159     0x0EA3, 0x01B0, 0x0140, 0x0023, 0x0FE3, 0x0021, 0x0030, 0x0100, 0x0071,
160     0x0FC5, 0x0EC0, 0x0F00, 0x0090, 0x0022, 0x0F06, 0x0F31, 0x0FA5, 0x00D1,
161     0x0E60, 0x0075, 0x0F70, 0x0014, 0x0FF4, 0x0025, 0x0FB1, 0x0FE6, 0x0EE0,
162     0x00C0, 0x0FF0, 0x0010,
163 };
164
165 static const uint16_t ac_vlc_desc3_syms[162] = {
166     0x0FC5, 0x0EC1, 0x0033, 0x0FE3, 0x0FD6, 0x0110, 0x00E0, 0x0071, 0x0F36,
167     0x0095, 0x01A1, 0x0F71, 0x0060, 0x0FA0, 0x0FE2, 0x0F20, 0x0F21, 0x0085,
168     0x0150, 0x0053, 0x0023, 0x0022, 0x0FF4, 0x0043, 0x0E70, 0x0034, 0x0017,
169     0x0140, 0x0170, 0x0EF0, 0x0F50, 0x0F80, 0x00B0, 0x0F26, 0x00D1, 0x0065,
170     0x0113, 0x0FF7, 0x0073, 0x01E1, 0x0EF3, 0x0F31, 0x0FB5, 0x0FC0, 0x0040,
171     0x0080, 0x0FA1, 0x0FD3, 0x0075, 0x0F41, 0x0FD4, 0x0F83, 0x0EB0, 0x0061,
172     0x0013, 0x0FF3, 0x0F10, 0x0F30, 0x0100, 0x0EB1, 0x0F93, 0x0130, 0x00D0,
173     0x00A0, 0x00C1, 0x0F95, 0x0FB3, 0x0FC3, 0x0FE5, 0x0FF5, 0x0F81, 0x0F00,
174     0x0091, 0x0F66, 0x01B1, 0x0F51, 0x0F60, 0x0FD1, 0x0180, 0x0FF8, 0x0076,
175     0x0FB2, 0x0063, 0x0042, 0x0081, 0x0052, 0x0EE1, 0x0FC2, 0x0160, 0x0036,
176     0x01D0, 0x0FD2, 0x0EA0, 0x0018, 0x0E80, 0x0FD5, 0x0070, 0x0F90, 0x0FB0,
177     0x0015, 0x0032, 0x0123, 0x0F01, 0x0EE3, 0x0ED1, 0x00C0, 0x0FC1, 0x0FF2,
178     0x0012, 0x0050, 0x00A1, 0x00F0, 0x0ED0, 0x0FC6, 0x0ED3, 0x01D1, 0x0120,
179     0x0016, 0x0031, 0x0FF6, 0x0F40, 0x0EC0, 0x0E90, 0x0F91, 0x0041, 0x0EF1,
180     0x0F61, 0x0035, 0x0FB1, 0x0FF1, 0x0011, 0x0FE0, 0x0020, 0x0FE1, 0x0090,
181     0x00B1, 0x0163, 0x0055, 0x0024, 0x0F56, 0x0FA3, 0x0FE4, 0x0F46, 0x0FE6,
182     0x0025, 0x0026, 0x0EE0, 0x0FA5, 0x01C1, 0x0F70, 0x0FD0, 0x0030, 0x1000,
183     0x0045, 0x0F11, 0x0066, 0x0F85, 0x0051, 0x0014, 0x0021, 0x0FF0, 0x0010,
184 };
185
186 static const uint16_t ac_vlc_desc4_syms[131] = {
187     0x0010, 0x0FB0, 0x0050, 0x0070, 0x0FF5, 0x0FC1, 0x0090, 0x0FD1, 0x00E0,
188     0x0161, 0x0085, 0x0F41, 0x0F20, 0x0FD6, 0x0F70, 0x0FD3, 0x0032, 0x0FD2,
189     0x0055, 0x0191, 0x0063, 0x0091, 0x0081, 0x0F91, 0x0015, 0x0031, 0x0065,
190     0x0036, 0x00B1, 0x0130, 0x0018, 0x0F93, 0x0F50, 0x0041, 0x0FD5, 0x0100,
191     0x0F51, 0x00B0, 0x0FE6, 0x0FC5, 0x0F40, 0x0FF2, 0x0FE0, 0x0012, 0x0FE1,
192     0x0043, 0x0F61, 0x0FA3, 0x0140, 0x0120, 0x0FB1, 0x0051, 0x0EE0, 0x0F21,
193     0x0066, 0x0F03, 0x0F01, 0x0060, 0x0016, 0x0FF6, 0x0FA0, 0x0020, 0x0FF1,
194     0x0FD0, 0x0030, 0x0011, 0x0021, 0x0071, 0x00D0, 0x0FE4, 0x0024, 0x0F30,
195     0x0080, 0x0123, 0x00A1, 0x0F71, 0x0F00, 0x0180, 0x0EC0, 0x00F3, 0x0F31,
196     0x0EF0, 0x0033, 0x0014, 0x0FC0, 0x0F80, 0x0FE3, 0x0FE2, 0x0025, 0x0FC3,
197     0x00F0, 0x0053, 0x0075, 0x0F66, 0x0FF4, 0x0040, 0x0F60, 0x0022, 0x00A0,
198     0x0ED0, 0x0F13, 0x0181, 0x0F76, 0x0F23, 0x0045, 0x1000, 0x0023, 0x00C0,
199     0x0F56, 0x0171, 0x0F10, 0x0FA1, 0x0EB0, 0x0056, 0x0026, 0x0035, 0x0FB5,
200     0x0FB3, 0x0EF1, 0x0FF3, 0x0013, 0x0F90, 0x0FA5, 0x0FC2, 0x0F11, 0x0F81,
201     0x0110, 0x0042, 0x0061, 0x0FE5, 0x0FF0,
202 };
203
204 static const uint16_t ac_vlc_desc5_syms[132] = {
205     0x0010, 0x0F81, 0x0FC5, 0x0F20, 0x0F76, 0x0061, 0x0F41, 0x00D3, 0x0FB3,
206     0x0023, 0x0F31, 0x0EC0, 0x00B1, 0x0045, 0x0F50, 0x0FF5, 0x0042, 0x00C1,
207     0x0EC1, 0x00D0, 0x0F33, 0x0F93, 0x0FF8, 0x0EF0, 0x0140, 0x0035, 0x0071,
208     0x0FD1, 0x0FE3, 0x0FC1, 0x0FF3, 0x0013, 0x0052, 0x0F85, 0x0F51, 0x0046,
209     0x0065, 0x0F21, 0x0F30, 0x0041, 0x0031, 0x0034, 0x0FD4, 0x0F43, 0x0032,
210     0x0FB5, 0x0FD2, 0x0FE5, 0x0EE0, 0x0120, 0x0F23, 0x0F00, 0x0015, 0x0FE1,
211     0x0FE0, 0x0020, 0x1000, 0x0081, 0x0018, 0x0075, 0x0043, 0x00C3, 0x0121,
212     0x00A0, 0x0080, 0x0FA0, 0x0060, 0x0FD0, 0x0030, 0x0FF2, 0x0012, 0x0FF1,
213     0x0F80, 0x0F91, 0x0141, 0x00A1, 0x0F96, 0x0FB1, 0x00C0, 0x0111, 0x0F66,
214     0x00F0, 0x0F40, 0x0FE6, 0x0016, 0x0021, 0x0FC0, 0x0051, 0x00E0, 0x0F86,
215     0x0033, 0x0FF6, 0x0F75, 0x0F11, 0x0055, 0x0F61, 0x0FA3, 0x0131, 0x0FD5,
216     0x0FA1, 0x0FC3, 0x0024, 0x0056, 0x0FD6, 0x0F60, 0x0011, 0x0040, 0x0025,
217     0x0FE4, 0x0103, 0x0091, 0x0026, 0x0F10, 0x0014, 0x0FE2, 0x0022, 0x0070,
218     0x0090, 0x0100, 0x0FC2, 0x0151, 0x0FD3, 0x0FF4, 0x0050, 0x0F70, 0x0053,
219     0x0110, 0x0F71, 0x00B0, 0x0F90, 0x0FB0, 0x0FF0,
220 };
221
222 static const uint16_t ac_vlc_desc6_syms[130] = {
223     0x0010, 0x0FF4, 0x0F96, 0x0F71, 0x00D1, 0x0FF7, 0x00E3, 0x0045, 0x0FC1,
224     0x1000, 0x00C0, 0x0042, 0x0120, 0x00A0, 0x0F80, 0x0FD1, 0x0F43, 0x0F63,
225     0x0EF0, 0x0F86, 0x0F60, 0x0023, 0x0080, 0x00F0, 0x0FB3, 0x00E0, 0x0063,
226     0x0110, 0x0F41, 0x0F93, 0x0FF8, 0x0081, 0x0FF5, 0x0041, 0x0FD2, 0x0F30,
227     0x0F81, 0x00B1, 0x00E1, 0x0F00, 0x0031, 0x0060, 0x0035, 0x0F51, 0x0FB5,
228     0x0FE3, 0x0FF3, 0x0013, 0x0FE0, 0x0032, 0x0075, 0x0FD4, 0x0046, 0x0F40,
229     0x0F91, 0x0FE5, 0x00B3, 0x00C3, 0x0EE1, 0x0F31, 0x0FA0, 0x0FE1, 0x0FD0,
230     0x0020, 0x0030, 0x0F10, 0x00A1, 0x0FA3, 0x0033, 0x0111, 0x0FA6, 0x0100,
231     0x0F61, 0x0026, 0x0FB1, 0x0061, 0x0025, 0x0F95, 0x0FD6, 0x0036, 0x0034,
232     0x0F20, 0x00B0, 0x0121, 0x0018, 0x0131, 0x0051, 0x0FF2, 0x0040, 0x0021,
233     0x0FC0, 0x0015, 0x0090, 0x0043, 0x0FC5, 0x0056, 0x0055, 0x0016, 0x0FF1,
234     0x0011, 0x0012, 0x0FF6, 0x0F50, 0x0FC2, 0x0053, 0x0F76, 0x0F85, 0x0FD3,
235     0x0091, 0x0101, 0x0071, 0x0070, 0x0F90, 0x0FB0, 0x0FC3, 0x0065, 0x00F1,
236     0x0F53, 0x00D0, 0x0FE2, 0x0FA1, 0x0024, 0x0FE4, 0x0022, 0x0050, 0x0FE6,
237     0x0FD5, 0x0F70, 0x0014, 0x0FF0,
238 };
239
240 static const uint16_t ac_vlc_desc7_syms[125] = {
241     0x0010, 0x0022, 0x0FD5, 0x0F71, 0x0F63, 0x0052, 0x0F31, 0x0042, 0x0024,
242     0x0FE4, 0x0F86, 0x0F93, 0x00C1, 0x0025, 0x0FD1, 0x0FE6, 0x0F95, 0x00D1,
243     0x0FA6, 0x0FD2, 0x00E1, 0x0017, 0x0FF7, 0x0081, 0x0FB3, 0x0046, 0x0014,
244     0x0FF4, 0x0FC1, 0x0023, 0x0031, 0x0060, 0x0FA0, 0x0061, 0x00B0, 0x00C3,
245     0x0F00, 0x0121, 0x0F80, 0x0FF5, 0x0041, 0x0FF8, 0x0100, 0x0032, 0x0090,
246     0x0F81, 0x0F30, 0x0045, 0x0F61, 0x00C0, 0x0063, 0x0FD4, 0x0055, 0x0F70,
247     0x0FF3, 0x0FD0, 0x0030, 0x0FE0, 0x0020, 0x0013, 0x0FE1, 0x0FE3, 0x0FB1,
248     0x0093, 0x00B1, 0x0026, 0x0F10, 0x00F0, 0x0FA5, 0x0FB5, 0x0070, 0x0F90,
249     0x0FC0, 0x0040, 0x0033, 0x0F40, 0x0FE5, 0x00A1, 0x0034, 0x0036, 0x0F96,
250     0x0F91, 0x0043, 0x0F01, 0x0053, 0x0FC5, 0x0035, 0x0F51, 0x00A3, 0x0FC2,
251     0x0FA3, 0x0F50, 0x00F1, 0x0071, 0x0051, 0x0021, 0x0FF2, 0x0FF1, 0x0012,
252     0x0015, 0x0016, 0x00A0, 0x0FD3, 0x0065, 0x0111, 0x0FC3, 0x0091, 0x0018,
253     0x0F20, 0x0050, 0x1000, 0x0FF6, 0x0FB0, 0x0FA1, 0x0101, 0x0F53, 0x00E0,
254     0x0080, 0x0F60, 0x00D0, 0x0F41, 0x0F73, 0x0FE2, 0x0011, 0x0FF0,
255 };
256
257 static const uint16_t ac_vlc_desc8_syms[121] = {
258     0x0010, 0x0F60, 0x0093, 0x00A3, 0x0F95, 0x0018, 0x0FE2, 0x0FA6, 0x0FA1,
259     0x0022, 0x0090, 0x0042, 0x0F86, 0x0F93, 0x0036, 0x0FE6, 0x0F50, 0x0FD1,
260     0x0060, 0x0FA0, 0x0025, 0x0FD2, 0x0046, 0x0F70, 0x0031, 0x0045, 0x0F40,
261     0x0F81, 0x0FB3, 0x0111, 0x0073, 0x0023, 0x0FC1, 0x0FE4, 0x0024, 0x0081,
262     0x0FA5, 0x0032, 0x0014, 0x0FF4, 0x0FD0, 0x0030, 0x0041, 0x0070, 0x0FF5,
263     0x00E1, 0x0061, 0x0F73, 0x0063, 0x0F41, 0x00B3, 0x0FD5, 0x00F1, 0x0017,
264     0x0FF7, 0x00A0, 0x0055, 0x00C1, 0x0F30, 0x0043, 0x0FD4, 0x0065, 0x0FF8,
265     0x0FB1, 0x1000, 0x0020, 0x0FE0, 0x0040, 0x0FC0, 0x0FE1, 0x0FF3, 0x0013,
266     0x0FE3, 0x0FA3, 0x0083, 0x0F96, 0x00D1, 0x0026, 0x0033, 0x0101, 0x00B1,
267     0x0FB6, 0x0F90, 0x0080, 0x00E0, 0x0071, 0x0034, 0x0FC2, 0x0F20, 0x00A1,
268     0x0021, 0x0050, 0x00B0, 0x0F71, 0x0FC5, 0x0F91, 0x0F80, 0x0035, 0x0F63,
269     0x0053, 0x00C0, 0x0FF1, 0x0FF2, 0x0FB0, 0x0016, 0x0FB5, 0x0F51, 0x0091,
270     0x0F21, 0x0FD3, 0x0FC3, 0x00D0, 0x0F83, 0x0F61, 0x0012, 0x0015, 0x0051,
271     0x0FE5, 0x0FF6, 0x0011, 0x0FF0,
272 };
273
274 static const uint16_t ac_vlc_desc9_syms[114] = {
275     0x0010, 0x0015, 0x0042, 0x0091, 0x0FD2, 0x0036, 0x0FE2, 0x0022, 0x00C0,
276     0x0121, 0x0065, 0x0F31, 0x0018, 0x0F60, 0x0FF6, 0x0070, 0x00B0, 0x0045,
277     0x0F71, 0x0FD1, 0x0FC1, 0x0FA1, 0x0055, 0x0FB5, 0x0FB2, 0x0F93, 0x0FC5,
278     0x0023, 0x0F70, 0x0083, 0x0061, 0x0031, 0x0025, 0x0FA5, 0x0FB3, 0x0032,
279     0x0FD5, 0x0081, 0x0F61, 0x0FE4, 0x0F21, 0x0073, 0x0F73, 0x0024, 0x0041,
280     0x0030, 0x0FD0, 0x0014, 0x0FF4, 0x0040, 0x0FE0, 0x0FC0, 0x0080, 0x0043,
281     0x00E1, 0x00D1, 0x0FE3, 0x1000, 0x0F90, 0x0FE1, 0x0FB1, 0x0026, 0x0FD4,
282     0x0063, 0x0034, 0x0FA3, 0x00A3, 0x0F80, 0x0F40, 0x0017, 0x0FF7, 0x0F83,
283     0x0FF5, 0x0020, 0x0050, 0x0FB0, 0x0021, 0x0013, 0x0FF3, 0x0FF1, 0x0F51,
284     0x0093, 0x0FF8, 0x0F91, 0x0F50, 0x0071, 0x00B1, 0x0051, 0x0033, 0x0090,
285     0x00D0, 0x00F1, 0x0FC2, 0x0FE6, 0x0FA6, 0x0FB6, 0x0FA0, 0x0FF2, 0x0060,
286     0x0FD3, 0x0F30, 0x00A1, 0x0F96, 0x0053, 0x0035, 0x00A0, 0x0016, 0x00C1,
287     0x0FC3, 0x0F81, 0x0FE5, 0x0012, 0x0011, 0x0FF0,
288 };
289
290 static const uint16_t ac_vlc_descA_syms[110] = {
291     0x0010, 0x0F60, 0x0051, 0x0F90, 0x0FE2, 0x0044, 0x0FA5, 0x0053, 0x00A1,
292     0x0035, 0x0022, 0x0026, 0x0073, 0x0080, 0x0FD1, 0x0015, 0x0FE5, 0x0090,
293     0x0091, 0x0055, 0x0F73, 0x0F51, 0x00D1, 0x0023, 0x0FA1, 0x0061, 0x0FB3,
294     0x0FC5, 0x0031, 0x0FF6, 0x1000, 0x0FD5, 0x0F91, 0x0FC1, 0x0032, 0x0F41,
295     0x00B0, 0x00B1, 0x0081, 0x0FB2, 0x0F96, 0x0FD0, 0x0030, 0x0040, 0x0025,
296     0x0F81, 0x0F70, 0x0FE3, 0x0FB6, 0x00A0, 0x0018, 0x0FA3, 0x0F31, 0x0FE0,
297     0x0FC0, 0x0FB0, 0x0050, 0x0FE1, 0x0014, 0x0F80, 0x0FE6, 0x0FE4, 0x0043,
298     0x0083, 0x0024, 0x0FB1, 0x0020, 0x0FF4, 0x0041, 0x0F50, 0x0FF8, 0x0F93,
299     0x00C1, 0x0033, 0x0021, 0x0FF5, 0x0060, 0x0063, 0x0034, 0x0FD4, 0x0FC2,
300     0x0071, 0x0FC6, 0x0093, 0x0045, 0x0FA6, 0x00C0, 0x0013, 0x0FF1, 0x0FF3,
301     0x0F71, 0x00E1, 0x0F40, 0x0FC3, 0x0FB5, 0x0070, 0x0042, 0x0F61, 0x0F83,
302     0x0FF7, 0x0017, 0x0FD2, 0x0036, 0x0FD3, 0x0016, 0x0FA0, 0x0FF2, 0x0012,
303     0x0011, 0x0FF0,
304 };
305
306 static const uint16_t ac_vlc_descB_syms[101] = {
307     0x0010, 0x0012, 0x0023, 0x0091, 0x0061, 0x0FA1, 0x0FD1, 0x0015, 0x0030,
308     0x0FD0, 0x0FB3, 0x0F71, 0x0F60, 0x0FA6, 0x0063, 0x0032, 0x0FC1, 0x0031,
309     0x0040, 0x0080, 0x0FD5, 0x0FE3, 0x0050, 0x0FC0, 0x0FB0, 0x0FF6, 0x0F81,
310     0x0FB6, 0x0F70, 0x0F91, 0x0025, 0x1000, 0x0FE1, 0x00A1, 0x0FA3, 0x00F1,
311     0x0F61, 0x0F51, 0x0081, 0x00C1, 0x0018, 0x0060, 0x0041, 0x0073, 0x0FE4,
312     0x0F80, 0x0FE0, 0x0020, 0x0021, 0x0FC5, 0x0055, 0x0042, 0x0026, 0x0070,
313     0x0024, 0x0043, 0x00A0, 0x0033, 0x0FF8, 0x0071, 0x0014, 0x0FF4, 0x0FB1,
314     0x0FB5, 0x0034, 0x0F41, 0x0036, 0x0F90, 0x0FC6, 0x0090, 0x0FF5, 0x0FA0,
315     0x0FD4, 0x0F83, 0x0083, 0x0051, 0x00B1, 0x0FD3, 0x0FF1, 0x0013, 0x0FF3,
316     0x0FF2, 0x0035, 0x0045, 0x0FC2, 0x00D1, 0x0FE2, 0x0016, 0x0FC3, 0x0FD2,
317     0x00B0, 0x0FE6, 0x0F93, 0x0F50, 0x0FF7, 0x0017, 0x0053, 0x0022, 0x0FE5,
318     0x0011, 0x0FF0,
319 };
320
321 static const uint16_t ac_vlc_descC_syms[96] = {
322     0x0010, 0x0012, 0x0FC3, 0x00B1, 0x00A1, 0x0022, 0x0FE5, 0x0F93, 0x0090,
323     0x0061, 0x0055, 0x0042, 0x0FE6, 0x0040, 0x0030, 0x0FD1, 0x0050, 0x0015,
324     0x0FD0, 0x0FC0, 0x0023, 0x0FC1, 0x0017, 0x00C1, 0x0032, 0x0FB5, 0x0FF7,
325     0x00A0, 0x0060, 0x0031, 0x0041, 0x0FE3, 0x0FD5, 0x0091, 0x0053, 0x0FF8,
326     0x0FA0, 0x0FF6, 0x0FB0, 0x0070, 0x0080, 0x1000, 0x0FE1, 0x0FE0, 0x0020,
327     0x0021, 0x0063, 0x0033, 0x0FA1, 0x0F60, 0x0F61, 0x0043, 0x0073, 0x0FC6,
328     0x0FE4, 0x00E1, 0x0034, 0x0018, 0x0F91, 0x0F80, 0x0024, 0x0026, 0x0014,
329     0x0FF4, 0x0FB1, 0x0FB6, 0x0071, 0x0FA6, 0x0FD4, 0x0035, 0x0F70, 0x0036,
330     0x0051, 0x0FF5, 0x0FF1, 0x0FD3, 0x0045, 0x0F81, 0x0F90, 0x0083, 0x0081,
331     0x0FA3, 0x0FE2, 0x0FC5, 0x0F51, 0x0F71, 0x0FD2, 0x0FB3, 0x0FC2, 0x0025,
332     0x0016, 0x0013, 0x0FF3, 0x0FF2, 0x0011, 0x0FF0,
333 };
334
335 static const uint8_t ac_vlc_desc0_bits[172] = {
336      5,  5,  4,  4,  6,  9,  9, 12, 12, 11, 11, 11, 11, 12, 12, 10,  7,  6,
337      6,  6,  6, 11, 12, 12, 11, 12, 12,  9,  8,  7,  7,  9,  9, 11, 11, 10,
338      9,  7,  7, 12, 12, 11, 10,  9, 10, 11, 11,  9,  7,  6,  9, 11, 12, 12,
339     10, 11, 11, 11, 11, 10, 11, 12, 12,  8,  9,  9,  4,  4,  9, 12, 12, 11,
340     10,  8,  7,  7,  8, 11, 12, 12, 12, 12, 11, 10, 12, 12, 12, 12,  6,  9,
341      9,  8, 10, 11, 11, 11, 12, 12, 10, 10, 11, 11, 10, 11, 11,  5,  5,  3,
342      3,  6,  8,  8,  7, 12, 12, 12, 12, 10, 10, 12, 12, 12, 12,  8,  8,  9,
343     11, 11, 10,  7,  7,  9,  9, 11, 12, 12, 11, 12, 12, 11, 11, 10,  7,  8,
344     11, 12, 12, 11, 12, 12,  9,  8, 11, 11, 12, 12, 11, 10, 10,  6,  9,  9,
345     10, 11, 12, 12,  9,  9, 11, 11, 10,  8,
346 };
347
348 static const uint8_t ac_vlc_desc1_bits[169] = {
349      8, 11, 11, 10, 10, 11, 12, 12,  7,  8, 11, 11, 10,  9, 11, 11, 10, 12,
350     12, 12, 12, 10,  8,  5,  5,  7,  8,  8,  6, 10, 10, 12, 12, 11, 12, 12,
351     11,  8,  7,  6,  7, 11, 11, 10,  9, 12, 12, 11, 10,  9,  6,  4,  4,  6,
352      9, 12, 12, 11, 10, 11, 11, 10, 10, 10, 10, 11, 12, 12, 10, 11, 11, 10,
353     11, 11, 12, 12, 11, 10,  8,  8,  7,  7,  9, 11, 12, 12, 10,  8,  7, 12,
354     12, 12, 12, 11, 11,  9,  9,  9,  6,  6,  8,  9, 11, 12, 12, 11, 12, 12,
355      9,  9, 11, 11, 11, 11,  9,  4,  4,  6,  6,  6,  7, 12, 12, 11, 12, 12,
356     11,  9,  9, 12, 12, 12, 12, 10,  5,  8, 11, 12, 12, 10, 10, 11, 12, 12,
357      8,  8,  7,  7,  5,  9, 11, 11, 10,  8,  7,  7, 10, 12, 12, 12, 12,  9,
358     10, 10, 11, 11, 10,  3,  3,
359 };
360
361 static const uint8_t ac_vlc_desc2_bits[165] = {
362      8, 12, 12, 11, 12, 12, 11, 10, 10,  9, 11, 11, 10,  8,  6,  5,  6,  6,
363      5,  6, 11, 11, 10, 10, 12, 12, 11,  9,  9, 11, 12, 12, 10,  9, 11, 11,
364     12, 12, 11, 11, 11, 11, 11,  7,  7,  6,  8,  9, 10, 11, 12, 12,  7,  7,
365     10, 10, 11, 11, 11, 11,  8,  8,  9, 12, 12, 12, 12, 11, 12, 12,  7,  6,
366      6,  8, 10, 11, 12, 12,  9, 10, 12, 12, 11, 11, 12, 12, 10,  9, 12, 12,
367     11, 10,  8,  8,  7, 12, 12, 12, 12, 10, 10, 11, 12, 12, 10, 11, 11, 11,
368     11, 10,  8,  9, 11, 11, 11, 12, 12,  4,  4,  6,  6,  7,  8, 10, 10,  9,
369      6,  4,  4,  5,  7,  9, 12, 12, 11, 12, 12, 11,  9,  9,  6,  5, 10, 10,
370     11, 11, 10,  8,  9, 12, 12, 11, 11, 12, 12,  8,  8,  8,  9,  9, 10, 10,
371      9,  3,  3,
372 };
373
374 static const uint8_t ac_vlc_desc3_bits[162] = {
375     10, 10,  9,  8, 10, 10,  9,  9, 11, 12, 12, 10,  6,  6,  8,  9, 11, 11,
376     11, 11,  8,  8,  7, 10, 11, 12, 12, 11, 11, 10,  8,  7,  8, 12, 12, 11,
377     12, 12, 12, 12, 11, 11, 10,  5,  5,  7,  9,  9, 11, 11, 12, 12, 11,  9,
378      6,  6,  9,  9, 10, 12, 12, 11,  9,  8, 12, 12, 11, 10,  9,  7, 10, 10,
379     10, 12, 12, 11,  8,  7, 12, 12, 11, 12, 12, 11, 10, 12, 12, 11, 11, 12,
380     12, 10, 11, 12, 12, 10,  7,  7,  6,  7, 10, 12, 12, 12, 12,  9,  8,  6,
381      6,  6, 10, 10, 11, 11, 12, 12, 11,  8,  7,  8,  9, 11, 11, 10,  8, 11,
382     11, 10,  9,  4,  4,  4,  4,  6,  8, 12, 12, 11, 11, 12, 12, 11, 11, 10,
383      9, 10, 11, 12, 12,  8,  5,  5,  7, 10, 12, 12, 11,  9,  8,  6,  3,  3,
384 };
385
386 static const uint8_t ac_vlc_desc4_bits[131] = {
387      2,  6,  6,  7,  7,  8,  8,  7, 10, 12, 12, 11, 10, 10,  8,  9, 10, 10,
388     11, 12, 12, 10, 10, 10,  7,  7, 11, 12, 12, 11, 12, 12,  9,  8, 10, 11,
389     11,  9, 10, 10,  9,  6,  4,  6,  6, 11, 11, 12, 12, 11,  9,  9, 11, 11,
390     11, 12, 12,  7,  8,  8,  7,  4,  4,  5,  5,  4,  6, 10, 10, 11, 11, 10,
391      8, 12, 12, 11, 11, 12, 12, 12, 12, 11, 10,  8,  6,  8,  9,  9,  9, 11,
392     11, 12, 12, 11,  8,  6,  9,  9,  9, 11, 12, 12, 12, 12, 11,  7,  9, 10,
393     12, 12, 11, 10, 12, 12, 11, 10, 12, 12, 11,  7,  7,  8, 11, 12, 12, 11,
394     12, 12, 10, 10,  3,
395 };
396
397 static const uint8_t ac_vlc_desc5_bits[132] = {
398      2, 10, 10, 10, 10,  9, 10, 11, 11,  8, 11, 12, 12, 10,  9,  7, 11, 12,
399     12, 10, 11, 12, 12, 11, 11,  9,  9,  7,  8,  8,  6,  6, 12, 12, 11, 11,
400     11, 10, 10,  8,  7, 12, 12, 11, 10, 10, 10,  9, 11, 12, 12, 10,  7,  6,
401      4,  4,  7, 11, 12, 12, 11, 12, 12,  9,  8,  7,  7,  5,  5,  6,  6,  4,
402      8, 10, 11, 12, 12,  9, 10, 12, 12, 11, 10, 10,  8,  6,  6,  9, 11, 11,
403     10,  8, 12, 12, 11, 11, 12, 12, 10, 10, 11, 11, 11, 11,  9,  4,  6,  9,
404     11, 12, 12, 11, 11,  8,  9,  9,  8,  9, 11, 12, 12, 10,  8,  7,  9, 12,
405     12, 11, 10,  8,  7,  3,
406 };
407
408 static const uint8_t ac_vlc_desc6_bits[130] = {
409      2,  7, 10, 10, 12, 12, 11, 10,  8,  7, 10, 11, 11,  9,  8,  7, 11, 12,
410     12, 10,  9,  8,  8, 11, 11, 10, 12, 12, 11, 12, 12, 11,  7,  8, 10, 10,
411     10, 12, 12, 11,  7,  7,  9, 10, 10,  8,  6,  6,  4, 10, 12, 12, 11, 10,
412     10,  9, 11, 12, 12, 10,  7,  6,  5,  4,  5, 11, 12, 12, 10, 11, 12, 12,
413     11, 11,  9,  9,  9, 12, 12, 12, 12, 10, 10, 11, 12, 12,  9,  6,  6,  6,
414      6,  7,  9, 11, 11, 11, 11,  8,  4,  4,  6,  8, 10, 12, 12, 12, 12, 10,
415     12, 12, 11,  8,  8,  7, 11, 12, 12, 11, 11,  9, 10, 11, 11,  9,  7, 10,
416     10,  9,  8,  3,
417 };
418
419 static const uint8_t ac_vlc_desc7_bits[125] = {
420      2,  8,  9, 10, 10, 12, 12, 11, 10, 10, 11, 12, 12,  8,  7,  9, 11, 11,
421     10, 10, 11, 12, 12, 11, 11, 10,  7,  7,  8,  8,  7,  7,  7,  9, 10, 11,
422     12, 12,  8,  7,  8, 11, 11, 10,  9, 10, 10, 10, 10, 10, 12, 12, 11,  9,
423      6,  5,  5,  4,  4,  6,  6,  8,  9, 12, 12, 11, 12, 12, 12, 12,  8,  8,
424      6,  6, 10, 10,  9, 12, 12, 11, 10, 10, 11, 12, 12, 10, 10, 10, 11, 12,
425     12, 10, 11, 11,  9,  6,  6,  4,  6,  7,  8, 10, 10, 12, 12, 11, 12, 12,
426     11,  7,  8,  8,  7, 10, 11, 12, 12,  9, 10, 11, 12, 12,  9,  4,  3,
427 };
428
429 static const uint8_t ac_vlc_desc8_bits[121] = {
430      2,  9, 10, 12, 12, 11,  8,  9,  9,  8,  9, 11, 12, 12, 10,  9,  9,  7,
431      7,  7,  8, 10, 10,  9,  7, 10, 10, 10, 11, 12, 12,  8,  8, 10, 10, 11,
432     11, 10,  7,  7,  5,  5,  8,  8,  7, 10, 10, 10, 12, 12, 11, 10, 11, 12,
433     12, 10, 11, 11, 11, 11, 12, 12, 11,  9,  8,  4,  4,  6,  6,  6,  6,  6,
434      8, 12, 12, 11, 11, 11, 10, 12, 12, 11,  8,  9, 11, 11, 12, 12, 12, 12,
435      6,  7, 10, 10, 10, 10,  9, 10, 12, 12, 11,  4,  6,  7,  8, 12, 12, 12,
436     12, 10, 11, 12, 12, 10,  6,  7,  9,  9,  8,  4,  3,
437 };
438
439 static const uint8_t ac_vlc_desc9_bits[114] = {
440      2,  6, 11, 11, 10,  9,  8,  8, 11, 12, 12, 11, 11,  9,  7,  8, 10, 10,
441      9,  7,  8,  9, 11, 11, 12, 12, 11,  8,  9, 10, 10,  7,  8, 11, 11, 10,
442      9, 11, 11, 10, 12, 12, 11, 10,  8,  5,  5,  7,  7,  6,  4,  6,  9, 11,
443     11, 10,  8,  8,  8,  6,  9, 11, 12, 12, 12, 12, 11,  9, 11, 12, 12, 10,
444      7,  4,  7,  7,  6,  6,  6,  4, 12, 12, 11, 10, 10, 11, 11,  9, 10, 10,
445     11, 12, 12, 10, 10, 10,  8,  6,  8, 10, 12, 12, 12, 12, 10, 10,  8, 11,
446     11, 10,  9,  6,  4,  3,
447 };
448
449 static const uint8_t ac_vlc_descA_bits[110] = {
450      2,  9,  9,  8,  8, 12, 12, 11, 10,  9,  8, 10, 10,  9,  7,  6,  8,  9,
451     11, 11, 12, 12, 11,  8,  9, 10, 11, 11,  7,  7,  8,  9,  9,  8, 10, 11,
452     11, 10, 11, 12, 12,  5,  5,  6,  8,  9,  9,  8,  9, 10, 11, 12, 12,  4,
453      6,  7,  7,  6,  7,  9, 10, 10, 11, 11, 10,  9,  4,  7,  8, 11, 11, 10,
454     10, 10,  6,  7,  8, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11,  6,  4,  6,
455     11, 12, 12, 11, 11,  9, 12, 12, 11, 12, 12, 11, 10, 10,  8,  8,  6,  6,
456      4,  3,
457 };
458
459 static const uint8_t ac_vlc_descB_bits[101] = {
460      2,  5,  8, 10, 10,  9,  7,  6,  5,  5, 11, 11, 10, 11, 11, 10,  8,  7,
461      6,  9,  9,  8,  7,  6,  7,  7,  9,  9,  9,  9,  8,  8,  6, 10, 11, 12,
462     12, 11, 11, 11, 11,  8,  8, 10, 10,  9,  4,  4,  6, 11, 12, 12, 10,  9,
463     10, 11, 11, 10, 11, 11,  7,  7,  9, 11, 12, 12, 10,  9, 10, 10,  7,  8,
464     12, 12, 11, 10, 10, 10,  4,  6,  6,  6, 10, 11, 12, 12,  9,  8, 11, 11,
465     11, 11, 10, 12, 12, 12, 12,  9,  9,  4,  3,
466 };
467
468 static const uint8_t ac_vlc_descC_bits[96] = {
469      2,  5, 10, 10,  9,  8,  8, 10, 10, 10, 12, 12, 11,  6,  5,  7,  7,  6,
470      5,  6,  8,  8, 11, 11, 10, 11, 11, 10,  8,  7,  8,  8,  9, 10, 11, 11,
471      8,  7,  7,  9,  9,  8,  6,  4,  4,  6, 10, 10,  9, 11, 11, 11, 11,  9,
472     10, 12, 12, 11,  9,  9, 10, 10,  7,  7,  9, 10, 11, 12, 12, 10, 10, 10,
473     10,  7,  4, 10, 11, 11,  9, 11, 11, 10,  9, 11, 12, 12, 11, 12, 12,  9,
474      8,  6,  6,  6,  4,  3,
475 };
476
477 static const int tscc2_ac_vlc_sizes[NUM_VLC_SETS] = {
478     172, 169, 165, 162, 131, 132, 130, 125, 121, 114, 110, 101, 96
479 };
480
481 static const uint16_t * const tscc2_ac_vlc_syms[NUM_VLC_SETS] = {
482     ac_vlc_desc0_syms, ac_vlc_desc1_syms, ac_vlc_desc2_syms, ac_vlc_desc3_syms,
483     ac_vlc_desc4_syms, ac_vlc_desc5_syms, ac_vlc_desc6_syms, ac_vlc_desc7_syms,
484     ac_vlc_desc8_syms, ac_vlc_desc9_syms, ac_vlc_descA_syms, ac_vlc_descB_syms,
485     ac_vlc_descC_syms,
486 };
487
488 static const uint8_t * const tscc2_ac_vlc_bits[NUM_VLC_SETS] = {
489     ac_vlc_desc0_bits, ac_vlc_desc1_bits, ac_vlc_desc2_bits, ac_vlc_desc3_bits,
490     ac_vlc_desc4_bits, ac_vlc_desc5_bits, ac_vlc_desc6_bits, ac_vlc_desc7_bits,
491     ac_vlc_desc8_bits, ac_vlc_desc9_bits, ac_vlc_descA_bits, ac_vlc_descB_bits,
492     ac_vlc_descC_bits,
493 };
494
495 #endif /* AVCODEC_TSCC2DATA_H */