#[non_exhaustive]#[repr(u8)]pub enum TransferFunction {
Linear = 0,
Srgb = 1,
Bt709 = 2,
Pq = 3,
Gamma22 = 5,
Hlg = 4,
Unknown = 255,
}Expand description
Encoding transfer function (OETF).
Describes how scene-linear light was encoded into the pixel values. For still image codecs, this is unambiguous: “sRGB” means the IEC 61966-2-1 curve, “PQ” means SMPTE ST 2084, etc. Video pipelines that need to distinguish OETF from EOTF should use CICP codes directly.
Discriminant values are internal — use from_cicp() /
to_cicp() for CICP mapping.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Linear = 0
Linear light (gamma 1.0).
Srgb = 1
sRGB transfer curve (IEC 61966-2-1).
Bt709 = 2
BT.709 transfer curve.
Pq = 3
Perceptual Quantizer (SMPTE ST 2084, HDR10).
Gamma22 = 5
Pure power-law gamma 2.2. Used for Adobe RGB (1998).
The Adobe RGB 1998 encoding spec (§4.3.4.2) defines pure gamma
2.19921875 with no linear segment near black. About 85% of real-world
Adobe RGB ICC profiles (Adobe CS4, Windows ClayRGB1998 / AdobeRGB1998,
macOS AdobeRGB1998, Linux AdobeRGB1998/compatibleWithAdobeRGB1998,
Nikon, etc.) encode the TRC as curv count=1 (pure gamma) or
equivalent paraType funcType=0.
A minority of profiles (saucecontrol’s Compact-ICC AdobeCompat-v4,
some lcms2-generated variants) encode paraType funcType=3 with a
linear toe (slope c=1/32, break d=0.05568). Those profiles are
deliberately NOT normalized to this variant — they fall through to
full CMS so their exact encoded curve is honored. See
scripts/icc-gen/src/main.rs for the identification policy.
Hlg = 4
Hybrid Log-Gamma (CICP 18, ARIB STD-B67). BT.2100 HDR.
Unknown = 255
Transfer function is not known.
Implementations§
Source§impl TransferFunction
impl TransferFunction
Sourcepub const fn from_cicp(tc: u8) -> Option<TransferFunction>
pub const fn from_cicp(tc: u8) -> Option<TransferFunction>
Map CICP transfer_characteristics code to a TransferFunction.
Sourcepub fn reference_white_nits(&self) -> f32
pub fn reference_white_nits(&self) -> f32
Reference white luminance in nits.
- SDR (sRGB, BT.709, Linear, Unknown):
1.0(relative/scene-referred) - PQ:
203.0(ITU-R BT.2408 reference white) - HLG:
1.0(scene-referred)
Trait Implementations§
Source§impl Clone for TransferFunction
impl Clone for TransferFunction
Source§fn clone(&self) -> TransferFunction
fn clone(&self) -> TransferFunction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for TransferFunction
Source§impl Debug for TransferFunction
impl Debug for TransferFunction
Source§impl Display for TransferFunction
impl Display for TransferFunction
impl Eq for TransferFunction
Source§impl Hash for TransferFunction
impl Hash for TransferFunction
Source§impl PartialEq for TransferFunction
impl PartialEq for TransferFunction
Source§fn eq(&self, other: &TransferFunction) -> bool
fn eq(&self, other: &TransferFunction) -> bool
self and other values to be equal, and is used by ==.