Files
squoosh/codecs
Aryan Pingle e217740e53 Update libavif (#1381)
* 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>
2024-01-24 08:04:33 +00:00
..
2024-01-24 08:04:33 +00:00
2021-06-02 17:03:14 +01:00
2021-06-08 10:43:33 -04:00
2021-06-02 17:03:14 +01:00
2020-11-19 11:00:23 +00:00
2021-07-20 19:14:23 +01:00
2021-06-08 11:02:43 -04:00
2021-06-08 11:07:32 -04:00
2020-12-01 14:36:30 +00:00
2024-01-24 08:04:33 +00:00
2018-09-04 16:49:45 +01:00
2018-05-15 17:14:29 +01:00
2018-06-13 23:40:24 +01:00
2018-11-15 22:02:11 +01:00

Codecs

This folder contains a self-contained sub-project for each encoder and decoder that squoosh supplies.

Build

Each subproject can be built using Docker the following commands:

$ npm install
$ npm run build

This will build two files: <codec name>_<enc or dec>.js and <codec name>_<enc or dec>.wasm. It will most likely be necessary to set Module["locateFile"] to successfully load the .wasm file. When the .js file is loaded, a global <codec name>_<enc or dec> is created with the same API as an Emscripten Module.

Each codec will document its API in its README.