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