为什么伽马校正应用于RGB而不是YUV或类似?

时间:2016-08-03 17:23:59

标签: graphics colors computer-vision

据我了解,伽马校正适用于将现实世界中的高亮度范围调整到显示器中相对较低的亮度范围。 如果它的目标是调整亮度,为什么它会独立应用于所有RGB通道?

在包括光度(如YUV)的大多数流行的颜色模型中,光度项本身是用RGB通道的不同系数计算的。那么为什么所有RGB颜色的伽玛系数都相同呢?为什么仅将此系数应用于光度项并保持色彩空间不变(YUV模型中的UV项)是不合逻辑的呢?

这是否与人眼中有三种类型的锥体或多或少与RGB颜色对应的事实有某种联系? 但即使锥形细胞彼此独立地适应,所有它们的光强度也应该通过镜片和瞳孔的工作来均匀调整。

2 个答案:

答案 0 :(得分:1)

Gamma校正的目的不是降低相对亮度,而是以感知统一的方式对值进行编码,这将优化代码分配,从而减少量化假象,与这些相同值的线性编码相比。

事实上,大多数光电传输功能(OETF / OECF)和电光传输功能(EOTF / EOCF),如sRGB,BT.709BT.1886都是基于功率函数的(gamma)不影响黑白水平。

显示链/系统输入和输出的不同指数的组合将导致端到端系统伽玛,其可能根据适合的结果增加或减少视觉对比度(这称为图片渲染)。例如,HDTV广播通常使用BT.709(gamma±0.5)作为源数据的编码功能(如使用HDTV摄像机拍摄),并使用BT.1886(gamma 2.4)通过电视进行解码,从而产生结束±1.2的端到端系统伽玛,适用于昏暗的观察条件。

Y'UV colourspace中,(注意我在Y上放置了素数),Y'不代表相对亮度而是 luma ,这是一个非线性分量:它已经通过OETF的平均值编码(在这种情况下是伽马编码函数)。类似地,U和V分量是非线性的,因为它们是由已经非线性的R'G'B'分量形成的。

luma 的计算确实与人类视觉系统灵敏度密切相关,您可以从使用的加权因子中看出: Y' = 0.299 * R' + 0.587 * G' + 0.114*B'

我强烈建议您查看Charles Poynton的Gamma Faq

我还建议您关注我们的The Importance of Terminology and sRGB Uncertainty slides,他们应该使用适当的术语让您走上正轨,并介绍重要的概念。

答案 1 :(得分:1)

最初,引入伽马校正来应对电视中使用的阴极射线管的非线性,因为施加的张力和发出的亮度之间没有严格的比例。

当时,工程师发现在广播站点而不是在每个接收器中引入校正更为经济。这就是为什么校正实际上是“预补偿”并且传输的图像失真。

即使现在使用的技术完全不同,但由于惯性和其他机会主义原因,仍然保持了向后兼容性。在数码相机/彩色图像处理/显示屏幕的世界中存在/不存在预补偿/伽玛执行是完全混乱。