专利名称:视频压缩的运动估计方法
技术领域:
本发明涉及视频压缩编码技术(H.264标准),尤其是涉及一种视频压缩的运动估计方法。
背景技术:
H.264压缩编码标准是目前最先进的视频压缩编码国际标准,其全称是国际电信联盟-电信标准化组织H.264标准(ITU-T H.264 Recommendation,International Telecommunication Union-Telecommunication H.264Recommendation),为描述简单起见,以下将其简称为H.264标准。
目前,基于H.264标准的视频压缩编码技术主要是采用以运动估计(ME,Motion Estimation)和运动补偿(MC,Motion Compensation)技术为核心的帧间预测(Inter-frame prediction)方式来去除视频序列相继图像帧之间存在的冗余信息,从而达到视频数据压缩的目的。由于视频序列中的各个图像帧是来自时间连续的运动场景中的离散时间采样值,因此各个图像帧之间在时间上存在着很大的相关性(correlation),即上述所指的冗余性(redundancy)。由于视频序列中的各个图像帧之间存在的这种冗余性,使得可以根据前面的数据帧来预测后面的数据帧,预测的基本方式是把当前图像帧(即被预测图像帧)分成若干宏块(MB,Macro block,为16X16大小的块,当然在H.264标准中也可以是更小单位的块,如4×4块等),对于当前帧中的每个MB在前帧(即参考图像帧)中通过运动估计算法找到最优参考MB,然后求取二者的预测残差,然后再对预测残差进行后续的编码处理,如离散余弦变换(DCT,Discrete Consine Transform)/整数变换、量化及熵编码处理等。而接收方的解码过程则正好相反,对接收的视频编码码流进行熵解码、反量化和逆离散余弦变换IDCT/逆整数变换等处理来求取预测残差,然后和最优参考MB相加来重构当前MB。在H.264标准逐步成熟及大量应用的过程中,已经产生了多种运动估计方法,而通常衡量一种运动估计方法技术水平高低的参数指标主要有两个估计精度(指找到最优参考MB的能力和概率大小)和搜索速度。
下面相继介绍几种目前在H.264视频压缩编码标准中常用的运动估计方法,以分析得出目前的各种运动估计方法在视频压缩编码实施过程存在的缺陷和不足。
为便于后续描述简单起见,这里将运动估计方法进行一般化处理,并约定一些常用的符号和量当前图像帧表示为F,参考图像帧表示为G;对于在位置(i,j)处的当前帧像素值和参考帧像素值分别用F(i,j)和G(i,j)表示;图像块大小参数定义图像块的高度为m像素,宽度为n像素;运动向量(MV,Motion Vector)mv=[dx,dy]T表示被预测图像块(即当前块)相对于参考图像块的位移,其中dx表示水平方向的位移,dy表示垂直方向的位移;搜索窗口大小参数p搜索窗口是指参考图像帧在运动估计过程中以初始位置(初始位置一般对应零运动向量,即mv=
T)为中心的包含有(2p+1)×(2p+1)个像素的正方形图像区域,其中运动估计过程中最优参考MB的搜索被限制在这个搜索窗口区域内进行。在参数p的取值上,当然p越大,对应的运动估计精度越高,但是在运动搜索过程中需要搜索的位置数和p2成正比,因此从计算强度角度考虑不会允许p很大,通常在H.264标准中一般取p=7,并且这里规定下面描述中都默认p=7。
匹配准则函数MAD(dx,dy)=1mnΣi-n/2n/2Σj-m/2m/2|F(i,j)-G(i+dx,j+dy)|]]>在H.264标准中,该准则称为平均绝对误差(MAD,Mean AbsoluteDifference),是由绝对误差和(SAD,Sum of Absolute Differences)除以参考块大小而得到每像素的平均预测误差。
由此,运动估计过程就可以描述为针对当前被预测图像块,在其对应的参考图像帧的搜索窗口内搜索使得匹配准则函数达到最小的运动向量或对应的预测位置。这个过程其实类似于一个离散优化问题,即在给定的一个离散点集合内搜索使得某个准则函数达到最小值的点,如果穷举地搜索这个离散点集合内的每一个点,必然能够得到全局最小点;但如果采用某些搜索策略,而不必穷举搜索离散点集合内的每一个点,从而就可以节省搜索时间,提高搜索效率,但其代价是不一定能够搜索得到全局最小点,而可能是搜索得到局部最小点。
但在很多情况下,因为图像序列中的各个图像帧之间在空间上或时间上存在着连续性和相关性,因此上述全局最小点和局部最小点实质上是相差不多的,即通过运动估计过程搜索到局部最小点对于运动估计的整体性能影响并不会很大,因此基于这个理由,就可以开发多种基于搜索策略的局部最小点搜索方法。而基于搜索策略的搜索方式往往和某种图像区域的形状(如十字形,钻石形等)相关联,搜索过程首先是从参考图像帧的初始预测位置出发,搜索这个初始预测位置的某个形状上的点,并且搜索过程分为多步,每步需要搜索的图像区域大小逐步递减,最终或者因为搜索到的某个点满足停止条件(停止条件一般通过阈值条件进行判断),或者搜索区域最终缩小到只包含一个点,则搜索过程终止。
搜索策略其实就是一套算法步骤,首先利用图像的结构特性和统计特性,来选择一个初始搜索位置集合,该集合包含有一系列的位置点,这些位置点一般来说存在于搜索窗口内搜索中心点的周围,一般也包含搜索中心点,且这些位置点一般呈现关于搜索中心点的对称分布;然后从这个初始搜索位置集合出发进行搜索,找到这个集合中使得匹配准则函数取得最小值的临时最优位置参考点,然后再以这个临时最优位置点为新的搜索中心点,按照上述类似方式选择一组位置点作为下一步的搜索位置集合(但这个集合相对于上一个集合而言,空间范围缩小,位置点数也就相应减少),然后按照上述类似过程在该集合中进行搜索,再找到此时的使得匹配准则函数取得最小值的临时最优位置参考点,……,重复以上步骤,直到搜索过程因为满足某些停止条件或者一直到最后无法按照规则构造非空搜索位置集合(即不再包含任何未搜索过的位置点),则最后搜索到的一个临时最优位置参考点就是最终的最优位置,可以直接作为运动估计过程的输出结果。
请参阅图1,该图是现有技术中以全搜索方式进行运动搜索的搜索原理示意图;全搜索方式是指搜索窗口中的每个位置点都将被搜索到,然后对应每个位置点分别计算匹配准则函数,以找到全局最小位置点。可见,在采用全搜索方式进行运动估计过程中,搜索窗中的每个位置点都是在第一步被搜索到的,因此在图1上的每个位置点都用数字“1”来标注。
由于采用全搜索方式进行运动估计需要不加区别地搜索给定搜索窗图像区域内的每个位置点,而没有采取任何搜索策略,也没有利用任何关于图像的属性和统计特性,也没有利用图像块和其前帧及本帧相邻图像块之间在运动向量方面的相关性,因此其搜索速度是非常低的。
请参阅图2,该图是现有技术中以三步法方式进行运动搜索的搜索原理示意图;在三步法运动估计过程中,p的取值为7,三步法运动估计处理过程为步骤1从参考图像帧的初始位置,也可以称为搜索中心(Search Center)(j,k)开始,设置初始搜索步长(step size)为ceiling(7/2);其中函数ceiling(x)表示大于或者等于自变量x的最小整数,所以初始搜索步长=ceiling(7/2)=4;则第一步要搜索的初始搜索位置集合为{(j,k),(j-4,k-4),(j,k-4),(j+4,k-4),(j-4,k),(j+4,k),(j-4,k+4),(j,k+4),(j+4,k+4)},该集合中共包含9个位置点;按顺序搜索这些位置点,找到这9个位置点中使得匹配准则函数取得最小值的位置点(s,t),假设找到的这个位置点即为(j+4,k+4),再以这个第一步得到的最优参考位置作为下一步搜索的新搜索中心。
步骤2将搜索步长减半为ceiling(4/2)=2;从而构造出新的搜索位置集合{(j+4,k+4),(j+2,k+2),(j+4,k+2),(j+6,k+2),(j+2,k+4),(j+6,k+4),(j+2,k+6),(j+4,k+6),(j+6,k+6)},该集合中也共包含9个位置点;按顺序搜索这些位置点,找到这9个位置点中使得匹配准则函数取得最小值的位置点(s’,t’),假设找到的这个位置点即为(j+6,k+6),再以这个最优参考位置点作为下一步搜索的新搜索中心。
步骤3将搜索步长继续减半为ceiling(2/2)=1;构造新的搜索位置集合{(j+6,k+6),(j+5,k+5),(j+6,k+5),(j+7,k+5),(j+5,k+6),(j+7,k+6),(j+5,k+7),(j+6,k+7),(j+7,k+7)},该集合中也共包含9个位置点;按顺序搜索这些位置点,找到这9个位置点中使得匹配准则函数取得最小值的位置点,则该位置点就是最终的搜索结果。
至此整个运动搜索过程结束。
在上述三步法运动估计的基础上又发展出了新三步法运动估计方式,请参阅图3,该图是现有技术中以新三步法方式进行运动搜索的搜索原理示意图;新三步法运动估计处理过程如下步骤1第一步的初始搜索位置集合扩大为17个位置点(包含搜索中心(j,k)),如图3中以1标识的位置点所示,按顺序搜索这些位置点,找到这17个位置点中使得匹配准则函数取得最小值的位置点(s,t);如果找到的这个位置点(s,t)即为搜索中心(j,k),则认为已经找到最优参考位置点,整个运动搜索过程结束。其中扩大的初始搜索位置集合包括搜索中心(j,k),外8点{(j-4,k-4),(j,k-4),(j+4,k-4),(j-4,k),(j+4,k),(j-4,k+4),(j,k+4),(j+4,k+4)},内8点{(j-1,k-1),(j,k-1),(j+1,k-1),(j-1,k),(j+1,k),(j-1,k+1),(j,k+1),(j+1,k+1)}。
步骤2如果第一步找到的最优参考位置点(s,t)属于内8点,那么顺序搜索位置点(s,t)的8个相邻位置点,找到最优参考位置点作为最终搜索结果,整个运动搜索过程结束。
步骤3如果第一步找到的最优参考位置点(s,t)属于外8点,那么转入执行上述三步法运动估计处理过程的步骤2和步骤3,找到最优参考位置点作为最终搜索结果,至此整个运动搜索过程结束。
新三步法运动估计方式显然相对于三步法运动估计方式而言,该方法解决了原来三步法中第一步初始搜索位置集合均匀分布造成的搜索效率低问题,新三步法采用了中心偏置分布特性,因此能够适应于实际的运动向量分布,并且该方法引入了中途停止条件,从而也降低了运动估计过程的计算量。
请同时参阅图4A及图4B,该两图是现有技术中以四步法方式进行运动搜索的搜索原理示意图;四步法和上述新三步法类似,也采用了中心偏置分布特性和中途停止条件,但是四步法在极端情况下的处理表现和平均计算量均比新三步法有显著改进。四步法运动估计处理过程如下步骤1设置初始搜索步长为2,选择包括搜索中心(j,k)及其8个相邻位置点在内的9个位置点作为第一步的初始搜索位置集合;按顺序搜索这些位置点,找到这9个位置点中使得匹配准则函数取得最小值的位置点(s,t),如果找到的这个位置点(s,t)=(j,k),直接执行步骤4;否则执行步骤2;步骤2设置以步骤1找到的最优参考位置点(s,t)为新的搜索中心,保持搜索步长为2继续构造下一搜索位置集合,但是搜索位置集合的构造模式依赖于位置点(s,t)的具体位置;有两种可能性存在,如下a)如果位置点(s,t)位于步骤1中初始搜索位置集合的一个角,则再加入5个新位置点构成新的搜索位置集合以进行该步搜索处理,如图4A所示;或b)如果位置点(s,t)位于步骤1中初始搜索位置集合某边的中点,则再加入3个新位置点构成新的搜索位置集合以进行该步搜索处理,如图4B所示;按顺序搜索上述构造的新的搜索位置集合中的每个位置点,找到新的最优参考位置点(s’,t’),如果找到的这个位置点(s’,t’)=(j,k),直接执行步骤4;否则执行步骤3;步骤3设置以步骤2找到的最优参考位置点(s’,t’)为新的搜索中心,保持搜索步长为2继续构造下一搜索位置集合,继续步骤2的搜索模式,当满足两个条件之一时就转入步骤4
(1)搜索到的新的最优参考位置点即为搜索中心(j,k);或(2)按照步骤2的规则a)或者b)扩大的新的搜索位置集合已经超出了搜索窗口的范围。
步骤4设置以步骤3找到的最优参考位置点(s,t)为新的搜索中心,结合其8个相邻位置点构成新的搜索位置集合,并搜索步长减到1;按顺序搜索新构造的搜索位置集合中的每个位置点,找到新的最优参考位置点作为运动估计的最终输出结果,至此整个运动搜索过程结束。
请参阅图5,该图是现有技术中以对数法方式进行运动搜索的搜索原理示意图;对数法运动估计处理过程如下步骤1首先设置初始搜索步长为4,初始搜索位置集合为{(j,k),(j,k-4),(j,k+4),(j-4,k),(j+4,k)};按顺序搜索该集合中的四个位置点,以搜索到使匹配准则函数取得最小值的最优参考位置点(s,t)。
步骤2如果步骤1中搜索到的位置点(s,t)=(j,k),则直接执行步骤3;否则有如下规则(1)如果(s,t)=(j,k-4),则选择(j-4,k-4),(j+4,k-4)作为两个新的位置点;或(2)如果(s,t)=(j,k+4),则选择(j-4,k+4),(j+4,k+4)作为两个新的位置点;或(3)如果(s,t)=(j-4,k),则选择(j-4,k-4),(j-4,k+4)作为两个新的位置点;或(4)如果(s,t)=(j+4,k),则选择(j+4,k-4),(j+4,k+4)作为两个新的位置点;在上述选择的两个新位置点中找到最优参考位置点(s’,t’),如假设找到的位置点(s’,t’)=(j+4,k+4);然后执行步骤3。
步骤3将搜索步长减半为2,和步骤1类似,构造新的搜索位置集合为{(j+4,k+4),(j+4,k+2),(j+4,k+6),(j+2,k+4),(j+6,k+4)},搜索该集合中的4个位置点,找到最优参考位置点(s”,t”)。
步骤4如果步骤3中找到的位置点(s”,t”)=(j+4,k+4),再将搜索步长减半为1,构造新的搜索位置集合为{(j+4,k+4),(j+4,k+3),(j+4,k+5),(j+3,k+4),(j+5,k+4)};搜索到该集合中的最优参考位置点作为最终运动搜索的输出结果,至此整个运动搜索过程结束;否则有如下规则(1)如果(s”,t”)=(j+4,k+2),则选择(j+2,k+2),(j+6,k+2)作为两个新的位置点;或(2)如果(s”,t”)=(j+4,k+6),则选择(j+2,k+6),(j+6,k+6)作为两个新的位置点;或(3)如果(s”,t”)=(j+2,k+4),则选择(j+2,k+2),(j+2,k+6)作为两个新的位置点;或(4)如果(s”,t”)=(j+6,k+4),则选择(j+6,k+2),(j+6,k+6)作为两个新的位置点;在上述选择的两个新位置点中找到最优参考位置点(s,t),假设找到的位置点(s,t)=(j+6,k+6),则构造新的搜索位置集合为{(j+6,k+6),(j+6,k+5),(j+6,k+7),(i+5,k+6),(i+7,k+6)};在该搜索位置集合中找到最优参考位置点作为运动搜索的最终输出结果,至此整个运定搜索过程结束。
请参阅图6,该图是现有技术中以十字法方式进行运动搜索的搜索原理示意图;其中采用十字法进行运定搜索类似于采用对数法进行运动搜索,二者之间只是存在如下区别(1)在运动搜索的每一步处理过程中,围绕上一步找到的最优参考位置点(s,t),只选择(s-d,t-d,(s-d,t+d),(s+d,t-d),(s+d,t+d)四个位置点构成新的搜索位置集合,其中d为当前步骤对应的搜索步长。
(2)在最后一步,即搜索步长为1时,构造新的搜索位置集合为上一步找到的最优参考位置点加上其8个相邻位置点。
请同时参阅图7A、图7B,该两图是现有技术中以钻石法方式进行运动搜索的搜索原理示意图;其中钻石法(Diamond Search)又称为菱形法,与上述的新三步法和四步法的处理过程类似,但性能相对于新三步法和四步法而言要好一些。钻石法运动搜索过程是在四步法的基础上,把初始搜索位置集合从以搜索中心为中心的正方形变成了菱形,并在后面的步骤中根据当前找到的最优参考位置点选择新的位置点来扩展搜索位置集合的规则也进行了相应修改根据两种不同情况,扩展的新位置点分别是从菱形的一个顶点向外伸出的一个箭头形状(如图7A所示),或者是沿着菱形的一条边增加的一条外边形状(如图7B所示)。
综上可见,三步法、新三步法、四步法、对数法、十字法和钻石法与全搜索法相比有了很大的改进,都利用了搜索窗中的中心偏置分布特性,也相应地引入了中途停止判断条件,搜索速度相对于全搜索法有了很大的提高,但是这些方法在构造搜索位置集合方面还是采用了比较简单的规则,没有考虑多种图像形状的搜索位置集合,而且完全没有利用当前图像块的运动向量与其周围的一些图像块以及前帧搜索中心周围的一些图像块的运动向量之间的相关性;另外,在上述所有搜索方法中,都默认搜索中心就是参考帧中对应参考图像块的中心点,这个假设在很大程度上有其合理性,但并不是最好的,完全有进一步改进的余地,因为选择更合理的搜索中心以作为搜索过程的起始位置,可以进一步提高搜索速度。
发明内容
本发明要解决的技术问题在于提出一种可以在确保运动估计精度的基础上,能够进一步提高运动估计过程中运动搜索速度的视频压缩的运动估计方法。
为解决上述问题,本发明提出了一种视频压缩的运动估计方法,包括初始参数确定步骤(1)根据当前图像帧中当前块的相邻块及前帧对应位置块的运动向量确定当前块的初始搜索位置集合SMVP;(2)确定第一中途停止判决门限值T1和第二中途停止判决门限值T2;(3)根据当前视频序列的内容确定运动强度门限MG;搜索中心确定步骤
(11)分别针对初始搜索位置集合SMVP中的每个运动向量所对应的位置点进行SAD=Mini∈SMVP(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)]]>运算,其中MB0(x,y)表示当前块中坐标(x,y)的象素值,MBi(x,y)表示初始搜索位置集合SMVP中第i个运动向量所对应的位置块中坐标(x,y)的象素值;(12)分别判断步骤(11)中针对每个运动向量所对应的位置点所求得的SAD是否小于所述第一中途停止判决门限值T1,如果是,将该SAD值对应的运动向量作为运动估计的最终结果;否则继续步骤(11)中后续运动向量所对应位置点的SAD值计算处理;(13)将步骤(11)所求得的最小SADmin对应的位置点确定为搜索中心;(14)根据所述最小SADmin对应的位置点的运动向量预测值(mvx′,mvy′)计算其运动强度因子M=|mvx′|+|mvy′|;(15)判断所述M是否大于所述运动强度门限MG,如果是,执行后续六边形运动搜索步骤;否则执行后续小钻石形运动搜索步骤;六边形运动搜索步骤(21)以确定的搜索中心构造八点六边形,分别对所述六边形的八个位置点进行SAD=Mini∈SHesagon(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)]]>运算,分别求得对应每个位置点的SAD;其中式中SHexagon表示八点六边形中八个位置点所组成的搜索位置集合;(22)找到步骤(21)中计算得到的每个SAD值和所述搜索中心对应的SAD值中最小的SADmin,判断所述最小SADmin对应的位置点是否为所述搜索中心,如果是,执行后续小钻石形运动搜索步骤;否则(23)以步骤(21)所求得的最小SADmin对应的位置点作为新的搜索中心,返回继续执行步骤(21);(24)分别判断步骤(21)中针对每个位置点所求得的SAD值是否小于所述第二中途停止判决门限值T2,如果是,将该SAD值对应的运动向量作为运动估计的最终结果;否则继续步骤(21)中后续运动向量所对应位置点的SAD值计算处理;小钻石形运动搜索步骤(31)以确定的搜索中心构造四点小钻石形,分别对所述小钻石形的四个位置点进行SAD=Mini∈SDiamond(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)]]>运算,分别求得对应每个位置点的SAD;其中式中SDiamond表示四点小钻石形中四个位置点所组成的搜索位置集合;(32)找到步骤(31)中计算得到的每个SAD值和所述搜索中心对应的SAD值中最小的SADmin,判断所述最小SADmin对应的位置点是否为所述搜索中心,如果是,将搜索中心位置点对应的运动向量作为运动估计的最终结果;否则(33)以步骤(31)所求得的最小SADmin对应的位置点作为新的搜索中心,返回继续执行步骤(31);(34)分别判断步骤(31)中针对每个位置点所求得的SAD是否小于所述第二中途停止判决门限值T2,如果是,将该SAD对应的运动向量作为运动估计的最终结果;否则继续步骤(31)后续运动向量所对应位置点的SAD值计算处理。
其中所述初始搜索位置集合SMVP={MVP0,MVPMED,MVPL,MVPUL,MVPU,MVPUR,MVPLAST};其中MVP0表示当前块的零运动向量;MVPL、MVPUL、MVPU,和MVPUR分别表示当前块的左方块、左上方块、上方块和右上方块的运动向量;MVPLAST表示当前块所在图像帧的前一图像帧中对应位置块的运动向量;MVPMED为MVPL、MVPUR和MVPU的中值,或为MVPL、MVPUL和MVPU的中值。
其中所述第一中途停止判决门限值T1=2×Wblock×Hblock;所述第二中途停止判决门限值T2=T1/2;其中Wblock和Hblock分别表示图像块的宽度和高度。
所述步骤(21)中还包括步骤标记已经进行过SAD值计算处理的位置点;后续再执行步骤(21)时,所述分别对六边形的八个位置点进行SAD计算处理的过程包括步骤(211)提取已经做过标记处理的位置点的SAD值;(212)分别对未做过标记处理的位置点进行SAD值计算处理。
所述步骤(31)中还包括步骤标记已经进行过SAD值计算处理的位置点;后续再执行步骤(31)时,所述分别对小钻石形的四个位置点进行SAD计算处理的过程包括步骤(211)提取已经做过标记处理的位置点的SAD值;(212)分别对未做过标记处理的位置点进行SAD值计算处理。
其中所述八点六边形周边上的八个点包括六边形的六个顶点和该六边形中分别位于搜索中心正上方和正下方的两条边的中点。
其中所述四点小钻石形中的四个点分别位于所述搜索中心的正上方、正下方、正左方和正右方。
本发明能够达到的有益效果如下1)由于本发明视频压缩的运动估计方法在运动估计的搜索过程中,提出根据视频序列运动向量的中心偏置分布特性来构造初始搜索位置集合,这样充分利用了当前块运动向量和其周围图像块、以及前帧对应位置图像块的运动向量之间的相关性,因此可以在保证运动估计精度的基础上,提高运动搜索的速度。
2)由于本发明视频压缩的运动估计方法提出了两个较合理的中途停止判决门限值T1、T2,在运动估计过程中,基于这两个中途停止判决条件可以快速的选出运动搜索的最终结果,停止后续计算量大但是搜索精度甚微的后续运动搜索计算,因此也可以在保证运动估计精度的基础上,提高运动搜索的速度。
3)由于本发明视频压缩的运动估计方法是基于构造出的初始搜索位置集合来求取搜索中心的,这种方式选择出的搜索中心更具有其合理性,能够保证更快地搜索到最终的运动向量和对应的参考图像块,因此也保证了在运动估计精度的基础上,提高了运动搜索的速度。
4)本发明视频压缩的运动估计方法使用不断计算确定的搜索中心构造搜索性能较好八点六边形和四点小钻石形搜索形状,这两个搜索形状也能很好地保证在运动估计精度的基础上,提高运动搜索的速度。
图1是现有技术中以全搜索方式进行运动搜索的搜索原理示意图;图2是现有技术中以三步法方式进行运动搜索的搜索原理示意图;图3是现有技术中以新三步法方式进行运动搜索的搜索原理示意图;图4A、图4B是现有技术中以四步法方式进行运动搜索的搜索原理示意图;图5是现有技术中以对数法方式进行运动搜索的搜索原理示意图;图6是现有技术中以十字法方式进行运动搜索的搜索原理示意图;图7A、图7B是现有技术中以钻石法方式进行运动搜索的搜索原理示意图;图8是本发明视频压缩的运动估计方法的初始参数确定和搜索中心确定的主要实现原理流程图;图9是本发明视频压缩的运动估计方法中初始搜索位置集合中各个运动向量与当前块的相对位置示意图;图10是本发明视频压缩的运动估计方法中在确定搜索中心后选择何种搜索形状的选择流程图;图11是本发明视频压缩的运动估计方法中八点六边形的运动搜索处理流程图;
图12是本发明视频压缩的运动估计方法中所构造的八点六边形搜索形状示意图;图13是本发明视频压缩的运动估计方法中四点小钻石形的运动搜索处理流程图;图14是本发明视频压缩的运动估计方法中所构造的四点小钻石形搜索形状示意图;图15是分别采用现有技术全搜索方案和本发明视频压缩的运动估计方法后,整个运动搜索时间占整个视频编码时间的百分比示意图;图16是以视频序列“foreman”为例给出了分别采用现有技术全搜索方案和本发明运动估计方法的每帧图像的编码比特数示意图;图17是以视频序列“foreman”为例给出了分别采用现有技术全搜索方案和本发明运动估计方法的亮度信号PSNR示意图。
具体实施例方式
由上述现有技术的阐述可知,在H.264视频压缩编码技术的运动估计过程中,构造初始搜索位置集合是非常重要的一个环节,其往往决定了运动估计方法水平的高低。大量研究表明,其实在搜索窗口内,真正的运动向量(即全局最优位置参考点)的分布是关于搜索中心点对称的。但是,在搜索窗口内,真正的运动向量的分布往往是不均匀的,而是具有明显的中心偏置(center-biased)特性,也就是说越靠近搜索中心,运动向量的分布概率就越大;并且在以搜索中心为几何中心的不同形状和大小的图像区域内,运动向量具有不同的中心偏置分布概率。其中最理想的图像区域形状是圆,因为在同样面积的图像区域中,圆形形状对应的中心偏置分布概率最大,因此如果确定初始搜索位置集合尽可能接近圆,则可以使得对应的中心偏置分布概率最大。因此,在现有技术已经成熟的运动估计方法中,钻石法性能比三步法、四步法优越,是因为在钻石法中,其初始搜索位置集合从图像区域形状上来说更接近于圆形。
当然,运动估计方法水平的高低不完全是由初始搜索位置集合的选取来决定的,还有运动估计算法控制规则包括搜索步长的变化,中途退出条件等。例如好的中途退出条件可以使得在找到足够好的参考位置点的基础上,而不必把整个运动估计过程进行完,因此可以节省搜索时间,提高搜索效率。同时,因为当前图像块的运动向量必然和其周围相邻的一些图像块以及前帧搜索中心点周围的一些图像块的运动向量存在很大的相关性,因此如果能够充分利用这些相关性提供的相关信息,则可以实现构造更高性能的运动估计方法。
本发明视频压缩的运动估计方法即是根据上述理由,充分利用现有技术中关于中心偏置分布概率的统计研究结果,同时结合当前图像块的运动向量与其周围的一些图像块以及前帧搜索中心点周围的一些图像块的运动向量之间存在的较大相关性,来构造出八点六边形的初始搜索位置集合,同时在搜索范围逐步减少时,切换到搜索效率更高的小钻石法,以结合这两者的特点,就可以使得运动估计方法的算法效率提高,同时还能够保证运动估计过程应有的高精度特性。
下面将结合各个附图对本发明视频压缩的运动估计方法的具体实施原理进行详细的阐述;本发明视频压缩的运动估计方法的具体实施过程主要分为初始参数确定、搜索中心确定、六边形运动搜索和小钻石形运动搜索四个部分。请首先参阅图8,该图是本发明视频压缩的运动估计方法的初始参数确定和搜索中心确定的主要实现原理流程图;其中初始参数确定和搜索中心确定的实现过程包括步骤S10,首先根据当前图像帧中当前块的相邻块及其当前块所在图像帧的前帧对应位置块的运动向量来确定当前块的初始搜索位置集合SMVP,以确定对视频图像进行运动估计处理的初始搜索位置集合SMVP={MVP0,MVPMED,MVPL,MVPUL,MVPU,MVPUR,MVPLAST}(1)
请同时参阅图9,该图是本发明视频压缩的运动估计方法中初始搜索位置集合中各个运动向量与当前块的相对位置示意图,其中式(1)中MVP0表示当前块的零运动向量(MV,Motion Vector);MVPL、MVPUL、MVPU,和MVPUR分别表示当前块的左方块、左上方块、上方块和右上方块的运动向量;MVPLAST表示当前块所在图像帧的前一图像帧中对应位置块的运动向量;MVPMED称为中值运动向量,它可以为MVPL、MVPUR和MVPU三者的中值;当MVPUR不存在或无法得到时,也可以使用MVPUL来代替,即MVPMED也可以为MVPL、MVPUL和MVPU三者的中值;由此可见,上述初始搜索位置集合是由一组和当前块相关的相关块的已知运动估计和特殊点的运动估计组成的,这样选取初始搜索位置集合的目的主要是为运动搜索过程提供更接近最佳MV的搜索起始位置,以减少运动搜索的次数,提高运动搜索的速度。
同时确定在运动搜索过程中,第一中途停止判决门限值T1和第二中途停止判决门限值T2;其中可以确定T1=2×Wblock×Hblock,则第二中途停止判决门限值T2=T1/2;其中该式中Wblock和Hblock分别表示图像块的宽度值和高度值。
同时再根据当前进行运动估计处理的视频序列的内容来确定运动强度门限MG。
步骤S11,计算步骤S10中所确定的初始搜索位置集合SMVP中第一个运动向量所对应位置点的绝对误差和SAD,计算过程采用如下公式SAD=Mini∈SMVP(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)---(2)]]>式中MB0(x,y)表示当前块中坐标(x,y)的象素值,MBi(x,y)表示初始搜索位置集合SMVP中第i个运动向量所对应位置块中的坐标(x,y)的象素值;步骤S12,判断计算得到的SAD值是否小于步骤S10中所确定的第二中途停止判决门限值T1,如果是,执行步骤S13,否则执行步骤S14;步骤S13,将该SAD值对应的运动向量作为运动估计的最终搜索结果;步骤S14,继续使用式(2)计算初始搜索位置集合SMVP中下一个运动向量所对应位置点的绝对误差和SAD,然后返回继续执行步骤S12;步骤S15,在上述步骤S12至步骤S14的反复执行过程中,针对初始搜索位置集合SMVP中7个运动向量所对应的位置点,分别利用式(2)计算得到7个相对应的SAD值,并在这7个SAD值中找到最小SADmin,并以这个最小SADmin所对应的位置点作为后续构造搜索形状的搜索中心。
请参阅图10,该图是本发明视频压缩的运动估计方法中在确定搜索中心后选择何种搜索形状的选择流程图;根据上述确定的搜索中心来确定选择何种搜索形状的过程如下步骤S20,根据上述步骤S15中所确定的最小SADmin对应的搜索中心的运动向量预测值(mvx′,mvy′)来计算其运动强度因子M=|mvx′|+|mvy′|;步骤S21,判断步骤S20中所求得的运动强度因子M是否大于上述步骤S10中所确定的运动强度门限MG,如果是,执行步骤S22;否则执行步骤S23;步骤S22,直接执行后续八点六边形的运动搜索处理;步骤S23,直接执行后续四点小钻石形的运动搜索处理。
请参阅图11,该图是本发明视频压缩的运动估计方法中八点六边形的运动搜索处理流程图;其具体搜索过程如下步骤S30,以上述步骤S15所确定的搜索中心来构造八点正六边形搜索形状;请参阅图12,该图是本发明视频压缩的运动估计方法中所构造的八点六边形搜索形状示意图,如图所示,所构造的六边形搜索形状除了包含六边形的六个搜索顶点之外,还包括该六边形中分别位于搜索中心点正上方和正下方的两条边的中点。这样所构造出的六边形搜索形状共包含9个搜索点(上述八个点和搜索中心点),这样的搜索形状可以实现在基本没有增加六点六边形搜索算法运算复杂度的前提下,大大提高运动搜索的准确度。
步骤S31,利用下式SAD=Mini∈SHexagon(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)---(3)]]>计算八点六边形搜索形状中第一个搜索位置点的SAD值;其中该式(3)中SHexagon表示八点六边形中八个位置点所组成的搜索位置集合;步骤S32,判断计算得到的SAD值是否小于上述步骤S10中确定的第二中途停止判决门限值T2,如果是,执行步骤S33;否则执行步骤S34;步骤S33,将该SAD值所对应的运动向量作为最终的运动搜索结果;步骤S34,继续利用上述式(3)计算八点六边形搜索形状中下一个搜索位置点的SAD值,然后返回继续执行步骤S32;步骤S35,在上述步骤S32至步骤S34的反复执行过程中,针对八点六边形搜索形状中的八个搜索位置点,分别利用式(3)计算得到八个对应的SAD值,并结合上述求得的搜索中心对应的SAD值,找到这九个SAD值中的最小SADmin;步骤S36,判断该最小SADmin对应的位置点是否为该八点六边形的搜索中心,如果是,执行步骤S37;否则执行步骤S38;步骤S37,执行后续四点小钻石形运动搜索处理;步骤S38,以该最小SADmin对应的位置点作为新的搜索中心来构造新的八点六边形搜索形状,然后返回继续执行步骤S31。
显而易见,上述在对每个八点六边形中的九个搜索点(包括搜索中心点)分别计算SAD值过程中,会存在重叠位置点,这里为避免同一位置点SAD值的重复计算,可以采用对已经进行过SAD值计算处理的位置点进行标记处理的方式;后续执行分别对六边形的八个搜索位置点进行SAD计算处理的过程如下直接提取已经做过标记处理的位置点的SAD值;再分别对未做过标记处理的位置点进行SAD值计算处理。
请参阅图13,该图是本发明视频压缩的运动估计方法中四点小钻石形的运动搜索处理流程图;其具体搜索过程如下步骤S41,以上述步骤S15确定的搜索中心来构造四点小钻石形搜索形状;请参阅图14,该图是本发明视频压缩的运动估计方法中所构造的四点小钻石形搜索形状示意图,如图所示,其中所构造的四点小钻石形搜索形状中的四个点分别位于搜索中心的正上方、正下方、正左方和正右方;这样四点小钻石形搜索形状中共包含五个搜索点(上述四个点和搜索中心点);步骤S42,利用下式SAD=Mini∈SDiamond(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)---(4)]]>计算四点小钻石形搜索形状中第一个搜索位置点的SAD值;其中式(4)中SDiamond表示四点小钻石形中四个位置点所组成的搜索位置集合;步骤S43,判断计算得到的SAD值是否小于上述步骤S 10中确定的第二中途停止判决门限值T2,如果是,执行步骤S48;否则执行步骤S44;步骤S44,继续利用上述式(2)计算四点小钻石形搜索形状中下一个搜索位置点的SAD值,然后返回继续执行步骤S43;步骤S45,在上述步骤S43至步骤S44的反复执行过程中,针对四点小钻石形搜索形状中的四个位置点,分别利用式(2)计算得到四个对应的SAD值,并结合上述求得的搜索中心对应的SAD值,找到这五个SAD值中的最小SADmin;步骤S46,判断该最小SADmin对应的位置点是否为该四点小钻石形的搜索中心,如果是,执行步骤S48;否则执行步骤S47;步骤S47,以该最小SADmin对应的位置点作为新的搜索中心来构造新的四点小钻石形搜索形状,然后返回继续执行步骤S42;步骤S48,以该SAD值对应的运动向量作为最终的运动搜索结果。
同理,上述在对每个四点小钻石形中的五个搜索点(包括搜索中心点)分别计算SAD值过程中,会存在重叠位置点,这里也同样为避免同一位置点SAD值的重复计算,可以采用对已经进行过SAD值计算处理的位置点进行标记处理的方式;则后续执行分别对小钻石形的四个搜索位置点进行SAD值计算处理的过程如下直接提取已经做过标记处理的位置点的SAD值;再分别对未做过标记处理的位置点进行SAD值计算处理。
综上,本发明能够带来的有益效果在于可以对采用H.264标准的各种多媒体通信产品,降低其视频编码过程中的运动搜索计算量,从而保证在一定成本下,提高运动估计的精度,并可以把各种多媒体通信产品的运行资源用于产品的其它性能环节的提高。
下面将以实验平台是PIV 2GHz的计算机和H.264软件编解码器来验证本发明运动估计方法的优越性,并用视频图像亮度信号的平均峰值信噪比PSNR和编码比特数/帧作为衡量H.264编码性能和效率的测度参数首先给出利用本发明运动估计方法对H.264测试模型JM8.2进行改进后的编码测试结果,如下表1表1本发明方法对CPU占有比例的测试结果
同时结合上表,请参阅图15,该图是分别采用现有技术全搜索方案和本发明视频压缩的运动估计方法后,整个运动搜索时间占整个视频编码时间的百分比示意图。
再次使用三个比较典型的视频序列“foreman”(运动剧烈)”、“news(中等运动)”和“claire”(运动较小)”共300帧(重复20次)进行试验研究,这些视频序列都是QCIF格式,Y∶U∶V都是4∶2∶0。在H.264视频编码器中,设定量化因子QP为28,且满足H.264的基本框架(Baseline Profile)要求,运动强度门限MG取值为1。
则下面表2分别给出了现有技术全搜索方案和本发明运动估计方法的H.264编码速度值,并图16和图17以运动剧烈的视频序列“foreman”为例给出了分别采用现有技术全搜索方案和本发明运动估计方法的H.264编码效率的变化情况示意图。
表2编码速度和本发明运动估计编码速度比较(单位帧/秒) 由表2和图16、图17可以看出,本发明运动估计方法与现有技术全搜索方式相比,在码率增加不到1%,且图像亮度信号的平均峰值信噪比PSNR下降不到0.1dB的情况下,其视频编码速度可提高10~12倍,这样的视频编码速度完全可以满足以个人计算机为平台的实时视频通信要求,从而可以实现在PC平台上开发出多种基于H.264压缩编码的应用。
因此,采用本发明视频压缩的运动估计方法后,将使得H.264压缩标准在运动搜索速度方面得到较大的提高,从而相应提高了视频编码的速度,对H.264的编码性能具有较大的贡献作用。
在此还应该注意,虽然上面描述了本发明的优选实施方式,但还可以对上述公开的解决方案进行多种变换和改变,只要不偏离本发明权利要求所定义的范围,都落在本发明的保护范围内。
权利要求
1.一种视频压缩的运动估计方法,其特征在于,包括初始参数确定步骤(1)根据当前图像帧中当前块的相邻块及前帧对应位置块的运动向量确定当前块的初始搜索位置集合SMVP;(2)确定第一中途停止判决门限值T1和第二中途停止判决门限值T2;(3)根据当前视频序列的内容确定运动强度门限MG;搜索中心确定步骤(11)分别针对初始搜索位置集合SMVP中的每个运动向量所对应的位置点进行SAD=Mini∈SMVP(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)]]>运算,其中MB0(x,y)表示当前块中坐标(x,y)的象素值,MBi(x,y)表示初始搜索位置集合SMVP中第i个运动向量所对应的位置块中坐标(x,y)的象素值;(12)分别判断步骤(11)中针对每个运动向量所对应的位置点所求得的SAD是否小于所述第一中途停止判决门限值T1,如果是,将该SAD值对应的运动向量作为运动估计的最终结果;否则继续步骤(11)中后续运动向量所对应位置点的SAD值计算处理;(13)将步骤(11)所求得的最小SADmin对应的位置点确定为搜索中心;(14)根据所述最小SADmin对应的位置点的运动向量预测值(mvx′,mvy′)计算其运动强度因子M=|mvx′|+|mvy′|;(15)判断所述M是否大于所述运动强度门限MG,如果是,执行后续六边形运动搜索步骤;否则执行后续小钻石形运动搜索步骤;六边形运动搜索步骤(21)以确定的搜索中心构造八点六边形,分别对所述六边形的八个位置点进行SAD=Mini∈SHexagon(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)]]>运算,分别求得对应每个位置点的SAD;其中式中SHexagon表示八点六边形中八个位置点所组成的搜索位置集合;(22)找到步骤(21)中计算得到的每个SAD值和所述搜索中心对应的SAD值中最小的SADmin,判断所述最小SADmin对应的位置点是否为所述搜索中心,如果是,执行后续小钻石形运动搜索步骤;否则(23)以步骤(21)所求得的最小SADmin对应的位置点作为新的搜索中心,返回继续执行步骤(21);(24)分别判断步骤(21)中针对每个位置点所求得的SAD值是否小于所述第二中途停止判决门限值T2,如果是,将该SAD值对应的运动向量作为运动估计的最终结果;否则继续步骤(21)中后续运动向量所对应位置点的SAD值计算处理;小钻石形运动搜索步骤(31)以确定的搜索中心构造四点小钻石形,分别对所述小钻石形的四个位置点进行SAD=Mini∈SDiamond(Σy=0Hblock-1Σx=0Wblock-1|MB0(x,y)-MBi(x,y)|)]]>运算,分别求得对应每个位置点的SAD;其中式中SDiamond表示四点小钻石形中四个位置点所组成的搜索位置集合;(32)找到步骤(31)中计算得到的每个SAD值和所述搜索中心对应的SAD值中最小的SADmin,判断所述最小SADmin对应的位置点是否为所述搜索中心,如果是,将搜索中心位置点对应的运动向量作为运动估计的最终结果;否则(33)以步骤(31)所求得的最小SADmin对应的位置点作为新的搜索中心,返回继续执行步骤(31);(34)分别判断步骤(31)中针对每个位置点所求得的SAD是否小于所述第二中途停止判决门限值T2,如果是,将该SAD对应的运动向量作为运动估计的最终结果;否则继续步骤(31)后续运动向量所对应位置点的SAD值计算处理。
2.如权利要求1所述的视频压缩的运动估计方法,其特征在于,所述初始搜索位置集合SMVP={MVP0,MVPMED,MVPL,MVPUL,MVPU,MVPUR,MVPLAST};其中MVP0表示当前块的零运动向量;MVPL、MVPUL、MVPU,和MVPUR分别表示当前块的左方块、左上方块、上方块和右上方块的运动向量;MVPLAST表示当前块所在图像帧的前一图像帧中对应位置块的运动向量;MVPMED为MVPL、MVPUR和MVPU的中值,或为MVPL、MVPUL和MVPU的中值。
3.如权利要求1所述的视频压缩的运动估计方法,其特征在于,所述第一中途停止判决门限值T1=2×Wblock×Hblock;所述第二中途停止判决门限值T2=T1/2;其中Wblock和Hblock分别表示图像块的宽度和高度。
4.如权利要求1所述的视频压缩的运动估计方法,其特征在于,所述步骤(21)中还包括步骤标记已经进行过SAD值计算处理的位置点;后续再执行步骤(21)时,所述分别对六边形的八个位置点进行SAD计算处理的过程包括步骤(211)提取已经做过标记处理的位置点的SAD值;(212)分别对未做过标记处理的位置点进行SAD值计算处理。
5.如权利要求1所述的视频压缩的运动估计方法,其特征在于,所述步骤(31)中还包括步骤标记已经进行过SAD值计算处理的位置点;后续再执行步骤(31)时,所述分别对小钻石形的四个位置点进行SAD计算处理的过程包括步骤(211)提取已经做过标记处理的位置点的SAD值;(212)分别对未做过标记处理的位置点进行SAD值计算处理。
6.如权利要求1或4所述的视频压缩的运动估计方法,其特征在于,所述八点六边形周边上的八个点包括六边形的六个顶点和该六边形中分别位于搜索中心正上方和正下方的两条边的中点。
7.如权利要求1或5所述的视频压缩的运动估计方法,其特征在于,所述四点小钻石形中的四个点分别位于所述搜索中心的正上方、正下方、正左方和正右方。
全文摘要
本发明公开了一种视频压缩的运动估计方法,包括初始参数确定步骤,根据初始参数确定搜索中心的步骤,并根据搜索中心确定八点六边形,执行后续八点六边形的运动搜索步骤,或根据搜索中心确定四点小钻石形,执行后续四点小钻石形的运动搜索步骤,从而找到最终的运动估计结果。本发明视频压缩的运动估计方法可以在确保运动估计精度的基础上,进一步提高运动估计过程中运动搜索的速度。
文档编号H04N7/26GK1798339SQ20041010152
公开日2006年7月5日 申请日期2004年12月21日 优先权日2004年12月21日
发明者罗忠, 宋彬, 常义林, 周宁召 申请人:华为技术有限公司