image-in-browser
Version:
Package for encoding / decoding images, transforming images, applying filters, drawing primitives on images on the client side (no need for server Node.js)
88 lines (87 loc) • 2.13 kB
TypeScript
/** @format */
import { InputBuffer } from '../../common/input-buffer.js';
/**
* Class representing a VP8 bit reader.
*/
export declare class VP8BitReader {
/**
* The input buffer.
*/
private _input;
/**
* Current range minus 1. In [127, 254] interval.
*/
private _range;
/**
* Current value.
*/
private _value;
/**
* Number of valid bits left.
*/
private _bits;
/**
* End of file flag.
*/
private _eof;
/**
* Creates an instance of VP8BitReader.
* @param {InputBuffer<Uint8Array>} input - The input buffer.
*/
constructor(input: InputBuffer<Uint8Array>);
/**
* Loads the final bytes from the input buffer.
*/
private loadFinalBytes;
/**
* Loads new bytes from the input buffer.
*/
private loadNewBytes;
/**
* Updates the bit based on the split value.
* @param {number} split - The split value.
* @returns {number} The updated bit.
*/
private bitUpdate;
/**
* Shifts the range and bits.
*/
private shift;
/**
* Gets a bit based on the probability.
* @param {number} prob - The probability.
* @returns {number} The bit.
*/
getBit(prob: number): number;
/**
* Gets a value based on the number of bits.
* @param {number} bits - The number of bits.
* @returns {number} The value.
*/
getValue(bits: number): number;
/**
* Gets a single bit value.
* @returns {number} The bit value.
*/
get(): number;
/**
* Gets a signed value based on the input value.
* @param {number} v - The input value.
* @returns {number} The signed value.
*/
getSigned(v: number): number;
/**
* Gets a signed value based on the number of bits.
* @param {number} bits - The number of bits.
* @returns {number} The signed value.
*/
getSignedValue(bits: number): number;
/**
* Log2 range values.
*/
private static readonly log2Range;
/**
* New range values.
*/
private static readonly newRange;
}