import { BitReader } from './bits'; import type { SequenceHeader } from './sequence'; /** get_qindex for a segment at frame level (no delta-q lookup). */ export declare function getQIndex(seg: SegmentationParams, baseQIdx: number, segmentId: number): number; /** * Parse the uncompressed header from `r`. The reader is left positioned just * after the header bits (call `byteAlign()` before reading tile group data * when parsing a FRAME OBU). */ export declare function parseFrameHeader(r: BitReader, seq: SequenceHeader, state?: FrameHeaderState): FrameHeader; export declare const FrameType: { KEY: 0; INTER: 1; INTRA_ONLY: 2; SWITCH: 3 }; export declare const SEG_LVL_ALT_Q: 0; export declare const SEG_LVL_MAX: 8; export declare const TxModes: { ONLY_4X4: 0; LARGEST: 1; SELECT: 2 }; export declare const RestorationType: { NONE: 0; WIENER: 1; SGRPROJ: 2; SWITCHABLE: 3 }; export declare interface TileInfo { tileColsLog2: number tileRowsLog2: number tileCols: number tileRows: number miColStarts: number[] miRowStarts: number[] contextUpdateTileId: number tileSizeBytes: number } export declare interface QuantizationParams { baseQIdx: number deltaQYDc: number deltaQUDc: number deltaQUAc: number deltaQVDc: number deltaQVAc: number usingQMatrix: boolean qmY: number qmU: number qmV: number } export declare interface SegmentationParams { enabled: boolean updateMap: boolean temporalUpdate: boolean updateData: boolean featureEnabled: boolean[][] featureData: number[][] segIdPreSkip: boolean lastActiveSegId: number } export declare interface LoopFilterParams { levels: [number, number, number, number] sharpness: number deltaEnabled: boolean refDeltas: number[] modeDeltas: number[] } export declare interface CdefParams { damping: number bits: number yPriStrength: number[] ySecStrength: number[] uvPriStrength: number[] uvSecStrength: number[] } export declare interface LrParams { frameRestorationType: number[] usesLr: boolean usesChromaLr: boolean loopRestorationSize: number[] } export declare interface FilmGrainParams { seed: number yPoints: [number, number][] chromaScalingFromLuma: boolean uvPoints: [[number, number][], [number, number][]] scalingShift: number arCoeffLag: number arCoeffsY: number[] arCoeffsUv: [number[], number[]] arCoeffShift: number grainScaleShift: number uvMult: [number, number] uvLumaMult: [number, number] uvOffset: [number, number] overlap: boolean clipToRestrictedRange: boolean } export declare interface GlobalMotionParams { type: number matrix: [number, number, number, number, number, number] } export declare interface FrameHeader { showExistingFrame: boolean existingFrameIdx: number frameType: number showFrame: boolean showableFrame: boolean errorResilientMode: boolean disableCdfUpdate: boolean allowScreenContentTools: boolean forceIntegerMv: boolean frameSizeOverride: boolean orderHint: number primaryRefFrame: number refreshFrameFlags: number frameWidth: number frameHeight: number upscaledWidth: number superresDenom: number renderWidth: number renderHeight: number miCols: number miRows: number allowIntrabc: boolean disableFrameEndUpdateCdf: boolean tileInfo: TileInfo quantization: QuantizationParams segmentation: SegmentationParams deltaQPresent: boolean deltaQRes: number deltaLfPresent: boolean deltaLfRes: number deltaLfMulti: boolean codedLossless: boolean allLossless: boolean losslessArray: boolean[] segQIndex: number[] loopFilter: LoopFilterParams cdef: CdefParams lr: LrParams txMode: number reducedTxSet: boolean filmGrain: FilmGrainParams | null refFrameIdx: number[] allowHighPrecisionMv: boolean interpolationFilter: number isMotionModeSwitchable: boolean useRefFrameMvs: boolean referenceSelect: boolean skipModePresent: boolean skipModeRefs: [number, number] allowWarpedMotion: boolean globalMotion: GlobalMotionParams[] } export declare interface FrameHeaderState { refs: Array }