huffman.c

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

Generated on Tue Dec 13 14:47:31 2005 for guliverkli by  doxygen 1.4.5