压缩后的JPEG图像在L、a、b空间中的不确定性

3

我的团队希望计算在潮湿环境中拍摄的两张照片之间的对比度。

我们将使用以下公式来计算对比度:

对比度 = SQRT((ΔL)^2 + (Δa)^2 + (Δb)^2)

其中,ΔL是亮度差异,Δa是(红-绿)之间的差异,Δb是(黄-蓝)之间的差异,这些是Lab空间的维度。

我们迄今为止成功的方法是将每个像素从RGB转换为Lab空间,并将图像的相关部分的平均值作为我们的A和B变量。

然而,由于环境限制,我们只能使用一台(防水的)GoPro相机,它将图像压缩成JPEG格式,而不是保存为TIFF格式,因此我们没有使用真实的彩色图像。

现在,我们需要量化对比度的不确定性 - 为此,我们需要知道A和B的不确定性,以及每个RGB像素的a和b值的不确定性(或平均/典型不确定性)。只有当我们知道从真实彩色到JPEG转换时产生的典型/最大不确定性时,才能计算出这些。

因此,我们需要知道在JPEG格式中保存时每个RGB通道的最大可能差异。

例如,如果真实彩色RGB像素(5、7、9)在压缩后变为(2、9、13),则每个通道的不确定性将为(+/- 3,+/- 2,+/- 4)。

我们认为相机以4:2:0的宽高比压缩颜色 - 有没有办法测试这一点?

然而,我们的主要问题是:有没有办法知道每个通道的最大可能误差,或从压缩后的RGB结果计算出不确定性呢?

注意:我们知道无法从JPEG转换回TIFF,因为JPEG压缩有损。我们只需要量化这种损失对颜色的影响程度。


你正在使用哪个库?是原生的WIC / WPF还是自定义的东西? - HeavenCore
我们目前正在使用Python的PIL库。 - Patrick Abbey
1个回答

1
简而言之,无法绝对量化JPEG图像中数字计数的最大可能差异。
你已经很好地强调了其中一个要点。当使用JPEG标准对图像数据进行编码时,首先将其转换为YCbCr颜色空间。
一旦进入此颜色空间,色度通道(Cb和Cr)将被下采样,因为人类视觉系统对色度信息中的伪影不太敏感,而对亮度信息更敏感。
这里引入的误差是内容相关的;一个色度和色相变化非常快的区域将比一个色相/色度恒定的区域有更多的内容损失。即使知道4:2:0压缩,描述了下采样的数量和几何形状(更多信息here),内容仍然决定了在此步骤中引入的误差。
另一个问题是JPEG压缩中执行的量化。

生成的信息使用离散余弦变换进行编码。在转换的空间中,根据所需质量再次进行量化。这种量化是在文件生成时在相机内完成的。即使您知道相机执行的确切DCT量化,实际上对RGB数字计数产生的影响最终仍取决于内容。

另一个困难是由DCT块伪影引起的噪音,这也与内容有关。

这些场景依赖性使得该算法非常适用于视觉图像压缩,但非常难以绝对表征。

然而,隧道尽头还是有光明的。JPEG压缩会导致在图像内容快速变化的区域中产生显着的误差。颜色和纹理一致的区域将具有显着较少的压缩误差和伪影。根据您的应用程序,您可以利用这一点来获得好处。


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