| /* ------------------------------------------------------------------ |
| * Copyright (C) 1998-2009 PacketVideo |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either |
| * express or implied. |
| * See the License for the specific language governing permissions |
| * and limitations under the License. |
| * ------------------------------------------------------------------- |
| */ |
| /* |
| |
| Pathname: hcbtables.c |
| |
| |
| ------------------------------------------------------------------------------ |
| REVISION HISTORY |
| |
| Description: Modifiy per review comments |
| (1) delete the following comments: |
| The LAV field has been deleted, since it is never used. |
| |
| Description: Remove old structure of huffman table and add new table structure. |
| |
| Description: Modified structure to avoid assigning addresses to constant |
| tables. This solve linking problem when using the |
| /ropi option (Read-only position independent) for some |
| compilers |
| - Eliminated references to contant vector addresses in |
| hcbbook_binary |
| |
| |
| Who: Date: |
| Description: |
| |
| ------------------------------------------------------------------------------ |
| INPUT AND OUTPUT DEFINITIONS |
| |
| Inputs: None |
| |
| Local Stores/Buffers/Pointers Needed: None |
| |
| Global Stores/Buffers/Pointers Needed: None |
| |
| Outputs: None |
| |
| Pointers and Buffers Modified: None |
| |
| Local Stores Modified: None |
| |
| Global Stores Modified: None |
| |
| ------------------------------------------------------------------------------ |
| FUNCTION DESCRIPTION |
| |
| This file defines the 12 packed Huffman Tables and a structure that reference |
| to these tables. |
| |
| ------------------------------------------------------------------------------ |
| REQUIREMENTS |
| |
| |
| ------------------------------------------------------------------------------ |
| REFERENCES |
| |
| ISO/IEC 14496-3: 1999(E) |
| Subpart 4 p78 (Table 4.6.1 and Table 4.6.2) |
| p77 (pseudo code) |
| |
| ------------------------------------------------------------------------------ |
| PSEUDO-CODE |
| |
| ------------------------------------------------------------------------------ |
| RESOURCES USED |
| When the code is written for a specific target processor the |
| the resources used should be documented below. |
| |
| STACK USAGE: [stack count for this module] + [variable to represent |
| stack usage for each subroutine called] |
| |
| where: [stack usage variable] = stack usage for [subroutine |
| name] (see [filename].ext) |
| |
| DATA MEMORY USED: x words |
| |
| PROGRAM MEMORY USED: x words |
| |
| CLOCK CYCLES: [cycle count equation for this module] + [variable |
| used to represent cycle count for each subroutine |
| called] |
| |
| where: [cycle count variable] = cycle count for [subroutine |
| name] (see [filename].ext) |
| |
| ------------------------------------------------------------------------------ |
| */ |
| #include "s_hcb.h" |
| #include "hcbtables.h" |
| |
| /* This file store packed Huffman tables for binary tree search */ |
| |
| /* |
| * all tables are packed in the following way: |
| * right pointer (7 bits) idx (9 bits) |
| */ |
| |
| |
| const Hcb hcbbook_binary[13] = |
| { |
| |
| { 0, -1, -1, -1, -1 }, /* ZERO_HCB */ |
| { 1, 4, 3, 1, 1 }, /* codebook 1 */ |
| { 2, 4, 3, 1, 1 }, /* codebook 2 */ |
| { 3, 4, 3, 0, 0 }, /* codebook 3 */ |
| { 4, 4, 3, 0, 0 }, /* codebook 4 */ |
| { 5, 2, 9, 4, 1 }, |
| { 6, 2, 9, 4, 1 }, |
| { 7, 2, 8, 0, 0 }, |
| { 8, 2, 8, 0, 0 }, |
| { 9, 2, 13, 0, 0 }, |
| {10, 2, 13, 0, 0 }, |
| {11, 2, 17, 0, 0 }, /* codebook 11 ESC book */ |
| {12, -1, -1, -1, -1 } /* scalefactor codebook */ |
| |
| |
| }; |
| |
| |
| /* New look-up table for huffman decoding |
| Created by ordering the codeword in the table according to their |
| normalized shifted binary value, i.e., all the codewords are left |
| shifted to meet the maximum codelength. Example, max codelength is |
| 10, the codeword with lenth 3 will left shift by 7. |
| The binary values of after the shift are sorted. |
| Then the sorted table is divided into several partition. |
| At the VLC decoding period, input is read in at max codelenght. |
| The partition is decided using if-else logic. |
| Inside each partition, a look-up table is used to map the input value |
| to a correct symbol. Table entries can appear to be repeated according |
| to the humming distance between adjacent codewords. |
| */ |
| |
| const Int32 huff_tab1[88] = |
| { |
| 0x430005, |
| 0xd0005, |
| 0x270005, |
| 0x310005, |
| 0x290005, |
| 0x250005, |
| 0x2b0005, |
| 0x1f0005, |
| 0x3a0007, |
| 0x160007, |
| 0x260007, |
| 0x2e0007, |
| 0x220007, |
| 0x2a0007, |
| 0x4c0007, |
| 0x240007, |
| 0x40007, |
| 0x1c0007, |
| 0x400007, |
| 0x300007, |
| 0x100007, |
| 0x2c0007, |
| 0x460007, |
| 0x200007, |
| 0x340007, |
| 0x320007, |
| 0xa0007, |
| 0x440007, |
| 0xc0007, |
| 0x420007, |
| 0xe0007, |
| 0x1e0007, |
| 0x490009, |
| 0x130009, |
| 0x3d0009, |
| 0x330009, |
| 0x2f0009, |
| 0x230009, |
| 0x210009, |
| 0x370009, |
| 0x410009, |
| 0x2d0009, |
| 0x190009, |
| 0xf0009, |
| 0x70009, |
| 0x1d0009, |
| 0x3b0009, |
| 0x390009, |
| 0x150009, |
| 0x10009, |
| 0x1b0009, |
| 0x350009, |
| 0x450009, |
| 0x4d0009, |
| 0x170009, |
| 0x4f0009, |
| 0x5000a, |
| 0x5000a, |
| 0x9000a, |
| 0x9000a, |
| 0x4b000a, |
| 0x4b000a, |
| 0x3f000a, |
| 0x3f000a, |
| 0xb000a, |
| 0xb000a, |
| 0x3000a, |
| 0x3000a, |
| 0x11000a, |
| 0x11000a, |
| 0x47000a, |
| 0x47000a, |
| 0x3c000b, |
| 0x14000b, |
| 0x18000b, |
| 0x38000b, |
| 0x50000b, |
| 0x8000b, |
| 0x48000b, |
| 0x6000b, |
| 0xb, |
| 0x4a000b, |
| 0x3e000b, |
| 0x1a000b, |
| 0x12000b, |
| 0x2000b, |
| 0x36000b, |
| 0x4e000b |
| }; |
| |
| const Int32 huff_tab2[90] = |
| { |
| 0x430004, |
| 0x430004, |
| 0x430004, |
| 0x430004, |
| 0xd0005, |
| 0xd0005, |
| 0x290005, |
| 0x290005, |
| 0x250005, |
| 0x250005, |
| 0x270005, |
| 0x270005, |
| 0x1f0005, |
| 0x1f0005, |
| 0x2b0005, |
| 0x2b0005, |
| 0x310005, |
| 0x310005, |
| 0x220006, |
| 0x160006, |
| 0x2e0006, |
| 0x2a0006, |
| 0x300006, |
| 0x260006, |
| 0xc0006, |
| 0x3a0006, |
| 0x400006, |
| 0x40006, |
| 0x240006, |
| 0x460006, |
| 0x440006, |
| 0x200006, |
| 0x100006, |
| 0x320006, |
| 0x1c0006, |
| 0xe0006, |
| 0x1e0006, |
| 0xa0006, |
| 0x4c0006, |
| 0x340006, |
| 0x2c0006, |
| 0x420006, |
| 0x2f0007, |
| 0x410007, |
| 0x130007, |
| 0x210007, |
| 0x3d0007, |
| 0x4b0007, |
| 0x470007, |
| 0x190007, |
| 0x1d0007, |
| 0x4f0007, |
| 0xf0007, |
| 0x10007, |
| 0xb0007, |
| 0x370007, |
| 0x490007, |
| 0x3b0008, |
| 0x150008, |
| 0x70008, |
| 0x110008, |
| 0x50008, |
| 0x30008, |
| 0x1b0008, |
| 0x450008, |
| 0x3f0008, |
| 0x2d0008, |
| 0x350008, |
| 0x170008, |
| 0x90008, |
| 0x330008, |
| 0x390008, |
| 0x230008, |
| 0x4d0008, |
| 0x3c0008, |
| 0x140008, |
| 0x380009, |
| 0x9, |
| 0x180009, |
| 0x1a0009, |
| 0x500009, |
| 0x60009, |
| 0x3e0009, |
| 0x120009, |
| 0x80009, |
| 0x480009, |
| 0x360009, |
| 0x20009, |
| 0x4a0009, |
| 0x4e0009 |
| }; |
| |
| const Int32 huff_tab3[151] = |
| { |
| 0x1b0004, |
| 0x1b0004, |
| 0x1b0004, |
| 0x1b0004, |
| 0x10004, |
| 0x10004, |
| 0x10004, |
| 0x10004, |
| 0x90004, |
| 0x90004, |
| 0x90004, |
| 0x90004, |
| 0x30004, |
| 0x30004, |
| 0x30004, |
| 0x30004, |
| 0x240005, |
| 0x240005, |
| 0x40005, |
| 0x40005, |
| 0xc0006, |
| 0xa0006, |
| 0x1e0006, |
| 0xd0006, |
| 0x1c0006, |
| 0x270006, |
| 0x280007, |
| 0x280007, |
| 0x280007, |
| 0x280007, |
| 0x1f0007, |
| 0x1f0007, |
| 0x1f0007, |
| 0x1f0007, |
| 0x250007, |
| 0x250007, |
| 0x250007, |
| 0x250007, |
| 0x360008, |
| 0x360008, |
| 0x20008, |
| 0x20008, |
| 0x50008, |
| 0x50008, |
| 0x3f0008, |
| 0x3f0008, |
| 0x300008, |
| 0x300008, |
| 0x70009, |
| 0x100009, |
| 0x2d0009, |
| 0xe0009, |
| 0x420009, |
| 0x60009, |
| 0x150009, |
| 0xf0009, |
| 0x120009, |
| 0xb0009, |
| 0x390009, |
| 0x310009, |
| 0x160009, |
| 0x2a0009, |
| 0x2b0009, |
| 0x2e000a, |
| 0x21000a, |
| 0x22000a, |
| 0x13000a, |
| 0x43000a, |
| 0x29000a, |
| 0x40000a, |
| 0x20000a, |
| 0x8000a, |
| 0x11000a, |
| 0x4b000a, |
| 0x33000a, |
| 0x1d000a, |
| 0x37000a, |
| 0x19000a, |
| 0x48000b, |
| 0x48000b, |
| 0x34000b, |
| 0x34000b, |
| 0x26000b, |
| 0x26000b, |
| 0x3a000b, |
| 0x3a000b, |
| 0x2c000b, |
| 0x2c000b, |
| 0x4c000b, |
| 0x4c000b, |
| 0x18000b, |
| 0x18000b, |
| 0x17000b, |
| 0x17000b, |
| 0x23000c, |
| 0x49000c, |
| 0x45000c, |
| 0x4e000c, |
| 0x1a000c, |
| 0x4f000c, |
| 0x46000c, |
| 0x32000c, |
| 0x35000c, |
| 0x14000d, |
| 0x14000d, |
| 0x14000d, |
| 0x14000d, |
| 0x14000d, |
| 0x14000d, |
| 0x14000d, |
| 0x14000d, |
| 0x3c000d, |
| 0x3c000d, |
| 0x3c000d, |
| 0x3c000d, |
| 0x3c000d, |
| 0x3c000d, |
| 0x3c000d, |
| 0x3c000d, |
| 0x2f000d, |
| 0x2f000d, |
| 0x2f000d, |
| 0x2f000d, |
| 0x2f000d, |
| 0x2f000d, |
| 0x2f000d, |
| 0x2f000d, |
| 0x3d000e, |
| 0x3d000e, |
| 0x3d000e, |
| 0x3d000e, |
| 0x44000e, |
| 0x44000e, |
| 0x44000e, |
| 0x44000e, |
| 0x41000e, |
| 0x41000e, |
| 0x41000e, |
| 0x41000e, |
| 0x50000f, |
| 0x50000f, |
| 0x4d000f, |
| 0x4d000f, |
| 0x47000f, |
| 0x47000f, |
| 0x3b000f, |
| 0x3b000f, |
| 0x38000f, |
| 0x38000f, |
| 0x4a0010, |
| 0x3e0010 |
| }; |
| |
| const Int32 huff_tab4[119] = |
| { |
| 0x280004, |
| 0x280004, |
| 0xd0004, |
| 0xd0004, |
| 0x250004, |
| 0x250004, |
| 0x270004, |
| 0x270004, |
| 0x1f0004, |
| 0x1f0004, |
| 0x1b0004, |
| 0x1b0004, |
| 0x240004, |
| 0x240004, |
| 0x4, |
| 0x4, |
| 0x40004, |
| 0x40004, |
| 0x1e0004, |
| 0x1e0004, |
| 0x1c0005, |
| 0xc0005, |
| 0x10005, |
| 0xa0005, |
| 0x30005, |
| 0x90005, |
| 0x430007, |
| 0x430007, |
| 0x2b0007, |
| 0x2b0007, |
| 0x310007, |
| 0x310007, |
| 0x290007, |
| 0x290007, |
| 0x420007, |
| 0x420007, |
| 0x400007, |
| 0x400007, |
| 0x300007, |
| 0x300007, |
| 0x3a0007, |
| 0x3a0007, |
| 0x100007, |
| 0x100007, |
| 0xe0008, |
| 0x2a0008, |
| 0x160008, |
| 0x200008, |
| 0x2e0008, |
| 0x260008, |
| 0x220008, |
| 0x3f0008, |
| 0x390008, |
| 0x2d0008, |
| 0x370008, |
| 0xb0008, |
| 0x150008, |
| 0x50008, |
| 0xf0008, |
| 0x130008, |
| 0x1d0008, |
| 0x70008, |
| 0x210008, |
| 0x360008, |
| 0x20008, |
| 0x120009, |
| 0x120009, |
| 0x60009, |
| 0x60009, |
| 0x340009, |
| 0x340009, |
| 0x4c0009, |
| 0x4c0009, |
| 0x460009, |
| 0x460009, |
| 0x2c0009, |
| 0x2c0009, |
| 0x320009, |
| 0x320009, |
| 0x440009, |
| 0x440009, |
| 0x33000a, |
| 0x4b000a, |
| 0x45000a, |
| 0x19000a, |
| 0x11000a, |
| 0x49000a, |
| 0x17000a, |
| 0x3d000a, |
| 0x23000a, |
| 0x4f000a, |
| 0x2f000a, |
| 0x3b000a, |
| 0x41000a, |
| 0x35000a, |
| 0x47000b, |
| 0x47000b, |
| 0x4d000b, |
| 0x4d000b, |
| 0x18000b, |
| 0x18000b, |
| 0x48000b, |
| 0x48000b, |
| 0x8000b, |
| 0x8000b, |
| 0x3c000b, |
| 0x3c000b, |
| 0x14000b, |
| 0x14000b, |
| 0x38000b, |
| 0x38000b, |
| 0x50000b, |
| 0x50000b, |
| 0x1a000b, |
| 0x1a000b, |
| 0x4e000b, |
| 0x4e000b, |
| 0x4a000c, |
| 0x3e000c |
| }; |
| |
| const Int32 huff_tab5[110] = |
| { |
| 0x1f0004, |
| 0x1f0004, |
| 0x310004, |
| 0x310004, |
| 0x290004, |
| 0x290004, |
| 0x270004, |
| 0x270004, |
| 0x300005, |
| 0x200005, |
| 0x1e0005, |
| 0x320005, |
| 0x160007, |
| 0x160007, |
| 0x2a0007, |
| 0x2a0007, |
| 0x3a0007, |
| 0x3a0007, |
| 0x260007, |
| 0x260007, |
| 0x150008, |
| 0x3b0008, |
| 0x1d0008, |
| 0x330008, |
| 0x170008, |
| 0x390008, |
| 0x210008, |
| 0x2f0008, |
| 0xd0008, |
| 0x430008, |
| 0x250008, |
| 0x2b0008, |
| 0xc0009, |
| 0xc0009, |
| 0x340009, |
| 0x340009, |
| 0x440009, |
| 0x440009, |
| 0x1c0009, |
| 0x1c0009, |
| 0xe0009, |
| 0xe0009, |
| 0x420009, |
| 0x420009, |
| 0x2e0009, |
| 0x2e0009, |
| 0x220009, |
| 0x220009, |
| 0x180009, |
| 0x180009, |
| 0x3c0009, |
| 0x3c0009, |
| 0x140009, |
| 0x140009, |
| 0x380009, |
| 0x380009, |
| 0xb000a, |
| 0x41000a, |
| 0x19000a, |
| 0x37000a, |
| 0x45000a, |
| 0x3d000a, |
| 0xf000a, |
| 0x13000a, |
| 0x24000a, |
| 0x4000a, |
| 0x4d000a, |
| 0x4c000a, |
| 0x3000b, |
| 0x2c000b, |
| 0x4b000b, |
| 0x1b000b, |
| 0x35000b, |
| 0x23000b, |
| 0x5000b, |
| 0x2d000b, |
| 0x40000b, |
| 0xa000b, |
| 0x10000b, |
| 0x1a000b, |
| 0x2000b, |
| 0x4e000b, |
| 0x36000b, |
| 0x3e000b, |
| 0x46000b, |
| 0x6000b, |
| 0x12000c, |
| 0x12000c, |
| 0x4a000c, |
| 0x4a000c, |
| 0x3f000c, |
| 0x3f000c, |
| 0x1000c, |
| 0x1000c, |
| 0x7000c, |
| 0x7000c, |
| 0x47000c, |
| 0x47000c, |
| 0x11000c, |
| 0x11000c, |
| 0x4f000c, |
| 0x4f000c, |
| 0x49000c, |
| 0x49000c, |
| 0x9000c, |
| 0x9000c, |
| 0x48000d, |
| 0x8000d, |
| 0x50000d, |
| 0xd |
| }; |
| const Int32 huff_tab6[113] = |
| { |
| 0x280004, |
| 0x310004, |
| 0x270004, |
| 0x290004, |
| 0x1f0004, |
| 0x320004, |
| 0x200004, |
| 0x300004, |
| 0x1e0004, |
| 0x390006, |
| 0x390006, |
| 0x3b0006, |
| 0x3b0006, |
| 0x170006, |
| 0x170006, |
| 0x150006, |
| 0x150006, |
| 0x160006, |
| 0x160006, |
| 0x210006, |
| 0x210006, |
| 0x3a0006, |
| 0x3a0006, |
| 0x2f0006, |
| 0x2f0006, |
| 0x330006, |
| 0x330006, |
| 0x260006, |
| 0x260006, |
| 0x1d0006, |
| 0x1d0006, |
| 0x2a0006, |
| 0x2a0006, |
| 0x380006, |
| 0x380006, |
| 0x180006, |
| 0x180006, |
| 0x140006, |
| 0x140006, |
| 0x3c0006, |
| 0x3c0006, |
| 0xe0007, |
| 0x440007, |
| 0x420007, |
| 0x220007, |
| 0xc0007, |
| 0x340007, |
| 0x2e0007, |
| 0x1c0007, |
| 0x430007, |
| 0xd0007, |
| 0x250007, |
| 0x2b0007, |
| 0x450007, |
| 0xb0008, |
| 0xb0008, |
| 0x190008, |
| 0x190008, |
| 0x3d0008, |
| 0x3d0008, |
| 0x410008, |
| 0x410008, |
| 0x370008, |
| 0x370008, |
| 0x130008, |
| 0x130008, |
| 0xf0008, |
| 0xf0008, |
| 0x460008, |
| 0x460008, |
| 0x400009, |
| 0xa0009, |
| 0x100009, |
| 0x2d0009, |
| 0x1b0009, |
| 0x4d0009, |
| 0x50009, |
| 0x30009, |
| 0x350009, |
| 0x4b0009, |
| 0x230009, |
| 0x240009, |
| 0x60009, |
| 0x20009, |
| 0x3e0009, |
| 0x120009, |
| 0x40009, |
| 0x4e0009, |
| 0x4a0009, |
| 0x1a0009, |
| 0x4c0009, |
| 0x360009, |
| 0x2c0009, |
| 0x9000a, |
| 0x9000a, |
| 0x11000a, |
| 0x11000a, |
| 0x3f000a, |
| 0x3f000a, |
| 0x49000a, |
| 0x49000a, |
| 0x47000a, |
| 0x47000a, |
| 0x4f000a, |
| 0x4f000a, |
| 0x7000a, |
| 0x7000a, |
| 0x1000a, |
| 0x1000a, |
| 0x50000b, |
| 0x8000b, |
| 0xb, |
| 0x48000b |
| }; |
| |
| const Int32 huff_tab7[107] = |
| { |
| 0x80003, |
| 0x80003, |
| 0x80003, |
| 0x80003, |
| 0x80003, |
| 0x80003, |
| 0x80003, |
| 0x80003, |
| 0x10003, |
| 0x10003, |
| 0x10003, |
| 0x10003, |
| 0x10003, |
| 0x10003, |
| 0x10003, |
| 0x10003, |
| 0x90004, |
| 0x90004, |
| 0x90004, |
| 0x90004, |
| 0x110006, |
| 0xa0006, |
| 0x100006, |
| 0x20006, |
| 0x190007, |
| 0x190007, |
| 0xb0007, |
| 0xb0007, |
| 0x120007, |
| 0x120007, |
| 0x180007, |
| 0x180007, |
| 0x30007, |
| 0x30007, |
| 0x130008, |
| 0x1a0008, |
| 0xc0008, |
| 0x210008, |
| 0xd0008, |
| 0x290008, |
| 0x1b0008, |
| 0x140008, |
| 0x40008, |
| 0x200008, |
| 0x220009, |
| 0x220009, |
| 0x150009, |
| 0x150009, |
| 0x2a0009, |
| 0x2a0009, |
| 0x50009, |
| 0x50009, |
| 0x310009, |
| 0x310009, |
| 0x280009, |
| 0x280009, |
| 0xe0009, |
| 0xe0009, |
| 0x230009, |
| 0x230009, |
| 0x1d0009, |
| 0x1d0009, |
| 0x1c0009, |
| 0x1c0009, |
| 0x2b0009, |
| 0x2b0009, |
| 0x160009, |
| 0x160009, |
| 0x320009, |
| 0x320009, |
| 0xf0009, |
| 0xf0009, |
| 0x1e000a, |
| 0x6000a, |
| 0x30000a, |
| 0x24000a, |
| 0x39000a, |
| 0x25000a, |
| 0x3a000a, |
| 0x2c000a, |
| 0x33000a, |
| 0x17000a, |
| 0x3b000a, |
| 0x34000a, |
| 0x2d000a, |
| 0x26000a, |
| 0x1f000a, |
| 0x38000b, |
| 0x38000b, |
| 0x7000b, |
| 0x7000b, |
| 0x35000b, |
| 0x35000b, |
| 0x2e000b, |
| 0x2e000b, |
| 0x3c000b, |
| 0x3c000b, |
| 0x27000b, |
| 0x27000b, |
| 0x2f000b, |
| 0x2f000b, |
| 0x3d000b, |
| 0x3d000b, |
| 0x3e000c, |
| 0x36000c, |
| 0x37000c, |
| 0x3f000c |
| }; |
| const Int32 huff_tab8[90] = |
| { |
| 0x90003, |
| 0x90003, |
| 0x90003, |
| 0x90003, |
| 0x110004, |
| 0x110004, |
| 0x80004, |
| 0x80004, |
| 0xa0004, |
| 0xa0004, |
| 0x10004, |
| 0x10004, |
| 0x120004, |
| 0x120004, |
| 0x5, |
| 0x100005, |
| 0x20005, |
| 0x190005, |
| 0xb0005, |
| 0x1a0005, |
| 0x130005, |
| 0x1b0006, |
| 0x1b0006, |
| 0x210006, |
| 0x210006, |
| 0xc0006, |
| 0xc0006, |
| 0x220006, |
| 0x220006, |
| 0x140006, |
| 0x140006, |
| 0x180006, |
| 0x180006, |
| 0x30006, |
| 0x30006, |
| 0x230006, |
| 0x230006, |
| 0x1c0006, |
| 0x1c0006, |
| 0x2a0006, |
| 0x2a0006, |
| 0x290007, |
| 0x150007, |
| 0xd0007, |
| 0x2b0007, |
| 0x1d0007, |
| 0x240007, |
| 0x2c0007, |
| 0x40007, |
| 0x250007, |
| 0x200007, |
| 0x160007, |
| 0x320007, |
| 0x310007, |
| 0xe0007, |
| 0x1e0008, |
| 0x330008, |
| 0x2d0008, |
| 0x280008, |
| 0x340008, |
| 0x50008, |
| 0x260008, |
| 0x390008, |
| 0x3a0008, |
| 0x170008, |
| 0x350008, |
| 0x3b0008, |
| 0xf0008, |
| 0x2e0008, |
| 0x1f0008, |
| 0x360009, |
| 0x360009, |
| 0x3c0009, |
| 0x3c0009, |
| 0x300009, |
| 0x300009, |
| 0x270009, |
| 0x270009, |
| 0x60009, |
| 0x60009, |
| 0x3d0009, |
| 0x3d0009, |
| 0x3e0009, |
| 0x3e0009, |
| 0x370009, |
| 0x370009, |
| 0x2f000a, |
| 0x38000a, |
| 0x7000a, |
| 0x3f000a |
| }; |
| const Int32 huff_tab9[204] = |
| { |
| 0x1, |
| 0x1, |
| 0x1, |
| 0x1, |
| 0x1, |
| 0x1, |
| 0x1, |
| 0x1, |
| 0xd0003, |
| 0xd0003, |
| 0x10003, |
| 0x10003, |
| 0xe0004, |
| 0x1b0006, |
| 0x1b0006, |
| 0xf0006, |
| 0xf0006, |
| 0x1a0006, |
| 0x1a0006, |
| 0x20006, |
| 0x20006, |
| 0x280007, |
| 0x1c0007, |
| 0x100007, |
| 0x270008, |
| 0x270008, |
| 0x30008, |
| 0x30008, |
| 0x1d0008, |
| 0x1d0008, |
| 0x290008, |
| 0x290008, |
| 0x110008, |
| 0x110008, |
| 0x350008, |
| 0x350008, |
| 0x1e0008, |
| 0x1e0008, |
| 0x120008, |
| 0x120008, |
| 0x360009, |
| 0x2a0009, |
| 0x40009, |
| 0x340009, |
| 0x420009, |
| 0x1f0009, |
| 0x130009, |
| 0x2b0009, |
| 0x430009, |
| 0x4f0009, |
| 0x370009, |
| 0x5000a, |
| 0x20000a, |
| 0x41000a, |
| 0x14000a, |
| 0x2c000a, |
| 0x15000a, |
| 0x69000a, |
| 0x38000a, |
| 0x44000a, |
| 0x50000a, |
| 0x5c000a, |
| 0x6000a, |
| 0x6a000a, |
| 0x22000a, |
| 0x2d000a, |
| 0x21000a, |
| 0x39000a, |
| 0x76000a, |
| 0x16000a, |
| 0x5d000a, |
| 0x4e000b, |
| 0x45000b, |
| 0x51000b, |
| 0x6b000b, |
| 0x7000b, |
| 0x77000b, |
| 0x2f000b, |
| 0x3a000b, |
| 0x2e000b, |
| 0x8000b, |
| 0x83000b, |
| 0x52000b, |
| 0x23000b, |
| 0x46000b, |
| 0x68000b, |
| 0x5b000b, |
| 0x5e000b, |
| 0x84000b, |
| 0x78000b, |
| 0x6c000b, |
| 0x17000b, |
| 0x5f000b, |
| 0x53000b, |
| 0x47000b, |
| 0x3c000b, |
| 0x3b000b, |
| 0x30000b, |
| 0x90000b, |
| 0x49000b, |
| 0x75000b, |
| 0x6d000b, |
| 0x85000c, |
| 0x24000c, |
| 0x9000c, |
| 0x91000c, |
| 0x79000c, |
| 0x54000c, |
| 0x9d000c, |
| 0x3d000c, |
| 0x6e000c, |
| 0x18000c, |
| 0x7a000c, |
| 0x86000c, |
| 0x48000c, |
| 0x60000c, |
| 0x25000c, |
| 0x19000c, |
| 0x9e000c, |
| 0x92000c, |
| 0x31000c, |
| 0x4a000c, |
| 0x55000c, |
| 0x6f000c, |
| 0x93000c, |
| 0xa000c, |
| 0x61000c, |
| 0x9f000c, |
| 0x82000c, |
| 0x87000c, |
| 0x3e000c, |
| 0x56000c, |
| 0x26000c, |
| 0x7b000c, |
| 0x7c000c, |
| 0x3f000c, |
| 0x8f000c, |
| 0x57000c, |
| 0x32000c, |
| 0x4b000c, |
| 0x70000d, |
| 0x63000d, |
| 0xa1000d, |
| 0x33000d, |
| 0x94000d, |
| 0x62000d, |
| 0xa0000d, |
| 0x95000d, |
| 0x88000d, |
| 0x40000d, |
| 0x64000d, |
| 0x4c000d, |
| 0xb000d, |
| 0xa2000d, |
| 0x58000d, |
| 0x9c000d, |
| 0x89000d, |
| 0x4d000d, |
| 0x65000d, |
| 0x7d000d, |
| 0xc000d, |
| 0x96000d, |
| 0x71000d, |
| 0x7e000d, |
| 0x8a000d, |
| 0x66000d, |
| 0xa3000d, |
| 0x59000d, |
| 0x73000d, |
| 0x97000d, |
| 0x67000d, |
| 0x5a000d, |
| 0x72000e, |
| 0x72000e, |
| 0x8b000e, |
| 0x8b000e, |
| 0x74000e, |
| 0x74000e, |
| 0x7f000e, |
| 0x7f000e, |
| 0x80000e, |
| 0x80000e, |
| 0x81000e, |
| 0x81000e, |
| 0x8d000e, |
| 0x8d000e, |
| 0xa5000e, |
| 0xa5000e, |
| 0x8c000e, |
| 0x8c000e, |
| 0x98000e, |
| 0x98000e, |
| 0xa4000e, |
| 0xa4000e, |
| 0x99000e, |
| 0x99000e, |
| 0xa6000e, |
| 0xa6000e, |
| 0xa7000e, |
| 0xa7000e, |
| 0x8e000f, |
| 0x9a000f, |
| 0x9b000f, |
| 0xa8000f |
| }; |
| const Int32 huff_tab10[186] = |
| { |
| 0xe0004, |
| 0xe0004, |
| 0xe0004, |
| 0xe0004, |
| 0xf0004, |
| 0xf0004, |
| 0xf0004, |
| 0xf0004, |
| 0x1b0004, |
| 0x1b0004, |
| 0x1b0004, |
| 0x1b0004, |
| 0x1c0005, |
| 0x1c0005, |
| 0xd0005, |
| 0xd0005, |
| 0x10005, |
| 0x10005, |
| 0x100005, |
| 0x100005, |
| 0x290005, |
| 0x290005, |
| 0x280005, |
| 0x280005, |
| 0x1d0005, |
| 0x1d0005, |
| 0x2a0005, |
| 0x2a0005, |
| 0x1a0006, |
| 0x20006, |
| 0x1e0006, |
| 0x360006, |
| 0x110006, |
| 0x350006, |
| 0x6, |
| 0x370006, |
| 0x2b0006, |
| 0x270006, |
| 0x30006, |
| 0x380006, |
| 0x1f0006, |
| 0x430006, |
| 0x120007, |
| 0x420007, |
| 0x440007, |
| 0x2c0007, |
| 0x450007, |
| 0x390007, |
| 0x500007, |
| 0x200007, |
| 0x510007, |
| 0x340007, |
| 0x4f0007, |
| 0x40007, |
| 0x130007, |
| 0x2d0007, |
| 0x460007, |
| 0x520007, |
| 0x3a0007, |
| 0x530008, |
| 0x5d0008, |
| 0x2e0008, |
| 0x210008, |
| 0x470008, |
| 0x6a0008, |
| 0x5e0008, |
| 0x410008, |
| 0x5c0008, |
| 0x50008, |
| 0x690008, |
| 0x140008, |
| 0x6b0008, |
| 0x5f0008, |
| 0x3b0008, |
| 0x220008, |
| 0x540008, |
| 0x600008, |
| 0x150008, |
| 0x2f0008, |
| 0x6c0008, |
| 0x3c0008, |
| 0x480008, |
| 0x6d0008, |
| 0x490008, |
| 0x610009, |
| 0x550009, |
| 0x770009, |
| 0x4e0009, |
| 0x560009, |
| 0x780009, |
| 0x300009, |
| 0x760009, |
| 0x230009, |
| 0x60009, |
| 0x6e0009, |
| 0x790009, |
| 0x3d0009, |
| 0x840009, |
| 0x160009, |
| 0x620009, |
| 0x6f0009, |
| 0x7a0009, |
| 0x630009, |
| 0x850009, |
| 0x4a0009, |
| 0x860009, |
| 0x240009, |
| 0x830009, |
| 0x310009, |
| 0x7b0009, |
| 0x570009, |
| 0x680009, |
| 0x3e0009, |
| 0x5b0009, |
| 0x910009, |
| 0x64000a, |
| 0x92000a, |
| 0x88000a, |
| 0x17000a, |
| 0x90000a, |
| 0x7c000a, |
| 0x7000a, |
| 0x70000a, |
| 0x87000a, |
| 0x32000a, |
| 0x4b000a, |
| 0x71000a, |
| 0x94000a, |
| 0x8000a, |
| 0x93000a, |
| 0x25000a, |
| 0x65000a, |
| 0x58000a, |
| 0x89000a, |
| 0x3f000a, |
| 0x18000a, |
| 0x9e000a, |
| 0x7d000a, |
| 0x9f000a, |
| 0x95000a, |
| 0x4c000a, |
| 0xa0000a, |
| 0x96000a, |
| 0xa1000a, |
| 0x33000a, |
| 0x59000a, |
| 0x75000a, |
| 0x8a000a, |
| 0x82000a, |
| 0x9d000a, |
| 0x9000a, |
| 0x40000a, |
| 0x7e000a, |
| 0xa2000a, |
| 0x26000a, |
| 0x72000a, |
| 0x7f000b, |
| 0x19000b, |
| 0x97000b, |
| 0xa3000b, |
| 0x66000b, |
| 0x4d000b, |
| 0x5a000b, |
| 0x8b000b, |
| 0x73000b, |
| 0xa4000b, |
| 0xa000b, |
| 0x67000b, |
| 0x8f000b, |
| 0x8c000b, |
| 0x98000b, |
| 0x99000b, |
| 0xb000b, |
| 0x9a000b, |
| 0x80000b, |
| 0x8d000b, |
| 0x9c000b, |
| 0x74000b, |
| 0xa5000c, |
| 0x8e000c, |
| 0x81000c, |
| 0x9b000c, |
| 0xa7000c, |
| 0xc000c, |
| 0xa6000c, |
| 0xa8000c |
| }; |
| const Int32 huff_tab11[301] = |
| { |
| 0x4, |
| 0x4, |
| 0x4, |
| 0x4, |
| 0x120004, |
| 0x120004, |
| 0x120004, |
| 0x120004, |
| 0x1200005, |
| 0x1200005, |
| 0x110005, |
| 0x110005, |
| 0x10005, |
| 0x10005, |
| 0x230005, |
| 0x230005, |
| 0x130005, |
| 0x130005, |
| 0x240005, |
| 0x240005, |
| 0x140006, |
| 0x340006, |
| 0x350006, |
| 0x220006, |
| 0x250006, |
| 0x20006, |
| 0x360006, |
| 0x450007, |
| 0x150007, |
| 0x460007, |
| 0x260007, |
| 0x470007, |
| 0x370007, |
| 0x330007, |
| 0x30007, |
| 0x560007, |
| 0x570007, |
| 0x270007, |
| 0x480007, |
| 0x160007, |
| 0x580007, |
| 0x380007, |
| 0x590007, |
| 0x490008, |
| 0x680008, |
| 0x280008, |
| 0x670008, |
| 0x690008, |
| 0x390008, |
| 0x170008, |
| 0x540008, |
| 0x430008, |
| 0x1150008, |
| 0x1130008, |
| 0x1140008, |
| 0x6a0008, |
| 0x1160008, |
| 0x440008, |
| 0x4a0008, |
| 0x40008, |
| 0x320008, |
| 0x5a0008, |
| 0x650008, |
| 0x1170008, |
| 0x1120008, |
| 0x1180008, |
| 0x290008, |
| 0x790008, |
| 0x3a0008, |
| 0x6b0008, |
| 0x5b0008, |
| 0x760008, |
| 0x11a0008, |
| 0x7a0008, |
| 0x780008, |
| 0x1190008, |
| 0x870008, |
| 0x210008, |
| 0x180008, |
| 0x4b0008, |
| 0x11b0008, |
| 0x7b0008, |
| 0x11c0008, |
| 0x980008, |
| 0x1110008, |
| 0x6c0008, |
| 0xa90008, |
| 0x2a0008, |
| 0x5c0008, |
| 0xba0008, |
| 0x11d0008, |
| 0x8b0008, |
| 0x8a0008, |
| 0x3b0008, |
| 0x550008, |
| 0x11e0008, |
| 0xcb0008, |
| 0x7c0008, |
| 0x4c0008, |
| 0x6d0008, |
| 0x7d0008, |
| 0x50008, |
| 0x8c0009, |
| 0x11f0009, |
| 0xdc0009, |
| 0x190009, |
| 0x890009, |
| 0xfe0009, |
| 0x5d0009, |
| 0xed0009, |
| 0x3c0009, |
| 0x8d0009, |
| 0x7e0009, |
| 0x2b0009, |
| 0x8e0009, |
| 0x9b0009, |
| 0x9c0009, |
| 0x10f0009, |
| 0x4d0009, |
| 0x6e0009, |
| 0x660009, |
| 0x9d0009, |
| 0x5e0009, |
| 0x8f0009, |
| 0x7f0009, |
| 0x1a0009, |
| 0xad0009, |
| 0x60009, |
| 0xac0009, |
| 0x9a0009, |
| 0x9e0009, |
| 0x4e0009, |
| 0x2c0009, |
| 0x9f0009, |
| 0x3d0009, |
| 0x6f0009, |
| 0xae0009, |
| 0x900009, |
| 0xaf0009, |
| 0xa00009, |
| 0xbe0009, |
| 0x1b0009, |
| 0x770009, |
| 0xb00009, |
| 0x800009, |
| 0x3e0009, |
| 0x5f0009, |
| 0xab0009, |
| 0x4f0009, |
| 0xbd0009, |
| 0xdf0009, |
| 0x700009, |
| 0xe00009, |
| 0x2d0009, |
| 0x1100009, |
| 0x600009, |
| 0xc00009, |
| 0xbf000a, |
| 0xa1000a, |
| 0x81000a, |
| 0x91000a, |
| 0x10000a, |
| 0x51000a, |
| 0x7000a, |
| 0x40000a, |
| 0xc1000a, |
| 0xde000a, |
| 0xe1000a, |
| 0xcf000a, |
| 0x2f000a, |
| 0xe2000a, |
| 0x92000a, |
| 0x71000a, |
| 0xb2000a, |
| 0xb1000a, |
| 0xf0000a, |
| 0xd0000a, |
| 0x1c000a, |
| 0x50000a, |
| 0xbc000a, |
| 0x3f000a, |
| 0x1e000a, |
| 0xce000a, |
| 0x82000a, |
| 0x41000a, |
| 0x61000a, |
| 0x62000a, |
| 0xf2000a, |
| 0x52000a, |
| 0xc2000a, |
| 0xf1000a, |
| 0xd1000a, |
| 0xe3000a, |
| 0xd2000a, |
| 0x88000a, |
| 0xc3000a, |
| 0x2e000a, |
| 0xa2000a, |
| 0xf3000a, |
| 0x73000a, |
| 0xb4000a, |
| 0x101000a, |
| 0x93000a, |
| 0xa3000a, |
| 0xf4000a, |
| 0xb3000a, |
| 0x63000a, |
| 0xc4000a, |
| 0xef000a, |
| 0x30000a, |
| 0x72000a, |
| 0x1d000a, |
| 0xe5000a, |
| 0x8000a, |
| 0xe4000a, |
| 0x83000a, |
| 0xd3000a, |
| 0x84000a, |
| 0x102000a, |
| 0xcd000a, |
| 0x74000a, |
| 0x31000a, |
| 0x104000a, |
| 0x103000a, |
| 0x1f000a, |
| 0xa4000a, |
| 0x53000a, |
| 0xf5000a, |
| 0x95000a, |
| 0xe6000a, |
| 0x94000a, |
| 0x64000a, |
| 0x42000a, |
| 0xb5000a, |
| 0xc5000a, |
| 0xd4000a, |
| 0x105000a, |
| 0x106000a, |
| 0x96000a, |
| 0x100000a, |
| 0x85000a, |
| 0x99000a, |
| 0x9000a, |
| 0xa6000a, |
| 0xa5000a, |
| 0xd5000a, |
| 0xf6000a, |
| 0xb7000a, |
| 0xf7000a, |
| 0xd6000a, |
| 0x75000a, |
| 0x86000a, |
| 0xa7000b, |
| 0x107000b, |
| 0xc6000b, |
| 0xc9000b, |
| 0x20000b, |
| 0xb6000b, |
| 0xb8000b, |
| 0xe8000b, |
| 0xe7000b, |
| 0xc8000b, |
| 0xc7000b, |
| 0x97000b, |
| 0xf9000b, |
| 0xe9000b, |
| 0xd9000b, |
| 0x108000b, |
| 0xf8000b, |
| 0xaa000b, |
| 0xd7000b, |
| 0xa8000b, |
| 0xa000b, |
| 0xd8000b, |
| 0xbb000b, |
| 0xda000b, |
| 0xb9000b, |
| 0xea000b, |
| 0xd000b, |
| 0xfa000b, |
| 0x109000b, |
| 0x10a000b, |
| 0xca000b, |
| 0xfb000b, |
| 0xdd000b, |
| 0xb000b, |
| 0xeb000b, |
| 0x10b000b, |
| 0x10c000b, |
| 0xdb000b, |
| 0xee000b, |
| 0xfc000b, |
| 0xec000b, |
| 0xcc000b, |
| 0xfd000b, |
| 0xe000c, |
| 0xc000c, |
| 0x10d000c, |
| 0xff000c, |
| 0xf000c, |
| 0x10e000c |
| }; |
| |
| const UInt32 huff_tab_scl[188] = |
| { |
| 0x3b0003, |
| 0x3b0003, |
| 0x3b0003, |
| 0x3b0003, |
| 0x3b0003, |
| 0x3b0003, |
| 0x3b0003, |
| 0x3b0003, |
| 0x3d0004, |
| 0x3d0004, |
| 0x3d0004, |
| 0x3d0004, |
| 0x3a0004, |
| 0x3a0004, |
| 0x3a0004, |
| 0x3a0004, |
| 0x3e0004, |
| 0x3e0004, |
| 0x3e0004, |
| 0x3e0004, |
| 0x390005, |
| 0x390005, |
| 0x3f0005, |
| 0x3f0005, |
| 0x380006, |
| 0x400006, |
| 0x370006, |
| 0x410006, |
| 0x420007, |
| 0x420007, |
| 0x420007, |
| 0x420007, |
| 0x360007, |
| 0x360007, |
| 0x360007, |
| 0x360007, |
| 0x430007, |
| 0x430007, |
| 0x430007, |
| 0x430007, |
| 0x350008, |
| 0x350008, |
| 0x440008, |
| 0x440008, |
| 0x340008, |
| 0x340008, |
| 0x450008, |
| 0x450008, |
| 0x330008, |
| 0x330008, |
| 0x460009, |
| 0x320009, |
| 0x310009, |
| 0x470009, |
| 0x48000a, |
| 0x48000a, |
| 0x48000a, |
| 0x48000a, |
| 0x30000a, |
| 0x30000a, |
| 0x30000a, |
| 0x30000a, |
| 0x49000a, |
| 0x49000a, |
| 0x49000a, |
| 0x49000a, |
| 0x2f000a, |
| 0x2f000a, |
| 0x2f000a, |
| 0x2f000a, |
| 0x4a000a, |
| 0x4a000a, |
| 0x4a000a, |
| 0x4a000a, |
| 0x2e000a, |
| 0x2e000a, |
| 0x2e000a, |
| 0x2e000a, |
| 0x4c000b, |
| 0x4c000b, |
| 0x4b000b, |
| 0x4b000b, |
| 0x4d000b, |
| 0x4d000b, |
| 0x4e000b, |
| 0x4e000b, |
| 0x2d000b, |
| 0x2d000b, |
| 0x2b000b, |
| 0x2b000b, |
| 0x2c000c, |
| 0x4f000c, |
| 0x2a000c, |
| 0x29000c, |
| 0x50000c, |
| 0x28000c, |
| 0x51000d, |
| 0x51000d, |
| 0x27000d, |
| 0x27000d, |
| 0x52000d, |
| 0x52000d, |
| 0x26000d, |
| 0x26000d, |
| 0x53000d, |
| 0x53000d, |
| 0x25000e, |
| 0x23000e, |
| 0x55000e, |
| 0x21000e, |
| 0x24000e, |
| 0x22000e, |
| 0x54000e, |
| 0x20000e, |
| 0x57000f, |
| 0x57000f, |
| 0x59000f, |
| 0x59000f, |
| 0x1e000f, |
| 0x1e000f, |
| 0x1f000f, |
| 0x1f000f, |
| 0x560010, |
| 0x1d0010, |
| 0x1a0010, |
| 0x1b0010, |
| 0x1c0010, |
| 0x180010, |
| 0x580010, |
| 0x190011, |
| 0x190011, |
| 0x160011, |
| 0x160011, |
| 0x170011, |
| 0x170011, |
| 0x5a0012, |
| 0x150012, |
| 0x130012, |
| 0x30012, |
| 0x10012, |
| 0x20012, |
| 0x12, |
| 0x620013, |
| 0x630013, |
| 0x640013, |
| 0x650013, |
| 0x660013, |
| 0x750013, |
| 0x610013, |
| 0x5b0013, |
| 0x5c0013, |
| 0x5d0013, |
| 0x5e0013, |
| 0x5f0013, |
| 0x600013, |
| 0x680013, |
| 0x6f0013, |
| 0x700013, |
| 0x710013, |
| 0x720013, |
| 0x730013, |
| 0x740013, |
| 0x6e0013, |
| 0x690013, |
| 0x6a0013, |
| 0x6b0013, |
| 0x6c0013, |
| 0x6d0013, |
| 0x760013, |
| 0x60013, |
| 0x80013, |
| 0x90013, |
| 0xa0013, |
| 0x50013, |
| 0x670013, |
| 0x780013, |
| 0x770013, |
| 0x40013, |
| 0x70013, |
| 0xf0013, |
| 0x100013, |
| 0x120013, |
| 0x140013, |
| 0x110013, |
| 0xb0013, |
| 0xc0013, |
| 0xe0013, |
| 0xd0013 |
| }; |