basic-paramTF: Basic Parameterized TransferFunctions

Description Usage Arguments Details Value References See Also


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 )



the value of γ; 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.


power.OETF() returns a TransferFunction with the classical 1/γ power law. power.EOTF() returns a TransferFunction with the classical γ 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 \rarrow y_0 and 1 \rarrow 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.


BT.1886. Reference electro-optical transfer function for flat panel displays used in HDTV studio production. March 2011.

See Also


spacesRGB documentation built on Dec. 11, 2021, 9:58 a.m.