图片来源:http://www·cgsd·com/papers/palette.html
结论:
* 当系统Gamma高(Gamma校正=1.0)时,看到的图像暗部影调丰富;反之,则亮部丰富。
* Gamma校正设为2.5时看到的File Gamma=2.5的图片,和校正设为1.0时看到的File Gamma=1.0的图片相当。
另:这里有一个直观的(用普通照片的)例子。http://graphics·stanford·edu/gamma.html
5.2. 颜色的变化
很显然,Gamma的变化带来亮度的变化。而单独改变某个通道的Gamma,则会则会带来色调(Hue)的变化。http://www·cgsd·com/papers/gamma_colorspace.html当然,如果显示器本来就偏色,我们则可以改变某个通道的Gamma使其总体上保持均衡。
5.3. 其它
其它影响在后面有说明或提及。
6. 校正Gamma的理由
主要指是否要将系统Gamma校正到1.0。因为校正总是存在的。(下同)
6.1. 标准化及互换性
如果数码相机/扫描仪给你一个Gamma=1.0的图片,你最好是在系统Gamma=1.0的系统上查看;或者当你的数码图片要拿去输出时,对方系统Gamma=1.0;……(这部分涉及到色彩空间、ICC Profile,我还不太清楚,而且接触的设备非常有限,不多说了。)
6.2. 算法上的要求
在涉及不同灰度的混合时,就会对gamma有要求。一个简单的例子,考虑在填充时,一半的黑(0)+一半的白(255),效果应该和50%的灰(128)相同。但这仅在系统gamma=1.0时成立。
又如,彩色转黑白时常说的:30% R + 59% G + 11% B,也是针对gamma=1.0而言。同样,许多算法也是针对1.0的系统gamma,否则算法内要做gamma校正。下面是一个抗距齿(anti-alias,反走样)的例子。
图 6-1 通常情况下的边缘
图片来源:http://www·teamten·com/lawrence/graphics/gamma/由于只能在矩形的点阵中画斜线,而斜线的像素值为全黑,当斜线较陡(或平)时,就会有明显的锯齿感。
请将系统的gamma校正设为1.0查看下面两图(即不校正系统gamma)
图 6-2 采用anti-alias后,锯齿感没有那么明显了图片来源:http://www·teamten·com/lawrence/graphics/gamma/在Photoshop中放大查看此图片,就会发现边缘不是全黑的,而是渐变的。(这是对anti-alias的直观理解。)
注:不要用ACDSEE放大查看,它默认的放大算法是插值的,无法看清像素的原貌。
图 6-3 anti-alias并gamma校正后,锯齿感完全消失图片来源:http://www·teamten·com/lawrence/graphics/gamma/当然,如果你保持系统gamma=1.0去查看上面的图片,就会发现第2张图完全无锯齿感,第3张图反而有一点。(这不是也可以作为一种估计系统gamma的方法吗)
7. 不校正Gamma的理由
7.1. 现实的非标准化
假定你的图片作为Web发布,你的用户(观众)的系统Gamma会是1.0吗?即使可以假定色影无忌的泡菜会用Adobe Gamma将他们的系统Gamma校正到1.0左右,但绝大多数普通用户呢?——在接触到Photoshop前,我是不知道什么Gamma的。
也许只能折衷吧。(MAC通过硬件只校正到1.8,SGI只校正到1.4,不知道有没有这方面的原因。)Making Good Cross Platform And WWW Pictureshttp://www·cgsd·com/papers/gamma.web.html而我们整天面对的操作系统,它默认用户界面的设计,又是以什么系统Gamma值为前提的呢?——似乎设为1.0并不是最舒服的。
PNG文件格式提供了Gamma补偿的功能,但并没有流行起来,因为人们不知道他们的系统Gamma是多少(当然还有别的原因)。
The Sad Story of PNG Gamma “Correction”http://www·hut·fi/u/hsivonen/png-gamma.html
7.2. 更符合视觉特性
就人的感知觉,心理量和物理量一般呈对数关系,视觉也不例外。虽然这个对数关系和那个指数关系并不严格对应,但方向上是一致的。即越暗处感觉越细(对同等光强的变化,暗处比亮处敏感),而对于(未校正的)显示器gamma曲线(gamma值大于1),也是暗处对应的层次更多。
比如对gamma=2,以一半的光强为分界,0~182对应于暗的一半,182~255对应于亮的一半。
7.3. 可能导致颜色数的减少
这是由于数字量的舍入误差造成的。输入数据按通常的每通道8位计算,当显卡(DAC)精度只有8位时就会发生。
x = 0:255; y = uint8((x / 255) .^ gamma * 255); n = histc(y, x); count = sum(n>0)当gamma=2(或0.5)时,结果count=192,即256色变为了192色。若三通道Gamma值(校正系统)相同,则总共的颜色数为192^3 = 707,788色,而24位色原本为16,777,216。
当然,对10bit, 12bit及更高位显卡就不存在这个问题了。(以前一直不明白在8bit色彩的系统上,更高位的显卡有何意义。现在有一点感受了。)
8. 结论
Gamma是一个基本的要素。关心图形、图像的人应该给它一点关心。
不将显示系统Gamma校正到1.0似乎并没有太大的错误,至少你和人民大众站在了一边。校正到什么程度,既有折衷的考虑,也有口味的因素。但不偏色是必要的。当标准需要你校正时,你最好遵守标准。总之,取决于你的图片与谁“接口”。
Gamma只是ICC Profile的一部分。关于标准及互换性的问题,也许只有理解了色彩管理以后,才能完全明白。
注:
引用:
假定你的图片作为Web发布,你的用户(观众)的系统Gamma会是1.0吗?即使可以假定色影无忌的泡菜会用Adobe Gamma将他们的系统Gamma校正到1.0左右,但绝大多数普通用户呢?
这段话中有错误,用Adobe Gamma是将系统Gamma校正到2.2(PC用户)或1.8(MAC用户)等。由于我当初有这种理解(认为校正是应将系统Gamma校正到1.0),导致一些偏差,请各位小心!估计不影响全局,我也就不一一修正了。
|