一个用来查看、比较 JPEG 文件中与质量相关的那些压缩参数的软件。典型参数包括由量化表反推出来的压缩质量系数、颜色采样(缩水)比例等。这些系数对 JPEG 文件长度与质量的影响可以参阅 JPEGsnoop 的作者 Calvin Hass 写的系列文章。
以下是其中关键的几篇:
《JPEG Compression, Quality and File Size》
《JPEG Color Space Conversion Error》
《JPEG Chroma Subsampling》
《JPEG Compression Quality from Quantization Tables》
《JPEG Huffman Coding Tutorial》
《What is an Optimized JPEG?》
如果看不懂英文,也可以去看看我写的《ComicEnhancerPro 系列教程》中的《教程十八:JPG文件长度与质量》。
Q:JpegQuality 与 JPEGsnoop 是什么关系?
A:在功能上 JpegQuality 参考了 JPEGsnoop,但输出更简洁一点。不过 JPEGsnoop 是完全自己写的 JPEG 解码,其源代码看得我晕头转向,JpegQuality 没那么复杂,完全是基于 Independent JPEG Group(IJG,独立 JPEG 小组)的源代码实现 JPEG 参数读取。另外从量化表反推压缩时的质量系数、方差的算法是学 JPEGsnoop 的,而 JPEGsnoop 又是从 IJG 源代码反推出来的。
Q:查看JPEG压缩参数有什么用?
A:JPEGsnoop 的作者 Calvin Hass 认为每一种 JPEG 压缩软件或固件所使用的量化表、颜色采样比例都是不同的,做成MD5后就可以当作“指纹”反推生成 JPEG 文件所使用的软件或固件(甚至版本号)、压缩时所选择的质量系数等,因此随便百度一下 JPEGsnoop 就可以看到大把用它来识别照片是否被P过的教程。但我更看重的是以下几点应用:
1、通过反推压缩时所使用的质量系数,可以看出生成 JPEG 的人是如何心狠手辣的。以 PDG 文件为例,总有人在网上四处嚷嚷说 JPG 格式的 PDG 文件用 CEP 处理后文件长度变大很多,其实原因就在于 CEP中 的缺省 JPG 质量系数是按照正常人的思维习惯设置的,而 PDG 的质量系数已经超越了正常人的思考范围。但如果没有量化的数据做支撑,也很难和那些小白们说清楚这件事。
2、通过比较不同软件、固件的压缩参数,可以大致推测不同厂家在JPEG压缩上的态度,大致推测其所生成的 JPEG 文件在文件长度和质量方面的差异,算是给产品选择提供一个参考。
3、提供查看不同软件对量化表的设置,可以了解其偏好,知道在使用软件时该如何选择参数。
4、通过这个软件的实现,我可以掌握从原JPEG文件中读取原始压缩系数,再重复用于此JPEG文件转存时的压缩过程的技术,保证转存出来的 JPEG 文件与原始 JPEG 文件的长度、质量变化不大。这种技术在我的软件中的具体应用参见《ComicEnhancerPro 系列教程》中的《教程十八:JPG文件长度与质量》。
Q:JpegQuality 显示的参数是否能反映出JPG文件的修改历史?
A:不能。因为 JPG 文件中根本就没有存储历史信息,所以 JpegQuality 显示的都是最后一次存储JPG时所用的压缩参数。举一个极端例子,如果某个用很低的质量系数压缩的JPG文件,比如说从 CX 的 PDG 文件解码出来的JPG文件,用 CEP 或其它图像处理软件进行处理后又用很高的质量系数转存为 JPG 文件,则 JpegQuality 打开转存后的 JPG 文件显示的就是最后一次转存时所使用的较高的质量系数。 |