你知道图片转发多了会变糊,但不知道为什么。是每次转发都在损失画质吗?为什么有的图糊得很快、有的很慢?为什么变糊的图片呈现出那种特殊的方块状伪影而不是均匀模糊?
本文用通俗语言解释JPEG压缩的完整科学原理——从像素到频率、从量化到伪影,让你彻底理解"为什么图片会变糊"以及"怎样的图片更容易变糊"。
01 JPEG 压缩的基本流程
JPEG把图片分成8×8像素的小块,对每个小块做DCT(离散余弦变换)——把空间域的像素亮度信息转换为频率域的频率系数。简单来说,就是把"哪个位置是什么颜色"转换成"这个区域有哪些明暗变化的频率"。
然后是关键步骤:量化。每个频率系数除以一个量化矩阵中的对应值,然后四舍五入。量化值越大,丢弃的信息越多,文件越小——但细节也越少。低频信息(大面积色块、缓慢渐变)被保留,高频信息(边缘、纹理、锐利过渡)被优先丢弃。
量化后的数据经过霍夫曼编码进一步无损压缩,形成最终的JPEG文件。整个过程中,只有量化步骤是有损的——而这个"有损"正是JPEG伪影和画质劣化的根源。
02 为什么“每转发一次就损失一次”?
当一张JPEG图片被保存时,它经历了一次完整的"解码→修改/不修改→重新编码"循环。即使你什么都不改、只是打开然后另存为,重新编码时的量化步骤会再次四舍五入——积累新的舍入误差。
第一次保存丢1%的信息,第二次保存在已经丢了1%的基础上再丢1%,第三次在丢了2%的基础上再丢——误差像滚雪球一样累积。这就是"generation loss"(代际损失)。
这个过程解释了为什么转发多次的图片会产生越来越明显的方块伪影——每个8×8小块经过多轮量化后,内部的颜色差异被逐渐抹平,小块之间的边界却越来越突兀。最终呈现出那种独特的"马赛克+模糊"混合效果。
有趣的数学事实:一张1000万像素的JPEG在质量参数75时,量化步骤会丢弃约40%的DCT系数信息。第10次保存时,累计丢失可达原始信息的90%以上。
03 什么图片降质最快?什么最慢?
降质最快的图片:细节丰富、对比度高、有很多细线条和文字的图片(如截图、设计稿)。因为这些图片包含大量高频信息,每次量化都会丢掉很多。带文字的梗图因此特别容易"包浆"。
降质最慢的图片:色彩均匀、渐变柔和、没有锐利边缘的图片(如天空照片、纯色背景)。这些图片主要包含低频信息,量化时丢弃的内容少。
社交平台还会额外加速降质——微信、微博等平台在你上传时就会先做一次压缩(通常质量参数60-75),这等于在你"手动转发"之外额外加了一次generation loss。这就是为什么群里传图特别快地变糊。
常见问题
PNG图片转发多次会变糊吗?
PNG是无损压缩格式,理论上多次保存不会降质。但社交平台会在上传时把PNG转换成JPEG——所以通过社交平台转发的PNG也会变糊,因为变糊的不是PNG格式本身,而是平台的转码过程。
JPEG质量参数100是不是就无损了?
不是。即使质量参数设为100,量化步骤仍然存在——量化矩阵只是分母变小了(约为1),但DCT系数仍然会被四舍五入。每次保存仍有极微小的信息损失,只是人眼几乎察觉不到。
有没有办法防止JPEG降质?
最好的防止方法是不用JPEG——保存为PNG或WebP(无损模式)。如果必须用JPEG,避免重复保存:编辑时用无损格式保存中间版本,最终导出时才保存为JPEG。
WebP比JPEG更耐转发吗?
WebP有损模式和JPEG类似,多次保存也会降质。但WebP在同等压缩率下画质通常更好(SSIM值更高),所以同样次数的转发,WebP的劣化程度会比JPEG稍轻。
为什么社交平台要压缩图片?
节省存储空间和传输带宽。一个日活跃用户1亿的平台,每天可能接收数十亿张图片——如果不压缩,服务器成本和加载速度都无法承受。压缩是在用户体验和运营成本之间的权衡。