JPEG编码应考虑伽玛吗?


11

当使用JPEG编码图像时,首先将RGB像素编码为YUV,然后对UV通道进行下采样。在实际进行DCT和编码系数之前,JPEG 不会对Y通道进行伽马校正。它是否正确?我们是否应该确定对观看结果影响最大的DCT系数?


我不知道,但是不进行伽玛校正确实很有意义。
joojaa 2015年

由于我对此不确定,因此我没有将其发布为答案,但是人类视觉对亮度的感知不是线性的。实际上,sRGB可以很好地补偿这一点,并在重要区域提供最高精度。因此,您可能会发现,在压缩亮度之前进行伽马校正实际上会产生较差的结果。
yuriks,2015年

AFAIK,视频标准假定为R'G'B'。一个非线性色彩空间,当应用3x3色彩转换到YCbCr或从YCbCr转换时。在诸如视频之类的应用中,人们希望每比特的质量最大化,而使用线性则毫无意义。我认为Charles Poyton的“颜色常见问题解答”的第27和29部分更清楚地表达了这一点:poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC27
Simon F

“揭开神秘面纱的视频”还说:“ YCbCr是最初由BT.601定义的色彩空间,现在用于所有数字分量视频格式。...在技术上正确的表示法是Y'Cb'Cr',因为所有这三个分量都是源自R'G'B'。”
西蒙F

伽玛指数存储在JPEG exif数据中。大多数软件完全忽略它。但您可以假定比在jpeg中已经解码的jpeg解码后要好,因此在显示缓冲区上发送rgb值之前无需进行任何转换。
v.oddou

Answers:


2

根据维基百科(插入标准免责声明RE准确性):

JPEG没有定义图像使用哪种颜色编码。JFIF定义要使用的颜色模型:Y代表灰度,或YCCbCr(由CCIR 601定义)。

YCbCr是一种非线性格式。正如我前面提到的,“视频神秘化”指出:

“ YCbCr是最初由BT.601定义的色彩空间,现在用于所有数字分量视频格式。...。技术上正确的表示法是Y'Cb'Cr',因为所有三个分量都源自R'G'B '。”

和Charles'Poynton的颜色常见问题解答指出

视频系统使用R'G'B'信号近似视觉的亮度响应,每个信号都具有0.45幂函数。

通过压缩,我们追求的是每位的最佳视觉表示,并且由于眼睛大致呈这种方式是非线性的,因此使用非线性表示是有意义的。


从这些细节来看,据我所知,JPEG期望对输入的RGB值进行编码,以使显示器在显示时应用幂函数。为了创建这些特定的RGB值,它们应先于编码进行校正。
Mokosha

1
这样说的麻烦在于它有点模棱两可。我们可能应该声明,如果您的“ RGB”数据实际上是R'G'B'(并且假设sRGB属于该类别),那么在应用R'G'B'之前您不应该修改值=> YCbCr矩阵。但是,如果数据是使用渲染器(可能是线性的)计算的,则是使用缩小比例处理的(应该在线性空间中完成),或者说是使用CCD捕获(并清理)的(认为是线性的),则必须在JPEG压缩之前重新映射它。
西蒙F

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.