Correct what D20 claimed the profile tables would do for colour
Measured after building them, on four of the library's 6D DNGs: Adobe Standard's tables lower mean saturation by 3-9 % at defaults, and the look at 200 % lowers it further. The 6D's look table scales saturation by 0.925 in its darkest value rows; it was tuned to sit under Camera Raw's default RGB tone curve, which DarkRoom does not apply, and the dark-tone desaturation is what is left without it. On _MG_9080 the Lightroom preview measures 0.49, the matrix alone 0.38, the profile 0.35. So the spec's "that gap is most of why the same file looks flatter" was wrong: the gap is tone. The tables stay — they put each hue where Adobe put it — and the spec, D20 and the Vivid file now say so. "Stronger camera look" is removed: a stronger Adobe Standard look is a less saturated picture, the opposite of its name. The Vivid presets, measured at 0.40-0.46 on the same frame, are what answers "more colourful" today.
This commit is contained in:
@@ -14,13 +14,25 @@ DarkRoom already applies, plus two lookup tables indexed by hue, saturation and
|
||||
- **`ProfileHueSatMap`** — a calibration. It corrects what a 3×3 cannot: a sensor whose reds and
|
||||
oranges sit in the wrong place relative to its blues, which no linear map fixes. Two copies, one
|
||||
per calibration illuminant, interpolated like the matrices.
|
||||
- **`ProfileLookTable`** — a rendering intent. The "Adobe Standard" look: richer blues and greens,
|
||||
warmer yellows, skin held where it is. The difference between Adobe Standard, Adobe Color and
|
||||
Adobe Vivid is mostly this table.
|
||||
- **`ProfileLookTable`** — a rendering intent: hue shifts of up to ±18° by hue, and saturation
|
||||
and value scales that vary with brightness. The difference between Adobe Standard, Adobe Color
|
||||
and Adobe Vivid is largely this table, together with each profile's tone curve.
|
||||
|
||||
Without them a raw renders through the matrix alone, which is accurate on a ColorChecker and reads
|
||||
as flat next to Lightroom. The first complaint FR-DEV-3e's rationale names is exactly this, and
|
||||
the per-body base curves D19 retired were the cheaper stand-in for it.
|
||||
Without them a raw renders through the matrix alone, which is accurate on a ColorChecker and is
|
||||
not what Lightroom showed for the same file.
|
||||
|
||||
**What the tables do *not* do is make a photograph more saturated.** Measured after the build
|
||||
(2026-10-02), on four of the library's 6D DNGs rendered at defaults: Adobe Standard's tables
|
||||
*lower* mean saturation by 3–9 %, and the look at 200 % lowers it further. The 6D's look table
|
||||
scales saturation by 0.925 in its darkest value rows and by 1.0 from about a fifth of full scale
|
||||
up, and its HueSatMap adds about 1 %. Adobe Standard was tuned to sit under Camera Raw's default
|
||||
RGB tone curve, which raises saturation in the shadows and midtones, and the look's dark-tone
|
||||
desaturation offsets it. Without that curve (§6) the offset is all that is left. On `_MG_9080`, Lightroom 6's own preview
|
||||
measures 0.49 mean HSV saturation; the matrix alone renders 0.38, Adobe Standard's tables 0.35.
|
||||
That preview also carries whatever was edited in Lightroom, so it is not a clean reference — but
|
||||
the direction is unambiguous: **the gap to Lightroom's colour is mostly tone, not the profile's
|
||||
tables.** The tables still matter for hue: they are what puts each body's reds, skin and foliage
|
||||
where Adobe put them.
|
||||
|
||||
**What the library holds** (catalog of 2026-10-02): 17,286 of its raws are Canon EOS 6D. The
|
||||
9,348 DNGs were written by Lightroom 6.14 and every one sampled embeds *Adobe Standard* with both
|
||||
@@ -212,7 +224,8 @@ action sits on that line.
|
||||
|
||||
## 9. Vivid presets
|
||||
|
||||
Independent of the tables, and shipped in the same change: a *Vivid* section of read-only presets
|
||||
Independent of the tables, and — given §1's measurement — the part of this change that actually
|
||||
answers "more colourful". Shipped in the same change: a *Vivid* section of read-only presets
|
||||
(`presets/vivid.drpl`) for the "more colourful than the default" request. They use only operations
|
||||
every photograph has — vibrance, saturation, the colour mixer, colour grading, contrast — so they
|
||||
work on JPEGs and on bodies with no profile, and change only what they name (FR-DEV-6):
|
||||
@@ -223,6 +236,11 @@ work on JPEGs and on bodies with no profile, and change only what they name (FR-
|
||||
- **Vivid warm** — oranges and yellows up, a warm highlight cast: golden hour.
|
||||
- **Vivid portrait** — vibrance (which protects skin) with the orange and red bands held back.
|
||||
|
||||
Measured on `_MG_9080` (mean HSV saturation; Lightroom's preview 0.49, DarkRoom's default 0.35):
|
||||
Vivid 0.40, Vivid strong 0.44, Vivid landscape 0.46, Vivid warm 0.38, Vivid portrait 0.37 — the
|
||||
last two move particular bands, not the whole frame. Rendered with `cargo run --release -p dr-gpu
|
||||
--example develop -- FILE.dng out.ppm "preset:Vivid"`.
|
||||
|
||||
They are bounded by the existing `bundled.rs` tests: every key names a real parameter, every value
|
||||
is inside its control's range, and every preset changes something.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user