Decoder profile verd-pillow/1stable
§6 What corpus release 1 does not pin
Stated plainly, because a reference corpus that quietly omits a code path is worse than one that names its gaps.
| Not covered | Why, and where it should land |
|---|---|
| Non-sRGB ICC sources (Adobe RGB, Display P3, CMYK, Lab) | The single ICC entry is sRGB-tagged, where the transform measures as exact identity — so §3.4's intent and BPC flag are declared by this profile but not exercised by any digest in release 1. This is the highest-value addition for release 2. None ships here because no non-sRGB profile can be synthesised from the pinned toolchain alone (ImageCms.createProfile offers sRGB, LAB and XYZ, and an lcms LAB profile will not build a transform under §3.4's settings), and shipping a third-party binary profile raises a licensing question this release does not settle |
| The fail-closed rule (§3.4, E8) | An unusable profile produces no Canonical Buffer and therefore no digest; manifest.json's shape has no row for "must raise". Covered instead by tests/test_cpnp_determinism.py::test_broken_icc_profile_fails_closed |
| A sub-rectangle frame 0 with no declared transparency index (§3.2) | A known divergence, not merely uncovered. This toolchain renders the uncovered region of the logical screen as palette index 0; E7 requires the canvas to be transparent and therefore opaque white. Reproduced against services/verd/src/verd/cpnp.py at the time of this release. Publishing a digest for it would publish a normative violation, so release 1 does not. Needs a ruling before release 2 |
| Sources deeper than 8 bits (16-bit PNG/TIFF, float TIFF) | §3.6's quantisation is unexercised. Pillow's I;16 → RGB conversion clips rather than scales, so an entry here would pin behaviour that deserves an errata item first |
| HDR gain maps (§3.8), AVIF, HEIC | AVIF decodes in this build (libavif 1.4.2) and HEIC needs a plugin that is not installed. Neither is in ingest.py's directory-walk allowlist today |
| Progressive, arithmetic-coded, and CMYK/APP14 JPEG | All three are real-world inputs whose decode differs meaningfully between libraries; all three belong in release 2 |
| Animated WebP and APNG | §3.2's frame-0 rule is exercised for GIF only |
| Very large images | Out of scope for a decode profile; §7's size limits are RELEASE.md row 15's separate measured-corpus deliverable |
