📄 一句话概括
视频编码的主流程比音频多一步预测——视频能压得比音频狠得多,秘密全在第二步。
📝 本节和前面几节的关系
5.3.2 看了压缩比,这一节讲这个倍数是怎么实现的。
一、主流程五步
① 分块:把一帧切成一块块(如 16 × 16 的宏块)。 ② 预测:用已经编过的区域,猜当前块长什么样。 ③ 变换:把【预测残差】转到频域,让能量集中。 ④ 量化:按重要性丢精度——唯一真正丢信息的步骤。 ⑤ 熵编码:把符号按概率换成短码。
二、和音频对照着记
音频的流程是:分帧 → 加窗 → 变换 → 量化 → 熵编码。 视频的流程是:分块 → 预测 → 变换 → 量化 → 熵编码。 两步的差别只有一处:视频多了一次【预测】。 就是这一步,把压缩比从 20 倍推到了 200 倍。
三、预测为什么这么有效
因为预测之后,编码器传的不是【画面本身】,而是【画面与预测之间的差】。 相邻帧差别不到 5%,所以这个差通常非常小——小到只需要很少的比特。 预测猜得越准,残差越小,压得越狠。 所以现代编码器一大半的复杂度,都花在【怎么猜得更准】上。
四、量化还是那个关键点
和音频一样:前面几步都不丢信息,只有量化丢。 分块是切分,预测是猜,变换是换坐标系——它们都只是让数据更适合被取舍。 所以调码率时真正在动的参数,本质都是量化的强度。
五、动手 Demo:一次视频编码,主流程是哪几步
视频编码器的处理顺序,比音频多一道【预测】。
rows = [("1 分块", "把一帧切成小块", "块越小,预测越准"),
("2 预测", "用已编过的区域猜当前块", "帧内或帧间"),
("3 变换", "把预测残差转到频域", "能量集中到低频"),
("4 量化", "按重要性分配精度", "唯一真正丢信息的一步"),
("5 熵编码", "按概率给短码", "无损收尾")]
for a, b, c in rows:
print("%-8s %-18s %s" % (a, b, c))
实跑输出:
--------------------------------------------------------------------
一次视频编码,主流程是哪几步
--------------------------------------------------------------------
视频编码器的处理顺序,比音频多一道【预测】。
步骤 做什么 关键点
-------------------------------------------------------------
1 分块 把一帧切成小块 块越小,预测越准
2 预测 用已编过的区域猜当前块 帧内或帧间
3 变换 把预测残差转到频域 能量集中到低频
4 量化 按重要性分配精度 唯一真正丢信息的一步
5 熵编码 按概率给短码 无损收尾
和音频对照着记:**流程几乎一样,只是多了一步【预测】。**
视频之所以能压得比音频狠得多,**秘密全在第二步**。
和音频对照着记:流程几乎一样,只是多了一步【预测】。 视频之所以能压得比音频狠得多,秘密全在第二步。
30 秒实验
- 对照音频的六步与视频的五步,指出哪些是一一对应的。
- 想一下:为什么音频不需要【预测】也能压好?
常见误区
- 以为预测是【把整帧都猜出来】。它猜的是当前块,猜完还要传残差。
- 以为变换会丢信息。它是可逆的,丢信息的是后面的量化。
自测三问(点开对答案)
1. 视频编码主流程的五步是什么? —— 分块、预测、变换、量化、熵编码。 2. 视频比音频多的是哪一步? —— 预测(帧内预测与帧间预测)。 3. 为什么预测能大幅提高压缩比? —— 它让编码器传的是残差而不是画面本身,而残差通常很小。- ☐ 下一节(5.3.4 视频编码的关键技术)
相关笔记
- 视频编码的关键技术 — 每一步里的具体技术
- 视频压缩 — 这套流程的效果
- 音频编码 — 音频那边的六步
- 🎬 FFmpeg入门详解 · 索引