第三章 视频压缩编码的基本原理
3.1预测编码
大量的统计实验的数据表明,同一幅图像中相邻元素具有较强的相关性,在空间上表现为邻近元素的量化值相近,因此可以理由传输特定像素预测值及其与实际值的差来减小传输需要的带宽。
3.1.2帧内预测编码
1、一维最佳预测及二维最佳预测
为了利用数字电路实现预测系数,往往将其取为1/2、1/4、1/8等分数,有人提出了一下预测值:
2、预测编码的增益
对于高斯信源,,其中f为原始信号方差,p为预测误差的方差
3、预测编码的量化器
一幅图像中总会存在这样一个现象即平坦的部分远远超过突变的部分,由于视觉的掩蔽效应,在图像平坦部分和突变或亮度较大的部分采取不同的量化节距(非线性量化)可以有效的使编码比特数减少。
3.1.3帧间预测编码
(2)基于块匹配算法的运动矢量估计
常用的块匹配准则:
1、均方误差(MSE)最小准则
2、绝对误差均值(MAD)最小准则,该准则等效常用的绝对差值和(SAD)准则
(3)搜索方法
1、穷尽搜索法:对图像搜索窗内的所有像素点进行匹配搜索,计算量大但能找到全局最优运动矢量
2、快速搜索法
常用的有三步搜索法
2、双向预测
3、重叠块运动补偿OBMC
对于不同复杂含有多个运动物体及物体做非简单的平移运动时,认为强制划分图像容易产生方块效应,最终造成运动矢量估计不准确的问题,而重叠块运动补偿OBMC
很好地解决了这个问题。
该方法在对一个像素进行预测时不仅基于其自身的MV估计,还会参考相邻的MV估计。
3.1.4运动估计
通过搜索的方法找到相邻图像中相似块的运动矢量的过程就叫做运动估计。
运动估计中的三个关键问题:将运动场参数化、最优匹配函数定义、如何寻找最优匹配
2、运动估计的方法
一般常用的估计方法有前向运动估计(参考帧超前当前帧)和后向运动估计,在H.264编码标准中则采用了多参考帧预测来提高预测的准确度。
3、运动表示法
通常采用基于块的物体运动表示法。
(1)基于块的运动表示法
实际中一般把一幅图像分为多个块,每一个区域用一个运动矢量来描述。
(2)亚像素内插
由于自然物体运动的连续性,相邻两帧之间的块的运动矢量很可能实际上是以1/4、1/8等亚像素作为单位的,在H.264制定过程中采用了1/4像素精度的运动矢量模型。
(3)运动矢量在时空域的预测方式
1、运动矢量空间域预测方式
在一定的划分下,一个物体可能同时覆盖多个块,由于同一个物体运动时,在平面来看整体的运动矢量基本是相同的,所以可以利用相邻块的运动矢量来预测当前帧的运动矢量。
常用的方法有:运动矢量中值预测,空间域的上层模式运动矢量
2、运动矢量时间域预测方式
由于物体运动的连续性,同一个物体的运动矢量在时间域上也存在一定的相关性,因此我们可以利用相邻帧的运动矢量来估计当前帧的运动矢量。
常用的方法有:前帧对应块运动矢量预测、时间域的邻近参考帧运动矢量预测
(4)匹配误差在时空域的预测方式
匹配误差函数:
一般由于MV与PMV十分接近,因此用SAD来表示匹配误差
4、运动估计准则分类
(1)MSE
(2)MAD或等效的SAD
(3)阈值差别计数(NTD)
3.2变换编码
大多数图像的一个特点是:平坦部分占绝大多数,这样的话经过图像变换变换到频域后可得到相关性较小的变换系数,有利于我们压缩编码。在这类变换中,正交变换可以用于图像编码。
常用的变换编码有:K-L变换、离散余弦变换
3.2.2熵编码
熵编码前要进行锯齿形扫描和游程编码,其中熵编码是利用信源的统计特性进行码率压缩的编码,也叫统计编码。
常用的熵编码有:变长编码和算术编码。