Pixel types guide · ← Live plane and native-code examples

What the updated explorer exposes

Reviewed 10 November 2026 against merged source. These are implementation and design observations, not a release-completion claim.

The native view duplicates more than its explanation suggested

PlaneRole::CbCr and CrCb already exist. CodePlane::component reads interleaved components with individually supplied encodings. The RGB10 + alpha1 witness uses this existing component reader.

The speculative NativeCodeSlice adapter and its dependent conversion APIs have been removed at the owner’s direction. No production caller justified them. The explorer now shows the existing component-view path, without a replacement public adapter.

Signed/wide SampleEncoding descriptions, native pixel identity carriage and exact ST2086 metadata remain. Signed/wide component reading and unaligned access are not implied by those capabilities; extensions need concrete consumers.

HLG presentation was stale

The converter now supports explicit display rendering. The live panel accepts display peak, black, effective gamma and SDR white; missing conditions still refuse. The JavaScript swatch uses only the HLG OETF, so it is no longer presented as a byte oracle for display rendering. ICC synthesis remains unavailable.

Completed contracts and remaining work

The build stamp on the explorer identifies the compiled source. Statuses below are a dated review; issue links show current tracking. Downstream qualification remains separate.

IssueRemaining review boundary
83 — Native samplesClosed: generic native storage, code descriptions and exact metadata satisfy the core scope. IMIJ adapter integration remains consumer work.
69 — Identity allocationsBorrowed OutputPlan identity rows are allocation-free in packed/padded controls; owned finalization intentionally copies. Typed U8/U16/F32 extraction reuse is qualified.
132 — HLGClosed: explicit rendering conditions and both backend refusals are qualified. Consumer work and HLG ICC synthesis remain separate.
133 — API documentationClosed: API/documentation task completed. This guide and the copied explorer snippets now have executable Rust checks.
134 — ICC/CICP authorityClosed: both output boundaries enforce authority. Grayscale reduction preserves unusable ICCs; companion CICP cannot repair them. Synthesis preconditions are explicit.
135 — P3 exportsCurrent default/no-db bytes pass fresh native and independent color controls. Old release refs remain gated pending reconciliation.
136 — Gain-map transcodesConsumer reconstruction and end-to-end HDR pixels, not merely metadata carriage.
137 — JXL luminanceConsumer qualification of content peak, intensity_target and diffuse white.
138 — AVIF matrix resolutionConsumer migration to shared resolution, with a decoded fixture witness.
139 — Authoritative CICP refusalUnsupported authoritative signaling must not fall through to contradictory ICC.
140 — Coded matrix/rangeConsumer range/matrix and metadata preservation; extracting raw codes does not establish this.
141 — PNG/EXIF provenanceReader fixtures and provenance qualification remain open.
142 — Apple gain mapsIndependent reconstruction measurements and explicit acceptance remain open.
143 — Downstream compilationCompile actual consumers against one candidate revision, including newly changed descriptor errors and worker cloning.
154 — Current precision requirementsRemaining consumer integration: select encoder precision from current evidence and explicit requirements. Original depth alone is not preservation evidence. Historical approximate ICC qualification remains lower priority.

Full source-backed review · Repository improvements and qualification