法律状态公告日
法律状态信息
法律状态
2014-12-17
未缴年费专利权终止 IPC(主分类):H04N7/26 授权公告日:20110601 终止日期:20131028 申请日:20091028
专利权的终止
2011-06-01
授权
授权
2010-06-23
实质审查的生效 IPC(主分类):H04N7/26 申请日:20091028
实质审查的生效
2010-04-28
公开
公开
技术领域
本发明属于视频编码中的运动估计技术领域,特别涉及一种对块运动程度自适应的亚像素快速搜索方法。
背景技术
原始运动视频序列含有大量的数据信息,如果不对这些数据进行编码压缩,很难进行存储和传输。对于视频序列,相邻帧之间具有很高的时间冗余,基于块匹配的运动估计正是减少视频序列帧间冗余的一种有效的方法。现代视频压缩编码标准中已经广泛应用了简单有效的块匹配式的运动估计算法。国际标准H.261采用的是整像素的运动估计。然而实际物体的位移很少是整数像素的,若使用整像素作为单位进行运动估计,将产生较大误差;若使用1/2像素进行描述将能降低很大一部分的运动补偿误差。所以H.263、MPEG-1、MPEG-2等国际标准中相继采用半像素精度的运动估计。同时又因为精确的运动描述可以得到更小的预测误差,获得更好的视觉效果,所以H.264、AVS中引入了1/4像素精度的运动估计技术来提高运动补偿的精度,进一步减少预测误差,提高压缩率。
运动估计是视频编码压缩的核心技术之一,它有效地降低了连续视频帧之间的时间冗余。但同时它也是视频编码中计算量最大、耗时最多的部分。实验证明,运动估计已占整个编码时间的80%左右,因此对运动估计方法进行改进优化成为提高编码速度的关键。
对于整数像素运动估计,已经有大量的快速搜索算法被提出,如三步搜索法(TSS)、二维对数搜索法(TDL)、四步搜索法(FSS)、钻石搜索法(DS)等。相对全搜索而言,这些算法都使整数像素的平均搜索点数有了大幅度的降低,提高了整数像素的搜索速度。此外,“非对称十字形多层次六边形格点搜索”(UMHexagonS,Unsymmetrical-crossMulti-Hexagon-grid Search)采用了多种运动矢量预测及不同形状的搜索模式,能降低90%的整数像素运动搜索复杂度,而平均峰值信噪比(PSNR)的下降小于0.05db,是目前最好的快速整数像素运动估计算法,已被H.264、AVS标准所采纳。
随着上述快速整数像素运动估计算法的大量提出,整数像素运动估计的速度有了显著的改善,这也导致分数像素运动估计的计算量占整个运动估计计算量的比重越来越大,因此如何减少分数像素运动估计的计算量就成了提高视频编码速度的另一途径。
目前广泛采用的亚像素搜索法有全搜索和钻石搜索等。在全搜索中,首先将整数像素搜索得到的最优点作为搜索的中心起点,全搜索其周围的八个1/2像素点,进行差值和匹配,得到最优1/2像素点和1/2像素精度的运动矢量;然后将最优1/2像素点作为搜索的中心起点,搜索其周围的八个1/4像素点,得到最优1/4像素点和运动矢量。全搜索能够获得最精确的1/4像素点,但计算复杂度高,而且每次均需搜索16个像素点,搜索速度慢。钻石搜索法针对全搜索中搜索点数较多的缺点进行了改善,是一种快速搜索法。它以整数像素搜索得到的最优点为中心,以步长为1的小棱形为模板搜索其周围的4个1/4像素点,若最优点仍在中心则结束搜索,否则以新的最优点为中心重复小棱形搜索,直到最优点在中心或搜索到亚像素的边界。这样其每次搜索的像素点数就不固定,最少为搜索4个亚像素点,最多为搜索到亚像素边界时需要搜索28个亚像素点.统计显示,运动不剧烈的视频序列,其最优亚像素点紧邻着最优整数像素点的概率高达90%;但是随着视频序列运动越复杂、越剧烈,其最优亚像素点就越向外围扩散,紧挨着最优整数像素点的概率只有30%左右。因此对于运动缓慢的视频序列,钻石搜索能显著提高搜索速率,只需要搜索4个或8个亚像素点就可以找到最优匹配点。但是对于运动复杂、剧烈的视频序列,钻石搜索的平均搜索点数就会明显增多,而且容易陷入局部最优,使得搜索的速度和图像质量都会变差。<清华大学学报>(自然科学版),2007,Vo l.47,No.1:25-27,31、作者为张婷婷、王熹微所写的文章“分数像素精确运动搜索快速算法”中既是采用的这类方法。
综上,设计一种快速亚像素搜索方法,使其对与不同运动程度的视频序列都能获得更好的搜索速度、更优的搜索结果,成为改善亚像素搜索和运动估计的关键。
发明内容
为了克服现有的亚像素搜索方法的缺陷和不足,本发明提出了一种块运动自适应的亚像素快速搜索方法。
本发明的技术方案是采用以下方式来实现的。
一种块运动自适应的亚像素快速搜索方法,步骤如下:
1)开始
2)运动矢量预测
在对当前块进行运动搜索之前,首先进行运动矢量预测,得到预测运动矢量pred_MV,和预测运动矢量所指向点的运动补偿代价值pred_mcost;
3)整数像素搜索
以运动矢量预测得到的最佳预测起点作为整数像素搜索的起点,对当前块进行整数像素搜索,得到整数像素最优点的位置和运动补偿代价mincost;
4)开始亚像素搜索
将整数像素最优点作为亚像素搜索的起点;
5)1/2和1/4像素插值
插值得到1/2像素点和1/4像素点;
6)判断当前宏块(块)的运动剧烈程度
对当前块运动剧烈程度的判断采用运动补偿代价值之间求差值的方法,即比较mincost和pred_mcost的大小,若mincost-pred_mcost<βpred_mcost,说明整数像素搜索的代价结果接近于预测值,宏块(块)运动缓慢,转入步骤8);否则,说明整数像素搜索结果与预测值之间差别较大,宏块(块)的运动剧烈,转入步骤7)中;
7)进行大菱形搜索
当前块的运动较剧烈,最优亚像素点的分布发散,采用搜索步长大的大棱形进行1/2像素精度的搜索定位,防止落入局部最优:该步骤中以最优整数像素点为搜索中心,以步长为2的大菱形为模板,搜索与最优整数像素点邻近的水平、垂直方向上的4个1/2像素点,计算该4个1/2像素点处块匹配的代价值mcost,比较mcost与中心整数像素最优点的mincost的大小,若有mcost小于mincost,则将具有最小mcost的1/2像素点作为下一步搜索的起始点,并将此mcost作为新的mincost;否则,仍将最优整数像素点作为下一步搜索的起始点,并保持mincost不变,转入下一步;
8)进行第一级小菱形搜索
当前块的运动缓慢,或者已经经过大棱形搜索的定位,采用步长小的小棱形搜索进行1/4像素精度的细化:该步骤以整数像素最优点或步骤7)中得到的新的最优点作为小棱形搜索的起点,以步长为1的小棱形为模板,搜索起点周围的4个1/4像素点,计算块匹配的代价值mcost,得到mcost最小的点;
9)判断最优点是否在小菱形的中心
第一级小棱形搜索后,若中心点的代价值仍为最小,则该点即为亚像素搜索的最优点,转入步骤11);否则,将具有最小mcost的1/4像素点作为新的搜索中心,进入步骤10);
10)进行第二级小菱形搜索
以第一级小棱形搜索得到的最优点为中心,步长为1的小棱形为模板,再进行一次小棱形搜索,将此次搜索中具有最小mcost的点(包括中心)作为亚像素搜索的最优点,转入下一步;
11)亚像素搜索结束
将第一级小棱形搜索的中心点(若在第一级小棱形搜索时中心最优),或者第二级小棱形搜索得到的最优点作为亚像素搜索的最优点,结束亚像素搜索;
12)返回亚像素搜索最优点位置的MV、运动代价,宏块(块)运动估计结束。
步骤2)中运动矢量预测可以采用中值预测、原点预测、uplayer预测、前帧对应块预测、相邻参考帧预测等各种预测形式。类似运动矢量,相应的运动补偿代价mcost也具有很强的相关性。因此将各预测运动矢量所指向点的运动补偿代价值分别作为pred_mcost,作为整数像素搜索后mincost是否足满足准确的标尺,使用步骤6)中的阈值判断公式,判断整数像素搜索的满意度和宏块(块)的运动程度。
步骤3)中的整数像素搜索可以采用已有的成熟的UMhexagonS算法。
步骤6)中对宏块(块)运动程度的判断采用比较mincost-pred_mcost与βpred_mcost之间求差值的方法。其中,
Bsize为块的尺寸,blocktype为块的类型,α为常数。
根据步骤6)对当前块运动类型的判断,若当前块运动缓慢,则只进行1或2级的小棱形搜索,只需搜索4或8个点就可以迅速找到最佳亚像素点;若当前块运动剧烈,则先进行1级大棱形搜索定位,防止陷入局部最优,再以大棱形搜索的最优点为中心进行1或2级小棱形搜索,这样即能提高搜索精度又可以有效减少搜索点数。
大量实验统计表明,宏块运动越缓慢其最优亚像素点越收敛于最优整数像素点附近,反之越发散;同时,在水平、垂直方向上的亚像素点为最优的概率远远高于其他的亚像素点。本发明方法充分利用了宏块运动剧烈程度与最优亚像素点分布特性之间的关系,并结合运动矢量预测和运动补偿代价预测,依据当前块的运动程度自适应的采用不同的搜索模板,弥补了原有方法的不足,使得对不同运动程度的宏块都能以最少的搜索点数找到四分之一像素精度的最优点。该方法可以应用在AVS、H.264等视频编码标准中以改善编码器的性能。
本发明方法适用于AVS、H.264或其它采用1/4像素精度运动估计的视频编码领域,是一种新的对宏块(块)运动程度自适应的亚像素搜索方法,对于不同运动程度的块都能以最少的搜索点数迅速的找到最优亚像素点,在保证视频压缩质量基本不变的情况下,有效地减少了视频编码的时间和计算的复杂度。实验结果表明,对不同运动程度的视频序列,该发明都具有很好的搜索速率和搜索精度。将本发明方法应用于AVS参考模型,编码各种视频序列,如foreman_qcif.yuv,akiyo_qcif.yuv,container_qcif.yuv,mobile_qcif.yuv,bus_cif.yuv,分别统计其编码时间、峰值信噪比(PSNR)和比特率,结果表明,编码时间普遍比原来缩短了20%-30%,峰值信噪比(PSNR)仅仅下降了0.01-0.03db,比特率也基本保持不变。该发明可以使AVS、H.264应用到很多的硬件平台,显著降低编码器的计算复杂度,缩短编码时间,提高性能。
附图说明
图1为本发明方法的流程框图。其中1-12为该方法中的每一个步骤。
图2为最优整数像素点周围由插值得到的的1/2像素点、1/4像素点的分布情况。
图3a为经过判断,当前块为运动剧烈的块,首先采用的大棱形搜索模板,图中黑色即为待搜索的像素点。图3b、图3c所示为经过大棱形搜索后,以得到的最优1/2像素点为中心(假设顶端的1/2像素点为最优)进行的1级、2级小棱形搜索情况。
图4a所示为经过判断,当前块为运动缓慢的块,直接进行的1级小棱形搜索。图4b所示为1级小棱形搜索后,最优点不在中心(假设在右端),进行的2级小棱形搜索。
具体实施方法
下面结合附图和实施例对本发明做进一步说明,但不限于此。
实施例:
本发明实施例如图1所示,一种块运动自适应的亚像素快速搜索方法,步骤如下:
1)开始
2)运动矢量预测
在对当前块进行运动搜索之前,首先进行运动矢量预测,得到预测运动矢量pred_MV,和预测运动矢量所指向点的运动补偿代价值pred_mcost;
3)整数像素搜索
以运动矢量预测得到的最佳预测起点作为整数像素搜索的起点,对当前块进行整数像素搜索,得到整数像素最优点的位置和运动补偿代价mincost;
4)开始亚像素搜索
将整数像素最优点作为亚像素搜索的起点;
5)1/2和1/4像素插值
插值得到1/2像素点和1/4像素点;
6)判断当前宏块(块)的运动剧烈程度
对当前块运动剧烈程度的判断采用运动补偿代价值之间求差值的方法,即比较mincost和pred_mcost的大小,若mincost-pred_mcost<βpred_mcost,说明整数像素搜索的代价结果接近于预测值,宏块(块)运动缓慢,转入步骤8);否则,说明整数像素搜索结果与预测值之间差别较大,宏块(块)的运动剧烈,转入步骤7)中;
7)进行大菱形搜索
当前块的运动较剧烈,最优亚像素点的分布发散,采用搜索步长大的大棱形进行1/2像素精度的搜索定位,防止落入局部最优:该步骤中以最优整数像素点为搜索中心,以步长为2的大菱形为模板,搜索与最优整数像素点邻近的水平、垂直方向上的4个1/2像素点,计算该4个1/2像素点处块匹配的代价值mcost,比较mcost与中心整数像素最优点的mincost的大小,若有mcost小于mincost,则将具有最小mcost的1/2像素点作为下一步搜索的起始点,并将此mcost作为新的mincost;否则,仍将最优整数像素点作为下一步搜索的起始点,并保持mincost不变,转入下一步;
8)进行第一级小菱形搜索
当前块的运动缓慢,或者已经经过大棱形搜索的定位,采用步长小的小棱形搜索进行1/4像素精度的细化:该步骤以整数像素最优点或步骤7)中得到的新的最优点作为小棱形搜索的起点,以步长为1的小棱形为模板,搜索起点周围的4个1/4像素点,计算块匹配的代价值mcost,得到mcost最小的点;
9)判断最优点是否在小菱形的中心
第一级小棱形搜索后,若中心点的代价值仍为最小,则该点即为亚像素搜索的最优点,转入步骤11);否则,将具有最小mcost的1/4像素点作为新的搜索中心,进入步骤10);
10)进行第二级小菱形搜索
以第一级小棱形搜索得到的最优点为中心,步长为1的小棱形为模板,再进行一次小棱形搜索,将此次搜索中具有最小mcost的点(包括中心)作为亚像素搜索的最优点,转入下一步;
11)亚像素搜索结束
将第一级小棱形搜索的中心点(若在第一级小棱形搜索时中心最优),或者第二级小棱形搜索得到的最优点作为亚像素搜索的最优点,结束亚像素搜索;
12)返回亚像素搜索最优点位置的MV、运动代价,宏块(块)运动估计结束。
机译: 基于整数像素搜索和与每个宏块相对应的随机变量的SAD值的快速半像素搜索方法
机译: 基于整数像素搜索和对应于每个宏块的随机变量的基于SAD值的快速半像素搜索方法
机译: 基于整数像素搜索和与每个宏块相对应的随机变量的SAD值的快速半像素搜索方法