译码方法、设备、系统

文档序号:690447 发布日期:2021-04-30 浏览:13次 >En<

阅读说明:本技术 译码方法、设备、系统 (Decoding method, device and system ) 是由 高晗 塞米赫·艾森力克 陈建乐 阿南德·梅赫·科特拉 王彪 赵志杰 于 2019-09-18 设计创作,主要内容包括:一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,方法包括:从包含已编码图片的比特流的序列参数集(SPS)/图片参数集(PPS)/条带头部/区块头部中解析第一指示;确定多个译码树块的划分模式,如果第一指示是第一值,划分模式是由包括在比特流的SPS/PPS/条带头部/区块头部中的块尺寸限制参数和划分深度限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值或未出现在SPS/PPS/条带头部/区块头部中,划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;以及根据划分模式,将多个译码树块划分成多个译码块;以及对多个译码块进行解码。(A decoding method performed by a decoder for decoding an encoded picture that is divided into a plurality of coding treeblocks, the plurality of coding treeblocks being further divided into a plurality of coding blocks having a certain size, the method comprising: parsing a first indication from a Sequence Parameter Set (SPS)/Picture Parameter Set (PPS)/slice header/block header of a bitstream including encoded pictures; determining a partition mode of the plurality of coding tree blocks, the partition mode being limited by a block size limitation parameter and a partition depth limitation parameter included in an SPS/PPS/slice header/block header of the bitstream if the first indication is a first value; or determining a partitioning mode for the plurality of coding tree blocks, the partitioning mode being limited by a default block size limitation parameter and a default partitioning depth limitation parameter if the first indication is a second value or does not occur in the SPS/PPS/slice header/block header; and dividing the plurality of coding tree blocks into a plurality of coding blocks according to a division mode; and decoding the plurality of coded blocks.)

译码方法、设备、系统

技术领域

本申请(公开)的实施例总体上涉及视频译码领域,并且更具体地,涉及译码树块的关于高级语法的划分的领域。

背景技术

描述甚至相对较短的视频所需的视频数据量可以是大量的,这在具有有限带宽容量的通信网络上要流式传输或传递数据时可能会造成困难。因此,视频数据通常在通过现代电信网络进行传递之前被压缩。当视频存储在存储设备上时,由于内存资源可能有限,所以视频的大小也可能是个问题。视频压缩设备通常在源处使用软件和/或硬件在传输或存储之前对视频数据进行译码,从而减少表示数字视频图像所需的数据量。然后,在目的地处由视频解压缩设备接收压缩的数据,该视频解压缩设备对视频数据进行解码。由于网络资源有限并且对更高视频质量要求不断增长,因此,期望在几乎不牺牲图像质量的情况下改进的压缩和解压缩技术,该技术改善了压缩率。高效视频译码(high efficiency videocoding,HEVC)是由ISO/IEC运动图片专家组和ITU-T视频译码专家组发布的最新视频压缩,作为ISO/IEC 23008-2MPEG-H第2部分,或称为ITU-T H.265,并且HEVC提供了在相同视频质量水平下大约两倍的数据压缩率,或者在相同比特率下显著提高的视频质量。HEVC比特流由被称为网络抽象层(network abstraction layer,NAL)单元的数据单元序列组成。一些NAL单元包含参数集,这些参数集携带有关整个已译码视频序列或其中的图片子集的高级信息。其他NAL单元携带条带形式的已编码样本,这些条带属于HEVC中定义的各种图片类型之一。一些图片类型指示,可以丢弃图片而不会影响其他图片的可解码性,而其他图片类型指示比特流中可能进行随机存取的位置。这些条带包含有关已解码图片如何被管理、保留哪些先前图片以及将以什么顺序输出图片的信息。一些NAL单元包含可选的补充增强信息(supplementary enhancement information,SEI),该SEI有助于解码过程或以其他方式提供帮助,例如提供有关如何最好地显示视频的提示。语法元素被称为HEVC的“高级语法”部分,其描述了比特流的结构或者提供了适用于多个图片或图片中多个已译码块区域的信息,例如,参数集、参考图片管理语法和SEI消息。已经将大量注意力投放在了HEVC中的高级语法设计上,以使该设计广泛应用、灵活、对数据丢失具有鲁棒性,并且通常非常有能力向解码器和接收系统提供有用的信息。所谓的“高级语法”中包括若干参数集,这些参数集是针对比特率效率、错差恢复以及提供系统层接口的基本数据。HEVC中有参数集的层级,如图6所示,包括序列参数集(Sequence Parameter Set,SPS)和图片参数集(PictureParameter Set,PPS),它们与AVC中的对应参数集相似。此外,HEVC引入了一种新型的参数集,称为视频参数集(Video Parameter Set,VPS)。每个条带引用单个活跃的PPS、SPS和VPS,以存取用于对条带进行解码的信息。PPS包含适用于图片中所有条带的信息,因此,图片中的所有条带必须参考相同的PPS。不同图片中的条带也被允许参考相同的PPS。同理,SPS包含适用于同一已译码视频序列中所有图片的信息。VPS包含适用于已译码视频序列内所有层的信息,并且旨在用于HEVC的即将分层的扩展中,这将能够实现可缩放和多视图译码。虽然PPS对于单独的图片可能有所不同,但对已译码视频序列中的许多或所有图片都参考相同的PPS是很常见的。由于重复使用参数集避免了多次发送共享信息的必要,因此,重复使用参数集是比特率有效的。因为允许参数集内容由一些更可靠的外部通信链路承载或者在比特流内频繁重复,以确保它不会丢失,因此,这也是具有鲁棒性的。对于给定的条带,为了识别参数集类型层级的每个级别处的活动参数集,每个条带头部包含引用特定PPS的PPS标识符。PPS内是引用特定SPS的标识符。相反,SPS内是引用特定VPS的标识符。当要被解码的当前已译码条带引用参数集时,或者当SEI消息指示其激活时,参数集被激活。首次引用所有的活动的参数集时,所有的活动的参数集必须对解码器可用。参数集可以被带内或带外发送,并且可以重复发送。可以以任何顺序接收参数集。

在最新开发的通用视频译码(versatile video coding,VVC)标准中,与先前的标准例如HEVC相比,采用了更多的划分模式,例如,四叉树、二叉树和三叉树,以将图片划分成更精细且更灵活的形状,并且相应地更改了高级语法。期望提供有效的语法来提供可配置性并且能够实现速率降低。

发明内容

本申请(或本公开)的实施例提供了用于编码和解码的装置和方法。本发明是通过独立权利要求的特征限定的。有利实施例中的一部分是从属权利要求的主题。

根据第一实施例,提供了一种由解码器执行的解码方法,用于对被划分成多个(两个或两个以上的)译码树块(coding tree blocks,CTB)的已编码图片进行解码,所述多个(两个或两个以上的)译码树块被进一步划分成具有特定尺寸的多个译码块。通常,CTU可以被划分成代码块(code block,CB),但不是必须的。CTU内CB的尺寸(可能还有形状)可以相等或不同。该解码方法包括:从包括在包含所述已编码图片的比特流中的参数集中解析第一指示,所述参数集为(以下中的至少一个)序列参数集SPS、图片参数集PPS、条带头部或区块头部。该方法还包括(两者择一):确定所述多个译码块的特定尺寸,如果所述第一指示具有第一值,所述特定尺寸是由包括在所述比特流的参数集中的块尺寸限制参数限制的;或者确定所述多个译码块的特定尺寸,如果所述第一指示具有第二值或未出现在所述参数集中,所述特定尺寸是由默认尺寸限制参数限制的。最后,该方法包括对具有所述特定尺寸的所述多个译码块进行解码。在非限制性示例中,解码是诸如HEVC或其后续的混合解码。默认尺寸限制参数可以在标准中定义,因此,对于编码器和解码器是相同的。可替换地或附加地,默认可以在编码器和解码器处以相同的方式推导出,例如使用标准中定义的过程。

上述方法的优点之一可以是,采用块划分的编码和解码更有效:每当第一指示具有某一值或不包括在比特流中时,都可以使用默认设置。

进一步于第一实施例,第二实施例的方法还包括:确定所述多个译码树块的划分模式,如果所述第一指示具有所述第一值,所述划分模式是由包括在所述比特流的参数集中的划分深度限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值或未出现在所述参数集中,所述划分模式是由默认划分深度限制参数限制的;以及根据所述划分模式,将所述多个译码树块划分成具有所述特定尺寸的所述多个译码块。

换言之,在第二实施例中,除了尺寸限制参数(例如,可以被划分或者可以是划分结果的最大块尺寸或最小块尺寸),在默认情况下,还信号发送或设置了划分深度限制参数。

在第三实施例的方法中,进一步于第一或第二实施例,所述第一指示是标志,partition_constraints_control_present_flag。例如,第一指示采用两个可能值(第一值和第二值)中的一个来指示存在或不存在划分约束参数。这样的partition_constraints_control_present_flag提供了高效译码的优势-可以用单个比特对其进行译码。

进一步于第二或第三实施例,在第四实施例中,所述块尺寸限制参数包括最小四叉树尺寸MinQtSize,和/或最大二叉树尺寸MaxBtSize,和/或最大三叉树尺寸MaxTtsize;所述划分深度限制参数包括最大多类型叉树深度MaxMttDepth。

在该实施例中,可以通过最大多类型叉树深度的参数来对所有类型的叉树信号发送该深度,而可以对不同的叉树类型分别设置块尺寸限制参数。这可以促进效率的进一步提高。然而,本公开不限于这些选择。为了进一步简化,可以引入附加规则,例如,MinQtSize等于MaxBtSize等。

进一步于第二至第四实施例中任一项,在第五实施例中,所述默认尺寸限制参数包括最小四叉树尺寸MinQtSize,设置为4或设置为最小译码块尺寸MinCbSize,和/或最大二叉树尺寸MaxBtSize,设置为128或设置为译码树块尺寸用于帧间条带,以及设置为32用于帧内条带,和/或最大三叉树尺寸MaxTtSize,设置为64用于帧间条带,以及设置为32用于帧内条带;所述默认划分深度限制参数包括最大多类型叉树深度MaxMttDepth,设置为3。

虽然这些示例性数字可以提供有效的设置,但是本公开不限于这些特定数字。可以在标准中指定默认限制参数,或者可以基于先前信号发送的限制参数以预定义的方式(例如,由标准指定)推导出默认限制参数,或者例如比参数集不那么频繁地信号发送默认限制参数等。

根据第六实施例,提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述方法包括:从包含所述已编码图片的比特流的序列参数集SPS中解析第一指示,其中,所述第一指示允许所述解码器确定所述多个译码块的特定尺寸,如果所述第一指示是第一值,所述特定尺寸是由包括在所述比特流的SPS中的块尺寸限制参数限制的,或者如果所述第一指示是第二值,所述特定尺寸是由默认块尺寸限制参数限制的;如果所述第一指示是所述第一值,从所述比特流的SPS中解析第二指示,其中,如果所述第二指示具有第三值,所述第二指示指示第三指示被包括在包括所述多个译码块的条带的条带头部中,否则,所述第三指示不包括在所述条带头部中;

换言之,SPS中的第二指示可以采用两个值中的一个,即第三值和第四值。术语第三和第四仅仅是标记,以指示这些值在二进制译码中可以是但不必是与上述第一指示的第一和第二值相同的值。例如,第一值可以是1,以指示参数集中的限制参数的信令,并且第三值可以是1,以指示条带头部中的第三指示的信令。然而,在一些实现中,第三值可替代地由0译码。

如果所述第三指示具有第五值,所述第三指示指示条带级尺寸限制参数被包括在所述条带头部中,或者如果所述第三指示具有第六值,所述第三指示指示条带级尺寸限制参数被不包括在所述条带头部中。

这样,促进了在不同语法元素级别和具有不同频率的信令限制参数。在一些实现中,第一、第二和第三指示分别是一比特长的标志,即,其语法元素中的各个可以采用两个可能值中的一个来指示存在或不存在其他元素。

该解码方法还包括:如果所述第二指示具有所述第三值,解析所述第三指示;确定所述多个译码块的特定尺寸,如果所述第三指示具有所述第五值,所述特定尺寸是由包括在所述条带头部中的所述条带级尺寸限制参数限制的;或者确定所述多个译码块的特定尺寸,如果所述第三指示具有所述第六值或所述第二指示具有第四值,所述特定尺寸是由包括在所述比特流的SPS中的所述块尺寸限制参数限制的;或者确定所述多个译码块的特定尺寸,如果所述第一指示具有所述第二值,所述特定尺寸是由所述默认尺寸限制参数限制的;对具有所述特定尺寸的所述多个译码块进行解码。

条带级尺寸限制参数在这里可以至少部分(或全部)地与在SPS(或PPS)中信号发送的尺寸限制参数相同。例如,条带级尺寸限制参数可以包括MinQtSize、MaxBtSize、MaxMttDepth等中的一个或多个。

根据第七实施例,进一步于第六实施例,如果所述第三指示具有所述第五值,所述第三指示还指示条带级划分深度限制参数被包括在所述条带头部中;所述方法还包括:确定所述多个译码树块的划分模式,如果所述第三指示具有所述第五值,所述划分模式是由包括在所述条带头部中的所述条带级划分深度限制参数和所述条带级尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第三指示具有所述第六值或所述第二指示具有所述第四值,所述划分模式是由包括在所述比特流的SPS中的划分深度限制参数和所述块尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值,所述划分模式是由默认划分深度限制参数和所述默认尺寸限制参数限制的;以及根据所述划分模式,将所述多个译码树块划分成具有所述特定尺寸的所述多个译码块。如上所述,信令划分深度可以促进有效译码。

根据第八实施例,提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述方法包括:从包含所述已编码图片的比特流的序列参数集SPS中解析第一指示,其中,所述第一指示允许所述解码器确定所述多个译码块的特定尺寸,如果所述第一指示具有第一值,所述特定尺寸是由包括在所述SPS中的尺寸限制参数限制的,或者如果所述第一指示具有第二值,所述特定尺寸是由默认尺寸限制参数限制的;如果所述第一指示具有所述第一值,从所述SPS中解析第二指示,其中,如果所述第二指示具有第三值,所述第二指示指示允许由所述尺寸限制参数约束的多类型叉树划分,或者如果所述第二指示具有第四值,所述第二指示指示不允许多类型叉树划分;如果所述第一指示具有所述第一值,从所述SPS中解析第三指示,其中,如果所述第三指示具有第五值,所述第三指示指示第四指示被包括在包括所述多个译码块的条带的条带头部中,否则,所述第四指示不包括在所述条带头部中;并且如果所述第四指示具有第七值,所述第四指示指示条带级尺寸限制参数被包括在所述条带头部中,或是如果所述第三指示具有第六值,所述第四指示指示所述条带级尺寸限制参数不包括在所述条带头部中;如果所述第三指示具有所述第五值,解析所述第四指示;如果所述第四指示具有所述第七值,从所述条带头部中解析第五指示,其中,如果所述第五指示具有第九值,所述第五指示指示在所述条带中允许由所述条带级尺寸限制参数约束的多类型叉树划分,或者如果所述第五指示具有第十值,所述第五指示指示在所述条带中不允许多类型叉树划分;确定所述多个译码块的特定尺寸,如果所述第五指示具有所述第九值,所述特定尺寸是由包括在所述条带头部中的所述条带级尺寸限制参数限制的;或者确定所述多个译码块的特定尺寸,如果所述第三指示具有所述第六值且所述第二指示具有所述第三值,或者所述第四指示具有第八值且所述第二指示具有所述第三值,所述特定尺寸是由包括在所述比特流的SPS中的所述尺寸限制参数限制的;或者确定所述多个译码块的特定尺寸,如果所述第一指示是所述第二值,所述特定尺寸是由所述默认尺寸限制参数限制的;对具有所述特定尺寸的所述多个译码块进行解码。

进一步于第九实施例,在第九实施例中,如果所述第四指示具有所述第七值,所述第四指示还指示条带级划分深度限制参数被包括在所述条带头部中;以及所述方法还包括:确定所述多个译码树块的划分模式,如果所述第五指示具有所述第九值,所述划分模式是由包括在所述条带头部中的所述条带级划分深度限制参数和所述条带级尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第三指示具有所述第四值,或所述第四指示具有所述第八值,或所述第五指示具有所述第十值,所述划分模式是由包括在所述比特流的SPS中的划分深度限制参数和所述尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值,所述划分模式是由默认划分深度限制参数和所述默认尺寸限制参数限制的;以及根据所述划分模式,将所述多个译码树块划分成具有所述特定尺寸的所述多个译码块。

根据第十实施例,提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述方法包括:从包含所述已编码图片的比特流的序列参数集SPS,或图片参数集PPS,或条带头部或区块头部中解析第一指示;确定所述多个译码树块的划分模式,如果所述第一指示具有第一值,所述划分模式是由包括在所述比特流的SPS或PPS或条带头部或区块头部中的块尺寸限制参数和划分深度限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第一指示具有第二值或未出现在所述SPS或PPS或条带头部或区块头部中,所述划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;以及根据所述划分模式,将所述多个译码树块划分成所述多个译码块;以及对所述多个译码块进行解码。

在第十一例实施例中,提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述方法包括:从包含所述已编码图片的比特流的序列参数集SPS中解析第一指示,其中,所述第一指示允许所述解码器确定所述多个译码块的划分模式,如果所述第一指示具有第一值,所述划分模式是由包括在所述比特流的SPS中的块尺寸限制参数和划分深度限制参数限制的,或者如果所述第一指示具有第二值,所述划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;如果所述第一指示具有所述第一值,从所述SPS中解析第二指示,其中,如果所述第二指示具有所述第一值,所述第二指示指示第三指示被包括在包括所述多个译码块的条带的条带头部中,否则,所述第三指示不包括在所述条带头部中;并且如果所述第三指示具有第五值,所述第三指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在所述条带头部中,或者如果所述第三指示具有第六值,所述第三指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在所述条带头部中;如果所述第二指示具有第三值,解析所述第三指示;确定所述多个译码树块的划分模式,如果所述第三指示具有所述第五值,所述划分模式是由包括在所述条带头部中的所述条带级划分深度限制参数和所述条带级尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第三指示具有所述第六值或所述第二指示具有第四值,所述划分模式是由包括在所述比特流的SPS中的所述划分深度限制参数和所述尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值,所述划分模式是由所述默认划分深度限制参数和所述默认尺寸限制参数限制的;根据所述划分模式,将所述多个译码树块划分成所述多个译码块;以及对所述多个译码块进行解码。

通常,术语第一、第二、第三、第四等仅仅是标记,并不暗含任何特定顺序。注意,例如在第六、第八和第十一实施例中的各个第三指示是不相同的。通常,在第六、第八和第十一实施例的上述概述中,第一、第二、第三、第四等标记通常是特定于实施例的。

根据第十二实施例,提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述方法包括:从包含所述已编码图片的比特流的序列参数集SPS中解析第一指示,其中,所述第一指示允许所述解码器确定所述多个译码树块的划分模式,如果所述第一指示具有第一值,所述划分模式是由包括在所述特比流的SPS中的尺寸限制参数和划分深度限制参数限制的,或者如果所述第一指示具有第二值,所述划分模式是由默认尺寸限制参数和默认划分深度限制参数限制的;如果所述第一指示具有所述第一值,从所述SPS中解析第二指示,其中,如果所述第二指示具有第三值,所述第二指示指示允许由所述尺寸限制参数约束的多类型叉树划分,或者如果所述第二指示具有第四值,不允许多类型叉树划分;如果所述第一指示具有所述第一值,从所述SPS中解析第三指示,其中,如果所述第三指示具有第五值,所述第三指示指示第四指示被包括在包括所述多个译码块的条带的条带头部中,否则,所述第四指示不包括在所述条带头部中;并且如果所述第四指示具有第七值,所述第四指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在所述条带头部中,或者如果所述第三指示具有第六值,所述第四指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在所述条带头部中;如果所述第三指示具有所述第五值,解析所述第四指示;如果所述第四指示具有第八值,从所述条带头部中解析第五指示,其中,如果所述第五指示具有第九值,所述第五指示指示在所述条带中允许由所述条带级尺寸限制参数约束的多类型叉树划分,或者如果所述第五指示具有第十值,在所述条带中不允许多类型叉树划分;确定所述多个译码树块的划分模式,如果所述第五指示具有所述第九值,所述划分模式是由包括在所述条带头部中的所述条带级划分深度限制参数和所述条带级尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第三指示具有所述第六值,或所述第四指示具有所述第八值,或所述第五指示具有所述第十值,所述划分模式是由包括在所述比特流的SPS中的所述划分深度限制参数和所述尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值,所述划分模式是由所述默认划分深度限制参数和所述默认尺寸限制参数限制的;将所述多个译码树块划分成所述多个译码块;以及对所述多个译码块进行解码。

根据第十三实施例,提供了一种解码器,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述解码器包括处理电路,用于:从包含所述已编码图片的比特流的参数集中解析第一指示,所述参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;确定所述多个译码块的特定尺寸,如果所述第一指示具有第一值,所述特定尺寸是由包括在所述比特流的参数集中的块尺寸限制参数限制的;或者确定所述多个译码块的特定尺寸,如果所述第一指示具有第二值或未出现在所述参数集中,所述特定尺寸是由默认尺寸限制参数限制的;以及对具有所述特定尺寸的所述多个译码块进行解码。

处理电路可以包括一个或多个处理器,其可以是通用处理器或数字信号处理器等。然而,本公开不限于此,并且处理电路可以是专门的或可编程的硬件和/或软件的任何组合。在一些实现中,处理电路或整个解码器可以在集成电路上实现(由集成电路体现)。

根据第十四实施例,提供了一种编码方法,用于对被划分成多个译码树块的图片进行编码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述方法包括:将第一指示插入到包含已编码图片的比特流的参数集中,所述参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;确定所述多个译码块的特定尺寸,如果所述第一指示具有第一值,所述特定尺寸是由块尺寸限制参数限制的,并且将所述块尺寸限制参数包括在所述比特流的参数集中;或者确定所述多个译码块的特定尺寸,所述特定尺寸是由默认尺寸限制参数限制的,并且将所述第一指示设置为第二值或者将所述第一指示不包括在所述参数集中;以及对具有所述特定尺寸的所述多个译码块进行编码。

根据第十五实施例,提供了一种编码器,用于对被划分成多个译码树块的图片进行编码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述编码器包括处理电路,用于:将第一指示插入到包含已编码图片的比特流的参数集中,所述参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;确定所述多个译码块的特定尺寸,如果所述第一指示具有第一值,所述特定尺寸是由块尺寸限制参数限制的,并且将所述块尺寸限制参数包括在所述比特流的参数集中;或者确定所述多个译码块的特定尺寸,所述特定尺寸是由默认尺寸限制参数限制的,并且将所述第一指示设置为第二值或者将所述第一指示不包括在所述参数集中;以及对具有所述特定尺寸的所述多个译码块进行编码。

根据一个实施例,在非暂时性介质上提供了一种计算机程序,所述程序包括代码指令,其在一个或多个处理器上被执行时,使所述一个或多个处理器执行与编码和解码方法有关的上述实施例中任一项所述的实施例。

根据第十六实施例,提供了一种解码装置,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述解码装置包括:解析单元/电路,用于从包含所述已编码图片的比特流的参数集中解析第一指示,所述参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;第一尺寸确定单元/电路,用于确定所述多个译码块的特定尺寸,如果所述第一指示具有第一值,所述特定尺寸是由包括在所述比特流的参数集中的块尺寸限制参数限制的;或者第二尺寸确定单元/电路,用于确定所述多个译码块的特定尺寸,如果所述第一指示具有第二值或未出现在所述参数集中,所述特定尺寸是由默认尺寸限制参数限制的;以及解码单元/电路,用于对具有所述特定尺寸的所述多个译码块进行解码。

第一和第二尺寸确定电路/单元可以被包括在一个尺寸确定单元(电路)内。

根据第十七实施例,进一步于第十六实施例,所述解码装置还包括:第一划分模式确定单元/电路,用于确定所述多个译码树块的划分模式,如果所述第一指示具有所述第一值,所述划分模式是由包括在所述比特流的参数集中的划分深度限制参数限制的;或者第二划分模式确定单元/电路,用于确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值或未出现在所述参数集中,所述划分模式是由默认划分深度限制参数限制的;以及划分单元/电路,用于根据所述划分模式,将所述多个译码树块划分成具有所述特定尺寸的所述多个译码块。

第一和第二划分模式确定电路/单元可以被包括在一个划分模式确定单元(电路)内。

根据第十八实施例,进一步于第十七实施例,所述第一指示是标志,partition_constraints_control_present_flag。

根据第十九实施例,进一步于第十六或第十七实施例,所述块尺寸限制参数包括最小四叉树尺寸MinQtSize,和/或最大二叉树尺寸MaxBtSize,和/或最大三叉树尺寸MaxTtsize;所述划分深度限制参数包括最大多类型叉树深度MaxMttDepth。

根据第二十实施例,除了第十七至第十九实施中的任一项之外,还提供了一种解码装置,其中,所所述默认尺寸限制参数包括最小四叉树尺寸MinQtSize,设置为4或设置为最小译码块尺寸,和/或最大二叉树尺寸MaxBtSize,设置为128或设置为译码树块尺寸用于帧间条带,以及设置为32用于帧内条带,和/或最大三叉树尺寸MaxTtSize,设置为64用于帧间条带,以及设置为32用于帧内条带;所述默认划分深度限制参数包括最大多类型叉树深度MaxMttDepth,设置为3。

根据第二十一实施例,提供了一种解码装置,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述解码装置包括:解析单元/电路,用于:从包含所述已编码图片的比特流的序列参数集SPS中解析第一指示,其中,所述第一指示允许所述解码器确定所述多个译码块的特定尺寸,如果所述第一指示是第一值,所述特定尺寸是由包括在所述比特流的SPS中的块尺寸限制参数限制的,或者如果所述第一指示是第二值,所述特定尺寸是由默认块尺寸限制参数限制的;如果所述第一指示是所述第一值,从所述比特流的SPS中解析第二指示,其中,如果所述第二指示具有第三值,所述第二指示指示第三指示被包括在包括所述多个译码块的条带的条带头部中,否则,所述第三指示不包括在所述条带头部中;并且如果所述第三指示具有第五值,所述第三指示指示条带级尺寸限制参数被包括在所述条带头部中,或者如果所述第三指示具有第六值,所述第三指示指示条带级尺寸限制参数被不包括在所述条带头部中;如果所述第二指示具有所述第三值,解析所述第三指示;第一尺寸确定单元/电路,用于确定所述多个译码块的特定尺寸,如果所述第三指示具有所述第五值,所述特定尺寸是由包括在所述条带头部中的所述条带级尺寸限制参数限制的;或者第二尺寸确定单元/电路,用于确定所述多个译码块的特定尺寸,如果所述第三指示具有所述第六值或所述第二指示具有第四值,所述特定尺寸是由包括在所述比特流的SPS中的所述块尺寸限制参数限制的;或者第三尺寸确定单元/电路,用于确定所述多个译码块的特定尺寸,如果所述第一指示具有所述第二值,所述特定尺寸是由所述默认尺寸限制参数限制的;解码单元/电路,用于对具有所述特定尺寸的所述多个译码块进行解码。

根据第二十二实施例,进一步于第二十一实施例,如果所述第三指示具有所述第五值,所述第三指示还指示条带级划分深度限制参数被包括在所述条带头部中;所述解码装置还包括:第一划分模式确定单元/电路,用于确定所述多个译码树块的划分模式,如果所述第三指示具有所述第五值,所述划分模式是由包括在所述条带头部中的所述条带级划分深度限制参数和所述条带级尺寸限制参数限制的;或者第二划分模式确定单元/电路,用于确定所述多个译码树块的划分模式,如果所述第三指示具有所述第六值或所述第二指示具有所述第四值,所述划分模式是由包括在所述比特流的SPS中的划分深度限制参数和所述块尺寸限制参数限制的;或者第三划分模式确定单元/电路,用于确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值,所述划分模式是由默认划分深度限制参数和所述默认尺寸限制参数限制的;以及划分单元/电路(2007),用于根据所述划分模式,将所述多个译码树块划分成具有所述特定尺寸的所述多个译码块。

根据第二十三实施例,提供了一种解码装置,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述解码装置包括:解析单元/电路,用于:从包含所述已编码图片的比特流的序列参数集SPS中解析第一指示,其中,所述第一指示允许所述解码器确定所述多个译码块的特定尺寸,如果所述第一指示具有第一值,所述特定尺寸是由包括在所述SPS中的尺寸限制参数限制的,或者如果所述第一指示具有第二值,所述特定尺寸是由默认尺寸限制参数限制的;如果所述第一指示具有所述第一值,从所述SPS中解析第二指示,其中,如果所述第二指示具有第三值,所述第二指示指示允许由所述尺寸限制参数约束的多类型叉树划分,或者如果所述第二指示具有第四值,所述第二指示指示不允许多类型叉树划分;如果所述第一指示具有所述第一值,从所述SPS中解析第三指示,其中,如果所述第三指示具有第五值,所述第三指示指示第四指示被包括在包括所述多个译码块的条带的条带头部中,否则,所述第四指示不包括在所述条带头部中;并且如果所述第四指示具有第七值,所述第四指示指示条带级尺寸限制参数被包括在所述条带头部中,或是如果所述第三指示具有第六值,所述第四指示指示所述条带级尺寸限制参数不包括在所述条带头部中;如果所述第三指示具有所述第五值,解析所述第四指示;如果所述第四指示具有所述第七值,从所述条带头部中解析第五指示,其中,如果所述第五指示具有第九值,所述第五指示指示在所述条带中允许由所述条带级尺寸限制参数约束的多类型叉树划分,或者如果所述第五指示具有第十值,所述第五指示指示在所述条带中不允许多类型叉树划分;第一尺寸确定单元/电路,用于确定所述多个译码块的特定尺寸,如果所述第五指示具有所述第九值,所述特定尺寸是由包括在所述条带头部中的所述条带级尺寸限制参数限制的;或者第二尺寸确定单元/电路,用于确定所述多个译码块的特定尺寸,如果所述第三指示具有所述第六值且所述第二指示具有所述第三值,或者所述第四指示具有第八值且所述第二指示具有所述第三值,所述特定尺寸是由包括在所述比特流的SPS中的所述尺寸限制参数限制的;或者第三尺寸确定单元/电路,用于确定所述多个译码块的特定尺寸,如果所述第一指示是所述第二值,所述特定尺寸是由所述默认尺寸限制参数限制的;解码单元/电路,用于对具有所述特定尺寸的所述多个译码块进行解码。

根据第二十四实施例,接着第二十三实施例,如果所述第四指示具有所述第七值,所述第四指示还指示条带级划分深度限制参数被包括在所述条带头部中;以及所述解码装置还包括:第一划分模式确定单元/电路,用于确定所述多个译码树块的划分模式,如果所述第五指示具有所述第九值,所述划分模式是由包括在所述条带头部中的所述条带级划分深度限制参数和所述条带级尺寸限制参数限制的;或者第二划分模式确定单元/电路,用于确定所述多个译码树块的划分模式,如果所述第三指示具有所述第四值,或所述第四指示具有所述第八值,或所述第五指示具有所述第十值,所述划分模式是由包括在所述比特流的SPS中的划分深度限制参数和所述尺寸限制参数限制的;或者第三划分模式确定单元/电路(2205),用于确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值,所述划分模式是由默认划分深度限制参数和所述默认尺寸限制参数限制的;以及划分单元/电路,用于根据所述划分模式,将所述多个译码树块划分成具有所述特定尺寸的所述多个译码块。

根据第二十五实施例,提供了一种解码装置,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述解码装置包括:解析单元/电路(2301),用于从包含所述已编码图片的比特流的序列参数集SPS,或图片参数集PPS,或条带头部或区块头部中解析第一指示;第一划分模式确定单元/电路(2303),用于确定所述多个译码树块的划分模式,如果所述第一指示具有第一值,所述划分模式是由包括在所述比特流的SPS或PPS或条带头部或区块头部中的块尺寸限制参数和划分深度限制参数限制的;或者第二划分模式确定单元/电路(2305),用于确定所述多个译码树块的划分模式,如果所述第一指示具有第二值或未出现在所述SPS或PPS或条带头部或区块头部中,所述划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;以及划分单元/电路(2307),用于根据所述划分模式,将所述多个译码树块划分成所述多个译码块;以及解码单元/电路(2309),用于对所述多个译码块进行解码。

根据第二十六实施例,提供了一种解码装置,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述解码装置包括:解析单元/电路(2401),用于:从包含所述已编码图片的比特流的序列参数集SPS中解析第一指示,其中,所述第一指示允许所述解码器确定所述多个译码块的划分模式,如果所述第一指示具有第一值,所述划分模式是由包括在所述比特流的SPS中的块尺寸限制参数和划分深度限制参数限制的,或者如果所述第一指示具有第二值,所述划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;如果所述第一指示具有所述第一值,从所述SPS中解析第二指示,其中,如果所述第二指示具有所述第一值,所述第二指示指示第三指示被包括在包括所述多个译码块的条带的条带头部中,否则,所述第三指示不包括在所述条带头部中;并且如果所述第三指示具有第五值,所述第三指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在所述条带头部中,或者如果所述第三指示具有第六值,所述第三指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在所述条带头部中;如果所述第二指示具有第三值,解析所述第三指示;第一划分模式确定单元/电路(2403),用于确定所述多个译码树块的划分模式,如果所述第三指示具有所述第五值,所述划分模式是由包括在所述条带头部中的所述条带级划分深度限制参数和所述条带级尺寸限制参数限制的;或者第二划分模式确定单元/电路(2405),用于确定所述多个译码树块的划分模式,如果所述第三指示具有所述第六值或所述第二指示具有第四值,所述划分模式是由包括在所述比特流的SPS中的所述划分深度限制参数和所述块尺寸限制参数限制的;或者确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值,所述划分模式是由所述默认划分深度限制参数和所述默认尺寸限制参数限制的;划分单元/电路(2407),用于根据所述划分模式,将所述多个译码树块划分成所述多个译码块;以及解码单元/电路(2409),用于对所述多个译码块进行解码。

根据第二十七实施例,提供了一种解码装置,用于对被划分成多个译码树块的已编码图片进行解码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述解码装置包括:解析单元/电路(2501),用于:从包含所述已编码图片的比特流的序列参数集SPS中解析第一指示,其中,所述第一指示允许所述解码器确定所述多个译码树块的划分模式,如果所述第一指示具有第一值,所述划分模式是由包括在所述特比流的SPS中的尺寸限制参数和划分深度限制参数限制的,或者如果所述第一指示具有第二值,所述划分模式是由默认尺寸限制参数和默认划分深度限制参数限制的;如果所述第一指示具有所述第一值,从所述SPS中解析第二指示,其中,如果所述第二指示具有第三值,所述第二指示指示允许由所述尺寸限制参数约束的多类型叉树划分,或者如果所述第二指示具有第四值,不允许多类型叉树划分;如果所述第一指示具有所述第一值,从所述SPS中解析第三指示,其中,如果所述第三指示具有第五值,所述第三指示指示第四指示被包括在包括所述多个译码块的条带的条带头部中,否则,所述第四指示不包括在所述条带头部中;并且如果所述第四指示具有第七值,所述第四指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在所述条带头部中,或者如果所述第三指示具有第六值,所述第四指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在所述条带头部中;如果所述第三指示具有所述第五值,解析所述第四指示;如果所述第四指示具有第八值,从所述条带头部中解析第五指示,其中,如果所述第五指示具有第九值,所述第五指示指示在所述条带中允许由所述条带级尺寸限制参数约束的多类型叉树划分,或者如果所述第五指示具有第十值,在所述条带中不允许多类型叉树划分;第一划分模式确定单元/电路(2503),用于确定所述多个译码树块的划分模式,如果所述第五指示具有所述第九值,所述划分模式是由包括在所述条带头部中的所述条带级划分深度限制参数和所述条带级尺寸限制参数限制的;或者第二划分模式确定单元/电路(2505),用于确定所述多个译码树块的划分模式,如果所述第三指示具有所述第六值,或所述第四指示具有所述第八值,或所述第五指示具有所述第十值,所述划分模式是由包括在所述比特流的SPS中的所述划分深度限制参数和所述尺寸限制参数限制的;或者第三划分模式确定单元/电路(2507),用于确定所述多个译码树块的划分模式,如果所述第一指示具有所述第二值,所述划分模式是由所述默认划分深度限制参数和所述默认尺寸限制参数限制的;划分单元/电路(2509),用于将所述多个译码树块划分成所述多个译码块;以及解码单元/电路(2511),用于对所述多个译码块进行解码。

在以上实施例中的任一项中,第一、第二划分模式确定电路/单元可以被包括在一个划分模式确定单元(电路)内。同理,在以上实施例中的任一项中,第一、第二和第三尺寸确定电路/单元可以被包括在一个尺寸确定单元(电路)内。

根据第二十八实施例,提供了一种编码装置,用于对被划分成多个译码树块的图片进行编码,所述多个译码树块被进一步划分成具有特定尺寸的多个译码块,所述编码装置包括:比特流生成单元/电路(2601),用于将第一指示插入到包含已编码图片的比特流的参数集中,所述参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;第一尺寸确定单元/电路(2603),用于确定所述多个译码块的特定尺寸,如果所述第一指示具有第一值,所述特定尺寸是由块尺寸限制参数限制的,并且将所述块尺寸限制参数包括在所述比特流的参数集中;或者第二尺寸确定单元/电路(2605),用于确定所述多个译码块的特定尺寸,所述特定尺寸是由默认尺寸限制参数限制的,并且将所述第一指示设置为第二值或者将所述第一指示不包括在所述参数集中;以及编码单元/电路(2607),用于对具有所述特定尺寸的所述多个译码块进行编码。

根据其他实施例,提供了编码器和编码方法,所述编码器和所述编码方法确定上述块尺寸和/或深度限制参数,并将译码树单元划分成代码块,其中,所述代码块是由所述块尺寸和/或深度限制参数限制的。然后,如以上在解码器和解码方法实施例中所描述的,将这些参数插入到比特流中成为一个或多个参数集。

附图说明

为了更全面地理解本公开,结合附图和详细描述,现参考以下简要描述,其中,相同的附图标记表示相同的部分。

图1A是示出了可以实现本发明实施例的示例译码系统的框图。

图1B是示出了可以实现本发明实施例的另一示例译码系统的框图。

图2是示出了可以实现本发明实施例的示例视频编码器的框图。

图3是示出了可以实现本发明实施例的视频解码器的示例的框图。

图4是示例性网络设备的框图。

图5是根据示例性实施例的装置500的简化框图,装置500可以用作图1A中的源设备12和目的地设备14中的一个或两个。

图6是示出了典型的比特流结构的示意图。

图7是示出了基于VVC中允许的划分模式而产生的划分的第一示例的示意图。

图8是示出了基于VVC中允许的划分模式而产生的划分的第二示例的示意图。

图9是示出了基于VVC中允许的划分模式而产生的划分的第三示例的示意图。

图10是示出了使用四叉树-二叉树(quad-tree-binary-tree,QTBT)结构的块划分的示例的示意图。

图11是示出了与图10的使用QTBT结构的块划分相对应的叉树结构的示例的示意图。

图12是示出了水平三叉树划分类型的示例的示意图。

图13是示出了垂直三叉树划分类型的示例的示意图。

图14是示出了包括限制参数的确定的示例性解码方法的流程图。

图15是示出了包括限制参数的确定的另一示例性解码方法的流程图。

图16是示出了包括限制参数的确定的另一示例性解码方法的流程图。

图17是示出了示例性第一解码装置的功能框图。

图18是示出了示例性第二解码装置的功能框图。

图19是示出了示例性第三解码装置的功能框图。

图20是示出了示例性第四解码装置的功能框图。

图21是示出了示例性第五解码装置的功能框图。

图22是示出了示例性第六解码装置的功能框图。

图23是示出了示例性第七解码装置的功能框图。

图24是示出了示例性第八解码装置的功能框图。

图25是示出了示例性第九解码装置的功能框图。

图26是示出了编码装置的功能框图。

具体实施方式

以下是关于SPS和条带头部中与划分相关的参数的部分的高级语法的示例。

在相关文档[JVET-K1001-v4]中,JVET AHG报告,J.-R.Ohm,G.J.Sulivan,http:// phenix.int-evry.fr/jvet/,公开了MinQtSizeY(log2_min_qt_size_intra_slices_minus2和log2_min_qt_size_intre_slices_minus2)的语法元素,以及MaxSttDepth(max_mtt_hierarchy_depth_inter_slices和max_mtt_hierarchy_depth_intra_slices)的语法元素,这些元素在SPS中被信号发送。亮度CTB尺寸与MaxBtSizeY之间不同的语法元素(log2_diff_ctu_max_bt_size)在条带头部中被信号发送。MinQtSizeY被定义为由CTU(译码树单元)的四叉树分割所产生的叶块的最小亮度(Y)尺寸。该尺寸可以用样本数来指示块的宽度或高度。在方形块的情况下,也可能同时指示宽度和高度。作为示例,如果MinQtSizeY等于16,尺寸小于或等于16的的译码块不能使用四叉树分割方法划分成子块。在现有技术MinQtSizeY中,log2_min_qt_size_intra_slices_minus2和log2_min_qt_size_inter_slices_minus2用于指示最小四叉树块尺寸。请注意,尺寸的指示可以是间接指示,意思是,log2_min_qt_size_intra_slices_minus2可能是最小四叉树块的亮度样本数量的二进制对数(以2为底)。MaxMttDepth被定义为由四叉树叶或CTU的多类型叉树分割所产生的译码单元的最大层级深度。译码树单元(或CTB,Coding Tree Block,译码树块)描述了用于对图片帧进行划分的最大块尺寸。MaxMttDepth描述了连续二进制或三进制分割数量的上限,该连续二进制或三进制分割可用于获得子块。作为示例,假设CTU尺寸是128×128(宽度等于128且高度等于128),并且MaxMttDepth等于1。在这种情况下,可以使用二进制分割首先将母块(尺寸为128×128)分割成两个128×64子块。然而,由于达到了允许的二进制分割的最大数量,因此,子块不能应用任何连续的二进制分割(以产生128×32或64×64子块)。注意,MaxMttDepth可以控制最大的二进制分割深度或最大的三进制分割深度,或同时控制这两者。如果同时控制二进制和三进制分割,跟随1个三进制分割的1个二进制分割可以算作2个层级分割。在现有技术的MaxMttDepth中,max_mtt_hierarchy_depth_inter_slices和max_mtt_hierarchy_depth_intra_slices用于指示由多类型叉树分割所产生的译码单元的最大层级深度。

注意,当语法元素的名称出现在相关文档中时使用这些语法元素的名称。然而,应该清楚,可以更改这些名称,因此,应被认为重要的是语法元素的逻辑含义而不是名称。

MaxBtSizeY被定义为译码块的最大亮度尺寸(宽度或高度),用样本数表示,该译码块可以使用二进制分割来分割。作为示例,如果MaxBtSizeY等于64,不能使用二进制分割来分割宽度或高度上尺寸较大的译码块。意思是,不能使用二进制分割来分割尺寸为128×128的块,而可以使用二进制分割来分割尺寸为64×64的块。

MinBtSizeY被定义为译码块的最小亮度尺寸(宽度或高度),用样本数表示,该译码块可以使用二进制分割来分割。作为示例,如果MinBtSizeY等于16,不能使用二进制分割来分割宽度或高度上尺寸较小或相等的译码块。意思是,不能使用二进制分割来分割尺寸为8×8的块,而可以使用二进制分割来分割尺寸为32×32的块。

MinCbSizeY被定义为最小译码块尺寸。作为示例,MinCbSizeY可以等于8,这意味着,由于所产生的子块保证在宽度或高度上不小于MinCbSizeY,所以不能使用分割方法中的任何一个来分割尺寸为8×8的母块。根据第二示例,如果MinCbSizeY等于8,由于所生成的四个子块的尺寸会是4×8(宽度等于4且高度等于8),并且所生成的子块的宽度会小于MinCbSizeY,所以不能使用例如四叉树分割来划分尺寸为8×16的母块。在第二示例中,尽管可以使用2个不同的语法元素来独立地限制宽度和高度,但是假定MinCbSizeY应用于块的宽度和高度。

MinTbSizeY被定义为译码块的最小变换块尺寸,用样本数表示,该译码块可以使用三进制分割来分割。作为示例,如果MinTbSizeY等于16,不能使用三进制分割来分割宽度或高度上尺寸较小或相等的译码块。意思是,不能使用三进制分割来分割尺寸为8×8的块,而可以使用三进制分割来分割尺寸为32×32的块。

下列表中示出了规定SPS和条带头部语法表的示例。

序列参数集RBSP(Raw Byte Sequence Payload,原始字节序列有效负载)语法([JVET-K1001-v4]的7.3.2.1节)

Seq_parameter_set_rbsp(){ 描述符
sps_seq_parameter_set_id ue(v)
chroma_format_idc ue(v)
if(chroma_format_idc==3)
separate_colour_plane_flag u(1)
pic_width_in_luma_samples ue(v)
pic_height_in_luma_samples ue(v)
bit_depth_luma_minus8 ue(v)
bit_depth_chroma_minus8 ue(v)
qtbtt_dual_tree_intra_flag ue(v)
log2_ctu_size_minus2 ue(v)
log2_min_qt_size_intra_slices_minus2 ue(v)
log2_min_qt_size_inter_slices_minus2 ue(v)
max_mtt_hierarchy_depth_inter_slices ue(v)
max_mtt_hierarchy_depth_intra_slices ue(v)
sps_cclm_enabled_flag ue(1)
sps_mts_intra_enabled_flag ue(1)
sps_mts_inter_enabled_flag ue(1)
rbsp_trailing_bits()
}

在这些语法表中,粗体是包括在比特流中的语法元素。未以粗体显示的元素是其他语法单元的条件或占位符。

条带头部语法([JVET-K1001-v4]的7.3.3节)

slice_header(){ 描述符
slice_pic_parameter_set_id ue(v)
slice_address u(v)
slice_type ue(v)
if(slice_type!=I)
log2_diff_ctu_max_bt_size ue(v)
dep_quant_enabled_flag u(1)
if(!dep_quant_enabled_flag)
sign_data_hiding_enabled_flag u(1)
byte_alignment()
}

标准中还提供了语法元素的语义,即如何解释包括在比特流中的语法元素。下文中,提供了上述元素的语义。

序列参数集RBSP语义([JVET-K1001-v4]的7.4.3.1节)

log2_ctu_size_minus2加2规定了每个CTU的亮度译码树块尺寸。

推导变量CtbLog2SizeY、CtbSizeY、MinCbLog2SizeY、MinCbSizeY、MinTbLog2SizeY、MaxTbLog2SizeY、PicWidthInCtbsY、PicHeightInCtbsY、PicSizeInCtbsY、PicWidthInMinCbsY、PicHeightInMinCbsY、PicSizeInMinCbsY、PicSizeInSamplesY、PicWidthInSamplesC和PicHeightInSamplesC如下:

CtbLog2SizeY=log2_ctu_size_minus2+2 (7-5)

CtbSizeY=1<<CtbLog2SizeY (7-6)

MinCbLog2SizeY=2 (7-7)

MinCbSizeY=1<<MinCbLog2SizeY (7-8)

MinTbSizeY=4 (7-9)

MaxTbSizeY=64 (7-10)

PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY) (7-11)

PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY) (7-12)

PicSizeInCtbsY=PicWidthInCtbsY*PicHeightInCtbsY (7-13)

PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (7-14)

PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (7-15)

PicSizeInMinCbsY=PicWidthInMinCbsY*PicHeightInMinCbsY (7-16)

PicSizeInSamplesY=pic_width_in_luma_samples*pic_height_in_luma_samples (7-17)

PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (7-18)

PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (7-19)

……

log2_min_qt_size_intra_slices_minus2加2规定了由slice_type等于2(I)的条带中的CTU的四叉树分割所产生的叶块的最小亮度尺寸。log2_min_qt_size_intra_slices_minus2的值应在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。

MinQtLog2SizeIntraY=log2_min_qt_size_intra_slices_minus2+2(7-22)

[Ed.(BB):四叉树的叶可以是译码单元或者是嵌套的多类型叉树的根。]

log2_min_qt_size_inter_slices_minus2加2规定了由slice_type等于0(B)或1(P)的条带中的CTU的四叉树分割所产生的叶块的最小亮度尺寸。log2_min_qt_size_inter_slices_minus2的值应在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。

MinQtLog2SizeInterY=log2_min_qt_size_inter_slices_minus2+2(7-23)

max_mtt_hierarchy_depth_inter_slices规定了由slice_type等于0(B)或1(P)的条带中的四叉树叶的多类型叉树分割所产生的译码单元的最大层级深度。max_mtt_hierarchy_depth_inter_slices的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。

max_mtt_hierarchy_depth_intra_slices规定了由slice_type等于2(I)的条带中的四叉树叶的多类型叉树分割所产生的译码单元的最大层级深度。max_mtt_hierarchy_depth_intra_slices的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。

……

条带头部语义([JVET-K1001-v4]的7.4.4节)

log2_diff_ctu_max_bt_size规定了译码块的亮度CTB尺寸与最大亮度尺寸(宽度或高度)之间的差,该译码块可以使用二进制分割来分割。log2_diff_ctu_max_bt_size的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinCbLog2SizeY。

当不存在log2_diff_ctu_max_bt_size时,推断log2_diff_ctu_max_bt_size的值等于2。

推导变量MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY和MaxMttDepth如下:

MinQtLog2SizeY=(slice_type==I)?MinQtLog2SizeIntraY:MinQtLog2SizeInterY

(7-25)

MaxBtLog2SizeY=CtbLog2SizeY-log2_diff_ctu_max_bt_size (7-26)

MinBtLog2SizeY=MinCbLog2SizeY (7-27)

MaxTtLog2SizeY=(slice_type==I)?5:6 (7-28)

MinTtLog2SizeY=MinCbLog2SizeY (7-29)

MinQtSizeY=1<<MinQtLog2SizeY (7-30)

MaxBtSizeY=1<<MaxBtLog2SizeY (7-31)

MinBtSizeY=1<<MinBtLog2SizeY (7-32)

MaxTtSizeY=1<<MaxTtLog2SizeY (7-33)

MinTtSizeY=1<<MinTtLog2SizeY (7-34)

MaxMttDepth=(slice_type==I)?max_mtt_hierarchy_depth_intra_slices:max_mtt_hierarchy_depth_inter_slices (7-35)

[Ed.(BB):目前,最大TT尺寸是固定的(I-slices的32×32亮度样本和相应的色度样本,和P/B-slices的64×64亮度样本和相应的色度样本),以及I-slices的最大BT尺寸也是固定的(CtbLog2SizeY-2,例如CTU尺寸为128×128亮度样本的32×32亮度样本和相应的色度样本)。]

然而,根据划分,高语法级别中仍存在一些空间,以进一步提高与划分相关的参数信令和选择的灵活性,这能够增强译码性能,甚至节省比特消耗。

本申请(或本公开)的一些示例性实施例提供了用于对图像进行编码和解码的帧间预测装置和方法,可以减轻甚至消除上述问题。

在一个实施例中,本公开提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该方法包括:从包含已编码图片的比特流的序列参数集(SPS)/图片参数集(PPS)/或条带头部/区块头部中解析第一指示;确定多个译码树块的划分模式,如果第一指示是第一值,划分模式是由包括在比特流的SPS/PPS/条带头部/区块头部中的块尺寸限制参数和划分深度限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值或未出现在SPS/PPS/条带头部/区块头部中,划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;以及根据划分模式,将多个译码树块划分成多个译码块;以及对多个译码块进行解码。

在另一个实施例中,本公开提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该方法包括:从包含已编码图片的比特流的序列参数集(SPS)中解析第一指示,其中,第一指示允许解码器确定多个译码块的划分模式,如果第一指示是第一值,划分模式是由包括在比特流的SPS中的块尺寸限制参数和划分深度限制参数限制的,或者如果第一指示是第二值,划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;如果第一指示是第一值,从比特流的序列参数集(SPS)中解析第二指示,其中,如果第二指示是第一值,第二指示指示第三指示被包括在包括多个译码块的条带的条带头部中,否则,第三指示不包括在条带头部中;并且如果第三指示是第一值,第三指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在条带头部中,或者如果第三指示是第二值,第三指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在条带头部中;如果第二指示是第一值,解析第三指示;确定多个译码树块的划分模式,如果第三指示是第一值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第三指示是第二值或第二指示是第二值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;根据划分模式,将多个译码树块划分成多个译码块;以及对多个译码块进行解码。

在另一个实施例中,本公开提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该方法包括:从包含已编码图片的比特流的序列参数集(SPS)中解析第一指示,其中,第一指示允许解码器确定划分模式,如果第一指示是第一值,划分模式是由包括在特比流的SPS中的尺寸限制参数和划分深度限制参数限制的,或者如果第一指示是第二值,划分模式是由默认尺寸限制参数和默认划分深度限制参数限制的;如果第一指示是第一值,从序列参数集(SPS)中解析第二指示,其中,如果第二指示是第一值,第二指示指示允许由尺寸限制参数约束的多类型叉树划分,或者如果第二指示是第二值,不允许多类型叉树划分;如果第一指示是第一值,从序列参数集(SPS)中解析第三指示,其中,如果第三指示是第一值,第三指示指示第四指示被包括在包括多个译码块的条带的条带头部中,否则,第四指示不包括在条带头部中;并且如果第四指示是第一值,第四指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在条带头部中,或者如果第三指示是第二值,第四指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在条带头部中;如果第三指示是第一值,解析第四指示;如果第四指示是第一值,从条带头部中解析第五指示,其中,如果第五指示是第一值,第五指示指示在条带中允许由条带级尺寸限制参数约束的多类型叉树划分,或者如果第五指示是第二值,在条带中不允许多类型叉树划分;确定多个译码树块的划分模式,如果第三指示是第一值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第三指示是第二值,或第四指示是第二值,或第五指示是第二值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;将多个译码树块划分成多个译码块;以及对多个译码块进行解码。

本公开还提供了用于执行以上方法的解码设备和编码设备。

通过以上提供的公开内容,即,在参数集中信号发送高级划分约束控制语法元素存在(不存在)标志,它提供了另一种定义约束的方式,具体是,设置默认值(以前仅是信号发送),如果存在高级划分约束,这些默认值提供了更多选项(灵活性)。否则,如果不存在高级划分约束,将使用这些语法元素的默认值,因此,不需要信号发送这些语法元素,这可以节省比特消耗并为设置尺寸约束提供更大的灵活性。

为了清楚起见,前述实施例中的任何一个可以与其他前述实施例中的任何一个或多个组合,以在本公开的范围内创建新的实施例。

从以下结合附图和权利要求的详细描述中,将更清楚地理解这些和其他特征。

首先应理解,虽然下文提供了一个或多个实施例的说明性实现,但是所公开的系统和/或方法可以使用当前已知的或现有的多种技术来实现。所公开内容决不限于下文示出的说明性实现、附图和技术,包括文中说明和描述的示例性设计和实现,并且所公开内容可以在所附权利要求的范围连同等效物的完整范围内进行修改。

例如,应理解,结合所描述的方法的公开内容也适用于被配置为执行该方法的相应设备或系统,反之亦然。例如,如果描述了一个或多个特定方法步骤,相应的设备可以包括一个或多个单元,例如功能单元,用于执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元中的各个单元执行多个步骤中的一个或多个步骤),即使附图中没有明确描述或示出这样的一个或多个单元。另一方面,例如,如果基于一个或多个单元(例如功能单元)描述了特定装置,对应的方法可以包括执行一个或多个单元的功能的一个步骤(例如,一个步骤执行一个或多个单元的功能,或多个步骤中的各个步骤执行多个单元中的一个或多个单元的功能),即使附图中没有明确描述或示出这样的一个或多个步骤。此外,应理解,除非另有特别说明,否则本文中描述的各种示例性实施例和/或方面的特征可彼此组合。

图1A是示出了可以利用双向预测技术的示例译码系统10的框图。如图1所示,译码系统10包括源设备12,该源设备12提供稍后由目的地设备14进行解码的已编码视频数据。特别地,源设备12可以经由计算机可读介质16向目的地设备14提供视频数据。源设备12和目的地设备14可以包括多种设备中的任何一种,包括台式计算机、笔记本(即,膝上型)电脑、平板计算机、机顶盒、电话(例如,所谓的“智能”电话)、所谓的“智能”平板、电视、相机、显示设备、数字媒体播放器、视频游戏机或视频流设备等。在某些情况下,源设备12和目的地设备14可以被配备用于无线通信。

目的地设备14可以经由计算机可读介质16接收要解码的已编码视频数据。计算机可读介质16可以包括能够将已编码视频数据从源设备12移动到目的地设备14的任何类型的介质或设备。在一个示例中,计算机可读介质16可以包括通信介质,以使源设备12能够将已编码视频数据直接实时地发送到目的地设备14。根据诸如无线通信协议的通信标准,可以对已编码视频数据进行调制,并将其发送到目的地设备14。通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一根或多根物理传输线。通信介质可以形成基于数据包的网络的一部分,例如,局域网、广域网或诸如因特网的全球网络。通信介质可以包括路由器、交换机、基站或任何其他有助于促进从源设备12到目的地设备14通信的设备。

在一些示例中,已编码数据可以从输出接口22输出到存储设备。同理,已编码数据可以通过输入接口从存储设备存取。存储设备可以包括多种分布式或本地存取的数据存储介质中的任何一种,例如硬盘驱动器、蓝光光盘、数字视频盘(DVD)、光盘只读存储器(CD-ROM)、闪存、易失性或非易失性存储器或用于存储已编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备可对应于文件服务器或可存储由源设备12产生的已编码视频的另一中间存储设备。目的地设备14可以通过流传输或下载从存储装置存取所存储的视频数据。文件服务器可以为能够存储已编码视频数据并将该已编码视频数据发送到目的地设备14的任何类型的服务器。示例文件服务器包括web服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接,包括因特网连接,来存取已编码视频数据。这可以包括适合存取在文件服务器上存储的已编码视频数据的无线信道(例如Wi-Fi连接)、有线连接(例如数字用户专线(DSL),电缆调制解调器等)或二者的组合。已编码视频数据从存储设备的传输可以是流传输、下载传输或两者的组合。

本公开的技术不必限于无线应用或设置。这些技术可以应用于视频译码,以支持各种多媒体应用中的任何一种,例如,空中电视广播、有线电视传输、卫星电视传输、诸如HTTP(DASH)上的动态自适应流传输的互联网流视频传输、编码到数据存储介质上的数字视频、解码存储在数据存储介质上的数字视频或其他应用。在一些示例中,译码系统10可以用于支持单向或双向视频传输,以支持例如视频流传输、视频回放、视频广播和/或视频电话等的应用。

在图1A的示例中,源设备12包括视频源18、视频编码器20和输出接口22。目的地设备14包括输入接口28、视频解码器30和显示设备32。根据本公开内容,源设备12的视频编码器200和/或目的地设备14的视频解码器300可以用于将技术应用于双向预测。在其他示例中,源设备和目的地设备可以包括其他组件或布置。例如,源设备12可以接收来自诸如外部相机的外部视频源的视频数据。同样,目的地设备14可以与外部显示设备接合,而不包括集成显示设备。

图1的所示出的译码系统10仅是一个示例。用于双向预测的技术可以由任何数字视频编码和/或解码设备执行。尽管本公开的技术通常由视频译码设备执行,但是这些技术也可以由通常被称为“CODEC”的视频编码器/解码器执行。此外,本公开的技术也可以由视频预处理器执行。视频编码器和/或解码器可以是图形处理单元(graphics processingunit,GPU)或类似设备。

源设备12和目的地设备14仅是这种译码设备的示例,其中,源设备12生成已译码视频数据以传输到目的地设备14。在一些示例中,源设备12和目的地设备14可以以基本上对称的方式进行操作,使得源设备12和目的地设备14中的每一个都包括视频编码和解码组件。因此,译码系统10可以支持视频设备12,14之间的单向或双向视频传输,例如用于视频流传输、视频回放、视频广播或视频电话。

源设备12的视频源18可以包括视频采集设备(例如摄像机)、包含先前采集的视频的视频档案和/或用于接收来自视频内容供应商的视频的视频馈送接口。作为另一可替代方案,视频源18可以生成基于计算机图形的数据作为源视频,或者是实时视频、存档视频和计算机生成的视频的组合。

在一些情况下,当视频源18是摄像机时,源设备12和目标地设备14可以形成所谓的相机电话或视频电话。然而,如上所述,本公开中描述的技术通常可以适用于视频译码,并且可以应用于无线和/或有线应用。在每个应用的情况下,所采集的、预采集的或计算机生成的视频可以由视频编码器20编码。然后,可以通过输出接口22将已编码视频信息输出到计算机可读介质16上。

计算机可读介质16可以包括瞬态介质(例如,无线广播或有线网络传输)或存储介质(即,非瞬态存储介质),例如硬盘、闪存驱动器、光盘、数字视频盘、蓝光光盘或其他计算机可读介质。在一些示例中,网络服务器(未示出)可以接收来自源设备12的已编码视频数据,并且例如经由网络传输将已编码视频数据提供给目的地设备14。同理,媒体生产设施的计算设备,例如磁盘冲压设施,可以接收来自源设备12的已编码视频数据,并生产包含已编码视频数据的盘。因此,在各种示例中,计算机可读介质16可以被理解为包括各种形式的一种或多种计算机可读介质。

目的地设备14的输入接口28接收来自计算机可读介质16的信息。计算机可读介质16的信息可以包括由视频编码器20定义的语法信息,该语法信息也被视频解码器30使用,包括描述块和其他已译码单元的特征和/或处理的语法元素,例如,图片组(group ofpictures,GOP)。显示设备32将已解码视频数据显示给用户,并且可以包括多种显示设备中的任何一种,例如,阴极射线管(cathode ray tube,CRT)、液晶显示器(liquid crystaldisplay,LCD)、等离子显示器、有机发光二极管(OLED)显示器或其他类型的显示设备。

视频编码器200和视频解码器300可以根据视频译码标准进行操作,例如当前正在开发的高效视频译码(HEVC)标准,并且可以符合HEVC测试模型(HM)。可替换地,视频编码器200和视频解码器300可以根据其他专有或行业标准进行操作,例如国际电信联盟电信标准化部门(Inrwenrionl Telecommunications Union Telecommuncation Standardization,ITU-T)H.264标准,或者称为运动图片专家组(Motion picture Expert Group,MPEG)-4,第10部分,高级视频译码(Advanced Video Coding,AVC),H.265/HEVC或此类标准的扩展。然而,本公开的技术不限于任何特定的译码标准。视频译码标准的其他示例包括MPEG-2和ITU-T H.263。尽管图1A中未示出,但在一些方面,视频编码器200和视频解码器300可以各自与音频编码器和解码器集成,且可以包括合适的的多路复用器-多路分用器(multiplexer-demultiplexer,MUX-DEMUX)单元,或其它硬件和软件,以处理共同数据流或单独数据流中的音频和视频两者的编码。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议或其他协议,例如用户数据报协议(user datagram protocol,UDP)。

视频编码器200和视频解码器300可以各自实现为多种合适的编码器电路中的任意一种,诸如一个或多个微处理器、数字信号处理器(digital signal processors,DSP)、专用集成电路(application specific integrated circuits,ASIC)、现场可编程门阵列(field programmable gate arrays,FPGA)、离散逻辑、软件、硬件、固件或其任意组合。当这些技术部分地以软件实现时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件执行指令,以进行本公开的技术。视频编码器200和视频解码器300中的每一个都可以被包括在一个或多个编码器或解码器中,编码器或解码器二者中的一个可以被集成为相应设备中组合编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,例如手机。

图1B是根据示例性实施例的包括图2的编码器200和/或图3的解码器300的示例视频译码系统40示意图。系统40可以实现本申请的技术,例如,帧间预测中的合并估计。在所示的实现中,视频译码系统40可以包括成像设备41、视频编码器20、视频解码器300(和/或经由处理单元46的逻辑电路47实现的视频译码器)、天线42、一个或多个处理器43、一个或多个存储器44和/或显示设备45。

如图所示,成像设备41、天线42、处理单元46、逻辑电路47、视频编码器20、视频解码器30、处理器43、存储器44和/或显示设备45可以是能够相互通信的。如所讨论的,尽管以视频编码器200和视频解码器30两者示出,但在各种实际情景下,视频译码系统40可以仅包括视频编码器200或仅包括视频解码器300。

如图所示,在一些示例中,视频译码系统40可以包括天线42。例如,天线42可以用于发送或接收视频数据的已编码比特流。进一步地,在一些示例中,视频译码系统40可以包括显示设备45。显示设备45可以用于呈现视频数据。如图所示,在一些示例中,逻辑电路54可以经由处理单元46来实现。处理单元46可以包括专用集成电路(ASIC)逻辑、图形处理器或通用处理器等。视频译码系统40还可以包括可选处理器43,其可以同理包括专用集成电路(ASIC)逻辑、图形处理器或通用处理器等。在一些示例中,逻辑电路54可以经由硬件或视频译码专用硬件等来实现,并且处理器43可以经由通用软件或操作系统等实现。另外,存储器44可以是任何类型的存储器,例如,易失性存储器(例如,静态随机存取存储器(SRAM),动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性示例中,存储器44可以由高速缓冲存储器实现。在一些示例中,逻辑电路54可以访问存储器44(例如,用于实现图像缓冲器)。在其他示例中,逻辑电路47和/或处理单元46可以包括用于实现图像缓冲器等的存储器(例如,高速缓存等)。

在一些示例中,经由逻辑电路实现的视频编码器200可以包括图像缓冲器(例如,经由处理单元46或存储器44)和图形处理单元(例如,经由处理单元46)。图形处理单元可以与图像缓冲器通信耦合。图形处理单元可以包括经由逻辑电路47实现的视频编码器200,以包含关于图2所讨论的各种模块和/或本文中描述的任何其他编码器系统或子系统。逻辑电路可以用于执行本文中所讨论的各种操作。

视频解码器300可以以与经由逻辑电路47所实现的方式相似的方式来实现,以包含关于图3的解码器300所讨论的各种模块和/或本文中描述的任何其他解码器系统或子系统。在一些示例中,经由逻辑电路实现的视频解码器300可以包括图像缓冲器(例如,经由处理单元46或存储器44)和图形处理单元(例如,经由处理单元46)。图形处理单元可以与图像缓冲器通信耦合。图形处理单元可以包括经由逻辑电路47实现的视频解码器300,以包含关于图2所讨论的各种模块和/或本文中描述的任何其他解码器系统或子系统。

在一些示例中,视频译码系统40的天线42可以用于接收视频数据的已编码比特流。如所讨论的,已编码比特流可以包括与本文中所讨论的对视频帧进行编码相关联的数据、指示符、索引值、模式选择数据等,例如,与译码划分相关联的数据(例如,变换系数或已量化变换系数、可选指示符(如上所述)和/或定义译码划分的数据)。视频译码系统40还可以包括视频解码器300,该视频解码器300与天线42耦合并且用于对已编码比特流进行解码。显示设备45用于呈现视频帧。

图2是示出了可以实现本申请技术的视频编码器200的示例的框图。视频编码器200可以执行视频条带内视频块的帧内译码和帧间译码。帧内译码依赖于空间预测,以减少或消除给定视频帧或图片内视频中的空间冗余。帧间译码依赖于时间预测,以减少或消除视频序列的相邻帧或图片内视频中的时间冗余。帧内模式(I模式)可以指几种基于空间的译码模式中的任何一种。帧间模式,例如单向预测(P模式)或双向预测(B模式),可以指几种基于时间的译码模式中的任何一种。

图2示出了用于实现本公开技术的示例视频编码器200的示意/概念框图。在图2的示例中,视频编码器200包括残差计算单元204、变换处理单元206、量化单元208、逆量化单元210和逆变换处理单元212、重构单元214、缓冲器216、环路滤波器单元220、解码图片缓冲器(decoded picture buffer,DPB)230、预测处理单元260以及熵编码单元270。预测处理单元260可以包括帧间估计部分242、帧间预测单元244、帧内估计部分252、帧内预测单元254和模式选择单元262。帧间预测单元244还可以包括运动补偿单元(未示出)。根据混合视频编解码器,图2所示的视频编码器200还可以被称为混合视频编码器或视频编码器。

例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260以及熵编码单元270形成编码器200的前向信号路径,而例如,逆量化单元210、逆变换处理单元212、重构单元214、缓冲器216、环路滤波器220、解码图片缓冲器(DPB)230以及预测处理单元260形成编码器的后向信号路径,其中,编码器的后向信号路径对应于解码器的信号路径(参见图3中的解码器300)。

编码器200用于诸如通过输入202接收图片201或图片201的块203,诸如形成视频或视频序列的一系列图片的图片。图片块203也可以被称为当前图片块或要译码的图片块,图片201也可以被称为当前图片或要译码的图片(特别是,在视频编码中,以区分当前图片与其他图片,诸如相同视频序列的先前已编码图片和/或已解码图片,即也包括当前图片的视频序列)。

划分

编码器200的实施例可以包括划分单元(图2中未示出),用于将图片201划分成多个块,例如块203之类的块,通常划分成多个不重叠的块。划分单元可以用于对视频序列的所有图片使用相同的块尺寸以及定义该块尺寸的相应网格,或者用于改变图片或者图片的子集或组之间的块尺寸,并且将每个图片划分成相应的块。

在HEVC和其他视频译码规范中,为了生成图片的已编码表示,可以生成译码树单元(CTU)的集合。CTU中的每一个可以包括亮度样本的译码树块、色度样本的两个对应的译码树块,以及用于对译码树块的样本进行译码的语法结构。在单色图片或具有三个单独的色彩平面的图片中,CTU可以包括单个译码树块和用于对译码树块的样本进行译码的语法结构。译码树块可以是N×N样本块。CTU也可以被称为“树块”或“最大译码单元”(largestcoding unit,LCU)。HEVC的CTU可以广义上地类似于其他标准的宏块,例如H.264/AVC。然而,CTU不必限定于特定尺寸,并且可以包括一个或多个译码单元(CU)。条带可以包括以光栅扫描顺序连续排序的整数个CTU。

在HEVC中,通过使用表示为编码树的四叉树结构将CTU划分成CU,以适应各种本地特征。在CU级别上决定使用帧间图片(时间)预测还是帧内图片(空间)预测来对图片区域进行译码。CU可以包括图片的亮度样本的译码块以及色度样本的两个相对应的译码块,该图片具有亮度样本阵列、Cb样本阵列、Cr样本阵列,以及用于对译码块的样本进行译码的语法结构。在单色图片或具有三个单独的色彩平面的图片中,CU可以包括单个译码块和用于对译码块的样本进行译码的语法结构。译码块是样本的N×N块。在一些示例中,CU可以与CTU的尺寸相同。每个CU以一种译码模式译码,该译码模式可以是例如帧内译码模式或帧间译码模式。其他译码模式也是可能的。编码器200接收视频数据。编码器200可以对视频数据的图片的条带中的每个CTU进行编码。作为对CTU进行编码的一部分,编码器200的预测处理单元260或另一处理单元(包括但不限于图2所示的编码器200的单元)可以执行划分,以将CTU的CTB分成逐渐小的块203。较小的块可以是CU的译码块。

比特流内的语法数据也可以定义CTU的尺寸。条带包括多个按译码顺序连续的CTU。视频帧或图像或图片可被划分成一个或多个条带。如上所述,按照四叉树,可以将每个树块划分成译码单元(CU)。通常,四叉树数据结构包括每个CU有一个节点,以及与树块(例如,CTU)对应的根节点。如果CU被分割成四个子CU,与CU对应的节点包括四个子节点,每个子节点对应于子CU中的一个CU。四叉树结构中的多个节点包括叶节点和非叶节点。叉树结构中,叶节点没有子节点(即,叶节点没有被进一步分割)。非叶节点包括叉树结构的根节点。对于多个节点中的每个各自的非根节点,各自的非根节点对应于与各自的非根节点的叉树结构中的母节点对应的CU的子CU。叉树结构中,每个各自的非叶节点具有一个或多个子节点。

四叉树数据结构的每个节点可以为对应的CU提供语法数据。例如,四叉树中的节点可以包括分割标记,指示与节点对应的CU是否被分割成子CU。可以递归地定义CU的语法元素,并且CU的语法元素可以取决于CU是否被分割成子CU。如果CU未被进一步分割,将其称为叶CU。如果CU的块被进一步分割,通常可以将其称为非叶CU。如图2所示,划分的每个级别是分成四个子CU的四叉树。黑色CU是叶节点(即,未被进一步分割的块)的示例。

CU具有与H.264标准的宏块相似的目的,不同之处在于CU没有尺寸区分。例如,树块可以被分割成四个子节点(也称为子CU),并且每个子节点又可以是母节点并且可以被分割成另外四个子节点。最终未被分割的子节点,称为四叉树的叶节点,包括译码节点,也称为叶CU。与已译码比特流相关联的语法数据可以定义树块可以被分割的最大次数,称为最大CU深度,并且还可以定义译码节点的最小尺寸。据此,比特流还可以定义最小的译码单元(smallest coding unit,SCU)。术语“块”在HEVC的上下文中用于指代CU、PU或TU中的任何一个,或在其他标准的上下文中指代类似的数据结构(例如,H.264/AVC中的宏块和子块)。

HEVC中,根据PU分割类型可以将每个CU进一步分割成一个、两个或四个PU。在一个PU内,应用相同的预测过程,并以PU为基础将相关信息发送至解码器。在通过应用基于PU分割类型的预测过程获得残差块之后,可以根据与CU的译码树类似的另一四叉树结构将CU划分成变换单元(transform unit,TU)。HEVC结构的关键特征之一是具有多个划分概念,包括CU、PU和TU。PU可以被划分成非正方形形状。与CU相关联的语法数据还可以描述例如将CU划分成一个或多个PU。TU的形状可以是正方形或非正方形(例如,矩形),与CU相关联的语法数据可以描述例如根据四叉树将CU划分成一个或多个TU。划分模式在CU是以跳过模式还是直接模式被编码、以帧内预测模式被编码或以帧间预测模式被编码之间可以不同。

虽然VVC(通用视频译码)删除了PU和TU概念的分离,但是为CU划分形状提供了更大的灵活性。CU的尺寸对应于译码节点的尺寸,并且形状可以为正方形或非正方形(例如,矩形)。CU的尺寸的范围可以从4×4像素(或8×8像素)直到具有最大128×128像素或更大像素(例如256×256像素)的树块的尺寸。

在编码器200生成CU的预测块(例如,亮度、Cb和Cr预测块)之后,编码器200可以生成CU的残差块。例如,编码器100可以生成CU的亮度残差块。CU的亮度残差块中的每个样本指示CU的预测亮度块中的亮度样本与CU的原始亮度译码块中的对应样本之间的差。另外,编码器200可以生成CU的Cb残差块。CU的Cb残差块中的每个样本可以指示CU的预测Cb块中的Cb样本与CU的原始Cb译码块中的对应样本之间的差。编码器100还可以生成CU的Cr残差块。CU的Cr残差块中的每个样本可以指示CU的预测Cr块中的Cr样本与CU的原始Cr译码块中的对应样本之间的差。

在一些示例中,编码器100跳过变换至变换块的应用。在这样的示例中,编码器200可以以与变换系数相同的方式来处理残差样本值。因此,在编码器100跳过变换的应用的示例中,以下对变换系数和系数块的讨论可以适用于残差样本的变换块。

在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,编码器200可以量化该系数块,以可能地减少用于表示该系数块的数据量,潜在地提供进一步的压缩。量化通常是指将值的范围压缩为单个值的过程。在编码器200量化系数块之后,编码器200可以对指示已量化变换系数的语法元素进行熵编码。例如,编码器200可以对指示已量化变换系数的语法元素执行上下文自适应二进制算术译码(Context-Adaptive Binary ArithmeticCoding,CABAC)或其他熵译码技术。

编码器200可以输出已编码图片数据271的比特流,其包括形成已译码图片和相关联数据的表示的一系列比特。因此,比特流包括视频数据的已编码表示。

在J.An等人的“下一代视频译码的块划分结构”中,国际电信联盟,COM16-C966,2015年9月(以下称为“VCEG提案COM16-C966”),针对HEVC之后的未来视频译码标准,提出了四叉树-二叉树(QTBT)划分技术。模拟表明,所提出的QTBT结构比在HEVC中使用的四叉树结构更有效。HEVC中,限制了用于小块的帧间预测,以减少运动补偿的存储器存取,使得对于4×8和8×4块,不支持双向预测,并且对于4×4块,不支持帧间预测。JEM的QTBT中,删除了这些限制。

QTBT中,CU可以为正方形或矩形。如图10所示,首先按照四叉树结构对译码树单元(CTU)进行划分。四叉树叶节点可以按照二叉树结构被进一步划分。在二叉树分割中,存在两种分割类型,即对称水平分割和对称垂直分割。在每种情况下,通过将节点从中间水平或垂直地分开来分割该节点。二叉树叶节点被称为译码单元(CU),该分割用于预测和变换处理,而无需任何进一步的划分。意思是,CU、PU和TU在QTBT译码块结构中具有相同的块尺寸。有时,CU由不同颜色分量的译码块(CB)组成,例如,在4:2:0色度格式的P条带和B条带的情况下,一个CU包含一个亮度CB和两个色度CB。有时,CU由单个分量的CB组成,例如,在I条带的情况下,一个CU仅包含一个亮度CB或仅包含两个色度CB。

针对QTBT划分方案,定义了以下参数。

—CTU尺寸:四叉树的根节点尺寸,与HEVC中的概念相同

—MinQTSize:允许的最小四叉树叶节点尺寸

—MaxBTSize:允许的最大二叉树根节点尺寸

—MaxBTDepth:允许的最大二叉树深度

—MinQTSize:允许的最小二叉树叶节点尺寸

在QTBT划分结构的一个示例中,将CTU尺寸设置为128×128亮度样本(也称为Y样本),具有两个对应的64×64色度样本块,将MinQTSize设置为16×16,将MaxBTSize设置为64×64,将MinBTSize(对于宽度和高度)设置为4×4,以及将MaxBTDepth设置为4。将四叉树划分首先应用于CTU,以生成四叉树叶节点。四叉树叶节点的尺寸可以从16×16(即MinQTSize)到128×128(即CTU尺寸)。当四叉树节点的尺寸等于MinQTSize时,不考虑进一步四叉树。如果叶四叉树节点为128×128,由于该尺寸超过MaxBTSize(即64×64),因此,不会通过二叉树进行进一步分割。否则,叶四叉树节点可以通过二叉树被进行进一步划分。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树的深度为0。当二叉树深度达到MaxBTDepth(即4)时,不考虑进一步分割。当二叉树节点的宽度等于MinBTSize(即4)时,不考虑进一步水平分割。同理,当二叉树节点的高度等于MinBTSize时,不考虑进一步垂直分割。通过预测和变换处理来进一步处理二叉树的叶节点,而无需任何进一步的划分。在JEM中,最大CTU尺寸为256×256亮度样本。可以进一步处理二叉树(CU)的叶节点(例如,通过执行预测过程和变换过程),而无需任何进一步的划分。

图10示出了使用QTBT划分技术划分的块30(例如,CTB)的示例。如图10所示,使用QTBT划分技术,将多个块中的每个块通过每个块的中心对称分割。图11示出了与图11的块划分相对应的叉树结构。图11中的实线表示四叉树分割,虚线表示二叉树分割。在一个示例中,在二叉树的每个分割(即非叶)节点中,信号发送语法元素(例如,标志),以指示所执行的分割的类型(例如,水平或垂直),其中,0指示水平分割,1指示垂直分割。对于四叉树分割,无需指示分割类型,因为四叉树分割始终将块水平且垂直地分割成具有相等尺寸的四个子块。

如图11所示,在节点50处,使用QT划分,将块30分割成四个块31、32、33和34,如图10所示。块34没有被进一步分割,因此是叶节点。在节点52处,使用BT划分,将块31进一步分割成两个块。如图4所示,节点52被标记为1,指示垂直分割。这样,节点52处的分割产生了块37以及包括块35和36两者的块。块35和36是通过在节点54处进行进一步的垂直分割来得到的。在节点56处,使用BT划分,将块32进一步分割成两个块38和39。

在节点58处,使用BT划分,将块33分割成4个相等尺寸的块。块43和44是根据该QT划分得到的,并且不再进一步分割。在节点60处,首先使用垂直二叉树分割来分割左上块,产生块40和右侧垂直块。然后,使用水平二叉树分割,将右侧垂直块分割成块41和42。在节点62处,使用水平二叉树分割,将在节点58处根据四叉树分割产生的右下块分割成块45和46。如图11所示,节点62被标记为0,指示垂直分割。

另外,QTBT方案支持亮度和色度具有单独的QTBT结构的能力。当前,对于P条带和B条带,一个CTU中的亮度CTB和色度CTB可以共享相同的QTBT结构。然而,对于I条带,通过QTBT结构将亮度CTB划分成CU,并且通过另一QTBT结构可以将色度CTB划分成色度CU。意思是,I条带中的CU由亮度分量的译码块或两个色度分量的译码块组成,P条带或B条带中的CU由所有三个颜色分量的译码块组成。

编码器200对QTBT结构应用速率失真优化(ate-distortion optimization,RDO)处理,以确定块划分。

另外,在公开号为20170208336的美国专利申请中提出了一种被称为多类型叉树(multi-type-tree,MTT)的块划分结构,以代替基于QT、BT和/或QTBT的CU结构。MTT划分结构仍然是递归的叉树结构。MTT中,使用了多个不同的划分结构(例如,三个或三个以上)。例如,根据MTT技术,在叉树结构的每个深度处,可以对叉树结构的每个各自的非叶节点使用三个或三个以上不同的划分结构。叉树结构中的节点的深度可以指的是从叉树结构的节点到根的路径的长度(例如,分割的数量)。划分结构通常可以指一个块可以分成多少个不同的块。划分结构可以是可以将一个块分成四个块的四叉树划分结构、可以将一个块分成为两个块的二叉树划分结构或者可以将一个块分成三个块的三叉树划分结构。此外,三叉树划分结构可以无需通过中心来分块。划分结构可以有多种不同的划分类型。划分类型可以另外定义如何划分块,包括对称或不对称划分、均匀或不均匀划分和/或水平或垂直划分。

MTT中,在叉树结构的每个深度处,编码器200可以用于使用三个或三个以上划分结构之一中的特定划分类型来进一步分割子树。例如,编码器100可以用于从QT、BT、三叉树(TT)和其他划分结构中确定特定划分类型。在一个示例中,QT划分结构可以包括正方形四叉树划分类型或矩形四叉树划分类型。编码器200可以使用正方形四叉树划分通过划分块,将正方形块水平且垂直地从中心划分成四个相等尺寸的正方形块。同样,编码器200可以使用矩形四叉树划分通过划分矩形块,将矩形(例如非正方形)块水平且垂直地从中心划分成四个相等尺寸的矩形块。

BT划分结构可以包括水平对称二进制叉树、垂直对称二进制叉树、水平非对称二进制叉树或垂直非对称二进制叉树划分类型中的至少一种。对于水平对称二叉树划分类型,编码器200可以用于将一个块从块的中心水平地分割成相同尺寸的两个对称块。对于垂直对称二叉树划分类型,编码器200可以用于将一个块从块的中心垂直地分割成相同尺寸的两个对称块。对于水平非对称二叉树划分类型,编码器100可以用于将一个块水平地分割成不同尺寸的两个块。例如,一个块可以是母块尺寸的1/4,另一个块可以是母块尺寸的3/4,类似于PART_2N×nU或PART_2N×nD划分类型。对于垂直非对称二叉树划分类型,编码器100可以用于将一个块垂直地分割成不同尺寸的两个块。例如,一个块可以是母块尺寸的1/4,另一个块的尺寸可以是母块尺寸的3/4,类似于PART_nL×2N或PART_nR×2N划分类型。在其他示例中,非对称二叉树划分类型可以将母块分成不同尺寸的部分。例如,一个子块可以是母块的3/8,而另一个子块可以是母块的5/8。当然,这种划分类型可以是垂直的也可以是水平的。

TT划分结构与QT或BT结构的区别在于,TT划分结构不会将块从中心分割开。块的中心区域共同留在在相同子块中。与产生四个块的QT或产生两个块的二叉树不同,根据TT划分结构的分割产生三个块。根据TT划分结构的示例划分类型包括对称划分类型(水平和垂直两者)以及非对称划分类型(水平和垂直两者)。此外,根据TT划分结构的对称划分类型可以是不均等/不均匀或均等/均匀的。根据TT划分结构的非对称划分类型是不均等/不均匀的。在一个示例中,TT划分结构可以包括以下划分类型中的至少一种:水平均等/均匀对称三叉树划分类型、垂直均等/均匀对称三叉树划分类型、水平不均等/不均匀对称三叉树划分类型、垂直不均等/不均匀对称三叉树划分类型、水平不均等/不均匀非对称三叉树划分类型或垂直不均等/不均匀非对称三叉树划分类型。

通常,不均等/不均匀对称三叉树划分类型是绕块的中心线对称的划分类型,但其中,所得到的三个块中的至少一个与其他两个块的尺寸不同。一个优选的示例是,旁边的块是块尺寸的1/4,而中心块是块尺寸的1/2。均等/均匀对称三叉树划分类型是绕块的中心线对称的划分类型,并且所得块尺寸都相同。如果块的高度或宽度(取决于垂直或水平分割)为3的倍数,这种划分是可能的。不均等/不均匀非对称三叉树划分类型是绕块的中心线不对称的划分类型,其中,所得到的块中的至少一个与其他两个块的尺寸不同。

图12是示出了示例水平三叉树划分类型的概念图。图13是示出了示例垂直三叉树划分类型的概念图。在图12和图13中,h表示亮度或色度样本中块的高度,w表示亮度或色度样本中块的宽度。注意,块的各自中心线不代表块的边界(即,三叉树划分不通过中心线分割块)。而是,中心线\用于描述相对于原始块的中心线,特定划分类型是对称还是非对称的。中心线也是沿分割方向的。

如图12所示,利用水平均等/均匀对称划分类型来划分块71。水平均等/均匀对称划分类型产生相对于块71的中心线对称的上半部分和下半部分。水平均等/均匀对称划分类型产生尺寸相等的三个子块,每个子块的高度为h/3,宽度为w。当块71的高度可被3整除时,水平均等/均匀对称划分类型是可能的。

利用水平不均等/不均匀对称划分类型来划分块73。水平不均等/不均匀对称划分类型产生相对于块73的中心线对称的上半部分和下半部分。水平不均等/不均匀对称划分类型产生尺寸相等的两个块(例如,高度为h/4的顶部块和底部块)和不同尺寸的中心块(例如,高度为h/2的中心块。在一个示例中,根据水平不均等/不均匀对称划分类型,中心块的面积等于顶部块和底部块的组合面积。在一些示例中,水平不均等/不均匀对称划分类型对于具有高度为2的幂(例如,2、4、8、16,32等)的块可以是优选的。

利用水平不均等/不均匀非对称划分类型来划分块75。水平不均等/不均匀非对称划分类型不产生相对于块75的中心线对称的上半部分和下半部分(即,上半部分和下半部分是非对称的)。在图7的示例中,水平不均等/不均匀非对称划分类型产生高度为h/4的顶部块、高度为3h/8的中央块和高度为3h/8的底部块。当然,可以使用其他非对称布置,并且示出了MER网格,以说明可以并行处理MER区域内的块。

如图13所示,利用垂直均等/均匀对称划分类型来划分块81。垂直均等/均匀对称划分类型产生相对于块81的中心线对称的左半部分和右半部分。垂直均等/均匀对称划分类型产生尺寸相等的三个子块,每个子块的宽度为w/3,高度为h。当块81的宽度可被3整除时,垂直均等/均匀对称划分类型是可能的。

利用垂直不均等/不均匀对称划分类型来划分块83。垂直不均等/不均匀对称划分类型产生相对于块83的中心线对称的左半部分和右半部分。垂直不均等/不均匀对称划分类型产生相对于块83的中心线对称的左半部分和右半部分。垂直不均等/不均匀对称划分类型产生尺寸相等的两个块(例如,宽度为w/4的左侧块和右侧块)和不同尺寸的中心块(例如,宽度为w/2的中心块)。在一个示例中,根据垂直不均等/不均匀对称划分类型,中心块的面积等于左侧块和右侧块的组合面积。在一些示例中,垂直不均等/不均匀对称划分类型对于具有宽度为2的幂(例如,2、4、8、16,32等)的块可以是优选的。

利用垂直不均等/不均匀非对称划分类型来划分块85。垂直不均等/不均匀非对称划分类型不产生相对于块85的中心线对称的左半部分和右半部分(即,左半部分和右半部分是非对称的)。在图8的示例中,垂直不均等/不均匀非对称划分类型产生宽度为w/4的左侧块,宽度为3w/8的中央块和宽度为3w/8的底部块。当然,可以使用其他非对称布置。

在将块(例如,在子树节点处)分割为非对称三叉树划分类型的示例中,编码器200和/或解码器300可以应用使得三个分区中的两个具有相同的尺寸的限制。这样的限制可以对应于编码器200在对视频数据进行编码时必须遵守的限制。此外,在一些示例中,编码器200和解码器300可以应用限制,从而当根据非对称三叉树划分类型进行分割时,两个分区的面积之和等于剩余分区的面积。

在一些示例中,编码器200可以用于为QT、BT和TT划分结构中的每一个从所有前述划分类型中进行选择。在其他示例中,编码器200可以用于从上述划分类型的子集中仅确定划分类型。例如,以上讨论的划分类型(或其他划分类型)的子集可以用于某些块尺寸,或用于四叉树结构的某些深度。支持的划分类型的子集可以在比特流中信号发送,以供解码器200使用,或者可以预先定义为使得编码器200和解码器300可以确定子集而无需任何信令。

在其他示例中,支持的划分类型的数量对于所有CTU中的所有深度可以是固定的。即,编码器200和解码器300可以被预先配置为对CTU的任何深度使用相同数量的划分类型。在其他示例中,支持的划分类型的数量可以变化,并且可以取决于深度、条带类型或其他先前已译码信息。在一个示例中,在叉树结构的深度0或深度1处,仅使用QT划分结构。在大于1的深度处,可以使用QT、BT和TT划分结构中的每一个。

在一些示例中,编码器200和/或解码器300可以对支持的划分类型应用预配置的约束,以避免对视频图片的某一区域或CTU的区域进行重复划分。在一个示例中,当利用非对称划分类型来分割块时,编码器200和/或解码器300可以用于不对从当前块分割出的最大子块进行进一步分割。例如,当根据非对称划分类型(类似于PART_2N×nU划分类型)分割正方形块时,所有子块中最大的子块(类似于PART_2N×nU划分类型的最大子块)是需要注意的叶节点,并且无法被进一步分割。但是,可以进一步分割较小的子块(类似于PART_2N×nU划分类型的较小的子块)。

作为可以应用对支持的划分类型的约束来避免对某一区域进行重复划分的另一示例,当利用非对称划分类型来分割块时,不能以相同方向进一步分割从当前块分割出的最大子块。例如,当利用非对称划分类型(类似于PART_2N×nU划分类型)分割正方形块时,编码器200和/或解码器200可以用于不以水平方向分割所有子块中的大子块(类似于PART_2N×nU划分类型的最大子块)。

作为可以应用对支持的划分类型的约束来避免进一步分割的困难的另一示例,当块的宽度/高度不是2的幂时(例如,当宽度/高度不是2、4、8、16等时),编码器200和/或解码器300可以用于对块不进行水平或垂直分割。

以上示例描述了编码器200如何可以用于执行MTT划分。然后,解码器300还可以应用与编码器200执行的MTT划分相同的MTT划分。在一些示例中,可以通过在解码器300处应用预定义规则的相同的集合来确定视频数据的图片如何由编码器200进行划分。然而,在许多情况下,编码器200可以基于用于正被译码的视频数据的特定图片的速率失真标准来确定要使用的特定划分结构和划分类型。这样,为了对解码器300确定对特定图片的划分,编码器200可以将语法元素在已编码比特流中信号发送,语法元素指示如何划分图片以及图片的CTU。解码器200可以对这样的语法元素进行解析,并相应地划分图片和CTU。为了在对图片进行解码/编码时平衡计算复杂性,图片的划分应受某些约束限制,例如,由CTU的四叉树分割所产生的叶块的最小亮度尺寸、由四叉树叶的多类型叉树分割所产生的译码单元的最大层级深度等。为了平衡复杂性和译码效率,提供了以下公开内容。

公开1

可以在SPS或其他参数集或Slice头部或Tile头部中信号发送附加的高级划分约束控制语法元素存在(不存在)标志。该标志可以采用两个不同值之一,即第一值和第二值。例如,第一值可以被译码为零(1),第二值可以被译码为(0),反之亦然。

例如,如果标志等于1,由于与高级语法元素(例如,MinQtSizeY、MaxMttDepht和/或MaxBtSizeY)相关的划分约束在比特流中,因此信号发送它。否则(例如,如果标志等于0),将使用与高级语法元素有关的划分约束的默认值来限制译码块的划分信息推导。

具体地,将MinQtSizeY设置为4或设置为MinCbSize用于帧内条带和帧间条带,以确保QT分割可以达到允许的最小译码块。将MaxMttDepth设置为3用于帧内条带和帧间条带,以平衡复杂性和译码效率。将MaxBtSizeY设置为128或CtbLog2SizeY用于帧间条带,并设置为32(关于CTU尺寸128)用于帧内条带,以进一步平衡复杂性和译码效率。如果未信号发送MaxTtSizeY元素,将MaxTtSizeY的默认值设置为64用于帧间条带,并设置为32用于帧内条带,以平衡复杂性和译码效率。所有默认值不限于上述值。注意,这些默认设置仅是示例性的,并且其他的默认设置可以在编码器和解码器之间达成一致或被预先配置。

技术优势:信号发送高级划分约束控制语法元素存在(不存在)标志提供了另一种定义约束的方式,具体是,设置默认值(除了信号发送,先前仅信号发送是可能的),如果存在高级划分约束,这提供了更多选项(灵活性)。否则,如果比特流中不存在高级划分约束,将使用这些语法元素的默认值,因此,不需要信号发送这些语法元素,这可以节省比特消耗并为设置尺寸约束提供更大的灵活性。编码器(或编码方法)和解码器(或解码方法)都执行相同(相应)的操作,即编码器和解码器侧都使用了相同的规则、默认值和语法/语义。

以下示出了基于上述现有技术的相应的语法和语义修改。在以下的示例性语法中,通过加下划线来强调添加的部分。特别地,将与上述高级划分约束控制语法元素存在(不存在)标志对应的语法元素partition_constraints_control_present_flag插入到比特流中。相应地,在语法定义中插入一个条件,该条件评估partition_constraints_control_present_flag(可以对应于第一指示)的值是1还是0(可以分别对应于第一指示的第一值和第二值)。如果值为1,则约束参数将作为语法元素log2_min_qt_size_intra_slices_minus2、log2_min_qt_size_inter_slices_minus2、max_mtt_hierarchy_depth_inter_slices和max_mtt_hierarchy_depth_intra_slices包括到比特流中,具体是到参数集中。否则,这些参数不作为语法参数包括在比特流中。而是可以通过预设的默认值来规定它们。在该示例中,标志和参数被包括在称为seq_parameter_set_rbsp()(对应于上述SPS)的参数集中,这对于一个或多个图像帧可以是通用的。并且,修改条带头部的语法。

修改的序列参数集RBSP语法(基于[JVET-K1001-v4]的7.3.2.1节)

seq_parameter_set_rbsp(){ 描述符
sps_seq_parameter_set_id ue(v)
chroma_format_idc ue(v)
if(chroma_format_idc==3)
separate_colour_plane_flag u(1)
pic_width_in_luma_samples ue(v)
pic_height_in_luma_samples ue(v)
bit_depth_luma_minus8 ue(v)
bit_depth_chroma_minus8 ue(v)
qtbtt_dual_tree_intra_flag ue(v)
log2_ctu_size_minus2 ue(v)
<u>partition_constraints_control_present_flag</u> ue(v)
<u>if(partition_constraints_control_present_flag){</u>
log2_min_qt_size_intra_slices_minus2 ue(v)
log2_min_qt_size_inter_slices_minus2 ue(v)
max_mtt_hierarchy_depth_inter_slices ue(v)
max_mtt_hierarchy_depth_intra_slices ue(v)
}
sps_cclm_enabled_flag ue(1)
sps_mts_intra_enabled_flag ue(1)
sps_mts_inter_enabled_flag ue(1)
rbsp_trailing_bits()
}

在一些实施例中,SPS(例如,对于整个帧或图像)中规定的参数可以被其他语法单元(例如,对于一个帧或图像的某些部分)中规定的参数否决,例如条带头部或区块头部。下文中,示出了修改的条带头部,其包括语法元素log2_diff_ctu_max_bt_size,该语法元素可以(但不是必须)已在语法的较高级别上提供,例如SPS。在这种情况下,在条带头部中信号发送的log2_diff_ctu_max_bt_size值用于对数据进行正确解码。换言之,在此示例中,第一指示还指示条带头部中是存在或不存在一个或多个块尺寸(或深度)参数。

修改的条带头部语法(基于[JVET-K1001-v4]的7.3.3节)

slice_header(){ 描述符
slice_pic_parameter_set_id ue(v)
slice_address u(v)
slice_type ue(v)
if(slice_type!=I||<u>partition_constraints_control_present_flag)</u>
log2_diff_ctu_max_bt_size ue(v)
dep_quant_enabled_flag u(1)
if(!dep_quant_enabled_flag)
sign_data_hiding_enabled_flag u(1)
byte_alignment()
}

……

修改的序列参数集RBSP语义(基于[JVET-K1001-v4]的7.4.3.1节)

……

partition_constraints_control_present_flag等于1规定了在SPS中存在划分 约束控制语法元素。partition_constraints_control_present_flag等于0规定了在SPS中 不存在划分约束控制语法元素。

log2_min_qt_size_intra_slices_minus2加2规定了由slice_type等于2(I)的条带中的CTU的四叉树分割所产生的叶块的最小亮度尺寸。log2_min_qt_size_intra_slices_minus2的值应在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。当不存在 时,推断sps_log2_min_qt_size_intra_slices_minus2的值等于0。

MinQtLog2SizeIntraY=log2_min_qt_size_intra_slices_minus2+2 (7-22)

log2_min_qt_size_inter_slices_minus2加2规定了由slice_type等于0(B)或1(P)的条带中的CTU的四叉树分割所产生的叶块的最小亮度尺寸。log2_min_qt_size_inter_slices_minus2的值应在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。 不存在时,推断sps_log2_min_qt_size_inter_slices_minus2的值等于0。

MinQtLog2SizeInterY=log2_min_qt_size_inter_slices_minus2+2 (7-23)

max_mtt_hierarchy_depth_inter_slices规定了由slice_type等于0(B)或1(P)的条带中的四叉树叶的多类型叉树分割所产生的译码单元的最大层级深度。max_mtt_hierarchy_depth_inter_slices的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。当不存在时,推断sps_max_mtt_hierarchy_depth_ inter_slices的值等于3。

max_mtt_hierarchy_depth_intra_slices规定了由slice_type等于2(I)的条带中的四叉树叶的多类型叉树分割所产生的译码单元的最大层级深度。max_mtt_hierarchy_depth_intra_slices的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。当不存在时,推断sps_max_mtt_hierarchy_depth_inter_ slices的值等于3。

……

修改的条带头部语义(基于[JVET-K1001-v4]的7.4.4节)

……

log2_diff_ctu_max_bt_size规定了译码块的亮度CTB尺寸与最大亮度尺寸(宽度或高度)之间的差,该译码块可以使用二进制分割来分割。log2_diff_ctu_max_bt_size的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinCbLog2SizeY。

当不存在log2_diff_ctu_max_bt_size时,

如果slice_type等于2(I)

推断log2_diff_ctu_max_bt_size的值等于2。

否则

推断log2_diff_ctu_max_bt_size的值等于0。

推导变量MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY和MaxMttDepth如下:

MinQtLog2SizeY=(slice_type==I)?MinQtLog2SizeIntraY:MinQtLog2SizeInterY (7-25)

MinQtLog2SizeY=log2_min_qt_size_minus2+2 (7-25)

MaxBtLog2SizeY=CtbLog2SizeY-log2_diff_ctu_max_bt_size (7-26)

MinBtLog2SizeY=MinCbLog2SizeY (7-27)

MaxTtLog2SizeY=(slice_type==I)?5:6 (7-28)

MinTtLog2SizeY=MinCbLog2SizeY (7-29)

MinQtSizeY=1<<MinQtLog2SizeY (7-30)

MaxBtSizeY=1<<MaxBtLog2SizeY (7-31)

MinBtSizeY=1<<MinBtLog2SizeY (7-32)

MaxTtSizeY=1<<MaxTtLog2SizeY (7-33)

MinTtSizeY=1<<MinTtLog2SizeY (7-34)

MaxMttDepth=(slice_type==I)?max_mtt_hierarchy_depth_intra_slices:max_mtt_hierarchy_depth_inter_slices (7-35)

MaxMttDepth=1<<max_mtt_hierarchy_depth (7-35)

在该示例中,标志和参数被包括在称为seq_parameter_set_rbsp()SPS的参数集中,这对于一个或多个图像帧可以是通用的。然而,本公开不限于此,并且标志和/或参数可以被包括在比特流的与其他视频部分相对应的其他语法部分中,例如图片参数集(PPS)或虚拟参数集(VPS)等。

公开2

以下方面1可以与方面2和/或3结合,即

可以在SPS中信号发送划分高级语法约束元素(称为公开1中的方面1a)。

可以在条带头部中覆盖(重写/否决)划分高级语法约束元素(公开2中的方面1b)。

划分高级语法约束元素可以使用默认值(称为公开1中的方面2)。

可以在SPS中禁用BT和TT(可替换实施例中的方面3a)。这可以通过插入启用/禁用标志来实现。

可以在条带头部中禁用BT和TT(另一可替换实施例中的方面3b)。这可以通过插入启用/禁用标志来实现。

可以在SPS中信号发送BT和TT启用(禁用)标志,并在条带头部中覆盖BT和TT启用(禁用)标志(可替换实施例中的方面1a和1b)。

这些技术可以利于提供以下优势(例如,SPS中信号发送,条带头部中覆盖):高级划分约束控制划分复杂性和根据划分的译码效率之间的折衷。公开1和/或2确保了针对单个条带控制折衷的灵活性。对于默认值以及BT和/或TT启用(禁用功能),存在甚至更大的灵活性来控制元素。编码器侧和解码器侧都执行相同(对应)的操作。

例如,partition_constraints_control_present_flag可以通过partition_constraints_override_enabled_flag来补充,其指示是否从条带头部中获取SPS和条带头部中信号发送的相同参数(并且可能在SPS中有与条带头部中的值不同的值),从而覆盖SPS中信号发送的值。

以下示出了基于现有技术的公开2的相应修改:

修改的序列参数集RBSP语法(基于[JVET-K1001-v4]的7.3.2.1节)

seq_parameter_set_rbsp(){ 描述符
sps_seq_parameter_set_id ue(v)
chroma_format_idc ue(v)
if(chroma_format_idc==3)
separate_colour_plane_flag u(1)
pic_width_in_luma_samples ue(v)
pic_height_in_luma_samples ue(v)
bit_depth_luma_minus8 ue(v)
bit_depth_chroma_minus8 ue(v)
qtbtt_dual_tree_intra_flag ue(v)
log2_ctu_size_minus2 ue(v)
<u>partition constraints control present flag</u> ue(v)
<u>if(partition_constraints_control_present_flag){</u>
<u>partition constraints</u><u>override enabled flag</u> ue(v)
sps_btt_enabled_flag ue(v)
if(sps_btt_enabled_flag){
sps_log2_min_qt_size_intra_slices_minus2 ue(v)
sps_log2_min_qt_size_inter_slices_minus2 ue(v)
sps_max_mtt_hierarchy_depth_inter_slices ue(v)
sps_max_mtt_hierarchy_depth_intra_slices ue(v)
sps_log2_diff_ctu_max_bt_size_intra_slices ue(v)
sps_log2_diff_ctu_max_bt_size_inter_slices ue(v)
}
}
sps_cclm_enabled_flag ue(1)
sps_mts_intra_enabled_flag ue(1)
sps_mts_inter_enabled_flag ue(1)
rbsp_trailing_bits()
}

修改的条带头部语法(基于[JVET-K1001-v4]的7.3.3节)

修改的序列参数集RBSP语义(基于[JVET-K1001-v4]的7.4.3.1节)

……

partition_constraints_control_present_flag等于1规定了在SPS中存在划分 约束控制语法元素。partition_constraints_control_present_flag等于0规定了在SPS中 不存在划分约束控制语法元素。

sps_btt_enabled_flag等于1规定了将多类型叉树划分的操作应用于引用不存在 slice_btt_enable_flag的SPS的条带。sps_btt_enabled_flag等于0规定了将多类型叉树 划分的操作不应用于引用不存在slice_btt_enable_flag的SPS的条带。当不存在时,推断 sps_btt_enabled_flag的值等于1。

partition_constraints_override_enabled_flag等于1规定了在引用SPS的条带 的条带头部中存在partition_constraints_override_flag。partition_constraints_ override_enabled_flag等于0规定了在引用SPS的条带的条带头部中不存在partition_ constraints_override_flag。当不存在时,推断partition_constraints_override_ enabled_flag的值等于0。

sps_log2_min_qt_size_intra_slices_minus2加2规定了叶块的SPS中最小亮度尺寸的初始值,该叶块是由引用SPS的slice_type等于2(I)的条带中的CTU的四叉树分割产生的,除非由CTU的四叉树分割所产生的叶块的SPS中的最小亮度尺寸的初始值被由引用SPS的条带的条带头部中存在的CTU的四叉树分割所产生的叶块的最小亮度尺寸覆盖。log2_min_qt_size_intra_slices_minus2的值应在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。当不存在时,推断sps_log2_min_qt_size_intra_slices_minus2的值等 于0。

sps_log2_min_qt_size_inter_slices_minus2加2规定了叶块的SPS中最小亮度尺寸的初始值,该叶块是由引用SPS的slice_type等于0(B)或1(P)的条带中的CTU的四叉树分割产生的,除非由CTU的四叉树分割所产生的叶块的最小亮度尺寸被由引用SPS的条带的条带头部中存在的CTU的四叉树分割所产生的叶块的最小亮度尺寸覆盖。log2_min_qt_size_inter_slices_minus2的值应在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。当不存在时,推断sps_log2_min_qt_size_inter_slices_minus2的值等 于0。

sps_max_mtt_hierarchy_depth_inter_slices规定了译码单元的SPS中的最大层级深度的初始值,该译码单元是由引用SPS的slice_type等于0(B)或1(P)的条带中的四叉树叶的多类型叉树分割产生的,除非由四叉树叶的多类型叉树划分所产生的译码单元的SPS中的最大层次深度的初始值被由引用SPS的条带的条带头部中存在的四叉树叶的多类型叉树划分所产生的译码单元的最大层级深度覆盖。max_mtt_hierarchy_depth_inter_slices的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。当不存在时,

如果sps_btt_enabled_flag等于1

推断sps_max_mtt_hierarchy_depth_inter_slices的值等于3。

否则

推断sps_max_mtt_hierarchy_depth_inter_slices的值等于0。

sps_max_mtt_hierarchy_depth_intra_slices规定了译码单元的SPS中的最大层级深度的初始值,该译码单元是由引用SPS的slice_type等于2(I)的条带中的四叉树叶的多类型叉树分割产生的,除非由四叉树叶的多类型叉树划分所产生的译码单元的SPS中的最大层次深度的初始值被由引用SPS的条带的条带头部中存在的四叉树叶的多类型叉树划分所产生的译码单元的最大层级深度覆盖。max_mtt_hierarchy_depth_intra_slices的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。当不存在时,

如果sps_btt_enabled_flag等于1

推断sps_max_mtt_hierarchy_depth_intra_slices的值等于3。

否则

推断sps_max_mtt_hierarchy_depth_intra_slices的值等于0。

sps_log2_diff_ctu_max_bt_size_intra_slices规定了译码块的SPS中亮度CTB尺寸和最大亮度尺寸(宽度或高度)之间的差的原始值,该译码块可以是使用引用SPS的slice_type等于2(I)的条带中的二进制分割而分割的,除非可以使用二进制分割而分割的译码块的SPS中亮度CTB尺寸和最大亮度尺寸(宽度或高度)之间的差的原始值被可以使用参考SPS的条带的条带头部中存在的二进制分割而分割的译码块的SPS中亮度CTB尺寸和最大亮度尺寸(宽度或高度)之间的差覆盖。log2_diff_ctu_max_bt_size的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。当不存在时,

如果sps_btt_enabled_flag等于1

推断sps_log2_diff_ctu_max_bt_size_intra_slices的值等于2。

否则

推断sps_log2_diff_ctu_max_bt_size_intra_slices的值等于CtbLog2SizeY-MinTbLog2SizeY。

sps_log2_diff_ctu_max_bt_size_inter_slices规定了译码块的SPS中亮度CTB尺寸和最大亮度尺寸(宽度或高度)之间的差的原始值,该译码块可以是使用引用SPS的slice_type等于2(I)的条带中的二进制分割而分割的,除非可以使用二进制分割而分割的译码块的SPS中亮度CTB尺寸和最大亮度尺寸(宽度或高度)之间的差的原始值被可以使用参考SPS的条带的条带头部中存在的二进制分割而分割的译码块的SPS中亮度CTB尺寸和最大亮度尺寸(宽度或高度)之间的差覆盖。log2_diff_ctu_max_bt_size的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。当不存在时,

如果sps_btt_enabled_flag等于1

推断sps_log2_diff_ctu_max_bt_size_inter_slices的值等于0。

否则

推断sps_log2_diff_ctu_max_bt_size_inter_slices的值等于CtbLog2SizeY-MinTbLog2SizeY。

……

修改的条带头部语义(基于[JVET-K1001-v4]的7.4.4节)

……

partition_constraints_override_flag等于1规定了条带头部中存在划分约束 参数。partition_constraints_override_flag等于0规定了条带头部中不存在划分约束参 数。当不存在时,推断partition_constraints_override_flag的值等于0。

slice_btt_enabled_flag等于1规定了将多类型叉树划分的操作应用于当前条带。slice_btt_enabled_flag等于0规定了多类型叉树划分的操作不应用于当前条带。当不存在slice_btt_enabled_flag时,推断其等于sps_btt_enabled_flag。

log2_min_qt_size_minus2加2规定了由当前条带的CTU的四叉树划分所产生的叶块的足校亮度尺寸。log2_min_qt_size_inter_slices_minus2的值应在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。当不存在时,推断log2_min_qt_size_minus2的值等于slice_type等于2(I)的sps_log2_min_qt_size_intra_slices_minus2,并推断其等于slice_type等于0(B)或1(P)的sps_log2_min_qt_size_inter_slices_minus2。

max_mtt_hierarchy_depth规定了由当前条带的四叉树叶的多类型叉树分割产生的译码单元的最大层级深度。max_mtt_hierarchy_depth_intra_slices的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。当不存在时,推断max_mtt_hierarchy_depth的值等于slice_type等于2(I)的sps_max_mtt_hierarchy_depth_intra_slices,并推断其等于slice_type等于0(B)或1(P)的sps_max_mtt_hierarchy_depth_inter_slices。

log2_diff_ctu_max_bt_size规定了译码块的亮度CTB尺寸与最大亮度尺寸(宽度或高度)之间的差,该译码块可以是使用当前条带的二进制分割来分割的。log2_diff_ctu_max_bt_size的值应在0到CtbLog2SizeY-MinTbLog2SizeY的范围内,包括0和CtbLog2SizeY-MinTbLog2SizeY。当不存在时,推断log2_diff_ctu_max_bt_size的值等于slice_type等于2(I)的sps_log2_diff_ctu_max_bt_size_intra_slices,并推断其等于slice_type等于0(B)或1(P)的sps_log2_diff_ctu_max_bt_size_inter_slices。

推导变量MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY和MaxMttDepth如下:

MinQtLog2SizeY=log2_min_qt_size_minus2+2 (7-25)

MaxBtLog2SizeY=CtbLog2SizeY-log2_diff_ctu_max_bt_size (7-26)

MinBtLog2SizeY=MinCbLog2SizeY (7-27)

MaxTtLog2SizeY=(slice_type==I)?5:6 (7-28)

MinTtLog2SizeY=MinCbLog2SizeY (7-29)

MinQtSizeY=1<<MinQtLog2SizeY (7-30)

MaxBtSizeY=1<<MaxBtLog2SizeY (7-31)

MinBtSizeY=1<<MinBtLog2SizeY (7-32)

MaxTtSizeY=1<<MaxTtLog2SizeY (7-33)

MinTtSizeY=1<<MinTtLog2SizeY (7-34)

MaxMttDepth=(slice_type==I)?max_mtt_hierarchy_depth_intra_slices:max_mtt_hierarchy_depth_inter_slices (7-35)

MaxMttDepth=1<<max_mtt_hierarchy_depth (7-35)

公开3

如果在SPS(或其他参数集或Slice头部)中信号发送可以使用三进制分割来分割的译码块的MaxTTSizeY(最大亮度尺寸(宽度或高度)),可以以相同的方式应用本公开1和2或方面1、2或方面3。

技术优势:信号发送MaxTtSizeY语法元素的指示符的公开内容确保了存在更大的灵活性来控制元素。编码器和解码器都执行相同(对应)的操作。这里,当引用“相同的操作”时,意思是,由于编码器和解码器使用相同的语法,因此它们应该应用相同的分割。然而,编码器应对语法元素进行确定和编码,而解码器应根据比特流和/或默认值或基于某个预设规则对语法元素进行推导或解码。

以下示出了基于现有技术的相应的语法和语义修改。

修改的序列参数集RBSP语法(基于[JVET-K1001-v4]的7.3.2.1节)

seq_parameter_set_rbsp(){ 描述符
sps_seq_parameter_set_id ue(v)
chroma_format_idc ue(v)
if(chroma_format_idc==3)
separate_colour_plane_flag u(1)
pic_width_in_luma_samples ue(v)
pic_height_in_luma_samples ue(v)
bit_depth_luma_minus8 ue(v)
bit_depth_chroma_minus8 ue(v)
qtbtt_dual_tree_intra_flag ue(v)
log2_ctu_size_minus2 ue(v)
<u>partition_constrains_override_enabled_flag</u> ue(v)
sps_log2_min_qt_size_intra_slices_minus2 ue(v)
sps_log2_min_qt_size_inter_slices_minus2 ue(v)
sps_max_mtt_hierarchy_depth_inter_slices ue(v)
sps_max_mtt_hierarchy_depth_intra_slices ue(v)
sps_log2_diff_ctu_max_bt_size_intra_slices ue(v)
sps_log2_diff_ctu_max_bt_size_inter_slices ue(v)
sps_log2_diff_ctu_max_tt_size_intra_slices ue(v)
sps_log2_diff_ctu_max_tt_size_inter_slices ue(v)
sps_cclm_enabled_flag ue(1)
sps_mts_intra_enabled_flag ue(1)
sps_mts_inter_enabled_flag ue(1)
rbsp_trailing_bits()
}

修改的条带头部语法(基于[JVET-K1001-v4]的第7.3.3节)

与图片201相似,块203还是可以被视为具有强度值(样本值)的样本的二维阵列或矩阵,尽管其维度小于图片201。换言之,块203可以包括例如一个样本阵列(例如,单色图片201的情况下的亮度阵列)或三个样本阵列(例如,彩色图片201的情况下的一个亮度阵列和两个色度阵列)或取决于所应用的颜色格式的任何其他数量和/或种类的阵列。块203的水平和垂直方向(或轴)上的样本数量定义了块203的尺寸。

图2所示的编码器200用于对图片201进行逐块编码,例如,对每个块203执行编码和预测。

残差计算

残差计算单元204用于基于图片块203和预测块265计算残差块205(稍后提供关于预测块265的更多细节),例如通过逐个样本(逐个像素)地从图片块203的样本值中减去预测块265的样本值,以获得样本域中的残差块205。

变换

变换处理单元206用于对残差块205的采样值应用变换,例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST),以获得变换域中的变换系数207。变换系数207也可以被称为变换残差系数,并且表示变换域中的残差块205。

变换处理单元206可以用于应用DCT/DST的整数近似值,例如为HEVC/H.265规定的变换。与正交DCT变换相比,这种整数近似值通常按一定系数缩放。为了保留由正向和逆向变换处理的残差块的范数,将附加的缩放系数用作变换过程的一部分。通常,基于某些约束来选择缩放系数,例如,用于移位运算的2的幂的缩放系数、变换系数的比特深度、精度和实现成本之间的折衷等。例如,在解码器300处,例如通过逆变换处理单元212为逆变换规定特定的缩放系数(以及在编码器20处,例如通过例如逆变换处理单元212的相应逆变换),并且可以相应地规定在编码器200处例如通过变换处理单元206用于正向变换的相应缩放系数。

量化

量化单元208用于例如通过应用标量量化或矢量量化来量化变换系数207,以获得已量化变换系数209。已量化变换系数209也可以被称为已量化残差系数209。量化过程可以减小与一些或所有变换系数207相关联的比特深度。例如,在量化过程中,n位的变换系数可以下舍入为m位的变换系数,其中,n大于m。可以通过调整量化参数(quantizationparameter,QP)来修改量化程度。例如,对于标量量化,可以应用不同的标度来实现更精细或更粗糙的量化。较小的量化步长对应于较精细的量化,而较大的量化步长对应于较粗糙的量化。可应用量化步长可以由量化参数(QP)指示。量化参数例如可以是可应用量化步长的预定义集合的索引。例如,小的量化参数可以对应于精细的量化(小的量化步长),大的化参数可以对应于粗糙的量化(大的量化步长),反之亦然。量化可以包括除以量化步长,并且相应的或逆反量化,例如逆量化210,可以包括乘以量化步长。根据一些标准的实施例,例如HEVC,可以用于使用量化参数来确定量化步长。通常,可以使用包括除法的等式的定点近似值,基于量化参数来计算量化步长。可以引入额外的缩放系数来进行量化和反量化,以恢复残差块的范数,由于在量化步长和量化参数的方程式的定点近似中使用了缩放,因此该范数可能会被修改。在一个示例实现中,可以组合逆变换和反量化的缩放。可替换地,可以使用定制的量化表,并且例如在比特流中从编码器向解码器信号发送该定制的量化表。量化是有损操作,其中,损耗随着量化步长的增加而增加。

逆量化单元210用于对已量化系数应用量化单元208的逆量化,以获得已反量化系数211,例如通过应用量化单元208应用的量化方案的逆步骤,基于或使用与量化单元208相同的量化步长。已反量化系数211也可以被称为已反量化残差系数211,并且对应于变换系数207,尽管由于量化损耗,已反量化系数211通常与变换系数不相同。

逆变换处理单元212用于应用由变换处理单元206所应用的变换的逆变换,例如逆离散余弦变换(DCT)或逆离散正弦变换(DST),以获得样本域中的逆变换块213。逆变换块213也可以被称为逆变换已反量化块213或逆变换残差块213。

重构单元214(诸如求和器214)用于将逆变换块213(即已重构残差块213)添加到预测块265,以获得样本域中的已重构块215,例如通过将已重构残差块213的样本值与预测块265的样本值相加。

可选地,缓冲器单元216(或简称为“缓冲器”216),例如线缓冲器216,用于缓冲或存储已重构块215以及例如用于帧内预测的各个样本值。在其他实施例中,编码器可以用于将存储在缓冲器单元216中的未滤波的已重构块和/或各个样本值用于任何种类的估计和/或预测,例如帧内预测。

编码器200的实施例可以被配置为使得,例如,缓冲器单元216不仅用于存储用于帧内预测254的已重构块215,而且还用于环路滤波器单元220(图2中未示出),和/或使得,例如,缓冲器单元216和已解码图片缓冲器单元230形成一个缓冲器。其他实施例可以用于将已滤波块221和/或来自已解码图片缓冲器230(均未在图2中示出)的块或样本作为用于帧内预测254的输入或基础。

环路滤波器单元220(或简称为“环路滤波器”220)用于对已重构块215进行滤波,以获得已滤波块221,例如以缓和像素过渡,或者提高视频质量。环路滤波器单元220旨在表示一个或多个环路滤波器,例如,解块滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或其他滤波器,例如,双边滤波器或自适应环路滤波器(adaptive loopfilter,ALF)或锐化或平滑滤波器或协作滤波器。尽管在图2中将环路滤波器单元220示为内环路滤波器,但在其他配置中,环路滤波器单元220可以被实现为后环路滤波器。已滤波块221也可以被称为已滤波已重构块221。在环路滤波器单元220对已重构译码块执行滤波操作之后,已解码图片缓冲器230可以存储已重构译码块。

编码器200(分别是环路滤波器单元220)的实施例可以用于例如直接地或经由熵编码单元270或任何其他熵编码单元进行熵编码而输出环路滤波器参数(例如样本自适应偏移信息),使得例如解码器300可以接收并应用相同的环路滤波器参数以进行解码。

已解码图片缓冲器(DPB)230可以是参考图片存储器,其存储参考图片数据,用于由视频编码器20对视频数据进行编码。DPB 230可以由多种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻性RAM(RRAM)或其他类型的存储器设备。DPB 230和缓冲器216可由同一存储器设备或单独存储器设备提供。在一些示例中,已解码图片缓冲器(DPB)230用于存储已滤波块221。已解码图片缓冲器230还可以用于存储相同当前图片或不同图片(例如先前已重构图片)的其他先前已滤波块,例如,先前已重构且已滤波的块221,并且已解码图片缓冲器230可以提供完整的先前已重构(即已解码)图片(以及对应的参考块和样本)和/或部分已重构当前图片(以及对应的参考块和样本)例如用于帧间预测。在一些示例中,如对已重构块215进行了重构而没有进行内环路滤波,已解码图片缓冲器(DPB)230用于存储已重构块215。

预测处理单元260,也被称为块预测处理单元260,用于接收或获得块203(当前图片201的当前块203)和已重构图片数据,例如,来自缓冲器216的相同(当前)图片的参考样本和/或来自解码图片缓冲器230的一个或多个先前已解码图片的参考图片数据231,并且用于处理这样的数据以进行预测,即提供预测块265,该预测块265可以是帧间预测块245或帧内预测块255。

模式选择单元262可以用于选择预测模式(例如,帧内预测模式或帧间预测模式)和/或用作预测块265的对应的预测块245或255,以计算残差块205并已重构重构块215。

模式选择单元262的实施例可以用于选择预测模式(例如,从预测处理单元260所支持的模式中),该预测模式提供最佳匹配,换言之,提供最小残差(最小残差意味着更好的压缩以进行传输或存储)或最小信令开销(最小信令开销意味着更好的压缩以进行传输或存储),或者该预测模式同时考虑或平衡两者。模式选择单元262可以用于基于速率失真优化(rate distortion optimization,RDO)来确定预测模式,即,选择提供最小速率失真优化或者其关联的速率失真至少满足预测模式选择标准的预测模式。

下文中将更详细地说明由示例编码器200执行的预测处理(例如,通过预测处理单元260)和模式选择(例如,通过模式选择单元262)。

如上所述,编码器200用于从(预先确定的)预测模式集合中确定或选择最佳或最优预测模式。该预测模式集合可以包括例如帧内预测模式和/或帧间预测模式。

帧内预测模式集合可以包括35个不同的帧内预测模式,例如像DC(或均值)模式和平面模式的非定向模式,或者例如如H.265中所定义的定向模式,或者帧内预测模式集合可以包括67个不同的帧内预测模式,例如像DC(或均值)模式和平面模式的的非定向模式,或例如在开发中的H.266中定义的定向模式。

(或可能的)帧间预测模式集合取决于可用的参考图片(即例如存储在DBP 230中的先前至少部分已解码图片)和其他帧间预测参数,例如,是整个参考图片还是参考图片的仅一部分(例如当前块区域周围的搜索窗口区域)用于搜索最佳匹配参考块,和/或例如,是否应用像素插值,例如半/半像素和/或四分之一像素插值。

除了以上预测模式之外,还可以应用跳过模式和/或直接模式。

预测处理单元260还可以用于例如迭代地使用四叉树划分(QT)、二叉树划分(BT)或三叉树划分(TT)或其任意组合,将块203划分成更小的块分区或子块,以例如对每个执行预测,其中,模式选择包括选择已划分块203的叉树结构以及应用于块分区或子块中的每一个的预测模式。

帧间预测单元244可以包括运动估计(motion estimation,ME)单元和运动补偿(motion compensation,MC)单元(图2中未示出)。运动估计单元用于接收或获得用于运动估计的图片块203(当前图片201的当前图片块203)和已解码图片331,或者至少一个或多个先前已重构块,例如一个或多个其他/不同的先前已解码图片331的已重构块。例如,视频序列可以包括当前图片和先前已解码图片331,换言之,当前图片和先前已解码图片331可以是形成视频序列的一系列图片的一部分,或者当前图片和先前已解码图片331可以形成形成视频序列的一系列图片。编码器200可以例如用于从多个其他图片的相同或不同图片的多个参考块中选择参考块,并向运动估计单元(图2中未示出)提供作为帧间预测参数的参考图片(或参考图片索引……)和/或参考块的位置(x,y坐标)与当前块的位置之间的偏移(空间偏移)。此偏移也被称为运动矢量(MV)。合并是HEVC中使用并继承到VVC的重要运动估计工具。为了执行合并估计,首先应做的是构造合并候选列表,其中,候选对象中的每一个都包含所有运动数据,运动数据包括是否使用一个或两个参考图片列表的信息以及每个列表的参考索引和运动矢量。合并候选列表是基于以下候选对象构造的:a、从五个空间邻近块推导出的最多四个空间合并候选对象;b、从两个时间且共处的块中推导出的一个时间合并候选对象;C、附加的合并候选对象,包括组合的双向预测候选对象和零运动矢量候选对象。

用于时间合并候选对象的运动矢量的推导与用于TMVP的推导相同。由于合并候选对象包括所有运动数据,并且TMVP只是一个运动矢量,所以整个运动数据的推导仅取决于条带类型。对于双向预测条带,为每个参考图片列表推导出一个TMVP。根据每个列表的TMVP的可用性,将预测类型设置为双向预测或TMVP可用的列表。将所有相关联的参考图片索引均设置为零。因此,对于单向预测条带,仅列表0的TMVP与等于零的参考图片索引一起推导出来。

当至少一个TMVP可用并且将时间合并候选对象添加到列表时,不执行冗余检查。这使得合并列表构造独立于同位图片,这提高了容错。考虑时间合并候选对象是冗余的情况,因此,时间合并候选对象不包括在合并候选列表中。在丢失同位图片的情况下,解码器无法推导出时间候选对象,因此无法检查其是否多余。所有后续候选对象的索引编制都会受到此影响。

出于解析鲁棒性的原因,合并候选列表的长度是固定的。在已添加了空间和时间合并候选对象之后,会发生列表尚未达到固定长度的情况。为了补偿与非长度自适应列表索引信令一起出现的译码效率损耗,生成了额外的候选对象。根据条带类型,使用最多两种候选对象来完全填充列表:a、组合的双向预测候选对象;b、零运动矢量候选对象。

在双向预测条带中,可以通过将一个候选对象的参考图片列表0运动数据与另一候选对象的列表1运动数据进行组合,基于现有的候选对象生成额外的候选对象。这是通过复制来自一个候选对象(例如第一个候选对象)的Δx0、Δy0,Δt0以及来自另一个候选对象(例如第二个候选对象)的Δx1、Δy1,Δt1来完成的。不同的组合是预定义的,并在表1.1中给出。

表1.1

在添加了组合的双向预测候选对象后列表仍然不满时,或者对于单向预测条带,计算零运动矢量候选对象以完成列表。对于单向预测条带,所有零运动矢量候选对象都有一个零位移运动矢量,对于双向预测条带所有零运动矢量候选对象都有两个零位移运动矢量。将参考索引设置为等于零,并为每个额外的候选对象递增一个索引,直到达到参考索引的最大个数。如果是该情况并且仍然缺少其他候选对象,使用等于零的参考索引来创建这些候选对象。对于所有额外的候选对象,不执行冗余检查,因为事实证明,省略这些检查不会引起译码效率下降。

对于以帧间图片预测模译码的每个PU,所谓的merge_flag指示利用块合并来推导运动数据。merge_idx进一步确定了合并列表中的候选对象,该候选对象提供了MCP所需的所有运动数据。除此PU级信令外,在条带头部中信号发送合并列表中候选对象的数量。由于默认值为5,因此它被表示为与5的差(five_minus_max_num_merge_cand)。这样,对于0,用短码字信号发送5,而对于4,用较长的码字信号发送仅使用一个候选对象。关于对合并候选列表构造过程的影响,尽管整个过程在列表包含合并候选对象的最大数量之后终止,但是整个过程保持不变。在初始设计中,用于合并索引译码的最大值由列表中可用的空间和时间候选对象的数量给出。当例如只有两个候选对象可用时,索引可以被有效地译码为标记。但是,为了解析合并索引,必须构造整个合并候选列表,以清楚候选对象的实际数量。假设由于传输错误而产生了不可用的邻近块,因此不再可能解析合并索引。

HEVC中块合并概念的关键应用是其与跳过模式相结合。在以前的视频译码标准中,使用跳过模式来为块指示推断出运动数据,而不是明确地信号发送运动数据,并且指示预测残差为零,即不发送变换系数。HEVC中,在帧间图片预测条带中的每个CU的开头处,信号发送skip_flag,其暗示:a、CU仅包含一个PU(2N×2N划分类型);b、合并模式用于推导运动数据(merge_flag等于1);C、比特流中不存在残差数据。

编码器200的实施例可以用于基于优化标准,例如,最小残差(例如,提供最类似于当前图片块203的预测块255的帧内预测模式)或最小速率失真,来选择帧内预测模式。

帧内预测单元254还用于基于帧内预测参数,例如选定的帧内预测模式,来确定帧内预测块255。在任何情况下,在为块选择了帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即指示用于该块的选定的帧内预测模式的信息。在一示例中,帧内预测单元254可以用于执行后文描述的帧内预测技术的任意组合。

熵编码单元270用于对已量化残差系数209、帧间预测参数、帧内预测参数和/或环路滤波器参数单独或联合(或根本不)应用熵编码算法或方案(例如,可变长度译码(variable length coding,VLC)方案、上下文自适应VLC方案(context adaptive VLCscheme,CALVC)、算术译码方案、上下文自适应二进制算术译码(context adaptive binaryarithmetic coding,CABAC)、基于语法的上下文自适应二进制算法译码(syntax-basedcontext-adaptive binary arithmetic coding,SBAC)、概率区间划分熵(probabilityinterval partitioning entropy,PIPE)译码或其他熵编码方法或技术),以获得已编码图片数据21,该已编码图片数据21可以由输出272例如以已编码比特流21的形式输出。可以将已编码比特流21发送到视频解码器30,或由视频解码器30存档供以后传输或检索。熵编码单元270还可以用于为对正被译码的当前视频条带的其他语法元素进行熵编码。

视频编码器200的其他结构变型可以用于对视频流进行编码。例如,对于某些块和帧,基于非变换的编码器200可以对残差信号直接进行量化,无需变换处理单元206。在另一实现中,编码器200可以将量化单元208和逆量化单元210组合成单个单元。

图3示出了用于实现本申请技术的示例性视频解码器300。视频解码器300用于接收诸如由编码器200编码的已编码图片数据(诸如已编码比特流)271,以获得已解码图片331。在解码过程中,视频解码器300从视频编码器200接收视频数据,例如,表示已编码视频条带的图片块以及相关语法元素的已编码视频比特流。

在图3的示例中,解码器300包括熵解码单元304、逆量化单元310、逆变换处理单元312、重构单元314(诸如求和器314)、缓冲器316、环路滤波器320、解码图片缓冲器330以及预测处理单元360。预测处理单元360可以包括帧间预测单元344、帧内预测单元354以及模式选择单元362。在一些示例中,视频解码器300可执行通常与关于图2的视频编码器200所描述的编码遍历相反的解码遍历。

熵解码单元304用于对已编码图片数据271执行熵解码,以获取诸如已量化系数309和/或已解码译码参数(图3中未示出),例如帧间预测、帧内预测参数、环路滤波器参数和/或其他语法元素中的(已解码的)任意一个或全部参数。熵解码单元304还用于将帧间预测参数、帧内预测参数和/或其他语法元素转发给预测处理单元360。视频解码器300可接收在视频条带级和/或视频块级处的语法元素。

逆量化单元310的功能可以与逆量化单元110的功能相同,逆变换处理单元312的功能可以与逆变换处理单元112的功能相同,重构单元314的功能可以与重构单元114的功能相同,缓冲器316的功能可以与缓冲器116的功能相同,环路滤波器320的功能可以与环路滤波器120的功能相同,并且解码图片缓冲器330的功能可以与解码图片缓冲器130的功能相同。

预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中,帧间预测单元344可以在功能上类似于帧间预测单元144,帧内预测单元354可以在功能上类似于帧内预测单元154。预测处理单元360通常用于执行块预测和/或从已编码数据21获得预测块365,并且例如从熵解码单元304接收或获取(显式或隐式)与关于预测的参数和/或关于选定的预测模式的信息。

当视频条带被译码为帧内译码(I)条带时,预测处理单元360的帧内预测器354用于基于信号发送的帧内预测模式以及来自当前帧或图像的先前已解码块的数据,生成当前视频条带的图像块的预测块365。当视频帧被译码为帧间译码(即B或P)条带时,预测处理单元360的帧间预测单元344(诸如运动补偿单元)用于基于从熵解码单元304接收的运动矢量和其他语法元素,产生当前视频条带的视频块的预测块365。对于帧间预测,可从参考图像列表之一内的参考图片之一中产生预测块。视频解码器300可基于存储在DPB 330中的参考图片,使用默认构造技术来构造参考帧列表,List 0和List 1。

预测处理单元360用于通过解析运动矢量和其他语法元素来确定当前视频条带的视频块的预测信息,并且使用该预测信息为正在被解码的当前视频块生成预测块。例如,预测处理单元360使用一些接收到的语法元素来确定用于对视频条带的视频块进行译码的预测模式(诸如帧内预测或帧间预测)、帧间预测条带类型(诸如B条带、P条带或GPB条带)、条带的参考图片列表的中的一个或多个列表的构造信息、条带的每个帧间已编码视频块的运动矢量、条带的每个帧间已译码视频块的帧间预测状态以及其他信息,以解码当前视频条带中的视频块。

逆量化单元310用于对在比特流中提供的、由熵解码单元304解码的已量化变换系数进行逆量化,即反量化。逆量化过程可包括使用由视频编码器100为视频条带中的每个视频块计算的量化参数来确定量化度,同样地,确定应该应用的逆量化度。

逆变换处理单元312用于将逆变换应用于变换系数,诸如逆DCT、逆整数变换或概念上类似的逆变换过程,以产生像素域中的残差块。

重构单元314(诸如求和器314)用于将逆变换块313(即已重构残差块313)添加到预测块365,以获得样本域中的已重构块315,例如通过将已重构残差块313的样本值与预测块365的样本值相加

环路滤波器单元320(在编码环路中或在编码环路后)用于对已重构块315进行靓滤波,以获得已滤波块321,例如以缓和像素过渡,或者提高视频质量。在一示例中,环路滤波器单元320可以用于执行后文描述的滤波技术的任意组合。环路滤波器单元320旨在表示一个或多个环路滤波器,例如,解块滤波器、样本自适应偏移(SAO)滤波器或其他滤波器,例如,双边滤波器或自适应环路滤波器(ALF)或锐化或平滑滤波器或协作滤波器。尽管在图3中将环路滤波器单元320示为内环路滤波器,但在其他配置中,环路滤波器单元320可以被实现为后环路滤波器。

接着,将给定帧或图片中的已解码视频块321存储在解码图片缓冲区330中,该缓冲区存储用于后续活动补偿的参考图片。

解码器300用于例如经由输出312输出已解码图片311,以向用户呈现或共用于观看。

视频解码器300的其他变型可以用于对压缩的比特流进行解码。例如,解码器300可以在没有环路滤波单元320的情况下产生输出视频流。例如,对于某些块或帧,基于非变换的解码器300可以直接对残差信号进行逆量化,无需逆变换处理单元312。在另一实现中,视频解码器300可以将逆量化单元310和逆变换处理单元312组合成单个单元。

图4为根据本公开实施例的网络设备400(例如译码设备)的示意图。网络设备400适于实现如本文所述的公开的实施例。在一个实施例中,网络设备400可以是诸如图1A的视频解码器300的解码器,或诸如图1A的视频解码器200的编码器。在一个实施例中,网络设备400可以是如上所述的图1A的视频解码器300或图1A的视频编码器200的一个或多个组件。

网络设备400包括:进端口410以及用于接收数据的接收机单元(Rx)420;处理器、逻辑单元或用于处理数据的中央处理单元(CPU)430;发射机单元(Tx)440以及用于发送数据的出端口450;以及用于存储数据的存储器460。网络设备400还可以包括与进端口410、接收机单元420、发射机单元440以及用于输入或输出光信号或电信号的出端口450耦合的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件。

处理器430通过硬件以及软件实现。处理器430可以实现为一个或多个CPU芯片、核(诸如作为多核处理器)、FPGA、ASIC以及DSP。处理器430与进端口410、接收机单元420、发射机单元440、出端口450以及存储器460进行通信。处理器430包括译码模块470。译码模块470实现上述公开的实施例。例如,译码模块470实现、处理、准备或提供各种译码操作。因此,包括译码模块470为网络设备400的功能提供了实质性的改进,并且实现了网络设备400到不同状态的变换。可替换地,译码模块470被实现为存储在存储器460中并且由处理器430执行的指令。

存储器460包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以当程序被选择执行时存储该程序,并且存储在程序执行期间被读取的指令和数据。存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(ROM)、随机存取存储器(RAM)、三进制内容可寻址存储器(TCAM)和/或静态随机存取存储器(SRAM)。

图5是根据示例性实施例的装置500的简化框图,装置500可以用作图1A中的源设备12和目的地设备14中的一个或两个。装置500可以实现本申请的技术。装置500可以是包括多个计算设备的计算系统的形式,也可以是单个计算设备的形式,例如,手机、平板计算机、膝上型计算机、笔记本计算机、台式计算机等。

装置500中的处理器502可以是中央处理单元。可替换地,处理器502可以是任何其他类型的设备或多个设备,其能够操纵或处理现存或以后开发的信息。尽管所公开的实现可以利用如图所示的单个处理器,例如,处理器502,来实践,但是可以使用一个以上的处理器来实现速度和效率方面的优势。

在一个实现中,装置500中的存储器504可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其他合适类型的存储设备也可以用作存储器504。存储器504可以包括由处理器502使用总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510,该应用程序510包括允许处理器502执行这里描述的方法的至少一个程序。例如,应用程序510可以包括应用1至N,其还包括执行这里描述的方法的视频译码应用。装置500还可以包括辅助存储器514形式的附加存储器,其可以是例如与移动计算设备一起使用的存储器。由于视频通信会话可以包含大量信息,因此可以将它们全部或部分地存储在辅助存储器514中,并根据处理所需将其加载到存储器504中。

装置500还可以包括一个或多个输出设备,诸如显示器518。在一个示例中,显示器518可以是将显示器与可操作以感测触摸输入的触敏元件组合的触敏显示器。显示器518可以经由总线512耦合到处理器502。除了显示器518之外或作为显示器518的替代物,可以提供允许用户编程或使用装置500的其他输出设备。当输出设备是或包括显示器时,可以以各种方式实现显示器,包括液晶显示器(LCD)、阴极射线管(CRT)显示器、等离子显示器或发光二极管(LED)显示器,例如有机LED(OLED)显示器。

装置500还可以包括图像感测设备520(例如照相机)或者与现存或以后开发的可以感测图像(例如,操作装置500的用户的图像)的任何其他图像感测设备520,或者装置500与之通信。图像感测设备520可以被定位成使得其朝向操作装置500的用户。在一个示例中,图像感测设备520的位置和光轴可以被配置为使得视野包括与显示器518直接相邻并且可以从其看到显示器518的区域。

装置500还可以包括声音感测设备522(例如麦克风)或者与现存或以后开发的可以感测装置500附件的声音的任何其他声音感测设备,或者装置500与之通信。声音感测设备522可以被定位成使其朝向操作装置500的用户,并且可以用于接收在用户操作装置500时用户发出的声音,例如语音或其他言语。

尽管图5将装置500的处理器502和存储器504描绘为被集成到单个单元中,但是可以利用其他配置。处理器502的操作可以分布在多个机器(每个机器具有处理器中的一个或多个)上,多个机器可以是直接耦合或跨局域网或其他网络耦合的。存储器504可以分布在多个机器上,例如基于网络的存储器或执行装置500的操作的多个机器中的存储器。尽管在这里被描述为单个总线,但是装置500的总线512可以由多个总线组成。此外,辅助存储器514可以直接耦合至装置500的其他组件,或者可以经由网络进行访问,并且可以包括单个集成单元,例如,存储器卡或诸如多个存储器卡的多个单元。因此,装置500可以以多种配置来实现。

在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任意组合来实现。如果以软件实现,功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质发送,并且可以由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质,例如数据存储介质,或包括任何促进(例如,根据通信协议)将计算机程序从一处传送到另一处的介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一台或多台计算机或一个或多个处理器访问的任何可用介质,以检索指令、代码和/或数据结构来实现本公开中描述的技术。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备、闪存或可以用来以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的任何其他介质。并且,任何连接都被恰当地称作计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(digital subscriber line,DSL)或无线技术(例如红外,无线电和微波)将从网站、服务器或其他远程源发送指令,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波的无线技术包括在介质的定义中。然而,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,而是针对非瞬时的有形存储介质。本文使用的磁盘和光盘包括光盘(CD)、激光光盘、光碟、数字通用光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式复制数据,而光盘则利用激光以光学方式复制数据。上述的组合也应包括在计算机可读介质的范围内。

指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,如本文所使用的,术语“处理器”可以指任何前述结构或适合于实现本文所描述的技术的任何其他结构。另外,在一些方面,本文中描述的功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或结合在组合编解码器中。同样,技术可以在一个或多个电路或逻辑元件中完全实现。

本公开的技术可以在多种设备或装置中实现,包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调用于执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元来实现。但是,如上所述,各种单元可以被组合在编解码器硬件单元中,或者由与合适的软件和/或固件结合的互操作的硬件单元的集合来提供,包括如上所述的一个或多个处理器。

尽管本公开中已经提供了若干实施例,但应理解,在不脱离本公开的精神或范围的情况下,所公开的系统和方法能够以许多其他的具体形式体现。本示例被认为是说明性的而非限制性的,并且其意图不限于本文中所给出的细节。例如,各种元件或组件可以组合或者集成到另一系统中,或者可以忽略或不实现某些特征。

此外,在不脱离本公开的范围的情况下,在各种实施例中描述和示出为离散或分离的技术、系统、子系统和方法可以与其他系统、模块、技术或方法结合或集成。所显示或讨论为耦合或直接耦合或相互通信的其他项目可以以电性、机械或其它方式通过某个接口、设备或中间组件间接耦合或通信。本领域技术人员可以确定并做出变化、替换、和变更的其他示例,而不脱离文中公开的精神和范围。

综上所述,如图14所示,根据第一示例,提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该方法包括:S101从包含已编码图片的比特流的序列参数集(SPS)或图片参数集(PPS)或条带头部或区块头部中解析第一指示;S103确定多个译码树块的特定尺寸,如果第一指示是第一值,特定尺寸是由包括在比特流的SPS/PPS/条带头部/区块头部中的块尺寸限制参数限制的;或者(否则)S105确定多个译码块的特定尺寸,如果第一指示是第二值或未出现在SPS/PPS/条带头部/区块头部中,特定尺寸是由默认尺寸限制参数限制的;以及S107对具有特定尺寸的多个译码块进行解码。

除了示例1,示例2包括:确定多个译码树块的划分模式,如果第一指示是第一值,划分模式是由包括在比特流的SPS/PPS/条带头部/区块头部中的划分深度限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值或未出现在SPS/PPS/条带头部/区块头部中,划分模式是由默认划分深度限制参数限制的;以及根据划分模式,将多个译码树块划分成具有特定尺寸的多个译码块。

注意,附图中,块尺寸限制和/或深度限制对应于“限制参数”。

除了示例2,示例3中,第一指示是partition_constraints_control_present_flag。

除了示例2,在示例4中,块尺寸限制参数包括最小四叉树尺寸(MinQtSize),和/或最大二叉树尺寸(MaxBtSize),和/或最大三叉树尺寸(MaxTtsize);划分深度限制参数包括最大多类型叉树深度(MaxMttDepth)。

除了示例2,在示例5中,默认尺寸限制参数包括最小四叉树尺寸(MinQtSize),设置为4或设置为最小译码块尺寸,和/或最大二叉树尺寸(MaxBtSize),设置为128或设置为译码树块尺寸用于帧间条带,以及设置为32用于帧内条带,和/或最大三叉树尺寸(MaxTtSize),设置为64用于帧间条带,以及设置为32用于帧内条带;默认划分深度限制参数包括最大多类型叉树深度(MaxMttDepth),设置为3。

根据示例6,如图15所示,提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该方法包括:S201从包含已编码图片的比特流的序列参数集(SPS)中解析第一指示,其中,第一指示允许解码器确定多个译码块的特定尺寸,如果第一指示是第一值,特定尺寸是由包括在比特流的SPS中的块尺寸限制参数限制的,或者如果第一指示是第二值,特定尺寸是由默认块尺寸限制参数限制的;S203如果第一指示是第一值,从比特流的序列参数集(SPS)中解析第二指示,其中,如果第二指示是第一值,第二指示指示第三指示被包括在包括多个译码块的条带的条带头部中,否则,第三指示不包括在条带头部中;并且如果第三指示是第一值,第三指示指示条带级尺寸限制参数被包括在条带头部中,或者如果第三指示是第二值,第三指示指示条带级尺寸限制参数被不包括在条带头部中;S205如果第二指示是第一值,解析第三指示;S207确定多个译码块的特定尺寸,如果第三指示是第一值,特定尺寸是由包括在条带头部中的条带级尺寸限制参数限制的;或者S209确定多个译码块的特定尺寸,如果第三指示是第二值或第二指示是第二值,特定尺寸是由包括在比特流的SPS中的块尺寸限制参数限制的;或者S211确定多个译码块的特定尺寸,如果第一指示是第二值,特定尺寸是由默认尺寸限制参数限制的;以及S213对具有特定尺寸的多个译码块进行解码。

注意,第二指示的第一值对应于附图中的第三值(以强调其不必与其他指示的第一值相似),并且第二指示的第二值对应于附图中的第四值。同理,第三指示的第一和第二值分别对应于第五和第六值。同理,第四指示的第一和第二值分别对应于第七和第八值。同理,第五指示的第一和第二值分别对应于第九和第十值。

进一步于示例6,在示例7中,如果第三指示是第一值,第三指示还指示条带级划分深度限制参数被包括在条带头部中;以及该方法还包括:确定多个译码树块的划分模式,如果第三指示是第一值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第三指示是第二值或第二指示是第二值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;以及根据划分模式,将多个译码树块划分成具有特定尺寸的多个译码块。

进一步于示例7,示例8中,第一指示是partition_constraints_control_present_flag。

进一步于示例8,在示例9中,块尺寸限制参数包括最小四叉树尺寸(MinQtSize),和/或最大二叉树尺寸(MaxBtSize),和/或最大三叉树尺寸(MaxTtsize);划分深度限制参数包括最大多类型叉树深度(MaxMttDepth)。

并且,除了示例8,在示例10中,默认尺寸限制参数包括最小四叉树尺寸(MinQtSize),设置为4或设置为最小译码块尺寸,和/或最大二叉树尺寸(MaxBtSize),设置为128或设置为译码树块尺寸用于帧间条带,以及设置为32用于帧内条带,和/或最大三叉树尺寸(MaxTtSize),设置为64用于帧间条带,以及设置为32用于帧内条带;默认划分深度限制参数包括最大多类型叉树深度(MaxMttDepth),设置为3。

示例11中,如图16所示,提供了一种由解码器执行的解码方法,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该方法包括:S301从包含已编码图片的比特流的序列参数集(SPS)中解析第一指示,其中,第一指示允许解码器确定多个译码块的特定尺寸,如果第一指示是第一值,特定尺寸是由包括在SPS中的尺寸限制参数限制的,或者如果第一指示是第二值,特定尺寸是由默认尺寸限制参数限制的;S303如果第一指示是第一值,从序列参数集(SPS)中解析第二指示,其中,如果第二指示是第一值,第二指示指示允许由尺寸限制参数约束的多类型叉树划分,或者如果第二指示是第二值,不允许多类型叉树划分;S305如果第一指示是第一值,从序列参数集(SPS)中解析第三指示,其中,如果第三指示是第一值,第三指示指示第四指示被包括在包括多个译码块的条带的条带头部中,否则,第四指示不包括在条带头部中;并且如果第四指示是第一值,第四指示指示条带级尺寸限制参数被包括在条带头部中,或者如果第三指示是第二值,第四指示指示条带级尺寸限制参数不包括在条带头部中;S307如果第三指示是第一值,解析第四指示;S309如果第四指示是第一值,从条带头部中解析第五指示,其中,如果第五指示是第一值,第五指示指示在条带中允许由条带级尺寸限制参数约束的多类型叉树划分,或者如果第五指示是第二值,在条带中不允许多类型叉树划分;S311确定多个译码块的特定尺寸,如果第五指示是第一值,特定尺寸是由包括在条带头部中的条带级尺寸限制参数限制的;或者S313确定多个译码块的特定尺寸,如果第三指示是第二值且第二指示是第一值或第四指示是第二值且第二指示是第一值,特定尺寸是由包括在比特流的SPS中的尺寸限制参数限制的;或者S315确定多个译码块的特定尺寸,如果第一指示是第二值,特定尺寸是由默认尺寸限制参数限制的;S317对具有特定尺寸的多个译码块进行解码。

进一步于示例11,在示例12中,如果第四值是第一值,第四指示还指示条带级划分深度限制参数被包括在条带头部中;以及该方法还包括:确定多个译码树块的划分模式,如果第三指示是第一值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第三指示是第二值,或第四指示是第二值,或第五指示是第二值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;以及根据划分模式,将多个译码树块划分成具有特定尺寸的多个译码块。

除了示例12,示例13中,第一指示是partition_constraints_control_present_flag。

进一步于示例13,在示例14中,块尺寸限制参数包括最小四叉树尺寸(MinQtSize),和/或最大二叉树尺寸(MaxBtSize),和/或最大三叉树尺寸(MaxTtsize);划分深度限制参数包括最大多类型叉树深度(MaxMttDepth)。

进一步于示例13,在示例15中,默认尺寸限制参数包括最小四叉树尺寸(MinQtSize),设置为4或设置为最小译码块尺寸,和/或最大二叉树尺寸(MaxBtSize),设置为128或设置为译码树块尺寸用于帧间条带,以及设置为32用于帧内条带,和/或最大三叉树尺寸(MaxTtSize),设置为64用于帧间条带,以及设置为32用于帧内条带;默认划分深度限制参数包括最大多类型叉树深度(MaxMttDepth),设置为3。

示例16提供了一种由解码器执行的解码方法(其也可以根据图14示例性地操作,其中,所确定的限制是划分模式,并且其中,解码是使用所确定的划分模式来执行的),用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该方法包括:从包含已编码图片的比特流的序列参数集(SPS)/图片参数集(PPS)/或条带头部/区块头部中解析第一指示;确定多个译码树块的划分模式,如果第一指示是第一值,划分模式是由包括在比特流的SPS/PPS/条带头部/区块头部中的块尺寸限制参数和划分深度限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值或未出现在PS/PPS/条带头部/区块头部中,划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;以及根据划分模式,将多个译码树块划分成多个译码块;以及对多个译码块进行解码。

除了示例16,示例17中,第一指示是partition_constraints_control_present_flag。

除了示例16,在示例18中,块尺寸限制参数包括最小四叉树尺寸(MinQtSize),和/或最大二叉树尺寸(MaxBtSize),和/或最大三叉树尺寸(MaxTtsize);划分深度限制参数包括最大多类型叉树深度(MaxMttDepth)。

除了示例16,在示例19中,默认尺寸限制参数包括最小四叉树尺寸(MinQtSize),设置为4或设置为最小译码块尺寸,和/或最大二叉树尺寸(MaxBtSize),设置为128或设置为译码树块尺寸用于帧间条带,以及设置为32用于帧内条带,和/或最大三叉树尺寸(MaxTtSize),设置为64用于帧间条带,以及设置为32用于帧内条带;默认划分深度限制参数包括最大多类型叉树深度(MaxMttDepth),设置为3。

根据示例20,提供了一种由解码器执行的解码方法(其也可以根据图15示例性地操作,其中,所确定的限制是划分模式,并且其中,解码是使用所确定的划分模式来执行的),用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该方法包括:从包含已编码图片的比特流的序列参数集(SPS)中解析第一指示,其中,第一指示允许解码器确定多个译码块的划分模式,如果第一指示是第一值,划分模式是由包括在比特流的SPS中的块尺寸限制参数和划分深度限制参数限制的,或者如果第一指示是第二值,划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;如果第一指示是第一值,从比特流的序列参数集(SPS)中解析第二指示,其中,如果第二指示是第一值,第二指示指示第三指示被包括在包括多个译码块的条带的条带头部中,否则,第三指示不包括在条带头部中;并且如果第三指示是第一值,第三指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在条带头部中,或者如果第三指示是第二值,第三指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在条带头部中;如果第二指示是第一值,解析第三指示;确定多个译码树块的划分模式,如果第三指示是第一值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第三指示是第二值或第二指示是第二值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;根据划分模式,将多个译码树块划分成多个译码块;以及对多个译码块进行解码。

除了示例20,在示例21中,如果第三指示是第一值,第三指示还指示其包括在条带头部中。

除了示例20,示例22中,第一指示是partition_constraints_control_present_flag。

除了示例20,在示例23中,块尺寸限制参数包括最小四叉树尺寸(MinQtSize),和/或最大二叉树尺寸(MaxBtSize),和/或最大三叉树尺寸(MaxTtsize);划分深度限制参数包括最大多类型叉树深度(MaxMttDepth)。

除了示例20,在示例24中,默认尺寸限制参数包括最小四叉树尺寸(MinQtSize),设置为4或设置为最小译码块尺寸,和/或最大二叉树尺寸(MaxBtSize),设置为128或设置为译码树块尺寸用于帧间条带,以及设置为32用于帧内条带,和/或最大三叉树尺寸(MaxTtSize),设置为64用于帧间条带,以及设置为32用于帧内条带;默认划分深度限制参数包括最大多类型叉树深度(MaxMttDepth),设置为3。

根据示例25,提供了一种由解码器执行的解码方法(其也可以根据图16示例性地操作,其中,所确定的限制是划分模式,并且其中,解码是使用所确定的划分模式来执行的),用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,其中,该方法包括:从包含已编码图片的比特流的序列参数集(SPS)中解析第一指示,其中,第一指示允许解码器确定划分模式,如果第一指示是第一值,划分模式是由包括在特比流的SPS中的尺寸限制参数和划分深度限制参数限制的,或者如果第一指示是第二值,划分模式是由默认尺寸限制参数和默认划分深度限制参数限制的;如果第一指示是第一值,从序列参数集(SPS)中解析第二指示,其中,如果第二指示是第一值,第二指示指示允许由尺寸限制参数约束的多类型叉树划分,或者如果第二指示是第二值,不允许多类型叉树划分;如果第一指示是第一值,从序列参数集(SPS)中解析第三指示,其中,如果第三指示是第一值,第三指示指示第四指示被包括在包括多个译码块的条带的条带头部中,否则,第四指示不包括在条带头部中;并且如果第四指示是第一值,第四指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在条带头部中,或者如果第三指示是第二值,第四指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在条带头部中;如果第三指示是第一值,解析第四指示;如果第四指示是第一值,从条带头部中解析第五指示,其中,如果第五指示是第一值,第五指示指示在条带中允许由条带级尺寸限制参数约束的多类型叉树划分,或者如果第五指示是第二值,在条带中不允许多类型叉树划分;确定多个译码树块的划分模式,如果第三指示是第一值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第三指示是第二值,或第四指示是第二值,或第五指示是第二值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示是第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;将多个译码树块划分成多个译码块;以及对多个译码块进行解码。

除了示例25,在示例26中,如果第四值是第一值,第四指示还指示其被包括在条带头部中;以及该方法还包括:

除了示例25,示例27中,第一指示是partition_constraints_control_present_flag。

除了示例25,在示例28中,块尺寸限制参数包括最小四叉树尺寸(MinQtSize),和/或最大二叉树尺寸(MaxBtSize),和/或最大三叉树尺寸(MaxTtsize);划分深度限制参数包括最大多类型叉树深度(MaxMttDepth)。

除了示例25,在示例29中,默认尺寸限制参数包括最小四叉树尺寸(MinQtSize),设置为4或设置为最小译码块尺寸,和/或最大二叉树尺寸(MaxBtSize),设置为128或设置为译码树块尺寸用于帧间条带,以及设置为32用于帧内条带,和/或最大三叉树尺寸(MaxTtSize),设置为64用于帧间条带,以及设置为32用于帧内条带;默认划分深度限制参数包括最大多类型叉树深度(MaxMttDepth),设置为3。

根据示例26,提供了一种解码器,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该解码器包括:比特流解析单元(例如熵解码器),用于从包含已编码图片的比特流的参数集中解析第一指示,参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;划分单元,用于确定多个译码块的特定尺寸,如果第一指示具有第一值,特定尺寸是由包括在比特流的参数集中的块尺寸限制参数限制的;或者用于确定多个译码块的特定尺寸,如果第一指示具有第二值或未出现在参数集中,特定尺寸是由默认尺寸限制参数限制的;以及重构单元,用于对具有特定尺寸的多个译码块进行解码。

这里,重构单元进行诸如逆量化和/或逆变换的(混合)解码(已编码图像的重构)和/或包括预测解码等的重构。

根据示例27,提供了一种编码器,用于对被划分成多个译码树块的图片进行编码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该编码器包括:比特流生成单元,用于将第一指示插入到包含已编码图片的比特流的参数集中,参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;划分单元,用于确定多个译码块的特定尺寸,如果第一指示具有第一值,特定尺寸是由块尺寸限制参数限制的,并且将块尺寸限制参数包括在比特流的参数集中;或者用于确定多个译码块的特定尺寸,特定尺寸是由默认尺寸限制参数限制的,并且将第一指示设置为第二值或者将第一指示不包括在参数集中;以及编码单元,用于对具有特定尺寸的多个译码块进行编码。

图17示出了一种解码装置1700,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该解码装置包括:解析单元/电路1701,用于从包含已编码图片的比特流的参数集中解析第一指示,参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;第一尺寸确定单元/电路1703,用于确定多个译码块的特定尺寸,如果第一指示具有第一值,特定尺寸是由包括在比特流的参数集中的块尺寸限制参数限制的;或者第二尺寸确定单元/电路1705,用于确定多个译码块的特定尺寸,如果第一指示具有第二值或未出现在参数集中,特定尺寸是由默认尺寸限制参数限制的;以及解码单元/电路1707,用于对具有特定尺寸的多个译码块进行解码。第一和第二尺寸确定电路/单元可以被包括在如虚线所示的一个尺寸确定单元(电路)内。

图18中,解码装置1800是基于解码装置1700的,并且还包括:第一划分模式确定单元/电路1801,用于确定多个译码树块的划分模式,如果第一指示具有第一值,划分模式是由包括在比特流的参数集中的划分深度限制参数限制的;或者第二划分模式确定单元/电路1803,用于确定多个译码树块的划分模式,如果第一指示具有第二值或未出现在参数集中,划分模式是由默认划分深度限制参数限制的;以及划分单元/电路1805,用于根据划分模式,将多个译码树块划分成具有特定尺寸的多个译码块。第一和第二划分模式确定电路/单元可以被包括在如虚线所示的一个划分模式确定单元(电路)内。

图19中,示出了一种解码装置1900,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块。该装置包括:解析单元/电路1901,用于:从包含已编码图片的比特流的序列参数集SPS中解析第一指示,其中,第一指示允许解码器确定多个译码块的特定尺寸,如果第一指示是第一值,特定尺寸是由包括在比特流的SPS中的块尺寸限制参数限制的,或者如果第一指示是第二值,特定尺寸是由默认块尺寸限制参数限制的;如果第一指示是第一值,从比特流的SPS中解析第二指示,其中,如果第二指示具有第三值,第二指示指示第三指示被包括在包括多个译码块的条带的条带头部中,否则,第三指示不包括在条带头部中;并且如果第三指示具有第五值,第三指示指示条带级尺寸限制参数被包括在条带头部中,或者如果第三指示具有第六值,第三指示指示条带级尺寸限制参数被不包括在条带头部中;如果第二指示具有第三值,解析第三指示;第一尺寸确定单元/电路1903,用于确定多个译码块的特定尺寸,如果第三指示具有第五值,特定尺寸是由包括在条带头部中的条带级尺寸限制参数限制的;或者第二尺寸确定单元/电路1905,用于确定多个译码块的特定尺寸,如果第三指示具有第六值或第二指示具有第四值,特定尺寸是由包括在比特流的SPS中的块尺寸限制参数限制的;或者第三尺寸确定单元/电路1907,用于确定多个译码块的特定尺寸,如果第一指示具有第二值,特定尺寸是由默认尺寸限制参数限制的;解码单元/电路1909,用于对具有特定尺寸的多个译码块进行解码。

图20中,示出了基于装置1900的装置2000。如果第三指示具有第五值,第三指示还指示条带级划分深度限制参数被包括在条带头部中。解码装置2000还包括:第一划分模式确定单元/电路2001,用于确定多个译码树块的划分模式,如果第三指示具有第五值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者第二划分模式确定单元/电路2003,用于确定多个译码树块的划分模式,如果第三指示具有第六值或第二指示具有第四值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者第三划分模式确定单元/电路2005,用于确定多个译码树块的划分模式,如果第一指示具有第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;以及划分单元/电路2007,用于根据划分模式,将多个译码树块划分成具有特定尺寸的多个译码块。

图21示出了一种解码装置2100,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该解码装置包括:解析单元/电路2301,用于:从包含已编码图片的比特流的序列参数集SPS中解析第一指示,其中,第一指示允许解码器确定多个译码块的特定尺寸,如果第一指示具有第一值,特定尺寸是由包括在SPS中的尺寸限制参数限制的,或者如果第一指示具有第二值,特定尺寸是由默认尺寸限制参数限制的;如果第一指示具有第一值,从SPS中解析第二指示,其中,如果第二指示具有第三值,第二指示指示允许由尺寸限制参数约束的多类型叉树划分,或者如果第二指示具有第四值,第二指示指示不允许多类型叉树划分;如果第一指示具有第一值,从SPS中解析第三指示,其中,如果第三指示具有第五值,第三指示指示第四指示被包括在包括多个译码块的条带的条带头部中,否则,第四指示不包括在条带头部中;并且如果第四指示具有第七值,第四指示指示条带级尺寸限制参数被包括在条带头部中,或是如果第三指示具有第六值,第四指示指示条带级尺寸限制参数不包括在条带头部中;如果第三指示具有第五值,解析第四指示;如果第四指示具有第七值,从条带头部中解析第五指示,其中,如果第五指示具有第九值,第五指示指示在条带中允许由条带级尺寸限制参数约束的多类型叉树划分,或者如果第五指示具有第十值,第五指示指示在条带中不允许多类型叉树划分;第一尺寸确定单元/电路2103,用于确定多个译码块的特定尺寸,如果第五指示具有第九值,特定尺寸是由包括在条带头部中的条带级尺寸限制参数限制的;或者第二尺寸确定单元/电路2105,用于确定多个译码块的特定尺寸,如果第三指示具有第六值且第二指示具有第三值,或者第四指示具有第八值且第二指示具有第三值,特定尺寸是由包括在比特流的SPS中的尺寸限制参数限制的;或者第三尺寸确定单元/电路2107,用于确定多个译码块的特定尺寸,如果第一指示是第二值,特定尺寸是由默认尺寸限制参数限制的;解码单元/电路2109,用于对具有特定尺寸的多个译码块进行解码。

图22中,示出了基于装置2100的装置2200。这里,如果第四指示具有第七值,第四指示还指示条带级划分深度限制参数被包括在条带头部中。该解码装置还包括:第一划分模式确定单元/电路2201,用于确定多个译码树块的划分模式,如果第五指示具有第九值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者第二划分模式确定单元/电路2203,用于确定多个译码树块的划分模式,如果第三指示具有第四值,或第四指示具有第八值,或第五指示具有第十值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者第三划分模式确定单元/电路2205,用于确定多个译码树块的划分模式,如果第一指示具有第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;以及划分单元/电路2207,用于根据划分模式,将多个译码树块划分成具有特定尺寸的多个译码块。

图23中,提供了一种解码装置2300,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该装置包括:解析单元/电路2301,用于从包含已编码图片的比特流的序列参数集SPS,或图片参数集PPS,或条带头部或区块头部中解析第一指示;第一划分模式确定单元/电路2303,用于确定多个译码树块的划分模式,如果第一指示具有第一值,划分模式是由包括在比特流的SPS或PPS或条带头部或区块头部中的块尺寸限制参数和划分深度限制参数限制的;或者第二划分模式确定单元/电路2305,用于确定多个译码树块的划分模式,如果第一指示具有第二值或未出现在SPS或PPS或条带头部或区块头部中,划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;以及划分单元/电路2307,用于根据划分模式,将多个译码树块划分成多个译码块;以及解码单元/电路2309,用于对多个译码块进行解码。

图24中,提供了一种解码装置2400,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该装置包括:解析单元/电路2401,用于:从包含已编码图片的比特流的序列参数集SPS中解析第一指示,其中,第一指示允许解码器确定多个译码块的划分模式,如果第一指示具有第一值,划分模式是由包括在比特流的SPS中的块尺寸限制参数和划分深度限制参数限制的,或者如果第一指示具有第二值,划分模式是由默认块尺寸限制参数和默认划分深度限制参数限制的;如果第一指示具有第一值,从SPS中解析第二指示,其中,如果第二指示具有第一值,第二指示指示第三指示被包括在包括多个译码块的条带的条带头部中,否则,第三指示不包括在条带头部中;并且如果第三指示具有第五值,第三指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在条带头部中,或者如果第三指示具有第六值,第三指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在条带头部中;如果第二指示具有第三值,解析第三指示;第一划分模式确定单元/电路2403,用于确定多个译码树块的划分模式,如果第三指示具有第五值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者第二划分模式确定单元/电路2405,用于确定多个译码树块的划分模式,如果第三指示具有第六值或第二指示具有第四值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者确定多个译码树块的划分模式,如果第一指示具有第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;划分单元/电路2407,用于根据划分模式,将多个译码树块划分成多个译码块;以及解码单元/电路2409,用于对多个译码块进行解码。

图25中,提供了一种解码装置2500,用于对被划分成多个译码树块的已编码图片进行解码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该装置包括:解析单元/电路2501,用于从包含已编码图片的比特流的序列参数集SPS中解析第一指示,其中,第一指示允许解码器确定划分模式,如果第一指示具有第一值,划分模式是由包括在特比流的SPS中的尺寸限制参数和划分深度限制参数限制的,或者如果第一指示具有第二值,划分模式是由默认尺寸限制参数和默认划分深度限制参数限制的;如果第一指示具有第一值,从SPS中解析第二指示,其中,如果第二指示具有第三值,第二指示指示允许由尺寸限制参数约束的多类型叉树划分,或者如果第二指示具有第四值,不允许多类型叉树划分;如果第一指示具有第一值,从SPS中解析第三指示,其中,如果第三指示具有第五值,第三指示指示第四指示被包括在包括多个译码块的条带的条带头部中,否则,第四指示不包括在条带头部中;并且如果第四指示具有第七值,第四指示指示条带级尺寸限制参数和条带级划分深度限制参数被包括在条带头部中,或者如果第三指示具有第六值,第四指示指示条带级尺寸限制参数和条带级划分深度限制参数不包括在条带头部中;如果第三指示具有第五值,解析第四指示;如果第四指示具有第八值,从条带头部中解析第五指示,其中,如果第五指示具有第九值,第五指示指示在条带中允许由条带级尺寸限制参数约束的多类型叉树划分,或者如果第五指示具有第十值,在条带中不允许多类型叉树划分;第一划分模式确定单元/电路2503,用于确定多个译码树块的划分模式,如果第五指示具有第九值,划分模式是由包括在条带头部中的条带级划分深度限制参数和条带级尺寸限制参数限制的;或者第二划分模式确定单元/电路2505,用于确定多个译码树块的划分模式,如果第三指示具有第六值,或第四指示具有第八值,或第五指示具有第十值,划分模式是由包括在比特流的SPS中的划分深度限制参数和尺寸限制参数限制的;或者第三划分模式确定单元/电路2507,用于确定多个译码树块的划分模式,如果第一指示具有第二值,划分模式是由默认划分深度限制参数和默认尺寸限制参数限制的;划分单元/电路2509,用于将多个译码树块划分成多个译码块;以及解码单元/电路2511,用于对多个译码块进行解码。

在以上实施例中任一项中,第一、第二划分模式确定电路/单元可以被包括在一个划分模式确定单元(电路)内。同理,在以上实施例中任一项中,第一、第二和第三尺寸确定电路/单元可以被包括在一个尺寸确定单元(电路)内。

图26中,提供了一种编码装置2600,用于对被划分成多个译码树块的图片进行编码,多个译码树块被进一步划分成具有特定尺寸的多个译码块,该编码装置包括:比特流生成单元/电路2601,用于将第一指示插入到包含已编码图片的比特流的参数集中,参数集为序列参数集SPS、图片参数集PPS、条带头部或区块头部;第一尺寸确定单元/电路2603,用于确定多个译码块的特定尺寸,如果第一指示具有第一值,特定尺寸是由块尺寸限制参数限制的,并且将块尺寸限制参数包括在比特流的参数集中;或者第二尺寸确定单元/电路2605,用于确定多个译码块的特定尺寸,特定尺寸是由默认尺寸限制参数限制的,并且将第一指示设置为第二值或者将第一指示不包括在参数集中;以及编码单元/电路2607,用于对具有特定尺寸的多个译码块进行编码。

这里,编码单元进行诸如量化和/或变换的(图像或视频的)(混合)编码和/或预测译码等。

以下逻辑运算符被定义如下:

x&&y x和y的布尔逻辑“和”

x||y x和y的布尔逻辑“或”

! 布尔逻辑“不”

x?y: z如果x为TRUE或不等于0,求y的值;否则,求z的值。

以下关系运算符被定义如下:

> 大于

>= 大于或等于

< 小于

<= 小于或等于

== 等于

!= 不等于

当关系运算符应用于已分配了值“na”(不适用)的语法元素或变量时,值“na”被视为该语法元素或变量的独特值。认为值“na”不等于任何其他值。

以下按位的运算符被定义如下:

&按位的“和”。当对整数参数进行运算时,对整数值的二进制补码数表示进行运算。当对所包含的位少于另一个参数的二进制参数进行运算时,通过添加更多等于0的有效位来扩展较短的参数。

|按位的“或”。当对整数参数进行运算时,对整数值的二进制补码数表示进行运算。当对所包含的位少于另一个参数的二进制参数进行运算时,通过添加更多等于0的有效位来扩展较短的参数。

^按位的“异或”。当对整数参数进行运算时,对整数值的二进制补码数表示进行运算。当对所包含的位少于另一个参数的二进制参数进行运算时,通过添加更多等于0的有效位来扩展较短的参数。

x>>y将x的二进制补码整数表示算术右移y个二进制数字。仅为y的非负整数值定义该函数。由于右移而移位到最高有效位(MSB)的位具有移位操作之前等于的x的MSB的值。

x<<y将x的二进制补码整数表示算术左移y个二进制数字。仅为y的非负整数值定义该函数。由于左移而移位到最低有效位(LSB)的位具有等于0值。

88页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于图像编码/解码的方法和设备、以及存储比特流的记录介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类