Repository navigation
#122 Print soft-proofing and ICC export: design note - #123
Merged
Merged
Conversation
Step 1 of #122: how the colour pipeline works today (linear Rec.709 working space with negatives clipped at raw decode, display-referred sRGB output clamped to 0-1, untagged JPEG preview on Linux, sRGB-tagged exports), where a printer/paper proof transform fits (on the final sRGB-encoded output, before the clipping overlay, dither and quantisation), and how LittleCMS's tificc checks the results. Recommends LittleCMS through the lcms2 crate, on the CPU after readback, so no shader changes and the default render stays identical. Lists the decisions for the maintainer. measure.py reproduces the numbers: gamut overlap, intent/BPC/paper effects, baked-LUT accuracy for a GPU fallback, throughput, and tificc matching the library exactly. No code or rendering changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01698nBdQdBkjPM82dJgnawc
3 of 9 tasks
Contributor
Author
|
Verified and merged as Print phase-one design and numerical measurement script. No application processing or dependencies changed. Six implementation choices remain for Josh; no real paper, monitor, GPU timing or print-quality validation claimed.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #122: phase-one print/proofing design. The issue remains open for implementation and maintainer decisions. No app processing or dependencies change.
The note describes linear Rec.709/sRGB decode, negative-primary clipping, output gamut limits, ignored non-raw ICC profiles, Linux JPEG preview and sRGB exports. It compares CPU LittleCMS proofing with a baked LUT and leaves six implementation choices to Josh. Line references explicitly identify their checked integration snapshot; links are checked.
Local review corrects the CIEDE2000 hue-wrap calculation and measures actual float16 LUT storage instead of UNORM16. The 33³ float16 simulation gives mean ΔE00 0.043, p99 0.226 and maximum 1.103 with the tested FOGRA39 profile. Those are numerical simulation results, not GPU performance or print-quality judgments. Original cloud measurements remain labelled LittleCMS 2.14; the local recheck uses 2.19.
Integrated with landed #130/#105/#132 main, preserving fixed rawler a98bd053. Hosted checks must pass on this integrated head before merge.
Source
How it was made
Who answers review: Yojen with Codex; maintainers decide.
Testing
tificcin 16-bit codes.baseline-int7on the same Intel xe / Mesa 26.2.2 / Linux 7.2.5 environment. No baseline/tolerance change. Engine SHA-25650f1d91eefb0bdf7fdcfcecb4297a4759d1b581b121b87a45af999f67f56462c.No real paper/monitor profiling, GPU execution/timing or implementation quality claim. The output-space, library, preview path, display assumptions, first-version scope and fixture choices remain proposals. Hosted checks must pass for this exact head before merging the note.
Fresh integration logs and recovered historical session evidence retained in
/home/josh/code/rapidraw-project/baseline/results/sora-final-stack/123/; temporary corpus TIFFs removed. No printer profiles added to the app.