0%

Ch3 视频压缩编码的基本原理

预测编码

帧间预测编码

  • 均方误差(MSE)最小准则
  • 绝对误差均值(MAD)最小准则
  • 快速搜索法 :一个16×16搜索区中心点为(i, j)=(0,0),以搜索区最大搜索长度的一半为步长,计算中心点及其周围8个邻近点的MAD值,如找到某个点MAD值最小,再以该点为中心,步长减为原来的一半,依次类推。到了第三步,再把步长减半,计算MAD值,其中MAD值最小点的运动矢量即为所求的值。快速算法的速度快,但不能保证全局最优。
  • 前向和后向运动估计: H.264编码标准和以往采用的视频压缩标准的最大不同在于,在运动估计过程中采用了多参考帧预测来提高预测精度。多参考帧预测就是在编解码端建一个存储M个重建帧的缓存,当前的待编码块可以在缓存内的所有重建帧中寻找最优的匹配块进行运动补偿,以便更好地去除时间域的冗余度。由于视频序列的连续性,当前块在不同的参考帧中的运动矢量也是有一定的相关性的。假定当前块所在帧的时间为t,则对应前面的多个参考帧的时间分别为:t-1,t-2,…则当在帧t-2中搜索当前块的最优匹配块时,可以利用当前块在帧t-1中的运动矢量MVNR来估测出当前块在帧t-2的运动矢量。
  • 亚像素位置的内插: 一个视频序列当采用1/2像素精度、1/4像素精度和1/8像素精度时编码效率的情况如图3.17所示。可以看出,1/4像素精度相对于1/2像素精度的编码效率有很明显的提高,但是1/8像素精度相对于1/4像素精度的编码效率除了在高码率情况下并没有明显的提高,而且1/8像素的内插公式更为复杂。因此,在H.264的制定过程中,1/8像素精度的运动矢量模型逐渐被取消,而只采用了1/4像素精度的运动矢量模型。

运动矢量在时空域的预测方式

  • 运动矢量空间域预测方式
    • 运动矢量中值预测(Median Prediction)。利用与当前块E相邻的左边块A,上边块B和右上方的块C的运动矢量,取其中值作为当前块的预测运动矢量。
      设E为当前宏块、宏块分割或者亚宏块分割,A在E的左侧,B在E的上方,C在E的右上方,如果E的左侧多于一个块,那么选择最上方的块作为A,在E的上方选择最左侧的块作为B。图3.18表示所有的块尺寸相同,图3.19表示邻近块尺寸不同时作为预测E的运动矢量的块的选择方法。
    • 上层预测(Uplayer Prediction
  • 匹配函数在时间域的预测方式。
    • 前帧对应块的预测(Corresponding-block Prediction)。利用前一帧中与当前块相同坐标位置的块在帧t′-1中搜索得到的最小SAD,作为当前搜索块在帧t′中进行搜索的SAD的预测值
    • 时间域的邻近参考帧预测(Neighboring Reference-frame Prediction)。如图3.26所示,假设当前块所在帧的时间为t,则当在前面的参考帧t′中搜索时,可以利用当前块在参考帧t′+1中搜索得到的最小SAD值SADNR作为当前块在帧t′搜索的SAD预测值
  1. 运动估计准则分类:

运动搜索的目的就是在搜索窗内寻找与当前块最匹配的数据块,这样就存在着如何判断两个块是否匹配的问题,即如何定义一个匹配准则。而匹配准则的定义与运算复杂度和编码效率都是直接相关的,通常有如下几类比较常用的匹配函数的定义:

设当前帧为f2,参考帧为f1。

(1)最小均方差函数(MSE)

(2)最小平均绝对值误差(MAD)

等效于常用的绝对差值和(SAD)准则,性能很好,而且对硬件的要求相对简单,因而得到了最广泛的应用。

(3)阈值差别计数(NTD)

  1. 运动搜索算法
  • 全局搜索算法
  • 分数精度搜索:1/k 像素精度搜索优化,对于低清晰度视频友好
  • 快速搜索算法:快速搜索算法和全局搜索算法相比,虽然只能得到次最佳的匹配结果,但在减少运算量方面效果显著
  • 混合搜索算法

变换编码和预测编码的比较

  • 由以上讨论可知,变换编码实现比较复杂,预测编码的实现相对容易,但预测编码的误差会扩散。以一行为例,由于后面的像素以前面的像素为参考,前面的像素的预测误差会逐步向后面的像素扩散。而且在二维预测时,误差会扩散至后面几行,形成区域误码。这样一来,对信道误码率的要求提高,一般要求不大于10-6。相比之下,变换编码则不会误码扩散,其影响只限制在一个块内,而且反变换后误码会均匀分散到块内的各个像素上,对视觉无甚影响。这时信道误码率一般要求不大于10-4即可。

    两者各有优缺,特别是变换编码随着VLSI技术的飞跃发展,实现起来十分容易。现实中,往往采用混合编码方法,即对图像先进行带有运动补偿的帧间预测编码,再对预测后的残差信号进行DCT变换。这种混合编码方法已成为许多视频压缩编码国际标准的基本框架。