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