JPEG操作量化双重浸渍

时间:2015-04-10 18:48:02

标签: image jpeg

使用JPEG图像属性(分辨率,采样等)并导出最终产品时,您是否总是双重浸入'jpegification'?

根据我的理解,当您将JPEG图像加载到图像处理工具(GIMP,Photoshop,ImageMagick等)时,它就像这样:

  1. 导入JPEG
  2. 将JPEG解码为更易于使用的格式(位图)
  3. 操纵像素
  4. 导出回JPEG(再次重新进行JPEG量化,即使您复制原始JPEG参数,也是双击)
  5. 我对此是否正确?

    谢谢!

2 个答案:

答案 0 :(得分:2)

无论如何,图像的任何已改变的区域都必须再次量化。

理论上,应用程序可以保持量化值,然后再次使用它们。然而,

  1. 这需要3倍的内存。量化值需要16位来存储(像素值为+8位)。

  2. 如果您更改了采样或量化表,则必须重新计算量化值。

  3. 在极少数情况下,保持量化的DCT值是有意义的。

答案 1 :(得分:1)

我认为这取决于您在阅读图像后所做的事情......但我认为您可以自行检查任何特定操作以及是否通过在ImageMagick中使用此功能重新量化

identify -format "%#\n" image.jpg
bb1f099c2e597fdd2e7ab3d273e52ffde7229b9061154c970d23b171df3aca89

计算像素的校验和(或signature作为IM调用它) - 忽略标题信息。

所以,如果我创建一个随机噪声文件,就像这样

convert -size 1000x1000 xc:gray +noise gaussian image.jpg

并获取数据的校验和,例如

identify -format "%#\n" image.jpg
84474ba583dbc224d9c1f3e9d27517e11448fcdc167d8d6a1a9340472d40a714

然后,我可以使用jhead更改标题中的注释,例如

jhead -cl "Comment" image.jpg
Modified: image.jpg

然而校验和保持不变,所以我会说jhead没有重新量化数据。

我想我的观点是,你的图像总是重新量化的说法不是100%准确,而是取决于你实际上到图像的内容,而且,我正在展示你可以随时自行检查是否有任何处理实际上导致了重新定量。 HTH !!!