大多数用户将 JPEG 质量滑块视为一个简单的保真度百分比:100 表示完美复制,50 表示原始质量的一半。虽然这个想法很常见,但它根本不是压缩的工作方式。了解质量参数实际控制什么可以帮助您更好地决定图像处理。
DCT:JPEG 的实际工作原理
JPEG 压缩首先将图像分成 8×8 像素的块。每个块通过离散余弦变换(DCT)从空间数据(像素颜色)转换为频率数据。结果是每个块的一组 64 个频率系数——表示每个空间频率模式的存在量。
低频系数表示平滑渐变(大面积相似颜色),而高频系数表示精细细节(锐利边缘、纹理、噪点)。这是关键洞察:人眼对低频信息比高频信息敏感得多。
量化:质量真正重要的地方
DCT 之后,JPEG 应用量化——将每个频率系数除以量化表中的一个值,然后四舍五入到最近的整数。这就是数据不可逆丢失的地方。大的除数产生更多零(压缩效果更好)但丢失更多信息。小的除数保留更多数据但导致更大的文件。
质量参数控制量化表。当您将质量设置为 80 时,编码器缩放基础量化表,使除数相对较小——保留大多数频率信息。质量 50 使用更大的除数,将更多系数归零并产生更多压缩伪影。
为什么质量 80 ≠ 原始图像的 80%
质量数字不是视觉质量的百分比。它是应用于 JPEG 标准定义的参考量化表(IJG 表)的缩放因子。以下是不同质量级别实际发生的情况:
- 质量 95–100:量化除数非常小。几乎所有频率信息都被保留。文件大小很大,因为几乎没有可压缩的数据。质量 95 和 100 之间的差异通常看不见,但文件大小翻倍。
- 质量 80–95:最佳点。几乎看不见的高频细节被简化,但整体图像看起来与原始图像几乎相同。文件大小比质量 95+ 小 40–70%。
- 质量 60–80:更积极的量化。精细纹理开始出现块状伪影,但整体质量仍然不错。这个范围适合在网页上显示较小的图像。
- 质量低于 60:重度量化。可见的块状、颜色色带和边缘周围的振铃伪影。仅适用于文件大小是绝对优先考虑的情况。
渐进式 JPEG:免费优化
还有另一个影响 JPEG 质量和文件大小的设置:渐进编码。渐进式 JPEG 将图像数据存储在多次扫描中,从粗略到精细。通过慢速连接加载时,浏览器几乎可以立即显示低质量预览并逐渐细化。
但渐进编码还有一个实际好处:它通常比基线编码产生更小的文件。多扫描结构允许编码器优化整个图像的霍夫曼表,在相同质量设置下产生 2–10% 更小的文件。
CompactJPG 默认使用渐进编码——对于网页图像严格更好。
检测现有质量
图片压缩中最常见的错误之一是重新压缩已经压缩过的 JPEG。如果您的图像最初以质量 75 保存,以质量 80 重新编码不会改善它——只会让文件变大,同时增加第二代压缩伪影。
CompactJPG 通过从图像的 DQT(定义量化表)标记中检测原始质量来避免这种情况。如果目标质量不低于原始质量,它会原样返回原始文件。
实用建议
- 网页照片:质量 75–85 几乎总是正确的选择。如果图像将显示得很小(低于 600px),质量 70 即可。
- 打印:使用质量 90–95。打印会显示屏幕上看不见的伪影。
- 存档:保存为 PNG 或 TIFF,而不是高质量 JPEG。