视频预测编码

一、概述

\quad 对于视频信号,一副图像内邻近的像素点之间有着较强的空间相关性,相邻图像之间有着很强的时间相关性。因此,原始视频信号是一种有记忆信源,即当前像素的灰度值与时空近邻的像素相关,而预测后的差值信号可以认为没有相关性,或相关性很小,可作为无记忆信源进行编码。因此我们对差值信号进行编码可以实现视频压缩的目的。
\quad 针对空间冗余有帧内预测编码,对于时间冗余有基于运动估计和运动补偿技术的帧间预测编码。
\quad 通过预测,可以得到实际像素值与预测像素值的差值,称作预测残差 r i = x i − x ^ i r_i=x_i-\hat{x}_i ri=xix^i。解码器通过采用与编码器完全相同的预测方法,得到完全相同的预测值,然后用解码出来的预测残差与预测值相加就得到重建图像。
\quad 如下图所示,为典型的图像组结构(Group of Pictures, GOP)

  • I帧:帧内预测帧,与图像压缩一样,利用帧内预测去除空间冗余。
  • P帧:前向帧间预测帧,以当前帧之前重构的I帧为参考帧,通过单向帧间预测去除时间冗余。
  • B帧:双向帧间预测帧,以当前帧之前和之后重构的I帧或P帧作为参考,通过双向帧间预去除时间冗余。
    视频预测编码_第1张图片

二、帧内预测

\quad 以同一帧图像内的临近像素作为参考,计算预测值 X p X_p Xp,并原始值X和预测值 X p X_p Xp的差值d,被传递到解码端。解码端接收到差值d,将其与预测值 X p X_p Xp相加,就得到了原始值X, X = X p + d X=X_p+d X=Xp+d
\quad 预测值的产生:用先前已编码像素的线性加权和作为当前像素的预测值。

H.264/AVC

  • 基于块的像素域预测;
  • 根据块大小定义若干预测模式;
  • 每种模式对应一种纹理方向(DC模式除外);
  • 当前块预测像素由其预测方向上相邻块的边界重建像素生成;
  • 3种尺寸的亮度预测块 :4×4, 8×8, 16×16 。
    以4*4块为例进行9种不同模式的预测
    视频预测编码_第2张图片
    视频预测编码_第3张图片
    note:对于16*16的块,只有前四种预测模式

H.265/HEVC

  • 亮度分量帧内预测支持5种大小的PU(Prediction Union) 4×4, 8×8, 16×16 , 32×32, 64×64;
  • 每一种大小的PU都对应35种预测模式;
    Planar模式:像素值缓慢变化的区域;由H.264/AVC中的Plane模式发展而来
    DC 模式:大面积平坦的区域;做法与H.264/AVC基本相同
    33种角度模式,模式2 ~17:水平模式,模式18 ~ 34:垂直模式。
    视频预测编码_第4张图片

三、帧间预测

\quad 帧间预测模式帧间预测即利用相邻帧间的信息进行预测编码,包括前向预测(P帧)与双向预测(B帧)两类。帧间预测主要是通过基于块的运动估计来搜索匹配块,指向匹配块的运动矢量可以是整像素或分像素精度,对于运动矢量的编码则通常采用与周围宏块的运动矢量进行差分预测来进行编码。估计准则为最小化下面等式:
在这里插入图片描述
\quad 运动估计(Motion Estimation,ME)的目的是在参考图像帧(reference frame)中找到最佳的参考图像块位置,即运动矢量(Motion Vector,MV),使得经过帧间预测之后,残差(prediction residual)的能量最小,以期达到最高的压缩效率。块匹配算法:比较各个参考位置点上关于残差和运动矢量的代价函数,以最小代价函数点作为运动估计的结果。
视频预测编码_第5张图片
\quad 实现寻找匹配块有两种算法:全搜索快速搜索。全搜索对搜索范围内的所有点按照顺序进行搜索,逐点比较代价函数,选取代价函数取得最小的点,即最优点(MBD点) 。可见,全搜索需要遍历所有像素点,能够找到该块的代价函数最优解,但是复杂度较高。快速搜索方法最常用的思想是减少待搜索的位置数,需要设计一系列有效的搜索模式,以搜索尽可能少的点数而发现最优解。快速搜索算法又包括三步搜索算法(TTS)、新三步搜索算法(NTTS)、四步搜索算法、梯度下降算法、钻石型算法及六边形搜索算法。

全搜索算法

\quad 全搜索算法又称为穷尽搜索算法(Exhaustive Search Algorithm, ES), 是对搜索窗内所有的像素点计算MAD值,从中找出MAD值最小的点,其对应的偏移量即为所求的运动矢量。

  • 步骤1:在搜索窗内,按从左至右,从上到下的顺序逐个像素进行搜索,分别计算各个像素的MAD值,直到遍历搜索窗口内所有的点;
  • 步骤2:在所有记录下的MAD值中寻找到MAD值最小的点,即最小块匹配误差点,该点对应的位置就是所求的运动矢量。
    视频预测编码_第6张图片

三步搜索法

\quad 由粗到细的搜索模式;从原点开始,按一定步长取周围8个点组成每次搜索的点群,然后进行匹配计算,利用上一步搜索得到的最小误差点作为当前搜索的中心位置,每做一步,步长减半。需注意算法搜索区域为[-7, 7]

  • 步骤1:从原点(0,0)开始,选取最大搜索长度的一半为步长,计算原点及其周围8个邻点的MAD值,记录下MBD点;
  • 步骤2:将步长减半,中心点移到上一步的MBD点,重新在周围距离步长的8个点处进行块匹配计算并比较;
  • 步骤3:在中心及周围8个点处找MBD点,若步长为1,该点所在位置即对应最佳运动矢量,算法结束;否则重复步骤2。

亚像素精度运动估计

  • 相邻两图像之间物体的运动不一定以整像素为基本单位;
  • 整像素运动估计会出现匹配不准确的问题,导致运动补偿残差较大,影响编码效率;
  • 1/4 像素精度比1/2 像素精度高;1/8像素精度比1/4 像素精度效果不明显,H.264/AVC, H.265/HEVC都采用1/4 像素精度的运动估计;
  • 亚像素精度运动估计需要对参考图像进行插值。

你可能感兴趣的:(图像处理)