mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-11 16:26:20 +00:00
* Update libavif (v1.0.0-main) * Update libavif for improved compression and speed * v1.0.0 deprecates usage of min and max-quantizers; we use `quality` and `qualityAlpha` instead * Renamed `maxSpeed` to `MAX_EFFORT` for better readability * Update libavif (v1.0.1-main) * Refactor variable names for clarity * Update libaom (v3.7.0) * Add checks for API return values * Rename variables for readability Changes `cqlevel` to `quality`, and `cqAlphaLevel` to `qualityAlpha` * Minor patches in logic * Minor patches in lossless calculation * Add chroma subsampling options to AVIF * Add skeleton for sharp downsampling param * Try to use libsharpyuv * Encoder working, decoder isnt * Make sure sharpyuv is disabled for decoder * Add AVIF_LOCAL flags for sharp yuv * Get AVIF sharp YUV working * Clean up AVIF makefiles * AVIF: Make sharpyuv conditional on subsample * AVIF: Flags to speed up sharpyuv build * AVIF: Minor refactoring in enc.cpp * AVIF: Minor refactoring & renaming * AVIF: Use smart pointers to prevent memory leaks * AVIF: Minor refactoring * AVIF: Revert defaultoptions logic change --------- Co-authored-by: Surma <surma@surma.dev> Co-authored-by: Jake Archibald <jaffathecake@gmail.com>
33 lines
624 B
TypeScript
33 lines
624 B
TypeScript
export const enum AVIFTune {
|
|
auto,
|
|
psnr,
|
|
ssim,
|
|
}
|
|
|
|
export interface EncodeOptions {
|
|
quality: number;
|
|
qualityAlpha: number;
|
|
denoiseLevel: number;
|
|
tileRowsLog2: number;
|
|
tileColsLog2: number;
|
|
speed: number;
|
|
subsample: number;
|
|
chromaDeltaQ: boolean;
|
|
sharpness: number;
|
|
enableSharpYUV: boolean;
|
|
tune: AVIFTune;
|
|
}
|
|
|
|
export interface AVIFModule extends EmscriptenWasm.Module {
|
|
encode(
|
|
data: BufferSource,
|
|
width: number,
|
|
height: number,
|
|
options: EncodeOptions,
|
|
): Uint8Array | null;
|
|
}
|
|
|
|
declare var moduleFactory: EmscriptenWasm.ModuleFactory<AVIFModule>;
|
|
|
|
export default moduleFactory;
|