DCT压缩-块大小,选择系数

5
我正在尝试理解块大小的影响以及在DCT压缩中选择系数的最佳策略。基本上,我想问一下我在这里写的内容:Video Compression: What is discrete cosine transform?。假设最原始的压缩方式是将图像制成块。对每个块执行DCT并将某些系数清零。据我所知,块越小越好。较小的块意味着像素更相关,因此DCT频谱中的能量更“紧凑”。在快速变化的图像(高频)中应更加强调。假设我们清除某个百分比的系数,哪种块会产生最佳图像质量,小块还是大块?假设我们保留10%、25%、50%、75%,你会说不同的百分比有不同的答案吗?另一个问题是如何选择保留不变系数。如果必须根据位置而不是能量做出决定,你会选择左上角的正方形吗?我在DCT频谱中平均了许多块,并得出结论:最好从左上角的三角形开始。你认为呢?希望我们能有有效的讨论。
1个回答

10
你的问题实际上涉及到图像质量。有相当多的文献研究了这个问题,结果表明图像质量很难确定。
标准的数学误差度量,如信噪比(SNR)和均方误差(MSE),可以给出定量答案,但众所周知这些指标与主观观众意见的相关性不高,而这些意见应该是我们最终的权威。没有其他方法,甚至那些基于观众心理视觉模型的方法(例如S.A. Karunasekera和N.G. Kingsbury,“一种基于人类视觉敏感性评价图像阻塞畸变的失真度量方法”,IEEE Trans. on Image Proc. vol. 4, no. 6, June 1995, pp. 713 –724;以及M. Miyahara,K. Kotani和V.R. Algazi,“图像编码的客观图片质量尺度(PQS)”,IEEE Trans. on Comm. vol. 46, no. 9, Sept. 1998, pp. 1215–1226),也没有证明它们比SNR更好。
此外,当你改变图像类型(线条绘画、卡通、照片、肖像等)时,某些类型的压缩失真会更加明显。蚊子噪声可能在一张图像中令人反感,而在另一张图像中,阶梯噪声可能是罪魁祸首。
简而言之,没有一个简单明了的答案来回答你的问题:“什么能够产生最佳的图像质量?”

尽管如此,我们还是能够讲一些与DCT相关的事情。一个块的DCT中像素从左上角开始呈锯齿形式变化[(0,0)->(0,1)->(1,0)->(2,0)->(1,1)->(0,2)->等等],就像你的三角形选择镜像一样。离左上角越近的像素包含的信息越平滑[实际上,(0,0) DCT值是整个块的平均值],距离该角落越远,你将得到更多“高频”细节。在图像的顶部和左侧越靠近,DCT系数代表的水平和垂直细节就会越多,在块的对角线越接近,你将拥有更多对角线细节。

简而言之,有损压缩通常涉及丢弃一些可能不为人眼所感知的“细节”(丢弃“较平滑”的DCT值会导致严重的失真)。丢弃的DCT值越多,压缩比就越大,但也会引起更大的失真。

至于块大小,一切都取决于具体情况。如果一个块中存在更多差异和细节,那么通过丢弃系数,你将丢失更多信息。一些压缩算法在同一张图像中自适应地使用不同的块大小,以使高细节区域接收更多且更小的块,而平滑区域接收更少且更大的块。

对于使用单个块大小的算法,如JPEG和MPEG,通常使用8x8、16x16和32x32等块大小。与自适应块大小相比,所需的处理较少,但总体上质量也会更低。


感谢提供详尽的答案。当然,在我的问题中,我假设了单个块大小。 我不在乎信噪比 / 均方误差。我只是想让理论被理解。 据我所见,块越小越好——因为较小的块通常意味着更相关的像素,这些像素更容易被压缩(或者说,可以用更少的系数来更好地定义)。我的以上假设正确吗? 只是为了平滑理论,并理解特定图像的具体情况。 - Royi
总的来说,小块在相关性方面更好,但如果它们太小,您的压缩比将会受到影响,因为您无法从每个块中丢弃许多系数而不会造成严重的失真。 - metal
1
+1 哇!太棒了!你甚至还附上了相关的文章。 - user334911

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