序列图像编码:
在视频图像压缩编码中,图像是由连续的帧形成的图像序列,由于景物变化速度的限制,相邻帧间存在很高的相关性,即存在很高的时间和空间冗余。
运动补偿预测的目的就是消除时域冗余,由运动补偿技术结合变换编码,构成了序列图像编码的主要方法。
在序列图像中,相邻帧间的主要变化是由于构成景物的各物体的运动引起的,检测物体的运动参数,并通过这些运动参数由前一帧预测当前帧,这就是运动补偿技术MCP(motion compensated prediction),或简称运动补偿(MC)。其中主要的任务是检测物体的运动参数,称为运动估计ME。
物体的运动由多种元素构成,包括平移、旋转及扭曲等,完整的描述物体运动的模型是复杂的。在目前通用的图像压缩标准及大多数实用的图像压缩算法中,均使用了简化的运动模型,即假设运动是由平移构成,这样只用X和Y方向(或水平与垂直方向)的两个平移参数dx,dy表征运动参数。由dx,dy构成一个运动矢量D
D=(dx,dy)T
当前帧(i,j)坐标点的像素值由前一帧预测为
MCP(i,j,k)= S(∧)(i,j,k)=S(i+dx,j+dy,k-1)
这里k表示当前帧,k-1表示前一帧,S(i,j,k)表示原始像素值, S(∧)(i,j,k)表示预测的像素值。
当前帧原始图像与预测图像之间可能会有误差,由于这个误差是由平移运动补偿预测引起的,故称为帧间位移误差DFD(displacement frame difference),表示如下:
DFD(i,j,k)= S(i,j,k)-S(∧)(i,j,k)= S(i,j,k)- S(i+dx,j+dy,k-1)
因此,对图像帧内像素的编码变成对DFD场和运动矢量D的编码,且DFD场的能量是非常低的,可以用很少的码字表示,运动矢量是稀疏的,同样用较少的码字表示,可以获得有效的码率压缩。
如果一个运动物体较大,将它分成一些小块,对于每个小块的平移与旋转运动可以用一个平移运动矢量来逼近。如果进行分块运动估计,则每个块的运动矢量可以逼近平移和旋转运动,所以块匹配运动估计是目前应用最广泛的。
对于当前的第k帧图像,将它划分成等大小的块,每个块的尺寸为N×M,即每个块包含N行,每行