summaryrefslogtreecommitdiff
path: root/libavcodec/tscc2data.h (plain)
blob: 7cd6f5216ecfe3b57adf0799291975286f475dbc
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
29static 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
39static 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
48static 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
57static 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
66static 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
71static 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
100static 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
116static 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
141static 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
166static 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
191static 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
216static 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
241static 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
266static 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
290static 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
314static 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
338static 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
362static 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
386static 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
410static 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
430static 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
450static 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
470static 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
490static 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
510static 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
530static 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
550static 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
570static 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
590static 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
609static 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
628static 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
647static 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
666static 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
685static 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
704static 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
722static 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
740static 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
758static 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
775static 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
792static 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
809static 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
825static 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
841static 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
857static 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
872static 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
887static 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
902static 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
906static const uint16_t *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
913static const uint16_t *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
921static const uint8_t *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 */
929