伽马曲线实验--将2.2转换为相反的1.8?

4
摩托罗拉Photon因其展示所谓的“黑色压缩”而声名狼藉 - 在查看图片时,图像中大部分暗部细节被压扁成黑色。到目前为止,几乎每个人都将其归咎于Pentile显示屏。然而,第一次看到这种效果时,我想到了一个不同的想法......“哇,这看起来和在Linux和Macintosh上编码为Windows的图片以前使用1.8而不是Windows的标准2.2时看起来相同(糟糕)”。我的理论是,在某个地方,摩托罗拉构建了Photon的Android时使用了旧库,这些库是在摩托罗拉成为iPhone之前的Apple合作伙伴时编写的(或者可能是抓取了假定使用1.8伽马而不是2.2的旧开源代码)。
为什么我这么确定?几天前,我使用我的旧Epic 4G(三星Galaxy S)和新的Photon对同一个网页进行了屏幕截图。出乎意料的是,Epic的屏幕截图.png看起来正常,但Photon的屏幕截图.png在我的PC上查看时与在Photon屏幕上查看时完全相同,都有着糟糕的外观。当我看到它时,我想起了我之前关于可能存在伽马映射1.8与2.2之间的差异的想法,并决定尝试编写一个演示应用程序,向摩托罗拉展示这是一个真正可以修复的错误。
我想做的一个实验是将具有高动态范围和明暗区域中细节的JPEG图像重新编码为非标准伽马,其基本上是1.8和2.2之间差距的两倍。我的想法是,如果我故意将其编码为相反的极端(2.6?),然后在元数据中说它是2.2,那么当在Photon上查看时,它将看起来正常(因为将2.2压缩到1.8的同样错误将把2.6压缩到适当的2.2)。
所以,两个问题:
  1. 如果将2.2伽马图像解码为1.8时会出现的错误的等效反面是什么伽马值?2.6?
  2. 是否有任何简单的方法(免费的Photoshop / gimp插件,JPEG编码库等)可以故意将源图像误编码为该非标准伽马?

2
好问题,措辞得当。我会从答案中学到东西,但除了点赞之外,我没有什么可以提供的了。 - duffymo
1个回答

1

当对图像应用伽马时,您从[0.0-1.0]范围内的线性值开始,并将它们提高到1/gamma的幂,这会产生一个在[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有一个命令可以执行此操作。

任何与伽马相关的权威资源都在Charles Poynton's Gamma FAQ中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接