🎬 第五章 视频基础
📄 一句话概括

视频编码的主流程比音频多一步预测——视频能压得比音频狠得多,秘密全在第二步。

📝 本节和前面几节的关系

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. 想一下:为什么音频不需要【预测】也能压好?

常见误区

  1. 以为预测是【把整帧都猜出来】。它猜的是当前块,猜完还要传残差。
  2. 以为变换会丢信息。它是可逆的,丢信息的是后面的量化。
自测三问(点开对答案) 1. 视频编码主流程的五步是什么? —— 分块、预测、变换、量化、熵编码。 2. 视频比音频多的是哪一步? —— 预测(帧内预测与帧间预测)。 3. 为什么预测能大幅提高压缩比? —— 它让编码器传的是残差而不是画面本身,而残差通常很小。

相关笔记