Recipes · Knowledge

Measuring film curves from datasheets — method, calibration, and its limits

Why this file exists. This bank now measures gamma from Kodak's published characteristic curves rather than quoting adjectives. That is a real upgrade, but a measurement without a stated method and a stated valid range is just a number with better clothes. This file is the method, the calibration, and, most importantly, where it stops working.

It also records a retraction: a claim published in this repo on 2026-07-26 was found to be an artefact of the estimator and has been withdrawn. See §5.


1. The method

  1. Datasheet page rendered at 300 dpi; pixels thresholded at grey < 128.
  2. Plot frame located from long runs of dark pixels; axes calibrated from tick detection, never assumed.
  3. Per pixel column, dark runs are found and filtered to 2–9 px tall. Curve strokes are ~4–6 px, axis ticks ~20 px, so this rejects ticks and most text.
  4. Only columns with exactly the expected number of clean runs are used. Where curves merge, the column is skipped rather than guessed at.
  5. Tracking advances outward from a seed column, accepting a column only if every curve is within 14 px of its previous position.
  6. Validation before any number is kept: channel ordering must hold across the traced span, and the trace is overlaid on the original chart and inspected.

2. The calibration: and it is real ground truth

Eastman Double-X 5222 is the calibration standard, because its datasheet plots five curves and prints the gamma of each: 1.05, 0.84, 0.66, 0.56, 0.50. Traced blind and compared:

Mean absolute error 0.016 · max 0.018 · correlation r = 0.9980 (n = 5)

⚠Two corrections to how this result was first written up (2026-07-27, statistical self-audit, see §6): the correlation was published here as 0.99908, which does not reproduce from the five pairs above (recomputing gives 0.9980); and r is the wrong statistic for this test anyway. It asks whether the points fall on a line, not on the identity line, and with an x-range of 0.50–1.05 a tracer with a systematic scale error would still score ~0.99. Mean absolute error is the figure that carries the claim, and it is unchanged.

3. The estimator is the dominant free parameter: and it must match the film

Gamma is "the slope of the straight-line portion", but that portion has no exact boundary, so the answer depends on how you sample it. Two estimators are used here:

Estimator Definition Suited to
Sliding window steepest linear fit over a fixed log-exposure window low-gamma films (negatives)
Density-anchored average gradient between two density levels high-gamma films (print stocks)

The window width was calibrated against Double-X's five known values, and the error is U-shaped with two directional failure modes:

Window (log E) Mean abs. error Failure
0.5 0.022 biases high — a maximum over many noisy slope estimates is upward-biased by construction
0.8 0.016 optimum
1.2 0.033 biases low — window outruns the straight section
1.5 0.061 severe; the γ=1.05 curve collapses to 0.80

⚠The critical limit: a fixed log-E window does not scale, and gamma does

A window of W log E spans W × γ in density. So:

Film γ Density spanned by a 0.8 log E window Verdict
Double-X 0.5–1.05 0.4–0.8 of a ~2.0 scale ✅ fine — this is the calibration
VISION3 negatives ~0.53 ~0.42 of a ~2.5 scale in range
2383 print ~3.5 ~2.8 of a 4.0 scale covers most of the curve — cannot avoid toe and shoulder

The calibration covers γ 0.50–1.05. A print stock at γ ≈ 3.5 is three to four times outside it, and the estimator is demonstrably unstable there.

Measured proof of the instability, on 2383:

Estimator Mean γ
Sliding window 0.10 log E 4.57
Sliding window 0.80 log E 3.94
Density-anchored D 0.5→2.5 3.46
Density-anchored D 1.0→3.0 4.11

A 32 % spread depending purely on definition. Any 2383 gamma must therefore be quoted with its estimator named.

⚠A tempting cross-check that is CIRCULAR: do not use it

It is natural to reach for the "system gamma ≈ 1.8" figure and check that negative × print lands there. That argument is invalid, and this project made the mistake before catching it.

A literature check established:

  • The ~1.8 in circulation is ARRI's print-through gamma, which is defined as negative × print (≈0.6 × 3). Checking the product against the product proves nothing.
  • The perceptual dark-surround figure is lower, not higher. R. W. G. Hunt is reported to give ≈1.5 for movies. Bartleson & Breneman's much-quoted 1.5 is a ratio between light- and dark-surround preferences, not an absolute system gamma; more recent studies report 1.21 and 1.14.
  • DCI/SMPTE's 2.6 is the DCDM encoding exponent, not an end-to-end system gamma. It is frequently miscited as one.
  • No SMPTE standard quoting 1.8–2.0 for dark surround was located.

The only genuinely independent validation this method has is the Double-X five-point calibration. Kodak prints five gammas, the tracer reproduced all five. That is ground truth and needs no help.

What Kodak itself publishes: and pointedly does not

A full read of two Kodak publications (obtained as genuine Kodak-authored PDFs; kodak.com itself returns 403 here) established a published omission, which is a stronger result than a failed search:

H-845, The Essential Reference Guide for Filmmakers (© 2007) "VISION3" appears zero times in 407,000 characters. Carries a generic worked example annotated γ = 0.55 on an unlabelled negative curve — a teaching figure, not a stock spec.
H-2, Cinematographer's Field Guide (Rev. 8-10, and this edition does cover 5219/5207/5213) Quotes gamma for B&W: Double-X "for development to gamma of 0.65", Tri-X Reversal "gamma = 1.0". For VISION3 500T it gives EI, filters and process — and only the qualitative line "The curve shape of this film is very linear." No gamma, no average gradient, no numeric contrast.

Kodak publishes gamma where the user controls development (B&W) and withholds it for ECN-2 colour negative. So no published VISION3 gamma exists to check against: which is precisely why measuring it from the curve is worth doing, and why the Double-X calibration is what licenses it.

The best citable external range comes from Eastman Kodak's own patent language (US 5,891,607 / EP 0 902 323 A1): conventional mid-scale contrast ≈0.45–0.7 for negative films and ≈2.5–3.1 for print films. (Snippet-level, patents.google.com returns 403 here, so corroboration, not a read citation.)

Measured against that range:

Measured here Kodak patent range Verdict
VISION3 negatives 0.52–0.55 0.45–0.7 comfortably inside
2383 print 3.46 (density-anchored) → 4.57 (narrow window) 2.5–3.1 above it, at every estimator

That asymmetry is itself evidence. The negatives. Measured inside the method's calibrated range. Agree with Kodak. The print stock. Measured outside it. Does not, and reads high in exactly the direction §3 predicts. It is a strong independent indication that the 2383 gamma is over-read and the true value is nearer 3.0 than 3.5, and it is the reason this bank now quotes 2383's contrast as an order of magnitude rather than a figure.

Also worth flagging, since it circulates widely: no source was found stating γ = 3.0 for 2383 specifically. The ASC is reported to say 2.6 for print stock, ARRI ~3, Kodak's patents 2.5–3.1. Use the range, not the round number.

3b. The VISION3 negatives, measured: not published in any source reachable from here

Since Kodak has never published a VISION3 gamma (§3), these are measured from Kodak's own sensitometric charts. All four sheets were verified to share an identical axis. Camera Stops, −8 to +8. Before any calibration was transferred between them. (That check mattered: the earlier Vision3 granularity digitisation failed precisely because those charts are not drawn to a common template.)

Stock B G R Mean γ Ordering validated Span traced
50D (5203) 0.574 0.587 0.502 0.554 353/353 −7.6…+7.9 stops
200T (5213) 0.540 0.568 0.484 0.531 669/669 −7.8…+7.9
250D (5207) 0.547 0.557 0.475 0.526 674/674 −7.5…+7.9
500T (5219) 0.553 0.558 0.478 0.530 696/696 −7.5…+7.9

Orange mask (density at −8 stops) is identical across all four: B 0.85 · G 0.58 · R ~0.18, as expected for a family designed to intercut and print on the same stock with the same printer setup.

Two findings, both estimator-invariant

  1. The family is built to a single contrast aim: γ ≈ 0.53. All four sit within 0.526–0.554, and every value falls inside Kodak's own patent range of 0.45–0.7 for colour negative. This is the first place these numbers exist, since Kodak publishes them nowhere.

  2. The red record runs consistently ~14 % shallower than green and blue. Tested across seven different estimators. Sliding windows from 0.4 to 1.4 log E and two density-anchored definitions, the figure stays between −13.3 % and −14.9 %, on every stock:

Estimator 250D: R vs mean(B,G) 500T: R vs mean(B,G)
window 0.4 log E −14.7 % −14.9 %
window 0.8 log E −13.9 % −14.0 %
window 1.4 log E −13.4 % −13.4 %
D +0.2→+0.8 over D-min −13.3 % −14.2 %
D +0.3→+1.2 over D-min −13.7 % −13.6 %

This is exactly the test 2383's channel claim failed, and VISION3 passes it decisively. The difference is structural: VISION3's three curves are near-parallel with similar shapes, so any estimator samples them comparably; 2383's are steep, strongly offset and short-straight, so sampling position dominates. Same tracer, same discipline, opposite outcome, which is what makes the retraction in §5 a finding rather than a failure.

⚠What is NOT claimed: no explanation is offered for why the red record is shallower. It is a robust measurement in search of a mechanism, and inventing one would be exactly the guesswork this bank exists to avoid. It is recorded as an open question.

4. What is robust, and what is not

A finding is only reportable here if it survives a change of estimator. Tested explicitly:

Finding Estimator-invariant?
Double-X five-point calibration ✅ that is the ground truth
D-min, D-max, usable scale in stops direct readings, no estimator involved
VISION3 mean γ ≈ 0.52–0.53 ✅ stable 0.517–0.535 across seven estimators
VISION3 red record ~14 % shallower than green and blue −13.3 % to −14.9 % across every estimator, on every stock
Double-X γ 0.68, short toe, ~7.6 stops straight ✅ in calibration range
2383 order-of-magnitude ("~6× a camera negative") ✅ holds for any estimator
2383 per-channel gamma ordering flips between estimators — see §5

5. ⚠Retraction: 2383's "steeper red channel"

Published 2026-07-26, withdrawn the same day.

The claim was: 2383's red channel runs ~15 % steeper than green and blue (3.76 vs 3.28); because a slope difference survives printer balance where a speed offset does not, this puts cyan in the shadows and red in the highlights, making the teal-orange split intrinsic to the stock.

Why it fails: the 3.76 / 3.28 / 3.28 figures come from the density-anchored estimator. Re-measured with the sliding-window estimator on the identical trace, the ordering changes:

Estimator B G R Which channel is steepest
Density-anchored D 0.5→2.5 3.32 3.31 3.76 R
Sliding 0.8 log E 4.03 3.71 4.08 R ≈ B, G lowest
Sliding 0.1 log E 4.75 4.32 4.65 B

The channel ordering is an artefact of where each curve is sampled, not a property of the film. 2383's three curves are steep, strongly offset horizontally, and have short straight sections, so the sampling point dominates. (VISION3's curves are near-parallel with similar shapes, which is exactly why the same test leaves its channel pattern intact.)

Status of the downstream conclusion: not established. Nothing here shows the teal-orange split is intrinsic to 2383, and nothing here shows it is not. It is simply not measurable from this chart by this method.

What survives untouched, because none of it depends on inter-channel gamma: D-max 4.09 · D-min 0.09 · usable scale ≈ 4.4 stops · γ of order 3.5, roughly 6× a camera negative. The 2383 recipe is unchanged. It was never built on the retracted claim; the claim was offered as post-hoc support for a design that already existed, which is precisely why losing it costs the recipe nothing.

The lesson, recorded so it is not re-learned: a difference between channels is only real if it survives a change of estimator. Mean values were robust; the inter-channel structure was not. Both came out of the same trace, and only one deserved to be published.


6. ⚠Statistical self-audit of this method (2026-07-27)

The method above was re-examined against its own numbers rather than defended. Four results changed; the headline measurement did not.

  1. The correlation figure was wrong, and was the wrong statistic. Published as r = 0.99908; recomputing from the five published pairs gives 0.9980. It also should not have carried weight: correlation over an x-range of 0.50–1.05 is near-guaranteed to be high, and would stay high under a systematic scale error, exactly the failure it was implied to rule out. The right check is the regression of measured on published, which gives slope 0.972 (95 % CI 0.86–1.09) and intercept +0.030 (95 % CI −0.055 to +0.114), both consistent with ideal, but with intervals so wide that n = 5 cannot exclude a ±12 % scale error. The calibration shows the tracer is unbiased, not that it is precise.

  2. "0.8 log E is optimal" is overfitted, and is now narrowed. The MAE gap between 0.8 (0.016) and its neighbours 0.7 and 1.0 (0.019) is 0.003, against a per-point error standard deviation of 0.015, about one-sixth of a single point's error, fitted from five observations. 0.7 to 1.0 are statistically indistinguishable; only ≥1.2 is demonstrably worse. The honest statement is that the method has a plateau, not an optimum. 0.8 is retained as a convention for reproducibility, not because it is best.

  3. A systematic bias is visible but not significant. Signed errors run +0.013, −0.017, +0.018, +0.018, +0.017. Four of five cluster near +0.017, so the tracer reads slightly high. Mean bias +0.0098, but t(4) = 1.45 against a critical 2.776, so not significant at n = 5. Worth stating because the sign pattern is more orderly than random error would predict.

  4. The calibration does not cover the finding that most needs it. Double-X 5222 is a black-and-white stock, measured under Status M (Blue) densitometry as a single curve family. It therefore validates the tracer's ability to measure one curve. It says nothing about its ability to compare three differently-coloured curves on one chart, which is precisely what the VISION3 red-record result (§3b) depends on. Estimator-invariance is not measurement-invariance: if the red curve is systematically harder to trace on these charts, all seven estimators inherit that bias identically and the invariance test cannot see it. A colour stock with published per-channel gammas would be the calibration this method still lacks.

The red-record mechanism: a candidate, and why it does not yet fit

Searching the patent literature for a mechanism. Which databases can actually answer this is itself a finding, so it is recorded (retested 2026-07-27 after the environment's network policy was opened):

Database Reachable Use for this question
EuropePMC ✅ 200 indexes photographic patents — 21 hits, abstracts only
bioRxiv ✅ 200 ❌ wrong domain
arXiv ✅ 200 (https only — http:// is proxy-blocked) 0 entries; does not cover emulsion science
OpenAlex ⚠️ 429 the one that could answer it — indexes SMPTE and J. Imaging Sci. Technol., where film sensitometry is published. Free daily budget exhausted ($0 remaining, resets midnight UTC); needs a funded key

What EuropePMC did establish. EP 0 572 894 (1993), "Color photographic recording material with a cyan-DIR-coupler" claims a colourless cyan-DIR coupler that "shows high interimage effects." So interimage suppression of the cyan (red) record is not incidental. It is deliberately engineered, and a coupler exists whose stated purpose is to maximise it. That raises the prior on the mechanism considerably. It still does not close the question: patent abstracts carry chemistry, not sensitometry, so no gamma figures and no channel ordering.

DIR couplers (development-inhibitor-releasing) are the standard mechanism by which one emulsion layer suppresses the gamma of its neighbours, the interimage effect, and they are used deliberately for colour correction and sharpness. One patent quantifies the effect as ≥10 % in the yellow region, ≥25 % in the magenta, ≥15 % in the cyan. The cyan figure sits temptingly close to this bank's measured ~14 % red-record shortfall.

⚠Do not take that match. The same figures predict the magenta (green) record should be suppressed more than the cyan (red), the opposite of the measured ordering, in which red is lowest. So the numbers are in the right family but point the wrong way, and a 15 %-vs-14 % coincidence across different denominators is not evidence. The mechanism remains unexplained, and interimage effects are now a documented candidate to test, not an answer. (Sources: US 4,830,954, US 5,314,792, US 4,729,943, snippet-level, not full-text reads.)

What is unchanged by all of this: the measured VISION3 mean gammas, the D-min/D-max/stop readings (no estimator involved), and the ~2 % agreement with Kodak's five published Double-X gammas. The method's headline result survives its own audit; three of the claims made about the method did not.


Method calibrated 2026-07-26 against Kodak Publication H-1-5222; statistically self-audited 2026-07-27; literature check re-run 2026-07-27 after network policy was opened.

All figures reproducible from the archived datasheets in X-T5/_reference-sources/datasheets/.

Last updated: 2026-07-27

The settings live in the packs

This page explains how the controls behave. The validated recipes that put them to work, with every value and the datasheet evidence behind it, are in the packs.