掌桥专利:专业的专利平台
掌桥专利
首页

一种应用于帧间预测的快速运动估计方法及装置

文献发布时间:2024-04-18 20:01:23


一种应用于帧间预测的快速运动估计方法及装置

技术领域

本发明涉及视频编码技术领域,尤其涉及的是一种应用于帧间预测的快速运动估计方法及装置。

背景技术

由于传输网络带宽和存储资源的数据量限制,视频信号的压缩越来越重要。视频压缩也称为视频编码,目的是为了消除视频信号间存在的冗余信息。视频编码标准采用“基于块的预测和变换”的混合编码框架,即输入的视频信号经过编码器中的预测、变换、量化、扫描、熵编码等编码技术处理后,输出比特流,以备传输或存储。

为了减少传输带宽和存储空间,输入的视频信号首先经过预测模块,编码器从若干种预测模式中选择一种最优的预测模式预测得到预测信号,将预测信号与原始信号作差,得到残差信号;残差信号经过变换、量化后由熵编码器进行编码,最终输出比特流。因此,预测技术是视频编码中尤为关键的技术之一。

现有的预测技术主要为帧内预测和帧间预测。帧间预测是将图像序列每一帧分成许多互不重叠的预测单元,利用已编码作为参考帧,在假定块内所有像素的位移量相同的前提下,在参考帧中寻找图像中待编码块的最优匹配参考块。匹配参考块与待编码块的相对位移量称为运动矢量MV(Motion Vector),而运动矢量的搜索过程被称为运动估计。

运动估计是帧间预测中复杂度最高的模块,尤其在前向、后向、双向模式中,在对各个像素步长进行搜索时,需要测试该像素步长下的所有运动矢量残差,这样,整个过程会遍历大量的整数精度MV和亚精度MV,计算量很大,极大地增加了帧间预测时间。

因此,现有技术存在缺陷,有待改进与发展。

发明内容

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种应用于帧间预测的快速运动估计方法及装置,旨在解决现有技术中帧间预测的计算量很大的问题。

本发明解决技术问题所采用的技术方案如下:

一种应用于帧间预测的快速运动估计方法,包括:

获取参考帧以及待编码块在所述参考帧中的运动矢量预测,并根据所述运动矢量预测获取匹配参考块;

将所述匹配参考块作为整数精度运动矢量搜索的起点,按照第一预设快速搜索规则进行整数精度运动矢量搜索,得到最优整数精度运动矢量;

将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,按照第二预设快速搜索规则进行亚精度运动矢量搜索,得到最优亚精度运动矢量。

在一种实现方式中,将所述匹配参考块作为整数精度运动矢量搜索的起点,按照第一预设快速搜索规则进行整数精度运动矢量搜索,得到最优整数精度运动矢量,包括:

将所述匹配参考块作为整数精度运动矢量搜索的起点,在整数精度运动矢量搜索中,按照第一预设快速搜索规则依次进行第一轮钻石搜索、栅格搜索及第二轮钻石搜索;

经第一轮钻石搜索、栅格搜索及第二轮钻石搜索后,得到最优整数精度运动矢量。

在一种实现方式中,所述按照第一预设快速搜索规则依次进行第一轮钻石搜索、栅格搜索及第二轮钻石搜索,包括:

在进行第一轮钻石搜索时,以第一预设步长获取第一候选运动矢量,并对所述第一候选运动矢量进行搜索,得到所述第一候选运动矢量中的第一最优运动矢量;

将与所述第一最优运动矢量相邻的运动矢量作为第二候选运动矢量,并将所述第一最优运动矢量作为起点,搜索所有所述第二候选运动矢量,得到所述第二候选运动矢量中的第二最优运动矢量;

获取第二预设步长,所述第二预设步长大于所述第一预设步长;

以所述匹配参考块为起点,并以第二预设步长获取第三候选运动矢量,将第二最优运动矢量加入到第三候选运动矢量,并对所述第三候选运动矢量进行搜索,得到第三最优运动矢量;

若所述第三最优运动矢量满足第一预设限制条件,则将所述第一最优运动矢量、所述第二最优运动矢量和所述第三最优运动矢量中的最优运动矢量作为第一轮钻石搜索的搜索结果。

在一种实现方式中,获取第三最优运动矢量之后,还包括:

若所述第三最优运动矢量不满足第一预设限制条件,则获取第三预设步长,所述第三预设步长大于所述第二预设步长;

以所述匹配参考块为起点,以第三预设步长获取第四候选运动矢量,并对所述第四候选运动矢量进行搜索,得到第四最优运动矢量;

若所述第四最优运动矢量满足第一预设限制条件,则将所述第一最优运动矢量、所述第二最优运动矢量、所述第三最优运动矢量和所述第四最优运动矢量中的最优运动矢量作为第一轮钻石搜索的搜索结果。

在一种实现方式中,以所述匹配参考块为起点,以第三预设步长获取第四候选运动矢量,并对所述第四候选运动矢量进行搜索,得到第四最优运动矢量之后,还包括:

若所述第四最优运动矢量不满足第一预设限制条件,则获取第四预设步长,所述第四预设步长大于所述第三预设步长;

以所述匹配参考块为起点,以第四预设步长获取第五候选运动矢量,并对所述第五候选运动矢量进行搜索,得到第五最优运动矢量;

将所述第一最优运动矢量、所述第二最优运动矢量、所述第三最优运动矢量、所述第四最优运动矢量和所述第五最优运动矢量中的最优运动矢量作为第一轮钻石搜索的搜索结果。

在一种实现方式中,所述第一预设步长为2像素,所述第二预设步长为4像素,所述第三预设步长为8像素,所述第四预设步长为16像素。

在一种实现方式中,所述按照第一预设快速搜索规则依次进行第一轮钻石搜索、栅格搜索及第二轮钻石搜索,还包括:

在进行栅格搜索时,获取预设搜索范围内的第六候选运动矢量,并对所述第六候选运动矢量进行搜索,得到第六最优运动矢量;

在正方形模板中,以第六最优运动矢量作为起点,在预设搜索范围内的第七候选运动矢量中进行搜索,并迭代搜索直至搜索范围为0,得到栅格搜索的搜索结果;

其中,在每一次迭代搜索中均进行两轮搜索。

在一种实现方式中,所述在每一次迭代搜索中均进行两轮搜索,包括:

在进行当前迭代搜索中的第一轮搜索时,获取所述第七候选运动矢量中的第一轮运动矢量候选,遍历所述第一轮运动矢量候选,记录当前迭代搜索的最优运动矢量和次优运动矢量;

在进行当前迭代搜索中的第二轮搜索时,若最优运动矢量和次优运动矢量是相邻的,则测试所述最优运动矢量和次优运动矢量中间的一个运动矢量;

若最优运动矢量和次优运动矢量不相邻,则测试与所述最优运动矢量相邻的两个运动矢量。

在一种实现方式中,将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,按照第二预设快速搜索规则进行亚精度运动矢量搜索,得到最优亚精度运动矢量,包括:

将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,进行半像素运动矢量搜索,得到最优半像素精度运动矢量;

以所述最优半像素精度运动矢量作为1/4像素搜索的起点,进行1/4像素运动矢量搜索,得到最优1/4像素精度运动矢量;

将所述最优1/4像素精度运动矢量作为最优亚精度运动矢量。

在一种实现方式中,将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,进行半像素运动矢量搜索,得到最优半像素精度运动矢量,包括:

在进行半像素运动矢量搜索的第一轮搜索时,获取所述最优整数精度运动矢量对应的四个半精度候选运动矢量;

遍历所述半精度候选运动矢量,记录所述半精度候选运动矢量中的最优半精度运动矢量和次优半精度运动矢量;

若所述最优半精度运动矢量和次优半精度运动矢量是相邻的,则测试所述最优半精度运动矢量和次优半精度运动矢量中间的一个运动矢量;

若所述最优半精度运动矢量和次优半精度运动矢量不相邻,则测试与所述最优半精度运动矢量相邻的两个运动矢量;

测试完成,得到最优半像素精度运动矢量。

本发明还提供一种应用于帧间预测的快速运动估计装置,包括:

获取模块,用于获取参考帧以及待编码块在所述参考帧中的运动矢量预测,并根据所述运动矢量预测获取匹配参考块;

第一搜索模块,用于将所述匹配参考块作为整数精度运动矢量搜索的起点,按照第一预设快速搜索规则进行整数精度运动矢量搜索,得到最优整数精度运动矢量;

第二搜索模块,用于将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,按照第二预设快速搜索规则进行亚精度运动矢量搜索,得到最优亚精度运动矢量。

本发明还提供一种终端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用于帧间预测的快速运动估计程序,所述应用于帧间预测的快速运动估计程序被所述处理器执行时实现如上所述的应用于帧间预测的快速运动估计方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序能够被执行以用于实现如上所述的应用于帧间预测的快速运动估计方法的步骤。

本发明提供一种应用于帧间预测的快速运动估计方法及装置,所述方法包括:获取参考帧以及待编码块在所述参考帧中的运动矢量预测,并根据所述运动矢量预测获取匹配参考块;将所述匹配参考块作为整数精度运动矢量搜索的起点,按照第一预设快速搜索规则进行整数精度运动矢量搜索,得到最优整数精度运动矢量;将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,按照第二预设快速搜索规则进行亚精度运动矢量搜索,得到最优亚精度运动矢量。本发明通过按照第一预设快速搜索规则进行整数精度运动矢量搜索,按照第二预设快速搜索规则进行亚精度运动矢量搜索,在对各个像素步长进行搜索时,不再测试该像素步长下的所有运动矢量残差,而是选择性的进行搜索,减小了计算量,提高了帧间预测效率。

附图说明

图1是现有技术AVS3中运动估计的钻石搜索。

图2是现有技术AVS3中运动估计的栅格搜索。

图3是现有技术AVS3中的亚精度MV搜索。

图4是本发明中应用于帧间预测的快速运动估计方法较佳实施例的流程图。

图5是本发明中加速的钻石搜索。

图6是本发明中加速的栅格搜索。

图7是本发明中加速的亚精度MV搜索。

图8是本发明中应用于帧间预测的快速运动估计装置较佳实施例的功能原理框图。

图9是本发明中终端的较佳实施例的功能原理框图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了减少编码MV所需的比特数,帧间预测利用了待编码块与其时空间相邻重建块的相关性,即使用相邻已编码块的MV为运动矢量预测(MVP,Motion Vector Prediction),此时仅需传输MVP与实际MV的差值,即运动矢量残差(MVD,Motion Vector Difference)。因此编码器中搜索最优MV等同于以最优MVP为起点搜索最优MVD。

在AVS3标准中,帧间预测主要包含,前向、后向、双向模式、skip/direct模式以及Affine模式,其中均涉及到了运动估计技术。其中前向、后向、双向模式使用同一种运动估计策略,该策略中的运动估计包含整数精度MV搜索和亚精度MV搜索两个步骤。

整数精度MV搜索中采取了钻石搜素(Diamond Search)和栅格搜索(RasterSearch)两种策略。以MVP为搜索起点,整数精度MV搜索采取了三轮MV搜索。

第一、首先采用钻石搜索进行一轮粗搜索,搜索的step分别为2,4,8,16,具体的搜索流程如图1所示,对于step为2的搜索,测试{Δx,Δy}在2像素以内的所有MVD;对于step为4和8的搜索,测试如下所有MVD:

{Δx,Δy}∈(step>>1)*{{-2,0},f-1,1},{0,2},f1,1},{2,0},{1,-1},{0,-2},f-1,-1}}

对于step为16的搜索,测试如下所有MVD:

搜索完成后记录最优的MV及对应的step。

第二、若第一步中的最优step大于5且当前模式不是双向模式,执行第二步栅格搜索。首先根据当前帧和参考帧之间的距离设置最大搜索范围r

r=(refi+1)*max(5,min(w>>1,h>>1))>>1

使用正方形模板进行迭代搜索,即搜索8个MVD:

{Δx,Δy}∈{{-r,-r},{-r,0},{-r,r},{0,r},{r,r},{r,0},{r,-r},{0,-r}}

在每一次搜索后使r=r>>1迭代搜索直至r=0。栅格搜索的流程如图2所示(以在第0个参考帧中搜索16x16像素块的MV为例,此时refi=0,w=h=16)。

第三、完成第一步和第二步搜索后,重复第一步的钻石搜索进行细搜索,区别在于本轮仅搜索step为2和4的MVD。完成第三步搜索后,即可获得整数精度MV搜索的最优MV。

在亚精度MV搜索中,以整数精度MV搜索的最优MV为搜索起点,首先通过对相邻整数像素做线性插值生成亚精度像素,再利用半像素和1/4像素搜索模板搜索最优亚精度MV,其中1/4精度MV的搜索以最优半像素精度MV为起点。亚精度MV搜索的示例如图3所示。

运动估计是帧间预测中复杂度最高的模块,尤其在前向、后向、双向模式中,遍历了大量的整数精度MV和亚精度MV,在遍历过程中需要执行多次SAD或SATD计算,极大地增加了帧间预测时间。如何优化运动估计的搜索流程,在性能损失不明显的前提下,提升帧间预测的速度,是视频编码技术发展过程中的重点研究问题。

为了解决现有运动估计算法复杂度较高的问题,本发明提出了一种应用于帧间预测的快速运动估计方法。具体为前向、后向、双向模式的整数精度运动矢量搜索及亚精度运动矢量搜索设计了快速算法。其中整数精度运动矢量搜索和亚精度运动矢量搜索中快速算法的设计主要应用了相邻运动矢量间的相关性,遵从多轮搜索、先粗后细的思想。在实时编码器的设计中,该快速算法均可以在几乎不损失编码性能的前提下显著节省编码时间。

请参见图4,图4是本发明中应用于帧间预测的快速运动估计的流程图。如图4所示,本发明实施例所述的应用于帧间预测的快速运动估计包括:

步骤S100、获取参考帧以及待编码块在所述参考帧中的运动矢量预测,并根据所述运动矢量预测获取匹配参考块。

本发明为帧间预测的运动估计设计了三种快速搜索算法:整数精度像素的快速钻石搜索、整数精度像素的快速栅格搜索和亚精度像素快速搜索。在实时编码器的设计过程中,经测试发现,这三种方法不仅可以显著节省编码复杂度,且对于编码性能的影响几乎可以忽略不计,非常适用于对编码时间要求较高的商用实时编码器。

如图4所示,本实施例所述的应用于帧间预测的快速运动估计还包括:

步骤S200、将所述匹配参考块作为整数精度运动矢量搜索的起点,按照第一预设快速搜索规则进行整数精度运动矢量搜索,得到最优整数精度运动矢量。

具体地,本步骤是前向、后向、双向模式中的快速整数精度运动矢量搜索。在AVS3现有的整数精度MV搜索中,共执行了两轮钻石搜索和一轮栅格搜索。在本发明中,对于搜索的轮次保持不变仅针对其内部具体搜索细节进行加速。

在一种实现方式中,所述步骤S200具体包括:

步骤S210、将所述匹配参考块作为整数精度运动矢量搜索的起点,在整数精度运动矢量搜索中,按照第一预设快速搜索规则依次进行第一轮钻石搜索、栅格搜索及第二轮钻石搜索;

步骤S220、经第一轮钻石搜索、栅格搜索及第二轮钻石搜索后,得到最优整数精度运动矢量。

具体地,在第一轮钻石搜索中,针对step为2、8、16的搜索,分别设计加速策略,相比AVS3现有的整数精度MV搜索,这种搜索方式的思想是,先通过粗估计大致判定物体的运动方向,再在运动方向上进行细搜索,优势在于不仅减少了遍历的MVD数目(25减少到17),还扩大了搜索的MVD的范围,且不会与后续搜索产生重叠。其中扩大的搜索范围可以为后续的搜索提供快速算法支持。

在一种实施例中,所述步骤S210中“按照第一预设快速搜索规则依次进行第一轮钻石搜索、栅格搜索及第二轮钻石搜索”具体包括:

步骤S211、在进行第一轮钻石搜索时,以第一预设步长获取第一候选运动矢量,并对所述第一候选运动矢量进行搜索,得到所述第一候选运动矢量中的第一最优运动矢量;

步骤S212、将与所述第一最优运动矢量相邻的运动矢量作为第二候选运动矢量,并将所述第一最优运动矢量作为起点,搜索所有所述第二候选运动矢量,得到所述第二候选运动矢量中的第二最优运动矢量;

步骤S213、获取第二预设步长,所述第二预设步长大于所述第一预设步长;以所述匹配参考块为起点,以第二预设步长获取第三候选运动矢量,将第二最优运动矢量加入到第三候选运动矢量,并对所述第三候选运动矢量进行搜索,得到第三最优运动矢量;

步骤S214、若所述第三最优运动矢量满足第一预设限制条件,则将所述第一最优运动矢量、所述第二最优运动矢量和所述第三最优运动矢量中的最优运动矢量作为第一轮钻石搜索的搜索结果。

具体地,所述第一预设步长为2像素,所述第二预设步长为4像素。对于step为2的搜素,不再搜索MVD(Δx,Δy)在2像素以内的所有MV,而是将搜索分为两步。首先以步长2进行搜索,即搜索以下9个MVD候选:

{Δx,Δy}∈{{-2,-2},{-2,0},{-2,2},{0,2},{2,2},{2,0},{2,-2},{0,-2},{0,0}}

。再以第一步搜索到的最优MV为起点,搜索与其相邻的8个MVD候选:

{Δx,Δy}∈{{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}}

对于step为4的搜素,仅搜索四个MVD候选:

{Δx,Δy}∈{{-4,0},{4,0},{0,-4},{0,4}}

本实施例先通过粗估计大致判定物体的运动方向,再在运动方向上进行细搜索,优势在于不仅减少了遍历的MVD数目,还扩大了搜索的MVD的范围,且不会与后续搜索产生重叠。

在一种实施例中,获取第三最优运动矢量之后,还包括:

步骤A10、若所述第三最优运动矢量不满足第一预设限制条件,则获取第三预设步长,所述第三预设步长大于所述第二预设步长;

步骤A20、以所述匹配参考块为起点,以第三预设步长获取第四候选运动矢量,并对所述第四候选运动矢量进行搜索,得到第四最优运动矢量;

步骤A30、若所述第四最优运动矢量满足第一预设限制条件,则将所述第一最优运动矢量、所述第二最优运动矢量、所述第三最优运动矢量和所述第四最优运动矢量中的最优运动矢量作为第一轮钻石搜索的搜索结果。

具体地,所述第一预设限制条件为:

abs(CurBestMV_x-MVP_x)+abs(CurBestMV_y-MVP_y)<(step>>1)

其中CurBestMV是当前搜索到的最优MV,step为当前待搜索步长。

所述第三预设步长为8像素,对于8像素的搜索,在搜索前添加第一预设限制条件,若第一预设限制条件为真,则跳过该搜索。这是由于增加了step为2搜索中的搜索范围,可以判定如果仍然趋向于选择较小的MVD,则物体的运动是趋于微小的,此时应该跳过较大step的搜索。加速的钻石搜索如图5所示。

本实施例首先判断第三最优运动矢量是否满足第一预设限制条件,若满足,则不再需要进行8像素的搜索,减少了计算量,节约了预测时间。

在一种实施例中,所述步骤A20之后还包括:

步骤B10、若所述第四最优运动矢量不满足第一预设限制条件,则获取第四预设步长,所述第四预设步长大于所述第三预设步长;

步骤B20、以所述匹配参考块为起点,以第四预设步长获取第五候选运动矢量,并对所述第五候选运动矢量进行搜索,得到第五最优运动矢量;

步骤B30、将所述第一最优运动矢量、所述第二最优运动矢量、所述第三最优运动矢量、所述第四最优运动矢量和所述第五最优运动矢量中的最优运动矢量作为第一轮钻石搜索的搜索结果。

具体地,所述第四预设步长为16像素,对于16像素的搜索,在搜索前同样添加第一预设限制条件,若第一预设限制条件为真,则跳过该搜索。本实施例首先判断第四最优运动矢量是否满足第一预设限制条件,若满足,则不再需要进行16像素的搜索,减少了计算量,节约了预测时间。

在一种实施例中,所述步骤S210中“按照第一预设快速搜索规则依次进行第一轮钻石搜索、栅格搜索及第二轮钻石搜索”,还包括:

步骤S215、在进行栅格搜索时,获取预设搜索范围内的第六候选运动矢量,并对所述第六候选运动矢量进行搜索,得到第六最优运动矢量;

步骤S216、在正方形模板中,以第六最优运动矢量作为起点,在预设搜索范围内的第七候选运动矢量中进行搜索,并迭代搜索直至搜索范围为0,得到栅格搜索的搜索结果。

其中,在每一次迭代搜索中均进行两轮搜索。具体地,本发明同样为在栅格搜索中的正方形模板匹配设计了加速搜索算法。AVS3现有的正方形模板匹配是在搜索范围r内搜索8个MVD并在搜索完成后使r=r>>1,迭代搜索直至r=0。在设计的加速算法中,对遍历过程中每一轮的正方形模板匹配都设计了相同的加速策略。同样是将每一次迭代中的搜索分为两轮。

在一种实现方式中,“在每一次迭代搜索中均进行两轮搜索”具体包括:

步骤C10、在进行当前迭代搜索中的第一轮搜索时,获取所述第七候选运动矢量中的第一轮运动矢量候选,遍历所述第一轮运动矢量候选,记录当前迭代搜索的最优运动矢量和次优运动矢量;

步骤C20、在进行当前迭代搜索中的第二轮搜索时,若最优运动矢量和次优运动矢量是相邻的,则测试所述最优运动矢量和次优运动矢量中间的一个运动矢量;

步骤C30、若最优运动矢量和次优运动矢量不相邻,则测试与所述最优运动矢量相邻的两个运动矢量。

具体地,在第一轮搜索中遍历4个MVD,即,所述第一轮运动矢量残差包括:

{Δx,Δy}∈{{-r,0},{0,r},{r,0},{0,-r}}

在搜索完成后记录最优和次优的两个MVD:BestMVD和SecBestMVD。第二轮测试的候选为4个MVD:

{Δx,Δy}∈{{-r,r},{r,r},{r,-r},{-r,-r}}

在搜索前进行条件判断,若满足:

(BestMVD

则在第二轮测试中仅测试满足以下条件的MVD:

(Δx==BestMVD

否则仅测试满足以下条件的MVD:

(Δx==BestMVD

本实施例判断的条件是,若第一步搜索的最优和次优MVD是相邻的,则表明物体具有在该方向上的运动趋势,此时仅需进一步测试最优和次优MVD中间的1个MVD;若最优和次优MVD不相邻,则进一步测试与最优MVD相邻的2个MVD。该加速算法可以有效减少每一轮栅格搜索中的遍历的MVD数目(8减少到5或6),图6是加速后的栅格搜索的一个示例,其中共进行了三轮遍历搜索,每一轮搜索的MV数目分别是5、5、6。

如图4所示,本实施例所述的应用于帧间预测的快速运动估计还包括:

步骤S300、将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,按照第二预设快速搜索规则进行亚精度运动矢量搜索,得到最优亚精度运动矢量。

具体地,本步骤是前向、后向、双向模式中的快速亚精度运动矢量搜索。

在一种实施例中,所述步骤S300具体包括:

步骤S310、将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,进行半像素运动矢量搜索,得到最优半像素精度运动矢量;

步骤S320、以所述最优半像素精度运动矢量作为1/4像素搜索的起点,进行1/4像素运动矢量搜索,得到最优1/4像素精度运动矢量;

步骤S330、将所述最优1/4像素精度运动矢量作为最优亚精度运动矢量。

具体地,在AVS3的亚精度MV搜索中,以整数精度MV搜索的最优MV为搜索起点,分别利用半像素和1/4像素搜索模板搜索最优亚精度MV,其中1/4精度MV的搜索以最优半像素精度MV为起点。半像素和1/4像素搜索模板原理上等同于r=1/2和r=1/4的正方形搜索模板,因此快速亚精度MV搜索算法参考了栅格搜索的快速算法,同样采用了多轮搜索、先粗后细的搜索策略。

在一种实现方式中,所述步骤S310包括:

步骤S311、在进行半像素运动矢量搜索的第一轮搜索时,获取所述最优整数精度运动矢量对应的四个半精度候选运动矢量;

步骤S312、遍历所述半精度候选运动矢量,记录所述半精度候选运动矢量中的最优半精度运动矢量和次优半精度运动矢量;

步骤S313、若所述最优半精度运动矢量和次优半精度运动矢量是相邻的,则测试所述最优半精度运动矢量和次优半精度运动矢量中间的一个运动矢量;

步骤S314、若所述最优半精度运动矢量和次优半精度运动矢量不相邻,则测试与所述最优半精度运动矢量相邻的两个运动矢量;

步骤S315、测试完成,得到最优半像素精度运动矢量。

具体地,以半精度MV的搜索为例,在完成像素插值后,首先搜索以下4个MVD:

{Δx,Δy}∈{{-1/2,0},{0,1/2},{1/2,0},{0,-1/2}}

搜索完成后记录最优和次优的两个MVD:BestMVD和SecBestMVD,若二者满足:

(BestMVD

则表示BestMVD和SecBestMVD相邻,且可以反映物体具有在某一方向上的运动趋势,此时仅需测试二者中间的1个MVD,否则测试与BestMVD最相邻的两个MVD。1/4精度MV的搜索算法与半精度MV的搜索算法完全相同。该加速算法可以将亚精度MV搜索中的遍历的MVD数目从16个减少至10-12个,图7是加速后的亚精度MV搜索的一个示例,其中半精度MV的搜索数目是6个,1/4精度MV的搜索数目是5个。

相比现有的钻石搜索,本发明进一步增加了运动矢量由粗到细的搜索轮数,在扩大短步长MV搜索范围的同时显著减少了遍历的MV数目,并设计了由当前最优MVD的幅值决策的搜索提前终止策略。相比现有基于正方形模板匹配的搜索,设计了依赖运动矢量方向相关性的快速算法,具体为通过前一轮搜索的最优和次优MV决策下轮搜索的MV候选的位置和数目。

本发明中使用了大量的多轮搜索,其中某一轮次搜索的运动矢量的数目和位置取决于上一轮的搜索结果,而二者之间的依赖关系是灵活可变的。以基于正方形模板匹配的搜索优化为例,是通过前一轮搜索的最优和次优MV决策下一轮搜索的MV候选的位置和数目。

在一种实施例中,如图8所示,基于上述应用于帧间预测的快速运动估计方法,本发明还相应提供了一种应用于帧间预测的快速运动估计装置,包括:

获取模块100,用于获取参考帧以及待编码块在所述参考帧中的运动矢量预测,并根据所述运动矢量预测获取匹配参考块;

第一搜索模块200,用于将所述匹配参考块作为整数精度运动矢量搜索的起点,按照第一预设快速搜索规则进行整数精度运动矢量搜索,得到最优整数精度运动矢量;

第二搜索模块300,用于将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,按照第二预设快速搜索规则进行亚精度运动矢量搜索,得到最优亚精度运动矢量。

在一种实施例中,本发明还相应提供了一种终端,如图9所示,包括:存储器20、处理器10及存储在所述存储器20上并可在所述处理器10上运行的应用于帧间预测的快速运动估计程序30,所述应用于帧间预测的快速运动估计程序30被所述处理器10执行时实现如上所述的应用于帧间预测的快速运动估计方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序能够被执行以用于实现如上所述的应用于帧间预测的快速运动估计方法的步骤。

综上所述,本发明公开的一种应用于帧间预测的快速运动估计方法及装置,所述方法包括:获取参考帧以及待编码块在所述参考帧中的运动矢量预测,并根据所述运动矢量预测获取匹配参考块;将所述匹配参考块作为整数精度运动矢量搜索的起点,按照第一预设快速搜索规则进行整数精度运动矢量搜索,得到最优整数精度运动矢量;将所述最优整数精度运动矢量作为亚精度运动矢量搜索的起点,按照第二预设快速搜索规则进行亚精度运动矢量搜索,得到最优亚精度运动矢量。本发明通过按照第一预设快速搜索规则进行整数精度运动矢量搜索,按照第二预设快速搜索规则进行亚精度运动矢量搜索,在对各个像素步长进行搜索时,不再测试该像素步长下的所有运动矢量残差,而是选择性的进行搜索,减小了计算量,提高了帧间预测效率。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

相关技术
  • 拍摄方法和装置、电子设备、计算机可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种拍摄控制方法、装置及计算机可读存储介质
  • 一种图像拍摄方法、装置及计算机可读存储介质
  • 一种拍摄画面拼接方法、装置及计算机可读存储介质
  • 拍摄模组保护方法及装置、计算机可读介质和电子设备
  • 拍摄模组保护方法及装置、计算机可读介质和电子设备
技术分类

06120116548783