传递函数


传递函数是啥

传递函数(or gamma)有助于更好的编码bits,从而提高性能。有两个传递函数

  • OETF:光电传递函数,通常在相机内讲线性场景光转化为视频信号。(encode)
  • EOTF:电光传递函数,将视频信号转化成显示器的线性光输出。(decode)

传递函数在哪个位置

基于ACEScg workflow

ODT,即OETF和EOTF(引自PZZZB对 HDR in Call of Duty 的总结

其实我个人更倾向于EOTF在ODT之中,而OETF在IDT之中。因为只有在IDT中才需要光电转化

当然,这里ODT并不适只有EOTF,而是还有很多设置诸如:白点、颜色空间属性等

颜色空间属性就是 图像状态和观察状态

例如:sRGB就是PC端常用的,为明亮的办公环境准备

Rec.709就是TV常用的,为昏暗的家庭影院准备

这也是为什么上图有sRGB和Rec.709两条曲线的原因,不同设备用的是不同的传递函数

2.2怎么来的

其实看上面曲线也可以看出来,不一定是2.2,当年老式的CRT显示器内置Gamma为2.35左右。

所以ACES的其中一个牛逼之处就在于上面说的 颜色空间属性即根据不同设备和环境进行调整。

甚至某自研直接用的2也不是不行。

那么回到这个话题,为啥是2.2?是具体实验定下来的,眼睛的感受曲线非常趋近于2.2。包括摄影里的中灰色卡,为20%左右,趋近于pow(0.5,2.2)≈0.218的结果

必要性

总之一句话:灰阶有限的前提下,因为人眼对自然的非线性感知特性,我们才需要Gamma校正。

出自 SubstancePBR

人眼的主要光线感知细胞

视锥细胞在较高的光照水平下是活跃的,能够进行色觉并负责高空间的敏锐度

视杆细胞对于黑暗环境的感光非常敏感,但对颜色并不敏感


文章作者: Neilyodog
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Neilyodog !
评论
评论