You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ebb0742
Browse filesBrowse the repository at this point in the historyBrowse files
encodeJXL({ quality }) encodes lossy JPEG XLs, quality mapping to the
Butteraugli distance like cjxl -q; without it images stay lossless. The
encoder follows libjxl's effort 3: XYB, 8x8 DCTs, the constant
quantization field of the distance with libjxl's global scale, LF
quantizer and dead zones, default matrices, block contexts and chroma
from luma, EPF iterations by distance. LF coefficients use the weighted
predictor with libjxl's fixed tree per channel, HF metadata the left
predictor, alpha (lossless) the gradient, in the global stream or the
pass groups.
The new entropy encoder (entropy-enc.ts) clusters contexts, writes the
context map and codes tokens with ANS (libjxl's count normalization and
histogram format; the alias table comes from the decoder's) or prefix
codes. Bit writer and image header moved out of fast-lossless.ts, the
lossless output is unchanged.
1920x1080 photo at d1: 240.8 kB at the PSNR of cjxl -e 3's 240.2 kB,
0.9 s. BD-rate vs cjxl -e 3: +0.8 to +2.9% (photos, screenshots); vs
-e 7: -1 to +10% on photos, +31-42% on screenshots. Every size, distance
and alpha case tried decodes in djxl within 1 of our decoder.
Also exports AVIFEncodeOptions, which index.ts was missing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lfv41PqHEGbU7SLg5onpG1
0 commit comments