[0001]
本公开涉及视频的编码和解码,并且更具体地,涉及具有改进的编码和解码效率的用于对视频进行编码/解码的方法和设备。
背景技术:[0002]
由于视频数据的数据量大于语音数据或静止图像数据的数据量,因此在没有针对压缩的处理的情况下存储或发送视频数据需要包括存储器的大量硬件资源。
[0003]
因此,在存储或发送视频数据时,通常使用编码器来压缩视频数据,以便进行存储或发送。然后,解码器接收经压缩的视频数据,解压缩并播放视频数据。用于这种视频的压缩技术包括h.264/avc和高效视频编码(hevc),hevc比h.264/avc提高了约40%的编码效率。
[0004]
然而,由于视频的大小、分辨率和帧频正在逐渐增加,因此待编码的数据量也正在增加。因此,需要比现有压缩技术具有更好的编码效率和更高质量的新压缩技术。
技术实现要素:[0005]
技术问题
[0006]
被设计成满足这种需要的本公开的目的是提供改进的视频编码和解码技术。
[0007]
技术方案
[0008]
按照本公开的一方面,提供了一种针对一个或更多个区域中的每一个设置级别的方法,该方法包括以下步骤:对来自比特流的与级别定义相关的定义语法元素和与目标指定相关的指定语法元素进行解码;基于所述定义语法元素来定义一个或更多个级别;以及针对由所述指定语法元素所指定的目标区域来设置所定义的级别当中的由所述指定语法元素所指定的目标级别。
[0009]
按照本公开的另一方面,提供了一种配置图片的方法,该方法包括以下步骤:确定是否将所述图片分割成多个图块;以及根据所述确定将所述图片分割成多个图块,生成包括关于分割图块的信息的pps,并且生成包括所述分割图块中的每一个的图块id的每个图块头部,其中,关于所述分割图块的信息包括关于所述图片是否被分割成多个图块以及所述分割图块是否全都彼此独立的信息。
[0010]
按照本公开的另一方面,提供了一种配置图片的方法,该方法包括以下步骤:将所述图片分割成图块,在图片级头部中设置关于分割图块的信息,将所述分割图块当中的多个图块设置为一个图块组,将关于所述图块组的信息设置在图块组头部中,并且配置包括所述图块组和所述图块组头部的网络抽象层(nal)单元。
[0011]
技术效果
[0012]
如上所述,根据本公开的实施方式,可以通过针对各个目标区域设置不同级别或等级来实现针对目标区域的图片质量而优化的编码和解码。
[0013]
根据本公开的另一实施方式,可以通过针对各个目标区域设置不同的级别或等级
来将与实际图片显示目标对应的视口区域与其它区域区分开。由此,可以实现选择性解码。
[0014]
根据本公开的另一实施方式,由于允许对所划分的图片执行并行处理或分布式处理,因此可以快速地执行编码和解码。
附图说明
[0015]
图1是能够实现本公开的技术的视频编码设备的示例性框图。
[0016]
图2是例示了使用qtbttt结构的块分割的示图。
[0017]
图3是例示了多种帧内预测模式的示图。
[0018]
图4是能够实现本公开的技术的视频解码设备的示例性框图。
[0019]
图5和图6是例示了根据本公开的实施方式的在视频编码设备和视频解码设备中实现的用于设置级别或等级的方法的流程图。
[0020]
图7是例示了通过针对各个目标区域设置不同的级别或等级来针对各区域实现选择性解码的本公开的实施方式的示图。
[0021]
图8和图9是例示了根据本公开的实施方式的在视频编码设备和视频解码设备中实现的目标级别或目标等级的指定的流程图。
[0022]
图10和图11是例示了根据本公开的实施方式的在视频编码设备和视频解码设备中实现的级别或等级定义的流程图。
[0023]
图12是例示了构成一个图片的切片的示例的示图。
[0024]
图13是例示了构成一个图片的图块的示例的示图。
[0025]
图14是例示了一个图片中所包括的mcts的示例的示图。
[0026]
图15是例示了根据本公开的实施方式的构成一个图片的图块的示图。
[0027]
图16是例示了根据本公开的第一实施方式和第二实施方式的图片的示例的示图。
[0028]
图17是例示了根据本公开的第一实施方式和第二实施方式的图片的另一示例的示图。
[0029]
图18是例示了根据本公开的第三实施方式的图片的示例的示图。
[0030]
图19是例示了根据本公开的第五实施方式的图片的示例的示图。
[0031]
图20是例示了根据本公开的由视频编码设备配置一个图片的方法的流程图。
[0032]
图21是例示了根据本公开的由视频解码设备确定单个图片的流程图。
[0033]
图22是例示了作为示例的切片片段的nal单元的示图。
[0034]
图23是例示了根据本公开的图块组的示例的示图。
[0035]
图24是例示了作为示例的根据本公开的图块组的nal单元的示图。
[0036]
图25是例示了根据本公开的图片中的图块组和图块组的nal单元的示例的示图。
[0037]
图26是例示了根据本公开的另一实施方式的图片中的图块组和图块组的nal单元的示图。
[0038]
图27是例示了根据本公开的实施方式的在帧间预测期间一些区域参考图块组中的其它区域的示图。
[0039]
图28是例示了根据本公开的实施方式的帧间预测的流程图。
[0040]
图29是例示了根据本公开的由视频编码设备配置一个图片的方法的流程图。
[0041]
图30是例示了根据本公开的由视频解码设备确定单个图片的方法的流程图。
具体实施方式
[0042]
下文中,将参照附图来详细描述本公开的一些实施方式。应当注意,在将附图标记添加到相应附图中的组成元件时,相似的附图标记指定相似的元件,尽管这些元件是在不同附图中被示出的。另外,在以下对本公开的描述中,将省略对并入本文中的已知功能和配置的详细描述,以避免本公开的主题模糊不清。
[0043]
图1是能够实现本公开的技术的视频编码设备的示例性框图。下文中,将参照图1描述视频编码设备和该设备的元件。
[0044]
如图1中所示,视频编码设备包括块分割器110、预测器120、减法器130、变换器140、量化器145、编码器150、反量化器160、逆变换器165、加法器170、滤波器单元180和存储器190。
[0045]
视频编码设备的每个元件可以以硬件或软件或硬件和软件的组合实现。相应元件的功能可以以软件实现,并且微处理器可以被实现为执行与相应元件对应的软件功能。
[0046]
一个视频由多个图片构成。每个图片被分割成多个区域,并且对每个区域执行编码。例如,一个图片被分割成一个或更多个图块。这里,一个或更多个图块可以被定义为图块组。每个图块被分割成一个或更多个编码树单元(ctu)。每个ctu按树结构被分割成一个或更多个编码单元(cu)。
[0047]
应用于每个cu的信息被编码为cu的语法,并且共同应用于一个ctu中所包括的cu的信息被编码为ctu的语法。另外,共同应用于一个图块中的所有块的信息被编码为图块的语法或者被编码为图块所属的图块组的语法,并且应用于构成一个图片的所有块的信息被编码在图片参数集(pps)或图片头部中。
[0048]
此外,由多个图片共同参考的信息被编码在序列参数集(sps)中,并且由一个或更多个sps共同参考的信息被编码在视频参数集(vps)中。
[0049]
块分割器110确定编码树单元(ctu)的大小。关于ctu的大小(ctu大小)的信息被编码为sps或pps的语法,并且被发送到视频解码设备。
[0050]
块分割器110将构成视频的每个图片分割成多个具有预定大小的ctu,然后使用树结构来递归地分割经分割的ctu。在树结构中,叶节点用作编码单元(cu),cu是编码的基本单元。
[0051]
树结构可以包括节点(或父节点)被分割成相同大小的四个子节点(或孩子节点)的四叉树(qt)、节点被分割成两个子节点的二叉树(bt)以及节点按1:2:1的比率被分割成三个子节点的三叉树(tt)。
[0052]
树结构还可以包括由qt结构、bt结构和tt结构中的两个或更多个的组合形成的结构。例如,可以使用四叉树加二叉树(qtbt)结构,或者可以使用四叉树加二叉树三叉树(qtbttt)结构。
[0053]
图2是例示了使用qtbttt结构分割块的方法的示图。如图2中所示,可以初始地按qt结构来分割ctu。可以重复qt分割,直到分割块的大小达到qt中允许的叶节点的最小块大小(minqtsize)。
[0054]
当qt的叶节点不大于bt中允许的根节点的最大块大小(maxbtsize)时,它可以被进一步分割成bt结构或tt结构中的一个或更多个。bt结构和/或tt结构可以具有多个分割方向。
[0055]
在一些示例中,可以存在两种分割类型,即,水平分割节点的块(即,水平分割)的类型和垂直分割块(即,垂直分割)的类型。
[0056]
如图2中所示,当执行bttt分割时,可以向视频解码设备发信号通知指示节点是否被分割的标志、指示分割方向(垂直或水平)的标志和/或指示分割类型(二元或三元)的标志。
[0057]
可以存在另外的将节点的块分割成两个不对称块的类型。不对称分割类型可以包括将块以1:3的大小比例分割成两个矩形块的类型和对角分割节点的块的类型。
[0058]
当qtbt被用作树结构的另一示例时,首先按qt结构分割ctu,然后可以进一步按bt结构分割qt的叶节点。
[0059]
根据ctu的qtbt或qtbttt分割,cu可以具有各种大小。下文中,与待编码或解码的cu(即,qtbttt的叶节点)对应的块被称为“当前块”。
[0060]
预测器120预测当前块,以生成预测块。预测器120包括帧内预测器122和帧间预测器124。通常,图片中的每个当前块可以被预测性编码。可以使用基于包含当前块的图片的数据执行的帧内预测的技术或基于在包含当前块的图片之前被编码的图片的数据执行的帧间预测的技术来执行当前块的预测。
[0061]
帧内预测器122使用包括当前块的当前图片中的位于当前块周围的像素(参考像素)来预测当前块中的像素。根据预测方向,存在多种帧内预测模式。例如,如图3中所示,多种帧内预测模式可以包括包含平面模式和dc模式的非定向模式和65种定向模式。针对每种预测模式,不同地定义将使用的公式和邻近像素。
[0062]
帧内预测器122可以确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测器122可以使用若干种帧内预测模式对当前块进行编码,并且从测试模式中选择适当的帧内预测模式来使用。
[0063]
例如,帧内预测器122可以使用若干种测试帧内预测模式的速率-失真分析来计算速率失真值,并且可以从测试模式当中选择具有最佳速率失真特性的帧内模式。
[0064]
帧内预测器122从多种帧内预测模式当中选择一种帧内预测模式,并且使用根据所选择的帧内预测模式确定的公式和邻近像素(参考像素)来预测当前块。关于所选择的帧内预测模式的信息由编码器150编码并被发送到视频解码设备。
[0065]
帧间预测器124通过运动估计处理在比当前图片更早被编码和解码的参考图片中搜索与当前块最相似的块,并且使用通过运动估计处理找到的块来生成当前块的预测块。通常,帧间预测可以根据预测方向被分类为单向预测和双向预测。
[0066]
帧间预测器124生成与当前图片中的当前块和参考图片中的预测块之间的位移对应的运动矢量。通常,对亮度分量执行运动估计,并且基于亮度分量计算出的运动矢量被用于亮度分量和色度分量二者。
[0067]
包括关于参考图片的信息和关于用于预测当前块的运动矢量的信息的运动信息被编码器150编码并被发送到视频解码设备。
[0068]
可以使用各种方法来使对运动信息进行编码所需的比特的量减少或最小化。这些方法的代表性示例可以包括跳变模式、合并模式和自适应(高级)运动矢量预测器(amvp)模式。
[0069]
在跳变模式和合并模式中,首先,从邻近块当中选择预设数目的候选块。当选择候
选块时,帧间预测器124配置包括候选块的合并列表,从关于列表中所包括的候选块的运动信息当中选择将被用作当前块运动信息的运动信息,然后生成用于识别所选择的运动信息(所选择候选块)的合并索引值。
[0070]
所选择的运动信息的索引值(即,合并索引值)被编码并发信号通知给视频解码设备。在标准hevc中,通过merge_idx语法表示跳变/合并模式的索引值。
[0071]
在amvp模式下,首先,使用与当前块邻近的块来推导当前块的运动矢量的运动矢量预测子(mvp)候选。一旦推导出mvp候选,帧间预测器124就确定当前块的运动矢量的mvp,从当前块的运动矢量减去所确定的mvp,并且减去当前块的运动矢量以计算运动矢量差(mvd)。计算出的mvd被编码并发信号通知给视频解码设备。
[0072]
从mvp候选当中确定mvp的处理可以通过预定义的功能(例如,中值、平均值等的计算)来实现。在这种情况下,视频解码设备被设置为应用预定义的功能。
[0073]
由于用于推导mvp候选的邻近块对应于已经被编码和解码的块,因此视频解码设备也已经识别到邻近块的运动矢量。因此,由于不需要对用于标识mvp候选的信息进行编码,因此视频编码设备仅对关于mvd的信息和关于用于预测当前块的参考图片的信息进行编码。
[0074]
从mvp候选当中确定mvp的处理可以通过选择mvp候选中的任一个来实现。在这种情况下,用于标识所确定mvp的信息也与关于mvd的信息和关于用于预测当前块的参考图片的信息一起被编码。
[0075]
减法器130通过用由帧内预测器122或帧间预测器124生成的预测块和当前块执行减法来生成残差块,并且变换器140将空间域中的具有像素值的残差块中的残差信号变换成频域中的变换系数。
[0076]
变换器140可以使用当前块的大小作为变换单元来变换残差块中的残差信号,将残差块分割成多个更小的子块,并且以子块大小的变换单元变换残差信号。
[0077]
可以存在将残差块分割成更小的子块的各种方法。例如,可以将残差块分割成相同预定义大小的子块,或者可以采用使用残差块作为根节点的四叉树(qt)类型的分割。
[0078]
量化器145量化从变换器140输出的变换系数并且将量化后的变换系数输出到编码器150。
[0079]
编码器150通过使用诸如cabac这样的编码方法对量化后的变换系数进行编码来生成比特流。另外,编码器150对与块分割相关的诸如ctu大小、qt分割标志、bttt分割标志、分割方向和分割类型之类的信息进行编码和发信号通知,使得视频解码设备以与视频编码设备相同的方式分割块。
[0080]
另外,编码器150对关于指示当前块是通过帧内预测还是帧间预测编码的预测类型的信息进行编码,并且根据预测类型对帧内预测信息(即,关于帧内预测模式的信息)或帧间预测信息(关于参考图片和运动矢量的信息)进行编码。
[0081]
反量化器160对从量化器145输出的量化后的变换系数进行反量化,以生成变换系数。逆变换器165将从反量化器160输出的变换系数从频域变换到空间域并且重构残差块。
[0082]
加法器170将重构的残差块添加到由预测器120生成的预测块,以重构当前块。重构的当前块中的像素被用作用于下一个块的帧内预测的参考像素。
[0083]
滤波器单元180对重构的像素进行滤波,以减少由于基于块的预测和变换/量化而
产生的块伪像、振铃伪像和模糊伪像。滤波器单元180可以包括去块滤波器182和sao滤波器184。
[0084]
去块滤波器180对重构块之间的边界进行滤波,以去除因逐块编码/解码引起的块伪像,并且sao滤波器184另外对经去块滤波的视频进行滤波。
[0085]
sao滤波器184对应于用于补偿因有损编码引起的重构像素与原始像素之间的差异的滤波器。通过去块滤波器182和sao滤波器184滤波的重构块被存储在存储器190中。一旦重构了一个图片中的所有块,重构的图片就被用作用于待编码的下一个图片中的块的帧间预测的参考图片。
[0086]
图4是能够实现本公开的技术的视频解码设备的示例性功能框图。下文中,将参照图4描述视频解码设备和该设备的元件。
[0087]
如图4中所示,视频解码设备可以包括解码器410、反量化器420、逆变换器430、预测器440、加法器450、滤波器单元460和存储器470。
[0088]
类似于图1中示出的视频编码设备,视频解码设备的每个元件可以被实现为硬件芯片。另外,每个部件的功能可以被实现为软件,并且微处理器可以被配置为执行每个软件的功能。
[0089]
解码器410对从视频编码设备接收的比特流进行解码,并且提取与块分割相关的信息(关于亮度块的分割信息和/或关于色度块的分割信息)。解码器基于所提取的信息来确定待解码的当前块,并且提取重构当前块所必需的预测信息和残差信号信息。
[0090]
解码器410从序列参数集(sps)或图片参数集(pps)中提取关于ctu大小的信息,确定ctu的大小,并且将图片分割成所确定大小的ctu。另外,解码器410将ctu确定为最上层(即,树结构的根节点),从比特流中提取分割信息,然后基于所提取的信息分割或重构块。
[0091]
另外,解码器410提取关于块是否被bt分割的信息以及与qt分割的叶节点对应的节点的分割类型(分割方向),并且将叶节点按bt结构分割。
[0092]
作为另一示例,当块将被使用qtbttt结构而重构或者分割时,解码器410提取关于分割是否是qt分割的信息(标志),将每个节点分割成较低层的四个节点。在该节点对应于qt分割的叶节点(不再出现qt分割的节点)的情况下,解码器提取关于是否按bt或tt结构进一步分割节点的信息、关于分割方向的信息以及指示分割是按bt结构还是tt结构出现以按bt或tt结构递归地分割节点的分割类型信息。
[0093]
作为另一示例,当将使用qtbttt结构分割或重构块时,解码器410提取关于是否执行分割的信息(例如,标志),并且在块被分割时,提取分割类型信息。当分割类型为qt时,解码器410将每个节点分割成与较低层对应的四个节点。当分割类型信息指示分割类型是qt分割的叶节点(不再出现qt分割的节点)的类型(即,该节点按bt或tt结构分割)时,解码器410另外提取关于分割方向的信息和用于区分分割结构是bt结构还是tt结构的分割类型信息,然后按bt或tt结构分割节点。
[0094]
以这种方式,当基于分割信息确定待解码的当前块时,解码器410提取关于指示当前块是经历帧内预测还是帧间预测的预测类型的信息。
[0095]
当预测类型信息指示帧内预测时,解码器410提取用于当前块的帧内预测信息(帧内预测模式)的语法元素。当预测类型信息指示帧间预测时,解码器410提取用于帧间预测信息即指示运动矢量和供运动矢量参考的参考图片的信息(关于当前块的运动信息)的语
法元素。
[0096]
解码器410提取关于当前块的量化后的变换系数的信息作为关于残差信号的信息。
[0097]
反量化器420对量化后的变换系数进行反量化,并且将反量化后的变换系数从频域逆变换到空间域以重构残差信号,从而产生当前块的残差块。
[0098]
预测器440可以包括帧内预测器442和帧间预测器444。当当前块的预测类型是帧内预测时,帧内预测器442被启用,并且当当前块的预测类型是帧间预测时,帧间预测器444被启用。
[0099]
帧内预测器442基于从解码器410提取的帧内预测模式的语法元素确定多种帧内预测模式当中的当前块的帧内预测模式,并且根据所确定的帧内预测模式基于当前块周围的参考像素来预测当前块。
[0100]
帧间预测器444基于用于从解码器410提取的帧间预测模式的语法元素来确定当前块的运动矢量和供运动矢量参考的参考图片,并且基于运动矢量和参考图片来预测当前块。
[0101]
加法器450通过将从逆变换器430输出的残差块与从帧间预测器444或帧内预测器442输出的预测块相加来重构当前块。重构的当前块中的像素被用作用于对稍后将解码的块的帧内预测的参考像素。
[0102]
滤波器单元460包括去块滤波器462和sao滤波器464。去块滤波器462通过对重构块之间的边界执行去块滤波来去除由逐块解码引起的块伪像。
[0103]
sao滤波器464对去块滤波之后的重构块执行附加滤波,以便补偿因有损编码引起的重构像素与原始像素之间的差异。
[0104]
经过去块滤波器462和sao滤波器464滤波的重构块被存储在存储器470中。当重构了一个图片中的所有块时,重构的图片被用作用于对接下来将编码的图片中的块的帧间预测的参考图片。
[0105]
在本公开的详细描述之前,定义在本说明书中参考的术语。
[0106]
如本文中使用的,“区域”是指针对其设置级别或等级的目标。该区域可以包括图块、切片、图块组和切片片段。
[0107]
如本文中使用的,“区域头部”是关于“区域”定义的概念。当区域对应于图块时,区域头部对应于图块头部。当区域对应于切片时,区域头部对应于切片头部。当区域对应于图块组时,区域头部对应于图块组头部。
[0108]
当区域对应于图片时,区域头部对应于图片头部或图片参数集(pps)。当区域对应于多个图片时,区域头部是序列参数集(sps)。一个或更多个sps共同参考的区域的区域头部对应于视频参数集(vps)。
[0109]
考虑到应用了标准技术的应用和视频解码设备(解码器)的性能,诸如hevc这样的常规标准已经使用了诸如配置文件、级别和等级这样的概念。
[0110]
配置文件是指针对应用了标准技术的各种应用预设的规范,并且在hevc中建立了诸如“主配置文件”、“主10配置文件”和“主静态图片配置文件”这样的配置文件。
[0111]
级别是即使使用相同的配置文件时也考虑到根据视频解码设备的特性产生的处理性能差异而使用的概念。可以根据级别值来确定可处理视频的最大分辨率和帧频。
[0112]
与对最大比特率的约束相关的等级是即使在相同配置文件和相同级别下也因为根据应用来以高分辨率和高质量压缩或者不压缩视频而使用的概念。即,等级是与视频解码设备的存储器470相关的规定。
[0113]
在用于设置配置文件、级别、等级等的常规方法中,对于包括一个或更多个图片的序列,将级别、等级和配置文件设置为单个值。即,在常规方法中,以一个或更多个序列为单位应用或设置级别、等级和配置文件。
[0114]
与这种常规方法不同,本公开对应于通过使用大小小于或等于图片大小的区域作为用于设置级别和/或等级的参考单元来进一步提高编码和解码效率的发明。下文中,将侧重于针对每个区域设置级别而非等级的实施方式来描述本公开。然而,应该注意,也可以通过本公开中提出的方法来实现针对每个区域设置等级的实施方式以及针对每个区域设置级别和等级二者的实施方式。
[0115]
图5和图6是例示了根据本公开的实施方式的在视频编码设备和视频解码设备中实现的用于设置级别或等级的方法的流程图。下文中,将参照图5和图6描述与级别设置方法相关的本公开的基本实施方式。
[0116]
如图5中所示,视频编码设备中所包括的控制装置(即,编码控制装置)使用作为定义级别的语法元素的定义语法元素来定义一个或更多个级别(s510)。下表1中示出了定义语法元素的示例。
[0117]
[表1]
[0118][0119]
在上表1中,num_base_tier_level_set_minus1指示通过从待定义的级别或等级的数目(即,待定义的级别的数目)减去1而获得的值,base_tier_level_set_id[i]指示级别或等级集合的id。base_tier_flag[i]指示第i等级的值,并且base_level_idc[i]指示第i级的值。
[0120]
尽管表1仅示出了其中待定义的级别或等级的集合被以id的形式表示的示例,但根据实施方式,待定义的级别或等级的集合可以被以索引(idx)(base_tier_level_set_idx)的形式表示。定义语法元素可以被定义在如表1中所示的pps位置,或者可以被定义在pps、sps、vps和sei中的一个或更多个的位置处。
[0121]
当定义一个或更多个级别时,编码控制装置使用指定语法元素来指定与级别设置的目标对应的目标区域和目标级别,该目标级别是将在目标区域中设置的级别(s520)。
[0122]
指定语法元素可以包括用于指定目标区域的语法元素和用于指定目标级别的语法元素。用于指定目标区域的指定语法元素可以被称为“区域指定语法元素”,并且用于指定目标级别的指定语法元素可以被称为“级别指定语法元素”。
[0123]
在下表2中示出了指定语法元素(区域指定语法元素和级别指定语法元素)的示例。
[0124]
[表2]
[0125][0126]
在上表2中,tile_idx表示指定被实现为图块的目标区域的索引的区域指定语法元素,并且base_tier_level_set_id表示指示预定义的级别和等级当中的将被应用或指派于由tile_idx所指示的目标区域的级别和等级的级别和等级指定语法元素。
[0127]
表2示出了在假定目标区域对应于图块的情况下的区域指定语法元素以及级别和等级指定语法元素。然而,如上所述,目标区域可以不仅对应于图块,而且对应于切片、图块组或切片片段。因此,可以在与目标区域对应的单元的头部中定义或指定区域指定语法元素以及级别和等级指定语法元素。例如,当目标区域对应于图块组时,可以在图块组头部中定义或指定区域指定语法元素以及级别和等级指定语法元素。这同样适用于以下呈现的其它表。
[0128]
一旦完成了对目标区域和目标级别的指定,编码器150就对定义语法元素和指定语法元素进行编码(s530)。编码后的语法元素被包括在比特流中并被发信号通知给视频解码设备(s540)。
[0129]
如图6中所示,解码器410首先从自视频编码设备发信号通知的比特流中解析定义语法元素和指定语法元素,并且对其进行解码(s610)。如上所述,指定语法元素可以包括用于指定目标区域的区域指定语法元素和用于指定目标级别的级别指定语法元素。
[0130]
视频解码设备的控制装置即解码控制装置基于定义语法元素来定义一个或更多个级别(s620)。一旦定义了一个或更多个级别,解码控制装置就在所定义的级别当中针对由区域指定语法元素所指示的目标区域来设置由级别指定语法元素所指定的目标级别(s630)。
[0131]
当级别设置完成时,视频解码设备基于针对各个区域设置的级别对相应区域进行解码(s640)。
[0132]
如上所述,本公开被配置为针对每个区域设置级别或等级,而非针对由一个或更多个图片构成的序列设置单个级别或等级。因此,可以实现针对各个区域的不同图片质量而优化的编码和解码。
[0133]
另外,当诸如360视频这样的所有全向图片被记录并且特定视口处的图片和另一视口处的图片将被以不同的图片质量解码并回放或者仅视口图片将被解码和回放时,可以更有用地使用本公开。在图7中示出了应用示例。
[0134]
在图7中,360视频的整个区域700可以由多个区域710构成。在区域710当中,区域#1、#2、#25、#26、#29和#30表示视口区域。
[0135]
编码或解码控制装置可以针对视口区域#1、#2、#25、#26、#29和#30以及其它区域设置不同的级别或等级,以用相对高或低的图片质量对视口区域进行编码或解码。由此,可以实现具有不同图片质量的编码和解码。
[0136]
编码或解码控制装置可以将视口区域#1、#2、#25、#26、#29和#30设置为被解码成单独的级别或等级,以仅使视口区域#1、#2、#25、#26、#29和#30能够被解码和回放。
[0137]
例如,假定视频解码设备支持mpeg-4avc主配置文件、级别3(l3),因此l3或更低级别的解码和回放是可能的。当360视频的视口区域对应于级别l3而其它区域对应于级别l5时,视口区域的级别可以被设置为l3,以实现仅视口区域的解码和回放。
[0138]
图8和图9是例示了根据本公开的实施方式的在视频编码设备和视频解码设备中实现的目标级别或目标等级的指定的流程图。下文中,将参照图8和图9描述针对级别指定的本公开的实施方式。
[0139]
定义语法元素可以包括用于定义默认级别的语法元素(或默认定义语法元素)和用于定义一个或更多个额外级别的语法元素(或额外定义语法元素)。这里,默认级别对应于可以针对目标区域指定的级别当中的基本级别,并且额外级别对应于除了默认级别之外的级别。
[0140]
下表3中示出了默认定义语法元素的示例。
[0141]
[表3]
[0142][0143]
在上表3中,default_tier_flag对应于指示待定义的默认等级的值的默认等级语法元素,并且default_level_idc对应于指示待定义的默认级别的值的默认级别语法元素。
[0144]
下表4中示出了额外定义语法元素的示例。
[0145]
[表4]
[0146][0147]
在上表4中,num_extra_tier_level_set指示将另外定义的额外级别和额外等级的数目,并且extra_tier_level_set_id[i]指示将另外定义的额外级别和额外等级的id。extra_tier_flag[i]指示将另外定义的额外等级的值,并且extra_level_idc[i]指示将另外定义的额外级别的值。
[0148]
尽管表4仅示出了其中另外定义的级别或等级的集合被以id的形式表示的示例,但根据实施方式,将另外定义的级别或等级的集合可以以idx(extra_tier_level_set_idx)的形式表示。这同样适用于以下呈现的其它表。
[0149]
编码控制装置使用默认定义语法元素来定义默认级别,并且使用额外定义语法元素来定义一个或更多个额外级别(s810)。
[0150]
应该确定所定义的默认级别和额外级别中的哪个将被用作目标级别。为了执行该确定,编码控制装置在指定语法元素中包括指示是否使用默认级别的默认使用语法元素(s820)。
[0151]
当指定语法元素中所包括的默认使用语法元素指示默认级别的使用时(s830),根据默认使用语法元素的指示,视频解码设备被允许使用默认级别作为目标级别。因此,编码控制装置不添加用于确定目标级别的单独的语法元素或信息。
[0152]
另一方面,当默认使用语法元素不指示默认级别的使用时(s830),视频解码设备应该执行从一个或更多个额外级别当中选择将被用作目标级别的级别的过程。用于确定目标级别的单独的语法元素(级别指定语法元素)被添加到指定语法元素(s840)。
[0153]
表5示出了默认使用语法元素和级别指定语法元素的示例。
[0154]
[表5]
[0155][0156]
在上表5中,default_tier_level_flag表示以标志的形式实现的默认使用语法元素,并且extra_tier_level_set_id表示级别(等级)指定语法元素。通过这些操作确定的定义语法元素和指定语法元素被编码器150编码并发信号通知给视频解码设备(s850)。
[0157]
表5示出了图块组的示例,并且还可以在分别与切片、图块组和切片片段对应的头部中呈现默认使用语法元素和/或级别(等级)指定语法元素。
[0158]
如图9中所示,解码器410从自视频编码设备发信号通知的比特流中解析定义语法元素和指定语法元素,并且对其进行解码(s910)。
[0159]
解码控制装置基于定义语法元素中所包括的默认定义语法元素来定义默认级别,并且基于定义语法元素中所包括的额外定义语法元素来定义一个或更多个额外级别(s920)。
[0160]
解码控制装置确定指定语法元素中所包括的默认使用语法元素是否指示默认级别的使用(s930),并且基于确定结果将默认级别或额外级别确定为目标级别。
[0161]
具体地,当默认使用语法元素指示默认级别的使用时,解码控制装置将预定义的默认级别确定为目标级别(s940),并且针对目标区域设置目标级别(默认级别)(s970)。
[0162]
另一方面,当默认使用语法元素不指示默认级别的使用时,解码控制装置将预定义的额外级别当中的由级别指定语法元素所指示的级别确定为目标级别(s960),并且针对目标区域设置目标级别(额外级别当中的所指示的级别)(s970)。这里,只有当默认使用语法元素不指示默认级别的使用时,才从视频编码设备发信号通知级别指定语法元素。
[0163]
图10和图11是例示了根据本公开的实施方式的在视频编码设备和视频解码设备中实现的级别或等级定义的流程图。下文中,将参照图10和图11描述针对级别或等级的定义的本公开的实施方式。
[0164]
参照图8和图9描述的实施方式涉及在假定默认级别和额外级别被分别定义的情况下将针对目标区域指定这两个级别中的哪一个,而参照图10和图11描述的实施方式涉及选择性定义额外级别。
[0165]
在该实施方式中,定义语法元素可以包括用于定义默认级别的语法元素(或默认定义语法元素)和指示是否定义了额外级别的附加定义语法元素。下表6中示出了默认定义语法元素和附加定义语法元素的示例。
[0166]
[表6]
[0167][0168]
在上表6中,如上所述,default_tier_flag和default_level_idc分别对应于指示默认等级值的语法元素和指示默认级别值的语法元素。extra_tier_level_flag对应于指示是否定义了额外级别的附加定义语法元素。
[0169]
如图10中所示,编码控制装置使用默认定义语法元素来定义默认级别(s1010),并且还在定义语法元素中包括附加定义语法元素以确定是否定义额外级别(s1020)。
[0170]
当附加定义语法元素指示额外级别的定义时(s1030),编码控制装置还在定义语法元素中包括额外定义语法元素以定义一个或更多个额外级别(s1040)。
[0171]
相比之下,当附加定义语法元素不指示额外级别的定义时(s1030),编码控制装置不另外定义任何额外级别。即,编码控制装置在定义语法元素中不包括额外定义语法元素。
[0172]
下表7中示出了附加定义语法元素和额外定义语法元素的示例。
[0173]
[表7]
[0174][0175]
如表7中所示,只有当附加定义语法元素(extra_tier_level_flag)指示额外级别或等级的定义时,才另外定义额外级别(extra_level_idc)或额外等级(extra_tier_flag)。
[0176]
尽管表7仅示出了其中另外要定义的级别或等级的集合被以id的形式表示的示
例,但根据实施方式,要定义的级别或等级的集合可以被以索引(idx)(extra_tier_level_set_idx)的形式表示。
[0177]
图7示出了其中附加定义语法元素被以用于指示是否以二分法定义了额外级别的标志的形式实现的示例。然而,根据实施方式,附加定义语法元素可以以指示要定义的额外级别的数目为n的信息的形式实现(其中,n是大于或等于0的整数)。
[0178]
在其中附加定义语法元素指示额外级别的数目的实施方式中,编码控制装置可以不针对指示0(n=0)的附加定义语法元素定义额外级别,并且可以定义与指示大于或等于1的n(n≥1)的附加定义语法元素对应的数目(由附加定义语法元素指示的数目)一样多的额外级别。
[0179]
通过上述处理确定的定义语法元素和指定语法元素被编码器150编码并发信号通知给视频解码设备(s1050)。
[0180]
如图11中所示,解码器410从自视频编码设备发信号通知的比特流中解析定义语法元素和指定语法元素,并且对其进行解码(s1110)。
[0181]
解码控制装置基于定义语法元素中所包括的默认定义语法元素来定义默认级别(s1120),并且确定定义语法元素中所包括的附加定义语法元素是否指示额外级别的定义(s1130)。
[0182]
当附加定义语法元素指示额外级别的定义时,解码控制装置基于额外定义语法元素定义一个或更多个额外级别(s1140)。这里,只有当附加定义语法元素指示额外级别的定义时,才从视频编码设备发信号通知额外定义语法元素。
[0183]
当以指示额外级别的数目的方式实现附加定义语法元素时,解码控制装置可以定义与附加定义语法元素所指示的数目一样多的额外级别,并且可以实现其中根据默认使用语法元素的指示使用默认级别或额外级别中的一个作为目标级别的上述实施方式。
[0184]
相比之下,当附加定义语法元素没有指示额外级别的定义时,解码控制装置可以在不定义额外级别(因为未发信号通知额外定义语法元素)的情况下终止级别定义处理,并且在不进行确定是否使用默认级别的上述处理的情况下针对目标区域设置默认级别。这里,默认级别对应于目标级别。
[0185]
根据实施方式,即使当附加定义语法元素没有指示额外级别的定义并因此没有定义额外级别时,也可以执行上述确定是否使用默认级别的处理。例如,当默认使用语法元素不指示默认级别的使用时,编码控制装置可以在指定语法元素中发信号通知实际应用于目标区域的级别,并且解码控制装置可以将实际应用的级别(发信号通知的实际级别或应用的级别)设置为目标区域的目标级别。
[0186]
可以在不进行关于附加定义语法元素的确定的情况下,实现其中实际应用于目标区域的级别(即,所应用级别)被确定为目标级别的实施方式。即,编码控制装置仅发信号通知默认定义语法元素而没有附加定义语法元素,并且解码控制装置基于发信号通知的默认定义语法元素来定义默认级别,然后确定默认使用语法元素。
[0187]
解码控制装置可以在默认使用语法元素指示默认级别的使用时针对目标区域设置预定义的默认级别,并且可以在默认使用语法元素不指示默认级别的使用时针对目标区域设置发信号通知的所应用级别。
[0188]
在下表8和9中示出了在该实施方式中采用的语法元素的示例。
[0189]
[表8]
[0190][0191]
如表8中所示,可以使用默认定义语法元素(default_tier_flag,default_level_idc)定义默认级别和/或默认等级。
[0192]
[表9]
[0193][0194]
如表9中所示,是否使用默认级别和/或等级可以由默认使用语法元素(default_tier_level_flag)来确定。当默认使用语法元素指示默认级别和/或等级的使用时,可以针对目标区域设置预定义的默认级别和/或默认等级。相比之下,当默认使用语法元素不指示默认级别和/或等级的使用时,可以针对目标区域设置所应用级别(level_idc)和/或所应用等级(tier_flag)以设置级别和/或等级。
[0195]
诸如智能手机和平板和数字tv这样的移动装置的屏幕分辨率不断提高,并且显示装置的尺寸也在逐渐增加。为了支持这种趋势,高清视频应该被快速地传输。幸运的是,通信速度正在增加,并且还正在开发视频压缩技术以提供高清视频。另外,正在开发用于图片的压缩和重构的并行技术,以提供高清视频。并行技术允许通过同时使用多个处理器一次处理大量计算。然而,待并行处理的数据不应该相互影响。
[0196]
视频由多个图片组成,每个图片被分割成多个切片或图块并被压缩。分割的切片/图块是否独立影响了视频压缩和重构的并行。换句话说,当分割的切片/图块具有独立性时,可以并行地处理视频压缩和重构。然而,当分割的切片/图块具有依赖性时,应该首先处理造成影响的切片/图块,然后应该处理受影响的切片/图块。因此,难以执行并行处理。
[0197]
本公开提出了视频编码设备应该如何配置和发送关于分割图片的信息以便执行分割图片的并行处理或分布式处理。
[0198]
以上已经简要描述了分割图片的方法。下文中,将更详细地描述方法。
[0199]
第一种方法是将图片分割成切片,因此,图片可以由一个或更多个切片组成。图片被分割成ctu,以使得能够进行编码和解码。在这种情况下,可以按照光栅扫描的顺序对图片进行分割。
[0200]
切片可以由一个或更多个切片片段组成。存在两种类型的切片片段:独立切片片段和依赖切片片段。在帧间预测、帧内预测、编码模式和熵编码期间,独立切片片段不依赖于其它切片片段,并且存在关于独立切片片段的头部信息。另一方面,在帧间预测、帧内预测、编码模式和熵编码期间,依赖切片片段取决于先前的独立切片片段。独立切片片段是指关于依赖切片片段所依赖于的独立切片片段的头部信息中的大部分,并且仅头部信息的一部分被作为单独的头部信息发送。
[0201]
图12是例示了构成一个图片的切片的示例的示图。
[0202]
在图12中,一个图片具有两个切片1210和1220。第一切片1210由一个独立切片片段1212和两个依赖切片片段1214和1216组成。第二切片1220由一个独立切片片段组成。在切片之间存在切片边界1230。然而,作为切片边界1230,可以仅存在水平轴边界。作为参考,如同第二切片1220一样,一个切片可以仅由独立切片片段组成。
[0203]
下表10和表11示出了切片的语法。
[0204]
具体地,表10示出了pps的示例。pps包括指示在图片中是否使用依赖切片片段的标志(dependent_slice_segments_enabled_flag)。
[0205]
[表10]
[0206][0207]
下表11示出了关于切片片段的头部信息的示例。
[0208]
[表11]
[0209][0210]
图片中的第一切片片段无条件地是独立切片片段。因此,关于切片片段的头部信息包括指示切片片段是否是第一切片片段的标志(first_slice_segment_in_pic_flag)、指示切片片段是独立切片片段还是依赖切片片段的除了第一切片片段之外的切片片段的标志(dependent_slice_segment_flag)以及切片片段的地址(slice_segment_address)。
[0211]
第二种方法是将图片分割成一个或更多个图块,并且将一个或更多个图块分组到一个图块组。如在切片的情况下一样,图片可以由一个或更多个图块和/或图块组组成。当按特定大小/单元分割图片时,图块表示基于特定单元被分割成多列多行的形式。即,一个图块的大小是特定单元的倍数。例如,当特定单元是ctu时,一个图片被分割成ctu,并且通过将图片分割成ctu的多列多行来形成图块。图块可以被独立地编码和解码。在帧内预测和熵编码中,图块并不依赖于其它图块。即,图块的帧内预测和熵编码总是被独立地执行。然
而,在帧间预测中,可能引起编码器问题,或者可以以pps、图块组头部(tgh)或补充增强信息(sei)的形式发送相关信息。在图块的环路滤波中,可以用pps和/或tgh的标志控制图块对另一个图块的依赖性。
[0212]
图13是例示了构成一个图片的图块的示例的示图。
[0213]
在图13中,图片被分割成3列3行,因此由9个图块组成。可以按光栅扫描的顺序对构成图片的图块进行编码或解码,并且也可以按光栅扫描的顺序对构成图块的多个ctu进行编码或解码。图13中示出的数字是ctu编号,并且可以是执行编码或解码的光栅扫描顺序。
[0214]
列边界1310和1315存在于垂直分割的图块之间,并且行边界1320和1325存在于水平分割的图块之间。可以根据分割方法对图块进行均匀或单独分割。
[0215]
下表12示出了图块的语法的示例。具体地,表12示出了pps的示例。
[0216]
[表12]
[0217][0218]
pps包括指示图片功能的开/关的标志(tiles_enabled_flag)。当标志为开时,pps中另外包括能够指定图块大小的多种语法。例如,当标记为开时,pps可以包括指示基于图片的列边界分割的图块的数目减去1的语法(num_tile_columns_minus1)、指示基于图片的行边界分割的图块的数目减去1的语法(num_tile_rows_minus1)以及指示图块被均匀地水平和垂直分割的标志(uniform_spacing_flag)。当图块没有被均匀地水平和垂直分割时(uniform_spacing_flag=关),pps还可以包括指示基于列边界的每个图块的宽度的语法(column_width_minus1)和指示基于行边界的每个图块的高度的语法(row_height_minus1)。最后,指示是否在图块间边界区域中运行环路滤波器的标志(loop_filter_across_tiles_enabled_flag)也可以被包括在pps中。
[0219]
另外,描述是否在不同图块之间帧间预测中执行参考的运动受限图块集(mcts)可
以被包括在补充增强信息(sei)消息中。下表13示出了mcts语法的示例。
[0220]
[表13]
[0221][0222]
mcts包括诸如在一个图片中存在的图块集的数目(num_sets_in_message_minus1)、构成每个图块集的图块矩形的数目(num_tile_rects_in_set_minus1)和构成每个图块矩形的图块的索引(top_left_tile_index[i][j],bottom_right_tile_index[i][j])这样的信息。
[0223]
图14是例示了一个图片中所包括的mcts的示例的示图。
[0224]
根据图14,图片由48个图块组成。图14中示出的数字指示图块索引。图片包括一个图块集14140,并且一个图块集包括两个图块矩形。第一图块矩形1420包括3个图块,其中,左上图块的索引为16并且右下图块的索引为32。第二图块矩形1430包括9个图块,其中,左上图块的索引为21并且右下图块的索引为39。允许属于同一图块集的图块在帧间预测中彼
此参考。
[0225]
如下地用表13的mcts语法表示图14的mcts:
[0226]
num_sets_in_message_minus1=0;
[0227]
mcts_id[0]=0;
[0228]
num_tile_rects_in_set_minus1[0]=1;
[0229]
{top_left_tile_index[0][0]=16,bottom_right_tile_index[0][0]=32};
[0230]
{top_left_tile_index[0][1]=21,bottom_right_tile_index[0][1]=39}。
[0231]
切片主要用于图片的并行处理,并且与编码/解码相关的信息被携带在切片头部中。另一方面,在图块的情况下,不存在单独的头部,并且与图块相关的一些信息被携带在补充增强信息(sei)消息中。
[0232]
虽然仅沿着水平轴确定切片的边界,但可以不仅沿着水平轴而且沿着垂直轴确定图块的边界。由于显著提高了用于带宽处理的视频编码/解码设备的容量和性能,因此如在切片中的情况一样,常规的基于行的处理方法可能限制并行处理和质量提高。因此,本公开提出了各种方法,以在采用图块进行并行处理和分布式处理的同时补充切片的特性。具体地,本公开提出了如何用图块配置分割图片以及如何发送关于图块的信息。
[0233]
如上所述,还可以通过将一个图片分成行和列来获得根据本公开的“图块”。然而,根据本公开的图块和/或图块组可以是构成网络抽象层(nal)的基本单元,并且可以依赖于或独立于另一图块和/或图块组,如同切片片段一样。另外,根据本公开的图块/图块组可以包括各种类型的信息。
[0234]
图15是例示了根据本公开的实施方式的构成一个图片的图块的示图。
[0235]
一个图片可以被分割成多个图块。当被分割的图块当中的彼此依赖的图块形成正方形时,它们可以被配置为一个区域(即,图块集),并且依赖于彼此的图块集可以被配置为一个图块组。即,一个图块组中所包括的一个或更多个图块集或图块可以彼此依赖,而图块组之间没有依赖性。换句话说,确保了每个图块组的独立性。这里,在本公开中,形成矩形的整个区域被定义为视口区域(或感兴趣区域(roi))。另外,除了矩形区域(即,一个图片中配置的视口区域)之外的其余区域可以被单独地配置。在本公开中,该区域被定义为背景区域。构成后台区域的图块也可以具有依赖性或独立性。
[0236]
在图15中,一个图片包括视口区域1510和1520以及背景区域1530。视口区域1510和1520以及背景区域1530各自由一个或更多个图块构成并且指示图片中的特定区域。例如,视口区域1510和1520可以是在提供360视频时保留用户视点的区域,或者是其中存在图片中的对象的区域。视口区域1510和1520通常被配置为矩形形状。另一方面,背景区域1530是一个图片中的与视口区域1510和1520不同的区域,并且可以不是矩形的。在图15中,如图12的切片片段的情况中一样,用虚线指示彼此依赖的图块,并且用实线指示彼此不依赖(即,彼此独立)的图块。因此,构成视口区域1510和1520的图块彼此依赖,因此可能在帧间预测或/和滤波期间彼此影响。另一方面,构成背景区域1530的图块彼此不依赖,因此在帧内预测、帧间预测、熵编码和滤波期间独立地操作。以下,用虚线指示彼此依赖的图块,而用实线指示彼此独立的图块。作为参考,虽然在图15中例示了在一个图片中存在视口区域和背景区域二者,但它们不一定全部都存在。即,一个图片可以仅由视口区域或背景区域组成。
[0237]
下文中,将详细描述与发送关于构成一个图片的图块的信息相关的各种实施方式。
[0238]
<第一实施方式>
[0239]
根据本公开的第一实施方式,视频编码设备将图片分割信息和关于构成图片的图块的独立性的信息存储在pps中,将图块id信息存储在图块头部中,并且将信息发送到视频解码设备。在第一实施方式中,所有图块在帧内预测和熵编码期间是独立性的。然而,在帧间预测和滤波期间,图块根据关于存储在pps中的图块的独立信息是独立或依赖的。
[0240]
下表14示出了根据第一实施方式的pps。
[0241]
[表14]
[0242][0243][0244]
根据第一实施方式,pps可以包括指示一个图片是否被分割成多个图块的标志(multiple_tiles_in_pic_flag)和指示所有图块是否都具有独立性的标志(all_independent_tile_flag)。这里,指示一个图片是否被分割成多个图块的标志(multiple_
tiles_in_pic_flag)也可以指示该图片是否由一个图块组成,并且可以选择性使用指示该图片是否由一个图块组成的标志(single_tile_in_pic_flag)。例如,当multiple_tiles_in_pic_flag的值为“1”时,这意味着图片被分割成多个图块。当multiple_tiles_in_pic_flag的值为“0”时,这意味着图片由一个图块组成。
[0245]
另外,指示所有图块是否都具有独立性的标志(all_independent_tile_flag)可以是指示在一个图片中是否存在指示图块之间的依赖性的图块组的标志。例如,当all_independent_tile_flag的值为“1”时,这意味着一个图块构成一个图块组,因为一个图片中的所有图块都是独立性的。当all_independent_tile_flag的值为“0”时,在一个图片中存在彼此依赖的图块,因此,多个图块可以属于一个图块组。即,这意味着在图片中存在至少一个包括多个图块的图块组。另选地,当一个图块构成一个图块组时,可以用指示每个图块组由一个图块组成的标志(single_tile_per_tile_group_flag)替换该标志。
[0246]
当图块彼此具有依赖性时,可以包括指示属于一个图片的图块组的数目的语法(num_tile_groups_in_pic_minus1)、指示图块组的id的语法(tile_group_id)、指示属于一个图块组的图块集的数目的语法(num_tile_sets_in_tg_minus1)、指示图块集的id的语法(tile_set_id)、指示构成图块集的矩形区域的左上图块的id的语法(topleft_tile_id)以及指示构成图块集的矩形区域的右下图块的id的语法(bottomright_tile_id)。这里,显示与指示图块组的数目的语法(num_tile_groups_in_pic_minus1)的值一样多的图块组的id。可以另外提供用于确定是否显式地发送图块组的id的标志(explicit_tile_group_id_flag),并且可以根据标志的值来发送图块组id。例如,当explicit_tile_group_id_flag的值为“1”时,可以显示与指示图块组的数目的语法(num_tile_groups_in_pic_minus1)的值一样多的图块组的id。当explicit_tile_group_id_flag的值为“0”时,不能发送图块组id。
[0247]
在第一实施方式中,在图片中的视口区域之间构成一个矩形区域的图块可以被定义为一个图块集。当多个图块集彼此依赖时,它们可以被定义为一个图块组。
[0248]
下表15示出了根据第一实施方式的图块头部。
[0249]
[表15]
[0250][0251]
根据第一实施方式的图块头部包括对应的图块id(tile_id)。
[0252]
关于图块组和图块集的信息被包括在pps中。如下表16中所示,关于对应图块是否具有独立性的信息以及关于图块组和图块集的信息也可以被包括在图块头部中。
[0253]
[表16]
[0254][0255]
具体地,图块头部可以包括指示对应图块是否依赖的标志(independent_tile_flag)、指示针对图块的pps中设置的图块组的id的语法(tile_group_id)以及指示针对图块的pps中设置的图块集的id的语法(tile_set_id)中的至少一个。
[0256]
根据第一实施方式,在帧间预测和滤波期间,具有相同图块组id(tile_group_id)和图块集id(tile_set_id)的图块彼此依赖。即,视频编码/解码设备通过在帧间预测和滤波期间检查图块组的id和图块集的id来确定参考/使用。可选地,视频编码/解码设备可以通过在帧间预测和滤波期间仅检查图块组的id来参考/使用。
[0257]
图16是例示了根据本公开的第一实施方式和第二实施方式的图片的示例的示图。
[0258]
参照图16,图片由48个图块构成,并且示出了图块。图片包括背景区域1640和视口区域1610、1620和1630。构成背景区域1640的图块是独立的并且被用实线指示。然而,构成视口区域1610、1620和1630的图块彼此依赖并且被用虚线指示。
[0259]
在图16中,假定视口区域1610、1620和1630由三个图块集1610、1620和1630组成,并且两个图块集1610和1620被配置为一个图块组。在这种情况下,视口区域中存在两个图块组。
[0260]
如下地用根据第一实施方式的pps表示图16的图片:
[0261]
[0262]
下表17示出了根据第一实施方式的图16的一些图块的图块头部。
[0263]
[表17]
[0264]
tile_id012831333943independent_tile_flag00100000tile_group_id00-00101tile_set_id00-01010
[0265]
例如,在图16中,具有被设置为8的tile_id的图块具有用虚线标记的边界,因此是依赖的。因此,指示图块是否独立的标志independent_tile_flag指示0。另外,图块头部指示图块属于两个图块组0和1之中的图块组0并且属于两个图块集0和1之中的图块集0。作为另一示例,图块id为43的图块具有被用虚线标记的部分的,因此是依赖的。因此,指示图块是否独立的标志independent_tile_flag指示0。另外,由于该图块属于与具有被设置为8的tile_id的图块的图块组不同的图块组,因此对于该图块,tile_group_id指示1。由于只存在一个图块集,因此tile_set_id被设置为0。
[0266]
在图16中,构成背景区域1640的图块都是独立的。因此,关于背景区域1640的信息可以由指示一个图片是否被分割成多个图块的标志和指示所有图块是否都具有独立性的标志来指示。下文中,将描述表示构成背景区域1640的图块彼此依赖的情况的实施方式。
[0267]
图17是例示了根据本公开的第一实施方式的图片的另一示例的示图。
[0268]
除了构成背景区域1710的图块是依赖的,图17与图16相同。当构成背景区域1710的图块是依赖的时,与视口区域的情况中一样,包括关于图块组和图块集的信息。
[0269]
如下地用根据第一实施方式的pps表示图17的图片:
[0270][0271]
对于背景区域1710,tile_group_id为2,存在一个图块集,并且图块集的id为255。在背景区域1710的情况下,图块集的id可以被预设为255。这里,255表示预定数目,并且id不限于255。即,当图块集的id为255时,因为该区域是背景区域,所以不需要单独指示构成
图块集的区域。
[0272]
下表18示出了根据第一实施方式的图17的一些图块的图块头部。
[0273]
[表18]
[0274][0275]
例如,在图17中,具有被设置为3的tile_id的图块具有用虚线标记的边界,因此是依赖的。因此,指示图块是否独立的标志independent_tile_flag指示0。另外,由于图块属于三个图块组0、1,和2当中的图块组2并且属于背景区域,因此tile_set_id可以在图块头部中指示255。
[0276]
使用根据第一实施方式的pps以另一种方式表示图17的图片如下:
[0277][0278]
这里,背景区域1710的tile_group_id为255。这里,255表示预定编号,并且id不限于255。即,当tile_group_id为255时,因为该区域是背景区域,所以不需要分别指示图块集和构成图块集的区域。
[0279]
下表19以不同的方式示出了根据第一实施方式的图17的一些图块的图块头部。
[0280]
[表19]
[0281]
tile_id012331333945independent_tile_flag00000000tile_group_id00255255010255tile_set_id00
--
101-[0282]
例如,在图17中,具有被设置为3的tile_id的图块具有用虚线标记的边界,因此是依赖的。因此,指示图块是否独立的标志independent_tile_flag指示0。另外,由于图块属
于背景区域,因此tile_group_id可以在图块头部中指示255。
[0283]
在以下的实施方式中,省略对与第一实施方式的部分相同的部分的描述。
[0284]
<第二实施方式>
[0285]
在本公开的第二实施方式中,如在先前的实施方式中一样,图片分割信息和关于构成图片的图块的独立性的信息被存储在pps中,并且仅图块id信息被存储在图块头部中。在第二实施方式中,提供了指示背景区域的单独语法。即,尽管第一实施方式采用图块组id或图块集id来指示背景区域,但第二实施方式具有指示背景区域的单独语法。在第二实施方式中,pps和图块头部可以根据图块是否被包括在背景区域中而变化。另外,图块头部可以包含关于图块是否独立的信息以及关于图块组和图块集的信息。
[0286]
在第二实施方式中,在帧间预测和滤波期间,具有相同图块组id(tile_group_id)和图块集id(tile_set_id)的图块彼此依赖。即,在帧间预测和滤波期间,根据图块组的id和图块集的id来确定参考/使用。可选地,在帧间预测和滤波期间,可以仅检查图块的图块组的id以确定参考/使用。
[0287]
下表20示出了根据第二实施方式的pps。
[0288]
[表20]
[0289]
[0290][0291]
根据第二实施方式的pps包括显式地指示存在背景区域的标志(bg_tile_set_enabled_flag)以及指示对应的图块集是否为背景区域的标志(bg_tile_set_flag)。当指示对应的图块集是否为背景区域的标志(bg_tile_set_flag)为“开”时,图块集被识别为构成背景区域的图块集,并且构成图块集的区域没有被单独指示。
[0292]
如下地用根据第二实施方式的pps表示图16的图片:
[0293][0294]
即,当构成背景区域的图块具有独立性时,除了bg_tile_set_enabled_flag被设置为“关”,所有细节都与第一实施方式中的相同。
[0295]
另一方面,可以如下地用根据第二实施方式的pps表示其中构成背景区域的图块彼此依赖的图17的图片。
[0296]
[0297][0298]
当构成背景区域的图块是依赖的时,bg_tile_set_enabled_flag被设置为“开”,并且包括指示每个图块集是否是背景区域的标志(bg_tile_set_flag)。
[0299]
下表21示出了根据第二实施方式的图17的一些图块的图块头部。
[0300]
[表21]
[0301]
tile_id012331333945independent_tile_flag00000000tile_group_id00220102tile_set_id00001010
[0302]
例如,在图17中,具有被设置为3的tile_id的图块属于三个图块组0、1和2当中的图块组2,并且tile_set_id可以在图块头部中指示0。
[0303]
下表22示出了根据第二实施方式的另一pps。
[0304]
[表22]
[0305]
[0306][0307]
根据第二实施方式的该另一pps包括显式地指示存在背景区域的标志(bg_tile_set_enabled_flag)以及指示对应的图块组是否为背景区域的标志(bg_tile_group_flag)。当指示对应的图块组是否为背景区域的标志(bg_tile_group_flag)为“开”时,图块组被识别为构成背景区域的图块组,并且构成图块组的区域没有被单独地指示。
[0308]
如下地用根据第二实施方式的该另一pps表示图16的图片:
[0309][0310]
即,当构成背景区域的图块具有独立性时,除了显示地指示存在背景区域的标志(bg_tile_set_enabled_flag)被设置为“关”,所有细节都与第一实施方式中的相同。
[0311]
如下地可以用根据第二实施方式的该另一pps表示其中构成背景区域的图块彼此依赖的图17的图片。
[0312]
[0313][0314]
当构成背景区域的图块是依赖的时,显示地指示存在背景区域的标志(bg_tile_set_enabled_flag)被设置为“开”,并且包括指示每个图块组是否被包括在背景区域中的标志(bg_tile_group_flag)。
[0315]
下表23示出了根据第二实施方式的图17的一些图块的另一图块头部。
[0316]
[表23]
[0317]
tile_id012331333945independent_tile_flag00000000tile_group_id00220102tile_set_id00
--
101-[0318]
例如,在图17中,对于具有被设置为3的tile_id的图块,tile_group_id可以在图块头部中指示2。
[0319]
<第三实施方式>
[0320]
在本公开的第三实施方式中,图片分割信息和关于构成图片的图块的独立性的信息二者被存储在图块头部中。根据第三实施方式,可以在不使用pps的情况下仅基于图块头部来确定图块的位置、大小和依赖性。
[0321]
下表24示出了根据第三实施方式的图块头部。
[0322]
[表24]
[0323][0324]
根据第三实施方式的图块头部包括指示图块起点(即,左上角)的ctu id的语法
(tile_position)、指示图块行终点(即,右上角)的ctu id与图块起点的ctu id之间的差的语法(tile_width)、指示对应图块是否依赖的标志(independent_tile_flag)以及指示图块与邻近图块之间的关系的语法(tile_layout_type)。这里,图块起点表示图块中的第一个ctu,并且图块行终点表示图块中的右上ctu。指示图块与邻近图块之间的关系的语法指示图块的布局的类型,并且将在下面进行详细描述。
[0325]
下表25示出了根据第三实施方式的另一图块头部。
[0326]
[表25]
[0327][0328]
根据第三实施方式的另一图块头部可以包括记录在诸如sps或pps这样的上头部中的标志(all_independent_tile_flag)。
[0329]
图18是例示了根据本公开的第三实施方式的图片的示例的示图。
[0330]
图18示出了图16的图片的ctu id而非图块id。
[0331]
下表26示出了根据第三实施方式的图18的一些图块的图块头部。
[0332]
[表26]
[0333]
tile_position0246110130142166tile_width11111111independent_tile_flag00110000tile_layout_type**
--
****
[0334]
例如,在图18中,对于其中ctu id从4开始的图块,图块的行终点的ctu id为5,图块终点的ctu id与图块起点的ctu id之间的差(tile_width)为1,因此图块具有独立性。因此,指示与邻近图块的关系的语法是没有意义的。作为另一示例,在图18中,对于其中ctu id从0开始的图块,图块的行终点的ctu id为1,图块终点的ctu id与图块起点的ctu id之间的差(tile_width)为1,因此图块具有依赖性。因此,用指示图块与邻近块之间的关系的语法(tile_layout_type)指示与邻近块的关系。
[0335]
可以以各种方式指示图块与邻近图块之间的关系。
[0336]
作为示例,可以用最多8个比特来指示是否依赖于与一个图块邻近的八个图块。然而,当图块位于图片的边界处(即,图块没有邻近图块)时,可以不用比特指示依赖性。例如,在图18中,对于其中ctu id从130开始的图块,基于左上图块,可以将指示图块与邻近图块
之间的关系的语法(tile_layout_type)表示为“00001011”。“00001011”的第一位0指示与其中ctu id从96开始的图块的关系是独立,并且“00001011”的第二位0指示与其中ctu id从98开始的图块的关系是独立。“00001011”的第五位0指示与其中ctu id从132开始的图块的关系是依赖。即,其中ctu id从130开始的图块与其中ctu id从132、162和164开始的图块具有依赖性。作为另一示例,在图18中,对于其中ctu id从166开始的图块,可以将指示图块与邻近图块之间的关系的语法(tile_layout_type)表示为“11010”。其中ctu id从166开始的图块位于图片的边界处,并且其语法可以用5位指示。“11010”的第一位1指示与其中ctu id从132开始的图块的关系是依赖,并且“11010”的第三位0指示与其中ctu id从136开始的图块的关系是独立。即,其中ctu id从166开始的图块与其中ctu id从132、134和164开始的图块具有依赖性。这里,依赖性可以被用1表示,独立性可以被用0表示。另外,可以基于除了左上图块之外的位置处的图块来表示语法。
[0337]
作为另一示例,可以确定指示图块与邻近图块之间的关系的语法(tile_layout_type)的比特的总数,并且可以定义每个比特的含义。例如,第一个比特可以指示图块是位于图块集内还是边界处(例如,0:内部,1:边界),第二个比特可以指示位于边界处的图块是否在拐角处(例如,0:非拐角,1:拐角)。另外,第三个比特和第四个比特可以指示位于边界处的图块的特定位置,即,上、下、左或右边界(例如,当图块不位于拐角处时,00:左边界,01:上边界,10:右边界,11:下边界;当图块位于拐角处时,00:左上角、01:右上角、10:右下角、11:左下角)。例如,在图18中,对于其中ctu id从130开始的图块,可以将指示图块与邻近图块之间的关系的语法(tile_layout_type)表示为“1100”。“1100”的第一位1指示与其中ctu id从130开始的图块位于图块集边界处,并且“1100”的第二位1指示图块位于图块集的拐角处。另外,“1100”的第三位和第四位00指示图块位于左上角处。作为另一示例,在图18中,对于其中ctu id从132开始的图块,可以将指示图块与邻近图块之间的关系的语法(tile_layout_type)表示为“1001”。“1001”的第一位1可以指示其中ctu id从132开始的图块位于图块集边界处,并且“1001”的第二位0指示图块不位于除了图块集的拐角之外的位置处。另外,“1001”的第三位和第四位01指示图块位于上边界处。
[0338]
可以以各种其它方式表示图块与邻近图块之间的关系。
[0339]
<第四实施方式>
[0340]
在本公开的第四实施方式中,图片分割信息被存储在图块头部中,并且每个图块总是独立。另选地,图片分割信息被存储在pps中,图块id被存储在图块头部中,并且每个图块总是独立。即,在帧内预测、帧间预测、熵编码和滤波期间,所有图块都是独立。因此,仅位置信息被包括在图块头部中。根据第四实施方式,在图块之间不存在依赖性,因此不仅并行处理而且分布式处理是可能的。这可以意味着,在诸如云计算这样的环境中,可以用n个编码设备对n个图块进行独立编码和解码。然而,当在回放期间合并多个图块时,在图块边界处可能出现劣化。
[0341]
下表27示出了根据第四实施方式的图块头部。
[0342]
[表27]
[0343][0344]
根据第四实施方式的图块头部包括指示图块起点的ctu id的语法(tile_position)以及指示图块行终点的ctu id与图块起点的ctu id之间的差的语法(tile_width)。
[0345]
<第五实施方式>
[0346]
在本公开的第五实施方式中,为了解决在实施第四实施方式时在图块的边界处出现的劣化,在每个图块的边界处添加了填充区域或保护带。关于所添加的填充区域的信息被包括在图块头部中。
[0347]
下表28示出了根据第五实施方式的图块头部。
[0348]
[表28]
[0349][0350]
根据第五实施方式的图块头部包括指示图块起点的ctu id的语法(tile_position)以及指示图块行终点的ctu id与图块起点的ctu id之间的差的语法(tile_width)。另外,图块头部包括指示图块的左、上、右和下填充区域的亮度像素值的语法(band_width)和指示用于对填充区域进行填充的值的类型的语法(band_type)。用于对填充区域进行填充的值的类型包括处于图块内边界处的像素值、邻近图块的实际像素值以及考虑到处于图块内边界处的像素值与邻近图块的实际像素值之间的距离的平均值。
[0351]
图19是例示了根据本公开的第五实施方式的图片的示例的示图。
[0352]
在图19中,图片由四个图块组成。在四个图块的左、上、右和下侧设置填充区域1910、1920、1930和1940,并且这些值被置于填充区域中。此后,在编码/解码时,对相应图块执行分布式处理。在解码之后,填充区域1910、1920、1930和1940被去除并且图块被合并。由此,可以解决在图块的边界处出现的劣化。
[0353]
另外,根据本公开的第三实施方式至第五实施方式,关于图块的类型信息可以被包括在图块头部中。关于图块的类型信息可以包括关于图块是否属于图块集和/或是否被
包括在背景区域中的信息。
[0354]
另外,在本公开中,可以用数组的索引替换id。
[0355]
图20是例示了根据本公开的由视频编码设备配置一个图片的方法的流程图。
[0356]
该设备(具体地,该设备的块分割器)确定是否将图片分割成多个图块(s2010)。
[0357]
该设备根据该确定将图片分割成多个图块(s2020)。图片是否被分割成多个图块可以被存储在标志(例如,multiple_tiles_in_pic_flag)中。
[0358]
该设备(具体地,该设备的编码器)生成包含关于分割图块的信息的pps(s2030)。关于分割图块的信息可以包括关于图片是否被分割成多个图块以及所有分割图块是否都彼此独立的信息。所有分割图块是否彼此独立可以被存储在标志(例如,all_independent_tile_flag)中并被包括在pps中。
[0359]
该设备生成包括每个分割图块的图块id的每个图块头部(s2040)。
[0360]
尽管在本公开中具体提到了设备的块分割器和编码器执行上述过程,但一个部件可以执行所有以上过程,或者多个部件可以以分布式方式执行以上过程。
[0361]
图21是例示了根据本公开的由视频解码设备确定单个图片的流程图。
[0362]
该设备具体地该设备的解码器接收比特流,对接收到的比特流进行解码,并且检查图块头部中所包括的图块id(s2110)。该设备可以基于图块id来确定图片是否被分割成多个图块。
[0363]
该设备基于接收到的比特流中所包括的pps来推断关于分割图块的信息(s2120)。另外,该设备可以基于关于分割图块的信息来确定图片是否被分割成多个图块。关于分割图块的信息可以包括关于图片是否被分割成多个图块以及所有分割图块是否都彼此独立的信息。所有分割图块是否彼此独立也可以被作为标志(例如,all_independent_tile_flag)包括在pps中并被接收。
[0364]
图22是例示了作为示例的切片片段的nal单元的示图。
[0365]
具体地,nal单元依次包括nalu头部2210、切片片段头部2220和切片片段数据2230。每个切片片段由nal单元组成,并且nal单元以比特流的形式被发送。
[0366]
另一方面,在图块的情况下,不存在单独的头部,并且图块相关信息的一部分被携带在补充增强信息(sei)消息中。
[0367]
以下,图片被分割成图块,以并行处理图片。在本公开中,提出了将具有相似特性的图块或任何图块定义为图块组并发送关于图块组的信息的方法。
[0368]
具体地,属于图块组的图块可以在帧间预测期间对参考图片进行参考,并且可以共享任意运动矢量(mv)信息。另选地,可以通过语法发信号通知是否参考/共享相关信息。另外,对于属于图块组的图块,可以通过语法来控制在环路滤波期间是否对位于图块边界处的像素值进行滤波。然而,在帧内预测和/或熵编码期间,因为图块之间没有相关性,所以不参考图块。属于图块组的图块之间的相关性可以被定义为图块组头部中的语法。
[0369]
图23是例示了根据本公开的图块组的示例的示图。
[0370]
图23示出了一个图片被分割成48(=8
×
6)个图块。这48个图块可以被分割成三个组2310、2320和2330。每个分割图块组可以被配置为独立的nal单元。
[0371]
图24是例示了作为示例的根据本公开的图块组的nal单元的示图。
[0372]
如同切片片段的nal单元,图块组的nal单元还包括nalu头部2410、图块组头部
2420以及构成图块组的图块,即,依次的第一图块2430和第二图块2440、第三图块2450和第四图块2460。nal单元可以由一个图块组组成。图块组头部2420包括关于图块组中所包括的图块2430、2440、2450和2460的公共信息。图块可以由图块头部和图块数据构成。另选地,图块可以仅由图块数据组成。最终,生成nal单元并将其作为比特流发送。
[0373]
当nal单元由图块组构成时,关于图块组的信息可以被预定义为nal类型。下表29示出了nal类型的示例。这里,帧内图片表示帧内随机接入点(irap)图片,并且帧间图片表示非irap图片。表29中的nal类型索引的值是示例,并且irap索引和非irap索引能被彼此互换。另外,irap图片和/或非irap图片可以进一步被细分并定义为一种或更多种nal类型。例如,根据是否被用作参考图片,非irap图片可以被定义为不同的nal类型。
[0374]
[表29]
[0375][0376]
图25是例示了根据本公开的图片中的图块组和图块组的nal单元的示例的示图。
[0377]
参照图25,一个图片可以被分割成16(=4
×
4)个图块,其中4个图块2510、2520、2530和2540被包括在一个图块组中。图块组可以由一个nal单元组成,并且nal单元包括nalu头部、图块组头部、属于图块组的第一图块2510的图块头部2512和图块数据2514以及第二图块2520的图块头部2522和图块数据2524、第三图块2530的图块头部2532和图块数据2534以及第四图块2540的图块头部2542和图块数据2544。另选地,nal单元可以仅包括图块数据,而没有四个图块的图块头部。在这种情况下,属于图块组的四个图块2510、2520、2530和2540可以以对应图片内的光栅扫描的顺序被包括在nal单元中。
[0378]
下文中,将详细地描述指示关于一个图片的信息的图片级头部、指示属于一个图块组的图块公共的信息的图块组头部以及指示关于每个图块的信息的图块头部。这里,图片级头部可以由与图块组nal单元分开的一个nal单元构成。例如,图片级头部的nal单元可以被定义为具有被设置为“17”的nal类型索引的非vcl nal类型。
[0379]
首先,将描述指示关于一个图片的信息的图片级头部。下表30示出了图片级头部的语法。
[0380]
[表30]
[0381][0382][0383]
除了图片头部的id(picture_header_id)之外,图片级头部还包括关于一个图片的图块的图块布局信息。即,图片级头部包括指示一个图片具有一个图块还是多个图块的语法(multiple_tiles_in_pic_flag)以及当在图片中有多个图块时关于图块布局的详细信息。这里,指示图片是否被分割成多个图块的标志(multiple_tiles_in_pic_flag)可以被用指示图片是否由一个图块组成的标志(single_tile_in_pic_flag)替换。例如,当图片中有多个图块时,图片级头部包括基于图片的行分割的图块的数目的语法(num_tile_columns_minus1)、基于图片的列分割的图块的数目的语法(num_tile_rows_minus1)以及指示是否基于行和列均匀地分割图片的语法(uniform_spacing_flag)。当基于行和列均匀地分割图片时,图片被按分割图块的数目均匀地分割,并且分割的基本单元可以是m的倍数。这里,m可以表示用于将运动矢量(mv)存储在存储器中的基本单元。另选地,m可以是由编码器确定的整数。在这种情况下,编码器应该通过比特流将m的值传输到解码器。另选地,m可以是由编码器和解码器相同地指定的常数。通常,在存储mv时,位于图块边界处的两个图块的mv可以被设置为或者可以不被设置为一个mv。在本公开中,为了简单起见,假定m为8。
[0384]
例如,当图片的分辨率为3840
×
2160、m的值为8、并且图片被均匀地分割使得行图块的数目为5并且列图块的数目为3时,一个图块的分辨率为768
×
720,并且图片由15(=5
×
3)个图块组成。另外,15个图块全都具有相同的大小。这里,768和720是8的倍数。
[0385]
如在标准hevc中一样,当m为64即ctu大小时,在相同条件下,位于上方两行的图块
的分辨率为768
×
704,并且位于最后一行的图块的分辨率为768
×
752。这是因为ctu大小是分割的基准,因此位于上方两行的图块按64的倍数被分割,并且位于最后一行的图块包括除了位于上方两行的图块之外的其余区域。
[0386]
当图块没有被均匀地分割成行和列时,图片级头部还包括指示基于行的每个图块的宽度的语法(column_width_minus1)和指示基于列的每个图块的高度的语法(row_height_minus1)。即使在这种情况下,分割的基本单元也可以为m。
[0387]
下文中,将描述表示属于一个图块组的所有图块公共的信息的图块组头部。
[0388]
首先,一个图块组可以被配置为一个正方形形状。
[0389]
下表31示出了作为示例的图块组头部的语法。
[0390]
[表31]
[0391]
[0392][0393]
图块组头部包括关于图块组的信息。例如,图块组头部包括指示图块组在图片中的位置的语法(tg_address)、指示图块组所参考的图片头部的id的语法(tg_picture_header_id)以及指示图块组类型的语法(tg_type)。可以基于图片的左上像素的位置来指示图块组在图片中的位置。另选地,图块组在图片中的位置可以以图片分割的基本单元的倍数的形式针对每个行和列来指示,或者按光栅扫描的顺序由作为8的倍数的单个值指示。另选地,图块组在图片中的位置可以根据图块布局由针对属于图块组的左上图块的行和列的索引指示,或者按光栅扫描的顺序由针对左上图块的一个索引(图块id)指示。指示图块组所参考的图片头部的id的语法(tg_picture_header_id)表示图片头部中定义的id值。图块组的类型是图块组b、图块组p和图块组i中的一个。
[0394]
另外,图块组头部可以包括指示在图块组中是否存在多个图块的语法(multiple_
tiles_in_tg_flag)、指示在跨图块组中的图块的帧间预测中是否参考其它邻近图块的语法(tg_inter_prediction_across_tiles_enabled_flag)、指示在合并模式和高级运动矢量预测(amvp)模式下除了参考图片中的对应图块之外是否还推导和使用邻近图块中的时间mv的语法(tg_temporal_mv_across_tiles_enabled_flag)以及指示是否在环路滤波中使用邻近图块信息的语法(tg_loop_filter_across_tiles_enabled_flag)。这里,对于指示在合并模式和amvp模式下除了参考图片中的对应图块之外是否还推导和使用邻近图块中的时间mv的语法,当在更高级头部(例如,sps)中启用相应功能然后确定是否在相应图块组的级别再次使用该功能时,可以确定是否要推导跨图块的时间mv。例如,当启用sps_temporal_mv_enabled_flag并启用tg_temporal_mv_enabled_flag时,可以定义tg_loop_filter_across_tiles_enabled_flag的值。该语法可以用指示在搜索并置块以获得时间mv时是否要参考邻近图块的语法(tg_collocated_block_across_tiles_enabled_flag)替换。另外,指示在跨图块组中的图块的帧间预测中是否参考邻近图块的语法和在环路滤波中是否使用邻近图块信息的语法可以被用一个语法表示。当该语法不允许参考邻近图块时,在帧间预测中不能参考邻近图块的重构像素值。也不能参考邻近图块的mv。
[0395]
图块组头部还可以包括指示图块组的边界区域的某个部分是否被填充的语法(guard_band_enabled_flag)、指示要置于填充区域中的值的类型的语法(gb_padding_type)(例如,图块组的边界像素值:0,邻近图块的实际像素值:1,考虑到图块中的边界像素值与邻近图块的实际像素值之间的距离的平均值:2)以及指示图块组的左/右/上/下填充大小的语法(gb_left_width/gb_right_width/gb_top_height/gb_bottom_height)。图块组的每一侧的填充大小可以用基于亮度的像素值指示,或者可以以数组形式设置。可以针对图块组的左/右/上/下填充区域中的每一个分别指定指示将置入填充区域中的值的类型的语法(gb_padding_type)。例如,可以针对图块组的左右填充区域指定邻近图块的实际像素值(1),并且可以针对上下填充区域指定图块组的边界像素值的复制值(0)。另外,保护带信息可以定义编码时用于输入图片(图块组)的填充,或者可以定义解码时用于参考图片(图块组)的填充。
[0396]
图块组头部可以包括指示图块组的级别值的语法(tg_level_idc)和指示图块组的等级值的语法(tg_tier_flag)。提供语法,以告知解码器针对图块组的分辨率值和存储器,这是每个图块组的解码所必需的信息。这两个语法可以限于当启用了单独标志(adaptive_level_tier_enabled_flag)时发送。
[0397]
图块组头部可以包括指示通过从要应用于图块组的初始量化参数(qp)的值中减去32而获得的值的语法(init_qp_minus32)。
[0398]
图块组头部还可以包括指示通过从基于列的图块组中所包括的图块的数目中减去1而获得的值的语法(tg_num_tile_columns_minus1)以及指示通过从基于行的图块组中所包括的图块的数目中减去1而获得的值的语法(tg_num_tile_rows_minus1)。使用这两种语法,可以计算图块组中的图块的总数(total_tiles)。另选地,可以用属于图块组的右下图块的id(图块id)来指示图块中所包括的所有图块的数目。可以通过基于行和列组合语法来用一个语法(num_tiles_in_tg_minus1)表示图块组中所包括的图块的数目。该语法指示通过从图块组中的图块的总数中减去1而获得的值。
[0399]
这可以根据图块组的形状被不同地应用。例如,当图块组为矩形时,它可以被表示
为从基于行和列而包括的图块的数目中减去1而获得的值,或者可以被表示为属于图块组的右下图块的id(图块id)。另一方面,当基于与图块组的形状有关的图片中的图块布局按图块的光栅扫描的顺序定义图块组时,图块组中所包括的图块的数目可以被指定为通过按光栅扫描的顺序从图块组中的图块的总数中减去1而获得的值。
[0400]
指示跨图块组中的图块是否应用帧间预测、时间mv和环路滤波的语法也可以如下表32中表示的。
[0401]
[表32]
[0402][0403]
当在图块组中存在多个图块时,可以使用指示所有图块被独立地编码和解码的语法(all_independent_tiles_flag)。即,语法指示可以在不参考关于邻近图块的信息的情况下在帧间预测和/或环路滤波中执行编码和解码。具体地,当语法的值为0时,使用邻近图块信息,并且分别指定用于帧间预测、时间mv和/或环路滤波器中的每一个的参考。
[0404]
其它语法与表31中描述的语法相同,因此省略对其的描述。
[0405]
在图块组头部中所包括的语法当中,与保护带相关的语法可以被包括在图片级头部和补充增强信息(sei)中的任一个中。
[0406]
其次,多个图块矩形可以被配置为一个图块组。在这种情况下,可以如下表33中所示地表示图块组头部的语法。
[0407]
[表33]
[0408]
[0409][0410]
图块组头部包括关于多个图块矩形的信息。例如,图块组头部可以包括指示图块组中所包括的图块矩形的数目的语法(num_tile_rectangular_minus1)和指示图块矩形的左上/右下图块的id值的语法(topleft_tile_id/bottomright_tile_id)。可以针对每个图块矩形设置上述的指示在跨图块组中的图块的帧间预测中是否参考邻近图块的语法(tg_inter_prediction_across_tiles_enabled_flag[i])、指示在合并模式和amvp模式下除了相应图块之外是否还推导和使用邻近图块中的时间mv的语法(tg_temporal_mv_across_tiles_enabled_flag[i])以及指示在环路滤波中是否使用邻近图块信息的语法(tg_loop_filter_across_tiles_enabled_flag[i])。
[0411]
图26是例示了根据本公开的另一实施方式的图片中的图块组和图块组的nal单元的示图。
[0412]
如图25的示例中一样,在图26中,一个图片被分割成16(=4
×
4)个图块。然而,在图26中,一个图块组包括两个图块矩形,其中,第一个图块矩形由两个图块2610和2630组成,并且第二个图块矩形是两个图块2620和2640。在图26中,一个图块组由一个nal单元组成。nal单元可包括nalu头部、图块组头部、属于图块组的图块的图块头部2612、2622、2632、2642以及图块数据2614、2624、2634和2644。另选地,nal单元可以仅包括图块数据,而没有四个图块的图块头部。属于图块组的图块可以按光栅扫描顺序被包括在nal单元中,或者可以按针对每个图块矩形的光栅扫描顺序被包括在nal单元中。图26示出了按光栅扫描的顺序将属于图块组的图块包括在nal单元中。
[0413]
最后,将描述图块头部和图块数据。
[0414]
图块头部包含关于一个图块的信息。下表34示出了作为示例的图块头部的语法。
[0415]
[表34]
[0416]
tile_header(){
start_code_prefixtile_idx...tile_qp_delta...}
[0417]
例如,图块头部包括:语法(start_code_prefix),其指示用作允许随机接入与一个图块组对应的比特流中的多个图块当中的一个图块的进入点的起点;语法(tile_idx),其基于在图片级头部中定义的图块布局指示图块的索引;以及语法(tile_qp_delta),其基于图块所属的图块组中推荐的初始qp值指示要应用于图块中所包括的cu和ctu的qp值的
△
qp的值。图块的索引可以针对每个行和列来指定,或者可以按光栅扫描的顺序被指定为一个索引。
[0418]
可以使用下式1来计算将应用于图块的qp值。
[0419]
[式1]
[0420]
tile_qp=init_qp_minus32+32+tile_qp_delta
[0421]
下表35示出了作为示例的图块数据的语法。
[0422]
[表35]
[0423][0424]
图27是例示了根据本公开的实施方式的在帧间预测期间一些区域参考图块组中的其他区域的示图。
[0425]
图27的(b)示出了当前图片中的图块组,并且图27的(a)示出了参考图片中当前图片的同一图块组。在图27的(b)中,矩形区域2720表示待编码的块,并且箭头2730指示矩形区域2720的运动。换句话说,图27的(a)中的矩形区域2710表示由待编码块的mv指示的参考块。
[0426]
例如,当指示在跨图块组头部中的图块的帧间预测中是否参考其它图块的语法(tg_inter_prediction_across_tiles_enabled_flag)被设置为指示参考时,图27的(a)中的矩形区域2710可以被用作参考块。另一方面,当语法被设置为指示不参考时,在不参考其它图块的情况下,用图27的(b)中的矩形区域2720的右上图块中的像素值生成参考块。在这种情况下,可以针对右上图块被视为一个图片并且在图片边界外部被参考的情况执行处理过程。即,这意味着复制并填充图片边界的像素值,并且边界外部的一部分被边界像素填充。以下,将参照图28对细节进行描述。
[0427]
图28是例示了根据本公开的实施方式的帧间预测的流程图。
[0428]
获取作为关于待编码块的运动信息的参考图片、运动矢量差(mvd)和运动矢量预
测子(mvp)(s2810)。
[0429]
基于所获取的运动信息来推导待编码块的mv值(s2820)。
[0430]
确定mv值所指示的区域的位置(s2830)。
[0431]
检查所确定的区域位置是否在当前图块内(s2840)。
[0432]
当所确定的区域位置在当前图块内时,在当前图块内获取参考块(s2850)。
[0433]
当所确定的区域位置不在当前图块内时,检查所确定的区域位置是否在当前图块所属的图块组内(s2860)。
[0434]
当所确定的区域位置在当前图块所属的图块组内时,检查在跨图块组中的多个图块的帧间预测中是否参考其它图块(s2870)。
[0435]
当确定在跨图块组中的多个图块的帧间预测中参考其它图块时,在图块组中获取参考块(s2880)。
[0436]
然而,当所确定的区域位置不在当前图块所属的图块组内或者确定所确定的区域位置在当前图块所属的图块组内,但在跨图块组中的多个图块的帧间预测中不参考其它邻近图块时,使用复制像素值的填充方案用边界像素填充与图块组的外部对应的参考块(s2890)。这里,一个图块组被视为单独的图片,并且如在图片边界处理中一样,对图块组的边界执行边界像素值的填充。另选地,mv值被裁剪为当前图块中的最近边界值。
[0437]
图29是例示了根据本公开的由视频编码设备配置一个图片的方法的流程图。
[0438]
该设备,具体地该设备的块分割器,将一个图片分割成图块(s2910)。
[0439]
该设备的编码器在图片级头部中设置关于分割图块的信息(s2920)。关于分割图块的信息可以是关于分割图块的布局信息。具体地,该信息可以包括关于图片是否被均匀地分割成行和列、按行分割的图块的数目和按列分割的图块的数目的信息。
[0440]
编码器将分割图块当中的多个图块设置为一个图块组(s2930)。详细地,分割图块当中的具有相似特性的图块可以被设置为一个图块组。另外,多个图块可以被配置为多个图块矩形,并且多个图块矩形可以被设置为一个图块组。
[0441]
编码器在图块组头部中设置关于图块组的信息(s2940)。图块组头部可以包括指示图块组的位置、在跨图块组中的图块的帧间预测中是否参考其它邻近块以及在环路滤波中是否使用邻近图块信息的信息。图块组头部还可以包括关于图块组的边界区域的某个部分是否被填充的信息、当执行填充时关于置入填充区域中的值的信息。
[0442]
编码器被配置在包括图块组和图块组头部的网络抽象层(nal)单元中(s2950)。nal单元还可以包括图块头部和图块组中所包括的图块的图块数据。
[0443]
尽管在本公开中具体提到了设备的块分割器和编码器执行以上过程,但一个部件可以执行所有以上过程,或者多个部件可以以分布式方式执行以上过程。
[0444]
图30是例示了根据本公开的由视频解码设备确定单个图片的方法的流程图。
[0445]
该设备,具体地该设备的解码器,接收比特流,对接收到的比特流进行解码,并且区分nal单元中所包括的图块组和图块组头部(s3010)。
[0446]
该设备根据图块组头部推断关于图块组的信息(s3020)。
[0447]
该设备确定被配置为图块组的分割图块(s3030)。
[0448]
该设备根据图片级头部来确定关于分割图块的信息(s3040)。
[0449]
虽然已经出于例示目的描述了示例性实施方式,但是本领域技术人员应该领会的
是,能够在不脱离实施方式的构思和范围的情况下进行各种修改和改变。为了简明扼要,已经描述了示例性实施方式。因此,普通技术人员将理解,实施方式的范围不由以上明确描述的实施方式限制,而是被包括在权利要求书及其等同物中。
[0450]
相关申请的交叉引用
[0451]
本专利申请要求其全部内容以引用方式并入本文中的分别在2018年4月10日和2019年4月8日在韩国提交的专利申请no.10-2018-0041702和no.10-2019-0041006、分别在2018年4月9日和2019年4月5日在韩国提交的专利申请no.10-2018-0041165和no.10-2019-0040156以及分别在2018年12月27日和2019年4月8日在韩国提交的专利申请no.10-2018-0171262和no.10-2019-0040909的优先权。