Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 23:11:09 by
1.7.2