JPEG 质量设置讲清楚(以及该填什么数字)
JPEG 质量值到底控制什么,为什么质量 80 不是"80%",以及照片、截图、打印分别该用哪个区间。
图像编辑器里的质量滑块看起来像个百分比。它不是。搞清这个数字真正在控制什么,会让你很快选定一个值然后不再纠结。
这个数字控制什么
JPEG 把图像切成 8×8 的块,每块转成频率系数,然后用量化表里的值去除这些系数。高频系数(细节、噪点、锐利边缘)被除以更大的数,结果大多变成零——这就是文件变小的原因。
质量设置决定这张表有多激进,它是按 JPEG 标准在 1992 年定义的一张表缩放来的。没有单位、不是百分比,也不保证两个编码器一致:某个工具的质量 80 可能与另一个工具的质量 85 视觉效果相同,而体积不同。
实用的区间
全分辨率的照片类图像:
- 95–100 —— 存档。文件极大,放大裁切之外看不出差别。
- 90 —— 高质量。还要再编辑或要打印的图用这个。
- 80–85 —— 网页甜点区。正常观看尺寸下多数人分不出与原图的差别。
- 70–75 —— 大图缩小显示时够用,背景图也够。
- 50–65 —— 可见变软,但做缩略图和预览常常还行。
- 低于 40 —— 块状明显,尤其是天空这类平滑渐变。
截图和合成图的表现不同:它们包含硬边缘和平色块,而 JPEG 在任何质量下都处理不好这类内容。源图若是截图,存储建议用 PNG,或者就接受要保持 q90 以上。
progressive 还是 baseline?
baseline JPEG 从上到下顺序存数据。progressive JPEG 分几轮存递增的细节,所以加载时先糊后清。视觉质量相同时,progressive 通常小 2%–8%,在慢网络下观感也更好。
这个工具输出的永远是 progressive JPEG。
陷阱:对已压过的文件再压一次
每一次 JPEG 编码都会丢信息。把 q95 的照片压到 q80 是有代价的。但把那个 q80 的结果再按 q80 压一次,代价更多而几乎省不下体积——因为编码器此时在花比特描述上一轮的痕迹。
我们的规则很简单:如果重编会让文件比你输入时更大,我们就保留你的输入并告诉你。而如果你的文件已经被压过,我们会先试无损路径——只重写熵编码,图像数据逐位不变。典型的 baseline JPEG 上能省约 4%,画质零损失。
选质量,还是选体积
如果你有硬性上限——某表单不收超过 2MB 的图、某平台要求缩略图小于 200KB——别去猜质量。切到指定体积模式,填上限,我们会搜索能满足它的最高质量。这多花几秒,但完全去掉了猜测。