import { BlockSize } from './consts'; import { floorLog2 } from './bits'; import { SymbolDecoder } from './msac'; import type { CdfContext } from './cdf'; import type { EdgeNode } from './intra-edge'; import type { FrameHeader, GlobalMotionParams } from './frame-header'; import type { SequenceHeader } from './sequence'; declare const TXFM_INFO: TxfmInfo[]; export declare interface TxfmInfo { w: number h: number lw: number lh: number min: number max: number sub: number ctx: number } export declare interface Av1Block { bl: number bp: number bs: number segId: number skipMode: number skip: number intra: number yMode: number yAngle: number uvMode: number uvAngle: number cflAlpha: [number, number] palSz: [number, number] palettes: [Uint16Array, Uint16Array, Uint16Array] palIdxY: Uint8Array | null palIdxUv: Uint8Array | null mvX: number mvY: number ref0: number ref1: number mvX2: number mvY2: number newMv: number txSplit0: number txSplit1: number filterH: number filterV: number globalMotion: GlobalMotionParams | null globalMv: number tx: number uvtx: number } /** Pixel-level reconstruction hooks, invoked in bitstream order. */ export declare interface Reconstructor { startBlock: (bs: number, b: Av1Block, dec: TileDecoder) => void predictCfl: (b: Av1Block, dec: TileDecoder, cbw4: number, cbh4: number, cw4: number, ch4: number) => void reconTxBlock: ( plane: number, bx: number, by: number, tx: number, txtp: number, eob: number, cf: Int32Array, b: Av1Block, dec: TileDecoder, edgeFlags: number, ) => void } /** * Neighbor context state for one direction (above the current row of * superblocks, or left within the current superblock column). Above arrays * span the whole tile width; left arrays cover one 128px superblock column. */ declare class BlockContext { mode: Uint8Array; lcoef: Uint8Array; ccoef: [Uint8Array, Uint8Array]; segPred: Uint8Array; skip: Uint8Array; skipMode: Uint8Array; intra: Uint8Array; txIntra: Int8Array; tx: Int8Array; partition: Uint8Array; uvmode: Uint8Array; palSz: Uint8Array; palSzUv: Uint8Array; palettes: [Uint16Array, Uint16Array, Uint16Array]; mvX: Int16Array; mvY: Int16Array; ref0: Int8Array; ref1: Int8Array; compType: Uint8Array; filterH: Uint8Array; filterV: Uint8Array; constructor(n4: number); reset(keyframe: boolean): void; } export declare class TileDecoder { msac: SymbolDecoder; cdf: CdfContext; bx: number; by: number; a: BlockContext; l: BlockContext; bw4: number; bh4: number; ssHor: number; ssVer: number; layout: number; readonly frameIsIntra: boolean; colStart: number; colEnd: number; rowStart: number; rowEnd: number; frameDq: number[][][]; dq: number[][][]; lastQIdx: number; lastDeltaLf: unknown[]; cf: unknown; levels: unknown; cdefIdx: unknown[]; mvCdf: [Uint16Array, Uint16Array]; segMap: Uint8Array | null; interRef: unknown; interMvX: unknown; interMvY: unknown; interNewMv: unknown; interGlobalMv: unknown; interBs: unknown; txtpMap: unknown; restoration: { readForSuperblock: (m: SymbolDecoder, c: CdfContext, bx: number, by: number) => void } | null; cdefData: { idx: Int8Array, noskip: Uint8Array, sb64w: number } | null; recon: Reconstructor | null; readonly seq: SequenceHeader; readonly hdr: FrameHeader; constructor(seq: SequenceHeader, hdr: FrameHeader, tileData: Uint8Array, cdf: CdfContext, recon?: Reconstructor | null); decodeTile(sbRoot: EdgeNode): void; decodeCoefs(aArr: Uint8Array, aOff: number, lArr: Uint8Array, lOff: number, tx: number, bs: BlockSize, b: Av1Block, intra: number, plane: number, interLumaTxtp?: unknown): { eob: number, txtp: number, ctx: number }; } export { TXFM_INFO }; export { floorLog2 as ulog2 };