基于区域方向性离差和的视频帧内快速算法
技术领域
本发明涉及图像与视频处理领域,更具体而言,涉及在高效视频编码 (HEVC)中对虚拟现实360度视频帧进行编码单元(CU)划分的方法、装置和计算机程序产品。
背景技术
虚拟现实视频是用专业摄像机捕捉整个场景的图像信息,视频由软件拼接,由专用设备播放。它还为观看者提供了各种操作图像的功能,可以放大、缩小和向各个方向移动来观看场景,从而模拟和再现场景的真实环境。在虚拟现实系统中,多个摄像机捕获360度场景并将所有场景拼接成球形视频,从而创建360度视频。当我们对360度视频进行编码时,我们必须将球形视频投影到平面视频中以适应广泛使用的编码标准,例如H.264 /AVC和H.265/高效视频编码(HEVC)。多种投影格式,如等矩形投影(ERP),调整的等面积(AEP),立方体贴图(CMP),等角立方图(EAC),截断方形金字塔(TSP),紧凑八面体(COHP),紧凑二十面体(CISP)已被提议。在这些格式中,ERP是一种简单且广泛使用的格式。它将经线映射到恒定间距的垂直线,将纬线映射到恒定间距的水平线,进而将球形视频转换为平面视频。然而,ERP投影格式导致拉伸和失真,并且两极区域特别严重,导致冗余度增加和编码效率降低。在本研究中,我们使用ERP投影格式来说明我们提出的算法。
2010年4月,两大国际视频编码标准组织VCEG和MPEG成立视频压缩联合小组JCT-VC(Joint collaborative Team on Video Coding),一同开发高效视频编码HEVC(Highefficiency video coding)标准,其也称为H.265。 HEVC标准主要目标是与上一代标准H.264/AVC实现大幅度的编码效率的提高,尤其是针对高分辨率视频序列。其目标是在相同视频质量(PSNR) 下码率降为H.264标准的50%。
就目前阶段,HEVC依然沿用H.264就开始采用的混合编码框架,如图1所示。帧间和帧内预测编码:消除时间域和空间域的相关性。变换编码:对残差进行变换编码以消除空间相关性。熵编码:消除统计上的冗余度。HEVC将在混合编码框架内,着力研究新的编码工具或技术,提高视频压缩效率。
目前,JCT-VC组织的讨论中已经提出的许多编码的新特性,有可能会加入HEVC标准中,各次讨论的具体文献可以从http://wftp3.itu.int获得。
HEVC标准的第一版已经在2013年的一月份完成。并于2013年4月、 2014年10月和2015年4月相继发布的3个版本,这些版本能够很容易地从网络上获得,并且本申请将上述HEVC标准的三个版本并入本说明书中作为本发明的背景技术。
HEVC提出了全新的语法单元:编码单元(CU)是进行预测、变换、量化和熵编码的基本单元,预测单元(PU)是进行帧内帧间预测的基本单元,变换单元(TU)是进行变换和量化的基本单元。
如图1所示,在HEVC中,可以进行帧内预测模式和帧间预测模式的切换。在帧内预测模式和帧间预测模式中,HEVC都采用编码树单元(CTU) 的编码结构,CTU是HEVC编解码的基本处理单元。CTU由1个亮度CTB、 2个色度CTB和相应的语法元素组成。图2显示了在一个LCU(最大编码单元)编码后的CTU结构。在HEVC中,LCU可以只包含一个编码单元 (CU),也可以使用CTU四叉树结构划分出为不同大小的CU。
HEVC中有四种大小CU,大小分别为:64x64、32x32、16x16和8x8。 CU块越小,其在CTU树中位置越深。当CU为64x64、32x32和16x16时称为2Nx2N模式(表示可以划分为更小的CU),当CU为8x8时称为NxN 模式(表示不可以进行进一步划分)。对于帧内预测,CU被分成两个 PartMode(2Nx2N和NxN),这取决于它是否可以被分成更小的CU。尺寸为64x64、32x32和16x16的CU属于2N×2N,尺寸为8×8的CU属于N×N。
在HEVC中,PU进行帧内帧间预测的基本单元,PU的划分是以CU 为基础的,具有五种规则大小64x64、32x32、16x16、8x8和4x4。更具体地,PU尺寸基于PartMode:对于2N×2N的PartMode PU尺寸与CU相同,对于N×N的PartMode CU可以被划分为四个4×4子PU。对于2N*2N的CU模式,帧内预测PU的可选模式包括2N*2N和N*N,帧间预测PU的可选模式有8种,包括4种对称模式(2N*2N,N*2N,2N*N,N*N)和4 种非对称模式(2N*nU,2N*nD,nL*2N,nR*2N),其中,2N*nU和2N*nD 分别以上下1∶3、3∶1的比例划分,nL*2N和nR*2N分别以左右1∶3、3∶1的比例划分。
在HEVC中,仍然继续使用H.264/AVC的拉格朗日率失真优化(RDO) 进行模式选择,为每一个帧内模式计算其RDO:
J=D+λR
其中,J为拉格朗日代价(亦即RD-cost),D表示当前帧内模式的失真, R表示编码当前预测模式下所有信息所需的比特数,λ为拉格朗日因子。其中D通常使用绝对哈达玛变换差之和(SATD)来实现。
处理一帧视频图像需要首先将其划分成多个LCU(64x64),然后依次编码每个LCU。每个LCU依次递归划分,其通过计算当前深度的RD-cost 判定是否继续划分。一个LCU最小可划分至8x8大小的单元,如图2所示。编码器通过比较深度的RD-cost值判定是否继续划分,如果当前深度内的4 个子CU的编码代价总和大于当前CU,则不继续划分;反之则继续划分,直至划分结束。
本领域技术人员容易理解,由于CTU是对LCU进行CU划分的树状编码结构,CTU中的CU划分方式是以LCU开始的,因此在本领域中这两个名词经常可交换地使用。
在帧内预测中,每个PU使用总共35种预测模式。使用粗略模式决策 (RMD),我们可以获得64x64、32x32和16x16块的三种候选模式以及8x8 和4x4块的八种候选模式。通过合并来自相邻块的最可能模式(MPM)来获得每个PU大小的最佳候选列表。然后,通过RDO来选择当前PU的最佳帧内预测模式。当完成当前CU中包括的所有PU的帧内预测时,完成当前CU的帧内预测。通过当前CU的RD-cost与当前CU及其4个子CU的四个子CU的总RD-cost之间的比较来选择具有较小RD-cost的次优CU内部预测完成。当完成所有CU分区时,完成当前CTU帧内预测。对于HEVC,当对LCU进行编码时,应当执行85个CU(一个64×64 CU,四个32×32CU,十六个16×16 CU和六十四个8×8 CU)的帧内预测。当CU被编码时,应当执行一个PU或四个子PU的帧内预测。大量CU和PU导致帧内预测的高复杂性。
WMSE是为评价360度视频质量而提出的一种质量评估指标。360度视频是一种球形视频,是360度视频和传统视频之间的最大差异。必须将 360度视频投影到平面视频中,以根据HEVC标准对360度视频进行编码。虽然投影和传统视频是平面视频,但投影视频会导致失真并延伸到球形视频。因此,传统视频的客观质量评估度量(PSNR)不适合于投影视频。加权球面(WS)-PSNR被提出作为投影视频的客观质量评估度量。WS-PSNR 的好处是改进了用于360度视频的PSNR计算失真方法,用WMSE取代了 MSE:
WMSE=weight(i,j)×MSE(i,j) (2)
其中height和width是视频的尺寸;y(i,j)和y′(i,j)分别是原始和重建的像素;weight(i,j)是360度视频投影视频的权重;并且各种投影格式的权重是不同的。公式3显示了ERP投影的权重的计算方法。对于360度视频,WMSE 比MSE更合理。WMSE为投影视频设计权重,投影视频在失真和拉伸区域的权重较小,反之亦然。WS-PSNR被联合视频探索团队(JVET)认可为360度视频质量的客观质量评估指标。
图3显示了ERP权重分布。颜色越深,越接近0;颜色越浅,越接近1。 Region0定义为两极附近区域,权重小;Region1定义为赤道附近的区域,权重大。
根据权重,可以发现WMSE不仅可以表示像MSE这样的某个区域的失真,还可以表示360度视频某个区域失真的重要程度。例如,如果Region0 和Region1中的CU具有相同的尺寸和MSE,则Region1中的CU对视频质量的影响大于Region0中的CU。
但是,目前基于图3的权重的编码处理过于复杂,不利于CU分割。另外,常规的基于RDO的CU分割存在进一步改进的空间。因此,存在针对 360度视频的ERP的不同区域进行不同处理的需求,以能够充分利用不同区域的不同特性来进行有区别的CU分割。
发明内容
本发明提出了用于在高效视频编码(HEVC)中的方法、装置、编解码器以及处理器可读存储介质。更具体而言,本发明用于在高效视频编码 (HEVC)中对虚拟现实360度视频帧进行编码单元(CU)划分的方法。
本发明考虑到ERP投影格式下的360度视频不同区域的水平拉伸程度不同这一特性,提出了一种基于区域方向性离差和的CU快速划分算法。根据不同区域的水平拉伸程度不同,发现了不同区域当前编码块与其相邻块之间的深度关系,将视频帧划分为三种区域。不同区域采用不同方向的离差和进行计算,并定义为一种新的指标命名为区域方向性离差和,以表征不同区域当前块的图像内容复杂度。在提出的算法中,每个区域都需要确定最优的快速划分阈值,以达到提前终止划分CU的目的。
换言之,本文针对ERP进行了与现有技术不同的针对ERP的区域划分方法。在另一方面,本文提出了与CU的纹理复杂度相关联的区域方向性离差和的概念,并将其应用于CU划分。在进一步的方面,针对ERP的不同区域采用不同的区域方向性离差和计算方法,以实现快速的提前划分终止或下一深度划分判断。
在一个方面,提出了一种在高效视频编码(HEVC)中对虚拟现实360 度视频帧进行编码单元(CU)划分的方法,所述方法包括:
基于第一区域划分阈值和第二区域划分阈值,判断当前编码树单元 (CTU)的当前LCU区域是第一区域、第二区域和第三区域中的哪个区域,其中,当前帧被划分为所述第一区域、所述第二区域和所述第三区域;
对于当前LCU,通过以下方式进行CU划分:
基于所述当前CTU,来计算当前CU的方向性离差和;
如果所计算的当前CU的方向性离差和大于用于所述当前CTU区域的第一阈值,则进行下一深度划分;或者
如果所计算的当前CU的方向性离差和小于用于所述当前CTU区域的第二阈值,则提前终止划分;或者
如果所计算的当前CU的方向性离差和小于用于所述当前CTU区域的第一阈值并大于用于所述当前CTU区域的第二阈值,则计算下一划分深度的RDcost和当前CU的RDcost,并基于所计算的下一划分深度的 RDcost是否大于当前CU的RDcost,来决定是否进行下一深度划分;
其中:
针对所述第一区域,基于水平方向离差和以及垂直方向离差和,并利用特定于所述第一区域的第一组加权系数,来计算用于所述第一区域的方向性离差和;
针对所述第二区域,基于上水平方向离差和、下水平方向离差和以及垂直方向离差和,并利用特定于所述第二区域的第二组加权系数,来计算用于所述第二区域的方向性离差和;
针对所述第三区域,基于水平方向离差和以及垂直方向离差和,并利用特定于所述第三区域的第三组加权系数,来计算用于所述第三区域的方向性离差和。
在进一步的方面中,所述第一区域是两极区域,第三区域是赤道区域,所述第二区域是夹在所述第一区域与所述第二区域之间的中纬度区域。
在进一步的方面中,所述第一区域、所述第二区域和所述第三区域是基于采用如下公式计算的权重w来计算的:
其中,N为CTU高度,i和j为像素坐标。
在进一步的方面中,基于所计算的权重w与所述第一区域阈值或所述第二区域阈值的比较来划分所述第一区域、所述第二区域和所述第三区域。
在进一步的方面中,所述第一组加权系数不同于所述第三组加权系数。
在进一步的方面中,所述第一阈值对应于纹理复杂区,而所述第二阈值对应于纹理简单区域。
根据另一方面,提出了一种高效视频编码(HEVC)硬件编码器,所述编码器被配置为通过如上所述的方法的步骤来对虚拟现实360度视频帧进行编码单元(CU)划分。
根据另一方面,提出了一种对使用所述的方法或所述的编码器进行编码的360视频流进行解码的解码器。
根据另一方面,提出了一种用于执行所述的方法的计算机程序产品。根据进一步的方面,该计算机程序产品具有非暂时性存储介质,其上存储有计算机代码/指令,当其被处理器执行时,可以实现本文所述的各种操作。
根据另一方面,提出了一种可用于视频编解码的设备,该设备包括:
一个或多个处理器;
存储器,其中存储有计算机代码,所述计算机代码当由所述处理器执行时,实现所述的方法。
附图说明
图1示出了HEVC的编码器框图的一个实施例。
图2示出了HEVC中的编码树(CTU)的示意图。
图3示出了根据本发明的一个实施例的ERP投影的权重分布图。
图4示出了根据本发明的一个实施例的对ERP格式图像进行区域划分的非限定性实例。
图5示出了根据本发明的一个实施例的分别用于计算区域方向性离差和的水平方向(Horizontal)、垂直方向(Vertical)、上水平方向(Up Horizontal) 和下水平方向(DownHorizontal)的非限定性实例。
图6示出了根据本发明的一个实施例的一种在高效视频编码(HEVC) 中对虚拟现实360度视频帧进行编码单元(CU)划分的方法的流程图。
图7示出了用于实现本发明的一个实施例的编码方法的设备的示意图。
具体实施方式
现在参考附图来描述各种方案。在以下描述中,为了进行解释,阐述了多个具体细节以便提供对一个或多个方案的透彻理解。然而,显然,在没有这些具体细节的情况下也能够实现这些方案。
如在本申请中所使用的,术语“组件”、“模块”、“系统”等等旨在指代与计算机相关的实体,例如但不限于,硬件、固件、硬件和软件的组合、软件,或者是执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行体(executable)、执行线程、程序、和/ 或计算机。举例而言,运行在计算设备上的应用程序和该计算设备都可以是组件。一个或多个组件可以位于执行进程和/或者执行线程内,并且组件可以位于一台计算机上和/或者分布在两台或更多台计算机上。另外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质执行。组件可以借助于本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号,例如,来自于借助于信号与本地系统、分布式系统中的另一组件交互和/或者与在诸如因特网之类的网络上借助于信号与其他系统交互的一个组件的数据。
本发明针对HEVC中在虚拟现实视频进行编码时进行CU划分提出了新颖的算法。但是,本领域技术人员容易理解,本发明同样适用于对其他类型的视频帧进行编码。另外,本领域技术人员很容易理解,本发明是主要针对亮度分量的,而不用于色度分量。
在360度视频编码中,球形视频被投影为二维矩形格式。因为ERP这种投影方式映射关系简单,大多数测试序列都是以ERP格式存储并进行视频编码压缩的。对于这种投影方式而言,从赤道区域到两极区域水平拉伸的程度越来越严重。根据这一特性,本文首先统计了当前编码CU与相邻 CU之间的深度关系,然后依据WS-PSNR的权重划分出不同的区域,最后计算不同方向的离差和得出阈值用于CU的提前终止划分。
首先,基于图4来说明本发明所提出的新的360度视频区域划分。
如上所述地,目前已经提出了使用WS-PSNR来计算ERP投影格式视频帧的权重以表明不同纬度区域的失真。但是现有技术中主要通过直接使用WS-PSNR来连续地计算不同纬度区域的失真,或者简单地将ERP投影格式视频帧划分为两极区域和赤道区域两个部分来分别处理。这两种方法或者计算量过大,或者考虑问题过于简单,因此都是存在一定缺陷的。
在本发明中,提出了将图像划分为ERP投影格式视频帧划分为三个区域的新颖划分方法,这三个区域分别是两极区域、中纬度区域和赤道区域,如图4所示。
为了
其中,N为CTU高度,i和j为像素坐标。
区域判定算法如下:以LCU为单元,计算一列中每个LCU内所有权重的和并取平均,记作w0。以w0作为每个LCU的权重值。实验得出w0取0.3和0.8为三种区域的界值,即当0<w0<0.3时,判定为两极区域;当0.3<w0<0.8时,判定为中纬度区域;当0.8<w0<1时,判定为赤道区域。
接下来,针对三个区域中的每个区域,我们首先统计每个8x8CU块和其相邻的上方块、左上块和左方块的深度。统计深度的在于,如果在某个方向上相邻CU与当前CU深度相同的数量较多,则说明这个方向上的CU 对于当前CU划分的参考意义较大。这里我们选取测试序列Gaslamp的第一帧作为样本,该序列是8K视频,它的一帧有524288个8x8大小的CU 块,样本的数量足够反映出在不同区域中不同方向上的相邻CU和当前CU 的深度关系。这里我们先假定将图像划分为两极区域、中纬度区域和赤道区域。每个区域不同方向的相邻CU和当前CU深度相同的数量如表1所示。
表1 不同方向的相邻CU和当前CU深度相同的数量
区域 |
左方CU |
左上方CU |
上方CU |
两极区域 |
440402 |
377487 |
424673 |
中纬度区域 |
367001 |
435159 |
393216 |
赤道区域 |
398459 |
408944 |
419430 |
从表中我们可以看到不同区域中当前CU与相邻CU的深度关系有着不同的特征。这里我们引入深度匹配率(当前CU和相邻CU在每个深度相同的概率)来更好地描述这一特征。
从统计结果可以看出,两极区域左侧相邻块与当前块的深度匹配率最高,上方相邻块次之;中纬度区域左上相邻块与当前块的深度匹配率最高,上方相邻块次之;赤道区域左侧相邻块、上方相邻块与当前块的深度匹配率基本相同,且均比左上相邻块高。
以8x8的CU单元统计当前CU与相邻CU的深度匹配率,发现不同区域内每个CU与相邻CU的关系,而CU单元的划分是从64x64开始依次递减进行划分直到8x8的CU为止。因此可以将深度匹配率这一指标用于CU 的快速划分CU,得出不同区域当前8x8CU与相邻CU的深度匹配率后,其可以用于将CU从64x64的最大块划分到8x8的最小块,提高编码效率。
在另一方面,本发明还提出了与CU的纹理复杂度相关联的区域方向性离差和的概念。
在进行CU划分时,影响CU划分的一个重要图像特征在于图像的纹理信息。容易理解,视频帧的纹理越复杂,则需要对视频帧进行CU划分的深度就应该越大。
目前能够较好地反映图像特征的方法是提取其中的纹理信息,它可以反映出图像的同质性,并且能够体现出图像中缓慢变化或周期性变化的排列属性。现在被广泛使用的用于纹理特征提取的方法主要有LBP (localbinary pattern,局部二值模式)、灰度共生矩阵、灰度-梯度共生矩阵和 Gabor小波纹理。这些方法具有旋转不变性和灰度不变性的优点,但是其只能覆盖固定范围内的小区域,不能满足不同尺寸和频率纹理的需要,不能很好地适应不同大小的编码块。传统的计算纹理复杂度使用方差作为判断依据。
考虑到方差的计算复杂度较高,本文将方差的计算进行修改,引入一种新的计算图像纹理变化的指标,命名为区域方向性离差和(SD)。它可以表征随机变量值(例如一组数据)相对于中心值(通常为数学期望值)偏离或扩散的程度。计算SD可以表征图像在不同方向上的纹理变化趋势。因此,可以理解SD是与视频帧的纹理紧密相关联的。
由于360度视频不同区域当前CU与其相邻CU深度关系的不同,我们从4个方向计算区域方向性离差和:水平方向(Horizontal)、垂直方向 (Vertical)、上水平方向(UpHorizontal)和下水平方向(Down Horizontal),其中上水平方向和下水平方向与水平方向的夹角接近30度。4种计算方向如图5所示,4种方向上的区域方向性离差和分别用SDHor,SDVer,SDUH和SDDH表示。
为了简单起见,本文基于4*4像素块来论述的区域方向性离差和计算。在实际应用中则是扩展到从64x64到8x8的各种像素块大小。
垂直方向SD的计算采用图5(a)所示的4个像素条,4x4块中SDVer值计算如下:
水平方向SD的计算采用图5(b)所示的4个像素条,4x4块中SDHor值计算如下:
下水平方向SD的计算采用如图5(c)所示的3个像素条,取每个像素条的中点为原点,建立坐标轴,4x4块中SDDH值计算如下:
上水平方向SD的计算采用如图5(d)所示的3个像素条,同理取每个像素条的中点为原点,建立坐标轴,4x4块中SDUH值计算如下:
在公式(4)-(16)中,N表示CU的大小,这里它的值为4,但是在实际应用中则为8、16、32和64或更高值;P(x,y)表示CU中第x行第 y列的像素值;p代表不同方向需要计算的像素条的数量,这里它的值为4,但是在实际应用中则为8、16、32和64或更高值;n在像素条中遍历的像素数,这里它的值为4,但是在实际应用中则为8、16、32和64或更高值。
区域方向性离差和可以反映出图像在不同方向上的纹理变化,它的值越小,则说明图像在这一方向的纹理越平滑;它的值越大,说明在这一方向上的纹理变化越剧烈。
接下来,由于360度视频不同区域当前CU与其相邻CU深度关系的不同,本发明提出了针对不同的区域采用不同类型的区域方向性离差和。
对于两极区域,由于编码CU与左方CU的深度匹配率最高,上方CU 次之,因此该区域拟采用权重值较大的SDHor和权重值较小的SDVer进行计算。两极区域的方向性离差和SDp的计算公式如下:
SDp=α1*SDHor+β1*SDVer (17)
公式(17)中水平和垂直方向所占权重值α1、β1的选取要体现α1>β1,以便能够体现编码CU与左方CU的深度匹配率最高的事实。在一个实例中,α1取0.9、β1取0.1的折衷值。
对于中纬度区域,由于编码CU与左上方块的深度匹配率最高,上方块次之,因此引入上水平方向离差和SDUH、下水平方向离差和SDDH以及垂直方向离差和SDVer进行计算。中纬度区域的方向性离差和SDm的计算公式如下:
SDm=α2*SDDH+β2*SDUH+γ2*SDVer (18)
公式(18)中各方向复杂度均差所占的权重值α2、β2和γ2的选取要体现上述深度匹配率,从而选取的折衷值依次为0.4、0.4和0.2,其减少了较多的编码时间,且造成较低的图像失真度。
对于赤道区域,由于编码CU与左方块、上方块的深度匹配率基本相同,左上方块最低,因此选用水平方向离差和SDHor和垂直方向离差和SDVer进行计算。赤道区域的方向性离差和SDe的计算公式如下:
SDe=α3*SDHor+β3*SDVer (19)
上式(19)中水平和垂直方向所占的权重值α3和β3,理论上两者所占权重值应该相同,但是在大量实验后,发现α3取0.6、β3取0.4相比α3取 0.5、β3取0.5减少较多的编码时间,并且图像失真度较小,因此选取这两个值作为两方向的权重值。
最后,本文提出的算法需要依据CTU所在区域判定计算不同方向的复杂度均差。首先,依据所计算的权重值w判定CTU所在的区域,三种不同的区域分别用到水平、垂直、上水平和下水平方向中的若干种。然后,针对每个CU计算方向性离差和,并将其与与该区域相关联的两个阈值S和R 进行比较。若方向性离差和小于S,则说明该CU图像特征较简单,CU提前终止划分;若方向性离差和大于S,继续与R进行比较,若方向性离差和大于R,则说明该CU图像特征较复杂,直接进行下一深度的划分;若方向性离差和小于R,则无法判断CU是否需要划分,则按照传统编码方法基于RDcost进行是否进行下一深度划分的判定。
图6示出了根据本发明的一个实施例的一种在高效视频编码(HEVC) 中对虚拟现实360度视频帧进行编码单元(CU)划分的方法的流程图。
在步骤601中,确定当前编码树单元(CTU),其包括确定要对当前帧进行CU编码参数的各种参数,CTU的确定在HEVC标准中有着明确的记载,在此不再赘述。
在步骤603中,基于第一区域划分阈值和第二区域划分阈值,判断当前CTU的当前LCU区域是第一区域、第二区域和第三区域中的哪个区域,其中,当前帧被划分为所述第一区域、所述第二区域和所述第三区域。在一个实施例中,在虚拟现实360度视频帧的ERP格式中,第一区域是两极区域,第三区域是赤道区域,第二区域是夹在第一区域与第二区域之间的中纬度区域。所述第一区域、所述第二区域和所述第三区域是基于采用如上公式(4)计算的权重w来确定的。以LCU为单元,计算一列中每个LCU 内所有权重的和并取平均,记作w0。以w0作为每个LCU的权重值。在一个实施例中,通过将所计算的权重w0与第一区域划分阈值和第二区域划分阈值(例如,0.3和0.8、等等)进行比较来判断CTU所在区域。例如,第一区域划分阈值和第二区域划分阈值可以分别为0.3和0.8,当0<w0<0.3 时,判定为两极区域;当0.3<w0<0.8时,判定为中纬度区域;当0.8<w0<1时,判定为赤道区域。
对于当前CTU,采用从LCU大小开始,从深度0到深度3逐层进行 CU划分判断。亦即,通过以下方式进行当前CU划分判断。
在步骤605中,基于当前CTU,来计算当前CU的方向性离差和。在一个具体实施例中,针对第一区域,基于水平方向离差和以及垂直方向离差和,并利用特定于第一区域的第一组加权系数,来计算用于第一区域的方向性离差和;针对第二区域,基于上水平方向离差和、下水平方向离差和以及垂直方向离差和,并利用特定于第二区域的第二组加权系数,来计算用于第二区域的方向性离差和;针对第三区域,基于水平方向离差和以及垂直方向离差和,并利用特定于第三区域的第三组加权系数,来计算用于第三区域的方向性离差和。
如上所述的公式(5)-(16)给出了计算从4个方向计算区域方向性离差和的一个具体实施例:水平方向(Horizontal)、垂直方向(Vertical)、上水平方向(Up Horizontal)和下水平方向(Down Horizontal)。
如上所述的公式(17)-(19)给出了分别针对第一、第二和第三区域,使用不同的方向,基于不同的系数来该区域的计算区域方向性离差和的一个具体实例。
在步骤607中,如果所计算的当前CU的方向性离差和大于用于当前 CTU区域的第一阈值,则进行下一深度划分。在一个实施例中,所述第一阈值对应于纹理复杂区。大于第一阈值表示当前CU纹理复杂,需要进行下一深度划分。
或者,在步骤609中,如果所计算的当前CU的方向性离差和小于用于当前CTU区域的第二阈值,则提前终止划分。在一个实施例中,第二阈值对应于纹理简单区域。小于第二阈值表示当前CU纹理简单,无需进行下一深度划分,可以提前终止划分。
或者,在步骤611中,如果所计算的当前CU的方向性离差和小于用于所述当前CTU区域的第一阈值并大于用于所述当前CTU区域的第二阈值,则计算下一划分深度的RDcost和当前CU的RDcost,并基于所计算的下一划分深度的RDcost是否大于当前CU的RDcost,来决定是否进行下一深度划分。该情况表示采用本发明所提出的方向性离差和的CU度量可能无法正确地判断CU是否需要划分,则按照传统编码方法基于RDcost进行是否进行下一深度划分的判定。
图7中示出了一种可用于视频编解码的设备,该设备包括:处理器和存储器,在所述存储器中包括用于实现本发明的各种方法的处理器可执行代码。
根据另一方面,本公开内容还可以涉及用于实现上述编码方法的编码器。该编码器可以是专用硬件。
根据另一方面,本公开内容还可以涉及对应的对编码后的视频流进行解码的解码器。
根据另一方面,本公开内容还可以涉及执行本文所述方法的计算机程序产品。根据进一步的方面,该计算机程序产品具有非暂时性存储介质,其上存储有计算机代码/指令,当其被处理器执行时,可以实现本文所述的各种操作。
当用硬件实现时,视频编码器可以用通用处理器、数字信号处理器 (DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者设计为执行本文所述功能的其任意组合,来实现或执行。通用处理器可以是微处理器,但是可替换地,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器的组合、一个或多个微处理器与DSP内核的组合或者任何其它此种结构。另外,至少一个处理器可以包括可操作以执行上述的一个或多个步骤和/或操作的一个或多个模块。
当用ASIC、FPGA等硬件电路来实现视频编码器时,其可以包括被配置为执行各种功能的各种电路块。本领域技术人员可以根据施加在整个系统上的各种约束条件来以各种方式设计和实现这些电路,来实现本发明所公开的各种功能。
尽管前述公开文件论述了示例性方案和/或实施例,但应注意,在不背离由权利要求书定义的描述的方案和/或实施例的范围的情况下,可以在此做出许多变化和修改。而且,尽管以单数形式描述或要求的所述方案和/或实施例的要素,但也可以设想复数的情况,除非明确表示了限于单数。另外,任意方案和/或实施例的全部或部分都可以与任意其它方案和/或实施例的全部或部分结合使用,除非表明了有所不同。