@abasb75/jpeg-lossless-decoder
Version:
A JavaScript JPEG Lossless decoder.
83 lines (82 loc) • 3.21 kB
TypeScript
import { ComponentSpec } from './component-spec';
import { DataStream } from './data-stream';
import { FrameHeader } from './frame-header';
import { HuffmanTable } from './huffman-table';
import { QuantizationTable } from './quantization-table';
import { ScanHeader } from './scan-header';
export declare class Decoder {
static IDCT_P: number[];
static TABLE: number[];
static MAX_HUFFMAN_SUBTREE: number;
static MSB: number;
static RESTART_MARKER_BEGIN: number;
static RESTART_MARKER_END: number;
buffer: ArrayBuffer | null;
stream: DataStream | null;
frame: FrameHeader;
huffTable: HuffmanTable;
quantTable: QuantizationTable;
scan: ScanHeader;
DU: number[][][];
HuffTab: number[][][];
IDCT_Source: number[];
nBlock: number[];
acTab: number[][];
dcTab: number[][];
qTab: number[][];
marker: number;
markerIndex: number;
numComp: number;
restartInterval: number;
selection: number;
xDim: number;
yDim: number;
xLoc: number;
yLoc: number;
outputData: Uint8Array | Uint16Array | null;
restarting: boolean;
mask: number;
numBytes: number;
precision: number | undefined;
components: Array<typeof ComponentSpec>;
getter: null | ((index: number, compOffset: number) => number);
setter: null | ((index: number, val: number, compOffset?: number) => void);
output: null | ((PRED: number[]) => void);
selector: null | ((compOffset?: number) => number);
/**
* The Decoder constructor.
* @property {number} numBytes - number of bytes per component
* @type {Function}
*/
constructor(buffer?: ArrayBuffer | null, numBytes?: number);
/**
* Returns decompressed data.
*/
decompress(buffer: ArrayBuffer, offset: number, length: number): ArrayBuffer;
decode(buffer?: ArrayBuffer, offset?: number, length?: number, numBytes?: number): Uint8Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike>;
decodeUnit(prev: number[], temp: number[], index: number[]): number;
select1(compOffset?: number): number;
select2(compOffset?: number): number;
select3(compOffset?: number): number;
select4(compOffset?: number): number;
select5(compOffset?: number): number;
select6(compOffset?: number): number;
select7(compOffset?: number): number;
decodeRGB(prev: number[], temp: number[], index: number[]): number;
decodeSingle(prev: number[], temp: number[], index: number[]): number;
getHuffmanValue(table: number[], temp: number[], index: number[]): number;
getn(PRED: number[], n: number, temp: number[], index: number[]): number;
getPreviousX(compOffset?: number): number;
getPreviousXY(compOffset?: number): number;
getPreviousY(compOffset?: number): number;
isLastPixel(): boolean;
outputSingle(PRED: number[]): void;
outputRGB(PRED: number[]): void;
setValue8(index: number, val: number): void;
getValue8(index: number): number;
setValueRGB(index: number, val: number, compOffset?: number): void;
getValueRGB(index: number, compOffset: number): number;
readApp(): number | null;
readComment(): string | null;
readNumber(): number | null;
}