Each of these functions returns a TransferFunction
object,
that depends on the argument values passed to it.
The returned object has the parameter values "locked in".
These TransferFunction
objects are a mixture of EOTFs, OETFs, OOTFs, and general-purpose transfer functions.
power.OETF( gamma )
power.EOTF( gamma )
power.OOTF( gamma )
BT.1886.EOTF( gamma=2.4, Lb=0, Lw=1 )
XYZfromRGB.TF( primaries, white )
affine.TF( y0, y1 )
power.OETF()
returns a TransferFunction
with the classical \(1/\gamma\) power law.
power.EOTF()
returns a TransferFunction
with the classical \(\gamma\) power law.
power.OOTF()
is the same as power.EOTF()
,
but having a different name may make the creation of new RGB spaces clearer.
All three of these map [0,1] to [0,1].
BT.1886.EOTF()
returns a TransferFunction
that maps [0,1] to
[Lb
,Lw
], with non-linearity given by gamma
.
The BT.1886 standard has details in Annex 1.
XYZfromRGB.TF()
returns a 3D TransferFunction
that is linear
and maps RGB=(1,1,1) to the XYZ of white.
The domain is set to the ACES cube \([-65504, 65504]^3\) and the range is set to the smallest enclosing box.
For the inverse one can use XYZfromRGB.TF()^-1
.
affine.TF()
returns a 1D TransferFunction
that maps
0
→
\(y_0\) and 1
→
\(y_1\) in an affine way. One must have \(y_0 \ne y_1\), but is is OK to have \(y_0 > y_1\). No quantities are associated with these values; the function is intended for arbitrary 1D scaling.
the value of \(\gamma\); it must be positive
the black level
the white level
a 3x2 or 4x2 matrix; see Details
a vector of length 1, 2, or 3; see Details
the number to which 0 maps
the number to which 1 maps
There are 3 valid combinations of primaries
and white
, as given in this table:
dim(primaries) | length(white) | Description |
4x2 | 1 | primaries is a 4x2 matrix with CIE xy chromaticities of R,G,B,W in the rows |
3x2 | 2 | primaries is a 3x2 matrix with CIE xy chromaticities of R,G,B in the rows |
3x2 | 3 | primaries is a 3x2 matrix with CIE xy chromaticities of R,G,B in the rows |
If length(white)
is 1, then white
is the whitepoint Y.
If length(white)
is 2, then white
is the whitepoint xy (CIE chromaticity);
the whitepoint Y is taken to be 1.
If length(white)
is 3, white
is the whitepoint XYZ (CIE tristimulus).
primaries
can also be a plain numeric vector of length 6 or 8,
which is then converted to a 3x2 or 4x2 matrix, by row.
BT.1886. Reference electro-optical transfer function for flat panel displays used in HDTV studio production. March 2011.
TransferFunction