我正在尝试理解JPEG压缩过程,并执行了以下步骤来验证一些事情。
我获取一个输入图像img1.jpg并使用IrfanView压缩它,比方说quality=50 (img1_compress.jpg)。
然后,我从输入图像img1.jpg (block.jpg大小为8x8,X,Y=16,16)中裁剪一个小块,并使用相同的质量参数(50)对其进行压缩。让我们称它为block_compress.jpg。
现在,当我将这个块的像素值与完全压缩图像中的像素值进行比较时,它们并不匹配。
为了清楚起见,block_compress.jpg中位置0,0的像素值应该与img1_compress.jpg中位置16,16的像素值相匹配。
我搞不懂为什么像素值不匹配?有什么想法吗?
发布于 2013-03-23 02:26:26
我刚刚用我的JPEG编解码器做了这个实验,像素值匹配。Irfanview在压缩JPEG图像时可能会应用某种类型的噪声过滤器或其他修改。如果不看编解码器的源代码,就无法知道它在做什么。你的实验是有效的,但是通过使用别人的代码来测试你的理论,你不能知道他们的代码中到底发生了什么。
发布于 2013-03-23 01:09:17
JPEG是有损压缩算法。在不同的工具中使用相同的压缩设置压缩同一图像可能会产生不同的结果。如果你想得到像素到像素的结果,你需要使用一种无损算法。也就是说,您可以使用PNG
发布于 2013-03-23 01:56:11
“每个8x8区块的直流分量是根据前一个区块预测的。”:Oli Charlesworth
https://stackoverflow.com/questions/15576071
复制相似问题