basic-paramTF: Basic Parameterized TransferFunctions

Description Usage Arguments Details Value References See Also

Description

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.

Usage

1
2
3
4
5
6
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 )

Arguments

gamma

the value of γ; it must be positive

Lb

the black level

Lw

the white level

primaries

a 3x2 or 4x2 matrix; see Details

white

a vector of length 1, 2, or 3; see Details

y0

the number to which 0 maps

y1

the number to which 1 maps

Details

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.

Value

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.

References

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

See Also

TransferFunction


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