Overview of Jpegli encoder and decoder improvements
mainJpegli provides several technical improvements over standard JPEG implementations:
Encoder Improvements
- High-precision input: Supports 16-bit unsigned and 32-bit floating point input buffers.
- Floating-point pipeline: Color space conversions, chroma subsampling, and DCT are performed in floating-point precision.
- Distance-based quality: Quality is controlled by a distance parameter (analogous to JPEG XL) which selects quantization tables based on distance and chroma subsampling mode.
- Adaptive dead-zone quantization: Adjusts quantization thresholds for zero coefficients based on image noise levels.
- XYB colorspace support: Efficiently compresses JPEGs with an ICC profile representing the XYB colorspace by using specialized quantization tables for X, Y, and B channels instead of converting to YCbCr.
Decoder Improvements
- High-precision output: Supports 16-bit unsigned and 32-bit floating point output buffers.
- Statistical dequantization: Non-zero DCT coefficients are dequantized to the expectation value of their quantization intervals (assuming a Laplacian distribution).
- Floating-point pipeline: Inverse DCT, chroma upsampling, and color space conversions are performed in floating-point precision, with integer conversion occurring only in the final output phase.