帧间预测方法、设备及可读存储介质与流程
未命名
07-23
阅读:215
评论:0

技术领域:
:,具体涉及一种帧间预测方法、设备及可读存储介质。
背景技术:
::2.帧间预测是利用视频时间的相关性,以达到去除视频时域冗余的目的。由于视频序列通常包括较强的时域相关性,因此很多残差值接近于零。将残差信号作为后续模块的输入进行变换、量化、扫描及熵编码,可实现对视频信号的高效压缩。对帧间预测块,运动参数由运动矢量,参考图像索引和参考图像列表索引等。3.目前的帧间预测方法在构建完运动矢量预测候选列表后,基于模板选择当前模板和参考模板误差最小的一个运动矢量预测候选,然后只对这个运动矢量预测候选做模板匹配,预测精确度不足。技术实现要素:4.本技术实施例提供一种帧间预测方法、设备及可读存储介质,能够解决现有帧间预测方法的预测精确度不足的问题。5.第一方面,提供了一种一种帧间预测方法,包括:6.在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;7.对所述多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;8.根据所述多个偏移运动矢量预测候选确定目标运动矢量预测候选;9.以所述目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;10.其中,所述多个运动矢量预测候选为所述运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选。11.第二方面,提供了一种帧间预测装置,包括:12.第一确定模块,用于在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;13.偏移模块,用于对所述多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;14.第二确定模块,用于根据所述多个偏移运动矢量预测候选确定目标运动矢量预测候选;15.处理模块,用于以所述目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;16.其中,所述多个运动矢量预测候选为所述运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选。17.第三方面,提供了一种终端,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的帧间预测方法的步骤。18.第四方面,提供了一种终端,包括处理器及通信接口,其中,所述处理器用于在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;19.对所述多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;20.根据所述多个偏移运动矢量预测候选中确定目标运动矢量预测候选;21.以所述目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;22.其中,所述多个运动矢量预测候选为所述运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选,所述目标运动矢量预测候选为所述多个偏移运动矢量预测候选中当前模板与参考模板之间的误差排在第二预设位置的运动矢量预测候选。23.第五方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。24.第六方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。25.第七方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤。26.在本技术实施例中,在目标编解码单元的运动矢量预测候选列表中,基于模板选择当前模板与参考模板之间的误差排在预设位置的多个运动矢量预测候选,然后对该多个运动矢量预测候选进行偏移,筛选,得到目标运动矢量预测候选,最后基于目标运动矢量预测候选,通过模板匹配得到目标运动矢量预测,通过本技术实施例的方法能够获得更加精确的运动矢量预测。附图说明27.图1为现有模板匹配处理的示意图;28.图2为本技术实施例提供的帧间预测方法的流程示意图;29.图3为本技术实施例提供的帧间预测装置的结构示意图;30.图4为本技术实施例提供的终端的结构示意图。具体实施方式31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本技术保护的范围。32.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。33.为更好理解本技术实施例的技术方案,首先对以下内容进行介绍:34.在通用视频编码(versatilevideocoding,vvc)标准中,图像被划分成一系列的编码树单元,编码树单元会进一步用多种类型的树结构划分出解码单元。利用帧内预测或者帧间预测获得解码单元的预测样本。编码块的原始样本和预测样本相减得到残差样本,对残差样本进行变换量化得到残差信息,经熵编码后写入码流。35.解码端从码流中获取当前待解码的解码单元预测信息,利用预测信息导出预测样本。从码流获取残差信息经过反量化反变换得到残差样本,与预测样本相加得到当前待解码的解码单元的重建样本。36.高级运动矢量预测(advancedmotionvectorprediction,amvp)37.高级运动矢量预测是一种帧间预测技术,利用当前和相邻块的运动矢量在空域和时域上的相关性来节省编码运动矢量所需的比特数。在vvc标准中,有两种高级运动矢量预测模式:常规高级运动矢量预测模式和仿射高级运动矢量预测模式。38.常规高级运动矢量预测模式用下面五种类型的候选顺序构建运动矢量预测候选列表:39.1)空域相邻块的空域运动矢量预测;40.2)时域同位置块的时域运动矢量预测;41.3)基于历史运动矢量的运动矢量预测;42.4)成对平均的运动矢量预测;43.5)零运动矢量;44.仿射高级运动矢量预测模式用下面四种类型的候选顺序构建运动矢量预测候选列表:45.1)从相邻块的控制点运动矢量推断出继承的仿射运动矢量预测候选;46.2)使用相邻块的平移运动矢量构造仿射运动矢量预测候选;47.3)来自相邻块的平移运动矢量;48.4)零运动矢量;49.模板匹配50.模板匹配是下一代标准探索实验中引入的一种解码端运动矢量导出方法。如图1所示,通过当前图像的模板(当前块的上方或者左侧相邻的几行或几列),在参考图像某个区域找到最佳匹配块(相同大小的模板),从而可以优化当前块的运动信息。51.对常规高级运动矢量预测模式,在构建完运动矢量预测候选列表后,基于模板选择当前模板和参考模板误差最小的一个运动矢量预测候选,然后只对这个运动矢量预测候选做模板匹配。这里说述的误差是指当前模板和参考模板重建样本之间的绝对变换差(absolutetransformeddifferences,satd),也可以是其他计算误差方法。当前模块是指当前编解码单元对应的模板,解码单元和编码单元(codingunit,cu)对应。52.自适应运动矢量精度(adaptivemotionvectorresolution,amvr)53.自适应运动矢量精度允许运动矢量差(运动矢量和运动矢量预测之间的差值)以不同的精度编码,这样可以节省编码运动矢量差所需的比特数。在常规运动矢量预测模式中,运动矢量差的精度可以是1/4像素、1/2像素、1像素和4像素。在仿射高级运动矢量预测模式中,运动矢量差的精度可以是1/4像素、1像素和1/16像素。54.下面结合附图,通过一些实施例及其应用场景对本技术实施例提供的传输调度方法进行详细地说明。55.参见图2,本技术实施例提供一种帧间预测方法,该方法的执行主体可以为终端,或者是终端中的用于执行终端操作的控制模块,包括:56.步骤201:在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;57.需要说明的是,在上述步骤201中,运动矢量预测候选列表可以采用现有的运动矢量预测候选列表构建方式构建,而针对运动矢量预测候选,与现有方式不同,本技术是从运动矢量预测候选列表中选取出当前模板与参考模板之间的误差最小的多个运动矢量预测候选(可记作candmv),而不是仅挑选一个。58.步骤202:对多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;59.步骤203:根据多个偏移运动矢量预测候选确定目标运动矢量预测候选;60.步骤204:以目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;61.需要说明的是,在上述步骤204中,可采用现有的模板匹配方式得到目标运动矢量预测,本技术实施例对该过程不做具体限定。62.其中,多个运动矢量预测候选为运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选。63.上述第一预设位置可以指的最后n位,即误差最小的n位,或者也可以是倒数第二、到时第三,即没有倒数第一。64.在一种可能的实施方式中,第一预设位置为运动矢量预测候选列表中当前模板与参考模板之间的误差最小的n个位置,n为大于或等于1的整数;65.可选地,可以从运动矢量预测候选列表中选取出误差最小的两个运动矢量预测候选(记作candmv0和candmv1),或者也可以选取出3个、4个等数量,本技术实施例对此不做具体限定,为描述方便后续实施例中均以选取出误差最小的两个运动矢量预测候选(candmv0和candmv1)为例进行说明。66.需要说明的是,本技术实施例中,所描述的参考模板,具体对于偏移运动矢量预测候选,参考模板是偏移后的模板;具体对于运动矢量预测候选而言,参考模板是偏移前的模板。67.需要说明的是,本技术实施例中,获取排在最小的多个运动矢量预测候选的方式可以为:将每一个误差与当前误差做比对,如果小于,则将该误差替换为当前的,以此类推。68.在本技术实施例中,在目标编解码单元的运动矢量预测候选列表中,基于模板选择当前模板与参考模板之间的误差排在预设位置的多个运动矢量预测候选,然后对该多个运动矢量预测候选进行偏移,筛选,得到最优的目标运动矢量预测候选,最后基于目标运动矢量预测候选,通过模板匹配得到目标运动矢量预测,通过本技术实施例的方法能够获得更加精确的运动矢量预测。69.在一种可能的实施方式中,对多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选,包括:70.沿至少一个预设方向中的每一个预设方向,按照第一预设偏移距离,分别对多个运动矢量预测候选中的每个运动矢量预测候选进行偏移,得到多个第一偏移运动矢量预测候选。71.在本技术实施例中,第一预设偏移距离可以包含一个或多个预设偏移距离,例如预先设定多个预设方向以及多个预设偏移距离,在具体偏移处理过程中,针对每一个运动矢量预测候选,将其在每一个预设方向上,依次按照每一个预设偏移距离进行多次偏移,得到多个偏移运动矢量预测候选。72.例如:预先设定了2个预设方向(方向1、方向2)和3个预设偏移距离(距离a、距离b、距离c),运动矢量预测候选为candmv0和candmv1,则偏移处理过程为:对candmv0在方向1和方向2上分别按照距离a、距离b、距离c进行3次偏移,每次对应不同的偏移距离,从而得到6个偏移运动矢量预测候选,同理,对candmv1在方向1和方向2上分别按照距离a、距离b、距离c进行3次偏移,每次对应不同的偏移距离,也得到6个偏移运动矢量预测候选,也就是总共得到了12个偏移运动矢量预测候选。73.在一种可能的实施方式中,方法还包括:根据当前待解码图像头的标识的值,确定预设方向和预设偏移距离。74.在本技术实施例中,上述预设方向和预设偏移距离的信息可以通过在当前待解码图像头的标识(flag)的值来设置,其中flag可以是vvc标准中的ph_mmvd_fullpel_only_flag,也可以是下一代探索实验中的ph_gpm_mmvd_table_flag,或者也可以在图像头中新加一个flag来标识。75.参见表1,表1中示出一种预设偏移距离的设置:[0076][0077][0078]表1[0079]需要说明的是,在表1中,具体是提供了两组预设偏移距离,分别由flag==0和flag==1来标识。[0080]可以理解的是,也可只设置一组预设偏移距离,此时不需要flag标识区分,具体如表2所示:[0081]distance_idxdistance01122438412516624732864[0082]表2参见表3,表3中示出一种预设方向的设置:[0083]direction_idxsignxsigny0+101-1020+130-14+1+15+1-16-1+17-1-1[0084]表3[0085]需要说明的是,在表3中,signx可以理解为常规直角坐标系中的x周的方向,相应地,如果值为+1则表示x轴正方向,-1则为x轴负方向,signy同理,基于此,在表3中direction_idx=0对应的预设方向即为x轴正方向,在表3中direction_idx=4对应的预设方向即为45°指向第一象限的方向,在表3中direction_idx=6对应的预设方向即为45°指向第二象限的方向,对于表3中其他direction_idx对应的预设方向可基于相同原理类推,在此不再赘述。[0086]进一步地,针对运动矢量预测候选的偏移计算如下:[0087]candmvx=candmvx+offsetmvx;[0088]candmvy=candmvy+offsetmvy;[0089]其中,offsetmvx=(distance《《2)*signx,offsetmvy=(distance《《2)*signy;[0090]在一种可能的实施方式中,根据多个偏移运动矢量预测候选确定目标运动矢量预测候选,包括:[0091]在多个第一偏移运动矢量预测候选中确定目标运动矢量预测候选;[0092]或,在多个第一偏移运动矢量预测候选和多个运动矢量预测候选中确定目标运动矢量预测候选。[0093]在一种可能的实施方式中,在多个第一偏移运动矢量预测候选中确定目标运动矢量预测候选,包括:[0094](1)根据多个第一偏移运动矢量预测候选,确定第一运动矢量预测候选,第一运动矢量预测候选为当前模板与参考模板之间的误差排在第二预设位置的第一偏移运动矢量预测候选对应的运动矢量预测候选;[0095]上述第二预设位置可以指的最后m位,即误差最小的m位。[0096]在一种可能的实施方式中,第二预设位置为当前模板与参考模板之间的误差最小的m个位置,m为大于或等于1的整数,例如可以是倒数第一位;[0097](2)沿至少一个个预设方向中的每一个预设方向,按照第二预设偏移距离,对第一运动矢量预测候选进行偏移,得到第二偏移运动矢量预测候选;该第二偏移运动矢量预测候选的数量可以是一个或者多个。[0098](3)在第二偏移运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的目标运动矢量预测候选;或,在第二偏移运动矢量预测候选和第一运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的目标运动矢量预测候选。[0099]上述第三预设位置可以指的最后x位,即误差最小的x位。[0100]在一种可能的实施方式中,第三预设位置为当前模板与参考模板之间的误差最小的x个位置,x为大于或等于1的整数,例如可以是倒数第一位;[0101]在一种可能的实施方式中,第一预设偏移距离小于第一阈值,第二预设偏移距离大于或等于第一阈值。[0102]在一种可能的实施方式中,第一偏移运动矢量预测候选对应的误差小于第一运动矢量预测候选对应的误差。[0103]在一种可能的实施方式中,在多个第一偏移运动矢量预测候选和多个运动矢量预测候选中确定目标运动矢量预测候选,包括:[0104]在多个第一偏移运动矢量预测候选和多个运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第四预设位置的目标运动矢量预测候选。[0105]上述第四预设位置可以指的最后y位,即误差最小的y位。[0106]在一种可能的实施方式中,第四预设位置为当前模板与参考模板之间的误差最小的y个位置,y为大于或等于1的整数,例如可以是倒数第一位;[0107]在本技术实施例中,在对多个运动矢量预测候选进行偏移处理时,根据预设偏移距离分成两个筛选:[0108]首先在小于第一阈值的第一预设偏移距离的范围内,进行偏移处理,然后选取出第一误差最小的第一运动矢量预测候选,例如:在偏移距离小于4(以上述表1中的偏移距离为例进行说明,根据具体情况也可以选择其他距离值)的情况下,对candmv0和candmv1进行偏移处理,然后计算当前模板和偏移后参考模板误差,所有误差中最小的对应的候选为运动矢量候选candmv2;[0109]然后在大于或等于第一阈值的第二预设偏移距离的范围内,对第一运动矢量预测候选进行偏移处理,并计算当前模板和偏移后参考模板误差,将所有误差中最小的对应的候选确定为最佳的运动矢量预测候选,即目标运动矢量预测候选,例如:在偏移距离大于或等于4的情况下,对candmv2进行偏移处理,然后计算当前模板和偏移后参考模板误差,所有误差中最小的对应的候选为目标运动矢量预测候选。[0110]在一种可能的实施方式中,在多个第一偏移运动矢量预测候选中确定目标运动矢量预测候选,包括:[0111](1)根据多个第一偏移运动矢量预测候选,确定第一运动矢量预测候选,第一运动矢量预测候选为当前模板与参考模板之间的误差最小的第一偏移运动矢量预测候选对应的运动矢量预测候选;[0112](2)判断第一运动矢量预测候选是否与多个运动矢量预测候选中的任意一项相等;若是,执行(3),否则,执行(4);[0113](3)确定第一运动矢量预测候选为目标运动矢量预测候选;[0114](4)沿至少一个个预设方向中的每一个预设方向,按照第二预设偏移距离,对第一运动矢量预测候选进行偏移,得到第二偏移运动矢量预测候选,然后执行(5);[0115](5)在第二偏移运动矢量预测候选中,确定出当前模板与参考模板之间的误差最小的目标运动矢量预测候选;或,在第二偏移运动矢量预测候选和第一运动矢量预测候选中,确定出当前模板与参考模板之间的误差最小的目标运动矢量预测候选。[0116]在本技术实施例中,在对多个运动矢量预测候选进行偏移处理时,根据预设偏移距离分成两个筛选:[0117]首先在小于第一阈值的预设偏移距离的范围内,进行偏移处理,然后选取出第一误差最小的第一运动矢量预测候选,例如:在偏移距离小于4(以上述表1中的偏移距离为例进行说明,根据具体情况也可以选择其他距离值)的情况下,对candmv0和candmv1进行偏移处理,然后计算当前模板和偏移后参考模板误差,所有误差中最小的对应的候选为运动矢量候选candmv2;[0118]此时,判断第一运动矢量预测候选是否与多个运动矢量预测候选中的任意一项相等;若是,则直接将该第一运动矢量预测候选确定为最佳的运动矢量预测候选,即目标运动矢量预测候选,例如:判断candmv2是否与candmv0或candmv1相等,是则直接将该candmv2确定为最佳的运动矢量预测候选,即目标运动矢量预测候选;[0119]否则,在大于或等于第一阈值的预设偏移距离的范围内,对第一运动矢量预测候选进行偏移处理,并计算当前模板和偏移后参考模板误差,将所有误差中最小的对应的候选确定为最佳的运动矢量预测候选,即目标运动矢量预测候选,例如:在偏移距离大于或等于4的情况下,对candmv2进行偏移处理,然后计算当前模板和偏移后参考模板误差,所有误差中最小的对应的候选为目标运动矢量预测候选。[0120]在一种可能的实施方式中,第一预设偏移距离为预设的预测偏移距离集包括的偏移距离,第二预设偏移距离为与目标偏移距离相关联的至少一个偏移距离,目标偏移距离为第一运动矢量预测候选对应的第一预设偏移距离。[0121]本实施例中,预先设置有预测偏移距离集,上述预测偏移距离集用于表征索引与偏移距离之间的映射关系。应理解,上述表1和表2中的distance_idx表示索引,表1和表2中的distance表示偏移距离,预测偏移距离集可以被设置为上述表1和表2所包括的部分索引与偏移距离之间的映射关系。例如,预测偏移距离集包括表2中所有偶数索引对应的偏移距离,这种情况下,通过查阅表2可以得到,第一预设偏移距离为1、4、12、24和64。[0122]如上所述,在选取出误差最小的两个运动矢量预测候选(candmv0和candmv1)后,按照上述第一预设偏移距离,对candmv0和candmv1进行偏移处理,然后计算当前模板和偏移后参考模板误差,所有误差中最小的对应的候选为运动矢量候选candmv2;将上述candmv2对应的第一预设偏移距离确定为目标偏移距离。[0123]本实施例中,可以通过查阅表1和表2的方式,确定与目标偏移距离相关联的第二预设偏移距离。例如,在目标偏移距离为4的情况下,目标偏移距离在表2中对应的索引为2,则可以将表2中与索引2相邻的索引对应的偏移距离设置为第二预设偏移距离,即将索引1和索引3对应的偏移距离设置为第二预设偏移距离,第二预设偏移距离为2和8。[0124]按照上述第二预设偏移距离,对candmv2进行偏移处理,然后计算当前模板和偏移后参考模板误差,所有误差中最小的对应的候选为目标运动矢量预测候选。[0125]在一可选地实施方式中,在确定目标偏移距离后,判断第一运动矢量预测候选是否与多个运动矢量预测候选中的任意一项相等,即判断candmv2是否与candmv0或candmv1相等,若相等,则将candmv2确定为目标运动矢量预测候选;若不相等,则执行上述对candmv2进行偏移处理,以确定目标运动矢量预测候选的步骤。[0126]本实施例中,通过预先设置预测偏移距离集,按照预测偏移距离集包括的第一预设偏移距离对运动矢量预测候选进行偏移;且在确定运动矢量候选后,使用第二预设偏移距离对运动矢量候选进行偏移,以确定目标运动矢量预测候选。在上述过程中,减少了对运动矢量预测候选和运动矢量候选进行偏移处理的次数,进而提高了帧间预测的效率。[0127]在一种可能的实施方式中,多个偏移运动矢量预测候选的运动矢量精度与目标编解码单元的运动矢量精度相等。[0128]需要说明的是,上述偏移运动矢量预测候选与目标编解码单元的运动矢量精度相等,具体指的是,偏移运动矢量预测候选的运动矢量精度与目标编解码单元的运动矢量精度经过四舍五入取整之后的运动矢量精度相等。[0129]具体的运动矢量精度的四舍五入处理如下:[0130]如果rightshift等于0,则offset赋值为0,否则offset赋值为(1《《(rightshift-1))-1);[0131]mv[0]=sign(mvx[0])*(((abs(mvx[0])+offset)》》rightshift)《《leftshift);[0132]mv[1]=sign(mvx[1])*(((abs(mvx[1])+offset)》》rightshift)《《leftshift);[0133]其中,右移值rightshift和左移值leftshift都等于amvrshift。amvrshift可由表4查得:[0134]表4[0135][0136]在一种可能的实施方式中,目标编解码单元的运动矢量精度满足预设运动矢量精度,预设运动矢量精度可以是1/4像素精度或1像素精度,也可以是其他精度。[0137]需要说明的是,在一些具体的实施过程中,在目标编解码单元的运动矢量精度满足预设运动矢量精度的情况下,采用本技术实施例的帧间预测方法。[0138]在一种可能的实施方式中,目标编解码单元的目标信息满足预设门限值,该目标信息包括面积、宽和高中的至少一项。[0139]在一种可能的实施方式中,方法还包括:[0140]根据待解码图像头的标识的值,确定预设方向、第一预设偏移距离和第二预设偏移距离中的至少一项。[0141]需要说明的是,在一些具体的实施过程中,在目标编解码单元的宽和/或高满足预设门限值的情况下,采用本技术实施例的帧间预测方法。[0142]本技术实施例提供的帧间预测方法,执行主体可以为帧间预测装置。本技术实施例中以帧间预测装置执行帧间预测方法为例,说明本技术实施例提供的帧间预测装置。[0143]参见图3,本技术实施例提供一种帧间预测装置300,包括:[0144]第一确定模块301,用于在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;[0145]偏移模块302,用于对所述多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;[0146]第二确定模块303,用于根据所述多个偏移运动矢量预测候选确定目标运动矢量预测候选;[0147]处理模块304,用于以所述目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;[0148]其中,所述多个运动矢量预测候选为所述运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选。[0149]在一种可能的实施方式中,所述第一预设位置为所述运动矢量预测候选列表中当前模板与参考模板之间的误差最小的n个位置,其中所述n为大于或等于1的整数。[0150]在一种可能的实施方式中,所述偏移模块,具体用于:[0151]沿至少一个预设方向中的每一个所述预设方向,按照第一预设偏移距离,分别对所述多个运动矢量预测候选中的每个运动矢量预测候选进行偏移,得到所述多个第一偏移运动矢量预测候选;[0152]所述第二确定模块,具体用于:[0153]在所述多个第一偏移运动矢量预测候选中确定目标运动矢量预测候选;或,[0154]在所述多个第一偏移运动矢量预测候选和所述多个运动矢量预测候选中确定目标运动矢量预测候选。[0155]在一种可能的实施方式中,所述第二确定模块,具体用于:[0156]根据所述多个第一偏移运动矢量预测候选,确定第一运动矢量预测候选,所述第一运动矢量预测候选为当前模板与参考模板之间的误差排在第二预设位置的第一偏移运动矢量预测候选对应的运动矢量预测候选;[0157]沿至少一个预设方向中的每一个所述预设方向,按照第二预设偏移距离,对所述第一运动矢量预测候选进行偏移,得到第二偏移运动矢量预测候选;[0158]在所述第二偏移运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的所述目标运动矢量预测候选;或,在所述第二偏移运动矢量预测候选和所述第一运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的所述目标运动矢量预测候选。[0159]在一种可能的实施方式中,所述第一预设偏移距离小于第一阈值,所述第二预设偏移距离大于或等于第一阈值。[0160]在一种可能的实施方式中,所述第一预设偏移距离为预设的预测偏移距离集包括的偏移距离,所述第二预设偏移距离为与目标偏移距离相关联的至少一个偏移距离,所述目标偏移距离为所述第一运动矢量预测候选对应的第一预设偏移距离。[0161]在一种可能的实施方式中,所述第一偏移运动矢量预测候选对应的误差小于所述第一运动矢量预测候选对应的误差。[0162]在一种可能的实施方式中,所述第二确定模块,具体用于:[0163]在所述多个第一偏移运动矢量预测候选和所述多个运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第四预设位置的目标运动矢量预测候选。[0164]在一种可能的实施方式中,所述多个偏移运动矢量预测候选的运动矢量精度与所述目标编解码单元的运动矢量精度相等。[0165]在一种可能的实施方式中,所述目标编解码单元的运动矢量精度满足预设运动矢量精度。[0166]在一种可能的实施方式中,所述目标编解码单元的目标信息满足预设门限值,所述目标信息包括面积、宽和高中的至少一项。[0167]在一种可能的实施方式中,所述装置还包括:[0168]第三确定模块,用于根据当前待解码图像头的标识的值,确定所述预设方向、所述第一预设偏移距离和所述第二预设偏移距离中的至少一项。[0169]在本技术实施例中,在目标编解码单元的运动矢量预测候选列表中,基于模板选择当前模板与参考模板之间的误差排在预设位置的多个运动矢量预测候选,然后对该多个运动矢量预测候选进行偏移,筛选,得到最优的目标运动矢量预测候选,最后基于目标运动矢量预测候选,通过模板匹配得到目标运动矢量预测,通过本技术实施例的方法能够获得更加精确的运动矢量预测。[0170]本技术实施例中的帧间预测装置可以是电子设备,例如具有操作系统的电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以为服务器、网络附属存储器(networkattachedstorage,nas)等,本技术实施例不作具体限定。[0171]本技术实施例提供的帧间预测装置能够实现图2的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。[0172]具体地,图4为实现本技术实施例的一种终端的硬件结构示意图。[0173]该终端400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409以及处理器410等中的至少部分部件。[0174]本领域技术人员可以理解,终端400还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图4中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。[0175]应理解的是,本技术实施例中,输入单元404可以包括图形处理单元(graphicsprocessingunit,gpu)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元406可包括显示面板4061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板4061。用户输入单元407包括触控面板4071以及其他输入设备4072中的至少一种。触控面板4071,也称为触摸屏。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。[0176]本技术实施例中,射频单元401接收来自网络侧设备的下行数据后,可以传输给处理器410进行处理;另外,射频单元401可以向网络侧设备发送上行数据。通常,射频单元401包括但不限于天线、放大器、收发信机、耦合器、低噪声放大器、双工器等。[0177]存储器409可用于存储软件程序或指令以及各种数据。存储器409可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器409可以包括易失性存储器或非易失性存储器,或者,存储器409可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本技术实施例中的存储器409包括但不限于这些和任意其它适合类型的存储器。[0178]处理器410可包括一个或多个处理单元;可选的,处理器410集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器x10中。[0179]其中,处理器410,用于在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;[0180]处理器410,用于对所述多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;[0181]处理器410,用于根据所述多个偏移运动矢量预测候选确定目标运动矢量预测候选;[0182]处理器410,用于以所述目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;[0183]其中,所述多个运动矢量预测候选为所述运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选。[0184]在一种可能的实施方式中,所述第一预设位置为所述运动矢量预测候选列表中当前模板与参考模板之间的误差最小的n个位置,其中所述n为大于或等于1的整数。[0185]在一种可能的实施方式中,所述处理器410,具体用于:[0186]沿至少一个预设方向中的每一个所述预设方向,按照第一预设偏移距离,分别对所述多个运动矢量预测候选中的每个运动矢量预测候选进行偏移,得到所述多个第一偏移运动矢量预测候选;[0187]所述处理器410,具体用于:[0188]在所述多个第一偏移运动矢量预测候选中确定目标运动矢量预测候选;或,[0189]在所述多个第一偏移运动矢量预测候选和所述多个运动矢量预测候选中确定目标运动矢量预测候选。[0190]在一种可能的实施方式中,所述处理器410,具体用于:[0191]根据所述多个第一偏移运动矢量预测候选,确定第一运动矢量预测候选,所述第一运动矢量预测候选为当前模板与参考模板之间的误差排在第二预设位置的第一偏移运动矢量预测候选对应的运动矢量预测候选;[0192]沿至少一个预设方向中的每一个所述预设方向,按照第二预设偏移距离,对所述第一运动矢量预测候选进行偏移,得到第二偏移运动矢量预测候选;[0193]在所述第二偏移运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的所述目标运动矢量预测候选;或,在所述第二偏移运动矢量预测候选和所述第一运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的所述目标运动矢量预测候选。[0194]在一种可能的实施方式中,所述第一预设偏移距离小于第一阈值,所述第二预设偏移距离大于或等于第一阈值。[0195]在一种可能的实施方式中,所述第一预设偏移距离为预设的预测偏移距离集包括的偏移距离,所述第二预设偏移距离为与目标偏移距离相关联的至少一个偏移距离,所述目标偏移距离为所述第一运动矢量预测候选对应的第一预设偏移距离。[0196]在一种可能的实施方式中,所述第一偏移运动矢量预测候选对应的误差小于所述第一运动矢量预测候选对应的误差。[0197]在一种可能的实施方式中,所述处理器410,具体用于:[0198]在所述多个第一偏移运动矢量预测候选和所述多个运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第四预设位置的目标运动矢量预测候选。[0199]在一种可能的实施方式中,所述多个偏移运动矢量预测候选的运动矢量精度与所述目标编解码单元的运动矢量精度相等。[0200]在一种可能的实施方式中,所述目标编解码单元的运动矢量精度满足预设运动矢量精度。[0201]在一种可能的实施方式中,所述目标编解码单元的目标信息满足预设门限值,所述目标信息包括面积、宽和高中的至少一项。[0202]在一种可能的实施方式中,所述处理器410,用于根据当前待解码图像头的标识的值,确定所述预设方向、所述第一预设偏移距离和所述第二预设偏移距离中的至少一项。[0203]在本技术实施例中,在目标编解码单元的运动矢量预测候选列表中,基于模板选择当前模板与参考模板之间的误差排在预设位置的多个运动矢量预测候选,然后对该多个运动矢量预测候选进行偏移,筛选,得到最优的目标运动矢量预测候选,最后基于目标运动矢量预测候选,通过模板匹配得到目标运动矢量预测,通过本技术实施例的方法能够获得更加精确的运动矢量预测。[0204]本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。[0205]其中,所述处理器为上述实施例中所述的终端中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器rom、随机存取存储器ram、磁碟或者光盘等。[0206]本技术实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述帧间预测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。[0207]应理解,本技术实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。[0208]本技术实施例另提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在存储介质中,所述计算机程序/程序产品被至少一个处理器执行以实现上述帧间预测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。[0209]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。[0210]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。[0211]上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。当前第1页12当前第1页12
技术特征:
1.一种帧间预测方法,其特征在于,包括:在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;对所述多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;根据所述多个偏移运动矢量预测候选确定目标运动矢量预测候选;以所述目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;其中,所述多个运动矢量预测候选为所述运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选。2.根据权利要求1所述的方法,其特征在于,所述第一预设位置为所述运动矢量预测候选列表中当前模板与参考模板之间的误差最小的n个位置,其中所述n为大于或等于1的整数。3.根据权利要求1所述的方法,其特征在于,对所述多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选,包括:沿至少一个预设方向中的每个所述预设方向,按照第一预设偏移距离,分别对所述多个运动矢量预测候选中的每个运动矢量预测候选进行偏移,得到多个第一偏移运动矢量预测候选;根据所述多个偏移运动矢量预测候选确定目标运动矢量预测候选,包括:在所述多个第一偏移运动矢量预测候选中确定目标运动矢量预测候选;或,在所述多个第一偏移运动矢量预测候选和所述多个运动矢量预测候选中确定目标运动矢量预测候选。4.根据权利要求3所述的方法,其特征在于,所述在所述多个第一偏移运动矢量预测候选中确定目标运动矢量预测候选,包括:根据所述多个第一偏移运动矢量预测候选,确定第一运动矢量预测候选,所述第一运动矢量预测候选为当前模板与参考模板之间的误差排在第二预设位置的第一偏移运动矢量预测候选对应的运动矢量预测候选;沿至少一个预设方向中的每一个所述预设方向,按照第二预设偏移距离,对所述第一运动矢量预测候选进行偏移,得到第二偏移运动矢量预测候选;在所述第二偏移运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的所述目标运动矢量预测候选;或,在所述第二偏移运动矢量预测候选和所述第一运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的所述目标运动矢量预测候选。5.根据权利要求4所述的方法,其特征在于,所述第一预设偏移距离小于第一阈值,所述第二预设偏移距离大于或等于第一阈值。6.根据权利要求4所述的方法,其特征在于,所述第一预设偏移距离为预设的预测偏移距离集包括的偏移距离,所述第二预设偏移距离为与目标偏移距离相关联的至少一个偏移距离,所述目标偏移距离为所述第一运动矢量预测候选对应的第一预设偏移距离。7.根据权利要求4所述的方法,其特征在于,所述第一偏移运动矢量预测候选对应的误差小于所述第一运动矢量预测候选对应的误差。8.根据权利要求3所述的方法,其特征在于,在所述多个第一偏移运动矢量预测候选和
所述多个运动矢量预测候选中确定目标运动矢量预测候选,包括:在所述多个第一偏移运动矢量预测候选和所述多个运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第四预设位置的目标运动矢量预测候选。9.根据权利要求1所述的方法,其特征在于,所述多个偏移运动矢量预测候选的运动矢量精度与所述目标编解码单元的运动矢量精度相等。10.根据权利要求1所述的方法,其特征在于,所述目标编解码单元的运动矢量精度满足预设运动矢量精度。11.根据权利要求1所述的方法,其特征在于,所述目标编解码单元的目标信息满足预设门限值,所述目标信息包括面积、宽和高中的至少一项。12.根据权利要求4所述的方法,其特征在于,所述方法还包括:根据待解码图像头的标识的值,确定所述预设方向、所述第一预设偏移距离和所述第二预设偏移距离中的至少一项。13.一种帧间预测装置,其特征在于,包括:第一确定模块,用于在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;偏移模块,用于对所述多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;第二确定模块,用于根据所述多个偏移运动矢量预测候选确定目标运动矢量预测候选;处理模块,用于以所述目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;其中,所述多个运动矢量预测候选为所述运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选。14.根据权利要求13所述的装置,其特征在于,所述第一预设位置为所述运动矢量预测候选列表中当前模板与参考模板之间的误差最小的n个位置,其中所述n为大于或等于1的整数。15.根据权利要求13所述的装置,其特征在于,所述偏移模块,具体用于:沿至少一个预设方向中的每一个所述预设方向,按照第一预设偏移距离,分别对所述多个运动矢量预测候选中的每个运动矢量预测候选进行偏移,得到多个第一偏移运动矢量预测候选;所述第二确定模块,具体用于:在所述多个第一偏移运动矢量预测候选中确定目标运动矢量预测候选;或,在所述多个第一偏移运动矢量预测候选和所述多个运动矢量预测候选中确定目标运动矢量预测候选。16.根据权利要求15所述的装置,其特征在于,所述第二确定模块,具体用于:根据所述多个第一偏移运动矢量预测候选,确定第一运动矢量预测候选,所述第一运动矢量预测候选为当前模板与参考模板之间的误差排在第二预设位置的第一偏移运动矢量预测候选对应的运动矢量预测候选;沿至少一个预设方向中的每一个所述预设方向,按照第二预设偏移距离,对所述第一
运动矢量预测候选进行偏移,得到第二偏移运动矢量预测候选;在所述第二偏移运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的所述目标运动矢量预测候选;或,在所述第二偏移运动矢量预测候选和所述第一运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第三预设位置的所述目标运动矢量预测候选。17.根据权利要求16所述的装置,其特征在于,所述第一预设偏移距离小于第一阈值,所述第二预设偏移距离大于或等于第一阈值。18.根据权利要求16所述的装置,其特征在于,所述第一预设偏移距离为预设的预测偏移距离集包括的偏移距离,所述第二预设偏移距离为与目标偏移距离相关联的至少一个偏移距离,所述目标偏移距离为所述第一运动矢量预测候选对应的第一预设偏移距离。19.根据权利要求16所述的装置,其特征在于,所述第一偏移运动矢量预测候选对应的误差小于所述第一运动矢量预测候选对应的误差。20.根据权利要求15所述的装置,其特征在于,所述第二确定模块,具体用于:在所述多个第一偏移运动矢量预测候选和所述多个运动矢量预测候选中,确定出当前模板与参考模板之间的误差排在第四预设位置的目标运动矢量预测候选。21.根据权利要求13所述的装置,其特征在于,所述多个偏移运动矢量预测候选的运动矢量精度与所述目标编解码单元的运动矢量精度相等。22.根据权利要求13所述的装置,其特征在于,所述目标编解码单元的运动矢量精度满足预设运动矢量精度。23.根据权利要求13所述的装置,其特征在于,所述目标编解码单元的目标信息满足预设门限值,所述目标信息包括面积、宽和高中的至少一项。24.根据权利要求16所述的装置,其特征在于,所述装置还包括:第三确定模块,用于根据当前待解码图像头的标识的值,确定所述预设方向、所述第一预设偏移距离和所述第二预设偏移距离中的至少一项。25.一种终端,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至12任一项所述的帧间预测方法的步骤。26.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至12任一项所述的帧间预测方法的步骤。
技术总结
本申请属于通信技术领域,具体涉及一种帧间预测方法、设备及可读存储介质。方法包括:在目标编解码单元的运动矢量预测候选列表中,根据模板确定出多个运动矢量预测候选;对多个运动矢量预测候选进行偏移处理,得到多个偏移运动矢量预测候选;根据多个偏移运动矢量预测候选确定目标运动矢量预测候选;以目标运动矢量预测候选为搜索起始点,通过模板匹配得到目标运动矢量预测;多个运动矢量预测候选为运动矢量预测候选列表中当前模板与参考模板之间的误差排在第一预设位置的多个运动矢量预测候选。选。选。
技术研发人员:周川 吕卓逸
受保护的技术使用者:维沃移动通信有限公司
技术研发日:2022.04.11
技术公布日:2023/7/22

版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/