首页> 中国专利> 用于使用图片中的均匀片段分割进行视频编码的方法和装置

用于使用图片中的均匀片段分割进行视频编码的方法和装置

摘要

一种用于从比特流解码图片的方法。所述图片包括一数量的单元,并且所述图片通过划分结构被划分为一数量的空间片段。所述方法包括对比特流中的一个或多个码字进行解码;基于所述一个或多个码字来确定所述划分结构是均匀的;基于所述一个或多个码字来确定空间片段的数量;确定片段单元大小;以及从所述一个或多个码字中导出图片中空间片段的大小和/或位置。导出图片中空间片段的大小和/或位置包括:基于第一维度或方向上的空间片段的数量的第一循环。在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。

著录项

  • 公开/公告号CN113196757A

    专利类型发明专利

  • 公开/公告日2021-07-30

    原文格式PDF

  • 申请/专利权人 瑞典爱立信有限公司;

    申请/专利号CN201980083905.0

  • 申请日2019-12-19

  • 分类号H04N19/119(20060101);H04N19/172(20060101);H04N19/70(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人余婧娜

  • 地址 瑞典斯德哥尔摩

  • 入库时间 2023-06-19 12:02:28

说明书

技术领域

本公开涉及视频编码和解码。

背景技术

HEVC和下一代视频编码

高效率视频编码(HEVC)(又名H.265)是由ITU-T和MPEG标准化的基于块的视频编解码器,利用时间预测和空间预测二者。使用来自当前图片内的帧内(I)预测来实现空间预测。根据先前解码的参考图片,使用块级别上的帧间(P)或双向帧间(B)预测来实现时间预测。原始像素数据与预测像素数据之间的差(称为残差)在与也被熵编码的必要的预测参数(例如预测模式和运动矢量)一起发送之前,被变换到频域、被量化、然后被熵编码。通过量化变换后的残差,可以控制视频的比特率和质量之间的折衷。量化级别由量化参数(QP)确定。解码器执行熵解码、逆量化和逆变换以获得残差。然后,解码器将残差与帧内预测或帧间预测相加,以重构图片。

MPEG和ITU-T正在联合视频探索小组(JVET)内开发HEVC的后继者。该开发中的视频编解码器的名称为VCC。

HEVC中的片概念将图片划分为独立编码的片,其中每个片以编码树单元(CTU)为单位按光栅扫描顺序读取。不同的编码类型可用于同一图片的片,即,片可以是I片、P片或B片。片的主要目的是在数据丢失的情况下实现重新同步。

图块

HEVC视频编码标准包括被称为图块的工具,该工具将图片分为空间上独立的矩形区域。使用图块,可以将HEVC中的图片划分为多行样本和多列样本,其中图块是行和列的交集。HEVC中的图块始终与CTU边界对齐。

图1示出了使用4个图块行和5个图块列的图块划分的示例,导致图片具有总共20个图块。

通过指定行的厚度和列的宽度,在图片参数集(PPS)中以信号传送图块结构。各个行和列可以具有不同的大小,但是划分始终跨整个图片,分别从左到右以及从上到下。同一图片的图块之间不存在解码依赖性。这包括帧内预测、用于熵编码的上下文选择、和运动矢量预测。一个例外是,在图块之间一般允许环路滤波依赖性。

下面的表1列出了在HEVC中用于指定图块结构的PPS语法。标志(例如,tiles_enabled_flag)指示是否使用图块。如果该标志被设置,则图块列和行的数量被指定。uniform_spacing_flag是如下标志:指定是否显式地以信号传送列宽度和行高度、或者是否应使用将图块边界均等地间隔开的预定方法。如果指示显式的以信号传送,则一一以信号传送列宽度,随后是行高度。这样的列宽度和行高度是以CTU为单位以信号传送的。loop_filter_across_tiles_enabled_flag标志指定针对图片中的所有图块边界是打开还是关闭跨图块边界的环路滤波器。

表1.HEVC中的示例性图块语法

下面更详细地解释HEVC中用于指定图块结构的语义:

tiles_enabled_flag等于1指定了,在参考PPS的每个图片中存在多于一个图块。tiles_enabled_flag等于0指定了,在参考PPS的每个图片中仅存在一个图块。

num_tile_columns_minus1加1指定了划分图片的图块列的数量。num_tile_columns_minus1的范围应在0到PicWidthInCtbsY-1(含端值)之间。当不存在时,推断num_tile_columns_minus1的值等于0。

num_tile_rows_minus1加1指定了划分图片的图块行的数量。num_tile_rows_minus1的范围应在0到PicHeightInCtbsY-1(含端值)之间。当不存在时,推断num_tile_rows_minus1的值等于0。

当tiles_enabled_flag等于1时,num_tile_columns_minus1和num_tile_rows_minus1不应均等于0。

uniform_spacing_flag等于1指定了图块列边界以及(同样的)图块行边界在图片上均匀分布。Uniform_spacing_flag等于0指定了图块列边界以及(同样的)图块行边界不是在图片上均匀分布的,而是使用语法元素column_width_minus1[i]和row_height_minus1[i]显式以信号传送的。当不存在时,推断uniform_spacing_flag的值等于1。

column_width_minus1[i]加1指定了第i个图块列以CTB为单位的宽度。

row_height_minus1[i]加1指定了第i个图块行以CTB为单元的高度。

loop_filter_across_tiles_enabled_flag等于1指定了环路滤波操作可以在参考PPS的图片中跨图块边界执行。loop_filter_across_tiles_enabled_flag等于0指定了环路滤波操作不在参考PPS的图片中跨图块边界执行。环路滤波操作包括去块滤波器和样本自适应偏移滤波器操作。当不存在时,推断loop_filter_across_tiles_enabled_flag的值等于1。

预期VVC不会像HEVC中那样使用传统的片。作为替代,由于视频服务(包括VR流传输)对空间随机访问的需求增加,因此预期图块在VVC中发挥更大的作用。

在上次的JVET会议上,同意图块组的概念被包括在当前的VVC草案中。图块组用于将多个图块进行分组,以减少每个图块的开销。

HEVC中的均匀图块划分

HEVC图块划分要求所有图块边界与CTU网格对齐。这意味着所有图块均由完整的CTU组成,并且图块中唯一允许的不完整CTU是位于图片右边缘或底边缘的CTU。在HEVC中,语法元素uniform_spacing_flag等于1指定了图块列边界以及(同样的)图块行边界在图片中均匀地分布。然而,这种均匀性受到CTU粒度的限制。在HEVC中,针对从0到num_tile_columns_minus1(含端值)的i,列表colWidth[i]指定了第i个图块列以编码树块(CTB)为单位的宽度,并由以下等式(A)导出:

类似的等式(B)用于确定图块行的高度(rowHeight[i]):

灵活的图块分割

在JVET-K0155、随后是JVET-L0359中引入的灵活的图块分割提供了将图片分割成划分图块的功能,其中每个图块的宽度或高度是比CTU大小更细的单元大小的倍数。灵活的图块分割允许在每个图块的右边缘和底边缘(而不是仅在图片的右边缘和底边缘)使用不完整的CTU。图2A至图2B提供了使用如在JVET-L0359中的灵活的图块分割进行2x2图块片段的示例,其中图块单元大小是CTU大小的四分之一。

在图2A至图2B中,图块由粗黑线示出,而CTU由细黑线示出。图2A示出了图片中具有20个CTU的HEVC方法。图2B示出了JVET-L0359中提出的方法,其中图片中有24个CTU,并且图块单元大小等于CTU大小的四分之一,由灰色虚线示出。

灵活的图块分割对于诸如负载平衡和360°视频等应用可能是有用的,这些应用的面部大小不需要是CTU大小的倍数。

下面列出了来自JVET-L0359的与本公开相关的语法和语义,其中斜体部分是在L0359中提出的增加文本。

tile_unit_size_idc指定了图块单元块以亮度样本计的大小。变量TileUnitSizeY、PicWidthInTileUnitsY和PicHeightInTileUnitsY以如下方式导出;

num_tile_columns_minus1加1指定了以图块单元块为单位划分图片的图块列的数量。num_tile_columns_minus1的范围应在0到PicWidthInTileUnitsY-1(含端值)之间。当不存在时,推断num_tile_columns_minus1的值等于0。

num_tile_rows_minus1加1指定了以图块单元块为单位划分图片的图块行的数量。num_tile_rows_minus1的范围应在0到PicHeightInTileUnitsY-1(含端值)之间。当不存在时,推断num_tile_rows_minus1的值等于0。

变量NumTilesInPic以如下方式导出:

针对从0到num_tile_columns_minus1(含端值)的i,列表colWidth[i]指定了第i个图块列以图块单元块为单位的宽度,以如下方式导出:

针对从0到num_tile_rows_minus1(含端值)的j,列表rowHeight[j]指定了第j个图块行以图块单元块为单位的高度,以如下方式导出:

针对从0到num_tile_columns_minus1+1(含端值)的i,列表TileColX[i]指定了第i个图块列以亮度样本为单位的左上亮度样本的X位置,以如下方式导出:

针对从0到num_tile_rows_minus1+1(含端值)的j,列表TileRowY[j]指定了第j个图块列以亮度样本为单位的左上亮度样本的Y位置,以如下方式导出:

片段组、片段和单元

现在描述片段组、片段和单元。术语片段被用作比图块更通用的术语,因为本公开中的实施例可以应用于不同种类的图片划分方案,而不仅仅是从HEVC和VVC草案已知的图块划分。在当前公开中,图块是片段的一个实施例,但是也可以存在片段的其他实施例。

图3示出了视频流的图片10以及将图片示例性地划分为单元8、片段11和片段组12。图3(a)示出了由64个单元8组成的图片10。图3(b)示出了由16个片段11组成的同一图片10的片段划分结构13。划分结构13由虚线示出。每个片段11由一数量的单元组成。片段可以由整数个完整单元组成,或可以由完整单元和部分单元的组合组成。多个片段形成片段组。图3(c)示出了由8个片段组组成的同一图片10的片段组划分。片段组可以由按光栅扫描顺序的片段组成。备选地,片段组可以由任何一起形成矩形的片段的组组成。备选地,片段组可以由片段的任何子集组成。

图4示出了图片10,其中虚线示出了将图片分成四个片段的划分结构。图4还示出了三个单元16、17、18。如图所示,两个单元16、17属于一个当前片段15,并且一个单元18属于不同的相邻片段14。这些片段相对于其他片段是独立的,这意味着在对单元进行解码时,片段边界的处理类似于图片边界。这影响了解码期间元素的导出过程,例如,帧内预测模式的导出和量化参数值的导出。

帧内模式在当前技术中是公知的,并且被针对仅使用来自当前图片的先前解码的样本的预测进行样本预测的单元使用和以信号传送。通常,当前单元16中的帧内预测模式的导出取决于其他相邻单元17中先前导出的帧内预测模式。由于片段是独立的,当前单元16中的帧内预测模式的导出可以仅取决于属于当前片段15的单元17中先前导出的帧内预测模式,并且可以不取决于属于不同片段14的任何单元18中的任何帧内预测模式。

这意味着图4中的划分结构使得不同片段14中的单元18中的帧内预测模式不可用于当前片段15中的单元16的帧内预测模式的导出。注意,不同片段中的一些单元18中的模式很可能已被用于导出当前片段15中的单元16中的帧内预测模式(倘若这些单元属于同一片段)。替代地,针对当前片段15中的单元16,片段边界对帧内模式导出的作用可能与图片边界相同。

在当前公开的上下文中,片段可以是图块或片,并且片段组可以是图块组。在当前公开中,术语“图块”和“片段”可以互换使用。在一些实施例中,单元可以等同于CTU。

发明内容

根据HEVC等式(A)和(B),图块列宽度(和行高度)通过以

表2

表2示出了使用具有uniform_spacing_flag等于1以及PicWidthInCtbsY和num_tile_columns_minus1的给定值的HEVC图块划分计算的图块列宽度。colWidth[i]的值中的纹波是可见的。

由于需要探究预测最终图块大小值的输入值和代码的细节,因此最终图块大小中的这种不一致是不期望的。纹波问题可以在水平方向和垂直方向二者中发生。这使得在不检查细节的情况下确定图块网格中的特定图块的正确水平和垂直大小更加困难。

另一个问题是,在HEVC中用于图块的均匀间隔的当前实现中,如果图片中的图块的一些行或列被移除,则图片的剩余部分内的图块边界可能根据新的纹波样式移动。这将需要在图块提取过程中重新计算图块大小和地址。在图5中示出示例,表500示出了如果在uniform_spacing_flag等于1时从原始图片提取了一些图块,则在HEVC均匀图块间隔中图块列边界、因而图块大小可能如何改变。与原始图片中的图块边界相比,在移除一些图块列的情况下发生改变的图块边界以粗线示出。

图5中的表500示出了使用HEVC均匀图块间隔的图块边界。内部图块边界在原始图片与在从原始图片中移除一些图块之后的图片之间发生改变。原始图片的参数被如下设置:uniform_spacing_flag=1,PicWidthInCtbsY=10,num_tile_columns_minus1=3,num_tile_rows_minus1=1。

JVET-L0359提出了灵活的图块分割,其通过提供在每个图块的右边缘和底边缘(而不仅仅是图片的右边缘和底边缘)使用不完整CTU的可能性来允许更精细的图块单元大小粒度。图2提供了使用如JVET-L0359中的灵活的图块分割的2x2图块分段的示例,其中图块单元大小是CTU大小的四分之一,且uniform_spacing_flag等于1。

如JVET-L0359中建议的,如果uniform_spacing_flag等于1,则使用以下等式来确定图块列的宽度:

类似的等式用于确定图块行的高度(rowHeight[i])。

以上实现示出了纹波问题针对JVET-L0359提案也存在。所引入的用于以比CTU粒度精细的粒度定义图块大小的可能性引入了不一致的图块大小的另一伪像,如这里描述的。使用L0359中提出的算法,当图块单元大小改变为例如一半或四分之一时,对于一些图片宽度和图块单元大小值,图块划分不保持一致。原因在于,L0359中所提出的用于均匀图块分割的等式允许不同的图块单元大小,而并没有使图块网格中稍大或稍小的图块的布置规则化。下面的表3示出了图片大小固定并且图块单元大小改变的情况的一些示例,例如使用L0359中提出的灵活的图块分割将图块单元大小分为一半或四分之一。由于图块单元大小改变,最终图块列宽度发生反转,有时较大的图块宽度位于图片的左侧,而有时较大的图块宽度位于图片的右侧。不希望这种不可预测性。

表3

表3示出了当uniform_spacing_flag被设置为1时,使用如在L0359中的灵活的图块分割计算的图块列宽度。

可以得出这样的结论,用于组织舍入作用对图块大小的不一致的规则将使确定最终图块大小变得容易,而无需对代码和输入值进行详细探究。用于规范图块大小纹波的系统方法还将为原始图片和来自原始图片的图块子集提供一致的图块划分结果。

本文提出了实施例,其在根据划分的有限粒度无法精确地确定片段大小时,以优选顺序来规范片段大小上的纹波。在提出的实施例中,根据舍入作用具有稍小或稍大的大小的图块具有优选的布置。在一个实施例中,图块宽度在从左到右扫描方向上将仅保持不变或减小。本文公开的实施例可以应用于图块网格中的图块列宽度和/或图块行高度,或者应用于各个图块的宽度和高度。在一个实施例中,具有稍大大小的图块(由于给定的粒度和舍入作用)位于图片的左上部分,且具有稍小大小的图块位于图片的右下部分。

在一个方面,提供了一种用于从比特流解码图片的方法。所述图片包括多个单元,并且所述图片通过划分结构被划分为一数量的空间片段,空间片段的数量大于或等于2。在一个实施例中,所述方法包括:解码比特流中的一个或多个码字。所述方法还包括:基于所述一个或多个码字来确定所述划分结构是均匀的。所述方法还包括:基于所述一个或多个码字来确定空间片段的数量。所述方法还包括:确定片段单元大小。所述方法还包括:从所述一个或多个码字中导出图片中空间片段的大小和/或位置。导出图片中空间片段的大小和/或位置的步骤包括:基于第一维度或方向上的空间片段的数量的第一循环。此外,在所述第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。

在一个方面,提供了一种用于将包括一数量的单元的图片编码到比特流中的方法。所述图片通过均匀划分结构被划分为一数量的空间片段,空间片段的数量大于或等于2。所述方法包括:通过将一个或多个码字编码到比特流中来对划分结构是均匀的信息进行编码。所述方法还包括:通过将一个或多个码字编码到比特流中来对空间片段的数量进行编码。所述方法还包括:确定片段单元大小。所述方法还包括:导出所述图片中空间片段的大小和/或位置并编码到比特流中。导出图片中空间片段的大小和/或位置的步骤包括:基于第一维度或方向上的空间片段的数量的第一循环。此外,在所述第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。

在一个方面,提供了一种用于对图片进行编码的方法,其中,所述方法包括:定义将图片分为一数量的均匀空间片段的划分结构,其中,每个空间片段包括至少一个单元,并且其中,所述片段大小的导出是在基于第一维度或方向上的空间片段的数量的第一循环和在基于第二维度或方向上的空间片段的数量的第二循环中执行的,其中,在所述第一循环内计算要分段的所述第一维度或方向上的剩余片段单元的数量,并且其中,在所述第二循环内计算要分段的所述第二维度或方向上的剩余片段单元的数量。所述方法还包括:根据所述划分结构对多个空间片段进行编码,以生成多个编码空间片段,其中,每个编码空间片段对应于所述划分结构的空间片段之一,并且每个编码空间片段是独立的,使得针对第一空间片段的第一单元的任何帧内预测模式的导出取决于针对所述第一空间片段的第二单元的导出的帧内预测模式,而与针对所述划分结构的其他空间片段的单元的任何帧内预测模式无关。所述方法还包括:生成比特流,所述比特流包括多个编码空间片段和指示用于将所述图片分为所述多个空间片段的均匀划分结构的信息。

在一个方面,提供了一种包括指令的计算机程序,所述指令在由处理电路执行时使所述处理电路执行本文公开的方法中的任何一个。在一方面,还提供了一种包含计算机程序的载体。所述载体是电信号、光信号、无线电信号和计算机可读存储介质中的一种。

在另一方面,提供了一种用于从比特流解码图片的解码装置。所述图片包括多个单元,并且所述图片通过划分结构被划分为一数量的空间片段,空间片段的数量大于或等于2。所述解码装置被配置为:对比特流中的一个或多个码字进行解码。所述解码装置还被配置为:基于所述一个或多个码字来确定所述划分结构是均匀的。所述解码装置还被配置为:基于所述一个或多个码字来确定空间片段的数量。所述解码装置还被配置为:确定片段单元大小。所述解码装置还被配置为:从一个或多个码字中导出图片中空间片段的大小和/或位置。导出图片中空间片段的大小和/或位置包括:基于第一维度或方向上的空间片段的数量的第一循环。此外,所述解码装置被配置为:在所述第一循环内计算要分段的所述第一维度或方向上的剩余片段单元的数量。在一些实施例中,所述解码装置包括计算机可读存储介质和耦接到计算机可读存储介质的处理电路,其中,所述处理电路被配置为使所述解码装置执行本文公开的解码方法中的任何一个。

在另一方面,提供了一种用于将图片编码到比特流中的编码装置。所述图片包括多个单元,并且所述图片通过均匀划分结构被划分为一数量的空间片段,空间片段的数量大于或等于2。所述编码装置被配置为:通过将一个或多个码字编码到比特流中来对划分结构是均匀的信息进行编码。所述编码装置还被配置为:通过将一个或多个码字编码到比特流中来对空间片段的数量进行编码。所述编码装置还被配置为:确定片段单元大小。所述编码装置还被配置为:导出所述图片中空间片段的大小和/或位置并编码到比特流中。导出图片中空间片段的大小和/或位置包括:基于第一维度或方向上的空间片段的数量的第一循环。此外,所述编码装置还被配置为:在所述第一循环内计算要分段的所述第一维度或方向上的剩余片段单元的数量。

在另一方面,提供了一种用于对图片进行编码的编码装置,其中所述编码装置被配置为:定义将图片分为一数量的均匀空间片段的划分结构,其中,每个空间片段包括至少一个单元,并且其中,所述片段大小的导出是在基于第一维度或方向上的空间片段的数量的第一循环和在基于第二维度或方向上的空间片段的数量的第二循环中执行的,其中,在所述第一循环内计算要分段的所述第一维度或方向上的剩余片段单元的数量,并且其中,在所述第二循环内计算要分段的所述第二维度或方向上的剩余片段单元的数量。所述编码装置还被配置为:根据所述划分结构对多个空间片段进行编码,以生成多个编码空间片段,其中,每个编码空间片段对应于所述划分结构的空间片段之一,并且每个编码空间片段是独立的,使得针对第一空间片段的第一单元的任何帧内预测模式的导出取决于针对所述第一空间片段的第二单元的导出的帧内预测模式,而与针对所述划分结构的其他空间片段的单元的任何帧内预测模式无关。所述编码装置还被配置为:生成比特流,所述比特流包括多个编码空间片段和指示用于将所述图片分为所述多个空间片段的均匀划分结构的信息。

在另一方面,提供了一种用于对图片进行编码的编码装置,其中,所述编码装置包括计算机可读存储介质和耦接到所述计算机可读存储介质的处理电路。所述处理电路被配置为使所述编码装置执行本文公开的编码方法中的任何一个。

本公开的实施例保持当前图块的宽度与先前的图块无关,而仅与将被划分为剩余数量的图块的(列或行中的)单元的剩余数量有关。结果,如果图块被提取,则用于图块的均匀间隔的实施例针对所提取的图块和剩余的图块保持图块划分不变。这将消除在图片分割或图块提取的情况下重新计算图块大小的需要。在HEVC中用于图块的均匀间隔的当前实现中,如果图块在图片中的一些行或列被移除,则纹波样式可能改变,并且图片的剩余部分内的图块边界可能根据新的纹波样式移动。

一致性是实施例的另一个优点。用于图块的均匀间隔的实施例组织图块大小(例如图块列宽度和图块行高度),并提供用于图块大小的最终布置的规则,而无需对输入参数或代码进行任何详细的探究。例如,在一个实施例中,当以图块单元计的图片宽度/高度不能被图块列/行的数量整除时,则在图片的左/上部分找到所有舍入为更大大小的图块。在图块单元大小改变的情况下,实施例还以均匀图块间隔调节图块大小的纹波。

与HEVC和JVET-L0359中提出的灵活的图块分割相比,所提出的方法还降低了复杂度。所提出的方法没有乘法,并且每次迭代只有1次除法来确定图块列的宽度和图块行的高度,而HEVC方法每次迭代使用2次乘法和2次除法。

附图说明

本文中所包含并形成说明书一部分的附图示出了各种实施例。

图1示出了根据一个实施例的图块划分的示例。

图2A示出了使用HEVC图块划分的图块分段。

图2B示出了使用灵活的图块分割的图块分段。

图3示出了视频流和示例性划分的图片。

图4示出了根据一些实施例的图片。

图5示出了根据一些实施例的表。

图6示出了根据一些实施例的表。

图7是示出了根据实施例的过程的流程图。

图8是示出了根据实施例的过程的流程图。

图9是示出了根据一个实施例的解码器的功能单元的图。

图10是示出了根据一个实施例的编码器的功能单元的图。

图11是根据一些实施例的装置的框图。

图12是示出了根据实施例的过程的流程图。

具体实施方式

已经使用以下术语来描述实施例:

算术运算符“/”用于整数除法,结果向零截断。例如,7/4和-7/-4被截断为1,而-7/4和7/-4被截断为-1。

算术运算符“÷”用于数学等式中的除法,其中不要求截断或舍入。

Ceil(x)给出大于或等于x的最小整数。

Floor(x)给出小于或等于x的最大整数。

术语“图块列宽度”和“图块宽度”可以互换使用,这意味着当在图块网格中计算图块列宽度或者单独计算图块宽度时(例如,如果不存在图块网格)可以应用实施例。

术语“图块行高度”和“图块高度”可以互换使用,这意味着当在图块网格中计算图块行高度或者单独计算图块高度时(例如,如果不存在图块网格)可以应用该实施例。

用于定义针对uniform_spacing_flag=1的图块的宽度(以及等同地,高度)的实施例具有以下四个元素:

(1)在定义每个图块宽度的循环中,图块的宽度是使用可用的剩余单元大小(其表示行中尚未分配给图块的单元大小的数量)来定义的。

(2)然后将剩余单元大小的数量除以行中剩余图块的数量。

(3)根据给定的图块宽度排序的规则,将所获得的图块大小向更大或更小的整数(Ceil()或Floor()函数)舍入。

(4)可选元素,用于在定义每个图块的宽度的循环的每次迭代中,重新计算剩余单元大小(例如CTU)的数量。

相同的元素适用于定义图块的高度。

本文公开的实施例描述了一种用于从比特流解码图片10的解码器方法,该方法包括:从比特流中导出图片中的片段(例如,图片中的所有片段)的大小和/或位置,其中,图片10包括一数量的单元8,并且划分结构13将图片划分为至少两个片段11,并且解码器通过对比特流中的一个或多个码字进行解码来确定空间分段是均匀的,并且解码器通过对比特流中的一个或多个码字进行解码来确定空间片段的数量,并且解码器确定图块单元大小,并且将片段划分为均匀的宽度或高度遵循与空间片段的数量无关的固定纹波样式,并且片段大小的导出是在基于片段的数量的循环中完成的,其中在该循环内,计算要分段的剩余图块单元的数量。还可以在该循环内计算剩余片段的数量。

在一个示例中,实施例将以下HEVC行:

替换为以下行:

与HEVC和JVET-L0359中提出的灵活的图块分割相比,所提出的方法还降低了复杂度。所提出的方法没有乘法,并且每次迭代只有1次除法来确定图块列的宽度和图块行的高度,而HEVC方法每次迭代使用2次乘法和2次除法。

实施例1.单调纹波

在实施例中,在预定义的扫描方向上,片段在行中的宽度或片段在列中的高度从不按照升序排列或从不按照降序排列。片段可以是图片中的图块,因此图块大小在扫描方向上是单调的(monotonic)(从不递增或从不递减)。例如,对于图块宽度在从左到右扫描方向上从不递增意味着,图块的宽度从不比同一行中空间上位于第一图块的左侧的另一图块的宽度大。

在第一实施例中,针对HEVC之上从不递增的图块列宽度(从左到右扫描方向)和图块行高度(从上到下扫描方向),以下HEVC功能:

被替换为以下功能:

得到的colWidth和rowHeight列表中的值以亮度编码树块为单位。例如,如果CTU大小等于128x128,则这些值以128个亮度样本为单位,使得值2表示256个亮度样本。

然后,解码器使用colWidth和rowHeight列表来确定图片中块的扫描顺序。在对块数据进行解码时,块的空间位置基于colWidth和rowHeight列表中的值。解码器可以使用colWidth和rowHeight中的值构造从图块扫描地址到光栅扫描地址的转换列表,反之亦然。解码器然后可以在解码期间使用转换列表来确定块的空间位置。在HEVC中,使用转换列表,并将其称为CtbAddrRsToTs和CtbAddrTsToRs。

图6示出了表600,表600将用于HEVC的图块大小分配和第一实施例的以上示例性实现进行了比较。如表600所示,在一个实施例中,当从图片的左侧或右侧或两侧移除图块列时,图块边界保持与原始图片相同。在所有情况下,在用于确定图块列宽度的图块上的循环的每次迭代中,使用Ceil()函数并重新计算剩余图块单元的数量,控制舍入作用,以将稍宽的图块放置在图片的左侧。

表600示出了在使用HEVC均匀图块间隔从原始图片中移除一些图块列后内部图块边界如何改变,而内部图块边界保持不变。原始图片的参数被如下设置:uniform_spacing_flag=1,PicWidthInCtbsY=10,num_tile_columns_minus1=3,num_tile_rows_minus1=1。

以下是在JVET-L0359中提出的等式之上构建的第一实施例的另一示例,其支持比CTU大小小的图块大小粒度。在JVET-L0359之上提出了以下等式改变:

并且等同地,对于图块行高度,提出以下改变:

得到的colWidth和rowHeight列表中的值以亮度图块单元为单位。例如,如果图块大小等于32x32,则这些值以32个亮度样本为单位,使得值2意味着64个亮度样本。

表4针对不同图片宽度值,比较了JVET-L0359和实施例之间的图块宽度的结果。JVET-L0359的结果示出在图块单元大小改变时图块列的宽度(colWidth[i])中的不一致,而实施例提供了在图块单元大小改变时一致的图块列的宽度(colWidth[i]),因为它始终将稍大的图块优先放置在图片的左侧。

表4

表4示出了当uniform_spacing_flag=1、num_tile_columns_minus1=1时使用如JVET-L0359中的灵活的图块分割与第一实施例相比计算的图块列宽度。

在第一实施例中,解码器可以执行以下步骤的全部或子集:

1.根据比特流中的一个或多个语法元素解码一个或多个图片被划分为多于一个片段的信息。该语法优选位于图片参数集中。该语法可以指定:指示片段行的数量的数字R和指示片段列的数量的数字C。

2.根据比特流中的一个或多个语法元素来解码空间分段是均匀的信息。该语法优选位于图片参数集中。该语法可以包括1比特标志,该1比特标志指定空间分段是否是均匀的。

3.根据一个或多个语法元素或者通过使用预定义的片段单元大小来确定片段单元大小S。如果使用预定义的单元大小,它可以等于CTU的大小或CTU在一个维度上的大小。例如,如果CTU大小等于128x128,则片段单元大小S可以等于128(或128x128)。

4.计算以片段单元的数量计的图片的大小。可以针对图片的高度和宽度分开进行计算,使得将水平大小(HS)设置为等于以亮度样本计的图片宽度除以片段单元大小S。垂直大小(VS)可以被设置为等于以亮度样本计的图片高度除以片段单元大小。

5.根据图片中的片段的数量和片段单元大小S导出片段(例如所有片段)的宽度和高度。该导出是在基于片段的数量的循环中完成的,其中在该循环的每次迭代中,更新尚待分段的片段的数量和以片段单元的数量计的尚待分段的图片的大小。

该导出可以在两个单独的循环中完成:

a.通过以下子步骤,根据以图块单元数量计的图片宽度和片段列的数量C,导出片段列宽度:

i.设置尚待分段的图片宽度(A)等于值HS

ii设置尚待分段的片段列的数量(B)等于值C

iii.在循环中导出列宽度,在该循环中,每次迭代导出一个宽度值,并且在每次迭代中更新尚待分段的分段列的数量(B)和尚待分段的图片宽度(A)二者。迭代可以执行C次。

1.导出的列宽度W可以被设置为等于Ceil(A÷B)

2.然后可以将变量A更新为A-W,并可以将变量B更新为B一1

b.通过以下子步骤,根据以图块单元数量计的图片高度和片段行的数量R来导出片段行高度:

i.将尚待分段的图片高度(A)设置为等于值VS

ii将尚待分段的分段行的数量(B)设置为等于值R

iii.在循环中导出行高度,在该循环中,每次迭代导出一个高度值,并且在每次迭代中更新尚待分段的片段行的数量(B)和尚待分段的图片高度(A)二者。迭代可以执行R次。

1.导出的行高度H可以被设置为等于Ceil(A÷B)

2.然后变量A可以被更新为A-H,并且变量B可以被更新为B-1

6.使用导出的片段宽度和导出的片段高度来导出当前块的空间位置。

7.使用导出的空间位置对当前块进行解码。将当前块的解码样本值存储在存储器中与导出的空间位置相对应的存储位置处。

在该实施例的变型中,可以仅在水平方向,或仅在垂直方向、或在这两个方向上将函数Ceil()替换为函数Floor()。

在该实施例的变型中,标志可以在两个函数Ceil()和Floor()之间进行选择。在一些实施例中,针对水平和垂直方向可以存在两个独立的标志。

实施例2.指定顺序

在第二实施例中,片段在行中的宽度或者片段在列中的高度遵循指定顺序。可以使用比特序列形式的模板样式,在比特流中以信号传送该指定顺序。片段可以是图片中的图块,并且因此在该实施例中,指定图块大小上的优选纹波的形状。例如,所有稍宽的图块都位于图片的左侧。这可以通过以比特序列形式表达的模板样式来完成,该模板样式在图块上的循环的每次迭代中指定Ceil()或Floor()函数来指定图块宽度(或高度)。在模板比特序列中,函数Ceil()可以由1表示,且函数Floor()可以由0表示。作为示例,模板110将在前两个图块中指定Ceil()函数,并在循环的第三次迭代中指定函数Floor(),以指定图块大小。如果图块的数量大于模板比特序列的长度,则可以周期性地重复该样式。

实施例3.二元图块分割

在第三实施例中,将具有片段宽度或高度的显式排序的二元片段分割应用于图片的宽度或高度。片段可以是图片中的图块,因此二元划分用于将图片划分为具有均匀图块大小的2n个图块。(如第二实施例中的)预定义的纹波样式可以与该实施例结合使用。二元划分可以分层执行,直到算法达到指定数量的片段,或者仅达到定义数量的步骤,其余的片段划分由其他方法执行。作为示例,在第一步骤中,总大小被除以2,其中指定将较小或较大的片段指派到左侧或右侧。在随后的每个步骤中,使用下一二元划分级别和针对可能较小或较大片段的位置的指定规则,将左片段和右片段中的每一个分为两部分。

实施例4.纹波的默认排序

在第四实施例中,片段在图片的行中的宽度或片段在图片的列中的高度遵循针对片段的宽度或高度的指定默认顺序。片段可以是图片中的图块,因此定义了默认优选排序以管理片段大小中的纹波。可以在比特流中以信号传送默认纹波样式。在该实施例的变型中,可以重写默认样式。在该实施例的另一个变型中,标志可以指定是否正在使用默认排序或另一指定排序。

图7是示出了根据实施例的过程700的流程图。过程700是一种用于从比特流中解码包括一数量的单元8的图片10的方法,该图片通过划分结构13被划分为至少两个空间片段11。过程700可以开始于步骤710。步骤710包括解码比特流中的一个或多个码字。步骤720包括基于一个或多个码字确定划分结构是均匀的。步骤730包括基于一个或多个码字确定空间片段的数量。步骤740包括确定片段单元大小。步骤750包括从一个或多个码字中导出图片中空间片段的大小和/或位置。在一个实施例中,导出图片中空间片段的大小和/或位置包括:基于第一维度或方向上的空间片段的数量的第一循环,以及在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。在一些实施例中,在第一循环内计算第一维度上的剩余片段的数量。

在一些实施例中,片段大小和/或位置的导出包括:基于不同于第一维度或方向的第二维度或方向上的空间片段的数量的第二循环,并且在第二循环内计算要分段的第二维度或方向上的剩余片段单元的数量。在一些实施例中,在第二循环内计算第二维度或方向上的剩余片段的数量。

在一些实施例中,第一维度或方向是水平维度或方向,以及第二维度或方向是垂直维度或方向。

在一些实施例中,片段在行中的宽度或片段在列中的高度遵循指定顺序。

在一些实施例中,片段在行中的宽度或片段在列中的高度从不按照升序排列或从不按照降序排列。

在一些实施例中,将具有片段宽度或高度的显式排序的二元片段分割应用于图片的宽度或高度。

在一些实施例中,片段在图片的行中的宽度或片段在图片的列中的高度遵循针对片段的宽度或高度的指定默认顺序。

在一些实施例中,片段单元大小等于编码树单元(CTU)的大小。

在一些实施例中,片段单元大小小于编码树单元(CTU)的大小。在一些实施例中,片段单元大小大于CTU的大小。在一些实施例中,片段是图块。

在一些实施例中,导出大小包括:

按照以下导出列表Sizes[]:

其中,NumberOfSegmentColumns是片段列的数量,PicWidthInSegmentUnits是以片段单元计的图片的宽度,Round()是Floor()函数或Ceil()函数,以及÷是不截断或舍入的除法。

在一些实施例中,导出大小包括:

按照以下导出列表Sizes[]:

其中,NumberOfSegmentRows是片段行的数量,PicHeightInSegmentUnits是以片段单元计的图片的高度,Round()是Floor()函数或Ceil()函数,并且÷是不截断或舍入的除法。

在一些实施例中,片段11相对于其他片段11是独立的,使得针对当前片段15中的任何单元16的任何帧内预测模式的导出仅取决于属于当前片段15的单元17中的先前导出的帧内预测模式,而不取决于属于不同片段14的任何单元18中的任何帧内预测模式。

在一些实施例中,该方法还包括以下步骤:遵循固定纹波样式将片段划分为均匀的宽度或高度,该固定纹波样式与空间片段的数量无关。

图8是示出了根据实施例的过程800的流程图。过程800是一种用于将包括多个单元8的图片10编码到比特流中的方法,该图片通过均匀划分结构13被划分为至少两个空间片段11。该方法包括:通过将一个或多个码字编码到比特流中来对划分结构13是均匀的信息进行编码(步骤810)。通过将一个或多个码字编码到比特流中来对空间片段的数量进行编码(步骤820);确定片段单元大小(步骤830);以及导出图片中所有空间片段的大小和/或位置并编码到比特流中(步骤840),其中,片段大小的导出包括:基于第一维度或方向上的空间片段的数量的第一循环,并且在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。在一些实施例中,还在第一循环内计算第一维度或方向上的剩余片段的数量。

在一些实施例中,片段大小和/或位置的导出包括:基于不同于第一维度或方向的第二维度或方向上的空间片段的数量的第二循环,并且在第二循环内计算要分段的第二维度或方向上的剩余片段单元的数量。在一些实施例中,还在第二循环内计算第二维度或方向上的剩余片段的数量。

在一些实施例中,第一维度或方向是水平维度或方向,以及第二维度或方向是垂直维度或方向。

图9是示出了根据一些实施例的解码器902的功能单元的图。如图9所示,解码器902包括解码单元904,用于对比特流中的一个或多个码字进行解码;第一确定单元906,用于基于一个或多个码字来确定划分结构是均匀的;第二确定单元908,用于基于一个或多个码字来确定空间片段的数量;第三确定单元910,用于确定片段单元大小;以及导出单元912,用于从一个或多个码字中导出图片中所有空间片段的大小和/或位置,其中,片段大小和/或位置的导出包括:基于第一维度上的空间片段的数量的第一循环和基于第二维度上的空间片段的数量的第二循环,在第一循环内计算要分段的第一维度上的剩余片段单元的数量,并且在第二循环内计算要分段的第二维度上的剩余片段单元的数量和第二维度上的剩余片段的数量。在一些实施例中,还在第一循环内计算第一维度上的剩余片段的数量,并且还在第二循环内计算第二维度上的剩余片段的数量。

图10是示出了根据一些实施例的编码器1002的功能单元的图。如图10所示,编码器1002包括第一编码单元1004,用于通过将一个或多个码字编码到比特流中来对划分结构13是均匀的信息进行编码;第二编码单元1006,用于通过将一个或多个码字编码到比特流中来对空间片段的数量进行编码;确定单元1008,用于确定片段单元大小;以及导出单元1010,用于导出图片中所有空间片段的大小和/或位置并编码到比特流中,其中,片段大小的导出包括:基于第一维度上的空间片段的数量的第一循环和基于第二维度上的空间片段的数量的第二循环,在第一循环内计算要分段的第一维度上的剩余片段单元的数量,并且在第二循环内计算要分段的第二维度上的剩余片段单元的数量。

在一些实施例中,编码器被配置为:定义将图片分为一数量的均匀空间片段的划分结构,其中,每个空间片段包括至少一个单元,并且其中,片段大小的导出是在基于第一维度上的空间片段的数量的第一循环和在基于第二维度上的空间片段的数量的第二循环中执行的,其中,在第一循环内计算要分段的第一维度上的剩余片段单元的数量,并且其中,在第二循环内计算要分段的第二维度上的剩余片段单元的数量;根据所述划分结构对多个空间片段进行编码,以生成多个编码空间片段,其中,每个编码空间片段对应于所述划分结构的空间片段之一,并且每个编码空间片段是独立的,使得针对第一空间片段的第一单元的任何帧内预测模式的导出取决于针对所述第一空间片段的第二单元的导出的帧内预测模式,而与针对所述划分结构的其他空间片段的单元的任何帧内预测模式无关;以及生成比特流,所述比特流包括多个编码空间片段和指示用于将所述图片分为多个空间片段的均匀划分结构的信息。

图11是根据一些实施例的用于实现解码器902和/或编码器1002的装置1100的框图。当装置1100实现解码器902时,装置1100可以被称为“解码装置1100”,并且当装置1100实现编码器1002时,装置1100可以被称为“编码装置1100”。如图11所示,装置1100(也称为“节点”)可以包括:处理电路(PC)1102,其可以包括一个或多个处理器(P)1155(例如,通用微处理器和/或一个或多个其他处理器,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等);网络接口1148,包括发射机(Tx)1145和接收机(Rx)1147,用于使装置1100能够向其他节点发送数据和从其他节点接收数据,该其他节点连接到网络接口1148所连接到的网络1110(例如,互联网协议(IP)网络);以及本地存储单元(也称为“数据存储系统”)1108,其可以包括一个或多个非易失性存储设备和/或一个或多个易失性存储设备。在PC 1102包括可编程处理器的实施例中,可以提供计算机程序产品(CPP)1141。CPP 1141包括计算机可读介质(CRM)1142,该计算机可读介质(CRM)1142存储包括计算机可读指令(CRI)1144在内的计算机程序(CP)1143。CRM 1142可以是非暂时性计算机可读介质,例如,磁介质(例如,硬盘)、光介质、存储器设备(例如,随机存取存储器、闪存)等。在一些实施例中,计算机程序1143的CRI 1144被配置为使得当由PC 1102执行时,CRI使装置1100执行本文描述的步骤(例如,本文中参考流程图描述的步骤)。在其他实施例中,装置1100可被配置为在不需要代码的情况下执行本文描述的步骤。也就是说,例如,PC 1102可以仅由一个或多个ASIC组成。因此,本文描述的实施例的特征可以以硬件和/或软件方式来实现。

各种实施例的概述

A1a.一种用于从比特流解码包括一数量的单元8的图片10的方法700,所述图片通过划分结构13被划分为一数量的空间片段11,空间片段的数量大于或等于2,所述方法包括:解码710比特流中的一个或多个码字;基于一个或多个码字来确定720划分结构是均匀的;基于一个或多个码字来确定730空间片段的数量;确定740片段单元大小;以及从一个或多个码字中导出750图片中空间片段的大小和/或位置,其中,导出图片中空间片段的大小和/或位置包括:基于第一维度或方向上的空间片段的数量的第一循环,并且在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。

A1b.根据实施例A1a所述的方法,其中,基于空间片段的数量的第一循环包括:基于大小等于所述第一维度或方向上的片段大小的空间片段的数量的第一循环。

A2a.根据实施例A1a或A1b所述的方法,其中,导出所述大小和/或位置还包括:基于不同于所述第一维度或方向的第二维度或方向上的空间片段的数量的第二循环,并且在所述第二循环内计算要分段的所述第二维度或方向上的剩余片段单元的数量。

A2b.根据实施例A2a所述的方法,其中,第一维度或方向上的片段大小是行中片段的宽度,并且第二维度或方向上的片段大小是列中片段的高度,或者第一维度或方向上的片段大小是列中片段的高度,并且第二维度或方向上的片段大小是行中片段的宽度。

A2c.根据实施例A2a或A2b所述的方法,其中,基于空间片段的数量的第二循环包括:基于大小等于所述第二维度或方向上的片段大小的空间片段的数量的第二循环。

A3.根据实施例A2a、A2b或A2c所述的方法,其中,第一维度或方向是水平维度或方向并且第二维度或方向是垂直维度或方向,或者第一维度或方向是垂直维度或方向并且第二维度或方向是水平维度或方向。

A4.根据实施例A1a至A3中任一实施例所述的方法,其中,行中的片段的宽度或列中的片段的高度遵循指定的顺序。

A5.根据实施例A1a至A4中任一实施例所述的方法,其中,行中的片段的宽度或列中的片段的高度按照从不升序或从不降序的顺序。

A6.根据实施例A1a至A5中任一实施例所述的方法,其中,将具有片段宽度或高度的显式排序的二元片段分割应用于所述图片的宽度或高度。

A7.根据实施例A1a至A6中任一实施例所述的方法,其中,图片的行中的片段的宽度或列中的片段的高度遵循针对片段的宽度或高度的指定默认顺序。

A8.根据实施例A1a至A7中任一实施例所述的方法,其中,片段单元大小等于编码树单元(CTU)的大小。

A9.根据实施例A1a至A7中任一实施例所述的方法,其中,片段单元大小小于编码树单元(CTU)的大小。

A10.根据实施例A1a至A7中任一实施例所述的方法,其中,片段单元大小大于CTU的大小。

A11.根据实施例A1a至A10中任一实施例所述的方法,其中,片段是图块。

A12.根据实施例A1a至A11中任一实施例所述的方法,其中,导出大小包括:按照以下来导出列表Sizes[]:

A13.根据实施例A1a至A12中任一实施例所述的方法,其中,导出大小包括:按照以下来导出列表Sizes[]:

A14.根据实施例Ala至A13中任一实施例所述的方法,其中,片段11相对于其他片段11是独立的,使得针对当前片段15中的任何单元16的任何帧内预测模式的导出仅取决于属于当前片段15的单元17中的先前导出的帧内预测模式,而不取决于属于不同片段14的任何单元18中的任何帧内预测模式。

A15.根据实施例A1a至A14中任一实施例所述的方法,所述方法还包括:将所述片段划分为均匀宽度或高度遵循与所述空间片段的数量无关的固定纹波样式。

A16.根据实施例A2a至A15中任一实施例所述的方法,其中,在第二循环内计算第二维度或方向上的剩余片段的数量。

A17.根据实施例A1a至A16中任一实施例所述的方法,其中,在第一循环内计算第一维度或方向上的剩余片段的数量。

B1a.一种用于将包括一数量的单元8的图片10编码到比特流中的方法800,所述图片通过均匀划分结构13被划分为一数量的空间片段11,空间片段的数量大于或等于2,所述方法包括:通过将一个或多个码字编码到所述比特流中来对划分结构13是均匀的信息进行编码810;通过将一个或多个码字编码到比特流中来对空间片段的数量进行编码820;确定830片段单元大小;以及导出840图片中空间片段的大小和/或位置并编码到比特流中,其中,导出图片中空间片段的大小和/或位置包括:基于第一维度或方向上的空间片段的数量的第一循环,并且在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。

B1b.根据实施例B1a所述的方法,其中,基于空间片段的数量的第一循环包括:基于大小等于所述第一维度或方向上的片段大小的空间片段的数量的第一循环。

B2a.根据实施例B1a或B1b所述的方法,其中,片段大小和/或位置的导出包括:基于不同于第一维度或方向的第二维度或方向上的空间片段的数量的第二循环,并且在第二循环内计算要分段的第二维度或方向上的剩余片段单元的数量。

B2b.根据实施例B2a所述的方法,其中,第一维度或方向上的片段大小是行中片段的宽度,并且第二维度或方向上的片段大小是列中片段的高度,或者第一维度或方向上的片段大小是列中片段的高度,并且第二维度或方向上的片段大小是行中片段的宽度。

B2c.根据实施例B2a或B2b所述的方法,其中,基于空间片段的数量的第二循环包括:基于大小等于第二维度或方向上的片段大小的空间片段的数量的第二循环。

B3.根据实施例B2a、B2b或B2c所述的方法,其中,第一维度或方向是水平维度或方向并且第二维度或方向是垂直维度或方向,或者第一维度或方向是垂直维度或方向并且第二维度或方向是水平维度或方向。

B4.根据实施例B2a、B2b、B2c或B3所述的方法,其中,在第二循环内计算第二维度或方向上的剩余片段的数量。

B5.根据实施例B1a至B4中任一实施例所述的方法,其中,在第一循环内计算第一维度或方向上的剩余片段的数量。

C1.一种用于对图片10进行编码的方法1200,所述方法包括:定义1210将图片10分为一数量的均匀空间片段的划分结构,其中,每个空间片段包括至少一个单元,并且其中,所述片段大小的导出是在基于第一维度或方向上的空间片段的数量的第一循环和在基于第二维度或方向上的空间片段的数量的第二循环中执行的,其中,在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量,并且其中,在第二循环内计算要分段的第二维度或方向上的剩余片段单元的数量;根据划分结构对多个空间片段进行编码1220,以生成多个编码空间片段,其中,每个编码空间片段对应于所述划分结构的空间片段之一,并且每个编码空间片段是独立的,使得针对第一空间片段的第一单元的任何帧内预测模式的导出取决于针对所述第一空间片段的第二单元的导出的帧内预测模式,而与针对所述划分结构的其他空间片段的单元的任何帧内预测模式无关;以及生成1230比特流,所述比特流包括多个编码空间片段和指示用于将所述图片分为多个空间片段的均匀划分结构的信息。

D1.一种包括指令1144的计算机程序1143,该指令1144在由处理电路1102执行时使处理电路1102执行实施例A1a至C1中任一实施例的方法。

D2.一种包含实施例D1所述的计算机程序在内的载体,其中,所述载体是电信号、光信号、无线电信号、计算机可读存储介质1142之一。

E1.一种用于从比特流解码包括一数量的单元8的图片10的解码装置1100,所述图片通过划分结构13被划分为一数量的空间片段11,空间片段的数量大于或等于2,所述解码装置1100被配置为:解码比特流中的一个或多个码字;基于一个或多个码字来确定划分结构是均匀的;基于一个或多个码字来确定空间片段的数量;确定片段单元大小;以及从一个或多个码字中导出图片中空间片段的大小和/或位置,其中,导出图片中空间片段的大小和/或位置包括:基于第一维度或方向上的空间片段的数量的第一循环,并且所述解码装置被配置为在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。

E2.根据实施例E1所述的解码装置1100,所述解码装置1100还被配置为执行实施例A2至A17中任一实施例的方法。

F1.一种用于对图片10进行解码的解码装置1100,所述解码装置1100包括:计算机可读存储介质1142;以及处理电路1102,耦接到所述计算机可读存储介质,其中,所述处理电路被配置为使所述解码装置1100执行实施例A1a至A17中任一实施例的方法。

G1.一种用于将包括一数量的单元8的图片10编码到比特流中的编码装置1100,所述图片通过均匀划分结构13被划分为一数量的空间片段11,空间片段的数量大于或等于2,所述编码装置1100被配置为:通过将一个或多个码字编码到比特流中来对划分结构13是均匀的信息进行编码;通过将一个或多个码字编码到比特流中来对空间片段的数量进行编码;确定片段单元大小;以及导出图片中空间片段的大小和/或位置并编码到比特流中,其中,导出图片中空间片段的大小和/或位置包括:基于第一维度或方向上的空间片段的数量上的第一循环,并且所述编码装置还被配置为:在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量。

G2.根据实施例G1所述的编码装置1100,所述编码装置1100还被配置为执行实施例B2至B5中任一实施例的方法。

H1.一种用于对图片10进行编码的编码装置1100,所述编码装置1100被配置为:定义将图片分为一数量的均匀空间片段的划分结构,其中,每个空间片段包括至少一个单元,并且其中,所述片段大小的导出是在基于第一维度或方向上的空间片段的数量的第一循环和在基于第二维度或方向上的空间片段的数量的第二循环中执行的,其中,在所述第一循环内计算要分段的所述第一维度或方向上的剩余片段单元的数量,并且其中,在所述第二循环内计算要分段的所述第二维度或方向上的剩余片段单元的数量;根据所述划分结构对多个空间片段进行编码,以生成多个编码空间片段,其中,每个编码空间片段对应于所述划分结构的空间片段之一,并且每个编码空间片段是独立的,使得针对第一空间片段的第一单元的任何帧内预测模式的导出取决于针对所述第一空间片段的第二单元的导出的帧内预测模式,而与针对所述划分结构的其他空间片段的单元的任何帧内预测模式无关;以及生成比特流,所述比特流包括多个编码空间片段和指示用于将所述图片分为多个空间片段的均匀划分结构的信息。

I1.一种用于对图片10进行编码的编码装置1100,所述编码装置1100包括:计算机可读存储介质1142;以及处理电路1102,耦接到所述计算机可读存储介质,其中,所述处理电路被配置为使所述编码装置1100执行实施例B1至B5或C1中任一实施例的方法。

PA1.一种用于从比特流解码包括一数量的单元8的图片10的方法,所述图片通过划分结构13被划分为至少两个空间片段11,所述方法包括:解码比特流中的一个或多个码字;基于一个或多个码字来确定划分结构是均匀的;基于一个或多个码字来确定空间片段的数量;确定片段单元大小;以及从一个或多个码字中导出图片中所有空间片段的大小和/或位置,其中,片段大小和/或位置的导出包括:基于第一维度或方向上的空间片段的数量的第一循环,并且在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量和第一维度或方向上的剩余片段的数量。

PA2.根据实施例PA1所述的方法,其中,片段大小和/或位置的导出包括:基于不同于第一维度或方向的第二维度或方向上的空间片段的数量的第二循环,以及在第二循环内计算要被分段的第二维度或方向上的剩余片段单元的数量和第二维度或方向上的剩余片段的数量。

PA3.根据实施例PA2所述的方法,其中,第一维度或方向是水平维度或方向,并且第二维度或方向是垂直维度或方向。

PA4.根据实施例PA1至PA3中任一实施例所述的方法,其中,行中的片段的宽度或列中的片段的高度遵循指定的顺序。

PA5.根据实施例PA1至PA3中任一实施例所述的方法,其中,行中的片段的宽度或列中的片段的高度按照从不升序或从不降序的顺序。

PA6.根据实施例PA1至PA3中任一实施例所述的方法,其中,将具有片段宽度或高度的显式排序的二元片段分割应用于图片的宽度或高度。

PA7.根据实施例PA1至PA3中任一实施例所述的方法,其中,图片的行中的片段的宽度或列中的片段的高度遵循针对片段的宽度或高度的指定默认顺序。

PA8.根据实施例PA1至PA7中任一实施例所述的方法,其中,片段单元大小等于编码树单元(CTU)的大小。

PA9.根据实施例PA1至PA8中任一实施例所述的方法,其中,片段单元大小小于编码树单元(CTU)的大小。

PA10.根据实施例PA1至PA8中任一实施例所述的方法,其中,片段单元大小大于CTU的大小。

PA11.根据实施例PA1至PA10中任一实施例所述的方法,其中,任何片段是图块。

PA12.根据实施例PA1至PA11中任一实施例所述的方法,其中,导出大小包括:按照以下来导出列表Sizes[]:

PA13.根据实施例PA1至PA12中任一实施例所述的方法,其中,导出大小包括:按照以下来导出列表Sizes[]:

PA14.根据实施例PA1至PA13中任一实施例所述的方法,其中,片段11相对于其他片段11是独立的,使得针对当前片段15中的任何单元16的任何帧内预测模式的导出仅取决于属于当前片段15的单元17中的先前导出的帧内预测模式,而不取决于属于不同片段14的任何单元18中的任何帧内预测模式。

PA15.根据实施例PA1至PA14中任一实施例所述的方法,所述方法还包括:将所述片段划分为均匀宽度或高度遵循与所述空间片段的数量无关的固定纹波样式。

PB1.一种用于将包括一数量的单元8的图片10编码到比特流中的方法,所述图片通过均匀划分结构13被划分为至少两个空间片段11,所述方法包括:通过将一个或多个码字编码到比特流中来对划分结构13是均匀的信息进行编码;通过将一个或多个码字编码到比特流中来对空间片段的数量进行编码;确定片段单元大小;以及导出图片中所有空间片段的大小和/或位置并编码到比特流中,其中,片段大小的导出包括:基于第一维度或方向上的空间片段的数量的第一循环,并且在第一循环内计算要分段的第一维度或方向上的剩余片段单元的数量和第一维度或方向上的剩余片段的数量。

PB2.根据实施例PB1所述的方法,其中,片段大小和/或位置的导出包括:基于不同于第一维度或方向的第二维度或方向上的空间片段的数量的第二循环,以及在第二循环内计算要被分段的第二维度或方向上的剩余片段单元的数量和第二维度或方向上的剩余片段的数量。

PB3.根据实施例PB2所述的方法,其中,第一维度或方向是水平维度或方向,并且第二维度或方向是垂直维度或方向。

PCI.一种编码器电路,被配置为:定义将图片分为一数量的均匀空间片段的划分结构,其中,每个空间片段包括至少一个单元,并且其中,片段大小的导出是在基于第一维度上的空间片段的数量上的第一循环和在基于第二维度上的空间片段的数量上的第二循环中执行的,其中,在第一循环内计算要分段的第一维度上的剩余片段单元的数量和第一维度上的剩余片段的数量,并且其中,在第二循环内计算要分段的第二维度上的剩余片段单元的数量和第二维度上的剩余片段的数量;根据所述划分结构对多个空间片段进行编码,以生成多个编码空间片段,其中,每个编码空间片段对应于所述划分结构的空间片段之一,并且每个编码空间片段是独立的,使得针对第一空间片段的第一单元的任何帧内预测模式的导出取决于针对所述第一空间片段的第二单元的导出的帧内预测模式,而与针对所述划分结构的其他空间片段的单元的任何帧内预测模式无关;以及生成比特流,所述比特流包括多个编码空间片段和指示用于将所述图片分为多个空间片段的均匀划分结构的信息。

尽管本文描述了各种实施例(包括附录,如果有的话),但是应理解,它们仅是作为示例而非限制的方式提出。因此,本公开的宽度和范围不应受到上述示例性实施例中任意一个的限制。此外,上述要素以其所有可能变型进行的任意组合都包含在本公开中,除非另有指示或上下文明确冲突。

附加地,尽管上文描述并在附图中示出的过程被示为一系列步骤,但其仅用于说明目的。因此,可以想到可增加一些步骤、可省略一些步骤,可重排步骤顺序,以及可并行执行一些步骤。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号