/** * MPEG-1/2/2.5 Layer III Huffman decoding tables. * * GENERATED FILE — do not edit by hand. * Regenerate with: node scripts/generate-huffman-tables.mjs * * ## Provenance * * Extracted from minimp3 (https://github.com/lieff/minimp3), dedicated to the * public domain under CC0 1.0 Universal. CC0 imposes no conditions, so this data * is unencumbered in an MIT-licensed project. * * The tables themselves are specification constants from ISO/IEC 11172-3; what * comes from minimp3 is the *packed representation*, which is far more compact * and faster to decode than the raw (codeword, length) listings in the standard. * * ## Representation * * {@link HUFFMAN_TABS} is a flattened multi-level trie shared by all 32 tables, * with {@link HUFFMAN_TABLE_INDEX} giving each table's starting offset. * * Decoding peeks 5 bits and indexes the table: * * - A **negative** entry is an internal node. Consume the bits just peeked, then * peek `entry & 7` more and index at `peeked - (entry >> 3)`. Repeat. * - A **positive** entry is a leaf packing three fields: * - `entry >> 8` — codeword length in bits, to consume * - `entry & 0x0F` — magnitude of the first value (x) * - `(entry >> 4) & 0x0F` — magnitude of the second value (y) * * A magnitude of 15 means "escape": read {@link HUFFMAN_LINBITS_TABLE} more bits * and add them. Each non-zero magnitude is followed by one sign bit. */ /** Packed trie shared by all 32 big-values tables. */ export declare const HUFFMAN_TABS: Int16Array; /** Offset into {@link HUFFMAN_TABS} for each of the 32 tables. */ export declare const HUFFMAN_TABLE_INDEX: Uint16Array; /** Escape bit counts per table. Table numbers 16-31 use them; 0-15 never do. */ export declare const HUFFMAN_LINBITS_TABLE: Uint8Array; /** * count1 table A, used when `count1_table_select` is 0. * * The count1 region codes quadruples of values that are all -1, 0, or +1 — the * high-frequency tail where almost everything has quantized to nearly nothing. * Bits 128>>s of a leaf mark which of the four values are non-zero, and * `leaf & 7` is the codeword length. */ export declare const COUNT1_TABLE_A: Uint8Array; /** count1 table B, used when `count1_table_select` is 1. A flat 4-bit code. */ export declare const COUNT1_TABLE_B: Uint8Array;