streo mp3 player see: http://mbed.org/users/okini3939/notebook/I2S_AUDIO

Dependencies:   FatFileSystemCpp I2SSlave TLV320 mbed

Fork of madplayer by Andreas Grün

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers huffman.cpp Source File

huffman.cpp

00001 /*
00002  * libmad - MPEG audio decoder library
00003  * Copyright (C) 2000-2004 Underbit Technologies, Inc.
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018  *
00019  * $Id: huffman.c,v 1.1 2010/11/23 20:12:57 andy Exp $
00020  */
00021 
00022 #  include "config.h"
00023 
00024 # include "global.h"
00025 
00026 # include "huffman.h"
00027 
00028 /*
00029  * These are the Huffman code words for Layer III.
00030  * The data for these tables are derived from Table B.7 of ISO/IEC 11172-3.
00031  *
00032  * These tables support decoding up to 4 Huffman code bits at a time.
00033  */
00034 
00035 # if defined(__GNUC__) ||  \
00036     (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
00037 #  define PTR(offs, bits)   { .ptr   = { 0, bits, offs       } }
00038 #  define V(v, w, x, y, hlen)   { .value = { 1, hlen, v, w, x, y } }
00039 # else
00040 #  define PTR(offs, bits)   { { 0, bits, offs } }
00041 #  if defined(WORDS_BIGENDIAN)
00042 #   define V(v, w, x, y, hlen)  { { 1, hlen, (v << 11) | (w << 10) |  \
00043                                              (x <<  9) | (y <<  8) } }
00044 #  else
00045 #   define V(v, w, x, y, hlen)  { { 1, hlen, (v <<  0) | (w <<  1) |  \
00046                                              (x <<  2) | (y <<  3) } }
00047 #  endif
00048 # endif
00049 
00050 static
00051 union huffquad const hufftabA[] = {
00052   /* 0000 */ PTR(16, 2),
00053   /* 0001 */ PTR(20, 2),
00054   /* 0010 */ PTR(24, 1),
00055   /* 0011 */ PTR(26, 1),
00056   /* 0100 */ V(0, 0, 1, 0, 4),
00057   /* 0101 */ V(0, 0, 0, 1, 4),
00058   /* 0110 */ V(0, 1, 0, 0, 4),
00059   /* 0111 */ V(1, 0, 0, 0, 4),
00060   /* 1000 */ V(0, 0, 0, 0, 1),
00061   /* 1001 */ V(0, 0, 0, 0, 1),
00062   /* 1010 */ V(0, 0, 0, 0, 1),
00063   /* 1011 */ V(0, 0, 0, 0, 1),
00064   /* 1100 */ V(0, 0, 0, 0, 1),
00065   /* 1101 */ V(0, 0, 0, 0, 1),
00066   /* 1110 */ V(0, 0, 0, 0, 1),
00067   /* 1111 */ V(0, 0, 0, 0, 1),
00068 
00069   /* 0000 ... */
00070   /* 00   */ V(1, 0, 1, 1, 2),  /* 16 */
00071   /* 01   */ V(1, 1, 1, 1, 2),
00072   /* 10   */ V(1, 1, 0, 1, 2),
00073   /* 11   */ V(1, 1, 1, 0, 2),
00074 
00075   /* 0001 ... */
00076   /* 00   */ V(0, 1, 1, 1, 2),  /* 20 */
00077   /* 01   */ V(0, 1, 0, 1, 2),
00078   /* 10   */ V(1, 0, 0, 1, 1),
00079   /* 11   */ V(1, 0, 0, 1, 1),
00080 
00081   /* 0010 ... */
00082   /* 0    */ V(0, 1, 1, 0, 1),  /* 24 */
00083   /* 1    */ V(0, 0, 1, 1, 1),
00084 
00085   /* 0011 ... */
00086   /* 0    */ V(1, 0, 1, 0, 1),  /* 26 */
00087   /* 1    */ V(1, 1, 0, 0, 1)
00088 };
00089 
00090 static
00091 union huffquad const hufftabB[] = {
00092   /* 0000 */ V(1, 1, 1, 1, 4),
00093   /* 0001 */ V(1, 1, 1, 0, 4),
00094   /* 0010 */ V(1, 1, 0, 1, 4),
00095   /* 0011 */ V(1, 1, 0, 0, 4),
00096   /* 0100 */ V(1, 0, 1, 1, 4),
00097   /* 0101 */ V(1, 0, 1, 0, 4),
00098   /* 0110 */ V(1, 0, 0, 1, 4),
00099   /* 0111 */ V(1, 0, 0, 0, 4),
00100   /* 1000 */ V(0, 1, 1, 1, 4),
00101   /* 1001 */ V(0, 1, 1, 0, 4),
00102   /* 1010 */ V(0, 1, 0, 1, 4),
00103   /* 1011 */ V(0, 1, 0, 0, 4),
00104   /* 1100 */ V(0, 0, 1, 1, 4),
00105   /* 1101 */ V(0, 0, 1, 0, 4),
00106   /* 1110 */ V(0, 0, 0, 1, 4),
00107   /* 1111 */ V(0, 0, 0, 0, 4)
00108 };
00109 
00110 # undef V
00111 # undef PTR
00112 
00113 # if defined(__GNUC__) ||  \
00114     (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
00115 #  define PTR(offs, bits)   { .ptr   = { 0, bits, offs } }
00116 #  define V(x, y, hlen)     { .value = { 1, hlen, x, y } }
00117 # else
00118 #  define PTR(offs, bits)   { { 0, bits, offs } }
00119 #  if defined(WORDS_BIGENDIAN)
00120 #   define V(x, y, hlen)    { { 1, hlen, (x << 8) | (y << 4) } }
00121 #  else
00122 #   define V(x, y, hlen)    { { 1, hlen, (x << 0) | (y << 4) } }
00123 #  endif
00124 # endif
00125 
00126 static
00127 union huffpair const hufftab0[] = {
00128   /*      */ V(0, 0, 0)
00129 };
00130 
00131 static
00132 union huffpair const hufftab1[] = {
00133   /* 000  */ V(1, 1, 3),
00134   /* 001  */ V(0, 1, 3),
00135   /* 010  */ V(1, 0, 2),
00136   /* 011  */ V(1, 0, 2),
00137   /* 100  */ V(0, 0, 1),
00138   /* 101  */ V(0, 0, 1),
00139   /* 110  */ V(0, 0, 1),
00140   /* 111  */ V(0, 0, 1)
00141 };
00142 
00143 static
00144 union huffpair const hufftab2[] = {
00145   /* 000  */ PTR(8, 3),
00146   /* 001  */ V(1, 1, 3),
00147   /* 010  */ V(0, 1, 3),
00148   /* 011  */ V(1, 0, 3),
00149   /* 100  */ V(0, 0, 1),
00150   /* 101  */ V(0, 0, 1),
00151   /* 110  */ V(0, 0, 1),
00152   /* 111  */ V(0, 0, 1),
00153 
00154   /* 000 ... */
00155   /* 000  */ V(2, 2, 3),    /* 8 */
00156   /* 001  */ V(0, 2, 3),
00157   /* 010  */ V(1, 2, 2),
00158   /* 011  */ V(1, 2, 2),
00159   /* 100  */ V(2, 1, 2),
00160   /* 101  */ V(2, 1, 2),
00161   /* 110  */ V(2, 0, 2),
00162   /* 111  */ V(2, 0, 2)
00163 };
00164 
00165 static
00166 union huffpair const hufftab3[] = {
00167   /* 000  */ PTR(8, 3),
00168   /* 001  */ V(1, 0, 3),
00169   /* 010  */ V(1, 1, 2),
00170   /* 011  */ V(1, 1, 2),
00171   /* 100  */ V(0, 1, 2),
00172   /* 101  */ V(0, 1, 2),
00173   /* 110  */ V(0, 0, 2),
00174   /* 111  */ V(0, 0, 2),
00175 
00176   /* 000 ... */
00177   /* 000  */ V(2, 2, 3),    /* 8 */
00178   /* 001  */ V(0, 2, 3),
00179   /* 010  */ V(1, 2, 2),
00180   /* 011  */ V(1, 2, 2),
00181   /* 100  */ V(2, 1, 2),
00182   /* 101  */ V(2, 1, 2),
00183   /* 110  */ V(2, 0, 2),
00184   /* 111  */ V(2, 0, 2)
00185 };
00186 
00187 static
00188 union huffpair const hufftab5[] = {
00189   /* 000  */ PTR(8, 4),
00190   /* 001  */ V(1, 1, 3),
00191   /* 010  */ V(0, 1, 3),
00192   /* 011  */ V(1, 0, 3),
00193   /* 100  */ V(0, 0, 1),
00194   /* 101  */ V(0, 0, 1),
00195   /* 110  */ V(0, 0, 1),
00196   /* 111  */ V(0, 0, 1),
00197 
00198   /* 000 ... */
00199   /* 0000 */ PTR(24, 1),    /* 8 */
00200   /* 0001 */ V(3, 2, 4),
00201   /* 0010 */ V(3, 1, 3),
00202   /* 0011 */ V(3, 1, 3),
00203   /* 0100 */ V(1, 3, 4),
00204   /* 0101 */ V(0, 3, 4),
00205   /* 0110 */ V(3, 0, 4),
00206   /* 0111 */ V(2, 2, 4),
00207   /* 1000 */ V(1, 2, 3),
00208   /* 1001 */ V(1, 2, 3),
00209   /* 1010 */ V(2, 1, 3),
00210   /* 1011 */ V(2, 1, 3),
00211   /* 1100 */ V(0, 2, 3),
00212   /* 1101 */ V(0, 2, 3),
00213   /* 1110 */ V(2, 0, 3),
00214   /* 1111 */ V(2, 0, 3),
00215 
00216   /* 000 0000 ... */
00217   /* 0    */ V(3, 3, 1),    /* 24 */
00218   /* 1    */ V(2, 3, 1)
00219 };
00220 
00221 static
00222 union huffpair const hufftab6[] = {
00223   /* 0000 */ PTR(16, 3),
00224   /* 0001 */ PTR(24, 1),
00225   /* 0010 */ PTR(26, 1),
00226   /* 0011 */ V(1, 2, 4),
00227   /* 0100 */ V(2, 1, 4),
00228   /* 0101 */ V(2, 0, 4),
00229   /* 0110 */ V(0, 1, 3),
00230   /* 0111 */ V(0, 1, 3),
00231   /* 1000 */ V(1, 1, 2),
00232   /* 1001 */ V(1, 1, 2),
00233   /* 1010 */ V(1, 1, 2),
00234   /* 1011 */ V(1, 1, 2),
00235   /* 1100 */ V(1, 0, 3),
00236   /* 1101 */ V(1, 0, 3),
00237   /* 1110 */ V(0, 0, 3),
00238   /* 1111 */ V(0, 0, 3),
00239 
00240   /* 0000 ... */
00241   /* 000  */ V(3, 3, 3),    /* 16 */
00242   /* 001  */ V(0, 3, 3),
00243   /* 010  */ V(2, 3, 2),
00244   /* 011  */ V(2, 3, 2),
00245   /* 100  */ V(3, 2, 2),
00246   /* 101  */ V(3, 2, 2),
00247   /* 110  */ V(3, 0, 2),
00248   /* 111  */ V(3, 0, 2),
00249 
00250   /* 0001 ... */
00251   /* 0    */ V(1, 3, 1),    /* 24 */
00252   /* 1    */ V(3, 1, 1),
00253 
00254   /* 0010 ... */
00255   /* 0    */ V(2, 2, 1),    /* 26 */
00256   /* 1    */ V(0, 2, 1)
00257 };
00258 
00259 static
00260 union huffpair const hufftab7[] = {
00261   /* 0000 */ PTR(16, 4),
00262   /* 0001 */ PTR(32, 4),
00263   /* 0010 */ PTR(48, 2),
00264   /* 0011 */ V(1, 1, 4),
00265   /* 0100 */ V(0, 1, 3),
00266   /* 0101 */ V(0, 1, 3),
00267   /* 0110 */ V(1, 0, 3),
00268   /* 0111 */ V(1, 0, 3),
00269   /* 1000 */ V(0, 0, 1),
00270   /* 1001 */ V(0, 0, 1),
00271   /* 1010 */ V(0, 0, 1),
00272   /* 1011 */ V(0, 0, 1),
00273   /* 1100 */ V(0, 0, 1),
00274   /* 1101 */ V(0, 0, 1),
00275   /* 1110 */ V(0, 0, 1),
00276   /* 1111 */ V(0, 0, 1),
00277 
00278   /* 0000 ... */
00279   /* 0000 */ PTR(52, 2),    /* 16 */
00280   /* 0001 */ PTR(56, 1),
00281   /* 0010 */ PTR(58, 1),
00282   /* 0011 */ V(1, 5, 4),
00283   /* 0100 */ V(5, 1, 4),
00284   /* 0101 */ PTR(60, 1),
00285   /* 0110 */ V(5, 0, 4),
00286   /* 0111 */ PTR(62, 1),
00287   /* 1000 */ V(2, 4, 4),
00288   /* 1001 */ V(4, 2, 4),
00289   /* 1010 */ V(1, 4, 3),
00290   /* 1011 */ V(1, 4, 3),
00291   /* 1100 */ V(4, 1, 3),
00292   /* 1101 */ V(4, 1, 3),
00293   /* 1110 */ V(4, 0, 3),
00294   /* 1111 */ V(4, 0, 3),
00295 
00296   /* 0001 ... */
00297   /* 0000 */ V(0, 4, 4),    /* 32 */
00298   /* 0001 */ V(2, 3, 4),
00299   /* 0010 */ V(3, 2, 4),
00300   /* 0011 */ V(0, 3, 4),
00301   /* 0100 */ V(1, 3, 3),
00302   /* 0101 */ V(1, 3, 3),
00303   /* 0110 */ V(3, 1, 3),
00304   /* 0111 */ V(3, 1, 3),
00305   /* 1000 */ V(3, 0, 3),
00306   /* 1001 */ V(3, 0, 3),
00307   /* 1010 */ V(2, 2, 3),
00308   /* 1011 */ V(2, 2, 3),
00309   /* 1100 */ V(1, 2, 2),
00310   /* 1101 */ V(1, 2, 2),
00311   /* 1110 */ V(1, 2, 2),
00312   /* 1111 */ V(1, 2, 2),
00313 
00314   /* 0010 ... */
00315   /* 00   */ V(2, 1, 1),    /* 48 */
00316   /* 01   */ V(2, 1, 1),
00317   /* 10   */ V(0, 2, 2),
00318   /* 11   */ V(2, 0, 2),
00319 
00320   /* 0000 0000 ... */
00321   /* 00   */ V(5, 5, 2),    /* 52 */
00322   /* 01   */ V(4, 5, 2),
00323   /* 10   */ V(5, 4, 2),
00324   /* 11   */ V(5, 3, 2),
00325 
00326   /* 0000 0001 ... */
00327   /* 0    */ V(3, 5, 1),    /* 56 */
00328   /* 1    */ V(4, 4, 1),
00329 
00330   /* 0000 0010 ... */
00331   /* 0    */ V(2, 5, 1),    /* 58 */
00332   /* 1    */ V(5, 2, 1),
00333 
00334   /* 0000 0101 ... */
00335   /* 0    */ V(0, 5, 1),    /* 60 */
00336   /* 1    */ V(3, 4, 1),
00337 
00338   /* 0000 0111 ... */
00339   /* 0    */ V(4, 3, 1),    /* 62 */
00340   /* 1    */ V(3, 3, 1)
00341 };
00342 
00343 # if 0
00344 /* this version saves 8 entries (16 bytes) at the expense of
00345    an extra lookup in 4 out of 36 cases */
00346 static
00347 union huffpair const hufftab8[] = {
00348   /* 0000 */ PTR(16, 4),
00349   /* 0001 */ PTR(32, 2),
00350   /* 0010 */ V(1, 2, 4),
00351   /* 0011 */ V(2, 1, 4),
00352   /* 0100 */ V(1, 1, 2),
00353   /* 0101 */ V(1, 1, 2),
00354   /* 0110 */ V(1, 1, 2),
00355   /* 0111 */ V(1, 1, 2),
00356   /* 1000 */ V(0, 1, 3),
00357   /* 1001 */ V(0, 1, 3),
00358   /* 1010 */ V(1, 0, 3),
00359   /* 1011 */ V(1, 0, 3),
00360   /* 1100 */ V(0, 0, 2),
00361   /* 1101 */ V(0, 0, 2),
00362   /* 1110 */ V(0, 0, 2),
00363   /* 1111 */ V(0, 0, 2),
00364 
00365   /* 0000 ... */
00366   /* 0000 */ PTR(36, 3),    /* 16 */
00367   /* 0001 */ PTR(44, 2),
00368   /* 0010 */ PTR(48, 1),
00369   /* 0011 */ V(1, 5, 4),
00370   /* 0100 */ V(5, 1, 4),
00371   /* 0101 */ PTR(50, 1),
00372   /* 0110 */ PTR(52, 1),
00373   /* 0111 */ V(2, 4, 4),
00374   /* 1000 */ V(4, 2, 4),
00375   /* 1001 */ V(1, 4, 4),
00376   /* 1010 */ V(4, 1, 3),
00377   /* 1011 */ V(4, 1, 3),
00378   /* 1100 */ V(0, 4, 4),
00379   /* 1101 */ V(4, 0, 4),
00380   /* 1110 */ V(2, 3, 4),
00381   /* 1111 */ V(3, 2, 4),
00382 
00383   /* 0001 ... */
00384   /* 00   */ PTR(54, 2),    /* 32 */
00385   /* 01   */ V(2, 2, 2),
00386   /* 10   */ V(0, 2, 2),
00387   /* 11   */ V(2, 0, 2),
00388 
00389   /* 0000 0000 ... */
00390   /* 000  */ V(5, 5, 3),    /* 36 */
00391   /* 001  */ V(5, 4, 3),
00392   /* 010  */ V(4, 5, 2),
00393   /* 011  */ V(4, 5, 2),
00394   /* 100  */ V(5, 3, 1),
00395   /* 101  */ V(5, 3, 1),
00396   /* 110  */ V(5, 3, 1),
00397   /* 111  */ V(5, 3, 1),
00398 
00399   /* 0000 0001 ... */
00400   /* 00   */ V(3, 5, 2),    /* 44 */
00401   /* 01   */ V(4, 4, 2),
00402   /* 10   */ V(2, 5, 1),
00403   /* 11   */ V(2, 5, 1),
00404 
00405   /* 0000 0010 ... */
00406   /* 0    */ V(5, 2, 1),    /* 48 */
00407   /* 1    */ V(0, 5, 1),
00408 
00409   /* 0000 0101 ... */
00410   /* 0    */ V(3, 4, 1),    /* 50 */
00411   /* 1    */ V(4, 3, 1),
00412 
00413   /* 0000 0110 ... */
00414   /* 0    */ V(5, 0, 1),    /* 52 */
00415   /* 1    */ V(3, 3, 1),
00416 
00417   /* 0001 00 ... */
00418   /* 00   */ V(1, 3, 2),    /* 54 */
00419   /* 01   */ V(3, 1, 2),
00420   /* 10   */ V(0, 3, 2),
00421   /* 11   */ V(3, 0, 2),
00422 };
00423 # else
00424 static
00425 union huffpair const hufftab8[] = {
00426   /* 0000 */ PTR(16, 4),
00427   /* 0001 */ PTR(32, 4),
00428   /* 0010 */ V(1, 2, 4),
00429   /* 0011 */ V(2, 1, 4),
00430   /* 0100 */ V(1, 1, 2),
00431   /* 0101 */ V(1, 1, 2),
00432   /* 0110 */ V(1, 1, 2),
00433   /* 0111 */ V(1, 1, 2),
00434   /* 1000 */ V(0, 1, 3),
00435   /* 1001 */ V(0, 1, 3),
00436   /* 1010 */ V(1, 0, 3),
00437   /* 1011 */ V(1, 0, 3),
00438   /* 1100 */ V(0, 0, 2),
00439   /* 1101 */ V(0, 0, 2),
00440   /* 1110 */ V(0, 0, 2),
00441   /* 1111 */ V(0, 0, 2),
00442 
00443   /* 0000 ... */
00444   /* 0000 */ PTR(48, 3),    /* 16 */
00445   /* 0001 */ PTR(56, 2),
00446   /* 0010 */ PTR(60, 1),
00447   /* 0011 */ V(1, 5, 4),
00448   /* 0100 */ V(5, 1, 4),
00449   /* 0101 */ PTR(62, 1),
00450   /* 0110 */ PTR(64, 1),
00451   /* 0111 */ V(2, 4, 4),
00452   /* 1000 */ V(4, 2, 4),
00453   /* 1001 */ V(1, 4, 4),
00454   /* 1010 */ V(4, 1, 3),
00455   /* 1011 */ V(4, 1, 3),
00456   /* 1100 */ V(0, 4, 4),
00457   /* 1101 */ V(4, 0, 4),
00458   /* 1110 */ V(2, 3, 4),
00459   /* 1111 */ V(3, 2, 4),
00460 
00461   /* 0001 ... */
00462   /* 0000 */ V(1, 3, 4),    /* 32 */
00463   /* 0001 */ V(3, 1, 4),
00464   /* 0010 */ V(0, 3, 4),
00465   /* 0011 */ V(3, 0, 4),
00466   /* 0100 */ V(2, 2, 2),
00467   /* 0101 */ V(2, 2, 2),
00468   /* 0110 */ V(2, 2, 2),
00469   /* 0111 */ V(2, 2, 2),
00470   /* 1000 */ V(0, 2, 2),
00471   /* 1001 */ V(0, 2, 2),
00472   /* 1010 */ V(0, 2, 2),
00473   /* 1011 */ V(0, 2, 2),
00474   /* 1100 */ V(2, 0, 2),
00475   /* 1101 */ V(2, 0, 2),
00476   /* 1110 */ V(2, 0, 2),
00477   /* 1111 */ V(2, 0, 2),
00478 
00479   /* 0000 0000 ... */
00480   /* 000  */ V(5, 5, 3),    /* 48 */
00481   /* 001  */ V(5, 4, 3),
00482   /* 010  */ V(4, 5, 2),
00483   /* 011  */ V(4, 5, 2),
00484   /* 100  */ V(5, 3, 1),
00485   /* 101  */ V(5, 3, 1),
00486   /* 110  */ V(5, 3, 1),
00487   /* 111  */ V(5, 3, 1),
00488 
00489   /* 0000 0001 ... */
00490   /* 00   */ V(3, 5, 2),    /* 56 */
00491   /* 01   */ V(4, 4, 2),
00492   /* 10   */ V(2, 5, 1),
00493   /* 11   */ V(2, 5, 1),
00494 
00495   /* 0000 0010 ... */
00496   /* 0    */ V(5, 2, 1),    /* 60 */
00497   /* 1    */ V(0, 5, 1),
00498 
00499   /* 0000 0101 ... */
00500   /* 0    */ V(3, 4, 1),    /* 62 */
00501   /* 1    */ V(4, 3, 1),
00502 
00503   /* 0000 0110 ... */
00504   /* 0    */ V(5, 0, 1),    /* 64 */
00505   /* 1    */ V(3, 3, 1)
00506 };
00507 # endif
00508 
00509 static
00510 union huffpair const hufftab9[] = {
00511   /* 0000 */ PTR(16, 4),
00512   /* 0001 */ PTR(32, 3),
00513   /* 0010 */ PTR(40, 2),
00514   /* 0011 */ PTR(44, 2),
00515   /* 0100 */ PTR(48, 1),
00516   /* 0101 */ V(1, 2, 4),
00517   /* 0110 */ V(2, 1, 4),
00518   /* 0111 */ V(2, 0, 4),
00519   /* 1000 */ V(1, 1, 3),
00520   /* 1001 */ V(1, 1, 3),
00521   /* 1010 */ V(0, 1, 3),
00522   /* 1011 */ V(0, 1, 3),
00523   /* 1100 */ V(1, 0, 3),
00524   /* 1101 */ V(1, 0, 3),
00525   /* 1110 */ V(0, 0, 3),
00526   /* 1111 */ V(0, 0, 3),
00527 
00528   /* 0000 ... */
00529   /* 0000 */ PTR(50, 1),    /* 16 */
00530   /* 0001 */ V(3, 5, 4),
00531   /* 0010 */ V(5, 3, 4),
00532   /* 0011 */ PTR(52, 1),
00533   /* 0100 */ V(4, 4, 4),
00534   /* 0101 */ V(2, 5, 4),
00535   /* 0110 */ V(5, 2, 4),
00536   /* 0111 */ V(1, 5, 4),
00537   /* 1000 */ V(5, 1, 3),
00538   /* 1001 */ V(5, 1, 3),
00539   /* 1010 */ V(3, 4, 3),
00540   /* 1011 */ V(3, 4, 3),
00541   /* 1100 */ V(4, 3, 3),
00542   /* 1101 */ V(4, 3, 3),
00543   /* 1110 */ V(5, 0, 4),
00544   /* 1111 */ V(0, 4, 4),
00545 
00546   /* 0001 ... */
00547   /* 000  */ V(2, 4, 3),    /* 32 */
00548   /* 001  */ V(4, 2, 3),
00549   /* 010  */ V(3, 3, 3),
00550   /* 011  */ V(4, 0, 3),
00551   /* 100  */ V(1, 4, 2),
00552   /* 101  */ V(1, 4, 2),
00553   /* 110  */ V(4, 1, 2),
00554   /* 111  */ V(4, 1, 2),
00555 
00556   /* 0010 ... */
00557   /* 00   */ V(2, 3, 2),    /* 40 */
00558   /* 01   */ V(3, 2, 2),
00559   /* 10   */ V(1, 3, 1),
00560   /* 11   */ V(1, 3, 1),
00561 
00562   /* 0011 ... */
00563   /* 00   */ V(3, 1, 1),    /* 44 */
00564   /* 01   */ V(3, 1, 1),
00565   /* 10   */ V(0, 3, 2),
00566   /* 11   */ V(3, 0, 2),
00567 
00568   /* 0100 ... */
00569   /* 0    */ V(2, 2, 1),    /* 48 */
00570   /* 1    */ V(0, 2, 1),
00571 
00572   /* 0000 0000 ... */
00573   /* 0    */ V(5, 5, 1),    /* 50 */
00574   /* 1    */ V(4, 5, 1),
00575 
00576   /* 0000 0011 ... */
00577   /* 0    */ V(5, 4, 1),    /* 52 */
00578   /* 1    */ V(0, 5, 1)
00579 };
00580 
00581 static
00582 union huffpair const hufftab10[] = {
00583   /* 0000 */ PTR(16, 4),
00584   /* 0001 */ PTR(32, 4),
00585   /* 0010 */ PTR(48, 2),
00586   /* 0011 */ V(1, 1, 4),
00587   /* 0100 */ V(0, 1, 3),
00588   /* 0101 */ V(0, 1, 3),
00589   /* 0110 */ V(1, 0, 3),
00590   /* 0111 */ V(1, 0, 3),
00591   /* 1000 */ V(0, 0, 1),
00592   /* 1001 */ V(0, 0, 1),
00593   /* 1010 */ V(0, 0, 1),
00594   /* 1011 */ V(0, 0, 1),
00595   /* 1100 */ V(0, 0, 1),
00596   /* 1101 */ V(0, 0, 1),
00597   /* 1110 */ V(0, 0, 1),
00598   /* 1111 */ V(0, 0, 1),
00599 
00600   /* 0000 ... */
00601   /* 0000 */ PTR(52, 3),    /* 16 */
00602   /* 0001 */ PTR(60, 2),
00603   /* 0010 */ PTR(64, 3),
00604   /* 0011 */ PTR(72, 1),
00605   /* 0100 */ PTR(74, 2),
00606   /* 0101 */ PTR(78, 2),
00607   /* 0110 */ PTR(82, 2),
00608   /* 0111 */ V(1, 7, 4),
00609   /* 1000 */ V(7, 1, 4),
00610   /* 1001 */ PTR(86, 1),
00611   /* 1010 */ PTR(88, 2),
00612   /* 1011 */ PTR(92, 2),
00613   /* 1100 */ V(1, 6, 4),
00614   /* 1101 */ V(6, 1, 4),
00615   /* 1110 */ V(6, 0, 4),
00616   /* 1111 */ PTR(96, 1),
00617 
00618   /* 0001 ... */
00619   /* 0000 */ PTR(98, 1),    /* 32 */
00620   /* 0001 */ PTR(100, 1),
00621   /* 0010 */ V(1, 4, 4),
00622   /* 0011 */ V(4, 1, 4),
00623   /* 0100 */ V(4, 0, 4),
00624   /* 0101 */ V(2, 3, 4),
00625   /* 0110 */ V(3, 2, 4),
00626   /* 0111 */ V(0, 3, 4),
00627   /* 1000 */ V(1, 3, 3),
00628   /* 1001 */ V(1, 3, 3),
00629   /* 1010 */ V(3, 1, 3),
00630   /* 1011 */ V(3, 1, 3),
00631   /* 1100 */ V(3, 0, 3),
00632   /* 1101 */ V(3, 0, 3),
00633   /* 1110 */ V(2, 2, 3),
00634   /* 1111 */ V(2, 2, 3),
00635 
00636   /* 0010 ... */
00637   /* 00   */ V(1, 2, 2),    /* 48 */
00638   /* 01   */ V(2, 1, 2),
00639   /* 10   */ V(0, 2, 2),
00640   /* 11   */ V(2, 0, 2),
00641 
00642   /* 0000 0000 ... */
00643   /* 000  */ V(7, 7, 3),    /* 52 */
00644   /* 001  */ V(6, 7, 3),
00645   /* 010  */ V(7, 6, 3),
00646   /* 011  */ V(5, 7, 3),
00647   /* 100  */ V(7, 5, 3),
00648   /* 101  */ V(6, 6, 3),
00649   /* 110  */ V(4, 7, 2),
00650   /* 111  */ V(4, 7, 2),
00651 
00652   /* 0000 0001 ... */
00653   /* 00   */ V(7, 4, 2),    /* 60 */
00654   /* 01   */ V(5, 6, 2),
00655   /* 10   */ V(6, 5, 2),
00656   /* 11   */ V(3, 7, 2),
00657 
00658   /* 0000 0010 ... */
00659   /* 000  */ V(7, 3, 2),    /* 64 */
00660   /* 001  */ V(7, 3, 2),
00661   /* 010  */ V(4, 6, 2),
00662   /* 011  */ V(4, 6, 2),
00663   /* 100  */ V(5, 5, 3),
00664   /* 101  */ V(5, 4, 3),
00665   /* 110  */ V(6, 3, 2),
00666   /* 111  */ V(6, 3, 2),
00667 
00668   /* 0000 0011 ... */
00669   /* 0    */ V(2, 7, 1),    /* 72 */
00670   /* 1    */ V(7, 2, 1),
00671 
00672   /* 0000 0100 ... */
00673   /* 00   */ V(6, 4, 2),    /* 74 */
00674   /* 01   */ V(0, 7, 2),
00675   /* 10   */ V(7, 0, 1),
00676   /* 11   */ V(7, 0, 1),
00677 
00678   /* 0000 0101 ... */
00679   /* 00   */ V(6, 2, 1),    /* 78 */
00680   /* 01   */ V(6, 2, 1),
00681   /* 10   */ V(4, 5, 2),
00682   /* 11   */ V(3, 5, 2),
00683 
00684   /* 0000 0110 ... */
00685   /* 00   */ V(0, 6, 1),    /* 82 */
00686   /* 01   */ V(0, 6, 1),
00687   /* 10   */ V(5, 3, 2),
00688   /* 11   */ V(4, 4, 2),
00689 
00690   /* 0000 1001 ... */
00691   /* 0    */ V(3, 6, 1),    /* 86 */
00692   /* 1    */ V(2, 6, 1),
00693 
00694   /* 0000 1010 ... */
00695   /* 00   */ V(2, 5, 2),    /* 88 */
00696   /* 01   */ V(5, 2, 2),
00697   /* 10   */ V(1, 5, 1),
00698   /* 11   */ V(1, 5, 1),
00699 
00700   /* 0000 1011 ... */
00701   /* 00   */ V(5, 1, 1),    /* 92 */
00702   /* 01   */ V(5, 1, 1),
00703   /* 10   */ V(3, 4, 2),
00704   /* 11   */ V(4, 3, 2),
00705 
00706   /* 0000 1111 ... */
00707   /* 0    */ V(0, 5, 1),    /* 96 */
00708   /* 1    */ V(5, 0, 1),
00709 
00710   /* 0001 0000 ... */
00711   /* 0    */ V(2, 4, 1),    /* 98 */
00712   /* 1    */ V(4, 2, 1),
00713 
00714   /* 0001 0001 ... */
00715   /* 0    */ V(3, 3, 1),    /* 100 */
00716   /* 1    */ V(0, 4, 1)
00717 };
00718 
00719 static
00720 union huffpair const hufftab11[] = {
00721   /* 0000 */ PTR(16, 4),
00722   /* 0001 */ PTR(32, 4),
00723   /* 0010 */ PTR(48, 4),
00724   /* 0011 */ PTR(64, 3),
00725   /* 0100 */ V(1, 2, 4),
00726   /* 0101 */ PTR(72, 1),
00727   /* 0110 */ V(1, 1, 3),
00728   /* 0111 */ V(1, 1, 3),
00729   /* 1000 */ V(0, 1, 3),
00730   /* 1001 */ V(0, 1, 3),
00731   /* 1010 */ V(1, 0, 3),
00732   /* 1011 */ V(1, 0, 3),
00733   /* 1100 */ V(0, 0, 2),
00734   /* 1101 */ V(0, 0, 2),
00735   /* 1110 */ V(0, 0, 2),
00736   /* 1111 */ V(0, 0, 2),
00737 
00738   /* 0000 ... */
00739   /* 0000 */ PTR(74, 2),    /* 16 */
00740   /* 0001 */ PTR(78, 3),
00741   /* 0010 */ PTR(86, 2),
00742   /* 0011 */ PTR(90, 1),
00743   /* 0100 */ PTR(92, 2),
00744   /* 0101 */ V(2, 7, 4),
00745   /* 0110 */ V(7, 2, 4),
00746   /* 0111 */ PTR(96, 1),
00747   /* 1000 */ V(7, 1, 3),
00748   /* 1001 */ V(7, 1, 3),
00749   /* 1010 */ V(1, 7, 4),
00750   /* 1011 */ V(7, 0, 4),
00751   /* 1100 */ V(3, 6, 4),
00752   /* 1101 */ V(6, 3, 4),
00753   /* 1110 */ V(6, 0, 4),
00754   /* 1111 */ PTR(98, 1),
00755 
00756   /* 0001 ... */
00757   /* 0000 */ PTR(100, 1),   /* 32 */
00758   /* 0001 */ V(1, 5, 4),
00759   /* 0010 */ V(6, 2, 3),
00760   /* 0011 */ V(6, 2, 3),
00761   /* 0100 */ V(2, 6, 4),
00762   /* 0101 */ V(0, 6, 4),
00763   /* 0110 */ V(1, 6, 3),
00764   /* 0111 */ V(1, 6, 3),
00765   /* 1000 */ V(6, 1, 3),
00766   /* 1001 */ V(6, 1, 3),
00767   /* 1010 */ V(5, 1, 4),
00768   /* 1011 */ V(3, 4, 4),
00769   /* 1100 */ V(5, 0, 4),
00770   /* 1101 */ PTR(102, 1),
00771   /* 1110 */ V(2, 4, 4),
00772   /* 1111 */ V(4, 2, 4),
00773 
00774   /* 0010 ... */
00775   /* 0000 */ V(1, 4, 4),    /* 48 */
00776   /* 0001 */ V(4, 1, 4),
00777   /* 0010 */ V(0, 4, 4),
00778   /* 0011 */ V(4, 0, 4),
00779   /* 0100 */ V(2, 3, 3),
00780   /* 0101 */ V(2, 3, 3),
00781   /* 0110 */ V(3, 2, 3),
00782   /* 0111 */ V(3, 2, 3),
00783   /* 1000 */ V(1, 3, 2),
00784   /* 1001 */ V(1, 3, 2),
00785   /* 1010 */ V(1, 3, 2),
00786   /* 1011 */ V(1, 3, 2),
00787   /* 1100 */ V(3, 1, 2),
00788   /* 1101 */ V(3, 1, 2),
00789   /* 1110 */ V(3, 1, 2),
00790   /* 1111 */ V(3, 1, 2),
00791 
00792   /* 0011 ... */
00793   /* 000  */ V(0, 3, 3),    /* 64 */
00794   /* 001  */ V(3, 0, 3),
00795   /* 010  */ V(2, 2, 2),
00796   /* 011  */ V(2, 2, 2),
00797   /* 100  */ V(2, 1, 1),
00798   /* 101  */ V(2, 1, 1),
00799   /* 110  */ V(2, 1, 1),
00800   /* 111  */ V(2, 1, 1),
00801 
00802   /* 0101 ... */
00803   /* 0    */ V(0, 2, 1),    /* 72 */
00804   /* 1    */ V(2, 0, 1),
00805 
00806   /* 0000 0000 ... */
00807   /* 00   */ V(7, 7, 2),    /* 74 */
00808   /* 01   */ V(6, 7, 2),
00809   /* 10   */ V(7, 6, 2),
00810   /* 11   */ V(7, 5, 2),
00811 
00812   /* 0000 0001 ... */
00813   /* 000  */ V(6, 6, 2),    /* 78 */
00814   /* 001  */ V(6, 6, 2),
00815   /* 010  */ V(4, 7, 2),
00816   /* 011  */ V(4, 7, 2),
00817   /* 100  */ V(7, 4, 2),
00818   /* 101  */ V(7, 4, 2),
00819   /* 110  */ V(5, 7, 3),
00820   /* 111  */ V(5, 5, 3),
00821 
00822   /* 0000 0010 ... */
00823   /* 00   */ V(5, 6, 2),    /* 86 */
00824   /* 01   */ V(6, 5, 2),
00825   /* 10   */ V(3, 7, 1),
00826   /* 11   */ V(3, 7, 1),
00827 
00828   /* 0000 0011 ... */
00829   /* 0    */ V(7, 3, 1),    /* 90 */
00830   /* 1    */ V(4, 6, 1),
00831 
00832   /* 0000 0100 ... */
00833   /* 00   */ V(4, 5, 2),    /* 92 */
00834   /* 01   */ V(5, 4, 2),
00835   /* 10   */ V(3, 5, 2),
00836   /* 11   */ V(5, 3, 2),
00837 
00838   /* 0000 0111 ... */
00839   /* 0    */ V(6, 4, 1),    /* 96 */
00840   /* 1    */ V(0, 7, 1),
00841 
00842   /* 0000 1111 ... */
00843   /* 0    */ V(4, 4, 1),    /* 98 */
00844   /* 1    */ V(2, 5, 1),
00845 
00846   /* 0001 0000 ... */
00847   /* 0    */ V(5, 2, 1),    /* 100 */
00848   /* 1    */ V(0, 5, 1),
00849 
00850   /* 0001 1101 ... */
00851   /* 0    */ V(4, 3, 1),    /* 102 */
00852   /* 1    */ V(3, 3, 1)
00853 };
00854 
00855 static
00856 union huffpair const hufftab12[] = {
00857   /* 0000 */ PTR(16, 4),
00858   /* 0001 */ PTR(32, 4),
00859   /* 0010 */ PTR(48, 4),
00860   /* 0011 */ PTR(64, 2),
00861   /* 0100 */ PTR(68, 3),
00862   /* 0101 */ PTR(76, 1),
00863   /* 0110 */ V(1, 2, 4),
00864   /* 0111 */ V(2, 1, 4),
00865   /* 1000 */ PTR(78, 1),
00866   /* 1001 */ V(0, 0, 4),
00867   /* 1010 */ V(1, 1, 3),
00868   /* 1011 */ V(1, 1, 3),
00869   /* 1100 */ V(0, 1, 3),
00870   /* 1101 */ V(0, 1, 3),
00871   /* 1110 */ V(1, 0, 3),
00872   /* 1111 */ V(1, 0, 3),
00873 
00874   /* 0000 ... */
00875   /* 0000 */ PTR(80, 2),    /* 16 */
00876   /* 0001 */ PTR(84, 1),
00877   /* 0010 */ PTR(86, 1),
00878   /* 0011 */ PTR(88, 1),
00879   /* 0100 */ V(5, 6, 4),
00880   /* 0101 */ V(3, 7, 4),
00881   /* 0110 */ PTR(90, 1),
00882   /* 0111 */ V(2, 7, 4),
00883   /* 1000 */ V(7, 2, 4),
00884   /* 1001 */ V(4, 6, 4),
00885   /* 1010 */ V(6, 4, 4),
00886   /* 1011 */ V(1, 7, 4),
00887   /* 1100 */ V(7, 1, 4),
00888   /* 1101 */ PTR(92, 1),
00889   /* 1110 */ V(3, 6, 4),
00890   /* 1111 */ V(6, 3, 4),
00891 
00892   /* 0001 ... */
00893   /* 0000 */ V(4, 5, 4),    /* 32 */
00894   /* 0001 */ V(5, 4, 4),
00895   /* 0010 */ V(4, 4, 4),
00896   /* 0011 */ PTR(94, 1),
00897   /* 0100 */ V(2, 6, 3),
00898   /* 0101 */ V(2, 6, 3),
00899   /* 0110 */ V(6, 2, 3),
00900   /* 0111 */ V(6, 2, 3),
00901   /* 1000 */ V(6, 1, 3),
00902   /* 1001 */ V(6, 1, 3),
00903   /* 1010 */ V(1, 6, 4),
00904   /* 1011 */ V(6, 0, 4),
00905   /* 1100 */ V(3, 5, 4),
00906   /* 1101 */ V(5, 3, 4),
00907   /* 1110 */ V(2, 5, 4),
00908   /* 1111 */ V(5, 2, 4),
00909 
00910   /* 0010 ... */
00911   /* 0000 */ V(1, 5, 3),    /* 48 */
00912   /* 0001 */ V(1, 5, 3),
00913   /* 0010 */ V(5, 1, 3),
00914   /* 0011 */ V(5, 1, 3),
00915   /* 0100 */ V(3, 4, 3),
00916   /* 0101 */ V(3, 4, 3),
00917   /* 0110 */ V(4, 3, 3),
00918   /* 0111 */ V(4, 3, 3),
00919   /* 1000 */ V(5, 0, 4),
00920   /* 1001 */ V(0, 4, 4),
00921   /* 1010 */ V(2, 4, 3),
00922   /* 1011 */ V(2, 4, 3),
00923   /* 1100 */ V(4, 2, 3),
00924   /* 1101 */ V(4, 2, 3),
00925   /* 1110 */ V(1, 4, 3),
00926   /* 1111 */ V(1, 4, 3),
00927 
00928   /* 0011 ... */
00929   /* 00   */ V(3, 3, 2),    /* 64 */
00930   /* 01   */ V(4, 1, 2),
00931   /* 10   */ V(2, 3, 2),
00932   /* 11   */ V(3, 2, 2),
00933 
00934   /* 0100 ... */
00935   /* 000  */ V(4, 0, 3),    /* 68 */
00936   /* 001  */ V(0, 3, 3),
00937   /* 010  */ V(3, 0, 2),
00938   /* 011  */ V(3, 0, 2),
00939   /* 100  */ V(1, 3, 1),
00940   /* 101  */ V(1, 3, 1),
00941   /* 110  */ V(1, 3, 1),
00942   /* 111  */ V(1, 3, 1),
00943 
00944   /* 0101 ... */
00945   /* 0    */ V(3, 1, 1),    /* 76 */
00946   /* 1    */ V(2, 2, 1),
00947 
00948   /* 1000 ... */
00949   /* 0    */ V(0, 2, 1),    /* 78 */
00950   /* 1    */ V(2, 0, 1),
00951 
00952   /* 0000 0000 ... */
00953   /* 00   */ V(7, 7, 2),    /* 80 */
00954   /* 01   */ V(6, 7, 2),
00955   /* 10   */ V(7, 6, 1),
00956   /* 11   */ V(7, 6, 1),
00957 
00958   /* 0000 0001 ... */
00959   /* 0    */ V(5, 7, 1),    /* 84 */
00960   /* 1    */ V(7, 5, 1),
00961 
00962   /* 0000 0010 ... */
00963   /* 0    */ V(6, 6, 1),    /* 86 */
00964   /* 1    */ V(4, 7, 1),
00965 
00966   /* 0000 0011 ... */
00967   /* 0    */ V(7, 4, 1),    /* 88 */
00968   /* 1    */ V(6, 5, 1),
00969 
00970   /* 0000 0110 ... */
00971   /* 0    */ V(7, 3, 1),    /* 90 */
00972   /* 1    */ V(5, 5, 1),
00973 
00974   /* 0000 1101 ... */
00975   /* 0    */ V(0, 7, 1),    /* 92 */
00976   /* 1    */ V(7, 0, 1),
00977 
00978   /* 0001 0011 ... */
00979   /* 0    */ V(0, 6, 1),    /* 94 */
00980   /* 1    */ V(0, 5, 1)
00981 };
00982 
00983 static
00984 union huffpair const hufftab13[] = {
00985   /* 0000 */ PTR(16, 4),
00986   /* 0001 */ PTR(32, 4),
00987   /* 0010 */ PTR(48, 4),
00988   /* 0011 */ PTR(64, 2),
00989   /* 0100 */ V(1, 1, 4),
00990   /* 0101 */ V(0, 1, 4),
00991   /* 0110 */ V(1, 0, 3),
00992   /* 0111 */ V(1, 0, 3),
00993   /* 1000 */ V(0, 0, 1),
00994   /* 1001 */ V(0, 0, 1),
00995   /* 1010 */ V(0, 0, 1),
00996   /* 1011 */ V(0, 0, 1),
00997   /* 1100 */ V(0, 0, 1),
00998   /* 1101 */ V(0, 0, 1),
00999   /* 1110 */ V(0, 0, 1),
01000   /* 1111 */ V(0, 0, 1),
01001 
01002   /* 0000 ... */
01003   /* 0000 */ PTR(68, 4),    /* 16 */
01004   /* 0001 */ PTR(84, 4),
01005   /* 0010 */ PTR(100, 4),
01006   /* 0011 */ PTR(116, 4),
01007   /* 0100 */ PTR(132, 4),
01008   /* 0101 */ PTR(148, 4),
01009   /* 0110 */ PTR(164, 3),
01010   /* 0111 */ PTR(172, 3),
01011   /* 1000 */ PTR(180, 3),
01012   /* 1001 */ PTR(188, 3),
01013   /* 1010 */ PTR(196, 3),
01014   /* 1011 */ PTR(204, 3),
01015   /* 1100 */ PTR(212, 1),
01016   /* 1101 */ PTR(214, 2),
01017   /* 1110 */ PTR(218, 3),
01018   /* 1111 */ PTR(226, 1),
01019 
01020   /* 0001 ... */
01021   /* 0000 */ PTR(228, 2),   /* 32 */
01022   /* 0001 */ PTR(232, 2),
01023   /* 0010 */ PTR(236, 2),
01024   /* 0011 */ PTR(240, 2),
01025   /* 0100 */ V(8, 1, 4),
01026   /* 0101 */ PTR(244, 1),
01027   /* 0110 */ PTR(246, 1),
01028   /* 0111 */ PTR(248, 1),
01029   /* 1000 */ PTR(250, 2),
01030   /* 1001 */ PTR(254, 1),
01031   /* 1010 */ V(1, 5, 4),
01032   /* 1011 */ V(5, 1, 4),
01033   /* 1100 */ PTR(256, 1),
01034   /* 1101 */ PTR(258, 1),
01035   /* 1110 */ PTR(260, 1),
01036   /* 1111 */ V(1, 4, 4),
01037 
01038   /* 0010 ... */
01039   /* 0000 */ V(4, 1, 3),    /* 48 */
01040   /* 0001 */ V(4, 1, 3),
01041   /* 0010 */ V(0, 4, 4),
01042   /* 0011 */ V(4, 0, 4),
01043   /* 0100 */ V(2, 3, 4),
01044   /* 0101 */ V(3, 2, 4),
01045   /* 0110 */ V(1, 3, 3),
01046   /* 0111 */ V(1, 3, 3),
01047   /* 1000 */ V(3, 1, 3),
01048   /* 1001 */ V(3, 1, 3),
01049   /* 1010 */ V(0, 3, 3),
01050   /* 1011 */ V(0, 3, 3),
01051   /* 1100 */ V(3, 0, 3),
01052   /* 1101 */ V(3, 0, 3),
01053   /* 1110 */ V(2, 2, 3),
01054   /* 1111 */ V(2, 2, 3),
01055 
01056   /* 0011 ... */
01057   /* 00   */ V(1, 2, 2),    /* 64 */
01058   /* 01   */ V(2, 1, 2),
01059   /* 10   */ V(0, 2, 2),
01060   /* 11   */ V(2, 0, 2),
01061 
01062   /* 0000 0000 ... */
01063   /* 0000 */ PTR(262, 4),   /* 68 */
01064   /* 0001 */ PTR(278, 4),
01065   /* 0010 */ PTR(294, 4),
01066   /* 0011 */ PTR(310, 3),
01067   /* 0100 */ PTR(318, 2),
01068   /* 0101 */ PTR(322, 2),
01069   /* 0110 */ PTR(326, 3),
01070   /* 0111 */ PTR(334, 2),
01071   /* 1000 */ PTR(338, 1),
01072   /* 1001 */ PTR(340, 2),
01073   /* 1010 */ PTR(344, 2),
01074   /* 1011 */ PTR(348, 2),
01075   /* 1100 */ PTR(352, 2),
01076   /* 1101 */ PTR(356, 2),
01077   /* 1110 */ V(1, 15, 4),
01078   /* 1111 */ V(15, 1, 4),
01079 
01080   /* 0000 0001 ... */
01081   /* 0000 */ V(15, 0, 4),   /* 84 */
01082   /* 0001 */ PTR(360, 1),
01083   /* 0010 */ PTR(362, 1),
01084   /* 0011 */ PTR(364, 1),
01085   /* 0100 */ V(14, 2, 4),
01086   /* 0101 */ PTR(366, 1),
01087   /* 0110 */ V(1, 14, 4),
01088   /* 0111 */ V(14, 1, 4),
01089   /* 1000 */ PTR(368, 1),
01090   /* 1001 */ PTR(370, 1),
01091   /* 1010 */ PTR(372, 1),
01092   /* 1011 */ PTR(374, 1),
01093   /* 1100 */ PTR(376, 1),
01094   /* 1101 */ PTR(378, 1),
01095   /* 1110 */ V(12, 6, 4),
01096   /* 1111 */ V(3, 13, 4),
01097 
01098   /* 0000 0010 ... */
01099   /* 0000 */ PTR(380, 1),   /* 100 */
01100   /* 0001 */ V(2, 13, 4),
01101   /* 0010 */ V(13, 2, 4),
01102   /* 0011 */ V(1, 13, 4),
01103   /* 0100 */ V(11, 7, 4),
01104   /* 0101 */ PTR(382, 1),
01105   /* 0110 */ PTR(384, 1),
01106   /* 0111 */ V(12, 3, 4),
01107   /* 1000 */ PTR(386, 1),
01108   /* 1001 */ V(4, 11, 4),
01109   /* 1010 */ V(13, 1, 3),
01110   /* 1011 */ V(13, 1, 3),
01111   /* 1100 */ V(0, 13, 4),
01112   /* 1101 */ V(13, 0, 4),
01113   /* 1110 */ V(8, 10, 4),
01114   /* 1111 */ V(10, 8, 4),
01115 
01116   /* 0000 0011 ... */
01117   /* 0000 */ V(4, 12, 4),   /* 116 */
01118   /* 0001 */ V(12, 4, 4),
01119   /* 0010 */ V(6, 11, 4),
01120   /* 0011 */ V(11, 6, 4),
01121   /* 0100 */ V(3, 12, 3),
01122   /* 0101 */ V(3, 12, 3),
01123   /* 0110 */ V(2, 12, 3),
01124   /* 0111 */ V(2, 12, 3),
01125   /* 1000 */ V(12, 2, 3),
01126   /* 1001 */ V(12, 2, 3),
01127   /* 1010 */ V(5, 11, 3),
01128   /* 1011 */ V(5, 11, 3),
01129   /* 1100 */ V(11, 5, 4),
01130   /* 1101 */ V(8, 9, 4),
01131   /* 1110 */ V(1, 12, 3),
01132   /* 1111 */ V(1, 12, 3),
01133 
01134   /* 0000 0100 ... */
01135   /* 0000 */ V(12, 1, 3),   /* 132 */
01136   /* 0001 */ V(12, 1, 3),
01137   /* 0010 */ V(9, 8, 4),
01138   /* 0011 */ V(0, 12, 4),
01139   /* 0100 */ V(12, 0, 3),
01140   /* 0101 */ V(12, 0, 3),
01141   /* 0110 */ V(11, 4, 4),
01142   /* 0111 */ V(6, 10, 4),
01143   /* 1000 */ V(10, 6, 4),
01144   /* 1001 */ V(7, 9, 4),
01145   /* 1010 */ V(3, 11, 3),
01146   /* 1011 */ V(3, 11, 3),
01147   /* 1100 */ V(11, 3, 3),
01148   /* 1101 */ V(11, 3, 3),
01149   /* 1110 */ V(8, 8, 4),
01150   /* 1111 */ V(5, 10, 4),
01151 
01152   /* 0000 0101 ... */
01153   /* 0000 */ V(2, 11, 3),   /* 148 */
01154   /* 0001 */ V(2, 11, 3),
01155   /* 0010 */ V(10, 5, 4),
01156   /* 0011 */ V(6, 9, 4),
01157   /* 0100 */ V(10, 4, 3),
01158   /* 0101 */ V(10, 4, 3),
01159   /* 0110 */ V(7, 8, 4),
01160   /* 0111 */ V(8, 7, 4),
01161   /* 1000 */ V(9, 4, 3),
01162   /* 1001 */ V(9, 4, 3),
01163   /* 1010 */ V(7, 7, 4),
01164   /* 1011 */ V(7, 6, 4),
01165   /* 1100 */ V(11, 2, 2),
01166   /* 1101 */ V(11, 2, 2),
01167   /* 1110 */ V(11, 2, 2),
01168   /* 1111 */ V(11, 2, 2),
01169 
01170   /* 0000 0110 ... */
01171   /* 000  */ V(1, 11, 2),   /* 164 */
01172   /* 001  */ V(1, 11, 2),
01173   /* 010  */ V(11, 1, 2),
01174   /* 011  */ V(11, 1, 2),
01175   /* 100  */ V(0, 11, 3),
01176   /* 101  */ V(11, 0, 3),
01177   /* 110  */ V(9, 6, 3),
01178   /* 111  */ V(4, 10, 3),
01179 
01180   /* 0000 0111 ... */
01181   /* 000  */ V(3, 10, 3),   /* 172 */
01182   /* 001  */ V(10, 3, 3),
01183   /* 010  */ V(5, 9, 3),
01184   /* 011  */ V(9, 5, 3),
01185   /* 100  */ V(2, 10, 2),
01186   /* 101  */ V(2, 10, 2),
01187   /* 110  */ V(10, 2, 2),
01188   /* 111  */ V(10, 2, 2),
01189 
01190   /* 0000 1000 ... */
01191   /* 000  */ V(1, 10, 2),   /* 180 */
01192   /* 001  */ V(1, 10, 2),
01193   /* 010  */ V(10, 1, 2),
01194   /* 011  */ V(10, 1, 2),
01195   /* 100  */ V(0, 10, 3),
01196   /* 101  */ V(6, 8, 3),
01197   /* 110  */ V(10, 0, 2),
01198   /* 111  */ V(10, 0, 2),
01199 
01200   /* 0000 1001 ... */
01201   /* 000  */ V(8, 6, 3),    /* 188 */
01202   /* 001  */ V(4, 9, 3),
01203   /* 010  */ V(9, 3, 2),
01204   /* 011  */ V(9, 3, 2),
01205   /* 100  */ V(3, 9, 3),
01206   /* 101  */ V(5, 8, 3),
01207   /* 110  */ V(8, 5, 3),
01208   /* 111  */ V(6, 7, 3),
01209 
01210   /* 0000 1010 ... */
01211   /* 000  */ V(2, 9, 2),    /* 196 */
01212   /* 001  */ V(2, 9, 2),
01213   /* 010  */ V(9, 2, 2),
01214   /* 011  */ V(9, 2, 2),
01215   /* 100  */ V(5, 7, 3),
01216   /* 101  */ V(7, 5, 3),
01217   /* 110  */ V(3, 8, 2),
01218   /* 111  */ V(3, 8, 2),
01219 
01220   /* 0000 1011 ... */
01221   /* 000  */ V(8, 3, 2),    /* 204 */
01222   /* 001  */ V(8, 3, 2),
01223   /* 010  */ V(6, 6, 3),
01224   /* 011  */ V(4, 7, 3),
01225   /* 100  */ V(7, 4, 3),
01226   /* 101  */ V(5, 6, 3),
01227   /* 110  */ V(6, 5, 3),
01228   /* 111  */ V(7, 3, 3),
01229 
01230   /* 0000 1100 ... */
01231   /* 0    */ V(1, 9, 1),    /* 212 */
01232   /* 1    */ V(9, 1, 1),
01233 
01234   /* 0000 1101 ... */
01235   /* 00   */ V(0, 9, 2),    /* 214 */
01236   /* 01   */ V(9, 0, 2),
01237   /* 10   */ V(4, 8, 2),
01238   /* 11   */ V(8, 4, 2),
01239 
01240   /* 0000 1110 ... */
01241   /* 000  */ V(7, 2, 2),    /* 218 */
01242   /* 001  */ V(7, 2, 2),
01243   /* 010  */ V(4, 6, 3),
01244   /* 011  */ V(6, 4, 3),
01245   /* 100  */ V(2, 8, 1),
01246   /* 101  */ V(2, 8, 1),
01247   /* 110  */ V(2, 8, 1),
01248   /* 111  */ V(2, 8, 1),
01249 
01250   /* 0000 1111 ... */
01251   /* 0    */ V(8, 2, 1),    /* 226 */
01252   /* 1    */ V(1, 8, 1),
01253 
01254   /* 0001 0000 ... */
01255   /* 00   */ V(3, 7, 2),    /* 228 */
01256   /* 01   */ V(2, 7, 2),
01257   /* 10   */ V(1, 7, 1),
01258   /* 11   */ V(1, 7, 1),
01259 
01260   /* 0001 0001 ... */
01261   /* 00   */ V(7, 1, 1),    /* 232 */
01262   /* 01   */ V(7, 1, 1),
01263   /* 10   */ V(5, 5, 2),
01264   /* 11   */ V(0, 7, 2),
01265 
01266   /* 0001 0010 ... */
01267   /* 00   */ V(7, 0, 2),    /* 236 */
01268   /* 01   */ V(3, 6, 2),
01269   /* 10   */ V(6, 3, 2),
01270   /* 11   */ V(4, 5, 2),
01271 
01272   /* 0001 0011 ... */
01273   /* 00   */ V(5, 4, 2),    /* 240 */
01274   /* 01   */ V(2, 6, 2),
01275   /* 10   */ V(6, 2, 2),
01276   /* 11   */ V(3, 5, 2),
01277 
01278   /* 0001 0101 ... */
01279   /* 0    */ V(0, 8, 1),    /* 244 */
01280   /* 1    */ V(8, 0, 1),
01281 
01282   /* 0001 0110 ... */
01283   /* 0    */ V(1, 6, 1),    /* 246 */
01284   /* 1    */ V(6, 1, 1),
01285 
01286   /* 0001 0111 ... */
01287   /* 0    */ V(0, 6, 1),    /* 248 */
01288   /* 1    */ V(6, 0, 1),
01289 
01290   /* 0001 1000 ... */
01291   /* 00   */ V(5, 3, 2),    /* 250 */
01292   /* 01   */ V(4, 4, 2),
01293   /* 10   */ V(2, 5, 1),
01294   /* 11   */ V(2, 5, 1),
01295 
01296   /* 0001 1001 ... */
01297   /* 0    */ V(5, 2, 1),    /* 254 */
01298   /* 1    */ V(0, 5, 1),
01299 
01300   /* 0001 1100 ... */
01301   /* 0    */ V(3, 4, 1),    /* 256 */
01302   /* 1    */ V(4, 3, 1),
01303 
01304   /* 0001 1101 ... */
01305   /* 0    */ V(5, 0, 1),    /* 258 */
01306   /* 1    */ V(2, 4, 1),
01307 
01308   /* 0001 1110 ... */
01309   /* 0    */ V(4, 2, 1),    /* 260 */
01310   /* 1    */ V(3, 3, 1),
01311 
01312   /* 0000 0000 0000 ... */
01313   /* 0000 */ PTR(388, 3),   /* 262 */
01314   /* 0001 */ V(15, 15, 4),
01315   /* 0010 */ V(14, 15, 4),
01316   /* 0011 */ V(13, 15, 4),
01317   /* 0100 */ V(14, 14, 4),
01318   /* 0101 */ V(12, 15, 4),
01319   /* 0110 */ V(13, 14, 4),
01320   /* 0111 */ V(11, 15, 4),
01321   /* 1000 */ V(15, 11, 4),
01322   /* 1001 */ V(12, 14, 4),
01323   /* 1010 */ V(13, 12, 4),
01324   /* 1011 */ PTR(396, 1),
01325   /* 1100 */ V(14, 12, 3),
01326   /* 1101 */ V(14, 12, 3),
01327   /* 1110 */ V(13, 13, 3),
01328   /* 1111 */ V(13, 13, 3),
01329 
01330   /* 0000 0000 0001 ... */
01331   /* 0000 */ V(15, 10, 4),  /* 278 */
01332   /* 0001 */ V(12, 13, 4),
01333   /* 0010 */ V(11, 14, 3),
01334   /* 0011 */ V(11, 14, 3),
01335   /* 0100 */ V(14, 11, 3),
01336   /* 0101 */ V(14, 11, 3),
01337   /* 0110 */ V(9, 15, 3),
01338   /* 0111 */ V(9, 15, 3),
01339   /* 1000 */ V(15, 9, 3),
01340   /* 1001 */ V(15, 9, 3),
01341   /* 1010 */ V(14, 10, 3),
01342   /* 1011 */ V(14, 10, 3),
01343   /* 1100 */ V(11, 13, 3),
01344   /* 1101 */ V(11, 13, 3),
01345   /* 1110 */ V(13, 11, 3),
01346   /* 1111 */ V(13, 11, 3),
01347 
01348   /* 0000 0000 0010 ... */
01349   /* 0000 */ V(8, 15, 3),   /* 294 */
01350   /* 0001 */ V(8, 15, 3),
01351   /* 0010 */ V(15, 8, 3),
01352   /* 0011 */ V(15, 8, 3),
01353   /* 0100 */ V(12, 12, 3),
01354   /* 0101 */ V(12, 12, 3),
01355   /* 0110 */ V(10, 14, 4),
01356   /* 0111 */ V(9, 14, 4),
01357   /* 1000 */ V(8, 14, 3),
01358   /* 1001 */ V(8, 14, 3),
01359   /* 1010 */ V(7, 15, 4),
01360   /* 1011 */ V(7, 14, 4),
01361   /* 1100 */ V(15, 7, 2),
01362   /* 1101 */ V(15, 7, 2),
01363   /* 1110 */ V(15, 7, 2),
01364   /* 1111 */ V(15, 7, 2),
01365 
01366   /* 0000 0000 0011 ... */
01367   /* 000  */ V(13, 10, 2),  /* 310 */
01368   /* 001  */ V(13, 10, 2),
01369   /* 010  */ V(10, 13, 3),
01370   /* 011  */ V(11, 12, 3),
01371   /* 100  */ V(12, 11, 3),
01372   /* 101  */ V(15, 6, 3),
01373   /* 110  */ V(6, 15, 2),
01374   /* 111  */ V(6, 15, 2),
01375 
01376   /* 0000 0000 0100 ... */
01377   /* 00   */ V(14, 8, 2),   /* 318 */
01378   /* 01   */ V(5, 15, 2),
01379   /* 10   */ V(9, 13, 2),
01380   /* 11   */ V(13, 9, 2),
01381 
01382   /* 0000 0000 0101 ... */
01383   /* 00   */ V(15, 5, 2),   /* 322 */
01384   /* 01   */ V(14, 7, 2),
01385   /* 10   */ V(10, 12, 2),
01386   /* 11   */ V(11, 11, 2),
01387 
01388   /* 0000 0000 0110 ... */
01389   /* 000  */ V(4, 15, 2),   /* 326 */
01390   /* 001  */ V(4, 15, 2),
01391   /* 010  */ V(15, 4, 2),
01392   /* 011  */ V(15, 4, 2),
01393   /* 100  */ V(12, 10, 3),
01394   /* 101  */ V(14, 6, 3),
01395   /* 110  */ V(15, 3, 2),
01396   /* 111  */ V(15, 3, 2),
01397 
01398   /* 0000 0000 0111 ... */
01399   /* 00   */ V(3, 15, 1),   /* 334 */
01400   /* 01   */ V(3, 15, 1),
01401   /* 10   */ V(8, 13, 2),
01402   /* 11   */ V(13, 8, 2),
01403 
01404   /* 0000 0000 1000 ... */
01405   /* 0    */ V(2, 15, 1),   /* 338 */
01406   /* 1    */ V(15, 2, 1),
01407 
01408   /* 0000 0000 1001 ... */
01409   /* 00   */ V(6, 14, 2),   /* 340 */
01410   /* 01   */ V(9, 12, 2),
01411   /* 10   */ V(0, 15, 1),
01412   /* 11   */ V(0, 15, 1),
01413 
01414   /* 0000 0000 1010 ... */
01415   /* 00   */ V(12, 9, 2),   /* 344 */
01416   /* 01   */ V(5, 14, 2),
01417   /* 10   */ V(10, 11, 1),
01418   /* 11   */ V(10, 11, 1),
01419 
01420   /* 0000 0000 1011 ... */
01421   /* 00   */ V(7, 13, 2),   /* 348 */
01422   /* 01   */ V(13, 7, 2),
01423   /* 10   */ V(4, 14, 1),
01424   /* 11   */ V(4, 14, 1),
01425 
01426   /* 0000 0000 1100 ... */
01427   /* 00   */ V(12, 8, 2),   /* 352 */
01428   /* 01   */ V(13, 6, 2),
01429   /* 10   */ V(3, 14, 1),
01430   /* 11   */ V(3, 14, 1),
01431 
01432   /* 0000 0000 1101 ... */
01433   /* 00   */ V(11, 9, 1),   /* 356 */
01434   /* 01   */ V(11, 9, 1),
01435   /* 10   */ V(9, 11, 2),
01436   /* 11   */ V(10, 10, 2),
01437 
01438   /* 0000 0001 0001 ... */
01439   /* 0    */ V(11, 10, 1),  /* 360 */
01440   /* 1    */ V(14, 5, 1),
01441 
01442   /* 0000 0001 0010 ... */
01443   /* 0    */ V(14, 4, 1),   /* 362 */
01444   /* 1    */ V(8, 12, 1),
01445 
01446   /* 0000 0001 0011 ... */
01447   /* 0    */ V(6, 13, 1),   /* 364 */
01448   /* 1    */ V(14, 3, 1),
01449 
01450   /* 0000 0001 0101 ... */
01451   /* 0    */ V(2, 14, 1),   /* 366 */
01452   /* 1    */ V(0, 14, 1),
01453 
01454   /* 0000 0001 1000 ... */
01455   /* 0    */ V(14, 0, 1),   /* 368 */
01456   /* 1    */ V(5, 13, 1),
01457 
01458   /* 0000 0001 1001 ... */
01459   /* 0    */ V(13, 5, 1),   /* 370 */
01460   /* 1    */ V(7, 12, 1),
01461 
01462   /* 0000 0001 1010 ... */
01463   /* 0    */ V(12, 7, 1),   /* 372 */
01464   /* 1    */ V(4, 13, 1),
01465 
01466   /* 0000 0001 1011 ... */
01467   /* 0    */ V(8, 11, 1),   /* 374 */
01468   /* 1    */ V(11, 8, 1),
01469 
01470   /* 0000 0001 1100 ... */
01471   /* 0    */ V(13, 4, 1),   /* 376 */
01472   /* 1    */ V(9, 10, 1),
01473 
01474   /* 0000 0001 1101 ... */
01475   /* 0    */ V(10, 9, 1),   /* 378 */
01476   /* 1    */ V(6, 12, 1),
01477 
01478   /* 0000 0010 0000 ... */
01479   /* 0    */ V(13, 3, 1),   /* 380 */
01480   /* 1    */ V(7, 11, 1),
01481 
01482   /* 0000 0010 0101 ... */
01483   /* 0    */ V(5, 12, 1),   /* 382 */
01484   /* 1    */ V(12, 5, 1),
01485 
01486   /* 0000 0010 0110 ... */
01487   /* 0    */ V(9, 9, 1),    /* 384 */
01488   /* 1    */ V(7, 10, 1),
01489 
01490   /* 0000 0010 1000 ... */
01491   /* 0    */ V(10, 7, 1),   /* 386 */
01492   /* 1    */ V(9, 7, 1),
01493 
01494   /* 0000 0000 0000 0000 ... */
01495   /* 000  */ V(15, 14, 3),  /* 388 */
01496   /* 001  */ V(15, 12, 3),
01497   /* 010  */ V(15, 13, 2),
01498   /* 011  */ V(15, 13, 2),
01499   /* 100  */ V(14, 13, 1),
01500   /* 101  */ V(14, 13, 1),
01501   /* 110  */ V(14, 13, 1),
01502   /* 111  */ V(14, 13, 1),
01503 
01504   /* 0000 0000 0000 1011 ... */
01505   /* 0    */ V(10, 15, 1),  /* 396 */
01506   /* 1    */ V(14, 9, 1)
01507 };
01508 
01509 static
01510 union huffpair const hufftab15[] = {
01511   /* 0000 */ PTR(16, 4),
01512   /* 0001 */ PTR(32, 4),
01513   /* 0010 */ PTR(48, 4),
01514   /* 0011 */ PTR(64, 4),
01515   /* 0100 */ PTR(80, 4),
01516   /* 0101 */ PTR(96, 3),
01517   /* 0110 */ PTR(104, 3),
01518   /* 0111 */ PTR(112, 2),
01519   /* 1000 */ PTR(116, 1),
01520   /* 1001 */ PTR(118, 1),
01521   /* 1010 */ V(1, 1, 3),
01522   /* 1011 */ V(1, 1, 3),
01523   /* 1100 */ V(0, 1, 4),
01524   /* 1101 */ V(1, 0, 4),
01525   /* 1110 */ V(0, 0, 3),
01526   /* 1111 */ V(0, 0, 3),
01527 
01528   /* 0000 ... */
01529   /* 0000 */ PTR(120, 4),   /* 16 */
01530   /* 0001 */ PTR(136, 4),
01531   /* 0010 */ PTR(152, 4),
01532   /* 0011 */ PTR(168, 4),
01533   /* 0100 */ PTR(184, 4),
01534   /* 0101 */ PTR(200, 3),
01535   /* 0110 */ PTR(208, 3),
01536   /* 0111 */ PTR(216, 4),
01537   /* 1000 */ PTR(232, 3),
01538   /* 1001 */ PTR(240, 3),
01539   /* 1010 */ PTR(248, 3),
01540   /* 1011 */ PTR(256, 3),
01541   /* 1100 */ PTR(264, 2),
01542   /* 1101 */ PTR(268, 3),
01543   /* 1110 */ PTR(276, 3),
01544   /* 1111 */ PTR(284, 2),
01545 
01546   /* 0001 ... */
01547   /* 0000 */ PTR(288, 2),   /* 32 */
01548   /* 0001 */ PTR(292, 2),
01549   /* 0010 */ PTR(296, 2),
01550   /* 0011 */ PTR(300, 2),
01551   /* 0100 */ PTR(304, 2),
01552   /* 0101 */ PTR(308, 2),
01553   /* 0110 */ PTR(312, 2),
01554   /* 0111 */ PTR(316, 2),
01555   /* 1000 */ PTR(320, 1),
01556   /* 1001 */ PTR(322, 1),
01557   /* 1010 */ PTR(324, 1),
01558   /* 1011 */ PTR(326, 2),
01559   /* 1100 */ PTR(330, 1),
01560   /* 1101 */ PTR(332, 1),
01561   /* 1110 */ PTR(334, 2),
01562   /* 1111 */ PTR(338, 1),
01563 
01564   /* 0010 ... */
01565   /* 0000 */ PTR(340, 1),   /* 48 */
01566   /* 0001 */ PTR(342, 1),
01567   /* 0010 */ V(9, 1, 4),
01568   /* 0011 */ PTR(344, 1),
01569   /* 0100 */ PTR(346, 1),
01570   /* 0101 */ PTR(348, 1),
01571   /* 0110 */ PTR(350, 1),
01572   /* 0111 */ PTR(352, 1),
01573   /* 1000 */ V(2, 8, 4),
01574   /* 1001 */ V(8, 2, 4),
01575   /* 1010 */ V(1, 8, 4),
01576   /* 1011 */ V(8, 1, 4),
01577   /* 1100 */ PTR(354, 1),
01578   /* 1101 */ PTR(356, 1),
01579   /* 1110 */ PTR(358, 1),
01580   /* 1111 */ PTR(360, 1),
01581 
01582   /* 0011 ... */
01583   /* 0000 */ V(2, 7, 4),    /* 64 */
01584   /* 0001 */ V(7, 2, 4),
01585   /* 0010 */ V(6, 4, 4),
01586   /* 0011 */ V(1, 7, 4),
01587   /* 0100 */ V(5, 5, 4),
01588   /* 0101 */ V(7, 1, 4),
01589   /* 0110 */ PTR(362, 1),
01590   /* 0111 */ V(3, 6, 4),
01591   /* 1000 */ V(6, 3, 4),
01592   /* 1001 */ V(4, 5, 4),
01593   /* 1010 */ V(5, 4, 4),
01594   /* 1011 */ V(2, 6, 4),
01595   /* 1100 */ V(6, 2, 4),
01596   /* 1101 */ V(1, 6, 4),
01597   /* 1110 */ PTR(364, 1),
01598   /* 1111 */ V(3, 5, 4),
01599 
01600   /* 0100 ... */
01601   /* 0000 */ V(6, 1, 3),    /* 80 */
01602   /* 0001 */ V(6, 1, 3),
01603   /* 0010 */ V(5, 3, 4),
01604   /* 0011 */ V(4, 4, 4),
01605   /* 0100 */ V(2, 5, 3),
01606   /* 0101 */ V(2, 5, 3),
01607   /* 0110 */ V(5, 2, 3),
01608   /* 0111 */ V(5, 2, 3),
01609   /* 1000 */ V(1, 5, 3),
01610   /* 1001 */ V(1, 5, 3),
01611   /* 1010 */ V(5, 1, 3),
01612   /* 1011 */ V(5, 1, 3),
01613   /* 1100 */ V(0, 5, 4),
01614   /* 1101 */ V(5, 0, 4),
01615   /* 1110 */ V(3, 4, 3),
01616   /* 1111 */ V(3, 4, 3),
01617 
01618   /* 0101 ... */
01619   /* 000  */ V(4, 3, 3),    /* 96 */
01620   /* 001  */ V(2, 4, 3),
01621   /* 010  */ V(4, 2, 3),
01622   /* 011  */ V(3, 3, 3),
01623   /* 100  */ V(4, 1, 2),
01624   /* 101  */ V(4, 1, 2),
01625   /* 110  */ V(1, 4, 3),
01626   /* 111  */ V(0, 4, 3),
01627 
01628   /* 0110 ... */
01629   /* 000  */ V(2, 3, 2),    /* 104 */
01630   /* 001  */ V(2, 3, 2),
01631   /* 010  */ V(3, 2, 2),
01632   /* 011  */ V(3, 2, 2),
01633   /* 100  */ V(4, 0, 3),
01634   /* 101  */ V(0, 3, 3),
01635   /* 110  */ V(1, 3, 2),
01636   /* 111  */ V(1, 3, 2),
01637 
01638   /* 0111 ... */
01639   /* 00   */ V(3, 1, 2),    /* 112 */
01640   /* 01   */ V(3, 0, 2),
01641   /* 10   */ V(2, 2, 1),
01642   /* 11   */ V(2, 2, 1),
01643 
01644   /* 1000 ... */
01645   /* 0    */ V(1, 2, 1),    /* 116 */
01646   /* 1    */ V(2, 1, 1),
01647 
01648   /* 1001 ... */
01649   /* 0    */ V(0, 2, 1),    /* 118 */
01650   /* 1    */ V(2, 0, 1),
01651 
01652   /* 0000 0000 ... */
01653   /* 0000 */ PTR(366, 1),   /* 120 */
01654   /* 0001 */ PTR(368, 1),
01655   /* 0010 */ V(14, 14, 4),
01656   /* 0011 */ PTR(370, 1),
01657   /* 0100 */ PTR(372, 1),
01658   /* 0101 */ PTR(374, 1),
01659   /* 0110 */ V(15, 11, 4),
01660   /* 0111 */ PTR(376, 1),
01661   /* 1000 */ V(13, 13, 4),
01662   /* 1001 */ V(10, 15, 4),
01663   /* 1010 */ V(15, 10, 4),
01664   /* 1011 */ V(11, 14, 4),
01665   /* 1100 */ V(14, 11, 4),
01666   /* 1101 */ V(12, 13, 4),
01667   /* 1110 */ V(13, 12, 4),
01668   /* 1111 */ V(9, 15, 4),
01669 
01670   /* 0000 0001 ... */
01671   /* 0000 */ V(15, 9, 4),   /* 136 */
01672   /* 0001 */ V(14, 10, 4),
01673   /* 0010 */ V(11, 13, 4),
01674   /* 0011 */ V(13, 11, 4),
01675   /* 0100 */ V(8, 15, 4),
01676   /* 0101 */ V(15, 8, 4),
01677   /* 0110 */ V(12, 12, 4),
01678   /* 0111 */ V(9, 14, 4),
01679   /* 1000 */ V(14, 9, 4),
01680   /* 1001 */ V(7, 15, 4),
01681   /* 1010 */ V(15, 7, 4),
01682   /* 1011 */ V(10, 13, 4),
01683   /* 1100 */ V(13, 10, 4),
01684   /* 1101 */ V(11, 12, 4),
01685   /* 1110 */ V(6, 15, 4),
01686   /* 1111 */ PTR(378, 1),
01687 
01688   /* 0000 0010 ... */
01689   /* 0000 */ V(12, 11, 3),  /* 152 */
01690   /* 0001 */ V(12, 11, 3),
01691   /* 0010 */ V(15, 6, 3),
01692   /* 0011 */ V(15, 6, 3),
01693   /* 0100 */ V(8, 14, 4),
01694   /* 0101 */ V(14, 8, 4),
01695   /* 0110 */ V(5, 15, 4),
01696   /* 0111 */ V(9, 13, 4),
01697   /* 1000 */ V(15, 5, 3),
01698   /* 1001 */ V(15, 5, 3),
01699   /* 1010 */ V(7, 14, 3),
01700   /* 1011 */ V(7, 14, 3),
01701   /* 1100 */ V(14, 7, 3),
01702   /* 1101 */ V(14, 7, 3),
01703   /* 1110 */ V(10, 12, 3),
01704   /* 1111 */ V(10, 12, 3),
01705 
01706   /* 0000 0011 ... */
01707   /* 0000 */ V(12, 10, 3),  /* 168 */
01708   /* 0001 */ V(12, 10, 3),
01709   /* 0010 */ V(11, 11, 3),
01710   /* 0011 */ V(11, 11, 3),
01711   /* 0100 */ V(13, 9, 4),
01712   /* 0101 */ V(8, 13, 4),
01713   /* 0110 */ V(4, 15, 3),
01714   /* 0111 */ V(4, 15, 3),
01715   /* 1000 */ V(15, 4, 3),
01716   /* 1001 */ V(15, 4, 3),
01717   /* 1010 */ V(3, 15, 3),
01718   /* 1011 */ V(3, 15, 3),
01719   /* 1100 */ V(15, 3, 3),
01720   /* 1101 */ V(15, 3, 3),
01721   /* 1110 */ V(13, 8, 3),
01722   /* 1111 */ V(13, 8, 3),
01723 
01724   /* 0000 0100 ... */
01725   /* 0000 */ V(14, 6, 3),   /* 184 */
01726   /* 0001 */ V(14, 6, 3),
01727   /* 0010 */ V(2, 15, 3),
01728   /* 0011 */ V(2, 15, 3),
01729   /* 0100 */ V(15, 2, 3),
01730   /* 0101 */ V(15, 2, 3),
01731   /* 0110 */ V(6, 14, 4),
01732   /* 0111 */ V(15, 0, 4),
01733   /* 1000 */ V(1, 15, 3),
01734   /* 1001 */ V(1, 15, 3),
01735   /* 1010 */ V(15, 1, 3),
01736   /* 1011 */ V(15, 1, 3),
01737   /* 1100 */ V(9, 12, 3),
01738   /* 1101 */ V(9, 12, 3),
01739   /* 1110 */ V(12, 9, 3),
01740   /* 1111 */ V(12, 9, 3),
01741 
01742   /* 0000 0101 ... */
01743   /* 000  */ V(5, 14, 3),   /* 200 */
01744   /* 001  */ V(10, 11, 3),
01745   /* 010  */ V(11, 10, 3),
01746   /* 011  */ V(14, 5, 3),
01747   /* 100  */ V(7, 13, 3),
01748   /* 101  */ V(13, 7, 3),
01749   /* 110  */ V(4, 14, 3),
01750   /* 111  */ V(14, 4, 3),
01751 
01752   /* 0000 0110 ... */
01753   /* 000  */ V(8, 12, 3),   /* 208 */
01754   /* 001  */ V(12, 8, 3),
01755   /* 010  */ V(3, 14, 3),
01756   /* 011  */ V(6, 13, 3),
01757   /* 100  */ V(13, 6, 3),
01758   /* 101  */ V(14, 3, 3),
01759   /* 110  */ V(9, 11, 3),
01760   /* 111  */ V(11, 9, 3),
01761 
01762   /* 0000 0111 ... */
01763   /* 0000 */ V(2, 14, 3),   /* 216 */
01764   /* 0001 */ V(2, 14, 3),
01765   /* 0010 */ V(10, 10, 3),
01766   /* 0011 */ V(10, 10, 3),
01767   /* 0100 */ V(14, 2, 3),
01768   /* 0101 */ V(14, 2, 3),
01769   /* 0110 */ V(1, 14, 3),
01770   /* 0111 */ V(1, 14, 3),
01771   /* 1000 */ V(14, 1, 3),
01772   /* 1001 */ V(14, 1, 3),
01773   /* 1010 */ V(0, 14, 4),
01774   /* 1011 */ V(14, 0, 4),
01775   /* 1100 */ V(5, 13, 3),
01776   /* 1101 */ V(5, 13, 3),
01777   /* 1110 */ V(13, 5, 3),
01778   /* 1111 */ V(13, 5, 3),
01779 
01780   /* 0000 1000 ... */
01781   /* 000  */ V(7, 12, 3),   /* 232 */
01782   /* 001  */ V(12, 7, 3),
01783   /* 010  */ V(4, 13, 3),
01784   /* 011  */ V(8, 11, 3),
01785   /* 100  */ V(13, 4, 2),
01786   /* 101  */ V(13, 4, 2),
01787   /* 110  */ V(11, 8, 3),
01788   /* 111  */ V(9, 10, 3),
01789 
01790   /* 0000 1001 ... */
01791   /* 000  */ V(10, 9, 3),   /* 240 */
01792   /* 001  */ V(6, 12, 3),
01793   /* 010  */ V(12, 6, 3),
01794   /* 011  */ V(3, 13, 3),
01795   /* 100  */ V(13, 3, 2),
01796   /* 101  */ V(13, 3, 2),
01797   /* 110  */ V(13, 2, 2),
01798   /* 111  */ V(13, 2, 2),
01799 
01800   /* 0000 1010 ... */
01801   /* 000  */ V(2, 13, 3),   /* 248 */
01802   /* 001  */ V(0, 13, 3),
01803   /* 010  */ V(1, 13, 2),
01804   /* 011  */ V(1, 13, 2),
01805   /* 100  */ V(7, 11, 2),
01806   /* 101  */ V(7, 11, 2),
01807   /* 110  */ V(11, 7, 2),
01808   /* 111  */ V(11, 7, 2),
01809 
01810   /* 0000 1011 ... */
01811   /* 000  */ V(13, 1, 2),   /* 256 */
01812   /* 001  */ V(13, 1, 2),
01813   /* 010  */ V(5, 12, 3),
01814   /* 011  */ V(13, 0, 3),
01815   /* 100  */ V(12, 5, 2),
01816   /* 101  */ V(12, 5, 2),
01817   /* 110  */ V(8, 10, 2),
01818   /* 111  */ V(8, 10, 2),
01819 
01820   /* 0000 1100 ... */
01821   /* 00   */ V(10, 8, 2),   /* 264 */
01822   /* 01   */ V(4, 12, 2),
01823   /* 10   */ V(12, 4, 2),
01824   /* 11   */ V(6, 11, 2),
01825 
01826   /* 0000 1101 ... */
01827   /* 000  */ V(11, 6, 2),   /* 268 */
01828   /* 001  */ V(11, 6, 2),
01829   /* 010  */ V(9, 9, 3),
01830   /* 011  */ V(0, 12, 3),
01831   /* 100  */ V(3, 12, 2),
01832   /* 101  */ V(3, 12, 2),
01833   /* 110  */ V(12, 3, 2),
01834   /* 111  */ V(12, 3, 2),
01835 
01836   /* 0000 1110 ... */
01837   /* 000  */ V(7, 10, 2),   /* 276 */
01838   /* 001  */ V(7, 10, 2),
01839   /* 010  */ V(10, 7, 2),
01840   /* 011  */ V(10, 7, 2),
01841   /* 100  */ V(10, 6, 2),
01842   /* 101  */ V(10, 6, 2),
01843   /* 110  */ V(12, 0, 3),
01844   /* 111  */ V(0, 11, 3),
01845 
01846   /* 0000 1111 ... */
01847   /* 00   */ V(12, 2, 1),   /* 284 */
01848   /* 01   */ V(12, 2, 1),
01849   /* 10   */ V(2, 12, 2),
01850   /* 11   */ V(5, 11, 2),
01851 
01852   /* 0001 0000 ... */
01853   /* 00   */ V(11, 5, 2),   /* 288 */
01854   /* 01   */ V(1, 12, 2),
01855   /* 10   */ V(8, 9, 2),
01856   /* 11   */ V(9, 8, 2),
01857 
01858   /* 0001 0001 ... */
01859   /* 00   */ V(12, 1, 2),   /* 292 */
01860   /* 01   */ V(4, 11, 2),
01861   /* 10   */ V(11, 4, 2),
01862   /* 11   */ V(6, 10, 2),
01863 
01864   /* 0001 0010 ... */
01865   /* 00   */ V(3, 11, 2),   /* 296 */
01866   /* 01   */ V(7, 9, 2),
01867   /* 10   */ V(11, 3, 1),
01868   /* 11   */ V(11, 3, 1),
01869 
01870   /* 0001 0011 ... */
01871   /* 00   */ V(9, 7, 2),    /* 300 */
01872   /* 01   */ V(8, 8, 2),
01873   /* 10   */ V(2, 11, 2),
01874   /* 11   */ V(5, 10, 2),
01875 
01876   /* 0001 0100 ... */
01877   /* 00   */ V(11, 2, 1),   /* 304 */
01878   /* 01   */ V(11, 2, 1),
01879   /* 10   */ V(10, 5, 2),
01880   /* 11   */ V(1, 11, 2),
01881 
01882   /* 0001 0101 ... */
01883   /* 00   */ V(11, 1, 1),   /* 308 */
01884   /* 01   */ V(11, 1, 1),
01885   /* 10   */ V(11, 0, 2),
01886   /* 11   */ V(6, 9, 2),
01887 
01888   /* 0001 0110 ... */
01889   /* 00   */ V(9, 6, 2),    /* 312 */
01890   /* 01   */ V(4, 10, 2),
01891   /* 10   */ V(10, 4, 2),
01892   /* 11   */ V(7, 8, 2),
01893 
01894   /* 0001 0111 ... */
01895   /* 00   */ V(8, 7, 2),    /* 316 */
01896   /* 01   */ V(3, 10, 2),
01897   /* 10   */ V(10, 3, 1),
01898   /* 11   */ V(10, 3, 1),
01899 
01900   /* 0001 1000 ... */
01901   /* 0    */ V(5, 9, 1),    /* 320 */
01902   /* 1    */ V(9, 5, 1),
01903 
01904   /* 0001 1001 ... */
01905   /* 0    */ V(2, 10, 1),   /* 322 */
01906   /* 1    */ V(10, 2, 1),
01907 
01908   /* 0001 1010 ... */
01909   /* 0    */ V(1, 10, 1),   /* 324 */
01910   /* 1    */ V(10, 1, 1),
01911 
01912   /* 0001 1011 ... */
01913   /* 00   */ V(0, 10, 2),   /* 326 */
01914   /* 01   */ V(10, 0, 2),
01915   /* 10   */ V(6, 8, 1),
01916   /* 11   */ V(6, 8, 1),
01917 
01918   /* 0001 1100 ... */
01919   /* 0    */ V(8, 6, 1),    /* 330 */
01920   /* 1    */ V(4, 9, 1),
01921 
01922   /* 0001 1101 ... */
01923   /* 0    */ V(9, 4, 1),    /* 332 */
01924   /* 1    */ V(3, 9, 1),
01925 
01926   /* 0001 1110 ... */
01927   /* 00   */ V(9, 3, 1),    /* 334 */
01928   /* 01   */ V(9, 3, 1),
01929   /* 10   */ V(7, 7, 2),
01930   /* 11   */ V(0, 9, 2),
01931 
01932   /* 0001 1111 ... */
01933   /* 0    */ V(5, 8, 1),    /* 338 */
01934   /* 1    */ V(8, 5, 1),
01935 
01936   /* 0010 0000 ... */
01937   /* 0    */ V(2, 9, 1),    /* 340 */
01938   /* 1    */ V(6, 7, 1),
01939 
01940   /* 0010 0001 ... */
01941   /* 0    */ V(7, 6, 1),    /* 342 */
01942   /* 1    */ V(9, 2, 1),
01943 
01944   /* 0010 0011 ... */
01945   /* 0    */ V(1, 9, 1),    /* 344 */
01946   /* 1    */ V(9, 0, 1),
01947 
01948   /* 0010 0100 ... */
01949   /* 0    */ V(4, 8, 1),    /* 346 */
01950   /* 1    */ V(8, 4, 1),
01951 
01952   /* 0010 0101 ... */
01953   /* 0    */ V(5, 7, 1),    /* 348 */
01954   /* 1    */ V(7, 5, 1),
01955 
01956   /* 0010 0110 ... */
01957   /* 0    */ V(3, 8, 1),    /* 350 */
01958   /* 1    */ V(8, 3, 1),
01959 
01960   /* 0010 0111 ... */
01961   /* 0    */ V(6, 6, 1),    /* 352 */
01962   /* 1    */ V(4, 7, 1),
01963 
01964   /* 0010 1100 ... */
01965   /* 0    */ V(7, 4, 1),    /* 354 */
01966   /* 1    */ V(0, 8, 1),
01967 
01968   /* 0010 1101 ... */
01969   /* 0    */ V(8, 0, 1),    /* 356 */
01970   /* 1    */ V(5, 6, 1),
01971 
01972   /* 0010 1110 ... */
01973   /* 0    */ V(6, 5, 1),    /* 358 */
01974   /* 1    */ V(3, 7, 1),
01975 
01976   /* 0010 1111 ... */
01977   /* 0    */ V(7, 3, 1),    /* 360 */
01978   /* 1    */ V(4, 6, 1),
01979 
01980   /* 0011 0110 ... */
01981   /* 0    */ V(0, 7, 1),    /* 362 */
01982   /* 1    */ V(7, 0, 1),
01983 
01984   /* 0011 1110 ... */
01985   /* 0    */ V(0, 6, 1),    /* 364 */
01986   /* 1    */ V(6, 0, 1),
01987 
01988   /* 0000 0000 0000 ... */
01989   /* 0    */ V(15, 15, 1),  /* 366 */
01990   /* 1    */ V(14, 15, 1),
01991 
01992   /* 0000 0000 0001 ... */
01993   /* 0    */ V(15, 14, 1),  /* 368 */
01994   /* 1    */ V(13, 15, 1),
01995 
01996   /* 0000 0000 0011 ... */
01997   /* 0    */ V(15, 13, 1),  /* 370 */
01998   /* 1    */ V(12, 15, 1),
01999 
02000   /* 0000 0000 0100 ... */
02001   /* 0    */ V(15, 12, 1),  /* 372 */
02002   /* 1    */ V(13, 14, 1),
02003 
02004   /* 0000 0000 0101 ... */
02005   /* 0    */ V(14, 13, 1),  /* 374 */
02006   /* 1    */ V(11, 15, 1),
02007 
02008   /* 0000 0000 0111 ... */
02009   /* 0    */ V(12, 14, 1),  /* 376 */
02010   /* 1    */ V(14, 12, 1),
02011 
02012   /* 0000 0001 1111 ... */
02013   /* 0    */ V(10, 14, 1),  /* 378 */
02014   /* 1    */ V(0, 15, 1)
02015 };
02016 
02017 static
02018 union huffpair const hufftab16[] = {
02019   /* 0000 */ PTR(16, 4),
02020   /* 0001 */ PTR(32, 4),
02021   /* 0010 */ PTR(48, 4),
02022   /* 0011 */ PTR(64, 2),
02023   /* 0100 */ V(1, 1, 4),
02024   /* 0101 */ V(0, 1, 4),
02025   /* 0110 */ V(1, 0, 3),
02026   /* 0111 */ V(1, 0, 3),
02027   /* 1000 */ V(0, 0, 1),
02028   /* 1001 */ V(0, 0, 1),
02029   /* 1010 */ V(0, 0, 1),
02030   /* 1011 */ V(0, 0, 1),
02031   /* 1100 */ V(0, 0, 1),
02032   /* 1101 */ V(0, 0, 1),
02033   /* 1110 */ V(0, 0, 1),
02034   /* 1111 */ V(0, 0, 1),
02035 
02036   /* 0000 ... */
02037   /* 0000 */ PTR(68, 3),    /* 16 */
02038   /* 0001 */ PTR(76, 3),
02039   /* 0010 */ PTR(84, 2),
02040   /* 0011 */ V(15, 15, 4),
02041   /* 0100 */ PTR(88, 2),
02042   /* 0101 */ PTR(92, 1),
02043   /* 0110 */ PTR(94, 4),
02044   /* 0111 */ V(15, 2, 4),
02045   /* 1000 */ PTR(110, 1),
02046   /* 1001 */ V(1, 15, 4),
02047   /* 1010 */ V(15, 1, 4),
02048   /* 1011 */ PTR(112, 4),
02049   /* 1100 */ PTR(128, 4),
02050   /* 1101 */ PTR(144, 4),
02051   /* 1110 */ PTR(160, 4),
02052   /* 1111 */ PTR(176, 4),
02053 
02054   /* 0001 ... */
02055   /* 0000 */ PTR(192, 4),   /* 32 */
02056   /* 0001 */ PTR(208, 3),
02057   /* 0010 */ PTR(216, 3),
02058   /* 0011 */ PTR(224, 3),
02059   /* 0100 */ PTR(232, 3),
02060   /* 0101 */ PTR(240, 3),
02061   /* 0110 */ PTR(248, 3),
02062   /* 0111 */ PTR(256, 3),
02063   /* 1000 */ PTR(264, 2),
02064   /* 1001 */ PTR(268, 2),
02065   /* 1010 */ PTR(272, 1),
02066   /* 1011 */ PTR(274, 2),
02067   /* 1100 */ PTR(278, 2),
02068   /* 1101 */ PTR(282, 1),
02069   /* 1110 */ V(5, 1, 4),
02070   /* 1111 */ PTR(284, 1),
02071 
02072   /* 0010 ... */
02073   /* 0000 */ PTR(286, 1),   /* 48 */
02074   /* 0001 */ PTR(288, 1),
02075   /* 0010 */ PTR(290, 1),
02076   /* 0011 */ V(1, 4, 4),
02077   /* 0100 */ V(4, 1, 4),
02078   /* 0101 */ PTR(292, 1),
02079   /* 0110 */ V(2, 3, 4),
02080   /* 0111 */ V(3, 2, 4),
02081   /* 1000 */ V(1, 3, 3),
02082   /* 1001 */ V(1, 3, 3),
02083   /* 1010 */ V(3, 1, 3),
02084   /* 1011 */ V(3, 1, 3),
02085   /* 1100 */ V(0, 3, 4),
02086   /* 1101 */ V(3, 0, 4),
02087   /* 1110 */ V(2, 2, 3),
02088   /* 1111 */ V(2, 2, 3),
02089 
02090   /* 0011 ... */
02091   /* 00   */ V(1, 2, 2),    /* 64 */
02092   /* 01   */ V(2, 1, 2),
02093   /* 10   */ V(0, 2, 2),
02094   /* 11   */ V(2, 0, 2),
02095 
02096   /* 0000 0000 ... */
02097   /* 000  */ V(14, 15, 3),  /* 68 */
02098   /* 001  */ V(15, 14, 3),
02099   /* 010  */ V(13, 15, 3),
02100   /* 011  */ V(15, 13, 3),
02101   /* 100  */ V(12, 15, 3),
02102   /* 101  */ V(15, 12, 3),
02103   /* 110  */ V(11, 15, 3),
02104   /* 111  */ V(15, 11, 3),
02105 
02106   /* 0000 0001 ... */
02107   /* 000  */ V(10, 15, 2),  /* 76 */
02108   /* 001  */ V(10, 15, 2),
02109   /* 010  */ V(15, 10, 3),
02110   /* 011  */ V(9, 15, 3),
02111   /* 100  */ V(15, 9, 3),
02112   /* 101  */ V(15, 8, 3),
02113   /* 110  */ V(8, 15, 2),
02114   /* 111  */ V(8, 15, 2),
02115 
02116   /* 0000 0010 ... */
02117   /* 00   */ V(7, 15, 2),   /* 84 */
02118   /* 01   */ V(15, 7, 2),
02119   /* 10   */ V(6, 15, 2),
02120   /* 11   */ V(15, 6, 2),
02121 
02122   /* 0000 0100 ... */
02123   /* 00   */ V(5, 15, 2),   /* 88 */
02124   /* 01   */ V(15, 5, 2),
02125   /* 10   */ V(4, 15, 1),
02126   /* 11   */ V(4, 15, 1),
02127 
02128   /* 0000 0101 ... */
02129   /* 0    */ V(15, 4, 1),   /* 92 */
02130   /* 1    */ V(15, 3, 1),
02131 
02132   /* 0000 0110 ... */
02133   /* 0000 */ V(15, 0, 1),   /* 94 */
02134   /* 0001 */ V(15, 0, 1),
02135   /* 0010 */ V(15, 0, 1),
02136   /* 0011 */ V(15, 0, 1),
02137   /* 0100 */ V(15, 0, 1),
02138   /* 0101 */ V(15, 0, 1),
02139   /* 0110 */ V(15, 0, 1),
02140   /* 0111 */ V(15, 0, 1),
02141   /* 1000 */ V(3, 15, 2),
02142   /* 1001 */ V(3, 15, 2),
02143   /* 1010 */ V(3, 15, 2),
02144   /* 1011 */ V(3, 15, 2),
02145   /* 1100 */ PTR(294, 4),
02146   /* 1101 */ PTR(310, 3),
02147   /* 1110 */ PTR(318, 3),
02148   /* 1111 */ PTR(326, 3),
02149 
02150   /* 0000 1000 ... */
02151   /* 0    */ V(2, 15, 1),   /* 110 */
02152   /* 1    */ V(0, 15, 1),
02153 
02154   /* 0000 1011 ... */
02155   /* 0000 */ PTR(334, 2),   /* 112 */
02156   /* 0001 */ PTR(338, 2),
02157   /* 0010 */ PTR(342, 2),
02158   /* 0011 */ PTR(346, 1),
02159   /* 0100 */ PTR(348, 2),
02160   /* 0101 */ PTR(352, 2),
02161   /* 0110 */ PTR(356, 1),
02162   /* 0111 */ PTR(358, 2),
02163   /* 1000 */ PTR(362, 2),
02164   /* 1001 */ PTR(366, 2),
02165   /* 1010 */ PTR(370, 2),
02166   /* 1011 */ V(14, 3, 4),
02167   /* 1100 */ PTR(374, 1),
02168   /* 1101 */ PTR(376, 1),
02169   /* 1110 */ PTR(378, 1),
02170   /* 1111 */ PTR(380, 1),
02171 
02172   /* 0000 1100 ... */
02173   /* 0000 */ PTR(382, 1),   /* 128 */
02174   /* 0001 */ PTR(384, 1),
02175   /* 0010 */ PTR(386, 1),
02176   /* 0011 */ V(0, 13, 4),
02177   /* 0100 */ PTR(388, 1),
02178   /* 0101 */ PTR(390, 1),
02179   /* 0110 */ PTR(392, 1),
02180   /* 0111 */ V(3, 12, 4),
02181   /* 1000 */ PTR(394, 1),
02182   /* 1001 */ V(1, 12, 4),
02183   /* 1010 */ V(12, 0, 4),
02184   /* 1011 */ PTR(396, 1),
02185   /* 1100 */ V(14, 2, 3),
02186   /* 1101 */ V(14, 2, 3),
02187   /* 1110 */ V(2, 14, 4),
02188   /* 1111 */ V(1, 14, 4),
02189 
02190   /* 0000 1101 ... */
02191   /* 0000 */ V(13, 3, 4),   /* 144 */
02192   /* 0001 */ V(2, 13, 4),
02193   /* 0010 */ V(13, 2, 4),
02194   /* 0011 */ V(13, 1, 4),
02195   /* 0100 */ V(3, 11, 4),
02196   /* 0101 */ PTR(398, 1),
02197   /* 0110 */ V(1, 13, 3),
02198   /* 0111 */ V(1, 13, 3),
02199   /* 1000 */ V(12, 4, 4),
02200   /* 1001 */ V(6, 11, 4),
02201   /* 1010 */ V(12, 3, 4),
02202   /* 1011 */ V(10, 7, 4),
02203   /* 1100 */ V(2, 12, 3),
02204   /* 1101 */ V(2, 12, 3),
02205   /* 1110 */ V(12, 2, 4),
02206   /* 1111 */ V(11, 5, 4),
02207 
02208   /* 0000 1110 ... */
02209   /* 0000 */ V(12, 1, 4),   /* 160 */
02210   /* 0001 */ V(0, 12, 4),
02211   /* 0010 */ V(4, 11, 4),
02212   /* 0011 */ V(11, 4, 4),
02213   /* 0100 */ V(6, 10, 4),
02214   /* 0101 */ V(10, 6, 4),
02215   /* 0110 */ V(11, 3, 3),
02216   /* 0111 */ V(11, 3, 3),
02217   /* 1000 */ V(5, 10, 4),
02218   /* 1001 */ V(10, 5, 4),
02219   /* 1010 */ V(2, 11, 3),
02220   /* 1011 */ V(2, 11, 3),
02221   /* 1100 */ V(11, 2, 3),
02222   /* 1101 */ V(11, 2, 3),
02223   /* 1110 */ V(1, 11, 3),
02224   /* 1111 */ V(1, 11, 3),
02225 
02226   /* 0000 1111 ... */
02227   /* 0000 */ V(11, 1, 3),   /* 176 */
02228   /* 0001 */ V(11, 1, 3),
02229   /* 0010 */ V(0, 11, 4),
02230   /* 0011 */ V(11, 0, 4),
02231   /* 0100 */ V(6, 9, 4),
02232   /* 0101 */ V(9, 6, 4),
02233   /* 0110 */ V(4, 10, 4),
02234   /* 0111 */ V(10, 4, 4),
02235   /* 1000 */ V(7, 8, 4),
02236   /* 1001 */ V(8, 7, 4),
02237   /* 1010 */ V(10, 3, 3),
02238   /* 1011 */ V(10, 3, 3),
02239   /* 1100 */ V(3, 10, 4),
02240   /* 1101 */ V(5, 9, 4),
02241   /* 1110 */ V(2, 10, 3),
02242   /* 1111 */ V(2, 10, 3),
02243 
02244   /* 0001 0000 ... */
02245   /* 0000 */ V(9, 5, 4),    /* 192 */
02246   /* 0001 */ V(6, 8, 4),
02247   /* 0010 */ V(10, 1, 3),
02248   /* 0011 */ V(10, 1, 3),
02249   /* 0100 */ V(8, 6, 4),
02250   /* 0101 */ V(7, 7, 4),
02251   /* 0110 */ V(9, 4, 3),
02252   /* 0111 */ V(9, 4, 3),
02253   /* 1000 */ V(4, 9, 4),
02254   /* 1001 */ V(5, 7, 4),
02255   /* 1010 */ V(6, 7, 3),
02256   /* 1011 */ V(6, 7, 3),
02257   /* 1100 */ V(10, 2, 2),
02258   /* 1101 */ V(10, 2, 2),
02259   /* 1110 */ V(10, 2, 2),
02260   /* 1111 */ V(10, 2, 2),
02261 
02262   /* 0001 0001 ... */
02263   /* 000  */ V(1, 10, 2),   /* 208 */
02264   /* 001  */ V(1, 10, 2),
02265   /* 010  */ V(0, 10, 3),
02266   /* 011  */ V(10, 0, 3),
02267   /* 100  */ V(3, 9, 3),
02268   /* 101  */ V(9, 3, 3),
02269   /* 110  */ V(5, 8, 3),
02270   /* 111  */ V(8, 5, 3),
02271 
02272   /* 0001 0010 ... */
02273   /* 000  */ V(2, 9, 2),    /* 216 */
02274   /* 001  */ V(2, 9, 2),
02275   /* 010  */ V(9, 2, 2),
02276   /* 011  */ V(9, 2, 2),
02277   /* 100  */ V(7, 6, 3),
02278   /* 101  */ V(0, 9, 3),
02279   /* 110  */ V(1, 9, 2),
02280   /* 111  */ V(1, 9, 2),
02281 
02282   /* 0001 0011 ... */
02283   /* 000  */ V(9, 1, 2),    /* 224 */
02284   /* 001  */ V(9, 1, 2),
02285   /* 010  */ V(9, 0, 3),
02286   /* 011  */ V(4, 8, 3),
02287   /* 100  */ V(8, 4, 3),
02288   /* 101  */ V(7, 5, 3),
02289   /* 110  */ V(3, 8, 3),
02290   /* 111  */ V(8, 3, 3),
02291 
02292   /* 0001 0100 ... */
02293   /* 000  */ V(6, 6, 3),    /* 232 */
02294   /* 001  */ V(2, 8, 3),
02295   /* 010  */ V(8, 2, 2),
02296   /* 011  */ V(8, 2, 2),
02297   /* 100  */ V(4, 7, 3),
02298   /* 101  */ V(7, 4, 3),
02299   /* 110  */ V(1, 8, 2),
02300   /* 111  */ V(1, 8, 2),
02301 
02302   /* 0001 0101 ... */
02303   /* 000  */ V(8, 1, 2),    /* 240 */
02304   /* 001  */ V(8, 1, 2),
02305   /* 010  */ V(8, 0, 2),
02306   /* 011  */ V(8, 0, 2),
02307   /* 100  */ V(0, 8, 3),
02308   /* 101  */ V(5, 6, 3),
02309   /* 110  */ V(3, 7, 2),
02310   /* 111  */ V(3, 7, 2),
02311 
02312   /* 0001 0110 ... */
02313   /* 000  */ V(7, 3, 2),    /* 248 */
02314   /* 001  */ V(7, 3, 2),
02315   /* 010  */ V(6, 5, 3),
02316   /* 011  */ V(4, 6, 3),
02317   /* 100  */ V(2, 7, 2),
02318   /* 101  */ V(2, 7, 2),
02319   /* 110  */ V(7, 2, 2),
02320   /* 111  */ V(7, 2, 2),
02321 
02322   /* 0001 0111 ... */
02323   /* 000  */ V(6, 4, 3),    /* 256 */
02324   /* 001  */ V(5, 5, 3),
02325   /* 010  */ V(0, 7, 2),
02326   /* 011  */ V(0, 7, 2),
02327   /* 100  */ V(1, 7, 1),
02328   /* 101  */ V(1, 7, 1),
02329   /* 110  */ V(1, 7, 1),
02330   /* 111  */ V(1, 7, 1),
02331 
02332   /* 0001 1000 ... */
02333   /* 00   */ V(7, 1, 1),    /* 264  */
02334   /* 01   */ V(7, 1, 1),
02335   /* 10   */ V(7, 0, 2),
02336   /* 11   */ V(3, 6, 2),
02337 
02338   /* 0001 1001 ... */
02339   /* 00   */ V(6, 3, 2),    /* 268 */
02340   /* 01   */ V(4, 5, 2),
02341   /* 10   */ V(5, 4, 2),
02342   /* 11   */ V(2, 6, 2),
02343 
02344   /* 0001 1010 ... */
02345   /* 0    */ V(6, 2, 1),    /* 272 */
02346   /* 1    */ V(1, 6, 1),
02347 
02348   /* 0001 1011 ... */
02349   /* 00   */ V(6, 1, 1),    /* 274 */
02350   /* 01   */ V(6, 1, 1),
02351   /* 10   */ V(0, 6, 2),
02352   /* 11   */ V(6, 0, 2),
02353 
02354   /* 0001 1100 ... */
02355   /* 00   */ V(5, 3, 1),    /* 278 */
02356   /* 01   */ V(5, 3, 1),
02357   /* 10   */ V(3, 5, 2),
02358   /* 11   */ V(4, 4, 2),
02359 
02360   /* 0001 1101 ... */
02361   /* 0    */ V(2, 5, 1),    /* 282 */
02362   /* 1    */ V(5, 2, 1),
02363 
02364   /* 0001 1111 ... */
02365   /* 0    */ V(1, 5, 1),    /* 284 */
02366   /* 1    */ V(0, 5, 1),
02367 
02368   /* 0010 0000 ... */
02369   /* 0    */ V(3, 4, 1),    /* 286 */
02370   /* 1    */ V(4, 3, 1),
02371 
02372   /* 0010 0001 ... */
02373   /* 0    */ V(5, 0, 1),    /* 288 */
02374   /* 1    */ V(2, 4, 1),
02375 
02376   /* 0010 0010 ... */
02377   /* 0    */ V(4, 2, 1),    /* 290 */
02378   /* 1    */ V(3, 3, 1),
02379 
02380   /* 0010 0101 ... */
02381   /* 0    */ V(0, 4, 1),    /* 292 */
02382   /* 1    */ V(4, 0, 1),
02383 
02384   /* 0000 0110 1100 ... */
02385   /* 0000 */ V(12, 14, 4),  /* 294 */
02386   /* 0001 */ PTR(400, 1),
02387   /* 0010 */ V(13, 14, 3),
02388   /* 0011 */ V(13, 14, 3),
02389   /* 0100 */ V(14, 9, 3),
02390   /* 0101 */ V(14, 9, 3),
02391   /* 0110 */ V(14, 10, 4),
02392   /* 0111 */ V(13, 9, 4),
02393   /* 1000 */ V(14, 14, 2),
02394   /* 1001 */ V(14, 14, 2),
02395   /* 1010 */ V(14, 14, 2),
02396   /* 1011 */ V(14, 14, 2),
02397   /* 1100 */ V(14, 13, 3),
02398   /* 1101 */ V(14, 13, 3),
02399   /* 1110 */ V(14, 11, 3),
02400   /* 1111 */ V(14, 11, 3),
02401 
02402   /* 0000 0110 1101 ... */
02403   /* 000  */ V(11, 14, 2),  /* 310 */
02404   /* 001  */ V(11, 14, 2),
02405   /* 010  */ V(12, 13, 2),
02406   /* 011  */ V(12, 13, 2),
02407   /* 100  */ V(13, 12, 3),
02408   /* 101  */ V(13, 11, 3),
02409   /* 110  */ V(10, 14, 2),
02410   /* 111  */ V(10, 14, 2),
02411 
02412   /* 0000 0110 1110 ... */
02413   /* 000  */ V(12, 12, 2),  /* 318 */
02414   /* 001  */ V(12, 12, 2),
02415   /* 010  */ V(10, 13, 3),
02416   /* 011  */ V(13, 10, 3),
02417   /* 100  */ V(7, 14, 3),
02418   /* 101  */ V(10, 12, 3),
02419   /* 110  */ V(12, 10, 2),
02420   /* 111  */ V(12, 10, 2),
02421 
02422   /* 0000 0110 1111 ... */
02423   /* 000  */ V(12, 9, 3),   /* 326 */
02424   /* 001  */ V(7, 13, 3),
02425   /* 010  */ V(5, 14, 2),
02426   /* 011  */ V(5, 14, 2),
02427   /* 100  */ V(11, 13, 1),
02428   /* 101  */ V(11, 13, 1),
02429   /* 110  */ V(11, 13, 1),
02430   /* 111  */ V(11, 13, 1),
02431 
02432   /* 0000 1011 0000 ... */
02433   /* 00   */ V(9, 14, 1),   /* 334 */
02434   /* 01   */ V(9, 14, 1),
02435   /* 10   */ V(11, 12, 2),
02436   /* 11   */ V(12, 11, 2),
02437 
02438   /* 0000 1011 0001 ... */
02439   /* 00   */ V(8, 14, 2),   /* 338 */
02440   /* 01   */ V(14, 8, 2),
02441   /* 10   */ V(9, 13, 2),
02442   /* 11   */ V(14, 7, 2),
02443 
02444   /* 0000 1011 0010 ... */
02445   /* 00   */ V(11, 11, 2),  /* 342 */
02446   /* 01   */ V(8, 13, 2),
02447   /* 10   */ V(13, 8, 2),
02448   /* 11   */ V(6, 14, 2),
02449 
02450   /* 0000 1011 0011 ... */
02451   /* 0    */ V(14, 6, 1),   /* 346 */
02452   /* 1    */ V(9, 12, 1),
02453 
02454   /* 0000 1011 0100 ... */
02455   /* 00   */ V(10, 11, 2),  /* 348 */
02456   /* 01   */ V(11, 10, 2),
02457   /* 10   */ V(14, 5, 2),
02458   /* 11   */ V(13, 7, 2),
02459 
02460   /* 0000 1011 0101 ... */
02461   /* 00   */ V(4, 14, 1),   /* 352 */
02462   /* 01   */ V(4, 14, 1),
02463   /* 10   */ V(14, 4, 2),
02464   /* 11   */ V(8, 12, 2),
02465 
02466   /* 0000 1011 0110 ... */
02467   /* 0    */ V(12, 8, 1),   /* 356 */
02468   /* 1    */ V(3, 14, 1),
02469 
02470   /* 0000 1011 0111 ... */
02471   /* 00   */ V(6, 13, 1),   /* 358 */
02472   /* 01   */ V(6, 13, 1),
02473   /* 10   */ V(13, 6, 2),
02474   /* 11   */ V(9, 11, 2),
02475 
02476   /* 0000 1011 1000 ... */
02477   /* 00   */ V(11, 9, 2),   /* 362 */
02478   /* 01   */ V(10, 10, 2),
02479   /* 10   */ V(14, 1, 1),
02480   /* 11   */ V(14, 1, 1),
02481 
02482   /* 0000 1011 1001 ... */
02483   /* 00   */ V(13, 4, 1),   /* 366 */
02484   /* 01   */ V(13, 4, 1),
02485   /* 10   */ V(11, 8, 2),
02486   /* 11   */ V(10, 9, 2),
02487 
02488   /* 0000 1011 1010 ... */
02489   /* 00   */ V(7, 11, 1),   /* 370 */
02490   /* 01   */ V(7, 11, 1),
02491   /* 10   */ V(11, 7, 2),
02492   /* 11   */ V(13, 0, 2),
02493 
02494   /* 0000 1011 1100 ... */
02495   /* 0    */ V(0, 14, 1),   /* 374 */
02496   /* 1    */ V(14, 0, 1),
02497 
02498   /* 0000 1011 1101 ... */
02499   /* 0    */ V(5, 13, 1),   /* 376 */
02500   /* 1    */ V(13, 5, 1),
02501 
02502   /* 0000 1011 1110 ... */
02503   /* 0    */ V(7, 12, 1),   /* 378 */
02504   /* 1    */ V(12, 7, 1),
02505 
02506   /* 0000 1011 1111 ... */
02507   /* 0    */ V(4, 13, 1),   /* 380 */
02508   /* 1    */ V(8, 11, 1),
02509 
02510   /* 0000 1100 0000 ... */
02511   /* 0    */ V(9, 10, 1),   /* 382 */
02512   /* 1    */ V(6, 12, 1),
02513 
02514   /* 0000 1100 0001 ... */
02515   /* 0    */ V(12, 6, 1),   /* 384 */
02516   /* 1    */ V(3, 13, 1),
02517 
02518   /* 0000 1100 0010 ... */
02519   /* 0    */ V(5, 12, 1),   /* 386 */
02520   /* 1    */ V(12, 5, 1),
02521 
02522   /* 0000 1100 0100 ... */
02523   /* 0    */ V(8, 10, 1),   /* 388 */
02524   /* 1    */ V(10, 8, 1),
02525 
02526   /* 0000 1100 0101 ... */
02527   /* 0    */ V(9, 9, 1),    /* 390 */
02528   /* 1    */ V(4, 12, 1),
02529 
02530   /* 0000 1100 0110 ... */
02531   /* 0    */ V(11, 6, 1),   /* 392 */
02532   /* 1    */ V(7, 10, 1),
02533 
02534   /* 0000 1100 1000 ... */
02535   /* 0    */ V(5, 11, 1),   /* 394 */
02536   /* 1    */ V(8, 9, 1),
02537 
02538   /* 0000 1100 1011 ... */
02539   /* 0    */ V(9, 8, 1),    /* 396 */
02540   /* 1    */ V(7, 9, 1),
02541 
02542   /* 0000 1101 0101 ... */
02543   /* 0    */ V(9, 7, 1),    /* 398 */
02544   /* 1    */ V(8, 8, 1),
02545 
02546   /* 0000 0110 1100 0001 ... */
02547   /* 0    */ V(14, 12, 1),  /* 400 */
02548   /* 1    */ V(13, 13, 1)
02549 };
02550 
02551 static
02552 union huffpair const hufftab24[] = {
02553   /* 0000 */ PTR(16, 4),
02554   /* 0001 */ PTR(32, 4),
02555   /* 0010 */ PTR(48, 4),
02556   /* 0011 */ V(15, 15, 4),
02557   /* 0100 */ PTR(64, 4),
02558   /* 0101 */ PTR(80, 4),
02559   /* 0110 */ PTR(96, 4),
02560   /* 0111 */ PTR(112, 4),
02561   /* 1000 */ PTR(128, 4),
02562   /* 1001 */ PTR(144, 4),
02563   /* 1010 */ PTR(160, 3),
02564   /* 1011 */ PTR(168, 2),
02565   /* 1100 */ V(1, 1, 4),
02566   /* 1101 */ V(0, 1, 4),
02567   /* 1110 */ V(1, 0, 4),
02568   /* 1111 */ V(0, 0, 4),
02569 
02570   /* 0000 ... */
02571   /* 0000 */ V(14, 15, 4),  /* 16 */
02572   /* 0001 */ V(15, 14, 4),
02573   /* 0010 */ V(13, 15, 4),
02574   /* 0011 */ V(15, 13, 4),
02575   /* 0100 */ V(12, 15, 4),
02576   /* 0101 */ V(15, 12, 4),
02577   /* 0110 */ V(11, 15, 4),
02578   /* 0111 */ V(15, 11, 4),
02579   /* 1000 */ V(15, 10, 3),
02580   /* 1001 */ V(15, 10, 3),
02581   /* 1010 */ V(10, 15, 4),
02582   /* 1011 */ V(9, 15, 4),
02583   /* 1100 */ V(15, 9, 3),
02584   /* 1101 */ V(15, 9, 3),
02585   /* 1110 */ V(15, 8, 3),
02586   /* 1111 */ V(15, 8, 3),
02587 
02588   /* 0001 ... */
02589   /* 0000 */ V(8, 15, 4),   /* 32 */
02590   /* 0001 */ V(7, 15, 4),
02591   /* 0010 */ V(15, 7, 3),
02592   /* 0011 */ V(15, 7, 3),
02593   /* 0100 */ V(6, 15, 3),
02594   /* 0101 */ V(6, 15, 3),
02595   /* 0110 */ V(15, 6, 3),
02596   /* 0111 */ V(15, 6, 3),
02597   /* 1000 */ V(5, 15, 3),
02598   /* 1001 */ V(5, 15, 3),
02599   /* 1010 */ V(15, 5, 3),
02600   /* 1011 */ V(15, 5, 3),
02601   /* 1100 */ V(4, 15, 3),
02602   /* 1101 */ V(4, 15, 3),
02603   /* 1110 */ V(15, 4, 3),
02604   /* 1111 */ V(15, 4, 3),
02605 
02606   /* 0010 ... */
02607   /* 0000 */ V(3, 15, 3),   /* 48 */
02608   /* 0001 */ V(3, 15, 3),
02609   /* 0010 */ V(15, 3, 3),
02610   /* 0011 */ V(15, 3, 3),
02611   /* 0100 */ V(2, 15, 3),
02612   /* 0101 */ V(2, 15, 3),
02613   /* 0110 */ V(15, 2, 3),
02614   /* 0111 */ V(15, 2, 3),
02615   /* 1000 */ V(15, 1, 3),
02616   /* 1001 */ V(15, 1, 3),
02617   /* 1010 */ V(1, 15, 4),
02618   /* 1011 */ V(15, 0, 4),
02619   /* 1100 */ PTR(172, 3),
02620   /* 1101 */ PTR(180, 3),
02621   /* 1110 */ PTR(188, 3),
02622   /* 1111 */ PTR(196, 3),
02623 
02624   /* 0100 ... */
02625   /* 0000 */ PTR(204, 4),   /* 64 */
02626   /* 0001 */ PTR(220, 3),
02627   /* 0010 */ PTR(228, 3),
02628   /* 0011 */ PTR(236, 3),
02629   /* 0100 */ PTR(244, 2),
02630   /* 0101 */ PTR(248, 2),
02631   /* 0110 */ PTR(252, 2),
02632   /* 0111 */ PTR(256, 2),
02633   /* 1000 */ PTR(260, 2),
02634   /* 1001 */ PTR(264, 2),
02635   /* 1010 */ PTR(268, 2),
02636   /* 1011 */ PTR(272, 2),
02637   /* 1100 */ PTR(276, 2),
02638   /* 1101 */ PTR(280, 3),
02639   /* 1110 */ PTR(288, 2),
02640   /* 1111 */ PTR(292, 2),
02641 
02642   /* 0101 ... */
02643   /* 0000 */ PTR(296, 2),   /* 80 */
02644   /* 0001 */ PTR(300, 3),
02645   /* 0010 */ PTR(308, 2),
02646   /* 0011 */ PTR(312, 3),
02647   /* 0100 */ PTR(320, 1),
02648   /* 0101 */ PTR(322, 2),
02649   /* 0110 */ PTR(326, 2),
02650   /* 0111 */ PTR(330, 1),
02651   /* 1000 */ PTR(332, 2),
02652   /* 1001 */ PTR(336, 1),
02653   /* 1010 */ PTR(338, 1),
02654   /* 1011 */ PTR(340, 1),
02655   /* 1100 */ PTR(342, 1),
02656   /* 1101 */ PTR(344, 1),
02657   /* 1110 */ PTR(346, 1),
02658   /* 1111 */ PTR(348, 1),
02659 
02660   /* 0110 ... */
02661   /* 0000 */ PTR(350, 1),   /* 96 */
02662   /* 0001 */ PTR(352, 1),
02663   /* 0010 */ PTR(354, 1),
02664   /* 0011 */ PTR(356, 1),
02665   /* 0100 */ PTR(358, 1),
02666   /* 0101 */ PTR(360, 1),
02667   /* 0110 */ PTR(362, 1),
02668   /* 0111 */ PTR(364, 1),
02669   /* 1000 */ PTR(366, 1),
02670   /* 1001 */ PTR(368, 1),
02671   /* 1010 */ PTR(370, 2),
02672   /* 1011 */ PTR(374, 1),
02673   /* 1100 */ PTR(376, 2),
02674   /* 1101 */ V(7, 3, 4),
02675   /* 1110 */ PTR(380, 1),
02676   /* 1111 */ V(7, 2, 4),
02677 
02678   /* 0111 ... */
02679   /* 0000 */ V(4, 6, 4),    /* 112 */
02680   /* 0001 */ V(6, 4, 4),
02681   /* 0010 */ V(5, 5, 4),
02682   /* 0011 */ V(7, 1, 4),
02683   /* 0100 */ V(3, 6, 4),
02684   /* 0101 */ V(6, 3, 4),
02685   /* 0110 */ V(4, 5, 4),
02686   /* 0111 */ V(5, 4, 4),
02687   /* 1000 */ V(2, 6, 4),
02688   /* 1001 */ V(6, 2, 4),
02689   /* 1010 */ V(1, 6, 4),
02690   /* 1011 */ V(6, 1, 4),
02691   /* 1100 */ PTR(382, 1),
02692   /* 1101 */ V(3, 5, 4),
02693   /* 1110 */ V(5, 3, 4),
02694   /* 1111 */ V(4, 4, 4),
02695 
02696   /* 1000 ... */
02697   /* 0000 */ V(2, 5, 4),    /* 128 */
02698   /* 0001 */ V(5, 2, 4),
02699   /* 0010 */ V(1, 5, 4),
02700   /* 0011 */ PTR(384, 1),
02701   /* 0100 */ V(5, 1, 3),
02702   /* 0101 */ V(5, 1, 3),
02703   /* 0110 */ V(3, 4, 4),
02704   /* 0111 */ V(4, 3, 4),
02705   /* 1000 */ V(2, 4, 3),
02706   /* 1001 */ V(2, 4, 3),
02707   /* 1010 */ V(4, 2, 3),
02708   /* 1011 */ V(4, 2, 3),
02709   /* 1100 */ V(3, 3, 3),
02710   /* 1101 */ V(3, 3, 3),
02711   /* 1110 */ V(1, 4, 3),
02712   /* 1111 */ V(1, 4, 3),
02713 
02714   /* 1001 ... */
02715   /* 0000 */ V(4, 1, 3),    /* 144 */
02716   /* 0001 */ V(4, 1, 3),
02717   /* 0010 */ V(0, 4, 4),
02718   /* 0011 */ V(4, 0, 4),
02719   /* 0100 */ V(2, 3, 3),
02720   /* 0101 */ V(2, 3, 3),
02721   /* 0110 */ V(3, 2, 3),
02722   /* 0111 */ V(3, 2, 3),
02723   /* 1000 */ V(1, 3, 2),
02724   /* 1001 */ V(1, 3, 2),
02725   /* 1010 */ V(1, 3, 2),
02726   /* 1011 */ V(1, 3, 2),
02727   /* 1100 */ V(3, 1, 2),
02728   /* 1101 */ V(3, 1, 2),
02729   /* 1110 */ V(3, 1, 2),
02730   /* 1111 */ V(3, 1, 2),
02731 
02732   /* 1010 ... */
02733   /* 000  */ V(0, 3, 3),    /* 160 */
02734   /* 001  */ V(3, 0, 3),
02735   /* 010  */ V(2, 2, 2),
02736   /* 011  */ V(2, 2, 2),
02737   /* 100  */ V(1, 2, 1),
02738   /* 101  */ V(1, 2, 1),
02739   /* 110  */ V(1, 2, 1),
02740   /* 111  */ V(1, 2, 1),
02741 
02742   /* 1011 ... */
02743   /* 00   */ V(2, 1, 1),    /* 168 */
02744   /* 01   */ V(2, 1, 1),
02745   /* 10   */ V(0, 2, 2),
02746   /* 11   */ V(2, 0, 2),
02747 
02748   /* 0010 1100 ... */
02749   /* 000  */ V(0, 15, 1),   /* 172 */
02750   /* 001  */ V(0, 15, 1),
02751   /* 010  */ V(0, 15, 1),
02752   /* 011  */ V(0, 15, 1),
02753   /* 100  */ V(14, 14, 3),
02754   /* 101  */ V(13, 14, 3),
02755   /* 110  */ V(14, 13, 3),
02756   /* 111  */ V(12, 14, 3),
02757 
02758   /* 0010 1101 ... */
02759   /* 000  */ V(14, 12, 3),  /* 180 */
02760   /* 001  */ V(13, 13, 3),
02761   /* 010  */ V(11, 14, 3),
02762   /* 011  */ V(14, 11, 3),
02763   /* 100  */ V(12, 13, 3),
02764   /* 101  */ V(13, 12, 3),
02765   /* 110  */ V(10, 14, 3),
02766   /* 111  */ V(14, 10, 3),
02767 
02768   /* 0010 1110 ... */
02769   /* 000  */ V(11, 13, 3),  /* 188 */
02770   /* 001  */ V(13, 11, 3),
02771   /* 010  */ V(12, 12, 3),
02772   /* 011  */ V(9, 14, 3),
02773   /* 100  */ V(14, 9, 3),
02774   /* 101  */ V(10, 13, 3),
02775   /* 110  */ V(13, 10, 3),
02776   /* 111  */ V(11, 12, 3),
02777 
02778   /* 0010 1111 ... */
02779   /* 000  */ V(12, 11, 3),  /* 196 */
02780   /* 001  */ V(8, 14, 3),
02781   /* 010  */ V(14, 8, 3),
02782   /* 011  */ V(9, 13, 3),
02783   /* 100  */ V(13, 9, 3),
02784   /* 101  */ V(7, 14, 3),
02785   /* 110  */ V(14, 7, 3),
02786   /* 111  */ V(10, 12, 3),
02787 
02788   /* 0100 0000 ... */
02789   /* 0000 */ V(12, 10, 3),  /* 204 */
02790   /* 0001 */ V(12, 10, 3),
02791   /* 0010 */ V(11, 11, 3),
02792   /* 0011 */ V(11, 11, 3),
02793   /* 0100 */ V(8, 13, 3),
02794   /* 0101 */ V(8, 13, 3),
02795   /* 0110 */ V(13, 8, 3),
02796   /* 0111 */ V(13, 8, 3),
02797   /* 1000 */ V(0, 14, 4),
02798   /* 1001 */ V(14, 0, 4),
02799   /* 1010 */ V(0, 13, 3),
02800   /* 1011 */ V(0, 13, 3),
02801   /* 1100 */ V(14, 6, 2),
02802   /* 1101 */ V(14, 6, 2),
02803   /* 1110 */ V(14, 6, 2),
02804   /* 1111 */ V(14, 6, 2),
02805 
02806   /* 0100 0001 ... */
02807   /* 000  */ V(6, 14, 3),   /* 220 */
02808   /* 001  */ V(9, 12, 3),
02809   /* 010  */ V(12, 9, 2),
02810   /* 011  */ V(12, 9, 2),
02811   /* 100  */ V(5, 14, 2),
02812   /* 101  */ V(5, 14, 2),
02813   /* 110  */ V(11, 10, 2),
02814   /* 111  */ V(11, 10, 2),
02815 
02816   /* 0100 0010 ... */
02817   /* 000  */ V(14, 5, 2),   /* 228 */
02818   /* 001  */ V(14, 5, 2),
02819   /* 010  */ V(10, 11, 3),
02820   /* 011  */ V(7, 13, 3),
02821   /* 100  */ V(13, 7, 2),
02822   /* 101  */ V(13, 7, 2),
02823   /* 110  */ V(14, 4, 2),
02824   /* 111  */ V(14, 4, 2),
02825 
02826   /* 0100 0011 ... */
02827   /* 000  */ V(8, 12, 2),   /* 236 */
02828   /* 001  */ V(8, 12, 2),
02829   /* 010  */ V(12, 8, 2),
02830   /* 011  */ V(12, 8, 2),
02831   /* 100  */ V(4, 14, 3),
02832   /* 101  */ V(2, 14, 3),
02833   /* 110  */ V(3, 14, 2),
02834   /* 111  */ V(3, 14, 2),
02835 
02836   /* 0100 0100 ... */
02837   /* 00   */ V(6, 13, 2),   /* 244 */
02838   /* 01   */ V(13, 6, 2),
02839   /* 10   */ V(14, 3, 2),
02840   /* 11   */ V(9, 11, 2),
02841 
02842   /* 0100 0101 ... */
02843   /* 00   */ V(11, 9, 2),   /* 248 */
02844   /* 01   */ V(10, 10, 2),
02845   /* 10   */ V(14, 2, 2),
02846   /* 11   */ V(1, 14, 2),
02847 
02848   /* 0100 0110 ... */
02849   /* 00   */ V(14, 1, 2),   /* 252 */
02850   /* 01   */ V(5, 13, 2),
02851   /* 10   */ V(13, 5, 2),
02852   /* 11   */ V(7, 12, 2),
02853 
02854   /* 0100 0111 ... */
02855   /* 00   */ V(12, 7, 2),   /* 256 */
02856   /* 01   */ V(4, 13, 2),
02857   /* 10   */ V(8, 11, 2),
02858   /* 11   */ V(11, 8, 2),
02859 
02860   /* 0100 1000 ... */
02861   /* 00   */ V(13, 4, 2),   /* 260 */
02862   /* 01   */ V(9, 10, 2),
02863   /* 10   */ V(10, 9, 2),
02864   /* 11   */ V(6, 12, 2),
02865 
02866   /* 0100 1001 ... */
02867   /* 00   */ V(12, 6, 2),   /* 264 */
02868   /* 01   */ V(3, 13, 2),
02869   /* 10   */ V(13, 3, 2),
02870   /* 11   */ V(2, 13, 2),
02871 
02872   /* 0100 1010 ... */
02873   /* 00   */ V(13, 2, 2),   /* 268 */
02874   /* 01   */ V(1, 13, 2),
02875   /* 10   */ V(7, 11, 2),
02876   /* 11   */ V(11, 7, 2),
02877 
02878   /* 0100 1011 ... */
02879   /* 00   */ V(13, 1, 2),   /* 272 */
02880   /* 01   */ V(5, 12, 2),
02881   /* 10   */ V(12, 5, 2),
02882   /* 11   */ V(8, 10, 2),
02883 
02884   /* 0100 1100 ... */
02885   /* 00   */ V(10, 8, 2),   /* 276 */
02886   /* 01   */ V(9, 9, 2),
02887   /* 10   */ V(4, 12, 2),
02888   /* 11   */ V(12, 4, 2),
02889 
02890   /* 0100 1101 ... */
02891   /* 000  */ V(6, 11, 2),   /* 280 */
02892   /* 001  */ V(6, 11, 2),
02893   /* 010  */ V(11, 6, 2),
02894   /* 011  */ V(11, 6, 2),
02895   /* 100  */ V(13, 0, 3),
02896   /* 101  */ V(0, 12, 3),
02897   /* 110  */ V(3, 12, 2),
02898   /* 111  */ V(3, 12, 2),
02899 
02900   /* 0100 1110 ... */
02901   /* 00   */ V(12, 3, 2),   /* 288 */
02902   /* 01   */ V(7, 10, 2),
02903   /* 10   */ V(10, 7, 2),
02904   /* 11   */ V(2, 12, 2),
02905 
02906   /* 0100 1111 ... */
02907   /* 00   */ V(12, 2, 2),   /* 292 */
02908   /* 01   */ V(5, 11, 2),
02909   /* 10   */ V(11, 5, 2),
02910   /* 11   */ V(1, 12, 2),
02911 
02912   /* 0101 0000 ... */
02913   /* 00   */ V(8, 9, 2),    /* 296 */
02914   /* 01   */ V(9, 8, 2),
02915   /* 10   */ V(12, 1, 2),
02916   /* 11   */ V(4, 11, 2),
02917 
02918   /* 0101 0001 ... */
02919   /* 000  */ V(12, 0, 3),   /* 300 */
02920   /* 001  */ V(0, 11, 3),
02921   /* 010  */ V(3, 11, 2),
02922   /* 011  */ V(3, 11, 2),
02923   /* 100  */ V(11, 0, 3),
02924   /* 101  */ V(0, 10, 3),
02925   /* 110  */ V(1, 10, 2),
02926   /* 111  */ V(1, 10, 2),
02927 
02928   /* 0101 0010 ... */
02929   /* 00   */ V(11, 4, 1),   /* 308 */
02930   /* 01   */ V(11, 4, 1),
02931   /* 10   */ V(6, 10, 2),
02932   /* 11   */ V(10, 6, 2),
02933 
02934   /* 0101 0011 ... */
02935   /* 000  */ V(7, 9, 2),    /* 312 */
02936   /* 001  */ V(7, 9, 2),
02937   /* 010  */ V(9, 7, 2),
02938   /* 011  */ V(9, 7, 2),
02939   /* 100  */ V(10, 0, 3),
02940   /* 101  */ V(0, 9, 3),
02941   /* 110  */ V(9, 0, 2),
02942   /* 111  */ V(9, 0, 2),
02943 
02944   /* 0101 0100 ... */
02945   /* 0    */ V(11, 3, 1),   /* 320 */
02946   /* 1    */ V(8, 8, 1),
02947 
02948   /* 0101 0101 ... */
02949   /* 00   */ V(2, 11, 2),   /* 322 */
02950   /* 01   */ V(5, 10, 2),
02951   /* 10   */ V(11, 2, 1),
02952   /* 11   */ V(11, 2, 1),
02953 
02954   /* 0101 0110 ... */
02955   /* 00   */ V(10, 5, 2),   /* 326 */
02956   /* 01   */ V(1, 11, 2),
02957   /* 10   */ V(11, 1, 2),
02958   /* 11   */ V(6, 9, 2),
02959 
02960   /* 0101 0111 ... */
02961   /* 0    */ V(9, 6, 1),    /* 330 */
02962   /* 1    */ V(10, 4, 1),
02963 
02964   /* 0101 1000 ... */
02965   /* 00   */ V(4, 10, 2),   /* 332 */
02966   /* 01   */ V(7, 8, 2),
02967   /* 10   */ V(8, 7, 1),
02968   /* 11   */ V(8, 7, 1),
02969 
02970   /* 0101 1001 ... */
02971   /* 0    */ V(3, 10, 1),   /* 336 */
02972   /* 1    */ V(10, 3, 1),
02973 
02974   /* 0101 1010 ... */
02975   /* 0    */ V(5, 9, 1),    /* 338 */
02976   /* 1    */ V(9, 5, 1),
02977 
02978   /* 0101 1011 ... */
02979   /* 0    */ V(2, 10, 1),   /* 340 */
02980   /* 1    */ V(10, 2, 1),
02981 
02982   /* 0101 1100 ... */
02983   /* 0    */ V(10, 1, 1),   /* 342 */
02984   /* 1    */ V(6, 8, 1),
02985 
02986   /* 0101 1101 ... */
02987   /* 0    */ V(8, 6, 1),    /* 344 */
02988   /* 1    */ V(7, 7, 1),
02989 
02990   /* 0101 1110 ... */
02991   /* 0    */ V(4, 9, 1),    /* 346 */
02992   /* 1    */ V(9, 4, 1),
02993 
02994   /* 0101 1111 ... */
02995   /* 0    */ V(3, 9, 1),    /* 348 */
02996   /* 1    */ V(9, 3, 1),
02997 
02998   /* 0110 0000 ... */
02999   /* 0    */ V(5, 8, 1),    /* 350 */
03000   /* 1    */ V(8, 5, 1),
03001 
03002   /* 0110 0001 ... */
03003   /* 0    */ V(2, 9, 1),    /* 352 */
03004   /* 1    */ V(6, 7, 1),
03005 
03006   /* 0110 0010 ... */
03007   /* 0    */ V(7, 6, 1),    /* 354 */
03008   /* 1    */ V(9, 2, 1),
03009 
03010   /* 0110 0011 ... */
03011   /* 0    */ V(1, 9, 1),    /* 356 */
03012   /* 1    */ V(9, 1, 1),
03013 
03014   /* 0110 0100 ... */
03015   /* 0    */ V(4, 8, 1),    /* 358 */
03016   /* 1    */ V(8, 4, 1),
03017 
03018   /* 0110 0101 ... */
03019   /* 0    */ V(5, 7, 1),    /* 360 */
03020   /* 1    */ V(7, 5, 1),
03021 
03022   /* 0110 0110 ... */
03023   /* 0    */ V(3, 8, 1),    /* 362 */
03024   /* 1    */ V(8, 3, 1),
03025 
03026   /* 0110 0111 ... */
03027   /* 0    */ V(6, 6, 1),    /* 364 */
03028   /* 1    */ V(2, 8, 1),
03029 
03030   /* 0110 1000 ... */
03031   /* 0    */ V(8, 2, 1),    /* 366 */
03032   /* 1    */ V(1, 8, 1),
03033 
03034   /* 0110 1001 ... */
03035   /* 0    */ V(4, 7, 1),    /* 368 */
03036   /* 1    */ V(7, 4, 1),
03037 
03038   /* 0110 1010 ... */
03039   /* 00   */ V(8, 1, 1),    /* 370 */
03040   /* 01   */ V(8, 1, 1),
03041   /* 10   */ V(0, 8, 2),
03042   /* 11   */ V(8, 0, 2),
03043 
03044   /* 0110 1011 ... */
03045   /* 0    */ V(5, 6, 1),    /* 374 */
03046   /* 1    */ V(6, 5, 1),
03047 
03048   /* 0110 1100 ... */
03049   /* 00   */ V(1, 7, 1),    /* 376 */
03050   /* 01   */ V(1, 7, 1),
03051   /* 10   */ V(0, 7, 2),
03052   /* 11   */ V(7, 0, 2),
03053 
03054   /* 0110 1110 ... */
03055   /* 0    */ V(3, 7, 1),    /* 380  */
03056   /* 1    */ V(2, 7, 1),
03057 
03058   /* 0111 1100 ... */
03059   /* 0    */ V(0, 6, 1),    /* 382 */
03060   /* 1    */ V(6, 0, 1),
03061 
03062   /* 1000 0011 ... */
03063   /* 0    */ V(0, 5, 1),    /* 384 */
03064   /* 1    */ V(5, 0, 1)
03065 };
03066 
03067 # undef V
03068 # undef PTR
03069 
03070 /* external tables */
03071 
03072 union huffquad const *const mad_huff_quad_table[2] = { hufftabA, hufftabB };
03073 
03074 struct hufftable const mad_huff_pair_table[32] = {
03075   /*  0 */ { hufftab0,   0, 0 },
03076   /*  1 */ { hufftab1,   0, 3 },
03077   /*  2 */ { hufftab2,   0, 3 },
03078   /*  3 */ { hufftab3,   0, 3 },
03079   /*  4 */ { 0 /* not used */ },
03080   /*  5 */ { hufftab5,   0, 3 },
03081   /*  6 */ { hufftab6,   0, 4 },
03082   /*  7 */ { hufftab7,   0, 4 },
03083   /*  8 */ { hufftab8,   0, 4 },
03084   /*  9 */ { hufftab9,   0, 4 },
03085   /* 10 */ { hufftab10,  0, 4 },
03086   /* 11 */ { hufftab11,  0, 4 },
03087   /* 12 */ { hufftab12,  0, 4 },
03088   /* 13 */ { hufftab13,  0, 4 },
03089   /* 14 */ { 0 /* not used */ },
03090   /* 15 */ { hufftab15,  0, 4 },
03091   /* 16 */ { hufftab16,  1, 4 },
03092   /* 17 */ { hufftab16,  2, 4 },
03093   /* 18 */ { hufftab16,  3, 4 },
03094   /* 19 */ { hufftab16,  4, 4 },
03095   /* 20 */ { hufftab16,  6, 4 },
03096   /* 21 */ { hufftab16,  8, 4 },
03097   /* 22 */ { hufftab16, 10, 4 },
03098   /* 23 */ { hufftab16, 13, 4 },
03099   /* 24 */ { hufftab24,  4, 4 },
03100   /* 25 */ { hufftab24,  5, 4 },
03101   /* 26 */ { hufftab24,  6, 4 },
03102   /* 27 */ { hufftab24,  7, 4 },
03103   /* 28 */ { hufftab24,  8, 4 },
03104   /* 29 */ { hufftab24,  9, 4 },
03105   /* 30 */ { hufftab24, 11, 4 },
03106   /* 31 */ { hufftab24, 13, 4 }
03107 };