CN104967858B - 一种子像素运动向量估计方法和装置 - Google Patents

一种子像素运动向量估计方法和装置 Download PDF

Info

Publication number
CN104967858B
CN104967858B CN201510375488.0A CN201510375488A CN104967858B CN 104967858 B CN104967858 B CN 104967858B CN 201510375488 A CN201510375488 A CN 201510375488A CN 104967858 B CN104967858 B CN 104967858B
Authority
CN
China
Prior art keywords
pixel
search
motion vector
matching cost
diamond
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.)
Active
Application number
CN201510375488.0A
Other languages
English (en)
Other versions
CN104967858A (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201510375488.0A priority Critical patent/CN104967858B/zh
Publication of CN104967858A publication Critical patent/CN104967858A/zh
Application granted granted Critical
Publication of CN104967858B publication Critical patent/CN104967858B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供了一种子像素运动向量估计方法和装置,所述方法包括:确定当前视频编码块的最佳整像素运动向量对应的第一像素点,和预测的运动向量对应的第二像素点;判断第一像素点对应的运动向量与第二像素点对应的运动向量的水平分量、以及第一像素点对应的运动向量与第二像素点对应的运动向量的垂直分量之间的绝对差是否均在四分之一像素之内;若是则计算第二像素点的像素匹配成本,判断第二像素点的像素匹配成本是否小于设定像素匹配成本阈值;若小于则按照第一设定规则执行钻石搜索以确定当前视频编码块的子像素运动向量。通过本发明提供的子像素运动向量估计方案,能够降低匹配的复杂度,提高视频编码块的编码速度、减少视频编码器的处理负荷。

Description

一种子像素运动向量估计方法和装置
技术领域
本发明涉及视频图像处理的技术领域,特别是涉及一种子像素运动向量估计方法和装置。
背景技术
随着高分辨率拍摄设备的普及化,互联网视频量急速增长。为了高效地存储和传输高清视频,业界势必采用具有更高压缩编码效率的新一代视频编码标准。例如,新一代视频编码标准H.265/HEVC(High Efficiency Video Coding,高效视频编码标准),与上一代视频编码标准H.264/AVC(Advanced Video Coding,高阶视讯编码)相比,新一代视频编码标准有更多的编码模式可以选择,与此同时也给编码器带来了更高难度的挑战。
编码模式包括帧间编码,在帧间编码中由于当前视频图像和邻近视频图像中的景物存在着一定的相关性,因此,可以将当前视频图像分成若干块,并设法搜索出每个视频图像块在邻近视频图像中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量就是通常所指的运动向量,任意一帧视频图像选择运动向量的过程则被称为运动向量估计。将运动向量和经过运动匹配后得到的预测误差,共同发送到编码器,在编码器按照运动向量指明的位置,从已经解码的邻近的参考视频图像中找到相应的视频图像块,和当前视频图像块相减得到预测误差,然后对预测误差执行变换和量化,然后将量化系数编入码流。当进行解码时,反量化反变换得到重构的残差视频图像块,和预测视频图像块相加后就可以得到重构的当前视频图像块。
由于当前视频编码块的运动可能指向分像素位置,所以运动向量估计分为两个部分,第一部分是整像素运动向量估计,通过在一个设定区域中搜索,得到最佳的整像素匹配视频图像块,得到最佳的正像素匹配视频数据块对应的整像素运行向量。在执行完第一部分的正像素运动向量后,进行分像素运动估计即子像素运动向量估计,通过子像素运动估计确定最佳的子像素运动向量,则得到最终的运动向量。
下面参照图1对现有的子像素运动向量估计方法进行说明,其中,图1中菱形代表整像素点,正方形代表半像素点,圆形代表四分之一像素点。
假设经过上述第一部分的正像素运动向量估计后,得到的最佳整像素运动向量指向A像素点,现有的分像素运动向量估计过程,则首先对围绕在像素点A周围的8个半像素点K、L、M、N、P、Q、R、V及A共9个像素点进行匹配,对9个像素点进行匹配即求出每个像素点的像素匹配成本,选出匹配成本最小的像素点。其次,对选出的匹配成本最小的这个像素点周围的8个四分之一像素点再进行匹配(如果匹配成本最小的是像素点M,则M周围的8个四分之一像素点即为a、b、c、d、e、f、g、h,如果匹配成本最小的是像素点A,那么A周围8个四分之一像素点即为k、j、f、m、n、q、p、r),计算每个像素点的匹配成本,将计算得到的匹配成本最小的像素点对应的向量确定为最终的最佳子像素运动向量。
可见,现有的子像素运动向量估计过程需要进行17次匹配,由于匹配次数多,不仅匹配的复杂度高,并且还会影响对视频编码块的编码速度、增加视频编码器的处理负荷。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的子像素运动向量估计方法和装置。
依据本发明的一个方面,提供了一种子像素运动向量估计方法,包括:确定当前视频编码块的最佳整像素运动向量对应的第一像素点,和预测的运动向量对应的第二像素点;判断所述第一像素点对应的运动向量与所述第二像素点对应的运动向量的水平分量、以及所述第一像素点对应的运动向量与所述第二像素点对应的运动向量的垂直分量之间的绝对差是否均在四分之一像素之内;若均在四分之一像素之内,则设定初始搜索中心为第二像素点,若至少有一个所述绝对差不在四分之一像素之内,则设定初始搜索中心为第一像素点;若均在四分之一像素之内,则计算所述第二像素点的像素匹配成本,并判断所述第二像素点的像素匹配成本是否小于设定像素匹配成本阈值;若小于设定阈值,则按照第一设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
根据本发明的另一方面,还提供了一种子像素运动向量估计装置,包括:确定模块,用于确定当前视频编码块的最佳整像素运动向量对应的第一像素点,和预测的运动向量对应的第二像素点;第一判断模块,用于判断所述第一像素点对应的运动向量与所述第二像素点对应的运动向量的水平分量、以及所述第一像素点对应的运动向量与所述第二像素点对应的运动向量的垂直分量之间的绝对差是否均在四分之一像素之内;第二判断模块,用于若第一判断模块的判断结果为所述绝对差均在四分之一像素之内,则设定初始搜索中心为第二像素点,若至少有一个所述绝对差不在四分之一像素之内,则设定初始搜索中心为第一像素点;当都在四分之一像素之内时,计算所述第二像素点的像素匹配成本,并判断所述第二像素点的像素匹配成本是否小于设定像素匹配成本阈值;第一执行模块,用于若所述第二判断模块的判断结果为小于设定阈值,则按照第一设定规则执行钻石搜索,根据钻石搜索确定当前视频编码块的子像素运动向量。
与现有技术相比,本发明包括以下优点:
本发明提供的子像素运动向量估计方案,在确定当前视频编码块的最佳整像素运动向量对应的第一像素点后,然后获得当前块的预测运动向量(即MVP,对于MVP的确定参见后面的具体实施方式中的相关介绍),并判断预测的运动向量对应的第二像素点是否为距第一像素点为四分之一像素的像素点,若是,则计算第二像素点的匹配成本,并将计算得到的匹配成本与设定的像素匹配成本阈值进行比较,若小于设定的像素匹配成本阈值,则以第二像素点为中心进行钻石搜索,确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,以实现对当前视频编码块进行子像素运动向量的估计。通过本发明提供的子像素运动向量估计方案,由于在确定最佳子像素运动向量的过程中,仅是进行钻石搜索,而一次钻石搜索仅需要对中心点和中心点周围4个像素点进行5次匹配,便有可能确定出最佳子响度运动向量,相较于现有的需要进行17次匹配,能够大大缩减匹配次数。由于减少减了匹配次数,因此,能够降低匹配的复杂度,提高视频编码块的编码速度、减少视频编码器的处理负荷。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是一个视频图像块的局部像素点的分布图;
图2是一种HEVC的层次B编码的示意图;
图3是根据本发明实施例一的一种子像素运动向量估计方法的步骤流程图;
图4是根据本发明实施例二的一种子像素运动向量估计方法的步骤流程图;
图5是根据本发明实施例三的一种子像素运动向量估计装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明公开的示例性实施例。虽然附图中显示了本发明公开的示例性实施例,然而应当理解,可以以各种形式实现本发明公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本发明公开的范围完整的传达给本领域的技术人员。
为了获得较高的压缩编码效率,HEVC可以采用层次B编码。参照图2所示的一种HEVC的层次B编码的示意图,在层次B编码中,HEVC主框架最多允许8层次。参照图2,时间轴以下数字是图像的显示时间,图像上的标记的数字是编码的顺序。
编码器以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,所以都是图像层次中的第四层。
综上可知,图2的层次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最大尺寸为64×64,其中,64×64即为长为64像素宽为63像素的视频图像块。编码器可以采用四叉树的形式将每一个CTU进一步划分为CU即视频编码块(Coding Unit,编码单元)。具体地,CU可以有64×64、32×32、16×16、8×8共4种大小,然后对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(MotionVector Difference,运动向量差分),即MV-MVP=MVD。最终的MVP的选择原则为:选择计算得到的MVD小的MVP。然后,编码器将MVP选择信息和MVD写入码流中。这样解码器就能够根据解码出来的MVP选择信息选出2个MVP中的一个,加上从码流中解码出的MVD,就得到当前视频编码块的MV,最后可采用此MV生成实际的预测视频图像块。
从帧间编码的流程可以得知,运动向量估计即得到当前视频编码块的MV的过程非常重要,只有确定了当前视频编码块的最佳运动向量,才能够进一步地确定出写入码流中的信息,最终才能够生成实际的预测视频图像块。
由于当前视频编码块的运动可能指向分像素位置,所以运动向量估计分为两个部分,第一部分是整像素运动向量估计,通过在一个设定区域中搜索,得到最佳的整像素匹配视频图像块,得到最佳的正像素匹配视频数据块对应的整像素运动向量。在执行完第一部分的整像素运动向量后,进行分像素运动估计即子像素运动向量估计,通过子像素运动向量估计确定最佳的子像素运动向量,则得到最终的运动向量。
下面以具体实例对子像素运动向量估计方法进行说明。
实施例一
参照图3,示出了本发明实施例一的一种子像素运动向量估计方法的步骤流程图。
本实施例的子像素运动向量估计方法包括以下步骤:
步骤S302:确定当前视频编码块的最佳整像素运动向量对应的第一像素点,和预测的运动向量对应的第二像素点。
当前视频编码块的最佳整像素运动向量的确定可以参照现有技术即可,本实施例对此不作具体限制。
本实施例中,在进行子像素运动向量估计时,会预测一运动向量,该运动向量对应一个像素点。
步骤S304:判断第一像素点对应的运动向量与第二像素点对应的运动向量的水平分量、以及第一像素点对应的运动向量与第二像素点对应的运动向量的垂直分量之间的绝对差是否均在四分之一像素之内。
本领域技术人员应该明了,每个运动向量均具有水平分量以及垂直分量,两个像素点之间的距离可以通过两个像素点水平分量的绝对差以及垂直分量的绝对差来表征。
步骤S306:当判断结果为上述绝对差均在四分之一像素之内时,设定初始搜索中心为第二像素点,若至少有一个上述绝对差不在四分之一像素之内,则设定初始搜索中心为第一像素点;并且,若判断结果为在上述绝对差均在四分之一像素之内时,计算第二像素点的像素匹配成本,并判断第二像素点的像素匹配成本是否小于设定像素匹配成本阈值。
需要说明的是,当判断结果为上述绝对差均在四分之一像素之内时,设定初始搜索中心为第二像素点,否则,设定初始搜索中心为第一像素点。
上述绝对差均在四分之一像素之内,即第一像素点对应的运动向量与第二像素点对应的运动向量的水平分量、以及第一像素点对应的运动向量与第二像素点对应的运动向量的垂直分量之间的绝对差均在四分之一像素之内。
在满足绝对差均在四分之一像素之内时,则会进一步确定计算第二像素点的像素匹配成本,将第二像素点的像素匹配成本与设定像素匹配成本阈值进行比较,根据比较结果的不同,执行不同的操作。
需要说明的是,设定像素匹配成本阈值可以是一个具体值,也可以是一个范围,还可以是通过设定公式计算得出的一个阈值。例如:预设一个参数,获取当前视频编码块的面积,将预设的参数与当前视频编码块的面积的乘积作为设定像素匹配成本阈值。
步骤S308:若第二像素点的像素匹配成本小于设定阈值,则按照第一设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
在钻石搜索中得到的具有最小匹配成本的点对应的运动向量就是运动估计得到的子像素运动向量。通过钻石搜索可以确定最优的子像素运动向量,当然,子像素运动向量可以与整像素运动向量相同也可以不同。确定的子像素运动向量即为最终的子像素运动向量的估计结果。
若第二像素点的像素匹配成本小于设定像素匹配成本阈值,则说明可以将第二像素点作为搜索中心进行钻石搜索。
需要说明的是,执行钻石搜索的次数上限,可以由本领域技术人员根据实际需求进行设置,例如:设置成最多进行3次钻石搜索,再例如:设置成最多执行4次钻石搜索,当然,也可以设置成最多执行2次钻石搜索。在具体实现过程中,存在进行一次钻石搜索便可完成子像素运动向量估计的可能,那么,即便是设置执行的钻石搜索次数未执行完毕,也可不再进行下一次钻石搜索。
若第二像素点的像素匹配成本大于设定像素匹配成本阈值,则说明预测的运动向量不合适,需要执行设定操作。
其中,设定操作在具体实现过程中,可以由本领域技术人员根据实际需求进行设置。例如:可以设置为重新搜索新的第二像素点,然后,以新的第二像素点为搜索中心进行钻石搜索,还可以设置为执行现有的子像素运动向量估计流程,当然,也可以设置为再重新预测运动向量,执行上述步骤304以及步骤306,直至新的第二像素点的像素匹配成本小于设定阈值为止。
通过本实施例提供的子像素运动向量估计方法,由于在确定最佳子像素运动向量的过程中,仅是进行钻石搜索,而钻石搜索仅需要对中心点和中心点周围4个像素点进行5次匹配,钻石搜索可能进行一次也可能进行最多3次,所以搜索像素点的次数从5次到11次不等,而且这只限于第一种情况便有可能确定出最佳子响度运动向量,相较于现有的需要进行17次匹配,能够大大缩减匹配次数。由于缩减了匹配次数,因此,能够降低匹配的复杂度,提高视频编码块的编码速度、减少视频编码器的处理负荷。
实施例二
参照图4,示出了本发明实施例二的一种子像素运动向量估计方法的步骤流程图。
本实施例的子像素运动向量估计方法具体包括以下步骤:
步骤S402:视频编码器确定当前视频编码块的最佳整像素运动向量对应的第一像素点,和预测的运动向量对应的第二像素点。
当前视频编码块的最佳整像素运动向量的确定可以参照现有技术即可,本实施例对此不作具体限制。
一种优选的确定当前视频编码块的最佳整像素运动向量的方法为:
一般是通过最小化参考视频图像块的匹配成本以获得最佳的整像素运动向量即MV。其中,最小化参考视频图像块的匹配成本即计算各参考视频图像块的匹配成本,将匹配成本最小的参考视频图像块对应的运动向量确定为最佳整像素运动向量。
在计算各参考视频图像块的匹配成本时,通过以下公式进行计算:HCost=SAD+bitmv×λmotion;其中,HCost为参考视频图像块的匹配成本,SAD当前视频编码块和参考视频图像块逐像素绝对差之和,bitmv为参照视频图像块对应的运动向量的码率,λmotion为拉格朗日常数。
本实施例中,在进行子像素运动向量估计时,会预测一运动向量,该运动向量对应一个像素点。
步骤S404:视频编码器判断第一像素点对应的运动向量与第二像素点对应的运动向量的水平分量、以及第一像素点对应的运动向量与第二像素点对应的运动向量的垂直分量之间的绝对差是否均在四分之一像素之内;若是,则执行步骤S406,若否,则执行步骤S410。
其中,四分之一像素为视频图像编码过程中的最小单位,本领域技术人员应该明了,随着视频编码技术的发展,视频图像编码过程中的最小单位可能会变为八分之一像素、六分之一像素等,相应地,在变换后则判断步骤S404中的这两个绝对差是否均在八分之一像素之内,或六分之一像素之内。
本步骤中是为了判断预测向量对应的像素点与最佳整像素运动向量对应的像素点的距离,距离足够近,则会将该像素点确定为搜索中心,进一步对该像素点对应的像素匹配成本进行计算,而如果距离不够近,那么,预测的运动向量精准的可能较小,这样,将执行步骤S410重新预测搜索中心。
步骤S406:视频编码器在确定各绝对差均在四分之一像素之内时,设定初始搜索中心为第二像素点,若至少有一个上述绝对差不在四分之一像素之内,则设定初始搜索中心为第一像素点;并且,确定各绝对差均在四分之一像素之内时,计算第二像素点的像素匹配成本,并判断第二像素点的像素匹配成本是否小于设定像素匹配成本阈值;若小于,则执行步骤S408,若大于或等于,则执行步骤S410。
一种优选的判断第二像素点的像素匹配成本是否小于设定像素匹配成本阈值的方法如下:
S1:依据第二像素点的阿达玛成本、第二像素点对应的运动向量的码率以及拉格朗日常数确定第二像素点的像素匹配成本;
优选地,通过以下公式计算第二像素点的像素匹配成本:HCost=HAD+bitmv×λmotion
其中,HCost为像素点的像素匹配成本,HAD为像素点的阿达玛成本,bitmv为像素点对应的运动向量的码率,λmotion为拉格朗日常数;
需要说明的是,不限于此,还可以根据公式HCost=SAD+bitmv×λmotion计算第二像素点的像素匹配成本。
S2:依据设定参数以及当前视频编码块的面积确定设定像素匹配成本阈值;
优选地,通过以下公式计算设定像素匹配成本阈值:设定像素匹配成本阈值=A×area;
其中,area为当前视频编码块的面积,A为设定参数。
例如:当前视频编码块的长为x,宽为y,则当前视频编码块的面积area=x×y。
需要说明的是,设定参数A可以由本领域技术人员根据实际需求进行设定,例如:可以设定为等值。
S3:将第二像素点的像素匹配成本与设定像素匹配成本阈值进行比较,依据比较结果确定第二像素点的匹配成本是否小于设定像素匹配成本阈值。
步骤S408:若小于设定阈值,视频编码器按照第一设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
其中,钻石搜索为以某一点为搜索中心,对分别位于搜索中心正上方、正下方、正左方、正右方、且据搜索中心距离四分之一像素的四个像素点,以及搜索中心分别进行匹配成本的计算、得到匹配成本最小的像素点的搜索。
一种优选的按照第一设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量的方法为:以第二像素点为搜索中心,按照设定规则执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,将确定的最佳子像素运动向量作为当前视频编码块的子像素运动向量。
一种优选的以第二像素点为中心,按照设定规则执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点的步骤如下:
S1:以第二像素点为钻石搜索的搜索中心;
S2:搜索分别位于搜索中心正上方、正下方、正左方、正右方、且距搜索中心距离四分之一像素的像素点;
S3:分别计算搜索到的各像素点以及搜索中心的像素匹配成本,确定最小像素匹配成本;
本步骤中,确定各像素点的像素匹配成本可以通过以下公式进行计算:
HCost=HAD+bitmv×λmotion
其中,HCost为像素点的像素匹配成本,HAD为像素点的阿达玛成本,bitmv为像素点对应的运动向量的码率,λmotion为拉格朗日常数。
通过上述公式一一对各像素点的像素匹配成本进行计算,确定像素匹配成本最小的像素点,以及其对应的像素匹配成本。
S4:判断计算得到的最小像素匹配成本是否为搜索中心的像素匹配成本;
即,若搜索中心为A点,在通过上述S3后确定A点对应的像素匹配成本最小,则确定得到的最小像素匹配成本为搜索中心的像素匹配成本。反之,则确定得到的最小像素匹配成本不是搜索中心的像素匹配成本。
S5:若是,则将搜索中心确定为像素匹配成本最小的像素点;
S6:若否,则判断是否超出了预设的钻石搜索次数;
钻石搜索的次数可以由本领域技术人员根据实际需求进行设置,例如:设置成最多进行3次钻石搜索,再例如:设置成最多执行4次钻石搜索,当然,也可以设置成最多执行2次钻石搜索。在具体实现过程中,存在进行一次钻石搜索便可完成子像素运动向量估计的可能,那么,即便是设置执行的钻石搜索次数未执行完毕,也可不再进行下一次钻石搜索。
S7:若未超出预设的钻石搜索次数,则将计算得到的像素匹配成本最小的像素点作为钻石搜索的搜索中心,并返回执行搜索分别位于搜索中心正上方、正下方、正左方、正右方、且距搜索中心距离四分之一像素的像素点的步骤。
例如:前一轮钻石搜索为对搜索中心A,以及A周边的B、C、D以及E对应的像素匹配成本进行计算,计算结果为A的像素匹配成本并非最小,而是B的像素匹配成本最小,那么,需要进行第二轮钻石搜索。在进行第二轮钻石搜索时,则将B作为搜索中心,计算B周边的四个像素点的像素匹配成本,然后,再进行比较确定最小的像素匹配成本。
步骤S410:若至少有一个绝对差不在四分之一像素之内,或者,第二像素点的像素匹配成本大于或等于设定像素匹配成本阈值,视频编码器按照第二设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
一种优选的按照第二设定规则执行钻石搜索,根据搜索结果确定当前视频编码块的子像素运动向量的方法如下:
S1:确定四个像素点,其中,确定的每个像素点对应的运动向量的水平分量、与初始搜索中心水平分量的绝对差均为半个像素;确定的每个像素点对应的运动向量的垂直分量、与初始搜索中心垂直分量的绝对差均为半个像素;
需要说明的是,本步骤中初始搜索中心的确定方式如下:如果第一像素点和第二像素点水平和垂直分量的绝对差都在一个四分之一像素之内,则设定初始搜索中心为第二像素点,如果,第一像素点和第二像素点水平和垂直分量的绝对差至少有一个不在四分之一像素之内,则将搜索中心设为第一像素点。
S2:计算确定的四个像素点、以及初始搜索中心的像素匹配成本;
S3:确定像素匹配成本最小的像素点为搜索中心,按照设定规则执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,将确定的最佳子像素运动向量作为当前视频编码块的子像素运动向量。
需要说明的是,本步骤中的钻石搜索与步骤S408中的钻石搜索过程相同,相关之处请参见步骤S408中的相关内容即可。在此不再赘述。需要说明的是,在步骤S410中进行钻石搜索的次数可以由本领域技术人员根据实际需求进行设置,例如:将钻石搜索的最大次数限制设置为2次、3次或者4次,优选地,将钻石搜索的最大次数限制设置为3次。
通过本实施例提供的子像素运动向量估计方法,由于在确定最佳子像素运动向量的过程中,仅需要进行9-16次匹配便有可能确定出最佳子像素运动向量,相较于现有的需要进行17次匹配,能够大大缩减匹配次数。由于缩减了匹配次数,因此,能过降低匹配的复杂度,提高视频编码块的编码速度、减少视频编码器的处理负荷。
下面参照图1、以一具体实例对本实施例的子像素运动向量估计方法进行说明。
假设在整像素运动向量估计结束后,最佳整数运动向量是mvi其对应的像素点为A,预测运动向量是pmv0。
本具体实例中,首先考虑mvi和pmv0之间的距离,当二者的水平和垂直分量之间绝对差都在1个四分之一像素以内时,将搜索中心重置为预测运动向量对应的像素点。(如图1中所示,当pmv0是k、j、f、m、n、p、q、r或A之一时,则满足二者的水平和垂直分量之间绝对差都在1个四分之一像素以内,此时,将搜索中心由mvi对应的像素点重置为pmv0对应的像素点)此时,需要计算搜索中心的像素匹配成本即HCostpmv0。像素匹配成本的计算参见实施例二中的相关方式即可,本具体实例中不再进行详细说明。
如果时,且mvi和pmv0之间的距离在1个四分之一像素以内,那么以pmv0对应的像素点为搜索中心,执行最多4次小钻石搜索(即钻石搜索)并结束整个子像素运动向量估计过程。估计过程中产生的最小HCost即匹配成本的运动向量就是最佳子像素运动向量。需要说明的是,本实施例中仅是以最多设置4次小钻石搜索为例进行的说明,在具体实现过程中,还可以设置最多执行3次小钻石搜索。其中,设当前视频编码块宽为x、高为y,则当前视频编码块面积area=x×y。
小钻石就是指以当前搜索中心上下左右相距四分之一像素的四个像素点,那么小钻石搜索即为对这四个像素点以及当前搜索中心的搜索。假设当前pmv0对应的像素点为f,小钻石搜索过程如下:f周围的小钻石包括d、j、n、g四个像素点,对这四个像素点以及f像素点进行匹配,通过计算这五个像素点的HCost得到最佳的匹配点(即像素匹配成本最小的像素点),如果最佳的匹配点是f,那么搜索已经收敛,将终止小钻石搜索过程,f对应的运动向量即为最佳运动向量,如果不是f,那么继续下一轮小钻石搜索。
在进行下一轮小钻石搜索时,将上次小钻石搜索到的最佳匹配点作为新一轮的小钻石搜索的搜索中心。设最佳的匹配点是d,它周围小钻石包括a、L、M、f四个像素点,由于f已经搜索所以本次搜索不再考虑该点,那么,仅分别计算其余3个像素点的HCost,得到像素匹配成本最小的像素点,如果像素匹配成本最小的像素点是搜索中心点d,那么,终止小钻石搜索并设d为最佳匹配点,则d对应的MV即为最佳子像素MV。否则继续以新的最佳的匹配点为搜索中心进行下一轮的小钻石搜索,小钻石搜索最多进行4次。若执行了4次小钻石搜索后,仍未能确定出最佳子像素MV,那么,将4次小钻石搜索过程中产生的具有最小HCost的运动向量作为最佳子像素MV。
如果或mvi和pmv0的水平和垂直分量之间的距离至少有一个在1个四分之一像素以上。那么,首先搜索与搜索中心距离为(-2,-2),(-2,2),(2,-2)和(2,2)的4个像素点的像素匹配成本,并和HCostpmv0一起比较,得出其中产生像素匹配成本最小的运动向量。需要说明的是,此处搜索中心可能是mvi对应的像素点A,也可能是预测运动向量pmv0对应的像素点,如果,mvi和pmv0的水平和垂直分量之间的距离至少有一个在1个四分之一像素以上,那么,搜索中心则为A点。本具体实例中以搜索中心为A点为例对后续进行说明,由于假设搜索中心为A点,因此,这四个像素点是K、M、Q、V;当中心点是f时,这4个像素点是w、c、p、z。本领域技术人员应该明了,搜索中心A距离为(-2,-2),(-2,2),(2,-2)和(2,2)的4个像素点,即为运动向量的水平分量、与搜索中心对应的运动向量的水平分量的绝对差为半个像素,运动向量的垂直分量、与搜索中心对应的运动向量的垂直分量的绝对差为半个像素的像素点。
根据搜索中心和这4个像素点的HCost选出像素匹配成本最低的像素点对应的MV即最佳MV,在以最佳MV对应的像素点为搜索中心,按照且mvi和pmv0之间的距离在1个四分之一像素以内时相应的小钻石搜索方式,进行最多3轮的小钻石搜索。这个过程中的如果在一轮或两轮小钻石搜索后,能够产生最佳的MV,那么将终止不再执行下一轮小钻石搜索,而若3轮小钻石搜索后,仍未产生最佳的MV,那么,将3轮小钻石搜索中所产生的最小HCost的MV确定为子像素运动向量估计过程最佳MV。
本具体实例通过在不同条件下选择不同的最优子像素运动向量搜索模式,在第一种模式下最多仅执行4轮小钻石搜索,在第二种模式下仅执行3轮小钻石搜索,极大的减少了得到最优子像素运动向量所需的匹配次数,使视频编码器的整体复杂度降低约12%,而压缩效率损失平均仅在0.047%。
实施例三
参照图5,示出了本发明实施例三的一种子像素运动向量估计装置的结构框图。
本实施例的子像素运动向量估计装置包括:确定模块502,用于确定当前视频编码块的最佳整像素运动向量对应的第一像素点,和预测的运动向量对应的第二像素点;第一判断模块504,用于判断第一像素点对应的运动向量与第二像素点对应的运动向量的水平分量、以及第一像素点对应的运动向量与第二像素点对应的运动向量的垂直分量之间的绝对差是否均在四分之一像素之内;第二判断模块506,用于若第一判断模块的判断结果为绝对差均在四分之一像素之内,则设定初始搜索中心为第二像素点,若至少有一个上述绝对差不在四分之一像素之内,则设定初始搜索中心为第一像素点;并且计算第二像素点的像素匹配成本,并判断第二像素点的像素匹配成本是否小于设定像素匹配成本阈值;第一执行模块508,用于若第二判断模块的判断结果为小于设定阈值,则按照第一设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
优选地,本实施例的子像素运动向量估计装置还包括:第二执行模块510,用于若至少有一个绝对差不在四分之一像素之内,或者,第二像素点的像素匹配成本大于或等于设定像素匹配成本阈值,则按照第二设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
优选地,第二判断模块506判断第二像素点的像素匹配成本是否小于设定像素匹配成本阈值时:依据第二像素点的阿达玛成本、第二像素点对应的运动向量的码率以及拉格朗日常数确定第二像素点的像素匹配成本;依据设定参数以及当前视频编码块的面积确定设定像素匹配成本阈值;将第二像素点的像素匹配成本与设定像素匹配成本阈值进行比较,依据比较结果确定第二像素点的匹配成本是否小于设定像素匹配成本阈值。
优选地,第二判断模块506依据第二像素点的阿达玛成本、第二像素点对应的运动向量的码率以及拉格朗日常数确定第二像素点的像素匹配成本;依据设定参数以及当前视频编码块的面积确定设定像素匹配成本阈值时:通过以下公式计算第二像素点的像素匹配成本:HCost=HAD+bitmv×λmotion;其中,HCost为像素点的像素匹配成本,HAD为像素点的阿达玛成本,bitmv为像素点对应的运动向量的码率,λmotion为拉格朗日常数;通过以下公式计算设定像素匹配成本阈值:设定像素匹配成本阈值=A×area;其中,area为当前视频编码块的面积,A为设定参数。
优选地,第一执行模块508按照第一设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量时:以第二像素点为搜索中心,按照设定规则执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,将确定的最佳子像素运动向量作为当前视频编码块的子像素运动向量。
优选地,第一执行模块508以第二像素点为中心,按照设定规则执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点时:以第二像素点为钻石搜索的搜索中心;搜索分别位于搜索中心正上方、正下方、正左方、正右方、且距搜索中心距离四分之一像素的像素点;分别计算搜索到的各像素点以及搜索中心的像素匹配成本,确定最小像素匹配成本;判断计算得到的最小像素匹配成本是否为搜索中心的像素匹配成本;若是,则将搜索中心确定为像素匹配成本最小的像素点;若否,则判断是否超出了预设的钻石搜索次数;若未超出预设的钻石搜索次数,则将计算得到的像素匹配成本最小的像素点作为钻石搜索的搜索中心,并返回执行搜索分别位于搜索中心正上方、正下方、正左方、正右方、且距搜索中心距离四分之一像素的像素点的步骤。
优选地,第二执行模块510按照第二设定规则执行钻石搜索,根据搜索结果对当前视频编码块进行子像素运动向量的估计时:确定四个像素点,其中,确定的每个像素点对应的运动向量的水平分量、与初始搜索中心水平分量的绝对差均为半个像素;确定的每个像素点对应的运动向量的垂直分量、与所述初始搜素中心垂直分量的绝对差均为半个像素;计算确定的所述个像素点、以及初始搜索中心的像素匹配成本;确定像素匹配成本最小的像素点为搜索中心,按照设定规则执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,将确定的最佳子像素运动向量作为当前视频编码块的子像素运动向量。
本实施例的子像素运动向量估计装置用于实现前述实施例一、二中相应的子像素运动向量估计方法,并具有与方法实施例相应的有益效果,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的子像素运动向量估计方案不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的子像素运动向量方案中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (14)

1.一种子像素运动向量估计方法,其特征在于,包括:
确定当前视频编码块的最佳整像素运动向量对应的第一像素点,和预测的运动向量对应的第二像素点;
判断所述第一像素点对应的运动向量与所述第二像素点对应的运动向量的水平分量、以及所述第一像素点对应的运动向量与所述第二像素点对应的运动向量的垂直分量之间的绝对差是否均在四分之一像素之内;
若均在四分之一像素之内,则设定初始搜索中心为第二像素点,若至少有一个所述绝对差不在四分之一像素之内,则设定初始搜索中心为第一像素点;
若均在四分之一像素之内,则计算所述第二像素点的像素匹配成本,并判断所述第二像素点的像素匹配成本是否小于设定像素匹配成本阈值;
若小于设定阈值,则以所述第二像素点为搜索中心,在搜索中心预设的像素点,在预设搜索次数范围内,执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若至少有一个所述绝对差不在四分之一像素之内,或者,所述第二像素点的像素匹配成本大于或等于设定像素匹配成本阈值,则按照第二设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
3.根据权利要求1或2所述的方法,其特征在于,判断所述第二像素点的像素匹配成本是否小于设定像素匹配成本阈值的步骤包括:
依据所述第二像素点的阿达玛成本、第二像素点对应的运动向量的码率以及拉格朗日常数确定所述第二像素点的像素匹配成本;
依据设定参数以及当前视频编码块的面积确定所述设定像素匹配成本阈值;
将所述第二像素点的像素匹配成本与所述设定像素匹配成本阈值进行比较,依据比较结果确定所述第二像素点的匹配成本是否小于设定像素匹配成本阈值。
4.根据权利要求3所述的方法,其特征在于,所述依据所述第二像素点的阿达玛成本、第二像素点对应的运动向量的码率以及拉格朗日常数确定所述第二像素点的像素匹配成本;依据设定参数以及当前视频编码块的面积确定所述设定像素匹配成本阈值的步骤包括:
通过以下公式计算第二像素点的像素匹配成本:HCost=HAD+bitmv×λmotion
其中,所述HCost为像素点的像素匹配成本,HAD为像素点的阿达玛成本,bitmv为像素点对应的运动向量的码率,λmotion为拉格朗日常数;
通过以下公式计算所述设定像素匹配成本阈值:设定像素匹配成本阈值=A×area;
其中,area为当前视频编码块的面积,A为设定参数。
5.根据权利要求1所述的方法,其特征在于,所述以所述第二像素点为搜索中心,在搜索中心预设的像素点,在预设搜索次数范围内,执行钻石搜索,根据钻石搜索确定当前视频编码块的子像素运动向量的步骤包括:
通过钻石搜索确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,将确定的所述最佳子像素运动向量作为当前视频编码块进行子像素运动向量。
6.根据权利要求5所述的方法,其特征在于,所述以所述第二像素点为中心,在搜索中心预设的像素点,在预设搜索次数范围内,执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点的步骤包括:
以所述第二像素点为钻石搜索的搜索中心;
搜索分别位于所述搜索中心正上方、正下方、正左方、正右方、且距所述搜索中心距离四分之一像素的像素点;
分别计算搜索到的各像素点以及所述搜索中心的像素匹配成本,确定最小像素匹配成本;
判断计算得到的最小像素匹配成本是否为所述搜索中心的像素匹配成本;
若是,则将所述搜索中心确定为像素匹配成本最小的像素点;
若否,则判断是否超出了预设的钻石搜索次数;
若未超出预设的钻石搜索次数,则将计算得到的像素匹配成本最小的像素点作为钻石搜索的搜索中心,并返回执行所述搜索分别位于所述搜索中心正上方、正下方、正左方、正右方、且距所述搜索中心距离四分之一像素的像素点的步骤。
7.根据权利要求2所述的方法,其特征在于,所述按照第二设定规则执行钻石搜索,根据搜索结果对当前视频编码块进行子像素运动向量的估计的步骤包括:
确定四个像素点,其中,确定的每个像素点对应的运动向量的水平分量、与所述初始搜索中心水平分量的绝对差均为半个像素;确定的每个像素点对应的运动向量的垂直分量、与所述初始搜索中心垂直分量的绝对差均为半个像素;
计算确定的所述四个像素点、以及所述初始搜索中心的像素匹配成本;
确定像素匹配成本最小的像素点为搜索中心,按照设定规则执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,将确定的所述最佳子像素运动向量作为当前视频编码块进行子像素运动向量。
8.一种子像素运动向量估计装置,其特征在于,包括:
确定模块,用于确定当前视频编码块的最佳整像素运动向量对应的第一像素点,和预测的运动向量对应的第二像素点;
第一判断模块,用于判断所述第一像素点对应的运动向量与所述第二像素点对应的运动向量的水平分量、以及所述第一像素点对应的运动向量与所述第二像素点对应的运动向量的垂直分量之间的绝对差是否均在四分之一像素之内;
第二判断模块,用于若第一判断模块的判断结果为所述绝对差均在四分之一像素之内,则设定初始搜索中心为第二像素点,若至少有一个所述绝对差不在四分之一像素之内,则设定初始搜索中心为第一像素点;当都在四分之一像素之内时,计算所述第二像素点的像素匹配成本,并判断所述第二像素点的像素匹配成本是否小于设定像素匹配成本阈值;
第一执行模块,用于若所述第二判断模块的判断结果为小于设定阈值,则以所述第二像素点为搜索中心,在搜索中心预设的像素点,在预设搜索次数范围内,执行钻石搜索,根据钻石搜索确定当前视频编码块的子像素运动向量。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二执行模块,用于若至少有一个所述绝对差不在四分之一像素之内,或者,所述第二像素点的像素匹配成本大于或等于设定像素匹配成本阈值,则按照第二设定规则执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量。
10.根据权利要求8或9所述的装置,其特征在于,所述第二判断模块判断所述第二像素点的像素匹配成本是否小于设定像素匹配成本阈值时:
依据所述第二像素点的阿达玛成本、第二像素点对应的运动向量的码率以及拉格朗日常数确定所述第二像素点的像素匹配成本;
依据设定参数以及当前视频编码块的面积确定所述设定像素匹配成本阈值;
将所述第二像素点的像素匹配成本与所述设定像素匹配成本阈值进行比较,依据比较结果确定所述第二像素点的匹配成本是否小于设定像素匹配成本阈值。
11.根据权利要求10所述的装置,其特征在于,所述第二判断模块依据所述第二像素点的阿达玛成本、第二像素点对应的运动向量的码率以及拉格朗日常数确定所述第二像素点的像素匹配成本;依据设定参数以及当前视频编码块的面积确定所述设定像素匹配成本阈值时:
通过以下公式计算第二像素点的像素匹配成本:HCost=HAD+bitmv×λmotion
其中,所述HCost为像素点的像素匹配成本,HAD为像素点的阿达玛成本,bitmv为像素点对应的运动向量的码率,λmotion为拉格朗日常数;
通过以下公式计算所述设定像素匹配成本阈值:
设定像素匹配成本阈值=A×area;
其中,area为当前视频编码块的面积,A为设定参数。
12.根据权利要求8所述的装置,其特征在于,所述第一执行模块以所述第二像素点为搜索中心,在搜索中心预设的像素点,在预设搜索次数范围内,执行钻石搜索,根据钻石搜索结果确定当前视频编码块的子像素运动向量时:
通过钻石搜索确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,将确定的所述最佳子像素运动向量作为当前视频编码块进行子像素运动向量。
13.根据权利要求12所述的装置,其特征在于,所述第一执行模块以所述第二像素点为中心,在搜索中心预设的像素点,在预设搜索次数范围内,执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点时:
以所述第二像素点为钻石搜索的搜索中心;
搜索分别位于所述搜索中心正上方、正下方、正左方、正右方、且距所述搜索中心距离四分之一像素的像素点;
分别计算搜索到的各像素点以及所述搜索中心的像素匹配成本,确定最小像素匹配成本;
判断计算得到的最小像素匹配成本是否为所述搜索中心的像素匹配成本;
若是,则将所述搜索中心确定为像素匹配成本最小的像素点;
若否,则判断是否超出了预设的钻石搜索次数;
若未超出预设的钻石搜索次数,则将计算得到的像素匹配成本最小的像素点作为钻石搜索的搜索中心,并返回执行所述搜索分别位于所述搜索中心正上方、正下方、正左方、正右方、且距所述搜索中心距离四分之一像素的像素点的操作。
14.根据权利要求9所述的装置,其特征在于,所述第二执行模块按照第二设定规则执行钻石搜索,根据搜索结果确定当前视频编码块的子像素运动向量时:
确定四个像素点,其中,确定的每个像素点对应的运动向量的水平分量、与所述初始搜索中心水平分量的绝对差均为半个像素;确定的每个像素点对应的运动向量的垂直分量、与所述初始搜索中心垂直分量的绝对差均为半个像素;
计算确定的所述四个像素点、以及所述初始搜索中心的像素匹配成本;
确定像素匹配成本最小的像素点为搜索中心,按照设定规则执行钻石搜索,通过钻石搜索确定像素匹配成本最小的像素点,将该像素点对应的运动向量确定为最佳子像素运动向量,将确定的所述最佳子像素运动向量作为当前视频编码块进行子像素运动向量。
CN201510375488.0A 2015-06-30 2015-06-30 一种子像素运动向量估计方法和装置 Active CN104967858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510375488.0A CN104967858B (zh) 2015-06-30 2015-06-30 一种子像素运动向量估计方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510375488.0A CN104967858B (zh) 2015-06-30 2015-06-30 一种子像素运动向量估计方法和装置

Publications (2)

Publication Number Publication Date
CN104967858A CN104967858A (zh) 2015-10-07
CN104967858B true CN104967858B (zh) 2018-01-26

Family

ID=54221783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510375488.0A Active CN104967858B (zh) 2015-06-30 2015-06-30 一种子像素运动向量估计方法和装置

Country Status (1)

Country Link
CN (1) CN104967858B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109561315B (zh) * 2018-10-31 2020-10-02 北京金山云网络技术有限公司 一种运动估计方法、装置、电子设备及存储介质
CN110223326B (zh) * 2019-06-18 2021-04-30 无锡英斯特微电子有限公司 光电导航系统中亚像素区域确定方法及其系统
CN110392265B (zh) * 2019-08-27 2022-03-25 广州虎牙科技有限公司 帧间运动估计方法、装置、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006033112A (ja) * 2004-07-13 2006-02-02 Casio Comput Co Ltd 動きベクトル検出装置、および、プログラム
CN101431675A (zh) * 2008-12-09 2009-05-13 青岛海信电子产业控股股份有限公司 一种像素运动估计方法和装置
CN101699865A (zh) * 2009-10-28 2010-04-28 山东大学 一种块运动自适应的亚像素快速搜索方法
CN103414899A (zh) * 2013-08-16 2013-11-27 武汉大学 一种视频编码的运动估计方法
US8761261B1 (en) * 2008-07-29 2014-06-24 Marvell International Ltd. Encoding using motion vectors
CN104702957A (zh) * 2015-02-28 2015-06-10 北京大学 运动矢量压缩方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9307122B2 (en) * 2006-09-27 2016-04-05 Core Wireless Licensing S.A.R.L. Method, apparatus, and computer program product for providing motion estimation for video encoding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006033112A (ja) * 2004-07-13 2006-02-02 Casio Comput Co Ltd 動きベクトル検出装置、および、プログラム
US8761261B1 (en) * 2008-07-29 2014-06-24 Marvell International Ltd. Encoding using motion vectors
CN101431675A (zh) * 2008-12-09 2009-05-13 青岛海信电子产业控股股份有限公司 一种像素运动估计方法和装置
CN101699865A (zh) * 2009-10-28 2010-04-28 山东大学 一种块运动自适应的亚像素快速搜索方法
CN103414899A (zh) * 2013-08-16 2013-11-27 武汉大学 一种视频编码的运动估计方法
CN104702957A (zh) * 2015-02-28 2015-06-10 北京大学 运动矢量压缩方法和装置

Also Published As

Publication number Publication date
CN104967858A (zh) 2015-10-07

Similar Documents

Publication Publication Date Title
TWI731363B (zh) 高效的仿射Merge運動向量推導
CN104935938B (zh) 一种混合视频编码标准中帧间预测方法
CN101385356B (zh) 采用帧内预测模式的图像编码方法
CN104754355B (zh) 一种图像解码设备
CN110313180A (zh) 用于编码和解码运动信息的方法和装置
CN102301716B (zh) 解码代表画面序列的流的方法,编码画面序列的方法以及编码的数据结构
CN104412597B (zh) 用于3d视频编码的统一视差矢量推导的方法及装置
JP2023134521A (ja) デコーダ側の動きベクトルの導出
CN104769947B (zh) 一种基于p帧的多假设运动补偿编码方法
CN101518084B (zh) 视频序列中数据压缩的方法
CN108781284A (zh) 具有仿射运动补偿的视频编解码的方法及装置
CN111385569A (zh) 一种编解码方法及其设备
CN108683922A (zh) 对多视图视频信号进行解码的方法和装置
CN101309408B (zh) 一种亮度块帧内预测模式选择方法
CN110326296A (zh) 用于对运动信息进行编码和解码的方法和装置
CN104967858B (zh) 一种子像素运动向量估计方法和装置
CN101494776A (zh) 一种h.264码率控制方法
CN102484711B9 (zh) 指向覆盖多个参考图像分区的参考区域的当前图像分区的移动向量的预测、以及使用一个这种预测的编码和解码
US10785501B2 (en) System and method of performing motion estimation in multiple reference frame
Li et al. Context-adaptive fast motion estimation of HEVC
CN102801995A (zh) 一种基于模板匹配的多视点视频运动和视差矢量预测方法
CN102265615B (zh) 使用参考因果区的重新分区的图像预测、以及使用这样的预测的编码和解码
CN105338354B (zh) 一种运动向量估计方法和装置
CN104918047B (zh) 一种双向运动估计的排除方法和装置
CN114640856B (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