2011-10-01 126 views
4

摩托罗拉Photon因展示其他人称之为“黑色粉碎”而臭名昭着 - 查看图片时,图像黑色部分的大部分细节都变平了。到目前为止,几乎所有人都把它归咎于Pentile显示器。不过,我第一次见到这种效果的时候,出现了一种不同的想法......“哇,这看起来与用Windows编码的图片在使用1.8的伽玛时在Linux和Macintosh上回看相同(坏)的方式相同而不是Windows的“2.2规范”。我的理论是,在某个地方,摩托罗拉建立Photon的Android使用一个旧的库,当摩托罗拉是苹果公司之前的合作伙伴(或者可能抓住旧的开源代码,假设1.8伽马而不是2.2)时写回来的。Gamma曲线实验 - 将2.2转换为1.8的相反值?

我为什么这么肯定?几天前,我用旧的Epic 4G(三星Galaxy S)和我的新Photon做了同一个网页的屏幕截图。出乎意料的是,Epic的屏幕截图.png看起来很正常,但Photon的屏幕截图.png在PC上查看时与在Photon屏幕上查看时的外观完全相同。在我看到它的那一刻,我记起了我之前关于可能的gamma-mapping 1.8-vs-2.2错误的想法,并决定尝试编写一个演示应用程序来向Motorola展示并说服他们这是一个可以修复的真正bug。

我想要做的一个实验是在明亮和黑暗区域拍摄具有高动态范围和细节的JPEG图像,并将其重新编码为非标准伽玛,基本上是1.8和2.2之间的差值的两倍。这个想法是,如果我故意错误地将它编码到相反的极端(2.6?),然后躺在元数据中并说它是2.2,在光子上查看时它看起来很正常(因为将2.2压缩到1.8的相同错误将2.6压低到正确的2.2)。

于是,两个问题:

  1. 什么伽马是平等的,你会得到,如果2.2伽玛图像进行解码,就好像是1.8的错误相反? 2.6?

  2. 是否有任何简单的方法(免费的Photoshop/gimp插件,JPEG编码库等)故意错误编码源图像到非标准gamma?

+2

伟大的问题,措辞很好。我会从答案中学到一些东西,但我除了获得最高票数之外没有什么可以提供的。 – duffymo

回答

1

当伽玛施加到的图像,在开始与在[0.0-1.0]的范围的线性值,并将其升高到1 /伽马的功率,这给出了一个结果,该结果同样在[0.0 -1.0]范围内。对于1.8的伽玛值,你提高0.56,对于伽玛值2.2,你提高0.45。

如果您已经应用了标准的2.2伽马,而您需要1.8伽玛,您可以通过两个校正因子的比率再次提高它:0.56/0.45 = 1.22。

由于像素值通常在[0-255]的范围内,因此在完成转换之前需要除以255,然后再乘以255。

我不确定Photoshop或Gimp是否可以简单地做到这一点;我知道Paint Shop Pro有一个命令。

与gamma有关的权威资源是Charles Poynton's Gamma FAQ