Opto-Optical Transfer Function, parameterized {spacesRGB} | R Documentation |
Opto-Optical Transfer Function, general
Description
This parameterized OOTF maps from ACES (linear scene) RGB to linear display RGB
(both of these are optical in nature).
This transform bypasses non-linear signal display RGB (which is electrical in nature).
Usage
general.OOTF( display_pri, Ymin=0.00010, Ymid=7.2, Ymax=108,
observerWP=NULL, limiting_pri=NULL,
surround='dark', dynrange='SDR', glowmod='1.1', redmod='1.1' )
Arguments
display_pri |
a 4x2 matrix containing the display primaries, or a numeric vector of length 8
that can be converted to such a matrix, by row.
Some built-in matrices are |
Ymin |
the minimum display luminance, in |
Ymid |
the middle display luminance, in |
Ymax |
the maximum display luminance, in |
observerWP |
the xy chromaticity of the assumed observer whitepoint.
This is used to make a Chromatic Adaptation Transform (CAT) from the ACES whitepoint (approximately D60)
to the assumed observer whitepoint.
If |
limiting_pri |
a 4x2 matrix containing the limiting primaries, or a numeric vector of length 8
that can be converted to such a matrix, by row.
If |
surround |
The level of the surround luminance.
Valid values are |
dynrange |
the dynamic range of the display system.
Valid values are |
glowmod |
the version of the Glow Modifier to use.
The only version currently supported is |
redmod |
the version of the Red Modifier to use.
The only version currently supported is |
Details
The transfer is complicated; here is a summary of the steps:
glow module (see argument
glowmod
)red modifier (see argument
redmod
)matrix conversion from AP0 RGB → AP1 RGB
clamp to non-negative RGB
global desaturation (as in
RRT.TF
)single-stage tone-scale (SSTS) using
Ymin
,Ymid
, andYmax
absolute luminance to linear code-value, in cube [0,1]
^3
matrix conversion from AP1 RGB to XYZ
dim surround compensation (optional, see arguments
surround
anddynrange
)clamp XYZ to limiting primaries (optional, see argument
limiting_pri
)adapt XYZ from ACES whitepoint to observer whitepoint (optional, see argument
observerWP
)matrix conversion from XYZ to linear display RGB (see argument
display_pri
)scale and roll-white to avoid clipping (optional, only when
observerWP
is ACES whitepoint and display whitepoint is D65 or DCI whitepoint)clamp to non-negative RGB
Value
general.OOTF()
returns a TransferFunction
of dimension 3
that maps ACES RGB to linear display RGB.
The domain of the returned TransferFunction
depends on the values of
Ymin
, Ymid
, and Ymax
.
The range is [0,1]^3
, for which clamping may be used.
The metadata
contains the display primaries and whitepoint,
which is useful in installRGB()
.
Source
This function was based on source code at:
https://github.com/ampas/aces-dev;
especially the file ACESlib.OutputTransforms.ctl
.
This transform is a sub-transform of the function outputTransform()
;
it omits the final EOTF^{-1}
and optional Full-to-SMPTE range.
References
ST 2065-1:2012. SMPTE Standard - Academy Color Encoding Specification (ACES). 2013.
See Also
TransferFunction
,
installRGB()
,
metadata()
,
Standard Primaries