而解码端解码接收到的二进制码流,如果信道上没有信息损失,则VLD解码后系数值为 ,反量化后为 ,反量化后值与预测值相加得出重建像素值 。
于是原来像素值与重建像素值的误差为
从上式可以看出,在信道无损失的情况下,误差与预测器无关,是由预测差值量化引入的。无论预测器是否正确,都不会影响重建值,但是会直接影响预测编码效率和平均码字长度。预测准确时,预测差值较小,因而编码所需的平均码字长度短,编码效率高。
2.1.2 DPCM最佳线性预测
DPCM的最佳线性预测,其实是讨论DPCM的最佳预测器[17]。我们知道,预测器是由阶数和预测系数决定的。
一个N阶预测器的预测值 为
=
预测器的阶数N一般取为4对于预测效果的改善较为理想,而预测系数 一般采用均方误差最小准则来确定。
均方误差的表达式为
要使均方误差最小,需使得对所有预测系数满足 = 0。
设 为信号间的相关系数,假设信号是平稳信源,那么像素间自相关系数 ,与位置无关,且像素间相关性对称,即 可得出最佳预测系数:
=
可以证明,这时预测误差的方差为:
=
是间隔为k的来年各个像素的相关值,可见,相关性 越大,预测误差方差 越小于信号方差,压缩效率也就越高。
DPCM系统结构简单,易于用硬件实现,但是其消除空间相关性不如DCT变换,所以帧内预测很少使用,而在帧间预测编码中,它对于运动图像的处理也不如运动补偿算法,而且其误码容易扩散,抗干扰能力差。
2.1.3 运动补偿帧间预测
帧间预测是利用相邻帧存在的时域上的关系来预测编码的。而运动补偿是通过先前的局部图像来预测、补偿当前的局部图像。它是减少帧序列冗余信息的有效方法。
由于单个像素点不能代表图像的具体内容,所以即使找到相同的像素点也不能说明是同样的内容。而且,单像素太费空间,使得编码效率下降。因此实际应用中的预测方法通常采用基于块而不是以像素为单位的预测方法。
基于块的运动补偿帧间预测编码包括以下四个部分:块的确定、运动估计、运动补偿和补偿后的预测误差编码[18]。
块的确定是指编码以像素来描述的图像或视频序列时,通常把块分为固定大小,如 的宏块或者 的块。
运动估计是指得到运动矢量的过程。运动矢量是采取一定的方法搜索出的邻近帧中最匹配的对应块与受损块之间的空间偏移量。
通过运动估计找到运动矢量后,由它建立起当前帧编码块和重建帧编码块的空间对应关系,二者的差就是运动补偿残差。
对运动补偿后的残差信号进行变换编码,经量化器量化后送入熵编码器,编码后发送到信道中传输。
以上就是运动补偿帧间预测编码的基本内容。而运动矢量的估计是其中最重要的环节。运动估计是采用一定的搜索算法,根据某种块匹配原则来确定运动矢量的。
2.1.3.1 块匹配准则
实际应用通常采用基于块匹配算法的运动矢量估计。因为两帧之间的物体运动一般是刚体平移运动,所以把一帧图像分成若干个块,以块为单位得到运动矢量,大大降低了码率。
设块大小为 ,前一帧搜索区为 ,采用的位移为 ,若在搜索区内找到了匹配块,则 即为运动矢量MV。寻找运动矢量的过程即为运动估计[19]。
判断是否匹配需要采用一定的匹配准则,常用的匹配准则有:
① 均方误差(MSE)最小准则: H.264差错隐藏技术研究及改进+文献综述(5):http://www.youerw.com/jisuanji/lunwen_3067.html