#[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 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more