当今屏幕中伽玛校正的目的是什么?它与图形和摄影有何关系?


15

我对伽玛校正的目的以及在图形和摄影以及一般的色彩管理(从线性RGB转换为伽玛校正的RGB空间,然后将其显示在屏幕上)中的伽玛校正和未经校正的图像之间的关系感到非常困惑。屏幕)。

从很多来源,主要是http://www.guillermoluijk.com/article/gamma/index.htmStackOverflow的问题#23026151(我是否需要对现代计算机/显示器上的最终色彩输出进行伽玛校正?),我是我们得出的结论是:

伽玛校正最初旨在补偿CRT显示器对输入信号的非线性响应。CRT本身无法放大输入信号,因此需要对PC的输出信号进行调整,以产生(到目前为止)标准的伽玛2.2校正和sRGB色彩空间。

但是,现代屏幕不会像CRT那样遭受信号损失的困扰。它们也可能表现出一些非线性,但是考虑到输入信号通常每通道仅由8位(256个阴影)传送,它们应该能够补偿色彩再现本身中的一些非线性。在一个通道中再现256色以上的阴影。这意味着伽玛校正以及sRGB和所有经过伽玛校正的色彩空间只是CRT时代的传承,其唯一目的是线性显示输入信号。

也有文章声称伽玛校正是为了补偿人类视觉的非线性(CambridgeInColour.com-了解伽玛校正),它应该大致对应于伽玛曲线,因为我们能够在较暗的阴影中发现微小差异,但对较亮的阴影却无法做到这一点(点的亮度必须成倍增长)显得更亮)。这不是相机传感器记录场景的方式。来自传感器的原始数据是在线性RGB中获得的,并被开发为经过伽玛校正的RGB颜色空间(阴影升高,光线变暗)。伽玛校正旨在补偿输出信号的损失,因此,我相信现代屏幕所做的只是简单地模拟CRT的行为,以消除伽玛校正并显示场景,就像相机捕捉到的一样-大致来说,映射相机与屏幕的阴影比例为1:1。好,

这是否意味着在任何RGB颜色空间中的每个阴影在所有其他RGB空间(包括线性RGB)中都应具有完全相同的RGB值(例如,在sRGB中,就存储在位图文件中而言,sRGB中的#010A1F会完全转换为线性RGB中的#010A1F) 8bpc),这取决于屏幕和图形适配器如何安排颜色转移,以及是否任何一方都必须执行任何其他重新计算才能将图像转换为目标颜色空间?换句话说,在图形编辑器中更改颜色空间实际上与RGB值本身无关,只注意到图像元数据中的新色彩空间?我认为不是这样,因为在使用数字图形适配器/屏幕界面的情况下,这样的颜色管理将变得无用-图形适配器可以简单地发送纯RGB数据,而不管使用的色彩空间是多少,因为没有模拟增益(gamma)应用于从0到255的线性范围内的值。此外,如果未引入舍入误差,则不同颜色配置文件的色域将相同。

我最后的困惑可能来自对颜色配置文件转换的误解和文章http://www.guillermoluijk.com/article/superhdr/index.htm中的曝光量表(第一个)(可以使用谷歌翻译)。我是否正确理解线性值是使用指数函数(或反伽马)进行转换,将色调范围缩小为阴影并因此使图像变暗的?如果我们保存线性RGB并将其作为经过伽玛校正的图像呈现给计算机屏幕,会发生这种情况吗?

对于如此复杂的问题,我深表歉意,但事实证明,很难找到一个真正好的信息源来解释所有出现的不确定性。预先感谢您提供任何可能有助于纠正我的误解的答案。


4
您可能想尝试浓缩这个问题。虽然仍然可以仅通过标题回答,但是我认为编辑它是帮助您自己理解主题的好方法。
JenSCDC 2014年

1
我开始研究答案,很大程度上是因为我意识到自己已经忘记了很多东西,回答某人的问题是重新学习它的好方法。
JenSCDC

主要原因是向后兼容。您希望能够与旧的CRT显示器和现代的LCD显示器一起使用同一台计算机和相同的软件。软件的功能与过去相同:在sRGB颜色空间中创建图像。当然,这包括通常的伽马校正。然后,旧的CRT监视器将按原样使用图像,而现代显示器基本上将“撤消”从线性颜色空间到sRGB颜色空间的转换。
Jukka Suomela 2014年

以及它与摄影的关系:只要有合适的工具,它就没有。伽玛校正(通常是各种颜色空间之间的转换)自动进行;普通用户完全看不到它。这只是计算机程序员必须了解的一种技术,但是最终用户根本不需要了解它。(当然,除非您明确地希望在sRGB颜色空间中输入类似十六进制的颜色值,在这种情况下,您很可能知道您在做什么。)
Jukka Suomela 2014年

Answers:


10

来自查尔斯·波因顿Charles Poynton)的《伽玛的康复》

误解: CRT显示器的非线性是需要纠正的缺陷。

事实: CRT的非线性几乎与人类视觉的亮度敏感性相反。非线性导致CRT的响应在感觉上大致均匀。此功能绝不是缺陷,而是非常理想的。

误解:伽马校正的主要目的是补偿CRT的非线性。

事实:视频,桌面图形,印前,JPEG和MPEG中的伽玛校正的主要目的是将亮度或三刺激值(与强度成比例)编码到感知均匀的域中,从而优化有限位数的感知性能在每个RGB(或CMYK)组件中。

本文的其余部分也很有启发性:)


《自然》中的场景采用线性伽玛,应以某种方式在屏幕或纸上呈现,但伽玛略微升高以补偿耀斑-通常为伽玛1.1或1.2。
伊利亚·博格

1
Poynton博士的博士学位论文现已在线上: poynton.ca/PDFs/Poynton-2018-PhD.pdf。第3章和第4章讨论经典曲线,第8章介绍“ Barten Lightness” OETF,其形状与杜比PQ曲线(SMPTE-2084)相同。在比例尺的高端,它可以从伽马无缝地变形为对数曲线,这正是我们实际期望的。整本书很有启发性!
Jeroen van Duyn

7

考虑一下来自剑桥的Color示例:

在此处输入图片说明

通过应用伽玛编码,我们能够以相同的位深度(在此示例中为5)更准确地表示原始图像。

通过以与人眼更接近的方式使用32个级别来实现。换句话说,这是一种压缩形式。例如,尽管每个通道仅使用8位,但JPEG实际上可以存储大约11个动态范围的色标。

与其他任何形式的压缩一样,如果您不关心文件大小(以及读取或写入较大文件的速度较低),也没关系。从理论上讲,如果您愿意为每个通道分配11位而不是8位,则可以使用使用线性伽玛的JPEG格式。

因此,总而言之,伽玛只是一种压缩形式:当眼睛察觉到时,它会减小存储一定量信息所需的文件大小。另外,它可以让您在相同的位深度中存储更多细微的灰度。


7

我是一名前广播工程师,目前担任故事片和电视的编辑和视觉特效总监。

关于此的许多陈述是不正确的。信号路径中的伽玛是一个理想的好处,并且是早期视频工程师的一种设计选择,可以减少传输中的感知噪声。

所有的真空管(包括CRT)都表现出各种非线性(请参阅Langmuir-Child法则),CRT的“伽马”值可以从1.5到超过3.5(由电压信号驱动时),具体取决于各种设计差异。非线性问题对于单色来说不那么重要,但对颜色而言则变得更为关键,因此NTSC指定的信号伽玛为1/2。CRT 设计和支持电路根据Langmuir-Child法则(通常理解为1.5,但由于许多因素,通常使CRT更高)将实际的伽玛值调整到与人类感知的“伽玛”值约2.5的水平。对于NTSC,假定电视机的伽玛目标为〜2.4,**,而PAL表示为〜2.8

在旧的模拟广播信号标准中,较高的伽玛专门用于基于人类的非线性感知来减少感知到的噪声。在这种使用情况下,利用伽马编码信号的“压缩”效应利用非线性来隐藏噪声。这是相当学术的。

与伽玛曲线相比,可以通过多种方式更改CRT电视和显示器的设计以实现线性度,但是模拟广播中的伽玛曲线可将视在噪声降低30 dB。伽玛是可取的,因为现在就可以了

即使可以以线性(伽玛1.0)方式使用LCD监视器,也需要伽玛。此处不再需要伽马的主张是完全的铺盖,无法理解应用预加重曲线的当前目的。

即使每个通道的位深度只有8位,Gamma也可以使sRGB(或Rec709)看起来“不错”。这是一个例子:

这是8位sRGB图像,带有伽玛预加重(即正常Web图像)。 正常

这是没有伽玛的图像的外观(即,如果是线性值和线性显示,则没有伽玛预加重)。 坏

伽玛在较暗的区域提供更多位,以实现更平滑的渐变和更低的噪声。

如果要完全线性化,则整个信号路径每个通道至少需要12位。8 bpc不够。通过曲线编码和显示解码可以使用每个颜色通道一个字节的较小数据块。

在电影中,我们确实使用线性作为工作空间,但是使用线性时,每个通道的浮点数32位。交换线性图像文件时,我们使用EXR Half,即每个通道浮点数为16位。(如果我们使用10位DPX文件,则使用LOG曲线对图像数据进行编码)。

我们使用的计算机显示器仍然是8位或10位用于显示,因此所有线性图像在发送到显示器之前仍需要进行伽玛调整。为什么?

大多数“好”监视器每个通道只有8位,许多只是“ 6位内部”,这意味着它们每个通道图像需要8位,每个通道显示为6位。他们如何制作出可接受的图像?

GAMMA!

每通道10位监视器非常罕见且昂贵(例如我的NEX PA271W)。我的NEC可以接收10位信号,并使用14位内部LUT进行性能分析。但是10位对于线性来说还是不够的!

甚至需要10位,也需要使用伽玛或某种形式的前/上/下曲线。对于合理的线性显示,12位是最低要求,即使这样,对于故事片行业来说也是不可接受的。

我们将12位投影仪用于DCDM(数字电影),您猜怎么着?DCDM不仅使用CIE X´Y´Z´,我们还使用2.6投影机灰度系数!

DCI是为剧院创建的,是其自己的封闭式生态系统,不依赖于CRT等旧技术。如果在使用线性(伽玛1.0)空间方面存在“优势”,则可以使用它,但事实并非如此。

由于ADVANTAGE使用的是伽玛曲线,因此在数字电影院中不使用线性。

因此,请不要再说我们仅出于传统原因使用gamma,因为那是错误的。

请阅读有关该主题的Poynton,因为他以易于理解的方式阐明了这些问题。

感谢您的阅读。

脚注:**尽管NTSC指定的信号灰度系数为1 / 2.2,但电视的系统灰度系数增益却为2.4。需要指出的是,除了传输曲线外,Rec709(HDTV)和sRGB是相同的。有趣的是,Rec709(通过BT1886)将“物理显示灰度系数”指定为2.4(即显示器本身的灰度系数),而sRGB显示器通常设置为2.4或更高(调查显示,大多数用户将其设置为2.5或更高)。但是SIGNAL伽玛是不同的。对于sRGB是1 / 2.2,对于Rec709是大约1 / 2.0。在这两种情况下,系统伽玛增益都是有意根据预期的观看环境而定的。


我一直想知道为什么音频行业不使用相同的方法,而是在每个样本上抛出16位以上的数据……
Zeus,

@Zeus,您好,有几个原因(如果您提出这个问题,我可以给出更深入的答案)。基本上,即使是16或24位,音频流的带宽也比视频(通常)低得多,并且在计算上更易于处理。尽管如此,音频DOES在许多情况下(尤其是低比特率)使用这些类型的预加重和去加重。实际上,听力也是非线性的(就像所有感知一样),但是8位音频就像每个通道的视频4位一样“有点”。请记住,每个频道视频8位每个像素总共使用24位,因此与16位音频的比较是苹果/橙色。
Myndex

谢谢@Myndex,不幸的是,这将成为一个问题。我只是很好奇为什么从一开始就没有在音频中使用这种预加重/去加重功能,因为它既听觉又视觉一样自然。顺便说一句,我的意思是每个通道16位,当然(就像CD上一样)。可以说,线性8位音频(正式存在)比示例中的线性8位视频(甚至不作为标准)更可怕。我知道权衡取舍较低,但是好处却很高:每3 dB损失一半的分辨率会让人发疯……
宙斯

我认为有一个与堆栈交换相关的网站,欢迎音频问题。无论如何:16位音频中的每个位都等于6 dB(电压),因此总动态范围为96 dB。6dB(电压)是声音响度的“两倍”(或一半),但BUT的人倾向于将10dB视为“一半声音”量。从一开始就在音频中使用Pre / De Emph。记录有RIAA曲线,磁带使用了NAB曲线等。您是什么意思,每3 dB损失一半的分辨率?
Myndex

在线性数字编码中,一半的电压是数字范围的一半(根据定义),即损失1位分辨率。对于一些被认为“有点柔和”的东西(-6dB,这是我的意思,不是3),这是很多的。如果我们要至少捕获到所需的〜35dB(对于语音或乐队),对于最柔和的声音(即使经过适当的归一化处理),也已经损失了6位。我知道“模拟”的强调(有点不同,并且取决于频率),但从未听说过用于数字的,因此我的问题...
宙斯

3

关于伽玛校正的文章很多,但对伽玛和人类视觉的模糊引用却很多。伽玛的原因是历史性的,并且是旧的CRT型显示器的响应曲线的结果(与人类的视觉无关)。对于现代的纯平屏幕,没有逻辑上的理由进行伽玛编码和随后的校正,但它已成为行业标准。

巧合可以在不影响被减小的伽马曲线和人类视觉的响应曲线不会产生在帮助对文件大小作为图像的位深度切下一些优点之间类似关系感知的图像质量。


1

OP几乎是正确的,除了伽马使暗色调更亮而不是更暗。它仅存在于文件中,而不存在于眼睛中。在任何人看到之前,总是将数据解码回原始线性。看到原始场景和看到再现的解码数据时,任何眼睛上的差异都是不希望的再现错误。

伽玛仅用于纠正CRT显示器的严重损失。CRT是非线性的,它显示明亮的色调,但会丢失较暗的色调。因此,伽马会使暗色调过亮,然后希望在CRT丢失后再次恢复正常(线性)。但是,LCD显示器是线性的,因此不再需要伽玛,但是为了保持与世界上所有旧RGB图像的兼容性,所有标准仍包括相同的伽玛。LCD监视器仅解码和丢弃它就很容易。而且数据仍然可以在CRT上使用。

伽马与人眼无关。.除了我们希望看到校正后的线性原始数据。眼睛确实有类似的逆反应,这纯粹是巧合,但人眼从未见过伽玛数据。总是首先对其进行解码(通过CRT损耗或LCD芯片),而人眼只能(希望)再次看到线性数据。就像看到原始场景一样,原始场景也不需要伽玛。眼睛不需要帮助。到外面去看一棵树。那里没有伽马。我们真的以为我们的眼睛看不见树吗?:)再考虑一下。大脑对眼睛的反应进行解码,而CRT或LCD对数据编码进行解码。那些声称伽玛与眼睛有关的人根本不知道,他们只是在重复听到的错误信息。听到它并不难,但这是非常错误的。这些人应该说明何时以及如何使人眼甚至可以看到他们认为必要的伽马。它不能,它没有机会。

伽玛不是大约8位。数据被编码,然后被解码,并且希望是相同的,因此我们可以看到原始线性场景的准确再现。Gamma是在早期的NTSC电视(1940年)中完成的,当时还没有任何内容,但我们确实有CRT。:)伽玛仅与CRT损失有关。纯净而简单。早在CRT时代,伽马就非常必要。

在添加伽玛之前,通常将RGB数据归一化(为0..1百分比值),通常使用指数1 / 2.2(大约平方根)。18%是(0.18 ^ 1 / 2.2)= 0.46,或直方图为46%,或0..255刻度为117。(人像18%也应该是50%。:) 18%也就是18%,但是我们看到的是近50%,仅是因为直方图数据是伽玛编码的。)但请注意,任何指数的0仍然是0,而1则是任何指数仍为1,因此不会增加动态范围。而且由于伽玛也没有削波,端点也无法移动。当然,因为数据在任何人看到之前就已解码。整个过程(编码,然后解码)只是一个禁忌。希望没有改变。但是在文件中,指数的归一化数据(即FRACTION)变得更大,更亮,除非在那里看不到眼睛。

仅执行Gamma校正CRT显示器的响应。


1

我相信我们的眼睛具有这种响应曲线,但是这种对光量突然变化的响应,尤其是当它变得更高时,但同时大脑会通过缩小虹膜以保持相同(线性感知)来解码该响应。一直处于稳定的观看条件,直到顺利过渡到新的观看条件。

伽玛校正本质上来自CRT电子枪非线性,需要更多的编码(即应用.45伽玛)来发送均匀输出(线性输出),因为CRT电子枪的特性使信号就像被解码一样(即2.2伽玛)曲线)。在CRT时代,他们对所有数字数据进行了编码,以保持在互联网上查看和交换数据的一致性,因此图像文件格式主要由sRGB的Gamma曲线编码,与.45455 Gamma曲线非常相似),从而取消了CRT枪的发行。

现在,在对互联网上的所有数据进行编码并且由于LCD技术的线性行为(即输入信号=输出值)之后,他们发现为时已晚,无法再次解码所有数字数据,因此它们带有一个逻辑解决方案!并且它是为了再次模拟CRT缺陷,因此他们生产的LCD带有像常规系统一样解码信号的芯片(即施加2.2伽玛曲线):)否则,他们应该已经解码了互联网上的所有数据。

因此,不要陷入眼球非线性的困惑中,您将有无穷无尽的思考圈子。

这是与伽玛和我们的眼睛的关系

摄像机传感器RAW生成的线性图像数据RAW文件默认为gamma = 1.00(摄像机传感器性质),即(无解码或编码=无校正),当原始文件“显示”在监视器上时变暗,“仅查看为暗”,在那里10 &每通道12位是大文件,但遗憾的是我们根本没有从中受益,因为我们的眼睛对明亮值的敏感程度不如对黑暗值的敏感程度,可以区分出黑暗中的任何细微变化(我会在下面进行解释)。

由于显示器性质的缘故,图像处于“黑暗”状态,因此亮度水平浪费在明亮值上,而不是中间值和黑暗值(因为显示器的伽玛值将中间色调拉低了),所以如果黑暗,我们将受益更多。值具有相同的机会。

因此,他们发现通过运气将其转换为每通道8位,可以应用Gamma校正(例如,通过将原始数据编码为JPEG格式,例如JPEG和sRGB的.45455伽玛),这意味着可以适当地查看或显示亮度值,从而减小文件大小(这是通过将.45455伽玛刻录到像素,然后再次使深色调和中间调变高)与眼睛的本质非常一致。

我的解释是因为眼睛中的Rod细胞具有夜视能力,而且区分暗值的过于敏感的性质>>我们大约有1.2亿个Rod cell Vs,而对于单色单色的Cones细胞只有6或100万个。波长

我认为这不是由眼睛响应曲线造成的,不要尝试以其他任何方式在“眼睛的伽玛”和“显示器伽玛”之间建立联系,如果我错了,请纠正我:)。我一直在努力了解Gamma问题,以使自己对此有所了解。

这是有关伽玛原因和解决方案的最佳参考

http://www.w3.org/TR/PNG-GammaAppendix.html


0

这是我的答案初稿-我会在时间允许的情况下详细介绍,但我想给OP一些答案。欢迎发表评论。

有关CRT的内容实际上不再适用。但是有一个很好的实际理由继续使用伽玛编码的图像。使用伽玛编码,使曲线之类的编辑看起来“正常”,因为眼睛对光的线性响应并不理想,因此可以查找LAB空间的更多信息。

例如,看下面的截图:在此处输入图片说明

左边的图像是原始图像,中间的图像是gamma 2.2的副本,右边的图像是gamma 1.0的副本。可以看到应用于每个副本的曲线。给定曲线的形状,2.2或1.0版本看起来是否像您期望的那样?


0

事实上,近来伽马不再是必需的,尤其是在以高位图像表示形式工作时。但是,这意味着在太多情况下都需要完整的软件重写-或过渡远非无缝(例如,如Blankertz先生所述,熟悉的曲线会完全改变形状)。


-1

LCD监视器是“线性的”,并且今天不需要伽马,但是CRT监视器是非线性的,并且仍然需要。而且世界上所有现有图像的档案确实都有CRT的伽玛,因此,继续添加伽玛比更改所有软件和废弃所有现有图像要容易得多。

人眼绝对不会使用伽玛。眼睛在没有伽玛的情况下可以很好地看到原始场景。伽玛仅用于校正CRT显示器的预期损耗(因此,我们确实看到了原始场景的再现)。LED监视器知道只是解码伽马并将其丢弃,没什么大不了的(因为人眼希望看到没有伽马的原始场景数据的真实再现,所以再现应该看起来一样)。将其视为伽玛数据将是一件坏事。值得庆幸的是,人眼几乎没有机会看到任何伽玛数据。这些告诉我们眼睛需要伽马射线的网站只是不了解伽马射线。

但是,我们的直方图是伽马编码的,因为(出于上述原因)数据是经过编码的,直到将其显示给人眼为止。我们编码数据的中点不是50%,而是在伽玛数据中大约为73%(像白平衡和对比度这样的相机调整会使它偏移更多)。如果恰好在一幅图像上曝光不足一档,则255点将移至大约3/4比例,而不移至50%比例。18%的灰卡在衬纸数据中占18%,但在伽玛数据中约占46%。人们以某种​​方式错误地认为必须达到50%,甚至会想到将其照度计校准。:)但是眼睛永远看不到伽玛数据,它总是首先被解码,一种或另一种方式。希望眼睛始终能看到原始场景的真实再现。

但是FWIW,打印机也确实需要大多数伽玛值更改。不是值2.2,但不要太远(由于点增益等)。Apple现在遵守世界2.2标准,但我们都知道早期使用Mac电脑的伽马1.8。这不是用于监视器的,它们使用与Windows使用的监视器相同的监视器(监视器是可互换的)。但是苹果当时曾经出售激光打印机,而伽玛1.8是用于他们的打印机。然后,Mac视频硬件又增加了一点,使其达到了CRT所需的2.2。如今,打印机必须从接收到的2.2数据中稍微降低一点,但是他们仍然需要很多。

今天,该标准是gamma 2.2,因此世界上所有现有的RGB数据仍然兼容。


1
LED是背光类型。进行伽马校正的主要原因是,即使过去也没有针对CRT进行优化。
Euri Pinhollow
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.