用于四叉树加二叉树拆分块的候选集决定的方法与装置与流程

文档序号:15282425发布日期:2018-08-28 23:41阅读:169来源:国知局

本发明要求递交于2017年2月21日,号码为62/461,303,标题为“一种新的用于合并候选处理的视频编解码方法”的美国临时专利申请案的优先权,该美国临时专利申请案整体通过引用纳入其中。

本发明涉及对多个四叉树拆分块(quad-treesplittingblock)进行编码或解码的视频数据处理方法以及装置,具体地,本发明涉及对当前块进行编码或解码的候选集决定(candidatesetdetermination),所述当前块通过四叉树拆分从父块(parentblock)分割而来。



背景技术:

高效视频编码标准(thehigh-efficiencyvideocoding,简称hevc)是由来自于itu-t研究小组的视频编解码专家组成的视频编码联合小组(jointcollaborativeteamonvideocoding,简称jct-vc)发展而来的最新的视频编解码标准。该hevc标准依赖基于块(block-based)编码结构,其中将每一视频切片(slice)分成多个正方形编码树单元(codingtreeunit,简称ctu),也叫最大编码单元(largestcodingunit,简称lcu)。在hevc主规格(profile)中,ctu的最小以及最大尺寸由在序列参数集(sequenceparameterset,简称sps)中发信的多个语法元素所定义。光栅扫描次序用于处理切片中的多个ctu,每一ctu可使用四叉树分割方法进一步递归地分成一个或多个编码单元(codingunit,简称cu)。在四叉树分割方法的每一深度中,n×n块是单个叶cu或者被拆分成四个尺寸为n/2×n/2的块,其为编码树节点,如果编码树节点不进一步被拆分,它就是叶cu。叶cu的尺寸被限制为大于或等于最小允许cu尺寸,最小允许cu尺寸也在sps中被定义。四叉树块分割结构的一个示例如图1所示,其中实线指示ctu100中的cu边界。

预测决定在cu层级上做出,其中使用帧间图像预测或帧内图像预测对每一cu进行编码,一旦完成cu分层树的拆分,根据用于预测的pu分割类型,每一个cu进一步被拆分成一个或多个预测单元(predictionunit,简称pu)。图2示出了在hevc标准中定义的8个pu分割类型,根据图2所示的8个pu分割类型中中的一个,每个cu被拆分成一个,两个或四个pu。因为对pu中的所有像素应用相同的预测进程,pu作为共享预测信息的基础代表块,在pu的基础上,预测信息被传达到解码器。在获得由预测进程生成的残差数据后,根据另一个四叉树块分割结构,属于cu的残差数据被拆分成一个或多个转换单元(transformunit,简称tu)以将所述残差数据转换成用于紧凑数据表示(compactdatarepresentation)的转换系数,图1所述的虚线指示ctu100中的tu边界,tu是用于将转换和量化应用于残差数据的基础代表块。对于每个tu,将具有与tu相同尺寸的转换矩阵应用于残差数据以生成转换系数,并且在tu的基础上,这些转换系数被量化和转达至解码器。

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

可选的分割方法叫二叉树块分割方法,其中一个块可以递归地拆分成两个较小块。图3示出了用于二叉树分割方法的6个示例性拆分类型,包括对称拆分类型31和32以及非对称拆分类型33,34,35以及36。一个最简单的分割方法仅允许对称水平拆分类型32以及对称垂直拆分类型31,对于具有n×n尺寸的给定块,第一旗标(flag)被发信以指示这一块是否被分割成两个较小块,如果所述第一旗标指示拆分,紧接着发信第二旗标,其指示拆分类型。如果拆分类型是对称水平拆分,这一n×n块被拆分成两个尺寸为n×n/2块;如果拆分类型是对称垂直拆分,这一n×n块被拆分成两个尺寸为n/2×n块,这一拆分进程可以重复直到拆分块的尺寸、宽度或高度达到由视频比特流中高层级语法所定义的最小允许尺寸,宽度或高度。如果块高度小于最小高度,水平分割将不被允许,类似地,如果块宽度小于最小宽度,垂直分割将不被允许。

图4a和4b示出了根据二叉树分割方法的块分割的示例以及它对应的编码树结构。在图4b中,在二叉树编码树每一拆分节点(也就是非叶节点)的一个旗标用于指示拆分类型,旗标值等于0指示水平对称拆分类型而旗标值等于1指示垂直对称拆分类型。在编码或解码期间,有可能在块分割的任意层级上应用二叉树分割方法,例如,二叉树分割方法可以用于将一个切片分割成多个ctu,将一个ctu分割成多个cu,将一个cu分割成多个pu或者将一个cu分割成多个tu。因为二叉树块分割结构的多个叶节点是用于预测和转换编解码两者的基础代表块,通过省略从cu到pu以及cu到tu的拆分,也可能简化分割进程。

虽然二叉树分割方法支持更多的分割结构以及因此比四叉树分割方法更灵活,但是在多个可能的形状中选择最佳分割形状增加了编解码的复杂性。一种合成的分割方法叫做四叉树加二叉树(quad-tree-binary-tree,简称qtbt)结构,将四叉树分割方法和二叉树分割方法结合在一起,其平衡了两种分割方法之间的编解码效率以及编解码复杂性。示例性的qtbt结构如图5a所示,其中大的块首先由四叉树分割方法进行分割然后由二叉树分割方法进一步分割,图5a示出了根据qtbt分割方法的块分割结构的示例以及图5b示出了图5a中示出的qtbt块分割结构的编码树形图。图5a以及图5b中的实线指示四叉树分割而虚线指示二叉树分割。与图4b类似,在二叉树结构的每一拆分节点(也就是非叶节点),一个旗标指示使用了哪一拆分类型,0指示使用了水平对称分割类型以及1指示使用了垂直对称分割类型。图5a中的qtbt结构将大块拆分成多个较小块,并且这些较小块可以被由预测以及转换编解码处理而不需要进一步的拆分。在一个示例中,图5a中的大块是具有尺寸为128×128的编码树单元,最小允许的四叉树叶节点尺寸是16×16,最大允许的二叉树根节点(rootnode)尺寸是64×64,最小允许的二叉树叶节点的宽度或高度是4,以及最小允许的二叉树深度是4。在这一示例中,叶四叉树块的尺寸在16×16到128×128的范围内,并且如果叶四叉树块的尺寸是128×128,因为尺寸超过了最大允许二叉树根节点尺寸64×64,它不可以由二叉树结构进一步拆分,叶四叉树块用作二叉树深度等于0的根二叉树块。当二叉树深度达到4的时候,表示不能进行拆分,当二叉树节点的宽度等于4的时候,不能进行垂直拆分,并且当二叉树节点的高度等于4的时候,不能进行水平拆分。对于在i-切片中编码的多个ctu,用于色度编码树块(ctb)的qtbt块分割结构可以不同于用于对应的亮度ctb的qtbt块分割结构,对于在p或b切片中编码的多个ctu,相同的qtbt块分割结构可以应用于色度ctb以及亮度ctb两者。

为了提高运动信息编解码的编解码效率,提出了skip(跳过)和merge模式并在hevc标准中被采用。skip模式和merge模式通过从空间相邻块(spatiallyneighboringblock)或时间同位块(temporalcollocatedblock)继承运动信息,减少用于发信运动信息的数据位。对于在skip或merge模式中编码的pu,因为pu重新使用所选择的最终候选的运动信息,因此仅对所选择的所最终候选的索引进行编码而非运动信息。由pu所重新使用的运动信息可以包括运动向量(mv)、预测方向以及、所选择最终候选的参考图像索引。当在merge模式中对pu进行编码的时候,预测误差(predictionerror),也叫残差数据,也被编码,然而,因为残差数据强制为0,skip模式进一步跳过残差数据的信令。图6示出了用于当前块60的merge候选集,其中所述merge候选集由四个空间merge候选以及一个时间merge候选组成,其被定义在hevc标准发展阶段中的hevc测试模式3.0(hm-3.0)。第一merge候选是左边预测子am620,第二merge候选是上方预测子bn622,第三merge候选是tbr624以及tctr626的多个第一可用时间预测子的一个时间预测子,第四merge候选是右上方预测子b0628,以及第五merge候选是左下方预测子a0630。编码器从候选集中选择一个最终候选,用于基于率失真优化(rate-distortionoptimization,简称rdo)决定在skip模式或merge模式中对每一个pu进行编码,并且表示所选择的最终候选的一个索引被发信到解码器。解码器根据在视频比特流中传输的索引,从候选集中选择相同的最终候选。

图7示出了在hm-4.0中定义的用于当前块70的merge候选集,其中所述merge候选集由多达四个空间merge候选以及一个空间merge候选组成,其中四个空间merge候选来自于四个空间预测子a0720,a1722,b0724以及b1726,一个空间merge候选来自于时间预测子tbr728或时间预测子tctr730。仅当时间预测子tbr728不可用的时候选择时间预测子tctr730。左上方预测子b2732用于替代不可用的空间预测子,在四个空间merge候选以及一个时间merge候选的获取进程以后,应用修剪进程(pruningprocess)以移除多个冗余merge候选。如果在修剪进程后的merge候选的数目小于5,那么获得一个或多个额外候选并且添加到merge候选集中。



技术实现要素:

本发明提出了一种qtbt结构中四叉树拆分的合并候选禁止方法,以提高合并(merge)模式的编解码效率。

视频处理的方法和装置包括在视频编解码系统中决定用于当前块的候选集,包括:接收与当前图像中所述当前块有关的输入数据,其中所述当前块由四叉树拆分从父块拆分而来;决定用于所述当前块的候选集,并且基于从所述候选集中选择的最终候选对所述当前块进行编码或解码。所述当前块是父块中最后处理的块,在处理从与所述当前块相同的父块分割而来的三个相邻块后对其进行处理。例如,所述当前块是所述父块中右下方块。本发明一些实施例决定用于所述当前块的候选集包括候选禁止方法,如果所述三个相邻块在帧间预测模式中进行编码并且所述三个相邻块的运动信息是相同的,所述候选禁止方法禁止从所述三个相邻块中任一个获得的空间候选,例如,如果所述三个相邻块在amvp模式、merge模式或者skip模式中进行编码并且所述三个相邻块的运动信息是相同的,从所述候选集中移除从所述三个相邻块的其中一个获得的所述空间候选,所述当前块重新使用所选择最终候选的运动信息用于运动补偿以获得用于所述当前块的预测子。

在一个实施例中,在视频比特流中发信旗标以指示所述候选禁止方法是启用的还是禁止的,如果所述候选禁止方法是启用的,当所述三个相邻块在帧间预测模式中进行编码并且所述三个相邻块的运动信息是相同的时候,禁止从所述三个相邻块的任一个获得的空间候选或者从所述候选集中移除所述空间候选。可以在所述视频比特流中的序列层级、图像层级、切片层级或者预测单元层级发信所述旗标。

在一些实施例中,候选集决定方法进一步包括,如果所述三个相邻块在帧间预测模式中进行编码并且所述三个相邻块的运动信息是相同的,执行修剪进程。所述修剪进程包括扫描所述候选集以决定所述候选集中的任一候选是否等于所述三个相邻块的运动信息,并且从所述候选集中移除等于所述三个相邻块的运动信息的候选。例如,编码器或解码器存储所述三个相邻块的运动信息以及将其与所述候选集中每一个候选的运动信息进行比较。在视频比特流的序列层级、图像层级、切片层级或者预测单元层级中发信旗标以指示所述修剪进程是启动的还是禁止的。

在各种候选集决定方法中,所述三个相邻块的至少一个进一步被拆分成多个子块用于运动估算或运动补偿,编码器或解码器进一步检查所述三个相邻块内的运动信息以决定所述三个相邻块内的运动信息定是否相同。在一个实施例中,如果所述三个相邻块中的所述运动信息是相同的并且所述多个子块在帧间预测模式中进行编码,禁止从所述三个相邻块中获得的任一空间候选。在另一实施例中,如果所述三个相邻块内的所述运动信息都是相同的并且所述多个子块在帧间预测模式中进行编码,执行修剪进程,所述修剪进程包括扫描所述候选集并且从所述候选集中移除等于三个相邻块中任一个子块的运动信息的任一候选。一个实施例通过检查所述三个相邻块中内的每一最小块以决定所述三个相邻块内的运动信息是否相同,其中所述每一最小块的尺寸为m×m并且所述三个相邻块中的每一子块大于或等于所述最小块的尺寸。可以在视频比特流中发信旗标以指示所述候选禁止方法或所述修剪进程是启用的还是者禁止的。

用于由四叉树拆分从父块分割而来的当前块的候选集决定的一些其他实施例,决定用于所述当前块的候选集以及决定从相同父块分割而来的三个相邻块的运动信息,根据所述三个相邻块的运动信息执行修剪进程,以及基于从所述候选集中选择的最终候选的运动信息获得的预测子,对所述当前块进行编码或解码。在处理所述三个相邻块后对所述当前块进行处理,例如,所述当前块是所述父块的右下方块。当所述三个相邻块在帧间预测模式中进行编码以及所述三个相邻块的运动信息是相同的时候,执行修剪进程。所述修剪进程包括扫描所述候选集以决定所述候选集中的任一候选是否等于所述三个相邻块中的至少一个中任一子块的运动信息,并且从所述候选集中移除等于所述三个相邻块的运动信息的候选。基于所选择的最终候选的运动信息获得的预测子以对所述当前块进行编码或解码。

本发明进一步提供了用于视频编解码系统的装置,其决定用于由四叉树拆分从父块分割而来的当前块的候选集,其中所述当前块是父块中最后处理的块。装置的实施例接收当前块的输入数据,以及如果所述三个相邻块都在帧间预测模式中进行编码并且所述三个相邻块的运动信息是相同的,通过禁止从相同父块分割而来的三个相邻块的任一个中获得空间候选,以决定用于所述当前块的候选集。装置的一些实施例中,如果所述三个相邻块在帧间预测模式中进行编码并且所述三个相邻块的运动信息是相同的,通过执行修剪进程决定用于所述当前块的候选集,所述修剪进程从所述候选集中移除等于所述三个相邻块中的运动信息的任一候选。所述装置基于从所述候选集中选择的最终候选对所述当前块进行编码或解码。

本发明进一步提供了存储程序指令的非瞬态计算机可读介质,所述程序指令使得装置的处理电路基于候选集,执行视频编解码处理以对由四叉树分割而来的当前块进行编码或解码。在一些实施例中,通过禁止从三个相邻块中任一个获得的空间候选以决定所述候选集,所述三个相邻块从与所述当前块相同的父块分割而来并在所述当前块之前被处理。如果所述三个相邻块是帧间预测的块并且所述三个相邻块的运动信息是相同的,一些实施例的候选集通过执行修剪进程来决定,所述修剪进程移除等于所述三个相邻块运动信息任一候选。

通过本发明所提出的方法及装置,可以提高在合并模式下的编解码效率。

在获得下文具体实施例的描述以后,本发明的其他方面以及特征对本领域技术人员将是显而易见的。

附图说明

作为示例提出的本发明的各种实施例将参考以下附图进行详细描述,其中:

图1示出了根据四叉树分割方法将一个ctu拆分成多个cu以及将每个cu拆分成一个或多个tu的示例性编码树。

图2示出了在hevc标准中定义的用于将一个cu拆分成一个或多个pu的8个不同的pu分割类型。

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

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

图4b示出了对应于图4a所示的二叉树分割结构的编码树结构。

图5a示出了根据qtbt分割方法的示例性块分割结构。

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

图6示出了构造用于定义于hevc测试模式3.0(hn-3.0)中的当前块的merge候选集。

图7示出了构建用于当前块的定义于hm-4.0中的merge候选集。

图8a示出了第一实施例的示例,其中禁止从三个先前编码的相邻块的运动信息中选择用于当前块的空间候选。

图8b示出了在四叉树拆分之前的当前块以及三个先前编码的相邻块的父块。

图9示出了由四叉树拆分将父块分割成a部分,b部分,c部分以及d部分。

图10a-10b示出了应用空间候选禁止方法用于当前块的第三实施例的示例,其中所述当前块的左上方相邻块进一步以二叉树规格或四叉树规格拆分成多个子块。

图11示出了用于对当前块进行编码的视频数据处理方法的实施例的流程图,通过在候选集决定阶段禁止从三个相邻块中的任一个获得的空间候选。

图12示出了用于对当前块进行编码的视频数据处理方法的另一个实施例的流程图,通过在候选集决定阶段移除等于三个相邻块的运动信息的任一个候选。

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

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

具体实施方式

容易理解的是,本发明的于此所描述和所示的部件可以被排列和设计为不同的配置。因此,后续本发明系统以及方法实施例的更多的细节描述并不旨在限制本发明的范围,仅是本发明挑选出来的代表性实施例。

在整个说明书中提及“一个实施例”,“一些实施例”或相似的语句意味着特定的特征,结构或者与实施例结合描述的特性可以包括在本发明的至少一个实施例中。因此,在说明书不同位置出现的短语“在一个实施例中”或者“在一些实施例中”不需要指相同的实施例,这些实施例可以单独或结合一个或多个其他实施例来实施。此外,所描述的特征,结构或特性可以组合在一个或多个实施例的任一适当的规格中。本领域技术人员将能够意识到,本发明可以在不具有一个或多个特定特征的情况下被实施,或者使用其他方法,部件等等。在其他实施例中,未详细示出或描述公知的结构或操作以避免混淆本发明的方面。

本发明的实施例构造候选集用于对由四叉树分割方法分割的当前块进行编码或解码,例如,块由qtbt分割结构中的四叉树拆分进行分割。在下文中,候选集可以是merge候选集包括如图6或图7所示的一个或多个空间候选以及时间候选。所述候选集被构造以用于对merge模式或skip模式中的当前块进行编码或解码,通过编码器侧的rdo决定或者解码器侧视频比特流中传输的索引,从构造的候选集中选择的一个最终候选,以及根据所述最终候选的运动信息,通过获得预测子来对当前块进行编码或解码。

第一实施例。在本发明的第一实施例中,从空间以及时间相邻的块的运动信息中决定候选集,所述候选集具有用于由四叉树划分的当前块的候选禁止方法。图8a示出了第一实施例的示例,其禁止从三个先前编码的相邻块中选择用于当前的空间候选,其中三个先前编码的相邻块包括左上方相邻块802,上方相邻块804,或者左边相邻块806。当前块808,左上方相邻块802,上方相邻块804,以及左边相邻块806是从相同的父块80分割而来的四叉树拆分块,在四叉树拆分之前的父块80如图8b所示。一个父块80的示例是在qtbt结构中四叉树拆分以及二叉树拆分之前的根节点。在另一个示例中,从父块80分割而来的当前块以及三个相邻块是四叉树拆分的叶节点或者qtbt结构中的叶节点。在一些其他示例中的当前块以及三个相邻块是四叉树结构的叶节点或者四叉树结构的非叶节点。当在merge模式或者skip模式中对当前块808进行编码的时候,为了构造用于当前块808的候选集,如果三个相邻块是帧间预测块并且三个相邻块的运动信息是相同的,第一实施例的候选禁止方法总是禁止从三个先前编码的相邻块802,804,以及806中获得的空间候选,帧间预测块是在帧间模式中被编码的块,所述帧间模式包括高级运动向量预测(advancemotionvectorprediction,简称amvp)模式,skip模式以及merge模式。编码器或解码器检查如果mi_part_a=mi_part_b=mi_part_c,其中mi_part_a表示用于左上方相邻块802的运动信息(motioninformation,简称mi),mi_part_b表示用于上方相邻块804的运动信息,mi_part_c表示用于左边相邻块806的运动信息。如果三个相邻块的运动信息是相同的,从三个先前编码的相邻块802,804以及806中的任一个获得的运动信息不能被添加到用于当前块808的候选集中。运动信息被定义为运动向量、参考列表、参考索引以及其他merge(合并)模式敏感信息(mergemodesensitiveinformation),如局部亮度补偿旗标,中的一个或其组合。通过应用第一实施例,如果当前块808以及三个先前编码的相邻块由四叉树拆分从父块拆分而来,并且三个相邻块在帧间预测模式中被编码并且他们的运动信息是相同的,不允许将当前块808合并到任一左上方相邻块802,上方相邻块804以及左边相邻块806。

可以在视频比特流中发信一个旗标以指示先前描述的候选禁止方法是启用的或禁止的,如果旗标指示候选禁止方法是启用的,以及如果三个相邻块是帧间预测块以及三个相邻块的运动信息是相同的,因为当前块是禁止的或从所述当前块的候选集中移除,禁止从共享相同的父块的三个相邻块中的任一个获得的空间候选。例如,在视频比特流中的序列层级、图像层级,切片层级或者pu层级发信的旗标merge_cand_prohibit_en用于指示第一实施例的候选禁止方法是否是启用的,当这一旗标不存在的时候,旗标merge_cand_prohibit_en的值可以推测为1,其指示候选禁止方法是启用的。

第二实施例。在本发明的第二实施例中,应用了一种候选集修剪方法以决定用于由四叉树拆分从父块分割而来的当前块的候选集。因为在当前块之前对三个相邻块进行处理,当前块是父块中最后处理的块。例如,当以光栅扫描顺序执行编码处理的时候,当前块是右下方块。候选集修剪方法首先决定从当前块的相同父块分割而来的三个先前编码的相邻块是否都是帧间预测模式,帧间预测模式包括amvp模式,skip模式以及merge模式。如果三个相邻块都是帧间预测的块,候选集修剪方法然后决定三个先前编码的相邻块的运动信息以检查三个先前编码的相邻块的运动信息是否相同,也就是mi_part_a==mi_part_b==mi_part_c。在三个先前编码的相邻块都在帧间预测模式中进行编码并且它们的运动信息都相同的情况下,候选集修剪方法扫描用于当前块的候选集以检查候选集中的任一候选的运动信息是否等于三个相邻块的运动信息。具有与三个相邻块相同的运动信息的候选可以从其他空间相邻块或者时间同位块中获得。候选集修剪方法然后移除具有与相邻块相同运动信息的一个或多个候选,所述相邻块从当前块的相同父块中拆分而来。第二实施例可以与第一实施例结合以清除从相同父块分割而来的三个相邻块中获得的运动信息以及候选集中具有与三个相邻块相同的运动信息的任一候选。

第二实施例的候选集修剪进程的一个示例可以通过下面的虚拟码(pseudocodes)进行描述,如图9所示,其中d部分(partd)是当前块,a部分(parta),b部分(partb),c部分(partc)是从与当前块相同的父块拆分而来的三个相邻块。a部分是左上方相邻块,b部分是上方相邻块,c部分是左边相邻块,以及d部分是当前块。merge_mode(d部分)表示用于为d部分构造merge模式或者skip模式候选集的进程,如果a部分,b部分以及c部分是帧间模式,skip模式或者merge模式,a部分的运动信息(mi_part_a)被设置为修剪运动信息,并且a部分,b部分以及c部分的所有运动信息是相同的,其中prune_mi是存储修剪运动信息的变量。从空间以及时间候选构造的用于d部分的候选集包括n个候选,cand_list{c1,c2,c3,…c_n}。检查用于d部分的候选集中的每一候选以确保其不与修剪运动信息prune_mi相同。如果运动信息等于修剪运动信息prune_mi,从候选集中移除这一候选。运动信息可以包括运动向量、参考列表、参考索引以及其他合并模式敏感信息,例如局部亮度补偿旗标的一个或其组合,其中运动向量包括mv_x以及mv_y。

在一些示例中,根据视频比特流在序列层级,图像层级,切片层或pu层级中发信的旗标,第二实施例的候选集修剪进程可以是适应性启用的或者禁止的。例如,发信了旗标spatial_based_pruning_en,并且旗标的值为1指示候选集修剪进程是启用的,反之旗标值为0指示候选集修剪进程是禁止的,如果这一旗标在视频比特流中不存在,则旗标spatial_based_pruning_en可推测为1。

第三实施例。第三实施例与第一实施例相类似,除了第一实施例中的三个相邻块是叶节点而且没有进一步被拆分,而在第三实施例中,由四叉树拆分从与当前块相同父块分割而来的三个相邻块可以进一步拆分成较小子块。因为相邻块被进一步拆分成子块用于预测或者其他编解码处理,第三实施例的三个相邻块中的一个或多个不是叶节点。在第三实施例的一个示例中,由qtbt拆分结构生成多个叶块,例如多个pu,并且最小块定义为用于多个pu的最小允许块尺寸,因此每一个pu大于或者等于最小块。最小块的尺寸为m×m,其中m是大于1的整数。例如,根据hevc标准,最小块的尺寸是4×4,第三实施例的候选禁止方法首先检查三个相邻块内的所有最小块的运动信息是否都是相同的,以及所有最小块是否都在帧间预测模式中进行编码,其中帧间预测包括amvp,merge以及skip模式。如果三个相邻块内的所有最小块的运动信息是相同的且子块在帧间预测模式中进行编码,候选禁止方法禁止从三个相邻块内的任一子块中获得的空间候选。

图10a和图10b示出了第三实施例的示例,其中当前块1008,左上方相邻块1002,上方相邻块1004以及左边相邻块1006由四叉树拆分从相同的根源快拆分而来。如图10b所示,当前块1008是叶节点,而左上方相邻块1002以及左边相邻块1006进一步以二叉树或四叉树规格进一步被拆分。当构造用于编码当前块1008的候选集的时候,应用第三实施例的候选禁止方法。类似于第一实施例,第三实施例的候选禁止方法检查三个相邻块1002,1004以及1006的运动信息是否都是相同的以及三个相邻块是否都在帧间预测模式中进行编码。从相邻块1002以及1006拆分而来的子块的运动信息可以彼此不相同,因此需要检查三个相邻块内的每一子块。如果相邻块1004的运动信息和相邻块1002以及1006内的所有子块的运动信息是相同的,并且相邻块1004和相邻块1002以及1006中的所有子块在帧间模式,merge模式或者skip模式中进行编码,从相邻块1004获得的空间候选或者从相邻块1002以及1006的任一子块获得的空间候选被禁止包括在用于当前块1008的候选集中。如图10a所示,第三实施例的示例检查进一步拆分的相邻块1002以及1006内的每一最小块以决定相邻块1002以及1006中所有子块的运动信息是否是相同的。每一叶分割块大于或等于最小块。

可以在视频比特流中发信旗标以切换用于第三实施例的候选禁止方法的开或关,例如,在视频比特流中发信旗标merge_cand_prohibit_en以指示第三实施例的候选禁止方法是否是启用的,其中merge_cand_prohibit_en=1指示是启用的而merge_cand_prohibit_en=0指示禁止,当这一旗标在视频比特流中不存在的时候,merge_cand_prohibit_en的值可以推测为1。发信旗标merge_cand_prohibit_en中的单元的最小尺寸可以分别地在序列层级,图像层级,切片层级或pu层级中进行编码。

第四实施例。第四实施例的候选集修剪方法类似于第二实施例的候选集修剪方法,主要区别在于第四实施例中的三个相邻块可以进一步拆分成较小子块,其中三个相邻块以及当前块是由四叉树结构或qtbt结构分割的块。因为三个相邻块中的一个或多个进一步分割成较小子块,因此它们不是叶节点。第四实施例的候选集修剪方法首先检查相邻块中的运动信息是否都是相同的以及相邻块中的所有子块是否是帧间预测的块,然后如果运动信息是相同的以及相邻块中的所有子块都是帧间预测的块,记录运动信息mi_sub。一种决定相邻块中的所有运动信息是相同或者不同的方法包括:扫描一个或多个相邻块内的所有最小块,以及仅当相邻块中的所有最小块的运动信息是相同的时候,应用第四实施例的的修剪进程。最小块被定义为用于拆分的最小允许的尺寸,也就是,任一分割的子块将不会比最小块更小。

当在merge或skip模式中对当前块进行编码的时候,需要用于当前块的候选集,并且在获得用于当前块的初始候选集以后,初始候选集中的每一候选与记录的运动信息mi_sub进行比较。从用于当前块的候选集中修剪或移除具有与所记录的运动信息mi_sub相同的运动信息的候选。在获得从相邻块的a部分获得的所记录的运动信息mi_sub后,将下文中演示候选集修剪方法的示例中的虚拟码应用于用于当前块d部分的候选集cand_list{c1,c2,c3,…c_n}。当前块的d部分与相邻块的a部分的对应位置如图9所示,因为当三个相邻块中的所有运动信息都是相同的时候,将修剪进程应用于修剪候选集,因此用于设置修剪信息prune_mi所记录的运动信息mi_sub可以从相邻块的a部分,b部分以及c部分中的任一个获得。

在上述虚拟码中,merge_skip_mode_cand_list_build(d部分)是第四实施例中建立用于当前块d部分候选集的进程,以及prune_mi是存储用于修剪进程的运动信息的变量。这里的运动信息定义为{mv_x,mv_y,参考列表,参考索引,其他合并模式敏感信息,例如局部亮度补偿旗标}中的一个或其组合。

可以在视频比特流中传输旗标spatial_based_pruning_en以切换用于第四实施例的候选集修剪方法的开或关,其中旗标值为1指示候选集修剪方法是启用的以及旗标值为0指示候选集修剪方法是禁用的,当视频比特流中不存在旗标的时候,旗标spatial_based_pruning_en的值可以推测为1。用于发信旗标的单元的最小尺寸可以分别地在序列层级,图像层级,切片层或者pu层级中进行编码。

图11示出了通过构造用于当前块的候选集来对当前块进行编码或解码的视频数据处理方法的实施例的流程图。当前块是由四叉树拆分从父块分割而来的最后处理的块以及在或者将要在merge模式或者skip模式中对当前块进行编码。例如,当前块是父块中的右下方块,在处理来自于相同父块拆分而来的三个相邻块后对其进行处理。在步骤s1102中,从处理单元或存储设备中接收与当前块有关的输入数据,其中所述当前块以及三个相邻块由四叉树拆分从相同的父块拆分而来;在步骤s1104中,检查三个相邻块是否都在帧间预测模式中进行编码,例如amvp模式,merge模式或者skip模式,并且也检查所述三个相邻块的运动信息是否相同。如果三个相邻块在帧间预测模式中进行编码并且所述三个相邻块的运动信息是相同的,在s1106中,通过禁止从三个相邻块的任意一个获得的空间候选或者从候选集中移除所述空间候选,构造用于所述当前块的候选集。否则在步骤s1108中,根据传统的候选集构造方法构造用于所述当前块的候选集。在步骤s1106或s1108构造候选集以后,在s1110中,通过从所述候选集中选择用于当前块的一个最终候选集,并且根据最终候选的运动信息获得用于所述当前块的预测子,来基于所述候选集对所述当前块进行编码或解码。在编码器侧,所述最终候选通过编码器算法进行选择,例如率失真优化(rate-distortionoptimization,简称rdo),而在解码器侧,所述最终候选通过在视频比特流中发信的索引进行选择,所述当前块重新使用所述最终候选的运动信息用于运动预测或运动补偿。

图12示出了通过构造用于merge模式或skip模式的候选集来对当前块进行编码或解码的视频数据处理方法的另一个实施例的流程图。在步骤s1202中从处理单元或存储设备中接收与当前块有关的输入数据,其中所述当前块通过四叉树拆分从父块拆分而来并且所述当前块是所述父块中最后处理的块。在所述当前块之前对所述当前块的三个相邻块进行处理。在步骤s1204中,为了在merge模式或skip模式中对所述当前块进行编码,决定用于所述当前块的候选集,并且也决定以及存储三个相邻块的运动信息。在s1206中,检查所述三个相邻块是否都在帧间预测模式中进行编码以及所述三个相邻块的运动信息是否是相同的。如果所述三个相邻块在帧间预测模式中进行编码并且所述三个相邻块的运动信息是相同的,则在s1208中执行修剪进程,所述修剪进程包括:扫描用于所述当前块的候选集以决定所述候选集中的任一候选是否具有等于所述三个相邻块的运动信息,以及从所述候选集中移除等于所述三个相邻块的运动信息的候选。在s1210中,通过从所述候选集中选择一个最终候选并且从所述最终候选中获取一个预测子,来基于所述候选集对所述当前块进行编码或者解码。

图13示出了实施本发明各种实施例的视频编码器1300的示例性系统框图。帧内预测1310基于当前图像的重构的视频数据提供帧内预测子,帧间预测1312基于来自于其他一个或多个图像的视频数据执行运动估计(me)以及运动补偿(mc)以提供预测子。根据本发明的一些实施例,为了在merge模式或skip模式对当前块进行编码,如果三个相邻块以及当前块通过四叉树拆分从相同的父块分割而来,并且所述三个相邻块在帧间预测模式中进行编码以及所述三个相邻块的运动信息是相同的,通过禁止用从所述三个相邻块中的任一个获得的空间候选构造用于所述当前块的候选集。如果相邻块进一步分割成较小子块,当所述三个相邻块内的所有运动信息是相同的以及在帧间预测模式中对所有子块进行编码的时候,应用候选禁止方法。根据一些其他实施例,如果三个相邻块在帧间预测模式中编码并且所述三个相邻块的运动信息是相同的,对候选集执行修剪进程。所述修剪进程包括扫描为当前块重构的候选集以检查任一候选是否具有等于所述三个相邻块的运动信息,并且从所述候选集中移除运动信息等于所述三个相邻块的运动信息的候选。在相邻块不是叶节点的情况下,如果所述三个相邻块内的运动信息都是相同的并且在帧间预测模式中对所述三个相邻块的子块进行编码,应用修剪进程。帧间预测1312从所述候选集中决定用于所述当前块的一个最终候选以获得用于当前块的预测子。帧内预测1310与帧间预测1312中的任一个将所选择的预测子提供给加法器1316以形成预测误差,也叫残差。所述当前块的残差进一步由转换(t)1318处理,紧接着由量化(q)1320进行处理。已转换以及已量化的残差信号然后由熵编码器1334进行编码以形成视频比特流,所述视频比特流然后与边信息(sideinformation)一起包装(packed)。所述当前块的已转换以及已量化的残差信号由逆量化(iq)1322以及逆转换(it)1324进行处理以恢复预测残差。如图13所示,通过在重构(rec)1326处向所选择的预测子添加恢复的残差以生成重构的视频数据。所述重构的视频数据可以存储在参考图像缓冲器(ref.pict.buffer)1332中并用于其他图像的预测,由于编码处理,来自于rec1326的重构的视频数据可能受到各种损伤,因此在将所述重构的视频数据存储到参考图像缓冲器1332之前,将环内处理滤波器1328应用于所述重构的视频数据以进一步加强图像质量。

对应于图13的视频编码器1300的视频解码器1400如图14所示,由视频编码器编码的视频比特流可以输入到视频解码器1400,以及由熵解码器1410进行解码以解析并恢复所述已转换和已量化的残差信息以及其他系统信息。视频解码器1400的解码进程类似于在视频编码器1300的环内重构(reconstructionloop),除了解码器1400仅需要在帧间预测1414中的运动补偿预测。每个块由帧内预测1412或者帧间预测1414进行解码。根据解码的模式信息,开关1416从帧内预测1412中选择一个帧内预测子或者从帧间预测1414中选择帧间预测子。如果在帧间预测模式中对三个相邻块进行编码并且所述三个相邻块的运动信息是相同的,一些实施例的帧间预测1414通过禁止从三个相邻块的任意一个获得的空间候选,构造由四叉树拆分从父块分割而来的当前块的候选集,所述三个相邻块从与当前块相同的父块分割而来。其他的一些实施例的帧间预测1414使用修剪处理构造用于当前块的候选集,所述修剪进程移除所述候选集中具有与三个相邻块的运动信息相同的运动信息的任何候选。在至少一个相邻块进一步分割成子块用于预测的情况下,仅当所述三个相邻块的运动信息是相同的而且在所有子块是帧间预测模式编码的时候,应用候选禁止方法或修剪方法。帧间预测1414通过从所述候选集中选择一个最终候选获得用于所述当前块的预测子。通过逆量化(iq)1420以及逆转换(it)1422,恢复与每一块有关的已转换以及已量化的残差信号。通过在rec1418中将恢复的残差信号添加回预测子来对所述恢复的残差信息进行重构以生成重构的视频,所述重构的视频进一步由环内处理滤波器(滤波器)1424进行处理以生成最终的解码视频。如果当前解码的图像是参考图像,所述当前解码的图像的重构的视频也存储于参考图像缓冲器1428,以用于解码顺序中的后续图像。

图13和图14中视频编码器1300以及视频解码器1400的各种部件可以通过硬件部件、用于执行存储在存储器中的程序指令一个或多个处理器,或者硬件及处理器的组合来实现。例如,处理器执行程序指令以控制与当前图像有关的输入数据的接收,该处理器配备有一个或多个处理核心。在一些实施例中,该处理器执行程序指令以执行视频编码器1300以及视频解码器1400中一些部件的功能,并且电性耦合于处理器的存储器用于存储程序指令,对应于块的重构图像的信息,和/或在视频编码或解码进程中的中间数据。在一些实施例中的存储器包括非瞬时计算机可读介质,例如半导体或固态存储器、随机存取存储器、只读存储器(rom),硬盘,光盘或者其他适当的存储介质。该存储器也可以是两个或多个上述非瞬时计算机可读介质的组合。如图13以及图14所示,视频编码器1300以及视频解码器1400可以在相同的电子设备中实施,如果在相同的电子设备中实施,视频编码器1300以及视频解码器1400的各种功能部件可以是共享的或者重复使用的。

用于由二叉树拆分分割的当前块的候选集构造方法的实施例可以在集成到视频压缩芯片或集成到视频压缩软件中的程序代码中实现,以执行如上所述之处理。例如,决定用于当前块的当前模式集(currentmodeset)可以在计算机处理器、数字信号处理器(dsp)、微处理器、或场可编程门阵列(fpga)上执行的程序代码中实现。根据本发明,通过执行定义由本发明实施例的具体方法的计算机可读程序代码或者固件代码,这些处理器可以用于执行具体的任务。

在不背离本发明精神及基本特征的情况下,本发明可以以其他具体的形式实施,所述示例的所有方面仅被认为是说明性的而非限制性的,因此,本发明的范围由所附权利要求具体指示而非上述的描述,在权利要求等价的含义和变化的范围内都包括在本发明的范围内。

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