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

一种视频处理方法、设备及存储介质

文献发布时间:2023-06-19 09:29:07


一种视频处理方法、设备及存储介质

技术领域

本发明实施例涉及视频编解码领域,尤其涉及一种视频处理方法、设备及存储介质。

背景技术

预测是主流视频编码框架的重要模块,预测可以包括帧内预测和帧间预测。帧间预测模式可以包括高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)模式和合并(Merge)模式。

目前标准中对部分运动矢量进行了解码端运动矢量修正(Decoder side motionvector refinement,DMVR),然而,该技术只应用于普通Merge模式中,对于终极运动矢量表达(Merge with motion vector difference,MMVD)模式的编码块不使用DMVR,这种方式可能会损失一定的编码性能。因此,如何更有效地提升编码性能是一项亟待解决的问题。

发明内容

本发明实施例提供了一种视频处理方法、设备及存储介质,实现了对MMVD技术与DMVR技术进行融合,提升了编解码性能,有效提高了编解码效率。

第一方面,本发明实施例提供了一种视频处理方法,包括:

获取当前帧的图像块的初始运动信息候选列表;

按照终极运动矢量表达MMVD方法,基于所述初始运动信息候选列表,得到目标运动信息候选列表;

在所述目标运动信息候选列表中包括双运动信息时,基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件;

若所述双运动信息满足所述第一预设条件,则按照解码端运动矢量修正DMVR方法,对所述双运动信息进行修正,得到修正后的双运动信息;

基于所述修正后的双运动信息,对所述图像块进行编码或解码。

第二方面,本发明实施例提供了一种视频处理设备,其特征在于,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:

获取当前帧的图像块的初始运动信息候选列表;

按照终极运动矢量表达MMVD方法,基于所述初始运动信息候选列表,得到目标运动信息候选列表;

在所述目标运动信息候选列表中包括双运动信息时,基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件;

若所述双运动信息满足所述第一预设条件,则按照解码端运动矢量修正DMVR方法,对所述双运动信息进行修正,得到修正后的双运动信息;

基于所述修正后的双运动信息,对所述图像块进行编码或解码。

第三方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述的视频处理方法。

本发明实施例,通过获取当前帧的图像块的初始运动信息候选列表,并按照MMVD方法基于初始运动信息候选列表,得到目标运动信息候选列表,在确定出目标运动信息候选列表中包括的双运动信息满足第一预设条件时,按照DMVR方法对该双运动信息进行修正,得到修正后的双运动信息,从而基于修正后的双运动信息,对图像块进行编码或解码。通过这种实施方式,实现了对MMVD技术与DMVR技术进行融合,提升了编解码性能,有效提高了编解码效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是一种编解码系统的架构图;

图2是一种编码器的框架图;

图3是一种MMVD搜索点的示意图;

图4是一种DMVR修正区域的示意图;

图5是本发明实施例提供的一种视频处理方法的流程示意图;

图6是一种DMVR的实现方式的示意图;

图7是本发明实施例提供的另一种视频处理方法的流程示意图;

图8是本发明实施例提供的一种视频处理设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

本发明实施例提出的视频处理方法可以应用于视频处理设备,所述视频处理设备可以设置在智能终端(如手机、平板电脑等)上,该视频处理设备可以用于编码端或解码端,具体可以为编码器或解码器。在某些实施例中,本发明实施例可应用于飞行器(如无人机)上,在其他实施例中,本发明实施例还可以应用于其他可移动平台(如无人船、无人汽车、机器人等)上,本发明实施例不做具体限定。

具体可以图1为例对编解码的系统框架进行说明,图1是一种编解码系统的架构图。如图1所示,系统100可以接收待处理数据102,对待处理数据102进行处理,产生处理后的数据108。例如,系统100可以接收待编码数据,对待编码数据进行编码以产生编码后的数据,或者,系统100可以接收待解码数据,对待解码数据进行解码以产生解码后的数据。在一些实施例中,系统100中的部件可以由一个或多个处理器实现,该处理器可以是计算设备中的处理器,也可以是移动设备(例如无人机)中的处理器。该处理器可以为任意种类的处理器,本发明实施例对此不做限定。在一些可能的设计中,该处理器可以包括编码器、解码器或编解码器等。系统100中还可以包括一个或多个存储器。该存储器可用于存储指令和数据,例如,实现本发明实施例的技术方案的计算机可执行指令、待处理数据102、处理后的数据108等。该存储器可以为任意种类的存储器,本发明实施例对此也不做限定。

待编码数据可以包括文本、图像、图形对象、动画序列、音频、视频、或者任何需要编码的其他数据。在一些情况下,待编码数据可以包括来自传感器的传感数据,该传感器可以为视觉传感器(例如,相机、红外传感器),麦克风、近场传感器(例如,超声波传感器、雷达)、位置传感器、温度传感器、触摸传感器等。在一些情况下,待编码数据可以包括来自用户的信息,例如,生物信息,该生物信息可以包括面部特征、指纹扫描、视网膜扫描、嗓音记录、DNA采样等。

在一个实施例中编码器的框架图具体可以图2为例,图2是一种编码器的框架图。以下将结合图2分别介绍帧间编码和帧内编码的流程。

如图2所示,帧间编码和解码的流程可以如下所示:

在201中,获取当前帧图像。在202中,获取参考帧图像。在203a中,利用参考帧图像,进行运动估计,以得到当前帧图像的各个图像块的运动矢量(Motion Vector,MV)。在204a中,利用运动估计得到的运动矢量,进行运动补偿,以得到当前图像块的估计值。在205中,将当前图像块的估计值与当前图像块相减,得到残差。在206中,对残差进行变换,以得到变换系数。在207中,变换系数经量化可得到量化后的系数。在208中,将量化后的系数进行熵编码,最后将熵编码得到的比特流及进行编码后的编码模式信息进行存储或发送到解码端。在209中,对量化的结果进行反量化。在210中,对反量化结果进行反变换。在211中,利用反变换结果以及运动补偿结果,得到重建像素。在212中,对重建像素进行滤波。在213中,输出滤波后的重建像素。

如图2所示,帧内编码和解码的流程可以如下所示:

在202中,获取当前帧图像。在203b中,对当前帧图像进行帧内预测选择。在204b中,当前帧中的当前图像块进行帧内预测。在205中,将当前图像块的估计值与当前图像块相减,得到残差。在206中,对图像块的残差进行变换,以得到变换系数。在207中,变换系数经量化可得到量化后的系数。在208中,将量化后的系数进行熵编码,最后将熵编码得到的比特流及进行编码后的编码模式信进行存储或发送到解码端。在209中,对量化结果进行反量化。在210中,对反量化结果进行反变换,在211中,利用反变换结果以及帧内预测结果,得到重建像素。

如图2所示,在编码过程中,为了去除冗余,可以对图像进行预测。视频中不同的图像可采用不同的预测方式。根据图像所采用的预测方式,可以将图像区分为帧内预测图像和帧间预测图像。帧间预测模式可以包括AMVP模式和Merge模式。

对于Merge模式而言,可以先确定运动矢量预测(motion vector prediction,MVP),并直接将MVP确定为MV,其中,为了得到MVP,可以先构建一个MVP候选列表(mergecandidate list),在MVP候选列表中,可以包括至少一个候选MVP,每个候选MVP可以对应有一个索引,编码端在从MVP候选列表中选择MVP之后,可以将该MVP索引写入到码流中,则解码端可以按照该索引从MVP候选列表中找到该索引对应的MVP,以实现对图像块的解码。

为了更加清楚地理解Merge模式,以下将介绍采用Merge模式进行编码的操作流程。

步骤一、获取MVP候选列表;

步骤二、从MVP候选列表中选出最优的一个MVP,同时得到该MVP在MVP候选列表中的索引;

步骤三、把该MVP作为当前块的MV;

步骤四、根据MV确定参考块(也可以称为预测块)在参考帧图像中的位置;

步骤五、参考块减去当前块得到残差数据;

步骤六、把残差数据和MVP的索引传给解码端。

应理解,以上流程只是Merge模式的一种具体实现方式。Merge模式还可以具有其他的实现方式。

其中,帧间预测主要包括前向预测、后向预测、双向预测、多帧预测等帧间预测模式。前向预测是利用前一重构帧(“历史帧”)对当前帧进行预测;后向预测是利用当前帧之后的帧(“将来帧”)对当前帧进行预测;双向预测是不仅利用“历史帧”,也利用“将来帧”对当前帧进行预测;多帧预测是利用多个参考帧对当前帧进行预测,该多个参考帧可以为诸如多个“将来帧”,(标号为“t”的为当前帧)。

MVP候选列表包括的运动矢量有可能是双运动矢量(一个双运动矢量包括两个单运动矢量),这取决于当前块的预测块是否为双向预测。其中,一个双运动信息包括的一个单运动信息可以来自第一列表,包括的另一个单运动信息可以来自第二列表。

本公开实施例中的第一列表可以是list0,第二列表可以是list1。list0和list1可以用于P帧或B帧的帧间预测。其中,I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,即全部为帧内编码。P帧又称帧间预测编码帧,需要参考前面的I帧才能进行编码,表示的是当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别(采用了预测编码),生成最终画面。B帧又称双向预测编码帧,也就是B帧记录的是本帧与前后帧的差别,也就是说,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。list0和list1由若干图像帧构成。在一些现有技术中,对于P帧来讲,帧间预测只使用list0,对于B帧来讲,list0和list1在帧间预测中都会被用到。

关于list0和list1,如表1所示例,当前图像帧(编号为100)有三个前向参考帧和三个后向参考帧,即共六个参考帧,该六个参考帧按照自然图像的顺序标号(也即自然编号)为97、98、99、100、101、102、103。这些参考帧在列表0和列表1中的索引不同,在列表0中,最靠近当前参考帧的前面的一帧标志为索引0,再前一帧标志为索引1,前向参考之后是按照顺序的后向参考帧,则顺序标号为97、98、99、100、101、102、103的自然图像的索引可以依次为2,1,0,3,4,5;在列表1中,最靠近当前参考帧的后一个参考帧标志为索引0,再后一参考帧标志为索引1,后向参考帧排完之后,再排前向参考帧,则顺序标号为97、98、99、100、101、102、103的自然图像的索引可以依次为5,4,3,0,1,2。

表1

应理解,运动信息来自第一列表或第二列表,示意性表示运动信息对应的参考帧来自第一列表或第二列表。

在目前编解码标准中,Merge模式中应用了MMVD技术,MMVD技术通常被称作终极运动矢量表达技术(Ultimate motion vector expression,UMVE),也可以叫做含运动矢量差值的Merge技术。MMVD技术应用在构建Merge运动信息候选列表中,MMVD技术中将会使用到该Merge运动信息候选列表。在某些实施例中,所述运动信息候选列表中包括一个或多个运动矢量(Motion Vector,MV)。

在一些实施例中,MMVD技术的实现大致可以分为两个步骤:

第一步,利用已经构建完成的Merge模式的初始运动信息候选列表,将初始运动信息候选列表中的前两个运动矢量作为MMVD的目标运动信息候选列表中的运动矢量,如果初始运动信息候选列表中候选的运动矢量的个数x小于N(N为正整数,例如2),则使用(0,0)进行填充。在某些实施例中,所述目标运动信息候选列表中的运动矢量可能来自空域(spatial MVP)、时域(TMVP)、基于历史的运动矢量预测(HMVP)、成对均值运动矢量预测pairwise MVP、(0,0)等这些情形中的任意一个或多个。

第二步,根据一定规则对目标运动信息候选列表中的运动矢量进行偏移,产生新的运动矢量,这里记目标运动信息候选列表中的运动矢量为(x,y),偏移后新的运动矢量为(x’,y’)。偏移值(offset)在目前的设计中共有8个可选的值,对目标运动信息候选列表中的运动矢量的修改有4种如下方式:

x’=x+offset,y’=y

x’=x-offset,y’=y

x’=x,y’=y+offset

x’=x,y’=y-offset

在目前编码标准中的MMVD技术中,运动矢量的偏移值(offset)可以有8种取值:1/4像素、1/2像素、1像素、2像素、4像素、8像素、16像素、32像素,具体如图3所示,图3是一种MMVD搜索点的示意图。

在目前编解码标准中,DMVR技术可以应用于普通Merge模式中双向预测的编码块,通过在初始运动矢量周边寻找更精准的MV,得到修正后的MV。在一个示例中,所述DMVR的实现方式的实施过程可以简单总结为如下几个步骤:

步骤一:计算满足第一预设条件的双运动信息的运动矢量MV0和MV1在各自对应的参考帧中指向的预测块之间的绝对误差和(Sumof Absolute Differences,SAD);

步骤二:在双运动信息的运动矢量在各自参考帧中指向的预测块周边进行镜像的偏移,例如,先在整像素点进行偏移,再在分像素点(如1/2像素点)进行偏移;

步骤三:计算偏移后的两个预测块之间的SAD;

步骤四:选取SAD最小的一组运动矢量作为修正后的双运动信息的运动矢量。

其中,在确定修正后的双运动信息的运动矢量后,可以基于该修正后的双运动信息的运动矢量,确定最终的运动信息候选列表,再从其中确定最优的MV,用于当前块的编码或解码。

然而,在目前的设计中,DMVR技术以及MMVD技术并没有很好地融合使用在Merge模式中。进一步的,DMVR技术对于运动矢量的修正区域是在当前位置周边的2像素以内(如图4所示,图4是一种DMVR修正区域的示意图),若将DMVR技术应用于所有的MMVD模式的图像块上,部分块将出现重复的修正操作,如对于运动矢量偏移小于或等于2的图像块,在进行DMVR的时候将对已偏移的运动矢量进行再次偏移,因此可能导致冗余操作,甚至使原本已经修正的位置又发生偏移。

因此,本发明实施例针对上述问题提出针对部分MMVD模式的图像块进行DMVR,即通过对MMVD技术与DMVR技术进行融合,按照DMVR方法对满足第一预设条件的当前帧的图像块的目标运动信息候选列表中的双运动信息进行修正,得到修正后的双运动信息,并基于修正后的双运动信息,对图像块进行编码或解码,以在保证不引入额外的编解码复杂度的前提下,提升编解码性能,提高编解码效率。

下面结合附图对本发明实施例提供的视频处理方法进行示意性说明。

具体请参见图5,图5是本发明实施例提供的一种视频处理方法的流程示意图。所述方法可以应用于视频处理设备,其中,所述视频处理设备的解释如前所述,此处不再赘述。具体地,本发明实施例的所述方法包括如下步骤。

S501:获取当前帧的图像块的初始运动信息候选列表。

本发明实施例中,视频处理设备可以获取当前帧的图像块的初始运动信息候选列表。

在某些实施例中,所述当前帧可以为视频中的一帧图像帧。在对图像进行编码时,图像可以被分成多个图像块。举例而言,该图像可以被分成一个m×n的图像块阵列。图像块可以具有矩形形状、正方形形状、圆形形状或任何其他形状。图像块可以具有任何尺寸,如p×q像素。可以通过首先将该图像分成多个小块来对不同分辨率的图像进行编码。每个图像块都可以具有相同尺寸和/或形状。替代地,两个或更多图像块可以具有不同的尺寸和/或形状。在图像被分成多个图像块之后,可以分别对图像数据中的这些图像块进行编码。

在某些实施例中,所述图像块可以为一个编码单元(Coding Unit,CU);在某些实施例中,可以将当前帧先分成等大的编码区域(Coding Tree Unit,CTU),例如64x64、128x128大小。每个CTU可以进一步划分成方形或矩形的编码单元(CU)。

在一些实施例中,所述初始运动信息候选列表可以是视频处理设备在Merge模式下获取的已经构建完成的当前帧的图像块的初始运动信息候选列表。通过获取初始运动信息候选列表,有助于确定目标运动信息候选列表。

其中,初始运动信息候选列表可以包括至少一个候选运动信息。初始运动信息候选列表中包括的候选运动信息的数量可以是预设值。例如,视频处理设备可以将待加入的运动信息依次加入到初始运动信息候选列表中,直到初始运动信息候选列表中包括的运动信息的数量达到预设值。

可以理解,本发明实施例中提到的运动信息候选列表(例如,初始运动信息候选列表)可以是图像块的候选运动信息的集合,该运动信息候选列表中的各候选运动信息可以存储在同一个缓冲区(buffer)中,也可以存储在不同的缓冲区中,在此不做限制。运动信息在运动信息候选列表中的索引,可以是运动信息在图像块的候选运动信息的集合中的索引。例如,候选运动信息的集合包括5个候选运动信息,该5个候选运动信息在运动信息候选列表的索引可以分别为0,1,2,3,4。

本发明实施例中所提到的运动信息可以包括运动矢量,或者包括运动矢量和参考帧信息(例如,参考帧索引)等。

S502:按照终极运动矢量表达MMVD方法,基于所述初始运动信息候选列表,得到目标运动信息候选列表。

本发明实施例中,视频处理设备可以按照终极运动矢量表达MMVD方法,基于所述初始运动信息候选列表,得到目标运动信息候选列表。

在一个实施例中,视频处理设备在按照终极运动矢量表达MMVD方法,基于所述初始运动信息候选列表,得到目标运动信息候选列表时,可以将初始运动信息候选列表中的指定数量的运动矢量确定为目标运动信息候选列表中的运动矢量,如果初始运动信息候选列表中候选的运动矢量的数量小于所述指定数量,则使用(0,0)进行填充。

例如,视频处理设备可以将初始运动信息候选列表中的前2个运动矢量确定为目标运动信息候选列表中的运动矢量,如果初始运动信息候选列表中候选的运动矢量的数量x小于2,则使用(0,0)填充到该初始运动信息候选列表中。

在一个实施例中,视频处理设备在按照终极运动矢量表达MMVD方法,基于所述初始运动信息候选列表,得到目标运动信息候选列表时,可以基于终极运动矢量表达MMVD方法中包括的偏移特征,对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移,得到包括偏移后的特定运动信息的目标运动信息候选列表。在某些实施例中,所述偏移特征包括多个偏移方向以及多个偏移量,其中,每个所述偏移方向均对应有所述多个偏移量。

例如,可以对特定运动信息在多个偏移方向中的部分方向上进行偏移,可以将特定运动信息按照多个偏移量中的部分偏移量进行偏移,也可以将特定运动信息在多个偏移方向中的部分方向上按照多个偏移量中的部分偏移量进行偏移,以得到包括偏移后的特定运动信息的目标运动信息候选列表。

S503:在所述目标运动信息候选列表中包括双运动信息时,基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件。

本发明实施例中,视频处理设备可以在所述目标运动信息候选列表中包括双运动信息时,基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件。

在一个实施例中,视频处理设备在基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件时,可以检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件,若是,则可以确定所述双运动信息满足所述第一预设条件。一个双运动信息可以包括两个运动矢量,检测双运动信息中的至少一个运动矢量的精度是否满足第一条件,包括检测双运动信息中的任一运动矢量的精度是否满足第一条件,也包括检测双运动信息中的两个运动矢量的精度是否均满足第一条件,还包括检测双运动信息中的特定运动矢量的精度是否满足第一条件,也即,是指双运动信息中的一个或多个运动矢量的精度满足第一条件。

在一种实施方式中,视频处理设备在检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件时,可以检测所述双运动信息中的至少一个运动矢量的水平分量是否为第一像素精度阈值的整数倍,若所述双运动信息中的至少一个运动矢量的水平分量为所述第一像素精度阈值的整数倍,则可以确定所述双运动信息中的至少一个运动矢量的精度满足所述第一条件。通过运动矢量的水平分量来确定运动矢量的精度是否满足第一条件,提高了确定运动矢量的精度的效率。

例如,假设第一像素精度阈值为2,如果视频处理设备检测到目标运动信息候选列表中包括的双运动信息中的至少一个运动矢量的水平分量MV_BASE_X为4,则可以确定至少一个运动矢量的水平分量4为第一像素精度阈值2的整数倍。因此,可以确定所述双运动信息中的至少一个运动矢量的精度满足第一条件。

在一种实施方式中,视频处理设备在检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件时,可以检测所述双运动信息中的至少一个运动矢量的垂直分量是否为第二像素精度阈值的整数倍,若所述双运动信息中的至少一个运动矢量的垂直分量为所述第二像素精度阈值的整数倍,则可以确定所述双运动信息中的至少一个运动矢量的精度满足所述第一条件。通过运动矢量的垂直分量来确定运动矢量的精度是否满足第一条件,提高了确定运动矢量的精度的效率。

例如,假设第二像素精度阈值为4,如果视频处理设备检测到目标运动信息候选列表中包括的双运动信息中的至少一个运动矢量的垂直分量MV_BASE_Y为4,则可以确定至少一个运动矢量的垂直分量4为第二像素精度阈值4的整数倍。因此,可以确定所述双运动信息中的至少一个运动矢量的精度满足第一条件。

在一种实施方式中,视频处理设备在检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件时,可以检测所述双运动信息中的至少一个运动矢量的水平分量是否为第一像素精度阈值的整数倍以及垂直分量是否为第二像素精度阈值的整数倍,若所述双运动信息中的至少一个运动矢量的水平分量为所述第一像素精度阈值的整数倍以及垂直分量为所述第二像素精度阈值的整数倍,则可以确定所述双运动信息中的至少一个运动矢量的精度满足所述第一条件。通过运动矢量的水平分量和垂直分量来确定运动矢量的精度是否满足第一条件,提高了确定运动矢量的精度的效率和准确性。

在某些实施例中,所述第一像素精度阈值包括2或4。在某些实施例中,所述第二像素精度阈值包括2或4。在某些实施例中,所述第一像素精度阈值和所述第二像素精度阈值可以相等,也可以不相等。在某些实施例中,所述运动矢量的精度可以为设定的像素精度,在一个示例中,所述运动矢量的精度可以为1/4像素、1/2像素、1像素、2像素、4像素、8像素、16像素、32像素等任意一种像素精度。

在一个示例中,假设第一像素精度阈值和所述第二像素精度阈值相等且均为N,运动矢量的水平分量为MV_BASE_X,运动矢量的垂直分量为MV_BASE_Y,则当检测到所述双运动信息中的至少一个运动矢量的水平分量为N的整数倍以及垂直分量为N的整数倍时即满足如下公式(1)时,按照DMVR方法对所述双运动信息进行修正,得到修正后的双运动信息。其中,公式(1)中%符号表示取余数,公式(1)表示水平分量MV_BASE_X除以N的余数为0,垂直分量MV_BASE_Y除以N的余数为0。

例如,假设所述第一像素精度阈值为2,所述第二像素精度阈值为4,如果视频处理设备检测到双运动信息中的至少一个运动矢量的水平分量为4,以及垂直分量为4,则可以确定至少一个运动矢量的水平分量4为第一像素精度阈值2的2倍,即整数倍,以及垂直分量4为第二像素精度阈值4的1倍,即整数倍。因此,可以确定所述双运动信息中的至少一个运动矢量的精度满足所述第一条件。

在一个实施例中,视频处理设备在基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件时,可以将所述双运动信息进行合并处理,以得到一个单运动信息,并检测所述单运动信息包括的运动矢量的精度是否满足所述第一条件,若是,则确定所述双运动信息满足所述第一预设条件。

在一种实施方式中,视频处理设备在将所述双运动信息进行合并处理时,可以采用加权处理、平均处理等方式将所述双运动信息进行合并处理,得到单运动信息。本发明实施例对双运动信息合并处理的方式不做具体限定。

在一种实施方式中,视频处理设备在检测所述单运动信息包括的运动矢量的精度是否满足所述第一条件时,可以检测所述单运动信息中的运动矢量的水平分量是否为第三像素精度阈值的整数倍,若所述单运动信息中的运动矢量的水平分量为所述第三像素精度阈值的整数倍,则可以确定所述单运动信息中的运动矢量的精度满足所述第一条件。通过单运动矢量的水平分量来确定运动矢量的精度是否满足第一条件,提高了确定运动矢量的精度的效率。具体实施例与前述类似,此处不再赘述。在某些实施例中,所述第一像素精度阈值与所述第三像素精度阈值可以相同,也可以不相同,本发明实施例不做具体限定。

在一种实施方式中,视频处理设备在检测所述单运动信息包括的运动矢量的精度是否满足所述第一条件时,可以检测所述单运动信息中的运动矢量的垂直分量是否为第四像素精度阈值的整数倍,若所述单运动信息中的运动矢量的垂直分量为所述第四像素精度阈值的整数倍,则可以确定所述单运动信息中的运动矢量的精度满足所述第一条件。通过单运动矢量的垂直分量来确定运动矢量的精度是否满足第一条件,提高了确定运动矢量的精度的效率。具体实施例与前述类似,此处不再赘述。在某些实施例中,所述第四像素精度阈值与所述第二像素精度阈值可以相同,也可以不相同,本发明实施例不做具体限定。

在一种实施方式中,视频处理设备在检测所述单运动信息包括的运动矢量的精度是否满足所述第一条件时,可以检测所述单运动信息中的运动矢量的水平分量是否为第三像素精度阈值的整数倍以及垂直分量是否为第四像素精度阈值的整数倍,若所述单运动信息中的运动矢量的水平分量为所述第三像素精度阈值的整数倍以及垂直分量为所述第四像素精度阈值的整数倍,则可以确定所述单运动信息中的运动矢量的精度满足所述第一条件。在某些实施例中,所述第三像素精度阈值与所述第四像素精度阈值可以相同,也可以不相同,本发明实施例不做具体限定。通过单运动矢量的水平分量和垂直分量来确定运动矢量的精度是否满足第一条件,提高了确定运动矢量的精度的效率。具体实施例与前述类似,此处不再赘述。

在一个实施例中,视频处理设备在基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件时,可以检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件,并检测所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移特征是否满足第二条件,若所述双运动信息中的至少一个运动矢量的精度满足所述第一条件,且所述偏移特征满足所述第二条件,则可以确定所述双运动信息满足所述第一预设条件。在某些实施例中,所述偏移特征包括但不限于偏移量。通过运动矢量的精度和运动矢量的偏移特征来确定双运动信息是否满足第一预设条件,有助于提升编码性能,提高编解码的效率。

例如,在获取到初始运动信息候选列表后,对于初始运动信息候选列表中的前两个运动矢量,可以按照前述的MMVD方法中包括的诸如8个偏移量(也即偏移值)以及4个偏移方向分别进行偏移,并基于偏移后的运动矢量,得到目标运动信息候选列表。因此,可以根据这8个偏移量和/或这4个偏移方向来确定双运动信息的偏移特征是否满足第二条件。

在一个实施例中,视频处理设备在检测所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移特征是否满足第二条件时,可以检测所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移量是否大于预设偏移阈值,若是,则可以确定所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移特征满足所述第二条件。在某些实施例中,所述偏移特征包括但不限于多个偏移方向以及多个偏移量,其中,每个偏移方向均对应有多个偏移量。在某些实施例中,所述至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移量是否大于预设偏移阈值包括各个运动矢量对应的偏移量是否大于预设偏移阈值,包括任一运动矢量对应的偏移量是否大于预设偏移阈值,还包括特定运动矢量对应的偏移量是否大于预设偏移阈值,也即,是指双运动信息中的一个或多个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移量是否大于预设偏移阈值。通过运动矢量的偏移量来确定偏移特征是否满足第二条件,有助于确定双运动信息是否满足第一预设条件。

可以理解,在某些实施例中,可以结合偏移方向与运动矢量的精度来判断双运动信息是否满足第一预设条件,也可以结合偏移方向、偏移量以及运动矢量的精度来判断双运动信

在某些实施例中,所述预设偏移阈值与所述第一条件相关。在某些实施例中,所述运动矢量的精度满足所述第一条件包括所述运动矢量的精度小于预设像素精度阈值,所述预设偏移阈值为所述预设像素精度阈值的整数倍。其中,运动矢量的精度小于预设像素精度阈值,也即运动矢量的水平分量和/或垂直分量能够整除对应的预设像素精度阈值。在一个示例中,假设所述运动矢量的水平分量MV_BASE_X为2,预设像素精度阈值为2,由于水平分量2可以整除2,则说明所述运动矢量的精度可以达到2;水平分量可以整除1,则说明所述运动矢量的精度可以达到1;水平分量2可以整除1/2,则说明所述运动矢量的精度可以为1/2;水平分量2可以整除1/4,则说明所述运动矢量的精度可以为1/4;因此,运动矢量可达到的精度1/4,1/2,1均小于预设阈值2,则可以确定所述运动矢量的精度小于预设像素精度阈值2。

在某些实施例中,由于在目前编码标准中的MMVD技术中,运动矢量偏移值可以有8种取值:1/4,1/2,1,2,4,8,16,32,而DMVR技术对于运动矢量的修正区域是在当前位置周边的2以内。因此,若将DMVR技术应用与所有的MMVD模式编码块上,部分块将出现重复的修正操作,如对于运动矢量偏移小于等于2的编码块,在进行DMVR的时候将对已偏移的运动矢量进行再次偏移,可能导致冗余操作,甚至使原本已经修正的位置又发生偏移。因此,为了避免冗余操作,所述预设偏移阈值大于2。

在某些示例中,由于运动矢量的精度在一定程度上反映了编码块的运动特征。例如,对于运动矢量的精度较高的编码块,其运动较为精细;对于运动矢量的精度较低的编码块,其运动较为粗糙。而对于运动特征较为粗糙的编码快,在MMVD方法中选择较大的运动矢量的偏移(如,和本身精度相同或者更大)的可能性较高。因此,具有这样特征的且应用了MMVD方法的编码块更适合应用DMVR方法。因此,预设偏移阈值可以与预设像素精度相关,且预设偏移阈值可以为预设像素精度阈值的整数倍,如2倍。

在一个示例中,假设第一像素精度阈值和所述第二像素精度阈值相等且均为N,运动矢量的水平分量为MV_BASE_X,运动矢量的垂直分量为MV_BASE_Y,运动矢量相对于初始运动信息候选列表中对应的初始运动矢量的偏移特征为offset,则当检测到所述双运动信息中的至少一个运动矢量的水平分量为N的整数倍以及垂直分量为N的整数倍,且offset大于预设偏移阈值M即满足如下公式(2)时,按照DMVR方法对所述双运动信息进行修正,得到修正后的双运动信息。

在一个实施例中,视频处理设备在基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件时,可以将所述双运动信息进行合并处理,以得到一个单运动信息,并检测所述单运动信息中的运动矢量的精度是否满足第二条件,并检测所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移量是否大于预设偏移阈值,若所述单运动信息中的运动矢量的精度满足所述第二条件,且所述偏移量大于所述预设偏移阈值,则可以确定所述双运动信息满足所述第一预设条件。通过单运动信息中的运动矢量的精度和运动矢量的偏移特征来确定双运动信息是否满足第一预设条件,有助于提升编码性能,提高编解码的效率。具体实施例举例与前述示例类似,此处不再赘述。

S504:若所述双运动信息满足所述第一预设条件,则按照解码端运动矢量修正DMVR方法,对所述双运动信息进行修正,得到修正后的双运动信息。

本发明实施例中,若所述双运动信息满足所述第一预设条件,则视频处理设备可以按照解码端运动矢量修正DMVR方法,对所述双运动信息进行修正,得到修正后的双运动信息。

在一个实施例中,采用DMVR方法对所述双运动信息进行修正的示意图如图6所示,图6是一种DMVR的实现方式的示意图。

以图6为例,所述DMVR的实现方式的实施过程可以简单总结为如下几个步骤:

步骤一:计算满足第一预设条件的双运动信息的运动矢量MV0在第一列表中对应的参考帧,以及满足第一预设条件的双运动信息的运动矢量MV1在第二列表中对应的参考帧,确定第一列表的参考帧中指向的预测块与第二列表的参考帧中指向的预测块之间的绝对误差和(Sum of Absolute Differences,SAD);

步骤二:在双运动信息的运动矢量在各自参考帧中指向的预测块周边进行镜像的偏移,例如,先在整像素点进行偏移,再在分像素点(如1/2像素点)进行偏移,例如,对MV0进行偏移,得到MV0′,对MV1进行偏移,得到MV1′;

步骤三:计算偏移后的两个预测块之间的SAD,例如,MV0′与MV1′之间的SAD;

步骤四:获取计算得到的偏移后的两个预测块之间的多个SAD,从所述多个SAD中选取SAD最小的一组运动矢量作为修正后的双运动信息的运动矢量。在一个示例中,多个SAD中最小SAD的一组运动矢量分别为MV0′和MV1′,MV0′和MV1′该组运动矢量为修正后效果较佳的一组双运动信息的运动矢量。

通过这种实施方式,实现了将DMVR技术应用于MMVD技术,降低了编解码性能的损耗,提高了运动矢量预测的准确性。

S505:基于所述修正后的双运动信息,对所述图像块进行编码或解码。

本发明实施例中,视频处理设备可以基于所述修正后的双运动信息,对所述图像块进行编码或解码。通过这种实施方式,提升了编解码效率。本发明实施例中,通过获取当前帧的图像块的初始运动信息候选列表,并按照MMVD方法基于初始运动信息候选列表,得到目标运动信息候选列表,在确定出目标运动信息候选列表中包括的双运动信息满足第一预设条件时,按照DMVR方法对该双运动信息进行修正,得到修正后的双运动信息,从而基于修正后的双运动信息,对图像块进行编码或解码。通过这种实施方式,实现了对MMVD技术与DMVR技术进行融合,提升了编解码性能,有效提高了编解码效率。

具体请参见图7,图7是本发明实施例提供的另一种视频处理方法的流程示意图。所述方法可以应用于视频处理设备,其中,所述视频处理设备的解释如前所述,此处不再赘述。本发明实施例与图5所述实施例的区别在于,本发明实施例是对如何按照MMVD方法基于所述初始运动信息候选列表,得到目标运动信息候选列表的过程进行详细说明,具体地,本发明实施例的所述方法包括如下步骤。

S701:获取当前帧的图像块的初始运动信息候选列表。

本发明实施例中,视频处理设备可以获取当前帧的图像块的初始运动信息候选列表。

S702:基于终极运动矢量表达MMVD方法中包括的偏移特征,对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移,得到包括偏移后的特定运动信息的目标运动信息候选列表。

本发明实施例中,视频处理设备可以基于终极运动矢量表达MMVD方法中包括的偏移特征,对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移,得到包括偏移后的特定运动信息的目标运动信息候选列表。

在一个实施例中,所述偏移特征包括多个偏移方向以及多个偏移量,其中,每个所述偏移方向均对应有所述多个偏移量;视频处理设备在基于终极运动矢量表达MMVD方法中包括的偏移特征,对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移时可以在所述多个偏移方向中的第一方向上,基于所述多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移。通过这种实施方式,可以避免对某些对编码效率的提升没有很大帮助的方向上的偏移,以节省编码时间。其中,本发明实施例中所提到的特定运动信息可以包括运动矢量,或者包括运动矢量和参考帧信息(例如,参考帧索引)等,在对特定运动信息进行偏移时,指的是对特定运动信息包括的运动矢量进行偏移。

在某些实施例中,所述多个偏移方向可以包括4个不同的方向,所述4个方向包括如图3所示的上下左右四个方向。在某些实施例中,每个方向上的多个偏移量可以有8种取值;在一个示例中,每个方向上的多个偏移量可以包括1/4、1/2、1、2、4、8、16、32这8种取值。

在一种实施方式中,所述第一方向可以是多个偏移方向中的一个偏移方向,视频处理设备可以在多个偏移方向中的一个方向上,基于多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移。

例如,假设第一方向为向左的方向,第一偏移量为1/4,则视频处理设备可以在4个偏移方向中的向左的方向上,基于8个偏移量中的第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移。

在一种实施方式中,所述第一方向可以是多个偏移方向,视频处理设备可以在多个偏移方向中的每个方向上,基于多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移。在某些实施例中,所述第一偏移量可以是一个偏移量,也可以多个偏移量,本发明实施例不做具体限定,在一个示例中,所述第一偏移量可以为1/4;在另一个示例中,所述第一偏移量可以为1/4和1/2。

例如,假设第一方向包括上下左右4个方向,第一偏移量为1/4,则视频处理设备可以在向左的方向上,基于多个偏移量中的第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移;以及视频处理设备可以在向右的方向上,基于多个偏移量中的第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移;以及视频处理设备可以在向上的方向上,基于多个偏移量中的第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移;视频处理设备可以在向下的方向上,基于多个偏移量中的第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移。

在一个实施例中,视频处理设备在所述多个偏移方向中的第一方向上,基于所述多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移时,可以是:在所述多个偏移方向中的第二方向上,按照所述多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行偏移,得到所述特定运动信息的参考偏移代价,并在所述第一方向上,基于所述参考偏移代价以及所述多个偏移量中的第二偏移量对所述特定运动信息进行选择性地偏移。在某些实施例中,所述第二偏移量大于所述第一偏移量。在某些实施例中,第二方向可以包括第一方向,可以与第一方向相同,也可以与第一方向不相同。

在某些实施例中,所述偏移代价是在相同的编码质量下按照所述多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行偏移所需要的比特数确定的。在某些实施例中,比特数越高说明偏移代价越大,耗费的编码时间越多。在某些实施例中,所述偏移代价可以为best cost;在某些实施例中,所述偏移代价可以根据如下公式(3)确定:

α*bestcost (3)

其中,best cost表示相同的编码质量下,按照所述多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行偏移所需要的比特数,α为系数。

在一种实施方式中,所述第二方向包括多个偏移方向,所述第二方向包括所述第一方向;视频处理设备可以在多个偏移方向上的每个偏移方向上,按照每个偏移方向中的多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行偏移,得到所述特定运动信息的参考偏移代价,并在多偏移方向中的一个偏移方向上,基于所述参考偏移代价以及所述多个偏移量中的第二偏移量对所述特定运动信息进行选择性地偏移。

例如,假设第一方向为向左的方向,第二方向包括上下左右4个方向,第一偏移量为1/4,第二偏移量为1/2,则视频处理设备可以分别在上下左右4个方向上,分别按照所述第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行偏移,得到按照所述第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行偏移所需的比特数为X,即参考偏移代价为X,并在所述向左的方向上,基于所述参考偏移代价X以及第二偏移量1/2对所述特定运动信息进行选择性地偏移。可以理解,本文中所提到的偏移代价可以包括但不限于进行偏移时所需要的比特数,也可以包括诸如失真的大小。

在一个实施例中,所述第二方向为多个偏移方向,视频处理设备在所述第一方向上,基于所述参考偏移代价以及所述多个偏移量中的第二偏移量对所述特定运动信息进行选择性地偏移时,可以在所述第一方向上,按照所述第二偏移量对所述特定运动信息进行偏移,得到所述特定运动信息的偏移代价,若所述偏移代价与所述参考偏移代价满足第二预设条件,则在所述第一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移,若所述偏移代价与所述参考偏移代价不满足第二预设条件,则在所述第一方向上,不再对所述特定运动信息进行偏移。

在某些实施例中,对所述多个偏移量按照从小到大的顺序排列,所述第三偏移量大于所述第二偏移量且与所述第二偏移量相邻,在一个示例中,对8个偏移量按照从小到大的顺序排列为:1/4、1/2、1、2、4、8、16、32。

在某些实施例中,所述偏移代价与所述参考偏移代价满足第二预设条件,包括以下中的至少一种:所述偏移代价小于所述参考偏移代价中的最小参考偏移代价、所述偏移代价小于所述参考偏移代价中的特定参考偏移代价、所述偏移代价小于所述参考偏移代价中的预设数量的参考偏移代价。

通过这种实施方式,可以跳过对不满足条件的部分方向进行特定运动信息偏移,以节省编码时间。

在一种实施方式中,所述第二方向为多个偏移方向,所述第二方向包括所述第一方向;视频处理设备可以在多个偏移方向的每个偏移方向上,按照每个偏移方向中的多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行偏移,得到所述特定运动信息的参考偏移代价,并在多个偏移方向中的一个偏移方向上,按照所述第二偏移量对特定运动信息进行偏移,得到所述特定运动信息中运动矢量的偏移代价。若所述偏移代价与所述参考偏移代价满足第二预设条件,则在所述多个偏移方向中的一个偏移方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移,若所述偏移代价与所述参考偏移代价不满足第二预设条件,则在所述多个偏移方向中的一个偏移方向上,不再对所述特定运动信息进行偏移。

例如,假设所述第一方向为向左的方向,所述第二方向为上下左右4个方向,多个偏移量按照从小到大的顺序排列为:第一偏移量为1/4,第二偏移量为1/2,第三偏移量为1,则视频处理设备可以在上下左右4个方向上,分别按照多个偏移量中的第一偏移量1/4对初始运动信息候选列表中的特定运动信息进行偏移,得到所述特定运动信息的参考偏移代价,并在所述向左的方向上,按照所述第二偏移量1/2对特定运动信息进行偏移,得到特定运动信息的偏移代价为Y。若所述偏移代价Y小于参考偏移代价中的最小参考偏移代价X,则在向左的方向上,按照第三偏移量1继续对特定运动信息进行偏移,若偏移代价Y大于参考偏移代价中的最小参考偏移代价X,则在向左的方向上,不再对特定运动信息进行偏移。

又例如,视频处理设备可以在向左的方向上,按照第二偏移量1/2对特定运动信息进行偏移,得到特定运动信息的偏移代价为Y。若偏移代价Y小于参考偏移代价中的2个(即预设数量)参考偏移代价,则视频处理设备可以在向左的方向上,按照第三偏移量1继续对特定运动信息进行偏移,若偏移代价Y小于参考偏移代价中的1个(即预设数量)参考偏移代价,则在向左的方向上不再对特定运动信息进行偏移。

再例如,视频处理设备可以在向左的方向上,按照第二偏移量1/2对特定运动信息进行偏移,得到特定运动信息的偏移代价为Y。若偏移代价Y小于参考偏移代价中的特定参考偏移代价Z,则视频处理设备可以在向左的方向上,按照第三偏移量1继续对特定运动信息进行偏移,若偏移代价Y大于参考偏移代价中的特定参考偏移代价Z,则在向左的方向上不再对特定运动信息进行偏移。

在一个实施例中,所述第二方向包括多个偏移方向,所述第二方向不包括所述第一方向;视频处理设备可以在第二方向上,按照第一偏移量对所述初始运动信息候选列表中的特定运动信息进行偏移,得到参考偏移代价,并在第一方向上,按照第二偏移量对特定运动信息进行偏移,得到特定运动信息的偏移代价,若偏移代价与参考偏移代价满足第二预设条件,则在所述第一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移,若所述偏移代价与所述参考偏移代价不满足第二预设条件,则在所述第一方向上,不再对所述特定运动信息进行偏移。

例如,假设第一方向为向左的方向,第二方向包括上下右3个方向,第一偏移量为1/4,第二偏移量为1/2,则视频处理设备可以分别在上下右3个方向上,分别按照所述第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行偏移,得到按照所述第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行偏移所需的比特数为X,即参考偏移代价为X,并在所述向左的方向上,基于所述参考偏移代价X以及第二偏移量1/2对所述特定运动信息进行选择性地偏移。

在一个实施例中,所述第二方向包括一个偏移方向,第二方向不为第一方向,视频处理设备可以在第二方向上,按照第一偏移量对所述初始运动信息候选列表中的特定运动信息进行偏移,得到参考偏移代价,并在第一方向上,按照第二偏移量对特定运动信息进行偏移,得到特定运动信息的偏移代价,若偏移代价与参考偏移代价满足第二预设条件,则在所述第一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移,若所述偏移代价与所述参考偏移代价不满足第二预设条件,则在所述第一方向上,不再对所述特定运动信息进行偏移。

例如,假设第一方向为向左的方向,第二方向为向右的方向,第一偏移量为1/4,第二偏移量为1/2,则视频处理设备可以在向右的方向上,按照所述第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行偏移,得到按照所述第一偏移量1/4对所述初始运动信息候选列表中的特定运动信息进行偏移所需的比特数为X,即参考偏移代价为X,并在所述向左的方向上,基于所述参考偏移代价X以及第二偏移量1/2对所述特定运动信息进行选择性地偏移。

在一个实施例中,所述第二方向为第一方向即当第二方向与第一方向为同一方向时,视频处理设备在第一方向上,基于参考偏移代价以及多个偏移量中的第二偏移量对特定运动信息进行选择性地偏移时,可以在同一方向上,按照第二偏移量对特定运动信息进行偏移,得到特定运动信息的偏移代价,若偏移代价与参考偏移代价满足第二预设条件,则在所述同一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移,若所述偏移代价与所述参考偏移代价不满足第二预设条件,则在所述同一方向上,不再对所述特定运动信息进行偏移。通过这种实施方式,可以跳过对同一方向上不满足条件的偏移量进行特定运动信息的偏移,以节省编码时间。

在一种实施方式中,如果视频处理设备已经在同一方向上按照第一偏移量对特定运动信息进行偏移,得到特定运动信息的偏移代价,则将该偏移代价作为参考偏移代价。视频处理设备可以在同一方向上,按照第二偏移量对特定运动信息进行偏移,得到特定运动信息的偏移代价,若偏移代价与该参考偏移代价满足第二预设条件,则确定前述两个偏移代价为参考偏移代价,视频处理设备可以在所述同一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移,若所述偏移代价与所述参考偏移代价即前述两个偏移代价不满足第二预设条件,则在所述同一方向上,不再对所述特定运动信息进行偏移。

例如,假设所述第一方向与第二方向均为向左的方向,多个偏移量按照从小到大的顺序排列为:第一偏移量为1/4,第二偏移量为1/2,第三偏移量为1,如果视频处理设备在所述向左的方向上,按照所述第一偏移量1/4对特定运动信息进行偏移,得到特定运动信息的偏移代价为X,则确定X为参考偏移代价,则视频处理设备可以在向左的方向上,按照所述第二偏移量1/2对特定运动信息进行偏移,得到特定运动信息的偏移代价为Y,若所述偏移代价Y小于参考偏移代价X,则确定X和Y为参考偏移代价,并在向左的方向上,按照第三偏移量1继续对特定运动信息进行偏移,若偏移代价Y大于参考偏移代价X和Y中的最小参考偏移代价X,则在向左的方向上,不再对特定运动信息进行偏移。

在一个实施例中,若所述偏移代价与所述参考偏移代价满足第二预设条件,视频处理设备在所述第一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移时,可以在所述第一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移,直至所述特定运动信息在所述第一方向上按照所述多个偏移量中的其它偏移量进行偏移时得到的偏移代价与所述参考偏移代价不满足所述第二预设条件。

例如,假设所述第一方向为向左的方向,多个偏移量按照从小到大的顺序排列为:第一偏移量为1/4,第二偏移量为1/2,第三偏移量为1,第四偏移量为2,第五偏移量为4,第六偏移量为8,第七偏移量为16,第八偏移量为32,则视频处理设备在向左的方向上,按照第三偏移量1继续对特定运动信息进行偏移时,可以在向左的方向上,按照第三偏移量1继续对特定运动信息进行偏移,如果该特定运动信息在向左的方向上按照第四偏移量2进行偏移时得到的偏移代价Z1大于参考偏移代价中的最小参考偏移代价X1,则停止按照第三偏移量2继续对特定运动信息进行偏移。如果该特定运动信息在向左的方向上按照第四偏移量2进行偏移时得到的偏移代价Z1小于参考偏移代价中的最小参考偏移代价X1,则可以在向左的方向上,按照第五偏移量4继续对特定运动信息进行偏移。如果该特定运动信息在向左的方向上按照第五偏移量4进行偏移时得到的偏移代价Z2小于参考偏移代价中的最小参考偏移代价X2,则可以在向左的方向上,按照第六偏移量8继续对特定运动信息进行偏移。如果该特定运动信息在向左的方向上按照第六偏移量8进行偏移时得到的偏移代价Z3小于参考偏移代价中的最小参考偏移代价X3,则可以在向左的方向上,按照第七偏移量16继续对特定运动信息进行偏移。如果该特定运动信息在向左的方向上按照第七偏移量16进行偏移时得到的偏移代价Z4小于参考偏移代价中的最小参考偏移代价X4,则可以在向左的方向上,按照第八偏移量32继续对特定运动信息进行偏移。如果该特定运动信息在向左的方向上按照第八偏移量32进行偏移时得到的偏移代价Z5大于参考偏移代价中的最小参考偏移代价X5,则停止按照第八偏移量32继续对特定运动信息进行偏移。

可以理解,本文中提到的精度、第一像素精度阈值、第二像素精度阈值、预设偏移阈值、偏移量等的单位是相同的,例如,像素。

本发明实施例中,通过获取当前帧的图像块的初始运动信息候选列表,基于MMVD方法中包括的偏移特征,对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移,得到包括偏移后的特定运动信息的目标运动信息候选列表,以节省编码时间。在确定出目标运动信息候选列表中包括的双运动信息满足第一预设条件时,按照DMVR方法对该双运动信息进行修正,得到修正后的双运动信息,并基于修正后的双运动信息,对图像块进行编码或解码。通过这种实施方式,实现了对MMVD技术与DMVR技术进行融合,同时,有效优化了MMVD技术,在不增加编解码时间的前提下,提升了编解码性能,有效提高了编解码效率。

请参见图8,图8是本发明实施例提供的一种视频处理设备的结构示意图,具体的,所述视频处理设备包括:存储器801、处理器802以及数据接口803。

所述存储器801可以包括易失性存储器(volatile memory);存储器801也可以包括非易失性存储器(non-volatile memory);存储器801还可以包括上述种类的存储器的组合。所述处理器802可以是中央处理器(central processing unit,CPU)。所述处理器802还可以进一步包括硬件视频处理设备。上述硬件视频处理设备可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。具体例如可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA)或其任意组合。

进一步地,所述存储器801用于存储程序,当程序被执行时所述处理器802可以调用存储器801中存储的程序,用于执行如下步骤:

获取当前帧的图像块的初始运动信息候选列表;

按照终极运动矢量表达MMVD方法,基于所述初始运动信息候选列表,得到目标运动信息候选列表;

在所述目标运动信息候选列表中包括双运动信息时,基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件;

若所述双运动信息满足所述第一预设条件,则按照解码端运动矢量修正DMVR方法,对所述双运动信息进行修正,得到修正后的双运动信息;

基于所述修正后的双运动信息,对所述图像块进行编码或解码。

进一步地,所述处理器802基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件时,具体用于:

检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件;

若是,则确定所述双运动信息满足所述第一预设条件。

进一步地,所述处理器802基于所述双运动信息中包括的运动矢量的精度,确定所述双运动信息是否满足第一预设条件时,具体用于:

检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件,并检测所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移特征是否满足第二条件;

若所述双运动信息中的至少一个运动矢量的精度满足所述第一条件,且所述偏移特征满足所述第二条件,则确定所述双运动信息满足所述第一预设条件。

进一步地,所述处理器802检测所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移特征是否满足第二条件时,具体用于:

检测所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移量是否大于预设偏移阈值;

若是,则确定所述双运动信息中的至少一个运动矢量相对于所述初始运动信息候选列表中对应的初始运动矢量的偏移特征满足所述第二条件。

进一步地,所述预设偏移阈值与所述第一条件相关。

进一步地,所述运动矢量的精度满足所述第一条件包括所述运动矢量的精度小于预设像素精度阈值,所述预设偏移阈值为所述预设像素精度阈值的整数倍。

进一步地,所述预设偏移阈值大于2。

进一步地,所述预设偏移阈值为所述预设像素精度阈值的2倍。

进一步地,所述处理器802检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件时,具体用于:

检测所述双运动信息中的至少一个运动矢量的水平分量是否为第一像素精度阈值的整数倍;

若所述双运动信息中的至少一个运动矢量的水平分量为所述第一像素精度阈值的整数倍,则确定所述双运动信息中的至少一个运动矢量的精度满足所述第一条件。

进一步地,所述处理器802检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件时,具体用于:

检测所述双运动信息中的至少一个运动矢量的垂直分量是否为第二像素精度阈值的整数倍;

若所述双运动信息中的至少一个运动矢量的垂直分量为所述第二像素精度阈值的整数倍,则确定所述双运动信息中的至少一个运动矢量的精度满足所述第一条件。

进一步地,所述处理器802检测所述双运动信息中的至少一个运动矢量的精度是否满足第一条件时,具体用于:

检测所述双运动信息中的至少一个运动矢量的水平分量是否为第一像素精度阈值的整数倍以及垂直分量是否为第二像素精度阈值的整数倍;

若所述双运动信息中的至少一个运动矢量的水平分量为所述第一像素精度阈值的整数倍以及垂直分量为所述第二像素精度阈值的整数倍,则确定所述双运动信息中的至少一个运动矢量的精度满足所述第一条件。

进一步地,所述第一像素精度阈值包括2或4。

进一步地,所述第二像素精度阈值包括2或4。

进一步地,所述处理器802按照终极运动矢量表达MMVD方法,基于所述初始运动信息候选列表,得到目标运动信息候选列表时,具体用于:

基于终极运动矢量表达MMVD方法中包括的偏移特征,对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移,得到包括偏移后的特定运动信息的目标运动信息候选列表。

进一步地,所述偏移特征包括多个偏移方向以及多个偏移量,其中,每个所述偏移方向均对应有所述多个偏移量;所述处理器802基于终极运动矢量表达MMVD方法中包括的偏移特征,对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移时,具体用于:

在所述多个偏移方向中的第一方向上,基于所述多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移。

进一步地,所述处理器802在所述多个偏移方向中的第一方向上,基于所述多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行选择性地偏移时,具体用于:

在所述多个偏移方向中的第二方向上,按照所述多个偏移量中的第一偏移量对所述初始运动信息候选列表中的特定运动信息进行偏移,得到所述特定运动信息的参考偏移代价;

在所述第一方向上,基于所述参考偏移代价以及所述多个偏移量中的第二偏移量对所述特定运动信息进行选择性地偏移。

进一步地,所述第二偏移量大于所述第一偏移量。

进一步地,所述第二方向为多个;所述处理器802在所述第一方向上,基于所述参考偏移代价以及所述多个偏移量中的第二偏移量对所述特定运动信息进行选择性地偏移时,具体用于:

在所述第一方向上,按照所述第二偏移量对所述特定运动信息进行偏移,得到所述特定运动信息的偏移代价;

若所述偏移代价与所述参考偏移代价满足第二预设条件,则在所述第一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移;

若所述偏移代价与所述参考偏移代价不满足第二预设条件,则在所述第一方向上,不再对所述特定运动信息进行偏移;

其中,对所述多个偏移量按照从小到大的顺序排列,所述第三偏移量大于所述第二偏移量且与所述第二偏移量相邻。

进一步地,所述处理器802若所述偏移代价与所述参考偏移代价满足第二预设条件,则在所述第一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移时,具体用于:

若所述偏移代价与所述参考偏移代价满足第二预设条件,则在所述第一方向上,按照所述多个偏移量中的第三偏移量继续对所述特定运动信息进行偏移,直至所述特定运动信息在所述第一方向上按照所述多个偏移量中的其它偏移量进行偏移时得到的偏移代价与所述参考偏移代价不满足所述第二预设条件。

进一步地,所述偏移代价与所述参考偏移代价满足第二预设条件,包括以下中的至少一种:

所述偏移代价小于所述参考偏移代价中的最小参考偏移代价、所述偏移代价小于所述参考偏移代价中的特定参考偏移代价、所述偏移代价小于所述参考偏移代价中的预设数量的参考偏移代价。

本发明实施例中,通过获取当前帧的图像块的初始运动信息候选列表,并按照MMVD方法基于初始运动信息候选列表,得到目标运动信息候选列表,在确定出目标运动信息候选列表中包括的双运动信息满足第一预设条件时,按照DMVR方法对该双运动信息进行修正,得到修正后的双运动信息,从而基于修正后的双运动信息,对图像块进行编码或解码。通过这种实施方式,实现了对MMVD技术与DMVR技术进行融合,提升了编解码性能,有效提高了编解码效率。

在本发明的实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例图5或图7中描述的视频处理方法方式,也可实现图8所述本发明所对应实施例的视频处理设备,在此不再赘述。

所述计算机可读存储介质可以是前述任一项实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。

以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

相关技术
  • 一种视频处理方法、视频处理装置、智能设备及存储介质
  • 一种视频处理方法、装置、视频处理设备及存储介质
技术分类

06120112182294