芯见小科普 | 预测编码是怎么做到压缩视频的?

视频编码技术发展至今,已经经历了几十年的演变,但主要的工作机制却是一脉相承,分别包括了预测、变换、量化、熵编码等,今天就为大家介绍视频编码流程中的“预测”。点击链接跳转视频:https://baijiahao.baidu.com/builder/preview/s?id=1792291840756684990

预测是消除视频冗余的重要编码工具之一,可以作用于空间和时间冗余。

它的系统模型来源于1952年提出的差分脉冲编码调制技术(DPCM),这是一种针对模拟信号的编码方式,核心理念是不直接对信号进行编码,而是用前一信号对当前信号做出预测,再对当前信号与预测的差值进行编码。经过预测后,残差信号的能量比源信号的能量要低,这样就可以降低信号的信息量。

同样的思想也可以用在视频编码中,体现方式就是帧内预测和帧间预测。

其中,帧内预测适用于消除空间冗余。此前的视频中提到过,单帧画面的许多区域是相互关联的,比如动画片里大部分区域的颜色一致。假设现在用帧内预测编码选中的区域,首先,我们预测画面中的颜色在垂直方向保持一致,根据已知像素就能得到相邻像素的颜色。

但这种预测会有误差,因此我们需要将预测值与实际值进行比较,算出残差,这样得出的矩阵就比原始数据更容易压缩。

帧内预测针对相邻像素,而帧间预测则可以通过对相邻帧之间的残差进行编码,从而消除时间冗余。

这里要引入一个概念,视频中的帧主要分为三种:第一种是携带全部信息的独立帧:I帧;第二种,通过向前预测,参考I帧(或P帧)生成的编码帧则为P帧;而以前帧和后帧作为参考帧生成的双向预测编码帧则为B帧。

这种向前预测和双向预测就是帧间预测编码的两大类别,我们以向前预测为例,这里有两帧图像,分别为0号帧和1号帧,我们将0号帧分成一个个小块,并将1号帧的画面与之相匹配,得出二者不同部分的移动轨迹并进行编码,这种方法就是帧间编码中的运动预测。

总之,预测技术的核心思想就是只对差异和运动进行编码,从而起到压缩视频的作用,它的应用十分广泛,也是我们熟悉的H.264标准中的关键技术之一,但视频编码不只有预测一种方法,接下来我们将为大家介绍其他几种编码工具,下期见。