mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-24 10:09:01 -06:00
Compression 52546 tiles and strips decode through jxl-oxide (new default-on `jxl` feature of lightcraft-raw): bare codestreams and ISO-BMFF containers, 1 or 3 planes, 8-16-bit integers scaled back exactly from the codestream's own bit depth, 16-bit floats. Edge tiles may be coded at their nominal or in-image size. Headers are checked against the IFD in header-only probing too. A single-chunk JPEG XL preview IFD (RGB or grey) is offered as the embedded preview. The decoder's memory is bounded by the tile: 16 bytes per sample (three times that for a lossy grey tile, which the decoder expands to three channels) plus 64 KiB; jxl-oxide 0.12 was measured at <= 10.3 bytes per sample for lossless and <= 13.5 per colour sample for lossy tiles. A codestream needing more (e.g. extra channels) is an error. Lossless tiles are checked bit-exact on synthetic CFA and LinearRaw files (zune-jpegxl as a test-only encoder); lossy tiles are unverified on a real file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>