CN113115038A - 运动估计方法、装置、电子设备及可读存储介质 - Google Patents

运动估计方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN113115038A
CN113115038A CN202110412068.0A CN202110412068A CN113115038A CN 113115038 A CN113115038 A CN 113115038A CN 202110412068 A CN202110412068 A CN 202110412068A CN 113115038 A CN113115038 A CN 113115038A
Authority
CN
China
Prior art keywords
search
target
macro block
point
pred
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110412068.0A
Other languages
English (en)
Other versions
CN113115038B (zh
Inventor
张勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202110412068.0A priority Critical patent/CN113115038B/zh
Publication of CN113115038A publication Critical patent/CN113115038A/zh
Application granted granted Critical
Publication of CN113115038B publication Critical patent/CN113115038B/zh
Priority to EP22787522.6A priority patent/EP4311236A4/en
Priority to PCT/CN2022/086324 priority patent/WO2022218299A1/zh
Priority to US18/380,640 priority patent/US20240048753A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请实施例提供一种运动估计方法、装置、电子设备及可读存储介质,属于通信技术领域。方法包括:根据所述目标宏块中的目标位置的前一帧的运动矢量,确定进行非对称十字交叉搜索的第一搜索范围;根据所述目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定进行扩展多层次六边形格点搜索的第二搜索范围;本申请实施例对视频编码的运动估计过程中的搜索范围选取进行了优化,能够更加精确和快速的确定最优匹配块和最优运动矢量,能避免搜索落入局部最优,且能够减少运算复杂度和编码时间,提高了视频编码的高效性和实效性。

Description

运动估计方法、装置、电子设备及可读存储介质
技术领域
本申请实施例涉及通信技术领域,具体涉及一种运动估计方法、装置、电子设备及可读存储介质。
背景技术
视频编码以视频信号的高度相关性和人眼的视觉特性为出发点,通过恰当的编码方式,消除各种相关性和人眼特性所产生的冗余,来达到压缩视频信号、减小传输码率的目的。视频信号的相关性可以分为时域相关性和空域相关性。空域相关性,指的是同一图像中,相邻像素之间的相似性,其主要通过帧内预测(Intra-Frame Prediction)编码来消除;时域相关性,指的是图像序列中相邻的图像之间的相似性,其主要通过帧间预测(Inter-Frame Prediction)编码来消除。帧间预测编码又称为运动补偿预测(Motion CompensatedPrediction,MCP)编码。帧间预测编码的目的,就是为当前像编码块寻找最相似的块(匹配块),并根据预测块的位置,得出两者之间的空间位置的相对偏移量,即运动矢量(MotionVector,MV)。通过搜索得到运动矢量的过程称为运动估计(Motion Estimation,ME),根据运动矢量,从指定的参考帧中找到预测块的过程称为运动补偿。预测编码的原理具体如图1所示。
运动估计是预测编码的关键技术,运动估计越准确,预测补偿的图像质量越高,补偿的残差就越小,补偿编码所需位数越少,比特率也就越小。同时,为了找出与当前块最相似的块,需要进行大量的搜索工作。运动估计是视频编码中计算复杂度最高的模块,通常其运算复杂度占整个编码器的50~70%。
运动估计方法包括全搜索和快速搜索两类。全搜索方法是对搜索范围内的所有点按照顺序进行搜索,逐点比较代价函数,选取使代价函数最小的点,即最优点。全搜索需要遍历搜索范围内的所有像素点,能够找到该块的代价函数最优解,但是复杂度也最高。快速搜索方法的基本思想是减小候选搜索点数,通常需要设计一些列有效的搜索模式,以尽可能少的搜索点数发现最优解。目前的快速搜索方法候选搜索点数较多,搜索点之间仍然存在较大的冗余,搜索匹配过程中容易落入局部最优。
发明内容
本申请实施例的目的是提供一种运动估计方法、装置、电子设备及可读存储介质,能够解决在减少运算复杂度和编码时间的同时避免搜索落入局部最优。
本申请是这样实现的:
第一方面,本申请实施例提供一种运动估计方法,所述方法由电子设备执行,所述方法包括:
在目标宏块中进行起始搜索点搜索,得到起始搜索点;
在根据所述起始搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围;
根据所述第一搜索范围,进行非对称十字交叉搜索,得到第一目标搜索点;
在根据所述起始搜索点的代价值和所述第一目标搜索点的代价值判断未提前截止的情况下,进行矩形窗全搜索,得到第二目标搜索点;
在根据所述起始搜索点的代价值和所述第二目标搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围;
根据所述第二搜索范围,进行扩展多层次六边形格点搜索,得到第三目标搜索点;
在根据所述起始搜索点的代价值和所述第三目标搜索点的代价值判断未提前截止的情况下,进行扩展六边形搜索,得到第四目标搜索点;
根据所述第四目标搜索点,确定所述目标宏块的运动矢量。
第二方面,本申请实施例提供一种运动估计装置,所述装置应用于电子设备,所述装置包括:
第一搜索模块,用于在目标宏块中进行起始搜索点搜索,得到起始搜索点;
第一确定模块,用于在根据所述起始搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围;
第二搜索模块,用于根据所述第一搜索范围,进行非对称十字交叉搜索,得到第一目标搜索点;
第三搜索模块,用于在根据所述起始搜索点的代价值和所述第一目标搜索点的代价值判断未提前截止的情况下,进行矩形窗全搜索,得到第二目标搜索点;
第二确定模块,用于在根据所述起始搜索点的代价值和所述第二目标搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围;
第四搜索模块,用于根据所述第二搜索范围,进行扩展多层次六边形格点搜索,得到第三目标搜索点;
第五搜索模块,用于在根据所述起始搜索点的代价值和所述第三目标搜索点的代价值判断未提前截止的情况下,进行扩展六边形搜索,得到第四目标搜索点;
第三确定模块,用于根据所述第四目标搜索点,确定所述目标宏块的运动矢量。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述运动估计方法的步骤。
第四方面,本申请实施例提供一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述运动估计方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例还提供一种计算机程序产品,所述计算机程序产品被存储在非易失的存储介质中,所述计算机程序产品被配置成被至少一个处理器执行以实现上文所述的方法的步骤。
第七方面,本申请实施例还提供一种执行装置,所述执行装置被配置成用于执行上文所述的方法。
本申请实施例对视频编码的运动估计过程中的搜索范围选取进行了优化,能够更加精确和快速的确定最优匹配块和最优运动矢量,能避免搜索落入局部最优,且能够减少运算复杂度和编码时间,提高了视频编码的高效性和实效性。
附图说明
图1为预测编码的原理示意图;
图2为UMHexagonS算法的应用场景示意图;
图3为UMHexagonS算法的流程示意图;
图4为本申请实施例提供的运动估计方法的流程示意图;
图5为本申请实施例提供的应用场景示意图之一;
图6a为本申请实施例提供的应用场景示意图之二;
图6b为本申请实施例提供的应用场景示意图之三;
图6c为本申请实施例提供的应用场景示意图之四;
图6d为本申请实施例提供的应用场景示意图之五;
图7为本申请实施例提供的运动估计装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图之一;
图9为本申请实施例提供的电子设备的结构示意图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
为更好理解本申请实施例的方案,首先对以下内容进行介绍。
为了减少运动估计的复杂度,一系列快速搜索方法被提出。快速搜索方法的基本思想是减小候选搜索点数,通常需要设计一些列有效的搜索模式,以尽可能少的搜索点数发现最优解。这其中比较经典的方法包括:利用运动矢量的中心偏置分布特性的三步搜索算法(Three Step Search,TSS)、新三步搜索算法(Novel Three Step Search,NTSS)、四步搜索算法(Four Step Search,FSS)、基于块的梯度下降搜索算法(Block-Based GradientDescent Search,BBGDS)、钻石搜索算法(Diamond Search,DS)以及六边形搜索算法(Hexagon-based Search,HEXBS);利用运动矢量时空相关性的运动矢量场自适应搜索算法(Motion Vector Field Adaptive Search Technology,MVFAST)、非对称十字形-多层次六边形格点搜索(Unsymmetrical-cross Multi-Hexagon grid Search,UMHexagonS)、增强型预测区域搜索(Enhanced Predictive Zonal Search,EPZS)。以上快速搜索算法的主要依据是从最优位置开始,预测失真随着距离而呈单调上升趋势。因此,在进行运动估计时,从某个搜索位置开始,找到每一轮搜索的失真度最小的位置,以这个位置为基础再开始下一轮的搜索,最终达到最优位置。这些快速搜索算法一般采用紧凑的偏向中心的搜索模式,用最快的方式获得最优解。
UMHexagonS算法
UMHexagonS搜索采用细致的全局搜索,再配合以小范围的局部搜索的策略,采用多层次多种形状的模板进行匹配,同时利用时空相关性进行运动矢量的估计。UMHexagonS搜索方法具有如下特点:
(1)UMHexagonS方法所采用的起始点预测,综合利用了帧内、帧间相邻块的运动矢量相关性,以及宏块划分技术所带来的不同尺寸块的运动相关性,因而可以选出最能反映当前块运动趋势的点作为起始点,提升了估计的准确率。
(2)UMHexagonS方法每步的搜索都与图像内容有关,其搜索模板分为三类:大范围粗搜索混合模板,细搜索中六角形模板,精细搜索小菱形模板。对不同的内容进行不同的搜索,搜索性能得到了进一步的改善。
(3)UMHexagonS一方面采用了减少搜索块的快速搜索方法,另一方面又通过搜索预测提前结束搜索,所以其运算量相对于全搜索方法可节约90%以上,同时还能较好的实现率失真优化,其性能接近全搜索方法。
视频编码的MV搜索中,运动估计性能评价基于率失真准则,使用如下的代价函数:
Figure BDA0003024262100000061
简称式(1);
式(1)中λMOTION为拉格朗日乘子,当使用绝对误差和(Sum of AbsoluteDifference,SAD)作为失真度量时,其值为:
Figure BDA0003024262100000062
简称式(2),
其中,
Figure BDA0003024262100000063
为候选运动矢量,
Figure BDA0003024262100000064
为当前编块的中值预测矢量(MVP),
Figure BDA0003024262100000065
代表对运动矢量差分编码所需的比特数,QP为量化参数。
式(1)中SAD的计算如下:
Figure BDA0003024262100000071
简称式(3);
式(3)中s是当前待编码图像的像素点,c是运动估计中参考图像的像素点,Bx和By分别表示宏块在水平方向(x轴)和垂直方向(y轴)的范围大小,在式(3中)Bx和By的取值可以是16、8、4。
参见图2和图3,UMHexagonS算法包括四步不同的搜索模式:step1起始搜索点搜索;step2非对称十字交叉搜索;step3非均匀多层次六边形格点搜索;step4扩展六边形搜索。图2给出了一个搜索范围为W=16的搜索窗口内搜索过程的示意图(假设初始搜索点为(0,0))。图3给出了UMHexagonS搜索的流程图,其中cur_cost为式(1)计算得到的代价值,pred_SAD是对当前块的最佳匹配块代价值的预测值,来自先前编码的临近块,beta1、beta2为阈值系数,它们由当前QP和当前块尺寸大小决定。
假设搜索范围为W,结合图3所示的流程图,UMHexagonS搜索步骤如下:
step1:起始搜索点搜索,确定当前最佳起始搜索点;
(a).中值预测:利用空间相关性,取已求出的当前块左、上、右上相邻块的运动矢量的中值MVpred_MP
(b).原点预测:考虑到静止或者固定背景的情况,取MVpred=(0,0);
(c).上层预测:利用运动估计多宏块划分的特点,取已求出的、同位置、上一层(uplayer)大一倍块的运动矢量MVpred_UP
(d).相应块预测:利用时间相关性,取已求出的、前一帧同位置的运动矢量MVpred_CP
(e).相邻参考帧预测:利用时间相关性,取已求出的、前一参考帧中当前块的MV按比例调节,得到当前的MVpred_REF
将上述各预测模式得到的预测MV组成预测矢量集S,然后从集合S中搜索一个对应代价函数最小的候选运动矢量作为搜索起始点:
Figure BDA0003024262100000081
简称式(4),其中mi∈S;
其中,arg表示使目标函数J取最小值时的变量值;
然后根据当前最佳预测起始点的代价值执行提前截止(Early_Termination)判断操作,判断是否提前截止。一个好的起始预测点(即接近于最优位置,对应的代价值较小),将会加快搜索过程;否则,大量的候选点将被搜索,从而造成编码器复杂度的上升。
进一步地,在判断未提前截止后,对宏块的大小做一次判断,如果当前运动估计的宏块大小为4×4,则直接跳转到步骤step4-1:六边形搜索;如果当前运动估计的宏块大小不等于4×4(例如为其它大小,16×16、8×8、8×16等),则需要按流程进行step2:非对称十字交叉搜索。
step2:非对称十字交叉搜索;
由于自然界物体的水平运动水平方向要比垂直方向剧烈一些,因而采用非对称十字搜索方法,所谓非对称是指以搜索起始点为中心的十字搜索范围水平方向为垂直方向的2倍。本步候选运动矢量集合Ω1为:
Ω1={m=(mx,my)|m=(cmx±2i,cmy),i=0,1,2,……W/2;
m=(cmx,cmy±2j),j=0,1,2,……W/4}简称式(5);
式(5)中cm为step1得到的最佳预测起始点,即cm=mmin
从Ω1中搜索一个代价函数最小的运动矢量作为当前最佳运动矢量,即:
Figure BDA0003024262100000082
简称式(4),其中mi∈Ω1
然后根据当前最佳运动矢量的代价值执行Early_Termination操作,判断是否提前截止。
step3:非均匀多层次六边形格点搜索,此步分两个子步骤:
step3-1:5×5小矩形窗全搜索;
需要说明的是,矩形窗口的大小可视宏块的搜索范围来确定,例如图2示出的是16×16的宏块,则可以选用5×5的矩形窗,若宏块的搜索范围改变,则矩形窗的大小也可适应性改变。
本步骤中候选运动矢量集合Ω2为:
Ω2={m=(mx,my)||cmx-mx|≤2,|cmy-my|≤2},cm=mmin2,简称式(7);
从Ω2中搜索一个代价函数最小的运动矢量作为当前最佳运动矢量,即:
Figure BDA0003024262100000091
简称式(8),其中mi∈Ω2
然后根据当前最佳运动矢量的代价值执行Early_Termination操作,判断是否提前截止。
step3-2:扩展的多层次六边形格点搜索;
本步骤搜索中使用的超六边形模板中的16个搜索点(对应图2所示的16×16的宏块)为:
Ω16-HP={m=(x,y)|m=(±4,±2),(±4,±1),(±4,0),(±2,±3),(0,±4),简称式(9);
采用下述方法扩展搜索区:
for(k=0,k<W/4,k++)
{
k={m=(mx,my)|mx=cmx+kx’,my=cmy+ky’,(mx,my)∈Ω16-HP},cm=mmin3
}
从∏k中搜索一个代价函数最小的运动矢量作为当前最佳运动矢量,即:
Figure BDA0003024262100000092
简称式(10),其中mi∈∏k
然后根据当前最佳运动矢量的代价值执行Early_Termination操作,判断是否提前截止。
step4:扩展六边形搜索,此步分为两个子步骤:
step4-1:六边形搜索;
本步候选运动矢量集合Ω3为:
Ω3={m=(mx,my)|m=(cmx±2,cmy),(cmx±1,cmy±2)},cm=mmin4,简称式(11);
从Ω3中搜索一个代价函数最小的运动矢量作为当前最佳运动矢量,即:
Figure BDA0003024262100000101
简称式(12),其中mi∈Ω3
上述步骤不断重复,即使用六边形模板反复搜索,直至最佳预测点在六边形的中点为止。
step4-2:小菱形搜索;
本步候选运动矢量集合Ω4为:
Ω4={m=(mx,my)|m=(cmx±1,cmy),(cmx,cmy±1)},cm=mmin5,简称式(13);
从Ω4中搜索一个代价函数最小的运动矢量作为当前最佳运动矢量,即:
Figure BDA0003024262100000102
简称式(12),其中mi∈Ω4
上述步骤不断重复,即使用小菱形模板反复搜索,直至最佳预测点在小菱形的中点为止,得到最终的运动矢量。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的运动估计方法进行详细地说明。
参见图4,本申请实施例提供一种运动估计方法,该方法由电子设备执行,需要说明的是,本申请实施例的方法针对UMHexagonS算法流程做进一步改进优化,方法包括如下步骤:
步骤401:在目标宏块中进行起始搜索点搜索,得到起始搜索点;
在本申请实施例中,目标宏块指的是当前进行运动估计的宏块,该宏块的大小可以使16×16、8×8、8×16等,本申请实施例对此不做具体限定。
具体地,其实起始搜索点搜索的方式可以参照上文UMHexagonS算法中step1的具体过程。
步骤402:在根据起始搜索点的代价值判断未提前截止的情况下,根据目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围;
步骤403:根据第一搜索范围,进行非对称十字交叉搜索,得到第一目标搜索点;
在本申请实施例中,通过代价函数(具体为式(1))计算起始搜索点的代价值,然后根据该起始搜索点的代价值进行Early_Termination判断,具体判断方式可以参照上文UMHexagonS算法中Early_Termination判断操作。
在一些实施方式中,在判断未提前截止后,对宏块的大小做一次判断,如果当前运动估计的宏块大小为4×4,则直接跳转到UMHexagonS算法中的step4-1:六边形搜索;如果当前运动估计的宏块大小不等于4×4(例如为其它大小,16×16、8×8、8×16等),则需要按流程进行UMHexagonS算法中step2:非对称十字交叉搜索。
在本申请实施例中,在判断未提前截止的情况下,根据目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围。
现有非对称十字搜索是基于视频序列中水平方向的运动幅度要远远大于垂直方向的假设,而将水平方向的搜索范围设置为垂直方向的2倍。该方法可能会导致“局部最优”的问题。在实际复杂多变的视频序列中,该假设并不一定成立,对于某些视频序列,在垂直方向也存在剧烈的运动,按原方法搜索可能会得到次优结果。
基于上述理由,在本申请实施例中,根据宏块相同位置上一帧的MV来动态设置当前帧非对称十字搜索在水平、垂直方向的搜索长度。
具体地,目标宏块中的目标位置的前一帧的运动矢量为MVpred_CP
根据目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围,包括:
通过如下公式确定水平搜索长度和垂直搜索长度:
MVpred_CP=(MVpred_CP_h,MVpred_CP_v);
if(MVpred_CP_h≥m×MVpred_CP_v),m≥1.5;
rangeX=W/2,rangeY=W/4;
else if(MVpred_CP_v≥n×MVpred_CP_h),n≥1.5;
rangeX=W/4,rangeY=W/2;
else rangeX=W/2,rangeY=W/2;
其中,W为预设的目标宏块的搜索范围,MVpred_CP_h为MVpred_CP在水平方向的分量,MVpred_CP_v为MVpred_CP在垂直方向的分量,rangeX为水平搜索长度,rangeY为垂直搜索长度。
通过上述过程确定出rangeX和rangeY,然后利用式(5)计算出候选运动矢量集合Ω1,其中在式(5)里,i的取值范围取决于rangeX,j取值范围取决于rangeY。
经过非对称十字交叉搜索后,能够得到一个新的搜索点,即第一目标搜索点。
步骤404:在根据起始搜索点的代价值和第一目标搜索点的代价值判断未提前截止的情况下,进行矩形窗全搜索,得到第二目标搜索点;
步骤405:在根据起始搜索点的代价值和第二目标搜索点的代价值判断未提前截止的情况下,根据目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围;
在本申请实施例中,在根据起始搜索点的代价值和第一目标搜索点的代价值进行Early_Termination判断,具体判断方式可以参照上文UMHexagonS算法中Early_Termination判断操作。
在判断未提前截止后,进行矩形窗全搜索,例如UMHexagonS算法中的5ⅹ5小矩形窗全搜索,搜索得到第二目标搜索点,然后根据起始搜索点的代价值和第二目标搜索点的代价值进行Early_Termination判断,具体判断方式可以参照上文UMHexagonS算法中Early_Termination判断操作。
在判断未提前截止后,根据目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围;
在现有UMHexagonS算法中,当矩形窗全搜索后判断未提前截止,则要进行扩展多层次六边形格点搜索,现有扩展多层次六边形格点搜索的搜索范围是针对宏块内的完整超六边形模板内的所有搜索点,需要计算代价值的搜索点较多。
在本申请实施例中,当矩形窗全搜索后判断未提前截止,首先根据目标宏块中的相同位置的前一帧的运动矢量和前两帧的运动矢量,确定扩展多层次六边形格点搜索的搜索范围,即第二搜索范围,在宏块内的完整超六边形模板内进一步缩小搜索范围。
具体地,假定当前编码帧为t,目标宏块中的目标位置的当前帧的运动矢量为MVcurrent_t,目标宏块中的目标位置的前一帧的运动矢量为MVcurrent_t-1,目标宏块中的目标位置的前两帧的运动矢量为MVcurrent_t-2
根据目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围,包括:
在MVcurrent_t、MVcurrent_t-1和MVcurrent_t-2中任意一个为0的情况下,则按照UMHexagonS原方法的扩展多层次六边形格点搜索执行,即按照step3-2继续执行。
在MVcurrent_t、MVcurrent_t-1和MVcurrent_t-2均不为0的情况下,通过如下公式确定MVcurrent_t-1相对于MVcurrent_t-2的夹角α1
Figure BDA0003024262100000131
以及通过如下公式确定MVcurrent_t相对于MVcurrent_t-1的夹角α2
Figure BDA0003024262100000132
在|α12|>a的情况下,则按照UMHexagonS原方法的扩展多层次六边形格点搜索执行,即按照step3-2继续执行。
在|α12|≤a的情况下,根据夹角α2确定第二搜索范围。
其中a的取值范围为[π/10,π/4],例如a=π/4。
在一些实施方式中,根据夹角α2所载的角度范围,确定与该角度范围对应的第二搜索范围,具体如下:
当α2在(0,π/2]内的情况下,确定第二搜索范围为目标宏块的第一象限内的所有搜索点;
当α2在(π/2,π]内的情况下,确定第二搜索范围为目标宏块的第二象限内的所有搜索点;
当α2在(π,3π/2]内的情况下,确定第二搜索范围为目标宏块的第三象限内的所有搜索点;
当α2在(3π/2,2π]内的情况下,确定第二搜索范围为目标宏块的第四象限内的所有搜索点。
具体参见图5,图5示出了α2在不同情况下,第二搜索范围的模式:
当α2在(0,π/2]内的情况下,第二搜索范围为如图5中(a)所示;
当α2在(π/2,π]内的情况下,第二搜索范围为如图5中(b)所示;
当α2在(π,3π/2]内的情况下,第二搜索范围为如图5中(c)所示;
当α2在(3π/2,2π]内的情况下,第二搜索范围为如图5中(d)所示。
在UMHexagonS算法中,对比图2和图5,图2所示搜索示意图((0,0)为起始搜索点,搜索范围为W=16),step3-2中搜索的总像素点是4×16=64。采用本申请实施例的方法,只要计算如图5中(a)、(b)、(c)、(d)的某一个即可完成搜索,优化后的搜索点数减少到了4×5=20,相比原方法的64个点减小了63.69%。
步骤406:根据第二搜索范围,进行扩展多层次六边形格点搜索,得到第三目标搜索点;
步骤407:在根据起始搜索点的代价值和第三目标搜索点的代价值判断未提前截止的情况下,进行扩展六边形搜索,得到第四目标搜索点;
步骤408:根据第四目标搜索点,确定目标宏块的运动矢量。
在本申请实施例中,在进行扩展多层次六边形格点搜索后,得到第三目标搜索点;然后根据起始搜索点的代价值和第三目标搜索点的代价值进行Early_Termination判断,具体判断方式可以参照上文UMHexagonS算法中Early_Termination判断操作。
在判断未提前截止后,执行现有UMHexagonS算法中的step4:扩展六边形搜索,并在该搜索后确定出最终的搜索点,即第四目标搜索点,然后基于第四目标搜索点得到最终的运动矢量,即针对目标宏块的运动估计结果。
本申请实施例中,针对现有UMHexagonS算法,对其中非对称十字交叉搜索和扩展的多层次六边形格点搜索的搜索范围的确定进行了优化,采用了更加精妙的预测机制和搜索模块,具有动态自适应性,能更加精确和快速的确定最优匹配块和最优运动矢量,能避免搜索过早的进入局部最优的死胡同和较大幅度的减少运算复杂度和编码时间,提高了视频编码器的高效性和实效性。
参见图6a至图6d,结合附图对本申请实施例的方法的一种应用示例进行描述:
本部分示例为一个四分之一公共中间格式(Quarter Common IntermediateFormat,QCIF)视频序列(176×144)进行编码,一帧图像包含99个16×16大小的宏块。编码时,除首帧外,其余各帧均为P帧,即采用IPPP…的方式(说明:视频编码中I帧标识关键帧,P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别),采用帧编码模式(说明:如果采用场编码模式,则相关配置参数需要乘以2),帧率为24帧/秒,运动估计搜索范围为W=16,参考帧的个数设定为1,开启率失真优化编码,量化参数QP=28。假定当前编码块为1个P帧图像中大小为16×16的块。
step1:起始搜索点搜索;
(a).中值预测:计算中值预测MVpred_MP,其计算过程如图6a所示,中值预测运动矢量MVpred_MP=median(MVA,MVB,MVC),median()函数实现取中值功能。
设E为当前块,A在E的左侧,B在E的上方、C在E的右上方,如果E的左侧多于一个块,那么选择最上方的块作为A,在E的上方选择最左侧的块作为B。在预测E的过程中同时遵守以下准则:
(1).除了块尺寸为16×8,8×16的块,预测值是块A,B,C的运动矢量中值;
(2).对于16×8块,上方的16×8块的预测值根据B预测得到,下方的16×8的预测值根据A得到;
(3).对于8×16块,左侧的8×16块的预测值根据A预测得到,右侧的8×16块的预测值根据C得到;
(c).上层预测:计算上层预测MVpred_UP
运动矢量估计采用了自上而下的上层运动矢量预测,如图6b所示。如已获得了16×16块的运动矢量,就利用其对两种子块(16×8,8×16)进行预测;而一个16×8(8×16)块的运动矢量,又可以用来预测相同位置上两个8×8子块等。
由于当前编码块大小为16×16,其不存在上层预测MVpred_UP
(d).相应块预测:利用时间相关性,取已求出的、前一帧同位置的运动矢量MVpred_CP。这种预测方式,在运动平缓区域,以及大面积整体运动区域中,是非常有效的,其原理图如图6c所示:
(e).相邻参考帧预测:采用了多参考帧的运动估计,其最多可以支持15个参考帧,其原理如图6d所示。
图8中,假设当前块所在帧的时间为t,则当在前面的参考帧t’中搜索当前块的最优匹配块时,可以利用当前块在参考帧t’+1中的运动矢量来估计出当前块在帧t’中的运动矢量,即:
Figure BDA0003024262100000161
在本示例中,由于参考帧的个数设定为1,则其不存在相邻参考帧预测MVpred_NRP
结合上述分析,在本示例中,本步骤的预测矢量集S包括如下矢量:
S={中值预测:MVpred_MP;原点预测:MVpred;相应块预测:MVpred_CP};
按照式(1)计算各个预测矢量的代价函数,选择代价值最下的预测矢量对应点作为起始搜索点。选择beta1=0.1,beta1=0.4作为Early_Termination操作的阈值。
step2:非对称十字交叉搜索;
本步骤使用本申请实施例方法,根据根据宏块相同位置上一帧的MV来动态设置当前帧非对称十字搜索在水平、垂直方向的搜索长度,具体参照图4中步骤,在实现中W=16。
step3:非均匀多层次六边形格点搜索
step3-1:5ⅹ5小矩形窗全搜索,本步骤使用UMHexagonS原方法
step3-2:本步骤使用本专利提出的改进扩展的多层次六边形格点搜索方法
step4:扩展六边形搜索
step4-1:六边形搜索,本步骤使用UMHexagonS原方法
step4-2:小菱形搜索,本步骤使用UMHexagonS原方法
参见图7,本申请实施例提供一种运动估计装置700,所述装置应用于电子设备,所述装置包括:
第一搜索模块701,用于在目标宏块中进行起始搜索点搜索,得到起始搜索点;
第一确定模块702,用于在根据所述起始搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围;
第二搜索模块703,用于根据所述第一搜索范围,进行非对称十字交叉搜索,得到第一目标搜索点;
第三搜索模块704,用于在根据所述起始搜索点的代价值和所述第一目标搜索点的代价值判断未提前截止的情况下,进行矩形窗全搜索,得到第二目标搜索点;
第二确定模块705,用于在根据所述起始搜索点的代价值和所述第二目标搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围;
第四搜索模块706,用于根据所述第二搜索范围,进行扩展多层次六边形格点搜索,得到第三目标搜索点;
第五搜索模块707,用于在根据所述起始搜索点的代价值和所述第三目标搜索点的代价值判断未提前截止的情况下,进行扩展六边形搜索,得到第四目标搜索点;
第三确定模块708,用于根据所述第四目标搜索点,确定所述目标宏块的运动矢量。
在一些实施方式中,所述目标宏块中的目标位置的前一帧的运动矢量为MVpred_CP
所述第一确定模块进一步用于:
通过如下公式确定水平搜索长度和垂直搜索长度:
MVpred_CP=(MVpred_CP_h,MVpred_CP_v);
if(MVpred_CP_h≥m×MVpred_CP_v),m≥1.5;
rangeX=W/2,rangeY=W/4;
else if(MVpred_CP_v≥n×MVpred_CP_h),m≥1.5;
rangeX=W/4,rangeY=W/2;
else rangeX=W/2,rangeY=W/2;
其中,W为预设的所述目标宏块的搜索范围,MVpred_CP_h为MVpred_CP在水平方向的分量,MVpred_CP_v为MVpred_CP在垂直方向的分量,rangeX为所述水平搜索长度,rangeY为所述垂直搜索长度。
在一些实施方式中,所述目标宏块中的目标位置的当前帧的运动矢量为MVcurrent_t,所述目标宏块中的目标位置的前一帧的运动矢量为MVcurrent_t-1,所述目标宏块中的目标位置的前两帧的运动矢量为MVcurrent_t-2
所述第二确定模块进一步用于,包括:
在MVcurrent_t、MVcurrent_t-1和MVcurrent_t-2均不为0的情况下,
通过如下公式确定MVcurrent_t-1相对于MVcurrent_t-2的夹角α1
Figure BDA0003024262100000181
以及通过如下公式确定MVcurrent_t相对于MVcurrent_t-1的夹角α2
Figure BDA0003024262100000182
在|α12|≤a的情况下,根据夹角α2确定所述第二搜索范围,其中a的取值范围为[π/10,π/4]。
在一些实施方式中,所述第二确定模块进一步用于:
当α2在(0,π/2]内的情况下,确定所述第二搜索范围为所述目标宏块的第一象限内的所有搜索点;
当α2在(π/2,π]内的情况下,确定所述第二搜索范围为所述目标宏块的第二象限内的所有搜索点;
当α2在(π,3π/2]内的情况下,确定所述第二搜索范围为所述目标宏块的第三象限内的所有搜索点;
当α2在(3π/2,2π]内的情况下,确定所述第二搜索范围为所述目标宏块的第四象限内的所有搜索点。
需要说明的是,本申请实施例提供的运动估计方法,执行主体可以为运动估计装置,或者该运动估计装置中的用于执行运动估计方法的控制模块。本申请实施例中以运动估计装置执行运动估计方法为例,说明本申请实施例提供的运动估计装置
本申请实施例中的运动估计装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的运动估计装置可以为具有操作***的装置。该操作***可以为安卓(Android)操作***,可以为ios操作***,还可以为其他可能的操作***,本申请实施例不作具体限定。
本申请实施例提供的运动估计装置能够实现图4的方法实施例实现的各个过程,为避免重复,这里不再赘述
可选的,如图8所示,本申请实施例还提供一种电子设备800,包括存储器801,处理器802,存储在存储器801上并可在所述处理器802上运行的程序或指令,该程序或指令被处理器802执行时实现上述运动估计方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要注意的是,本申请实施例中的电子设备包括移动电子设备和非移动电子设备。
图9为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备900包括但不限于:射频单元901、网络模块902、音频输出单元903、输入单元904、传感器905、显示单元906、用户输入单元907、接口单元908、存储器909、以及处理器910等部件。
本领域技术人员可以理解,电子设备900还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理***与处理器910逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。图9中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中处理器910,用于:
在目标宏块中进行起始搜索点搜索,得到起始搜索点;
在根据所述起始搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围;
根据所述第一搜索范围,进行非对称十字交叉搜索,得到第一目标搜索点;
在根据所述起始搜索点的代价值和所述第一目标搜索点的代价值判断未提前截止的情况下,进行矩形窗全搜索,得到第二目标搜索点;
在根据所述起始搜索点的代价值和所述第二目标搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围;
根据所述第二搜索范围,进行扩展多层次六边形格点搜索,得到第三目标搜索点;
在根据所述起始搜索点的代价值和所述第三目标搜索点的代价值判断未提前截止的情况下,进行扩展六边形搜索,得到第四目标搜索点;
根据所述第四目标搜索点,确定所述目标宏块的运动矢量。
可选地,所述目标宏块中的目标位置的前一帧的运动矢量为MVpred_CP
所述处理器910进一步用于:
通过如下公式确定水平搜索长度和垂直搜索长度:
MVpred_CP=(MVpred_CP_h,MVpred_CP_v);
if(MVpred_CP_h≥m×MVpred_CP_v),m≥1.5;
rangeX=W/2,rangeY=W/4;
else if(MVpred_CP_v≥n×MVpred_CP_h),n≥1.5;
rangeX=W/4,rangeY=W/2;
else rangeX=W/2,rangeY=W/2;
其中,W为预设的所述目标宏块的搜索范围,MVpred_CP_h为MVpred_CP在水平方向的分量,MVpred_CP_v为MVpred_CP在垂直方向的分量,rangeX为所述水平搜索长度,rangeY为所述垂直搜索长度。
可选地,所述目标宏块中的目标位置的当前帧的运动矢量为MVcurrent_t,所述目标宏块中的目标位置的前一帧的运动矢量为MVcurrent_t-1,所述目标宏块中的目标位置的前两帧的运动矢量为MVcurrent_t-2
所述处理器910进一步用于,包括:
在MVcurrent_t、MVcurrent_t-1和MVcurrent_t-2均不为0的情况下,
通过如下公式确定MVcurrent_t-1相对于MVcurrent_t-2的夹角α1
Figure BDA0003024262100000211
以及通过如下公式确定MVcurrent_t相对于MVcurrent_t-1的夹角α2
Figure BDA0003024262100000212
在|α12|≤a的情况下,根据夹角α2确定所述第二搜索范围,其中a的取值范围为[π/10,π/4]。
可选地,所述处理器910进一步用于:
当α2在(0,π/2]内的情况下,确定所述第二搜索范围为所述目标宏块的第一象限内的所有搜索点;
当α2在(π/2,π]内的情况下,确定所述第二搜索范围为所述目标宏块的第二象限内的所有搜索点;
当α2在(π,3π/2]内的情况下,确定所述第二搜索范围为所述目标宏块的第三象限内的所有搜索点;
当α2在(3π/2,2π]内的情况下,所述第二搜索范围为所述目标宏块的第四象限内的所有搜索点。
本申请实施例对视频编码的运动估计过程中的搜索范围选取进行了优化,能够更加精确和快速的确定最优匹配块和最优运动矢量,能避免搜索落入局部最优,且能够减少运算复杂度和编码时间,提高了视频编码的高效性和实效性。
应理解的是,本申请实施例中,输入单元904可以包括图形处理器(GraphicsProcessing Unit,GPU)9041和麦克风9042,图形处理器9041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元906可包括显示面板9061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板9061。用户输入单元907包括触控面板9071以及其他输入设备9072。触控面板9071,也称为触摸屏。触控面板9071可包括触摸检测装置和触摸控制器两个部分。其他输入设备9072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器909可用于存储软件程序以及各种数据,包括但不限于应用程序和操作***。处理器910可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器910中
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述运动估计方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述运动估计方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为***级芯片、***芯片、芯片***或片上***芯片等。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品被存储在非易失的存储介质中,所述计算机程序产品被配置成被至少一个处理器执行以实现上文所述的方法的步骤。
本申请实施例还提供一种执行装置,所述执行装置被配置成用于执行上文所述的方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (10)

1.一种运动估计方法,其特征在于,所述方法包括:
在目标宏块中进行起始搜索点搜索,得到起始搜索点;
在根据所述起始搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围;
根据所述第一搜索范围,进行非对称十字交叉搜索,得到第一目标搜索点;
在根据所述起始搜索点的代价值和所述第一目标搜索点的代价值判断未提前截止的情况下,进行矩形窗全搜索,得到第二目标搜索点;
在根据所述起始搜索点的代价值和所述第二目标搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围;
根据所述第二搜索范围,进行扩展多层次六边形格点搜索,得到第三目标搜索点;
在根据所述起始搜索点的代价值和所述第三目标搜索点的代价值判断未提前截止的情况下,进行扩展六边形搜索,得到第四目标搜索点;
根据所述第四目标搜索点,确定所述目标宏块的运动矢量。
2.根据权利要求1所述的方法,其特征在于,
所述目标宏块中的目标位置的前一帧的运动矢量为MVpred_CP
所述根据所述目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围,包括:
通过如下公式确定水平搜索长度和垂直搜索长度:
MVpred_CP=(MVpred_CP_h,MVpred_CP_v);
Figure FDA0003024262090000011
rangeX=W/2,rangeY=W/4;
else if(MVpred_CP_v≥n×MVpred_CP_h),n≥1.5;
rangeX=W/4,rangeY=W/2;
else rangeX=W/2,rangeY=W/2;
其中,W为预设的所述目标宏块的搜索范围,MVpred_CP_h为MVpred_CP在水平方向的分量,MVpred_CP_v为MVpred_CP在垂直方向的分量,rangeX为所述水平搜索长度,rangeY为所述垂直搜索长度。
3.根据权利要求1所述的方法,其特征在于,
所述目标宏块中的目标位置的当前帧的运动矢量为MVcurrent_t,所述目标宏块中的目标位置的前一帧的运动矢量为MVcurrent_t-1,所述目标宏块中的目标位置的前两帧的运动矢量为MVcurrent_t-2
根据所述目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围,包括:
在MVcurrent_t、MVcurrent_t-1和MVcurrent_t-2均不为0的情况下,
通过如下公式确定MVcurrent_t-1相对于MVcurrent_t-2的夹角α1
Figure FDA0003024262090000021
以及通过如下公式确定MVcurrent_t相对于MVcurrent_t-1的夹角α2
Figure FDA0003024262090000022
在|α12|≤a的情况下,根据夹角α2确定所述第二搜索范围,其中a的取值范围为[π/10,π/4]。
4.根据权利要求3所述的方法,其特征在于,所述根据夹角α2确定所述第二搜索范围,包括:
当α2在(0,π/2]内的情况下,确定所述第二搜索范围为所述目标宏块的第一象限内的所有搜索点;
当α2在(π/2,π]内的情况下,确定所述第二搜索范围为所述目标宏块的第二象限内的所有搜索点;
当α2在(π,3π/2]内的情况下,确定所述第二搜索范围为所述目标宏块的第三象限内的所有搜索点;
当α2在(3π/2,2π]内的情况下,确定所述第二搜索范围为所述目标宏块的第四象限内的所有搜索点。
5.一种运动估计装置,其特征在于,所述装置应用于电子设备,所述装置包括:
第一搜索模块,用于在目标宏块中进行起始搜索点搜索,得到起始搜索点;
第一确定模块,用于在根据所述起始搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量,确定第一搜索范围;
第二搜索模块,用于根据所述第一搜索范围,进行非对称十字交叉搜索,得到第一目标搜索点;
第三搜索模块,用于在根据所述起始搜索点的代价值和所述第一目标搜索点的代价值判断未提前截止的情况下,进行矩形窗全搜索,得到第二目标搜索点;
第二确定模块,用于在根据所述起始搜索点的代价值和所述第二目标搜索点的代价值判断未提前截止的情况下,根据所述目标宏块中的目标位置的前一帧的运动矢量和目标宏块中的目标位置的前两帧的运动矢量,确定第二搜索范围;
第四搜索模块,用于根据所述第二搜索范围,进行扩展多层次六边形格点搜索,得到第三目标搜索点;
第五搜索模块,用于在根据所述起始搜索点的代价值和所述第三目标搜索点的代价值判断未提前截止的情况下,进行扩展六边形搜索,得到第四目标搜索点;
第三确定模块,用于根据所述第四目标搜索点,确定所述目标宏块的运动矢量。
6.根据权利要求5所述的装置,其特征在于,
所述目标宏块中的目标位置的前一帧的运动矢量为MVpred_CP
所述第一确定模块进一步用于:
通过如下公式确定水平搜索长度和垂直搜索长度:
MVpred_CP=(MVpred_CP_h,MVpred_CP_v);
if(MVpred_CP_h≥m×MVpred_CP_v),m≥1.5;
rangeX=W/2,rangeY=W/4;
else if(MVpred_CP_v≥n×MVpred_CP_h),n≥1.5;
rangeX=W/4,rangeY=W/2;
else rangeX=W/2,rangeY=W/2;
其中,W为预设的所述目标宏块的搜索范围,MVpred_CP_h为MVpred_CP在水平方向的分量,MVpred_CP_v为MVpred_CP在垂直方向的分量,rangeX为所述水平搜索长度,rangeY为所述垂直搜索长度。
7.根据权利要求5所述的装置,其特征在于,
所述目标宏块中的目标位置的当前帧的运动矢量为MVcurrent_t,所述目标宏块中的目标位置的前一帧的运动矢量为MVcurrent_t-1,所述目标宏块中的目标位置的前两帧的运动矢量为MVcurrent_t-2
所述第二确定模块进一步用于,包括:
在MVcurrent_t、MVcurrent_t-1和MVcurrent_t-2均不为0的情况下,
通过如下公式确定MVcurrent_t-1相对于MVcurrent_t-2的夹角α1
Figure FDA0003024262090000041
以及通过如下公式确定MVcurrent_t相对于MVcurrent_t-1的夹角α2
Figure FDA0003024262090000042
在|α12|≤a的情况下,根据夹角α2确定所述第二搜索范围,其中a的取值范围为[π/10,π/4]。
8.根据权利要求7所述的装置,其特征在于,所述第一确定模块进一步用于:
当α2在(0,π/2]内的情况下,确定所述第二搜索范围为所述目标宏块的第一象限内的所有搜索点;
当α2在(π/2,π]内的情况下,确定所述第二搜索范围为所述目标宏块的第二象限内的所有搜索点;
当α2在(π,3π/2]内的情况下,确定所述第二搜索范围为所述目标宏块的第三象限内的所有搜索点;
当α2在(3π/2,2π]内的情况下,所述第二搜索范围为所述目标宏块的第四象限内的所有搜索点。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至4中任一项所述运动估计方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至4中任一项所述运动估计方法的步骤。
CN202110412068.0A 2021-04-16 2021-04-16 运动估计方法、装置、电子设备及可读存储介质 Active CN113115038B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110412068.0A CN113115038B (zh) 2021-04-16 2021-04-16 运动估计方法、装置、电子设备及可读存储介质
EP22787522.6A EP4311236A4 (en) 2021-04-16 2022-04-12 METHOD AND APPARATUS FOR MOTION ESTIMATION, ELECTRONIC DEVICE, AND READABLE STORAGE MEDIUM
PCT/CN2022/086324 WO2022218299A1 (zh) 2021-04-16 2022-04-12 运动估计方法、装置、电子设备及可读存储介质
US18/380,640 US20240048753A1 (en) 2021-04-16 2023-10-16 Motion estimation method and apparatus, electronic device and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110412068.0A CN113115038B (zh) 2021-04-16 2021-04-16 运动估计方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN113115038A true CN113115038A (zh) 2021-07-13
CN113115038B CN113115038B (zh) 2022-03-29

Family

ID=76717879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110412068.0A Active CN113115038B (zh) 2021-04-16 2021-04-16 运动估计方法、装置、电子设备及可读存储介质

Country Status (4)

Country Link
US (1) US20240048753A1 (zh)
EP (1) EP4311236A4 (zh)
CN (1) CN113115038B (zh)
WO (1) WO2022218299A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022218299A1 (zh) * 2021-04-16 2022-10-20 维沃移动通信有限公司 运动估计方法、装置、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101815218A (zh) * 2010-04-02 2010-08-25 北京工业大学 基于宏块特征的快速运动估计视频编码方法
CN103188496A (zh) * 2013-03-26 2013-07-03 北京工业大学 基于运动矢量分布预测的快速运动估计视频编码方法
CN103581647A (zh) * 2013-09-29 2014-02-12 北京航空航天大学 一种基于彩***运动矢量的深度图序列分形编码方法
WO2019072246A1 (zh) * 2017-10-12 2019-04-18 北京金山云网络技术有限公司 视频编码中的运动估计方法、装置、电子设备及存储介质
CN112367486A (zh) * 2020-10-30 2021-02-12 维沃移动通信有限公司 视频处理方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI272852B (en) * 2004-12-21 2007-02-01 Ali Corp Motion estimation method for adaptive dynamic searching range
KR100912429B1 (ko) * 2006-11-09 2009-08-14 삼성전자주식회사 고속 움직임 추정을 위한 영상 검색 방법
RU2010144450A (ru) * 2010-10-29 2012-05-10 ЭлЭсАй Корпорейшн (US) Оценка движения для видео транскодера
CN103793925B (zh) * 2014-02-24 2016-05-18 北京工业大学 融合时空特征的视频图像视觉显著程度检测方法
CN112203095B (zh) * 2020-12-04 2021-03-09 腾讯科技(深圳)有限公司 视频运动估计方法、装置、设备及计算机可读存储介质
CN113115038B (zh) * 2021-04-16 2022-03-29 维沃移动通信有限公司 运动估计方法、装置、电子设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101815218A (zh) * 2010-04-02 2010-08-25 北京工业大学 基于宏块特征的快速运动估计视频编码方法
CN103188496A (zh) * 2013-03-26 2013-07-03 北京工业大学 基于运动矢量分布预测的快速运动估计视频编码方法
CN103581647A (zh) * 2013-09-29 2014-02-12 北京航空航天大学 一种基于彩***运动矢量的深度图序列分形编码方法
WO2019072246A1 (zh) * 2017-10-12 2019-04-18 北京金山云网络技术有限公司 视频编码中的运动估计方法、装置、电子设备及存储介质
CN112367486A (zh) * 2020-10-30 2021-02-12 维沃移动通信有限公司 视频处理方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022218299A1 (zh) * 2021-04-16 2022-10-20 维沃移动通信有限公司 运动估计方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
US20240048753A1 (en) 2024-02-08
WO2022218299A1 (zh) 2022-10-20
CN113115038B (zh) 2022-03-29
EP4311236A1 (en) 2024-01-24
EP4311236A4 (en) 2024-05-29

Similar Documents

Publication Publication Date Title
US11765379B2 (en) Encoding/decoding method, apparatus, and system for video with forward and backward reference blocks
KR100957316B1 (ko) 멀티미디어 코딩을 위한 모드 선택 기술
JP4843482B2 (ja) 情報処理装置およびプログラム
US20130114704A1 (en) Utilizing A Search Scheme for Screen Content Video Coding
US11076168B2 (en) Inter-prediction method and apparatus, and storage medium
CN108419082B (zh) 一种运动估计方法及装置
JP2005535228A (ja) 高品質の高速予測動き検索を実行する方法および装置
CN101326550A (zh) 利用预测指导的抽取搜索的运动估计
KR101443701B1 (ko) 적응형 움직임 탐색 범위 결정 장치 및 방법
JP2008011158A (ja) 動きベクトル探索方法及び動きベクトル探索装置
US20240048753A1 (en) Motion estimation method and apparatus, electronic device and readable storage medium
JP2020113923A (ja) 動画像符号化プログラム、及び動画像符号化装置
US20080181310A1 (en) Motion search method and apparatus for minimizing off-chip memory access
Li et al. Efficient search and mode prediction algorithms for motion estimation in H. 264/AVC
US7860165B2 (en) Framework for fine-granular computational-complexity scalable motion estimation
JP6696889B2 (ja) 画像符号化装置、画像符号化方法及びコンピュータプログラム
JP2003153279A (ja) 動き探索装置、その方法およびそのコンピュータ・プログラム
González-Díaz et al. Adaptive multipattern fast block-matching algorithm based on motion classification techniques
CN101094404A (zh) 自适应伸缩模板的运动估计算法
JP6849781B2 (ja) 画像符号化装置、画像符号化方法及びコンピュータプログラム
CN112492314B (zh) 一种基于机器学习的动态运动估计算法选择的方法
TWI324482B (en) Algorithm of video coding
Wu et al. Two-pass hexagonal algorithm with improved hashtable structure for motion estimation
Wang et al. Optimization of UMHexagonS algorithm for AVS+
Zu-Jue et al. A fast motion estimation optimization for H. 264/AVC encoder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant