annotate src/libmad-0.15.1b/huffman.c @ 7:cd13f7cd9bc3

Add portaudio
author Chris Cannam
date Wed, 20 Mar 2013 15:18:57 +0000
parents c7265573341e
children
rev   line source
Chris@0 1 /*
Chris@0 2 * libmad - MPEG audio decoder library
Chris@0 3 * Copyright (C) 2000-2004 Underbit Technologies, Inc.
Chris@0 4 *
Chris@0 5 * This program is free software; you can redistribute it and/or modify
Chris@0 6 * it under the terms of the GNU General Public License as published by
Chris@0 7 * the Free Software Foundation; either version 2 of the License, or
Chris@0 8 * (at your option) any later version.
Chris@0 9 *
Chris@0 10 * This program is distributed in the hope that it will be useful,
Chris@0 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@0 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@0 13 * GNU General Public License for more details.
Chris@0 14 *
Chris@0 15 * You should have received a copy of the GNU General Public License
Chris@0 16 * along with this program; if not, write to the Free Software
Chris@0 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Chris@0 18 *
Chris@0 19 * $Id: huffman.c,v 1.10 2004/01/23 09:41:32 rob Exp $
Chris@0 20 */
Chris@0 21
Chris@0 22 # ifdef HAVE_CONFIG_H
Chris@0 23 # include "config.h"
Chris@0 24 # endif
Chris@0 25
Chris@0 26 # include "global.h"
Chris@0 27
Chris@0 28 # include "huffman.h"
Chris@0 29
Chris@0 30 /*
Chris@0 31 * These are the Huffman code words for Layer III.
Chris@0 32 * The data for these tables are derived from Table B.7 of ISO/IEC 11172-3.
Chris@0 33 *
Chris@0 34 * These tables support decoding up to 4 Huffman code bits at a time.
Chris@0 35 */
Chris@0 36
Chris@0 37 # if defined(__GNUC__) || \
Chris@0 38 (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
Chris@0 39 # define PTR(offs, bits) { .ptr = { 0, bits, offs } }
Chris@0 40 # define V(v, w, x, y, hlen) { .value = { 1, hlen, v, w, x, y } }
Chris@0 41 # else
Chris@0 42 # define PTR(offs, bits) { { 0, bits, offs } }
Chris@0 43 # if defined(WORDS_BIGENDIAN)
Chris@0 44 # define V(v, w, x, y, hlen) { { 1, hlen, (v << 11) | (w << 10) | \
Chris@0 45 (x << 9) | (y << 8) } }
Chris@0 46 # else
Chris@0 47 # define V(v, w, x, y, hlen) { { 1, hlen, (v << 0) | (w << 1) | \
Chris@0 48 (x << 2) | (y << 3) } }
Chris@0 49 # endif
Chris@0 50 # endif
Chris@0 51
Chris@0 52 static
Chris@0 53 union huffquad const hufftabA[] = {
Chris@0 54 /* 0000 */ PTR(16, 2),
Chris@0 55 /* 0001 */ PTR(20, 2),
Chris@0 56 /* 0010 */ PTR(24, 1),
Chris@0 57 /* 0011 */ PTR(26, 1),
Chris@0 58 /* 0100 */ V(0, 0, 1, 0, 4),
Chris@0 59 /* 0101 */ V(0, 0, 0, 1, 4),
Chris@0 60 /* 0110 */ V(0, 1, 0, 0, 4),
Chris@0 61 /* 0111 */ V(1, 0, 0, 0, 4),
Chris@0 62 /* 1000 */ V(0, 0, 0, 0, 1),
Chris@0 63 /* 1001 */ V(0, 0, 0, 0, 1),
Chris@0 64 /* 1010 */ V(0, 0, 0, 0, 1),
Chris@0 65 /* 1011 */ V(0, 0, 0, 0, 1),
Chris@0 66 /* 1100 */ V(0, 0, 0, 0, 1),
Chris@0 67 /* 1101 */ V(0, 0, 0, 0, 1),
Chris@0 68 /* 1110 */ V(0, 0, 0, 0, 1),
Chris@0 69 /* 1111 */ V(0, 0, 0, 0, 1),
Chris@0 70
Chris@0 71 /* 0000 ... */
Chris@0 72 /* 00 */ V(1, 0, 1, 1, 2), /* 16 */
Chris@0 73 /* 01 */ V(1, 1, 1, 1, 2),
Chris@0 74 /* 10 */ V(1, 1, 0, 1, 2),
Chris@0 75 /* 11 */ V(1, 1, 1, 0, 2),
Chris@0 76
Chris@0 77 /* 0001 ... */
Chris@0 78 /* 00 */ V(0, 1, 1, 1, 2), /* 20 */
Chris@0 79 /* 01 */ V(0, 1, 0, 1, 2),
Chris@0 80 /* 10 */ V(1, 0, 0, 1, 1),
Chris@0 81 /* 11 */ V(1, 0, 0, 1, 1),
Chris@0 82
Chris@0 83 /* 0010 ... */
Chris@0 84 /* 0 */ V(0, 1, 1, 0, 1), /* 24 */
Chris@0 85 /* 1 */ V(0, 0, 1, 1, 1),
Chris@0 86
Chris@0 87 /* 0011 ... */
Chris@0 88 /* 0 */ V(1, 0, 1, 0, 1), /* 26 */
Chris@0 89 /* 1 */ V(1, 1, 0, 0, 1)
Chris@0 90 };
Chris@0 91
Chris@0 92 static
Chris@0 93 union huffquad const hufftabB[] = {
Chris@0 94 /* 0000 */ V(1, 1, 1, 1, 4),
Chris@0 95 /* 0001 */ V(1, 1, 1, 0, 4),
Chris@0 96 /* 0010 */ V(1, 1, 0, 1, 4),
Chris@0 97 /* 0011 */ V(1, 1, 0, 0, 4),
Chris@0 98 /* 0100 */ V(1, 0, 1, 1, 4),
Chris@0 99 /* 0101 */ V(1, 0, 1, 0, 4),
Chris@0 100 /* 0110 */ V(1, 0, 0, 1, 4),
Chris@0 101 /* 0111 */ V(1, 0, 0, 0, 4),
Chris@0 102 /* 1000 */ V(0, 1, 1, 1, 4),
Chris@0 103 /* 1001 */ V(0, 1, 1, 0, 4),
Chris@0 104 /* 1010 */ V(0, 1, 0, 1, 4),
Chris@0 105 /* 1011 */ V(0, 1, 0, 0, 4),
Chris@0 106 /* 1100 */ V(0, 0, 1, 1, 4),
Chris@0 107 /* 1101 */ V(0, 0, 1, 0, 4),
Chris@0 108 /* 1110 */ V(0, 0, 0, 1, 4),
Chris@0 109 /* 1111 */ V(0, 0, 0, 0, 4)
Chris@0 110 };
Chris@0 111
Chris@0 112 # undef V
Chris@0 113 # undef PTR
Chris@0 114
Chris@0 115 # if defined(__GNUC__) || \
Chris@0 116 (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
Chris@0 117 # define PTR(offs, bits) { .ptr = { 0, bits, offs } }
Chris@0 118 # define V(x, y, hlen) { .value = { 1, hlen, x, y } }
Chris@0 119 # else
Chris@0 120 # define PTR(offs, bits) { { 0, bits, offs } }
Chris@0 121 # if defined(WORDS_BIGENDIAN)
Chris@0 122 # define V(x, y, hlen) { { 1, hlen, (x << 8) | (y << 4) } }
Chris@0 123 # else
Chris@0 124 # define V(x, y, hlen) { { 1, hlen, (x << 0) | (y << 4) } }
Chris@0 125 # endif
Chris@0 126 # endif
Chris@0 127
Chris@0 128 static
Chris@0 129 union huffpair const hufftab0[] = {
Chris@0 130 /* */ V(0, 0, 0)
Chris@0 131 };
Chris@0 132
Chris@0 133 static
Chris@0 134 union huffpair const hufftab1[] = {
Chris@0 135 /* 000 */ V(1, 1, 3),
Chris@0 136 /* 001 */ V(0, 1, 3),
Chris@0 137 /* 010 */ V(1, 0, 2),
Chris@0 138 /* 011 */ V(1, 0, 2),
Chris@0 139 /* 100 */ V(0, 0, 1),
Chris@0 140 /* 101 */ V(0, 0, 1),
Chris@0 141 /* 110 */ V(0, 0, 1),
Chris@0 142 /* 111 */ V(0, 0, 1)
Chris@0 143 };
Chris@0 144
Chris@0 145 static
Chris@0 146 union huffpair const hufftab2[] = {
Chris@0 147 /* 000 */ PTR(8, 3),
Chris@0 148 /* 001 */ V(1, 1, 3),
Chris@0 149 /* 010 */ V(0, 1, 3),
Chris@0 150 /* 011 */ V(1, 0, 3),
Chris@0 151 /* 100 */ V(0, 0, 1),
Chris@0 152 /* 101 */ V(0, 0, 1),
Chris@0 153 /* 110 */ V(0, 0, 1),
Chris@0 154 /* 111 */ V(0, 0, 1),
Chris@0 155
Chris@0 156 /* 000 ... */
Chris@0 157 /* 000 */ V(2, 2, 3), /* 8 */
Chris@0 158 /* 001 */ V(0, 2, 3),
Chris@0 159 /* 010 */ V(1, 2, 2),
Chris@0 160 /* 011 */ V(1, 2, 2),
Chris@0 161 /* 100 */ V(2, 1, 2),
Chris@0 162 /* 101 */ V(2, 1, 2),
Chris@0 163 /* 110 */ V(2, 0, 2),
Chris@0 164 /* 111 */ V(2, 0, 2)
Chris@0 165 };
Chris@0 166
Chris@0 167 static
Chris@0 168 union huffpair const hufftab3[] = {
Chris@0 169 /* 000 */ PTR(8, 3),
Chris@0 170 /* 001 */ V(1, 0, 3),
Chris@0 171 /* 010 */ V(1, 1, 2),
Chris@0 172 /* 011 */ V(1, 1, 2),
Chris@0 173 /* 100 */ V(0, 1, 2),
Chris@0 174 /* 101 */ V(0, 1, 2),
Chris@0 175 /* 110 */ V(0, 0, 2),
Chris@0 176 /* 111 */ V(0, 0, 2),
Chris@0 177
Chris@0 178 /* 000 ... */
Chris@0 179 /* 000 */ V(2, 2, 3), /* 8 */
Chris@0 180 /* 001 */ V(0, 2, 3),
Chris@0 181 /* 010 */ V(1, 2, 2),
Chris@0 182 /* 011 */ V(1, 2, 2),
Chris@0 183 /* 100 */ V(2, 1, 2),
Chris@0 184 /* 101 */ V(2, 1, 2),
Chris@0 185 /* 110 */ V(2, 0, 2),
Chris@0 186 /* 111 */ V(2, 0, 2)
Chris@0 187 };
Chris@0 188
Chris@0 189 static
Chris@0 190 union huffpair const hufftab5[] = {
Chris@0 191 /* 000 */ PTR(8, 4),
Chris@0 192 /* 001 */ V(1, 1, 3),
Chris@0 193 /* 010 */ V(0, 1, 3),
Chris@0 194 /* 011 */ V(1, 0, 3),
Chris@0 195 /* 100 */ V(0, 0, 1),
Chris@0 196 /* 101 */ V(0, 0, 1),
Chris@0 197 /* 110 */ V(0, 0, 1),
Chris@0 198 /* 111 */ V(0, 0, 1),
Chris@0 199
Chris@0 200 /* 000 ... */
Chris@0 201 /* 0000 */ PTR(24, 1), /* 8 */
Chris@0 202 /* 0001 */ V(3, 2, 4),
Chris@0 203 /* 0010 */ V(3, 1, 3),
Chris@0 204 /* 0011 */ V(3, 1, 3),
Chris@0 205 /* 0100 */ V(1, 3, 4),
Chris@0 206 /* 0101 */ V(0, 3, 4),
Chris@0 207 /* 0110 */ V(3, 0, 4),
Chris@0 208 /* 0111 */ V(2, 2, 4),
Chris@0 209 /* 1000 */ V(1, 2, 3),
Chris@0 210 /* 1001 */ V(1, 2, 3),
Chris@0 211 /* 1010 */ V(2, 1, 3),
Chris@0 212 /* 1011 */ V(2, 1, 3),
Chris@0 213 /* 1100 */ V(0, 2, 3),
Chris@0 214 /* 1101 */ V(0, 2, 3),
Chris@0 215 /* 1110 */ V(2, 0, 3),
Chris@0 216 /* 1111 */ V(2, 0, 3),
Chris@0 217
Chris@0 218 /* 000 0000 ... */
Chris@0 219 /* 0 */ V(3, 3, 1), /* 24 */
Chris@0 220 /* 1 */ V(2, 3, 1)
Chris@0 221 };
Chris@0 222
Chris@0 223 static
Chris@0 224 union huffpair const hufftab6[] = {
Chris@0 225 /* 0000 */ PTR(16, 3),
Chris@0 226 /* 0001 */ PTR(24, 1),
Chris@0 227 /* 0010 */ PTR(26, 1),
Chris@0 228 /* 0011 */ V(1, 2, 4),
Chris@0 229 /* 0100 */ V(2, 1, 4),
Chris@0 230 /* 0101 */ V(2, 0, 4),
Chris@0 231 /* 0110 */ V(0, 1, 3),
Chris@0 232 /* 0111 */ V(0, 1, 3),
Chris@0 233 /* 1000 */ V(1, 1, 2),
Chris@0 234 /* 1001 */ V(1, 1, 2),
Chris@0 235 /* 1010 */ V(1, 1, 2),
Chris@0 236 /* 1011 */ V(1, 1, 2),
Chris@0 237 /* 1100 */ V(1, 0, 3),
Chris@0 238 /* 1101 */ V(1, 0, 3),
Chris@0 239 /* 1110 */ V(0, 0, 3),
Chris@0 240 /* 1111 */ V(0, 0, 3),
Chris@0 241
Chris@0 242 /* 0000 ... */
Chris@0 243 /* 000 */ V(3, 3, 3), /* 16 */
Chris@0 244 /* 001 */ V(0, 3, 3),
Chris@0 245 /* 010 */ V(2, 3, 2),
Chris@0 246 /* 011 */ V(2, 3, 2),
Chris@0 247 /* 100 */ V(3, 2, 2),
Chris@0 248 /* 101 */ V(3, 2, 2),
Chris@0 249 /* 110 */ V(3, 0, 2),
Chris@0 250 /* 111 */ V(3, 0, 2),
Chris@0 251
Chris@0 252 /* 0001 ... */
Chris@0 253 /* 0 */ V(1, 3, 1), /* 24 */
Chris@0 254 /* 1 */ V(3, 1, 1),
Chris@0 255
Chris@0 256 /* 0010 ... */
Chris@0 257 /* 0 */ V(2, 2, 1), /* 26 */
Chris@0 258 /* 1 */ V(0, 2, 1)
Chris@0 259 };
Chris@0 260
Chris@0 261 static
Chris@0 262 union huffpair const hufftab7[] = {
Chris@0 263 /* 0000 */ PTR(16, 4),
Chris@0 264 /* 0001 */ PTR(32, 4),
Chris@0 265 /* 0010 */ PTR(48, 2),
Chris@0 266 /* 0011 */ V(1, 1, 4),
Chris@0 267 /* 0100 */ V(0, 1, 3),
Chris@0 268 /* 0101 */ V(0, 1, 3),
Chris@0 269 /* 0110 */ V(1, 0, 3),
Chris@0 270 /* 0111 */ V(1, 0, 3),
Chris@0 271 /* 1000 */ V(0, 0, 1),
Chris@0 272 /* 1001 */ V(0, 0, 1),
Chris@0 273 /* 1010 */ V(0, 0, 1),
Chris@0 274 /* 1011 */ V(0, 0, 1),
Chris@0 275 /* 1100 */ V(0, 0, 1),
Chris@0 276 /* 1101 */ V(0, 0, 1),
Chris@0 277 /* 1110 */ V(0, 0, 1),
Chris@0 278 /* 1111 */ V(0, 0, 1),
Chris@0 279
Chris@0 280 /* 0000 ... */
Chris@0 281 /* 0000 */ PTR(52, 2), /* 16 */
Chris@0 282 /* 0001 */ PTR(56, 1),
Chris@0 283 /* 0010 */ PTR(58, 1),
Chris@0 284 /* 0011 */ V(1, 5, 4),
Chris@0 285 /* 0100 */ V(5, 1, 4),
Chris@0 286 /* 0101 */ PTR(60, 1),
Chris@0 287 /* 0110 */ V(5, 0, 4),
Chris@0 288 /* 0111 */ PTR(62, 1),
Chris@0 289 /* 1000 */ V(2, 4, 4),
Chris@0 290 /* 1001 */ V(4, 2, 4),
Chris@0 291 /* 1010 */ V(1, 4, 3),
Chris@0 292 /* 1011 */ V(1, 4, 3),
Chris@0 293 /* 1100 */ V(4, 1, 3),
Chris@0 294 /* 1101 */ V(4, 1, 3),
Chris@0 295 /* 1110 */ V(4, 0, 3),
Chris@0 296 /* 1111 */ V(4, 0, 3),
Chris@0 297
Chris@0 298 /* 0001 ... */
Chris@0 299 /* 0000 */ V(0, 4, 4), /* 32 */
Chris@0 300 /* 0001 */ V(2, 3, 4),
Chris@0 301 /* 0010 */ V(3, 2, 4),
Chris@0 302 /* 0011 */ V(0, 3, 4),
Chris@0 303 /* 0100 */ V(1, 3, 3),
Chris@0 304 /* 0101 */ V(1, 3, 3),
Chris@0 305 /* 0110 */ V(3, 1, 3),
Chris@0 306 /* 0111 */ V(3, 1, 3),
Chris@0 307 /* 1000 */ V(3, 0, 3),
Chris@0 308 /* 1001 */ V(3, 0, 3),
Chris@0 309 /* 1010 */ V(2, 2, 3),
Chris@0 310 /* 1011 */ V(2, 2, 3),
Chris@0 311 /* 1100 */ V(1, 2, 2),
Chris@0 312 /* 1101 */ V(1, 2, 2),
Chris@0 313 /* 1110 */ V(1, 2, 2),
Chris@0 314 /* 1111 */ V(1, 2, 2),
Chris@0 315
Chris@0 316 /* 0010 ... */
Chris@0 317 /* 00 */ V(2, 1, 1), /* 48 */
Chris@0 318 /* 01 */ V(2, 1, 1),
Chris@0 319 /* 10 */ V(0, 2, 2),
Chris@0 320 /* 11 */ V(2, 0, 2),
Chris@0 321
Chris@0 322 /* 0000 0000 ... */
Chris@0 323 /* 00 */ V(5, 5, 2), /* 52 */
Chris@0 324 /* 01 */ V(4, 5, 2),
Chris@0 325 /* 10 */ V(5, 4, 2),
Chris@0 326 /* 11 */ V(5, 3, 2),
Chris@0 327
Chris@0 328 /* 0000 0001 ... */
Chris@0 329 /* 0 */ V(3, 5, 1), /* 56 */
Chris@0 330 /* 1 */ V(4, 4, 1),
Chris@0 331
Chris@0 332 /* 0000 0010 ... */
Chris@0 333 /* 0 */ V(2, 5, 1), /* 58 */
Chris@0 334 /* 1 */ V(5, 2, 1),
Chris@0 335
Chris@0 336 /* 0000 0101 ... */
Chris@0 337 /* 0 */ V(0, 5, 1), /* 60 */
Chris@0 338 /* 1 */ V(3, 4, 1),
Chris@0 339
Chris@0 340 /* 0000 0111 ... */
Chris@0 341 /* 0 */ V(4, 3, 1), /* 62 */
Chris@0 342 /* 1 */ V(3, 3, 1)
Chris@0 343 };
Chris@0 344
Chris@0 345 # if 0
Chris@0 346 /* this version saves 8 entries (16 bytes) at the expense of
Chris@0 347 an extra lookup in 4 out of 36 cases */
Chris@0 348 static
Chris@0 349 union huffpair const hufftab8[] = {
Chris@0 350 /* 0000 */ PTR(16, 4),
Chris@0 351 /* 0001 */ PTR(32, 2),
Chris@0 352 /* 0010 */ V(1, 2, 4),
Chris@0 353 /* 0011 */ V(2, 1, 4),
Chris@0 354 /* 0100 */ V(1, 1, 2),
Chris@0 355 /* 0101 */ V(1, 1, 2),
Chris@0 356 /* 0110 */ V(1, 1, 2),
Chris@0 357 /* 0111 */ V(1, 1, 2),
Chris@0 358 /* 1000 */ V(0, 1, 3),
Chris@0 359 /* 1001 */ V(0, 1, 3),
Chris@0 360 /* 1010 */ V(1, 0, 3),
Chris@0 361 /* 1011 */ V(1, 0, 3),
Chris@0 362 /* 1100 */ V(0, 0, 2),
Chris@0 363 /* 1101 */ V(0, 0, 2),
Chris@0 364 /* 1110 */ V(0, 0, 2),
Chris@0 365 /* 1111 */ V(0, 0, 2),
Chris@0 366
Chris@0 367 /* 0000 ... */
Chris@0 368 /* 0000 */ PTR(36, 3), /* 16 */
Chris@0 369 /* 0001 */ PTR(44, 2),
Chris@0 370 /* 0010 */ PTR(48, 1),
Chris@0 371 /* 0011 */ V(1, 5, 4),
Chris@0 372 /* 0100 */ V(5, 1, 4),
Chris@0 373 /* 0101 */ PTR(50, 1),
Chris@0 374 /* 0110 */ PTR(52, 1),
Chris@0 375 /* 0111 */ V(2, 4, 4),
Chris@0 376 /* 1000 */ V(4, 2, 4),
Chris@0 377 /* 1001 */ V(1, 4, 4),
Chris@0 378 /* 1010 */ V(4, 1, 3),
Chris@0 379 /* 1011 */ V(4, 1, 3),
Chris@0 380 /* 1100 */ V(0, 4, 4),
Chris@0 381 /* 1101 */ V(4, 0, 4),
Chris@0 382 /* 1110 */ V(2, 3, 4),
Chris@0 383 /* 1111 */ V(3, 2, 4),
Chris@0 384
Chris@0 385 /* 0001 ... */
Chris@0 386 /* 00 */ PTR(54, 2), /* 32 */
Chris@0 387 /* 01 */ V(2, 2, 2),
Chris@0 388 /* 10 */ V(0, 2, 2),
Chris@0 389 /* 11 */ V(2, 0, 2),
Chris@0 390
Chris@0 391 /* 0000 0000 ... */
Chris@0 392 /* 000 */ V(5, 5, 3), /* 36 */
Chris@0 393 /* 001 */ V(5, 4, 3),
Chris@0 394 /* 010 */ V(4, 5, 2),
Chris@0 395 /* 011 */ V(4, 5, 2),
Chris@0 396 /* 100 */ V(5, 3, 1),
Chris@0 397 /* 101 */ V(5, 3, 1),
Chris@0 398 /* 110 */ V(5, 3, 1),
Chris@0 399 /* 111 */ V(5, 3, 1),
Chris@0 400
Chris@0 401 /* 0000 0001 ... */
Chris@0 402 /* 00 */ V(3, 5, 2), /* 44 */
Chris@0 403 /* 01 */ V(4, 4, 2),
Chris@0 404 /* 10 */ V(2, 5, 1),
Chris@0 405 /* 11 */ V(2, 5, 1),
Chris@0 406
Chris@0 407 /* 0000 0010 ... */
Chris@0 408 /* 0 */ V(5, 2, 1), /* 48 */
Chris@0 409 /* 1 */ V(0, 5, 1),
Chris@0 410
Chris@0 411 /* 0000 0101 ... */
Chris@0 412 /* 0 */ V(3, 4, 1), /* 50 */
Chris@0 413 /* 1 */ V(4, 3, 1),
Chris@0 414
Chris@0 415 /* 0000 0110 ... */
Chris@0 416 /* 0 */ V(5, 0, 1), /* 52 */
Chris@0 417 /* 1 */ V(3, 3, 1),
Chris@0 418
Chris@0 419 /* 0001 00 ... */
Chris@0 420 /* 00 */ V(1, 3, 2), /* 54 */
Chris@0 421 /* 01 */ V(3, 1, 2),
Chris@0 422 /* 10 */ V(0, 3, 2),
Chris@0 423 /* 11 */ V(3, 0, 2),
Chris@0 424 };
Chris@0 425 # else
Chris@0 426 static
Chris@0 427 union huffpair const hufftab8[] = {
Chris@0 428 /* 0000 */ PTR(16, 4),
Chris@0 429 /* 0001 */ PTR(32, 4),
Chris@0 430 /* 0010 */ V(1, 2, 4),
Chris@0 431 /* 0011 */ V(2, 1, 4),
Chris@0 432 /* 0100 */ V(1, 1, 2),
Chris@0 433 /* 0101 */ V(1, 1, 2),
Chris@0 434 /* 0110 */ V(1, 1, 2),
Chris@0 435 /* 0111 */ V(1, 1, 2),
Chris@0 436 /* 1000 */ V(0, 1, 3),
Chris@0 437 /* 1001 */ V(0, 1, 3),
Chris@0 438 /* 1010 */ V(1, 0, 3),
Chris@0 439 /* 1011 */ V(1, 0, 3),
Chris@0 440 /* 1100 */ V(0, 0, 2),
Chris@0 441 /* 1101 */ V(0, 0, 2),
Chris@0 442 /* 1110 */ V(0, 0, 2),
Chris@0 443 /* 1111 */ V(0, 0, 2),
Chris@0 444
Chris@0 445 /* 0000 ... */
Chris@0 446 /* 0000 */ PTR(48, 3), /* 16 */
Chris@0 447 /* 0001 */ PTR(56, 2),
Chris@0 448 /* 0010 */ PTR(60, 1),
Chris@0 449 /* 0011 */ V(1, 5, 4),
Chris@0 450 /* 0100 */ V(5, 1, 4),
Chris@0 451 /* 0101 */ PTR(62, 1),
Chris@0 452 /* 0110 */ PTR(64, 1),
Chris@0 453 /* 0111 */ V(2, 4, 4),
Chris@0 454 /* 1000 */ V(4, 2, 4),
Chris@0 455 /* 1001 */ V(1, 4, 4),
Chris@0 456 /* 1010 */ V(4, 1, 3),
Chris@0 457 /* 1011 */ V(4, 1, 3),
Chris@0 458 /* 1100 */ V(0, 4, 4),
Chris@0 459 /* 1101 */ V(4, 0, 4),
Chris@0 460 /* 1110 */ V(2, 3, 4),
Chris@0 461 /* 1111 */ V(3, 2, 4),
Chris@0 462
Chris@0 463 /* 0001 ... */
Chris@0 464 /* 0000 */ V(1, 3, 4), /* 32 */
Chris@0 465 /* 0001 */ V(3, 1, 4),
Chris@0 466 /* 0010 */ V(0, 3, 4),
Chris@0 467 /* 0011 */ V(3, 0, 4),
Chris@0 468 /* 0100 */ V(2, 2, 2),
Chris@0 469 /* 0101 */ V(2, 2, 2),
Chris@0 470 /* 0110 */ V(2, 2, 2),
Chris@0 471 /* 0111 */ V(2, 2, 2),
Chris@0 472 /* 1000 */ V(0, 2, 2),
Chris@0 473 /* 1001 */ V(0, 2, 2),
Chris@0 474 /* 1010 */ V(0, 2, 2),
Chris@0 475 /* 1011 */ V(0, 2, 2),
Chris@0 476 /* 1100 */ V(2, 0, 2),
Chris@0 477 /* 1101 */ V(2, 0, 2),
Chris@0 478 /* 1110 */ V(2, 0, 2),
Chris@0 479 /* 1111 */ V(2, 0, 2),
Chris@0 480
Chris@0 481 /* 0000 0000 ... */
Chris@0 482 /* 000 */ V(5, 5, 3), /* 48 */
Chris@0 483 /* 001 */ V(5, 4, 3),
Chris@0 484 /* 010 */ V(4, 5, 2),
Chris@0 485 /* 011 */ V(4, 5, 2),
Chris@0 486 /* 100 */ V(5, 3, 1),
Chris@0 487 /* 101 */ V(5, 3, 1),
Chris@0 488 /* 110 */ V(5, 3, 1),
Chris@0 489 /* 111 */ V(5, 3, 1),
Chris@0 490
Chris@0 491 /* 0000 0001 ... */
Chris@0 492 /* 00 */ V(3, 5, 2), /* 56 */
Chris@0 493 /* 01 */ V(4, 4, 2),
Chris@0 494 /* 10 */ V(2, 5, 1),
Chris@0 495 /* 11 */ V(2, 5, 1),
Chris@0 496
Chris@0 497 /* 0000 0010 ... */
Chris@0 498 /* 0 */ V(5, 2, 1), /* 60 */
Chris@0 499 /* 1 */ V(0, 5, 1),
Chris@0 500
Chris@0 501 /* 0000 0101 ... */
Chris@0 502 /* 0 */ V(3, 4, 1), /* 62 */
Chris@0 503 /* 1 */ V(4, 3, 1),
Chris@0 504
Chris@0 505 /* 0000 0110 ... */
Chris@0 506 /* 0 */ V(5, 0, 1), /* 64 */
Chris@0 507 /* 1 */ V(3, 3, 1)
Chris@0 508 };
Chris@0 509 # endif
Chris@0 510
Chris@0 511 static
Chris@0 512 union huffpair const hufftab9[] = {
Chris@0 513 /* 0000 */ PTR(16, 4),
Chris@0 514 /* 0001 */ PTR(32, 3),
Chris@0 515 /* 0010 */ PTR(40, 2),
Chris@0 516 /* 0011 */ PTR(44, 2),
Chris@0 517 /* 0100 */ PTR(48, 1),
Chris@0 518 /* 0101 */ V(1, 2, 4),
Chris@0 519 /* 0110 */ V(2, 1, 4),
Chris@0 520 /* 0111 */ V(2, 0, 4),
Chris@0 521 /* 1000 */ V(1, 1, 3),
Chris@0 522 /* 1001 */ V(1, 1, 3),
Chris@0 523 /* 1010 */ V(0, 1, 3),
Chris@0 524 /* 1011 */ V(0, 1, 3),
Chris@0 525 /* 1100 */ V(1, 0, 3),
Chris@0 526 /* 1101 */ V(1, 0, 3),
Chris@0 527 /* 1110 */ V(0, 0, 3),
Chris@0 528 /* 1111 */ V(0, 0, 3),
Chris@0 529
Chris@0 530 /* 0000 ... */
Chris@0 531 /* 0000 */ PTR(50, 1), /* 16 */
Chris@0 532 /* 0001 */ V(3, 5, 4),
Chris@0 533 /* 0010 */ V(5, 3, 4),
Chris@0 534 /* 0011 */ PTR(52, 1),
Chris@0 535 /* 0100 */ V(4, 4, 4),
Chris@0 536 /* 0101 */ V(2, 5, 4),
Chris@0 537 /* 0110 */ V(5, 2, 4),
Chris@0 538 /* 0111 */ V(1, 5, 4),
Chris@0 539 /* 1000 */ V(5, 1, 3),
Chris@0 540 /* 1001 */ V(5, 1, 3),
Chris@0 541 /* 1010 */ V(3, 4, 3),
Chris@0 542 /* 1011 */ V(3, 4, 3),
Chris@0 543 /* 1100 */ V(4, 3, 3),
Chris@0 544 /* 1101 */ V(4, 3, 3),
Chris@0 545 /* 1110 */ V(5, 0, 4),
Chris@0 546 /* 1111 */ V(0, 4, 4),
Chris@0 547
Chris@0 548 /* 0001 ... */
Chris@0 549 /* 000 */ V(2, 4, 3), /* 32 */
Chris@0 550 /* 001 */ V(4, 2, 3),
Chris@0 551 /* 010 */ V(3, 3, 3),
Chris@0 552 /* 011 */ V(4, 0, 3),
Chris@0 553 /* 100 */ V(1, 4, 2),
Chris@0 554 /* 101 */ V(1, 4, 2),
Chris@0 555 /* 110 */ V(4, 1, 2),
Chris@0 556 /* 111 */ V(4, 1, 2),
Chris@0 557
Chris@0 558 /* 0010 ... */
Chris@0 559 /* 00 */ V(2, 3, 2), /* 40 */
Chris@0 560 /* 01 */ V(3, 2, 2),
Chris@0 561 /* 10 */ V(1, 3, 1),
Chris@0 562 /* 11 */ V(1, 3, 1),
Chris@0 563
Chris@0 564 /* 0011 ... */
Chris@0 565 /* 00 */ V(3, 1, 1), /* 44 */
Chris@0 566 /* 01 */ V(3, 1, 1),
Chris@0 567 /* 10 */ V(0, 3, 2),
Chris@0 568 /* 11 */ V(3, 0, 2),
Chris@0 569
Chris@0 570 /* 0100 ... */
Chris@0 571 /* 0 */ V(2, 2, 1), /* 48 */
Chris@0 572 /* 1 */ V(0, 2, 1),
Chris@0 573
Chris@0 574 /* 0000 0000 ... */
Chris@0 575 /* 0 */ V(5, 5, 1), /* 50 */
Chris@0 576 /* 1 */ V(4, 5, 1),
Chris@0 577
Chris@0 578 /* 0000 0011 ... */
Chris@0 579 /* 0 */ V(5, 4, 1), /* 52 */
Chris@0 580 /* 1 */ V(0, 5, 1)
Chris@0 581 };
Chris@0 582
Chris@0 583 static
Chris@0 584 union huffpair const hufftab10[] = {
Chris@0 585 /* 0000 */ PTR(16, 4),
Chris@0 586 /* 0001 */ PTR(32, 4),
Chris@0 587 /* 0010 */ PTR(48, 2),
Chris@0 588 /* 0011 */ V(1, 1, 4),
Chris@0 589 /* 0100 */ V(0, 1, 3),
Chris@0 590 /* 0101 */ V(0, 1, 3),
Chris@0 591 /* 0110 */ V(1, 0, 3),
Chris@0 592 /* 0111 */ V(1, 0, 3),
Chris@0 593 /* 1000 */ V(0, 0, 1),
Chris@0 594 /* 1001 */ V(0, 0, 1),
Chris@0 595 /* 1010 */ V(0, 0, 1),
Chris@0 596 /* 1011 */ V(0, 0, 1),
Chris@0 597 /* 1100 */ V(0, 0, 1),
Chris@0 598 /* 1101 */ V(0, 0, 1),
Chris@0 599 /* 1110 */ V(0, 0, 1),
Chris@0 600 /* 1111 */ V(0, 0, 1),
Chris@0 601
Chris@0 602 /* 0000 ... */
Chris@0 603 /* 0000 */ PTR(52, 3), /* 16 */
Chris@0 604 /* 0001 */ PTR(60, 2),
Chris@0 605 /* 0010 */ PTR(64, 3),
Chris@0 606 /* 0011 */ PTR(72, 1),
Chris@0 607 /* 0100 */ PTR(74, 2),
Chris@0 608 /* 0101 */ PTR(78, 2),
Chris@0 609 /* 0110 */ PTR(82, 2),
Chris@0 610 /* 0111 */ V(1, 7, 4),
Chris@0 611 /* 1000 */ V(7, 1, 4),
Chris@0 612 /* 1001 */ PTR(86, 1),
Chris@0 613 /* 1010 */ PTR(88, 2),
Chris@0 614 /* 1011 */ PTR(92, 2),
Chris@0 615 /* 1100 */ V(1, 6, 4),
Chris@0 616 /* 1101 */ V(6, 1, 4),
Chris@0 617 /* 1110 */ V(6, 0, 4),
Chris@0 618 /* 1111 */ PTR(96, 1),
Chris@0 619
Chris@0 620 /* 0001 ... */
Chris@0 621 /* 0000 */ PTR(98, 1), /* 32 */
Chris@0 622 /* 0001 */ PTR(100, 1),
Chris@0 623 /* 0010 */ V(1, 4, 4),
Chris@0 624 /* 0011 */ V(4, 1, 4),
Chris@0 625 /* 0100 */ V(4, 0, 4),
Chris@0 626 /* 0101 */ V(2, 3, 4),
Chris@0 627 /* 0110 */ V(3, 2, 4),
Chris@0 628 /* 0111 */ V(0, 3, 4),
Chris@0 629 /* 1000 */ V(1, 3, 3),
Chris@0 630 /* 1001 */ V(1, 3, 3),
Chris@0 631 /* 1010 */ V(3, 1, 3),
Chris@0 632 /* 1011 */ V(3, 1, 3),
Chris@0 633 /* 1100 */ V(3, 0, 3),
Chris@0 634 /* 1101 */ V(3, 0, 3),
Chris@0 635 /* 1110 */ V(2, 2, 3),
Chris@0 636 /* 1111 */ V(2, 2, 3),
Chris@0 637
Chris@0 638 /* 0010 ... */
Chris@0 639 /* 00 */ V(1, 2, 2), /* 48 */
Chris@0 640 /* 01 */ V(2, 1, 2),
Chris@0 641 /* 10 */ V(0, 2, 2),
Chris@0 642 /* 11 */ V(2, 0, 2),
Chris@0 643
Chris@0 644 /* 0000 0000 ... */
Chris@0 645 /* 000 */ V(7, 7, 3), /* 52 */
Chris@0 646 /* 001 */ V(6, 7, 3),
Chris@0 647 /* 010 */ V(7, 6, 3),
Chris@0 648 /* 011 */ V(5, 7, 3),
Chris@0 649 /* 100 */ V(7, 5, 3),
Chris@0 650 /* 101 */ V(6, 6, 3),
Chris@0 651 /* 110 */ V(4, 7, 2),
Chris@0 652 /* 111 */ V(4, 7, 2),
Chris@0 653
Chris@0 654 /* 0000 0001 ... */
Chris@0 655 /* 00 */ V(7, 4, 2), /* 60 */
Chris@0 656 /* 01 */ V(5, 6, 2),
Chris@0 657 /* 10 */ V(6, 5, 2),
Chris@0 658 /* 11 */ V(3, 7, 2),
Chris@0 659
Chris@0 660 /* 0000 0010 ... */
Chris@0 661 /* 000 */ V(7, 3, 2), /* 64 */
Chris@0 662 /* 001 */ V(7, 3, 2),
Chris@0 663 /* 010 */ V(4, 6, 2),
Chris@0 664 /* 011 */ V(4, 6, 2),
Chris@0 665 /* 100 */ V(5, 5, 3),
Chris@0 666 /* 101 */ V(5, 4, 3),
Chris@0 667 /* 110 */ V(6, 3, 2),
Chris@0 668 /* 111 */ V(6, 3, 2),
Chris@0 669
Chris@0 670 /* 0000 0011 ... */
Chris@0 671 /* 0 */ V(2, 7, 1), /* 72 */
Chris@0 672 /* 1 */ V(7, 2, 1),
Chris@0 673
Chris@0 674 /* 0000 0100 ... */
Chris@0 675 /* 00 */ V(6, 4, 2), /* 74 */
Chris@0 676 /* 01 */ V(0, 7, 2),
Chris@0 677 /* 10 */ V(7, 0, 1),
Chris@0 678 /* 11 */ V(7, 0, 1),
Chris@0 679
Chris@0 680 /* 0000 0101 ... */
Chris@0 681 /* 00 */ V(6, 2, 1), /* 78 */
Chris@0 682 /* 01 */ V(6, 2, 1),
Chris@0 683 /* 10 */ V(4, 5, 2),
Chris@0 684 /* 11 */ V(3, 5, 2),
Chris@0 685
Chris@0 686 /* 0000 0110 ... */
Chris@0 687 /* 00 */ V(0, 6, 1), /* 82 */
Chris@0 688 /* 01 */ V(0, 6, 1),
Chris@0 689 /* 10 */ V(5, 3, 2),
Chris@0 690 /* 11 */ V(4, 4, 2),
Chris@0 691
Chris@0 692 /* 0000 1001 ... */
Chris@0 693 /* 0 */ V(3, 6, 1), /* 86 */
Chris@0 694 /* 1 */ V(2, 6, 1),
Chris@0 695
Chris@0 696 /* 0000 1010 ... */
Chris@0 697 /* 00 */ V(2, 5, 2), /* 88 */
Chris@0 698 /* 01 */ V(5, 2, 2),
Chris@0 699 /* 10 */ V(1, 5, 1),
Chris@0 700 /* 11 */ V(1, 5, 1),
Chris@0 701
Chris@0 702 /* 0000 1011 ... */
Chris@0 703 /* 00 */ V(5, 1, 1), /* 92 */
Chris@0 704 /* 01 */ V(5, 1, 1),
Chris@0 705 /* 10 */ V(3, 4, 2),
Chris@0 706 /* 11 */ V(4, 3, 2),
Chris@0 707
Chris@0 708 /* 0000 1111 ... */
Chris@0 709 /* 0 */ V(0, 5, 1), /* 96 */
Chris@0 710 /* 1 */ V(5, 0, 1),
Chris@0 711
Chris@0 712 /* 0001 0000 ... */
Chris@0 713 /* 0 */ V(2, 4, 1), /* 98 */
Chris@0 714 /* 1 */ V(4, 2, 1),
Chris@0 715
Chris@0 716 /* 0001 0001 ... */
Chris@0 717 /* 0 */ V(3, 3, 1), /* 100 */
Chris@0 718 /* 1 */ V(0, 4, 1)
Chris@0 719 };
Chris@0 720
Chris@0 721 static
Chris@0 722 union huffpair const hufftab11[] = {
Chris@0 723 /* 0000 */ PTR(16, 4),
Chris@0 724 /* 0001 */ PTR(32, 4),
Chris@0 725 /* 0010 */ PTR(48, 4),
Chris@0 726 /* 0011 */ PTR(64, 3),
Chris@0 727 /* 0100 */ V(1, 2, 4),
Chris@0 728 /* 0101 */ PTR(72, 1),
Chris@0 729 /* 0110 */ V(1, 1, 3),
Chris@0 730 /* 0111 */ V(1, 1, 3),
Chris@0 731 /* 1000 */ V(0, 1, 3),
Chris@0 732 /* 1001 */ V(0, 1, 3),
Chris@0 733 /* 1010 */ V(1, 0, 3),
Chris@0 734 /* 1011 */ V(1, 0, 3),
Chris@0 735 /* 1100 */ V(0, 0, 2),
Chris@0 736 /* 1101 */ V(0, 0, 2),
Chris@0 737 /* 1110 */ V(0, 0, 2),
Chris@0 738 /* 1111 */ V(0, 0, 2),
Chris@0 739
Chris@0 740 /* 0000 ... */
Chris@0 741 /* 0000 */ PTR(74, 2), /* 16 */
Chris@0 742 /* 0001 */ PTR(78, 3),
Chris@0 743 /* 0010 */ PTR(86, 2),
Chris@0 744 /* 0011 */ PTR(90, 1),
Chris@0 745 /* 0100 */ PTR(92, 2),
Chris@0 746 /* 0101 */ V(2, 7, 4),
Chris@0 747 /* 0110 */ V(7, 2, 4),
Chris@0 748 /* 0111 */ PTR(96, 1),
Chris@0 749 /* 1000 */ V(7, 1, 3),
Chris@0 750 /* 1001 */ V(7, 1, 3),
Chris@0 751 /* 1010 */ V(1, 7, 4),
Chris@0 752 /* 1011 */ V(7, 0, 4),
Chris@0 753 /* 1100 */ V(3, 6, 4),
Chris@0 754 /* 1101 */ V(6, 3, 4),
Chris@0 755 /* 1110 */ V(6, 0, 4),
Chris@0 756 /* 1111 */ PTR(98, 1),
Chris@0 757
Chris@0 758 /* 0001 ... */
Chris@0 759 /* 0000 */ PTR(100, 1), /* 32 */
Chris@0 760 /* 0001 */ V(1, 5, 4),
Chris@0 761 /* 0010 */ V(6, 2, 3),
Chris@0 762 /* 0011 */ V(6, 2, 3),
Chris@0 763 /* 0100 */ V(2, 6, 4),
Chris@0 764 /* 0101 */ V(0, 6, 4),
Chris@0 765 /* 0110 */ V(1, 6, 3),
Chris@0 766 /* 0111 */ V(1, 6, 3),
Chris@0 767 /* 1000 */ V(6, 1, 3),
Chris@0 768 /* 1001 */ V(6, 1, 3),
Chris@0 769 /* 1010 */ V(5, 1, 4),
Chris@0 770 /* 1011 */ V(3, 4, 4),
Chris@0 771 /* 1100 */ V(5, 0, 4),
Chris@0 772 /* 1101 */ PTR(102, 1),
Chris@0 773 /* 1110 */ V(2, 4, 4),
Chris@0 774 /* 1111 */ V(4, 2, 4),
Chris@0 775
Chris@0 776 /* 0010 ... */
Chris@0 777 /* 0000 */ V(1, 4, 4), /* 48 */
Chris@0 778 /* 0001 */ V(4, 1, 4),
Chris@0 779 /* 0010 */ V(0, 4, 4),
Chris@0 780 /* 0011 */ V(4, 0, 4),
Chris@0 781 /* 0100 */ V(2, 3, 3),
Chris@0 782 /* 0101 */ V(2, 3, 3),
Chris@0 783 /* 0110 */ V(3, 2, 3),
Chris@0 784 /* 0111 */ V(3, 2, 3),
Chris@0 785 /* 1000 */ V(1, 3, 2),
Chris@0 786 /* 1001 */ V(1, 3, 2),
Chris@0 787 /* 1010 */ V(1, 3, 2),
Chris@0 788 /* 1011 */ V(1, 3, 2),
Chris@0 789 /* 1100 */ V(3, 1, 2),
Chris@0 790 /* 1101 */ V(3, 1, 2),
Chris@0 791 /* 1110 */ V(3, 1, 2),
Chris@0 792 /* 1111 */ V(3, 1, 2),
Chris@0 793
Chris@0 794 /* 0011 ... */
Chris@0 795 /* 000 */ V(0, 3, 3), /* 64 */
Chris@0 796 /* 001 */ V(3, 0, 3),
Chris@0 797 /* 010 */ V(2, 2, 2),
Chris@0 798 /* 011 */ V(2, 2, 2),
Chris@0 799 /* 100 */ V(2, 1, 1),
Chris@0 800 /* 101 */ V(2, 1, 1),
Chris@0 801 /* 110 */ V(2, 1, 1),
Chris@0 802 /* 111 */ V(2, 1, 1),
Chris@0 803
Chris@0 804 /* 0101 ... */
Chris@0 805 /* 0 */ V(0, 2, 1), /* 72 */
Chris@0 806 /* 1 */ V(2, 0, 1),
Chris@0 807
Chris@0 808 /* 0000 0000 ... */
Chris@0 809 /* 00 */ V(7, 7, 2), /* 74 */
Chris@0 810 /* 01 */ V(6, 7, 2),
Chris@0 811 /* 10 */ V(7, 6, 2),
Chris@0 812 /* 11 */ V(7, 5, 2),
Chris@0 813
Chris@0 814 /* 0000 0001 ... */
Chris@0 815 /* 000 */ V(6, 6, 2), /* 78 */
Chris@0 816 /* 001 */ V(6, 6, 2),
Chris@0 817 /* 010 */ V(4, 7, 2),
Chris@0 818 /* 011 */ V(4, 7, 2),
Chris@0 819 /* 100 */ V(7, 4, 2),
Chris@0 820 /* 101 */ V(7, 4, 2),
Chris@0 821 /* 110 */ V(5, 7, 3),
Chris@0 822 /* 111 */ V(5, 5, 3),
Chris@0 823
Chris@0 824 /* 0000 0010 ... */
Chris@0 825 /* 00 */ V(5, 6, 2), /* 86 */
Chris@0 826 /* 01 */ V(6, 5, 2),
Chris@0 827 /* 10 */ V(3, 7, 1),
Chris@0 828 /* 11 */ V(3, 7, 1),
Chris@0 829
Chris@0 830 /* 0000 0011 ... */
Chris@0 831 /* 0 */ V(7, 3, 1), /* 90 */
Chris@0 832 /* 1 */ V(4, 6, 1),
Chris@0 833
Chris@0 834 /* 0000 0100 ... */
Chris@0 835 /* 00 */ V(4, 5, 2), /* 92 */
Chris@0 836 /* 01 */ V(5, 4, 2),
Chris@0 837 /* 10 */ V(3, 5, 2),
Chris@0 838 /* 11 */ V(5, 3, 2),
Chris@0 839
Chris@0 840 /* 0000 0111 ... */
Chris@0 841 /* 0 */ V(6, 4, 1), /* 96 */
Chris@0 842 /* 1 */ V(0, 7, 1),
Chris@0 843
Chris@0 844 /* 0000 1111 ... */
Chris@0 845 /* 0 */ V(4, 4, 1), /* 98 */
Chris@0 846 /* 1 */ V(2, 5, 1),
Chris@0 847
Chris@0 848 /* 0001 0000 ... */
Chris@0 849 /* 0 */ V(5, 2, 1), /* 100 */
Chris@0 850 /* 1 */ V(0, 5, 1),
Chris@0 851
Chris@0 852 /* 0001 1101 ... */
Chris@0 853 /* 0 */ V(4, 3, 1), /* 102 */
Chris@0 854 /* 1 */ V(3, 3, 1)
Chris@0 855 };
Chris@0 856
Chris@0 857 static
Chris@0 858 union huffpair const hufftab12[] = {
Chris@0 859 /* 0000 */ PTR(16, 4),
Chris@0 860 /* 0001 */ PTR(32, 4),
Chris@0 861 /* 0010 */ PTR(48, 4),
Chris@0 862 /* 0011 */ PTR(64, 2),
Chris@0 863 /* 0100 */ PTR(68, 3),
Chris@0 864 /* 0101 */ PTR(76, 1),
Chris@0 865 /* 0110 */ V(1, 2, 4),
Chris@0 866 /* 0111 */ V(2, 1, 4),
Chris@0 867 /* 1000 */ PTR(78, 1),
Chris@0 868 /* 1001 */ V(0, 0, 4),
Chris@0 869 /* 1010 */ V(1, 1, 3),
Chris@0 870 /* 1011 */ V(1, 1, 3),
Chris@0 871 /* 1100 */ V(0, 1, 3),
Chris@0 872 /* 1101 */ V(0, 1, 3),
Chris@0 873 /* 1110 */ V(1, 0, 3),
Chris@0 874 /* 1111 */ V(1, 0, 3),
Chris@0 875
Chris@0 876 /* 0000 ... */
Chris@0 877 /* 0000 */ PTR(80, 2), /* 16 */
Chris@0 878 /* 0001 */ PTR(84, 1),
Chris@0 879 /* 0010 */ PTR(86, 1),
Chris@0 880 /* 0011 */ PTR(88, 1),
Chris@0 881 /* 0100 */ V(5, 6, 4),
Chris@0 882 /* 0101 */ V(3, 7, 4),
Chris@0 883 /* 0110 */ PTR(90, 1),
Chris@0 884 /* 0111 */ V(2, 7, 4),
Chris@0 885 /* 1000 */ V(7, 2, 4),
Chris@0 886 /* 1001 */ V(4, 6, 4),
Chris@0 887 /* 1010 */ V(6, 4, 4),
Chris@0 888 /* 1011 */ V(1, 7, 4),
Chris@0 889 /* 1100 */ V(7, 1, 4),
Chris@0 890 /* 1101 */ PTR(92, 1),
Chris@0 891 /* 1110 */ V(3, 6, 4),
Chris@0 892 /* 1111 */ V(6, 3, 4),
Chris@0 893
Chris@0 894 /* 0001 ... */
Chris@0 895 /* 0000 */ V(4, 5, 4), /* 32 */
Chris@0 896 /* 0001 */ V(5, 4, 4),
Chris@0 897 /* 0010 */ V(4, 4, 4),
Chris@0 898 /* 0011 */ PTR(94, 1),
Chris@0 899 /* 0100 */ V(2, 6, 3),
Chris@0 900 /* 0101 */ V(2, 6, 3),
Chris@0 901 /* 0110 */ V(6, 2, 3),
Chris@0 902 /* 0111 */ V(6, 2, 3),
Chris@0 903 /* 1000 */ V(6, 1, 3),
Chris@0 904 /* 1001 */ V(6, 1, 3),
Chris@0 905 /* 1010 */ V(1, 6, 4),
Chris@0 906 /* 1011 */ V(6, 0, 4),
Chris@0 907 /* 1100 */ V(3, 5, 4),
Chris@0 908 /* 1101 */ V(5, 3, 4),
Chris@0 909 /* 1110 */ V(2, 5, 4),
Chris@0 910 /* 1111 */ V(5, 2, 4),
Chris@0 911
Chris@0 912 /* 0010 ... */
Chris@0 913 /* 0000 */ V(1, 5, 3), /* 48 */
Chris@0 914 /* 0001 */ V(1, 5, 3),
Chris@0 915 /* 0010 */ V(5, 1, 3),
Chris@0 916 /* 0011 */ V(5, 1, 3),
Chris@0 917 /* 0100 */ V(3, 4, 3),
Chris@0 918 /* 0101 */ V(3, 4, 3),
Chris@0 919 /* 0110 */ V(4, 3, 3),
Chris@0 920 /* 0111 */ V(4, 3, 3),
Chris@0 921 /* 1000 */ V(5, 0, 4),
Chris@0 922 /* 1001 */ V(0, 4, 4),
Chris@0 923 /* 1010 */ V(2, 4, 3),
Chris@0 924 /* 1011 */ V(2, 4, 3),
Chris@0 925 /* 1100 */ V(4, 2, 3),
Chris@0 926 /* 1101 */ V(4, 2, 3),
Chris@0 927 /* 1110 */ V(1, 4, 3),
Chris@0 928 /* 1111 */ V(1, 4, 3),
Chris@0 929
Chris@0 930 /* 0011 ... */
Chris@0 931 /* 00 */ V(3, 3, 2), /* 64 */
Chris@0 932 /* 01 */ V(4, 1, 2),
Chris@0 933 /* 10 */ V(2, 3, 2),
Chris@0 934 /* 11 */ V(3, 2, 2),
Chris@0 935
Chris@0 936 /* 0100 ... */
Chris@0 937 /* 000 */ V(4, 0, 3), /* 68 */
Chris@0 938 /* 001 */ V(0, 3, 3),
Chris@0 939 /* 010 */ V(3, 0, 2),
Chris@0 940 /* 011 */ V(3, 0, 2),
Chris@0 941 /* 100 */ V(1, 3, 1),
Chris@0 942 /* 101 */ V(1, 3, 1),
Chris@0 943 /* 110 */ V(1, 3, 1),
Chris@0 944 /* 111 */ V(1, 3, 1),
Chris@0 945
Chris@0 946 /* 0101 ... */
Chris@0 947 /* 0 */ V(3, 1, 1), /* 76 */
Chris@0 948 /* 1 */ V(2, 2, 1),
Chris@0 949
Chris@0 950 /* 1000 ... */
Chris@0 951 /* 0 */ V(0, 2, 1), /* 78 */
Chris@0 952 /* 1 */ V(2, 0, 1),
Chris@0 953
Chris@0 954 /* 0000 0000 ... */
Chris@0 955 /* 00 */ V(7, 7, 2), /* 80 */
Chris@0 956 /* 01 */ V(6, 7, 2),
Chris@0 957 /* 10 */ V(7, 6, 1),
Chris@0 958 /* 11 */ V(7, 6, 1),
Chris@0 959
Chris@0 960 /* 0000 0001 ... */
Chris@0 961 /* 0 */ V(5, 7, 1), /* 84 */
Chris@0 962 /* 1 */ V(7, 5, 1),
Chris@0 963
Chris@0 964 /* 0000 0010 ... */
Chris@0 965 /* 0 */ V(6, 6, 1), /* 86 */
Chris@0 966 /* 1 */ V(4, 7, 1),
Chris@0 967
Chris@0 968 /* 0000 0011 ... */
Chris@0 969 /* 0 */ V(7, 4, 1), /* 88 */
Chris@0 970 /* 1 */ V(6, 5, 1),
Chris@0 971
Chris@0 972 /* 0000 0110 ... */
Chris@0 973 /* 0 */ V(7, 3, 1), /* 90 */
Chris@0 974 /* 1 */ V(5, 5, 1),
Chris@0 975
Chris@0 976 /* 0000 1101 ... */
Chris@0 977 /* 0 */ V(0, 7, 1), /* 92 */
Chris@0 978 /* 1 */ V(7, 0, 1),
Chris@0 979
Chris@0 980 /* 0001 0011 ... */
Chris@0 981 /* 0 */ V(0, 6, 1), /* 94 */
Chris@0 982 /* 1 */ V(0, 5, 1)
Chris@0 983 };
Chris@0 984
Chris@0 985 static
Chris@0 986 union huffpair const hufftab13[] = {
Chris@0 987 /* 0000 */ PTR(16, 4),
Chris@0 988 /* 0001 */ PTR(32, 4),
Chris@0 989 /* 0010 */ PTR(48, 4),
Chris@0 990 /* 0011 */ PTR(64, 2),
Chris@0 991 /* 0100 */ V(1, 1, 4),
Chris@0 992 /* 0101 */ V(0, 1, 4),
Chris@0 993 /* 0110 */ V(1, 0, 3),
Chris@0 994 /* 0111 */ V(1, 0, 3),
Chris@0 995 /* 1000 */ V(0, 0, 1),
Chris@0 996 /* 1001 */ V(0, 0, 1),
Chris@0 997 /* 1010 */ V(0, 0, 1),
Chris@0 998 /* 1011 */ V(0, 0, 1),
Chris@0 999 /* 1100 */ V(0, 0, 1),
Chris@0 1000 /* 1101 */ V(0, 0, 1),
Chris@0 1001 /* 1110 */ V(0, 0, 1),
Chris@0 1002 /* 1111 */ V(0, 0, 1),
Chris@0 1003
Chris@0 1004 /* 0000 ... */
Chris@0 1005 /* 0000 */ PTR(68, 4), /* 16 */
Chris@0 1006 /* 0001 */ PTR(84, 4),
Chris@0 1007 /* 0010 */ PTR(100, 4),
Chris@0 1008 /* 0011 */ PTR(116, 4),
Chris@0 1009 /* 0100 */ PTR(132, 4),
Chris@0 1010 /* 0101 */ PTR(148, 4),
Chris@0 1011 /* 0110 */ PTR(164, 3),
Chris@0 1012 /* 0111 */ PTR(172, 3),
Chris@0 1013 /* 1000 */ PTR(180, 3),
Chris@0 1014 /* 1001 */ PTR(188, 3),
Chris@0 1015 /* 1010 */ PTR(196, 3),
Chris@0 1016 /* 1011 */ PTR(204, 3),
Chris@0 1017 /* 1100 */ PTR(212, 1),
Chris@0 1018 /* 1101 */ PTR(214, 2),
Chris@0 1019 /* 1110 */ PTR(218, 3),
Chris@0 1020 /* 1111 */ PTR(226, 1),
Chris@0 1021
Chris@0 1022 /* 0001 ... */
Chris@0 1023 /* 0000 */ PTR(228, 2), /* 32 */
Chris@0 1024 /* 0001 */ PTR(232, 2),
Chris@0 1025 /* 0010 */ PTR(236, 2),
Chris@0 1026 /* 0011 */ PTR(240, 2),
Chris@0 1027 /* 0100 */ V(8, 1, 4),
Chris@0 1028 /* 0101 */ PTR(244, 1),
Chris@0 1029 /* 0110 */ PTR(246, 1),
Chris@0 1030 /* 0111 */ PTR(248, 1),
Chris@0 1031 /* 1000 */ PTR(250, 2),
Chris@0 1032 /* 1001 */ PTR(254, 1),
Chris@0 1033 /* 1010 */ V(1, 5, 4),
Chris@0 1034 /* 1011 */ V(5, 1, 4),
Chris@0 1035 /* 1100 */ PTR(256, 1),
Chris@0 1036 /* 1101 */ PTR(258, 1),
Chris@0 1037 /* 1110 */ PTR(260, 1),
Chris@0 1038 /* 1111 */ V(1, 4, 4),
Chris@0 1039
Chris@0 1040 /* 0010 ... */
Chris@0 1041 /* 0000 */ V(4, 1, 3), /* 48 */
Chris@0 1042 /* 0001 */ V(4, 1, 3),
Chris@0 1043 /* 0010 */ V(0, 4, 4),
Chris@0 1044 /* 0011 */ V(4, 0, 4),
Chris@0 1045 /* 0100 */ V(2, 3, 4),
Chris@0 1046 /* 0101 */ V(3, 2, 4),
Chris@0 1047 /* 0110 */ V(1, 3, 3),
Chris@0 1048 /* 0111 */ V(1, 3, 3),
Chris@0 1049 /* 1000 */ V(3, 1, 3),
Chris@0 1050 /* 1001 */ V(3, 1, 3),
Chris@0 1051 /* 1010 */ V(0, 3, 3),
Chris@0 1052 /* 1011 */ V(0, 3, 3),
Chris@0 1053 /* 1100 */ V(3, 0, 3),
Chris@0 1054 /* 1101 */ V(3, 0, 3),
Chris@0 1055 /* 1110 */ V(2, 2, 3),
Chris@0 1056 /* 1111 */ V(2, 2, 3),
Chris@0 1057
Chris@0 1058 /* 0011 ... */
Chris@0 1059 /* 00 */ V(1, 2, 2), /* 64 */
Chris@0 1060 /* 01 */ V(2, 1, 2),
Chris@0 1061 /* 10 */ V(0, 2, 2),
Chris@0 1062 /* 11 */ V(2, 0, 2),
Chris@0 1063
Chris@0 1064 /* 0000 0000 ... */
Chris@0 1065 /* 0000 */ PTR(262, 4), /* 68 */
Chris@0 1066 /* 0001 */ PTR(278, 4),
Chris@0 1067 /* 0010 */ PTR(294, 4),
Chris@0 1068 /* 0011 */ PTR(310, 3),
Chris@0 1069 /* 0100 */ PTR(318, 2),
Chris@0 1070 /* 0101 */ PTR(322, 2),
Chris@0 1071 /* 0110 */ PTR(326, 3),
Chris@0 1072 /* 0111 */ PTR(334, 2),
Chris@0 1073 /* 1000 */ PTR(338, 1),
Chris@0 1074 /* 1001 */ PTR(340, 2),
Chris@0 1075 /* 1010 */ PTR(344, 2),
Chris@0 1076 /* 1011 */ PTR(348, 2),
Chris@0 1077 /* 1100 */ PTR(352, 2),
Chris@0 1078 /* 1101 */ PTR(356, 2),
Chris@0 1079 /* 1110 */ V(1, 15, 4),
Chris@0 1080 /* 1111 */ V(15, 1, 4),
Chris@0 1081
Chris@0 1082 /* 0000 0001 ... */
Chris@0 1083 /* 0000 */ V(15, 0, 4), /* 84 */
Chris@0 1084 /* 0001 */ PTR(360, 1),
Chris@0 1085 /* 0010 */ PTR(362, 1),
Chris@0 1086 /* 0011 */ PTR(364, 1),
Chris@0 1087 /* 0100 */ V(14, 2, 4),
Chris@0 1088 /* 0101 */ PTR(366, 1),
Chris@0 1089 /* 0110 */ V(1, 14, 4),
Chris@0 1090 /* 0111 */ V(14, 1, 4),
Chris@0 1091 /* 1000 */ PTR(368, 1),
Chris@0 1092 /* 1001 */ PTR(370, 1),
Chris@0 1093 /* 1010 */ PTR(372, 1),
Chris@0 1094 /* 1011 */ PTR(374, 1),
Chris@0 1095 /* 1100 */ PTR(376, 1),
Chris@0 1096 /* 1101 */ PTR(378, 1),
Chris@0 1097 /* 1110 */ V(12, 6, 4),
Chris@0 1098 /* 1111 */ V(3, 13, 4),
Chris@0 1099
Chris@0 1100 /* 0000 0010 ... */
Chris@0 1101 /* 0000 */ PTR(380, 1), /* 100 */
Chris@0 1102 /* 0001 */ V(2, 13, 4),
Chris@0 1103 /* 0010 */ V(13, 2, 4),
Chris@0 1104 /* 0011 */ V(1, 13, 4),
Chris@0 1105 /* 0100 */ V(11, 7, 4),
Chris@0 1106 /* 0101 */ PTR(382, 1),
Chris@0 1107 /* 0110 */ PTR(384, 1),
Chris@0 1108 /* 0111 */ V(12, 3, 4),
Chris@0 1109 /* 1000 */ PTR(386, 1),
Chris@0 1110 /* 1001 */ V(4, 11, 4),
Chris@0 1111 /* 1010 */ V(13, 1, 3),
Chris@0 1112 /* 1011 */ V(13, 1, 3),
Chris@0 1113 /* 1100 */ V(0, 13, 4),
Chris@0 1114 /* 1101 */ V(13, 0, 4),
Chris@0 1115 /* 1110 */ V(8, 10, 4),
Chris@0 1116 /* 1111 */ V(10, 8, 4),
Chris@0 1117
Chris@0 1118 /* 0000 0011 ... */
Chris@0 1119 /* 0000 */ V(4, 12, 4), /* 116 */
Chris@0 1120 /* 0001 */ V(12, 4, 4),
Chris@0 1121 /* 0010 */ V(6, 11, 4),
Chris@0 1122 /* 0011 */ V(11, 6, 4),
Chris@0 1123 /* 0100 */ V(3, 12, 3),
Chris@0 1124 /* 0101 */ V(3, 12, 3),
Chris@0 1125 /* 0110 */ V(2, 12, 3),
Chris@0 1126 /* 0111 */ V(2, 12, 3),
Chris@0 1127 /* 1000 */ V(12, 2, 3),
Chris@0 1128 /* 1001 */ V(12, 2, 3),
Chris@0 1129 /* 1010 */ V(5, 11, 3),
Chris@0 1130 /* 1011 */ V(5, 11, 3),
Chris@0 1131 /* 1100 */ V(11, 5, 4),
Chris@0 1132 /* 1101 */ V(8, 9, 4),
Chris@0 1133 /* 1110 */ V(1, 12, 3),
Chris@0 1134 /* 1111 */ V(1, 12, 3),
Chris@0 1135
Chris@0 1136 /* 0000 0100 ... */
Chris@0 1137 /* 0000 */ V(12, 1, 3), /* 132 */
Chris@0 1138 /* 0001 */ V(12, 1, 3),
Chris@0 1139 /* 0010 */ V(9, 8, 4),
Chris@0 1140 /* 0011 */ V(0, 12, 4),
Chris@0 1141 /* 0100 */ V(12, 0, 3),
Chris@0 1142 /* 0101 */ V(12, 0, 3),
Chris@0 1143 /* 0110 */ V(11, 4, 4),
Chris@0 1144 /* 0111 */ V(6, 10, 4),
Chris@0 1145 /* 1000 */ V(10, 6, 4),
Chris@0 1146 /* 1001 */ V(7, 9, 4),
Chris@0 1147 /* 1010 */ V(3, 11, 3),
Chris@0 1148 /* 1011 */ V(3, 11, 3),
Chris@0 1149 /* 1100 */ V(11, 3, 3),
Chris@0 1150 /* 1101 */ V(11, 3, 3),
Chris@0 1151 /* 1110 */ V(8, 8, 4),
Chris@0 1152 /* 1111 */ V(5, 10, 4),
Chris@0 1153
Chris@0 1154 /* 0000 0101 ... */
Chris@0 1155 /* 0000 */ V(2, 11, 3), /* 148 */
Chris@0 1156 /* 0001 */ V(2, 11, 3),
Chris@0 1157 /* 0010 */ V(10, 5, 4),
Chris@0 1158 /* 0011 */ V(6, 9, 4),
Chris@0 1159 /* 0100 */ V(10, 4, 3),
Chris@0 1160 /* 0101 */ V(10, 4, 3),
Chris@0 1161 /* 0110 */ V(7, 8, 4),
Chris@0 1162 /* 0111 */ V(8, 7, 4),
Chris@0 1163 /* 1000 */ V(9, 4, 3),
Chris@0 1164 /* 1001 */ V(9, 4, 3),
Chris@0 1165 /* 1010 */ V(7, 7, 4),
Chris@0 1166 /* 1011 */ V(7, 6, 4),
Chris@0 1167 /* 1100 */ V(11, 2, 2),
Chris@0 1168 /* 1101 */ V(11, 2, 2),
Chris@0 1169 /* 1110 */ V(11, 2, 2),
Chris@0 1170 /* 1111 */ V(11, 2, 2),
Chris@0 1171
Chris@0 1172 /* 0000 0110 ... */
Chris@0 1173 /* 000 */ V(1, 11, 2), /* 164 */
Chris@0 1174 /* 001 */ V(1, 11, 2),
Chris@0 1175 /* 010 */ V(11, 1, 2),
Chris@0 1176 /* 011 */ V(11, 1, 2),
Chris@0 1177 /* 100 */ V(0, 11, 3),
Chris@0 1178 /* 101 */ V(11, 0, 3),
Chris@0 1179 /* 110 */ V(9, 6, 3),
Chris@0 1180 /* 111 */ V(4, 10, 3),
Chris@0 1181
Chris@0 1182 /* 0000 0111 ... */
Chris@0 1183 /* 000 */ V(3, 10, 3), /* 172 */
Chris@0 1184 /* 001 */ V(10, 3, 3),
Chris@0 1185 /* 010 */ V(5, 9, 3),
Chris@0 1186 /* 011 */ V(9, 5, 3),
Chris@0 1187 /* 100 */ V(2, 10, 2),
Chris@0 1188 /* 101 */ V(2, 10, 2),
Chris@0 1189 /* 110 */ V(10, 2, 2),
Chris@0 1190 /* 111 */ V(10, 2, 2),
Chris@0 1191
Chris@0 1192 /* 0000 1000 ... */
Chris@0 1193 /* 000 */ V(1, 10, 2), /* 180 */
Chris@0 1194 /* 001 */ V(1, 10, 2),
Chris@0 1195 /* 010 */ V(10, 1, 2),
Chris@0 1196 /* 011 */ V(10, 1, 2),
Chris@0 1197 /* 100 */ V(0, 10, 3),
Chris@0 1198 /* 101 */ V(6, 8, 3),
Chris@0 1199 /* 110 */ V(10, 0, 2),
Chris@0 1200 /* 111 */ V(10, 0, 2),
Chris@0 1201
Chris@0 1202 /* 0000 1001 ... */
Chris@0 1203 /* 000 */ V(8, 6, 3), /* 188 */
Chris@0 1204 /* 001 */ V(4, 9, 3),
Chris@0 1205 /* 010 */ V(9, 3, 2),
Chris@0 1206 /* 011 */ V(9, 3, 2),
Chris@0 1207 /* 100 */ V(3, 9, 3),
Chris@0 1208 /* 101 */ V(5, 8, 3),
Chris@0 1209 /* 110 */ V(8, 5, 3),
Chris@0 1210 /* 111 */ V(6, 7, 3),
Chris@0 1211
Chris@0 1212 /* 0000 1010 ... */
Chris@0 1213 /* 000 */ V(2, 9, 2), /* 196 */
Chris@0 1214 /* 001 */ V(2, 9, 2),
Chris@0 1215 /* 010 */ V(9, 2, 2),
Chris@0 1216 /* 011 */ V(9, 2, 2),
Chris@0 1217 /* 100 */ V(5, 7, 3),
Chris@0 1218 /* 101 */ V(7, 5, 3),
Chris@0 1219 /* 110 */ V(3, 8, 2),
Chris@0 1220 /* 111 */ V(3, 8, 2),
Chris@0 1221
Chris@0 1222 /* 0000 1011 ... */
Chris@0 1223 /* 000 */ V(8, 3, 2), /* 204 */
Chris@0 1224 /* 001 */ V(8, 3, 2),
Chris@0 1225 /* 010 */ V(6, 6, 3),
Chris@0 1226 /* 011 */ V(4, 7, 3),
Chris@0 1227 /* 100 */ V(7, 4, 3),
Chris@0 1228 /* 101 */ V(5, 6, 3),
Chris@0 1229 /* 110 */ V(6, 5, 3),
Chris@0 1230 /* 111 */ V(7, 3, 3),
Chris@0 1231
Chris@0 1232 /* 0000 1100 ... */
Chris@0 1233 /* 0 */ V(1, 9, 1), /* 212 */
Chris@0 1234 /* 1 */ V(9, 1, 1),
Chris@0 1235
Chris@0 1236 /* 0000 1101 ... */
Chris@0 1237 /* 00 */ V(0, 9, 2), /* 214 */
Chris@0 1238 /* 01 */ V(9, 0, 2),
Chris@0 1239 /* 10 */ V(4, 8, 2),
Chris@0 1240 /* 11 */ V(8, 4, 2),
Chris@0 1241
Chris@0 1242 /* 0000 1110 ... */
Chris@0 1243 /* 000 */ V(7, 2, 2), /* 218 */
Chris@0 1244 /* 001 */ V(7, 2, 2),
Chris@0 1245 /* 010 */ V(4, 6, 3),
Chris@0 1246 /* 011 */ V(6, 4, 3),
Chris@0 1247 /* 100 */ V(2, 8, 1),
Chris@0 1248 /* 101 */ V(2, 8, 1),
Chris@0 1249 /* 110 */ V(2, 8, 1),
Chris@0 1250 /* 111 */ V(2, 8, 1),
Chris@0 1251
Chris@0 1252 /* 0000 1111 ... */
Chris@0 1253 /* 0 */ V(8, 2, 1), /* 226 */
Chris@0 1254 /* 1 */ V(1, 8, 1),
Chris@0 1255
Chris@0 1256 /* 0001 0000 ... */
Chris@0 1257 /* 00 */ V(3, 7, 2), /* 228 */
Chris@0 1258 /* 01 */ V(2, 7, 2),
Chris@0 1259 /* 10 */ V(1, 7, 1),
Chris@0 1260 /* 11 */ V(1, 7, 1),
Chris@0 1261
Chris@0 1262 /* 0001 0001 ... */
Chris@0 1263 /* 00 */ V(7, 1, 1), /* 232 */
Chris@0 1264 /* 01 */ V(7, 1, 1),
Chris@0 1265 /* 10 */ V(5, 5, 2),
Chris@0 1266 /* 11 */ V(0, 7, 2),
Chris@0 1267
Chris@0 1268 /* 0001 0010 ... */
Chris@0 1269 /* 00 */ V(7, 0, 2), /* 236 */
Chris@0 1270 /* 01 */ V(3, 6, 2),
Chris@0 1271 /* 10 */ V(6, 3, 2),
Chris@0 1272 /* 11 */ V(4, 5, 2),
Chris@0 1273
Chris@0 1274 /* 0001 0011 ... */
Chris@0 1275 /* 00 */ V(5, 4, 2), /* 240 */
Chris@0 1276 /* 01 */ V(2, 6, 2),
Chris@0 1277 /* 10 */ V(6, 2, 2),
Chris@0 1278 /* 11 */ V(3, 5, 2),
Chris@0 1279
Chris@0 1280 /* 0001 0101 ... */
Chris@0 1281 /* 0 */ V(0, 8, 1), /* 244 */
Chris@0 1282 /* 1 */ V(8, 0, 1),
Chris@0 1283
Chris@0 1284 /* 0001 0110 ... */
Chris@0 1285 /* 0 */ V(1, 6, 1), /* 246 */
Chris@0 1286 /* 1 */ V(6, 1, 1),
Chris@0 1287
Chris@0 1288 /* 0001 0111 ... */
Chris@0 1289 /* 0 */ V(0, 6, 1), /* 248 */
Chris@0 1290 /* 1 */ V(6, 0, 1),
Chris@0 1291
Chris@0 1292 /* 0001 1000 ... */
Chris@0 1293 /* 00 */ V(5, 3, 2), /* 250 */
Chris@0 1294 /* 01 */ V(4, 4, 2),
Chris@0 1295 /* 10 */ V(2, 5, 1),
Chris@0 1296 /* 11 */ V(2, 5, 1),
Chris@0 1297
Chris@0 1298 /* 0001 1001 ... */
Chris@0 1299 /* 0 */ V(5, 2, 1), /* 254 */
Chris@0 1300 /* 1 */ V(0, 5, 1),
Chris@0 1301
Chris@0 1302 /* 0001 1100 ... */
Chris@0 1303 /* 0 */ V(3, 4, 1), /* 256 */
Chris@0 1304 /* 1 */ V(4, 3, 1),
Chris@0 1305
Chris@0 1306 /* 0001 1101 ... */
Chris@0 1307 /* 0 */ V(5, 0, 1), /* 258 */
Chris@0 1308 /* 1 */ V(2, 4, 1),
Chris@0 1309
Chris@0 1310 /* 0001 1110 ... */
Chris@0 1311 /* 0 */ V(4, 2, 1), /* 260 */
Chris@0 1312 /* 1 */ V(3, 3, 1),
Chris@0 1313
Chris@0 1314 /* 0000 0000 0000 ... */
Chris@0 1315 /* 0000 */ PTR(388, 3), /* 262 */
Chris@0 1316 /* 0001 */ V(15, 15, 4),
Chris@0 1317 /* 0010 */ V(14, 15, 4),
Chris@0 1318 /* 0011 */ V(13, 15, 4),
Chris@0 1319 /* 0100 */ V(14, 14, 4),
Chris@0 1320 /* 0101 */ V(12, 15, 4),
Chris@0 1321 /* 0110 */ V(13, 14, 4),
Chris@0 1322 /* 0111 */ V(11, 15, 4),
Chris@0 1323 /* 1000 */ V(15, 11, 4),
Chris@0 1324 /* 1001 */ V(12, 14, 4),
Chris@0 1325 /* 1010 */ V(13, 12, 4),
Chris@0 1326 /* 1011 */ PTR(396, 1),
Chris@0 1327 /* 1100 */ V(14, 12, 3),
Chris@0 1328 /* 1101 */ V(14, 12, 3),
Chris@0 1329 /* 1110 */ V(13, 13, 3),
Chris@0 1330 /* 1111 */ V(13, 13, 3),
Chris@0 1331
Chris@0 1332 /* 0000 0000 0001 ... */
Chris@0 1333 /* 0000 */ V(15, 10, 4), /* 278 */
Chris@0 1334 /* 0001 */ V(12, 13, 4),
Chris@0 1335 /* 0010 */ V(11, 14, 3),
Chris@0 1336 /* 0011 */ V(11, 14, 3),
Chris@0 1337 /* 0100 */ V(14, 11, 3),
Chris@0 1338 /* 0101 */ V(14, 11, 3),
Chris@0 1339 /* 0110 */ V(9, 15, 3),
Chris@0 1340 /* 0111 */ V(9, 15, 3),
Chris@0 1341 /* 1000 */ V(15, 9, 3),
Chris@0 1342 /* 1001 */ V(15, 9, 3),
Chris@0 1343 /* 1010 */ V(14, 10, 3),
Chris@0 1344 /* 1011 */ V(14, 10, 3),
Chris@0 1345 /* 1100 */ V(11, 13, 3),
Chris@0 1346 /* 1101 */ V(11, 13, 3),
Chris@0 1347 /* 1110 */ V(13, 11, 3),
Chris@0 1348 /* 1111 */ V(13, 11, 3),
Chris@0 1349
Chris@0 1350 /* 0000 0000 0010 ... */
Chris@0 1351 /* 0000 */ V(8, 15, 3), /* 294 */
Chris@0 1352 /* 0001 */ V(8, 15, 3),
Chris@0 1353 /* 0010 */ V(15, 8, 3),
Chris@0 1354 /* 0011 */ V(15, 8, 3),
Chris@0 1355 /* 0100 */ V(12, 12, 3),
Chris@0 1356 /* 0101 */ V(12, 12, 3),
Chris@0 1357 /* 0110 */ V(10, 14, 4),
Chris@0 1358 /* 0111 */ V(9, 14, 4),
Chris@0 1359 /* 1000 */ V(8, 14, 3),
Chris@0 1360 /* 1001 */ V(8, 14, 3),
Chris@0 1361 /* 1010 */ V(7, 15, 4),
Chris@0 1362 /* 1011 */ V(7, 14, 4),
Chris@0 1363 /* 1100 */ V(15, 7, 2),
Chris@0 1364 /* 1101 */ V(15, 7, 2),
Chris@0 1365 /* 1110 */ V(15, 7, 2),
Chris@0 1366 /* 1111 */ V(15, 7, 2),
Chris@0 1367
Chris@0 1368 /* 0000 0000 0011 ... */
Chris@0 1369 /* 000 */ V(13, 10, 2), /* 310 */
Chris@0 1370 /* 001 */ V(13, 10, 2),
Chris@0 1371 /* 010 */ V(10, 13, 3),
Chris@0 1372 /* 011 */ V(11, 12, 3),
Chris@0 1373 /* 100 */ V(12, 11, 3),
Chris@0 1374 /* 101 */ V(15, 6, 3),
Chris@0 1375 /* 110 */ V(6, 15, 2),
Chris@0 1376 /* 111 */ V(6, 15, 2),
Chris@0 1377
Chris@0 1378 /* 0000 0000 0100 ... */
Chris@0 1379 /* 00 */ V(14, 8, 2), /* 318 */
Chris@0 1380 /* 01 */ V(5, 15, 2),
Chris@0 1381 /* 10 */ V(9, 13, 2),
Chris@0 1382 /* 11 */ V(13, 9, 2),
Chris@0 1383
Chris@0 1384 /* 0000 0000 0101 ... */
Chris@0 1385 /* 00 */ V(15, 5, 2), /* 322 */
Chris@0 1386 /* 01 */ V(14, 7, 2),
Chris@0 1387 /* 10 */ V(10, 12, 2),
Chris@0 1388 /* 11 */ V(11, 11, 2),
Chris@0 1389
Chris@0 1390 /* 0000 0000 0110 ... */
Chris@0 1391 /* 000 */ V(4, 15, 2), /* 326 */
Chris@0 1392 /* 001 */ V(4, 15, 2),
Chris@0 1393 /* 010 */ V(15, 4, 2),
Chris@0 1394 /* 011 */ V(15, 4, 2),
Chris@0 1395 /* 100 */ V(12, 10, 3),
Chris@0 1396 /* 101 */ V(14, 6, 3),
Chris@0 1397 /* 110 */ V(15, 3, 2),
Chris@0 1398 /* 111 */ V(15, 3, 2),
Chris@0 1399
Chris@0 1400 /* 0000 0000 0111 ... */
Chris@0 1401 /* 00 */ V(3, 15, 1), /* 334 */
Chris@0 1402 /* 01 */ V(3, 15, 1),
Chris@0 1403 /* 10 */ V(8, 13, 2),
Chris@0 1404 /* 11 */ V(13, 8, 2),
Chris@0 1405
Chris@0 1406 /* 0000 0000 1000 ... */
Chris@0 1407 /* 0 */ V(2, 15, 1), /* 338 */
Chris@0 1408 /* 1 */ V(15, 2, 1),
Chris@0 1409
Chris@0 1410 /* 0000 0000 1001 ... */
Chris@0 1411 /* 00 */ V(6, 14, 2), /* 340 */
Chris@0 1412 /* 01 */ V(9, 12, 2),
Chris@0 1413 /* 10 */ V(0, 15, 1),
Chris@0 1414 /* 11 */ V(0, 15, 1),
Chris@0 1415
Chris@0 1416 /* 0000 0000 1010 ... */
Chris@0 1417 /* 00 */ V(12, 9, 2), /* 344 */
Chris@0 1418 /* 01 */ V(5, 14, 2),
Chris@0 1419 /* 10 */ V(10, 11, 1),
Chris@0 1420 /* 11 */ V(10, 11, 1),
Chris@0 1421
Chris@0 1422 /* 0000 0000 1011 ... */
Chris@0 1423 /* 00 */ V(7, 13, 2), /* 348 */
Chris@0 1424 /* 01 */ V(13, 7, 2),
Chris@0 1425 /* 10 */ V(4, 14, 1),
Chris@0 1426 /* 11 */ V(4, 14, 1),
Chris@0 1427
Chris@0 1428 /* 0000 0000 1100 ... */
Chris@0 1429 /* 00 */ V(12, 8, 2), /* 352 */
Chris@0 1430 /* 01 */ V(13, 6, 2),
Chris@0 1431 /* 10 */ V(3, 14, 1),
Chris@0 1432 /* 11 */ V(3, 14, 1),
Chris@0 1433
Chris@0 1434 /* 0000 0000 1101 ... */
Chris@0 1435 /* 00 */ V(11, 9, 1), /* 356 */
Chris@0 1436 /* 01 */ V(11, 9, 1),
Chris@0 1437 /* 10 */ V(9, 11, 2),
Chris@0 1438 /* 11 */ V(10, 10, 2),
Chris@0 1439
Chris@0 1440 /* 0000 0001 0001 ... */
Chris@0 1441 /* 0 */ V(11, 10, 1), /* 360 */
Chris@0 1442 /* 1 */ V(14, 5, 1),
Chris@0 1443
Chris@0 1444 /* 0000 0001 0010 ... */
Chris@0 1445 /* 0 */ V(14, 4, 1), /* 362 */
Chris@0 1446 /* 1 */ V(8, 12, 1),
Chris@0 1447
Chris@0 1448 /* 0000 0001 0011 ... */
Chris@0 1449 /* 0 */ V(6, 13, 1), /* 364 */
Chris@0 1450 /* 1 */ V(14, 3, 1),
Chris@0 1451
Chris@0 1452 /* 0000 0001 0101 ... */
Chris@0 1453 /* 0 */ V(2, 14, 1), /* 366 */
Chris@0 1454 /* 1 */ V(0, 14, 1),
Chris@0 1455
Chris@0 1456 /* 0000 0001 1000 ... */
Chris@0 1457 /* 0 */ V(14, 0, 1), /* 368 */
Chris@0 1458 /* 1 */ V(5, 13, 1),
Chris@0 1459
Chris@0 1460 /* 0000 0001 1001 ... */
Chris@0 1461 /* 0 */ V(13, 5, 1), /* 370 */
Chris@0 1462 /* 1 */ V(7, 12, 1),
Chris@0 1463
Chris@0 1464 /* 0000 0001 1010 ... */
Chris@0 1465 /* 0 */ V(12, 7, 1), /* 372 */
Chris@0 1466 /* 1 */ V(4, 13, 1),
Chris@0 1467
Chris@0 1468 /* 0000 0001 1011 ... */
Chris@0 1469 /* 0 */ V(8, 11, 1), /* 374 */
Chris@0 1470 /* 1 */ V(11, 8, 1),
Chris@0 1471
Chris@0 1472 /* 0000 0001 1100 ... */
Chris@0 1473 /* 0 */ V(13, 4, 1), /* 376 */
Chris@0 1474 /* 1 */ V(9, 10, 1),
Chris@0 1475
Chris@0 1476 /* 0000 0001 1101 ... */
Chris@0 1477 /* 0 */ V(10, 9, 1), /* 378 */
Chris@0 1478 /* 1 */ V(6, 12, 1),
Chris@0 1479
Chris@0 1480 /* 0000 0010 0000 ... */
Chris@0 1481 /* 0 */ V(13, 3, 1), /* 380 */
Chris@0 1482 /* 1 */ V(7, 11, 1),
Chris@0 1483
Chris@0 1484 /* 0000 0010 0101 ... */
Chris@0 1485 /* 0 */ V(5, 12, 1), /* 382 */
Chris@0 1486 /* 1 */ V(12, 5, 1),
Chris@0 1487
Chris@0 1488 /* 0000 0010 0110 ... */
Chris@0 1489 /* 0 */ V(9, 9, 1), /* 384 */
Chris@0 1490 /* 1 */ V(7, 10, 1),
Chris@0 1491
Chris@0 1492 /* 0000 0010 1000 ... */
Chris@0 1493 /* 0 */ V(10, 7, 1), /* 386 */
Chris@0 1494 /* 1 */ V(9, 7, 1),
Chris@0 1495
Chris@0 1496 /* 0000 0000 0000 0000 ... */
Chris@0 1497 /* 000 */ V(15, 14, 3), /* 388 */
Chris@0 1498 /* 001 */ V(15, 12, 3),
Chris@0 1499 /* 010 */ V(15, 13, 2),
Chris@0 1500 /* 011 */ V(15, 13, 2),
Chris@0 1501 /* 100 */ V(14, 13, 1),
Chris@0 1502 /* 101 */ V(14, 13, 1),
Chris@0 1503 /* 110 */ V(14, 13, 1),
Chris@0 1504 /* 111 */ V(14, 13, 1),
Chris@0 1505
Chris@0 1506 /* 0000 0000 0000 1011 ... */
Chris@0 1507 /* 0 */ V(10, 15, 1), /* 396 */
Chris@0 1508 /* 1 */ V(14, 9, 1)
Chris@0 1509 };
Chris@0 1510
Chris@0 1511 static
Chris@0 1512 union huffpair const hufftab15[] = {
Chris@0 1513 /* 0000 */ PTR(16, 4),
Chris@0 1514 /* 0001 */ PTR(32, 4),
Chris@0 1515 /* 0010 */ PTR(48, 4),
Chris@0 1516 /* 0011 */ PTR(64, 4),
Chris@0 1517 /* 0100 */ PTR(80, 4),
Chris@0 1518 /* 0101 */ PTR(96, 3),
Chris@0 1519 /* 0110 */ PTR(104, 3),
Chris@0 1520 /* 0111 */ PTR(112, 2),
Chris@0 1521 /* 1000 */ PTR(116, 1),
Chris@0 1522 /* 1001 */ PTR(118, 1),
Chris@0 1523 /* 1010 */ V(1, 1, 3),
Chris@0 1524 /* 1011 */ V(1, 1, 3),
Chris@0 1525 /* 1100 */ V(0, 1, 4),
Chris@0 1526 /* 1101 */ V(1, 0, 4),
Chris@0 1527 /* 1110 */ V(0, 0, 3),
Chris@0 1528 /* 1111 */ V(0, 0, 3),
Chris@0 1529
Chris@0 1530 /* 0000 ... */
Chris@0 1531 /* 0000 */ PTR(120, 4), /* 16 */
Chris@0 1532 /* 0001 */ PTR(136, 4),
Chris@0 1533 /* 0010 */ PTR(152, 4),
Chris@0 1534 /* 0011 */ PTR(168, 4),
Chris@0 1535 /* 0100 */ PTR(184, 4),
Chris@0 1536 /* 0101 */ PTR(200, 3),
Chris@0 1537 /* 0110 */ PTR(208, 3),
Chris@0 1538 /* 0111 */ PTR(216, 4),
Chris@0 1539 /* 1000 */ PTR(232, 3),
Chris@0 1540 /* 1001 */ PTR(240, 3),
Chris@0 1541 /* 1010 */ PTR(248, 3),
Chris@0 1542 /* 1011 */ PTR(256, 3),
Chris@0 1543 /* 1100 */ PTR(264, 2),
Chris@0 1544 /* 1101 */ PTR(268, 3),
Chris@0 1545 /* 1110 */ PTR(276, 3),
Chris@0 1546 /* 1111 */ PTR(284, 2),
Chris@0 1547
Chris@0 1548 /* 0001 ... */
Chris@0 1549 /* 0000 */ PTR(288, 2), /* 32 */
Chris@0 1550 /* 0001 */ PTR(292, 2),
Chris@0 1551 /* 0010 */ PTR(296, 2),
Chris@0 1552 /* 0011 */ PTR(300, 2),
Chris@0 1553 /* 0100 */ PTR(304, 2),
Chris@0 1554 /* 0101 */ PTR(308, 2),
Chris@0 1555 /* 0110 */ PTR(312, 2),
Chris@0 1556 /* 0111 */ PTR(316, 2),
Chris@0 1557 /* 1000 */ PTR(320, 1),
Chris@0 1558 /* 1001 */ PTR(322, 1),
Chris@0 1559 /* 1010 */ PTR(324, 1),
Chris@0 1560 /* 1011 */ PTR(326, 2),
Chris@0 1561 /* 1100 */ PTR(330, 1),
Chris@0 1562 /* 1101 */ PTR(332, 1),
Chris@0 1563 /* 1110 */ PTR(334, 2),
Chris@0 1564 /* 1111 */ PTR(338, 1),
Chris@0 1565
Chris@0 1566 /* 0010 ... */
Chris@0 1567 /* 0000 */ PTR(340, 1), /* 48 */
Chris@0 1568 /* 0001 */ PTR(342, 1),
Chris@0 1569 /* 0010 */ V(9, 1, 4),
Chris@0 1570 /* 0011 */ PTR(344, 1),
Chris@0 1571 /* 0100 */ PTR(346, 1),
Chris@0 1572 /* 0101 */ PTR(348, 1),
Chris@0 1573 /* 0110 */ PTR(350, 1),
Chris@0 1574 /* 0111 */ PTR(352, 1),
Chris@0 1575 /* 1000 */ V(2, 8, 4),
Chris@0 1576 /* 1001 */ V(8, 2, 4),
Chris@0 1577 /* 1010 */ V(1, 8, 4),
Chris@0 1578 /* 1011 */ V(8, 1, 4),
Chris@0 1579 /* 1100 */ PTR(354, 1),
Chris@0 1580 /* 1101 */ PTR(356, 1),
Chris@0 1581 /* 1110 */ PTR(358, 1),
Chris@0 1582 /* 1111 */ PTR(360, 1),
Chris@0 1583
Chris@0 1584 /* 0011 ... */
Chris@0 1585 /* 0000 */ V(2, 7, 4), /* 64 */
Chris@0 1586 /* 0001 */ V(7, 2, 4),
Chris@0 1587 /* 0010 */ V(6, 4, 4),
Chris@0 1588 /* 0011 */ V(1, 7, 4),
Chris@0 1589 /* 0100 */ V(5, 5, 4),
Chris@0 1590 /* 0101 */ V(7, 1, 4),
Chris@0 1591 /* 0110 */ PTR(362, 1),
Chris@0 1592 /* 0111 */ V(3, 6, 4),
Chris@0 1593 /* 1000 */ V(6, 3, 4),
Chris@0 1594 /* 1001 */ V(4, 5, 4),
Chris@0 1595 /* 1010 */ V(5, 4, 4),
Chris@0 1596 /* 1011 */ V(2, 6, 4),
Chris@0 1597 /* 1100 */ V(6, 2, 4),
Chris@0 1598 /* 1101 */ V(1, 6, 4),
Chris@0 1599 /* 1110 */ PTR(364, 1),
Chris@0 1600 /* 1111 */ V(3, 5, 4),
Chris@0 1601
Chris@0 1602 /* 0100 ... */
Chris@0 1603 /* 0000 */ V(6, 1, 3), /* 80 */
Chris@0 1604 /* 0001 */ V(6, 1, 3),
Chris@0 1605 /* 0010 */ V(5, 3, 4),
Chris@0 1606 /* 0011 */ V(4, 4, 4),
Chris@0 1607 /* 0100 */ V(2, 5, 3),
Chris@0 1608 /* 0101 */ V(2, 5, 3),
Chris@0 1609 /* 0110 */ V(5, 2, 3),
Chris@0 1610 /* 0111 */ V(5, 2, 3),
Chris@0 1611 /* 1000 */ V(1, 5, 3),
Chris@0 1612 /* 1001 */ V(1, 5, 3),
Chris@0 1613 /* 1010 */ V(5, 1, 3),
Chris@0 1614 /* 1011 */ V(5, 1, 3),
Chris@0 1615 /* 1100 */ V(0, 5, 4),
Chris@0 1616 /* 1101 */ V(5, 0, 4),
Chris@0 1617 /* 1110 */ V(3, 4, 3),
Chris@0 1618 /* 1111 */ V(3, 4, 3),
Chris@0 1619
Chris@0 1620 /* 0101 ... */
Chris@0 1621 /* 000 */ V(4, 3, 3), /* 96 */
Chris@0 1622 /* 001 */ V(2, 4, 3),
Chris@0 1623 /* 010 */ V(4, 2, 3),
Chris@0 1624 /* 011 */ V(3, 3, 3),
Chris@0 1625 /* 100 */ V(4, 1, 2),
Chris@0 1626 /* 101 */ V(4, 1, 2),
Chris@0 1627 /* 110 */ V(1, 4, 3),
Chris@0 1628 /* 111 */ V(0, 4, 3),
Chris@0 1629
Chris@0 1630 /* 0110 ... */
Chris@0 1631 /* 000 */ V(2, 3, 2), /* 104 */
Chris@0 1632 /* 001 */ V(2, 3, 2),
Chris@0 1633 /* 010 */ V(3, 2, 2),
Chris@0 1634 /* 011 */ V(3, 2, 2),
Chris@0 1635 /* 100 */ V(4, 0, 3),
Chris@0 1636 /* 101 */ V(0, 3, 3),
Chris@0 1637 /* 110 */ V(1, 3, 2),
Chris@0 1638 /* 111 */ V(1, 3, 2),
Chris@0 1639
Chris@0 1640 /* 0111 ... */
Chris@0 1641 /* 00 */ V(3, 1, 2), /* 112 */
Chris@0 1642 /* 01 */ V(3, 0, 2),
Chris@0 1643 /* 10 */ V(2, 2, 1),
Chris@0 1644 /* 11 */ V(2, 2, 1),
Chris@0 1645
Chris@0 1646 /* 1000 ... */
Chris@0 1647 /* 0 */ V(1, 2, 1), /* 116 */
Chris@0 1648 /* 1 */ V(2, 1, 1),
Chris@0 1649
Chris@0 1650 /* 1001 ... */
Chris@0 1651 /* 0 */ V(0, 2, 1), /* 118 */
Chris@0 1652 /* 1 */ V(2, 0, 1),
Chris@0 1653
Chris@0 1654 /* 0000 0000 ... */
Chris@0 1655 /* 0000 */ PTR(366, 1), /* 120 */
Chris@0 1656 /* 0001 */ PTR(368, 1),
Chris@0 1657 /* 0010 */ V(14, 14, 4),
Chris@0 1658 /* 0011 */ PTR(370, 1),
Chris@0 1659 /* 0100 */ PTR(372, 1),
Chris@0 1660 /* 0101 */ PTR(374, 1),
Chris@0 1661 /* 0110 */ V(15, 11, 4),
Chris@0 1662 /* 0111 */ PTR(376, 1),
Chris@0 1663 /* 1000 */ V(13, 13, 4),
Chris@0 1664 /* 1001 */ V(10, 15, 4),
Chris@0 1665 /* 1010 */ V(15, 10, 4),
Chris@0 1666 /* 1011 */ V(11, 14, 4),
Chris@0 1667 /* 1100 */ V(14, 11, 4),
Chris@0 1668 /* 1101 */ V(12, 13, 4),
Chris@0 1669 /* 1110 */ V(13, 12, 4),
Chris@0 1670 /* 1111 */ V(9, 15, 4),
Chris@0 1671
Chris@0 1672 /* 0000 0001 ... */
Chris@0 1673 /* 0000 */ V(15, 9, 4), /* 136 */
Chris@0 1674 /* 0001 */ V(14, 10, 4),
Chris@0 1675 /* 0010 */ V(11, 13, 4),
Chris@0 1676 /* 0011 */ V(13, 11, 4),
Chris@0 1677 /* 0100 */ V(8, 15, 4),
Chris@0 1678 /* 0101 */ V(15, 8, 4),
Chris@0 1679 /* 0110 */ V(12, 12, 4),
Chris@0 1680 /* 0111 */ V(9, 14, 4),
Chris@0 1681 /* 1000 */ V(14, 9, 4),
Chris@0 1682 /* 1001 */ V(7, 15, 4),
Chris@0 1683 /* 1010 */ V(15, 7, 4),
Chris@0 1684 /* 1011 */ V(10, 13, 4),
Chris@0 1685 /* 1100 */ V(13, 10, 4),
Chris@0 1686 /* 1101 */ V(11, 12, 4),
Chris@0 1687 /* 1110 */ V(6, 15, 4),
Chris@0 1688 /* 1111 */ PTR(378, 1),
Chris@0 1689
Chris@0 1690 /* 0000 0010 ... */
Chris@0 1691 /* 0000 */ V(12, 11, 3), /* 152 */
Chris@0 1692 /* 0001 */ V(12, 11, 3),
Chris@0 1693 /* 0010 */ V(15, 6, 3),
Chris@0 1694 /* 0011 */ V(15, 6, 3),
Chris@0 1695 /* 0100 */ V(8, 14, 4),
Chris@0 1696 /* 0101 */ V(14, 8, 4),
Chris@0 1697 /* 0110 */ V(5, 15, 4),
Chris@0 1698 /* 0111 */ V(9, 13, 4),
Chris@0 1699 /* 1000 */ V(15, 5, 3),
Chris@0 1700 /* 1001 */ V(15, 5, 3),
Chris@0 1701 /* 1010 */ V(7, 14, 3),
Chris@0 1702 /* 1011 */ V(7, 14, 3),
Chris@0 1703 /* 1100 */ V(14, 7, 3),
Chris@0 1704 /* 1101 */ V(14, 7, 3),
Chris@0 1705 /* 1110 */ V(10, 12, 3),
Chris@0 1706 /* 1111 */ V(10, 12, 3),
Chris@0 1707
Chris@0 1708 /* 0000 0011 ... */
Chris@0 1709 /* 0000 */ V(12, 10, 3), /* 168 */
Chris@0 1710 /* 0001 */ V(12, 10, 3),
Chris@0 1711 /* 0010 */ V(11, 11, 3),
Chris@0 1712 /* 0011 */ V(11, 11, 3),
Chris@0 1713 /* 0100 */ V(13, 9, 4),
Chris@0 1714 /* 0101 */ V(8, 13, 4),
Chris@0 1715 /* 0110 */ V(4, 15, 3),
Chris@0 1716 /* 0111 */ V(4, 15, 3),
Chris@0 1717 /* 1000 */ V(15, 4, 3),
Chris@0 1718 /* 1001 */ V(15, 4, 3),
Chris@0 1719 /* 1010 */ V(3, 15, 3),
Chris@0 1720 /* 1011 */ V(3, 15, 3),
Chris@0 1721 /* 1100 */ V(15, 3, 3),
Chris@0 1722 /* 1101 */ V(15, 3, 3),
Chris@0 1723 /* 1110 */ V(13, 8, 3),
Chris@0 1724 /* 1111 */ V(13, 8, 3),
Chris@0 1725
Chris@0 1726 /* 0000 0100 ... */
Chris@0 1727 /* 0000 */ V(14, 6, 3), /* 184 */
Chris@0 1728 /* 0001 */ V(14, 6, 3),
Chris@0 1729 /* 0010 */ V(2, 15, 3),
Chris@0 1730 /* 0011 */ V(2, 15, 3),
Chris@0 1731 /* 0100 */ V(15, 2, 3),
Chris@0 1732 /* 0101 */ V(15, 2, 3),
Chris@0 1733 /* 0110 */ V(6, 14, 4),
Chris@0 1734 /* 0111 */ V(15, 0, 4),
Chris@0 1735 /* 1000 */ V(1, 15, 3),
Chris@0 1736 /* 1001 */ V(1, 15, 3),
Chris@0 1737 /* 1010 */ V(15, 1, 3),
Chris@0 1738 /* 1011 */ V(15, 1, 3),
Chris@0 1739 /* 1100 */ V(9, 12, 3),
Chris@0 1740 /* 1101 */ V(9, 12, 3),
Chris@0 1741 /* 1110 */ V(12, 9, 3),
Chris@0 1742 /* 1111 */ V(12, 9, 3),
Chris@0 1743
Chris@0 1744 /* 0000 0101 ... */
Chris@0 1745 /* 000 */ V(5, 14, 3), /* 200 */
Chris@0 1746 /* 001 */ V(10, 11, 3),
Chris@0 1747 /* 010 */ V(11, 10, 3),
Chris@0 1748 /* 011 */ V(14, 5, 3),
Chris@0 1749 /* 100 */ V(7, 13, 3),
Chris@0 1750 /* 101 */ V(13, 7, 3),
Chris@0 1751 /* 110 */ V(4, 14, 3),
Chris@0 1752 /* 111 */ V(14, 4, 3),
Chris@0 1753
Chris@0 1754 /* 0000 0110 ... */
Chris@0 1755 /* 000 */ V(8, 12, 3), /* 208 */
Chris@0 1756 /* 001 */ V(12, 8, 3),
Chris@0 1757 /* 010 */ V(3, 14, 3),
Chris@0 1758 /* 011 */ V(6, 13, 3),
Chris@0 1759 /* 100 */ V(13, 6, 3),
Chris@0 1760 /* 101 */ V(14, 3, 3),
Chris@0 1761 /* 110 */ V(9, 11, 3),
Chris@0 1762 /* 111 */ V(11, 9, 3),
Chris@0 1763
Chris@0 1764 /* 0000 0111 ... */
Chris@0 1765 /* 0000 */ V(2, 14, 3), /* 216 */
Chris@0 1766 /* 0001 */ V(2, 14, 3),
Chris@0 1767 /* 0010 */ V(10, 10, 3),
Chris@0 1768 /* 0011 */ V(10, 10, 3),
Chris@0 1769 /* 0100 */ V(14, 2, 3),
Chris@0 1770 /* 0101 */ V(14, 2, 3),
Chris@0 1771 /* 0110 */ V(1, 14, 3),
Chris@0 1772 /* 0111 */ V(1, 14, 3),
Chris@0 1773 /* 1000 */ V(14, 1, 3),
Chris@0 1774 /* 1001 */ V(14, 1, 3),
Chris@0 1775 /* 1010 */ V(0, 14, 4),
Chris@0 1776 /* 1011 */ V(14, 0, 4),
Chris@0 1777 /* 1100 */ V(5, 13, 3),
Chris@0 1778 /* 1101 */ V(5, 13, 3),
Chris@0 1779 /* 1110 */ V(13, 5, 3),
Chris@0 1780 /* 1111 */ V(13, 5, 3),
Chris@0 1781
Chris@0 1782 /* 0000 1000 ... */
Chris@0 1783 /* 000 */ V(7, 12, 3), /* 232 */
Chris@0 1784 /* 001 */ V(12, 7, 3),
Chris@0 1785 /* 010 */ V(4, 13, 3),
Chris@0 1786 /* 011 */ V(8, 11, 3),
Chris@0 1787 /* 100 */ V(13, 4, 2),
Chris@0 1788 /* 101 */ V(13, 4, 2),
Chris@0 1789 /* 110 */ V(11, 8, 3),
Chris@0 1790 /* 111 */ V(9, 10, 3),
Chris@0 1791
Chris@0 1792 /* 0000 1001 ... */
Chris@0 1793 /* 000 */ V(10, 9, 3), /* 240 */
Chris@0 1794 /* 001 */ V(6, 12, 3),
Chris@0 1795 /* 010 */ V(12, 6, 3),
Chris@0 1796 /* 011 */ V(3, 13, 3),
Chris@0 1797 /* 100 */ V(13, 3, 2),
Chris@0 1798 /* 101 */ V(13, 3, 2),
Chris@0 1799 /* 110 */ V(13, 2, 2),
Chris@0 1800 /* 111 */ V(13, 2, 2),
Chris@0 1801
Chris@0 1802 /* 0000 1010 ... */
Chris@0 1803 /* 000 */ V(2, 13, 3), /* 248 */
Chris@0 1804 /* 001 */ V(0, 13, 3),
Chris@0 1805 /* 010 */ V(1, 13, 2),
Chris@0 1806 /* 011 */ V(1, 13, 2),
Chris@0 1807 /* 100 */ V(7, 11, 2),
Chris@0 1808 /* 101 */ V(7, 11, 2),
Chris@0 1809 /* 110 */ V(11, 7, 2),
Chris@0 1810 /* 111 */ V(11, 7, 2),
Chris@0 1811
Chris@0 1812 /* 0000 1011 ... */
Chris@0 1813 /* 000 */ V(13, 1, 2), /* 256 */
Chris@0 1814 /* 001 */ V(13, 1, 2),
Chris@0 1815 /* 010 */ V(5, 12, 3),
Chris@0 1816 /* 011 */ V(13, 0, 3),
Chris@0 1817 /* 100 */ V(12, 5, 2),
Chris@0 1818 /* 101 */ V(12, 5, 2),
Chris@0 1819 /* 110 */ V(8, 10, 2),
Chris@0 1820 /* 111 */ V(8, 10, 2),
Chris@0 1821
Chris@0 1822 /* 0000 1100 ... */
Chris@0 1823 /* 00 */ V(10, 8, 2), /* 264 */
Chris@0 1824 /* 01 */ V(4, 12, 2),
Chris@0 1825 /* 10 */ V(12, 4, 2),
Chris@0 1826 /* 11 */ V(6, 11, 2),
Chris@0 1827
Chris@0 1828 /* 0000 1101 ... */
Chris@0 1829 /* 000 */ V(11, 6, 2), /* 268 */
Chris@0 1830 /* 001 */ V(11, 6, 2),
Chris@0 1831 /* 010 */ V(9, 9, 3),
Chris@0 1832 /* 011 */ V(0, 12, 3),
Chris@0 1833 /* 100 */ V(3, 12, 2),
Chris@0 1834 /* 101 */ V(3, 12, 2),
Chris@0 1835 /* 110 */ V(12, 3, 2),
Chris@0 1836 /* 111 */ V(12, 3, 2),
Chris@0 1837
Chris@0 1838 /* 0000 1110 ... */
Chris@0 1839 /* 000 */ V(7, 10, 2), /* 276 */
Chris@0 1840 /* 001 */ V(7, 10, 2),
Chris@0 1841 /* 010 */ V(10, 7, 2),
Chris@0 1842 /* 011 */ V(10, 7, 2),
Chris@0 1843 /* 100 */ V(10, 6, 2),
Chris@0 1844 /* 101 */ V(10, 6, 2),
Chris@0 1845 /* 110 */ V(12, 0, 3),
Chris@0 1846 /* 111 */ V(0, 11, 3),
Chris@0 1847
Chris@0 1848 /* 0000 1111 ... */
Chris@0 1849 /* 00 */ V(12, 2, 1), /* 284 */
Chris@0 1850 /* 01 */ V(12, 2, 1),
Chris@0 1851 /* 10 */ V(2, 12, 2),
Chris@0 1852 /* 11 */ V(5, 11, 2),
Chris@0 1853
Chris@0 1854 /* 0001 0000 ... */
Chris@0 1855 /* 00 */ V(11, 5, 2), /* 288 */
Chris@0 1856 /* 01 */ V(1, 12, 2),
Chris@0 1857 /* 10 */ V(8, 9, 2),
Chris@0 1858 /* 11 */ V(9, 8, 2),
Chris@0 1859
Chris@0 1860 /* 0001 0001 ... */
Chris@0 1861 /* 00 */ V(12, 1, 2), /* 292 */
Chris@0 1862 /* 01 */ V(4, 11, 2),
Chris@0 1863 /* 10 */ V(11, 4, 2),
Chris@0 1864 /* 11 */ V(6, 10, 2),
Chris@0 1865
Chris@0 1866 /* 0001 0010 ... */
Chris@0 1867 /* 00 */ V(3, 11, 2), /* 296 */
Chris@0 1868 /* 01 */ V(7, 9, 2),
Chris@0 1869 /* 10 */ V(11, 3, 1),
Chris@0 1870 /* 11 */ V(11, 3, 1),
Chris@0 1871
Chris@0 1872 /* 0001 0011 ... */
Chris@0 1873 /* 00 */ V(9, 7, 2), /* 300 */
Chris@0 1874 /* 01 */ V(8, 8, 2),
Chris@0 1875 /* 10 */ V(2, 11, 2),
Chris@0 1876 /* 11 */ V(5, 10, 2),
Chris@0 1877
Chris@0 1878 /* 0001 0100 ... */
Chris@0 1879 /* 00 */ V(11, 2, 1), /* 304 */
Chris@0 1880 /* 01 */ V(11, 2, 1),
Chris@0 1881 /* 10 */ V(10, 5, 2),
Chris@0 1882 /* 11 */ V(1, 11, 2),
Chris@0 1883
Chris@0 1884 /* 0001 0101 ... */
Chris@0 1885 /* 00 */ V(11, 1, 1), /* 308 */
Chris@0 1886 /* 01 */ V(11, 1, 1),
Chris@0 1887 /* 10 */ V(11, 0, 2),
Chris@0 1888 /* 11 */ V(6, 9, 2),
Chris@0 1889
Chris@0 1890 /* 0001 0110 ... */
Chris@0 1891 /* 00 */ V(9, 6, 2), /* 312 */
Chris@0 1892 /* 01 */ V(4, 10, 2),
Chris@0 1893 /* 10 */ V(10, 4, 2),
Chris@0 1894 /* 11 */ V(7, 8, 2),
Chris@0 1895
Chris@0 1896 /* 0001 0111 ... */
Chris@0 1897 /* 00 */ V(8, 7, 2), /* 316 */
Chris@0 1898 /* 01 */ V(3, 10, 2),
Chris@0 1899 /* 10 */ V(10, 3, 1),
Chris@0 1900 /* 11 */ V(10, 3, 1),
Chris@0 1901
Chris@0 1902 /* 0001 1000 ... */
Chris@0 1903 /* 0 */ V(5, 9, 1), /* 320 */
Chris@0 1904 /* 1 */ V(9, 5, 1),
Chris@0 1905
Chris@0 1906 /* 0001 1001 ... */
Chris@0 1907 /* 0 */ V(2, 10, 1), /* 322 */
Chris@0 1908 /* 1 */ V(10, 2, 1),
Chris@0 1909
Chris@0 1910 /* 0001 1010 ... */
Chris@0 1911 /* 0 */ V(1, 10, 1), /* 324 */
Chris@0 1912 /* 1 */ V(10, 1, 1),
Chris@0 1913
Chris@0 1914 /* 0001 1011 ... */
Chris@0 1915 /* 00 */ V(0, 10, 2), /* 326 */
Chris@0 1916 /* 01 */ V(10, 0, 2),
Chris@0 1917 /* 10 */ V(6, 8, 1),
Chris@0 1918 /* 11 */ V(6, 8, 1),
Chris@0 1919
Chris@0 1920 /* 0001 1100 ... */
Chris@0 1921 /* 0 */ V(8, 6, 1), /* 330 */
Chris@0 1922 /* 1 */ V(4, 9, 1),
Chris@0 1923
Chris@0 1924 /* 0001 1101 ... */
Chris@0 1925 /* 0 */ V(9, 4, 1), /* 332 */
Chris@0 1926 /* 1 */ V(3, 9, 1),
Chris@0 1927
Chris@0 1928 /* 0001 1110 ... */
Chris@0 1929 /* 00 */ V(9, 3, 1), /* 334 */
Chris@0 1930 /* 01 */ V(9, 3, 1),
Chris@0 1931 /* 10 */ V(7, 7, 2),
Chris@0 1932 /* 11 */ V(0, 9, 2),
Chris@0 1933
Chris@0 1934 /* 0001 1111 ... */
Chris@0 1935 /* 0 */ V(5, 8, 1), /* 338 */
Chris@0 1936 /* 1 */ V(8, 5, 1),
Chris@0 1937
Chris@0 1938 /* 0010 0000 ... */
Chris@0 1939 /* 0 */ V(2, 9, 1), /* 340 */
Chris@0 1940 /* 1 */ V(6, 7, 1),
Chris@0 1941
Chris@0 1942 /* 0010 0001 ... */
Chris@0 1943 /* 0 */ V(7, 6, 1), /* 342 */
Chris@0 1944 /* 1 */ V(9, 2, 1),
Chris@0 1945
Chris@0 1946 /* 0010 0011 ... */
Chris@0 1947 /* 0 */ V(1, 9, 1), /* 344 */
Chris@0 1948 /* 1 */ V(9, 0, 1),
Chris@0 1949
Chris@0 1950 /* 0010 0100 ... */
Chris@0 1951 /* 0 */ V(4, 8, 1), /* 346 */
Chris@0 1952 /* 1 */ V(8, 4, 1),
Chris@0 1953
Chris@0 1954 /* 0010 0101 ... */
Chris@0 1955 /* 0 */ V(5, 7, 1), /* 348 */
Chris@0 1956 /* 1 */ V(7, 5, 1),
Chris@0 1957
Chris@0 1958 /* 0010 0110 ... */
Chris@0 1959 /* 0 */ V(3, 8, 1), /* 350 */
Chris@0 1960 /* 1 */ V(8, 3, 1),
Chris@0 1961
Chris@0 1962 /* 0010 0111 ... */
Chris@0 1963 /* 0 */ V(6, 6, 1), /* 352 */
Chris@0 1964 /* 1 */ V(4, 7, 1),
Chris@0 1965
Chris@0 1966 /* 0010 1100 ... */
Chris@0 1967 /* 0 */ V(7, 4, 1), /* 354 */
Chris@0 1968 /* 1 */ V(0, 8, 1),
Chris@0 1969
Chris@0 1970 /* 0010 1101 ... */
Chris@0 1971 /* 0 */ V(8, 0, 1), /* 356 */
Chris@0 1972 /* 1 */ V(5, 6, 1),
Chris@0 1973
Chris@0 1974 /* 0010 1110 ... */
Chris@0 1975 /* 0 */ V(6, 5, 1), /* 358 */
Chris@0 1976 /* 1 */ V(3, 7, 1),
Chris@0 1977
Chris@0 1978 /* 0010 1111 ... */
Chris@0 1979 /* 0 */ V(7, 3, 1), /* 360 */
Chris@0 1980 /* 1 */ V(4, 6, 1),
Chris@0 1981
Chris@0 1982 /* 0011 0110 ... */
Chris@0 1983 /* 0 */ V(0, 7, 1), /* 362 */
Chris@0 1984 /* 1 */ V(7, 0, 1),
Chris@0 1985
Chris@0 1986 /* 0011 1110 ... */
Chris@0 1987 /* 0 */ V(0, 6, 1), /* 364 */
Chris@0 1988 /* 1 */ V(6, 0, 1),
Chris@0 1989
Chris@0 1990 /* 0000 0000 0000 ... */
Chris@0 1991 /* 0 */ V(15, 15, 1), /* 366 */
Chris@0 1992 /* 1 */ V(14, 15, 1),
Chris@0 1993
Chris@0 1994 /* 0000 0000 0001 ... */
Chris@0 1995 /* 0 */ V(15, 14, 1), /* 368 */
Chris@0 1996 /* 1 */ V(13, 15, 1),
Chris@0 1997
Chris@0 1998 /* 0000 0000 0011 ... */
Chris@0 1999 /* 0 */ V(15, 13, 1), /* 370 */
Chris@0 2000 /* 1 */ V(12, 15, 1),
Chris@0 2001
Chris@0 2002 /* 0000 0000 0100 ... */
Chris@0 2003 /* 0 */ V(15, 12, 1), /* 372 */
Chris@0 2004 /* 1 */ V(13, 14, 1),
Chris@0 2005
Chris@0 2006 /* 0000 0000 0101 ... */
Chris@0 2007 /* 0 */ V(14, 13, 1), /* 374 */
Chris@0 2008 /* 1 */ V(11, 15, 1),
Chris@0 2009
Chris@0 2010 /* 0000 0000 0111 ... */
Chris@0 2011 /* 0 */ V(12, 14, 1), /* 376 */
Chris@0 2012 /* 1 */ V(14, 12, 1),
Chris@0 2013
Chris@0 2014 /* 0000 0001 1111 ... */
Chris@0 2015 /* 0 */ V(10, 14, 1), /* 378 */
Chris@0 2016 /* 1 */ V(0, 15, 1)
Chris@0 2017 };
Chris@0 2018
Chris@0 2019 static
Chris@0 2020 union huffpair const hufftab16[] = {
Chris@0 2021 /* 0000 */ PTR(16, 4),
Chris@0 2022 /* 0001 */ PTR(32, 4),
Chris@0 2023 /* 0010 */ PTR(48, 4),
Chris@0 2024 /* 0011 */ PTR(64, 2),
Chris@0 2025 /* 0100 */ V(1, 1, 4),
Chris@0 2026 /* 0101 */ V(0, 1, 4),
Chris@0 2027 /* 0110 */ V(1, 0, 3),
Chris@0 2028 /* 0111 */ V(1, 0, 3),
Chris@0 2029 /* 1000 */ V(0, 0, 1),
Chris@0 2030 /* 1001 */ V(0, 0, 1),
Chris@0 2031 /* 1010 */ V(0, 0, 1),
Chris@0 2032 /* 1011 */ V(0, 0, 1),
Chris@0 2033 /* 1100 */ V(0, 0, 1),
Chris@0 2034 /* 1101 */ V(0, 0, 1),
Chris@0 2035 /* 1110 */ V(0, 0, 1),
Chris@0 2036 /* 1111 */ V(0, 0, 1),
Chris@0 2037
Chris@0 2038 /* 0000 ... */
Chris@0 2039 /* 0000 */ PTR(68, 3), /* 16 */
Chris@0 2040 /* 0001 */ PTR(76, 3),
Chris@0 2041 /* 0010 */ PTR(84, 2),
Chris@0 2042 /* 0011 */ V(15, 15, 4),
Chris@0 2043 /* 0100 */ PTR(88, 2),
Chris@0 2044 /* 0101 */ PTR(92, 1),
Chris@0 2045 /* 0110 */ PTR(94, 4),
Chris@0 2046 /* 0111 */ V(15, 2, 4),
Chris@0 2047 /* 1000 */ PTR(110, 1),
Chris@0 2048 /* 1001 */ V(1, 15, 4),
Chris@0 2049 /* 1010 */ V(15, 1, 4),
Chris@0 2050 /* 1011 */ PTR(112, 4),
Chris@0 2051 /* 1100 */ PTR(128, 4),
Chris@0 2052 /* 1101 */ PTR(144, 4),
Chris@0 2053 /* 1110 */ PTR(160, 4),
Chris@0 2054 /* 1111 */ PTR(176, 4),
Chris@0 2055
Chris@0 2056 /* 0001 ... */
Chris@0 2057 /* 0000 */ PTR(192, 4), /* 32 */
Chris@0 2058 /* 0001 */ PTR(208, 3),
Chris@0 2059 /* 0010 */ PTR(216, 3),
Chris@0 2060 /* 0011 */ PTR(224, 3),
Chris@0 2061 /* 0100 */ PTR(232, 3),
Chris@0 2062 /* 0101 */ PTR(240, 3),
Chris@0 2063 /* 0110 */ PTR(248, 3),
Chris@0 2064 /* 0111 */ PTR(256, 3),
Chris@0 2065 /* 1000 */ PTR(264, 2),
Chris@0 2066 /* 1001 */ PTR(268, 2),
Chris@0 2067 /* 1010 */ PTR(272, 1),
Chris@0 2068 /* 1011 */ PTR(274, 2),
Chris@0 2069 /* 1100 */ PTR(278, 2),
Chris@0 2070 /* 1101 */ PTR(282, 1),
Chris@0 2071 /* 1110 */ V(5, 1, 4),
Chris@0 2072 /* 1111 */ PTR(284, 1),
Chris@0 2073
Chris@0 2074 /* 0010 ... */
Chris@0 2075 /* 0000 */ PTR(286, 1), /* 48 */
Chris@0 2076 /* 0001 */ PTR(288, 1),
Chris@0 2077 /* 0010 */ PTR(290, 1),
Chris@0 2078 /* 0011 */ V(1, 4, 4),
Chris@0 2079 /* 0100 */ V(4, 1, 4),
Chris@0 2080 /* 0101 */ PTR(292, 1),
Chris@0 2081 /* 0110 */ V(2, 3, 4),
Chris@0 2082 /* 0111 */ V(3, 2, 4),
Chris@0 2083 /* 1000 */ V(1, 3, 3),
Chris@0 2084 /* 1001 */ V(1, 3, 3),
Chris@0 2085 /* 1010 */ V(3, 1, 3),
Chris@0 2086 /* 1011 */ V(3, 1, 3),
Chris@0 2087 /* 1100 */ V(0, 3, 4),
Chris@0 2088 /* 1101 */ V(3, 0, 4),
Chris@0 2089 /* 1110 */ V(2, 2, 3),
Chris@0 2090 /* 1111 */ V(2, 2, 3),
Chris@0 2091
Chris@0 2092 /* 0011 ... */
Chris@0 2093 /* 00 */ V(1, 2, 2), /* 64 */
Chris@0 2094 /* 01 */ V(2, 1, 2),
Chris@0 2095 /* 10 */ V(0, 2, 2),
Chris@0 2096 /* 11 */ V(2, 0, 2),
Chris@0 2097
Chris@0 2098 /* 0000 0000 ... */
Chris@0 2099 /* 000 */ V(14, 15, 3), /* 68 */
Chris@0 2100 /* 001 */ V(15, 14, 3),
Chris@0 2101 /* 010 */ V(13, 15, 3),
Chris@0 2102 /* 011 */ V(15, 13, 3),
Chris@0 2103 /* 100 */ V(12, 15, 3),
Chris@0 2104 /* 101 */ V(15, 12, 3),
Chris@0 2105 /* 110 */ V(11, 15, 3),
Chris@0 2106 /* 111 */ V(15, 11, 3),
Chris@0 2107
Chris@0 2108 /* 0000 0001 ... */
Chris@0 2109 /* 000 */ V(10, 15, 2), /* 76 */
Chris@0 2110 /* 001 */ V(10, 15, 2),
Chris@0 2111 /* 010 */ V(15, 10, 3),
Chris@0 2112 /* 011 */ V(9, 15, 3),
Chris@0 2113 /* 100 */ V(15, 9, 3),
Chris@0 2114 /* 101 */ V(15, 8, 3),
Chris@0 2115 /* 110 */ V(8, 15, 2),
Chris@0 2116 /* 111 */ V(8, 15, 2),
Chris@0 2117
Chris@0 2118 /* 0000 0010 ... */
Chris@0 2119 /* 00 */ V(7, 15, 2), /* 84 */
Chris@0 2120 /* 01 */ V(15, 7, 2),
Chris@0 2121 /* 10 */ V(6, 15, 2),
Chris@0 2122 /* 11 */ V(15, 6, 2),
Chris@0 2123
Chris@0 2124 /* 0000 0100 ... */
Chris@0 2125 /* 00 */ V(5, 15, 2), /* 88 */
Chris@0 2126 /* 01 */ V(15, 5, 2),
Chris@0 2127 /* 10 */ V(4, 15, 1),
Chris@0 2128 /* 11 */ V(4, 15, 1),
Chris@0 2129
Chris@0 2130 /* 0000 0101 ... */
Chris@0 2131 /* 0 */ V(15, 4, 1), /* 92 */
Chris@0 2132 /* 1 */ V(15, 3, 1),
Chris@0 2133
Chris@0 2134 /* 0000 0110 ... */
Chris@0 2135 /* 0000 */ V(15, 0, 1), /* 94 */
Chris@0 2136 /* 0001 */ V(15, 0, 1),
Chris@0 2137 /* 0010 */ V(15, 0, 1),
Chris@0 2138 /* 0011 */ V(15, 0, 1),
Chris@0 2139 /* 0100 */ V(15, 0, 1),
Chris@0 2140 /* 0101 */ V(15, 0, 1),
Chris@0 2141 /* 0110 */ V(15, 0, 1),
Chris@0 2142 /* 0111 */ V(15, 0, 1),
Chris@0 2143 /* 1000 */ V(3, 15, 2),
Chris@0 2144 /* 1001 */ V(3, 15, 2),
Chris@0 2145 /* 1010 */ V(3, 15, 2),
Chris@0 2146 /* 1011 */ V(3, 15, 2),
Chris@0 2147 /* 1100 */ PTR(294, 4),
Chris@0 2148 /* 1101 */ PTR(310, 3),
Chris@0 2149 /* 1110 */ PTR(318, 3),
Chris@0 2150 /* 1111 */ PTR(326, 3),
Chris@0 2151
Chris@0 2152 /* 0000 1000 ... */
Chris@0 2153 /* 0 */ V(2, 15, 1), /* 110 */
Chris@0 2154 /* 1 */ V(0, 15, 1),
Chris@0 2155
Chris@0 2156 /* 0000 1011 ... */
Chris@0 2157 /* 0000 */ PTR(334, 2), /* 112 */
Chris@0 2158 /* 0001 */ PTR(338, 2),
Chris@0 2159 /* 0010 */ PTR(342, 2),
Chris@0 2160 /* 0011 */ PTR(346, 1),
Chris@0 2161 /* 0100 */ PTR(348, 2),
Chris@0 2162 /* 0101 */ PTR(352, 2),
Chris@0 2163 /* 0110 */ PTR(356, 1),
Chris@0 2164 /* 0111 */ PTR(358, 2),
Chris@0 2165 /* 1000 */ PTR(362, 2),
Chris@0 2166 /* 1001 */ PTR(366, 2),
Chris@0 2167 /* 1010 */ PTR(370, 2),
Chris@0 2168 /* 1011 */ V(14, 3, 4),
Chris@0 2169 /* 1100 */ PTR(374, 1),
Chris@0 2170 /* 1101 */ PTR(376, 1),
Chris@0 2171 /* 1110 */ PTR(378, 1),
Chris@0 2172 /* 1111 */ PTR(380, 1),
Chris@0 2173
Chris@0 2174 /* 0000 1100 ... */
Chris@0 2175 /* 0000 */ PTR(382, 1), /* 128 */
Chris@0 2176 /* 0001 */ PTR(384, 1),
Chris@0 2177 /* 0010 */ PTR(386, 1),
Chris@0 2178 /* 0011 */ V(0, 13, 4),
Chris@0 2179 /* 0100 */ PTR(388, 1),
Chris@0 2180 /* 0101 */ PTR(390, 1),
Chris@0 2181 /* 0110 */ PTR(392, 1),
Chris@0 2182 /* 0111 */ V(3, 12, 4),
Chris@0 2183 /* 1000 */ PTR(394, 1),
Chris@0 2184 /* 1001 */ V(1, 12, 4),
Chris@0 2185 /* 1010 */ V(12, 0, 4),
Chris@0 2186 /* 1011 */ PTR(396, 1),
Chris@0 2187 /* 1100 */ V(14, 2, 3),
Chris@0 2188 /* 1101 */ V(14, 2, 3),
Chris@0 2189 /* 1110 */ V(2, 14, 4),
Chris@0 2190 /* 1111 */ V(1, 14, 4),
Chris@0 2191
Chris@0 2192 /* 0000 1101 ... */
Chris@0 2193 /* 0000 */ V(13, 3, 4), /* 144 */
Chris@0 2194 /* 0001 */ V(2, 13, 4),
Chris@0 2195 /* 0010 */ V(13, 2, 4),
Chris@0 2196 /* 0011 */ V(13, 1, 4),
Chris@0 2197 /* 0100 */ V(3, 11, 4),
Chris@0 2198 /* 0101 */ PTR(398, 1),
Chris@0 2199 /* 0110 */ V(1, 13, 3),
Chris@0 2200 /* 0111 */ V(1, 13, 3),
Chris@0 2201 /* 1000 */ V(12, 4, 4),
Chris@0 2202 /* 1001 */ V(6, 11, 4),
Chris@0 2203 /* 1010 */ V(12, 3, 4),
Chris@0 2204 /* 1011 */ V(10, 7, 4),
Chris@0 2205 /* 1100 */ V(2, 12, 3),
Chris@0 2206 /* 1101 */ V(2, 12, 3),
Chris@0 2207 /* 1110 */ V(12, 2, 4),
Chris@0 2208 /* 1111 */ V(11, 5, 4),
Chris@0 2209
Chris@0 2210 /* 0000 1110 ... */
Chris@0 2211 /* 0000 */ V(12, 1, 4), /* 160 */
Chris@0 2212 /* 0001 */ V(0, 12, 4),
Chris@0 2213 /* 0010 */ V(4, 11, 4),
Chris@0 2214 /* 0011 */ V(11, 4, 4),
Chris@0 2215 /* 0100 */ V(6, 10, 4),
Chris@0 2216 /* 0101 */ V(10, 6, 4),
Chris@0 2217 /* 0110 */ V(11, 3, 3),
Chris@0 2218 /* 0111 */ V(11, 3, 3),
Chris@0 2219 /* 1000 */ V(5, 10, 4),
Chris@0 2220 /* 1001 */ V(10, 5, 4),
Chris@0 2221 /* 1010 */ V(2, 11, 3),
Chris@0 2222 /* 1011 */ V(2, 11, 3),
Chris@0 2223 /* 1100 */ V(11, 2, 3),
Chris@0 2224 /* 1101 */ V(11, 2, 3),
Chris@0 2225 /* 1110 */ V(1, 11, 3),
Chris@0 2226 /* 1111 */ V(1, 11, 3),
Chris@0 2227
Chris@0 2228 /* 0000 1111 ... */
Chris@0 2229 /* 0000 */ V(11, 1, 3), /* 176 */
Chris@0 2230 /* 0001 */ V(11, 1, 3),
Chris@0 2231 /* 0010 */ V(0, 11, 4),
Chris@0 2232 /* 0011 */ V(11, 0, 4),
Chris@0 2233 /* 0100 */ V(6, 9, 4),
Chris@0 2234 /* 0101 */ V(9, 6, 4),
Chris@0 2235 /* 0110 */ V(4, 10, 4),
Chris@0 2236 /* 0111 */ V(10, 4, 4),
Chris@0 2237 /* 1000 */ V(7, 8, 4),
Chris@0 2238 /* 1001 */ V(8, 7, 4),
Chris@0 2239 /* 1010 */ V(10, 3, 3),
Chris@0 2240 /* 1011 */ V(10, 3, 3),
Chris@0 2241 /* 1100 */ V(3, 10, 4),
Chris@0 2242 /* 1101 */ V(5, 9, 4),
Chris@0 2243 /* 1110 */ V(2, 10, 3),
Chris@0 2244 /* 1111 */ V(2, 10, 3),
Chris@0 2245
Chris@0 2246 /* 0001 0000 ... */
Chris@0 2247 /* 0000 */ V(9, 5, 4), /* 192 */
Chris@0 2248 /* 0001 */ V(6, 8, 4),
Chris@0 2249 /* 0010 */ V(10, 1, 3),
Chris@0 2250 /* 0011 */ V(10, 1, 3),
Chris@0 2251 /* 0100 */ V(8, 6, 4),
Chris@0 2252 /* 0101 */ V(7, 7, 4),
Chris@0 2253 /* 0110 */ V(9, 4, 3),
Chris@0 2254 /* 0111 */ V(9, 4, 3),
Chris@0 2255 /* 1000 */ V(4, 9, 4),
Chris@0 2256 /* 1001 */ V(5, 7, 4),
Chris@0 2257 /* 1010 */ V(6, 7, 3),
Chris@0 2258 /* 1011 */ V(6, 7, 3),
Chris@0 2259 /* 1100 */ V(10, 2, 2),
Chris@0 2260 /* 1101 */ V(10, 2, 2),
Chris@0 2261 /* 1110 */ V(10, 2, 2),
Chris@0 2262 /* 1111 */ V(10, 2, 2),
Chris@0 2263
Chris@0 2264 /* 0001 0001 ... */
Chris@0 2265 /* 000 */ V(1, 10, 2), /* 208 */
Chris@0 2266 /* 001 */ V(1, 10, 2),
Chris@0 2267 /* 010 */ V(0, 10, 3),
Chris@0 2268 /* 011 */ V(10, 0, 3),
Chris@0 2269 /* 100 */ V(3, 9, 3),
Chris@0 2270 /* 101 */ V(9, 3, 3),
Chris@0 2271 /* 110 */ V(5, 8, 3),
Chris@0 2272 /* 111 */ V(8, 5, 3),
Chris@0 2273
Chris@0 2274 /* 0001 0010 ... */
Chris@0 2275 /* 000 */ V(2, 9, 2), /* 216 */
Chris@0 2276 /* 001 */ V(2, 9, 2),
Chris@0 2277 /* 010 */ V(9, 2, 2),
Chris@0 2278 /* 011 */ V(9, 2, 2),
Chris@0 2279 /* 100 */ V(7, 6, 3),
Chris@0 2280 /* 101 */ V(0, 9, 3),
Chris@0 2281 /* 110 */ V(1, 9, 2),
Chris@0 2282 /* 111 */ V(1, 9, 2),
Chris@0 2283
Chris@0 2284 /* 0001 0011 ... */
Chris@0 2285 /* 000 */ V(9, 1, 2), /* 224 */
Chris@0 2286 /* 001 */ V(9, 1, 2),
Chris@0 2287 /* 010 */ V(9, 0, 3),
Chris@0 2288 /* 011 */ V(4, 8, 3),
Chris@0 2289 /* 100 */ V(8, 4, 3),
Chris@0 2290 /* 101 */ V(7, 5, 3),
Chris@0 2291 /* 110 */ V(3, 8, 3),
Chris@0 2292 /* 111 */ V(8, 3, 3),
Chris@0 2293
Chris@0 2294 /* 0001 0100 ... */
Chris@0 2295 /* 000 */ V(6, 6, 3), /* 232 */
Chris@0 2296 /* 001 */ V(2, 8, 3),
Chris@0 2297 /* 010 */ V(8, 2, 2),
Chris@0 2298 /* 011 */ V(8, 2, 2),
Chris@0 2299 /* 100 */ V(4, 7, 3),
Chris@0 2300 /* 101 */ V(7, 4, 3),
Chris@0 2301 /* 110 */ V(1, 8, 2),
Chris@0 2302 /* 111 */ V(1, 8, 2),
Chris@0 2303
Chris@0 2304 /* 0001 0101 ... */
Chris@0 2305 /* 000 */ V(8, 1, 2), /* 240 */
Chris@0 2306 /* 001 */ V(8, 1, 2),
Chris@0 2307 /* 010 */ V(8, 0, 2),
Chris@0 2308 /* 011 */ V(8, 0, 2),
Chris@0 2309 /* 100 */ V(0, 8, 3),
Chris@0 2310 /* 101 */ V(5, 6, 3),
Chris@0 2311 /* 110 */ V(3, 7, 2),
Chris@0 2312 /* 111 */ V(3, 7, 2),
Chris@0 2313
Chris@0 2314 /* 0001 0110 ... */
Chris@0 2315 /* 000 */ V(7, 3, 2), /* 248 */
Chris@0 2316 /* 001 */ V(7, 3, 2),
Chris@0 2317 /* 010 */ V(6, 5, 3),
Chris@0 2318 /* 011 */ V(4, 6, 3),
Chris@0 2319 /* 100 */ V(2, 7, 2),
Chris@0 2320 /* 101 */ V(2, 7, 2),
Chris@0 2321 /* 110 */ V(7, 2, 2),
Chris@0 2322 /* 111 */ V(7, 2, 2),
Chris@0 2323
Chris@0 2324 /* 0001 0111 ... */
Chris@0 2325 /* 000 */ V(6, 4, 3), /* 256 */
Chris@0 2326 /* 001 */ V(5, 5, 3),
Chris@0 2327 /* 010 */ V(0, 7, 2),
Chris@0 2328 /* 011 */ V(0, 7, 2),
Chris@0 2329 /* 100 */ V(1, 7, 1),
Chris@0 2330 /* 101 */ V(1, 7, 1),
Chris@0 2331 /* 110 */ V(1, 7, 1),
Chris@0 2332 /* 111 */ V(1, 7, 1),
Chris@0 2333
Chris@0 2334 /* 0001 1000 ... */
Chris@0 2335 /* 00 */ V(7, 1, 1), /* 264 */
Chris@0 2336 /* 01 */ V(7, 1, 1),
Chris@0 2337 /* 10 */ V(7, 0, 2),
Chris@0 2338 /* 11 */ V(3, 6, 2),
Chris@0 2339
Chris@0 2340 /* 0001 1001 ... */
Chris@0 2341 /* 00 */ V(6, 3, 2), /* 268 */
Chris@0 2342 /* 01 */ V(4, 5, 2),
Chris@0 2343 /* 10 */ V(5, 4, 2),
Chris@0 2344 /* 11 */ V(2, 6, 2),
Chris@0 2345
Chris@0 2346 /* 0001 1010 ... */
Chris@0 2347 /* 0 */ V(6, 2, 1), /* 272 */
Chris@0 2348 /* 1 */ V(1, 6, 1),
Chris@0 2349
Chris@0 2350 /* 0001 1011 ... */
Chris@0 2351 /* 00 */ V(6, 1, 1), /* 274 */
Chris@0 2352 /* 01 */ V(6, 1, 1),
Chris@0 2353 /* 10 */ V(0, 6, 2),
Chris@0 2354 /* 11 */ V(6, 0, 2),
Chris@0 2355
Chris@0 2356 /* 0001 1100 ... */
Chris@0 2357 /* 00 */ V(5, 3, 1), /* 278 */
Chris@0 2358 /* 01 */ V(5, 3, 1),
Chris@0 2359 /* 10 */ V(3, 5, 2),
Chris@0 2360 /* 11 */ V(4, 4, 2),
Chris@0 2361
Chris@0 2362 /* 0001 1101 ... */
Chris@0 2363 /* 0 */ V(2, 5, 1), /* 282 */
Chris@0 2364 /* 1 */ V(5, 2, 1),
Chris@0 2365
Chris@0 2366 /* 0001 1111 ... */
Chris@0 2367 /* 0 */ V(1, 5, 1), /* 284 */
Chris@0 2368 /* 1 */ V(0, 5, 1),
Chris@0 2369
Chris@0 2370 /* 0010 0000 ... */
Chris@0 2371 /* 0 */ V(3, 4, 1), /* 286 */
Chris@0 2372 /* 1 */ V(4, 3, 1),
Chris@0 2373
Chris@0 2374 /* 0010 0001 ... */
Chris@0 2375 /* 0 */ V(5, 0, 1), /* 288 */
Chris@0 2376 /* 1 */ V(2, 4, 1),
Chris@0 2377
Chris@0 2378 /* 0010 0010 ... */
Chris@0 2379 /* 0 */ V(4, 2, 1), /* 290 */
Chris@0 2380 /* 1 */ V(3, 3, 1),
Chris@0 2381
Chris@0 2382 /* 0010 0101 ... */
Chris@0 2383 /* 0 */ V(0, 4, 1), /* 292 */
Chris@0 2384 /* 1 */ V(4, 0, 1),
Chris@0 2385
Chris@0 2386 /* 0000 0110 1100 ... */
Chris@0 2387 /* 0000 */ V(12, 14, 4), /* 294 */
Chris@0 2388 /* 0001 */ PTR(400, 1),
Chris@0 2389 /* 0010 */ V(13, 14, 3),
Chris@0 2390 /* 0011 */ V(13, 14, 3),
Chris@0 2391 /* 0100 */ V(14, 9, 3),
Chris@0 2392 /* 0101 */ V(14, 9, 3),
Chris@0 2393 /* 0110 */ V(14, 10, 4),
Chris@0 2394 /* 0111 */ V(13, 9, 4),
Chris@0 2395 /* 1000 */ V(14, 14, 2),
Chris@0 2396 /* 1001 */ V(14, 14, 2),
Chris@0 2397 /* 1010 */ V(14, 14, 2),
Chris@0 2398 /* 1011 */ V(14, 14, 2),
Chris@0 2399 /* 1100 */ V(14, 13, 3),
Chris@0 2400 /* 1101 */ V(14, 13, 3),
Chris@0 2401 /* 1110 */ V(14, 11, 3),
Chris@0 2402 /* 1111 */ V(14, 11, 3),
Chris@0 2403
Chris@0 2404 /* 0000 0110 1101 ... */
Chris@0 2405 /* 000 */ V(11, 14, 2), /* 310 */
Chris@0 2406 /* 001 */ V(11, 14, 2),
Chris@0 2407 /* 010 */ V(12, 13, 2),
Chris@0 2408 /* 011 */ V(12, 13, 2),
Chris@0 2409 /* 100 */ V(13, 12, 3),
Chris@0 2410 /* 101 */ V(13, 11, 3),
Chris@0 2411 /* 110 */ V(10, 14, 2),
Chris@0 2412 /* 111 */ V(10, 14, 2),
Chris@0 2413
Chris@0 2414 /* 0000 0110 1110 ... */
Chris@0 2415 /* 000 */ V(12, 12, 2), /* 318 */
Chris@0 2416 /* 001 */ V(12, 12, 2),
Chris@0 2417 /* 010 */ V(10, 13, 3),
Chris@0 2418 /* 011 */ V(13, 10, 3),
Chris@0 2419 /* 100 */ V(7, 14, 3),
Chris@0 2420 /* 101 */ V(10, 12, 3),
Chris@0 2421 /* 110 */ V(12, 10, 2),
Chris@0 2422 /* 111 */ V(12, 10, 2),
Chris@0 2423
Chris@0 2424 /* 0000 0110 1111 ... */
Chris@0 2425 /* 000 */ V(12, 9, 3), /* 326 */
Chris@0 2426 /* 001 */ V(7, 13, 3),
Chris@0 2427 /* 010 */ V(5, 14, 2),
Chris@0 2428 /* 011 */ V(5, 14, 2),
Chris@0 2429 /* 100 */ V(11, 13, 1),
Chris@0 2430 /* 101 */ V(11, 13, 1),
Chris@0 2431 /* 110 */ V(11, 13, 1),
Chris@0 2432 /* 111 */ V(11, 13, 1),
Chris@0 2433
Chris@0 2434 /* 0000 1011 0000 ... */
Chris@0 2435 /* 00 */ V(9, 14, 1), /* 334 */
Chris@0 2436 /* 01 */ V(9, 14, 1),
Chris@0 2437 /* 10 */ V(11, 12, 2),
Chris@0 2438 /* 11 */ V(12, 11, 2),
Chris@0 2439
Chris@0 2440 /* 0000 1011 0001 ... */
Chris@0 2441 /* 00 */ V(8, 14, 2), /* 338 */
Chris@0 2442 /* 01 */ V(14, 8, 2),
Chris@0 2443 /* 10 */ V(9, 13, 2),
Chris@0 2444 /* 11 */ V(14, 7, 2),
Chris@0 2445
Chris@0 2446 /* 0000 1011 0010 ... */
Chris@0 2447 /* 00 */ V(11, 11, 2), /* 342 */
Chris@0 2448 /* 01 */ V(8, 13, 2),
Chris@0 2449 /* 10 */ V(13, 8, 2),
Chris@0 2450 /* 11 */ V(6, 14, 2),
Chris@0 2451
Chris@0 2452 /* 0000 1011 0011 ... */
Chris@0 2453 /* 0 */ V(14, 6, 1), /* 346 */
Chris@0 2454 /* 1 */ V(9, 12, 1),
Chris@0 2455
Chris@0 2456 /* 0000 1011 0100 ... */
Chris@0 2457 /* 00 */ V(10, 11, 2), /* 348 */
Chris@0 2458 /* 01 */ V(11, 10, 2),
Chris@0 2459 /* 10 */ V(14, 5, 2),
Chris@0 2460 /* 11 */ V(13, 7, 2),
Chris@0 2461
Chris@0 2462 /* 0000 1011 0101 ... */
Chris@0 2463 /* 00 */ V(4, 14, 1), /* 352 */
Chris@0 2464 /* 01 */ V(4, 14, 1),
Chris@0 2465 /* 10 */ V(14, 4, 2),
Chris@0 2466 /* 11 */ V(8, 12, 2),
Chris@0 2467
Chris@0 2468 /* 0000 1011 0110 ... */
Chris@0 2469 /* 0 */ V(12, 8, 1), /* 356 */
Chris@0 2470 /* 1 */ V(3, 14, 1),
Chris@0 2471
Chris@0 2472 /* 0000 1011 0111 ... */
Chris@0 2473 /* 00 */ V(6, 13, 1), /* 358 */
Chris@0 2474 /* 01 */ V(6, 13, 1),
Chris@0 2475 /* 10 */ V(13, 6, 2),
Chris@0 2476 /* 11 */ V(9, 11, 2),
Chris@0 2477
Chris@0 2478 /* 0000 1011 1000 ... */
Chris@0 2479 /* 00 */ V(11, 9, 2), /* 362 */
Chris@0 2480 /* 01 */ V(10, 10, 2),
Chris@0 2481 /* 10 */ V(14, 1, 1),
Chris@0 2482 /* 11 */ V(14, 1, 1),
Chris@0 2483
Chris@0 2484 /* 0000 1011 1001 ... */
Chris@0 2485 /* 00 */ V(13, 4, 1), /* 366 */
Chris@0 2486 /* 01 */ V(13, 4, 1),
Chris@0 2487 /* 10 */ V(11, 8, 2),
Chris@0 2488 /* 11 */ V(10, 9, 2),
Chris@0 2489
Chris@0 2490 /* 0000 1011 1010 ... */
Chris@0 2491 /* 00 */ V(7, 11, 1), /* 370 */
Chris@0 2492 /* 01 */ V(7, 11, 1),
Chris@0 2493 /* 10 */ V(11, 7, 2),
Chris@0 2494 /* 11 */ V(13, 0, 2),
Chris@0 2495
Chris@0 2496 /* 0000 1011 1100 ... */
Chris@0 2497 /* 0 */ V(0, 14, 1), /* 374 */
Chris@0 2498 /* 1 */ V(14, 0, 1),
Chris@0 2499
Chris@0 2500 /* 0000 1011 1101 ... */
Chris@0 2501 /* 0 */ V(5, 13, 1), /* 376 */
Chris@0 2502 /* 1 */ V(13, 5, 1),
Chris@0 2503
Chris@0 2504 /* 0000 1011 1110 ... */
Chris@0 2505 /* 0 */ V(7, 12, 1), /* 378 */
Chris@0 2506 /* 1 */ V(12, 7, 1),
Chris@0 2507
Chris@0 2508 /* 0000 1011 1111 ... */
Chris@0 2509 /* 0 */ V(4, 13, 1), /* 380 */
Chris@0 2510 /* 1 */ V(8, 11, 1),
Chris@0 2511
Chris@0 2512 /* 0000 1100 0000 ... */
Chris@0 2513 /* 0 */ V(9, 10, 1), /* 382 */
Chris@0 2514 /* 1 */ V(6, 12, 1),
Chris@0 2515
Chris@0 2516 /* 0000 1100 0001 ... */
Chris@0 2517 /* 0 */ V(12, 6, 1), /* 384 */
Chris@0 2518 /* 1 */ V(3, 13, 1),
Chris@0 2519
Chris@0 2520 /* 0000 1100 0010 ... */
Chris@0 2521 /* 0 */ V(5, 12, 1), /* 386 */
Chris@0 2522 /* 1 */ V(12, 5, 1),
Chris@0 2523
Chris@0 2524 /* 0000 1100 0100 ... */
Chris@0 2525 /* 0 */ V(8, 10, 1), /* 388 */
Chris@0 2526 /* 1 */ V(10, 8, 1),
Chris@0 2527
Chris@0 2528 /* 0000 1100 0101 ... */
Chris@0 2529 /* 0 */ V(9, 9, 1), /* 390 */
Chris@0 2530 /* 1 */ V(4, 12, 1),
Chris@0 2531
Chris@0 2532 /* 0000 1100 0110 ... */
Chris@0 2533 /* 0 */ V(11, 6, 1), /* 392 */
Chris@0 2534 /* 1 */ V(7, 10, 1),
Chris@0 2535
Chris@0 2536 /* 0000 1100 1000 ... */
Chris@0 2537 /* 0 */ V(5, 11, 1), /* 394 */
Chris@0 2538 /* 1 */ V(8, 9, 1),
Chris@0 2539
Chris@0 2540 /* 0000 1100 1011 ... */
Chris@0 2541 /* 0 */ V(9, 8, 1), /* 396 */
Chris@0 2542 /* 1 */ V(7, 9, 1),
Chris@0 2543
Chris@0 2544 /* 0000 1101 0101 ... */
Chris@0 2545 /* 0 */ V(9, 7, 1), /* 398 */
Chris@0 2546 /* 1 */ V(8, 8, 1),
Chris@0 2547
Chris@0 2548 /* 0000 0110 1100 0001 ... */
Chris@0 2549 /* 0 */ V(14, 12, 1), /* 400 */
Chris@0 2550 /* 1 */ V(13, 13, 1)
Chris@0 2551 };
Chris@0 2552
Chris@0 2553 static
Chris@0 2554 union huffpair const hufftab24[] = {
Chris@0 2555 /* 0000 */ PTR(16, 4),
Chris@0 2556 /* 0001 */ PTR(32, 4),
Chris@0 2557 /* 0010 */ PTR(48, 4),
Chris@0 2558 /* 0011 */ V(15, 15, 4),
Chris@0 2559 /* 0100 */ PTR(64, 4),
Chris@0 2560 /* 0101 */ PTR(80, 4),
Chris@0 2561 /* 0110 */ PTR(96, 4),
Chris@0 2562 /* 0111 */ PTR(112, 4),
Chris@0 2563 /* 1000 */ PTR(128, 4),
Chris@0 2564 /* 1001 */ PTR(144, 4),
Chris@0 2565 /* 1010 */ PTR(160, 3),
Chris@0 2566 /* 1011 */ PTR(168, 2),
Chris@0 2567 /* 1100 */ V(1, 1, 4),
Chris@0 2568 /* 1101 */ V(0, 1, 4),
Chris@0 2569 /* 1110 */ V(1, 0, 4),
Chris@0 2570 /* 1111 */ V(0, 0, 4),
Chris@0 2571
Chris@0 2572 /* 0000 ... */
Chris@0 2573 /* 0000 */ V(14, 15, 4), /* 16 */
Chris@0 2574 /* 0001 */ V(15, 14, 4),
Chris@0 2575 /* 0010 */ V(13, 15, 4),
Chris@0 2576 /* 0011 */ V(15, 13, 4),
Chris@0 2577 /* 0100 */ V(12, 15, 4),
Chris@0 2578 /* 0101 */ V(15, 12, 4),
Chris@0 2579 /* 0110 */ V(11, 15, 4),
Chris@0 2580 /* 0111 */ V(15, 11, 4),
Chris@0 2581 /* 1000 */ V(15, 10, 3),
Chris@0 2582 /* 1001 */ V(15, 10, 3),
Chris@0 2583 /* 1010 */ V(10, 15, 4),
Chris@0 2584 /* 1011 */ V(9, 15, 4),
Chris@0 2585 /* 1100 */ V(15, 9, 3),
Chris@0 2586 /* 1101 */ V(15, 9, 3),
Chris@0 2587 /* 1110 */ V(15, 8, 3),
Chris@0 2588 /* 1111 */ V(15, 8, 3),
Chris@0 2589
Chris@0 2590 /* 0001 ... */
Chris@0 2591 /* 0000 */ V(8, 15, 4), /* 32 */
Chris@0 2592 /* 0001 */ V(7, 15, 4),
Chris@0 2593 /* 0010 */ V(15, 7, 3),
Chris@0 2594 /* 0011 */ V(15, 7, 3),
Chris@0 2595 /* 0100 */ V(6, 15, 3),
Chris@0 2596 /* 0101 */ V(6, 15, 3),
Chris@0 2597 /* 0110 */ V(15, 6, 3),
Chris@0 2598 /* 0111 */ V(15, 6, 3),
Chris@0 2599 /* 1000 */ V(5, 15, 3),
Chris@0 2600 /* 1001 */ V(5, 15, 3),
Chris@0 2601 /* 1010 */ V(15, 5, 3),
Chris@0 2602 /* 1011 */ V(15, 5, 3),
Chris@0 2603 /* 1100 */ V(4, 15, 3),
Chris@0 2604 /* 1101 */ V(4, 15, 3),
Chris@0 2605 /* 1110 */ V(15, 4, 3),
Chris@0 2606 /* 1111 */ V(15, 4, 3),
Chris@0 2607
Chris@0 2608 /* 0010 ... */
Chris@0 2609 /* 0000 */ V(3, 15, 3), /* 48 */
Chris@0 2610 /* 0001 */ V(3, 15, 3),
Chris@0 2611 /* 0010 */ V(15, 3, 3),
Chris@0 2612 /* 0011 */ V(15, 3, 3),
Chris@0 2613 /* 0100 */ V(2, 15, 3),
Chris@0 2614 /* 0101 */ V(2, 15, 3),
Chris@0 2615 /* 0110 */ V(15, 2, 3),
Chris@0 2616 /* 0111 */ V(15, 2, 3),
Chris@0 2617 /* 1000 */ V(15, 1, 3),
Chris@0 2618 /* 1001 */ V(15, 1, 3),
Chris@0 2619 /* 1010 */ V(1, 15, 4),
Chris@0 2620 /* 1011 */ V(15, 0, 4),
Chris@0 2621 /* 1100 */ PTR(172, 3),
Chris@0 2622 /* 1101 */ PTR(180, 3),
Chris@0 2623 /* 1110 */ PTR(188, 3),
Chris@0 2624 /* 1111 */ PTR(196, 3),
Chris@0 2625
Chris@0 2626 /* 0100 ... */
Chris@0 2627 /* 0000 */ PTR(204, 4), /* 64 */
Chris@0 2628 /* 0001 */ PTR(220, 3),
Chris@0 2629 /* 0010 */ PTR(228, 3),
Chris@0 2630 /* 0011 */ PTR(236, 3),
Chris@0 2631 /* 0100 */ PTR(244, 2),
Chris@0 2632 /* 0101 */ PTR(248, 2),
Chris@0 2633 /* 0110 */ PTR(252, 2),
Chris@0 2634 /* 0111 */ PTR(256, 2),
Chris@0 2635 /* 1000 */ PTR(260, 2),
Chris@0 2636 /* 1001 */ PTR(264, 2),
Chris@0 2637 /* 1010 */ PTR(268, 2),
Chris@0 2638 /* 1011 */ PTR(272, 2),
Chris@0 2639 /* 1100 */ PTR(276, 2),
Chris@0 2640 /* 1101 */ PTR(280, 3),
Chris@0 2641 /* 1110 */ PTR(288, 2),
Chris@0 2642 /* 1111 */ PTR(292, 2),
Chris@0 2643
Chris@0 2644 /* 0101 ... */
Chris@0 2645 /* 0000 */ PTR(296, 2), /* 80 */
Chris@0 2646 /* 0001 */ PTR(300, 3),
Chris@0 2647 /* 0010 */ PTR(308, 2),
Chris@0 2648 /* 0011 */ PTR(312, 3),
Chris@0 2649 /* 0100 */ PTR(320, 1),
Chris@0 2650 /* 0101 */ PTR(322, 2),
Chris@0 2651 /* 0110 */ PTR(326, 2),
Chris@0 2652 /* 0111 */ PTR(330, 1),
Chris@0 2653 /* 1000 */ PTR(332, 2),
Chris@0 2654 /* 1001 */ PTR(336, 1),
Chris@0 2655 /* 1010 */ PTR(338, 1),
Chris@0 2656 /* 1011 */ PTR(340, 1),
Chris@0 2657 /* 1100 */ PTR(342, 1),
Chris@0 2658 /* 1101 */ PTR(344, 1),
Chris@0 2659 /* 1110 */ PTR(346, 1),
Chris@0 2660 /* 1111 */ PTR(348, 1),
Chris@0 2661
Chris@0 2662 /* 0110 ... */
Chris@0 2663 /* 0000 */ PTR(350, 1), /* 96 */
Chris@0 2664 /* 0001 */ PTR(352, 1),
Chris@0 2665 /* 0010 */ PTR(354, 1),
Chris@0 2666 /* 0011 */ PTR(356, 1),
Chris@0 2667 /* 0100 */ PTR(358, 1),
Chris@0 2668 /* 0101 */ PTR(360, 1),
Chris@0 2669 /* 0110 */ PTR(362, 1),
Chris@0 2670 /* 0111 */ PTR(364, 1),
Chris@0 2671 /* 1000 */ PTR(366, 1),
Chris@0 2672 /* 1001 */ PTR(368, 1),
Chris@0 2673 /* 1010 */ PTR(370, 2),
Chris@0 2674 /* 1011 */ PTR(374, 1),
Chris@0 2675 /* 1100 */ PTR(376, 2),
Chris@0 2676 /* 1101 */ V(7, 3, 4),
Chris@0 2677 /* 1110 */ PTR(380, 1),
Chris@0 2678 /* 1111 */ V(7, 2, 4),
Chris@0 2679
Chris@0 2680 /* 0111 ... */
Chris@0 2681 /* 0000 */ V(4, 6, 4), /* 112 */
Chris@0 2682 /* 0001 */ V(6, 4, 4),
Chris@0 2683 /* 0010 */ V(5, 5, 4),
Chris@0 2684 /* 0011 */ V(7, 1, 4),
Chris@0 2685 /* 0100 */ V(3, 6, 4),
Chris@0 2686 /* 0101 */ V(6, 3, 4),
Chris@0 2687 /* 0110 */ V(4, 5, 4),
Chris@0 2688 /* 0111 */ V(5, 4, 4),
Chris@0 2689 /* 1000 */ V(2, 6, 4),
Chris@0 2690 /* 1001 */ V(6, 2, 4),
Chris@0 2691 /* 1010 */ V(1, 6, 4),
Chris@0 2692 /* 1011 */ V(6, 1, 4),
Chris@0 2693 /* 1100 */ PTR(382, 1),
Chris@0 2694 /* 1101 */ V(3, 5, 4),
Chris@0 2695 /* 1110 */ V(5, 3, 4),
Chris@0 2696 /* 1111 */ V(4, 4, 4),
Chris@0 2697
Chris@0 2698 /* 1000 ... */
Chris@0 2699 /* 0000 */ V(2, 5, 4), /* 128 */
Chris@0 2700 /* 0001 */ V(5, 2, 4),
Chris@0 2701 /* 0010 */ V(1, 5, 4),
Chris@0 2702 /* 0011 */ PTR(384, 1),
Chris@0 2703 /* 0100 */ V(5, 1, 3),
Chris@0 2704 /* 0101 */ V(5, 1, 3),
Chris@0 2705 /* 0110 */ V(3, 4, 4),
Chris@0 2706 /* 0111 */ V(4, 3, 4),
Chris@0 2707 /* 1000 */ V(2, 4, 3),
Chris@0 2708 /* 1001 */ V(2, 4, 3),
Chris@0 2709 /* 1010 */ V(4, 2, 3),
Chris@0 2710 /* 1011 */ V(4, 2, 3),
Chris@0 2711 /* 1100 */ V(3, 3, 3),
Chris@0 2712 /* 1101 */ V(3, 3, 3),
Chris@0 2713 /* 1110 */ V(1, 4, 3),
Chris@0 2714 /* 1111 */ V(1, 4, 3),
Chris@0 2715
Chris@0 2716 /* 1001 ... */
Chris@0 2717 /* 0000 */ V(4, 1, 3), /* 144 */
Chris@0 2718 /* 0001 */ V(4, 1, 3),
Chris@0 2719 /* 0010 */ V(0, 4, 4),
Chris@0 2720 /* 0011 */ V(4, 0, 4),
Chris@0 2721 /* 0100 */ V(2, 3, 3),
Chris@0 2722 /* 0101 */ V(2, 3, 3),
Chris@0 2723 /* 0110 */ V(3, 2, 3),
Chris@0 2724 /* 0111 */ V(3, 2, 3),
Chris@0 2725 /* 1000 */ V(1, 3, 2),
Chris@0 2726 /* 1001 */ V(1, 3, 2),
Chris@0 2727 /* 1010 */ V(1, 3, 2),
Chris@0 2728 /* 1011 */ V(1, 3, 2),
Chris@0 2729 /* 1100 */ V(3, 1, 2),
Chris@0 2730 /* 1101 */ V(3, 1, 2),
Chris@0 2731 /* 1110 */ V(3, 1, 2),
Chris@0 2732 /* 1111 */ V(3, 1, 2),
Chris@0 2733
Chris@0 2734 /* 1010 ... */
Chris@0 2735 /* 000 */ V(0, 3, 3), /* 160 */
Chris@0 2736 /* 001 */ V(3, 0, 3),
Chris@0 2737 /* 010 */ V(2, 2, 2),
Chris@0 2738 /* 011 */ V(2, 2, 2),
Chris@0 2739 /* 100 */ V(1, 2, 1),
Chris@0 2740 /* 101 */ V(1, 2, 1),
Chris@0 2741 /* 110 */ V(1, 2, 1),
Chris@0 2742 /* 111 */ V(1, 2, 1),
Chris@0 2743
Chris@0 2744 /* 1011 ... */
Chris@0 2745 /* 00 */ V(2, 1, 1), /* 168 */
Chris@0 2746 /* 01 */ V(2, 1, 1),
Chris@0 2747 /* 10 */ V(0, 2, 2),
Chris@0 2748 /* 11 */ V(2, 0, 2),
Chris@0 2749
Chris@0 2750 /* 0010 1100 ... */
Chris@0 2751 /* 000 */ V(0, 15, 1), /* 172 */
Chris@0 2752 /* 001 */ V(0, 15, 1),
Chris@0 2753 /* 010 */ V(0, 15, 1),
Chris@0 2754 /* 011 */ V(0, 15, 1),
Chris@0 2755 /* 100 */ V(14, 14, 3),
Chris@0 2756 /* 101 */ V(13, 14, 3),
Chris@0 2757 /* 110 */ V(14, 13, 3),
Chris@0 2758 /* 111 */ V(12, 14, 3),
Chris@0 2759
Chris@0 2760 /* 0010 1101 ... */
Chris@0 2761 /* 000 */ V(14, 12, 3), /* 180 */
Chris@0 2762 /* 001 */ V(13, 13, 3),
Chris@0 2763 /* 010 */ V(11, 14, 3),
Chris@0 2764 /* 011 */ V(14, 11, 3),
Chris@0 2765 /* 100 */ V(12, 13, 3),
Chris@0 2766 /* 101 */ V(13, 12, 3),
Chris@0 2767 /* 110 */ V(10, 14, 3),
Chris@0 2768 /* 111 */ V(14, 10, 3),
Chris@0 2769
Chris@0 2770 /* 0010 1110 ... */
Chris@0 2771 /* 000 */ V(11, 13, 3), /* 188 */
Chris@0 2772 /* 001 */ V(13, 11, 3),
Chris@0 2773 /* 010 */ V(12, 12, 3),
Chris@0 2774 /* 011 */ V(9, 14, 3),
Chris@0 2775 /* 100 */ V(14, 9, 3),
Chris@0 2776 /* 101 */ V(10, 13, 3),
Chris@0 2777 /* 110 */ V(13, 10, 3),
Chris@0 2778 /* 111 */ V(11, 12, 3),
Chris@0 2779
Chris@0 2780 /* 0010 1111 ... */
Chris@0 2781 /* 000 */ V(12, 11, 3), /* 196 */
Chris@0 2782 /* 001 */ V(8, 14, 3),
Chris@0 2783 /* 010 */ V(14, 8, 3),
Chris@0 2784 /* 011 */ V(9, 13, 3),
Chris@0 2785 /* 100 */ V(13, 9, 3),
Chris@0 2786 /* 101 */ V(7, 14, 3),
Chris@0 2787 /* 110 */ V(14, 7, 3),
Chris@0 2788 /* 111 */ V(10, 12, 3),
Chris@0 2789
Chris@0 2790 /* 0100 0000 ... */
Chris@0 2791 /* 0000 */ V(12, 10, 3), /* 204 */
Chris@0 2792 /* 0001 */ V(12, 10, 3),
Chris@0 2793 /* 0010 */ V(11, 11, 3),
Chris@0 2794 /* 0011 */ V(11, 11, 3),
Chris@0 2795 /* 0100 */ V(8, 13, 3),
Chris@0 2796 /* 0101 */ V(8, 13, 3),
Chris@0 2797 /* 0110 */ V(13, 8, 3),
Chris@0 2798 /* 0111 */ V(13, 8, 3),
Chris@0 2799 /* 1000 */ V(0, 14, 4),
Chris@0 2800 /* 1001 */ V(14, 0, 4),
Chris@0 2801 /* 1010 */ V(0, 13, 3),
Chris@0 2802 /* 1011 */ V(0, 13, 3),
Chris@0 2803 /* 1100 */ V(14, 6, 2),
Chris@0 2804 /* 1101 */ V(14, 6, 2),
Chris@0 2805 /* 1110 */ V(14, 6, 2),
Chris@0 2806 /* 1111 */ V(14, 6, 2),
Chris@0 2807
Chris@0 2808 /* 0100 0001 ... */
Chris@0 2809 /* 000 */ V(6, 14, 3), /* 220 */
Chris@0 2810 /* 001 */ V(9, 12, 3),
Chris@0 2811 /* 010 */ V(12, 9, 2),
Chris@0 2812 /* 011 */ V(12, 9, 2),
Chris@0 2813 /* 100 */ V(5, 14, 2),
Chris@0 2814 /* 101 */ V(5, 14, 2),
Chris@0 2815 /* 110 */ V(11, 10, 2),
Chris@0 2816 /* 111 */ V(11, 10, 2),
Chris@0 2817
Chris@0 2818 /* 0100 0010 ... */
Chris@0 2819 /* 000 */ V(14, 5, 2), /* 228 */
Chris@0 2820 /* 001 */ V(14, 5, 2),
Chris@0 2821 /* 010 */ V(10, 11, 3),
Chris@0 2822 /* 011 */ V(7, 13, 3),
Chris@0 2823 /* 100 */ V(13, 7, 2),
Chris@0 2824 /* 101 */ V(13, 7, 2),
Chris@0 2825 /* 110 */ V(14, 4, 2),
Chris@0 2826 /* 111 */ V(14, 4, 2),
Chris@0 2827
Chris@0 2828 /* 0100 0011 ... */
Chris@0 2829 /* 000 */ V(8, 12, 2), /* 236 */
Chris@0 2830 /* 001 */ V(8, 12, 2),
Chris@0 2831 /* 010 */ V(12, 8, 2),
Chris@0 2832 /* 011 */ V(12, 8, 2),
Chris@0 2833 /* 100 */ V(4, 14, 3),
Chris@0 2834 /* 101 */ V(2, 14, 3),
Chris@0 2835 /* 110 */ V(3, 14, 2),
Chris@0 2836 /* 111 */ V(3, 14, 2),
Chris@0 2837
Chris@0 2838 /* 0100 0100 ... */
Chris@0 2839 /* 00 */ V(6, 13, 2), /* 244 */
Chris@0 2840 /* 01 */ V(13, 6, 2),
Chris@0 2841 /* 10 */ V(14, 3, 2),
Chris@0 2842 /* 11 */ V(9, 11, 2),
Chris@0 2843
Chris@0 2844 /* 0100 0101 ... */
Chris@0 2845 /* 00 */ V(11, 9, 2), /* 248 */
Chris@0 2846 /* 01 */ V(10, 10, 2),
Chris@0 2847 /* 10 */ V(14, 2, 2),
Chris@0 2848 /* 11 */ V(1, 14, 2),
Chris@0 2849
Chris@0 2850 /* 0100 0110 ... */
Chris@0 2851 /* 00 */ V(14, 1, 2), /* 252 */
Chris@0 2852 /* 01 */ V(5, 13, 2),
Chris@0 2853 /* 10 */ V(13, 5, 2),
Chris@0 2854 /* 11 */ V(7, 12, 2),
Chris@0 2855
Chris@0 2856 /* 0100 0111 ... */
Chris@0 2857 /* 00 */ V(12, 7, 2), /* 256 */
Chris@0 2858 /* 01 */ V(4, 13, 2),
Chris@0 2859 /* 10 */ V(8, 11, 2),
Chris@0 2860 /* 11 */ V(11, 8, 2),
Chris@0 2861
Chris@0 2862 /* 0100 1000 ... */
Chris@0 2863 /* 00 */ V(13, 4, 2), /* 260 */
Chris@0 2864 /* 01 */ V(9, 10, 2),
Chris@0 2865 /* 10 */ V(10, 9, 2),
Chris@0 2866 /* 11 */ V(6, 12, 2),
Chris@0 2867
Chris@0 2868 /* 0100 1001 ... */
Chris@0 2869 /* 00 */ V(12, 6, 2), /* 264 */
Chris@0 2870 /* 01 */ V(3, 13, 2),
Chris@0 2871 /* 10 */ V(13, 3, 2),
Chris@0 2872 /* 11 */ V(2, 13, 2),
Chris@0 2873
Chris@0 2874 /* 0100 1010 ... */
Chris@0 2875 /* 00 */ V(13, 2, 2), /* 268 */
Chris@0 2876 /* 01 */ V(1, 13, 2),
Chris@0 2877 /* 10 */ V(7, 11, 2),
Chris@0 2878 /* 11 */ V(11, 7, 2),
Chris@0 2879
Chris@0 2880 /* 0100 1011 ... */
Chris@0 2881 /* 00 */ V(13, 1, 2), /* 272 */
Chris@0 2882 /* 01 */ V(5, 12, 2),
Chris@0 2883 /* 10 */ V(12, 5, 2),
Chris@0 2884 /* 11 */ V(8, 10, 2),
Chris@0 2885
Chris@0 2886 /* 0100 1100 ... */
Chris@0 2887 /* 00 */ V(10, 8, 2), /* 276 */
Chris@0 2888 /* 01 */ V(9, 9, 2),
Chris@0 2889 /* 10 */ V(4, 12, 2),
Chris@0 2890 /* 11 */ V(12, 4, 2),
Chris@0 2891
Chris@0 2892 /* 0100 1101 ... */
Chris@0 2893 /* 000 */ V(6, 11, 2), /* 280 */
Chris@0 2894 /* 001 */ V(6, 11, 2),
Chris@0 2895 /* 010 */ V(11, 6, 2),
Chris@0 2896 /* 011 */ V(11, 6, 2),
Chris@0 2897 /* 100 */ V(13, 0, 3),
Chris@0 2898 /* 101 */ V(0, 12, 3),
Chris@0 2899 /* 110 */ V(3, 12, 2),
Chris@0 2900 /* 111 */ V(3, 12, 2),
Chris@0 2901
Chris@0 2902 /* 0100 1110 ... */
Chris@0 2903 /* 00 */ V(12, 3, 2), /* 288 */
Chris@0 2904 /* 01 */ V(7, 10, 2),
Chris@0 2905 /* 10 */ V(10, 7, 2),
Chris@0 2906 /* 11 */ V(2, 12, 2),
Chris@0 2907
Chris@0 2908 /* 0100 1111 ... */
Chris@0 2909 /* 00 */ V(12, 2, 2), /* 292 */
Chris@0 2910 /* 01 */ V(5, 11, 2),
Chris@0 2911 /* 10 */ V(11, 5, 2),
Chris@0 2912 /* 11 */ V(1, 12, 2),
Chris@0 2913
Chris@0 2914 /* 0101 0000 ... */
Chris@0 2915 /* 00 */ V(8, 9, 2), /* 296 */
Chris@0 2916 /* 01 */ V(9, 8, 2),
Chris@0 2917 /* 10 */ V(12, 1, 2),
Chris@0 2918 /* 11 */ V(4, 11, 2),
Chris@0 2919
Chris@0 2920 /* 0101 0001 ... */
Chris@0 2921 /* 000 */ V(12, 0, 3), /* 300 */
Chris@0 2922 /* 001 */ V(0, 11, 3),
Chris@0 2923 /* 010 */ V(3, 11, 2),
Chris@0 2924 /* 011 */ V(3, 11, 2),
Chris@0 2925 /* 100 */ V(11, 0, 3),
Chris@0 2926 /* 101 */ V(0, 10, 3),
Chris@0 2927 /* 110 */ V(1, 10, 2),
Chris@0 2928 /* 111 */ V(1, 10, 2),
Chris@0 2929
Chris@0 2930 /* 0101 0010 ... */
Chris@0 2931 /* 00 */ V(11, 4, 1), /* 308 */
Chris@0 2932 /* 01 */ V(11, 4, 1),
Chris@0 2933 /* 10 */ V(6, 10, 2),
Chris@0 2934 /* 11 */ V(10, 6, 2),
Chris@0 2935
Chris@0 2936 /* 0101 0011 ... */
Chris@0 2937 /* 000 */ V(7, 9, 2), /* 312 */
Chris@0 2938 /* 001 */ V(7, 9, 2),
Chris@0 2939 /* 010 */ V(9, 7, 2),
Chris@0 2940 /* 011 */ V(9, 7, 2),
Chris@0 2941 /* 100 */ V(10, 0, 3),
Chris@0 2942 /* 101 */ V(0, 9, 3),
Chris@0 2943 /* 110 */ V(9, 0, 2),
Chris@0 2944 /* 111 */ V(9, 0, 2),
Chris@0 2945
Chris@0 2946 /* 0101 0100 ... */
Chris@0 2947 /* 0 */ V(11, 3, 1), /* 320 */
Chris@0 2948 /* 1 */ V(8, 8, 1),
Chris@0 2949
Chris@0 2950 /* 0101 0101 ... */
Chris@0 2951 /* 00 */ V(2, 11, 2), /* 322 */
Chris@0 2952 /* 01 */ V(5, 10, 2),
Chris@0 2953 /* 10 */ V(11, 2, 1),
Chris@0 2954 /* 11 */ V(11, 2, 1),
Chris@0 2955
Chris@0 2956 /* 0101 0110 ... */
Chris@0 2957 /* 00 */ V(10, 5, 2), /* 326 */
Chris@0 2958 /* 01 */ V(1, 11, 2),
Chris@0 2959 /* 10 */ V(11, 1, 2),
Chris@0 2960 /* 11 */ V(6, 9, 2),
Chris@0 2961
Chris@0 2962 /* 0101 0111 ... */
Chris@0 2963 /* 0 */ V(9, 6, 1), /* 330 */
Chris@0 2964 /* 1 */ V(10, 4, 1),
Chris@0 2965
Chris@0 2966 /* 0101 1000 ... */
Chris@0 2967 /* 00 */ V(4, 10, 2), /* 332 */
Chris@0 2968 /* 01 */ V(7, 8, 2),
Chris@0 2969 /* 10 */ V(8, 7, 1),
Chris@0 2970 /* 11 */ V(8, 7, 1),
Chris@0 2971
Chris@0 2972 /* 0101 1001 ... */
Chris@0 2973 /* 0 */ V(3, 10, 1), /* 336 */
Chris@0 2974 /* 1 */ V(10, 3, 1),
Chris@0 2975
Chris@0 2976 /* 0101 1010 ... */
Chris@0 2977 /* 0 */ V(5, 9, 1), /* 338 */
Chris@0 2978 /* 1 */ V(9, 5, 1),
Chris@0 2979
Chris@0 2980 /* 0101 1011 ... */
Chris@0 2981 /* 0 */ V(2, 10, 1), /* 340 */
Chris@0 2982 /* 1 */ V(10, 2, 1),
Chris@0 2983
Chris@0 2984 /* 0101 1100 ... */
Chris@0 2985 /* 0 */ V(10, 1, 1), /* 342 */
Chris@0 2986 /* 1 */ V(6, 8, 1),
Chris@0 2987
Chris@0 2988 /* 0101 1101 ... */
Chris@0 2989 /* 0 */ V(8, 6, 1), /* 344 */
Chris@0 2990 /* 1 */ V(7, 7, 1),
Chris@0 2991
Chris@0 2992 /* 0101 1110 ... */
Chris@0 2993 /* 0 */ V(4, 9, 1), /* 346 */
Chris@0 2994 /* 1 */ V(9, 4, 1),
Chris@0 2995
Chris@0 2996 /* 0101 1111 ... */
Chris@0 2997 /* 0 */ V(3, 9, 1), /* 348 */
Chris@0 2998 /* 1 */ V(9, 3, 1),
Chris@0 2999
Chris@0 3000 /* 0110 0000 ... */
Chris@0 3001 /* 0 */ V(5, 8, 1), /* 350 */
Chris@0 3002 /* 1 */ V(8, 5, 1),
Chris@0 3003
Chris@0 3004 /* 0110 0001 ... */
Chris@0 3005 /* 0 */ V(2, 9, 1), /* 352 */
Chris@0 3006 /* 1 */ V(6, 7, 1),
Chris@0 3007
Chris@0 3008 /* 0110 0010 ... */
Chris@0 3009 /* 0 */ V(7, 6, 1), /* 354 */
Chris@0 3010 /* 1 */ V(9, 2, 1),
Chris@0 3011
Chris@0 3012 /* 0110 0011 ... */
Chris@0 3013 /* 0 */ V(1, 9, 1), /* 356 */
Chris@0 3014 /* 1 */ V(9, 1, 1),
Chris@0 3015
Chris@0 3016 /* 0110 0100 ... */
Chris@0 3017 /* 0 */ V(4, 8, 1), /* 358 */
Chris@0 3018 /* 1 */ V(8, 4, 1),
Chris@0 3019
Chris@0 3020 /* 0110 0101 ... */
Chris@0 3021 /* 0 */ V(5, 7, 1), /* 360 */
Chris@0 3022 /* 1 */ V(7, 5, 1),
Chris@0 3023
Chris@0 3024 /* 0110 0110 ... */
Chris@0 3025 /* 0 */ V(3, 8, 1), /* 362 */
Chris@0 3026 /* 1 */ V(8, 3, 1),
Chris@0 3027
Chris@0 3028 /* 0110 0111 ... */
Chris@0 3029 /* 0 */ V(6, 6, 1), /* 364 */
Chris@0 3030 /* 1 */ V(2, 8, 1),
Chris@0 3031
Chris@0 3032 /* 0110 1000 ... */
Chris@0 3033 /* 0 */ V(8, 2, 1), /* 366 */
Chris@0 3034 /* 1 */ V(1, 8, 1),
Chris@0 3035
Chris@0 3036 /* 0110 1001 ... */
Chris@0 3037 /* 0 */ V(4, 7, 1), /* 368 */
Chris@0 3038 /* 1 */ V(7, 4, 1),
Chris@0 3039
Chris@0 3040 /* 0110 1010 ... */
Chris@0 3041 /* 00 */ V(8, 1, 1), /* 370 */
Chris@0 3042 /* 01 */ V(8, 1, 1),
Chris@0 3043 /* 10 */ V(0, 8, 2),
Chris@0 3044 /* 11 */ V(8, 0, 2),
Chris@0 3045
Chris@0 3046 /* 0110 1011 ... */
Chris@0 3047 /* 0 */ V(5, 6, 1), /* 374 */
Chris@0 3048 /* 1 */ V(6, 5, 1),
Chris@0 3049
Chris@0 3050 /* 0110 1100 ... */
Chris@0 3051 /* 00 */ V(1, 7, 1), /* 376 */
Chris@0 3052 /* 01 */ V(1, 7, 1),
Chris@0 3053 /* 10 */ V(0, 7, 2),
Chris@0 3054 /* 11 */ V(7, 0, 2),
Chris@0 3055
Chris@0 3056 /* 0110 1110 ... */
Chris@0 3057 /* 0 */ V(3, 7, 1), /* 380 */
Chris@0 3058 /* 1 */ V(2, 7, 1),
Chris@0 3059
Chris@0 3060 /* 0111 1100 ... */
Chris@0 3061 /* 0 */ V(0, 6, 1), /* 382 */
Chris@0 3062 /* 1 */ V(6, 0, 1),
Chris@0 3063
Chris@0 3064 /* 1000 0011 ... */
Chris@0 3065 /* 0 */ V(0, 5, 1), /* 384 */
Chris@0 3066 /* 1 */ V(5, 0, 1)
Chris@0 3067 };
Chris@0 3068
Chris@0 3069 # undef V
Chris@0 3070 # undef PTR
Chris@0 3071
Chris@0 3072 /* external tables */
Chris@0 3073
Chris@0 3074 union huffquad const *const mad_huff_quad_table[2] = { hufftabA, hufftabB };
Chris@0 3075
Chris@0 3076 struct hufftable const mad_huff_pair_table[32] = {
Chris@0 3077 /* 0 */ { hufftab0, 0, 0 },
Chris@0 3078 /* 1 */ { hufftab1, 0, 3 },
Chris@0 3079 /* 2 */ { hufftab2, 0, 3 },
Chris@0 3080 /* 3 */ { hufftab3, 0, 3 },
Chris@0 3081 /* 4 */ { 0 /* not used */ },
Chris@0 3082 /* 5 */ { hufftab5, 0, 3 },
Chris@0 3083 /* 6 */ { hufftab6, 0, 4 },
Chris@0 3084 /* 7 */ { hufftab7, 0, 4 },
Chris@0 3085 /* 8 */ { hufftab8, 0, 4 },
Chris@0 3086 /* 9 */ { hufftab9, 0, 4 },
Chris@0 3087 /* 10 */ { hufftab10, 0, 4 },
Chris@0 3088 /* 11 */ { hufftab11, 0, 4 },
Chris@0 3089 /* 12 */ { hufftab12, 0, 4 },
Chris@0 3090 /* 13 */ { hufftab13, 0, 4 },
Chris@0 3091 /* 14 */ { 0 /* not used */ },
Chris@0 3092 /* 15 */ { hufftab15, 0, 4 },
Chris@0 3093 /* 16 */ { hufftab16, 1, 4 },
Chris@0 3094 /* 17 */ { hufftab16, 2, 4 },
Chris@0 3095 /* 18 */ { hufftab16, 3, 4 },
Chris@0 3096 /* 19 */ { hufftab16, 4, 4 },
Chris@0 3097 /* 20 */ { hufftab16, 6, 4 },
Chris@0 3098 /* 21 */ { hufftab16, 8, 4 },
Chris@0 3099 /* 22 */ { hufftab16, 10, 4 },
Chris@0 3100 /* 23 */ { hufftab16, 13, 4 },
Chris@0 3101 /* 24 */ { hufftab24, 4, 4 },
Chris@0 3102 /* 25 */ { hufftab24, 5, 4 },
Chris@0 3103 /* 26 */ { hufftab24, 6, 4 },
Chris@0 3104 /* 27 */ { hufftab24, 7, 4 },
Chris@0 3105 /* 28 */ { hufftab24, 8, 4 },
Chris@0 3106 /* 29 */ { hufftab24, 9, 4 },
Chris@0 3107 /* 30 */ { hufftab24, 11, 4 },
Chris@0 3108 /* 31 */ { hufftab24, 13, 4 }
Chris@0 3109 };