运动估计算法简述
标签:搜索运动估计预测矢量算法分类:探索H.2642007-02-03 13:59
马上要做运动估计算法,重点整理了一下这方面的内容。
帧间预测编码可以简单地分为单向预测、双向预测、多帧预测。
而H.264
标准采用了多帧预测,参考帧可达5—15帧。
运动补偿采用较多的有运动矢量估计[重叠块运动补偿(OBMC)]、全局运动估计、基于象素点的运动估计、基于区域的运动估计、基于网格的运动估计。
1.单向预测原理:将重建帧和参考帧送运动参数估值器(ME)比较得到运动矢量,再将运动矢量和重建帧送到运动补偿预测器中,得预测帧Ft^(x,y)。
Ft^(x,y)=Ft(x+i,y+j) 其中(i,j)即MV
2.基于块匹配算法的运动矢量估计
简单地说就是以块为单位分配运动矢量。
在前一帧搜索区(M+2Wx,M+2Wy)内找到与当前帧块相匹配的块,位移d(i,j)即为运动矢量。
常用的块匹配准则有:均方误差(MSE)最小准则,绝对误差均值(MAD)最小准则、NCCF准则。
搜索方法:
a.穷尽搜索计算(2Wx+1)×(2Wy+1)个MAD值,全局最优,计算量大。
b.快速搜索
(1)分层的和多分辨率的快速块匹配方法
(2)基于连续消除的快速块匹配方法
(3)固定搜索模式的快速块匹配方法(e.g.三步搜索法)
(4)基于时空相关性和视觉特性的快速块匹配方法
3.重叠块运动补偿(OBMC)
为解决方块效应特别是运动矢量估计不准确或物体运动不是简单的平移运动以及一个块中有多个不同物体运动时的问题,采用OBMC方法,即一个像素的预测不仅基于其所属块的MV估计,还基于相邻块的MV估计。
4.运动估计
•运动表示法:
(1)基于块的运动表示法
帧间宏块分割区域大小的选择:大分区,表征MV的选择和区分割类型的比特数较少,但运动压缩的冗余度较高,运动补偿残差在多细节区域能量很高。
小分区,运动补偿残差能量较低,但需要较多的表征MV的选择和区分割类型的比特数,运动压缩的冗余度较低。
一般策略:平缓区域大分区,多细节区域小分区。
树状结构运动补偿,宏块和子宏块各4种分割方法。
色度成分均为量度成分水平、垂直尺寸的1/2。
(2)亚像素位置的内插
亚像素运动矢量:亮度精度1/4,色度精度1/8
对亮度成分,用六抽头滤波器对整数像素点内插:左右相邻的6个像素的加权均值得1/2像素点,然后是线性滤波得到1/4像素点。
对色度块以类似方法得到1/4像素点,再次进行线性内插就得到1/8精度MV.
(3)运动矢量在时空域的预测方式
空间 (1)运动矢量中值预测
(2)空间域的上层块模式运动矢量(最优)
时间 (1)前帧对应块运动运动矢量预测
(2)时间域的临近参考帧运动矢量预测
(4)匹配误差在时空域上的预测方式
H.264定义的匹配误差函数
J(MV,λMOTION)=SAD(s,c(MV))+λMOTION×R(MV-PMV)。
匹配误差在时空域的预测方式与运动矢量类似
空间 (1)中值预测
(2)上层预测
时间 (1)前帧对应块的预测
(2)时间域的临近参考帧预测(最优)
•运动估计准则分类:
(1)MSE最小(2)MAD最小(3)NTD
——子集匹配法大大减少每帧图像的平均搜索时间
•运动搜索算法
(1)全局搜索算法
(2)分数精度搜索算法
(3)快速搜索算法
1)二位对数搜索法
2)三步搜索法
3)自适应搜索范围的快速运动估计算法
4) 分级搜索范围(DSR)算法 ?
5) 混合搜索算法
•运动矢量预测:基于临近分割的相关性。
(1)非16×8,8×16分割,MVp为A,B,C中值。
(2)16×8分割,上面取B预测,下面取A预测。
(3)8×16分割,左边取A预测,右边取C预测。
(4)Skipped MB,同(1)。
若所需已传送块不可得,则MVp的选取要进行调整。