🎬 第六章 音视频压缩编码基础
📄 一句话概括

音频与视频都靠压缩,但压缩比差一个数量级——根源是视频多了【时间冗余】这一类,相邻两帧差别不到 5%。

📝 本节和前面几节的关系

第四章讲了音频、第五章讲了视频,第六章把两者的压缩原理抽出来一起看。这一节先立总纲。

一、为什么要把两者放一起讲

前面两章分开讲音频与视频,但那只是表面的分法。 从压缩的角度看,它们用的是同一套工具箱:预测、变换、量化、熵编码。 差别只在于视频多了一类冗余可以用——所以放在一起讲,反而更容易看清结构。

二、两条压缩曲线

音频:CD 音质 1411 kbps → 128 kbps,约 11 倍。 视频:1080p30 未压缩 1493 Mbps → 8 Mbps,约 187 倍。 4K30 更夸张:5972 Mbps → 16 Mbps,约 373 倍。 同样叫【压缩】,量级差了十几倍——这个差距必须解释清楚,否则容易记错。

三、差距的来源

关键在于冗余的种类不同: 音频只有统计冗余(相邻采样相关)与感知冗余(听不见的部分)。 视频在两者之外,还多了【时间冗余】——相邻帧里同一位置的像素几乎一样。 时间冗余的量级最大:一秒 30 帧里,95% 的像素在上下一帧是同一个东西。

四、本章的路线

这一章按【由总到分】的顺序展开: 6.2 先分无损与有损两大类——这是所有压缩的第一刀。 6.3 讲四类关键技术:预测、变换、量化、熵编码。 6.4 专门讲视频特有的帧内与帧间编码。 6.5 收在三个具体结构上:帧类型、GOP、时间戳。

五、动手 Demo:两种媒体,压缩比差一个数量级

音频和视频都靠压缩,但能压到的程度差一个数量级。

rows = [("音频 CD", "1411 kbps", "128 kbps", "11 : 1"),
        ("视频 1080p30", "1493 Mbps", "8 Mbps", "187 : 1"),
        ("视频 4K30", "5972 Mbps", "16 Mbps", "373 : 1")]
for a, b, c, d in rows:
    print("%-12s %-11s %-10s %s" % (a, b, c, d))

实跑输出:

--------------------------------------------------------------------
两种媒体,压缩比差一个数量级
--------------------------------------------------------------------

音频和视频都靠压缩,但能压到的程度差一个数量级。

  媒体             原始          压缩后       压缩比
  ----------------------------------------------------
  音频 CD          1411 kbps     128 kbps     11 : 1
  视频 1080p30     1493 Mbps     8 Mbps       187 : 1
  视频 4K30        5972 Mbps     16 Mbps      373 : 1

  差距的根源:**视频多了【时间冗余】这一类**——
  相邻两帧差别不到 5%,音频没有这么强的重复。
  所以【压缩】这件事,**两种媒体要分开讲**。

差距的根源:视频多了【时间冗余】这一类—— 相邻两帧差别不到 5%,音频没有这么强的重复。 所以【压缩】这件事,两种媒体要分开讲。

30 秒实验

  1. 查一下你手上音频与视频的原始大小估算,以及压缩后的实际大小。
  2. 各算一个压缩比,对比这两个数字。

常见误区

  1. 以为音频压缩与视频压缩【方法一样】。工具箱一样,但可用的冗余不同。
  2. 用音频的压缩比去估计视频。会低估一个数量级。
自测三问(点开对答案) 1. 音频与视频的压缩比大概各是多少? —— 音频约 10~20 倍,视频约 200~400 倍。 2. 差距的根源是什么? —— 视频多了时间冗余这一类,相邻帧重复度极高。 3. 本章的四段路线是什么? —— 分类(6.2)、关键技术(6.3)、帧内帧间(6.4)、三个具体结构(6.5)。

相关笔记