HLG OETF 的设计思路

$$ E'=\left\{ \begin{array}{ll} r\sqrt{E}, &E \leq 1 \\ a\ln(E-b)+c &E>1 \\ \end{array} \right. $$

r 等于 0.5,三个常数 abc 的确定方法是,这个分段函数连续,导数相同,E 等于 12 的时候 E’ 等于 1。

也就是说,这样设计的 OETF 能承受 12 倍的参考白亮度。

OOTF

OOTF 中的两个光分别代表场景和屏幕,很多时候,OETF 和 EOTF 并不是互逆的关系,而是共同组成一个非线性关系来匹配不同的观察环境,比如一个负片的 gamma 可能是 0.6,打印时使用的 gamma 高达 3.0,共同组成一个高达 1.8 的“系统 Gamma”。SDR 电视可能有 1.2 左右的系统 Gamma,但对于 HDR 这样亮度分布广泛的显示,系统 gamma 需要分别调整。

$$ \gamma=1+\frac{1}{5}\log_{10}\left( \frac{Y_{\text{peak}}}{Y_{\text{surround}}} \right) $$

EOTF

严格来说,HLG 没有 EOTF 这种东西,而是使用 OETF 的逆函数与 OOTF 的组合,先把码值变换回场景线性光,然后直接应用一个 OOTF 得到显示线性光,因此,HLG 是完全场景参考的。

$$ Y_{d}=\alpha Y_{s}^\gamma + \beta $$

其中,$Y_{s}$ 是场景线性光,由 RGB 和对应基元的转换矩阵计算得到(归一化的时候需使用 12,将场景线性光范围控制在 0-1),$\alpha$ 和 $\beta$ 作用与 Rec.1886 一样,控制了相对亮度和对比度,由屏幕的白点和黑位计算得到。

$$ \begin{align} &\alpha=L_{P}-L_{B} \\ &\beta=L_{B} \end{align} $$

与 SDR 的兼容性

由于前半段传递函数使用的是类似 gamma(约等于0.5)的形状,直接使用 Rec.1886 解码也可以获得一个相对线性的 OOTF。

因此,把 HDR 部分丢弃,然后剩余部分看作 SDR 内容,即实现了与 SDR 的兼容。