具有条件性量化参数信息信令的视频数据处理方法以及装置与流程

文档序号:16597057发布日期:2019-01-14 19:47阅读:344来源:国知局
具有条件性量化参数信息信令的视频数据处理方法以及装置与流程

本发明要求如下优先权:编号为62/342,884,申请日为2016年5月28日,名称为“methodsofsignalingdeltaqpforquad-treeplusbinarytreestructure”的美国临时专利申请、编号为62/343,042,申请日为2016年5月30日,名称为“methodsofsignalingquantizationparameterforquad-treeplusbinarytreestructure”的美国临时专利申请、编号为pct/cn2016/087005,申请日为2016年6月24日,名称为“methodsofsignalingquantizationparameterforquad-treeplusbinarytreestructure”的pct专利申请。上述美国专利临时申请与pct专利申请在此作为参考。

本发明有关于视频数据处理方法和装置编码或解码视频数据。更具体而言,本发明有关于依据条件性的标记于视频比特流中的量化参数信息的视频数据处理方法和装置编码或解码视频数据。



背景技术:

高效视频编解码(high-efficiencyvideocoding,简写为hevc)标准是由itu-t研究组的视频编解码专家组的视频编解码联合协作小组(jointcollaborativeteamonvideocoding,简写为jct-vc)开发的最新视频编解码标准。hevc标准依赖于基于块的编解码结构,其将每个片(slice)分成多个编解码树单元(ctu)。在hevc主配置文件中,ctu的最小和最大大小由序列参数集(sequenceparameterset,简写为sps)中指示的语法元素指定。使用光栅扫描顺序处理切片中的ctu。使用四叉树分区(quad-treepartitioning)方法将每个ctu进一步递归地分成一个或多个编解码单元(codingunit,简写为cu)。cu尺寸被限制在小于或等于sps中指定的最小允许cu尺寸。图1中示出了四叉树块分割结构的示例,其中实线表示ctu100中的cu边界。

在cu级进行预测判定,其中每个cu使用画面间预测(interpictureprediction)或画面内预测(intrapictureprediction)进行编码。一旦完成了cu分层树的分割,则根据用于预测的pu分区类型,每个cu进一步分为一个或多个预测单元(predictionunit,简写为pu)。图2显示了在hevc标准中定义的八种pu分区类型。根据图2所示的八个pu分区类型中的一个,每个cu被分成一个、两个或者四个pu。因为将相同的预测处理应用于pu中的所有像素,pu作为用于共享预测信息的基本代表性块。预测信息以pu为基础传送给解码器。在获得由预测处理产生的残差(residual)信号之后,根据用于将残差数据变换为变换系数用于紧凑的数据表示的另一四叉树块分割结构,属于cu的残差信号的残差数据被分为一个或多个变换单元(transformunit,简写为tu)。图1中的虚线表示tu边界。tu是对残差信号进行变换和量化的基本代表性块。对于每个tu,将具有与tu相同大小的变换矩阵应用于残差信号以产生变换系数,并且这些变换系数被量化并以tu为基础传送到解码器。

术语编解码树块(codingtreeblock,简写为ctb)、编解码块(codingblock,简写为cb)、预测块(predictionblock,简写为pb)和变换块(transformblock,简写为tb)被定义为指定与ctu、cu、pu和tu分别相关联的一个颜色分量的二维样本数组。例如,ctu由一个亮度ctb,两个色度ctb及其相关联的语法元素组成。在hevc系统中,通常将相同的四叉树块分割结构应用于亮度和色度分量,除非达到色度块的最小尺寸。

另一分区方法被称为二叉树块分区方法,其中块被递归地分成两个较小的块。图3示出二叉树分区方法的一些拆分类型。最简单的二叉树分区方法仅允许对称的水平分割和对称的垂直分割。对于尺寸为mxn的给定块,标示第一个标志,以指示该块是否被划分成两个较小的块,之后是指示第一个标志指示分割时的分割类型的第二个标志。若分割类型是对称的水平分割,则该mxn块被分成两个大小为mxn/2的块,而若分割类型是对称的垂直分割,则该mxn块被分割成两个大小为m/2xn的块。分割过程可以重复,直到分割块的大小、宽度或高度达到最小允许的大小、宽度或高度。若块高度小于最小高度,则隐式地不允许水平分割,同样,若块宽度小于最小宽度,则隐式地不允许垂直分割。

图4a和图4b示出了根据二叉树分区方法及其对应的编解码树结构的块分割的示例。在图4b中,二叉树(binary-tree)编解码树的每个分割节点(即非叶)处的一个标志用于指示分割类型,标志值等于0表示水平分割,而标志值等于1表示垂直分割。可以在编码或解码过程中将二叉树分区方法应用于块分割的任何级别,例如,二叉树分区方法可用于将片分割成ctu、将ctu分割成cu、将cu分割成pu、或将cu分割成tu。亦可以通过省略从cu到pu和cu到tu的分割来简化分割过程,因为二叉树块分割结构的叶节点是预测和变换编解码的基本代表性块。

尽管二叉树分区方法支持更多的分区结构,因此比四叉树分区方法更加灵活,但编解码复杂度增加,用于选择所有可能形状中的最佳分区形状。称为四叉树二叉树(quad-tree-binary-tree,简写为qtbt)结构的组合分区方法将四叉树分区方法与二叉树分区方法相结合,平衡了两种分区方法的编解码效率和编解码复杂度。在图5a中示出了示例性的qtbt结构,其中首先通过四叉树分区方法随后通过二叉树分区方法分割大块。图5a示出了根据qtbt分区方法的块分割结构的示例,图5b示出了图5a所示的qtbt块分割结构的编解码树图。图5a和图5b中的实线表示四叉树分区,而虚线表示二叉树分割。与图4b类似,在二叉树结构的每个分割(即非叶)节点中,一个标志指示使用哪种分割类型(对称水平分割或对称垂直分割),0表示水平分割,而1表示垂直分裂。图5a中的qtbt结构将大块分割成多个较小的块,并且这些较小的块可以通过预测和变换编解码进行处理,而不进一步分割。在一个示例中,图5a中的大块是大小为128×128的编解码树单元(ctu),最小允许四叉树叶节点大小为16×16,最大允许二叉树根节点大小为64×64,最小允许二叉树叶节点宽度或高度为4,且最小允许二叉树深度为4。在此示例中,叶四叉树块(leafquad-treeblockis128x128)的大小可能为16x16到128x128,若叶四叉树块是128x128,它不能被二叉树结构进一步拆分,因为其大小超过允许的最大二叉树根节点大小64x64。叶四叉树块被用作二叉树深度等于0的根二叉树块。当二叉树深度达到4时,阴式地不再分割;当二叉树节点的宽度等于4时,阴式地不再垂直分割;并且当二叉树节点的高度等于4时,阴式地不再水平分割。对于在i片中编解码的ctu,用于色度编解码树块(ctb)的qtbt块分割结构可以与用于对应的亮度ctb的qtbt块分割结构不同。对于以p或b切片编解码的ctu,相同的qtbt块分割结构可以应用于色度ctb和亮度ctb。

引入另一种称为三叉树(triple-tree)分区(partition)方法的分区方法来捕获位于块中心的对象,而四叉树分区方法和二叉树分区方法总是沿块中心分割。图6示出了三叉树分区方法中的两个示例性三叉树分区类型,其包括水平中心侧三叉树分割60和垂直中心侧三叉树分割62。三叉树分区方法可以通过允许垂直或水平四分之一分区来提供沿着块边界更快地定位小对象的能力。由于三叉树分区块602、604、606、622、624和626的宽度或高度总是2的幂,所以不需要额外的变换来变换这些三叉树分区块。



技术实现要素:

公开了在具有调节量化参数(qp)信息信令的视频编解码系统中处理视频数据的方法和装置。视频编解码系统的实施例接收与当前切片中的当前编解码块(cb)相关联的输入数据。根据分区方法对当前切片中颜色分量的视频数据进行分区。分区方法可以是四叉树、二叉树、qtbt和三叉树分区方法中的一个或多个。在一些实施例中,确定量化参数最小块大小并将其与当前cb的区域进行比较。当前cb的区域根据当前cb的宽度和高度计算。当前切片中当前cb的qp信息的信令由区域的比较结果来调节。如果当前cb的区域大于或等于qp最小块区域,则确定当前cb的qp信息并将其合并到视频比特流中,或者从视频比特流中解析当前cb的qp信息。视频编解码系统根据当前cb的qp信息量化当前cb的残差信号或者恢复当前cb的量化残差信号。

在一个实施例中,如果当前cb的区域小于qp最小块区域,则由当前cb组共享的共享qp信息导出当前cb的qp信息。在本公开中共享共享qp信息的一组cb也被称为量化组。视频比特流不为在量化组中的每个cb标示独立的qp。当处理共享共享qp信息的一组cb的第一已编解码的cb时,可以将共享qp信息并入视频比特流中或从视频比特流解析。根据具有至少一个非零残差变换系数的编码或解码顺序在组中首先处理第一已编解码的cb。共享共享qp信息的cb组的总区域大于或等于qp最小块区域。

在一些其他实施例中,根据组合分区方法将每个切片中的颜色分量的视频数据划分为编解码块(cb),其中组合分区方法根据第一分区方法然后是第二分区方法分区视频数据。组合分区方法的一个例子是qtbt分区方法。视频编解码系统的实施例接收与当前切片中的当前cb相关联的输入数据,并确定深度标志。根据与第一分区方法相对应的第一分区深度和对应于第二分区方法的第二分区深度来计算当前cb的组合深度。将当前cb的组合深度与深度标记进行比较,并且通过深度比较结果对当前cb的qp信息的信令进行调节。如果当前cb的组合深度小于或等于深度标志,则确定当前cb的qp信息并将其合并到视频比特流中或从视频比特流解析。视频编解码系统根据当前cb的qp信息量化当前cb的残差信号,或根据当前cb的qp信息恢复当前cb的量化残差信号。

在一个实施例中,根据第一分区深度和第二分区深度的加权和来计算组合深度。例如,组合分区方法是四叉树二叉树(qtbt)分区方法,其中第一分区深度是当前cb的四叉树深度,第二分区深度是当前cb的二叉树深度。通过将四叉树深度加到当前cb的二叉树深度的一半来计算组合深度。深度标志指定编解码树块(ctb)大小和qp信息信令的最小块大小之间的深度差的差异。

在一些实施例中,如果当前cb的组合深度大于深度标志,则由一组cb共享的qp信息导出当前cb的qp信息。视频比特流中不为组中的每个cb标示单独的qp信息。当处理共享共享qp信息的一组cb的第一已编解码的cb时,可以将共享qp信息并入视频比特流中或从视频比特流解析。第一已编解码的cb在具有至少一个非零残差变换系数的组中首先进行编解码。

在视频比特流中标示当前cb的qp信息的实施例与δqp、qp偏移或最终qp相关联,例如与视频比特流相结合的与δqp相关的语法元素或从视频比特流解析的语法元素包括δqp绝对值和δqp正负号标志,与qp偏移相关的语法元素包括qp偏移绝对值和qp偏移正负号标志。

在一个实施例中,在当前cb中承载的颜色分量是亮度分量,如果用于亮度分量和色度分量的块分区结构被单独确定,针对亮度分量的qp信息的标示单独地标示用于该色度分量的qp信息。

在另一个实施例中,当前cb中携带的颜色分量是色度分量,并且如果亮度分量和色度分量的块分区结构被单独确定,当前cb的qp信息通过对当前cb的同位置亮度块重新使用qp信息来确定。在序列级别、图像级别或切片级别标示重用标志,以自适应地赋能或禁能该同位置亮度块的qp信息的重用。

实施例的变型分别编解码语法元素,用于确定序列级别、图像级别或切片级别中亮度和色度分量的qp最小块区域。在另一个变型中,用于色度分量的qp最小块区域由亮度分量的qp最小块区域确定。可以标示一个标志以指示用于色度分量的qp最小块区域是否根据与取样亮度分量和色度分量的颜色取样比率相同的比率来确定。

本公开的方面还提供了一种用于视频编解码系统的装置,根据在视频比特流中有条件地标示的qp信息的具有自适应量化。该装置的实施例确定最小qp块区域,并将最小qp块区域与通过分区方法划分的每个cb的区域进行比较。如果当前cb的区域大于或等于最小qp块区域,则在视频比特流中标示当前cb的qp信息。该装置的一些其他实施例确定深度标志,并将深度标志与通过组合分区方法划分的每个cb的组合深度进行比较。如果当前cb的组合深度小于或等于深度标志,则在视频比特流中标示当前cb的qp信息。

本公开的方面进一步提供了一种非挥发性计算器可读介质,其存储用于使装置的处理电路根据视频比特流中有条件地标示的qp信息进行自适应量化的视频编解码处理的程序指令。视频编解码处理的一个实施例确定最小qp块区域或深度标志,并且根据比较结果有条件地标示由分区方法分割的每个块的qp信息。通过对具体实施方式的以下描述进行回顾,本发明的其他方面和特征对于本领域具有普通知识者将变得显而易见。

附图说明

将参考以下附图详细描述作为示例提出的本公开的各种实施例,其中相同的附图标记表示相同的组件,并且其中:

图1标出了用于将编解码树单元(ctu)分割成编解码单元(cu)并将每个cu分割成hevc标准中的一个或多个变换单元(tu)的示例性编解码树。

图2示出了根据hevc标准将cu分成一个或多个pu的八种不同的pu分区类型。

图3示出了二叉树分割方法的六个示例性分割类型。

图4a示出了根据二叉树分割方法的示例性块分区结构。

图4b示出了对应于图4a所示的块分区结构的编解码树结构。

图5a示出了根据四叉树二叉树(qtbt)分区方法的示例性块分区结构。

图5b示出了对应于图5a的块分区结构的编解码树结构。

图6示出了三叉树分区方法中的两个示例性三叉树分区类型。

图7a示出了根据qtbt分割方法将64×64编解码树块分割为多个编解码块的示例性块分区结构。

图7b示出了当根据本发明的实施例的qp最小块区域是256像素时,对应于图7a中的64×64编解码树块的量化组。

图8a示出了根据qtbt分区方法的块分区结构的示例。

图8b示出了根据本发明的实施例的图8a相应的四叉树叶块,其中针对每个四叉树叶块标示qp信息。

图9示出根据本发明的实施例的示例性视频数据处理方法的流程图。

图10是示出根据本发明另一实施例的示例性视频数据处理方法的流程图。

图11示出了结合根据本发明的实施例的视频数据处理方法的视频编码系统的示例性系统框图。

图12示出了结合根据本发明的实施例的视频数据处理方法的视频解码系统的示例性系统框图。

具体实施方式

将容易理解,如本文中的图中一般描述和示出的本发明的组件可以以各种各样的不同配置来布置和设计。因此,如附图所示的本发明的系统和方法的实施例的以下更详细的描述并不旨在限制本发明所要求保护的范围,而是仅代表本发明的选定实施例。

贯穿本说明书对“实施例”,“一些实施例”或类似语言的引用意味着结合实施例描述的特定特征、结构或特性可以包括在本发明的至少一个实施例中。因此,贯穿本说明书的各个地方的短语“在一个实施例中”或“在一些实施例中”的出现不一定全部指代相同的实施例,这些实施例可以单独地或结合一个或多个其他实施例来实现。此外,所描述的特征、结构或特征可以以任何合适的方式组合在一个或多个实施例中。然而,本领域技术人员将认识到,可以在没有一个或多个具体细节,或其他方法、组件等的情况下实现本发明。在其他情况下,未示出已知的结构或操作的详细描述以避免模糊本发明的方面。

在hevc标准中,大于或等于δqp信令(signaling)的最小块大小的每个编解码块(codingblock,简写为cb)具有其自己的量化参数(qp),并且qp信息被传送到解码器侧,使得解码器将使用相同的qp用于合适的解码过程。发送由当前编解码qp和参考qp之间的差导出的δqp以减少qp信息所需的比特率(bitrate)。亮度分量的δqp信令由两个标志cu_qp_delta_enabled_flag和diff_cu_qp_delta_depth控制。赋能(enable)标志cu_qp_delta_enabled_flag用于指示δqp信令被赋能或禁能(disable),深度标志diff_cu_qp_delta_depth用于设置δqp信令的最小块大小。若赋能标志cu_qp_delta_enabled_flag指示δqp信令被赋能,则图像参数集(pictureparameterset,简写为pps)中呈现深度标志diff_cu_qp_delta_depth,并可在变换单元(tu)语法中呈现语法元素cu_qp_delta_abs。若cu_qp_delta_abs存在且不为零,则tu语法中可能存在正负号(sign)标志cu_qp_delta_sign_flag以指示δqp的正负号。深度标志diff_cu_qp_delta_depth指定亮度ctb大小和用于传送包括cu_qu_delta_abs和cu_qp_delta_sign_flag的δqp信息的最小亮度cb大小之间的深度差。解码器根据深度标志确定来自亮度ctb大小的δqp信号的最小块大小。该深度标志diff_cu_qp_delta_depth的值被设置在零到log2_diff_max_min_luma_coding_block_size的范围内。如果深度标志不存在,则深度标志diff_cu_qp_delta_depth的值被推断为0,并且当深度标志为0时,δqp信令的最小块大小等于亮度ctb大小。log2_diff_max_min_luma_coding_block_size指定最大和最小亮度cb大小之间的深度差异,当深度标志等于log2_diff_max_min_luma_coding_block_size时,δqp信令的最小块大小等于最小亮度cb大小。若当前cb大小大于或等于δqp信令的最小块大小,编码器将视频比特流中当前cb的δqp信息并入。解码器基于深度标志diff_cu_qp_delta_depth的值来确定δqp信令的最小块大小,并且为了解码每个cb,若cb大小大于或等于δqp信令的最小块大小,则解码器从视频比特流解析δqp信息。

若赋能标志cu_qp_delta_enabled_flag指示赋能并且检查标志iscuqpdeltacoded指示为零,则语法元素cu_qp_delta_abs和cu_qp_delta_sign_flag被并入在tu级的视频比特流中。若赋能标志cu_qp_delta_enabled_flag指示赋能且当前log2的cb大小大于或等于变量log2mincuqpdeltasize,则在编解码cu时,检查标志iscuqpdeltacoded被设置为零。变量log2mincuqpdeltasize由ctblog2sizey与深度标志diff_cu_qp_δdelta_depth之间的差异导出,其中ctblog2sizey是亮度log2的ctb大小,例如,若亮度ctb大小为64,则为ctblog2sizey=6。

基于用于当前cb和参考qp的标示的δqp导出当前cb的最终qp,其中参考qp导出基于当前cb的相邻编解码量化组的qp。量化组是共享qp信息的基本单元。相邻编解码量化组包括具有qp值qp_a的上述相邻编解码量化组和具有qp值qp_l的左邻近编δ码量化组。参考qp等于(qp_l+qp_a+1)>>1。若qp_a或qp_l不可用,则使用qp值qp_prev,其中qp_prev是解码顺序中先前量化组的qp值。若此qp_prev也不可用,则使用切片qp值。

在hevc标准范围扩展中,色度qp偏移信令由两个标志:色度赋能标志cu_chroma_qp_offset_enabled_flag和色度偏移标志log2mincuchromaqpoffsetsize控制,其中色度赋能标志指示色度qp偏移信令是赋能还是禁能,而色度偏移大小标志用于设置色度qp偏移信令的最小大小。色度偏移大小变量log2mincuchromaqpoffsetsize由ctblog2sizey和色度深度标志diff_cu_chroma_qp_offset_depth之间的差异导出,其中色度深度标志指定亮度ctb大小和传达色度qp偏移的最小编解码单元的亮度cb大小之间的差异。若色度赋能标志cu_chroma_qp_offset_enabled_flag和cbf标志cbfchroma均指示一,则与色度qp偏移相关联的语法元素cu_chroma_qp_offset_flag和cu_chroma_qp_offset_idx被并入tu级的视频比特流中,并且旁路标志cu_transquant_bypass和检查标志iscuchromaqpoffsetcoded都指示为零。若色度赋能标志cu_chroma_qp_offset_enabled_flag表示赋能,并且当前cb大小的log2大于或等于色度偏移大小变量log2mincuchromaqpoffsetsize,则在编码cu时,检查标志iscuchromaqpoffsetcoded设置为零。

hevc中的编解码块(cb)的形状在四叉树分区之后始终是正方形,因为cb的块宽度等于cb的块高度,用于传送δqp或色度qp偏移的最小块大小由诸如深度值或宽度值的一维度量确定。在一个示例中,当亮度ctb大小为64×64时,深度值0表示qp信息信令的最小块大小为64×64,深度值1表示qp信息信令的最小块大小为32×32,深度值2表示qp信息信令的最小块大小为16×16。但是,二叉树、qtbt和三叉树分区方法等其他分区方法的分区块并不都为正方形。本申请描述了具有用于正方形和非正方形编解码块的调节的(conditioned)qp信息信令的各种视频数据处理方法。用于分割编解码块的分区方法可是四叉树、二叉树、三叉树,分区方法中包括某些分割类型的受限分区方法,或组合诸如qtbt的多种分区方法的组合分区方法。

由块的区域调节的qp信息信号。在本发明的一些实施例中,不使用诸如分区深度值或块宽度的一维度量来确定qp信息信令的最小块大小,而是使用诸如块的区域的二维度量。仅针对大于或等于qp最小块区域的编解码块发送诸如δqp或色度qp偏移的qp信息。根据实施例的实现,将变量mincuqpdeltaarea或log2mincuqpdeltaarea定义为表示用于传送δqp信息的qp最小块区域。变量mincuqpdeltaarea或log2mincuqpdeltaarea可以在视频比特流中以高级语法发送,或者可以从一个或多个其他语法元素导出。若赋能标志cu_qp_delta_enabled_flag表示对当前cu赋能了qp信息信令,并且当前亮度cb的块区域大于或等于表示qp最小块区域的变量mincuqpdeltaarea,则在编解码当前cu时将校验标志iscuqpdeltacoded设置为零。通过将当前亮度cb的块宽度cbwidth和块高度cbheight相乘来计算块区域。以下伪代码说明了设置检查标志所需的条件:

变量cuqpdeltaval指定包含cu_qp_delta_abs的编解码单元的亮度量化参数与其预测之间的差。若显示cu_qu_delta_abs,则cuqpdeltaval=cu_qp_delta_abs*(1-2*cu_qp_delta_sign_flag)。

若检查标志iscuqpdeltacoded为零,则标示用于当前编解码块的与qp信息相关联的语法元素,例如表示δqp绝对值cu_qu_delta_abs和δqp正负号标志cu_qp_delta_sign_flag的语法元素。在一个实施例中,若当前编解码块的校验标志为零并且当前编解码块的赋能标志指示δqp信令被赋能,则针对当前编解码块标志与qp信息相关联的语法元素。在与qp信息相关联的语法元素被标示之后,将检查标志设置为1。

用于标示qp信息的一般规则描述如下。对于具有大于或等于qp最小块区域的区域的编解码块,针对编解码块标示qp信息,例如δqp或qp偏移。对于编解码块组中的每个具有小于qp最小块区域的单独区域,但是组中的编解码块的总区域大于或等于qp最小块区域的编解码块组,发送或导出共享qp信息用于多个编解码块共享。共享共享qp信息的编解码块组在本公开中也被称为量化组。

在一些实施例中,若当前cb的区域小于qp最小块区域,则由一组cb共享的共享qp信息被用于当前cb。不是为组中的每个cb标示单独的qp信息,而是组中的所有cb重用共享的qp信息。共享共享qp信息的组的总区域大于或等于qp最小块区域。在一个实施例中,当处理具有至少一个非零残差变换系数的量化组中的第一已编解码的cb时,将共享qp信息并入视频比特流中或从视频比特流解析。第一已编解码的cb是根据编码顺序或解码顺序共享共享qp信息的量化组中第一处理cb。在第一个cb之后编解码的量化组中的随后之cb重用从第一已编解码的cb确定的共享qp信息。当量化组中的所有残差变换系数为零时,不需要标示qp信息。例如,若编解码块标志cbf为零,则量化组的qp信息不被并入视频比特流中,也不从视频比特流解析。在量化组中的所有cb不具有任何非零残差变换系数的情况下,在视频比特流中不标示诸如δqp的qp信息。当省略用于量化组的δqp的标示时,δqp可被推定为零。该量化组的qp被设置为等于参考qp,并且尽管该qp不用于量化当前量化组的残差信号,但是可以由随后的量化组参考。在一些其他实施例中,从参考qp、默认qp或先前qp导出共享qp信息。

或者,当log2变量log2mincuqpdeltaarea用于与当前亮度cb的块区域进行比较时,通过将当前亮度cb的块宽度的log2值与块宽度的log2值加总计算块区域。以下伪代码说明了设置检查标志所需的条件:

类似地,将变量mincuchromaqpoffsetarea或log2mincuchromaqpoffsetarea定义为表示用于传送色度qp信息的最小块区域。若赋能标志cu_chroma_qp_offset_enabled_flag表示色度qp信息信令被赋能且当前色度cb的块区域大于或等于变量mincuchromaqpoffsetarea,则对编码当前cu时的检查标记iscuchromaqpoffsetcoded设置为零。通过将当前色度cb的块宽度和块高度相乘来计算当前色度cb的块区域。色度检查标志可以根据以下条件设置:

若检查标志iscuchromaqpoffsetcoded为零,则与色度qp信息相关联的语法元素,例如表示色度qp偏移或色度qpδ的语法元素被标示用于当前编解码块。在一个实施例中,若当前编解码块的检查标志为零并且当前编解码块的赋能标志指示色度qp信息信令被赋能,则针对当前编解码块标示与色度qp信息相关联的语法元素。在标示语法元素之后,将检查标志设置为1。

或者,当log2变量log2mincuchromaqpoffsetarea用于与当前色度cb的块区域进行比较时,通过将当前色度cb的块宽度的log2值和块高度的log2值相加来计算块区域。色度检查标志可以根据以下条件设置:

以下等式示出了导出表示亮度和色度分量的qp最小块区域的变量的示例。变量log2mincuqpdeltaarea包括计算ctblog2sizey和深度标志diff_cu_qp_delta_depth之间的差值,然后乘以2(timesbytwo)。导出变量log2mincuchromaqpoffsetarea的示例包括计算ctblog2sizey和色度深度标志diff_cu_chroma_qp_offset_depth之间的差,然后乘以2。

log2mincuqpdeltaarea=2*(ctblog2sizey-diff_cu_qp_delta_depth)

log2mincuchromaqpoffsetarea=2*(ctblog2sizey-diff_cu_chroma_qp_offset_depth)

图7a示出了根据qtbt分区方法将64×64编解码树块分割为多个编解码块的示例性块分割结构。图7a中的实线是四叉树分区之后的块边界,并且图7a中的虚线是二叉树分割之后的块边界。图7b示出了当根据本发明的实施例的qp信息信令的qp最小块区域是256像素(即,16×16)时,对应于图7a中的64×64编解码树块的量化组,其中每个量化组中的一个或多个编解码块共享相同的qp信息。在图7b中,若这些量化组中的每个编解码块的块区域小于256个像素,则一些量化组包含多于一个的编解码块。量化组中的编解码块共享在视频比特流中发送的相同的qp信息,并且不对量化组中的每个编解码块发送单独的qp信息。

若当前cb的区域大于或等于qp最小块区域,则当前cb的qp信息被并入编码器侧的视频比特流中,或者自解码器侧的视频比特流解析出当前cb的qp信息。若当前cb的区域小于qp最小块区域,则从共享qp信息导出当前cb的qp信息。例如,当处理共享共享qp信息的一组cb的第一已编解码的cb或最后编解码cb时,共享qp信息被并入视频比特流中或从视频比特流解析。第一已编解码的cb根据编码或解码顺序在组内的其他cb之前被编解码,而最后编解码的cb根据编码或解码顺序编码在组中的所有其他cb之后被编解码。一些实施例中的共享qp信息被标示在具有至少一个非零残差变换系数的cb中,例如,共享qp信息被标示在包含至少一个非零残差变换系数的第一cb中。共享共享qp信息的cb组的总区域大于或等于qp最小块区域。在比特流中不标示具有小于qp最小块区域的区域的cb的单独qp信息。在一个实施例中,当前cb重新使用针对位于当前cb上方或当前cb左侧的先前编解码的cb标示的共享qp信息,并且这两个cb的总区域等于qp最小块区域。

由块的组合深度(combineddepth)调节的qp信息信令具有调节qp信息信令的视频数据处理方法的一些实施例定义当分区结构组合两个或多个分区方法,例如qtbt分区方法时,基于组合深度传送qp信息的最小块大小。在一个实施例中,对于通过qtbt分区方法分区的块,通过由cb的四叉树深度和二叉树深度导出的组合深度确定是否标示cb的qp信息。计算组合深度的一示例是通过四叉树深度加上一半的二叉树深度。当计算出的组合深度小于或等于深度标志diff_cu_qp_delta_depth时,标示编解码块的qp信息。在本实施例中,若赋能标志cu_qp_delta_enabled_flag指示qp信令信令被赋能并且组合深度小于或等于深度标志diff_cu_qp_delta_depth,则设置检查标志iscuqpdeltacoded,如下所示:

if(cu_qp_delta_enabled_flag&&quadtreedepth+(binarytreedepth>>1)<=diff_cu_qp_delta_depth){

iscuqpdeltacoded=0

cuqpdeltaval=0

},其中quadtreedepth是cb的四叉树深度,binarytreedepth是cb的二叉树深度。

深度标志diff_cu_qp_delta_depth指定诸如ctb大小的最大编解码块大小与用于传送qp信息的最小块大小之间的深度差的差异。解码器根据深度标志从ctb大小确定qp信息信令的最小块大小。若深度标志不存在,则深度标志diff_cu_qp_delta_depth的值可以推定为零,并且当深度标志为零时,qp信息信令的最小块大小等于ctb大小。当深度标志diff_cu_qp_delta_depth的值是有效范围内的最大值时,qp信息信令的最小块大小等于最小cb大小。

若色度赋能标志cu_chroma_qp_offset_enabled_flag指示色度qp信息信令被赋能且组合深度小于或等于色度深度标志diff_cu_chroma_qp_offset_depth,则设置色度检查标志iscuchromaqpoffsetcoded,如下所示:

if(cu_chroma_qp_offset_enabled_flag&&quadtreedepth+(binarytreedepth>>1)&lt;=diff_cu_chroma_qp_offset_depth){

iscuchromaqpoffsetcoded=0

}.

在另一示例中,组合深度通过以下等式计算:

quadtreedepth+((binarytreedepth+1)&gt;&gt;1)

在前述实施例的变型中,通过将四叉树深度乘以2加上二叉树深度来计算组合深度,并将该组合深度与深度标记的两倍进行比较。以下伪代码演示了此示例:

由组合深度调节的qp信息信令的上述实施例仅描述根据qtbt分区方法分区的块的情况,然而,qp信息信令方法不限于qtbt分区方法。由组合深度调节的qp信息信令方法可以应用于通过组合两种或更多种分区方法的任何组合分区方法分割的块。在另一个实施例中,基于第一分区方法的第一分区深度和第二分区方法的第二分区深度来计算组合深度。在计算组合深度时,可能会对不同分区方法的分区深度应用不同的加权。对于使用四叉树分区方法拆分块,然后使用三叉树分区方法拆分块的组合分区方法,基于四叉树深度和三叉树深度计算组合深度。用于计算组合深度的权重对于四叉树深度可以是1,对于三叉树深度可以是3/4。

在四叉树叶块处的qp信息信令具有调节的qp信息信令的视频数据处理方法的一些实施例设置约束,使得qp信息信令的单位是qtbt块分区结构中的四叉树叶块。qtbt分区方法首先根据四叉树分区递归分块,然后从四叉树叶块开始进行二叉树分区。图8a示出了根据qtbt分区方法的块分区结构的示例,其中实线是四叉树分区边界,虚线是二叉树分区边界。图8b示出了图8a的相应的四叉树叶块,其中针对每个四叉树叶块标示qp信息,例如亮度块或色度块的δqp,或亮度块或色度块的qp偏移,且每个四叉树叶块中的一个或多个二叉树编解码块共享相同的qp信息。该qp信息信令方法也可以应用于根据两个或更多个分区方法一个接一个地分割块的其他分区方法。例如,分区方法首先根据第一分区方法递归地分块,然后从第一分区方法的叶块开始第二分区方法。qp信息信令方法将第一分区方法的叶块设置为qp信息信令的单位,并且第一分区方法的叶块中通过第二分区方法分割的所有较小块共享相同的qp信息。

用于亮度和色度分量的单独的块分区结构在hevc中,块分区结构对于亮度和色度分量是相同的,除非块分区结构导致一个或多个色度块小于最小色度编解码块大小。仅针对亮度分量标示δqp,而根据针对共位的亮度块和色度qp偏移的δqp导出色度块的qp。本发明的一些实施例允许亮度和色度分量的单独的块分区结构为编解码色度分量提供更大的灵活性。在一个实施例中,用于亮度和色度分量的两个独立的深度标志被标示,而在另一个实施例中,在亮度和色度分量之间共享相同的深度标志。在另一个实施例中,色度分量的深度标志diff_cu_qp_delta_depth_c被设置为取决于亮度分量的深度标志diff_cu_qp_delta_depth的值。例如,色度分量的深度标记的值由亮度分量减去n的深度标记导出,其中n是大于零的整数。可以标示用于色度分量的深度标志diff_cu_qp_delta_depth_c,以指定色度编解码树块(ctb)尺寸和最小色度编解码块(cb)尺寸之间的差异,用于传送包括δqpcu_qp_delta_abs的绝对值的qp信息和δqpcu_qp_delta_sign_flag的正负号用于色度分量。该深度标志diff_cu_qp_delta_depth_c的值被限制在零至log2值的最大和最小编解码块大小之间的差log2_diff_max_min_luma_coding_block_size(包含)的范围内。当该深度标志不存在时,深度标志diff_cu_qp_delta_depth_c的默认值可以被推断为零。

当分别确定亮度和色度分量的块分区结构时,可以分别针对亮度和色度分量标示两个δqp。用于确定δqp信令(诸如mincuqpdeltaarea、log2mincuqpdeltaarea或log2mincuqpdeltasize之类)的最小块大小的语法元素也可以针对序列级别,图像级别或切片级别中的亮度和色度分量被分别编解码。一些实施例中的色度δqp可以从共位的亮度块的δqp或最终qp来预测。

在一些实施例中,用于色度分量的qp最小块区域由亮度分量的qp最小块区域确定。标示一个实施例中的标志,以指示用于δqp信号的最小色度块大小的语法元素(例如mincuqpdeltaareac或log2mincuqpdeltaareac)是否根据与取样亮度和色度分量的颜色取样比率相同的比例来确定。例如,对于4:2:0取样格式,该标志用于指示色度分量mincuqpdeltaareac的语法元素的值是否在亮度分量的语法元素mincuqpdeltaarea中指示的值的四分之一。若语法元素在log2值中表示,则该标志用于指示色度分量log2mincuqpdeltaareac的语法元素的值是否等于亮度分量的语法元素的值减去2(即log2mincuqpdeltaarea-2)。

在一个实施例中,当对多于一个颜色分量进行编解码时,例如当语法元素chromaarraytype大于零时,为三个颜色分量分别标示三个δqp,针对每个亮度分量y、色度分量cb和cr分别标示δqp。在本实施例中,用于亮度和色度分量的δqp信息被单独标示,并且针对色度分量省略了色度qp偏移的信令。

当分隔块分区结构用于亮度和色度分量时,另一个实施例重新使用色度分量的亮度δqp。在该实施例中,由于色度块的色度δqp可以由共位(co-located)的亮度块的δqp和色度qp偏移导出,所以仅信令一个亮度分量的δqp和色度qp偏移。表示在视频比特流中标示的色度qp偏移量的语法元素可以包括色度qp偏移标志cu_chroma_qp_offset_flag和色度qp偏移指数(index)cu_chroma_qp_offset_idx。指示δqp是否被色度分量重新使用的重用标志可以在序列级别、图像级别或切片级别被标示以自适应地赋能或禁能δqp的重用。若重用标志指示δqp的重用被禁能,则标示两个或更多个δqp用于亮度和色度分量。

图9是示出根据区域的比较结果有条件地标示qp信息的视频数据处理方法的实施例的流程图。图9中描述的视频数据处理方法可以应用于亮度分量和色度分量中的一个或多个。在步骤s902中确定qp最小块区域,例如,自视频比特流中标示的一个或多个语法元素中导出。在步骤s904中接收当前切片中的当前cb的输入数据,并且在步骤s906中根据当前cb的宽度和高度来计算当前cb的区域。在步骤908中,将当前cb的区域与qp最小块区域进行比较,若当前cb的区域大于或等于qp最小块区域,则视频数据处理方法进行到步骤s910,否则,视频数据处理方法进行到步骤s912。在步骤s910中确定当前cb的qp信息并将其合并到视频比特流中或从视频比特流解析当前cb的qp信息,而在步骤s912中,从共享qp信息导出当前cb的qp信息。在步骤s912中,由于当前cb没有单独的qp信息被标示,包括当前cb的一组cb共享共享qp信息。然后,在步骤s914中,将当前cb的qp信息用于量化残差信号或恢复量化残差信号。步骤s916检查当前cb是否是当前切片中的最后一个cb,若当前cb不是最后一个cb,则视频数据处理方法重复步骤s904至步骤s916;否则视频数据处理在步骤s918中结束当前切片的量化或逆量化。根据一些实施例,比较步骤s908还可以确定当前cb中是否存在任何非零残差变换系数,并且当至少一个非零残差变换系数存在于当前cb时,编码器或解码器仅进行到步骤s910或步骤s912。若当前cb中没有非零残差变换系数,这意味着所有系数都为零,因为当前cb的量化或反量化可能被跳过,则不需要当前cb的qp信息的信令。

图10是示出根据本发明的另一实施例的示例性视频数据处理方法的流程图。代替比较多个区域,图10所示的实施例将组合深度与深度标记进行比较。图10所示的视频数据处理方法也可以应用于一个或多个亮度分量和色度分量。在流程图中,在步骤s1002中确定深度标志,例如,深度标志是从视频比特流中标示的一个或多个语法元素导出。在步骤s1004中接收当前切片中当前cb的输入数据。在步骤s1006中计算当前cb的组合深度,其中根据第一分区深度和第二分割深度计算组合深度。根据首先使用第一分区方法分区,然后分割第二分区方法的组合分区方法,对当前切片中的cb进行分区。步骤s1008检查当前cb的组合深度是否小于或等于深度标志,若是,则视频数据处理进行到步骤1010,否则进入步骤1012。在步骤s1010中确定当前cb的qp信息并将其合并到视频比特流中或从视频比特流解析当前cb的qp信息;而在步骤s1012中从共享qp信息确定当前cb的qp信息。在步骤s1014中,使用从步骤s1010或s1012确定的qp信息量化残差信号或恢复量化残差信号。步骤s1016检查当前cb是否为当前切片中的最后一个cb,并且若当前cb并非当前切片中的最后一个cb,则视频数据处理方法重复步骤s1004至步骤s1016,否则,对于当前切片的量化或逆量化操作在步骤s1018中结束。类似于图9,比较步骤s1008还可以确定当前cb中是否存在任何非零残差变换系数,并且仅当当前cb中存在至少一个非零残差变换系数时,才执行步骤s1010或步骤s1012中的qp信息确定或信令。当当前cb中的所有残差变换系数为零时,因为跳过当前cb的量化或逆量化,不需要qp信息信令。

图11示出了实现本发明的实施例的视频编码器1100的示例性系统框图。帧内预测1110基于当前图像的重构视频数据提供帧内预测值。帧间预测1112执行运动估计(motionestimation,简写为me)和运动补偿(motioncompensation,简写为mc),以基于来自其他一个或多个图像的视频数据提供预测值。帧内预测1110或帧间预测1112都将选定的预测值提供给加法器1116,以形成预测误差,也称为残差。当前块的残差通过变换(t)1118进一步处理,随后进行量化(q)1120处理。然后,经熵编码器1134对经变换和量化的残差信号进行编码以形成视频比特流。在q1120中,根据区域的比较结果或深度的比较结果,确定当前cb的qp信息并有条件地标示在视频比特流中。根据实施例,若当前cb的区域大于或等于最小qp块区域,则确定当前cb的各(individual)qp信息并标示在视频比特流中。根据另一实施例,若当前cb的组合深度小于或等于深度标志,当前cb的各qp信息被确定并标示在视频比特流中。然后,利用包括qp信息的边信息来打包视频比特流。通过逆量化(iq)1122和逆变换(it)1124处理当前块的经变换和量化的残差信号,以恢复预测残差。根据本发明的实施例,当前cb的qp信息也用于恢复iq1122中的量化残差信号。如图11所示,通过在重构(rec)1126处加回所选择的预测值来恢复残差,以产生重建的视频数据。重建的视频数据可以存储在参考图像缓冲器(referencepicturebuffer)1132中,并用于预测其它图像。由于编码处理,来自rec1126的重构的视频数据可能会受到各种损害,因此,在将重建的视频数据存储在参考图像缓冲器1132中之前,将环路处理滤波器(in-loopprocessingfilter)1128应用于重建的视频数据,以进一步提高图像质量。与qp信息相关联的语法元素被提供给熵编码器1134,用于并入到视频比特流中。

在图12中示出了图11的视频编码器110的对应视频解码器1200。由视频编码器编码的视频比特流是视频解码器1200的输入,并由熵解码器1210解码以解析和恢复经变换和量化的残差信号等系统信息。根据一个实施例,若当前cb的区域大于或等于最小qp块区域,则熵解码器1210解析当前cb的qp信息。根据另一实施例,若当前cb的组合深度小于或等于深度标志,则熵解码器1210解析当前cb的qp信息。解码器1200的解码处理类似于编码器1100处的重建循环,除了解码器1200仅需要帧间预测1214中的运动补偿预测。每个块由帧内预测1212或帧间预测1214进行解码。切换1216根据解码模式信息,从帧内预测1212选择帧内预测或从帧间预测1214选择帧间预测。通过逆量化(iq)1220和逆变换(it)1222恢复与每个块相关联的经变换和量化的残差信号。iq1220根据由熵解码器1210解析的qp信息来恢复量化的残差信号。恢复的残差信号是通过在rec1218中加回预测值来重构,以产生重建的视频。重建的视频由环路处理滤波器(滤波器)1224进一步处理,以生成最终解码的视频。若当前解码的图像是参考图像,则当前解码图像的重构视频也存储在参考图像缓冲器1228中用于解码顺序中的后续图像。

图11和图12中的视频编码器1100和视频解码器1200的各种组件可以由硬件组件、被配置为执行存储在内存中的程序指令的一个或多个处理器或硬件和处理器的组合来实现。例如,处理器执行程序指令以控制与当前图像相关联的输入数据的接收。处理器配备有单个或多个处理核心。在一些示例中,处理器执行程序指令以在编码器1100和解码器1200中的一些组件中执行功能,并且与处理器电耦合的内存用于存储程序指令、对应于块的重建图像的信息和/或编码或解码过程中的中间数据。在一些实施例中的内存包括非挥发性计算器可读介质,诸如半导体或固态内存、随机存取内存(ram)、只读内存(rom)、硬盘、光盘或其他合适的记忆介质。内存还可以是上面列出的两个或更多个非挥发性计算器可读介质的组合。如图11和图12所示,编码器1100和解码器1200可以在相同的电子设备中实现,因此若在相同的电子设备中实现,则编码器1100和解码器1200的各种功能组件可以被共享或重用。例如,图11中的重构1126、逆变换1124、逆量化1122、环路处理滤波器1128和参考图像缓冲器1132中的一个或多个也可以用作图12中的重构1218、逆变换1222、逆量化1220、环路处理滤波器1224和参考图像缓冲器1228。

具有用于视频编解码系统的经调整的qp信息信令的视频数据处理方法的实施例可以在集成到视频压缩软件中的视频压缩芯片或程序代码中的电路中实现,以执行上述处理。例如,可以在要在计算器处理器、数字信号处理器(dsp)、微处理器或现场可编程门阵列(fpga)上执行的程序代码中实现对当前块设置的当前模式的确定。可以通过执行定义本发明所体现的特定方法的机器可读软件代码或固体代码来将这些处理器配置成执行根据本发明的特定任务。

在不脱离本发明的精神或基本特征的情况下,本发明可以以其它具体形式实施。所描述的例子仅在所有方面被认为是说明性的而不是限制性的。因此,本发明的范围由所附权利要求书而不是前面的描述来指示。属于专利申请范围的等同物的含义和范围内的所有变化将被包括在其范围内。

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