Pearla · Color Science
Pearl-Log
Pearla's native scene-referred logarithmic encoding.
1 Overview
Pearl-Log is Pearla's native log encoding for recording, delivery, and interchange. It maps scene-linear light to a compact code-value range with a logarithmic curve and a short linear toe, giving wide dynamic range with smooth, progressive highlight compression. Pearl-Log is paired with the Pearla Wide Gamut primaries (Section 4). The constants below are fixed, a stability contract: files encoded as Pearl-Log must decode identically across versions.
2 Curve characteristics
The Pearl-Log curve places 18% mid-gray at code value 0.420 and scene black at 0.112. Highlights reach maximum code (1.0) at approximately +9.7 stops above mid-gray; this figure is highlight headroom, not the total dynamic range. The logarithmic segment spans roughly 15 stops of exposure (about -5 stops below to +9.7 above mid-gray), and a short linear toe carries deeper shadow and slightly negative values, together enough to encode the full exposure range of current cinema sensors with margin. The horizontal axis is scene exposure in stops relative to mid-gray; the vertical axis is the normalized Pearl-Log code value.
Reference code values
| Scene reflection | Code (normalized) | 10-bit | 12-bit |
|---|---|---|---|
| 0% | 0.1119 | 114 | 458 |
| 18% | 0.4200 | 430 | 1720 |
| 90% | 0.5574 | 570 | 2282 |
Full-range integer codes: IN = round(V·(2N-1)); 10-bit ×1023, 12-bit ×4095.
3 Pearl-Log formula
3.1 Scene-linear to Pearl-Log
With scene-linear reflection as L and Pearl-Log code as V:
V = 9.56718·L + 0.11189 (L < 0.005) V = 0.19874·log10(9.2·L + 0.037) + 0.37454 (L ≥ 0.005)
3.2 Pearl-Log to scene-linear
L = (V - 0.11189) / 9.56718 (V < 0.159726) L = (10^((V - 0.37454) / 0.19874) - 0.037) / 9.2 (V ≥ 0.159726)
3.3 Integer code to scene-linear
From an N-bit integer code IN, normalize then apply Section
3.2: V = IN / 1023 (10-bit) or V = IN / 4095
(12-bit).
4 Colorimetry (gamut)
Pearl-Log encodes scene-linear values expressed in the Pearla Wide Gamut primaries (D65). For the full gamut definition, the RGB-to-XYZ matrices, and conversions to other color spaces, see the Pearla Wide Gamut specification.
| Primary | x | y |
|---|---|---|
| Red | 0.7425 | 0.2689 |
| Green | -0.0521 | 1.0337 |
| Blue | 0.0785 | -0.0398 |
| White (D65) | 0.3127 | 0.3290 |
Pearla Wide Gamut RGB → CIE XYZ (D65)
+0.897734 -0.036290 +0.089012 +0.325119 +0.720011 -0.045130 -0.013783 +0.012816 +1.090025
5 Implementation notes
Pearl-Log is a full-range encoding carried at 10-bit or 12-bit precision;
the integer code at N-bit depth is
IN = round(V·(2N-1)). The transfer constants in
Section 3 are a stability contract and must not be altered; they define the
on-disk meaning of every Pearl-Log file. A short linear toe below
L = 0.005 keeps the curve well-behaved through scene black and
slightly negative values.
Reference exposure. Code values across the exposure range (stops relative to 18% mid-gray).
| Stops vs gray | Relative L | Code (norm.) | 10-bit |
|---|---|---|---|
| -7 | 0.0014 | 0.1253 | 128 |
| -6 | 0.0028 | 0.1388 | 142 |
| -5 | 0.0056 | 0.1655 | 169 |
| -4 | 0.0112 | 0.2051 | 210 |
| -3 | 0.0225 | 0.2528 | 259 |
| -2 | 0.0450 | 0.3058 | 313 |
| -1 | 0.0900 | 0.3620 | 370 |
| +0 | 0.1800 | 0.4200 | 430 |
| +1 | 0.3600 | 0.4789 | 490 |
| +2 | 0.7200 | 0.5382 | 551 |
| +3 | 1.4400 | 0.5978 | 612 |
| +4 | 2.8800 | 0.6575 | 673 |
| +5 | 5.7600 | 0.7173 | 734 |
| +6 | 11.5200 | 0.7771 | 795 |
| +7 | 23.0400 | 0.8369 | 856 |
| +8 | 46.0800 | 0.8967 | 917 |
| +9 | 92.1600 | 0.9565 | 979 |
Pearl-Log, technical specification. Transfer constants are a stability contract; all values verified numerically; encode and decode are exact algebraic inverses within each segment. © Pearla.