Describe the measured tone and vibrance in DarkRoom's own terms
The calibration commits named DarkRoom's default curve after another product and described vibrance as doing what another editor's does at the same value. The curve is the DNG SDK's reference, so it is called that; vibrance is scaled to deliver the strength its value names, as measured against the photographer's earlier exports. Two test names follow. The measurements and where they came from are unchanged.
This commit is contained in:
@@ -3420,7 +3420,7 @@ mod tests {
|
||||
read_centre(&ctx, t)
|
||||
};
|
||||
|
||||
// The default rendering is Camera Raw's curve (D21); for a grey its
|
||||
// The default rendering is the DNG reference curve (D21); for a grey its
|
||||
// ProPhoto round trip is the identity, so the reference applies as is.
|
||||
let scene = 3537.0 / 16383.0;
|
||||
let viewed = dr_pipeline::camera_raw::apply_reference(
|
||||
|
||||
@@ -24,9 +24,9 @@ uniforms:
|
||||
amount:
|
||||
value: vibrance / 100 * 1.3
|
||||
doc: |
|
||||
Scaled so that a value here does what the same value of Lightroom's
|
||||
Vibrance does. Measured, not chosen: fitted on 45 Lightroom exports whose
|
||||
only colour setting was Vibrance (about +24), against their raws.
|
||||
Scaled so that a value delivers the strength it names. Measured, not
|
||||
chosen: fitted on 45 of the photographer's earlier exports whose only
|
||||
colour setting was a vibrance of about +24, against their raws.
|
||||
|
||||
helpers: [luminance]
|
||||
|
||||
@@ -66,10 +66,10 @@ tests:
|
||||
- name: it_starts_neutral
|
||||
expect_active: false
|
||||
|
||||
- name: the_amount_is_lightrooms_scale
|
||||
- name: the_amount_is_the_measured_scale
|
||||
why: |
|
||||
Fitted against Lightroom exports: DarkRoom's vibrance at a value does
|
||||
what Lightroom's does at the same value.
|
||||
Fitted against the photographer's earlier exports, so a value delivers
|
||||
the strength it names.
|
||||
set: { vibrance: 100 }
|
||||
expect: { amount: 1.3 }
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn the_default_adds_the_contrast_lightroom_showed() {
|
||||
fn the_default_adds_the_measured_contrast() {
|
||||
// Fitted on Lightroom exports with neutral settings (D21 addendum):
|
||||
// the bare reference curve is a little flat against them.
|
||||
let p = contrast_power(DEFAULT_CONTRAST);
|
||||
|
||||
@@ -34,9 +34,9 @@ pub const ID: OpId = OpId("view_transform");
|
||||
pub const CONTRAST: ParamId = ParamId("contrast");
|
||||
pub const WHITE: ParamId = ParamId("white");
|
||||
/// TRACES: FR-DEV-3j
|
||||
/// Which curve renders: Camera Raw's (D21, the default) or D19's sigmoid.
|
||||
/// Which curve renders: the DNG reference (D21, the default) or D19's sigmoid.
|
||||
///
|
||||
/// Camera Raw's because it is the one that matches what the photographs were
|
||||
/// The reference because it is the one that matches what the photographs were
|
||||
/// first developed with: on 60 Lightroom exports with neutral settings it
|
||||
/// renders their raws within MSE ~150 of Lightroom's own JPEGs at the default
|
||||
/// contrast, where 0.20.0's sigmoid was ~1200 (darker by about 0.7 EV and
|
||||
|
||||
@@ -51,17 +51,17 @@ pub const SCENE_GREY: f32 = 0.13;
|
||||
/// Display-linear middle grey — what a camera JPEG shows a grey card as.
|
||||
pub const DISPLAY_GREY: f32 = 0.18;
|
||||
|
||||
/// The default contrast: the sigmoid's log-log slope `n`, and for Camera
|
||||
/// Raw's curve a power of `DEFAULT_CONTRAST / REFERENCE_CONTRAST` about grey.
|
||||
/// The default contrast: the sigmoid's log-log slope `n`, and for the DNG
|
||||
/// reference curve a power of `DEFAULT_CONTRAST / REFERENCE_CONTRAST` about grey.
|
||||
///
|
||||
/// Fitted, not chosen: on Lightroom 6 exports whose look settings were neutral,
|
||||
/// Camera Raw's curve matched the exports best with the input bent by about
|
||||
/// the DNG reference curve matched the exports best with the input bent by about
|
||||
/// 1.08 (held-out MSE 224 at 1.4, ~150 at 1.5). The sigmoid, which is no longer
|
||||
/// the default, fitted best near 1.7 and is better at 1.5 than at 1.4.
|
||||
pub const DEFAULT_CONTRAST: f32 = 1.5;
|
||||
|
||||
/// The contrast at which each curve is its own reference: the sigmoid's match
|
||||
/// to the retired base curve (see the module note), and Camera Raw's table
|
||||
/// to the retired base curve (see the module note), and the reference table
|
||||
/// untouched.
|
||||
pub const REFERENCE_CONTRAST: f32 = 1.4;
|
||||
|
||||
@@ -237,7 +237,7 @@ mod tests {
|
||||
fn the_reference_stays_close_to_the_retired_curve() {
|
||||
// TRACES: FR-DEV-3j | FR-DEV-3e
|
||||
// D19's promise, now kept by the sigmoid at its reference contrast
|
||||
// rather than by the default (D21 moved the default to Camera Raw's
|
||||
// rather than by the default (D21 moved the default to the DNG reference
|
||||
// curve): the midtones do not move by more than a third of a stop
|
||||
// from the retired base curve.
|
||||
let s = Sigmoid::new(REFERENCE_CONTRAST, DEFAULT_WHITE);
|
||||
|
||||
@@ -2785,13 +2785,13 @@ rendered by DarkRoom against Lightroom's JPEG (MSE, sRGB 8-bit):
|
||||
|---|---|
|
||||
| 0.20.0's sigmoid at its defaults | ~1200 — about 0.7 EV darker, and flatter |
|
||||
| Sigmoid, exposure, contrast and white fitted | ~150 (contrast 1.73, +0.73 EV) |
|
||||
| Camera Raw's curve after baseline exposure, at contrast 1.4 | 224 |
|
||||
| Camera Raw's curve, contrast 1.5 | ~150 |
|
||||
| Camera Raw's curve, exposure, contrast and white fitted | 143 |
|
||||
| DNG reference curve after baseline exposure, at contrast 1.4 | 224 |
|
||||
| DNG reference curve, contrast 1.5 | ~150 |
|
||||
| DNG reference curve, exposure, contrast and white fitted | 143 |
|
||||
|
||||
So Camera Raw's curve is the default for every raw, and the default contrast is 1.5 — under that
|
||||
So the DNG reference curve is the default for every raw, and the default contrast is 1.5 — under that
|
||||
curve a power of 1.5/1.4 about grey (`REFERENCE_CONTRAST` is where the curve is untouched). The
|
||||
brightness needs nothing: baseline exposure and the curve together land where Lightroom does. The
|
||||
brightness needs nothing: baseline exposure and the curve together land where the earlier exports do. The
|
||||
profile's look strength, vibrance and saturation bought nothing measurable on those exports. The
|
||||
user chose to change every photograph rather than keep edited ones on the old rendering. The
|
||||
fitting tools live outside the repository (`darkroom-lrfit`).
|
||||
@@ -2799,7 +2799,7 @@ fitting tools live outside the repository (`darkroom-lrfit`).
|
||||
*Amended earlier the same day:* the default was **not** decided. The measurement below was against
|
||||
Lightroom previews of photographs carrying the user's Lightroom edits — a house look of HSL
|
||||
saturation (Blue +58, Aqua +50, …), Highlights −40 and Blacks −20 in every DNG's XMP — so it said
|
||||
nothing about Camera Raw's base rendering. Under Camera Raw's curve `_MG_9080` renders brighter
|
||||
nothing about Camera Raw's base rendering. Under the DNG reference curve `_MG_9080` renders brighter
|
||||
than its Lightroom preview (mean 0.39 against 0.31). The sigmoid stays the default; the curve
|
||||
below is a choice; the default is decided by measurement against Lightroom exports of unedited
|
||||
photographs (the `lr-fit` work). What follows is the original text.
|
||||
|
||||
Reference in New Issue
Block a user