深度解析

HEIC 与 JPG 画质对比:转换会丢失细节吗?(附实例)

koboshiCo-founder
·1 分钟阅读
概述

HEIC 转 JPG 确实会丢失数据,因为 JPG 装不下 HEIC 能承载的一切。本文讲的是高质量转换能保留什么、画质下降时最先出现什么,以及如何做到肉眼无损地转换。

同一张照片,用两种方式保存。存成 HEIC 大约 1.8 MB。存成质量 90 的 JPG 大约 3.4 MB。正常尺寸并排看,你分不出区别。放大到 400%,JPG 在头发、草地、人物背后的暗墙上会显得稍软一点。

这种变软就是对标题问题的诚实回答:是的,转换在像素层面会丢失数据;不,它通常不会丢你的眼睛看得到的东西。真正有用的问题是,那个"是"什么时候会变得肉眼可见。本文用真实数据来说明,并告诉你如何在不越过这条线的前提下转换。

转换到底做了什么

HEIC 用 HEVC(H.265)存储图像,这是一个为视频而生的编解码器。JPG 用 DCT 块变换加色度子采样来存储。当你把 HEIC 转成 JPG,图像会被解码再用另一套方案重新编码,而这次重编码是有损的,一部分信息在往返中留不下来。

有两处会变。第一,压缩方式产生的伪影不同。同等码率下,HEVC 比 JPG 更擅长掩盖损失,这正是 HEIC 文件更小的全部原因。第二,色深下降。HEIC 支持 10 位或 16 位通道,JPG 固定为 8 位。如果你的照片每通道存了 10 位,转成 JPG 会永久丢掉多余的那些色调。

想从字节层面了解 HEIC 的结构,HEIC 技术深度解析带你走一遍容器 box 和文件签名。

为什么细节藏在位深里

一个 8 位通道,红绿蓝每种颜色各能装 256 级。10 位通道是 1,024 级,每种颜色的精度是前者的 16 倍。大多数手机照片上看不出差别,因为照片很少会用平滑渐变填满整个范围。差别会在明显的场景里浮现:应该从深橙渐变到淡黄的日落天空,或者逆着窗户光线拍摄的人像。正是这些平滑的色带,让 8 位文件开始露出断层,一段一段的台阶,而不是连续的渐变。

所以损失是真实的,但不是随机的。它先落在渐变和暗光噪点上,然后才轮到人脸或建筑的锋利边缘。如果你用高质量转换,其他损失(块效应、振铃、变软)会小到不放大就注意不到的程度。

三档质量下的 HEIC 与 JPG

同一张 1200 万像素照片,用四种方式保存,以 HEIC 为基准:

文件体积相比 HEIC 的变化
HEIC(源文件)1.8 MB基准
JPG(质量 95)4.1 MB正常缩放下无可见差异
JPG(质量 90)3.4 MB400% 下细微纹理轻微变软
JPG(质量 75)2.1 MB天空出现色带,文字周围出现振铃

这些数字是典型值,不是精确值,你的照片和相机会改变它们。规律不会变。你可以用接近原始 HEIC 的体积来转换,同时保住肉眼可见的细节。只有当质量滑块降到足够低、编码器开始偷工减料时,你才开始为它付出代价。

损失最先出现在哪里

想知道一次糟糕的转换代价是什么,按顺序检查这几项:

  • 色带(banding)。 平滑渐变塌缩成一级一级的台阶。这是色深损失的体现,也是最先出现的现象。
  • 振铃(ringing)。 高对比边缘周围出现细光晕,在文字和窗框上最明显。
  • 块效应(blocking)。 平坦区域出现明显的 8 × 8 网格块,通常质量高于 80 就消失了。

对大多数照片来说,一次高质量转换不会触发其中任何一项。重编码才是让它们叠加的原因:每过一道工序就加入一点量化噪声,噪声会累积。这就是有损与无损压缩中详细讲过的代际损失效应。

如何转换而不丢失可见细节

规则很短:从原始 HEIC 转换一次,用高质量。不要从一个已经过编码器的 JPG 转换,也不要事后把结果再转换一遍。

我们的 HEIC 转 JPG 转换器在你的浏览器里运行转换,质量设置由你控制,而且它直接读取原始文件。把 HEIC 拖进去,选质量 90 或更高,得到的就是 JPG 能承载的极限。

如果你需要无损输出或透明背景,无论质量多高,JPG 都不是正确的目标,那是 PNG 的活。HEIC 与 PNG 对比讲了什么时候值得切换,HEIC 转 WebP 指南则覆盖了面向网页发布图片的人的格式选择。

结论

HEIC 转 JPG 确实会丢失数据,因为 JPG 装不下 HEIC 能承载的一切。在质量 90 或以上时,损失几乎在所有照片的正常观看尺寸下都低于可见阈值。如果有人告诉你转换总会毁掉画质,他们描述的是一次低质量转换,而不是转换本身。

更多推荐阅读