📄 一句话概括
有损压缩的本质是在猜你注意不到什么——猜得准,码率就低;猜错了,就会出现可见的失真。
📝 本节和前面几节的关系
6.2.1 讲了无损,这一节讲另一条路:允许丢。
一、有损压缩做什么
有损压缩的定义是:解压后的数据与原始数据不同,但【在感知上】可以接受。 所以它多了一类可以利用的冗余:感知冗余——人眼人耳感知不到的部分。 这就把天花板从 2 倍一下抬到了几百倍。
二、它到底在丢什么
高频细节——人眼对细节不敏感,平滑区域的微小纹理可以抹掉。 色度精度——前面 5.1.2 讲过,色度可以只采四分之一。 强音附近的弱音——听觉掩蔽效应,听不见就直接不存。 快速运动中的清晰度——看不清的地方,没必要存那么细。
三、【猜】这个字很关键
有损压缩的所有手段,本质都是基于感知模型的判断:这一段重不重要。 判断准了,人耳人眼完全分辨不出,码率却降了一个数量级。 判断错了(比如画面变化剧烈、模型不适合),就会出现块效应、色彩断层、金属音。 所以【有损的质量】不是由压缩算法决定的,是由感知模型与内容的匹配程度决定的。
四、什么时候可以用有损
判据只有一条:这份数据还要不要再加工。 只用于观看与传输 → 可以用有损,而且应该用。 还要反复编辑或作为素材 → 必须用无损。 所以录音棚存 24 bit WAV、发布用 AAC,这不是保守,是流程必需。
五、动手 Demo:有损压缩在【丢】什么
有损压缩的依据是:人眼人耳有很多【看不见听不见】的余量。
rows = [("高频细节", "人眼对细节不敏感", "量化、低通"),
("色度精度", "人眼对色度不敏感", "色度降采样"),
("强音附近的弱音", "听觉掩蔽效应", "感知编码"),
("快速运动中的清晰度", "看不清就没必要存", "量化放松")]
for a, b, c in rows:
print("%-18s %-20s %s" % (a, b, c))
实跑输出:
--------------------------------------------------------------------
有损压缩在【丢】什么
--------------------------------------------------------------------
有损压缩的依据是:人眼人耳有很多【看不见听不见】的余量。
丢什么 依据 手段
-------------------------------------------------------
高频细节 人眼对细节不敏感 量化、低通
色度精度 人眼对色度不敏感 色度降采样
强音附近的弱音 听觉掩蔽效应 感知编码
快速运动中的清晰度 看不清就没必要存 量化放松
换个角度看:**有损压缩其实是在【猜你注意不到什么】。**
猜得准,码率就低;猜错了,就会出现可见的失真。
换个角度看:有损压缩其实是在【猜你注意不到什么】。 猜得准,码率就低;猜错了,就会出现可见的失真。
30 秒实验
- 把同一段音乐压成两个低码率文件(如 32 kbps 与 96 kbps),戴耳机对比。
- 找出你能听出区别的那个门槛。
常见误区
- 以为有损就是【糊】。做得好的有损,人耳分辨不出。
- 对有损文件反复转码。每转一次就损一次,误差会累积。
自测三问(点开对答案)
1. 有损压缩多利用的是哪一类冗余? —— 感知冗余——人眼人耳感知不到的部分。 2. 有损压缩通常在丢哪四类东西? —— 高频细节、色度精度、被掩蔽的弱音、快速运动中的清晰度。 3. 什么时候必须用无损? —— 数据还要反复编辑加工、或作为存档母版时。- ☐ 下一节(6.3.1 预测编码)
相关笔记
- 无损压缩 — 另一条路:一点都不丢
- 量化 — 有损真正发生的那一步
- 色彩空间 — 色度降采样的依据
- 🎬 FFmpeg入门详解 · 索引