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