heroboy 发表于 2024-5-1 14:52

问一个伽马校正的理论问题

我大致是知道伽马校正是什么意思的。就是有几个值:
① 人眼感知的亮度

② 光实际的亮度(光物理功率,光子的密度)

③ 电信号强度(电压)
④ RGB值(指最一般性bmp文件中的)
我知道的是:
一,①人眼的亮度和②光功率非线性关系。 光强度 = 人眼^2.2
二,早期crt中,电压和光功率非线性关系。
三,为了更好利用RGB数值的精度,RGB的数值和人眼感知的亮度是线性的。
以上有错误请指出。
我有几个问题:
基于,一和二在早期CRT中,电压和人眼感知的亮度是线性的?
再基于三,是不是RGB值和输出的电压是线性的?是不是这样的巧合使得整个设计变得简单了?
既然因为三,为什么简单了画一个黑到白渐变(从左到右0-255线性变化),人眼感觉是不均匀得?我是不是上面哪一条是理解错误的?

其实还有一些其它问题,关于我对第三点理解是否正确。
根据我的理解,伽马校正只会用在RGB数值的运算中。因为RGB直接相加等运算不符合物理规律的。

为什么在显示图片的时候需要牵涉到伽马校正?既然RGB数值保存的是人眼感知的亮度,那操作系统和硬件应该自动根据这个值选择正确的电压来输出。亦或是RGB值还是其它的含义它表示了输出的电压,或者对于人眼感知的亮度是可以任意调整的。


就这样吧。问题有点长了。其实感觉关键问题就是,RGB值到底代表了什么的问题。

chih12 发表于 2024-5-1 16:50

一:大致可以这样认为
二:是的
三:不同人眼感受存在差异,CIE 1931 当初也只是找了几十个洋人测的,任何色彩空间都无法保证适用于所有人。此外,你的显示设备和所处环境亮度也有影响。你的描述无法排除其他因素的干扰
四:rgb没有保存绝对亮度信息,这只是一种混色方法。得结合具体色彩空间讨论。
五:一般srgb下显示设备的伽马校正是在模拟模拟CRT的显示特性,提供伽马设置大概是考虑器件老化带来的影响

非专业人士,以上仅个人看法

win8 发表于 2024-5-1 21:40

首先是人眼对亮度感知并非是线性的;第二相片成像并记录为RGB的数据通常也并非线性;第三显示面板有不同原理,但是概括来讲大部分显示面板的驱动电压和显示出来的灰阶亮度等级并非是线性的。
问题的根源其实是——如何把真实场景记录到数码影像中去,同时满足体积小、信息多的要求?基于体积小的需求,历史选择了8bit空间也就是0-255的范围成为常用的存储数码影像的范围。基于信息多的需求,亮度到rgb数据的转换也并非是线性的。因此为了看到接近真实的色彩,显示器就必须做非线性的转换。
回到你的问题:
1. 一个事实是大部分crt的色彩还原并不好,追溯这个问题其实已经没有意义了
2. 不是,事实上让显示器颜色准确其实是很困难的。我举一个简单的比拟:水龙头出水速度和水龙头拧开的角度并不成正比;而这个例子中,你拧水龙头的力是电压,水龙头的角度是LCD显示器的液晶分子偏转角度,出水速度是亮度
3.灰阶图像在显示器测试中出现的意义是,让你调节你的显示器或者挑选显示器时,能看到有256个等级,这样显示图像时才能保证高亮、黑暗区域都有层次而不是一大砣或者一条一条的色带。

如果不是工作需求,归根结底,调节显示器的目的还是为了让你看的舒服

zmj1316 发表于 2024-5-4 07:17

本帖最后由 zmj1316 于 2024-5-4 07:23 编辑

因为人眼对低亮度部分敏感,所以8bit的sdr颜色信号用srgb空间存储,可以让低亮度部分有更多精度,到最终显示的时候才转换回线性就行了。如果hdr空间精度足够的话应该就不用这样映射了
所以一般的rgb代表的应该是srgb色彩空间里面的一个坐标

循此苦旅 发表于 2024-5-4 07:58

【【硬核】用一个巧妙的实验来给你讲清楚什么是 Gamma!-哔哩哔哩】 https://b23.tv/tFwHPFi

桧川直巳 发表于 2024-5-4 11:37

本帖最后由 桧川直巳 于 2024-5-4 11:40 编辑

1,CRT是有伽马的
2,他们不会告诉你RGB图像相关运算一般不会在RGB空间里,就算搞也是在去除伽马的线性RGB空间里进行
3,为什么要做伽马?因为作为与人最终交互的数据,需要符合人的直观印象,例如需要看起来是一半的亮度
页: [1]
查看完整版本: 问一个伽马校正的理论问题