~ubuntu-dev/ubuntu/lucid/mpd/lucid-201002101854

« back to all changes in this revision

Viewing changes to src/libmad/huffman.c

  • Committer: Bazaar Package Importer
  • Author(s): Charles Majola
  • Date: 2005-02-15 10:43:58 UTC
  • Revision ID: james.westby@ubuntu.com-20050215104358-w8b7yaqqfmsoxj5k
Tags: upstream-0.11.5
ImportĀ upstreamĀ versionĀ 0.11.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
};