2

在这篇关于 sRGB ( https://en.wikipedia.org/wiki/SRGB ) 的文章中指出,伽玛变换具有接近零的线性部分,以“避免在 K = 0 处具有无限斜率,这可能导致数值问题”。我想知道这有什么问题。

4

1 回答 1

2

与伽玛一样,有两个答案。现代变体是:

问题是,在无限斜率的情况下,您需要“无限”分辨率(许多存储位)才能获得一个线性表示,该表示可以在没有损失的情况下进行伽马编码。换句话说,它允许一个小的查找表产生一个可逆的线性编码(8 位 -> 10 位 -> 8 位)。

第一步最容易理解数值问题(8 位 -> 10 位)。使用接近零的无限斜率,您需要更大的编码范围以保持忠实和可逆,即您需要超过 16 位(假设整数编码,一半没有这个问题)。

#010101 或 1/255 的线性等价于平方 (gamma = 2.0) 编码是 1/(255*255)th。您需要 16 位来忠实地表示它,并且使用 2.2 而不是 2.0 作为指数会使情况变得更糟。这些非常小的数字只是编码功能的推论,实际上您不需要在亮度范围内(大致为黑色)有太多分辨率。因此,线性段通过不将分辨率浪费在黑色(或接近零)周围的细节上来帮助编码。

稍旧的答案,取自

http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html#gamma_correction

是在某些设备中,该线性段对噪声不太敏感。这对于模拟信号路径来说很可能是正确的。

于 2015-08-08T19:01:00.023 回答