0

我正在尝试了解 JPEG 压缩过程并执行以下步骤来验证一些事情。

我获取输入图像 img1.jpg 并使用 IrfanView 对其进行压缩,例如 quality=50 (img1_compress.jpg)。

然后我从输入图像 img1.jpg 中裁剪出一个小块(在 X,Y=16,16 处大小为 8x8 的块.jpg),并使用相同的质量参数值 (50) 对其进行压缩。我们称之为block_compress.jpg。

现在,当我将此块的像素值与完全压缩图像中的像素值进行比较时,它们不匹配。

澄清一下,block_compress.jpg 中位置 0,0 的像素值应该与 img1_compress.jpg 中位置 16,16 的像素值匹配。

我很困惑为什么像素值不匹配?有任何想法吗?

4

3 回答 3

2

我刚刚用我的 JPEG 编解码器做了这个实验,像素值匹配。Irfanview 在压缩 JPEG 图像时可能会应用某种噪声过滤器或其他修改。如果不查看编解码器的源代码,您将无法知道它在做什么。您的实验是有效的,但是通过使用其他人的代码来测试您的理论,您无法知道他们的代码中到底发生了什么。

于 2013-03-22T18:26:26.007 回答
1

JPEG是有损压缩算法。在不同工具中使用相同的压缩设置压缩一张图像可能会产生不同的结果。如果您想要像素到像素的结果,则需要使用其中一种无损算法。即你可以使用PNG

于 2013-03-22T17:09:16.533 回答
-3

“每个 8x8 块的 DC 分量是从前一个块预测的。” : 奥利查尔斯沃思

于 2013-03-22T17:56:10.543 回答