视频编码方法、视频解码方法、视频编码设备、视频解码设备以及程序与流程

文档序号:15743130发布日期:2018-10-23 22:37阅读:201来源:国知局
视频编码方法、视频解码方法、视频编码设备、视频解码设备以及程序与流程

本发明涉及一种使用基于四叉树和二叉树的块划分结构的视频编码技术。



背景技术:

在非专利文献1中描述的视频编码系统中,数字化视频的每个帧被分割成编码树单元(CTU),并且按照光栅扫描的顺序对每个CTU编码。

在四叉树结构中,每个CTU被分割成编码单元(CU)并且被编码。每个CU被分割成预测单元(PU)并且被预测编码。预测编码包括帧内预测(intra prediction)和帧间预测(inter-frame prediction)。

在四叉树结构中,每个CU的预测误差被分割成变换单元(TU)并且基于频率变换而被变换编码。

最大尺寸的CU被称为最大CU(最大编码单元:LCU),并且最小尺寸的CU被称为最小CU(最小编码单元:SCU)。LCU尺寸和CTU尺寸相同。

下面描述帧内预测和帧间预测、以及CTU、CU、PU和TU的信号通知。

帧内预测是用于从与待编码帧具有相同显示时间的重构图像中生成预测图像的预测。非专利文献1定义了如图9所示的33种角度帧内预测。在角度帧内预测中,使用靠近待编码块的重构像素以用于在33个方向中的任何一个方向上外插,以生成帧内预测信号。除了33种角度帧内预测之外,非专利文献1还定义了用于对靠近待编码块的重构像素平均的DC帧内预测,以及用于对靠近待编码块的重构像素线性插值的平面帧内预测。下文中,基于帧内预测而被编码的CU被称为帧内CU。

帧间预测是用于从与待编码帧的显示时间不同的重构图像(参考图片)中生成预测图像的预测。下文中,帧间预测被称为帧间预测(inter prediction)。图10是描绘了帧间预测的示例的说明图。运动向量MV=(mvx,mvy)指示参考图片的重构图像块相对于待编码块的平移量。在帧间预测中,基于参考图片的重构图像块来生成帧间预测信号(如有必要,使用像素插值)。下文中,基于帧间预测而被编码的CU被称为“帧间CU”。

编码后的仅包括帧内CU的帧被称为“I帧”(或“I图片”)。编码后的不仅包括帧内CU还包括帧间CU的帧被称为“P帧”(或“P图片”)。编码后的包括帧间CU、且每个帧间CU使用不止一个参考图片而是同时使用两个参考图片以用于块的帧间预测的帧被称为“B帧”(或“B图片”)。

跳过模式是指:基于下面提到的PU划分形状的2N×2N形状和下面提到的变换量化值不存在,通过帧预测来对待处理的CU预测编码。每个CU是否为跳过模式由非专利文献1中描述的skip_flag语法来信号通知。

每个不为跳过模式的CU是帧内CU还是帧间CU由非专利文献1中描述的pred_mode_flag语法来信号通知。

图11是描绘了在帧的空间分辨率为通用中间格式(CIF)并且CTU尺寸为64的情况下、帧t的CTU划分的示例和帧t中包括的第8个CTU(CTU8)的CU划分的示例的说明图。

图12是描绘了与CTU8的CU划分示例相对应的四叉树结构的说明图。每个CTU的四叉树结构、即CU划分形状,由非专利文献1中描述的cu_split_flag语法来信号通知。

图13是描绘了CU的PU划分形状的说明图。在CU是帧内CU的情况下,可选择方形PU划分。在CU是帧间CU的情况下,不仅可选择方形PU划分,还可选择矩形PU划分。每个CU的PU划分形状由非专利文献1中描述的part_mode语法来信号通知。

图14是描绘了CU的TU划分的示例的说明图。在该图的上半部分中描绘了具有2N×2N的PU划分形状的帧内CU的TU划分的示例。在CU是帧内CU的情况下,四叉树的根位于PU中,并且每个PU的预测误差由四叉树结构表示。在该图的下半部分中描绘了具有2N×N的PU划分形状的帧间CU的TU划分的示例。在CU是帧间CU的情况下,四叉树的根位于CU中,并且每个CU的预测误差由四叉树结构表示。预测误差的四叉树结构、即每个CU的TU划分形状,由非专利文献1中描述的split_tu_flag语法来信号通知。

这完成了对帧内预测和帧间预测,以及CTU、CU、PU和TU的信号通知的描述。

下面参照图15中的框图来描述典型视频编码设备的结构和操作,该视频编码设备接收数字化视频的每个帧的每个CU作为输入图像并且输出比特流。

图15中描绘的视频编码设备包括变换器/量化器101、熵编码器102、逆量化器/逆变换器103、缓冲器104、预测器105和多路复用器106。

预测器105针对每个CTU来确定用于确定使编码成本最小化的CU划分形状的cu_split_flag语法值。

预测器105然后针对每个CU来确定用于确定帧内预测/帧间预测的pred_mode_flag语法值、用于确定PU划分形状的part_mode语法值、用于确定TU划分形状的split_tu_flag语法值、帧内预测方向、以及使编码成本最小化的运动向量。

预测器105进一步确定用于确定跳过模式的skip_flag语法值。

详细地讲,对于待处理的CU而言,在确定的pred_mode_flag指示帧间预测、确定的part_mode指示2N×2N、并且下面提到的变换量化值不存在的情况下,预测器105将skip_flag设置为1(即,设置跳过模式)。否则,预测器105将skip_flag设置为0(即,不设置跳过模式)。

预测器105基于确定的cu_split_flag语法值、pred_mode_flag语法值、part_mode语法值、split_tu_flag语法值、帧内预测方向、运动向量等来生成与每个CU的输入图像信号相对应的预测信号。该预测信号是基于上面提到的帧内预测或者帧间预测来生成的。

变换器/量化器101基于由预测器105确定的TU划分形状,对通过从输入图像信号减去预测信号而获得的预测误差图像进行频率变换。

变换器/量化器101进一步对频率变换后的预测误差图像(频率变换系数)进行量化。下文中,量化的频率变换系数被称为“变换量化值”。

熵编码器102熵编码变换量化值以及由预测器105确定的cu_split_flag语法值、skip_flag语法值、pred_mode_flag语法值、part_mode语法值、split_tu_flag语法值、帧内预测方向的差异信息和运动向量的差异信息(下文中,这些与预测相关的信息也都被称为“预测参数”)。

逆量化器/逆变换器103对变换量化值进行逆量化。逆量化器/逆变换器103进一步对通过逆量化获得的频率变换系数进行逆频率变换。预测信号被添加到通过逆频率变换而获得的重构预测误差图像,并且结果被供应给缓冲器104。缓冲器104存储重构图像。

多路复用器106多路复用并且输出从熵编码器102供应的熵编码后的数据作为比特流。

该典型视频编码设备通过上述操作生成比特流。

下面参照图16描述典型视频解码设备的结构和操作,该视频解码设备接收比特流作为输入并且输出解码后的视频帧。

图16中描绘的视频解码设备包括多路分用器201、熵解码器202、逆量化器/逆变换器203、预测器204和缓冲器205。

多路分用201对输入的比特流进行多路分用以提取熵编码后的视频比特流。

熵解码器202熵解码视频比特流。熵解码器202熵解码预测参数和变换量化值,并且将它们供应给逆量化器/逆变换器203和预测器204。

逆量化器/逆变换器203对变换量化值进行逆量化。逆量化器/逆变换器203进一步对通过逆量化获得的频率变换系数进行逆频率变换。

在逆频率变换之后,预测器204基于熵解码后的预测参数、使用缓冲器205中存储的重构图像来生成预测信号。

在生成预测信号之后,从预测器204供应的预测信号被添加到通过逆量化器/逆变换器203进行的逆频率变换而获得的重构预测误差图像,并且结果被供应给缓冲器205作为重构图像。

缓冲器205中存储的重构图像然后被输出作为解码后的图像(解码后的视频)。

该典型视频解码设备通过上述操作生成解码后的图像。

非专利文献2公开了一种使用基于四叉树和二叉树(BT)的块划分结构的视频编码技术,该块划分结构被称为四叉树加二叉树(QuadTree plus Binary Tree,QTBT),并且是对非专利文献1中描述的上面提到的系统的拓展。

在QTBT结构中,基于四叉树结构将编码树单元(CTU)递归地分割成方形编码单元(CU)。基于二叉树结构进一步将每个递归分割的CU递归地分割成矩形或方形块,以便进行预测过程或变换过程。在QTBT结构中,不使用part_mode语法。

图17是描绘了非专利文献2中描述的QTBT结构的说明图。图17的(a)中示出了CTU的块划分的示例,并且图17中的(b)中示出了其树结构。在图17中,每条实线指示基于四叉树结构的划分,并且每条虚线指示基于二叉树结构的划分。在基于二叉树结构的划分中,允许矩形块,以使得指示分割方向(分割线延伸的方向)的信息是必需的。在图17的(b)中,0指示水平方向上的分割,而1指示竖直方向上的分割。QTBT结构能够更灵活地表达矩形的划分形状,并且因此增强了基于非专利文献1中描述的块划分结构的视频系统的压缩效率。

引用列表

非专利文献

非专利文献(NPL)1:High Efficiency Video Coding(HEVC)text specification draft 10(for FDIS&Last Call)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 12th Meeting:Geneva,CH,14-23 January 2013

非专利文献2:Jicheng An,et al.,“Quadtree plus binary tree structure integration with JEM tools”,JVET-B0023,Joint Video Exploration Team(JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 2nd Meeting:San Diego,USA,20-26February 2016



技术实现要素:

技术问题

图18是描绘了基于QTBT结构的CTU的块划分的示例及其树结构的说明图。

首先描述图18中使用的cu_split_flag、bt_split_flag和bt_split_vertical_flag的定义。

cu_split_flag指示是否执行基于四叉树结构的划分。当cu_split_flag为0时,不执行基于四叉树结构的划分(即,该块是四叉树结构中的端节点的块)。当cu_split_flag为1时,执行基于四叉树结构的划分。

bt_split_flag指示是否执行基于二叉树结构的划分。当bt_split_flag为0时,不执行基于二叉树结构的划分(即,该块是二叉树结构中的端节点的块)。当bt_split_flag为1时,执行基于二叉树结构的划分。

当bt_split_flag为1时,存在bt_split_vertical_flag。bt_split_vertical_flag指示分割方向。当bt_split_vertical_flag为0时,在水平方向上执行分割。当bt_split_vertical_flag为1时,在竖直方向上执行分割。

图18的(a)中示出了块划分的示例。在图18的(b)中示出了与图18的(a)中示出的划分相对应的语法元素和QTBT结构。

在图18的(a)中描绘的示例中,基于四叉树结构将64×64(64像素×64像素)块分割成四个32×32块。因此,在QT第0层(深度0),cu_split_flag值指示划分(在本示例中为1)。

在QT第1层(深度1),右下方的32×32块在竖直方向上被分割成二。对于该32×32块,cu_split_flag值指示非划分(在本示例中为0),但是在BT第1层(深度1)处的bt_split_flag值指示划分(在本示例中为1)。而且,bt_split_vertical_flag值指示竖直方向(在本示例中为1)。对于其它三个32×32块,与二叉树结构相关的bt_split_flag值指示非划分(在本示例中为0)。

在BT第2层(深度2)处,对于右下方的32×32块中包括的左侧的16×32块,bt_split_flag值指示非划分(在本示例中为0),因为该块不再进行更多划分。

对于右侧的16×32块,bt_split_flag值指示划分(在本示例中为1),因为该块要进行进一步划分。bt_split_vertical_flag值指示竖直方向(在本示例中为1)。

在BT第3层(深度3)处,右下方的16×32块中包括的左侧的8×32块不进行划分,使得bt_split_flag值指示非划分(在本示例中为0)。右下方的16×32块中包括的右侧的8×32块要进行划分,以使得bt_split_flag值指示划分(在本示例中为1)。bt_split_vertical_flag值指示水平方向(在本示例中为0)。

右下方的8×32块中包括的上侧的8×16块和下侧的8×16块都不进行划分。因此,对于这两个块中的每一个块,bt_split_flag值都指示非划分(在本示例中为0)。

当使用上面提到的QTBT结构时,除了基于四叉树的块划分/非划分信息(下文中称为“四叉树分割标记”)之外,还需要发送基于二叉树的块划分/非划分信息(下文中称为“二叉树分割标记”)和水平/竖直分割方向信息(下文中称为“二叉树分割方向标记”)。

由于针对每个块发送了二叉树分割标记和二叉树分割方向标记,因此尤其是在低比特率的条件下,比特数会明显增加。

因此,这些标记信息产生开销代码量并且使压缩效率降低,并且还使熵编码/解码处理量增加。

在使用QTBT结构的情况下,可以设置最小块尺寸。最小尺寸是一种包括最小宽度和最小高度两者的概念。假设将最小尺寸设置为“N”。如果块的宽度(水平方向上的像素数)达到N,则无法在竖直方向上对该块进一步分割。这是因为这种分割产生的宽度为N/2。如果块的高度(竖直方向上的像素数量)达到N,则无法在水平方向上对该块进一步分割。这是因为这种分割产生的高度为N/2。

因此,在基于二叉树划分对宽度或高度为最小尺寸的块进行分割的情况下,分割方向被唯一地确定。然而,在图18的(b)中描绘的系统中,即使在这种情况下,也发送了不必要的(即,冗余的)bt_split_vertical_flag。

本发明的目的是改进压缩性能,并且减少使用基于四叉树和二叉树的块划分结构的视频编码过程和视频解码过程中的熵编码处理量和熵解码处理量。

问题的解决方案

根据本发明的视频编码方法是一种使用基于四叉树和二叉树的块划分结构的视频编码方法,该视频编码方法包括:熵编码指示块是否基于四叉树结构而被划分的标记的步骤;熵编码四叉树结构中的端节点的跳过标记的步骤;熵编码指示四叉树结构中的端节点的块是否基于二叉树结构而被划分的标记和指示分割方向的水平/竖直分割方向标记的步骤;以及将指示基于二叉树结构的划分的最小尺寸的信息多路复用到比特流中的步骤,其中在尺寸等于最小尺寸的节点基于二叉树结构而被进一步划分的情况下,该节点处的水平/竖直分割方向标记不被熵编码。

根据本发明的视频解码方法是一种使用基于四叉树和二叉树的块划分结构的视频解码方法,该视频解码方法包括:熵解码四叉树结构中的端节点的跳过标记的步骤;熵解码指示四叉树结构中的端节点的块是否基于二叉树结构而被划分的标记和指示分割方向的水平/竖直分割方向标记的步骤;以及从比特流中提取指示基于二叉树结构的划分的最小尺寸的信息的步骤,其中在尺寸等于最小尺寸的节点基于二叉树结构而被进一步划分的情况下,该节点处的水平/竖直分割方向标记不被熵解码。

根据本发明的视频编码设备是一种使用基于四叉树和二叉树的块划分结构的视频编码设备,该视频编码设备包括:用于熵编码指示块是否基于四叉树结构而被划分的标记的四叉树分割标记编码装置;用于熵编码四叉树结构中的端节点的跳过标记的跳过标记编码装置;用于熵编码指示四叉树结构中的端节点的块是否基于二叉树结构而被划分的标记和指示分割方向的水平/竖直分割方向标记的二叉树信息编码装置;以及用于将指示基于二叉树结构的划分的最小尺寸的信息多路复用在比特流中的尺寸多路复用装置,其中在尺寸等于最小尺寸的节点基于二叉树结构而被进一步划分的情况下,二叉树信息编码装置不熵编码该节点处的水平/竖直分割方向标记。

根据本发明的视频解码设备是一种使用基于四叉树和二叉树的块划分结构的视频解码设备,该视频解码设备包括:用于熵解码四叉树结构中的端节点的跳过标记的跳过标记解码装置;用于熵解码指示四叉树结构中的端节点的块是否基于二叉树结构而被划分的标记和指示分割方向的水平/竖直分割方向标记的二叉树信息解码装置;以及用于从比特流提取指示基于二叉树结构的划分的最小尺寸的信息的尺寸提取装置,其中在尺寸等于最小尺寸的节点基于二叉树结构而被进一步划分的情况下,二叉树信息解码装置不熵解码该节点处的水平/竖直分割方向标记。

根据本发明的视频编码程序是一种用于执行使用基于四叉树和二叉树的块划分结构的视频编码方法的视频编码程序,该视频编码程序使计算机执行:熵编码指示块是否基于四叉树结构而被划分的标记的过程;熵编码四叉树结构中的端节点的跳过标记的过程;熵编码指示四叉树结构中的端节点的块是否基于二叉树结构而被划分的标记和指示分割方向的水平/竖直分割方向标记的过程;以及将指示基于二叉树结构的划分的最小尺寸的信息多路复用在比特流中的过程,其中在尺寸等于最小尺寸的节点基于二叉树结构而被进一步划分的情况下,该节点处的水平/竖直分割方向标记不被熵编码。

根据本发明的视频解码程序是一种用于执行使用基于四叉树和二叉树的块划分结构的视频解码方法的视频解码程序,该视频解码程序使计算机执行:熵解码四叉树结构中的端节点的跳过标记的过程;熵解码指示四叉树结构中的端节点的块是否基于二叉树结构而被划分的标记和指示分割方向的水平/竖直分割方向标记的过程;以及从比特流提取指示基于二叉树结构的划分的最小尺寸的信息的过程,其中在尺寸等于最小尺寸的节点基于二叉树结构而被进一步划分的情况下,该节点处的水平/竖直分割方向标记不被熵解码。

本发明的有益效果

根据本发明,改进了压缩性能,并且减少了熵编码处理量和熵解码处理量。

附图说明

[图1]图1是描绘了根据示例性实施例1的视频编码设备的框图。

[图2]图2是描绘了熵编码控制器和熵编码器的操作的流程图。

[图3]图3是描绘了示例性实施例1中的QTBT结构的说明图。

[图4]图4是描绘了根据示例性实施例2的视频解码设备的框图。

[图5]图5是描绘了熵解码控制器和熵解码器的操作的流程图。

[图6]图6是描绘了能够实现视频编码设备的功能的信息处理系统的结构的示例的框图。

[图7]图7是描绘了视频编码设备的主要部分的框图。

[图8]图8是描绘了视频解码设备的主要部分的框图。

[图9]图9是描绘了33种角度帧内预测的示例的说明图。

[图10]图10是描绘了帧间预测的示例的说明图。

[图11]图11是描绘了帧t的CTU划分的示例和帧t的CTU8的CU划分的示例的说明图。

[图12]图12是描绘了与CTU8的CU划分的示例相对应的四叉树结构的说明图。

[图13]图13是描绘了CU的PU划分的示例的说明图。

[图14]图14是描绘了CU的TU划分的示例的说明图。

[图15]图15是描绘了典型视频编码设备的结构的示例的框图。

[图16]图16是描绘了典型视频解码设备的结构的示例的框图。

[图17]图17是描绘了在非专利文献2中描述的CTU的块划分的示例及其树结构的说明图。

[图18]图18是描绘了基于QTBT结构的CTU的块划分的示例及其树结构的说明图。

具体实施方式

示例性实施例1

图1是描绘了视频编码设备的示例性实施例(示例性实施例1)的框图。图1中描绘的视频编码设备包括变换器/量化器101、熵编码器102、逆量化器/逆变换器103、缓冲器104、预测器105、多路复用器106和熵编码控制器107。

在本示例性实施例中使用的cu_split_flag、bt_split_flag和bt_split_vertical_flag的定义如前所述。在bt_split_flag不存在的情况下,视频解码侧隐式地将bt_split_flag解释为0。在本示例性实施例中,即使当bt_split_flag为1时,bt_split_vertical_flag也可能不存在。

预测器105针对每个CTU来确定使编码成本最小化的cu_split_flag、bt_split_flag和bt_split_vertical_flag。顺便提及,cu_split_flag、bt_split_flag和bt_split_vertical_flag确定QTBT划分形状。

作为基于四叉树结构或二叉树结构的划分的结果所生成的块在下文中也被称为“子块”。

预测器105然后针对基于确定的cu_split_flag、bt_split_flag和bt_split_vertical_flag而由QTBT划分生成的每个子块,确定用于确定帧内预测/帧间预测的pred_mode_flag、用于确定TU划分形状的split_tu_flag、帧内预测方向和运动向量。待确定的pred_mode_flag、split_tu_flag、帧内预测方向和运动向量使编码成本最小化。

预测器105然后确定用于确定跳过模式的skip_flag。具体地,对于待处理的子块而言,在确定的pred_mode_flag指示帧间预测并且变换量化值不存在的情况下,预测器105将skip_flag设置为1(即,设置跳过模式)。否则,预测器105将skip_flag设置为0(即,不设置跳过模式)。

预测器105基于确定的cu_split_flag语法值、bt_split_flag语法值、bt_split_vertical_flag语法值、skip_flag语法值、pred_mode_flag语法值、split_tu_flag语法值、帧内预测方向和运动向量而生成与每个子块的输入图像信号相对应的预测信号。该预测信号是基于上面提到的帧内预测或者帧间预测而生成的。

变换器/量化器101基于预测器105确定的TU划分形状对通过从输入图像信号减去预测信号而获得的预测误差图像进行频率变换。变换器/量化器101进一步对频率变换后的预测误差图像(频率变换系数)进行量化以生成变换量化值。

熵编码控制器107基于从预测器105供应给熵编码器102的二叉树结构来监测每个子块的尺寸,并且确定是否对bt_split_vertical_flag进行熵编码。

详细地,在待处理子块的宽度或高度等于最小尺寸的情况下,在对块进一步划分时,熵编码控制器107使得熵编码器102跳过对bt_split_vertical_flag的熵编码过程。在下文中,最小尺寸用minBTsize表示。可以将最小尺寸设置为任何尺寸。在本示例性实施例中,作为示例,最小尺寸为“8”。待处理子块的宽度和高度分别用curPartW和curPartH表示。

熵编码器102对变换量化值以及由预测器105确定的cu_split_flag语法值、bt_split_flag语法值、bt_split_vertical_flag语法值、skip_flag语法值、pred_mode_flag语法值、split_tu_flag语法值、帧内预测方向的差异信息和运动向量的差异信息进行熵编码。

这里,当熵编码控制器107确定要跳过对bt_split_vertical_flag的熵编码时,熵编码器102跳过对bt_split_vertical_flag的熵编码。

通过上面提到的控制,防止了bt_split_vertical_flag的冗余信号通知。

逆量化器/逆变换器103对变换量化值进行逆量化。逆量化器/逆变换器103进一步对通过逆量化获得的频率变换系数进行逆频率变换。预测信号被添加到通过逆频率变换获得的重构预测误差图像,并且结果被供应给缓冲器104。缓冲器104存储重构图像。

多路复用器106多路复用并且输出从熵编码器102供应的熵编码后的数据作为比特流。这里,多路复用器106还将指示基于二叉树结构的划分的最小尺寸的minBTsize多路复用在比特流中。

根据本示例性实施例的视频编码设备通过上述操作生成比特流。

下面参照图2中的流程图,针对bt_split_flag、bt_split_vertical_flag和skip_flag来更详细地描述熵编码控制器107和熵编码器102的操作,它们都是本示例性实施例中的特征部分。

在步骤S101中,熵编码控制器107确定cu_split_flag是否为0。在cu_split_flag为0的情况下,该过程前进到步骤S102。在cu_split_flag为1的情况下,该过程前进到对下一个四叉树子块(在基于四叉树结构进行划分之后的块)进行处理。

在步骤S102中,熵编码器102对bt_split_flag进行熵编码。在步骤S103中,熵编码控制器107确定bt_split_flag是否为0。在bt_split_flag为0的情况下,该过程结束。在结束该过程之前,熵编码器102对skip_flag进行熵编码。在bt_split_flag为1的情况下,该过程前进到步骤S104。

在步骤S104中,熵编码控制器107确定curPartW或curPartH是否等于minBTsize。当curPartW和curPartH中的任何一个等于minBTsize时,该过程前进到对下一个二叉树子块(在基于二叉树结构进行划分之后的块)进行处理。对下一个二叉树子块的处理与从步骤S102开始的过程相对应。当curPartW和curPartH均不等于minBTsize时,该过程前进到步骤S105。

在步骤S105中,熵编码器102对bt_split_vertical_flag进行熵编码。该过程然后前进到对下一个二叉树子块进行处理。

在步骤S103到S105中,在待处理子块的bt_split_flag为1(即,基于二叉树结构对待处理块进一步划分)并且curPartW和curPartH中的任何一个等于minBTsize的情况下,熵编码控制器107跳过对bt_split_vertical_flag的熵编码过程。

下面描述本示例性实施例的具体示例。图3是描绘了示例性实施例1中的QTBT结构的说明图。

图3的(a)中示出了块划分的示例。在图3的(b)中,示出了与图3的(a)中示出的划分相对应的语法元素和QTBT结构。

在图3的(a)中示出的示例中,基于四叉树结构将一个64×64(64像素×64像素)块分割成四个32×32块(子块)。因此,在QT第0层(深度0)处,cu_split_flag值指示划分(在本示例性实施例中为1)。

在QT第1层(深度1)处,右下方的32×32块在竖直方向上被分割成2。对于该32×32块,cu_split_flag值指示非划分(在本示例性实施例中为0),但是在BT第1层(深度1)处的bt_split_flag值指示划分(在本示例性实施例中为1)。而且,bt_split_vertical_flag值指示竖直方向(在本示例性实施例中为1)。

在BT第2层(深度2)处,对于右下方的32×32块中包括的左侧16×32块,bt_split_flag值指示未划分(在本示例性实施例中为0),因为该块不再进行更多划分。

对于右侧的16×32块,bt_split_flag值指示划分(在本示例性实施例中为1),因为该块要进行进一步划分。bt_split_vertical_flag值指示竖直方向(在本示例性实施例中为1)。宽度(curPartW)(即16)和高度(curPartH)(即32)中的任何一个均未达到minBTsize。

在BT第3层(深度3)处,对于右下方的16×32块中包括的左侧8×32块,bt_split_flag值指示非划分(在本示例性实施例中为0),因为该块不再进行更多划分。

对于右侧的8×32块(被图3的(a)中的粗线包围的块),bt_split_flag值指示划分(在本示例性实施例中为1),因为该块要进行进一步划分。同时,由于curPartW等于minBTsize(=8),所以不对bt_split_vertical_flag进行熵编码和发送。

在BT第4层(深度4)处,右下方的8×32块中包括的上侧8×16块和下侧8×16块都不进行划分。因此,对于这两个块中的每个块,bt_split_flag值都指示非划分(在该示例性实施例中为0)。

在图3的(a)中描绘的示例中,由粗线包围的8×32块基于二叉树结构而在水平方向上被进一步分割。在图18的(b)中描绘的系统中,对值为0的bt_split_vertical_flag进行熵编码并且将其包括在比特流中。然而,对于被粗线包围的8×32块,curPartW等于minBTsize,由此该块的分割方向被唯一地确定为水平方向。

因此,即使在bt_split_vertical_flag语法值未被发送时,仅通过接收关于curPartW等于minBTsize的8×32块的信息(例如,bt_split_flag),视频解码设备也能够识别8×32块的分割方向。因而,在本示例性实施例中,在不满足预定条件(具体地,待处理块的bt_split_flag为1并且curPartW和curPartH中的任何一个等于minBTsize)的情况下,视频编码设备不对bt_split_vertical_flag语法值进行熵编码。

利用使用了根据本示例性实施例的上面提到的熵编码控制器107和熵编码器102的视频编码设备,防止了二叉树分割方向标记的冗余发送以改进压缩性能。而且,减少了二叉树分割方向标记的冗余熵编码处理,并且降低了处理复杂度。

步骤S103和S104的过程的条件为:当待处理块基于二叉树结构而被进一步划分时,划分之后的块的尺寸小于minBTsize。这可以被表示为:

min(curPartW,curPartH)/(1+bt_split_flag)<minBTsize,

其中min(a,b)是返回a和b中较小值的函数。

示例性实施例2

图4是描绘了视频解码设备的示例性实施例(示例性实施例2)的框图。图4中描绘的视频解码设备包括多路分用器201、熵解码器202、逆量化器/逆变换器203、预测器204、缓冲器205和熵解码控制器206。

多路分用器201对输入的比特流进行多路分用以提取熵编码后的数据。这里,多路分用器201还从比特流提取minBTsize。

熵解码器202对熵编码后的数据进行熵解码。熵解码器202将熵解码后的变换量化值供应给逆量化器/逆变换器203,并且进一步供应cu_split_flag、bt_split_flag、bt_split_vertical_flag、skip_flag、pred_mode_flag、split_tu_flag、帧内预测方向和运动向量。

这里,如果针对bt_split_vertical_flag满足与视频编码设备中的预定条件相同的条件,则本示例性实施例中的熵解码器202跳过熵解码过程。

逆量化器/逆变换器203利用量化步长对变换量化值进行逆量化。逆量化器/逆变换器203进一步对通过逆量化获得的频率变换系数进行逆频率变换。

预测器204基于cu_split_flag、bt_split_flag、bt_split_vertical_flag、skip_flag、pred_mode_flag、split_tu_flag、帧内预测方向和运动向量来生成每个子块的预测信号。该预测信号是基于上面提到的帧内预测或者帧间预测来生成的。

从预测器204供应的预测信号被添加到通过逆量化器/逆变换器203进行的逆频率变换而获得的重构预测误差图像,并且结果被供应给缓冲器205作为重构图片。存储在缓冲器205中的重构图片然后作为解码后的图像输出。

根据本示例性实施例的视频解码设备通过上述操作生成解码后的图像。

下面参照图5中的流程图,针对bt_split_flag和bt_split_vertical_flag来更详细地描述熵解码控制器206和熵解码器202的操作,它们都是本示例性实施例中的特征部分。

在步骤S201中,熵解码控制器206确定熵解码后的cu_split_flag是否为0。在cu_split_flag为0的情况下,该过程前进到步骤S202。在cu_split_flag为1的情况下,该过程前进到对下一个四叉树子块进行处理。

在步骤S202中,熵解码器202对bt_split_flag进行熵解码。之后,在步骤S203中,熵解码控制器206确定熵解码后的bt_split_flag是否为0。在bt_split_flag为0的情况下,该过程结束。在结束该过程之前,熵解码器202对skip_flag进行熵解码。在bt_split_flag为1的情况下,该过程前进到步骤S204。

在步骤S204中,熵解码控制器206确定curPartW或curPartH是否等于minBTsize。在curPartW和curPartH中的任何一个等于minBTsize的情况下,该过程前进到步骤S206。换言之,熵解码控制器206使得熵解码器202跳过bt_split_vertical_flag的熵解码过程。在curPartW和curPartH均不等于minBTsize的情况下,该过程前进到步骤S205。

在S205中,熵解码器202对待处理子块的bt_split_vertical_flag进行熵解码。该过程然后进入对下一个二叉树子块(在基于二叉树结构进行划分之后的块)进行处理。对下一个二叉树子块的处理与从步骤S202开始的过程相对应。

在步骤S206到S208中,熵解码控制器206导出被跳过熵解码过程的bt_split_vertical_flag值。

详细地,在步骤S206中,熵解码控制器206确定min(curPartW)/(1+bt_split_flag)<minBTsize是否成立。在min(curPartW)/(1+bt_split_flag)<minBTsize的情况下,在步骤S207中,熵解码控制器206将bt_split_vertical_flag值设置为0(指示在水平方向上进行分割)。在min(curPartW)/(1+bt_split_flag)≥minBTsize的情况下,在步骤S208中,熵解码控制器206将bt_split_vertical_flag值设置为1(指示在竖直方向上进行分割)。该过程然后进入对下一个二叉树子块(在基于二叉树结构进行划分之后的块)进行处理。

min(curPartW)/(1+bt_split_flag)<minBTsize是指如下条件:当基于二叉树结构对待处理子块进一步分割时,该分割之后的子块的宽度小于minBTSize。因此,熵解码控制器206可以使用步骤S206中的条件“min(curPartH)/(1+bt_split_flag)<minBTsize”,以在min(curPartH)/(1+bt_split_flag)<minBTsize的情况下将bt_split_vertical_flag设置为1(指示在竖直方向上进行分割),并且在min(curPartH)/(1+bt_split_flag)≥minBTsize的情况下将bt_split_vertical_flag值设置为0(指示在水平方向上进行分割)。

下面描述本示例性实施例的有益效果。利用使用了根据本示例性实施例的上面提到的熵解码控制器206和熵解码器202的视频解码设备,防止了二叉树分割方向标记的冗余熵解码以降低处理复杂度。

消除冗余的优势如下。

可以减少视频编码和视频解码中对bt_split_vertical_flag的冗余熵编码过程和熵解码过程。而且,通过防止在将参数值相结合时出现任何误差,可以改进视频编码与视频解码之间的互操作性。

虽然示例性实施例1和2描述了minBTsize表示最小宽度和最小高度两者的情况,但可以分别设置最小宽度和最小高度。在这种情况下,在图2的步骤S104和图5的步骤S204中,将curPartW与最小宽度相比较并且将curPartH与最小高度相比较。

各个前述示例性实施例均可以通过硬件或计算机程序来实现。

图6中描绘的信息处理系统包括处理器1001、程序存储器1002、用于存储视频数据的存储介质1003、以及用于存储比特流的存储介质1004。存储介质1003和存储介质1004可以是分开的存储介质、或者是被包括在相同存储介质中的存储区域。诸如硬盘的磁性存储介质可用作存储介质。

在图6中描绘的信息处理系统中,用于实现图1和图4中的每个图中描绘的块(除了缓冲块)的功能的程序被存储在程序存储器1002中。处理器1001通过根据程序存储器1002中存储的程序执行过程,来实现根据前述示例性实施例的视频编码设备和视频解码设备的功能。

图7是描绘了视频编码设备的主要部分的框图。如图7所示,视频编码设备10包括:四叉树分割标记编码单元11(通过示例性实施例中的熵编码器102来实现),用于熵编码指示块是否基于四叉树结构而被划分的标记(例如,cu_split_flag);跳过标记编码单元12(通过示例性实施例中的熵编码器102来实现),用于熵编码四叉树结构中的端节点的跳过标记;二叉树信息编码单元13(通过示例性实施例中的熵编码器102来实现),用于熵编码指示四叉树结构中的端节点的块是否基于二叉树结构而被划分的标记(例如,bt_split_flag)和指示分割方向的水平/竖直分割方向标记(例如,bt_split_vertical_flag);以及尺寸多路复用单元14(通过示例性实施例中的多路复用器106来实现),用于将指示基于二叉树结构的划分的最小尺寸的信息(例如,minBTsize)多路复用在比特流中,其中在尺寸等于最小尺寸的节点基于二叉树结构而被进一步划分的情况下,二叉树信息编码单元13不熵编码该节点处的水平/竖直分割方向标记。

图8是描绘了视频解码设备的主要部分的框图。如图8所示,视频解码设备20包括:跳过标记解码单元21(通过示例性实施例中的熵解码器202来实现),用于熵解码四叉树结构中的端节点的跳过标记;二叉树信息解码单元22(通过示例性实施例中的熵解码器202来实现),用于熵解码指示四叉树结构中的端节点的块是否基于二叉树结构而被划分的标记(例如,bt_split_flag)和指示分割方向的水平/竖直分割方向标记(例如,bt_split_vertical_flag);以及尺寸提取单元(通过示例性实施例中的多路分用器201来实现),用于从比特流提取指示基于二叉树结构的划分的最小尺寸的信息(例如,minBTsize),其中在尺寸等于最小尺寸的节点基于二叉树结构而被进一步划分的情况下,二叉树信息解码单元22不熵解码该节点处的水平/竖直分割方向标记。

视频解码设备20可以包括尺寸设置单元(通过示例性实施例中的熵解码控制器206来实现),用于将满足最小尺寸的值设置为未被熵解码的水平/竖直分割方向标记的值。满足最小尺寸的值是用于指定不执行划分成小于最小尺寸(具体地,宽度和高度均不低于最小值)的子块的值。

虽然已经参照前述示例性实施例和示例对本发明进行了描述,但是本发明不局限于前述示例性实施例和示例。在本发明的范围内,可以对本发明的结构和细节进行本领域的技术人员可理解的各种改变。

本申请要求于2016年12月26日提交的日本专利申请第2016-251290号的优先权,该申请的全部公开内容并入本文。

附图标记列表

10 视频编码设备

11 四叉树分割标记编码单元

12 跳过标记编码单元

13 二叉树信息编码单元

14 尺寸多路复用单元

20 视频解码设备

21 跳过标记解码单元

22 二叉树信息解码单元

23 尺寸提取单元

101 变换器/量化器

102 熵编码器

103 逆量化器/逆变换器

104 缓冲器

105 预测器

106 多路复用器

107 熵编码控制器

201 多路分用器

202 熵解码器

203 逆量化器/逆变换器

204 预测器

205 缓冲器

206 熵解码控制器

1001 处理器

1002 程序存储器

1003 存储介质

1004 存储介质

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1