CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
hrydgard

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: hrydgard/ppsspp
Path: blob/master/ext/at3_standalone/atrac3plus_data.h
Views: 1401
1
/*
2
* ATRAC3+ compatible decoder
3
*
4
* Copyright (c) 2010-2013 Maxim Poliakovski
5
*
6
* This file is part of FFmpeg.
7
*
8
* FFmpeg is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License as published by the Free Software Foundation; either
11
* version 2.1 of the License, or (at your option) any later version.
12
*
13
* FFmpeg is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* Lesser General Public License for more details.
17
*
18
* You should have received a copy of the GNU Lesser General Public
19
* License along with FFmpeg; if not, write to the Free Software
20
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*/
22
23
#ifndef AVCODEC_ATRAC3PLUS_DATA_H
24
#define AVCODEC_ATRAC3PLUS_DATA_H
25
26
#include <stddef.h>
27
#include <stdint.h>
28
29
/** VLC tables for wordlen */
30
static const uint8_t atrac3p_wl_huff_code1[3] = { 0, 2, 3 };
31
32
static const uint8_t atrac3p_wl_huff_bits1[3] = { 1, 2, 2 };
33
34
static const uint8_t atrac3p_wl_huff_xlat1[3] = { 0, 1, 7 };
35
36
static const uint8_t atrac3p_wl_huff_code2[5] = { 0, 4, 5, 6, 7 };
37
38
static const uint8_t atrac3p_wl_huff_bits2[5] = { 1, 3, 3, 3, 3 };
39
40
static const uint8_t atrac3p_wl_huff_xlat2[5] = { 0, 1, 2, 6, 7 };
41
42
static const uint8_t atrac3p_wl_huff_code3[8] = {
43
0, 4, 0xC, 0x1E, 0x1F, 0xD, 0xE, 5
44
};
45
46
static const uint8_t atrac3p_wl_huff_bits3[8] = { 1, 3, 4, 5, 5, 4, 4, 3 };
47
48
static const uint8_t atrac3p_wl_huff_code4[8] = {
49
0, 4, 0xC, 0xD, 0x1E, 0x1F, 0xE, 5
50
};
51
52
static const uint8_t atrac3p_wl_huff_bits4[8] = { 1, 3, 4, 4, 5, 5, 4, 3 };
53
54
/** VLC tables for scale factor indexes */
55
static const uint16_t atrac3p_sf_huff_code1[64] = {
56
0, 2, 3, 4, 5, 0xC, 0xD, 0xE0,
57
0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0x1CE, 0x1CF,
58
0x1D0, 0x1D1, 0x1D2, 0x1D3, 0x1D4, 0x1D5, 0x1D6, 0x1D7,
59
0x1D8, 0x1D9, 0x1DA, 0x1DB, 0x1DC, 0x1DD, 0x1DE, 0x1DF,
60
0x1E0, 0x1E1, 0x1E2, 0x1E3, 0x1E4, 0x1E5, 0x1E6, 0x1E7,
61
0x1E8, 0x1E9, 0x1EA, 0x1EB, 0x1EC, 0x1ED, 0x1EE, 0x1EF,
62
0x1F0, 0x1F1, 0x1F2, 0x1F3, 0x1F4, 0x1F5, 0x1F6, 0x1F7,
63
0x1F8, 0x1F9, 0x1FA, 0x1FB, 0x1FC, 0x1FD, 0x1FE, 0x1FF
64
};
65
66
static const uint8_t atrac3p_sf_huff_bits1[64] = {
67
2, 3, 3, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 8, 9, 9,
68
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
69
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
70
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
71
};
72
73
static const uint8_t atrac3p_sf_huff_xlat1[64] = {
74
0, 1, 61, 62, 63, 2, 60, 3, 4, 5, 6, 57, 58, 59, 7, 8,
75
9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
76
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
77
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56
78
};
79
80
static const uint8_t atrac3p_sf_huff_xlat2[64] = {
81
0, 1, 2, 62, 63, 3, 61, 4, 5, 6, 57, 58, 59, 60, 7, 8,
82
9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
83
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
84
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56
85
};
86
87
static const uint16_t atrac3p_sf_huff_code2[64] = {
88
0, 4, 0x18, 0x19, 0x70, 0x1CA, 0x1CB, 0x1CC,
89
0x1CD, 0x1CE, 0x1CF, 0x1D0, 0x1D1, 0x1D2, 0x1D3, 0x1D4,
90
0x1D5, 0x1D6, 0x1D7, 0x1D8, 0x1D9, 0x1DA, 0x1DB, 0x1DC,
91
0x1DD, 0x1DE, 0x1DF, 0x1E0, 0x1E1, 0x1E2, 0x1E3, 0x1E4,
92
0x1E5, 0x1E6, 0x1E7, 0x1E8, 0x1E9, 0x1EA, 0x1EB, 0x1EC,
93
0x1ED, 0x1EE, 0x1EF, 0x1F0, 0x1F1, 0x1F2, 0x1F3, 0x1F4,
94
0x1F5, 0x1F6, 0x1F7, 0x1F8, 0x1F9, 0x1FA, 0x1FB, 0x1FC,
95
0x1FD, 0x1FE, 0x1FF, 0xE4, 0x71, 0x1A, 0x1B, 5
96
};
97
98
static const uint8_t atrac3p_sf_huff_bits2[64] = {
99
1, 3, 5, 5, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
100
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
101
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
102
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 7, 5, 5, 3
103
};
104
105
static const uint16_t atrac3p_sf_huff_code3[64] = {
106
0, 2, 3, 0x18, 0x19, 0x70, 0x1CC, 0x1CD,
107
0x1CE, 0x1CF, 0x1D0, 0x1D1, 0x1D2, 0x1D3, 0x1D4, 0x1D5,
108
0x1D6, 0x1D7, 0x1D8, 0x1D9, 0x1DA, 0x1DB, 0x1DC, 0x1DD,
109
0x1DE, 0x1DF, 0x1E0, 0x1E1, 0x1E2, 0x1E3, 0x1E4, 0x1E5,
110
0x1E6, 0x1E7, 0x1E8, 0x1E9, 0x1EA, 0x1EB, 0x1EC, 0x1ED,
111
0x1EE, 0x1EF, 0x1F0, 0x1F1, 0x1F2, 0x1F3, 0x1F4, 0x1F5,
112
0x1F6, 0x1F7, 0x1F8, 0x1F9, 0x1FA, 0x1FB, 0x1FC, 0x1FD,
113
0x1FE, 0x1FF, 0x71, 0x72, 0x1A, 0x1B, 4, 5
114
};
115
116
static const uint8_t atrac3p_sf_huff_bits3[64] = {
117
2, 3, 3, 5, 5, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
118
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
119
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
120
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 5, 5, 3, 3
121
};
122
123
static const uint16_t atrac3p_sf_huff_code4[16] = {
124
0, 2, 3, 4, 5, 0xC, 0xD, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0, 0x3D, 0x3E, 0x3F
125
};
126
127
static const uint8_t atrac3p_sf_huff_bits4[16] = {
128
2, 3, 3, 3, 3, 4, 4, 6, 6, 6, 6, 6, 0, 6, 6, 6
129
};
130
131
static const uint8_t atrac3p_sf_huff_xlat4[16] = {
132
0, 1, 13, 14, 15, 2, 12, 3, 4, 5, 6, 7, 8, 9, 10, 11
133
};
134
135
static const uint8_t atrac3p_sf_huff_xlat5[16] = {
136
0, 1, 2, 14, 15, 3, 13, 4, 5, 6, 7, 9, 8, 10, 11, 12
137
};
138
139
static const uint16_t atrac3p_sf_huff_code5[16] = {
140
0, 4, 0xC, 0x1C, 0x78, 0x79, 0x7A, 0x7B,
141
0, 0x7C, 0x7D, 0x7E, 0x7F, 0x1D, 0xD, 5
142
};
143
144
static const uint8_t atrac3p_sf_huff_bits5[16] = {
145
1, 3, 4, 5, 7, 7, 7, 7, 0, 7, 7, 7, 7, 5, 4, 3
146
};
147
148
static const uint16_t atrac3p_sf_huff_code6[16] = {
149
0, 2, 3, 0xC, 0x1C, 0x3C, 0x7C, 0x7D, 0, 0x7E, 0x7F, 0x3D, 0x1D, 0xD, 4, 5
150
};
151
152
static const uint8_t atrac3p_sf_huff_bits6[16] = {
153
2, 3, 3, 4, 5, 6, 7, 7, 0, 7, 7, 6, 5, 4, 3, 3
154
};
155
156
/** VLC tables for code table indexes */
157
static const uint8_t atrac3p_ct_huff_code1[4] = { 0, 2, 6, 7 };
158
159
static const uint8_t atrac3p_ct_huff_bits1[4] = { 1, 2, 3, 3 };
160
161
static const uint8_t atrac3p_ct_huff_code2[8] = { 0, 2, 3, 4, 5, 6, 0xE, 0xF };
162
163
static const uint8_t atrac3p_ct_huff_bits2[8] = { 2, 3, 3, 3, 3, 3, 4, 4 };
164
165
static const uint8_t atrac3p_ct_huff_xlat1[8] = { 0, 1, 2, 3, 6, 7, 4, 5 };
166
167
static const uint8_t atrac3p_ct_huff_code3[8] = {
168
0, 4, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF
169
};
170
171
static const uint8_t atrac3p_ct_huff_bits3[8] = { 1, 3, 4, 4, 4, 4, 4, 4 };
172
173
/* weights for quantized word lengths */
174
static const int8_t atrac3p_wl_weights[6][32] = {
175
{ 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0,
176
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
177
{ 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0,
178
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
179
{ 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 1, 1,
180
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 },
181
{ 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0,
182
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
183
{ 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0,
184
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
185
{ 6, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 2, 2, 1, 1,
186
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
187
};
188
189
/* weights for quantized scale factors
190
* sf_weights[i] = i / (tab_idx + 1)
191
* where tab_idx = [1,2] */
192
static const int8_t atrac3p_sf_weights[2][32] = {
193
{ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
194
8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15 },
195
{ 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5,
196
5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10 }
197
};
198
199
/** Ungroup table for word length segments.
200
* Numbers in this table tell which coeff belongs to which segment. */
201
static const uint8_t atrac3p_qu_num_to_seg[32] = {
202
0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5,
203
5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9
204
};
205
206
/** Map quant unit number to subband number */
207
static const uint8_t atrac3p_qu_to_subband[32] = {
208
0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
209
3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
210
};
211
212
/** Map subband number to number of power compensation groups */
213
static const int atrac3p_subband_to_num_powgrps[16] = {
214
1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5
215
};
216
217
/** 3D base shape tables. The values are grouped together as follows:
218
* [num_start_values = 8][num_shape_tables = 16][num_seg_coeffs = 9]
219
* For each of the 8 start values there are 16 different shapes each
220
* 9 coefficients long. */
221
static const int8_t atrac3p_wl_shapes[8][16][9] = {
222
{ { 0, 0, 0, 0, 0, 0, 0, -2, -1 },
223
{ 0, 0, 0, 0, 0, 0, 0, -5, -1 },
224
{ 0, 0, 0, -7, 0, 0, 0, 0, 0 },
225
{ 0, 0, 0, 0, 0, -7, 0, 0, 0 },
226
{ 0, 0, 0, 0, 0, 0, -5, 0, 0 },
227
{ 0, 0, 0, 0, -5, 0, 0, 0, 0 },
228
{ -7, -7, 0, 0, 0, 0, 0, 0, 0 },
229
{ 0, -7, 0, 0, 0, 0, 0, 0, 0 },
230
{ -2, -2, -5, 0, 0, 0, 0, 0, 0 },
231
{ 0, 0, 0, -2, -5, 0, 0, 0, 0 },
232
{ 0, 0, 0, 0, 0, -2, -5, 0, 0 },
233
{ 0, 0, 0, -5, 0, 0, 0, 0, 0 },
234
{ 0, -2, -7, -2, 0, 0, 0, 0, 0 },
235
{ 0, 0, 0, 0, -2, -5, 0, 0, 0 },
236
{ 0, 0, 0, -5, -5, 0, 0, 0, 0 },
237
{ 0, 0, 0, -5, -2, 0, 0, 0, 0 } },
238
{ { -1, -5, -3, -2, -1, -1, 0, 0, 0 },
239
{ -2, -5, -3, -3, -2, -1, -1, 0, 0 },
240
{ 0, -1, -1, -1, 0, 0, 0, 0, 0 },
241
{ -1, -3, 0, 0, 0, 0, 0, 0, 0 },
242
{ -1, -2, 0, 0, 0, 0, 0, 0, 0 },
243
{ -1, -3, -1, 0, 0, 0, 0, 1, 1 },
244
{ -1, -5, -3, -3, -2, -1, 0, 0, 0 },
245
{ -1, -1, -4, -2, -2, -1, -1, 0, 0 },
246
{ -1, -1, -3, -2, -3, -1, -1, -1, 0 },
247
{ -1, -4, -2, -3, -1, 0, 0, 0, 0 },
248
{ 0, -1, -2, -2, -1, -1, 0, 0, 0 },
249
{ 0, -2, -1, 0, 0, 0, 0, 0, 0 },
250
{ -1, -1, 0, 0, 0, 0, 0, 0, 0 },
251
{ -1, -1, -3, -2, -2, -1, -1, -1, 0 },
252
{ 0, 0, 0, 0, 0, 0, 0, 0, 0 },
253
{ 0, -1, -3, -2, -2, -1, -1, -1, 0 }, },
254
{ { -1, -2, 0, 1, 1, 1, 1, 1, 1 },
255
{ 0, -1, 1, 1, 1, 1, 1, 1, 1 },
256
{ 0, -2, 1, 1, 1, 1, 1, 1, 1 },
257
{ 0, -2, 0, 1, 1, 1, 1, 1, 1 },
258
{ -1, -1, 0, 1, 1, 1, 1, 1, 1 },
259
{ 0, 0, -1, 0, 1, 1, 1, 1, 1 },
260
{ -1, -1, 1, 1, 1, 1, 1, 1, 1 },
261
{ 0, 0, -1, 1, 1, 1, 1, 1, 1 },
262
{ 0, -1, 0, 1, 1, 1, 1, 1, 1 },
263
{ -1, -1, -1, 1, 1, 1, 1, 1, 1 },
264
{ 0, 0, 0, 0, 1, 1, 1, 1, 1 },
265
{ 0, 0, 0, 1, 1, 1, 1, 1, 1 },
266
{ 0, -1, -1, 1, 1, 1, 1, 1, 1 },
267
{ 0, 1, 0, 1, 1, 1, 1, 1, 1 },
268
{ 0, -3, -2, 1, 1, 1, 1, 2, 2 },
269
{ -3, -5, -3, 2, 2, 2, 2, 2, 2 }, },
270
{ { -1, -2, 0, 2, 2, 2, 2, 2, 2 },
271
{ -1, -2, 0, 1, 2, 2, 2, 2, 2 },
272
{ 0, -2, 0, 2, 2, 2, 2, 2, 2 },
273
{ -1, 0, 1, 2, 2, 2, 2, 2, 2 },
274
{ 0, 0, 1, 2, 2, 2, 2, 2, 2 },
275
{ 0, -2, 0, 1, 2, 2, 2, 2, 2 },
276
{ 0, -1, 1, 2, 2, 2, 2, 2, 2 },
277
{ -1, -1, 0, 2, 2, 2, 2, 2, 2 },
278
{ -1, -1, 0, 1, 2, 2, 2, 2, 2 },
279
{ -1, -2, -1, 2, 2, 2, 2, 2, 2 },
280
{ 0, -1, 0, 2, 2, 2, 2, 2, 2 },
281
{ 1, 1, 0, 1, 2, 2, 2, 2, 2 },
282
{ 0, 1, 2, 2, 2, 2, 2, 2, 2 },
283
{ 1, 0, 0, 1, 2, 2, 2, 2, 2 },
284
{ 0, 0, 0, 1, 2, 2, 2, 2, 2 },
285
{ -1, -1, -1, 1, 2, 2, 2, 2, 2 }, },
286
{ { 0, 1, 2, 3, 3, 3, 3, 3, 3 },
287
{ 1, 1, 2, 3, 3, 3, 3, 3, 3 },
288
{ -1, 0, 1, 2, 3, 3, 3, 3, 3 },
289
{ 0, 0, 2, 3, 3, 3, 3, 3, 3 },
290
{ -1, 0, 1, 3, 3, 3, 3, 3, 3 },
291
{ 0, 0, 1, 3, 3, 3, 3, 3, 3 },
292
{ 1, 2, 3, 3, 3, 3, 3, 3, 3 },
293
{ 1, 2, 2, 3, 3, 3, 3, 3, 3 },
294
{ 0, 1, 1, 3, 3, 3, 3, 3, 3 },
295
{ 0, 0, 1, 2, 3, 3, 3, 3, 3 },
296
{ -1, 1, 2, 3, 3, 3, 3, 3, 3 },
297
{ -1, 0, 2, 3, 3, 3, 3, 3, 3 },
298
{ 2, 2, 3, 3, 3, 3, 3, 3, 3 },
299
{ 1, 1, 3, 3, 3, 3, 3, 3, 3 },
300
{ 0, 2, 3, 3, 3, 3, 3, 3, 3 },
301
{ 0, 1, 1, 2, 3, 3, 3, 3, 3 }, },
302
{ { 0, 1, 2, 3, 4, 4, 4, 4, 4 },
303
{ 1, 2, 3, 4, 4, 4, 4, 4, 4 },
304
{ 0, 0, 2, 3, 4, 4, 4, 4, 4 },
305
{ 1, 1, 2, 4, 4, 4, 4, 4, 4 },
306
{ 0, 1, 2, 4, 4, 4, 4, 4, 4 },
307
{ -1, 0, 1, 3, 4, 4, 4, 4, 4 },
308
{ 0, 0, 1, 3, 4, 4, 4, 4, 4 },
309
{ 1, 1, 2, 3, 4, 4, 4, 4, 4 },
310
{ 0, 1, 1, 3, 4, 4, 4, 4, 4 },
311
{ 2, 2, 3, 4, 4, 4, 4, 4, 4 },
312
{ 1, 1, 3, 4, 4, 4, 4, 4, 4 },
313
{ 1, 2, 2, 4, 4, 4, 4, 4, 4 },
314
{ -1, 0, 2, 3, 4, 4, 4, 4, 4 },
315
{ 0, 1, 3, 4, 4, 4, 4, 4, 4 },
316
{ 1, 2, 2, 3, 4, 4, 4, 4, 4 },
317
{ 0, 2, 3, 4, 4, 4, 4, 4, 4 }, },
318
{ { 1, 2, 3, 4, 5, 5, 5, 5, 5 },
319
{ 0, 1, 2, 3, 4, 5, 5, 5, 5 },
320
{ 0, 1, 2, 3, 5, 5, 5, 5, 5 },
321
{ 1, 1, 3, 4, 5, 5, 5, 5, 5 },
322
{ 1, 1, 2, 4, 5, 5, 5, 5, 5 },
323
{ 1, 2, 2, 4, 5, 5, 5, 5, 5 },
324
{ 1, 1, 2, 3, 5, 5, 5, 5, 5 },
325
{ 2, 2, 3, 4, 5, 5, 5, 5, 5 },
326
{ 0, 1, 2, 4, 5, 5, 5, 5, 5 },
327
{ 2, 2, 3, 5, 5, 5, 5, 5, 5 },
328
{ 1, 2, 3, 5, 5, 5, 5, 5, 5 },
329
{ 0, 1, 3, 4, 5, 5, 5, 5, 5 },
330
{ 1, 2, 2, 3, 5, 5, 5, 5, 5 },
331
{ 2, 3, 4, 5, 5, 5, 5, 5, 5 },
332
{ 0, 2, 3, 4, 5, 5, 5, 5, 5 },
333
{ 1, 1, 1, 3, 4, 5, 5, 5, 5 }, },
334
{ { 1, 2, 3, 4, 5, 5, 5, 6, 6 },
335
{ 1, 2, 3, 4, 5, 6, 6, 6, 6 },
336
{ 2, 3, 4, 5, 6, 6, 6, 6, 6 },
337
{ 1, 2, 3, 4, 6, 6, 6, 6, 6 },
338
{ 2, 2, 3, 4, 5, 5, 5, 6, 6 },
339
{ 1, 2, 3, 4, 5, 5, 6, 6, 6 },
340
{ 2, 2, 3, 4, 6, 6, 6, 6, 6 },
341
{ 2, 2, 3, 4, 5, 6, 6, 6, 6 },
342
{ 2, 2, 4, 5, 6, 6, 6, 6, 6 },
343
{ 2, 2, 3, 5, 6, 6, 6, 6, 6 },
344
{ 1, 2, 3, 5, 6, 6, 6, 6, 6 },
345
{ 2, 3, 3, 5, 6, 6, 6, 6, 6 },
346
{ 1, 2, 4, 5, 6, 6, 6, 6, 6 },
347
{ 2, 2, 3, 4, 5, 5, 6, 6, 6 },
348
{ 2, 3, 3, 4, 6, 6, 6, 6, 6 },
349
{ 1, 3, 4, 5, 6, 6, 6, 6, 6 } }
350
};
351
352
/** 2D base shape tables for scale factor coding.
353
* The values are grouped together as follows:
354
* [num_shape_tables = 64][num_seg_coeffs = 9] */
355
static const int8_t atrac3p_sf_shapes[64][9] = {
356
{ -3, -2, -1, 0, 3, 5, 6, 8, 40 },
357
{ -3, -2, 0, 1, 7, 9, 11, 13, 20 },
358
{ -1, 0, 0, 1, 6, 8, 10, 13, 41 },
359
{ 0, 0, 0, 2, 5, 5, 6, 8, 14 },
360
{ 0, 0, 0, 2, 6, 7, 8, 11, 47 },
361
{ 0, 0, 1, 2, 5, 7, 8, 10, 32 },
362
{ 0, 0, 1, 3, 8, 10, 12, 14, 47 },
363
{ 0, 0, 2, 4, 9, 10, 12, 14, 40 },
364
{ 0, 0, 3, 5, 9, 10, 12, 14, 22 },
365
{ 0, 1, 3, 5, 10, 14, 18, 22, 31 },
366
{ 0, 2, 5, 6, 10, 10, 10, 12, 46 },
367
{ 0, 2, 5, 7, 12, 14, 15, 18, 44 },
368
{ 1, 1, 4, 5, 7, 7, 8, 9, 15 },
369
{ 1, 2, 2, 2, 4, 5, 7, 9, 26 },
370
{ 1, 2, 2, 3, 6, 7, 7, 8, 47 },
371
{ 1, 2, 2, 3, 6, 8, 10, 13, 22 },
372
{ 1, 3, 4, 7, 13, 17, 21, 24, 41 },
373
{ 1, 4, 0, 4, 10, 12, 13, 14, 17 },
374
{ 2, 3, 3, 3, 6, 8, 10, 13, 48 },
375
{ 2, 3, 3, 4, 9, 12, 14, 17, 47 },
376
{ 2, 3, 3, 5, 10, 12, 14, 17, 25 },
377
{ 2, 3, 5, 7, 8, 9, 9, 9, 13 },
378
{ 2, 3, 5, 9, 16, 21, 25, 28, 33 },
379
{ 2, 4, 5, 8, 12, 14, 17, 19, 26 },
380
{ 2, 4, 6, 8, 12, 13, 13, 15, 20 },
381
{ 2, 4, 7, 12, 20, 26, 30, 32, 35 },
382
{ 3, 3, 5, 6, 12, 14, 16, 19, 34 },
383
{ 3, 4, 4, 5, 7, 9, 10, 11, 48 },
384
{ 3, 4, 5, 6, 8, 9, 10, 11, 16 },
385
{ 3, 5, 5, 5, 7, 9, 10, 13, 35 },
386
{ 3, 5, 5, 7, 10, 12, 13, 15, 49 },
387
{ 3, 5, 7, 7, 8, 7, 9, 12, 21 },
388
{ 3, 5, 7, 8, 12, 14, 15, 15, 24 },
389
{ 3, 5, 7, 10, 16, 21, 24, 27, 44 },
390
{ 3, 5, 8, 14, 21, 26, 28, 29, 42 },
391
{ 3, 6, 10, 13, 18, 19, 20, 22, 27 },
392
{ 3, 6, 11, 16, 24, 27, 28, 29, 31 },
393
{ 4, 5, 4, 3, 4, 6, 8, 11, 18 },
394
{ 4, 6, 5, 6, 9, 10, 12, 14, 20 },
395
{ 4, 6, 7, 6, 6, 6, 7, 8, 46 },
396
{ 4, 6, 7, 9, 13, 16, 18, 20, 48 },
397
{ 4, 6, 7, 9, 14, 17, 20, 23, 31 },
398
{ 4, 6, 9, 11, 14, 15, 15, 17, 21 },
399
{ 4, 8, 13, 20, 27, 32, 35, 36, 38 },
400
{ 5, 6, 6, 4, 5, 6, 7, 6, 6 },
401
{ 5, 7, 7, 8, 9, 9, 10, 12, 49 },
402
{ 5, 8, 9, 9, 10, 11, 12, 13, 42 },
403
{ 5, 8, 10, 12, 15, 16, 17, 19, 42 },
404
{ 5, 8, 12, 17, 26, 31, 32, 33, 44 },
405
{ 5, 9, 13, 16, 20, 22, 23, 23, 35 },
406
{ 6, 8, 8, 7, 6, 5, 6, 8, 15 },
407
{ 6, 8, 8, 8, 9, 10, 12, 16, 24 },
408
{ 6, 8, 8, 9, 10, 10, 11, 11, 13 },
409
{ 6, 8, 10, 13, 19, 21, 24, 26, 32 },
410
{ 6, 9, 10, 11, 13, 13, 14, 16, 49 },
411
{ 7, 9, 9, 10, 13, 14, 16, 19, 27 },
412
{ 7, 10, 12, 13, 16, 16, 17, 17, 27 },
413
{ 7, 10, 12, 14, 17, 19, 20, 22, 48 },
414
{ 8, 9, 10, 9, 10, 11, 11, 11, 19 },
415
{ 8, 11, 12, 12, 13, 13, 13, 13, 17 },
416
{ 8, 11, 13, 14, 16, 17, 19, 20, 27 },
417
{ 8, 12, 17, 22, 26, 28, 29, 30, 33 },
418
{ 10, 14, 16, 19, 21, 22, 22, 24, 28 },
419
{ 10, 15, 17, 18, 21, 22, 23, 25, 43 }
420
};
421
422
static const uint8_t atrac3p_ct_restricted_to_full[2][7][4] = {
423
{ { 0, 5, 4, 1 },
424
{ 0, 1, 2, 3 },
425
{ 3, 0, 4, 2 },
426
{ 4, 0, 1, 2 },
427
{ 1, 0, 4, 3 },
428
{ 3, 0, 2, 1 },
429
{ 0, 3, 1, 2 } },
430
{ { 4, 0, 1, 2 },
431
{ 0, 3, 2, 1 },
432
{ 0, 1, 2, 3 },
433
{ 0, 1, 2, 4 },
434
{ 0, 1, 2, 3 },
435
{ 1, 4, 2, 0 },
436
{ 0, 1, 2, 3 } }
437
};
438
439
/** Tables for spectrum coding */
440
static const uint8_t huff_a01_cb[14] = {
441
1, 12, 1, 0, 0, 1, 7, 0, 19, 5, 13, 21, 6, 8
442
};
443
444
static const uint8_t huff_a01_xlat[81] = {
445
0x00, 0x03, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x50, 0xD0, 0x70,
446
0xF0, 0xC4, 0x14, 0x34, 0x4C, 0x1C, 0x3C, 0x41, 0xC1, 0x31, 0x05, 0x0D,
447
0xC3, 0x13, 0x07, 0x0F, 0x44, 0xCC, 0x11, 0x43, 0x33, 0x54, 0x74, 0xDC,
448
0xFC, 0x71, 0x15, 0x4D, 0xCD, 0x1D, 0xD3, 0xC7, 0x37, 0x3F, 0xD4, 0xF4,
449
0x5C, 0x7C, 0x51, 0xD1, 0xF1, 0x45, 0xC5, 0x35, 0xDD, 0x3D, 0x53, 0x73,
450
0xF3, 0x47, 0x17, 0x77, 0x4F, 0xCF, 0x1F, 0x55, 0xF5, 0x7D, 0xD7, 0x5F,
451
0xFF, 0xD5, 0x75, 0x5D, 0xFD, 0x57, 0xF7, 0xDF, 0x7F
452
};
453
454
static const uint8_t huff_a02_cb[13] = {
455
2, 12, 1, 0, 4, 11, 0, 1, 29, 6, 20, 7, 2
456
};
457
458
static const uint8_t huff_a02_xlat[81] = {
459
0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x51,
460
0x05, 0x45, 0x15, 0x55, 0x90, 0x80, 0x20, 0x60, 0x84, 0x94, 0x24, 0x64,
461
0x08, 0x48, 0x18, 0x58, 0x81, 0x91, 0x21, 0x85, 0x95, 0x65, 0x09, 0x49,
462
0x19, 0x59, 0x02, 0x42, 0x12, 0x52, 0x06, 0x46, 0x16, 0x56, 0x88, 0x61,
463
0x25, 0x29, 0x69, 0x5A, 0xA0, 0xA4, 0x98, 0x28, 0x68, 0xA1, 0xA5, 0x89,
464
0x99, 0xA9, 0x82, 0x92, 0x22, 0x62, 0x96, 0x26, 0x66, 0x0A, 0x4A, 0x1A,
465
0xA8, 0x86, 0xA6, 0x8A, 0x9A, 0x2A, 0x6A, 0xA2, 0xAA
466
};
467
468
static const uint8_t huff_a03_cb[9] = { 3, 9, 1, 8, 0, 13, 18, 7, 2 };
469
470
static const uint8_t huff_a03_xlat[49] = {
471
0x00, 0x08, 0x38, 0x01, 0x09, 0x39, 0x07, 0x0F, 0x3F, 0x10, 0x30, 0x11,
472
0x31, 0x02, 0x0A, 0x3A, 0x05, 0x06, 0x0E, 0x3E, 0x17, 0x37, 0x18, 0x28,
473
0x19, 0x29, 0x2A, 0x32, 0x03, 0x0B, 0x33, 0x3B, 0x0D, 0x15, 0x3D, 0x16,
474
0x1E, 0x36, 0x1F, 0x2F, 0x12, 0x1A, 0x13, 0x2B, 0x1D, 0x35, 0x2E, 0x1B,
475
0x2D
476
};
477
478
static const uint8_t huff_a04_cb[4] = { 2, 3, 2, 4 };
479
static const uint8_t huff_a04_xlat[6] = { 1, 2, 0, 3, 4, 5 };
480
481
static const uint8_t huff_a05_cb[12] = {
482
3, 12, 1, 3, 5, 8, 12, 23, 72, 68, 31, 2
483
};
484
485
static const uint8_t huff_a05_xlat[225] = {
486
0x00, 0x10, 0xF0, 0x01, 0x11, 0xF1, 0x0F, 0x1F, 0xFF, 0x20, 0xE0, 0xE1,
487
0x02, 0xF2, 0x0E, 0x1E, 0x2F, 0x30, 0xD0, 0x21, 0x12, 0x22, 0xE2, 0x03,
488
0x0D, 0x2E, 0xEE, 0xFE, 0xEF, 0x40, 0xC0, 0x31, 0xC1, 0xD1, 0x32, 0xD2,
489
0x13, 0x23, 0xE3, 0xF3, 0x04, 0xF4, 0x0C, 0x1C, 0x1D, 0x2D, 0xED, 0xFD,
490
0x3E, 0xDE, 0x3F, 0xDF, 0x50, 0x60, 0x70, 0x90, 0xA0, 0xB0, 0x41, 0x51,
491
0x61, 0x71, 0x91, 0xA1, 0xB1, 0x42, 0x62, 0x92, 0xA2, 0xC2, 0x33, 0xC3,
492
0xD3, 0x14, 0x24, 0x34, 0xD4, 0xE4, 0x05, 0x15, 0xF5, 0x06, 0x16, 0x26,
493
0xE6, 0xF6, 0x07, 0x17, 0xE7, 0xF7, 0x09, 0x19, 0x29, 0xF9, 0x0A, 0x1A,
494
0x2A, 0xEA, 0xFA, 0x0B, 0x1B, 0xFB, 0x2C, 0x3C, 0xDC, 0xEC, 0xFC, 0x3D,
495
0x4D, 0xCD, 0xDD, 0x4E, 0x6E, 0x7E, 0xAE, 0xCE, 0x4F, 0x5F, 0x6F, 0x7F,
496
0x9F, 0xAF, 0xBF, 0xCF, 0x52, 0x72, 0xB2, 0x43, 0x53, 0x63, 0x73, 0x93,
497
0xA3, 0xB3, 0x44, 0x64, 0x74, 0x94, 0xA4, 0xB4, 0xC4, 0x25, 0x35, 0xA5,
498
0xC5, 0xD5, 0xE5, 0x36, 0x46, 0xB6, 0xC6, 0xD6, 0x27, 0x37, 0x47, 0xB7,
499
0xC7, 0xD7, 0x39, 0x49, 0x59, 0xC9, 0xD9, 0xE9, 0x3A, 0x4A, 0x5A, 0xCA,
500
0xDA, 0x2B, 0x3B, 0x4B, 0x6B, 0x7B, 0xDB, 0xEB, 0x4C, 0x5C, 0x6C, 0x7C,
501
0x9C, 0xAC, 0xCC, 0x5D, 0x6D, 0x7D, 0x9D, 0xAD, 0xBD, 0x5E, 0x9E, 0xBE,
502
0x54, 0x45, 0x55, 0x65, 0x75, 0x95, 0xB5, 0x56, 0x66, 0x76, 0x96, 0xA6,
503
0x57, 0x67, 0x97, 0xA7, 0x69, 0x79, 0xA9, 0xB9, 0x6A, 0x7A, 0x9A, 0xAA,
504
0xBA, 0x5B, 0x9B, 0xAB, 0xBB, 0xCB, 0xBC, 0x77, 0x99
505
};
506
507
static const uint8_t huff_a06_cb[7] = {
508
2, 6, 1, 3, 2, 6, 4
509
};
510
511
static const uint8_t huff_a06_xlat[16] = {
512
1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14, 10, 11, 12, 15
513
};
514
515
static const uint8_t huff_a07_cb[11] = {
516
2, 10, 1, 2, 2, 2, 6, 14, 21, 13, 2
517
};
518
519
static const uint8_t huff_a07_xlat[63] = {
520
0, 1, 63, 2, 62, 3, 61, 4, 5, 6, 58, 59, 60, 7, 8, 9,
521
10, 26, 27, 28, 36, 37, 38, 54, 55, 56, 57, 11, 12, 13, 14, 15,
522
16, 25, 29, 30, 31, 33, 34, 35, 39, 47, 48, 49, 50, 51, 52, 53,
523
17, 18, 19, 20, 21, 22, 23, 41, 42, 43, 44, 45, 46, 24, 40
524
};
525
526
static const uint8_t huff_a11_cb[13] = {
527
1, 11, 1, 0, 0, 0, 8, 1, 18, 9, 22, 10, 12
528
};
529
530
static const uint8_t huff_a11_xlat[81] = {
531
0x00, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x03, 0xD0, 0x50, 0x70,
532
0xF0, 0xC4, 0x34, 0x4C, 0xCC, 0x1C, 0x41, 0xC1, 0x31, 0x05, 0x0D, 0x43,
533
0xC3, 0x13, 0x07, 0x0F, 0x44, 0x14, 0x74, 0xDC, 0x3C, 0x11, 0x1D, 0x33,
534
0x37, 0x54, 0xD4, 0xF4, 0x5C, 0x7C, 0xFC, 0xD1, 0x71, 0xF1, 0x15, 0x35,
535
0x4D, 0xCD, 0xDD, 0x3D, 0xD3, 0x73, 0x47, 0xC7, 0x17, 0x77, 0x3F, 0x51,
536
0x45, 0xC5, 0x55, 0x53, 0xF3, 0x4F, 0xCF, 0x1F, 0xFF, 0xD5, 0x75, 0xF5,
537
0x5D, 0x7D, 0xFD, 0x57, 0xD7, 0xF7, 0x5F, 0xDF, 0x7F
538
};
539
540
static const uint8_t huff_a12_cb[8] = { 5, 10, 16, 11, 32, 19, 1, 2 };
541
542
static const uint8_t huff_a12_xlat[81] = {
543
0x00, 0x40, 0x10, 0x50, 0x04, 0x44, 0x14, 0x54, 0x01, 0x41, 0x11, 0x51,
544
0x05, 0x45, 0x15, 0x55, 0x90, 0x94, 0x58, 0x91, 0x95, 0x19, 0x59, 0x06,
545
0x46, 0x16, 0x56, 0x80, 0x60, 0x84, 0x24, 0x64, 0xA4, 0x08, 0x48, 0x18,
546
0x68, 0x81, 0x21, 0x61, 0xA1, 0x85, 0x25, 0x65, 0xA5, 0x09, 0x49, 0x99,
547
0x69, 0xA9, 0x02, 0x42, 0x12, 0x52, 0x96, 0x26, 0x66, 0x1A, 0x5A, 0x20,
548
0xA0, 0x88, 0x98, 0x28, 0xA8, 0x89, 0x29, 0x82, 0x92, 0x22, 0x62, 0x86,
549
0xA6, 0x0A, 0x4A, 0x9A, 0x6A, 0xAA, 0xA2, 0x8A, 0x2A
550
};
551
552
static const uint8_t huff_a13_cb[12] = {
553
1, 10, 1, 0, 0, 4, 2, 2, 9, 15, 12, 4
554
};
555
556
static const uint8_t huff_a13_xlat[49] = {
557
0x00, 0x08, 0x38, 0x01, 0x07, 0x39, 0x0F, 0x09, 0x3F, 0x10, 0x30, 0x31,
558
0x02, 0x3A, 0x06, 0x0E, 0x3E, 0x17, 0x18, 0x28, 0x11, 0x29, 0x0A, 0x32,
559
0x03, 0x0B, 0x3B, 0x05, 0x0D, 0x3D, 0x16, 0x1F, 0x37, 0x19, 0x12, 0x1A,
560
0x2A, 0x13, 0x33, 0x15, 0x35, 0x1E, 0x2E, 0x36, 0x2F, 0x1B, 0x2B, 0x1D,
561
0x2D
562
};
563
564
static const uint8_t huff_a14_cb[12] = {
565
2, 11, 1, 0, 4, 3, 5, 16, 28, 34, 26, 4
566
};
567
568
static const uint8_t huff_a14_xlat[121] = {
569
0x00, 0x10, 0xF0, 0x01, 0x0F, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x11, 0x02,
570
0x0E, 0x30, 0x50, 0xB0, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x03, 0x05, 0x0B,
571
0x0D, 0x1E, 0xFE, 0x2F, 0xEF, 0x40, 0xC0, 0x31, 0x51, 0xB1, 0xC1, 0xD1,
572
0x22, 0x52, 0xE2, 0x13, 0xF3, 0x04, 0x15, 0xF5, 0x1B, 0xEB, 0xFB, 0x0C,
573
0x1D, 0xFD, 0x2E, 0x5E, 0xEE, 0x3F, 0x5F, 0xBF, 0xDF, 0x41, 0x32, 0x42,
574
0xB2, 0xD2, 0x23, 0x53, 0xB3, 0xE3, 0x14, 0x24, 0xE4, 0xF4, 0x25, 0x35,
575
0xD5, 0xE5, 0x2B, 0x3B, 0xDB, 0x1C, 0x2C, 0xBC, 0xEC, 0xFC, 0x2D, 0xBD,
576
0xED, 0x3E, 0x4E, 0xBE, 0xDE, 0x4F, 0xCF, 0xC2, 0x33, 0x43, 0xC3, 0xD3,
577
0x34, 0x44, 0x54, 0xB4, 0xD4, 0x45, 0x55, 0xC5, 0x4B, 0xCB, 0x3C, 0x4C,
578
0x5C, 0xCC, 0xDC, 0x3D, 0x4D, 0x5D, 0xCD, 0xDD, 0xCE, 0xC4, 0xB5, 0x5B,
579
0xBB
580
};
581
582
static const uint8_t huff_a15_cb[9] = { 5, 11, 9, 12, 16, 44, 98, 42, 4 };
583
584
static const uint8_t huff_a15_xlat[225] = {
585
0x00, 0x10, 0xF0, 0x01, 0x11, 0xF1, 0x0F, 0x1F, 0xFF, 0x20, 0xE0, 0x21,
586
0xE1, 0x02, 0x12, 0xF2, 0x0E, 0x1E, 0xFE, 0x2F, 0xEF, 0x30, 0xD0, 0x31,
587
0xD1, 0x22, 0xE2, 0x03, 0x13, 0xF3, 0x0D, 0x1D, 0xFD, 0x2E, 0xEE, 0x3F,
588
0xDF, 0x40, 0x60, 0x70, 0x90, 0xA0, 0xC0, 0x41, 0xC1, 0x32, 0x42, 0xC2,
589
0xD2, 0x23, 0x33, 0xD3, 0xE3, 0x04, 0x14, 0x24, 0xE4, 0xF4, 0x06, 0x16,
590
0xF6, 0x07, 0x09, 0x0A, 0x1A, 0xFA, 0x0C, 0x1C, 0x2C, 0xEC, 0xFC, 0x2D,
591
0x3D, 0xDD, 0xED, 0x3E, 0x4E, 0xCE, 0xDE, 0x4F, 0xCF, 0x50, 0xB0, 0x51,
592
0x61, 0x71, 0x91, 0xA1, 0xB1, 0x52, 0x62, 0x72, 0x92, 0xA2, 0xB2, 0x43,
593
0x53, 0x63, 0x73, 0x93, 0xA3, 0xC3, 0x34, 0x44, 0x64, 0xA4, 0xC4, 0xD4,
594
0x05, 0x15, 0x25, 0x35, 0xD5, 0xE5, 0xF5, 0x26, 0x36, 0x46, 0xC6, 0xD6,
595
0xE6, 0x17, 0x27, 0x37, 0xC7, 0xD7, 0xE7, 0xF7, 0x19, 0x29, 0x39, 0xC9,
596
0xD9, 0xE9, 0xF9, 0x2A, 0x3A, 0x4A, 0x5A, 0xCA, 0xDA, 0xEA, 0x0B, 0x1B,
597
0x2B, 0x3B, 0xCB, 0xDB, 0xEB, 0xFB, 0x3C, 0x4C, 0x6C, 0x7C, 0x9C, 0xAC,
598
0xBC, 0xCC, 0xDC, 0x4D, 0x5D, 0x6D, 0x7D, 0x9D, 0xAD, 0xBD, 0xCD, 0x5E,
599
0x6E, 0x7E, 0x9E, 0xAE, 0xBE, 0x5F, 0x6F, 0x7F, 0x9F, 0xAF, 0xBF, 0xB3,
600
0x54, 0x74, 0x94, 0xB4, 0x45, 0x55, 0x65, 0x75, 0x95, 0xA5, 0xB5, 0xC5,
601
0x56, 0x66, 0x76, 0x96, 0xA6, 0xB6, 0x47, 0x57, 0x67, 0xA7, 0xB7, 0x49,
602
0x59, 0x69, 0xA9, 0xB9, 0x6A, 0x7A, 0x9A, 0xAA, 0xBA, 0x4B, 0x5B, 0x6B,
603
0x7B, 0x9B, 0xAB, 0xBB, 0x5C, 0x77, 0x97, 0x79, 0x99
604
};
605
606
static const uint8_t huff_a16_cb[13] = {
607
2, 12, 1, 1, 2, 2, 5, 7, 21, 54, 85, 62, 16
608
};
609
610
static const uint8_t huff_a16_xlat[256] = {
611
0x00, 0x01, 0x10, 0x11, 0x21, 0x12, 0x20, 0x31, 0x02, 0x22, 0x13, 0x30,
612
0x41, 0x32, 0x03, 0x23, 0x14, 0x24, 0x40, 0x51, 0x61, 0xD1, 0xE1, 0x42,
613
0x52, 0xD2, 0x33, 0x43, 0xD3, 0x04, 0x34, 0x05, 0x15, 0x25, 0x16, 0x1D,
614
0x2D, 0x1E, 0x2E, 0x50, 0x60, 0xD0, 0xE0, 0xF0, 0x71, 0x81, 0xF1, 0x62,
615
0x72, 0xE2, 0xF2, 0x53, 0x63, 0xE3, 0xF3, 0x44, 0x54, 0xD4, 0xE4, 0xF4,
616
0x35, 0x45, 0x55, 0xD5, 0xE5, 0xF5, 0x06, 0x26, 0x36, 0xD6, 0x07, 0x17,
617
0x27, 0x37, 0xD7, 0x18, 0x28, 0x1C, 0x0D, 0x3D, 0x4D, 0x5D, 0x6D, 0x8D,
618
0x0E, 0x3E, 0x4E, 0x5E, 0x0F, 0x1F, 0x2F, 0x3F, 0x5F, 0x70, 0x80, 0x90,
619
0xC0, 0x91, 0xA1, 0xB1, 0xC1, 0x82, 0x92, 0xA2, 0xC2, 0x73, 0x83, 0x93,
620
0xA3, 0xC3, 0x64, 0x74, 0x84, 0x94, 0xA4, 0xC4, 0x65, 0x75, 0x85, 0x46,
621
0x56, 0x66, 0xC6, 0xE6, 0xF6, 0x47, 0x57, 0xE7, 0xF7, 0x08, 0x38, 0x48,
622
0x58, 0x68, 0xD8, 0xE8, 0xF8, 0x09, 0x19, 0x29, 0x39, 0x59, 0xD9, 0xE9,
623
0xF9, 0x1A, 0x2A, 0x3A, 0xDA, 0xEA, 0xFA, 0x1B, 0x2B, 0xDB, 0xEB, 0xFB,
624
0x0C, 0x2C, 0x3C, 0xDC, 0xEC, 0x7D, 0x9D, 0xAD, 0xBD, 0xCD, 0x6E, 0x7E,
625
0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0x4F, 0x6F, 0x7F, 0x8F, 0xAF, 0xA0, 0xB2,
626
0xB3, 0xB4, 0x95, 0xA5, 0xB5, 0xC5, 0x76, 0x86, 0x96, 0xA6, 0xB6, 0x67,
627
0x77, 0x87, 0x97, 0xC7, 0x78, 0x88, 0x98, 0xC8, 0x49, 0x69, 0x79, 0x89,
628
0x99, 0xC9, 0x0A, 0x4A, 0x5A, 0x6A, 0x7A, 0xCA, 0x0B, 0x3B, 0x4B, 0x5B,
629
0x6B, 0xCB, 0x4C, 0x5C, 0x6C, 0x7C, 0x8C, 0x9C, 0xAC, 0xBC, 0xCC, 0xFC,
630
0xDD, 0xED, 0xFD, 0xDE, 0xEE, 0xFE, 0x9F, 0xBF, 0xCF, 0xDF, 0xEF, 0xFF,
631
0xB0, 0xA7, 0xB7, 0xA8, 0xB8, 0xA9, 0xB9, 0x8A, 0x9A, 0xAA, 0xBA, 0x7B,
632
0x8B, 0x9B, 0xAB, 0xBB
633
};
634
635
static const uint8_t huff_a17_cb[9] = { 3, 9, 3, 2, 5, 7, 17, 23, 6 };
636
637
static const uint8_t huff_a17_xlat[63] = {
638
0, 1, 63, 2, 62, 3, 4, 59, 60, 61, 5, 6, 7, 8, 56, 57,
639
58, 9, 10, 11, 12, 13, 14, 26, 27, 36, 37, 38, 50, 51, 52, 53,
640
54, 55, 15, 16, 17, 18, 19, 20, 21, 25, 28, 29, 30, 31, 33, 34,
641
35, 39, 43, 44, 45, 46, 47, 48, 49, 22, 23, 24, 40, 41, 42
642
};
643
644
static const uint8_t huff_a21_cb[14] = {
645
1, 12, 1, 0, 0, 2, 6, 0, 7, 21, 15, 17, 8, 4
646
};
647
648
static const uint8_t huff_a21_xlat[81] = {
649
0x00, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x03, 0xD0, 0x70, 0x34,
650
0x1C, 0x0D, 0x13, 0x07, 0x50, 0xF0, 0x44, 0xC4, 0x14, 0x74, 0x4C, 0xCC,
651
0xDC, 0x3C, 0x41, 0xC1, 0x11, 0x31, 0x05, 0x1D, 0x43, 0xC3, 0x33, 0x37,
652
0x0F, 0x54, 0xF4, 0xFC, 0xD1, 0x71, 0x15, 0x4D, 0xCD, 0xDD, 0xD3, 0x73,
653
0x47, 0xC7, 0x77, 0x3F, 0xD4, 0x5C, 0x7C, 0x51, 0xF1, 0x45, 0xC5, 0x55,
654
0x35, 0x3D, 0x53, 0xF3, 0x17, 0x4F, 0xCF, 0x1F, 0xFF, 0x75, 0xF5, 0x5D,
655
0x7D, 0xD7, 0xF7, 0x5F, 0xDF, 0xD5, 0xFD, 0x57, 0x7F
656
};
657
658
static const uint8_t huff_a22_cb[10] = { 2, 9, 1, 4, 0, 4, 3, 8, 3, 2 };
659
660
static const uint8_t huff_a22_xlat[25] = {
661
0x00, 0x08, 0x38, 0x01, 0x07, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x02, 0x06,
662
0x30, 0x11, 0x31, 0x0A, 0x3A, 0x0E, 0x17, 0x37, 0x32, 0x16, 0x3E, 0x12,
663
0x36
664
};
665
666
static const uint8_t huff_a23_cb[9] = { 3, 9, 5, 0, 4, 6, 10, 16, 8 };
667
668
static const uint8_t huff_a23_xlat[49] = {
669
0x00, 0x08, 0x38, 0x01, 0x07, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x30, 0x02,
670
0x3A, 0x06, 0x0E, 0x18, 0x28, 0x11, 0x31, 0x0A, 0x03, 0x05, 0x3E, 0x17,
671
0x37, 0x19, 0x29, 0x12, 0x2A, 0x32, 0x0B, 0x33, 0x3B, 0x0D, 0x15, 0x3D,
672
0x16, 0x1E, 0x36, 0x1F, 0x2F, 0x1A, 0x13, 0x1B, 0x2B, 0x1D, 0x2D, 0x35,
673
0x2E
674
};
675
676
static const uint8_t huff_a24_cb[5] = { 2, 4, 3, 1, 2 };
677
678
static const uint8_t huff_a25_cb[5] = { 2, 4, 1, 5, 2 };
679
680
static const uint8_t huff_a25_xlat[8] = { 1, 0, 2, 3, 4, 5, 6, 7 };
681
682
static const uint8_t huff_a26_cb[10] = { 4, 11, 3, 4, 12, 15, 34, 83, 75, 30 };
683
684
static const uint8_t huff_a26_xlat[256] = {
685
0x00, 0x01, 0x11, 0x10, 0x21, 0x12, 0x22, 0x20, 0x30, 0x31, 0x41, 0x02,
686
0x32, 0x03, 0x13, 0x23, 0x33, 0x14, 0x24, 0x40, 0x51, 0x61, 0x42, 0x52,
687
0x43, 0x53, 0x04, 0x34, 0x44, 0x15, 0x25, 0x35, 0x16, 0x26, 0x50, 0x60,
688
0x71, 0x81, 0xD1, 0x62, 0x72, 0x82, 0xD2, 0x63, 0x73, 0xD3, 0x54, 0x64,
689
0x05, 0x45, 0x55, 0x65, 0x06, 0x36, 0x46, 0x56, 0x17, 0x27, 0x37, 0x47,
690
0x18, 0x28, 0x38, 0x19, 0x1D, 0x2D, 0x3D, 0x1E, 0x70, 0x80, 0x90, 0xD0,
691
0xE0, 0x91, 0xA1, 0xB1, 0xC1, 0xE1, 0xF1, 0x92, 0xA2, 0xC2, 0xE2, 0xF2,
692
0x83, 0x93, 0xA3, 0xC3, 0xE3, 0xF3, 0x74, 0x84, 0x94, 0xA4, 0xC4, 0xD4,
693
0xE4, 0xF4, 0x75, 0x85, 0x95, 0xD5, 0xE5, 0x66, 0x76, 0x86, 0xD6, 0xE6,
694
0x07, 0x57, 0x67, 0x77, 0xD7, 0x08, 0x48, 0x58, 0x68, 0xD8, 0x09, 0x29,
695
0x39, 0x49, 0x59, 0x69, 0x1A, 0x2A, 0x3A, 0x4A, 0x1B, 0x2B, 0x1C, 0x2C,
696
0x3C, 0x4C, 0x0D, 0x4D, 0x5D, 0x6D, 0x7D, 0x8D, 0x0E, 0x2E, 0x3E, 0x4E,
697
0x5E, 0x6E, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0xA0, 0xB0, 0xC0, 0xF0, 0xB2,
698
0xB3, 0xB4, 0xA5, 0xB5, 0xC5, 0xF5, 0x96, 0xA6, 0xB6, 0xC6, 0xF6, 0x87,
699
0x97, 0xA7, 0xB7, 0xC7, 0xE7, 0xF7, 0x78, 0x88, 0x98, 0xA8, 0xC8, 0xE8,
700
0xF8, 0x79, 0x89, 0x99, 0xC9, 0xD9, 0xE9, 0xF9, 0x0A, 0x5A, 0x6A, 0x7A,
701
0x8A, 0xDA, 0xEA, 0xFA, 0x0B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, 0x8B, 0xDB,
702
0x0C, 0x5C, 0x6C, 0x7C, 0x8C, 0x9C, 0xDC, 0x9D, 0xAD, 0xBD, 0xCD, 0x7E,
703
0x8E, 0x9E, 0xAE, 0xBE, 0x0F, 0x6F, 0x7F, 0x8F, 0x9F, 0xAF, 0xB8, 0xA9,
704
0xB9, 0x9A, 0xAA, 0xBA, 0xCA, 0x9B, 0xAB, 0xBB, 0xCB, 0xEB, 0xFB, 0xAC,
705
0xBC, 0xCC, 0xEC, 0xFC, 0xDD, 0xED, 0xFD, 0xCE, 0xDE, 0xEE, 0xFE, 0xBF,
706
0xCF, 0xDF, 0xEF, 0xFF
707
};
708
709
static const uint8_t huff_a27_cb[7] = { 4, 8, 3, 14, 10, 20, 16 };
710
711
static const uint8_t huff_a27_xlat[63] = {
712
0, 2, 3, 1, 5, 6, 7, 9, 54, 55, 56, 58, 59, 60, 61, 62,
713
63, 4, 8, 10, 11, 12, 14, 49, 52, 53, 57, 13, 15, 16, 17, 18,
714
19, 22, 23, 25, 26, 30, 39, 43, 44, 45, 46, 47, 48, 50, 51, 20,
715
21, 24, 27, 28, 29, 31, 33, 34, 35, 36, 37, 38, 40, 41, 42
716
};
717
718
static const uint8_t huff_a31_cb[8] = { 1, 6, 1, 0, 3, 1, 0, 4 };
719
720
static const uint8_t huff_a31_xlat[9] = {
721
0x00, 0x04, 0x0C, 0x01, 0x03, 0x05, 0x0D, 0x07, 0x0F
722
};
723
724
static const uint8_t huff_a32_cb[13] = {
725
1, 11, 1, 0, 0, 2, 2, 6, 12, 18, 19, 15, 6
726
};
727
728
static const uint8_t huff_a32_xlat[81] = {
729
0x00, 0x40, 0x01, 0x10, 0x04, 0x80, 0x50, 0x20, 0x14, 0x05, 0x02, 0x90,
730
0x60, 0x44, 0x54, 0x24, 0x08, 0x18, 0x41, 0x11, 0x15, 0x09, 0x06, 0xA0,
731
0x84, 0x94, 0x64, 0xA4, 0x48, 0x58, 0x28, 0x51, 0x21, 0x45, 0x55, 0x25,
732
0x19, 0x12, 0x16, 0x0A, 0x1A, 0x68, 0xA8, 0x81, 0x91, 0x61, 0xA1, 0x85,
733
0x95, 0x65, 0xA5, 0x49, 0x59, 0x29, 0x69, 0x42, 0x52, 0x46, 0x56, 0x2A,
734
0x88, 0x98, 0x89, 0x99, 0xA9, 0x82, 0x92, 0x22, 0x62, 0x86, 0x26, 0x66,
735
0x4A, 0x5A, 0x6A, 0xA2, 0x96, 0xA6, 0x8A, 0x9A, 0xAA
736
};
737
738
static const uint8_t huff_a33_cb[12] = {
739
3, 12, 1, 1, 13, 1, 14, 28, 33, 81, 32, 52
740
};
741
742
static const uint8_t huff_a33_xlat[256] = {
743
0x00, 0x10, 0x40, 0x50, 0x04, 0x44, 0x14, 0x54, 0x01, 0x41, 0x11, 0x51,
744
0x05, 0x45, 0x15, 0x55, 0x90, 0x20, 0x94, 0x64, 0x18, 0x21, 0x95, 0x19,
745
0x69, 0x02, 0x52, 0x06, 0x46, 0x16, 0x80, 0x60, 0x84, 0xD4, 0x24, 0x08,
746
0x48, 0x58, 0x68, 0x81, 0x91, 0x61, 0x85, 0x25, 0x65, 0xA5, 0x09, 0x49,
747
0x59, 0x29, 0x42, 0x12, 0x56, 0x96, 0xA6, 0x0A, 0x17, 0x1B, 0xD0, 0xC4,
748
0x74, 0xF4, 0x88, 0xC8, 0x28, 0xA1, 0x71, 0xC5, 0xD5, 0x75, 0x99, 0xB9,
749
0x4D, 0x1D, 0x2D, 0x6D, 0x22, 0x62, 0x66, 0x4A, 0x1A, 0x9A, 0x6A, 0x8E,
750
0x5E, 0x43, 0x23, 0x07, 0x47, 0x57, 0x6B, 0xC0, 0xA0, 0xE0, 0x70, 0xB0,
751
0xA4, 0xE4, 0x34, 0xB4, 0x98, 0xD8, 0xA8, 0x38, 0x78, 0x0C, 0x4C, 0x1C,
752
0x5C, 0x9C, 0x6C, 0x7C, 0xC1, 0xD1, 0xE1, 0x31, 0xE5, 0x35, 0xB5, 0xF5,
753
0x89, 0xA9, 0x79, 0xF9, 0x0D, 0xCD, 0x9D, 0xDD, 0xAD, 0x3D, 0x7D, 0x82,
754
0xC2, 0x92, 0xD2, 0xE2, 0x72, 0xF2, 0x86, 0xD6, 0xE6, 0x76, 0xB6, 0x8A,
755
0x5A, 0xDA, 0xEA, 0xFA, 0x4E, 0x1E, 0x9E, 0xEE, 0x03, 0x13, 0x53, 0x97,
756
0xB7, 0x0B, 0x4B, 0x8B, 0x5B, 0x9B, 0xEB, 0x7B, 0x0F, 0x4F, 0x1F, 0x5F,
757
0x9F, 0x2F, 0x3F, 0xBF, 0xE8, 0xB8, 0xF8, 0x8C, 0x2C, 0x3C, 0xFC, 0xB1,
758
0xC9, 0xD9, 0xE9, 0x39, 0x5D, 0xED, 0xBD, 0xA2, 0x32, 0x26, 0x36, 0x2A,
759
0xAA, 0xBA, 0x0E, 0x2E, 0x6E, 0x83, 0xC3, 0x93, 0x63, 0xB3, 0xA7, 0x37,
760
0x30, 0xF0, 0xCC, 0xDC, 0xAC, 0xEC, 0xBC, 0xF1, 0x8D, 0xFD, 0xB2, 0xC6,
761
0xF6, 0xCA, 0x3A, 0x7A, 0xCE, 0xDE, 0xAE, 0x3E, 0x7E, 0xBE, 0xFE, 0xD3,
762
0xA3, 0xE3, 0x33, 0x73, 0xF3, 0x87, 0xC7, 0xD7, 0x27, 0x67, 0xE7, 0x77,
763
0xF7, 0xCB, 0xDB, 0x2B, 0xAB, 0x3B, 0xBB, 0xFB, 0x8F, 0xCF, 0xDF, 0x6F,
764
0xAF, 0xEF, 0x7F, 0xFF
765
};
766
767
static const uint8_t huff_a34_cb[7] = { 1, 5, 1, 1, 1, 1, 2 };
768
769
static const uint8_t huff_a34_xlat[6] = { 1, 0, 2, 3, 4, 5 };
770
771
static const uint8_t huff_a35_cb[11] = { 2, 10, 1, 0, 2, 3, 6, 19, 9, 75, 110 };
772
773
static const uint8_t huff_a35_xlat[225] = {
774
0x00, 0xF0, 0x0F, 0x10, 0x01, 0xFF, 0x20, 0xE0, 0x11, 0xF1, 0x0E, 0x1F,
775
0x30, 0x40, 0xD0, 0x21, 0xE1, 0x02, 0x12, 0x22, 0xE2, 0xF2, 0x03, 0x13,
776
0x1E, 0x2E, 0x3E, 0xEE, 0xFE, 0x2F, 0xEF, 0xD2, 0x43, 0xF3, 0x04, 0x0D,
777
0x2D, 0x3D, 0x3F, 0xDF, 0x50, 0x60, 0x70, 0x90, 0xB0, 0x31, 0x41, 0x91,
778
0xA1, 0xC1, 0xD1, 0x42, 0xA2, 0xC2, 0x23, 0x33, 0xE3, 0x24, 0x34, 0xB4,
779
0xD4, 0xF4, 0x05, 0x15, 0x45, 0xE5, 0x16, 0x36, 0x56, 0xA6, 0xC6, 0xD6,
780
0xF6, 0x57, 0xC7, 0xF7, 0x09, 0x29, 0x49, 0x59, 0x69, 0xF9, 0x0A, 0x2A,
781
0x3A, 0x4A, 0xDA, 0xEA, 0xFA, 0x0B, 0x2B, 0xAB, 0xEB, 0xFB, 0x0C, 0x1C,
782
0x2C, 0x3C, 0x4C, 0x5C, 0xCC, 0xDC, 0xFC, 0x1D, 0x4D, 0x6D, 0xBD, 0xCD,
783
0xED, 0xFD, 0x4E, 0x6E, 0xCE, 0xDE, 0x7F, 0xA0, 0xC0, 0x51, 0x61, 0x71,
784
0xB1, 0x32, 0x52, 0x62, 0x72, 0x92, 0xB2, 0x53, 0x63, 0x73, 0x93, 0xA3,
785
0xB3, 0xC3, 0xD3, 0x14, 0x44, 0x54, 0x64, 0x74, 0x94, 0xA4, 0xC4, 0xE4,
786
0x25, 0x35, 0x55, 0x65, 0x75, 0x95, 0xA5, 0xB5, 0xC5, 0xD5, 0xF5, 0x06,
787
0x26, 0x46, 0x66, 0x76, 0x96, 0xB6, 0xE6, 0x07, 0x17, 0x27, 0x37, 0x47,
788
0x67, 0x77, 0x97, 0xA7, 0xB7, 0xD7, 0xE7, 0x19, 0x39, 0x79, 0x99, 0xA9,
789
0xB9, 0xC9, 0xD9, 0xE9, 0x1A, 0x5A, 0x6A, 0x7A, 0x9A, 0xAA, 0xBA, 0xCA,
790
0x1B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, 0x9B, 0xBB, 0xCB, 0xDB, 0x6C, 0x7C,
791
0x9C, 0xAC, 0xBC, 0xEC, 0x5D, 0x7D, 0x9D, 0xAD, 0xDD, 0x5E, 0x7E, 0x9E,
792
0xAE, 0xBE, 0x4F, 0x5F, 0x6F, 0x9F, 0xAF, 0xBF, 0xCF
793
};
794
795
static const uint8_t huff_a36_cb[12] = {
796
3, 12, 1, 3, 5, 5, 13, 27, 69, 96, 35, 2
797
};
798
799
static const uint8_t huff_a36_xlat[256] = {
800
0x00, 0x10, 0x01, 0x11, 0x20, 0x21, 0x02, 0x12, 0x22, 0x31, 0x41, 0x32,
801
0x13, 0x23, 0x30, 0x40, 0x51, 0x42, 0x03, 0x33, 0x43, 0x04, 0x14, 0x24,
802
0x34, 0x15, 0x25, 0x50, 0x61, 0x71, 0xD1, 0x52, 0x62, 0x72, 0xD2, 0x53,
803
0x63, 0xD3, 0x44, 0x54, 0x64, 0x05, 0x35, 0x45, 0x55, 0x16, 0x26, 0x36,
804
0x46, 0x17, 0x27, 0x1D, 0x2D, 0x3D, 0x60, 0x70, 0xD0, 0x81, 0x91, 0xA1,
805
0xC1, 0xE1, 0xF1, 0x82, 0x92, 0xC2, 0xE2, 0xF2, 0x73, 0x83, 0xE3, 0xF3,
806
0x74, 0x84, 0xC4, 0xD4, 0xE4, 0xF4, 0x65, 0x75, 0x85, 0xD5, 0xE5, 0x06,
807
0x56, 0x66, 0xD6, 0xE6, 0x07, 0x37, 0x47, 0x57, 0x67, 0xD7, 0xE7, 0x18,
808
0x28, 0x38, 0x48, 0x58, 0xD8, 0x19, 0x29, 0x2A, 0x1C, 0x2C, 0x0D, 0x4D,
809
0x5D, 0x6D, 0x7D, 0x8D, 0x9D, 0x1E, 0x2E, 0x3E, 0x4E, 0x5E, 0x6E, 0x7E,
810
0x1F, 0x2F, 0x3F, 0x80, 0x90, 0xA0, 0xC0, 0xE0, 0xF0, 0xB1, 0xA2, 0xB2,
811
0x93, 0xA3, 0xB3, 0xC3, 0x94, 0xA4, 0xB4, 0x95, 0xA5, 0xB5, 0xC5, 0xF5,
812
0x76, 0x86, 0x96, 0xA6, 0xC6, 0xF6, 0x77, 0x87, 0x97, 0xA7, 0xC7, 0xF7,
813
0x08, 0x68, 0x78, 0x88, 0x98, 0xC8, 0xE8, 0xF8, 0x09, 0x39, 0x49, 0x59,
814
0x69, 0x79, 0x89, 0xD9, 0xE9, 0xF9, 0x0A, 0x1A, 0x3A, 0x4A, 0x5A, 0x6A,
815
0xDA, 0xEA, 0xFA, 0x1B, 0x2B, 0x3B, 0x4B, 0x5B, 0xDB, 0xEB, 0xFB, 0x0C,
816
0x3C, 0x4C, 0x5C, 0x6C, 0x7C, 0x8C, 0x9C, 0xDC, 0xEC, 0xAD, 0xBD, 0xCD,
817
0xDD, 0xED, 0x0E, 0x8E, 0x9E, 0xAE, 0xBE, 0x0F, 0x4F, 0x5F, 0x6F, 0x7F,
818
0x8F, 0x9F, 0xAF, 0xB0, 0xB6, 0xB7, 0xA8, 0xB8, 0x99, 0xA9, 0xB9, 0xC9,
819
0x7A, 0x8A, 0x9A, 0xAA, 0xBA, 0xCA, 0x0B, 0x6B, 0x7B, 0x8B, 0x9B, 0xCB,
820
0xAC, 0xBC, 0xCC, 0xFC, 0xFD, 0xCE, 0xDE, 0xEE, 0xFE, 0xBF, 0xCF, 0xDF,
821
0xEF, 0xFF, 0xAB, 0xBB
822
};
823
824
static const uint8_t huff_a37_cb[7] = { 4, 8, 7, 6, 8, 22, 20 };
825
826
static const uint8_t huff_a37_xlat[63] = {
827
0, 1, 2, 3, 61, 62, 63, 4, 5, 6, 58, 59, 60, 7, 8, 9,
828
10, 54, 55, 56, 57, 11, 12, 13, 14, 15, 16, 25, 26, 27, 28, 29,
829
30, 35, 36, 37, 38, 48, 49, 50, 51, 52, 53, 17, 18, 19, 20, 21,
830
22, 23, 24, 31, 33, 34, 39, 40, 41, 42, 43, 44, 45, 46, 47
831
};
832
833
static const uint8_t huff_a41_cb[14] = {
834
1, 12, 1, 0, 0, 6, 2, 0, 0, 0, 19, 9, 24, 20
835
};
836
837
static const uint8_t huff_a41_xlat[81] = {
838
0x00, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x03, 0x50, 0xD0, 0x70,
839
0xF0, 0xC4, 0x34, 0x4C, 0xCC, 0x1C, 0x41, 0xC1, 0x31, 0x05, 0x0D, 0x43,
840
0xC3, 0x13, 0x07, 0x0F, 0x44, 0x14, 0x74, 0xDC, 0x3C, 0x11, 0x1D, 0x33,
841
0x37, 0x54, 0xD4, 0xF4, 0x5C, 0x7C, 0xFC, 0xD1, 0x71, 0xF1, 0xC5, 0x15,
842
0x35, 0x4D, 0xCD, 0xDD, 0x3D, 0xD3, 0x73, 0x47, 0xC7, 0x17, 0x77, 0x1F,
843
0x3F, 0x51, 0x45, 0x55, 0xD5, 0x75, 0xF5, 0x5D, 0x7D, 0xFD, 0x53, 0xF3,
844
0x57, 0xD7, 0xF7, 0x4F, 0xCF, 0x5F, 0xDF, 0x7F, 0xFF
845
};
846
847
static const uint8_t huff_a42_cb[10] = { 3, 10, 1, 2, 13, 1, 31, 13, 16, 4 };
848
849
static const uint8_t huff_a42_xlat[81] = {
850
0x00, 0x40, 0x01, 0x10, 0x50, 0x04, 0x44, 0x14, 0x54, 0x41, 0x11, 0x51,
851
0x05, 0x45, 0x15, 0x55, 0x59, 0x80, 0x90, 0x20, 0x60, 0x84, 0x94, 0x24,
852
0x64, 0x08, 0x48, 0x18, 0x58, 0x81, 0x91, 0x21, 0x61, 0x85, 0x95, 0x25,
853
0x65, 0x09, 0x49, 0x19, 0x02, 0x42, 0x12, 0x52, 0x06, 0x46, 0x16, 0x56,
854
0xA0, 0xA4, 0x68, 0xA1, 0xA5, 0x99, 0x29, 0x69, 0x96, 0x66, 0x4A, 0x1A,
855
0x5A, 0x88, 0x98, 0x28, 0x89, 0xA9, 0x82, 0x92, 0x22, 0x62, 0x86, 0x26,
856
0xA6, 0x0A, 0x9A, 0x2A, 0x6A, 0xA8, 0xA2, 0x8A, 0xAA
857
};
858
859
static const uint8_t huff_a43_cb[5] = { 2, 4, 2, 3, 2 };
860
861
static const uint8_t huff_a43_xlat[7] = { 0, 7, 1, 2, 6, 3, 5 };
862
863
static const uint8_t huff_a44_cb[9] = { 4, 10, 5, 4, 12, 17, 47, 24, 12 };
864
865
static const uint8_t huff_a44_xlat[121] = {
866
0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x21,
867
0xE1, 0x02, 0x12, 0xF2, 0x0E, 0x1E, 0xFE, 0x2F, 0xEF, 0x30, 0x50, 0xD0,
868
0xD1, 0x22, 0xE2, 0x03, 0x13, 0xF3, 0x0D, 0x1D, 0x2D, 0xFD, 0x2E, 0xEE,
869
0x3F, 0xDF, 0x40, 0xB0, 0xC0, 0x31, 0x41, 0x51, 0xB1, 0xC1, 0x32, 0xB2,
870
0xC2, 0xD2, 0x23, 0xB3, 0xD3, 0xE3, 0x04, 0x14, 0xE4, 0xF4, 0x05, 0x15,
871
0xD5, 0xE5, 0xF5, 0x0B, 0x1B, 0x2B, 0x3B, 0xEB, 0xFB, 0x0C, 0x1C, 0x2C,
872
0xFC, 0x3D, 0x5D, 0xED, 0x3E, 0x4E, 0x5E, 0xBE, 0xDE, 0x4F, 0x5F, 0xBF,
873
0xCF, 0x42, 0x52, 0x33, 0x53, 0xC3, 0x24, 0xB4, 0xD4, 0x25, 0x35, 0xC5,
874
0x4B, 0xCB, 0xDB, 0x3C, 0x4C, 0x5C, 0xDC, 0xEC, 0x4D, 0xBD, 0xCD, 0xDD,
875
0xCE, 0x43, 0x34, 0x44, 0x54, 0xC4, 0x45, 0x55, 0xB5, 0x5B, 0xBB, 0xBC,
876
0xCC
877
};
878
879
static const uint8_t huff_a45_cb[5] = { 2, 4, 2, 2, 4 };
880
881
static const uint8_t huff_a45_xlat[8] = { 1, 2, 0, 3, 4, 5, 6, 7 };
882
883
static const uint8_t huff_a46_cb[7] = { 5, 9, 1, 16, 31, 36, 172 };
884
885
static const uint8_t huff_a46_xlat[256] = {
886
0x02, 0x00, 0x30, 0x21, 0x31, 0x41, 0x61, 0x12, 0x22, 0x42, 0x62, 0x43,
887
0x53, 0x24, 0x45, 0x26, 0x27, 0x10, 0x40, 0xB0, 0x01, 0x11, 0x81, 0x32,
888
0x52, 0x72, 0x92, 0x03, 0x13, 0x33, 0x63, 0x14, 0x34, 0x54, 0x64, 0x74,
889
0x05, 0x15, 0x25, 0x35, 0x55, 0x65, 0x06, 0x46, 0x56, 0x57, 0x67, 0x88,
890
0x20, 0x51, 0x91, 0xD1, 0xF2, 0x23, 0x83, 0x93, 0x04, 0x44, 0x84, 0x94,
891
0x75, 0x85, 0xC5, 0x36, 0x66, 0x96, 0xB6, 0x07, 0x37, 0x97, 0x08, 0x28,
892
0x38, 0x48, 0x68, 0x09, 0x69, 0x79, 0x0A, 0x2A, 0x1B, 0x9B, 0x2C, 0x4D,
893
0x50, 0x60, 0x70, 0x80, 0x90, 0xA0, 0xC0, 0xD0, 0xE0, 0xF0, 0x71, 0xA1,
894
0xB1, 0xC1, 0xE1, 0xF1, 0x82, 0xA2, 0xB2, 0xC2, 0xD2, 0xE2, 0x73, 0xA3,
895
0xB3, 0xC3, 0xD3, 0xE3, 0xF3, 0xA4, 0xB4, 0xC4, 0xD4, 0xE4, 0xF4, 0x95,
896
0xA5, 0xB5, 0xD5, 0xE5, 0xF5, 0x16, 0x76, 0x86, 0xA6, 0xC6, 0xD6, 0xE6,
897
0xF6, 0x17, 0x47, 0x77, 0x87, 0xA7, 0xB7, 0xC7, 0xD7, 0xE7, 0xF7, 0x18,
898
0x58, 0x78, 0x98, 0xA8, 0xB8, 0xC8, 0xD8, 0xE8, 0xF8, 0x19, 0x29, 0x39,
899
0x49, 0x59, 0x89, 0x99, 0xA9, 0xB9, 0xC9, 0xD9, 0xE9, 0xF9, 0x1A, 0x3A,
900
0x4A, 0x5A, 0x6A, 0x7A, 0x8A, 0x9A, 0xAA, 0xBA, 0xCA, 0xDA, 0xEA, 0xFA,
901
0x0B, 0x2B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, 0x8B, 0xAB, 0xBB, 0xCB, 0xDB,
902
0xEB, 0xFB, 0x0C, 0x1C, 0x3C, 0x4C, 0x5C, 0x6C, 0x7C, 0x8C, 0x9C, 0xAC,
903
0xBC, 0xCC, 0xDC, 0xEC, 0xFC, 0x0D, 0x1D, 0x2D, 0x3D, 0x5D, 0x6D, 0x7D,
904
0x8D, 0x9D, 0xAD, 0xBD, 0xCD, 0xDD, 0xED, 0xFD, 0x0E, 0x1E, 0x2E, 0x3E,
905
0x4E, 0x5E, 0x6E, 0x7E, 0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0xDE, 0xEE, 0xFE,
906
0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0x6F, 0x7F, 0x8F, 0x9F, 0xAF, 0xBF,
907
0xCF, 0xDF, 0xEF, 0xFF
908
};
909
910
static const uint8_t huff_a47_cb[8] = { 4, 9, 5, 12, 9, 12, 15, 10 };
911
912
static const uint8_t huff_a47_xlat[63] = {
913
0, 1, 2, 62, 63, 3, 4, 5, 6, 8, 54, 56, 57, 58, 59, 60,
914
61, 7, 9, 10, 11, 12, 13, 14, 53, 55, 15, 16, 17, 18, 19, 20,
915
21, 36, 37, 39, 42, 52, 22, 25, 28, 35, 38, 40, 41, 43, 45, 46,
916
47, 48, 49, 50, 51, 23, 24, 26, 27, 29, 30, 31, 33, 34, 44
917
};
918
919
static const uint8_t huff_a51_cb[12] = {
920
2, 11, 1, 0, 6, 2, 6, 18, 4, 26, 6, 12
921
};
922
923
static const uint8_t huff_a51_xlat[81] = {
924
0x00, 0x40, 0xC0, 0x30, 0x04, 0x01, 0x03, 0x10, 0x0C, 0xD0, 0x70, 0x34,
925
0x1C, 0x0D, 0x07, 0x50, 0xF0, 0x44, 0xC4, 0x14, 0x4C, 0xCC, 0x3C, 0x41,
926
0xC1, 0x11, 0x31, 0x05, 0x43, 0xC3, 0x13, 0x33, 0x0F, 0x74, 0xDC, 0x1D,
927
0x37, 0x54, 0xD4, 0xF4, 0x5C, 0x7C, 0xFC, 0xD1, 0x71, 0xF1, 0xC5, 0x15,
928
0x35, 0x4D, 0xCD, 0xDD, 0x3D, 0x53, 0xD3, 0x73, 0x47, 0xC7, 0x17, 0x77,
929
0x4F, 0x1F, 0x3F, 0x51, 0x45, 0x55, 0xF3, 0xCF, 0xFF, 0xD5, 0x75, 0xF5,
930
0x5D, 0x7D, 0xFD, 0x57, 0xD7, 0xF7, 0x5F, 0xDF, 0x7F
931
};
932
933
static const uint8_t huff_a52_cb[12] = { 1, 10, 1, 0, 2, 2, 0, 4, 3, 8, 3, 2 };
934
935
static const uint8_t huff_a52_xlat[25] = {
936
0x00, 0x08, 0x38, 0x01, 0x07, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x02, 0x06,
937
0x30, 0x11, 0x31, 0x0A, 0x3A, 0x0E, 0x17, 0x37, 0x32, 0x16, 0x3E, 0x12,
938
0x36
939
};
940
941
static const uint8_t huff_a53_xlat[7] = { 0, 1, 2, 6, 7, 3, 5 };
942
943
static const uint8_t huff_a54_cb[8] = { 4, 9, 4, 7, 12, 19, 21, 58 };
944
945
static const uint8_t huff_a54_xlat[121] = {
946
0x00, 0x01, 0x0F, 0x1F, 0x10, 0xE0, 0xF0, 0x11, 0xF1, 0x2F, 0xFF, 0x20,
947
0x21, 0xE1, 0x02, 0x12, 0xF2, 0x03, 0xF3, 0x0E, 0x2E, 0xFE, 0x3F, 0x30,
948
0x40, 0xD0, 0xC1, 0xD1, 0x22, 0xC2, 0x33, 0xE3, 0x0C, 0xCC, 0x0D, 0x1D,
949
0x2D, 0xFD, 0x1E, 0x3E, 0x5E, 0xEF, 0xC0, 0x52, 0xB2, 0xD2, 0x43, 0xC3,
950
0xD3, 0x24, 0x45, 0xF5, 0x4B, 0x5B, 0xFB, 0x1C, 0x3D, 0xBD, 0xDD, 0xEE,
951
0xBF, 0xCF, 0xDF, 0x50, 0xB0, 0x31, 0x41, 0x51, 0xB1, 0x32, 0x42, 0xE2,
952
0x13, 0x23, 0x53, 0xB3, 0x04, 0x14, 0x34, 0x44, 0x54, 0xB4, 0xC4, 0xD4,
953
0xE4, 0xF4, 0x05, 0x15, 0x25, 0x35, 0x55, 0xB5, 0xC5, 0xD5, 0xE5, 0x0B,
954
0x1B, 0x2B, 0x3B, 0xBB, 0xCB, 0xDB, 0xEB, 0x2C, 0x3C, 0x4C, 0x5C, 0xBC,
955
0xDC, 0xEC, 0xFC, 0x4D, 0x5D, 0xCD, 0xED, 0x4E, 0xBE, 0xCE, 0xDE, 0x4F,
956
0x5F
957
};
958
959
static const uint8_t huff_a55_cb[8] = { 1, 6, 1, 1, 1, 0, 3, 2 };
960
961
static const uint8_t huff_a55_xlat[8] = { 0, 1, 2, 3, 6, 7, 4, 5 };
962
963
static const uint8_t huff_a56_cb[7] = { 3, 7, 1, 8, 6, 8, 8 };
964
965
static const uint8_t huff_a56_xlat[31] = {
966
4, 0, 1, 2, 3, 28, 29, 30, 31, 5, 6, 7, 24, 25, 27, 8,
967
9, 14, 19, 21, 22, 23, 26, 10, 11, 12, 13, 15, 17, 18, 20
968
};
969
970
static const uint8_t huff_a57_cb[9] = { 3, 9, 1, 5, 7, 8, 16, 22, 4 };
971
972
static const uint8_t huff_a57_xlat[63] = {
973
0, 1, 2, 61, 62, 63, 3, 4, 5, 6, 58, 59,
974
60, 7, 8, 9, 10, 54, 55, 56, 57, 11, 12, 13,
975
14, 15, 26, 27, 28, 36, 37, 38, 49, 50, 51, 52,
976
53, 16, 17, 18, 19, 20, 21, 23, 24, 25, 29, 30,
977
31, 33, 34, 35, 39, 43, 44, 45, 46, 47, 48, 22,
978
40, 41, 42
979
};
980
981
static const uint8_t huff_a61_cb[12] = {
982
2, 11, 1, 0, 8, 0, 1, 16, 10, 29, 12, 4
983
};
984
985
static const uint8_t huff_a61_xlat[81] = {
986
0x00, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x03, 0x70, 0x50, 0xD0,
987
0xF0, 0x44, 0xC4, 0x14, 0x34, 0x4C, 0x1C, 0x3C, 0x31, 0x05, 0x0D, 0x13,
988
0x07, 0x0F, 0x74, 0xCC, 0xDC, 0xFC, 0x41, 0xC1, 0x11, 0x43, 0xC3, 0x33,
989
0x54, 0xD4, 0xF4, 0x5C, 0x7C, 0x51, 0xD1, 0x71, 0xF1, 0x45, 0xC5, 0x15,
990
0x35, 0x4D, 0xCD, 0x1D, 0x3D, 0x53, 0xD3, 0x73, 0xF3, 0x47, 0xC7, 0x17,
991
0x37, 0x4F, 0xCF, 0x1F, 0x3F, 0x55, 0xD5, 0x75, 0xF5, 0x5D, 0xDD, 0xFD,
992
0x57, 0xD7, 0x77, 0xF7, 0xFF, 0x7D, 0x5F, 0xDF, 0x7F
993
};
994
995
static const uint8_t huff_a62_cb[8] = { 3, 8, 5, 2, 2, 9, 5, 2 };
996
997
static const uint8_t huff_a62_xlat[25] = {
998
0x00, 0x08, 0x38, 0x01, 0x07, 0x39, 0x0F, 0x09, 0x3F, 0x10, 0x30, 0x31,
999
0x02, 0x3A, 0x06, 0x0E, 0x17, 0x37, 0x11, 0x0A, 0x32, 0x16, 0x3E, 0x12,
1000
0x36
1001
};
1002
1003
static const uint8_t huff_a63_cb[11] = {
1004
3, 11, 1, 1, 10, 4, 16, 29, 46, 75, 74
1005
};
1006
1007
static const uint8_t huff_a63_xlat[256] = {
1008
0x00, 0x40, 0x10, 0x50, 0x04, 0x44, 0x14, 0x01, 0x41, 0x05, 0x45, 0x55,
1009
0x54, 0x11, 0x51, 0x15, 0x80, 0x90, 0x60, 0x24, 0x64, 0xA4, 0x48, 0x61,
1010
0x95, 0x25, 0xA5, 0x02, 0x42, 0x52, 0x16, 0x56, 0x20, 0x84, 0x94, 0x18,
1011
0x58, 0x81, 0x91, 0x85, 0x65, 0x09, 0x49, 0x19, 0x59, 0x99, 0x29, 0x69,
1012
0x79, 0x5D, 0x12, 0x62, 0x06, 0x46, 0x86, 0x66, 0x1A, 0x5A, 0x6A, 0x47,
1013
0x17, 0xC0, 0xA0, 0xE0, 0xC4, 0xD4, 0x74, 0x08, 0x78, 0x0C, 0x4C, 0x1C,
1014
0x5C, 0xD1, 0x21, 0xE1, 0x71, 0xC5, 0xE5, 0x75, 0xB5, 0x89, 0xBD, 0x92,
1015
0x22, 0x96, 0xA6, 0x36, 0x0A, 0x4A, 0x8A, 0x9A, 0x2A, 0x7A, 0xDE, 0x6E,
1016
0x43, 0x13, 0x53, 0x23, 0x07, 0x77, 0x4B, 0x1B, 0x9B, 0x6B, 0x2F, 0xD0,
1017
0x30, 0x70, 0xE4, 0x34, 0xF4, 0xC8, 0x98, 0x28, 0x68, 0xA8, 0xE8, 0x38,
1018
0xB8, 0xF8, 0x9C, 0x2C, 0x6C, 0x7C, 0xA1, 0xB1, 0xD5, 0x35, 0xC9, 0xD9,
1019
0xA9, 0xE9, 0x39, 0xB9, 0xF9, 0xCD, 0x1D, 0x2D, 0xAD, 0x7D, 0xC2, 0xD2,
1020
0xA2, 0xB2, 0xF2, 0xC6, 0x26, 0x76, 0xB6, 0xDA, 0xAA, 0xEA, 0x3A, 0xFA,
1021
0x0E, 0x4E, 0x2E, 0x7E, 0xBE, 0xFE, 0x03, 0x83, 0x63, 0xA3, 0xB3, 0x87,
1022
0x57, 0x97, 0xD7, 0x27, 0x0B, 0x8B, 0x5B, 0x2B, 0xAB, 0xCF, 0x1F, 0x9F,
1023
0x7F, 0xBF, 0xB0, 0xF0, 0xB4, 0x88, 0xD8, 0x8C, 0xCC, 0xDC, 0xAC, 0xEC,
1024
0x3C, 0xBC, 0xFC, 0xC1, 0x31, 0xF1, 0xF5, 0x0D, 0x4D, 0x8D, 0x9D, 0xDD,
1025
0x6D, 0xED, 0x3D, 0xFD, 0x82, 0xE2, 0x32, 0x72, 0xD6, 0xE6, 0xF6, 0xCA,
1026
0xBA, 0x8E, 0xCE, 0x1E, 0x5E, 0x9E, 0xAE, 0xEE, 0x3E, 0xC3, 0x93, 0xD3,
1027
0xE3, 0x33, 0x73, 0xF3, 0xC7, 0x67, 0xA7, 0xE7, 0x37, 0xB7, 0xF7, 0xCB,
1028
0xDB, 0xEB, 0x3B, 0x7B, 0xBB, 0xFB, 0x0F, 0x4F, 0x8F, 0x5F, 0xDF, 0x6F,
1029
0xAF, 0xEF, 0x3F, 0xFF
1030
};
1031
1032
static const uint8_t huff_a64_cb[8] = { 4, 9, 1, 7, 12, 36, 63, 2 };
1033
1034
static const uint8_t huff_a64_xlat[121] = {
1035
0x00, 0x10, 0x20, 0xE0, 0xF0, 0x02, 0x0E, 0xEF, 0x30, 0x01, 0x11, 0x21,
1036
0x31, 0xF1, 0x12, 0xF2, 0x1E, 0xEE, 0xDF, 0xFF, 0x40, 0xC0, 0xD0, 0xD1,
1037
0xE1, 0x22, 0x32, 0x42, 0xD2, 0xE2, 0x03, 0x13, 0x23, 0xB3, 0xC3, 0xE3,
1038
0xF3, 0xE4, 0x05, 0xF5, 0x2B, 0x0C, 0xFC, 0x1D, 0x2D, 0xBD, 0xDD, 0xFD,
1039
0x2E, 0x4E, 0xDE, 0xFE, 0x0F, 0x1F, 0x2F, 0x3F, 0x50, 0xB0, 0x41, 0x51,
1040
0xB1, 0xC1, 0x52, 0xB2, 0xC2, 0x33, 0x43, 0x53, 0xD3, 0x04, 0x14, 0x24,
1041
0x34, 0x44, 0x54, 0xB4, 0xC4, 0xD4, 0xF4, 0x15, 0x25, 0x35, 0x45, 0x55,
1042
0xB5, 0xC5, 0xD5, 0xE5, 0x0B, 0x1B, 0x3B, 0x4B, 0x5B, 0xBB, 0xCB, 0xDB,
1043
0xEB, 0xFB, 0x1C, 0x2C, 0x3C, 0x4C, 0x5C, 0xBC, 0xCC, 0xDC, 0xEC, 0x0D,
1044
0x3D, 0x4D, 0x5D, 0xCD, 0xED, 0x3E, 0x5E, 0xBE, 0xCE, 0x4F, 0xCF, 0x5F,
1045
0xBF
1046
};
1047
1048
static const uint8_t huff_a65_cb[8] = { 2, 7, 3, 0, 1, 3, 4, 4 };
1049
1050
static const uint8_t huff_a65_xlat[15] = {
1051
0, 1, 15, 14, 2, 3, 13, 4, 6, 10, 12, 5, 7, 9, 11
1052
};
1053
1054
static const uint8_t huff_a66_cb[11] = { 2, 10, 1, 2, 2, 6, 8, 6, 3, 1, 2 };
1055
1056
static const uint8_t huff_a66_xlat[31] = {
1057
0, 1, 31, 2, 30, 3, 4, 15, 17, 28, 29, 5, 6, 7, 8, 24,
1058
25, 26, 27, 9, 10, 11, 21, 22, 23, 12, 19, 20, 13, 14, 18
1059
};
1060
1061
static const uint8_t huff_a67_cb[10] = { 2, 9, 1, 1, 3, 4, 6, 13, 25, 10 };
1062
1063
static const uint8_t huff_a67_xlat[63] = {
1064
0, 1, 2, 62, 63, 3, 4, 60, 61, 5, 6, 7, 57, 58, 59, 8,
1065
9, 10, 11, 12, 13, 26, 38, 52, 53, 54, 55, 56, 14, 15, 16, 17,
1066
18, 19, 25, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 39, 45, 46,
1067
47, 48, 49, 50, 51, 20, 21, 22, 23, 24, 40, 41, 42, 43, 44
1068
};
1069
1070
static const uint8_t huff_a71_cb[5] = { 1, 3, 1, 1, 2 };
1071
1072
static const uint8_t huff_a72_cb[12] = {
1073
2, 11, 1, 0, 4, 8, 3, 8, 24, 17, 12, 4
1074
};
1075
1076
static const uint8_t huff_a72_xlat[81] = {
1077
0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x05,
1078
0x15, 0x51, 0x45, 0x55, 0x80, 0x90, 0x20, 0x64, 0x08, 0x19, 0x02, 0x06,
1079
0x60, 0x84, 0x94, 0x24, 0x48, 0x18, 0x58, 0x81, 0x91, 0x21, 0x61, 0x85,
1080
0x95, 0x25, 0x65, 0x09, 0x49, 0x59, 0x42, 0x12, 0x52, 0x46, 0x16, 0x56,
1081
0xA0, 0xA4, 0x98, 0x28, 0x68, 0xA1, 0xA5, 0x99, 0x29, 0x69, 0x96, 0x26,
1082
0x66, 0x0A, 0x4A, 0x1A, 0x5A, 0x88, 0xA8, 0x89, 0xA9, 0x82, 0x92, 0x22,
1083
0x62, 0x86, 0xA6, 0x2A, 0x6A, 0xA2, 0x8A, 0x9A, 0xAA
1084
};
1085
1086
static const uint8_t huff_a73_cb[11] = { 2, 10, 1, 1, 5, 2, 8, 7, 13, 8, 4 };
1087
1088
static const uint8_t huff_a73_xlat[49] = {
1089
0x00, 0x08, 0x38, 0x01, 0x39, 0x07, 0x0F, 0x09, 0x3F, 0x10, 0x30, 0x31,
1090
0x02, 0x3A, 0x06, 0x0E, 0x17, 0x11, 0x0A, 0x32, 0x0D, 0x16, 0x3E, 0x37,
1091
0x18, 0x28, 0x19, 0x29, 0x12, 0x2A, 0x03, 0x3B, 0x05, 0x15, 0x1E, 0x1F,
1092
0x2F, 0x1A, 0x0B, 0x2B, 0x33, 0x35, 0x3D, 0x2E, 0x36, 0x13, 0x1B, 0x1D,
1093
0x2D
1094
};
1095
1096
static const uint8_t huff_a74_cb[14] = {
1097
1, 12, 1, 0, 0, 4, 0, 4, 5, 9, 30, 45, 21, 2
1098
};
1099
1100
static const uint8_t huff_a74_xlat[121] = {
1101
0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x02,
1102
0xF2, 0x0E, 0x21, 0xE1, 0x12, 0xE2, 0x1E, 0x2E, 0xFE, 0x2F, 0xEF, 0x30,
1103
0x50, 0xB0, 0xC0, 0xD0, 0x31, 0xB1, 0xD1, 0x22, 0xD2, 0x03, 0x13, 0xE3,
1104
0xF3, 0xF4, 0x05, 0xE5, 0xF5, 0x0B, 0x1B, 0x0C, 0x0D, 0x1D, 0x2D, 0xFD,
1105
0x3E, 0xEE, 0x3F, 0x5F, 0xDF, 0x40, 0x41, 0x51, 0xC1, 0x32, 0x42, 0x52,
1106
0xB2, 0xC2, 0x23, 0x33, 0xB3, 0xC3, 0xD3, 0x04, 0x14, 0x24, 0xD4, 0xE4,
1107
0x15, 0x25, 0xC5, 0xD5, 0x2B, 0x3B, 0xEB, 0xFB, 0x1C, 0x2C, 0x3C, 0x5C,
1108
0xEC, 0xFC, 0x3D, 0x5D, 0xDD, 0xED, 0x4E, 0x5E, 0xBE, 0xCE, 0xDE, 0x4F,
1109
0xBF, 0xCF, 0x43, 0x53, 0x34, 0x54, 0xB4, 0xC4, 0x35, 0x45, 0x55, 0xB5,
1110
0x4B, 0x5B, 0xCB, 0xDB, 0x4C, 0xBC, 0xCC, 0xDC, 0x4D, 0xBD, 0xCD, 0x44,
1111
0xBB
1112
};
1113
1114
static const uint8_t huff_a75_cb[7] = { 2, 6, 1, 3, 3, 4, 4 };
1115
1116
static const uint8_t huff_a75_xlat[15] = {
1117
0, 1, 14, 15, 2, 3, 13, 4, 6, 10, 12, 5, 7, 9, 11
1118
};
1119
1120
static const uint8_t huff_a76_cb[12] = {
1121
3, 12, 1, 3, 4, 8, 10, 36, 60, 78, 48, 8
1122
};
1123
1124
static const uint8_t huff_a76_xlat[256] = {
1125
0x00, 0x10, 0x01, 0x11, 0x20, 0x21, 0x02, 0x12, 0x30, 0x31, 0x41, 0x22,
1126
0x03, 0x13, 0x23, 0x14, 0x40, 0x51, 0x61, 0x32, 0x42, 0x33, 0x04, 0x24,
1127
0x15, 0x16, 0x50, 0x60, 0xD0, 0x71, 0x81, 0xD1, 0xE1, 0xF1, 0x52, 0x62,
1128
0x72, 0xD2, 0x43, 0x53, 0x63, 0xD3, 0x34, 0x44, 0x54, 0x05, 0x25, 0x35,
1129
0x45, 0x06, 0x26, 0x36, 0x17, 0x27, 0x18, 0x0D, 0x1D, 0x2D, 0x3D, 0x1E,
1130
0x2E, 0x1F, 0x70, 0x80, 0xE0, 0xF0, 0x91, 0xA1, 0xC1, 0x82, 0x92, 0xC2,
1131
0xE2, 0xF2, 0x73, 0x83, 0x93, 0xE3, 0xF3, 0x64, 0x74, 0x84, 0xD4, 0xE4,
1132
0xF4, 0x55, 0x65, 0xD5, 0xE5, 0xF5, 0x46, 0x56, 0x66, 0xD6, 0x07, 0x37,
1133
0x47, 0x57, 0x08, 0x28, 0x38, 0x48, 0x19, 0x29, 0x39, 0x1A, 0x2A, 0x1B,
1134
0x1C, 0x2C, 0x3C, 0x4D, 0x5D, 0x6D, 0x0E, 0x3E, 0x4E, 0x5E, 0x0F, 0x2F,
1135
0x3F, 0x4F, 0x90, 0xA0, 0xB0, 0xC0, 0xB1, 0xA2, 0xB2, 0xA3, 0xB3, 0xC3,
1136
0x94, 0xA4, 0xB4, 0xC4, 0x75, 0x85, 0x95, 0xA5, 0xC5, 0x76, 0x86, 0x96,
1137
0xE6, 0xF6, 0x67, 0x77, 0x87, 0xD7, 0xE7, 0xF7, 0x58, 0x68, 0x78, 0x88,
1138
0xD8, 0xE8, 0xF8, 0x09, 0x49, 0x59, 0x69, 0xD9, 0xE9, 0xF9, 0x0A, 0x3A,
1139
0x4A, 0x5A, 0xDA, 0xEA, 0x0B, 0x2B, 0x3B, 0x4B, 0xDB, 0x0C, 0x4C, 0x5C,
1140
0x6C, 0xDC, 0x7D, 0x8D, 0x9D, 0xAD, 0xBD, 0xCD, 0x6E, 0x7E, 0x8E, 0x9E,
1141
0xAE, 0xBE, 0x5F, 0x6F, 0x7F, 0x8F, 0x9F, 0xAF, 0xB5, 0xA6, 0xB6, 0xC6,
1142
0x97, 0xA7, 0xC7, 0x98, 0xA8, 0xB8, 0xC8, 0x79, 0x89, 0x99, 0xA9, 0xB9,
1143
0xC9, 0x6A, 0x7A, 0x8A, 0x9A, 0xAA, 0xCA, 0xFA, 0x5B, 0x6B, 0x7B, 0x8B,
1144
0xCB, 0xEB, 0xFB, 0x7C, 0x8C, 0x9C, 0xAC, 0xBC, 0xEC, 0xFC, 0xDD, 0xED,
1145
0xFD, 0xCE, 0xDE, 0xEE, 0xFE, 0xBF, 0xCF, 0xDF, 0xB7, 0xBA, 0x9B, 0xAB,
1146
0xBB, 0xCC, 0xEF, 0xFF
1147
};
1148
1149
static const uint8_t huff_b01_cb[14] = {
1150
1, 12, 1, 0, 0, 2, 6, 0, 11, 13, 12, 24, 4, 8
1151
};
1152
1153
static const uint8_t huff_b01_xlat[81] = {
1154
0x00, 0x01, 0x03, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x50, 0xD0, 0x70,
1155
0xF0, 0x34, 0x1C, 0x05, 0x0D, 0x13, 0x07, 0x0F, 0x44, 0xC4, 0x14, 0x4C,
1156
0xCC, 0x3C, 0x41, 0xC1, 0x11, 0x31, 0x43, 0xC3, 0x33, 0x54, 0x74, 0xDC,
1157
0xFC, 0x71, 0x15, 0x4D, 0x1D, 0xD3, 0xC7, 0x37, 0x3F, 0xD4, 0xF4, 0x5C,
1158
0x7C, 0x51, 0xD1, 0xF1, 0x45, 0xC5, 0x55, 0x35, 0xCD, 0xDD, 0x3D, 0x53,
1159
0x73, 0xF3, 0x47, 0x17, 0x77, 0x4F, 0xCF, 0x1F, 0xFF, 0xF5, 0x7D, 0xD7,
1160
0x5F, 0xD5, 0x75, 0x5D, 0xFD, 0x57, 0xF7, 0xDF, 0x7F
1161
};
1162
1163
static const uint8_t huff_b02_cb[14] = {
1164
1, 12, 1, 0, 0, 4, 0, 8, 4, 9, 19, 13, 13, 10
1165
};
1166
1167
static const uint8_t huff_b02_xlat[81] = {
1168
0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x05,
1169
0x15, 0x80, 0x51, 0x45, 0x55, 0x90, 0x20, 0x60, 0x24, 0x08, 0x18, 0x09,
1170
0x02, 0x06, 0x84, 0x94, 0x64, 0x48, 0x58, 0x81, 0x91, 0x21, 0x61, 0x95,
1171
0x25, 0x65, 0x19, 0x59, 0x42, 0x12, 0x46, 0x16, 0x56, 0xA0, 0xA4, 0x28,
1172
0x68, 0x85, 0xA5, 0x49, 0x29, 0x69, 0x52, 0x0A, 0x1A, 0x5A, 0x88, 0x98,
1173
0xA1, 0x89, 0x99, 0xA9, 0x22, 0x62, 0x96, 0x26, 0x66, 0x4A, 0x6A, 0xA8,
1174
0x82, 0x92, 0xA2, 0x86, 0xA6, 0x8A, 0x9A, 0x2A, 0xAA
1175
};
1176
1177
static const uint8_t huff_b03_cb[11] = { 1, 9, 1, 0, 0, 4, 0, 5, 12, 13, 14 };
1178
1179
static const uint8_t huff_b03_xlat[49] = {
1180
0x00, 0x08, 0x38, 0x01, 0x07, 0x30, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x18,
1181
0x28, 0x31, 0x02, 0x3A, 0x03, 0x05, 0x06, 0x0E, 0x17, 0x37, 0x11, 0x19,
1182
0x29, 0x0A, 0x32, 0x0B, 0x3B, 0x0D, 0x15, 0x3D, 0x3E, 0x1F, 0x2F, 0x12,
1183
0x1A, 0x2A, 0x13, 0x1B, 0x2B, 0x33, 0x1D, 0x2D, 0x35, 0x16, 0x1E, 0x2E,
1184
0x36
1185
};
1186
1187
static const uint8_t huff_b04_cb[12] = {
1188
2, 11, 1, 0, 4, 4, 5, 9, 30, 45, 21, 2
1189
};
1190
1191
static const uint8_t huff_b04_xlat[121] = {
1192
0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x02,
1193
0xF2, 0x0E, 0x21, 0xE1, 0x12, 0xE2, 0x1E, 0x2E, 0xFE, 0x2F, 0xEF, 0x30,
1194
0x50, 0xB0, 0xC0, 0xD0, 0x31, 0xB1, 0xD1, 0x22, 0xD2, 0x03, 0x13, 0xE3,
1195
0xF3, 0xF4, 0x05, 0xE5, 0xF5, 0x0B, 0x1B, 0x0C, 0x0D, 0x1D, 0x2D, 0xFD,
1196
0x3E, 0xEE, 0x3F, 0x5F, 0xDF, 0x40, 0x41, 0x51, 0xC1, 0x32, 0x42, 0x52,
1197
0xB2, 0xC2, 0x23, 0x33, 0xB3, 0xC3, 0xD3, 0x04, 0x14, 0x24, 0xD4, 0xE4,
1198
0x15, 0x25, 0xC5, 0xD5, 0x2B, 0x3B, 0xEB, 0xFB, 0x1C, 0x2C, 0x3C, 0x5C,
1199
0xEC, 0xFC, 0x3D, 0x5D, 0xDD, 0xED, 0x4E, 0x5E, 0xBE, 0xCE, 0xDE, 0x4F,
1200
0xBF, 0xCF, 0x43, 0x53, 0x34, 0x54, 0xB4, 0xC4, 0x35, 0x45, 0x55, 0xB5,
1201
0x4B, 0x5B, 0xCB, 0xDB, 0x4C, 0xBC, 0xCC, 0xDC, 0x4D, 0xBD, 0xCD, 0x44,
1202
0xBB
1203
};
1204
1205
static const uint8_t huff_b05_cb[11] = {
1206
3, 11, 1, 4, 4, 4, 12, 30, 73, 75, 22
1207
};
1208
1209
static const uint8_t huff_b05_xlat[225] = {
1210
0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x02,
1211
0x0E, 0x30, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x03, 0x0D, 0x1E, 0xFE, 0x2F,
1212
0xEF, 0x40, 0x60, 0x70, 0x90, 0xA0, 0xC0, 0x31, 0xD1, 0x22, 0x32, 0xD2,
1213
0xE2, 0x13, 0x23, 0xE3, 0xF3, 0x04, 0x06, 0x07, 0x09, 0x0A, 0x0C, 0x1D,
1214
0x2D, 0xFD, 0x2E, 0x3E, 0xEE, 0x3F, 0xDF, 0x50, 0xB0, 0x41, 0x51, 0x61,
1215
0x71, 0x91, 0xA1, 0xB1, 0xC1, 0x42, 0x62, 0x72, 0x92, 0xA2, 0xC2, 0x33,
1216
0x93, 0xA3, 0xD3, 0x14, 0x24, 0xE4, 0xF4, 0x05, 0x15, 0xF5, 0x16, 0x26,
1217
0xD6, 0xE6, 0xF6, 0x17, 0x27, 0xD7, 0xE7, 0xF7, 0x19, 0x29, 0x39, 0xE9,
1218
0xF9, 0x1A, 0x2A, 0xEA, 0xFA, 0x0B, 0x1B, 0xFB, 0x1C, 0x2C, 0xEC, 0xFC,
1219
0x3D, 0x7D, 0x9D, 0xDD, 0xED, 0x4E, 0x6E, 0x7E, 0x9E, 0xAE, 0xCE, 0xDE,
1220
0x4F, 0x5F, 0x6F, 0x7F, 0x9F, 0xAF, 0xBF, 0xCF, 0x52, 0xB2, 0x43, 0x53,
1221
0x63, 0x73, 0xB3, 0xC3, 0x34, 0x44, 0x64, 0x74, 0x94, 0xA4, 0xB4, 0xC4,
1222
0xD4, 0x25, 0x35, 0x65, 0x75, 0x95, 0xA5, 0xD5, 0xE5, 0x36, 0x46, 0x56,
1223
0x66, 0xA6, 0xB6, 0xC6, 0x37, 0x47, 0x57, 0xB7, 0xC7, 0x49, 0x59, 0x69,
1224
0xB9, 0xC9, 0xD9, 0x3A, 0x4A, 0x5A, 0x6A, 0xAA, 0xBA, 0xCA, 0xDA, 0x2B,
1225
0x3B, 0x6B, 0x7B, 0x9B, 0xAB, 0xDB, 0xEB, 0x3C, 0x4C, 0x6C, 0x7C, 0x9C,
1226
0xAC, 0xCC, 0xDC, 0x4D, 0x5D, 0x6D, 0xAD, 0xBD, 0xCD, 0x5E, 0xBE, 0x54,
1227
0x45, 0x55, 0xB5, 0xC5, 0x76, 0x96, 0x67, 0x77, 0x97, 0xA7, 0x79, 0x99,
1228
0xA9, 0x7A, 0x9A, 0x4B, 0x5B, 0xBB, 0xCB, 0x5C, 0xBC
1229
};
1230
1231
static const uint8_t huff_b07_cb[9] = { 3, 9, 3, 2, 4, 8, 23, 13, 10 };
1232
1233
static const uint8_t huff_b07_xlat[63] = {
1234
0, 1, 63, 2, 62, 3, 4, 60, 61, 5, 6, 7, 8, 56, 57, 58,
1235
59, 9, 10, 11, 12, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36,
1236
37, 38, 39, 51, 52, 53, 54, 55, 13, 14, 15, 16, 17, 18, 19, 45,
1237
46, 47, 48, 49, 50, 20, 21, 22, 23, 24, 40, 41, 42, 43, 44
1238
};
1239
1240
static const uint8_t huff_b12_cb[10] = { 3, 10, 1, 3, 12, 0, 30, 9, 18, 8 };
1241
1242
static const uint8_t huff_b12_xlat[81] = {
1243
0x00, 0x40, 0x04, 0x01, 0x10, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x51,
1244
0x05, 0x45, 0x15, 0x55, 0x80, 0x90, 0x20, 0x60, 0x84, 0x94, 0x24, 0x64,
1245
0x08, 0x48, 0x18, 0x81, 0x91, 0x61, 0x85, 0x95, 0x25, 0x65, 0x09, 0x49,
1246
0x19, 0x59, 0x02, 0x42, 0x12, 0x52, 0x06, 0x46, 0x16, 0x56, 0xA4, 0x58,
1247
0x68, 0x21, 0xA5, 0x29, 0x69, 0x1A, 0x5A, 0xA0, 0x88, 0x98, 0x28, 0xA1,
1248
0x89, 0x99, 0xA9, 0x92, 0x22, 0x62, 0x86, 0x96, 0x26, 0x66, 0x0A, 0x4A,
1249
0x6A, 0xA8, 0x82, 0xA2, 0xA6, 0x8A, 0x9A, 0x2A, 0xAA
1250
};
1251
1252
static const uint8_t huff_b14_cb[14] = {
1253
1, 12, 1, 0, 0, 4, 0, 3, 5, 16, 28, 34, 26, 4
1254
};
1255
1256
static const uint8_t huff_b14_xlat[121] = {
1257
0x00, 0x10, 0xF0, 0x01, 0x0F, 0xF1, 0x1F, 0xFF, 0x20, 0xE0, 0x11, 0x02,
1258
0x0E, 0x30, 0x50, 0xB0, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x03, 0x05, 0x0B,
1259
0x0D, 0x1E, 0xFE, 0x2F, 0xEF, 0x40, 0xC0, 0x31, 0x51, 0xB1, 0xC1, 0xD1,
1260
0x22, 0x52, 0xE2, 0x13, 0xF3, 0x04, 0x15, 0xF5, 0x1B, 0xEB, 0xFB, 0x0C,
1261
0x1D, 0xFD, 0x2E, 0x5E, 0xEE, 0x3F, 0x5F, 0xBF, 0xDF, 0x41, 0x32, 0x42,
1262
0xB2, 0xD2, 0x23, 0x53, 0xB3, 0xE3, 0x14, 0x24, 0xE4, 0xF4, 0x25, 0x35,
1263
0xD5, 0xE5, 0x2B, 0x3B, 0xDB, 0x1C, 0x2C, 0xBC, 0xEC, 0xFC, 0x2D, 0xBD,
1264
0xED, 0x3E, 0x4E, 0xBE, 0xDE, 0x4F, 0xCF, 0xC2, 0x33, 0x43, 0xC3, 0xD3,
1265
0x34, 0x44, 0x54, 0xB4, 0xD4, 0x45, 0x55, 0xC5, 0x4B, 0xCB, 0x3C, 0x4C,
1266
0x5C, 0xCC, 0xDC, 0x3D, 0x4D, 0x5D, 0xCD, 0xDD, 0xCE, 0xC4, 0xB5, 0x5B,
1267
0xBB
1268
};
1269
1270
static const uint8_t huff_b16_cb[11] = {
1271
4, 12, 4, 4, 9, 13, 37, 76, 72, 39, 2
1272
};
1273
1274
static const uint8_t huff_b16_xlat[256] = {
1275
0x00, 0x10, 0x01, 0x11, 0x20, 0x21, 0x02, 0x12, 0x30, 0x31, 0x41, 0x22,
1276
0x32, 0x03, 0x13, 0x23, 0x14, 0x40, 0x51, 0x61, 0x42, 0x52, 0x33, 0x43,
1277
0x04, 0x24, 0x34, 0x15, 0x25, 0x16, 0x50, 0x60, 0x70, 0x71, 0x81, 0xD1,
1278
0xE1, 0x62, 0x72, 0x82, 0xD2, 0x53, 0x63, 0x73, 0xD3, 0x44, 0x54, 0x05,
1279
0x35, 0x45, 0x55, 0x06, 0x26, 0x36, 0x07, 0x17, 0x27, 0x37, 0x18, 0x28,
1280
0x19, 0x1D, 0x2D, 0x3D, 0x1E, 0x2E, 0x1F, 0x80, 0x90, 0xD0, 0xE0, 0xF0,
1281
0x91, 0xA1, 0xB1, 0xC1, 0xF1, 0x92, 0xA2, 0xB2, 0xC2, 0xE2, 0xF2, 0x83,
1282
0x93, 0xA3, 0xC3, 0xE3, 0xF3, 0x64, 0x74, 0x84, 0x94, 0xD4, 0xE4, 0xF4,
1283
0x65, 0x75, 0x85, 0xD5, 0xE5, 0x46, 0x56, 0x66, 0x76, 0xD6, 0xE6, 0x47,
1284
0x57, 0x67, 0xD7, 0x08, 0x38, 0x48, 0x58, 0x09, 0x29, 0x39, 0x49, 0x0A,
1285
0x1A, 0x2A, 0x3A, 0x1B, 0x2B, 0x0C, 0x1C, 0x2C, 0x3C, 0x0D, 0x4D, 0x5D,
1286
0x6D, 0x7D, 0x0E, 0x3E, 0x4E, 0x5E, 0x6E, 0x0F, 0x2F, 0x3F, 0x4F, 0xA0,
1287
0xB0, 0xC0, 0xB3, 0xA4, 0xB4, 0xC4, 0x95, 0xA5, 0xB5, 0xC5, 0xF5, 0x86,
1288
0x96, 0xA6, 0xB6, 0xC6, 0xF6, 0x77, 0x87, 0x97, 0xA7, 0xC7, 0xE7, 0xF7,
1289
0x68, 0x78, 0x88, 0x98, 0xD8, 0xE8, 0xF8, 0x59, 0x69, 0x79, 0x89, 0xD9,
1290
0xE9, 0xF9, 0x4A, 0x5A, 0x6A, 0x7A, 0xDA, 0xEA, 0x0B, 0x3B, 0x4B, 0x5B,
1291
0xDB, 0xEB, 0x4C, 0x5C, 0x6C, 0x7C, 0x8C, 0xDC, 0x8D, 0x9D, 0xAD, 0xBD,
1292
0xCD, 0x7E, 0x8E, 0x9E, 0xAE, 0xBE, 0x5F, 0x6F, 0x7F, 0x8F, 0x9F, 0xB7,
1293
0xA8, 0xB8, 0xC8, 0x99, 0xA9, 0xB9, 0xC9, 0x8A, 0x9A, 0xAA, 0xBA, 0xCA,
1294
0xFA, 0x6B, 0x7B, 0x8B, 0x9B, 0xAB, 0xBB, 0xCB, 0xFB, 0x9C, 0xAC, 0xBC,
1295
0xCC, 0xEC, 0xFC, 0xDD, 0xED, 0xFD, 0xCE, 0xDE, 0xEE, 0xFE, 0xAF, 0xBF,
1296
0xCF, 0xDF, 0xEF, 0xFF
1297
};
1298
1299
static const uint8_t huff_b26_cb[12] = {
1300
3, 12, 2, 2, 4, 5, 11, 26, 67, 78, 51, 10
1301
};
1302
1303
static const uint8_t huff_b26_xlat[256] = {
1304
0x00, 0x01, 0x10, 0x11, 0x20, 0x21, 0x02, 0x12, 0x30, 0x31, 0x22, 0x03,
1305
0x13, 0x40, 0x41, 0x51, 0x32, 0x42, 0x23, 0x33, 0x04, 0x14, 0x24, 0x15,
1306
0x50, 0x61, 0x71, 0xD1, 0xE1, 0x52, 0x62, 0xD2, 0x43, 0x53, 0xD3, 0x34,
1307
0x44, 0x05, 0x25, 0x35, 0x06, 0x16, 0x26, 0x17, 0x18, 0x1D, 0x2D, 0x3D,
1308
0x1E, 0x2E, 0x60, 0x70, 0x80, 0xD0, 0xE0, 0xF0, 0x81, 0x91, 0xA1, 0xC1,
1309
0xF1, 0x72, 0x82, 0x92, 0xC2, 0xE2, 0xF2, 0x63, 0x73, 0xE3, 0xF3, 0x54,
1310
0x64, 0x74, 0xD4, 0xE4, 0xF4, 0x45, 0x55, 0x65, 0xD5, 0xE5, 0xF5, 0x36,
1311
0x46, 0x56, 0xD6, 0xE6, 0x07, 0x27, 0x37, 0x47, 0xD7, 0x08, 0x28, 0x38,
1312
0x19, 0x29, 0x1A, 0x1B, 0x1C, 0x2C, 0x0D, 0x4D, 0x5D, 0x6D, 0x7D, 0x0E,
1313
0x3E, 0x4E, 0x5E, 0x6E, 0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x90, 0xA0, 0xC0,
1314
0xB1, 0xA2, 0xB2, 0x83, 0x93, 0xA3, 0xB3, 0xC3, 0x84, 0x94, 0xA4, 0xC4,
1315
0x75, 0x85, 0x95, 0xC5, 0x66, 0x76, 0x86, 0x96, 0xC6, 0xF6, 0x57, 0x67,
1316
0x77, 0xE7, 0xF7, 0x48, 0x58, 0x68, 0x78, 0xD8, 0xE8, 0xF8, 0x09, 0x39,
1317
0x49, 0x59, 0xD9, 0xE9, 0xF9, 0x0A, 0x2A, 0x3A, 0x4A, 0xDA, 0xEA, 0x0B,
1318
0x2B, 0x3B, 0xDB, 0xEB, 0x0C, 0x3C, 0x4C, 0x5C, 0x6C, 0xDC, 0x8D, 0x9D,
1319
0xAD, 0xBD, 0xCD, 0x7E, 0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0x5F, 0x6F, 0x7F,
1320
0x8F, 0x9F, 0xAF, 0xB0, 0xB4, 0xA5, 0xB5, 0xA6, 0xB6, 0x87, 0x97, 0xA7,
1321
0xB7, 0xC7, 0x88, 0x98, 0xA8, 0xC8, 0x69, 0x79, 0x89, 0x99, 0xA9, 0xC9,
1322
0x5A, 0x6A, 0x7A, 0x9A, 0xCA, 0xFA, 0x4B, 0x5B, 0x6B, 0x7B, 0xCB, 0xFB,
1323
0x7C, 0x8C, 0x9C, 0xAC, 0xBC, 0xCC, 0xEC, 0xFC, 0xDD, 0xED, 0xFD, 0xDE,
1324
0xEE, 0xFE, 0xBF, 0xCF, 0xDF, 0xEF, 0xB8, 0xB9, 0x8A, 0xAA, 0xBA, 0x8B,
1325
0x9B, 0xAB, 0xBB, 0xFF
1326
};
1327
1328
static const uint8_t huff_b32_cb[12] = {
1329
2, 11, 1, 0, 4, 6, 7, 10, 22, 11, 16, 4
1330
};
1331
1332
static const uint8_t huff_b32_xlat[81] = {
1333
0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x41, 0x11, 0x05, 0x80,
1334
0x54, 0x51, 0x45, 0x15, 0x55, 0x02, 0x90, 0x20, 0x60, 0x84, 0x24, 0x08,
1335
0x18, 0x09, 0x12, 0x06, 0xA0, 0x94, 0x64, 0x48, 0x58, 0x81, 0x91, 0x21,
1336
0x61, 0x85, 0x95, 0x25, 0x65, 0x49, 0x19, 0x59, 0x42, 0x52, 0x46, 0x16,
1337
0x56, 0x0A, 0xA4, 0x28, 0x68, 0xA1, 0xA5, 0x29, 0x69, 0x26, 0x4A, 0x1A,
1338
0x5A, 0x88, 0x98, 0xA8, 0x89, 0x99, 0xA9, 0x82, 0x92, 0x22, 0x62, 0x86,
1339
0x96, 0x66, 0x9A, 0x2A, 0x6A, 0xA2, 0xA6, 0x8A, 0xAA
1340
};
1341
1342
static const uint8_t huff_b33_cb[13] = {
1343
2, 12, 1, 0, 0, 4, 11, 8, 28, 92, 97, 13, 2
1344
};
1345
1346
static const uint8_t huff_b33_xlat[256] = {
1347
0x00, 0x40, 0x10, 0x04, 0x01, 0x50, 0x44, 0x14, 0x54, 0x41, 0x11, 0x51,
1348
0x05, 0x45, 0x15, 0x55, 0x20, 0x95, 0x65, 0x49, 0x59, 0x52, 0x46, 0x16,
1349
0x80, 0x90, 0x60, 0x84, 0x94, 0x24, 0x64, 0xA4, 0x08, 0x48, 0x18, 0x58,
1350
0x81, 0x91, 0x21, 0x61, 0x85, 0x25, 0x09, 0x19, 0x69, 0x02, 0x42, 0x12,
1351
0x06, 0x56, 0x5A, 0x57, 0xD0, 0x74, 0x68, 0x5C, 0xC1, 0xD5, 0xA5, 0xE5,
1352
0x75, 0xB5, 0xF5, 0x99, 0xD9, 0xA9, 0xE9, 0x79, 0xB9, 0xF9, 0x1D, 0x5D,
1353
0x9D, 0xDD, 0x6D, 0xAD, 0xED, 0x7D, 0xBD, 0xFD, 0x82, 0x92, 0xD2, 0x62,
1354
0x96, 0xD6, 0x26, 0x66, 0xA6, 0xE6, 0x76, 0xB6, 0xF6, 0x0A, 0x4A, 0x1A,
1355
0x9A, 0xDA, 0x2A, 0x6A, 0xAA, 0xEA, 0x7A, 0xBA, 0xFA, 0x5E, 0x9E, 0xDE,
1356
0x6E, 0xAE, 0xEE, 0x7E, 0xBE, 0xFE, 0x03, 0x13, 0x53, 0x17, 0x97, 0xD7,
1357
0x67, 0xA7, 0xE7, 0x77, 0xB7, 0xF7, 0x5B, 0x9B, 0xDB, 0x6B, 0xAB, 0xEB,
1358
0x7B, 0xBB, 0xFB, 0x5F, 0x9F, 0xDF, 0x6F, 0xAF, 0xEF, 0x7F, 0xBF, 0xFF,
1359
0xC0, 0xA0, 0xE0, 0x30, 0xC4, 0xD4, 0xE4, 0x34, 0xB4, 0xF4, 0x88, 0xC8,
1360
0x98, 0xD8, 0x28, 0xA8, 0xE8, 0x38, 0x78, 0xB8, 0xF8, 0x0C, 0x4C, 0x1C,
1361
0x9C, 0xDC, 0x6C, 0xAC, 0xEC, 0x7C, 0xBC, 0xFC, 0xD1, 0xA1, 0xE1, 0x31,
1362
0x71, 0xB1, 0xF1, 0xC5, 0x35, 0x89, 0xC9, 0x29, 0x39, 0x0D, 0x4D, 0x8D,
1363
0xCD, 0x2D, 0x3D, 0x22, 0xA2, 0xE2, 0x72, 0xB2, 0xF2, 0x86, 0xC6, 0x36,
1364
0x8A, 0xCA, 0x3A, 0x0E, 0x4E, 0x8E, 0xCE, 0x1E, 0x2E, 0x3E, 0x43, 0x83,
1365
0x93, 0xD3, 0x23, 0x63, 0xA3, 0xE3, 0x73, 0xB3, 0xF3, 0x07, 0x47, 0x87,
1366
0xC7, 0x27, 0x37, 0x4B, 0x8B, 0xCB, 0x1B, 0x2B, 0x3B, 0x4F, 0x8F, 0xCF,
1367
0x1F, 0x70, 0xB0, 0xF0, 0x8C, 0xCC, 0x2C, 0x3C, 0xC2, 0x32, 0xC3, 0x0F,
1368
0x2F, 0x3F, 0x33, 0x0B
1369
};
1370
1371
static const uint8_t huff_b35_cb[14] = {
1372
1, 12, 1, 0, 0, 0, 4, 6, 6, 14, 42, 63, 59, 30
1373
};
1374
1375
static const uint8_t huff_b35_xlat[225] = {
1376
0x00, 0x10, 0xF0, 0x01, 0x0F, 0x11, 0xF1, 0x02, 0x0E, 0x1F, 0xFF, 0x20,
1377
0xE0, 0x21, 0xF2, 0xFE, 0xEF, 0x30, 0xD0, 0xE1, 0x12, 0x22, 0xE2, 0x03,
1378
0x0D, 0x1D, 0x1E, 0x2E, 0xEE, 0x2F, 0xDF, 0x40, 0x60, 0x70, 0x90, 0xA0,
1379
0xB0, 0xC0, 0x31, 0x71, 0x91, 0xC1, 0xD1, 0x32, 0xD2, 0x13, 0xE3, 0xF3,
1380
0x04, 0x05, 0x06, 0x07, 0x17, 0xF7, 0x09, 0x19, 0x0A, 0x1A, 0xFA, 0x0C,
1381
0x1C, 0x2D, 0xED, 0xFD, 0x3E, 0x7E, 0xDE, 0x3F, 0x6F, 0x7F, 0x9F, 0xAF,
1382
0xCF, 0x50, 0x41, 0x51, 0x61, 0xA1, 0xB1, 0x62, 0x72, 0x92, 0xA2, 0xC2,
1383
0x23, 0x33, 0x63, 0x73, 0x93, 0xA3, 0xD3, 0x14, 0x24, 0x34, 0xD4, 0xE4,
1384
0xF4, 0x15, 0xF5, 0x16, 0x26, 0xD6, 0xE6, 0xF6, 0x27, 0x37, 0x47, 0xE7,
1385
0x29, 0x39, 0xC9, 0xD9, 0xE9, 0xF9, 0x2A, 0xEA, 0x0B, 0x1B, 0xFB, 0x2C,
1386
0x7C, 0xEC, 0xFC, 0x3D, 0x4D, 0x6D, 0x7D, 0xDD, 0x4E, 0x5E, 0x6E, 0x9E,
1387
0xAE, 0xCE, 0x4F, 0x5F, 0x42, 0x52, 0xB2, 0x43, 0xB3, 0xC3, 0x44, 0x64,
1388
0x74, 0x94, 0xA4, 0x25, 0x35, 0x65, 0x75, 0x95, 0xA5, 0xE5, 0x36, 0x46,
1389
0x66, 0x76, 0x96, 0xA6, 0xB6, 0xC6, 0x57, 0xA7, 0xB7, 0xC7, 0xD7, 0x59,
1390
0xA9, 0xB9, 0x3A, 0x4A, 0x6A, 0xCA, 0xDA, 0x2B, 0x3B, 0x6B, 0x9B, 0xAB,
1391
0xDB, 0xEB, 0x3C, 0x6C, 0x9C, 0xAC, 0xCC, 0xDC, 0x5D, 0x9D, 0xAD, 0xBD,
1392
0xCD, 0xBE, 0xBF, 0x53, 0x54, 0xB4, 0xC4, 0x45, 0x55, 0xB5, 0xC5, 0xD5,
1393
0x56, 0x67, 0x77, 0x97, 0x49, 0x69, 0x79, 0x99, 0x5A, 0x7A, 0x9A, 0xAA,
1394
0xBA, 0x4B, 0x5B, 0x7B, 0xBB, 0xCB, 0x4C, 0x5C, 0xBC
1395
};
1396
1397
static const uint8_t huff_b37_cb[13] = {
1398
1, 11, 1, 0, 2, 0, 2, 2, 6, 17, 14, 13, 6
1399
};
1400
1401
static const uint8_t huff_b37_xlat[63] = {
1402
0, 1, 63, 2, 62, 3, 61, 4, 5, 6, 58, 59, 60, 7, 8, 9,
1403
10, 25, 26, 27, 28, 29, 34, 35, 37, 38, 39, 55, 56, 57, 11, 13,
1404
14, 15, 30, 31, 33, 36, 49, 50, 51, 52, 53, 54, 12, 16, 17, 18,
1405
19, 21, 41, 43, 44, 45, 46, 47, 48, 20, 22, 23, 24, 40, 42
1406
};
1407
1408
static const uint8_t huff_b41_cb[14] = {
1409
1, 12, 1, 0, 0, 1, 7, 0, 20, 4, 10, 24, 2, 12
1410
};
1411
1412
static const uint8_t huff_b41_xlat[81] = {
1413
0x00, 0x01, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x03, 0x50, 0xD0, 0x70,
1414
0xF0, 0xC4, 0x14, 0x34, 0x4C, 0x1C, 0x3C, 0xC1, 0x11, 0x31, 0x05, 0x0D,
1415
0xC3, 0x13, 0x33, 0x07, 0x0F, 0x44, 0xCC, 0x41, 0x43, 0x54, 0x74, 0xDC,
1416
0xFC, 0x71, 0x15, 0x4D, 0x1D, 0x37, 0x3F, 0xD4, 0xF4, 0x5C, 0x7C, 0x51,
1417
0xD1, 0xF1, 0x45, 0xC5, 0x35, 0xCD, 0xDD, 0x3D, 0x53, 0xD3, 0x73, 0xF3,
1418
0x47, 0xC7, 0x17, 0x77, 0x4F, 0xCF, 0x1F, 0x55, 0xFF, 0xD5, 0x75, 0xF5,
1419
0x5D, 0x7D, 0xFD, 0x57, 0xD7, 0xF7, 0x5F, 0xDF, 0x7F
1420
};
1421
1422
static const uint8_t huff_b42_cb[11] = { 1, 9, 1, 0, 1, 3, 2, 3, 7, 4, 4 };
1423
1424
static const uint8_t huff_b42_xlat[25] = {
1425
0x00, 0x07, 0x08, 0x38, 0x01, 0x39, 0x0F, 0x10, 0x09, 0x3F, 0x30, 0x31,
1426
0x02, 0x3A, 0x06, 0x0E, 0x17, 0x11, 0x0A, 0x3E, 0x37, 0x12, 0x32, 0x16,
1427
0x36
1428
};
1429
1430
static const uint8_t huff_b43_cb[10] = { 2, 9, 1, 1, 3, 4, 9, 15, 12, 4 };
1431
1432
static const uint8_t huff_b43_xlat[49] = {
1433
0x00, 0x07, 0x08, 0x38, 0x01, 0x09, 0x39, 0x0F, 0x3F, 0x10, 0x30, 0x31,
1434
0x02, 0x3A, 0x06, 0x0E, 0x17, 0x37, 0x18, 0x28, 0x11, 0x19, 0x29, 0x0A,
1435
0x03, 0x0B, 0x3B, 0x05, 0x0D, 0x3D, 0x3E, 0x1F, 0x2F, 0x12, 0x1A, 0x2A,
1436
0x32, 0x13, 0x33, 0x15, 0x35, 0x16, 0x1E, 0x2E, 0x36, 0x1B, 0x2B, 0x1D,
1437
0x2D
1438
};
1439
1440
static const uint8_t huff_b47_cb[10] = { 2, 9, 1, 1, 3, 4, 6, 14, 22, 12 };
1441
1442
static const uint8_t huff_b47_xlat[63] = {
1443
0, 1, 2, 62, 63, 3, 4, 60, 61, 5, 6, 7, 57, 58, 59, 8,
1444
9, 10, 11, 12, 26, 27, 37, 38, 52, 53, 54, 55, 56, 13, 14, 15,
1445
16, 17, 18, 25, 28, 29, 30, 31, 33, 34, 35, 36, 39, 46, 47, 48,
1446
49, 50, 51, 19, 20, 21, 22, 23, 24, 40, 41, 42, 43, 44, 45
1447
};
1448
1449
static const uint8_t huff_b52_cb[11] = { 1, 9, 1, 0, 1, 3, 2, 3, 7, 4, 4 };
1450
1451
static const uint8_t huff_b52_xlat[25] = {
1452
0x00, 0x01, 0x08, 0x38, 0x07, 0x39, 0x0F, 0x30, 0x09, 0x3F, 0x10, 0x31,
1453
0x02, 0x3A, 0x06, 0x0E, 0x17, 0x11, 0x0A, 0x3E, 0x37, 0x12, 0x32, 0x16,
1454
0x36
1455
};
1456
1457
static const uint8_t huff_b53_cb[7] = { 1, 5, 1, 1, 1, 0, 4 }; // same as b63!!!
1458
1459
static const uint8_t huff_b53_xlat[7] = { 0, 7, 1, 2, 3, 5, 6 };
1460
1461
static const uint8_t huff_b56_cb[11] = { 1, 9, 1, 0, 2, 0, 2, 4, 11, 9, 2 };
1462
1463
static const uint8_t huff_b56_xlat[31] = {
1464
0, 1, 31, 2, 30, 3, 4, 13, 29, 5, 6, 7, 14, 15, 17, 18,
1465
19, 26, 27, 28, 8, 9, 12, 20, 21, 22, 23, 24, 25, 10, 11
1466
};
1467
1468
static const uint8_t huff_b62_cb[14] = {
1469
1, 12, 1, 0, 0, 2, 3, 5, 12, 14, 18, 15, 9, 2
1470
};
1471
1472
static const uint8_t huff_b62_xlat[81] = {
1473
0x00, 0x40, 0x01, 0x10, 0x04, 0x02, 0x80, 0x50, 0x90, 0x05, 0x06, 0x20,
1474
0x60, 0x44, 0x14, 0x54, 0x24, 0x08, 0x18, 0x41, 0x11, 0x15, 0x09, 0xA0,
1475
0x84, 0x94, 0x64, 0xA4, 0x28, 0x51, 0x45, 0x55, 0x19, 0x12, 0x16, 0x0A,
1476
0x1A, 0x48, 0x58, 0x68, 0x81, 0x91, 0x21, 0x61, 0x85, 0x95, 0x25, 0x65,
1477
0x49, 0x59, 0x29, 0x69, 0x42, 0x46, 0x56, 0x88, 0x98, 0xA8, 0xA1, 0xA5,
1478
0x99, 0xA9, 0x52, 0x22, 0x26, 0x66, 0x4A, 0x5A, 0x2A, 0x6A, 0x89, 0x82,
1479
0x92, 0x62, 0x86, 0x96, 0xA6, 0x8A, 0xAA, 0xA2, 0x9A
1480
};
1481
1482
static const uint8_t huff_b63_cb[7] = { 1, 5, 1, 1, 1, 0, 4 };
1483
1484
static const uint8_t huff_b63_xlat[7] = { 0, 1, 7, 2, 3, 5, 6 };
1485
1486
static const uint8_t huff_b64_cb[7] = { 1, 5, 1, 1, 1, 1, 2 };
1487
1488
static const uint8_t huff_b64_xlat[6] = { 1, 0, 2, 5, 3, 4 };
1489
1490
static const uint8_t huff_b65_cb[14] = {
1491
1, 12, 1, 0, 0, 2, 2, 2, 6, 12, 34, 92, 54, 20
1492
};
1493
1494
static const uint8_t huff_b65_xlat[225] = {
1495
0x00, 0xF0, 0x01, 0x10, 0x0F, 0x11, 0xF1, 0x20, 0xE0, 0x02, 0x0E, 0x1F,
1496
0xFF, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x07, 0x0A, 0x0D, 0x1E, 0xFE, 0x2F,
1497
0xEF, 0x30, 0x70, 0x90, 0xA0, 0xC0, 0x71, 0x91, 0xC1, 0xD1, 0x32, 0x92,
1498
0xE2, 0x03, 0x13, 0x63, 0x04, 0x06, 0xE6, 0xE7, 0xF7, 0x09, 0x19, 0x39,
1499
0xFA, 0x0C, 0x1C, 0xDD, 0xED, 0xFD, 0x2E, 0x7E, 0x9E, 0x3F, 0x9F, 0x40,
1500
0x50, 0x60, 0xB0, 0x31, 0x41, 0x61, 0xA1, 0xB1, 0x22, 0x42, 0x72, 0xA2,
1501
0xB2, 0xC2, 0xD2, 0x23, 0x33, 0x73, 0xA3, 0xC3, 0xD3, 0xE3, 0xF3, 0x14,
1502
0x24, 0x34, 0x44, 0x74, 0xD4, 0xE4, 0x05, 0x25, 0x45, 0x65, 0x95, 0xA5,
1503
0x16, 0x26, 0x46, 0x76, 0xA6, 0xB6, 0xC6, 0xD6, 0xF6, 0x17, 0x27, 0x37,
1504
0x47, 0x67, 0xA7, 0xD7, 0x29, 0x69, 0xB9, 0xD9, 0xE9, 0xF9, 0x1A, 0x2A,
1505
0x3A, 0x9A, 0xCA, 0xDA, 0xEA, 0x0B, 0x1B, 0x3B, 0x6B, 0xEB, 0xFB, 0x2C,
1506
0x6C, 0xEC, 0xFC, 0x1D, 0x2D, 0x4D, 0x6D, 0x9D, 0xAD, 0x3E, 0x4E, 0x6E,
1507
0xAE, 0xCE, 0xEE, 0x4F, 0x5F, 0x6F, 0xDF, 0x51, 0x52, 0x62, 0x43, 0x93,
1508
0xB3, 0x54, 0x94, 0xA4, 0xF4, 0x15, 0x75, 0xB5, 0xE5, 0xF5, 0x36, 0x56,
1509
0x66, 0x96, 0x57, 0x77, 0x49, 0x59, 0xA9, 0xC9, 0x4A, 0x5A, 0x6A, 0x7A,
1510
0xAA, 0xBA, 0x2B, 0x4B, 0x7B, 0x9B, 0xAB, 0xDB, 0x3C, 0x4C, 0x7C, 0x9C,
1511
0xAC, 0xBC, 0xCC, 0x3D, 0x5D, 0x7D, 0xBD, 0xCD, 0x5E, 0xBE, 0xDE, 0xBF,
1512
0xCF, 0x53, 0x64, 0xB4, 0xC4, 0x35, 0x55, 0xC5, 0xD5, 0x97, 0xB7, 0xC7,
1513
0x79, 0x99, 0x5B, 0xBB, 0xCB, 0x5C, 0xDC, 0x7F, 0xAF
1514
};
1515
1516
static const uint8_t huff_b66_cb[14] = {
1517
1, 12, 1, 0, 0, 3, 0, 3, 3, 10, 40, 85, 61, 50
1518
};
1519
1520
static const uint8_t huff_b66_xlat[256] = {
1521
0x00, 0x10, 0x01, 0x11, 0x21, 0x02, 0x12, 0x20, 0x22, 0x13, 0x30, 0x31,
1522
0x41, 0xD1, 0xE1, 0x32, 0x52, 0x03, 0x23, 0x2D, 0x40, 0x50, 0x60, 0x80,
1523
0xD0, 0xE0, 0x51, 0x61, 0xF1, 0x42, 0x62, 0xD2, 0xE2, 0xF2, 0x33, 0x43,
1524
0xC3, 0xD3, 0xE3, 0x04, 0x14, 0xD4, 0xF4, 0x25, 0x35, 0x16, 0x17, 0xF7,
1525
0xD8, 0x1C, 0x3C, 0x0D, 0x1D, 0x3D, 0x5D, 0x0E, 0x1E, 0x2E, 0x7E, 0x2F,
1526
0xC0, 0xF0, 0x71, 0x81, 0x91, 0xC1, 0x72, 0x82, 0x92, 0xB2, 0xC2, 0x53,
1527
0x63, 0x73, 0x93, 0xA3, 0xF3, 0x24, 0x44, 0x64, 0x84, 0xA4, 0xB4, 0x05,
1528
0x15, 0x95, 0xD5, 0x06, 0x26, 0x36, 0x46, 0x96, 0xD6, 0xE6, 0xF6, 0x07,
1529
0x27, 0x37, 0xD7, 0xE7, 0x08, 0x18, 0x28, 0x38, 0xE8, 0xF8, 0x09, 0x19,
1530
0x29, 0xE9, 0xF9, 0x0A, 0x1A, 0xCA, 0xDA, 0xEA, 0x0B, 0x1B, 0xDB, 0xEB,
1531
0xFB, 0x2C, 0x4C, 0x5C, 0x7C, 0x8C, 0x4D, 0x6D, 0x8D, 0x9D, 0xFD, 0x3E,
1532
0x5E, 0x6E, 0x8E, 0x9E, 0xEE, 0x0F, 0x1F, 0x3F, 0x4F, 0x5F, 0x6F, 0x7F,
1533
0xCF, 0x70, 0xA1, 0xA2, 0x83, 0xB3, 0x34, 0x74, 0xC4, 0xE4, 0x55, 0x65,
1534
0x85, 0xA5, 0xC5, 0xE5, 0xF5, 0x56, 0x66, 0x76, 0x86, 0xA6, 0xC6, 0x57,
1535
0x67, 0x77, 0x97, 0xA7, 0x48, 0x88, 0x98, 0x49, 0x59, 0x79, 0x99, 0x3A,
1536
0x4A, 0x8A, 0xBA, 0xFA, 0x2B, 0x7B, 0x0C, 0xAC, 0xBC, 0xCC, 0xEC, 0x7D,
1537
0xAD, 0xBD, 0xDD, 0x4E, 0xBE, 0xCE, 0xFE, 0x8F, 0x9F, 0xAF, 0xBF, 0xDF,
1538
0xEF, 0xFF, 0x90, 0xA0, 0xB0, 0xB1, 0x54, 0x94, 0x45, 0x75, 0xB5, 0xB6,
1539
0x47, 0x87, 0xB7, 0xC7, 0x58, 0x68, 0x78, 0xA8, 0xB8, 0xC8, 0x39, 0x69,
1540
0x89, 0xA9, 0xB9, 0xC9, 0xD9, 0x2A, 0x5A, 0x6A, 0x7A, 0x9A, 0xAA, 0x3B,
1541
0x4B, 0x5B, 0x6B, 0x8B, 0x9B, 0xAB, 0xBB, 0xCB, 0x6C, 0x9C, 0xDC, 0xFC,
1542
0xCD, 0xED, 0xAE, 0xDE
1543
};
1544
1545
static const uint8_t huff_b67_cb[10] = { 2, 9, 1, 2, 1, 4, 7, 10, 26, 12 };
1546
1547
static const uint8_t huff_b67_xlat[63] = {
1548
0, 1, 63, 62, 2, 3, 60, 61, 4, 5, 6, 7, 57, 58, 59, 8,
1549
9, 10, 11, 12, 52, 53, 54, 55, 56, 13, 14, 15, 16, 17, 18, 25,
1550
26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 46, 47, 48,
1551
49, 50, 51, 19, 20, 21, 22, 23, 24, 40, 41, 42, 43, 44, 45
1552
};
1553
1554
static const uint8_t huff_b71_cb[14] = {
1555
1, 12, 1, 0, 0, 1, 7, 0, 19, 5, 13, 23, 0, 12
1556
};
1557
1558
static const uint8_t huff_b71_xlat[81] = {
1559
0x00, 0x03, 0x40, 0xC0, 0x10, 0x30, 0x04, 0x0C, 0x01, 0x50, 0xD0, 0x70,
1560
0xF0, 0xC4, 0x14, 0x34, 0x4C, 0x1C, 0x3C, 0xC1, 0x11, 0x31, 0x05, 0x0D,
1561
0x13, 0x33, 0x07, 0x0F, 0x44, 0xCC, 0x41, 0x43, 0xC3, 0x54, 0x74, 0xDC,
1562
0xFC, 0xF1, 0xC5, 0x15, 0x1D, 0x53, 0xC7, 0x37, 0x4F, 0x3F, 0xD4, 0xF4,
1563
0x5C, 0x7C, 0x51, 0xD1, 0x71, 0x45, 0x55, 0x35, 0x4D, 0xCD, 0xDD, 0x3D,
1564
0xD3, 0x73, 0xF3, 0x47, 0x17, 0x77, 0xCF, 0x1F, 0xFF, 0xD5, 0x75, 0xF5,
1565
0x5D, 0x7D, 0xFD, 0x57, 0xD7, 0xF7, 0x5F, 0xDF, 0x7F
1566
};
1567
1568
static const uint8_t huff_b73_cb[13] = {
1569
1, 11, 1, 0, 0, 0, 1, 4, 9, 4, 103, 110, 24
1570
};
1571
1572
static const uint8_t huff_b73_xlat[256] = {
1573
0x00, 0x40, 0x10, 0x04, 0x01, 0x05, 0x50, 0x14, 0x54, 0x41, 0x11, 0x51,
1574
0x45, 0x15, 0x55, 0x44, 0x95, 0x6A, 0x03, 0x80, 0xC0, 0x90, 0xD0, 0x94,
1575
0xD4, 0x24, 0x64, 0x58, 0x91, 0xA1, 0x85, 0xD5, 0x25, 0x65, 0xA5, 0xE5,
1576
0x75, 0xB5, 0xF5, 0x19, 0x59, 0x99, 0xD9, 0x69, 0xA9, 0xE9, 0x79, 0xB9,
1577
0xF9, 0x4D, 0x5D, 0x9D, 0xDD, 0x6D, 0xAD, 0xED, 0x7D, 0xBD, 0xFD, 0x02,
1578
0x42, 0x52, 0x06, 0x46, 0x16, 0x56, 0x96, 0xD6, 0x26, 0x66, 0xA6, 0xE6,
1579
0x76, 0xB6, 0xF6, 0x1A, 0x5A, 0x9A, 0xDA, 0xAA, 0xEA, 0x7A, 0xBA, 0xFA,
1580
0x5E, 0x9E, 0xDE, 0x6E, 0xAE, 0xEE, 0x7E, 0xBE, 0xFE, 0x07, 0x47, 0x57,
1581
0x97, 0xD7, 0x67, 0xA7, 0xE7, 0x77, 0xB7, 0xF7, 0x5B, 0x9B, 0xDB, 0x6B,
1582
0xAB, 0xEB, 0x7B, 0xBB, 0xFB, 0x5F, 0x9F, 0xDF, 0x6F, 0xAF, 0xEF, 0x7F,
1583
0xBF, 0xFF, 0x20, 0x60, 0x70, 0xB0, 0xF0, 0x84, 0xC4, 0xA4, 0xE4, 0x74,
1584
0xB4, 0xF4, 0x08, 0x88, 0x18, 0x98, 0xD8, 0x68, 0xA8, 0xE8, 0x78, 0xB8,
1585
0xF8, 0x1C, 0x5C, 0x9C, 0xDC, 0x6C, 0xAC, 0xEC, 0x3C, 0x7C, 0xBC, 0xFC,
1586
0x81, 0xD1, 0x21, 0x61, 0xE1, 0x71, 0xB1, 0xF1, 0xC5, 0x35, 0x09, 0x49,
1587
0x89, 0xC9, 0x29, 0x39, 0x0D, 0x8D, 0xCD, 0x1D, 0x2D, 0x3D, 0x92, 0xD2,
1588
0x22, 0x62, 0xA2, 0xE2, 0x72, 0xB2, 0xF2, 0x86, 0xC6, 0x36, 0x0A, 0x4A,
1589
0x8A, 0xCA, 0x2A, 0x3A, 0x0E, 0x4E, 0x8E, 0xCE, 0x1E, 0x2E, 0x3E, 0x13,
1590
0x53, 0x93, 0xD3, 0x63, 0xA3, 0xE3, 0x73, 0xB3, 0xF3, 0x87, 0xC7, 0x17,
1591
0x27, 0x37, 0x0B, 0x4B, 0x8B, 0xCB, 0x1B, 0x2B, 0x3B, 0x0F, 0x4F, 0x8F,
1592
0xCF, 0x1F, 0x2F, 0x3F, 0xA0, 0xE0, 0x30, 0x34, 0x48, 0xC8, 0x28, 0x38,
1593
0x0C, 0x4C, 0x8C, 0xCC, 0x2C, 0xC1, 0x31, 0x82, 0xC2, 0x12, 0x32, 0x43,
1594
0x83, 0xC3, 0x23, 0x33
1595
};
1596
1597
static const uint8_t huff_b74_cb[8] = { 1, 6, 1, 0, 2, 2, 2, 4 };
1598
1599
static const uint8_t huff_b74_xlat[11] = {
1600
0, 1, 15, 2, 14, 5, 13, 3, 4, 11, 12
1601
};
1602
1603
static const uint8_t huff_b75_cb[13] = {
1604
2, 12, 1, 4, 0, 0, 0, 8, 11, 24, 53, 64, 60
1605
};
1606
1607
static const uint8_t huff_b75_xlat[225] = {
1608
0x00, 0x10, 0xF0, 0x01, 0x0F, 0x20, 0xE0, 0x11, 0xF1, 0x02, 0x0E, 0x1F,
1609
0xFF, 0xD0, 0x21, 0xE1, 0x12, 0xF2, 0x03, 0x0D, 0x1E, 0xFE, 0x2F, 0xEF,
1610
0x30, 0x40, 0x60, 0x70, 0x90, 0xA0, 0xC0, 0x31, 0xD1, 0x22, 0xE2, 0x13,
1611
0xF3, 0x04, 0x06, 0x07, 0x09, 0x0C, 0x1D, 0xFD, 0x2E, 0xEE, 0x3F, 0xDF,
1612
0x50, 0xB0, 0x41, 0x61, 0x71, 0x91, 0xA1, 0xC1, 0x32, 0x62, 0x72, 0x92,
1613
0xA2, 0xD2, 0x23, 0xD3, 0xE3, 0x14, 0xF4, 0x05, 0x16, 0x26, 0xE6, 0xF6,
1614
0x17, 0x27, 0xE7, 0xF7, 0x19, 0x29, 0xF9, 0x0A, 0x1A, 0x2A, 0xFA, 0x0B,
1615
0x1C, 0x2C, 0xFC, 0x2D, 0x3D, 0xED, 0x3E, 0x4E, 0x7E, 0x9E, 0xDE, 0x4F,
1616
0x6F, 0x7F, 0x9F, 0xAF, 0xCF, 0x51, 0xB1, 0x42, 0x52, 0xB2, 0xC2, 0x33,
1617
0x63, 0x73, 0x93, 0xA3, 0xB3, 0xC3, 0x24, 0x34, 0x74, 0xA4, 0xD4, 0xE4,
1618
0x15, 0x25, 0x65, 0x95, 0xE5, 0xF5, 0x36, 0xD6, 0x37, 0x47, 0xC7, 0xD7,
1619
0x39, 0x59, 0xB9, 0xC9, 0xD9, 0xE9, 0x3A, 0x6A, 0xDA, 0xEA, 0x1B, 0x2B,
1620
0x9B, 0xAB, 0xEB, 0xFB, 0x6C, 0x7C, 0x9C, 0xAC, 0xEC, 0x4D, 0x6D, 0x7D,
1621
0x9D, 0xAD, 0xBD, 0xDD, 0x5E, 0x6E, 0xAE, 0xCE, 0x5F, 0x43, 0x53, 0x44,
1622
0x54, 0x64, 0x94, 0xB4, 0xC4, 0x35, 0x45, 0x55, 0x75, 0xA5, 0xB5, 0xC5,
1623
0xD5, 0x46, 0x56, 0x66, 0x76, 0x96, 0xA6, 0xB6, 0xC6, 0x57, 0x67, 0x77,
1624
0x97, 0xA7, 0xB7, 0x49, 0x69, 0x79, 0x99, 0xA9, 0x4A, 0x5A, 0x7A, 0x9A,
1625
0xAA, 0xBA, 0xCA, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, 0xBB, 0xCB, 0xDB, 0x3C,
1626
0x4C, 0x5C, 0xBC, 0xCC, 0xDC, 0x5D, 0xCD, 0xBE, 0xBF
1627
};
1628
1629
static const uint8_t huff_b77_cb[12] = {
1630
2, 11, 1, 0, 4, 6, 10, 12, 7, 15, 4, 4
1631
};
1632
1633
static const uint8_t huff_b77_xlat[63] = {
1634
0, 1, 2, 62, 63, 3, 4, 5, 59, 60, 61, 6, 7, 8, 9, 10,
1635
54, 55, 56, 57, 58, 11, 12, 13, 14, 15, 16, 47, 49, 50, 51, 52,
1636
53, 17, 18, 19, 20, 45, 46, 48, 21, 22, 23, 24, 25, 26, 27, 37,
1637
38, 39, 40, 41, 42, 43, 44, 28, 29, 30, 35, 31, 33, 34, 36
1638
};
1639
1640
/** Tables for spectrum coding. */
1641
typedef struct Atrac3pSpecCodeTab {
1642
uint8_t group_size; ///< number of coefficients grouped together
1643
uint8_t num_coeffs; ///< 1 - map index to a single value, > 1 - map index to a vector of values
1644
uint8_t bits; ///< number of bits a single coefficient occupy
1645
uint8_t is_signed; ///< 1 - values in that table are signed ones, otherwise - absolute ones
1646
1647
int redirect; ///< if >= 0: tells which huffman table must be reused
1648
const uint8_t *cb; ///< pointer to the codebook descriptor
1649
const uint8_t *xlat; ///< pointer to the translation table or NULL if none
1650
} Atrac3pSpecCodeTab;
1651
1652
static const Atrac3pSpecCodeTab atrac3p_spectra_tabs[112] = {
1653
/* table set = A */
1654
/* code table = 0 */
1655
{ 1, 4, 2, 1, -1, huff_a01_cb, huff_a01_xlat }, // wordlen = 1
1656
{ 1, 4, 2, 0, -1, huff_a02_cb, huff_a02_xlat }, // wordlen = 2
1657
{ 1, 2, 3, 1, -1, huff_a03_cb, huff_a03_xlat }, // wordlen = 3
1658
{ 1, 1, 3, 0, -1, huff_a04_cb, huff_a04_xlat }, // wordlen = 4
1659
{ 1, 2, 4, 1, -1, huff_a05_cb, huff_a05_xlat }, // wordlen = 5
1660
{ 1, 1, 4, 0, -1, huff_a06_cb, huff_a06_xlat }, // wordlen = 6
1661
{ 1, 1, 6, 1, -1, huff_a07_cb, huff_a07_xlat }, // wordlen = 7
1662
1663
/* code table = 1 */
1664
{ 4, 4, 2, 1, -1, huff_a11_cb, huff_a11_xlat }, // wordlen = 1
1665
{ 1, 4, 2, 0, -1, huff_a12_cb, huff_a12_xlat }, // wordlen = 2
1666
{ 1, 2, 3, 1, -1, huff_a13_cb, huff_a13_xlat }, // wordlen = 3
1667
{ 1, 2, 4, 1, -1, huff_a14_cb, huff_a14_xlat }, // wordlen = 4
1668
{ 1, 2, 4, 1, -1, huff_a15_cb, huff_a15_xlat }, // wordlen = 5
1669
{ 1, 2, 4, 0, -1, huff_a16_cb, huff_a16_xlat }, // wordlen = 6
1670
{ 1, 1, 6, 1, -1, huff_a17_cb, huff_a17_xlat }, // wordlen = 7
1671
1672
/* code table = 2 */
1673
{ 1, 4, 2, 1, -1, huff_a21_cb, huff_a21_xlat }, // wordlen = 1
1674
{ 1, 2, 3, 1, -1, huff_a22_cb, huff_a22_xlat }, // wordlen = 2
1675
{ 1, 2, 3, 1, -1, huff_a23_cb, huff_a23_xlat }, // wordlen = 3
1676
{ 1, 1, 3, 0, -1, huff_a24_cb, NULL }, // wordlen = 4
1677
{ 1, 1, 3, 0, -1, huff_a25_cb, huff_a25_xlat }, // wordlen = 5
1678
{ 1, 2, 4, 0, -1, huff_a26_cb, huff_a26_xlat }, // wordlen = 6
1679
{ 1, 1, 6, 1, -1, huff_a27_cb, huff_a27_xlat }, // wordlen = 7
1680
1681
/* code table = 3 */
1682
{ 1, 2, 2, 1, -1, huff_a31_cb, huff_a31_xlat }, // wordlen = 1
1683
{ 1, 4, 2, 0, -1, huff_a32_cb, huff_a32_xlat }, // wordlen = 2
1684
{ 1, 4, 2, 0, -1, huff_a33_cb, huff_a33_xlat }, // wordlen = 3
1685
{ 1, 1, 3, 0, -1, huff_a34_cb, huff_a34_xlat }, // wordlen = 4
1686
{ 1, 2, 4, 1, -1, huff_a35_cb, huff_a35_xlat }, // wordlen = 5
1687
{ 1, 2, 4, 0, -1, huff_a36_cb, huff_a36_xlat }, // wordlen = 6
1688
{ 1, 1, 6, 1, -1, huff_a37_cb, huff_a37_xlat }, // wordlen = 7
1689
1690
/* code table = 4 */
1691
{ 1, 4, 2, 1, -1, huff_a41_cb, huff_a41_xlat }, // wordlen = 1
1692
{ 1, 4, 2, 0, -1, huff_a42_cb, huff_a42_xlat }, // wordlen = 2
1693
{ 1, 1, 3, 1, -1, huff_a43_cb, huff_a43_xlat }, // wordlen = 3
1694
{ 1, 2, 4, 1, -1, huff_a44_cb, huff_a44_xlat }, // wordlen = 4
1695
{ 1, 1, 3, 0, -1, huff_a45_cb, huff_a45_xlat }, // wordlen = 5
1696
{ 1, 2, 4, 0, -1, huff_a46_cb, huff_a46_xlat }, // wordlen = 6
1697
{ 1, 1, 6, 1, -1, huff_a47_cb, huff_a47_xlat }, // wordlen = 7
1698
1699
/* code table = 5 */
1700
{ 1, 4, 2, 1, -1, huff_a51_cb, huff_a51_xlat }, // wordlen = 1
1701
{ 1, 2, 3, 1, -1, huff_a52_cb, huff_a52_xlat }, // wordlen = 2
1702
{ 1, 1, 3, 1, -1, huff_a43_cb, huff_a53_xlat }, // wordlen = 3
1703
{ 1, 2, 4, 1, -1, huff_a54_cb, huff_a54_xlat }, // wordlen = 4
1704
{ 1, 1, 3, 0, -1, huff_a55_cb, huff_a55_xlat }, // wordlen = 5
1705
{ 1, 1, 5, 1, -1, huff_a56_cb, huff_a56_xlat }, // wordlen = 6
1706
{ 1, 1, 6, 1, -1, huff_a57_cb, huff_a57_xlat }, // wordlen = 7
1707
1708
/* code table = 6 */
1709
{ 2, 4, 2, 1, -1, huff_a61_cb, huff_a61_xlat }, // wordlen = 1
1710
{ 1, 2, 3, 1, -1, huff_a62_cb, huff_a62_xlat }, // wordlen = 2
1711
{ 1, 4, 2, 0, -1, huff_a63_cb, huff_a63_xlat }, // wordlen = 3
1712
{ 1, 2, 4, 1, -1, huff_a64_cb, huff_a64_xlat }, // wordlen = 4
1713
{ 1, 1, 4, 1, -1, huff_a65_cb, huff_a65_xlat }, // wordlen = 5
1714
{ 1, 1, 5, 1, -1, huff_a66_cb, huff_a66_xlat }, // wordlen = 6
1715
{ 1, 1, 6, 1, -1, huff_a67_cb, huff_a67_xlat }, // wordlen = 7
1716
1717
/* code table = 7 */
1718
{ 1, 2, 1, 0, -1, huff_a71_cb, NULL }, // wordlen = 1
1719
{ 2, 4, 2, 0, -1, huff_a72_cb, huff_a72_xlat }, // wordlen = 2
1720
{ 1, 2, 3, 1, -1, huff_a73_cb, huff_a73_xlat }, // wordlen = 3
1721
{ 1, 2, 4, 1, -1, huff_a74_cb, huff_a74_xlat }, // wordlen = 4
1722
{ 1, 1, 4, 1, -1, huff_a75_cb, huff_a75_xlat }, // wordlen = 5
1723
{ 2, 2, 4, 0, -1, huff_a76_cb, huff_a76_xlat }, // wordlen = 6
1724
{ 4, 1, 6, 1, 6, NULL, NULL }, // wordlen = 7
1725
1726
/* table set = B */
1727
/* code table = 0 */
1728
{ 4, 4, 2, 1, -1, huff_b01_cb, huff_b01_xlat }, // wordlen = 1
1729
{ 1, 4, 2, 0, -1, huff_b02_cb, huff_b02_xlat }, // wordlen = 2
1730
{ 4, 2, 3, 1, -1, huff_b03_cb, huff_b03_xlat }, // wordlen = 3
1731
{ 1, 2, 4, 1, -1, huff_b04_cb, huff_b04_xlat }, // wordlen = 4
1732
{ 1, 2, 4, 1, -1, huff_b05_cb, huff_b05_xlat }, // wordlen = 5
1733
{ 1, 1, 4, 0, 5, NULL, NULL }, // wordlen = 6
1734
{ 1, 1, 6, 1, -1, huff_b07_cb, huff_b07_xlat }, // wordlen = 7
1735
1736
/* code table = 1 */
1737
{ 1, 4, 2, 1, 14, NULL, NULL }, // wordlen = 1
1738
{ 1, 4, 2, 0, -1, huff_b12_cb, huff_b12_xlat }, // wordlen = 2
1739
{ 1, 2, 3, 1, 9, NULL, NULL }, // wordlen = 3
1740
{ 1, 2, 4, 1, -1, huff_b14_cb, huff_b14_xlat }, // wordlen = 4
1741
{ 1, 2, 4, 1, 11, NULL, NULL }, // wordlen = 5
1742
{ 1, 2, 4, 0, -1, huff_b16_cb, huff_b16_xlat }, // wordlen = 6
1743
{ 1, 1, 6, 1, 6, NULL, NULL }, // wordlen = 7
1744
1745
/* code table = 2 */
1746
{ 4, 4, 2, 1, 28, NULL, NULL }, // wordlen = 1
1747
{ 4, 4, 2, 0, 22, NULL, NULL }, // wordlen = 2
1748
{ 1, 2, 3, 1, 2, NULL, NULL }, // wordlen = 3
1749
{ 1, 2, 4, 1, 31, NULL, NULL }, // wordlen = 4
1750
{ 2, 2, 4, 1, 60, NULL, NULL }, // wordlen = 5
1751
{ 2, 2, 4, 0, -1, huff_b26_cb, huff_b26_xlat }, // wordlen = 6
1752
{ 4, 1, 6, 1, 6, NULL, NULL }, // wordlen = 7
1753
1754
/* code table = 3 */
1755
{ 1, 4, 2, 1, 35, NULL, NULL }, // wordlen = 1
1756
{ 1, 4, 2, 0, -1, huff_b32_cb, huff_b32_xlat }, // wordlen = 2
1757
{ 1, 4, 2, 0, -1, huff_b33_cb, huff_b33_xlat }, // wordlen = 3
1758
{ 2, 2, 4, 1, 59, NULL, NULL }, // wordlen = 4
1759
{ 1, 2, 4, 1, -1, huff_b35_cb, huff_b35_xlat }, // wordlen = 5
1760
{ 1, 2, 4, 0, 75, NULL, NULL }, // wordlen = 6
1761
{ 1, 1, 6, 1, -1, huff_b37_cb, huff_b37_xlat }, // wordlen = 7
1762
1763
/* code table = 4 */
1764
{ 1, 4, 2, 1, -1, huff_b41_cb, huff_b41_xlat }, // wordlen = 1
1765
{ 4, 2, 3, 1, -1, huff_b42_cb, huff_b42_xlat }, // wordlen = 2
1766
{ 1, 2, 3, 1, -1, huff_b43_cb, huff_b43_xlat }, // wordlen = 3
1767
{ 4, 2, 4, 1, 66, NULL, NULL }, // wordlen = 4
1768
{ 1, 1, 3, 0, 32, NULL, NULL }, // wordlen = 5
1769
{ 1, 2, 4, 0, 12, NULL, NULL }, // wordlen = 6
1770
{ 1, 1, 6, 1, -1, huff_b47_cb, huff_b47_xlat }, // wordlen = 7
1771
1772
/* code table = 5 */
1773
{ 2, 4, 2, 1, 42, NULL, NULL }, // wordlen = 1
1774
{ 1, 2, 3, 1, -1, huff_b52_cb, huff_b52_xlat }, // wordlen = 2
1775
{ 4, 1, 3, 1, -1, huff_b53_cb, huff_b53_xlat }, // wordlen = 3
1776
{ 1, 1, 3, 0, 17, NULL, NULL }, // wordlen = 4
1777
{ 1, 1, 3, 0, 39, NULL, NULL }, // wordlen = 5
1778
{ 1, 1, 5, 1, -1, huff_b56_cb, huff_b56_xlat }, // wordlen = 6
1779
{ 2, 1, 6, 1, 62, NULL, NULL }, // wordlen = 7
1780
1781
/* code table = 6 */
1782
{ 1, 4, 2, 1, 28, NULL, NULL }, // wordlen = 1
1783
{ 1, 4, 2, 0, -1, huff_b62_cb, huff_b62_xlat }, // wordlen = 2
1784
{ 1, 1, 3, 1, -1, huff_b63_cb, huff_b63_xlat }, // wordlen = 3
1785
{ 1, 1, 3, 0, -1, huff_b64_cb, huff_b64_xlat }, // wordlen = 4
1786
{ 4, 2, 4, 1, -1, huff_b65_cb, huff_b65_xlat }, // wordlen = 5
1787
{ 1, 2, 4, 0, -1, huff_b66_cb, huff_b66_xlat }, // wordlen = 6
1788
{ 1, 1, 6, 1, -1, huff_b67_cb, huff_b67_xlat }, // wordlen = 7
1789
1790
/* code table = 7 */
1791
{ 1, 4, 2, 1, -1, huff_b71_cb, huff_b71_xlat }, // wordlen = 1
1792
{ 4, 4, 2, 0, 78, NULL, NULL }, // wordlen = 2
1793
{ 4, 4, 2, 0, -1, huff_b73_cb, huff_b73_xlat }, // wordlen = 3
1794
{ 1, 1, 4, 1, -1, huff_b74_cb, huff_b74_xlat }, // wordlen = 4
1795
{ 1, 2, 4, 1, -1, huff_b75_cb, huff_b75_xlat }, // wordlen = 5
1796
{ 1, 1, 5, 1, 47, NULL, NULL }, // wordlen = 6
1797
{ 1, 1, 6, 1, -1, huff_b77_cb, huff_b77_xlat }, // wordlen = 7
1798
};
1799
1800
/* Huffman tables for gain control data. */
1801
static const uint8_t atrac3p_huff_gain_npoints1_cb[9] = {
1802
1, 7, 1, 1, 1, 1, 1, 1, 2
1803
};
1804
1805
static const uint8_t atrac3p_huff_gain_npoints2_xlat[8] = {
1806
0, 1, 7, 2, 6, 3, 4, 5
1807
};
1808
1809
static const uint8_t atrac3p_huff_gain_lev1_cb[9] = { 1, 7, 1, 0, 2, 2, 1, 2, 8 };
1810
static const uint8_t atrac3p_huff_gain_lev1_xlat[16] = {
1811
7, 5, 8, 6, 9, 4, 10, 11, 0, 1, 2, 3, 12, 13, 14, 15
1812
};
1813
1814
static const uint8_t atrac3p_huff_gain_lev2_cb[11] = {
1815
1, 9, 1, 1, 1, 1, 1, 0, 2, 0, 8
1816
};
1817
1818
static const uint8_t atrac3p_huff_gain_lev2_xlat[15] = {
1819
15, 14, 1, 13, 2, 3, 12, 4, 5, 6, 7, 8, 9, 10, 11
1820
};
1821
1822
static const uint8_t atrac3p_huff_gain_lev3_cb[11] = {
1823
1, 9, 1, 0, 3, 1, 1, 0, 2, 0, 8
1824
};
1825
1826
static const uint8_t atrac3p_huff_gain_lev3_xlat[16] = {
1827
0, 1, 14, 15, 2, 13, 3, 12, 4, 5, 6, 7, 8, 9, 10, 11
1828
};
1829
1830
static const uint8_t atrac3p_huff_gain_lev4_cb[11] = {
1831
1, 9, 1, 1, 1, 1, 1, 0, 1, 2, 8
1832
};
1833
1834
static const uint8_t atrac3p_huff_gain_lev4_xlat[16] = {
1835
0, 1, 15, 14, 2, 13, 3, 12, 4, 5, 6, 7, 8, 9, 10, 11
1836
};
1837
1838
static const uint8_t atrac3p_huff_gain_loc1_cb[9] = { 2, 8, 1, 2, 4, 4, 4, 0, 16 };
1839
static const uint8_t atrac3p_huff_gain_loc1_xlat[31] = {
1840
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1841
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
1842
};
1843
1844
static const uint8_t atrac3p_huff_gain_loc2_cb[8] = { 3, 8, 5, 3, 2, 3, 2, 16 };
1845
static const uint8_t atrac3p_huff_gain_loc2_xlat[31] = {
1846
2, 3, 4, 5, 6, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1847
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
1848
};
1849
1850
static const uint8_t atrac3p_huff_gain_loc3_cb[7] = { 2, 6, 1, 0, 2, 11, 18 };
1851
static const uint8_t atrac3p_huff_gain_loc3_xlat[32] = {
1852
0, 1, 31, 2, 3, 4, 5, 6, 7, 26, 27, 28, 29, 30, 8, 9,
1853
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25
1854
};
1855
1856
static const uint8_t atrac3p_huff_gain_loc4_cb[5] = { 4, 6, 3, 23, 6 };
1857
static const uint8_t atrac3p_huff_gain_loc4_xlat[32] = {
1858
0, 28, 29, 1, 2, 3, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1859
20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 5, 6, 7, 8, 9, 10
1860
};
1861
1862
static const uint8_t atrac3p_huff_gain_loc5_cb[9] = { 1, 7, 1, 0, 0, 3, 2, 6, 20 };
1863
static const uint8_t atrac3p_huff_gain_loc5_xlat[32] = {
1864
0, 1, 2, 31, 3, 4, 5, 6, 7, 8, 29, 30, 9, 10, 11, 12,
1865
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28
1866
};
1867
1868
/* Huffman tables for GHA waves data. */
1869
static const uint8_t atrac3p_huff_tonebands_cb[8] = { 1, 6, 1, 0, 1, 2, 4, 8 };
1870
static const uint8_t atrac3p_huff_numwavs1_cb[9] = { 1, 7, 1, 1, 1, 1, 1, 1, 2 };
1871
static const uint8_t atrac3p_huff_numwavs2_cb[8] = { 1, 6, 1, 1, 1, 1, 0, 4 };
1872
static const uint8_t atrac3p_huff_numwavs2_xlat[8] = { 0, 1, 7, 2, 3, 4, 5, 6 };
1873
static const uint8_t atrac3p_huff_wav_ampsf1_cb[7] = { 4, 8, 10, 8, 6, 0, 8 };
1874
static const uint8_t atrac3p_huff_wav_ampsf1_xlat[32] = {
1875
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 5, 6, 7, 18, 19, 20,
1876
21, 22, 4, 23, 24, 25, 26, 27, 0, 1, 2, 3, 28, 29, 30, 31
1877
};
1878
1879
static const uint8_t atrac3p_huff_wav_ampsf2_cb[7] = { 4, 8, 11, 5, 6, 6, 4 };
1880
static const uint8_t atrac3p_huff_wav_ampsf2_xlat[32] = {
1881
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 14, 15, 16, 17, 29,
1882
9, 10, 11, 12, 13, 30, 4, 5, 6, 7, 8, 31, 0, 1, 2, 3
1883
};
1884
1885
static const uint8_t atrac3p_huff_wav_ampsf3_cb[9] = { 2, 8, 1, 3, 3, 1, 4, 4, 16 };
1886
static const uint8_t atrac3p_huff_wav_ampsf3_xlat[32] = {
1887
0, 1, 2, 31, 3, 29, 30, 4, 5, 6, 27, 28, 7, 24, 25, 26,
1888
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
1889
};
1890
1891
static const uint8_t atrac3p_huff_freq_cb[13] = {
1892
1, 11, 1, 0, 0, 2, 2, 0, 9, 9, 29, 104, 100
1893
};
1894
1895
static const uint8_t atrac3p_huff_freq_xlat[256] = {
1896
0, 1, 255, 2, 254, 3, 4, 5, 6, 7, 8, 251, 252, 253, 9, 10,
1897
11, 12, 246, 247, 248, 249, 250, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1898
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1899
38, 243, 244, 245, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1900
51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1901
67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1902
83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 194, 195, 196, 197, 198,
1903
199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1904
215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
1905
231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 94, 95, 96, 97,
1906
98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1907
114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1908
130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1909
146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1910
162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
1911
178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193
1912
};
1913
1914
#endif /* AVCODEC_ATRAC3PLUS_DATA_H */
1915
1916