Repository navigation
Add Kodak paper profiles fitted to datasheets - #1365
Merged
Merged
Conversation
Add five paper profiles fitted to Kodak datasheet curves read from the PDFs' vector paths: - B&W: Polymax II RC (G-26, 7 grades), Polycontrast IV RC (G-4037, 4 grades) - RA4: Portra Endura, Supra Endura (E-4021), Ultra Endura (E-4020) scripts/fit_paper_profile.py now fits through the app's own print_curve at the slope the Grade gives each curve's measured ISO R. The old free slope traded against knee sharpness and converged on soft knees under a steep line. Fit RMS: 0.022-0.043 D. Paper midtone gamma is bounded to +-0.25 (new test), since Snap and its per-layer trims add to it below the kernel's |gamma| < 1 bound. The new RA4 papers share the existing Endura dye matrix. Matrices integrated from the datasheet dye-density curves kept 42-75% of chroma (vs 76-89%): they hold unwanted absorptions but not the interimage effects that offset them, and the E-4021 curves carry a baseline offset. Existing profiles are unchanged.
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.
Summary
Five new paper profiles, fitted to Kodak datasheet characteristic curves. The curves were read exactly from the PDFs' vector paths, not by eye.
Existing profiles are byte-identical. The Endura dye matrix moved into a shared constant with the same values.
Fit method
scripts/fit_paper_profile.pyis rewritten. It renders through the app's ownprint_curve(default sliders, paper white on, no BPC). It does not use a copy of the curve math.The slope is not free.
grade_to_slopesets k = 2.9 / (R/100) density per log E, independent of the negative, so each curve's slope comes from its measured ISO R. With a free slope (the old script), the fit converged on soft knees (sharpness ≈ 1) under a steep line. That shape renders flat at the user's grade.d_minis the measured base. One shape is shared across a B&W grade family. For RA4, the shape is fitted on the mean curve, then each channel gets a slope gain (channel_gamma) and a base tint.Constraints found
paper_midtone_gamma, and the kernel needs |γ| < 1. Unbounded fits wanted 0.5–0.63, so the fit bounds it at ±0.25. A new test holds every profile to that.d_max.Not included
THUMBNAIL_RENDER_VERSIONbump.Test plan
make all: 8750 passedmain