基于空时域特性的vvc快速cu划分方法及存储介质
技术领域
1.本发明属于视频编码领域,更具体地说,一种适用于通用视频编码vvc(versatile video coding)的cu快速划分方法,可应用于视频会议和监控视频等实时性要求较高的视频编码场景。
背景技术:2.随着通信技术和视频技术的发展,人们对更高分辨率视频的需求在不断增长。尽管高效视频编码(high efficiency video coding,hevc)有着不俗的编码性能,但在面对4k、8k等高质量视频所带来的庞大的数据量时,其编码效率也显得捉襟见肘。为了解决这一难题,2015年,联合视频专家组(joint video exploration team,jvet)便开始了下一代视频编码标准的制定工作。2020年7月,第一版vvc标准正式发布。
3.vvc的技术手段和前面几代视频编码标准基本类似,仍然是基于块的混合编码框架,但几乎对编码的每个环节都进行了改进。vvc增加的新技术包括:四叉树嵌套多类型树划分方式、67种帧内预测模式、跨分量线性模型预测(cross-component linear model prediction,cclm)、位置决策帧内预测联合(position dependent intra prediction combination,pdpc)、多参考行帧内预测(multiple reference line intra prediction,mrl)、矩阵加权帧内预测(matrix weighted intra prediction,mip)和帧内子划分(intra sub-partitions,isp)等。这些新技术使得vvc能够继续挤压hevc尚未除尽的信息冗余,达到总体编码效率提高一倍的要求。然而这些新技术的加入也使得vvc的计算复杂度急剧增加,最直观的体现便是vvc的编码时间大幅度增加。vvc编码时间相比hevc增加了10倍以上。如此高的编码复杂度给vvc标准的推广和实际应用带来巨大困难。因此如何在保证编码效率的同时,显著降低vvc的编码复杂度成为了当前研究的重点。vvc采用的四叉树(quadtree,qt)嵌套mtt(multi-type tree)的cu划分方式,是编码复杂度提升的主要原因之一。因此优化cu划分结构,实现cu的快速划分,是当前vvc编码加速的重要研究方向。
4.vvc在编码过程中,视频中的每帧图像都被划分为若干个128
×
128的编码树单元(coding tree unit,ctu),再通过qt和mtt将ctu划分为cu,cu再继续划分,直到块的长或宽等于4或者达到最大划分深度为止。mtt包括水平方向划分和垂直方向划分,每个方向又包括二叉树(binary tree,bt)划分和三叉树(ternary tree,tt)划分。所以一个cu最多有qt、水平二叉树(horizontal binary tree,hbt)、水平三叉树(horizontal ternary tree,htt)、垂直二叉树(vertical binary tree,vbt)和垂直三叉树(vertical ternary tree,vtt)共5种划分方式。所有可能的划分模式被放在候选列表中,编码器对每一个cu都需要遍历候选列表中的所有划分模式,计算其率失真代价,然后选择率失真代价最小的划分模式作为当前cu的最佳划分模式。在cu划分过程中,如果能减少划分模式,就可以明显降低编码复杂度,加快视频编码速度。因此在确保编码质量和编码效率下降很少的前提下,如何通过跳过cu不必要的划分模式,提前判断出cu的最佳划分模式,以大幅度减小编码复杂度,是当前vvc快速算法研究的热点。
5.cn112702599a,一种基于深度学习的vvc帧内快速编码方法,包括,在vvc编码过程中,获取亮度编码块及量化参数;将亮度编码块及量化参数输入到考虑非对称卷积和注意力感知的深度学习模型中,得到预测向量,以各划分模式为最优快速划分模式的预测概率作为预测向量中的元素;基于预测向量确定保留的划分模式;基于保留划分模式进行vvc帧内快速划分。与现有技术相比,本发明在vvc帧内快速编码过程中,大幅降低了编码复杂度,提高了算法的稳定性,保证了划分结果的准确性。但该专利提出的快速算法将当前亮度编码块及量化参数输入到深度学习模型,只利用了视频帧的空域相关性,并未考虑相邻编码帧的时域相关性很大的特点。因此该专利只适合视频的帧内编码过程,其应用有限。
6.本发明提出的算法先利用视频时域相关性,计算当前cu与通过运动估计后得到的其最佳匹配cu的绝对误差和(sad),通过sad值的大小决定当前cu是否继续下一深度划分,提前终止部分cu的所有划分过程;然后,对需向下一深度继续划分的cu,利用视频帧空域特性,分析当前cu水平和垂直方向子块的纹理差异,判断其多叉树划分方向,提前跳过水平或垂直方向的多叉树划分过程。因此,本发明充分利用了视频帧的时域和空域相关性,有效降低vvc编码复杂度,可广泛用于视频高效压缩和实时通信场景,如视频会议、视频监控等实时性要求高的应用等。
技术实现要素:7.本发明旨在解决以上现有技术的问题。提出了一种基于空时域特性的vvc快速cu划分方法。本发明的技术方案如下:
8.一种基于空时域特性的vvc快速cu划分方法,其包括以下步骤:
9.s1、获取编码帧中当前待划分编码单元cu的编码信息,判断当前cu是否可以继续划分。如果当前cu划分深度小于设定的最大划分深度,则继续划分,将当前cu所有可行的划分模式加入到划分列表中,进入步骤s2;否则,进入步骤s6;
10.s2、判断当前cu的尺寸和类型,如果当前cu为128
×
128或64
×
64的亮度cu,进入步骤s3,否则,进入步骤s5;
11.s3、读取当前cu在参考帧中通过运动估计得到的最佳匹配cu的像素值,计算当前cu与最佳匹配cu的像素差异值,如果像素差异值小于阈值,进入步骤s6,否则进入步骤s4;
12.s4、分别计算当前cu水平方向子块的纹理差异和垂直方向子块的纹理差异,通过比较这两个方向纹理差异的大小,判断是否跳过某一方向多叉树划分过程,然后在划分列表中删除该方向多叉树划分方式;
13.s5、遍历划分列表中划分模式,返回s1进入下一深度的cu划分;
14.s6、结束当前cu的划分过程。
15.进一步的,所述步骤s1中,当前待划分编码单元cu的编码信息包括划分深度、允许划分的最大深度、尺寸和通道在内的信息;
16.进一步的,所述步骤s1中,将当前cu所有可行的划分模式加入到划分列表中指的是:vvc的划分模式包括四叉树qt、水平二叉树hbt、垂直二叉树vbt、水平三叉树htt和垂直三叉树vtt划分,在这5种划分模式中选择当前cu可以执行的划分模式,并加入到划分列表中。
17.进一步的,所述步骤s2中,仅对尺寸为128
×
128或64
×
64的亮度cu执行本发明提
出的快速算法,可以保证编码效率不会有明显下降。
18.进一步的,所述步骤s3中,计算当前cu与最佳匹配cu的像素差异值,具体是通过计算当前cu与其最佳匹配cu的绝对误差和sad得到的,sad的计算公式如下:
[0019][0020]
其中,x和y分别为像素点在当前cu中的横坐标值和纵坐标值;w和h分别表示当前cu的宽和高,如果当前cu为正方形,w等于h;f(x,y)是当前cu中(x,y)处的亮度值;g(x,y)是最佳匹配cu中(x,y)处的亮度值。
[0021]
进一步的,所述步骤s3中,如果像素差异值小于阈值,指的是如果绝对误差和(sad)小于阈值th1,说明以当前cu为整体做预测,便可得到较好的预测结果,此时可提前终止当前cu的划分过程;阈值th1通过大量实验获得,该值与编码量化参数qp和比特深度正相关。
[0022]
进一步的,所述步骤s4中,计算当前cu水平方向子块的纹理差异和垂直方向子块的纹理差异,是通过公式(2)-公式(4)计算得出的,对当前cu以水平方向从上往下分成四个子块,分别为h1、h2、h3和h4;这四个子块宽度等于当前cu的宽度,四个子块的高度等于当前cu高度的1/4;对当前cu以垂直方向从左往右分成四个子块,分别为v1、v2、v3和v4,这四个子块宽度等于当前cu宽度的1/4,四个子块的高度等于当前cu的高度;
[0023][0024][0025][0026]
在公式(2)中,diffh
12
、diffh
23
和diffh
34
分别表示当前cu水平方向上的相邻子块h1与h2、h2与h3、h3与h4之间的纹理差异;在公式(3)中,diffv
12
、diffv
23
和diffv
34
分别表示当前cu垂直方向上相邻子块v1与v2、v2与v3、v3与v4之间的纹理差异;通过公式(4)得到的diffh和diffv分别描述当前cu水平方向的纹理差异和垂直方向的纹理差异。
[0027]
进一步的,所述步骤s5中,通过比较两个方向纹理差异的大小,判断跳过某一方向
多叉树划分过程,然后在划分列表中删除该方向多叉树划分方式,具体为:如果diffh《diffv,跳过水平方向多叉树划分过程,在划分列表中删除水平二叉树hbt和水平三叉树htt;否则,跳过垂直方向多叉树划分过程,在划分列表中删除垂直二叉树vbt和垂直三叉树vtt划分方式。
[0028]
一种存储介质,该存储介质内部存储计算机程序,其特征在于,所述计算机程序被处理器读取时,执行上述任一项的基于空时域特性的vvc快速cu划分方法。
[0029]
本发明的优点及有益效果如下:
[0030]
本发明针对当前最新的国际视频编码标准h.266/vvc计算复杂度过高,编码时间过长的问题,提出了一种基于空时域特性的cu快速划分方法。首先利用视频的时域相关性,计算当前cu与通过运动估计后得到的其最佳匹配cu的绝对误差和(sad),评估当前cu的运动属性,通过sad值的大小决定当前cu是否继续下一深度划分,提前终止部分cu的所有划分过程;对需要向下一深度继续划分的cu,利用视频帧的空域特性,分析当前cu水平和垂直方向子块的纹理差异,判断其多叉树划分方向,提前跳过水平或垂直方向的多叉树划分过程。本发明可用于vvc帧间编码配置下的视频编码,在几乎不降低编码效率和编码质量的情况下,显著减少vvc的编码时间,可应用于视频会议和视频监控等对编码实时性要求较高的应用场景。
[0031]
本发明的创新主要在于权利2、权利3和权利4。采用权利要求4的方法,通过限定本发明的快速算法的使用条件,避免因使用快速算法导致编码效率下降过多的问题;采用权利要求5和权利要求6的方法,利用sad计算当前cu与通过运动估计得到的最佳匹配cu的像素差异,分析运动估计产生的误差,对于像素差异较小的cu提前终止划分过程,因此能显著加快视频帧的cu划分,尤其适合视频会议和视频监控这种摄像头固定且具有大片静止背景区域的应用场景。采用权利要求7和权利要求8的方法,针对纹理较复杂的cu,通过判断纹理的主方向,跳过另一个方向的多叉树划分过程。对于纹理主方向的判定,只采用了对应像素值相减的方式,因此所需额外的运算量很小,且逻辑简单,易于实现。目前已有的相关文献所提的cu快速划分算法,通常只利用了视频时域相关性,或只利用了编码帧的空域纹理特性,其加速效果有待提高。在利用视频帧间相关性上,有些文献采用了常用的帧差法,评估当前cu与参考帧同位cu的差异,却忽视了视频的运动属性,导致编码效率的下降。而本发明充分利用视频空域纹理方向特性和时域相关性,通过空时域特性相结合的方法,实现cu划分快速判决,因此本发明中的方法具有较强的创新性。
附图说明
[0032]
图1是本发明提供优选实施例一种基于空时域特性的vvc快速cu划分方法实现流程图;
[0033]
图2不同划分方向获得的子块:(a)水平方向;(b)垂直方向。
具体实施方式
[0034]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
[0035]
本发明解决上述技术问题的技术方案是:
[0036]
图1为本发明中一种基于空时域特性的vvc快速cu划分方法及存储介质,本发明所述方法包括以下步骤:
[0037]
s1、获取编码帧中当前待划分编码单元cu的编码信息,判断当前cu是否可以继续划分。如果当前cu划分深度小于设定的最大划分深度,则继续划分,将当前cu所有可行的划分模式加入到划分列表中,进入步骤s2;否则,进入步骤s6;
[0038]
s2、判断当前cu的尺寸和类型,如果当前cu为128
×
128或64
×
64的亮度cu,进入步骤s3,否则,进入步骤s5;
[0039]
s3、读取当前cu在参考帧中通过运动估计得到的最佳匹配cu的像素值,计算当前cu与最佳匹配cu的像素差异值,如果像素差异值小于阈值,进入步骤s6,否则进入步骤s4;
[0040]
s4、分别计算当前cu水平方向子块的纹理差异和垂直方向子块的纹理差异,通过比较这两个方向纹理差异的大小,判断是否跳过某一方向多叉树划分过程,然后在划分列表中删除该方向多叉树划分方式;
[0041]
s5、遍历划分列表中划分模式,返回s1进入下一深度的cu划分;
[0042]
s6、结束当前cu的划分过程。
[0043]
优选的,所述步骤s1中,当前待划分编码单元(cu)的编码信息包括划分深度、允许划分的最大深度、尺寸和通道等信息;
[0044]
优选的,所述步骤s1中,将当前cu所有可行的划分模式加入到划分列表中,指的是,vvc的划分模式包括四叉树(qt)、水平二叉树(hbt)、垂直二叉树(vbt)、水平三叉树(htt)和垂直三叉树(vtt)划分,在这5种划分模式中选择当前cu可以执行的划分模式,并加入到划分列表中;
[0045]
优选的,所述步骤s2中,为了平衡视频编码器的编码效率和加速效果,本发明仅对尺寸为128
×
128或64
×
64的亮度cu执行快速划分;
[0046]
优选的,所述步骤s3中,计算当前cu与最佳匹配cu的像素差异值,是通过计算当前cu与其最佳匹配cu的绝对误差和(sad)得到的,sad的计算公式如下:
[0047][0048]
其中,x和y分别为像素点在当前cu中的横坐标值和纵坐标值;w和h表示当前cu的宽和高,如果当前cu为正方形,w等于h;f(x,y)是当前cu中(x,y)处的亮度值;g(x,y)是最佳匹配cu中(x,y)处的亮度值。
[0049]
优选的,所述步骤s3中,如果像素差异值小于阈值,指的是如果绝对误差和(sad)小于阈值th1,说明以当前cu为整体做预测,便可得到较好的预测结果,此时可提前终止当前cu的划分过程。th1可通过大量实验获得,该值与编码量化参数(qp)和比特深度正相关。
[0050]
优选的,所述步骤s5中,计算当前cu水平方向子块的纹理差异和垂直方向子块的纹理差异,是通过公式(2)-公式(4)计算得出的。对当前cu以水平方向从上往下分成四个子块,分别为h1、h2、h3和h4。这四个子块宽度等于当前cu的宽度,四个子块的高度等于当前cu高度的1/4;对当前cu以垂直方向从左往右分成四个子块,分别为v1、v2、v3和v4,这四个子块宽度等于当前cu宽度的1/4,四个子块的高度等于当前cu的高度。
[0051][0052][0053][0054]
在公式(2)中,diffh
12
、diffh
23
和diffh
34
分别表示当前cu水平方向上的相邻子块h1与h2、h2与h3、h3与h4之间的纹理差异;在公式(3)中,diffv
12
、diffv
23
和diffv
34
分别表示当前cu垂直方向上相邻子块v1与v2、v2与v3、v3与v4之间的纹理差异。通过公式(4)得到的diffh和diffv分别描述当前cu水平方向的纹理差异和垂直方向的纹理差异。
[0055]
优选的,所述步骤s5中,通过比较两个方向纹理差异的大小,判断跳过某一方向多叉树划分过程,然后在划分列表中删除该方向多叉树划分方式,具体为:如果diffh《diffv,跳过水平方向多叉树划分过程,在划分列表中删除水平二叉树(hbt)和水平三叉树(htt);否则,跳过垂直方向多叉树划分过程,在划分列表中删除垂直二叉树(vbt)和垂直三叉树(vtt)划分方式。
[0056]
一种存储介质,该存储介质内部存储计算机程序,所述计算机程序被处理器读取时,执行上述任一项的方法。
[0057]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0058]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0059]
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
技术特征:1.一种基于空时域特性的vvc快速cu划分方法,其特征在于,包括以下步骤:s1、获取编码帧中当前待划分编码单元cu的编码信息,判断当前cu是否可以继续划分,如果当前cu划分深度小于设定的最大划分深度,则继续划分,将当前cu所有可行的划分模式加入到划分列表中,进入步骤s2;否则,进入步骤s6;s2、判断当前cu的尺寸和类型,如果当前cu为128
×
128或64
×
64的亮度cu,进入步骤s3,否则,进入步骤s5;s3、读取当前cu在参考帧中通过运动估计得到的最佳匹配cu的像素值,计算当前cu与最佳匹配cu的像素差异值,如果像素差异值小于阈值,进入步骤s6,否则进入步骤s4;s4、分别计算当前cu水平方向子块的纹理差异和垂直方向子块的纹理差异,通过比较这两个方向纹理差异的大小,判断是否跳过某一方向多叉树划分过程,然后在划分列表中删除该方向多叉树划分方式;s5、遍历划分列表中划分模式,返回s1进入下一深度的cu划分;s6、结束当前cu的划分过程。2.根据权利要求1所述的一种基于空时域特性的vvc快速cu划分方法,其特征在于,所述步骤s1中,当前待划分编码单元cu的编码信息包括划分深度、允许划分的最大深度、尺寸和通道在内的信息。3.根据权利要求1或2所述的一种基于空时域特性的vvc快速cu划分方法,其特征在于,所述步骤s1中,将当前cu所有可行的划分模式加入到划分列表中指的是:vvc的划分模式包括四叉树qt、水平二叉树hbt、垂直二叉树vbt、水平三叉树htt和垂直三叉树vtt划分,在这5种划分模式中选择当前cu可以执行的划分模式,并加入到划分列表中。4.根据权利要求1所述的一种基于空时域特性的vvc快速cu划分方法,其特征在于,所述步骤s3中,计算当前cu与最佳匹配cu的像素差异值,具体是通过计算当前cu与其最佳匹配cu的绝对误差和sad得到的,sad的计算公式如下:其中,x和y分别为像素点在当前cu中的横坐标值和纵坐标值;w和h分别表示当前cu的宽和高,如果当前cu为正方形,w等于h;f(x,y)是当前cu中(x,y)处的亮度值;g(x,y)是最佳匹配cu中(x,y)处的亮度值。5.根据权利要求4所述的一种基于空时域特性的vvc快速cu划分方法,其特征在于,所述步骤s3中,如果像素差异值小于阈值,指的是如果绝对误差和(sad)小于阈值th1,说明以当前cu为整体做预测,便可得到较好的预测结果,此时可提前终止当前cu的划分过程;阈值th1通过大量实验获得,该值与编码量化参数qp和比特深度正相关。6.根据权利要求4所述的一种基于空时域特性的vvc快速cu划分方法,其特征在于,所述步骤s4中,计算当前cu水平方向子块的纹理差异和垂直方向子块的纹理差异,是通过公式(2)-公式(4)计算得出的,对当前cu以水平方向从上往下分成四个子块,分别为h1、h2、h3和h4;这四个子块宽度等于当前cu的宽度,四个子块的高度等于当前cu高度的1/4;对当前cu以垂直方向从左往右分成四个子块,分别为v1、v2、v3和v4,这四个子块宽度等于当前cu宽度的1/4,四个子块的高度等于当前cu的高度;
在公式(2)中,diffh
12
、diffh
23
和diffh
34
分别表示当前cu水平方向上的相邻子块h1与h2、h2与h3、h3与h4之间的纹理差异;在公式(3)中,diffv
12
、diffv
23
和diffv
34
分别表示当前cu垂直方向上相邻子块v1与v2、v2与v3、v3与v4之间的纹理差异;通过公式(4)得到的diffh和diffv分别描述当前cu水平方向的纹理差异和垂直方向的纹理差异。7.根据权利要求6所述的一种基于空时域特性的vvc快速cu划分方法,其特征在于,所述步骤s5中,通过比较两个方向纹理差异的大小,判断跳过某一方向多叉树划分过程,然后在划分列表中删除该方向多叉树划分方式,具体为:如果diffh<diffv,跳过水平方向多叉树划分过程,在划分列表中删除水平二叉树hbt和水平三叉树htt;否则,跳过垂直方向多叉树划分过程,在划分列表中删除垂直二叉树vbt和垂直三叉树vtt划分方式。8.一种存储介质,该存储介质内部存储计算机程序,其特征在于,所述计算机程序被处理器读取时,执行上述权利要求1~7任一项的基于空时域特性的vvc快速cu划分方法。
技术总结本发明请求保护一种基于空时域特性的VVC快速CU划分方法及存储介质,属于视频编码领域,包括以下步骤:利用视频时域相关性,计算当前CU与通过运动估计后得到的其最佳匹配CU的绝对误差和(SAD),通过SAD值的大小决定当前CU是否继续下一深度划分,提前终止部分CU的所有划分过程;然后,对需向下一深度继续划分的CU,利用视频帧空域特性,分析当前CU水平和垂直方向子块的纹理差异,判断其多叉树划分方向,提前跳过水平或垂直方向的多叉树划分过程。本发明可用于VVC帧间编码配置下的编码,在几乎不降低编码效率和编码质量的情况下,显著减少VVC的编码时间,可应用于视频会议和视频监控等对编码实时性要求较高的应用场景。等对编码实时性要求较高的应用场景。等对编码实时性要求较高的应用场景。
技术研发人员:李强 李亚 孟慧 明艳 陈燕辉 董阳
受保护的技术使用者:重庆邮电大学
技术研发日:2022.07.15
技术公布日:2022/11/1