sdk-world
v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Toggle main menu visibility
Loading...
Searching...
No Matches
huffman.c
1
/*
2
* libmad - MPEG audio decoder library
3
* Copyright (C) 2000-2004 Underbit Technologies, Inc.
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
*
19
* $Id: huffman.c,v 1.10 2004/01/23 09:41:32 rob Exp $
20
*/
21
22
# ifdef HAVE_CONFIG_H
23
# include "config.h"
24
# endif
25
26
# include "
global.h
"
27
28
# include "
huffman.h
"
29
30
/*
31
* These are the Huffman code words for Layer III.
32
* The data for these tables are derived from Table B.7 of ISO/IEC 11172-3.
33
*
34
* These tables support decoding up to 4 Huffman code bits at a time.
35
*/
36
37
# if defined(__GNUC__) || \
38
(defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
39
# define PTR(offs, bits) { .ptr = { 0, bits, offs } }
40
# define V(v, w, x, y, hlen) { .value = { 1, hlen, v, w, x, y } }
41
# else
42
# define PTR(offs, bits) { { 0, bits, offs } }
43
# if defined(WORDS_BIGENDIAN)
44
# define V(v, w, x, y, hlen) { { 1, hlen, (v << 11) | (w << 10) | \
45
(x << 9) | (y << 8) } }
46
# else
47
# define V(v, w, x, y, hlen) { { 1, hlen, (v << 0) | (w << 1) | \
48
(x << 2) | (y << 3) } }
49
# endif
50
# endif
51
52
static
53
union
huffquad
const hufftabA[] = {
54
/* 0000 */
PTR(16, 2),
55
/* 0001 */
PTR(20, 2),
56
/* 0010 */
PTR(24, 1),
57
/* 0011 */
PTR(26, 1),
58
/* 0100 */
V(0, 0, 1, 0, 4),
59
/* 0101 */
V(0, 0, 0, 1, 4),
60
/* 0110 */
V(0, 1, 0, 0, 4),
61
/* 0111 */
V(1, 0, 0, 0, 4),
62
/* 1000 */
V(0, 0, 0, 0, 1),
63
/* 1001 */
V(0, 0, 0, 0, 1),
64
/* 1010 */
V(0, 0, 0, 0, 1),
65
/* 1011 */
V(0, 0, 0, 0, 1),
66
/* 1100 */
V(0, 0, 0, 0, 1),
67
/* 1101 */
V(0, 0, 0, 0, 1),
68
/* 1110 */
V(0, 0, 0, 0, 1),
69
/* 1111 */
V(0, 0, 0, 0, 1),
70
71
/* 0000 ... */
72
/* 00 */
V(1, 0, 1, 1, 2),
/* 16 */
73
/* 01 */
V(1, 1, 1, 1, 2),
74
/* 10 */
V(1, 1, 0, 1, 2),
75
/* 11 */
V(1, 1, 1, 0, 2),
76
77
/* 0001 ... */
78
/* 00 */
V(0, 1, 1, 1, 2),
/* 20 */
79
/* 01 */
V(0, 1, 0, 1, 2),
80
/* 10 */
V(1, 0, 0, 1, 1),
81
/* 11 */
V(1, 0, 0, 1, 1),
82
83
/* 0010 ... */
84
/* 0 */
V(0, 1, 1, 0, 1),
/* 24 */
85
/* 1 */
V(0, 0, 1, 1, 1),
86
87
/* 0011 ... */
88
/* 0 */
V(1, 0, 1, 0, 1),
/* 26 */
89
/* 1 */
V(1, 1, 0, 0, 1)
90
};
91
92
static
93
union
huffquad
const hufftabB[] = {
94
/* 0000 */
V(1, 1, 1, 1, 4),
95
/* 0001 */
V(1, 1, 1, 0, 4),
96
/* 0010 */
V(1, 1, 0, 1, 4),
97
/* 0011 */
V(1, 1, 0, 0, 4),
98
/* 0100 */
V(1, 0, 1, 1, 4),
99
/* 0101 */
V(1, 0, 1, 0, 4),
100
/* 0110 */
V(1, 0, 0, 1, 4),
101
/* 0111 */
V(1, 0, 0, 0, 4),
102
/* 1000 */
V(0, 1, 1, 1, 4),
103
/* 1001 */
V(0, 1, 1, 0, 4),
104
/* 1010 */
V(0, 1, 0, 1, 4),
105
/* 1011 */
V(0, 1, 0, 0, 4),
106
/* 1100 */
V(0, 0, 1, 1, 4),
107
/* 1101 */
V(0, 0, 1, 0, 4),
108
/* 1110 */
V(0, 0, 0, 1, 4),
109
/* 1111 */
V(0, 0, 0, 0, 4)
110
};
111
112
# undef V
113
# undef PTR
114
115
# if defined(__GNUC__) || \
116
(defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
117
# define PTR(offs, bits) { .ptr = { 0, bits, offs } }
118
# define V(x, y, hlen) { .value = { 1, hlen, x, y } }
119
# else
120
# define PTR(offs, bits) { { 0, bits, offs } }
121
# if defined(WORDS_BIGENDIAN)
122
# define V(x, y, hlen) { { 1, hlen, (x << 8) | (y << 4) } }
123
# else
124
# define V(x, y, hlen) { { 1, hlen, (x << 0) | (y << 4) } }
125
# endif
126
# endif
127
128
static
129
union
huffpair
const hufftab0[] = {
130
/* */
V(0, 0, 0)
131
};
132
133
static
134
union
huffpair
const hufftab1[] = {
135
/* 000 */
V(1, 1, 3),
136
/* 001 */
V(0, 1, 3),
137
/* 010 */
V(1, 0, 2),
138
/* 011 */
V(1, 0, 2),
139
/* 100 */
V(0, 0, 1),
140
/* 101 */
V(0, 0, 1),
141
/* 110 */
V(0, 0, 1),
142
/* 111 */
V(0, 0, 1)
143
};
144
145
static
146
union
huffpair
const hufftab2[] = {
147
/* 000 */
PTR(8, 3),
148
/* 001 */
V(1, 1, 3),
149
/* 010 */
V(0, 1, 3),
150
/* 011 */
V(1, 0, 3),
151
/* 100 */
V(0, 0, 1),
152
/* 101 */
V(0, 0, 1),
153
/* 110 */
V(0, 0, 1),
154
/* 111 */
V(0, 0, 1),
155
156
/* 000 ... */
157
/* 000 */
V(2, 2, 3),
/* 8 */
158
/* 001 */
V(0, 2, 3),
159
/* 010 */
V(1, 2, 2),
160
/* 011 */
V(1, 2, 2),
161
/* 100 */
V(2, 1, 2),
162
/* 101 */
V(2, 1, 2),
163
/* 110 */
V(2, 0, 2),
164
/* 111 */
V(2, 0, 2)
165
};
166
167
static
168
union
huffpair
const hufftab3[] = {
169
/* 000 */
PTR(8, 3),
170
/* 001 */
V(1, 0, 3),
171
/* 010 */
V(1, 1, 2),
172
/* 011 */
V(1, 1, 2),
173
/* 100 */
V(0, 1, 2),
174
/* 101 */
V(0, 1, 2),
175
/* 110 */
V(0, 0, 2),
176
/* 111 */
V(0, 0, 2),
177
178
/* 000 ... */
179
/* 000 */
V(2, 2, 3),
/* 8 */
180
/* 001 */
V(0, 2, 3),
181
/* 010 */
V(1, 2, 2),
182
/* 011 */
V(1, 2, 2),
183
/* 100 */
V(2, 1, 2),
184
/* 101 */
V(2, 1, 2),
185
/* 110 */
V(2, 0, 2),
186
/* 111 */
V(2, 0, 2)
187
};
188
189
static
190
union
huffpair
const hufftab5[] = {
191
/* 000 */
PTR(8, 4),
192
/* 001 */
V(1, 1, 3),
193
/* 010 */
V(0, 1, 3),
194
/* 011 */
V(1, 0, 3),
195
/* 100 */
V(0, 0, 1),
196
/* 101 */
V(0, 0, 1),
197
/* 110 */
V(0, 0, 1),
198
/* 111 */
V(0, 0, 1),
199
200
/* 000 ... */
201
/* 0000 */
PTR(24, 1),
/* 8 */
202
/* 0001 */
V(3, 2, 4),
203
/* 0010 */
V(3, 1, 3),
204
/* 0011 */
V(3, 1, 3),
205
/* 0100 */
V(1, 3, 4),
206
/* 0101 */
V(0, 3, 4),
207
/* 0110 */
V(3, 0, 4),
208
/* 0111 */
V(2, 2, 4),
209
/* 1000 */
V(1, 2, 3),
210
/* 1001 */
V(1, 2, 3),
211
/* 1010 */
V(2, 1, 3),
212
/* 1011 */
V(2, 1, 3),
213
/* 1100 */
V(0, 2, 3),
214
/* 1101 */
V(0, 2, 3),
215
/* 1110 */
V(2, 0, 3),
216
/* 1111 */
V(2, 0, 3),
217
218
/* 000 0000 ... */
219
/* 0 */
V(3, 3, 1),
/* 24 */
220
/* 1 */
V(2, 3, 1)
221
};
222
223
static
224
union
huffpair
const hufftab6[] = {
225
/* 0000 */
PTR(16, 3),
226
/* 0001 */
PTR(24, 1),
227
/* 0010 */
PTR(26, 1),
228
/* 0011 */
V(1, 2, 4),
229
/* 0100 */
V(2, 1, 4),
230
/* 0101 */
V(2, 0, 4),
231
/* 0110 */
V(0, 1, 3),
232
/* 0111 */
V(0, 1, 3),
233
/* 1000 */
V(1, 1, 2),
234
/* 1001 */
V(1, 1, 2),
235
/* 1010 */
V(1, 1, 2),
236
/* 1011 */
V(1, 1, 2),
237
/* 1100 */
V(1, 0, 3),
238
/* 1101 */
V(1, 0, 3),
239
/* 1110 */
V(0, 0, 3),
240
/* 1111 */
V(0, 0, 3),
241
242
/* 0000 ... */
243
/* 000 */
V(3, 3, 3),
/* 16 */
244
/* 001 */
V(0, 3, 3),
245
/* 010 */
V(2, 3, 2),
246
/* 011 */
V(2, 3, 2),
247
/* 100 */
V(3, 2, 2),
248
/* 101 */
V(3, 2, 2),
249
/* 110 */
V(3, 0, 2),
250
/* 111 */
V(3, 0, 2),
251
252
/* 0001 ... */
253
/* 0 */
V(1, 3, 1),
/* 24 */
254
/* 1 */
V(3, 1, 1),
255
256
/* 0010 ... */
257
/* 0 */
V(2, 2, 1),
/* 26 */
258
/* 1 */
V(0, 2, 1)
259
};
260
261
static
262
union
huffpair
const hufftab7[] = {
263
/* 0000 */
PTR(16, 4),
264
/* 0001 */
PTR(32, 4),
265
/* 0010 */
PTR(48, 2),
266
/* 0011 */
V(1, 1, 4),
267
/* 0100 */
V(0, 1, 3),
268
/* 0101 */
V(0, 1, 3),
269
/* 0110 */
V(1, 0, 3),
270
/* 0111 */
V(1, 0, 3),
271
/* 1000 */
V(0, 0, 1),
272
/* 1001 */
V(0, 0, 1),
273
/* 1010 */
V(0, 0, 1),
274
/* 1011 */
V(0, 0, 1),
275
/* 1100 */
V(0, 0, 1),
276
/* 1101 */
V(0, 0, 1),
277
/* 1110 */
V(0, 0, 1),
278
/* 1111 */
V(0, 0, 1),
279
280
/* 0000 ... */
281
/* 0000 */
PTR(52, 2),
/* 16 */
282
/* 0001 */
PTR(56, 1),
283
/* 0010 */
PTR(58, 1),
284
/* 0011 */
V(1, 5, 4),
285
/* 0100 */
V(5, 1, 4),
286
/* 0101 */
PTR(60, 1),
287
/* 0110 */
V(5, 0, 4),
288
/* 0111 */
PTR(62, 1),
289
/* 1000 */
V(2, 4, 4),
290
/* 1001 */
V(4, 2, 4),
291
/* 1010 */
V(1, 4, 3),
292
/* 1011 */
V(1, 4, 3),
293
/* 1100 */
V(4, 1, 3),
294
/* 1101 */
V(4, 1, 3),
295
/* 1110 */
V(4, 0, 3),
296
/* 1111 */
V(4, 0, 3),
297
298
/* 0001 ... */
299
/* 0000 */
V(0, 4, 4),
/* 32 */
300
/* 0001 */
V(2, 3, 4),
301
/* 0010 */
V(3, 2, 4),
302
/* 0011 */
V(0, 3, 4),
303
/* 0100 */
V(1, 3, 3),
304
/* 0101 */
V(1, 3, 3),
305
/* 0110 */
V(3, 1, 3),
306
/* 0111 */
V(3, 1, 3),
307
/* 1000 */
V(3, 0, 3),
308
/* 1001 */
V(3, 0, 3),
309
/* 1010 */
V(2, 2, 3),
310
/* 1011 */
V(2, 2, 3),
311
/* 1100 */
V(1, 2, 2),
312
/* 1101 */
V(1, 2, 2),
313
/* 1110 */
V(1, 2, 2),
314
/* 1111 */
V(1, 2, 2),
315
316
/* 0010 ... */
317
/* 00 */
V(2, 1, 1),
/* 48 */
318
/* 01 */
V(2, 1, 1),
319
/* 10 */
V(0, 2, 2),
320
/* 11 */
V(2, 0, 2),
321
322
/* 0000 0000 ... */
323
/* 00 */
V(5, 5, 2),
/* 52 */
324
/* 01 */
V(4, 5, 2),
325
/* 10 */
V(5, 4, 2),
326
/* 11 */
V(5, 3, 2),
327
328
/* 0000 0001 ... */
329
/* 0 */
V(3, 5, 1),
/* 56 */
330
/* 1 */
V(4, 4, 1),
331
332
/* 0000 0010 ... */
333
/* 0 */
V(2, 5, 1),
/* 58 */
334
/* 1 */
V(5, 2, 1),
335
336
/* 0000 0101 ... */
337
/* 0 */
V(0, 5, 1),
/* 60 */
338
/* 1 */
V(3, 4, 1),
339
340
/* 0000 0111 ... */
341
/* 0 */
V(4, 3, 1),
/* 62 */
342
/* 1 */
V(3, 3, 1)
343
};
344
345
# if 0
346
/* this version saves 8 entries (16 bytes) at the expense of
347
an extra lookup in 4 out of 36 cases */
348
static
349
union
huffpair
const hufftab8[] = {
350
/* 0000 */
PTR(16, 4),
351
/* 0001 */
PTR(32, 2),
352
/* 0010 */
V(1, 2, 4),
353
/* 0011 */
V(2, 1, 4),
354
/* 0100 */
V(1, 1, 2),
355
/* 0101 */
V(1, 1, 2),
356
/* 0110 */
V(1, 1, 2),
357
/* 0111 */
V(1, 1, 2),
358
/* 1000 */
V(0, 1, 3),
359
/* 1001 */
V(0, 1, 3),
360
/* 1010 */
V(1, 0, 3),
361
/* 1011 */
V(1, 0, 3),
362
/* 1100 */
V(0, 0, 2),
363
/* 1101 */
V(0, 0, 2),
364
/* 1110 */
V(0, 0, 2),
365
/* 1111 */
V(0, 0, 2),
366
367
/* 0000 ... */
368
/* 0000 */
PTR(36, 3),
/* 16 */
369
/* 0001 */
PTR(44, 2),
370
/* 0010 */
PTR(48, 1),
371
/* 0011 */
V(1, 5, 4),
372
/* 0100 */
V(5, 1, 4),
373
/* 0101 */
PTR(50, 1),
374
/* 0110 */
PTR(52, 1),
375
/* 0111 */
V(2, 4, 4),
376
/* 1000 */
V(4, 2, 4),
377
/* 1001 */
V(1, 4, 4),
378
/* 1010 */
V(4, 1, 3),
379
/* 1011 */
V(4, 1, 3),
380
/* 1100 */
V(0, 4, 4),
381
/* 1101 */
V(4, 0, 4),
382
/* 1110 */
V(2, 3, 4),
383
/* 1111 */
V(3, 2, 4),
384
385
/* 0001 ... */
386
/* 00 */
PTR(54, 2),
/* 32 */
387
/* 01 */
V(2, 2, 2),
388
/* 10 */
V(0, 2, 2),
389
/* 11 */
V(2, 0, 2),
390
391
/* 0000 0000 ... */
392
/* 000 */
V(5, 5, 3),
/* 36 */
393
/* 001 */
V(5, 4, 3),
394
/* 010 */
V(4, 5, 2),
395
/* 011 */
V(4, 5, 2),
396
/* 100 */
V(5, 3, 1),
397
/* 101 */
V(5, 3, 1),
398
/* 110 */
V(5, 3, 1),
399
/* 111 */
V(5, 3, 1),
400
401
/* 0000 0001 ... */
402
/* 00 */
V(3, 5, 2),
/* 44 */
403
/* 01 */
V(4, 4, 2),
404
/* 10 */
V(2, 5, 1),
405
/* 11 */
V(2, 5, 1),
406
407
/* 0000 0010 ... */
408
/* 0 */
V(5, 2, 1),
/* 48 */
409
/* 1 */
V(0, 5, 1),
410
411
/* 0000 0101 ... */
412
/* 0 */
V(3, 4, 1),
/* 50 */
413
/* 1 */
V(4, 3, 1),
414
415
/* 0000 0110 ... */
416
/* 0 */
V(5, 0, 1),
/* 52 */
417
/* 1 */
V(3, 3, 1),
418
419
/* 0001 00 ... */
420
/* 00 */
V(1, 3, 2),
/* 54 */
421
/* 01 */
V(3, 1, 2),
422
/* 10 */
V(0, 3, 2),
423
/* 11 */
V(3, 0, 2),
424
};
425
# else
426
static
427
union
huffpair
const hufftab8[] = {
428
/* 0000 */
PTR(16, 4),
429
/* 0001 */
PTR(32, 4),
430
/* 0010 */
V(1, 2, 4),
431
/* 0011 */
V(2, 1, 4),
432
/* 0100 */
V(1, 1, 2),
433
/* 0101 */
V(1, 1, 2),
434
/* 0110 */
V(1, 1, 2),
435
/* 0111 */
V(1, 1, 2),
436
/* 1000 */
V(0, 1, 3),
437
/* 1001 */
V(0, 1, 3),
438
/* 1010 */
V(1, 0, 3),
439
/* 1011 */
V(1, 0, 3),
440
/* 1100 */
V(0, 0, 2),
441
/* 1101 */
V(0, 0, 2),
442
/* 1110 */
V(0, 0, 2),
443
/* 1111 */
V(0, 0, 2),
444
445
/* 0000 ... */
446
/* 0000 */
PTR(48, 3),
/* 16 */
447
/* 0001 */
PTR(56, 2),
448
/* 0010 */
PTR(60, 1),
449
/* 0011 */
V(1, 5, 4),
450
/* 0100 */
V(5, 1, 4),
451
/* 0101 */
PTR(62, 1),
452
/* 0110 */
PTR(64, 1),
453
/* 0111 */
V(2, 4, 4),
454
/* 1000 */
V(4, 2, 4),
455
/* 1001 */
V(1, 4, 4),
456
/* 1010 */
V(4, 1, 3),
457
/* 1011 */
V(4, 1, 3),
458
/* 1100 */
V(0, 4, 4),
459
/* 1101 */
V(4, 0, 4),
460
/* 1110 */
V(2, 3, 4),
461
/* 1111 */
V(3, 2, 4),
462
463
/* 0001 ... */
464
/* 0000 */
V(1, 3, 4),
/* 32 */
465
/* 0001 */
V(3, 1, 4),
466
/* 0010 */
V(0, 3, 4),
467
/* 0011 */
V(3, 0, 4),
468
/* 0100 */
V(2, 2, 2),
469
/* 0101 */
V(2, 2, 2),
470
/* 0110 */
V(2, 2, 2),
471
/* 0111 */
V(2, 2, 2),
472
/* 1000 */
V(0, 2, 2),
473
/* 1001 */
V(0, 2, 2),
474
/* 1010 */
V(0, 2, 2),
475
/* 1011 */
V(0, 2, 2),
476
/* 1100 */
V(2, 0, 2),
477
/* 1101 */
V(2, 0, 2),
478
/* 1110 */
V(2, 0, 2),
479
/* 1111 */
V(2, 0, 2),
480
481
/* 0000 0000 ... */
482
/* 000 */
V(5, 5, 3),
/* 48 */
483
/* 001 */
V(5, 4, 3),
484
/* 010 */
V(4, 5, 2),
485
/* 011 */
V(4, 5, 2),
486
/* 100 */
V(5, 3, 1),
487
/* 101 */
V(5, 3, 1),
488
/* 110 */
V(5, 3, 1),
489
/* 111 */
V(5, 3, 1),
490
491
/* 0000 0001 ... */
492
/* 00 */
V(3, 5, 2),
/* 56 */
493
/* 01 */
V(4, 4, 2),
494
/* 10 */
V(2, 5, 1),
495
/* 11 */
V(2, 5, 1),
496
497
/* 0000 0010 ... */
498
/* 0 */
V(5, 2, 1),
/* 60 */
499
/* 1 */
V(0, 5, 1),
500
501
/* 0000 0101 ... */
502
/* 0 */
V(3, 4, 1),
/* 62 */
503
/* 1 */
V(4, 3, 1),
504
505
/* 0000 0110 ... */
506
/* 0 */
V(5, 0, 1),
/* 64 */
507
/* 1 */
V(3, 3, 1)
508
};
509
# endif
510
511
static
512
union
huffpair
const hufftab9[] = {
513
/* 0000 */
PTR(16, 4),
514
/* 0001 */
PTR(32, 3),
515
/* 0010 */
PTR(40, 2),
516
/* 0011 */
PTR(44, 2),
517
/* 0100 */
PTR(48, 1),
518
/* 0101 */
V(1, 2, 4),
519
/* 0110 */
V(2, 1, 4),
520
/* 0111 */
V(2, 0, 4),
521
/* 1000 */
V(1, 1, 3),
522
/* 1001 */
V(1, 1, 3),
523
/* 1010 */
V(0, 1, 3),
524
/* 1011 */
V(0, 1, 3),
525
/* 1100 */
V(1, 0, 3),
526
/* 1101 */
V(1, 0, 3),
527
/* 1110 */
V(0, 0, 3),
528
/* 1111 */
V(0, 0, 3),
529
530
/* 0000 ... */
531
/* 0000 */
PTR(50, 1),
/* 16 */
532
/* 0001 */
V(3, 5, 4),
533
/* 0010 */
V(5, 3, 4),
534
/* 0011 */
PTR(52, 1),
535
/* 0100 */
V(4, 4, 4),
536
/* 0101 */
V(2, 5, 4),
537
/* 0110 */
V(5, 2, 4),
538
/* 0111 */
V(1, 5, 4),
539
/* 1000 */
V(5, 1, 3),
540
/* 1001 */
V(5, 1, 3),
541
/* 1010 */
V(3, 4, 3),
542
/* 1011 */
V(3, 4, 3),
543
/* 1100 */
V(4, 3, 3),
544
/* 1101 */
V(4, 3, 3),
545
/* 1110 */
V(5, 0, 4),
546
/* 1111 */
V(0, 4, 4),
547
548
/* 0001 ... */
549
/* 000 */
V(2, 4, 3),
/* 32 */
550
/* 001 */
V(4, 2, 3),
551
/* 010 */
V(3, 3, 3),
552
/* 011 */
V(4, 0, 3),
553
/* 100 */
V(1, 4, 2),
554
/* 101 */
V(1, 4, 2),
555
/* 110 */
V(4, 1, 2),
556
/* 111 */
V(4, 1, 2),
557
558
/* 0010 ... */
559
/* 00 */
V(2, 3, 2),
/* 40 */
560
/* 01 */
V(3, 2, 2),
561
/* 10 */
V(1, 3, 1),
562
/* 11 */
V(1, 3, 1),
563
564
/* 0011 ... */
565
/* 00 */
V(3, 1, 1),
/* 44 */
566
/* 01 */
V(3, 1, 1),
567
/* 10 */
V(0, 3, 2),
568
/* 11 */
V(3, 0, 2),
569
570
/* 0100 ... */
571
/* 0 */
V(2, 2, 1),
/* 48 */
572
/* 1 */
V(0, 2, 1),
573
574
/* 0000 0000 ... */
575
/* 0 */
V(5, 5, 1),
/* 50 */
576
/* 1 */
V(4, 5, 1),
577
578
/* 0000 0011 ... */
579
/* 0 */
V(5, 4, 1),
/* 52 */
580
/* 1 */
V(0, 5, 1)
581
};
582
583
static
584
union
huffpair
const hufftab10[] = {
585
/* 0000 */
PTR(16, 4),
586
/* 0001 */
PTR(32, 4),
587
/* 0010 */
PTR(48, 2),
588
/* 0011 */
V(1, 1, 4),
589
/* 0100 */
V(0, 1, 3),
590
/* 0101 */
V(0, 1, 3),
591
/* 0110 */
V(1, 0, 3),
592
/* 0111 */
V(1, 0, 3),
593
/* 1000 */
V(0, 0, 1),
594
/* 1001 */
V(0, 0, 1),
595
/* 1010 */
V(0, 0, 1),
596
/* 1011 */
V(0, 0, 1),
597
/* 1100 */
V(0, 0, 1),
598
/* 1101 */
V(0, 0, 1),
599
/* 1110 */
V(0, 0, 1),
600
/* 1111 */
V(0, 0, 1),
601
602
/* 0000 ... */
603
/* 0000 */
PTR(52, 3),
/* 16 */
604
/* 0001 */
PTR(60, 2),
605
/* 0010 */
PTR(64, 3),
606
/* 0011 */
PTR(72, 1),
607
/* 0100 */
PTR(74, 2),
608
/* 0101 */
PTR(78, 2),
609
/* 0110 */
PTR(82, 2),
610
/* 0111 */
V(1, 7, 4),
611
/* 1000 */
V(7, 1, 4),
612
/* 1001 */
PTR(86, 1),
613
/* 1010 */
PTR(88, 2),
614
/* 1011 */
PTR(92, 2),
615
/* 1100 */
V(1, 6, 4),
616
/* 1101 */
V(6, 1, 4),
617
/* 1110 */
V(6, 0, 4),
618
/* 1111 */
PTR(96, 1),
619
620
/* 0001 ... */
621
/* 0000 */
PTR(98, 1),
/* 32 */
622
/* 0001 */
PTR(100, 1),
623
/* 0010 */
V(1, 4, 4),
624
/* 0011 */
V(4, 1, 4),
625
/* 0100 */
V(4, 0, 4),
626
/* 0101 */
V(2, 3, 4),
627
/* 0110 */
V(3, 2, 4),
628
/* 0111 */
V(0, 3, 4),
629
/* 1000 */
V(1, 3, 3),
630
/* 1001 */
V(1, 3, 3),
631
/* 1010 */
V(3, 1, 3),
632
/* 1011 */
V(3, 1, 3),
633
/* 1100 */
V(3, 0, 3),
634
/* 1101 */
V(3, 0, 3),
635
/* 1110 */
V(2, 2, 3),
636
/* 1111 */
V(2, 2, 3),
637
638
/* 0010 ... */
639
/* 00 */
V(1, 2, 2),
/* 48 */
640
/* 01 */
V(2, 1, 2),
641
/* 10 */
V(0, 2, 2),
642
/* 11 */
V(2, 0, 2),
643
644
/* 0000 0000 ... */
645
/* 000 */
V(7, 7, 3),
/* 52 */
646
/* 001 */
V(6, 7, 3),
647
/* 010 */
V(7, 6, 3),
648
/* 011 */
V(5, 7, 3),
649
/* 100 */
V(7, 5, 3),
650
/* 101 */
V(6, 6, 3),
651
/* 110 */
V(4, 7, 2),
652
/* 111 */
V(4, 7, 2),
653
654
/* 0000 0001 ... */
655
/* 00 */
V(7, 4, 2),
/* 60 */
656
/* 01 */
V(5, 6, 2),
657
/* 10 */
V(6, 5, 2),
658
/* 11 */
V(3, 7, 2),
659
660
/* 0000 0010 ... */
661
/* 000 */
V(7, 3, 2),
/* 64 */
662
/* 001 */
V(7, 3, 2),
663
/* 010 */
V(4, 6, 2),
664
/* 011 */
V(4, 6, 2),
665
/* 100 */
V(5, 5, 3),
666
/* 101 */
V(5, 4, 3),
667
/* 110 */
V(6, 3, 2),
668
/* 111 */
V(6, 3, 2),
669
670
/* 0000 0011 ... */
671
/* 0 */
V(2, 7, 1),
/* 72 */
672
/* 1 */
V(7, 2, 1),
673
674
/* 0000 0100 ... */
675
/* 00 */
V(6, 4, 2),
/* 74 */
676
/* 01 */
V(0, 7, 2),
677
/* 10 */
V(7, 0, 1),
678
/* 11 */
V(7, 0, 1),
679
680
/* 0000 0101 ... */
681
/* 00 */
V(6, 2, 1),
/* 78 */
682
/* 01 */
V(6, 2, 1),
683
/* 10 */
V(4, 5, 2),
684
/* 11 */
V(3, 5, 2),
685
686
/* 0000 0110 ... */
687
/* 00 */
V(0, 6, 1),
/* 82 */
688
/* 01 */
V(0, 6, 1),
689
/* 10 */
V(5, 3, 2),
690
/* 11 */
V(4, 4, 2),
691
692
/* 0000 1001 ... */
693
/* 0 */
V(3, 6, 1),
/* 86 */
694
/* 1 */
V(2, 6, 1),
695
696
/* 0000 1010 ... */
697
/* 00 */
V(2, 5, 2),
/* 88 */
698
/* 01 */
V(5, 2, 2),
699
/* 10 */
V(1, 5, 1),
700
/* 11 */
V(1, 5, 1),
701
702
/* 0000 1011 ... */
703
/* 00 */
V(5, 1, 1),
/* 92 */
704
/* 01 */
V(5, 1, 1),
705
/* 10 */
V(3, 4, 2),
706
/* 11 */
V(4, 3, 2),
707
708
/* 0000 1111 ... */
709
/* 0 */
V(0, 5, 1),
/* 96 */
710
/* 1 */
V(5, 0, 1),
711
712
/* 0001 0000 ... */
713
/* 0 */
V(2, 4, 1),
/* 98 */
714
/* 1 */
V(4, 2, 1),
715
716
/* 0001 0001 ... */
717
/* 0 */
V(3, 3, 1),
/* 100 */
718
/* 1 */
V(0, 4, 1)
719
};
720
721
static
722
union
huffpair
const hufftab11[] = {
723
/* 0000 */
PTR(16, 4),
724
/* 0001 */
PTR(32, 4),
725
/* 0010 */
PTR(48, 4),
726
/* 0011 */
PTR(64, 3),
727
/* 0100 */
V(1, 2, 4),
728
/* 0101 */
PTR(72, 1),
729
/* 0110 */
V(1, 1, 3),
730
/* 0111 */
V(1, 1, 3),
731
/* 1000 */
V(0, 1, 3),
732
/* 1001 */
V(0, 1, 3),
733
/* 1010 */
V(1, 0, 3),
734
/* 1011 */
V(1, 0, 3),
735
/* 1100 */
V(0, 0, 2),
736
/* 1101 */
V(0, 0, 2),
737
/* 1110 */
V(0, 0, 2),
738
/* 1111 */
V(0, 0, 2),
739
740
/* 0000 ... */
741
/* 0000 */
PTR(74, 2),
/* 16 */
742
/* 0001 */
PTR(78, 3),
743
/* 0010 */
PTR(86, 2),
744
/* 0011 */
PTR(90, 1),
745
/* 0100 */
PTR(92, 2),
746
/* 0101 */
V(2, 7, 4),
747
/* 0110 */
V(7, 2, 4),
748
/* 0111 */
PTR(96, 1),
749
/* 1000 */
V(7, 1, 3),
750
/* 1001 */
V(7, 1, 3),
751
/* 1010 */
V(1, 7, 4),
752
/* 1011 */
V(7, 0, 4),
753
/* 1100 */
V(3, 6, 4),
754
/* 1101 */
V(6, 3, 4),
755
/* 1110 */
V(6, 0, 4),
756
/* 1111 */
PTR(98, 1),
757
758
/* 0001 ... */
759
/* 0000 */
PTR(100, 1),
/* 32 */
760
/* 0001 */
V(1, 5, 4),
761
/* 0010 */
V(6, 2, 3),
762
/* 0011 */
V(6, 2, 3),
763
/* 0100 */
V(2, 6, 4),
764
/* 0101 */
V(0, 6, 4),
765
/* 0110 */
V(1, 6, 3),
766
/* 0111 */
V(1, 6, 3),
767
/* 1000 */
V(6, 1, 3),
768
/* 1001 */
V(6, 1, 3),
769
/* 1010 */
V(5, 1, 4),
770
/* 1011 */
V(3, 4, 4),
771
/* 1100 */
V(5, 0, 4),
772
/* 1101 */
PTR(102, 1),
773
/* 1110 */
V(2, 4, 4),
774
/* 1111 */
V(4, 2, 4),
775
776
/* 0010 ... */
777
/* 0000 */
V(1, 4, 4),
/* 48 */
778
/* 0001 */
V(4, 1, 4),
779
/* 0010 */
V(0, 4, 4),
780
/* 0011 */
V(4, 0, 4),
781
/* 0100 */
V(2, 3, 3),
782
/* 0101 */
V(2, 3, 3),
783
/* 0110 */
V(3, 2, 3),
784
/* 0111 */
V(3, 2, 3),
785
/* 1000 */
V(1, 3, 2),
786
/* 1001 */
V(1, 3, 2),
787
/* 1010 */
V(1, 3, 2),
788
/* 1011 */
V(1, 3, 2),
789
/* 1100 */
V(3, 1, 2),
790
/* 1101 */
V(3, 1, 2),
791
/* 1110 */
V(3, 1, 2),
792
/* 1111 */
V(3, 1, 2),
793
794
/* 0011 ... */
795
/* 000 */
V(0, 3, 3),
/* 64 */
796
/* 001 */
V(3, 0, 3),
797
/* 010 */
V(2, 2, 2),
798
/* 011 */
V(2, 2, 2),
799
/* 100 */
V(2, 1, 1),
800
/* 101 */
V(2, 1, 1),
801
/* 110 */
V(2, 1, 1),
802
/* 111 */
V(2, 1, 1),
803
804
/* 0101 ... */
805
/* 0 */
V(0, 2, 1),
/* 72 */
806
/* 1 */
V(2, 0, 1),
807
808
/* 0000 0000 ... */
809
/* 00 */
V(7, 7, 2),
/* 74 */
810
/* 01 */
V(6, 7, 2),
811
/* 10 */
V(7, 6, 2),
812
/* 11 */
V(7, 5, 2),
813
814
/* 0000 0001 ... */
815
/* 000 */
V(6, 6, 2),
/* 78 */
816
/* 001 */
V(6, 6, 2),
817
/* 010 */
V(4, 7, 2),
818
/* 011 */
V(4, 7, 2),
819
/* 100 */
V(7, 4, 2),
820
/* 101 */
V(7, 4, 2),
821
/* 110 */
V(5, 7, 3),
822
/* 111 */
V(5, 5, 3),
823
824
/* 0000 0010 ... */
825
/* 00 */
V(5, 6, 2),
/* 86 */
826
/* 01 */
V(6, 5, 2),
827
/* 10 */
V(3, 7, 1),
828
/* 11 */
V(3, 7, 1),
829
830
/* 0000 0011 ... */
831
/* 0 */
V(7, 3, 1),
/* 90 */
832
/* 1 */
V(4, 6, 1),
833
834
/* 0000 0100 ... */
835
/* 00 */
V(4, 5, 2),
/* 92 */
836
/* 01 */
V(5, 4, 2),
837
/* 10 */
V(3, 5, 2),
838
/* 11 */
V(5, 3, 2),
839
840
/* 0000 0111 ... */
841
/* 0 */
V(6, 4, 1),
/* 96 */
842
/* 1 */
V(0, 7, 1),
843
844
/* 0000 1111 ... */
845
/* 0 */
V(4, 4, 1),
/* 98 */
846
/* 1 */
V(2, 5, 1),
847
848
/* 0001 0000 ... */
849
/* 0 */
V(5, 2, 1),
/* 100 */
850
/* 1 */
V(0, 5, 1),
851
852
/* 0001 1101 ... */
853
/* 0 */
V(4, 3, 1),
/* 102 */
854
/* 1 */
V(3, 3, 1)
855
};
856
857
static
858
union
huffpair
const hufftab12[] = {
859
/* 0000 */
PTR(16, 4),
860
/* 0001 */
PTR(32, 4),
861
/* 0010 */
PTR(48, 4),
862
/* 0011 */
PTR(64, 2),
863
/* 0100 */
PTR(68, 3),
864
/* 0101 */
PTR(76, 1),
865
/* 0110 */
V(1, 2, 4),
866
/* 0111 */
V(2, 1, 4),
867
/* 1000 */
PTR(78, 1),
868
/* 1001 */
V(0, 0, 4),
869
/* 1010 */
V(1, 1, 3),
870
/* 1011 */
V(1, 1, 3),
871
/* 1100 */
V(0, 1, 3),
872
/* 1101 */
V(0, 1, 3),
873
/* 1110 */
V(1, 0, 3),
874
/* 1111 */
V(1, 0, 3),
875
876
/* 0000 ... */
877
/* 0000 */
PTR(80, 2),
/* 16 */
878
/* 0001 */
PTR(84, 1),
879
/* 0010 */
PTR(86, 1),
880
/* 0011 */
PTR(88, 1),
881
/* 0100 */
V(5, 6, 4),
882
/* 0101 */
V(3, 7, 4),
883
/* 0110 */
PTR(90, 1),
884
/* 0111 */
V(2, 7, 4),
885
/* 1000 */
V(7, 2, 4),
886
/* 1001 */
V(4, 6, 4),
887
/* 1010 */
V(6, 4, 4),
888
/* 1011 */
V(1, 7, 4),
889
/* 1100 */
V(7, 1, 4),
890
/* 1101 */
PTR(92, 1),
891
/* 1110 */
V(3, 6, 4),
892
/* 1111 */
V(6, 3, 4),
893
894
/* 0001 ... */
895
/* 0000 */
V(4, 5, 4),
/* 32 */
896
/* 0001 */
V(5, 4, 4),
897
/* 0010 */
V(4, 4, 4),
898
/* 0011 */
PTR(94, 1),
899
/* 0100 */
V(2, 6, 3),
900
/* 0101 */
V(2, 6, 3),
901
/* 0110 */
V(6, 2, 3),
902
/* 0111 */
V(6, 2, 3),
903
/* 1000 */
V(6, 1, 3),
904
/* 1001 */
V(6, 1, 3),
905
/* 1010 */
V(1, 6, 4),
906
/* 1011 */
V(6, 0, 4),
907
/* 1100 */
V(3, 5, 4),
908
/* 1101 */
V(5, 3, 4),
909
/* 1110 */
V(2, 5, 4),
910
/* 1111 */
V(5, 2, 4),
911
912
/* 0010 ... */
913
/* 0000 */
V(1, 5, 3),
/* 48 */
914
/* 0001 */
V(1, 5, 3),
915
/* 0010 */
V(5, 1, 3),
916
/* 0011 */
V(5, 1, 3),
917
/* 0100 */
V(3, 4, 3),
918
/* 0101 */
V(3, 4, 3),
919
/* 0110 */
V(4, 3, 3),
920
/* 0111 */
V(4, 3, 3),
921
/* 1000 */
V(5, 0, 4),
922
/* 1001 */
V(0, 4, 4),
923
/* 1010 */
V(2, 4, 3),
924
/* 1011 */
V(2, 4, 3),
925
/* 1100 */
V(4, 2, 3),
926
/* 1101 */
V(4, 2, 3),
927
/* 1110 */
V(1, 4, 3),
928
/* 1111 */
V(1, 4, 3),
929
930
/* 0011 ... */
931
/* 00 */
V(3, 3, 2),
/* 64 */
932
/* 01 */
V(4, 1, 2),
933
/* 10 */
V(2, 3, 2),
934
/* 11 */
V(3, 2, 2),
935
936
/* 0100 ... */
937
/* 000 */
V(4, 0, 3),
/* 68 */
938
/* 001 */
V(0, 3, 3),
939
/* 010 */
V(3, 0, 2),
940
/* 011 */
V(3, 0, 2),
941
/* 100 */
V(1, 3, 1),
942
/* 101 */
V(1, 3, 1),
943
/* 110 */
V(1, 3, 1),
944
/* 111 */
V(1, 3, 1),
945
946
/* 0101 ... */
947
/* 0 */
V(3, 1, 1),
/* 76 */
948
/* 1 */
V(2, 2, 1),
949
950
/* 1000 ... */
951
/* 0 */
V(0, 2, 1),
/* 78 */
952
/* 1 */
V(2, 0, 1),
953
954
/* 0000 0000 ... */
955
/* 00 */
V(7, 7, 2),
/* 80 */
956
/* 01 */
V(6, 7, 2),
957
/* 10 */
V(7, 6, 1),
958
/* 11 */
V(7, 6, 1),
959
960
/* 0000 0001 ... */
961
/* 0 */
V(5, 7, 1),
/* 84 */
962
/* 1 */
V(7, 5, 1),
963
964
/* 0000 0010 ... */
965
/* 0 */
V(6, 6, 1),
/* 86 */
966
/* 1 */
V(4, 7, 1),
967
968
/* 0000 0011 ... */
969
/* 0 */
V(7, 4, 1),
/* 88 */
970
/* 1 */
V(6, 5, 1),
971
972
/* 0000 0110 ... */
973
/* 0 */
V(7, 3, 1),
/* 90 */
974
/* 1 */
V(5, 5, 1),
975
976
/* 0000 1101 ... */
977
/* 0 */
V(0, 7, 1),
/* 92 */
978
/* 1 */
V(7, 0, 1),
979
980
/* 0001 0011 ... */
981
/* 0 */
V(0, 6, 1),
/* 94 */
982
/* 1 */
V(0, 5, 1)
983
};
984
985
static
986
union
huffpair
const hufftab13[] = {
987
/* 0000 */
PTR(16, 4),
988
/* 0001 */
PTR(32, 4),
989
/* 0010 */
PTR(48, 4),
990
/* 0011 */
PTR(64, 2),
991
/* 0100 */
V(1, 1, 4),
992
/* 0101 */
V(0, 1, 4),
993
/* 0110 */
V(1, 0, 3),
994
/* 0111 */
V(1, 0, 3),
995
/* 1000 */
V(0, 0, 1),
996
/* 1001 */
V(0, 0, 1),
997
/* 1010 */
V(0, 0, 1),
998
/* 1011 */
V(0, 0, 1),
999
/* 1100 */
V(0, 0, 1),
1000
/* 1101 */
V(0, 0, 1),
1001
/* 1110 */
V(0, 0, 1),
1002
/* 1111 */
V(0, 0, 1),
1003
1004
/* 0000 ... */
1005
/* 0000 */
PTR(68, 4),
/* 16 */
1006
/* 0001 */
PTR(84, 4),
1007
/* 0010 */
PTR(100, 4),
1008
/* 0011 */
PTR(116, 4),
1009
/* 0100 */
PTR(132, 4),
1010
/* 0101 */
PTR(148, 4),
1011
/* 0110 */
PTR(164, 3),
1012
/* 0111 */
PTR(172, 3),
1013
/* 1000 */
PTR(180, 3),
1014
/* 1001 */
PTR(188, 3),
1015
/* 1010 */
PTR(196, 3),
1016
/* 1011 */
PTR(204, 3),
1017
/* 1100 */
PTR(212, 1),
1018
/* 1101 */
PTR(214, 2),
1019
/* 1110 */
PTR(218, 3),
1020
/* 1111 */
PTR(226, 1),
1021
1022
/* 0001 ... */
1023
/* 0000 */
PTR(228, 2),
/* 32 */
1024
/* 0001 */
PTR(232, 2),
1025
/* 0010 */
PTR(236, 2),
1026
/* 0011 */
PTR(240, 2),
1027
/* 0100 */
V(8, 1, 4),
1028
/* 0101 */
PTR(244, 1),
1029
/* 0110 */
PTR(246, 1),
1030
/* 0111 */
PTR(248, 1),
1031
/* 1000 */
PTR(250, 2),
1032
/* 1001 */
PTR(254, 1),
1033
/* 1010 */
V(1, 5, 4),
1034
/* 1011 */
V(5, 1, 4),
1035
/* 1100 */
PTR(256, 1),
1036
/* 1101 */
PTR(258, 1),
1037
/* 1110 */
PTR(260, 1),
1038
/* 1111 */
V(1, 4, 4),
1039
1040
/* 0010 ... */
1041
/* 0000 */
V(4, 1, 3),
/* 48 */
1042
/* 0001 */
V(4, 1, 3),
1043
/* 0010 */
V(0, 4, 4),
1044
/* 0011 */
V(4, 0, 4),
1045
/* 0100 */
V(2, 3, 4),
1046
/* 0101 */
V(3, 2, 4),
1047
/* 0110 */
V(1, 3, 3),
1048
/* 0111 */
V(1, 3, 3),
1049
/* 1000 */
V(3, 1, 3),
1050
/* 1001 */
V(3, 1, 3),
1051
/* 1010 */
V(0, 3, 3),
1052
/* 1011 */
V(0, 3, 3),
1053
/* 1100 */
V(3, 0, 3),
1054
/* 1101 */
V(3, 0, 3),
1055
/* 1110 */
V(2, 2, 3),
1056
/* 1111 */
V(2, 2, 3),
1057
1058
/* 0011 ... */
1059
/* 00 */
V(1, 2, 2),
/* 64 */
1060
/* 01 */
V(2, 1, 2),
1061
/* 10 */
V(0, 2, 2),
1062
/* 11 */
V(2, 0, 2),
1063
1064
/* 0000 0000 ... */
1065
/* 0000 */
PTR(262, 4),
/* 68 */
1066
/* 0001 */
PTR(278, 4),
1067
/* 0010 */
PTR(294, 4),
1068
/* 0011 */
PTR(310, 3),
1069
/* 0100 */
PTR(318, 2),
1070
/* 0101 */
PTR(322, 2),
1071
/* 0110 */
PTR(326, 3),
1072
/* 0111 */
PTR(334, 2),
1073
/* 1000 */
PTR(338, 1),
1074
/* 1001 */
PTR(340, 2),
1075
/* 1010 */
PTR(344, 2),
1076
/* 1011 */
PTR(348, 2),
1077
/* 1100 */
PTR(352, 2),
1078
/* 1101 */
PTR(356, 2),
1079
/* 1110 */
V(1, 15, 4),
1080
/* 1111 */
V(15, 1, 4),
1081
1082
/* 0000 0001 ... */
1083
/* 0000 */
V(15, 0, 4),
/* 84 */
1084
/* 0001 */
PTR(360, 1),
1085
/* 0010 */
PTR(362, 1),
1086
/* 0011 */
PTR(364, 1),
1087
/* 0100 */
V(14, 2, 4),
1088
/* 0101 */
PTR(366, 1),
1089
/* 0110 */
V(1, 14, 4),
1090
/* 0111 */
V(14, 1, 4),
1091
/* 1000 */
PTR(368, 1),
1092
/* 1001 */
PTR(370, 1),
1093
/* 1010 */
PTR(372, 1),
1094
/* 1011 */
PTR(374, 1),
1095
/* 1100 */
PTR(376, 1),
1096
/* 1101 */
PTR(378, 1),
1097
/* 1110 */
V(12, 6, 4),
1098
/* 1111 */
V(3, 13, 4),
1099
1100
/* 0000 0010 ... */
1101
/* 0000 */
PTR(380, 1),
/* 100 */
1102
/* 0001 */
V(2, 13, 4),
1103
/* 0010 */
V(13, 2, 4),
1104
/* 0011 */
V(1, 13, 4),
1105
/* 0100 */
V(11, 7, 4),
1106
/* 0101 */
PTR(382, 1),
1107
/* 0110 */
PTR(384, 1),
1108
/* 0111 */
V(12, 3, 4),
1109
/* 1000 */
PTR(386, 1),
1110
/* 1001 */
V(4, 11, 4),
1111
/* 1010 */
V(13, 1, 3),
1112
/* 1011 */
V(13, 1, 3),
1113
/* 1100 */
V(0, 13, 4),
1114
/* 1101 */
V(13, 0, 4),
1115
/* 1110 */
V(8, 10, 4),
1116
/* 1111 */
V(10, 8, 4),
1117
1118
/* 0000 0011 ... */
1119
/* 0000 */
V(4, 12, 4),
/* 116 */
1120
/* 0001 */
V(12, 4, 4),
1121
/* 0010 */
V(6, 11, 4),
1122
/* 0011 */
V(11, 6, 4),
1123
/* 0100 */
V(3, 12, 3),
1124
/* 0101 */
V(3, 12, 3),
1125
/* 0110 */
V(2, 12, 3),
1126
/* 0111 */
V(2, 12, 3),
1127
/* 1000 */
V(12, 2, 3),
1128
/* 1001 */
V(12, 2, 3),
1129
/* 1010 */
V(5, 11, 3),
1130
/* 1011 */
V(5, 11, 3),
1131
/* 1100 */
V(11, 5, 4),
1132
/* 1101 */
V(8, 9, 4),
1133
/* 1110 */
V(1, 12, 3),
1134
/* 1111 */
V(1, 12, 3),
1135
1136
/* 0000 0100 ... */
1137
/* 0000 */
V(12, 1, 3),
/* 132 */
1138
/* 0001 */
V(12, 1, 3),
1139
/* 0010 */
V(9, 8, 4),
1140
/* 0011 */
V(0, 12, 4),
1141
/* 0100 */
V(12, 0, 3),
1142
/* 0101 */
V(12, 0, 3),
1143
/* 0110 */
V(11, 4, 4),
1144
/* 0111 */
V(6, 10, 4),
1145
/* 1000 */
V(10, 6, 4),
1146
/* 1001 */
V(7, 9, 4),
1147
/* 1010 */
V(3, 11, 3),
1148
/* 1011 */
V(3, 11, 3),
1149
/* 1100 */
V(11, 3, 3),
1150
/* 1101 */
V(11, 3, 3),
1151
/* 1110 */
V(8, 8, 4),
1152
/* 1111 */
V(5, 10, 4),
1153
1154
/* 0000 0101 ... */
1155
/* 0000 */
V(2, 11, 3),
/* 148 */
1156
/* 0001 */
V(2, 11, 3),
1157
/* 0010 */
V(10, 5, 4),
1158
/* 0011 */
V(6, 9, 4),
1159
/* 0100 */
V(10, 4, 3),
1160
/* 0101 */
V(10, 4, 3),
1161
/* 0110 */
V(7, 8, 4),
1162
/* 0111 */
V(8, 7, 4),
1163
/* 1000 */
V(9, 4, 3),
1164
/* 1001 */
V(9, 4, 3),
1165
/* 1010 */
V(7, 7, 4),
1166
/* 1011 */
V(7, 6, 4),
1167
/* 1100 */
V(11, 2, 2),
1168
/* 1101 */
V(11, 2, 2),
1169
/* 1110 */
V(11, 2, 2),
1170
/* 1111 */
V(11, 2, 2),
1171
1172
/* 0000 0110 ... */
1173
/* 000 */
V(1, 11, 2),
/* 164 */
1174
/* 001 */
V(1, 11, 2),
1175
/* 010 */
V(11, 1, 2),
1176
/* 011 */
V(11, 1, 2),
1177
/* 100 */
V(0, 11, 3),
1178
/* 101 */
V(11, 0, 3),
1179
/* 110 */
V(9, 6, 3),
1180
/* 111 */
V(4, 10, 3),
1181
1182
/* 0000 0111 ... */
1183
/* 000 */
V(3, 10, 3),
/* 172 */
1184
/* 001 */
V(10, 3, 3),
1185
/* 010 */
V(5, 9, 3),
1186
/* 011 */
V(9, 5, 3),
1187
/* 100 */
V(2, 10, 2),
1188
/* 101 */
V(2, 10, 2),
1189
/* 110 */
V(10, 2, 2),
1190
/* 111 */
V(10, 2, 2),
1191
1192
/* 0000 1000 ... */
1193
/* 000 */
V(1, 10, 2),
/* 180 */
1194
/* 001 */
V(1, 10, 2),
1195
/* 010 */
V(10, 1, 2),
1196
/* 011 */
V(10, 1, 2),
1197
/* 100 */
V(0, 10, 3),
1198
/* 101 */
V(6, 8, 3),
1199
/* 110 */
V(10, 0, 2),
1200
/* 111 */
V(10, 0, 2),
1201
1202
/* 0000 1001 ... */
1203
/* 000 */
V(8, 6, 3),
/* 188 */
1204
/* 001 */
V(4, 9, 3),
1205
/* 010 */
V(9, 3, 2),
1206
/* 011 */
V(9, 3, 2),
1207
/* 100 */
V(3, 9, 3),
1208
/* 101 */
V(5, 8, 3),
1209
/* 110 */
V(8, 5, 3),
1210
/* 111 */
V(6, 7, 3),
1211
1212
/* 0000 1010 ... */
1213
/* 000 */
V(2, 9, 2),
/* 196 */
1214
/* 001 */
V(2, 9, 2),
1215
/* 010 */
V(9, 2, 2),
1216
/* 011 */
V(9, 2, 2),
1217
/* 100 */
V(5, 7, 3),
1218
/* 101 */
V(7, 5, 3),
1219
/* 110 */
V(3, 8, 2),
1220
/* 111 */
V(3, 8, 2),
1221
1222
/* 0000 1011 ... */
1223
/* 000 */
V(8, 3, 2),
/* 204 */
1224
/* 001 */
V(8, 3, 2),
1225
/* 010 */
V(6, 6, 3),
1226
/* 011 */
V(4, 7, 3),
1227
/* 100 */
V(7, 4, 3),
1228
/* 101 */
V(5, 6, 3),
1229
/* 110 */
V(6, 5, 3),
1230
/* 111 */
V(7, 3, 3),
1231
1232
/* 0000 1100 ... */
1233
/* 0 */
V(1, 9, 1),
/* 212 */
1234
/* 1 */
V(9, 1, 1),
1235
1236
/* 0000 1101 ... */
1237
/* 00 */
V(0, 9, 2),
/* 214 */
1238
/* 01 */
V(9, 0, 2),
1239
/* 10 */
V(4, 8, 2),
1240
/* 11 */
V(8, 4, 2),
1241
1242
/* 0000 1110 ... */
1243
/* 000 */
V(7, 2, 2),
/* 218 */
1244
/* 001 */
V(7, 2, 2),
1245
/* 010 */
V(4, 6, 3),
1246
/* 011 */
V(6, 4, 3),
1247
/* 100 */
V(2, 8, 1),
1248
/* 101 */
V(2, 8, 1),
1249
/* 110 */
V(2, 8, 1),
1250
/* 111 */
V(2, 8, 1),
1251
1252
/* 0000 1111 ... */
1253
/* 0 */
V(8, 2, 1),
/* 226 */
1254
/* 1 */
V(1, 8, 1),
1255
1256
/* 0001 0000 ... */
1257
/* 00 */
V(3, 7, 2),
/* 228 */
1258
/* 01 */
V(2, 7, 2),
1259
/* 10 */
V(1, 7, 1),
1260
/* 11 */
V(1, 7, 1),
1261
1262
/* 0001 0001 ... */
1263
/* 00 */
V(7, 1, 1),
/* 232 */
1264
/* 01 */
V(7, 1, 1),
1265
/* 10 */
V(5, 5, 2),
1266
/* 11 */
V(0, 7, 2),
1267
1268
/* 0001 0010 ... */
1269
/* 00 */
V(7, 0, 2),
/* 236 */
1270
/* 01 */
V(3, 6, 2),
1271
/* 10 */
V(6, 3, 2),
1272
/* 11 */
V(4, 5, 2),
1273
1274
/* 0001 0011 ... */
1275
/* 00 */
V(5, 4, 2),
/* 240 */
1276
/* 01 */
V(2, 6, 2),
1277
/* 10 */
V(6, 2, 2),
1278
/* 11 */
V(3, 5, 2),
1279
1280
/* 0001 0101 ... */
1281
/* 0 */
V(0, 8, 1),
/* 244 */
1282
/* 1 */
V(8, 0, 1),
1283
1284
/* 0001 0110 ... */
1285
/* 0 */
V(1, 6, 1),
/* 246 */
1286
/* 1 */
V(6, 1, 1),
1287
1288
/* 0001 0111 ... */
1289
/* 0 */
V(0, 6, 1),
/* 248 */
1290
/* 1 */
V(6, 0, 1),
1291
1292
/* 0001 1000 ... */
1293
/* 00 */
V(5, 3, 2),
/* 250 */
1294
/* 01 */
V(4, 4, 2),
1295
/* 10 */
V(2, 5, 1),
1296
/* 11 */
V(2, 5, 1),
1297
1298
/* 0001 1001 ... */
1299
/* 0 */
V(5, 2, 1),
/* 254 */
1300
/* 1 */
V(0, 5, 1),
1301
1302
/* 0001 1100 ... */
1303
/* 0 */
V(3, 4, 1),
/* 256 */
1304
/* 1 */
V(4, 3, 1),
1305
1306
/* 0001 1101 ... */
1307
/* 0 */
V(5, 0, 1),
/* 258 */
1308
/* 1 */
V(2, 4, 1),
1309
1310
/* 0001 1110 ... */
1311
/* 0 */
V(4, 2, 1),
/* 260 */
1312
/* 1 */
V(3, 3, 1),
1313
1314
/* 0000 0000 0000 ... */
1315
/* 0000 */
PTR(388, 3),
/* 262 */
1316
/* 0001 */
V(15, 15, 4),
1317
/* 0010 */
V(14, 15, 4),
1318
/* 0011 */
V(13, 15, 4),
1319
/* 0100 */
V(14, 14, 4),
1320
/* 0101 */
V(12, 15, 4),
1321
/* 0110 */
V(13, 14, 4),
1322
/* 0111 */
V(11, 15, 4),
1323
/* 1000 */
V(15, 11, 4),
1324
/* 1001 */
V(12, 14, 4),
1325
/* 1010 */
V(13, 12, 4),
1326
/* 1011 */
PTR(396, 1),
1327
/* 1100 */
V(14, 12, 3),
1328
/* 1101 */
V(14, 12, 3),
1329
/* 1110 */
V(13, 13, 3),
1330
/* 1111 */
V(13, 13, 3),
1331
1332
/* 0000 0000 0001 ... */
1333
/* 0000 */
V(15, 10, 4),
/* 278 */
1334
/* 0001 */
V(12, 13, 4),
1335
/* 0010 */
V(11, 14, 3),
1336
/* 0011 */
V(11, 14, 3),
1337
/* 0100 */
V(14, 11, 3),
1338
/* 0101 */
V(14, 11, 3),
1339
/* 0110 */
V(9, 15, 3),
1340
/* 0111 */
V(9, 15, 3),
1341
/* 1000 */
V(15, 9, 3),
1342
/* 1001 */
V(15, 9, 3),
1343
/* 1010 */
V(14, 10, 3),
1344
/* 1011 */
V(14, 10, 3),
1345
/* 1100 */
V(11, 13, 3),
1346
/* 1101 */
V(11, 13, 3),
1347
/* 1110 */
V(13, 11, 3),
1348
/* 1111 */
V(13, 11, 3),
1349
1350
/* 0000 0000 0010 ... */
1351
/* 0000 */
V(8, 15, 3),
/* 294 */
1352
/* 0001 */
V(8, 15, 3),
1353
/* 0010 */
V(15, 8, 3),
1354
/* 0011 */
V(15, 8, 3),
1355
/* 0100 */
V(12, 12, 3),
1356
/* 0101 */
V(12, 12, 3),
1357
/* 0110 */
V(10, 14, 4),
1358
/* 0111 */
V(9, 14, 4),
1359
/* 1000 */
V(8, 14, 3),
1360
/* 1001 */
V(8, 14, 3),
1361
/* 1010 */
V(7, 15, 4),
1362
/* 1011 */
V(7, 14, 4),
1363
/* 1100 */
V(15, 7, 2),
1364
/* 1101 */
V(15, 7, 2),
1365
/* 1110 */
V(15, 7, 2),
1366
/* 1111 */
V(15, 7, 2),
1367
1368
/* 0000 0000 0011 ... */
1369
/* 000 */
V(13, 10, 2),
/* 310 */
1370
/* 001 */
V(13, 10, 2),
1371
/* 010 */
V(10, 13, 3),
1372
/* 011 */
V(11, 12, 3),
1373
/* 100 */
V(12, 11, 3),
1374
/* 101 */
V(15, 6, 3),
1375
/* 110 */
V(6, 15, 2),
1376
/* 111 */
V(6, 15, 2),
1377
1378
/* 0000 0000 0100 ... */
1379
/* 00 */
V(14, 8, 2),
/* 318 */
1380
/* 01 */
V(5, 15, 2),
1381
/* 10 */
V(9, 13, 2),
1382
/* 11 */
V(13, 9, 2),
1383
1384
/* 0000 0000 0101 ... */
1385
/* 00 */
V(15, 5, 2),
/* 322 */
1386
/* 01 */
V(14, 7, 2),
1387
/* 10 */
V(10, 12, 2),
1388
/* 11 */
V(11, 11, 2),
1389
1390
/* 0000 0000 0110 ... */
1391
/* 000 */
V(4, 15, 2),
/* 326 */
1392
/* 001 */
V(4, 15, 2),
1393
/* 010 */
V(15, 4, 2),
1394
/* 011 */
V(15, 4, 2),
1395
/* 100 */
V(12, 10, 3),
1396
/* 101 */
V(14, 6, 3),
1397
/* 110 */
V(15, 3, 2),
1398
/* 111 */
V(15, 3, 2),
1399
1400
/* 0000 0000 0111 ... */
1401
/* 00 */
V(3, 15, 1),
/* 334 */
1402
/* 01 */
V(3, 15, 1),
1403
/* 10 */
V(8, 13, 2),
1404
/* 11 */
V(13, 8, 2),
1405
1406
/* 0000 0000 1000 ... */
1407
/* 0 */
V(2, 15, 1),
/* 338 */
1408
/* 1 */
V(15, 2, 1),
1409
1410
/* 0000 0000 1001 ... */
1411
/* 00 */
V(6, 14, 2),
/* 340 */
1412
/* 01 */
V(9, 12, 2),
1413
/* 10 */
V(0, 15, 1),
1414
/* 11 */
V(0, 15, 1),
1415
1416
/* 0000 0000 1010 ... */
1417
/* 00 */
V(12, 9, 2),
/* 344 */
1418
/* 01 */
V(5, 14, 2),
1419
/* 10 */
V(10, 11, 1),
1420
/* 11 */
V(10, 11, 1),
1421
1422
/* 0000 0000 1011 ... */
1423
/* 00 */
V(7, 13, 2),
/* 348 */
1424
/* 01 */
V(13, 7, 2),
1425
/* 10 */
V(4, 14, 1),
1426
/* 11 */
V(4, 14, 1),
1427
1428
/* 0000 0000 1100 ... */
1429
/* 00 */
V(12, 8, 2),
/* 352 */
1430
/* 01 */
V(13, 6, 2),
1431
/* 10 */
V(3, 14, 1),
1432
/* 11 */
V(3, 14, 1),
1433
1434
/* 0000 0000 1101 ... */
1435
/* 00 */
V(11, 9, 1),
/* 356 */
1436
/* 01 */
V(11, 9, 1),
1437
/* 10 */
V(9, 11, 2),
1438
/* 11 */
V(10, 10, 2),
1439
1440
/* 0000 0001 0001 ... */
1441
/* 0 */
V(11, 10, 1),
/* 360 */
1442
/* 1 */
V(14, 5, 1),
1443
1444
/* 0000 0001 0010 ... */
1445
/* 0 */
V(14, 4, 1),
/* 362 */
1446
/* 1 */
V(8, 12, 1),
1447
1448
/* 0000 0001 0011 ... */
1449
/* 0 */
V(6, 13, 1),
/* 364 */
1450
/* 1 */
V(14, 3, 1),
1451
1452
/* 0000 0001 0101 ... */
1453
/* 0 */
V(2, 14, 1),
/* 366 */
1454
/* 1 */
V(0, 14, 1),
1455
1456
/* 0000 0001 1000 ... */
1457
/* 0 */
V(14, 0, 1),
/* 368 */
1458
/* 1 */
V(5, 13, 1),
1459
1460
/* 0000 0001 1001 ... */
1461
/* 0 */
V(13, 5, 1),
/* 370 */
1462
/* 1 */
V(7, 12, 1),
1463
1464
/* 0000 0001 1010 ... */
1465
/* 0 */
V(12, 7, 1),
/* 372 */
1466
/* 1 */
V(4, 13, 1),
1467
1468
/* 0000 0001 1011 ... */
1469
/* 0 */
V(8, 11, 1),
/* 374 */
1470
/* 1 */
V(11, 8, 1),
1471
1472
/* 0000 0001 1100 ... */
1473
/* 0 */
V(13, 4, 1),
/* 376 */
1474
/* 1 */
V(9, 10, 1),
1475
1476
/* 0000 0001 1101 ... */
1477
/* 0 */
V(10, 9, 1),
/* 378 */
1478
/* 1 */
V(6, 12, 1),
1479
1480
/* 0000 0010 0000 ... */
1481
/* 0 */
V(13, 3, 1),
/* 380 */
1482
/* 1 */
V(7, 11, 1),
1483
1484
/* 0000 0010 0101 ... */
1485
/* 0 */
V(5, 12, 1),
/* 382 */
1486
/* 1 */
V(12, 5, 1),
1487
1488
/* 0000 0010 0110 ... */
1489
/* 0 */
V(9, 9, 1),
/* 384 */
1490
/* 1 */
V(7, 10, 1),
1491
1492
/* 0000 0010 1000 ... */
1493
/* 0 */
V(10, 7, 1),
/* 386 */
1494
/* 1 */
V(9, 7, 1),
1495
1496
/* 0000 0000 0000 0000 ... */
1497
/* 000 */
V(15, 14, 3),
/* 388 */
1498
/* 001 */
V(15, 12, 3),
1499
/* 010 */
V(15, 13, 2),
1500
/* 011 */
V(15, 13, 2),
1501
/* 100 */
V(14, 13, 1),
1502
/* 101 */
V(14, 13, 1),
1503
/* 110 */
V(14, 13, 1),
1504
/* 111 */
V(14, 13, 1),
1505
1506
/* 0000 0000 0000 1011 ... */
1507
/* 0 */
V(10, 15, 1),
/* 396 */
1508
/* 1 */
V(14, 9, 1)
1509
};
1510
1511
static
1512
union
huffpair
const hufftab15[] = {
1513
/* 0000 */
PTR(16, 4),
1514
/* 0001 */
PTR(32, 4),
1515
/* 0010 */
PTR(48, 4),
1516
/* 0011 */
PTR(64, 4),
1517
/* 0100 */
PTR(80, 4),
1518
/* 0101 */
PTR(96, 3),
1519
/* 0110 */
PTR(104, 3),
1520
/* 0111 */
PTR(112, 2),
1521
/* 1000 */
PTR(116, 1),
1522
/* 1001 */
PTR(118, 1),
1523
/* 1010 */
V(1, 1, 3),
1524
/* 1011 */
V(1, 1, 3),
1525
/* 1100 */
V(0, 1, 4),
1526
/* 1101 */
V(1, 0, 4),
1527
/* 1110 */
V(0, 0, 3),
1528
/* 1111 */
V(0, 0, 3),
1529
1530
/* 0000 ... */
1531
/* 0000 */
PTR(120, 4),
/* 16 */
1532
/* 0001 */
PTR(136, 4),
1533
/* 0010 */
PTR(152, 4),
1534
/* 0011 */
PTR(168, 4),
1535
/* 0100 */
PTR(184, 4),
1536
/* 0101 */
PTR(200, 3),
1537
/* 0110 */
PTR(208, 3),
1538
/* 0111 */
PTR(216, 4),
1539
/* 1000 */
PTR(232, 3),
1540
/* 1001 */
PTR(240, 3),
1541
/* 1010 */
PTR(248, 3),
1542
/* 1011 */
PTR(256, 3),
1543
/* 1100 */
PTR(264, 2),
1544
/* 1101 */
PTR(268, 3),
1545
/* 1110 */
PTR(276, 3),
1546
/* 1111 */
PTR(284, 2),
1547
1548
/* 0001 ... */
1549
/* 0000 */
PTR(288, 2),
/* 32 */
1550
/* 0001 */
PTR(292, 2),
1551
/* 0010 */
PTR(296, 2),
1552
/* 0011 */
PTR(300, 2),
1553
/* 0100 */
PTR(304, 2),
1554
/* 0101 */
PTR(308, 2),
1555
/* 0110 */
PTR(312, 2),
1556
/* 0111 */
PTR(316, 2),
1557
/* 1000 */
PTR(320, 1),
1558
/* 1001 */
PTR(322, 1),
1559
/* 1010 */
PTR(324, 1),
1560
/* 1011 */
PTR(326, 2),
1561
/* 1100 */
PTR(330, 1),
1562
/* 1101 */
PTR(332, 1),
1563
/* 1110 */
PTR(334, 2),
1564
/* 1111 */
PTR(338, 1),
1565
1566
/* 0010 ... */
1567
/* 0000 */
PTR(340, 1),
/* 48 */
1568
/* 0001 */
PTR(342, 1),
1569
/* 0010 */
V(9, 1, 4),
1570
/* 0011 */
PTR(344, 1),
1571
/* 0100 */
PTR(346, 1),
1572
/* 0101 */
PTR(348, 1),
1573
/* 0110 */
PTR(350, 1),
1574
/* 0111 */
PTR(352, 1),
1575
/* 1000 */
V(2, 8, 4),
1576
/* 1001 */
V(8, 2, 4),
1577
/* 1010 */
V(1, 8, 4),
1578
/* 1011 */
V(8, 1, 4),
1579
/* 1100 */
PTR(354, 1),
1580
/* 1101 */
PTR(356, 1),
1581
/* 1110 */
PTR(358, 1),
1582
/* 1111 */
PTR(360, 1),
1583
1584
/* 0011 ... */
1585
/* 0000 */
V(2, 7, 4),
/* 64 */
1586
/* 0001 */
V(7, 2, 4),
1587
/* 0010 */
V(6, 4, 4),
1588
/* 0011 */
V(1, 7, 4),
1589
/* 0100 */
V(5, 5, 4),
1590
/* 0101 */
V(7, 1, 4),
1591
/* 0110 */
PTR(362, 1),
1592
/* 0111 */
V(3, 6, 4),
1593
/* 1000 */
V(6, 3, 4),
1594
/* 1001 */
V(4, 5, 4),
1595
/* 1010 */
V(5, 4, 4),
1596
/* 1011 */
V(2, 6, 4),
1597
/* 1100 */
V(6, 2, 4),
1598
/* 1101 */
V(1, 6, 4),
1599
/* 1110 */
PTR(364, 1),
1600
/* 1111 */
V(3, 5, 4),
1601
1602
/* 0100 ... */
1603
/* 0000 */
V(6, 1, 3),
/* 80 */
1604
/* 0001 */
V(6, 1, 3),
1605
/* 0010 */
V(5, 3, 4),
1606
/* 0011 */
V(4, 4, 4),
1607
/* 0100 */
V(2, 5, 3),
1608
/* 0101 */
V(2, 5, 3),
1609
/* 0110 */
V(5, 2, 3),
1610
/* 0111 */
V(5, 2, 3),
1611
/* 1000 */
V(1, 5, 3),
1612
/* 1001 */
V(1, 5, 3),
1613
/* 1010 */
V(5, 1, 3),
1614
/* 1011 */
V(5, 1, 3),
1615
/* 1100 */
V(0, 5, 4),
1616
/* 1101 */
V(5, 0, 4),
1617
/* 1110 */
V(3, 4, 3),
1618
/* 1111 */
V(3, 4, 3),
1619
1620
/* 0101 ... */
1621
/* 000 */
V(4, 3, 3),
/* 96 */
1622
/* 001 */
V(2, 4, 3),
1623
/* 010 */
V(4, 2, 3),
1624
/* 011 */
V(3, 3, 3),
1625
/* 100 */
V(4, 1, 2),
1626
/* 101 */
V(4, 1, 2),
1627
/* 110 */
V(1, 4, 3),
1628
/* 111 */
V(0, 4, 3),
1629
1630
/* 0110 ... */
1631
/* 000 */
V(2, 3, 2),
/* 104 */
1632
/* 001 */
V(2, 3, 2),
1633
/* 010 */
V(3, 2, 2),
1634
/* 011 */
V(3, 2, 2),
1635
/* 100 */
V(4, 0, 3),
1636
/* 101 */
V(0, 3, 3),
1637
/* 110 */
V(1, 3, 2),
1638
/* 111 */
V(1, 3, 2),
1639
1640
/* 0111 ... */
1641
/* 00 */
V(3, 1, 2),
/* 112 */
1642
/* 01 */
V(3, 0, 2),
1643
/* 10 */
V(2, 2, 1),
1644
/* 11 */
V(2, 2, 1),
1645
1646
/* 1000 ... */
1647
/* 0 */
V(1, 2, 1),
/* 116 */
1648
/* 1 */
V(2, 1, 1),
1649
1650
/* 1001 ... */
1651
/* 0 */
V(0, 2, 1),
/* 118 */
1652
/* 1 */
V(2, 0, 1),
1653
1654
/* 0000 0000 ... */
1655
/* 0000 */
PTR(366, 1),
/* 120 */
1656
/* 0001 */
PTR(368, 1),
1657
/* 0010 */
V(14, 14, 4),
1658
/* 0011 */
PTR(370, 1),
1659
/* 0100 */
PTR(372, 1),
1660
/* 0101 */
PTR(374, 1),
1661
/* 0110 */
V(15, 11, 4),
1662
/* 0111 */
PTR(376, 1),
1663
/* 1000 */
V(13, 13, 4),
1664
/* 1001 */
V(10, 15, 4),
1665
/* 1010 */
V(15, 10, 4),
1666
/* 1011 */
V(11, 14, 4),
1667
/* 1100 */
V(14, 11, 4),
1668
/* 1101 */
V(12, 13, 4),
1669
/* 1110 */
V(13, 12, 4),
1670
/* 1111 */
V(9, 15, 4),
1671
1672
/* 0000 0001 ... */
1673
/* 0000 */
V(15, 9, 4),
/* 136 */
1674
/* 0001 */
V(14, 10, 4),
1675
/* 0010 */
V(11, 13, 4),
1676
/* 0011 */
V(13, 11, 4),
1677
/* 0100 */
V(8, 15, 4),
1678
/* 0101 */
V(15, 8, 4),
1679
/* 0110 */
V(12, 12, 4),
1680
/* 0111 */
V(9, 14, 4),
1681
/* 1000 */
V(14, 9, 4),
1682
/* 1001 */
V(7, 15, 4),
1683
/* 1010 */
V(15, 7, 4),
1684
/* 1011 */
V(10, 13, 4),
1685
/* 1100 */
V(13, 10, 4),
1686
/* 1101 */
V(11, 12, 4),
1687
/* 1110 */
V(6, 15, 4),
1688
/* 1111 */
PTR(378, 1),
1689
1690
/* 0000 0010 ... */
1691
/* 0000 */
V(12, 11, 3),
/* 152 */
1692
/* 0001 */
V(12, 11, 3),
1693
/* 0010 */
V(15, 6, 3),
1694
/* 0011 */
V(15, 6, 3),
1695
/* 0100 */
V(8, 14, 4),
1696
/* 0101 */
V(14, 8, 4),
1697
/* 0110 */
V(5, 15, 4),
1698
/* 0111 */
V(9, 13, 4),
1699
/* 1000 */
V(15, 5, 3),
1700
/* 1001 */
V(15, 5, 3),
1701
/* 1010 */
V(7, 14, 3),
1702
/* 1011 */
V(7, 14, 3),
1703
/* 1100 */
V(14, 7, 3),
1704
/* 1101 */
V(14, 7, 3),
1705
/* 1110 */
V(10, 12, 3),
1706
/* 1111 */
V(10, 12, 3),
1707
1708
/* 0000 0011 ... */
1709
/* 0000 */
V(12, 10, 3),
/* 168 */
1710
/* 0001 */
V(12, 10, 3),
1711
/* 0010 */
V(11, 11, 3),
1712
/* 0011 */
V(11, 11, 3),
1713
/* 0100 */
V(13, 9, 4),
1714
/* 0101 */
V(8, 13, 4),
1715
/* 0110 */
V(4, 15, 3),
1716
/* 0111 */
V(4, 15, 3),
1717
/* 1000 */
V(15, 4, 3),
1718
/* 1001 */
V(15, 4, 3),
1719
/* 1010 */
V(3, 15, 3),
1720
/* 1011 */
V(3, 15, 3),
1721
/* 1100 */
V(15, 3, 3),
1722
/* 1101 */
V(15, 3, 3),
1723
/* 1110 */
V(13, 8, 3),
1724
/* 1111 */
V(13, 8, 3),
1725
1726
/* 0000 0100 ... */
1727
/* 0000 */
V(14, 6, 3),
/* 184 */
1728
/* 0001 */
V(14, 6, 3),
1729
/* 0010 */
V(2, 15, 3),
1730
/* 0011 */
V(2, 15, 3),
1731
/* 0100 */
V(15, 2, 3),
1732
/* 0101 */
V(15, 2, 3),
1733
/* 0110 */
V(6, 14, 4),
1734
/* 0111 */
V(15, 0, 4),
1735
/* 1000 */
V(1, 15, 3),
1736
/* 1001 */
V(1, 15, 3),
1737
/* 1010 */
V(15, 1, 3),
1738
/* 1011 */
V(15, 1, 3),
1739
/* 1100 */
V(9, 12, 3),
1740
/* 1101 */
V(9, 12, 3),
1741
/* 1110 */
V(12, 9, 3),
1742
/* 1111 */
V(12, 9, 3),
1743
1744
/* 0000 0101 ... */
1745
/* 000 */
V(5, 14, 3),
/* 200 */
1746
/* 001 */
V(10, 11, 3),
1747
/* 010 */
V(11, 10, 3),
1748
/* 011 */
V(14, 5, 3),
1749
/* 100 */
V(7, 13, 3),
1750
/* 101 */
V(13, 7, 3),
1751
/* 110 */
V(4, 14, 3),
1752
/* 111 */
V(14, 4, 3),
1753
1754
/* 0000 0110 ... */
1755
/* 000 */
V(8, 12, 3),
/* 208 */
1756
/* 001 */
V(12, 8, 3),
1757
/* 010 */
V(3, 14, 3),
1758
/* 011 */
V(6, 13, 3),
1759
/* 100 */
V(13, 6, 3),
1760
/* 101 */
V(14, 3, 3),
1761
/* 110 */
V(9, 11, 3),
1762
/* 111 */
V(11, 9, 3),
1763
1764
/* 0000 0111 ... */
1765
/* 0000 */
V(2, 14, 3),
/* 216 */
1766
/* 0001 */
V(2, 14, 3),
1767
/* 0010 */
V(10, 10, 3),
1768
/* 0011 */
V(10, 10, 3),
1769
/* 0100 */
V(14, 2, 3),
1770
/* 0101 */
V(14, 2, 3),
1771
/* 0110 */
V(1, 14, 3),
1772
/* 0111 */
V(1, 14, 3),
1773
/* 1000 */
V(14, 1, 3),
1774
/* 1001 */
V(14, 1, 3),
1775
/* 1010 */
V(0, 14, 4),
1776
/* 1011 */
V(14, 0, 4),
1777
/* 1100 */
V(5, 13, 3),
1778
/* 1101 */
V(5, 13, 3),
1779
/* 1110 */
V(13, 5, 3),
1780
/* 1111 */
V(13, 5, 3),
1781
1782
/* 0000 1000 ... */
1783
/* 000 */
V(7, 12, 3),
/* 232 */
1784
/* 001 */
V(12, 7, 3),
1785
/* 010 */
V(4, 13, 3),
1786
/* 011 */
V(8, 11, 3),
1787
/* 100 */
V(13, 4, 2),
1788
/* 101 */
V(13, 4, 2),
1789
/* 110 */
V(11, 8, 3),
1790
/* 111 */
V(9, 10, 3),
1791
1792
/* 0000 1001 ... */
1793
/* 000 */
V(10, 9, 3),
/* 240 */
1794
/* 001 */
V(6, 12, 3),
1795
/* 010 */
V(12, 6, 3),
1796
/* 011 */
V(3, 13, 3),
1797
/* 100 */
V(13, 3, 2),
1798
/* 101 */
V(13, 3, 2),
1799
/* 110 */
V(13, 2, 2),
1800
/* 111 */
V(13, 2, 2),
1801
1802
/* 0000 1010 ... */
1803
/* 000 */
V(2, 13, 3),
/* 248 */
1804
/* 001 */
V(0, 13, 3),
1805
/* 010 */
V(1, 13, 2),
1806
/* 011 */
V(1, 13, 2),
1807
/* 100 */
V(7, 11, 2),
1808
/* 101 */
V(7, 11, 2),
1809
/* 110 */
V(11, 7, 2),
1810
/* 111 */
V(11, 7, 2),
1811
1812
/* 0000 1011 ... */
1813
/* 000 */
V(13, 1, 2),
/* 256 */
1814
/* 001 */
V(13, 1, 2),
1815
/* 010 */
V(5, 12, 3),
1816
/* 011 */
V(13, 0, 3),
1817
/* 100 */
V(12, 5, 2),
1818
/* 101 */
V(12, 5, 2),
1819
/* 110 */
V(8, 10, 2),
1820
/* 111 */
V(8, 10, 2),
1821
1822
/* 0000 1100 ... */
1823
/* 00 */
V(10, 8, 2),
/* 264 */
1824
/* 01 */
V(4, 12, 2),
1825
/* 10 */
V(12, 4, 2),
1826
/* 11 */
V(6, 11, 2),
1827
1828
/* 0000 1101 ... */
1829
/* 000 */
V(11, 6, 2),
/* 268 */
1830
/* 001 */
V(11, 6, 2),
1831
/* 010 */
V(9, 9, 3),
1832
/* 011 */
V(0, 12, 3),
1833
/* 100 */
V(3, 12, 2),
1834
/* 101 */
V(3, 12, 2),
1835
/* 110 */
V(12, 3, 2),
1836
/* 111 */
V(12, 3, 2),
1837
1838
/* 0000 1110 ... */
1839
/* 000 */
V(7, 10, 2),
/* 276 */
1840
/* 001 */
V(7, 10, 2),
1841
/* 010 */
V(10, 7, 2),
1842
/* 011 */
V(10, 7, 2),
1843
/* 100 */
V(10, 6, 2),
1844
/* 101 */
V(10, 6, 2),
1845
/* 110 */
V(12, 0, 3),
1846
/* 111 */
V(0, 11, 3),
1847
1848
/* 0000 1111 ... */
1849
/* 00 */
V(12, 2, 1),
/* 284 */
1850
/* 01 */
V(12, 2, 1),
1851
/* 10 */
V(2, 12, 2),
1852
/* 11 */
V(5, 11, 2),
1853
1854
/* 0001 0000 ... */
1855
/* 00 */
V(11, 5, 2),
/* 288 */
1856
/* 01 */
V(1, 12, 2),
1857
/* 10 */
V(8, 9, 2),
1858
/* 11 */
V(9, 8, 2),
1859
1860
/* 0001 0001 ... */
1861
/* 00 */
V(12, 1, 2),
/* 292 */
1862
/* 01 */
V(4, 11, 2),
1863
/* 10 */
V(11, 4, 2),
1864
/* 11 */
V(6, 10, 2),
1865
1866
/* 0001 0010 ... */
1867
/* 00 */
V(3, 11, 2),
/* 296 */
1868
/* 01 */
V(7, 9, 2),
1869
/* 10 */
V(11, 3, 1),
1870
/* 11 */
V(11, 3, 1),
1871
1872
/* 0001 0011 ... */
1873
/* 00 */
V(9, 7, 2),
/* 300 */
1874
/* 01 */
V(8, 8, 2),
1875
/* 10 */
V(2, 11, 2),
1876
/* 11 */
V(5, 10, 2),
1877
1878
/* 0001 0100 ... */
1879
/* 00 */
V(11, 2, 1),
/* 304 */
1880
/* 01 */
V(11, 2, 1),
1881
/* 10 */
V(10, 5, 2),
1882
/* 11 */
V(1, 11, 2),
1883
1884
/* 0001 0101 ... */
1885
/* 00 */
V(11, 1, 1),
/* 308 */
1886
/* 01 */
V(11, 1, 1),
1887
/* 10 */
V(11, 0, 2),
1888
/* 11 */
V(6, 9, 2),
1889
1890
/* 0001 0110 ... */
1891
/* 00 */
V(9, 6, 2),
/* 312 */
1892
/* 01 */
V(4, 10, 2),
1893
/* 10 */
V(10, 4, 2),
1894
/* 11 */
V(7, 8, 2),
1895
1896
/* 0001 0111 ... */
1897
/* 00 */
V(8, 7, 2),
/* 316 */
1898
/* 01 */
V(3, 10, 2),
1899
/* 10 */
V(10, 3, 1),
1900
/* 11 */
V(10, 3, 1),
1901
1902
/* 0001 1000 ... */
1903
/* 0 */
V(5, 9, 1),
/* 320 */
1904
/* 1 */
V(9, 5, 1),
1905
1906
/* 0001 1001 ... */
1907
/* 0 */
V(2, 10, 1),
/* 322 */
1908
/* 1 */
V(10, 2, 1),
1909
1910
/* 0001 1010 ... */
1911
/* 0 */
V(1, 10, 1),
/* 324 */
1912
/* 1 */
V(10, 1, 1),
1913
1914
/* 0001 1011 ... */
1915
/* 00 */
V(0, 10, 2),
/* 326 */
1916
/* 01 */
V(10, 0, 2),
1917
/* 10 */
V(6, 8, 1),
1918
/* 11 */
V(6, 8, 1),
1919
1920
/* 0001 1100 ... */
1921
/* 0 */
V(8, 6, 1),
/* 330 */
1922
/* 1 */
V(4, 9, 1),
1923
1924
/* 0001 1101 ... */
1925
/* 0 */
V(9, 4, 1),
/* 332 */
1926
/* 1 */
V(3, 9, 1),
1927
1928
/* 0001 1110 ... */
1929
/* 00 */
V(9, 3, 1),
/* 334 */
1930
/* 01 */
V(9, 3, 1),
1931
/* 10 */
V(7, 7, 2),
1932
/* 11 */
V(0, 9, 2),
1933
1934
/* 0001 1111 ... */
1935
/* 0 */
V(5, 8, 1),
/* 338 */
1936
/* 1 */
V(8, 5, 1),
1937
1938
/* 0010 0000 ... */
1939
/* 0 */
V(2, 9, 1),
/* 340 */
1940
/* 1 */
V(6, 7, 1),
1941
1942
/* 0010 0001 ... */
1943
/* 0 */
V(7, 6, 1),
/* 342 */
1944
/* 1 */
V(9, 2, 1),
1945
1946
/* 0010 0011 ... */
1947
/* 0 */
V(1, 9, 1),
/* 344 */
1948
/* 1 */
V(9, 0, 1),
1949
1950
/* 0010 0100 ... */
1951
/* 0 */
V(4, 8, 1),
/* 346 */
1952
/* 1 */
V(8, 4, 1),
1953
1954
/* 0010 0101 ... */
1955
/* 0 */
V(5, 7, 1),
/* 348 */
1956
/* 1 */
V(7, 5, 1),
1957
1958
/* 0010 0110 ... */
1959
/* 0 */
V(3, 8, 1),
/* 350 */
1960
/* 1 */
V(8, 3, 1),
1961
1962
/* 0010 0111 ... */
1963
/* 0 */
V(6, 6, 1),
/* 352 */
1964
/* 1 */
V(4, 7, 1),
1965
1966
/* 0010 1100 ... */
1967
/* 0 */
V(7, 4, 1),
/* 354 */
1968
/* 1 */
V(0, 8, 1),
1969
1970
/* 0010 1101 ... */
1971
/* 0 */
V(8, 0, 1),
/* 356 */
1972
/* 1 */
V(5, 6, 1),
1973
1974
/* 0010 1110 ... */
1975
/* 0 */
V(6, 5, 1),
/* 358 */
1976
/* 1 */
V(3, 7, 1),
1977
1978
/* 0010 1111 ... */
1979
/* 0 */
V(7, 3, 1),
/* 360 */
1980
/* 1 */
V(4, 6, 1),
1981
1982
/* 0011 0110 ... */
1983
/* 0 */
V(0, 7, 1),
/* 362 */
1984
/* 1 */
V(7, 0, 1),
1985
1986
/* 0011 1110 ... */
1987
/* 0 */
V(0, 6, 1),
/* 364 */
1988
/* 1 */
V(6, 0, 1),
1989
1990
/* 0000 0000 0000 ... */
1991
/* 0 */
V(15, 15, 1),
/* 366 */
1992
/* 1 */
V(14, 15, 1),
1993
1994
/* 0000 0000 0001 ... */
1995
/* 0 */
V(15, 14, 1),
/* 368 */
1996
/* 1 */
V(13, 15, 1),
1997
1998
/* 0000 0000 0011 ... */
1999
/* 0 */
V(15, 13, 1),
/* 370 */
2000
/* 1 */
V(12, 15, 1),
2001
2002
/* 0000 0000 0100 ... */
2003
/* 0 */
V(15, 12, 1),
/* 372 */
2004
/* 1 */
V(13, 14, 1),
2005
2006
/* 0000 0000 0101 ... */
2007
/* 0 */
V(14, 13, 1),
/* 374 */
2008
/* 1 */
V(11, 15, 1),
2009
2010
/* 0000 0000 0111 ... */
2011
/* 0 */
V(12, 14, 1),
/* 376 */
2012
/* 1 */
V(14, 12, 1),
2013
2014
/* 0000 0001 1111 ... */
2015
/* 0 */
V(10, 14, 1),
/* 378 */
2016
/* 1 */
V(0, 15, 1)
2017
};
2018
2019
static
2020
union
huffpair
const hufftab16[] = {
2021
/* 0000 */
PTR(16, 4),
2022
/* 0001 */
PTR(32, 4),
2023
/* 0010 */
PTR(48, 4),
2024
/* 0011 */
PTR(64, 2),
2025
/* 0100 */
V(1, 1, 4),
2026
/* 0101 */
V(0, 1, 4),
2027
/* 0110 */
V(1, 0, 3),
2028
/* 0111 */
V(1, 0, 3),
2029
/* 1000 */
V(0, 0, 1),
2030
/* 1001 */
V(0, 0, 1),
2031
/* 1010 */
V(0, 0, 1),
2032
/* 1011 */
V(0, 0, 1),
2033
/* 1100 */
V(0, 0, 1),
2034
/* 1101 */
V(0, 0, 1),
2035
/* 1110 */
V(0, 0, 1),
2036
/* 1111 */
V(0, 0, 1),
2037
2038
/* 0000 ... */
2039
/* 0000 */
PTR(68, 3),
/* 16 */
2040
/* 0001 */
PTR(76, 3),
2041
/* 0010 */
PTR(84, 2),
2042
/* 0011 */
V(15, 15, 4),
2043
/* 0100 */
PTR(88, 2),
2044
/* 0101 */
PTR(92, 1),
2045
/* 0110 */
PTR(94, 4),
2046
/* 0111 */
V(15, 2, 4),
2047
/* 1000 */
PTR(110, 1),
2048
/* 1001 */
V(1, 15, 4),
2049
/* 1010 */
V(15, 1, 4),
2050
/* 1011 */
PTR(112, 4),
2051
/* 1100 */
PTR(128, 4),
2052
/* 1101 */
PTR(144, 4),
2053
/* 1110 */
PTR(160, 4),
2054
/* 1111 */
PTR(176, 4),
2055
2056
/* 0001 ... */
2057
/* 0000 */
PTR(192, 4),
/* 32 */
2058
/* 0001 */
PTR(208, 3),
2059
/* 0010 */
PTR(216, 3),
2060
/* 0011 */
PTR(224, 3),
2061
/* 0100 */
PTR(232, 3),
2062
/* 0101 */
PTR(240, 3),
2063
/* 0110 */
PTR(248, 3),
2064
/* 0111 */
PTR(256, 3),
2065
/* 1000 */
PTR(264, 2),
2066
/* 1001 */
PTR(268, 2),
2067
/* 1010 */
PTR(272, 1),
2068
/* 1011 */
PTR(274, 2),
2069
/* 1100 */
PTR(278, 2),
2070
/* 1101 */
PTR(282, 1),
2071
/* 1110 */
V(5, 1, 4),
2072
/* 1111 */
PTR(284, 1),
2073
2074
/* 0010 ... */
2075
/* 0000 */
PTR(286, 1),
/* 48 */
2076
/* 0001 */
PTR(288, 1),
2077
/* 0010 */
PTR(290, 1),
2078
/* 0011 */
V(1, 4, 4),
2079
/* 0100 */
V(4, 1, 4),
2080
/* 0101 */
PTR(292, 1),
2081
/* 0110 */
V(2, 3, 4),
2082
/* 0111 */
V(3, 2, 4),
2083
/* 1000 */
V(1, 3, 3),
2084
/* 1001 */
V(1, 3, 3),
2085
/* 1010 */
V(3, 1, 3),
2086
/* 1011 */
V(3, 1, 3),
2087
/* 1100 */
V(0, 3, 4),
2088
/* 1101 */
V(3, 0, 4),
2089
/* 1110 */
V(2, 2, 3),
2090
/* 1111 */
V(2, 2, 3),
2091
2092
/* 0011 ... */
2093
/* 00 */
V(1, 2, 2),
/* 64 */
2094
/* 01 */
V(2, 1, 2),
2095
/* 10 */
V(0, 2, 2),
2096
/* 11 */
V(2, 0, 2),
2097
2098
/* 0000 0000 ... */
2099
/* 000 */
V(14, 15, 3),
/* 68 */
2100
/* 001 */
V(15, 14, 3),
2101
/* 010 */
V(13, 15, 3),
2102
/* 011 */
V(15, 13, 3),
2103
/* 100 */
V(12, 15, 3),
2104
/* 101 */
V(15, 12, 3),
2105
/* 110 */
V(11, 15, 3),
2106
/* 111 */
V(15, 11, 3),
2107
2108
/* 0000 0001 ... */
2109
/* 000 */
V(10, 15, 2),
/* 76 */
2110
/* 001 */
V(10, 15, 2),
2111
/* 010 */
V(15, 10, 3),
2112
/* 011 */
V(9, 15, 3),
2113
/* 100 */
V(15, 9, 3),
2114
/* 101 */
V(15, 8, 3),
2115
/* 110 */
V(8, 15, 2),
2116
/* 111 */
V(8, 15, 2),
2117
2118
/* 0000 0010 ... */
2119
/* 00 */
V(7, 15, 2),
/* 84 */
2120
/* 01 */
V(15, 7, 2),
2121
/* 10 */
V(6, 15, 2),
2122
/* 11 */
V(15, 6, 2),
2123
2124
/* 0000 0100 ... */
2125
/* 00 */
V(5, 15, 2),
/* 88 */
2126
/* 01 */
V(15, 5, 2),
2127
/* 10 */
V(4, 15, 1),
2128
/* 11 */
V(4, 15, 1),
2129
2130
/* 0000 0101 ... */
2131
/* 0 */
V(15, 4, 1),
/* 92 */
2132
/* 1 */
V(15, 3, 1),
2133
2134
/* 0000 0110 ... */
2135
/* 0000 */
V(15, 0, 1),
/* 94 */
2136
/* 0001 */
V(15, 0, 1),
2137
/* 0010 */
V(15, 0, 1),
2138
/* 0011 */
V(15, 0, 1),
2139
/* 0100 */
V(15, 0, 1),
2140
/* 0101 */
V(15, 0, 1),
2141
/* 0110 */
V(15, 0, 1),
2142
/* 0111 */
V(15, 0, 1),
2143
/* 1000 */
V(3, 15, 2),
2144
/* 1001 */
V(3, 15, 2),
2145
/* 1010 */
V(3, 15, 2),
2146
/* 1011 */
V(3, 15, 2),
2147
/* 1100 */
PTR(294, 4),
2148
/* 1101 */
PTR(310, 3),
2149
/* 1110 */
PTR(318, 3),
2150
/* 1111 */
PTR(326, 3),
2151
2152
/* 0000 1000 ... */
2153
/* 0 */
V(2, 15, 1),
/* 110 */
2154
/* 1 */
V(0, 15, 1),
2155
2156
/* 0000 1011 ... */
2157
/* 0000 */
PTR(334, 2),
/* 112 */
2158
/* 0001 */
PTR(338, 2),
2159
/* 0010 */
PTR(342, 2),
2160
/* 0011 */
PTR(346, 1),
2161
/* 0100 */
PTR(348, 2),
2162
/* 0101 */
PTR(352, 2),
2163
/* 0110 */
PTR(356, 1),
2164
/* 0111 */
PTR(358, 2),
2165
/* 1000 */
PTR(362, 2),
2166
/* 1001 */
PTR(366, 2),
2167
/* 1010 */
PTR(370, 2),
2168
/* 1011 */
V(14, 3, 4),
2169
/* 1100 */
PTR(374, 1),
2170
/* 1101 */
PTR(376, 1),
2171
/* 1110 */
PTR(378, 1),
2172
/* 1111 */
PTR(380, 1),
2173
2174
/* 0000 1100 ... */
2175
/* 0000 */
PTR(382, 1),
/* 128 */
2176
/* 0001 */
PTR(384, 1),
2177
/* 0010 */
PTR(386, 1),
2178
/* 0011 */
V(0, 13, 4),
2179
/* 0100 */
PTR(388, 1),
2180
/* 0101 */
PTR(390, 1),
2181
/* 0110 */
PTR(392, 1),
2182
/* 0111 */
V(3, 12, 4),
2183
/* 1000 */
PTR(394, 1),
2184
/* 1001 */
V(1, 12, 4),
2185
/* 1010 */
V(12, 0, 4),
2186
/* 1011 */
PTR(396, 1),
2187
/* 1100 */
V(14, 2, 3),
2188
/* 1101 */
V(14, 2, 3),
2189
/* 1110 */
V(2, 14, 4),
2190
/* 1111 */
V(1, 14, 4),
2191
2192
/* 0000 1101 ... */
2193
/* 0000 */
V(13, 3, 4),
/* 144 */
2194
/* 0001 */
V(2, 13, 4),
2195
/* 0010 */
V(13, 2, 4),
2196
/* 0011 */
V(13, 1, 4),
2197
/* 0100 */
V(3, 11, 4),
2198
/* 0101 */
PTR(398, 1),
2199
/* 0110 */
V(1, 13, 3),
2200
/* 0111 */
V(1, 13, 3),
2201
/* 1000 */
V(12, 4, 4),
2202
/* 1001 */
V(6, 11, 4),
2203
/* 1010 */
V(12, 3, 4),
2204
/* 1011 */
V(10, 7, 4),
2205
/* 1100 */
V(2, 12, 3),
2206
/* 1101 */
V(2, 12, 3),
2207
/* 1110 */
V(12, 2, 4),
2208
/* 1111 */
V(11, 5, 4),
2209
2210
/* 0000 1110 ... */
2211
/* 0000 */
V(12, 1, 4),
/* 160 */
2212
/* 0001 */
V(0, 12, 4),
2213
/* 0010 */
V(4, 11, 4),
2214
/* 0011 */
V(11, 4, 4),
2215
/* 0100 */
V(6, 10, 4),
2216
/* 0101 */
V(10, 6, 4),
2217
/* 0110 */
V(11, 3, 3),
2218
/* 0111 */
V(11, 3, 3),
2219
/* 1000 */
V(5, 10, 4),
2220
/* 1001 */
V(10, 5, 4),
2221
/* 1010 */
V(2, 11, 3),
2222
/* 1011 */
V(2, 11, 3),
2223
/* 1100 */
V(11, 2, 3),
2224
/* 1101 */
V(11, 2, 3),
2225
/* 1110 */
V(1, 11, 3),
2226
/* 1111 */
V(1, 11, 3),
2227
2228
/* 0000 1111 ... */
2229
/* 0000 */
V(11, 1, 3),
/* 176 */
2230
/* 0001 */
V(11, 1, 3),
2231
/* 0010 */
V(0, 11, 4),
2232
/* 0011 */
V(11, 0, 4),
2233
/* 0100 */
V(6, 9, 4),
2234
/* 0101 */
V(9, 6, 4),
2235
/* 0110 */
V(4, 10, 4),
2236
/* 0111 */
V(10, 4, 4),
2237
/* 1000 */
V(7, 8, 4),
2238
/* 1001 */
V(8, 7, 4),
2239
/* 1010 */
V(10, 3, 3),
2240
/* 1011 */
V(10, 3, 3),
2241
/* 1100 */
V(3, 10, 4),
2242
/* 1101 */
V(5, 9, 4),
2243
/* 1110 */
V(2, 10, 3),
2244
/* 1111 */
V(2, 10, 3),
2245
2246
/* 0001 0000 ... */
2247
/* 0000 */
V(9, 5, 4),
/* 192 */
2248
/* 0001 */
V(6, 8, 4),
2249
/* 0010 */
V(10, 1, 3),
2250
/* 0011 */
V(10, 1, 3),
2251
/* 0100 */
V(8, 6, 4),
2252
/* 0101 */
V(7, 7, 4),
2253
/* 0110 */
V(9, 4, 3),
2254
/* 0111 */
V(9, 4, 3),
2255
/* 1000 */
V(4, 9, 4),
2256
/* 1001 */
V(5, 7, 4),
2257
/* 1010 */
V(6, 7, 3),
2258
/* 1011 */
V(6, 7, 3),
2259
/* 1100 */
V(10, 2, 2),
2260
/* 1101 */
V(10, 2, 2),
2261
/* 1110 */
V(10, 2, 2),
2262
/* 1111 */
V(10, 2, 2),
2263
2264
/* 0001 0001 ... */
2265
/* 000 */
V(1, 10, 2),
/* 208 */
2266
/* 001 */
V(1, 10, 2),
2267
/* 010 */
V(0, 10, 3),
2268
/* 011 */
V(10, 0, 3),
2269
/* 100 */
V(3, 9, 3),
2270
/* 101 */
V(9, 3, 3),
2271
/* 110 */
V(5, 8, 3),
2272
/* 111 */
V(8, 5, 3),
2273
2274
/* 0001 0010 ... */
2275
/* 000 */
V(2, 9, 2),
/* 216 */
2276
/* 001 */
V(2, 9, 2),
2277
/* 010 */
V(9, 2, 2),
2278
/* 011 */
V(9, 2, 2),
2279
/* 100 */
V(7, 6, 3),
2280
/* 101 */
V(0, 9, 3),
2281
/* 110 */
V(1, 9, 2),
2282
/* 111 */
V(1, 9, 2),
2283
2284
/* 0001 0011 ... */
2285
/* 000 */
V(9, 1, 2),
/* 224 */
2286
/* 001 */
V(9, 1, 2),
2287
/* 010 */
V(9, 0, 3),
2288
/* 011 */
V(4, 8, 3),
2289
/* 100 */
V(8, 4, 3),
2290
/* 101 */
V(7, 5, 3),
2291
/* 110 */
V(3, 8, 3),
2292
/* 111 */
V(8, 3, 3),
2293
2294
/* 0001 0100 ... */
2295
/* 000 */
V(6, 6, 3),
/* 232 */
2296
/* 001 */
V(2, 8, 3),
2297
/* 010 */
V(8, 2, 2),
2298
/* 011 */
V(8, 2, 2),
2299
/* 100 */
V(4, 7, 3),
2300
/* 101 */
V(7, 4, 3),
2301
/* 110 */
V(1, 8, 2),
2302
/* 111 */
V(1, 8, 2),
2303
2304
/* 0001 0101 ... */
2305
/* 000 */
V(8, 1, 2),
/* 240 */
2306
/* 001 */
V(8, 1, 2),
2307
/* 010 */
V(8, 0, 2),
2308
/* 011 */
V(8, 0, 2),
2309
/* 100 */
V(0, 8, 3),
2310
/* 101 */
V(5, 6, 3),
2311
/* 110 */
V(3, 7, 2),
2312
/* 111 */
V(3, 7, 2),
2313
2314
/* 0001 0110 ... */
2315
/* 000 */
V(7, 3, 2),
/* 248 */
2316
/* 001 */
V(7, 3, 2),
2317
/* 010 */
V(6, 5, 3),
2318
/* 011 */
V(4, 6, 3),
2319
/* 100 */
V(2, 7, 2),
2320
/* 101 */
V(2, 7, 2),
2321
/* 110 */
V(7, 2, 2),
2322
/* 111 */
V(7, 2, 2),
2323
2324
/* 0001 0111 ... */
2325
/* 000 */
V(6, 4, 3),
/* 256 */
2326
/* 001 */
V(5, 5, 3),
2327
/* 010 */
V(0, 7, 2),
2328
/* 011 */
V(0, 7, 2),
2329
/* 100 */
V(1, 7, 1),
2330
/* 101 */
V(1, 7, 1),
2331
/* 110 */
V(1, 7, 1),
2332
/* 111 */
V(1, 7, 1),
2333
2334
/* 0001 1000 ... */
2335
/* 00 */
V(7, 1, 1),
/* 264 */
2336
/* 01 */
V(7, 1, 1),
2337
/* 10 */
V(7, 0, 2),
2338
/* 11 */
V(3, 6, 2),
2339
2340
/* 0001 1001 ... */
2341
/* 00 */
V(6, 3, 2),
/* 268 */
2342
/* 01 */
V(4, 5, 2),
2343
/* 10 */
V(5, 4, 2),
2344
/* 11 */
V(2, 6, 2),
2345
2346
/* 0001 1010 ... */
2347
/* 0 */
V(6, 2, 1),
/* 272 */
2348
/* 1 */
V(1, 6, 1),
2349
2350
/* 0001 1011 ... */
2351
/* 00 */
V(6, 1, 1),
/* 274 */
2352
/* 01 */
V(6, 1, 1),
2353
/* 10 */
V(0, 6, 2),
2354
/* 11 */
V(6, 0, 2),
2355
2356
/* 0001 1100 ... */
2357
/* 00 */
V(5, 3, 1),
/* 278 */
2358
/* 01 */
V(5, 3, 1),
2359
/* 10 */
V(3, 5, 2),
2360
/* 11 */
V(4, 4, 2),
2361
2362
/* 0001 1101 ... */
2363
/* 0 */
V(2, 5, 1),
/* 282 */
2364
/* 1 */
V(5, 2, 1),
2365
2366
/* 0001 1111 ... */
2367
/* 0 */
V(1, 5, 1),
/* 284 */
2368
/* 1 */
V(0, 5, 1),
2369
2370
/* 0010 0000 ... */
2371
/* 0 */
V(3, 4, 1),
/* 286 */
2372
/* 1 */
V(4, 3, 1),
2373
2374
/* 0010 0001 ... */
2375
/* 0 */
V(5, 0, 1),
/* 288 */
2376
/* 1 */
V(2, 4, 1),
2377
2378
/* 0010 0010 ... */
2379
/* 0 */
V(4, 2, 1),
/* 290 */
2380
/* 1 */
V(3, 3, 1),
2381
2382
/* 0010 0101 ... */
2383
/* 0 */
V(0, 4, 1),
/* 292 */
2384
/* 1 */
V(4, 0, 1),
2385
2386
/* 0000 0110 1100 ... */
2387
/* 0000 */
V(12, 14, 4),
/* 294 */
2388
/* 0001 */
PTR(400, 1),
2389
/* 0010 */
V(13, 14, 3),
2390
/* 0011 */
V(13, 14, 3),
2391
/* 0100 */
V(14, 9, 3),
2392
/* 0101 */
V(14, 9, 3),
2393
/* 0110 */
V(14, 10, 4),
2394
/* 0111 */
V(13, 9, 4),
2395
/* 1000 */
V(14, 14, 2),
2396
/* 1001 */
V(14, 14, 2),
2397
/* 1010 */
V(14, 14, 2),
2398
/* 1011 */
V(14, 14, 2),
2399
/* 1100 */
V(14, 13, 3),
2400
/* 1101 */
V(14, 13, 3),
2401
/* 1110 */
V(14, 11, 3),
2402
/* 1111 */
V(14, 11, 3),
2403
2404
/* 0000 0110 1101 ... */
2405
/* 000 */
V(11, 14, 2),
/* 310 */
2406
/* 001 */
V(11, 14, 2),
2407
/* 010 */
V(12, 13, 2),
2408
/* 011 */
V(12, 13, 2),
2409
/* 100 */
V(13, 12, 3),
2410
/* 101 */
V(13, 11, 3),
2411
/* 110 */
V(10, 14, 2),
2412
/* 111 */
V(10, 14, 2),
2413
2414
/* 0000 0110 1110 ... */
2415
/* 000 */
V(12, 12, 2),
/* 318 */
2416
/* 001 */
V(12, 12, 2),
2417
/* 010 */
V(10, 13, 3),
2418
/* 011 */
V(13, 10, 3),
2419
/* 100 */
V(7, 14, 3),
2420
/* 101 */
V(10, 12, 3),
2421
/* 110 */
V(12, 10, 2),
2422
/* 111 */
V(12, 10, 2),
2423
2424
/* 0000 0110 1111 ... */
2425
/* 000 */
V(12, 9, 3),
/* 326 */
2426
/* 001 */
V(7, 13, 3),
2427
/* 010 */
V(5, 14, 2),
2428
/* 011 */
V(5, 14, 2),
2429
/* 100 */
V(11, 13, 1),
2430
/* 101 */
V(11, 13, 1),
2431
/* 110 */
V(11, 13, 1),
2432
/* 111 */
V(11, 13, 1),
2433
2434
/* 0000 1011 0000 ... */
2435
/* 00 */
V(9, 14, 1),
/* 334 */
2436
/* 01 */
V(9, 14, 1),
2437
/* 10 */
V(11, 12, 2),
2438
/* 11 */
V(12, 11, 2),
2439
2440
/* 0000 1011 0001 ... */
2441
/* 00 */
V(8, 14, 2),
/* 338 */
2442
/* 01 */
V(14, 8, 2),
2443
/* 10 */
V(9, 13, 2),
2444
/* 11 */
V(14, 7, 2),
2445
2446
/* 0000 1011 0010 ... */
2447
/* 00 */
V(11, 11, 2),
/* 342 */
2448
/* 01 */
V(8, 13, 2),
2449
/* 10 */
V(13, 8, 2),
2450
/* 11 */
V(6, 14, 2),
2451
2452
/* 0000 1011 0011 ... */
2453
/* 0 */
V(14, 6, 1),
/* 346 */
2454
/* 1 */
V(9, 12, 1),
2455
2456
/* 0000 1011 0100 ... */
2457
/* 00 */
V(10, 11, 2),
/* 348 */
2458
/* 01 */
V(11, 10, 2),
2459
/* 10 */
V(14, 5, 2),
2460
/* 11 */
V(13, 7, 2),
2461
2462
/* 0000 1011 0101 ... */
2463
/* 00 */
V(4, 14, 1),
/* 352 */
2464
/* 01 */
V(4, 14, 1),
2465
/* 10 */
V(14, 4, 2),
2466
/* 11 */
V(8, 12, 2),
2467
2468
/* 0000 1011 0110 ... */
2469
/* 0 */
V(12, 8, 1),
/* 356 */
2470
/* 1 */
V(3, 14, 1),
2471
2472
/* 0000 1011 0111 ... */
2473
/* 00 */
V(6, 13, 1),
/* 358 */
2474
/* 01 */
V(6, 13, 1),
2475
/* 10 */
V(13, 6, 2),
2476
/* 11 */
V(9, 11, 2),
2477
2478
/* 0000 1011 1000 ... */
2479
/* 00 */
V(11, 9, 2),
/* 362 */
2480
/* 01 */
V(10, 10, 2),
2481
/* 10 */
V(14, 1, 1),
2482
/* 11 */
V(14, 1, 1),
2483
2484
/* 0000 1011 1001 ... */
2485
/* 00 */
V(13, 4, 1),
/* 366 */
2486
/* 01 */
V(13, 4, 1),
2487
/* 10 */
V(11, 8, 2),
2488
/* 11 */
V(10, 9, 2),
2489
2490
/* 0000 1011 1010 ... */
2491
/* 00 */
V(7, 11, 1),
/* 370 */
2492
/* 01 */
V(7, 11, 1),
2493
/* 10 */
V(11, 7, 2),
2494
/* 11 */
V(13, 0, 2),
2495
2496
/* 0000 1011 1100 ... */
2497
/* 0 */
V(0, 14, 1),
/* 374 */
2498
/* 1 */
V(14, 0, 1),
2499
2500
/* 0000 1011 1101 ... */
2501
/* 0 */
V(5, 13, 1),
/* 376 */
2502
/* 1 */
V(13, 5, 1),
2503
2504
/* 0000 1011 1110 ... */
2505
/* 0 */
V(7, 12, 1),
/* 378 */
2506
/* 1 */
V(12, 7, 1),
2507
2508
/* 0000 1011 1111 ... */
2509
/* 0 */
V(4, 13, 1),
/* 380 */
2510
/* 1 */
V(8, 11, 1),
2511
2512
/* 0000 1100 0000 ... */
2513
/* 0 */
V(9, 10, 1),
/* 382 */
2514
/* 1 */
V(6, 12, 1),
2515
2516
/* 0000 1100 0001 ... */
2517
/* 0 */
V(12, 6, 1),
/* 384 */
2518
/* 1 */
V(3, 13, 1),
2519
2520
/* 0000 1100 0010 ... */
2521
/* 0 */
V(5, 12, 1),
/* 386 */
2522
/* 1 */
V(12, 5, 1),
2523
2524
/* 0000 1100 0100 ... */
2525
/* 0 */
V(8, 10, 1),
/* 388 */
2526
/* 1 */
V(10, 8, 1),
2527
2528
/* 0000 1100 0101 ... */
2529
/* 0 */
V(9, 9, 1),
/* 390 */
2530
/* 1 */
V(4, 12, 1),
2531
2532
/* 0000 1100 0110 ... */
2533
/* 0 */
V(11, 6, 1),
/* 392 */
2534
/* 1 */
V(7, 10, 1),
2535
2536
/* 0000 1100 1000 ... */
2537
/* 0 */
V(5, 11, 1),
/* 394 */
2538
/* 1 */
V(8, 9, 1),
2539
2540
/* 0000 1100 1011 ... */
2541
/* 0 */
V(9, 8, 1),
/* 396 */
2542
/* 1 */
V(7, 9, 1),
2543
2544
/* 0000 1101 0101 ... */
2545
/* 0 */
V(9, 7, 1),
/* 398 */
2546
/* 1 */
V(8, 8, 1),
2547
2548
/* 0000 0110 1100 0001 ... */
2549
/* 0 */
V(14, 12, 1),
/* 400 */
2550
/* 1 */
V(13, 13, 1)
2551
};
2552
2553
static
2554
union
huffpair
const hufftab24[] = {
2555
/* 0000 */
PTR(16, 4),
2556
/* 0001 */
PTR(32, 4),
2557
/* 0010 */
PTR(48, 4),
2558
/* 0011 */
V(15, 15, 4),
2559
/* 0100 */
PTR(64, 4),
2560
/* 0101 */
PTR(80, 4),
2561
/* 0110 */
PTR(96, 4),
2562
/* 0111 */
PTR(112, 4),
2563
/* 1000 */
PTR(128, 4),
2564
/* 1001 */
PTR(144, 4),
2565
/* 1010 */
PTR(160, 3),
2566
/* 1011 */
PTR(168, 2),
2567
/* 1100 */
V(1, 1, 4),
2568
/* 1101 */
V(0, 1, 4),
2569
/* 1110 */
V(1, 0, 4),
2570
/* 1111 */
V(0, 0, 4),
2571
2572
/* 0000 ... */
2573
/* 0000 */
V(14, 15, 4),
/* 16 */
2574
/* 0001 */
V(15, 14, 4),
2575
/* 0010 */
V(13, 15, 4),
2576
/* 0011 */
V(15, 13, 4),
2577
/* 0100 */
V(12, 15, 4),
2578
/* 0101 */
V(15, 12, 4),
2579
/* 0110 */
V(11, 15, 4),
2580
/* 0111 */
V(15, 11, 4),
2581
/* 1000 */
V(15, 10, 3),
2582
/* 1001 */
V(15, 10, 3),
2583
/* 1010 */
V(10, 15, 4),
2584
/* 1011 */
V(9, 15, 4),
2585
/* 1100 */
V(15, 9, 3),
2586
/* 1101 */
V(15, 9, 3),
2587
/* 1110 */
V(15, 8, 3),
2588
/* 1111 */
V(15, 8, 3),
2589
2590
/* 0001 ... */
2591
/* 0000 */
V(8, 15, 4),
/* 32 */
2592
/* 0001 */
V(7, 15, 4),
2593
/* 0010 */
V(15, 7, 3),
2594
/* 0011 */
V(15, 7, 3),
2595
/* 0100 */
V(6, 15, 3),
2596
/* 0101 */
V(6, 15, 3),
2597
/* 0110 */
V(15, 6, 3),
2598
/* 0111 */
V(15, 6, 3),
2599
/* 1000 */
V(5, 15, 3),
2600
/* 1001 */
V(5, 15, 3),
2601
/* 1010 */
V(15, 5, 3),
2602
/* 1011 */
V(15, 5, 3),
2603
/* 1100 */
V(4, 15, 3),
2604
/* 1101 */
V(4, 15, 3),
2605
/* 1110 */
V(15, 4, 3),
2606
/* 1111 */
V(15, 4, 3),
2607
2608
/* 0010 ... */
2609
/* 0000 */
V(3, 15, 3),
/* 48 */
2610
/* 0001 */
V(3, 15, 3),
2611
/* 0010 */
V(15, 3, 3),
2612
/* 0011 */
V(15, 3, 3),
2613
/* 0100 */
V(2, 15, 3),
2614
/* 0101 */
V(2, 15, 3),
2615
/* 0110 */
V(15, 2, 3),
2616
/* 0111 */
V(15, 2, 3),
2617
/* 1000 */
V(15, 1, 3),
2618
/* 1001 */
V(15, 1, 3),
2619
/* 1010 */
V(1, 15, 4),
2620
/* 1011 */
V(15, 0, 4),
2621
/* 1100 */
PTR(172, 3),
2622
/* 1101 */
PTR(180, 3),
2623
/* 1110 */
PTR(188, 3),
2624
/* 1111 */
PTR(196, 3),
2625
2626
/* 0100 ... */
2627
/* 0000 */
PTR(204, 4),
/* 64 */
2628
/* 0001 */
PTR(220, 3),
2629
/* 0010 */
PTR(228, 3),
2630
/* 0011 */
PTR(236, 3),
2631
/* 0100 */
PTR(244, 2),
2632
/* 0101 */
PTR(248, 2),
2633
/* 0110 */
PTR(252, 2),
2634
/* 0111 */
PTR(256, 2),
2635
/* 1000 */
PTR(260, 2),
2636
/* 1001 */
PTR(264, 2),
2637
/* 1010 */
PTR(268, 2),
2638
/* 1011 */
PTR(272, 2),
2639
/* 1100 */
PTR(276, 2),
2640
/* 1101 */
PTR(280, 3),
2641
/* 1110 */
PTR(288, 2),
2642
/* 1111 */
PTR(292, 2),
2643
2644
/* 0101 ... */
2645
/* 0000 */
PTR(296, 2),
/* 80 */
2646
/* 0001 */
PTR(300, 3),
2647
/* 0010 */
PTR(308, 2),
2648
/* 0011 */
PTR(312, 3),
2649
/* 0100 */
PTR(320, 1),
2650
/* 0101 */
PTR(322, 2),
2651
/* 0110 */
PTR(326, 2),
2652
/* 0111 */
PTR(330, 1),
2653
/* 1000 */
PTR(332, 2),
2654
/* 1001 */
PTR(336, 1),
2655
/* 1010 */
PTR(338, 1),
2656
/* 1011 */
PTR(340, 1),
2657
/* 1100 */
PTR(342, 1),
2658
/* 1101 */
PTR(344, 1),
2659
/* 1110 */
PTR(346, 1),
2660
/* 1111 */
PTR(348, 1),
2661
2662
/* 0110 ... */
2663
/* 0000 */
PTR(350, 1),
/* 96 */
2664
/* 0001 */
PTR(352, 1),
2665
/* 0010 */
PTR(354, 1),
2666
/* 0011 */
PTR(356, 1),
2667
/* 0100 */
PTR(358, 1),
2668
/* 0101 */
PTR(360, 1),
2669
/* 0110 */
PTR(362, 1),
2670
/* 0111 */
PTR(364, 1),
2671
/* 1000 */
PTR(366, 1),
2672
/* 1001 */
PTR(368, 1),
2673
/* 1010 */
PTR(370, 2),
2674
/* 1011 */
PTR(374, 1),
2675
/* 1100 */
PTR(376, 2),
2676
/* 1101 */
V(7, 3, 4),
2677
/* 1110 */
PTR(380, 1),
2678
/* 1111 */
V(7, 2, 4),
2679
2680
/* 0111 ... */
2681
/* 0000 */
V(4, 6, 4),
/* 112 */
2682
/* 0001 */
V(6, 4, 4),
2683
/* 0010 */
V(5, 5, 4),
2684
/* 0011 */
V(7, 1, 4),
2685
/* 0100 */
V(3, 6, 4),
2686
/* 0101 */
V(6, 3, 4),
2687
/* 0110 */
V(4, 5, 4),
2688
/* 0111 */
V(5, 4, 4),
2689
/* 1000 */
V(2, 6, 4),
2690
/* 1001 */
V(6, 2, 4),
2691
/* 1010 */
V(1, 6, 4),
2692
/* 1011 */
V(6, 1, 4),
2693
/* 1100 */
PTR(382, 1),
2694
/* 1101 */
V(3, 5, 4),
2695
/* 1110 */
V(5, 3, 4),
2696
/* 1111 */
V(4, 4, 4),
2697
2698
/* 1000 ... */
2699
/* 0000 */
V(2, 5, 4),
/* 128 */
2700
/* 0001 */
V(5, 2, 4),
2701
/* 0010 */
V(1, 5, 4),
2702
/* 0011 */
PTR(384, 1),
2703
/* 0100 */
V(5, 1, 3),
2704
/* 0101 */
V(5, 1, 3),
2705
/* 0110 */
V(3, 4, 4),
2706
/* 0111 */
V(4, 3, 4),
2707
/* 1000 */
V(2, 4, 3),
2708
/* 1001 */
V(2, 4, 3),
2709
/* 1010 */
V(4, 2, 3),
2710
/* 1011 */
V(4, 2, 3),
2711
/* 1100 */
V(3, 3, 3),
2712
/* 1101 */
V(3, 3, 3),
2713
/* 1110 */
V(1, 4, 3),
2714
/* 1111 */
V(1, 4, 3),
2715
2716
/* 1001 ... */
2717
/* 0000 */
V(4, 1, 3),
/* 144 */
2718
/* 0001 */
V(4, 1, 3),
2719
/* 0010 */
V(0, 4, 4),
2720
/* 0011 */
V(4, 0, 4),
2721
/* 0100 */
V(2, 3, 3),
2722
/* 0101 */
V(2, 3, 3),
2723
/* 0110 */
V(3, 2, 3),
2724
/* 0111 */
V(3, 2, 3),
2725
/* 1000 */
V(1, 3, 2),
2726
/* 1001 */
V(1, 3, 2),
2727
/* 1010 */
V(1, 3, 2),
2728
/* 1011 */
V(1, 3, 2),
2729
/* 1100 */
V(3, 1, 2),
2730
/* 1101 */
V(3, 1, 2),
2731
/* 1110 */
V(3, 1, 2),
2732
/* 1111 */
V(3, 1, 2),
2733
2734
/* 1010 ... */
2735
/* 000 */
V(0, 3, 3),
/* 160 */
2736
/* 001 */
V(3, 0, 3),
2737
/* 010 */
V(2, 2, 2),
2738
/* 011 */
V(2, 2, 2),
2739
/* 100 */
V(1, 2, 1),
2740
/* 101 */
V(1, 2, 1),
2741
/* 110 */
V(1, 2, 1),
2742
/* 111 */
V(1, 2, 1),
2743
2744
/* 1011 ... */
2745
/* 00 */
V(2, 1, 1),
/* 168 */
2746
/* 01 */
V(2, 1, 1),
2747
/* 10 */
V(0, 2, 2),
2748
/* 11 */
V(2, 0, 2),
2749
2750
/* 0010 1100 ... */
2751
/* 000 */
V(0, 15, 1),
/* 172 */
2752
/* 001 */
V(0, 15, 1),
2753
/* 010 */
V(0, 15, 1),
2754
/* 011 */
V(0, 15, 1),
2755
/* 100 */
V(14, 14, 3),
2756
/* 101 */
V(13, 14, 3),
2757
/* 110 */
V(14, 13, 3),
2758
/* 111 */
V(12, 14, 3),
2759
2760
/* 0010 1101 ... */
2761
/* 000 */
V(14, 12, 3),
/* 180 */
2762
/* 001 */
V(13, 13, 3),
2763
/* 010 */
V(11, 14, 3),
2764
/* 011 */
V(14, 11, 3),
2765
/* 100 */
V(12, 13, 3),
2766
/* 101 */
V(13, 12, 3),
2767
/* 110 */
V(10, 14, 3),
2768
/* 111 */
V(14, 10, 3),
2769
2770
/* 0010 1110 ... */
2771
/* 000 */
V(11, 13, 3),
/* 188 */
2772
/* 001 */
V(13, 11, 3),
2773
/* 010 */
V(12, 12, 3),
2774
/* 011 */
V(9, 14, 3),
2775
/* 100 */
V(14, 9, 3),
2776
/* 101 */
V(10, 13, 3),
2777
/* 110 */
V(13, 10, 3),
2778
/* 111 */
V(11, 12, 3),
2779
2780
/* 0010 1111 ... */
2781
/* 000 */
V(12, 11, 3),
/* 196 */
2782
/* 001 */
V(8, 14, 3),
2783
/* 010 */
V(14, 8, 3),
2784
/* 011 */
V(9, 13, 3),
2785
/* 100 */
V(13, 9, 3),
2786
/* 101 */
V(7, 14, 3),
2787
/* 110 */
V(14, 7, 3),
2788
/* 111 */
V(10, 12, 3),
2789
2790
/* 0100 0000 ... */
2791
/* 0000 */
V(12, 10, 3),
/* 204 */
2792
/* 0001 */
V(12, 10, 3),
2793
/* 0010 */
V(11, 11, 3),
2794
/* 0011 */
V(11, 11, 3),
2795
/* 0100 */
V(8, 13, 3),
2796
/* 0101 */
V(8, 13, 3),
2797
/* 0110 */
V(13, 8, 3),
2798
/* 0111 */
V(13, 8, 3),
2799
/* 1000 */
V(0, 14, 4),
2800
/* 1001 */
V(14, 0, 4),
2801
/* 1010 */
V(0, 13, 3),
2802
/* 1011 */
V(0, 13, 3),
2803
/* 1100 */
V(14, 6, 2),
2804
/* 1101 */
V(14, 6, 2),
2805
/* 1110 */
V(14, 6, 2),
2806
/* 1111 */
V(14, 6, 2),
2807
2808
/* 0100 0001 ... */
2809
/* 000 */
V(6, 14, 3),
/* 220 */
2810
/* 001 */
V(9, 12, 3),
2811
/* 010 */
V(12, 9, 2),
2812
/* 011 */
V(12, 9, 2),
2813
/* 100 */
V(5, 14, 2),
2814
/* 101 */
V(5, 14, 2),
2815
/* 110 */
V(11, 10, 2),
2816
/* 111 */
V(11, 10, 2),
2817
2818
/* 0100 0010 ... */
2819
/* 000 */
V(14, 5, 2),
/* 228 */
2820
/* 001 */
V(14, 5, 2),
2821
/* 010 */
V(10, 11, 3),
2822
/* 011 */
V(7, 13, 3),
2823
/* 100 */
V(13, 7, 2),
2824
/* 101 */
V(13, 7, 2),
2825
/* 110 */
V(14, 4, 2),
2826
/* 111 */
V(14, 4, 2),
2827
2828
/* 0100 0011 ... */
2829
/* 000 */
V(8, 12, 2),
/* 236 */
2830
/* 001 */
V(8, 12, 2),
2831
/* 010 */
V(12, 8, 2),
2832
/* 011 */
V(12, 8, 2),
2833
/* 100 */
V(4, 14, 3),
2834
/* 101 */
V(2, 14, 3),
2835
/* 110 */
V(3, 14, 2),
2836
/* 111 */
V(3, 14, 2),
2837
2838
/* 0100 0100 ... */
2839
/* 00 */
V(6, 13, 2),
/* 244 */
2840
/* 01 */
V(13, 6, 2),
2841
/* 10 */
V(14, 3, 2),
2842
/* 11 */
V(9, 11, 2),
2843
2844
/* 0100 0101 ... */
2845
/* 00 */
V(11, 9, 2),
/* 248 */
2846
/* 01 */
V(10, 10, 2),
2847
/* 10 */
V(14, 2, 2),
2848
/* 11 */
V(1, 14, 2),
2849
2850
/* 0100 0110 ... */
2851
/* 00 */
V(14, 1, 2),
/* 252 */
2852
/* 01 */
V(5, 13, 2),
2853
/* 10 */
V(13, 5, 2),
2854
/* 11 */
V(7, 12, 2),
2855
2856
/* 0100 0111 ... */
2857
/* 00 */
V(12, 7, 2),
/* 256 */
2858
/* 01 */
V(4, 13, 2),
2859
/* 10 */
V(8, 11, 2),
2860
/* 11 */
V(11, 8, 2),
2861
2862
/* 0100 1000 ... */
2863
/* 00 */
V(13, 4, 2),
/* 260 */
2864
/* 01 */
V(9, 10, 2),
2865
/* 10 */
V(10, 9, 2),
2866
/* 11 */
V(6, 12, 2),
2867
2868
/* 0100 1001 ... */
2869
/* 00 */
V(12, 6, 2),
/* 264 */
2870
/* 01 */
V(3, 13, 2),
2871
/* 10 */
V(13, 3, 2),
2872
/* 11 */
V(2, 13, 2),
2873
2874
/* 0100 1010 ... */
2875
/* 00 */
V(13, 2, 2),
/* 268 */
2876
/* 01 */
V(1, 13, 2),
2877
/* 10 */
V(7, 11, 2),
2878
/* 11 */
V(11, 7, 2),
2879
2880
/* 0100 1011 ... */
2881
/* 00 */
V(13, 1, 2),
/* 272 */
2882
/* 01 */
V(5, 12, 2),
2883
/* 10 */
V(12, 5, 2),
2884
/* 11 */
V(8, 10, 2),
2885
2886
/* 0100 1100 ... */
2887
/* 00 */
V(10, 8, 2),
/* 276 */
2888
/* 01 */
V(9, 9, 2),
2889
/* 10 */
V(4, 12, 2),
2890
/* 11 */
V(12, 4, 2),
2891
2892
/* 0100 1101 ... */
2893
/* 000 */
V(6, 11, 2),
/* 280 */
2894
/* 001 */
V(6, 11, 2),
2895
/* 010 */
V(11, 6, 2),
2896
/* 011 */
V(11, 6, 2),
2897
/* 100 */
V(13, 0, 3),
2898
/* 101 */
V(0, 12, 3),
2899
/* 110 */
V(3, 12, 2),
2900
/* 111 */
V(3, 12, 2),
2901
2902
/* 0100 1110 ... */
2903
/* 00 */
V(12, 3, 2),
/* 288 */
2904
/* 01 */
V(7, 10, 2),
2905
/* 10 */
V(10, 7, 2),
2906
/* 11 */
V(2, 12, 2),
2907
2908
/* 0100 1111 ... */
2909
/* 00 */
V(12, 2, 2),
/* 292 */
2910
/* 01 */
V(5, 11, 2),
2911
/* 10 */
V(11, 5, 2),
2912
/* 11 */
V(1, 12, 2),
2913
2914
/* 0101 0000 ... */
2915
/* 00 */
V(8, 9, 2),
/* 296 */
2916
/* 01 */
V(9, 8, 2),
2917
/* 10 */
V(12, 1, 2),
2918
/* 11 */
V(4, 11, 2),
2919
2920
/* 0101 0001 ... */
2921
/* 000 */
V(12, 0, 3),
/* 300 */
2922
/* 001 */
V(0, 11, 3),
2923
/* 010 */
V(3, 11, 2),
2924
/* 011 */
V(3, 11, 2),
2925
/* 100 */
V(11, 0, 3),
2926
/* 101 */
V(0, 10, 3),
2927
/* 110 */
V(1, 10, 2),
2928
/* 111 */
V(1, 10, 2),
2929
2930
/* 0101 0010 ... */
2931
/* 00 */
V(11, 4, 1),
/* 308 */
2932
/* 01 */
V(11, 4, 1),
2933
/* 10 */
V(6, 10, 2),
2934
/* 11 */
V(10, 6, 2),
2935
2936
/* 0101 0011 ... */
2937
/* 000 */
V(7, 9, 2),
/* 312 */
2938
/* 001 */
V(7, 9, 2),
2939
/* 010 */
V(9, 7, 2),
2940
/* 011 */
V(9, 7, 2),
2941
/* 100 */
V(10, 0, 3),
2942
/* 101 */
V(0, 9, 3),
2943
/* 110 */
V(9, 0, 2),
2944
/* 111 */
V(9, 0, 2),
2945
2946
/* 0101 0100 ... */
2947
/* 0 */
V(11, 3, 1),
/* 320 */
2948
/* 1 */
V(8, 8, 1),
2949
2950
/* 0101 0101 ... */
2951
/* 00 */
V(2, 11, 2),
/* 322 */
2952
/* 01 */
V(5, 10, 2),
2953
/* 10 */
V(11, 2, 1),
2954
/* 11 */
V(11, 2, 1),
2955
2956
/* 0101 0110 ... */
2957
/* 00 */
V(10, 5, 2),
/* 326 */
2958
/* 01 */
V(1, 11, 2),
2959
/* 10 */
V(11, 1, 2),
2960
/* 11 */
V(6, 9, 2),
2961
2962
/* 0101 0111 ... */
2963
/* 0 */
V(9, 6, 1),
/* 330 */
2964
/* 1 */
V(10, 4, 1),
2965
2966
/* 0101 1000 ... */
2967
/* 00 */
V(4, 10, 2),
/* 332 */
2968
/* 01 */
V(7, 8, 2),
2969
/* 10 */
V(8, 7, 1),
2970
/* 11 */
V(8, 7, 1),
2971
2972
/* 0101 1001 ... */
2973
/* 0 */
V(3, 10, 1),
/* 336 */
2974
/* 1 */
V(10, 3, 1),
2975
2976
/* 0101 1010 ... */
2977
/* 0 */
V(5, 9, 1),
/* 338 */
2978
/* 1 */
V(9, 5, 1),
2979
2980
/* 0101 1011 ... */
2981
/* 0 */
V(2, 10, 1),
/* 340 */
2982
/* 1 */
V(10, 2, 1),
2983
2984
/* 0101 1100 ... */
2985
/* 0 */
V(10, 1, 1),
/* 342 */
2986
/* 1 */
V(6, 8, 1),
2987
2988
/* 0101 1101 ... */
2989
/* 0 */
V(8, 6, 1),
/* 344 */
2990
/* 1 */
V(7, 7, 1),
2991
2992
/* 0101 1110 ... */
2993
/* 0 */
V(4, 9, 1),
/* 346 */
2994
/* 1 */
V(9, 4, 1),
2995
2996
/* 0101 1111 ... */
2997
/* 0 */
V(3, 9, 1),
/* 348 */
2998
/* 1 */
V(9, 3, 1),
2999
3000
/* 0110 0000 ... */
3001
/* 0 */
V(5, 8, 1),
/* 350 */
3002
/* 1 */
V(8, 5, 1),
3003
3004
/* 0110 0001 ... */
3005
/* 0 */
V(2, 9, 1),
/* 352 */
3006
/* 1 */
V(6, 7, 1),
3007
3008
/* 0110 0010 ... */
3009
/* 0 */
V(7, 6, 1),
/* 354 */
3010
/* 1 */
V(9, 2, 1),
3011
3012
/* 0110 0011 ... */
3013
/* 0 */
V(1, 9, 1),
/* 356 */
3014
/* 1 */
V(9, 1, 1),
3015
3016
/* 0110 0100 ... */
3017
/* 0 */
V(4, 8, 1),
/* 358 */
3018
/* 1 */
V(8, 4, 1),
3019
3020
/* 0110 0101 ... */
3021
/* 0 */
V(5, 7, 1),
/* 360 */
3022
/* 1 */
V(7, 5, 1),
3023
3024
/* 0110 0110 ... */
3025
/* 0 */
V(3, 8, 1),
/* 362 */
3026
/* 1 */
V(8, 3, 1),
3027
3028
/* 0110 0111 ... */
3029
/* 0 */
V(6, 6, 1),
/* 364 */
3030
/* 1 */
V(2, 8, 1),
3031
3032
/* 0110 1000 ... */
3033
/* 0 */
V(8, 2, 1),
/* 366 */
3034
/* 1 */
V(1, 8, 1),
3035
3036
/* 0110 1001 ... */
3037
/* 0 */
V(4, 7, 1),
/* 368 */
3038
/* 1 */
V(7, 4, 1),
3039
3040
/* 0110 1010 ... */
3041
/* 00 */
V(8, 1, 1),
/* 370 */
3042
/* 01 */
V(8, 1, 1),
3043
/* 10 */
V(0, 8, 2),
3044
/* 11 */
V(8, 0, 2),
3045
3046
/* 0110 1011 ... */
3047
/* 0 */
V(5, 6, 1),
/* 374 */
3048
/* 1 */
V(6, 5, 1),
3049
3050
/* 0110 1100 ... */
3051
/* 00 */
V(1, 7, 1),
/* 376 */
3052
/* 01 */
V(1, 7, 1),
3053
/* 10 */
V(0, 7, 2),
3054
/* 11 */
V(7, 0, 2),
3055
3056
/* 0110 1110 ... */
3057
/* 0 */
V(3, 7, 1),
/* 380 */
3058
/* 1 */
V(2, 7, 1),
3059
3060
/* 0111 1100 ... */
3061
/* 0 */
V(0, 6, 1),
/* 382 */
3062
/* 1 */
V(6, 0, 1),
3063
3064
/* 1000 0011 ... */
3065
/* 0 */
V(0, 5, 1),
/* 384 */
3066
/* 1 */
V(5, 0, 1)
3067
};
3068
3069
# undef V
3070
# undef PTR
3071
3072
/* external tables */
3073
3074
union
huffquad
const *
const
mad_huff_quad_table[2] = { hufftabA, hufftabB };
3075
3076
struct
hufftable
const mad_huff_pair_table[32] = {
3077
/* 0 */
{ hufftab0, 0, 0 },
3078
/* 1 */
{ hufftab1, 0, 3 },
3079
/* 2 */
{ hufftab2, 0, 3 },
3080
/* 3 */
{ hufftab3, 0, 3 },
3081
/* 4 */
{ 0
/* not used */
},
3082
/* 5 */
{ hufftab5, 0, 3 },
3083
/* 6 */
{ hufftab6, 0, 4 },
3084
/* 7 */
{ hufftab7, 0, 4 },
3085
/* 8 */
{ hufftab8, 0, 4 },
3086
/* 9 */
{ hufftab9, 0, 4 },
3087
/* 10 */
{ hufftab10, 0, 4 },
3088
/* 11 */
{ hufftab11, 0, 4 },
3089
/* 12 */
{ hufftab12, 0, 4 },
3090
/* 13 */
{ hufftab13, 0, 4 },
3091
/* 14 */
{ 0
/* not used */
},
3092
/* 15 */
{ hufftab15, 0, 4 },
3093
/* 16 */
{ hufftab16, 1, 4 },
3094
/* 17 */
{ hufftab16, 2, 4 },
3095
/* 18 */
{ hufftab16, 3, 4 },
3096
/* 19 */
{ hufftab16, 4, 4 },
3097
/* 20 */
{ hufftab16, 6, 4 },
3098
/* 21 */
{ hufftab16, 8, 4 },
3099
/* 22 */
{ hufftab16, 10, 4 },
3100
/* 23 */
{ hufftab16, 13, 4 },
3101
/* 24 */
{ hufftab24, 4, 4 },
3102
/* 25 */
{ hufftab24, 5, 4 },
3103
/* 26 */
{ hufftab24, 6, 4 },
3104
/* 27 */
{ hufftab24, 7, 4 },
3105
/* 28 */
{ hufftab24, 8, 4 },
3106
/* 29 */
{ hufftab24, 9, 4 },
3107
/* 30 */
{ hufftab24, 11, 4 },
3108
/* 31 */
{ hufftab24, 13, 4 }
3109
};
huffman.h
global.h
hufftable
Definition
huffman.h:61
huffpair
Definition
huffman.h:46
huffquad
Definition
huffman.h:29
libmad
src
huffman.c
Generated by
1.18.0