1
0
Fork 0
Easy, sophisticated image format for a wide range of applications.
Find a file
Sky Johnson d367c4be6a Add DCT quality mapping and fix decoder luma_ch mismatch
Two changes:

1. Quality mapping for DCT path: base_q = (100 - quality) / 4, giving
   a wider dynamic range for step sizes. quality 75 → step=7,
   quality 50 → step=13, quality 25 → step=19. Near-lossless path for
   bpc > 1 images is unchanged.

2. Fix luma_ch parameter mismatch: encoder used luma_ch=0 (channel 0
   is luma, channels 1-2 get chroma scaling 1.5×) but decoder defaulted
   to luma_ch=0xFF (all channels treated as chroma). This caused
   dequantization step mismatches on channel 0, producing 8+ dB PSNR
   degradation at higher step sizes.

Kodak benchmark at q=75: 11.9% avg file size (was 16.9% with
near-lossless), PSNR 27.7-34.8 dB across 24 images.
2026-03-29 19:15:28 -05:00
cmd/iris_cli Fix Golomb-Rice escape path bug: missing stop bit consumption 2026-03-29 15:41:44 -05:00
kodak Add pre-converted PPM files for Kodak benchmark set 2026-03-27 18:02:08 -05:00
pkg Add DCT quality mapping and fix decoder luma_ch mismatch 2026-03-29 19:15:28 -05:00
.editorconfig Initial project scaffold for Iris image format 2026-03-26 17:52:57 -05:00
.gitattributes Initial project scaffold for Iris image format 2026-03-26 17:52:57 -05:00
.gitignore Initial project scaffold for Iris image format 2026-03-26 17:52:57 -05:00
CLAUDE.md Initial project scaffold for Iris image format 2026-03-26 17:52:57 -05:00
iris.odin Lossy profile 0x02 with perceptual quantization and multi-scan progressive decode 2026-03-27 15:46:40 -05:00
spec.md Integer DCT with signed arithmetic and per-coefficient quantization 2026-03-29 09:51:29 -05:00