/** * MPEG-1/2/2.5 Layer III constant tables, from ISO/IEC 11172-3 and 13818-3. * * These are specification data, not design decisions — the values are fixed by * the format and every conforming decoder uses exactly these. They live in their * own module so the `audiobox/mp3` bundle only pays for them when MP3 is * actually used. * * Where a table can be *computed* rather than listed, it is: the requantization * power table, the IMDCT windows, and the synthesis cosine matrix are all * generated at module load. That is a few microseconds of arithmetic in exchange * for several kilobytes of literals in every bundle, and it removes an entire * category of transcription error. */ /** Scalefactor band boundaries for long blocks, per sample rate. 22 bands + end. */ export declare const SFB_LONG: Record; /** Scalefactor band boundaries for short blocks, per sample rate. 13 bands + end. */ export declare const SFB_SHORT: Record; /** * Scalefactor bit lengths, selected by `scalefac_compress` (MPEG-1 only). * * `slen1` applies to bands 0–10, `slen2` to bands 11–20. */ export declare const SLEN1: Uint8Array; export declare const SLEN2: Uint8Array; /** * Additional high-frequency emphasis, applied when `preflag` is set. * * A cheap way for the encoder to boost the top bands without spending * scalefactor bits on them. */ export declare const PRETAB: Uint8Array; /** How many scalefactor bands each of the two MPEG-1 groups covers. */ export declare const SFB_GROUP_BOUNDARY = 11; /** * Number of linearly-coded extra bits for Huffman tables 16–31. * * Large values are coded as a Huffman escape followed by this many raw bits, so * the tables stay small while still covering the full dynamic range. */ export declare const HUFFMAN_LINBITS: Uint8Array; /** * `x^(4/3)` for every quantized magnitude, precomputed. * * Requantization applies this to every one of 576 lines per granule, tens of * thousands of times per second of audio. `Math.pow` in that loop is the single * biggest avoidable cost in an MP3 decoder. * * 8207 entries covers the largest value representable with 13 linbits. */ export declare const POW43: Float32Array; /** * `2^(i/4)` for the global gain exponent, offset so the index is never negative. * * `global_gain` is 8 bits and the exponent it produces spans roughly -256..+118, * so the table is offset by 256. */ export declare const GAIN_POW2: Float32Array; /** * The four IMDCT window shapes. * * Layer III switches between a 36-sample long window and three 12-sample short * windows to control pre-echo — a long window smears a sharp transient's * quantization noise backwards in time, which is audible as a click before a * drum hit. Types 1 and 3 are the asymmetric transitions between the two. */ export declare const IMDCT_WINDOWS: Float32Array[]; /** * Alias-reduction butterfly coefficients. * * The polyphase filterbank's sub-bands overlap, which introduces aliasing * between neighbours. These eight butterflies across each sub-band boundary * cancel it. Derived from the specification's `c[]` constants. */ export declare const ALIAS_CS: Float32Array; export declare const ALIAS_CA: Float32Array; /** * Intensity-stereo position ratios, indexed by `is_pos`. * * In intensity stereo the encoder discards the side channel above some band and * stores only a panning position; the decoder reconstructs both channels from * the mid signal and this ratio. */ export declare const INTENSITY_RATIOS: Float32Array; /** IMDCT cosine basis for the 36-point (long) transform. */ export declare const IMDCT_COS_36: Float32Array; /** IMDCT cosine basis for the 12-point (short) transform. */ export declare const IMDCT_COS_12: Float32Array; /** * The synthesis filterbank window is generated rather than listed here — see * `synth-window.ts` for why, and for how it is derived. */ export { SYNTH_WINDOW } from './synth-window.js'; //# sourceMappingURL=tables.d.ts.map