CN104918047A - 一种双向运动估计的排除方法和装置 - Google Patents
一种双向运动估计的排除方法和装置 Download PDFInfo
- Publication number
- CN104918047A CN104918047A CN201510290654.7A CN201510290654A CN104918047A CN 104918047 A CN104918047 A CN 104918047A CN 201510290654 A CN201510290654 A CN 201510290654A CN 104918047 A CN104918047 A CN 104918047A
- Authority
- CN
- China
- Prior art keywords
- way
- cost
- adama
- initial
- always
- 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
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例提供了一种双向运动估计的排除方法和装置,其中,所述方法包括:当执行对当前图像中的当前块进行单向运动估计后,获取当前图像中的当前块进行单向运动估计的单向总花费;获取当前图像中的当前块进行双向运动估计的初始双向总花费;依据所述单向总花费和所述初始双向总花费排除对当前图像中的当前块的双向运动估计。本发明实施例用以在满足一定条件的情况下,在进行运动估计时排除双向运动估计,降低编码的复杂度,提高编码的效率。
Description
技术领域
本发明涉及视频图像处理的技术领域,特别是涉及一种双向运动估计的排除方法和一种双向运动估计的排除装置。
背景技术
随着高分辨率拍摄设备的普及化,互联网视频量急速增长。为了高效地存储和传输高清视频,业界势必采用具有更高压缩编码效率的新一代视频编码标准。例如,新一代视频编码标准H.265/HEVC(High EfficiencyVideo Coding,高效视频编码标准),与上一代视频编码标准H.264/AVC(Advanced Video Coding,高阶视讯编码)相比,新一代视频编码标准有更多的编码模式可以选择,与此同时也给编码器带来了更高难度的挑战。
编码模式包括帧间编码,在帧间编码中由于当前图像和邻近图像中的景物存在着一定的相关性,因此可以将当前图像分成若干块,并设法搜索出每个块在邻近图像中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量就是通常所指的运动向量,得到运动向量的过程则被称为运动估计。
运动向量和经过运动匹配后得到的预测误差,共同发送到编码器,在编码器按照运动向量指明的位置,从已经解码的邻近的参考图像中找到相应的块,和当前块相减得到预测误差,然后对预测误差执行变换和量化,然后讲量化系数编入码流。当进行解码时,反量化反变换得到重构的残差块,和预测块相加后就可以得到重构的当前块。
运动估计是视频压缩处理系统中的一个重要组成部分。通过运动估计可以去除帧间冗余度,使得视频传输的比特数大为减少。然而,运动估计的过程复杂繁琐,导致编码效率低。
发明内容
本发明实施例所要解决的技术问题是提供一种双向运动估计的排除方法,用以在满足一定条件的情况下,在进行运动估计时排除双向运动估计,降低编码的复杂度,提高编码的效率。
相应的,本发明实施例还提供了一种双向运动估计的排除装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种双向运动估计的排除方法,其特征在于,包括:
当执行对当前图像中的当前块进行单向运动估计后,获取当前图像中的当前块进行单向运动估计的单向总花费;
获取当前图像中的当前块进行双向运动估计的初始双向总花费;
依据所述单向总花费和所述初始双向总花费排除对当前图像中的当前块的双向运动估计。
优选地,若所述单向运动估计为前向运动估计,所述当前块具有对应的前向预测块,则所述获取当前图像的当前块进行单向运动估计的单向总花费的步骤包括:
对所述当前图像中的当前块和对应的前向预测块相减获得第一差值,并对所述第一差值进行阿达玛变换,获得阿达玛花费;获取指定前向运动向量的第一编码码率;
采用所述第一阿达玛花费和第一编码码率按照预设规则获得前向总花费。
优选地,若所述单向运动估计为后向运动估计,所述当前块具有对应的后向预测块,则所述获取当前图像的当前块进行单向运动估计的单向总花费的步骤包括:
对所述当前图像中的当前块和它的后向预测块相减获得第二差值,并对所述第二差值进行阿达玛变换,获得第二阿达玛花费;
获取指定后向运动向量的第二编码码率;
采用所述第二阿达玛花费和第二编码码率按照预设规则获得后向总花费。
优选地,所述获取当前图像中的当前块进行双向运动估计的初始双向总花费的步骤包括:
对所述当前图像当前块的前向预测块和后向预测块进行平均得到初始双向预测块;
采用所述当前块和所述初始双向预测块进行相减获得第三差值,并对所述第三差值进行阿达玛变换,获得第三阿达玛花费;
将所述第一编码码率和所述第二编码码率相加,获得第三编码码率;
采用所述第三阿达玛花费和第三编码码率按照预设规则获得初始双向总花费。
优选地,所述依据单向总花费和所述初始双向总花费排除对当前图像的双向运动估计的步骤包括:
判断所述初始双向总花费是否大于所述前向总花费,或大于所述后向总花费;
若所述初始双向总花费大于所述前向总花费,或大于所述后向总花费,则判断所述第三阿达玛花费是否小于预设阈值;
若所述第三阿达玛花费小于所述预设阈值,则排除对当前图像的双向运动估计。
优选地,所述的方法还包括:
若所述初始双向总花费小于所述前向总花费,且小于所述后向总花费,则执行对当前图像的双向运动估计。
优选地,所述的方法还包括:
若所述初始双向阿达玛花费大于或等于所述预设阈值,则采用所述初始双向阿达玛花费获得预估双向阿达玛花费;
采用所述预估双向阿达玛花费、第三阿达玛花费以及初始双向总花费获得预估双向总花费。
优选地,所述的方法还包括:
判断所述预估双向总花费是否大于所述前向总花费,或者大于所述后向总花费;
若所述预估双向总花费大于所述前向总花费,或者大于所述后向总花费,则排除对当前图像的双向运动估计。
本发明实施例还公开了一种双向运动估计的排除装置,包括:
单向数据获取模块,用于在执行对当前图像中的当前块进行单向运动估计后,获取当前图像中的当前块进行单向运动估计的单向总花费;
双向数据获取模块,用于获取当前图像中的当前块进行双向运动估计的初始双向总花费;
双向排除模块,用于依据所述单向总花费和所述初始双向总花费排除对当前图像中的当前块的双向运动估计。
优选地,若所述单向运动估计为前向运动估计,所述当前块具有对应的前向预测块,则所述单向数据获取模块包括:
第一阿达玛花费获得子模块,用于对所述当前图像中的当前块和对应的前向预测块相减获得第一差值,并对所述第一差值进行阿达玛变换,获得阿达玛花费;
第一编码码率获取子模块,用于获取指定前向运动向量的第一编码码率;
前向总花费获得子模块,用于采用所述第一阿达玛花费和第一编码码率按照预设规则获得前向总花费。
优选地,若所述单向运动估计为后向运动估计,所述当前块具有对应的后向预测块,则所述单向数据获取模块包括:
第二阿达玛花费获得子模块,用于对所述当前图像中的当前块和它的后向预测块相减获得第二差值,并对所述第二差值进行阿达玛变换,获得第二阿达玛花费;
第二编码码率获取子模块,用于获取指定后向运动向量的第二编码码率;
后向总花费获得子模块,用于采用所述第二阿达玛花费和第二编码码率按照预设规则获得后向总花费。
优选地,所述双向数据获取模块包括:
初始双向预测块获得子模块,用于对所述当前图像当前块的前向预测块和后向预测块进行平均得到初始双向预测块;
第三阿达玛花费获得子模块,用于采用所述当前块和所述初始双向预测块进行相减获得第三差值,并对所述第三差值进行阿达玛变换,获得第三阿达玛花费;
第三编码码率获取子模块,用于将所述第一编码码率和所述第二编码码率相加,获得第三编码码率;
初始双向总花费获得子模块,用于采用所述第三阿达玛花费和第三编码码率按照预设规则获得初始双向总花费。
优选地,所述双向排除模块包括:
第一判断子模块,用于判断所述初始双向总花费是否大于所述前向总花费,或大于所述后向总花费;
第二判断子模块,用于在所述初始双向总花费大于所述前向总花费,且大于所述后向总花费时,判断所述双向阿达玛花费是否小于预设阈值;
第一双向排除子模块,用于在所述第三阿达玛花费小于所述预设阈值时,排除对当前图像的双向运动估计。
优选地,所述的装置还包括:
双向执行子模块,用于在所述初始双向总花费小于所述前向总花费,且小于所述后向总花费时,执行对当前图像的双向运动估计。
优选地,所述的装置还包括:
预估双向阿达玛花费获得子模块,用于在所第三阿达玛花费大于或等于所述预设阈值,则采用所述初始双向阿达玛花费获得预估双向阿达玛花费;
预估双向总花费获得子模块,用于采用所述预估双向阿达玛花费、初始双向运动向量花费以及初始双向总花费获得预估双向总花费。
优选地,所述的装置还包括:
第三判断子模块,用于判断所述预估双向总花费是否大于所述前向总花费,或者大于所述后向总花费;
第二双向排除子模块,用于在所述预估双向总花费大于所述前向总花费,或者大于所述后向总花费时,排除对当前图像的双向运动估计。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例在单向运动估计结束后,获取当前图像进行单向运动估计,以及进行双向运动估计的相关运动参数,相关运动参数在满足一定条件的情况下,不再进行实际的双向运动估计,而只把单向预测作为最佳运动补偿方式,从而可以降低编码的复杂度,提高编码的效率。
附图说明
图1是一种HEVC的层次B编码的示意图;
图2是一种差分块CTU分割为CU的示意图;
图3是本发明的一种双向运动估计的排除方法实施例的步骤流程图;
图4是本发明的一种双向运动估计的排除装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了获得较高的压缩编码效率,HEVC可以采用层次B编码。参照图1所示的一种HEVC的层次B编码的示意图,在层次B编码中,HEVC主框架最多允许8层次。参照图1,时间轴以下数字是图像的显示时间,图像上的标记的数字是编码的顺序。
编码器以8个图像为一组进行编码,编码顺序和显示顺序(POC)并不相同。层次B编码根据预测距离进行分层,以分层进行编码。例如,首先编码POC=0的图像,然后编码POC=8的图像,预测距离是8,是图像层次中的第一层;然后编码POC=4的图像,其中POC=4从POC=8和POC=0预测,预测距离是4,是图像层次中的第二层;然后POC=2从POC=0及POC=4预测,POC=6从POC=4及POC=8预测,预测距离都是2,所以都是图像层次中的第三层;以此类推,POC=1、3、5、7的图像预测距离都是1,所以都是图像层次中的第四层。
综上可知,图1的层次B编码中,第一组编码顺序依次是POC=0、POC=8、POC=4、POC=2、POC=1、POC=3、POC=6、POC=5、POC=7的图像。这组编码完成后编码下一组8个图像,编码顺序依次是POC=16、POC=12、POC=10、POC=9、POC=11、POC=14、POC=13、POC=15,这组完成后再编码下一组8个图像。
对于每幅图像,编码器可以将其分割成CTU(Coding Tree Unit,编码树单元),然后逐CTU进行编码。CTU大小由编码器决定,为了获得最高编码效率,一般设定CTU最大尺寸为64x64。编码器可以采用四叉树的形式将CTU进一步划分为CU(Coding Unit,编码单元),然后针对CU可以选择不同的编码模式。
具体地,CU可以有64x64、32x32、16x16、8x8共4种大小。例如,对于一个64x64的块(CTU),可以采用四叉树的形式任意分割为不同大小的CU进行编码。参照图2所示的一个64x64的CTU分割为CU的示意图,首先64x64的CTU被分割为4个32x32的块,然后4个32x32的块继续独立选择分割或不分割。在HEVC中,一个2Nx2N的块只要它的尺寸大于8x8,就可以独立继续分割。每一个CTU分割出的矩形单元被称为CU,它是HEVC中编码的最小单位,一个CU只能有一种编码模式。
CU有几种编码模式,具体包括帧间编码模式、帧内编码模式或者跳过模式。跳过模式本质也是一种帧间编码模式,只是它的运动参数是通过推导获得,而不需要显式的编码参考索引和运动向量。其中,帧内编码模式中包含35种不同的预测模式,帧间编码模式则有7种分割块预测方式。编码器从所有这些可能的组合中选择率失真最优的一种模式对块进行编码,以获得最佳的压缩编码效率。
以帧间编码为例,对于帧间编码的块,一般有2个参考列,前向参考列(List0)和后向参考列(List1),每个参考列可以有一个或多个参考图像,当有多个参考图像时,参考图像分别采用refidx0、refidx1标识。块有3种帧间预测方法,具体包括前向预测、后向预测和双向预测。
前向预测中,当前块从List0中选择一个图像refidxx(一般来说,编码器对每个图像进行运动估计,并选择花费最小的图像)。然后选择一个运动向量(mv0)指向一个块作为当前块的预测块。
后向预测中,当前块从List1中选择一个图像refidxy,然后选择一个运动向量(mv1)指向一个块作为当前块的预测块。
双向预测中,当前块从List0中选择一个图像refidxx,然后选择一个运动向量(mv0)指向一个块blk0,再从List1中选择一个图像refidxy,然后选择一个运动向量(mv1)指向一个块blk1,blk0和blk1的加权平均作为当前块的预测块。
编码器对List0和List1中所有图像进行运动估计,并从中选择最优的前向预测和后向预测,再对每个前向参考图像和后向参考图像的结合做双向运动估计,得到最佳的双向预测,最后编码器从三种预测方法中选择一种预测方法。
为了节省码率,码流中的运动向量通常采用差分编码。在HEVC中,对于任意一个List中的任意一个图像生成MVP(Motion Vector Predictor,预测运动向量),编码器从相邻已编码块中选择2个MVP作为当前块MV(Motion Vector,运动向量)预测的候选。假设当前块的左相邻块是(1,0),上相邻块是(2,0),那么编码器生成2个MVP则分别为(1,0)和(2,0)。
最终的MVP从这2个MVP中选择。当前块的MV与MVP相减得到MVD(Motion Vector Difference,运动向量差分),即MV-MVP=MVD。然后编码器将MVP选择信息和MVD写入码流中。这样解码器就能够首先根据预设规则生成2个MVP,然后再根据解码出来的MVP选择信息选出2个MVP中的一个,加上从码流中解码出的MVD,就得到当前块的MV,最后可采用此MV生成实际的预测块。
从帧间编码的流程可以得知,运动估计的过程复杂繁琐,导致编码速度低,正是本专利发明人考虑到上述问题,创造性地提出一种双向运动估计的排除策略,对于图像的块,在单向运动估计结束后,在满足一定条件情况下,不再进行实际的双向运动估计,而只把单向预测作为最佳运动补偿方式,从而可以降低编码的复杂度,提高编码的效率。
参照图3,示出了本发明的一种双向运动估计的排除方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,当执行对当前图像中的当前块进行单向运动估计后,获取当前图像中的当前块进行单向运动估计的单向总花费;
在本发明具体应用的一种示例中,运动估计包括单向运动估计和双向运动估计,其中单向运动估计又可以包括前向运动估计和后向运动估计。在实际应用中,单向运动估计的具体是指:设t时刻的图像为当前图像f(x,y),t’时刻的图像为参考图像f’(x,y),参考图像在时间上可以超前或者滞后于当前图像。当t’<t时,称之为前向运动估计,当t’>t时,称之为后向运动估计。
在具体实现中,除了对图像进行前向运动估计和后向运动估计,还将结合前向运动估计和后向运动估计进行双向运动估计,最后从三种运动估计方法中选择一种最优的运动估计方法。
在本发明的一种优选实施例中,若所述单向运动估计为前向运动估计,所述当前块可以具有对应的前向预测块,则所述步骤101,即所述获取当前图像进行单向运动估计的单向总花费的步骤可以包括如下子步骤:
子步骤S11,对所述当前图像中的当前块和对应的前向预测块相减获得第一差值,并对所述第一差值进行阿达玛变换,获得阿达玛花费;子步骤S12,获取指定前向运动向量的第一编码码率;
子步骤S13,采用所述第一阿达玛花费和第一编码码率按照预设规则获得前向总花费。
在本发明的一种优选实施例中,若所述单向运动估计为后向运动估计,所述当前块可以具有对应的后向预测块,则所述步骤101,即则所述获取当前图像进行单向运动估计的单向总花费的步骤可以包括如下子步骤:
子步骤S21,对所述当前图像中的当前块和它的后向预测块相减获得第二差值,并对所述第二差值进行阿达玛变换,获得第二阿达玛花费;子步骤S22,获取指定后向运动向量的第二编码码率;
子步骤S23,采用所述第二阿达玛花费和第二编码码率按照预设规则获得后向总花费。
对于一个大小为MxN的块,在前向运动估计和后向运动估计结束后,假设前向运动估计的最优MV产生的前向预测块是Prd0,预测的第一阿达玛花费是HAD0,MV的第一编码码率是MVBit0;后向运动估计的最优MV产生的后向预测块是Prd1,预测的第二阿达玛花费是HAD1,MV的第二编码码率是MVBit1。
在具体实现中,对于任意一个MxN的残差块,即当前块和预测块之间的差分块,如果它的宽和高都是8的倍数,那么将它分成若干8x8块,否则将它分成若干4x4块。然后对每个8x8块或4x4块执行hadamard(阿达玛)变换,执行阿达玛变换后将所有的变换系数的绝对值累加起来得到Ap。如果当前块是4x4块,那么Ap就是4x4块的阿达玛花费,如果当前块是8x8块,那么(Ap+2)>>2则是8x8块的阿达玛花费,阿达玛花费是其所有分割出的4x4块,或8x8块的阿达玛花费的和。
在本发明具体应用的一种示例中,
所述前向运动估计的总花费的计算公式为:
cost0=HAD0+λmotion×MVBit0;
所述后向运动估计的总花费的计算公式为:
cost1=HAD1+λmotion×MVBit1;
需要说明的是,上述前向运动估计的总花费和后向运动估计的总花费的计算过程仅仅作为示例,在本发明实施例中可以采用其他方式计算前向运动估计的总花费和后向运动估计的总花费的计算过程仅仅作为示例,本发明实施例对此不加以限制。
步骤102,获取当前图像进行双向运动估计的初始双向总花费;
在本发明的一种优选实施例中,所述步骤102,即所述获取当前图像进行双向运动估计的初始双向总花费的步骤可以包括如下子步骤:
子步骤S31,对所述当前图像当前块的前向预测块和后向预测块进行平均得到初始双向预测块;
子步骤S32,采用所述当前块和所述初始双向预测块进行相减获得第三差值,并对所述第三差值进行阿达玛变换,获得第三阿达玛花费;
子步骤S33,将所述第一编码码率和所述第二编码码率相加,获得第三编码码率;
子步骤S34,采用所述第三阿达玛花费和第三编码码率按照预设规则获得初始双向总花费。
在本发明实施例中,将采用前向预测块Prd0和后向预测块Prd1进行平均处理,从而计算它们和源块(当前块)之间的阿达玛花费HAD2。具体计算过程与单向运动估计的过程类似,在此处不再进行赘述了。
在本发明具体应用的一种示例中,所述双向运动估计的初始总花费的计算公式为:
cost2=HAD2+λmotion×(MVBit0+MVBit1);
其中,
具体而言,α取决于是否是参考图像以及B帧数目,它的取值介于0.5到1,如果非参考图像,那么α=1,否则采用clip3函数计算α的数值,具体地,a=1+clip3(0,0.5,0.05×num_bfrm)。num_bfrm是指B帧数目,当层次为8时,num_bfrm为7。wk为常数,它和图像类型、编码结构以及QP(QuantParam,量化参数)有关,其取值在0.4到2之间。
步骤103,依据所述单向总花费和所述初始双向总花费排除对当前图像的双向运动估计。
在本发明的一种优选实施例中,所述步骤103可以包括如下子步骤:
子步骤S41,判断所述初始双向总花费是否大于所述前向总花费,或大于所述后向总花费;
子步骤S42,若所述初始双向总花费大于所述前向总花费,或大于所述后向总花费,则判断所述初始双向阿达玛花费是否小于预设阈值;
子步骤S43,若所述初始双向阿达玛花费小于所述预设阈值,则排除对当前图像的双向运动估计。
在本发明的一种优选实施例中,所述的方法还可以包括如下子步骤:
子步骤S44,若述初始双向总花费小于所述前向总花费,且小于所述后向总花费,则执行对当前图像的双向运动估计。
在本发明的一种优选实施例中,所述的方法还可以包括如下子步骤:
若所述初始双向阿达玛花费大于或等于所述预设阈值,则采用所述初始双向阿达玛花费获得预估双向阿达玛花费;
采用所述预估双向阿达玛花费、第三阿达玛花费,以及初始双向总花费获得预估双向总花费获得预估双向总花费。
在本发明的一种优选实施例中,所述的方法还可以包括如下子步骤:
判断所述预估双向总花费是否大于所述前向总花费,或者大于所述后向总花费;
若所述预估双向总花费大于所述前向总花费,或者大于所述后向总花费,则排除对当前图像的双向运动估计。
在本发明具体应用的一种示例中,具体双向运动估计的排除过程为:
在本示例中,初始化skip_iter_block_bi_me=0,在skip_iter_block_bi_me=1时,终止双向运动估计的过程。
在具体实现中,前向运动估计和后向运动估计的最佳的运动向量生成前向预测块Prd0,和后向预测块Prd1这两个预测块,并进行平均得到初始的双向预测块Prd2。计算出前向阿达玛花费HAD0、后向阿达玛花费HAD1以及初始双向阿达玛花费HAD2,并进一步计算出前向总花费cost0、后向总花费cost1以及初始双向总花费cost2。
判断初始双向总花费cost2是否大于前向总花费cost0,或大于后向总花费cost1,若初始双向总花费cost2大于所述前向总花费cost0,或大于所述后向总花费cost1,则判断所述初始双向阿达玛花费HAD2是否小于预设阈值i_bime_th0,其中预设阈值i_bime_th0=(M*N*34)>>3。i_bime_th0表示如果单向最优匹配的总花费如果小于这个值,那么说明双向运动估计不值得做,则不执行双向运动估计。
若初始双向阿达玛花费HAD2小于这个预设阈值,那么终止双向运动估计过程,则skip_iter_block_bi_me=1;否则计算预估双向总花费i_cost_binew,具体预估双向总花费i_cost_binew就是将初始双向阿达玛花费HAD2乘以八分之七获得预估双向阿达玛花费,即i_scl_bihad=(HAD2*7)>>3(表示双向运动估计过程预计可以把阿达玛花费HAD减少到现在八分之七),然后加上运动花费的参数,得到预估双向总花费i_cost_binew,如果预估双向花费i_cost_binew大于任何一个单向总花费,那么终止双向运动估计过程;如果上面两个条件都不满足,那么执行双向运动估计过程。
应用本发明实施例,通过在一定情况下废止复杂的双向运动估计的过程,不再进行实际的双向运动估计,而只把单向预测作为最佳运动补偿方式,从而可以降低编码的复杂度,提高编码的效率。具体地,编码器的整体复杂度降低约5%,而压缩效率损失平均在0.33%。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明一种双向运动估计的排除装置实施例的结构框图,具体可以包括如下模块:
单向数据获取模块201,用于在执行对当前图像中的当前块进行单向运动估计后,获取当前图像中的当前块进行单向运动估计的单向总花费;
在本发明的一种优选实施例中,若所述单向运动估计为前向运动估计,所述当前块具有对应的前向预测块,则所述单向数据获取模块201可以包括如下子模块:
第一阿达玛花费获得子模块,用于对所述当前图像中的当前块和对应的前向预测块相减获得第一差值,并对所述第一差值进行阿达玛变换,获得阿达玛花费;
第一编码码率获取子模块,用于获取指定前向运动向量的第一编码码率;
前向总花费获得子模块,用于采用所述第一阿达玛花费和第一编码码率按照预设规则获得前向总花费。
在本发明的一种优选实施例中,若所述单向运动估计为后向运动估计,所述当前块具有对应的后向预测块,则所述单向数据获取模块201可以包括如下子模块:
第二阿达玛花费获得子模块,用于对所述当前图像中的当前块和它的后向预测块相减获得第二差值,并对所述第二差值进行阿达玛变换,获得第二阿达玛花费;
第二编码码率获取子模块,用于获取指定后向运动向量的第二编码码率;
后向总花费获得子模块,用于采用所述第二阿达玛花费和第二编码码率按照预设规则获得后向总花费。
双向数据获取模块202,用于获取当前图像中的当前块进行双向运动估计的初始双向总花费;
在本发明的一种优选实施例中,所述双向数据获取模块202可以包括如下子模块:
初始双向预测块获得子模块,用于对所述当前图像当前块的前向预测块和后向预测块进行平均得到初始双向预测块;
第三阿达玛花费获得子模块,用于采用所述当前块和所述初始双向预测块进行相减获得第三差值,并对所述第三差值进行阿达玛变换,获得第三阿达玛花费;
第三编码码率获取子模块,用于将所述第一编码码率和所述第二编码码率相加,获得第三编码码率;
初始双向总花费获得子模块,用于采用所述第三阿达玛花费和第三编码码率按照预设规则获得初始双向总花费。双向排除模块203,用于依据所述单向总花费和所述初始双向总花费排除对当前图像中的当前块的双向运动估计。
在本发明的一种优选实施例中,所述双向排除模块203可以包括如下子模块:
第一判断子模块,用于判断所述初始双向总花费是否大于所述前向总花费,或大于所述后向总花费;
第二判断子模块,用于在所述初始双向总花费大于所述前向总花费,或大于所述后向总花费时,判断所述双向阿达玛花费是否小于预设阈值;
第一双向排除子模块,用于在所述初始双向阿达玛花费小于所述预设阈值时,排除对当前图像的双向运动估计。
在本发明的一种优选实施例中,所述的装置还可以包括如下模块:
双向执行子模块,用于在所述初始双向总花费小于所述前向总花费,且小于所述后向总花费时,执行对当前图像的双向运动估计。
在本发明的一种优选实施例中,所述的装置还可以包括如下模块:
预估双向阿达玛花费获得子模块,用于在所述第三阿达玛花费大于或等于所述预设阈值,则采用所述初始双向阿达玛花费获得预估双向阿达玛花费;
预估双向总花费获得子模块,用于采用所述预估双向阿达玛花费、初始双向运动向量花费以及初始双向总花费获得预估双向总花费。
在本发明的一种优选实施例中,所述的装置还可以包括如下模块:
第三判断子模块,用于判断所述预估双向总花费是否大于所述前向总花费,或者大于所述后向总花费;
第二双向排除子模块,用于在所述预估双向总花费大于所述前向总花费,或者大于所述后向总花费时,排除对当前图像的双向运动估计。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种双向运动估计的排除方法和一种双向运动估计的排除装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种双向运动估计的排除方法,其特征在于,包括:
当执行对当前图像中的当前块进行单向运动估计后,获取当前图像中的当前块进行单向运动估计的单向总花费;
获取当前图像中的当前块进行双向运动估计的初始双向总花费;
依据所述单向总花费和所述初始双向总花费排除对当前图像中的当前块的双向运动估计。
2.根据权利要求1所述的方法,其特征在于,若所述单向运动估计为前向运动估计,所述当前块具有对应的前向预测块,则所述获取当前图像的当前块进行单向运动估计的单向总花费的步骤包括:
对所述当前图像中的当前块和对应的前向预测块相减获得第一差值,并对所述第一差值进行阿达玛变换,获得阿达玛花费;获取指定前向运动向量的第一编码码率;
采用所述第一阿达玛花费和第一编码码率按照预设规则获得前向总花费。
3.根据权利要求1所述的方法,其特征在于,若所述单向运动估计为后向运动估计,所述当前块具有对应的后向预测块,则所述获取当前图像的当前块进行单向运动估计的单向总花费的步骤包括:
对所述当前图像中的当前块和它的后向预测块相减获得第二差值,并对所述第二差值进行阿达玛变换,获得第二阿达玛花费;
获取指定后向运动向量的第二编码码率;
采用所述第二阿达玛花费和第二编码码率按照预设规则获得后向总花费。
4.根据权利要求1或2或3所述的方法,其特征在于,所述获取当前图像中的当前块进行双向运动估计的初始双向总花费的步骤包括:
对所述当前图像当前块的前向预测块和后向预测块进行平均得到初始双向预测块;
采用所述当前块和所述初始双向预测块进行相减获得第三差值,并对所述第三差值进行阿达玛变换,获得第三阿达玛花费;
将所述第一编码码率和所述第二编码码率相加,获得第三编码码率;
采用所述第三阿达玛花费和第三编码码率按照预设规则获得初始双向总花费。
5.根据权利要求1或2或3所述的方法,其特征在于,所述依据单向总花费和所述初始双向总花费排除对当前图像的双向运动估计的步骤包括:
判断所述初始双向总花费是否大于所述前向总花费,或大于所述后向总花费;
若所述初始双向总花费大于所述前向总花费,或大于所述后向总花费,则判断所述第三阿达玛花费是否小于预设阈值;
若所述第三阿达玛花费小于所述预设阈值,则排除对当前图像的双向运动估计。
6.根据权利要求5所述的方法,其特征在于,还包括:
若所述初始双向总花费小于所述前向总花费,且小于所述后向总花费,则执行对当前图像的双向运动估计。
7.根据权利要求5所述的方法,其特征在于,还包括:
若所述初始双向阿达玛花费大于或等于所述预设阈值,则采用所述初始双向阿达玛花费获得预估双向阿达玛花费;
采用所述预估双向阿达玛花费、第三阿达玛花费以及初始双向总花费获得预估双向总花费。
8.根据权利要求7所述的方法,其特征在于,还包括:
判断所述预估双向总花费是否大于所述前向总花费,或者大于所述后向总花费;
若所述预估双向总花费大于所述前向总花费,或者大于所述后向总花费,则排除对当前图像的双向运动估计。
9.一种双向运动估计的排除装置,其特征在于,包括:
单向数据获取模块,用于在执行对当前图像中的当前块进行单向运动估计后,获取当前图像中的当前块进行单向运动估计的单向总花费;
双向数据获取模块,用于获取当前图像中的当前块进行双向运动估计的初始双向总花费;
双向排除模块,用于依据所述单向总花费和所述初始双向总花费排除对当前图像中的当前块的双向运动估计。
10.根据权利要求9所述的装置,其特征在于,若所述单向运动估计为前向运动估计,所述当前块具有对应的前向预测块,则所述单向数据获取模块包括:
第一阿达玛花费获得子模块,用于对所述当前图像中的当前块和对应的前向预测块相减获得第一差值,并对所述第一差值进行阿达玛变换,获得阿达玛花费;
第一编码码率获取子模块,用于获取指定前向运动向量的第一编码码率;
前向总花费获得子模块,用于采用所述第一阿达玛花费和第一编码码率按照预设规则获得前向总花费。
11.根据权利要求9所述的装置,其特征在于,若所述单向运动估计为后向运动估计,所述当前块具有对应的后向预测块,则所述单向数据获取模块包括:
第二阿达玛花费获得子模块,用于对所述当前图像中的当前块和它的后向预测块相减获得第二差值,并对所述第二差值进行阿达玛变换,获得第二阿达玛花费;
第二编码码率获取子模块,用于获取指定后向运动向量的第二编码码率;
后向总花费获得子模块,用于采用所述第二阿达玛花费和第二编码码率按照预设规则获得后向总花费。
12.根据权利要求9或10或11所述的装置,其特征在于,所述双向数据获取模块包括:
初始双向预测块获得子模块,用于对所述当前图像当前块的前向预测块和后向预测块进行平均得到初始双向预测块;
第三阿达玛花费获得子模块,用于采用所述当前块和所述初始双向预测块进行相减获得第三差值,并对所述第三差值进行阿达玛变换,获得第三阿达玛花费;
第三编码码率获取子模块,用于将所述第一编码码率和所述第二编码码率相加,获得第三编码码率;
初始双向总花费获得子模块,用于采用所述第三阿达玛花费和第三编码码率按照预设规则获得初始双向总花费。
13.根据权利要求9或10或11所述的装置,其特征在于,所述双向排除模块包括:
第一判断子模块,用于判断所述初始双向总花费是否大于所述前向总花费,或大于所述后向总花费;
第二判断子模块,用于在所述初始双向总花费大于所述前向总花费,且大于所述后向总花费时,判断所述双向阿达玛花费是否小于预设阈值;
第一双向排除子模块,用于在所述第三阿达玛花费小于所述预设阈值时,排除对当前图像的双向运动估计。
14.根据权利要求13所述的装置,其特征在于,还包括:
双向执行子模块,用于在所述初始双向总花费小于所述前向总花费,且小于所述后向总花费时,执行对当前图像的双向运动估计。
15.根据权利要求13所述的装置,其特征在于,还包括:
预估双向阿达玛花费获得子模块,用于在所第三阿达玛花费大于或等于所述预设阈值,则采用所述初始双向阿达玛花费获得预估双向阿达玛花费;
预估双向总花费获得子模块,用于采用所述预估双向阿达玛花费、初始双向运动向量花费以及初始双向总花费获得预估双向总花费。
16.根据权利要求15所述的装置,其特征在于,还包括:
第三判断子模块,用于判断所述预估双向总花费是否大于所述前向总花费,或者大于所述后向总花费;
第二双向排除子模块,用于在所述预估双向总花费大于所述前向总花费,或者大于所述后向总花费时,排除对当前图像的双向运动估计。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510290654.7A CN104918047B (zh) | 2015-05-29 | 2015-05-29 | 一种双向运动估计的排除方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510290654.7A CN104918047B (zh) | 2015-05-29 | 2015-05-29 | 一种双向运动估计的排除方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104918047A true CN104918047A (zh) | 2015-09-16 |
CN104918047B CN104918047B (zh) | 2018-08-03 |
Family
ID=54086696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510290654.7A Active CN104918047B (zh) | 2015-05-29 | 2015-05-29 | 一种双向运动估计的排除方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104918047B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598676A (zh) * | 2018-11-15 | 2019-04-09 | 华南理工大学 | 一种基于哈达玛变换的单幅图像超分辨率方法 |
CN110278434A (zh) * | 2019-08-06 | 2019-09-24 | 杭州微帧信息科技有限公司 | 一种快速多复合帧视频编码的方法、装置及存储介质 |
WO2020048180A1 (zh) * | 2018-09-03 | 2020-03-12 | 华为技术有限公司 | 运动矢量的获取方法、装置、计算机设备及存储介质 |
CN112637592A (zh) * | 2020-12-11 | 2021-04-09 | 百果园技术(新加坡)有限公司 | 一种视频预测编码的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090207914A1 (en) * | 2008-02-20 | 2009-08-20 | Samsung Electronics Co., Ltd. | Method for direct mode encoding and decoding |
CN103124357A (zh) * | 2013-03-07 | 2013-05-29 | 天津大学 | 基于参考帧的多视点视频信息隐藏方法 |
CN103634606A (zh) * | 2012-08-21 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 视频编码方法和装置 |
CN104601991A (zh) * | 2014-12-30 | 2015-05-06 | 北京奇艺世纪科技有限公司 | 一种时域预测参数的搜索方法和装置 |
-
2015
- 2015-05-29 CN CN201510290654.7A patent/CN104918047B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090207914A1 (en) * | 2008-02-20 | 2009-08-20 | Samsung Electronics Co., Ltd. | Method for direct mode encoding and decoding |
CN103634606A (zh) * | 2012-08-21 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 视频编码方法和装置 |
CN103124357A (zh) * | 2013-03-07 | 2013-05-29 | 天津大学 | 基于参考帧的多视点视频信息隐藏方法 |
CN104601991A (zh) * | 2014-12-30 | 2015-05-06 | 北京奇艺世纪科技有限公司 | 一种时域预测参数的搜索方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020048180A1 (zh) * | 2018-09-03 | 2020-03-12 | 华为技术有限公司 | 运动矢量的获取方法、装置、计算机设备及存储介质 |
US11563949B2 (en) | 2018-09-03 | 2023-01-24 | Huawei Technologies Co., Ltd. | Motion vector obtaining method and apparatus, computer device, and storage medium |
CN109598676A (zh) * | 2018-11-15 | 2019-04-09 | 华南理工大学 | 一种基于哈达玛变换的单幅图像超分辨率方法 |
CN110278434A (zh) * | 2019-08-06 | 2019-09-24 | 杭州微帧信息科技有限公司 | 一种快速多复合帧视频编码的方法、装置及存储介质 |
CN112637592A (zh) * | 2020-12-11 | 2021-04-09 | 百果园技术(新加坡)有限公司 | 一种视频预测编码的方法及装置 |
WO2022121786A1 (zh) * | 2020-12-11 | 2022-06-16 | 百果园技术(新加坡)有限公司 | 视频预测编码的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104918047B (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7004782B2 (ja) | 画像予測方法および関連装置 | |
KR102013771B1 (ko) | 이미지 예측 방법 및 관련 장치 | |
CN102752593B (zh) | 估计运动矢量的方法和设备,编码器/解码器和解码方法 | |
CN104754355B (zh) | 一种图像解码设备 | |
JP5052134B2 (ja) | 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム | |
CN103647972B (zh) | 运动图像解码方法和运动图像编码方法 | |
CN108781284A (zh) | 具有仿射运动补偿的视频编解码的方法及装置 | |
CN107396102B (zh) | 一种基于Merge技术运动矢量的帧间模式快速选择方法及装置 | |
CN104811696B (zh) | 一种视频数据的编码方法和装置 | |
CN103327327B (zh) | 用于高性能视频编码hevc的帧间预测编码单元选择方法 | |
CN104918047A (zh) | 一种双向运动估计的排除方法和装置 | |
CN114900691B (zh) | 编码方法、编码器及计算机可读存储介质 | |
CN104811729A (zh) | 一种视频多参考帧编码方法 | |
CN117280691A (zh) | 增强的运动向量预测 | |
CN105338354A (zh) | 一种运动向量估计方法和装置 | |
CN110876058B (zh) | 一种历史候选列表更新方法与装置 | |
CN104601991B (zh) | 一种时域预测参数的搜索方法和装置 | |
CN104967858A (zh) | 一种子像素运动向量估计方法和装置 | |
CN109413426A (zh) | 视频编码处理方法 | |
CN102724504A (zh) | 视频编码滤波方法及装置 | |
CN113556551B (zh) | 一种编码、解码方法、装置及设备 | |
CN103002279B (zh) | 编码并重构像素块的方法及其对应设备 | |
CN116962697A (zh) | 视频编码的运动搜索处理方法、系统、设备及存储介质 | |
CN114365498A (zh) | 帧间预测方法、编码器、解码器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |