使用画面划分信息对视频进行编码和解码的方法和设备与流程

文档序号:16365117发布日期:2018-12-22 08:23阅读:257来源:国知局
使用画面划分信息对视频进行编码和解码的方法和设备与流程

以下实施例总体上涉及一种视频解码方法和设备以及视频编码方法和设备,更具体地讲,涉及一种使用画面划分信息来对视频执行编码和解码的方法和设备。

背景技术

随着信息与通信行业的持续发展,具有高清(hd)分辨率的广播服务已经在全世界普及。通过这种普及,大量用户已经习惯了高分辨率和高清晰度图像和/或视频。

为了满足用户对高清晰度的需求,大量机构加速了对下一代成像装置的开发。用户除了对高清tv(hdtv)和全高清(fhd)tv的兴趣已增加之外,对超高清(uhd)tv的兴趣也已增加,其中,超高清(uhd)tv的分辨率是全高清(fud)tv的分辨率的四倍以上。随着这种兴趣的增加,需要对于具有更高分辨率和更高清晰度的图像的图像编码/解码技术。

图像编码/解码设备和方法可使用帧间预测技术、帧内预测技术、熵编码技术等,以便对高分辨率和高清晰度图像执行编码/解码。帧间预测技术可以是用于使用时间上在前的画面和/或时间上在后的画面对当前画面中包括的像素的值进行预测的技术。帧内预测技术可以是用于使用关于在当前画面中的像素的信息对当前画面中包括的像素的值进行预测的技术。熵编码技术可以是用于将短码分配给更频繁出现的符号并且将长码分配给很少出现的符号的技术。

在图像编码和解码过程中,预测可表示产生与原始信号类似的预测信号。可将预测主要分类为:参考空间上重建的图像的预测、参考时间上重建的图像的预测、以及参考其它符号的预测。换句话说,时间参考可表示在时间上重建的图像被参考,空间参考可表示在空间上重建的图像被参考。

当前块可以是作为当前将被编码或解码的目标的块。当前块可被称为“目标块”或“目标单元”。在编码过程中,当前块可被称为“编码目标块”或“编码目标单元”。在解码过程中,当前块可被称为“解码目标块”或“解码目标单元”。

帧间预测可以是用于使用时间参考和空间参考对当前块进行预测的技术。帧内预测可以是用于仅使用空间参考对当前块进行预测的技术。

当构成视频的画面被编码时,每个画面可被分区为多个部分,多个部分可被编码。在这种情况下,为了解码器对分区的画面进行解码,可需要关于画面的分区的信息。



技术实现要素:

技术问题

实施例旨在提供一种使用用于利用画面分区信息执行适当的编码和解码的技术来提高编码效率和解码效率的方法和设备。

实施例旨在提供一种使用基于一条画面分区信息确定针对多个画面的画面分区的用于执行编码和解码的技术来提高编码效率和解码效率的方法和设备。

实施例旨在提供一种针对使用两条或更多条不同的画面分区信息编码的比特流,从一条画面分区信息推导出另外的画面分区信息的方法和设备。

实施例旨在提供一种省略针对视频中的多个画面中的至少一些画面的画面分区信息的发送或接收的方法和设备。

解决方案

根据一方面,提供了一种视频编码方法,包括:对多个画面执行编码;产生包括画面分区信息和多个编码画面的数据;其中,所述多个画面中的每个画面是使用与所述画面分区信息相应的至少两种不同的方法之一被分区的。

根据另一方面,提供了一种视频解码方法,包括:控制单元,用于获取画面分区信息;解码单元,用于对多个画面执行解码,其中,所述多个画面中的每个画面是基于所述画面分区信息,使用至少两种不同的方法之一被分区的。

根据另一方面,提供了一种视频解码方法,包括:对画面分区信息进行解码;基于所述画面分区信息对多个画面执行解码,其中,所述多个画面中的每个画面是使用至少两种不同的方法之一被分区的。

所述多个画面中的第一画面可基于所述画面分区信息被分区,

所述多个画面中的第二画面可基于根据所述画面分区信息推导出的另外的画面分区信息被分区。

所述多个画面可使用由所述画面分区信息定义的并且周期性改变的画面分区方法被分区。

所述多个画面可使用由所述画面分区信息定义的并且根据规则改变的画面分区方法被分区。

所述画面分区信息指示相同的画面分区方法将被应用于下述画面:所述多个画面之中的当画面的画面顺序计数值除以第一预定值时获得的余数为第二预定值的画面。

所述画面分区信息可指示所述多个画面中的每个画面将被分区成的并行块的数量。

所述多个画面中的每个画面可被分区为基于所述画面分区信息确定的数量的并行块。

所述多个画面中的每个画面可被分区为基于所述画面分区信息确定的数量的条带。

所述画面分区信息可被包括在画面参数集pps中。

所述pps包括统一分区指示标记,其中,所述统一分区指示标记指示是否使用至少两种不同的方法之一对参考所述pps的画面进行分区。

所述画面分区信息可指示针对处于特定级别的画面的与所述画面相应的画面分区方法。

所述级别可以是时间级别。

所述画面分区信息可包括用于减少从对每个画面进行分区而产生的并行块的数量的减少指示信息。

减少指示信息可被配置为当画面水平长度大于画面垂直长度时调整水平并行块的数量,当画面垂直长度大于画面水平长度时调整垂直并行块的数量。

画面水平长度可以是画面的水平长度,

画面垂直长度可以是画面的垂直长度,

水平并行块的数量可以是在画面的横向上布置的并行块的数量,

垂直并行块的数量可以是在画面的纵向上布置的并行块的数量。

所述画面分区信息可包括用于减少从对处于级别n的画面进行分区而产生的并行块的数量的级别n减少指示信息。

所述画面分区信息可包括用于减少从对每个画面进行分区而产生的条带的数量的减少指示信息。

所述画面分区信息可包括用于减少从对处于级别n的画面进行分区而产生的条带的数量的级别n减少指示信息。

所述至少两种不同的方法可在从对每个画面进行分区而产生的条带的数量方面彼此不同。

有益效果

提供了一种使用用于利用画面分区信息执行适当的编码和解码的技术来提高编码效率和解码效率的方法和设备。

提供了一种使用基于一条画面分区信息确定针对多个画面的画面分区的用于执行编码和解码的技术来提高编码效率和解码效率的方法和设备。

提供了一种针对使用两条或更多条不同的画面分区信息编码的比特流,从一条画面分区信息推导出另外的画面分区信息的方法和设备。

提供了一种省略针对视频中的画面的至少一些画面的画面分区信息的发送或接收的方法和设备。

附图说明

图1是示出被应用了本发明的编码设备的实施例的配置的框图;

图2是示出被应用了本发明的解码设备的实施例的配置的框图;

图3是示意性地示出了当图像被编码和解码时图像的分区结构的示图;

图4是示出编码单元(cu)能够包括的预测单元(pu)的形状的示图;

图5是示出能够被包括在cu中的变换单元(tu)的形状的示图;

图6是用于解释帧内预测过程的实施例的示图;

图7是用于解释帧间预测过程的实施例的示图;

图8示出根据实施例的使用并行块(tile)对画面进行分区;

图9示出应用了gop级别的编码的参考结构;

图10示出根据实施例的在gop中的画面的编码顺序;

图11示出根据实施例的在gop中的画面的并行编码;

图12示出根据实施例的使用条带对画面进行分区;

图13是根据实施例的用于执行视频编码的编码设备的配置图;

图14是根据实施例的用于执行视频编码的编码方法的流程图;

图15是根据实施例的用于执行视频解码的解码设备的配置图;

图16是根据实施例的用于执行视频解码的解码方法的流程图;

图17是根据实施例的实现了编码设备和/或解码设备的电子装置的配置图。

最佳实施方式

将参照示出特定实施例的附图对以下示例性实施例进行详细描述。

在附图中,相似的参考标号被用于在各个方面指定相同或相似的功能。附图中的组件的形状、尺寸等可被夸大以使得描述清楚。

将理解,当组件被称为“连接”或“耦接”到另一组件时,所述组件可直接连接或耦接到所述另一组件,或者存在中间组件。此外,应注意,在示例性实施例中,用于描述组件“包括”特定组件的表述意味着另外的组件可被包括在示例性实施例的实践范围或技术精神中,但是不排除存在所述特定组件以外的组件。

为了方便描述,各个组件被单独地布置。例如,多个组件中的至少两个组件可被集成为单个组件。相反,一个组件可被划分为多个组件。只要不脱离本说明书的本质,多个组件被集成的实施例或一些组件被分离的实施例被包括在本说明书的范围中。

下面将参照附图来详细描述实施例,使得实施例所属技术领域的普通技术人员能够容易地实践实施例。在实施例的以下描述中,被视为使本说明书的要点模糊的公知功能或配置的详细描述将被省略。

在下文中,“图像”可表示构成视频的一部分的单个画面,或者可表示视频本身。例如,“对图像的编码和/或解码”可表示“对视频的编码和/或解码”,并且也可表示“对构成视频的多个图像中的任意一个图像的编码和/或解码”。

在下文中,术语“视频”和“运动画面”可被用于具有相同的含义,并且可彼此互换地使用。

在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用于具有相同的含义,并且可彼此互换地使用。

在以下的实施例中,特定的信息、数据、标志、元素和属性可具有它们各自的值。与所述信息、数据、标志、元素和属性中的每一个相应的值0可指示逻辑假或第一预定义值。换句话说,值“0”(逻辑假)和第一预定义值可彼此互换地使用。与所述信息、数据、标志、元素和属性中的每一个相应的值“1”可指示逻辑真或第二预定义值。换句话说,值“1”(逻辑真)和第二预定义值可彼此互换地使用。

当诸如i或j的变量被用于指示行、列或索引时,值i可以是整数0或大于0的整数,或者可以是整数1或大于1的整数。换句话说,在实施例中,行、列和索引中的每一个可从0开始计数,或者可以从1开始计数。

下面,将描述将在实施例中使用的术语。

单元:“单元”可表示图像编码和解码的单元。术语“单元”和“块”的含义可以彼此相同。此外,术语“单元”和“块”可彼此互换地使用。

–单元(或块)可以是m×n样点矩阵。m和n可分别是正整数。术语“单元”通常可表示二维(2d)样点的阵列。术语“样点”可以是像素或像素值。

–术语“像素”和“样点”可被用于具有相同含义并且可彼此互换地使用。

–在图像的编码和解码过程中,“单元”可以是通过对一个图像进行分区而产生的区域。单个图像可被分区为多个单元。在对图像进行编码和解码时,可根据单元的类型执行针对每个单元预定义的处理。根据功能,单元的类型可被分类为宏单元、编码单元(cu)、预测单元(pu)和变换单元(tu)。单个单元还可被进一步分区为具有比该单元的尺寸更小的尺寸的更下层单元。

–单元分区信息可包括关于单元的深度的信息。深度信息可表示单元被分区的次数和/或程度。

–单个单元可被分层分区为多个更下层单元,同时所述多个更下层单元具有基于树结构的深度信息。换句话说,单元和通过对该单元进行分区而产生的更下层单元可分别对应于节点和该节点的子节点。各个被分区出的更下层单元可具有深度信息。单元的深度信息表示该单元被分区的次数和/或程度,因此,更下层单元的分区信息可包括关于所述更下层单元的尺寸的信息。

–在树结构中,顶部节点可对应于进行分区之前的初始节点。顶部节点可被称为“根节点”。此外,根节点可具有最小深度值。这里,顶部节点的深度可为级别“0”。

–深度为级别“1”的节点可表示在初始单元被分区一次时所产生的单元。深度为级别“2”的节点可表示在初始单元被分区两次时所产生的单元。

–深度为级别“n”的叶节点可表示在初始单元被分区n次时所产生的单元。

–叶节点可以是底部节点,该叶节点不能被进一步分区。叶节点的深度可以是最大级别。例如,针对最大级别的预定义值可以是3。

–变换单元(tu):tu可以是残差信号编码和/或残差信号解码(诸如,变换、逆变换、量化、反量化、变换系数编码和变换系数解码)的基本单元。单个tu可被分区为多个tu,其中,所述多个tu中的每个tu具有更小的尺寸。

–预测单元(pu):pu可以是在预测或补偿的执行中的基本单元。pu可通过进行分区而被分区为多个分区。所述多个分区也可以是在预测或补偿的执行中的基本单元。经由对pu进行分区所产生的分区也可以是预测单元。

–重建的邻近单元:重建的邻近单元可以是在编码目标单元或解码目标单元附近的先前已被编码或解码并重建的单元。重建的邻近单元可以是在空间上与目标单元邻近的单元,也可以是在时间上与目标单元邻近的单元。

–预测单元分区:预测单元分区可表示pu被分区的形状。

–参数集:参数集可对应于关于比特流的结构的头的信息。例如,参数集可包括序列参数集、画面参数集、适配参数集等。

–率失真优化:编码设备可使用率失真优化以便通过利用以下项的组合来提供更高的编码效率:cu的尺寸、预测模式、预测单元的尺寸、运动信息和tu的尺寸。

–率失真优化方案:该方案可计算各个组合的率失真代价以从这些组合中选择最优组合。可使用以下等式1来计算率失真代价。通常,可将使率失真代价最小化的组合选为在率失真优化方法下的最优组合。

[等式1]

d+λ*r

这里,d可表示失真。d可以是在变换块中的原始变换系数和重建的变换系数之间的差值的平方的平均值(均方误差)。

r表示码率,其可使用相关上下文信息来表示比特率。

λ表示拉格朗日乘数。r不仅可包括编码参数信息(诸如预测模式、运动信息和编码块标志),还可包括由于对变换系数进行编码而产生的比特。

编码设备执行诸如帧间预测和/或帧内预测、变换、量化、熵编码、反量化和逆变换的过程,以便计算精确的d和r,但是这些过程会大大增加编码设备的复杂度。

–参考画面:参考画面可以是被用于帧间预测或运动补偿的图像。参考画面可以是包括被目标单元参考以执行帧间预测或运动补偿的参考单元的画面。术语“画面”和“图像”可具有相同的含义。因此,术语“画面”和“图像”可彼此互换地使用。

–参考画面列表:参考画面列表可以是包括被用于帧间预测或运动补偿的参考画面的列表。参考画面列表的类型可以是合并的列表(lc)、列表0(l0)、列表1(l1)等。

–运动矢量(mv):mv可以是用于帧间预测的2d矢量。例如,可以以诸如(mvx,mvy)的形式来表示mv。mvx可指示水平分量,mvy可指示垂直分量。

–mv可表示目标画面与参考画面之间的偏移。

–搜索范围:搜索范围可以是在帧间预测期间执行针对mv的搜索的2d区域。例如,搜索范围的尺寸可以是m×n。m和n可分别是正整数。

图1是示出被应用了本发明的编码设备的实施例的配置的框图。

编码设备100可以是视频编码设备或图像编码设备。视频可包括一个或更多个图像(画面)。编码设备100可随着时间顺序地对视频的一个或更多个图像进行编码。

参照图1,编码设备100包括帧间预测单元110、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵解码单元150、反量化单元160、逆变换单元170、加法器175、滤波单元180和参考画面缓冲器190。

编码设备100可在帧内模式和/或帧间模式下对输入图像执行编码。输入图像可被称为“当前图像”,作为当前将被编码的目标。

此外,编码设备100可通过对输入图像进行编码来产生包括关于编码的信息的比特流,并且可输出产生的比特流。

当帧内模式被使用时,切换器115可切换到帧内模式。当帧间模式被使用时,切换器115可切换到帧间模式。

编码设备100可针对输入图像中的输入块产生预测块。此外,在产生了预测块之后,编码设备100可对输入块与预测块之间的残差进行编码。输入块可被称为“当前块”,作为当前将被编码的目标。

当预测模式是帧内模式时,帧内预测单元120可将在当前块周围的先前被编码的邻近块的像素值用作参考像素。帧内预测单元120可使用所述参考像素对当前块执行空间预测,并且经由空间预测针对当前块产生预测样点。

帧间预测单元110可包括运动预测单元和运动补偿单元。

当预测模式是帧间模式时,运动预测单元可在运动预测过程中在参考图像中搜索与当前块最匹配的区域,并且可针对当前块和找到的区域推导出运动矢量。参考图像可被存储在参考画面缓冲器190中。更具体地讲,当参考图像的编码和/或解码被处理时,参考图像可被存储在参考画面缓冲器190中。

运动补偿单元可通过使用运动矢量执行运动补偿来产生预测块。这里,运动矢量可以是用于帧间预测的二维(2d)矢量。此外,运动矢量可表示当前图像和参考图像之间的偏移。

减法器125可产生残差块,其中,残差块是输入块与预测块之间的残差。残差块也被称为“残差信号”。

变换单元130可通过对残差块进行变换来产生变换系数,并且可输出产生的变换系数。这里,变换系数可以是通过对残差块进行变换而产生的系数值。当使用变换跳过模式时,变换单元130可省略对残差块进行变换的操作。

通过对变换系数实施量化,可产生量化的变换系数等级。这里,在实施例中,量化的变换系数等级也可被称为“变换系数”。

量化单元140可通过根据量化参数对变换系数进行量化来产生量化的变换系数等级。量化单元140可输出量化的变换系数等级。在这种情况下,量化单元140可使用量化矩阵对变换系数进行量化。

熵解码单元150可通过基于由量化单元140计算出的值和/或在编码过程中计算出的编码参数值执行基于概率分布的熵编码来产生比特流。熵解码单元150可输出产生的比特流。

除了图像的像素信息之外,熵解码单元150还可针对对图像进行解码所需的信息执行熵编码。例如,对图像进行解码所需的信息可包括语法元素等。

编码参数可以是进行编码和/或解码所需的信息。编码参数可包括由编码设备编码并被传送到解码设备的信息,并且还可包括在编码或解码过程中推导出的信息。例如,被传送到解码设备的信息可包括语法元素。

例如,编码设备可包括值或统计信息,诸如预测模式、运动矢量、参考画面索引、编码块图案、存在或不存在残差信号、变换系数、量化的变换系数、量化参数、块尺寸以及块分区信息。预测模式可以是帧内预测模式或帧间预测模式。

残差信号可表示原始信号与预测信号之间的差。可选地,残差信号可以是通过对原始信号与预测信号之间的差进行变换而产生的信号。可选地,残差信号可以是通过对原始信号与预测信号之间的差进行变换和量化而产生的信号。残差块可以是基于块的残差信号。

当应用熵编码时,可将更少的比特分配给更频繁出现的符号,并且可将更多的比特分配给很少出现的符号。由于通过该分配来表示符号,因此可减少用于将被编码的目标符号的比特串的大小。因此,通过熵编码可提高视频编码的压缩性能。

此外,为了进行熵编码,可使用诸如指数哥伦布、上下文自适应可变长度编码(cavlc)或上下文自适应二进制算术编码(cabac)的编码方法。例如,熵解码单元150可使用可变长度编码/码(vlc)表来执行熵编码。例如,熵解码单元150可推导出用于目标符号的二值化方法。此外,熵解码单元150可推导出用于目标符号/二进制位的概率模型。熵解码单元150可使用推导出的二值化方法或概率模型来执行熵编码。

由于编码设备100经由帧间预测执行编码,因此编码的当前图像可被用作用于将被后续处理的另外的图像的参考图像。因此,编码设备100可对编码的当前图像进行解码,并将解码的图像存储为参考图像。对于解码,可进行对编码的当前图像的反量化和逆变换。

量化的系数可由反量化单元160进行反量化,并且可由逆变换单元170进行逆变换。可由加法器175将已被反量化和逆变换的系数与预测块相加。将反量化且逆变换的系数和预测块相加,然后可产生重建块。

重建块可通过滤波单元180进行滤波。滤波单元180可将去块滤波器、样点自适应偏移(sao)滤波器和自适应环路滤波器(alf)中的一个或更多个滤波器应用于重建块或重建画面。滤波单元180也可被称为“自适应环内滤波器”。

去块滤波器可消除在块的边界处出现的块失真。sao滤波器可将适当的偏移值与像素值相加以便对编码误差进行补偿。alf可基于重建块与原始块之间的比较结果来执行滤波。可将已经通过滤波单元180进行了滤波的重建块存储在参考画面缓冲器190中。

图2是示出被应用了本发明的解码设备的实施例的配置的框图。

解码设备200可以是视频解码设备或图像解码设备。

参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、帧间预测单元250、加法器255、滤波单元260和参考画面缓冲器270。

解码设备200可接收从编码设备100输出的比特流。解码设备200可在帧内模式和/或帧间模式下对比特流执行解码。此外,解码设备200可经由解码来产生重建图像,并且可输出重建图像。

例如,可通过切换器来执行基于用于进行解码的预测模式而切换到帧内模式或帧间模式的操作。当用于解码的预测模式是帧内模式时,切换器可被操作以切换到帧内模式。当用于解码的预测模式是帧间模式时,切换器可被操作以切换到帧间模式。

解码设备200可从输入的比特流获取重建的残差块,并且可产生预测块。当重建的残差块和预测块被获取时,解码设备200可通过将重建的残差块与预测块相加来产生重建块。

熵解码单元210可通过基于概率分布对比特流执行熵解码来产生符号。产生的符号可包括量化的系数格式符号。这里,熵解码方法可与以上描述的熵编码方法相似。也就是说,熵解码方法可以是以上描述的熵编码方法的逆过程。

量化的系数可由反量化单元220进行反量化。此外,反量化的系数可由逆变换单元230进行逆变换。作为对量化的系数进行反量化和逆变换的结果,可产生重建的残差块。这里,反量化单元220可将量化矩阵应用于量化的系数。

当使用帧内模式时,帧内预测单元240可通过使用在当前块周围的先前被解码的邻近块的像素值执行空间预测来产生预测块。

帧间预测单元250可包括运动补偿单元。当使用帧间模式时,运动补偿单元250可通过执行利用运动矢量和参考图像的运动补偿来产生预测块。参考图像可存储在参考画面缓冲器270中。

重建的残差块和预测块可由加法器255彼此相加。加法器255可通过将重建的残差块和预测块相加来产生重建块。

重建块可通过滤波单元160进行滤波。滤波单元260可将去块滤波器、sao滤波器和alf中的一个或更多个应用于重建块或重建画面。滤波单元260可输出重建图像(画面)。重建图像可被存储在参考画面缓冲器270中,并且然后可被用于帧间预测。

图3是示意性地示出了当图像被编码和解码时图像分区结构的示图。

为了有效地对图像进行分区,可在编码和解码中使用编码单元(cu)。术语“单元”可被用于共同地指定1)包括图像样点的块和2)语法元素。例如,“单元的分区”可表示“与单元相应的块的分区”。

参照图3,图像200被顺序地分区为与最大编码单元(lcu)相应的单元,并且图像300的分区结构可根据lcu被确定。这里,lcu可被用于具有与编码树单元(ctu)相同的含义。

分区结构可表示lcu310中的用于对图像进行有效编码的编码单元(cu)的分布。可根据单个cu是否将被分区为四个cu来确定这种分布。从进行分区所产生的每个cu的水平尺寸和垂直尺寸可以是被分区之前的cu的水平尺寸和垂直尺寸的一半。每个被分区出的cu可被递归地分区为四个cu,并且按照相同的方式,所述四个cu的水平尺寸和垂直尺寸被减半。

这里,可递归地执行cu的分区直到预定义深度为止。深度信息可以是指示cu的尺寸的信息。针对每个cu可存储深度信息。例如,lcu的深度可以是0,最小编码单元(scu)的深度可以是预定义的最大深度。这里,如上所述,lcu可以是具有最大编码单元尺寸的cu,scu可以是具有最小编码单元尺寸的cu。

在lcu310处开始进行分区,每当cu的水平尺寸和垂直尺寸通过进行分区而减半时,cu的深度可增加“1”。对于各个深度,未被分区的cu可具有2n×2n的尺寸。此外,在cu被分区的情况下,尺寸为2n×2n的cu可被分区为尺寸均为n×n的四个cu。每当深度增加1时,尺寸n可减半。

参照图3,深度为0的lcu可具有64×64个像素。0可以是最小深度。深度为3的scu可具有8×8个像素。3可以是最大深度。这里,作为lcu的具有64×64个像素的cu可用深度0来表示。具有32×32个像素的cu可以用深度1来表示。具有16×16个像素的cu可以用深度2来表示。作为scu的具有8×8个像素的cu可以用深度3来表示。

此外,关于相应cu是否被分区的信息可以用cu的分区信息来表示。分区信息可以是1比特信息。除了scu之外的所有cu可包括分区信息。例如,当cu不被分区时,cu的分区信息的值可以是0。当cu被分区时,cu的分区信息的值可以是1。

图4是示出编码单元(cu)能够包括的预测单元(pu)的形状的示图。

在从lcu分区出的cu中,可将不再被分区的cu划分为一个或更多个预测单元(pu)。这种划分也可被称为“分区”。

pu可以是用于预测的基本单元。pu可在跳过模式、帧间模式和帧内模式中的任意一个模式下被编码和解码。可根据各个模式将pu分区为各种形状。

在跳过模式下,在cu中可不存在分区。在跳过模式下,可支持2n×2n模式410,而不进行分区,其中,在2n×2n模式中,pu的尺寸和cu的尺寸彼此相同。

在帧间模式下,在cu中可存在8种类型的分区形状。例如,在帧间模式下,可支持2n×2n模式410、2n×n模式415、n×2n模式420、n×n模式425、2n×nu模式430、2n×nd模式435、nl×2n模式440和nr×2n模式445。

在帧内模式下,可支持2n×2n模式410和n×n模式425。

在2n×2n模式410下,可对尺寸为2n×2n的pu进行编码。尺寸为2n×2n的pu可表示尺寸与cu的尺寸相同的pu。例如,尺寸为2n×2n的pu可具有尺寸64×64、32×32、16×16或8×8。

在n×n模式425下,可对尺寸为n×n的pu进行编码。

例如,在帧内预测中,当pu的尺寸是8×8时,可对四个分区出的pu进行编码。每个分区出的pu的尺寸可以是4×4。

当在帧内模式下对pu进行编码时,可使用多个帧内预测模式中的任意一个对pu进行编码。例如,hevc技术可提供35个帧内预测模式,pu可在所述35个帧内预测模式中的任意一个下被编码。

可基于率失真代价来确定2n×2n模式410和n×n模式425中的哪一个模式将被用于对pu进行编码。

编码设备100可对尺寸为2n×2n的pu执行编码操作。这里,编码操作可以是在能够被编码设备100使用的多个帧内预测模式中的每个模式下对pu进行编码的操作。通过编码操作,可得到用于尺寸为2n×2n的pu的最佳帧内预测模式。最佳帧内预测模式可以是能够被编码设备100使用的多个帧内预测模式之中的在对尺寸为2n×2n的pu进行编码时出现最小率失真代价的帧内预测模式。

此外,编码设备100可顺序地对通过进行n×n分区而获得的各个pu执行编码操作。这里,编码操作可以是在能够被编码设备100使用的多个帧内预测模式中的每个模式下对pu进行编码的操作。通过编码操作,可得到用于尺寸为n×n的pu的最佳帧内预测模式。最佳帧内预测模式可以是能够被编码设备100使用的多个帧内预测模式之中的在对尺寸为n×n的pu进行编码时出现最小率失真代价的帧内预测模式。

编码设备100可基于尺寸为2n×2n的pu的率失真代价和尺寸为n×n的pu的率失真代价之间的比较结果来确定尺寸为2n×2n的pu和尺寸为n×n的pu中的哪一个将被编码。

图5是示出能够被包括在cu中的变换单元(tu)的形状的示图。

变换单元(tu)可是cu中被用于诸如变换、量化、逆变换、反量化、熵编码和熵解码的过程的基本单元。tu可具有正方形或矩形的形状。

在从lcu分区出的cu中,可将不再被分区为cu的cu分区为一个或更多个tu。这里,tu的分区结构可以是四叉树结构。例如,如图5中所示,可根据四叉树结构将单个cu510分区一次或更多次。通过这种分区,单个cu510可由具有各种尺寸的tu组成。

在编码设备100中,尺寸为64×64的编码树单元(ctu)可通过递归四叉树结构被分区为多个更小的cu。单个cu可被分区为具有相同尺寸的四个cu。每个cu可被递归地分区,并可具有四叉树结构。

cu可具有给定深度。当cu被分区时,由分区产生的cu的深度可比被分区的cu的深度增加1。

例如,cu的深度可具有范围从0到3的值。cu的尺寸的范围可根据cu的深度从64×64的尺寸到8×8的尺寸。

通过cu的递归分区,可选择发生最小率失真代价的最佳分区方法。

图6是用于解释帧内预测过程的实施例的示图。

从图6中的图的中心径向延伸的箭头可表示帧内预测模式的预测方向。此外,在箭头附近示出的数字可表示被分配给帧内预测模式或被分配给帧内预测模式的预测方向的模式值的示例。

可使用与目标单元邻近的单元的参考样点来执行帧内编码和/或解码。邻近单元可以是邻近的重建单元。例如,可使用在每个邻近的重建单元中包括的参考样点的值或者邻近的重建单元的编码参数来执行帧内编码和/或解码。

编码设备100和/或解码设备200可通过基于关于当前画面中的样点的信息对目标单元执行帧内预测来产生预测块。当帧内预测被执行时,编码设备100和/或解码设备200可通过基于关于当前画面中的样点的信息执行帧内预测来产生用于目标单元的预测块。当帧内预测被执行时,编码设备100和/或解码设备200可基于至少一个重建的参考样点来执行定向预测和/或非定向预测。

预测块可表示作为执行帧内预测的结果而产生的块。预测块可对应于cu、pu和tu中的至少一个。

预测块的单元可具有与cu、pu和tu中的至少一个相应的尺寸。预测块可具有尺寸为2n×2n或n×n的正方形形状。尺寸n×n可包括尺寸4×4、8×8、16×16、32×32、64×64等。

可选地,预测块可以是尺寸为2×2、4×4、16×16、32×32、64×64等的正方形块或者尺寸为2×8、4×8、2×16、4×16、8×16等的矩形块。

可根据用于目标单元的帧内预测模式执行帧内预测。目标单元可具有的帧内预测模式的数量可以是预定义的固定值,并且可以是根据预测块的属性不同地确定的值。例如,预测块的属性可包括预测块的尺寸、预测块的类型等。

例如,不论预测单元的尺寸如何,帧内预测模式的数量都可被固定为35。可选地,帧内预测模式的数量可以是例如3、5、9、17、34、35或36。

如图6中所示,帧内预测模式可包括两种非定向模式和33种定向模式。所述两种非定向模式可包括dc模式和平面模式。

例如,在模式值为26的垂直模式中,可基于参考样点的像素值沿垂直方向执行预测。例如,在模式值为10的水平模式中,可基于参考样点的像素值沿水平方向执行预测。

即使在除了上述模式之外的定向模式中,编码设备100和解码设备200仍可使用依据与定向模式相应的角度的参考样点对目标单元执行帧内预测。

位于相对于垂直模式的右侧的帧内预测模式可被称为“垂直-右侧模式”。位于水平模式下方的帧内预测模式可被称为“水平-下方模式”。例如,在图6中,模式值是27、28、29、30、31、32、33和34之一的帧内预测模式可以是垂直-右侧模式613。模式值是2、3、4、5、6、7、8和9之一的帧内预测模式可以是水平-下方模式616。

非定向模式可包括dc模式和平面模式。例如,dc模式的模式值可以是1。平面模式的模式值可以是0。

定向模式可包括角模式。在多种帧内预测模式之中,除了dc模式和平面模式之外的模式可以是定向模式。

在dc模式中,可基于多个参考样点的像素值的平均值来产生预测块。例如,可基于多个参考样点的像素值的平均值来确定预测块的像素值。

以上描述的帧内预测模式的数量以及各个帧内预测模式的模式值仅是示例性的。可根据实施例、实现和/或要求来不同地定义以上描述的帧内预测模式的数量以及各个帧内预测模式的模式值。

帧内预测模式的数量可根据颜色分量的类型而不同。例如,预测模式的数量可根据颜色分量是亮度(luma)信号还是色度(chroma)信号而不同。

图7是用于解释帧间预测过程的实施例的示图。

图7中示出的矩形可表示图像(或画面)。此外,在图7中,箭头可表示预测方向。也就是说,可根据预测方向对每个图像进行编码和/或解码。

图像(或画面)可根据编码类型被分类为帧内画面(i画面)、单向预测画面或预测编码画面(p画面)、和双向预测画面或双向预测编码画面(b画面)。可根据每个画面的编码类型对每个画面进行编码。

当作为将被编码的目标的图像是i画面时,图像自身可在不进行帧间预测的情况下被编码。当作为将被编码的目标的图像是p画面时,可经由仅使用前向方向上的参考画面的帧间预测对图像进行编码。当作为将被编码的目标的图像是b画面时,可经由使用前向方向和反向方向两者上的参考画面的帧间预测对图像进行编码,也可以经由使用前向方向和反向方向之一上的参考画面的帧间预测对图像进行编码。

使用参考画面进行编码和/或解码的p画面和b画面可被视为使用帧间预测的图像。

下面,将详细地描述根据实施例的在帧间模式下的帧间预测。

在帧间模式下,编码设备100和解码设备200可对编码目标单元和解码目标单元执行预测和/或运动补偿。例如,编码设备100或解码设备200可通过将邻近重建块的运动信息用作编码目标单元或解码目标单元的运动信息来执行预测和/或运动补偿。这里,所述编码目标单元或所述解码目标单元可表示预测单元和/或预测单元分区。

可使用参考画面和运动信息来执行帧间预测。此外,帧间预测可使用以上描述的跳过模式。

参考画面可以是在当前画面之前或之后的画面中的至少一个。这里,帧间预测可基于参考画面对当前画面中的块执行预测。这里,参考画面可表示被用于对块进行预测的图像。

这里,可通过使用指示参考画面的参考画面索引refidx以及运动矢量来指定参考画面中的区域,这将在随后进行描述。

帧间预测可选择参考画面和该参考画面中的与当前块相应的参考块,并且可使用所选择的参考块来产生用于当前块的预测块。当前块可以是在当前画面中的块之中的作为当前将被编码或解码的目标的块。

运动信息可由编码设备100和解码设备200中的每一个在帧间预测期间推导出。此外,推导出的运动信息可被用于执行帧间预测。

这里,编码设备100和解码设备200可通过使用邻近重建块的运动信息和/或同位块(col块)的运动信息来提高编码效率和/或解码效率。col块可以是在先前已被重建的同位画面(col画面)中与当前块相应的块。

邻近重建块可以是存在于当前画面中的块,并且可以是先前已经经由编码和/或解码被重建的块。重建块可以是与当前块相邻的邻近块和/或位于当前块的外部角处的块。这里,“位于当前块的外部角处的块”可表示垂直相邻于与当前块水平相邻的邻近块的块,或者水平相邻于与当前块垂直相邻的邻近块的块。

例如,邻近重建单元(块)可以是位于目标单元左侧的单元、位于目标单元上方的单元、位于目标单元的左下角处的单元、位于目标单元的右上角处的单元或者位于目标单元的左上角处的单元。

编码设备100和解码设备200中的每一个可确定在col画面中存在于在空间上与当前块相应的位置处的块,并可基于确定的所述块来确定预定义的相对位置。所述预定义的相对位置可以是存在于在空间上与当前块相应的位置处的所述块内部和/或外部位置。此外,编码设备100和解码设备200中的每一个可基于已经确定的所述预定义的相对位置来推导出col块。这里,col画面可以是参考画面列表中包括的一个或更多个参考画面中的任意一个画面。

在参考画面中的块可存在于在重建的参考画面中的在空间上与当前块的位置相应的位置处。换句话说,当前块在当前画面中的位置与所述块在参考画面中的位置可以彼此相应。在下文中,在参考画面中包括的块的运动信息可被称为“时间运动信息”。

用于推导运动信息的方法可根据当前块的预测模式而变化。例如,作为被应用于帧间预测的预测模式,可存在高级运动矢量预测因子(amvp)模式、合并模式等。

例如,当amvp模式被用作预测模式时,编码设备100和解码设备200中的每一个可使用邻近重建块的运动矢量和/或col块的运动矢量来产生预测运动矢量候选列表。邻近重建块的运动矢量和/或col块的运动矢量可被用作预测运动矢量候选。

由编码设备100产生的比特流可包括预测运动矢量索引。预测运动矢量索引可表示从预测运动矢量候选列表中包括的预测运动矢量候选中选择的最佳预测运动矢量。通过比特流,可将预测运动矢量索引从编码设备100发送到解码设备200。

解码设备200可使用预测运动矢量索引从预测运动矢量候选列表中包括的预测运动矢量候选中选择当前块的预测运动矢量。

编码设备100可计算当前块的运动矢量与预测运动矢量之间的运动矢量差(mvd),并且可对mvd进行编码。比特流可包括编码的mvd。可通过比特流将mvd从编码设备100发送到解码设备200。这里,解码设备200可对接收到的mvd进行解码。解码设备200可使用解码的mvd和预测运动矢量之和来推导出当前块的运动矢量。

比特流可包括用于指示参考画面的参考画面索引等。可通过比特流将参考画面索引从编码设备100发送到解码设备200。解码设备200可使用邻近块的运动信息来预测当前块的运动矢量,并且可使用预测运动矢量与运动矢量之间的差(mvd)来推导出当前块的运动矢量。解码设备200可基于推导出的运动矢量和参考画面索引信息来产生针对当前块的预测块。

由于邻近重建块的运动信息可被用于对目标单元进行编码和对目标单元进行解码,因此编码设备100可在特定帧间预测模式下不单独对目标单元的运动信息进行编码。如果不对目标单元的运动信息进行编码,则可减少被发送到解码设备200的比特数量,并且可提高编码效率。例如,可存在作为不对目标单元的运动信息进行编码的帧间预测模式的跳过模式和/或合并模式。这里,编码设备100和解码设备200中的每一个可使用指示多个邻近重建块中的一个邻近重建块的标识符和/或索引,其中,所述一个邻近重建块的运动信息将被用作目标单元的运动信息。

存在作为推导运动信息的方法的另一示例的合并方法。术语“合并”可表示对多个块的运动的合并。术语“合并”可表示一个块的运动信息也被应用于其它块。当应用合并时,编码设备100和解码设备200中的每一个可使用邻近重建块的运动信息和/或col块的运动信息来产生合并候选列表。运动信息可包括以下项中的至少一项:1)运动矢量、2)参考图像的索引和3)预测方向。预测方向可以是单向或双向。

这里,可在cu基础上或pu基础上应用合并。当在cu基础上或pu基础上执行合并时,编码设备100可通过比特流将预定义的信息发送到解码设备200。比特流可包括预定义的信息。预定义的信息可包括:1)关于是否针对各个块分区执行合并的信息、以及2)关于与当前块相邻的多个邻近块之中的将被用于执行合并的邻近块的信息。例如,当前块的邻近块可包括当前块的左侧邻近块、当前块的上方邻近块、当前块的时间上邻近的块等。

合并候选列表可表示存储了多条运动信息的列表。此外,合并候选列表可在执行合并之前被产生。在合并候选列表中存储的运动信息可以是1)与当前块相邻的邻近块的运动信息和2)在参考图像中与当前块相应的同位块的运动信息。此外,在合并候选列表中存储的运动信息可以是通过对先前存在于合并候选列表中的多条运动信息进行组合而产生的新的运动信息。

跳过模式可以是将关于邻近块的信息在没有改变的情况下应用于当前块的模式。跳过模式可以是用于帧间预测的多个模式之一。当跳过模式被使用时,编码设备100可通过比特流仅将关于以下的块的信息发送到解码设备200,其中,该块的运动信息将被用作当前块的运动信息。编码设备100可不将其它信息发送到解码设备200。例如,所述其它信息可以是语法信息。语法信息可包括运动矢量差(mvd)信息。

使用画面分区信息对画面进行分区

当构成视频的画面被编码时,每个画面可被分区为多个部分,多个部分可被单独地编码。在这种情况下,为了解码设备对分区的画面进行解码,可需要关于对画面的分区的信息。

编码设备可将指示对画面的分区的画面分区信息发送到解码设备。解码设备可使用画面分区信息对画面进行解码。

画面的头信息可包括画面分区信息。可选地,画面分区信息可被包括在画面的头信息中。画面头信息可以是被应用于一个或更多个画面中的每个画面的信息。

在一个或更多个连续的画面中,如果对画面的分区被改变时,指示每个画面如何被分区的画面分区信息可被改变。当在处理多个画面时画面分区信息已改变时,编码设备可根据该改变将新的画面分区信息发送到解码设备。

例如,画面参数集(pps)可包括画面分区信息,编码设备可将pps发送到解码设备。pps可包括作为pps的标识符(id)的ppsid。编码设备可通过ppsid向解码设备通知哪个pps被用于画面。画面可基于pps的画面分区信息被分区。

在视频的编码中,针对构成视频的画面的画面分区信息可被频繁并重复地改变。如果每当画面分区信息被改变时编码设备必须将新的画面分区信息发送到解码设备,则编码效率和解码效率可被降低。因此,虽然被应用于每个画面的画面分区信息改变,但是如果画面分区信息的编码、发送和解码能够被省略,则编码效率和解码效率可被提高。

在下面的实施例中,将描述针对使用两条或更多条画面分区信息编码的视频的比特流,通过使用一条画面分区信息推导出另外的画面分区信息的方法。

由于另外的画面分区信息基于一条画面分区信息被推导出,因此可通过包含一条画面分区信息的其它信息来提供至少两个不同的画面分区方法。

图8示出根据实施例的使用并行块对画面进行分区。

在图8中,画面由实线指示,并行块由虚线指示。画面可被分区为多个并行块。

每个并行块可以是用作画面的分区单位的实体之一。并行块可以是画面的分区单位。可选地,并行块可以是画面分区编码的单位。

可通过画面参数集(pps)用信号发送关于并行块的信息。pps可包含关于画面的并行块的信息或者为了将画面分区为多个并行块所需要的信息。

下面的表1示出pic_parameter_set_rbsp的结构的示例。画面分区信息可以是pic_parameter_set_rbsp或可包括pic_parameter_set_rbsp。

[表1]

“pic_parameter_set_rbsp”可包括下面的元素。

-tiles_enabled_flag:“tiles_enabled_flag”可以是指示在参考pps的画面中是否存在一个或更多个并行块的并行块存在指示标记。

例如,tiles_enabled_flag值“0”可指示在参考pps的画面中不存在并行块。tiles_enabled_flag值“1”可指示在参考pps的画面中存在一个或更多个并行块。

在单个编码视频序列(cvs)中的所有激活的pps的并行块存在指示标记tiles_enabled_flag的值可彼此相同。

-num_tile_columns_minus1:“num_tile_columns_minus1”可以是关于列并行块的数量的信息,其中,列并行块的数量与在分区的画面的横向上排列的并行块的数量相应。例如,“num_tile_columns_minus1+1”的值可表示在分区的画面中的横向并行块的数量。可选地,“num_tile_columns_minus1+1”的值可表示一行中的并行块的数量。

-num_tile_rows_minus1:“num_tile_rows_minus1”可以是关于行并行块的数量的信息,其中,行并行块的数量与在分区的画面的纵向上排列的并行块的数量相应。例如,“num_tile_rows_minus1+1”的值可表示在分区的画面中的纵向并行块的数量。可选地,“num_tile_rows_minus1+1”的值可表示一列中的并行块的数量。

-uniform_spacing_flag:“uniform_spacing_flag”可以是指示画面是否在横向和纵向上被均等地分区为并行块的均等分隔指示标记。例如,uniform_spacing_flag可以是指示画面中的并行块的尺寸是否彼此相同的标记。例如,uniform_spacing_flag值“0”可指示画面没有在横向和/或纵向上被均等地分区。uniform_spacing_flag值“1”可指示画面在横向和纵向上被均等地分区。当uniform_spacing_flag值为“0”时,为了对画面进行分区,可另外需要在更详细的分区中定义的元素,诸如,column_width_minus1[i]和row_height_minus1[i],这将在稍后进行描述。

-column_width_minus1[i]:“column_width_minus1[i]”可以是与第i列中的并行块的宽度相应的并行块宽度信息。这里,i可以是等于或大于0且小于并行块的列的数量n的整数。例如,“column_width_minus1[i]+1”可表示第i+1列中的并行块的宽度。宽度可由预定单位表示。例如,宽度的单位可以是编码树块(ctb)。

-row_height_minus1[i]:“row_height_minus1[i]”可以是与第i行中的并行块的高度相应的并行块高度信息。这里,i可以是等于或大于0且小于并行块的行的数量n的整数。例如,“row_height_minus1[i]+1”可表示第i+1行中的并行块的高度。高度可由预定单位表示。例如,高度的单位可以是编码树块(ctb)。

在示例中,画面分区信息可被包括在pps中,并可在pps被发送时作为pps的一部分被发送。解码设备可通过对画面的pps进行参考来获得为了对画面进行分区所需要的画面分区信息。

为了用信号发送与先前已发送的信息不同的画面分区信息,编码设备可将新的pps发送到解码设备,其中,新的pps包括新的画面分区信息和新的ppsid。随后,编码设备可将包含该ppsid的条带头发送到解码设备。

用于用信号发送根据特定规则进行改变的基于并行块的画面分区信息的方法的提议

如上所述,在一系列画面中,应用于画面的多条画面分区信息可改变。每当画面分区信息改变时,可需要重发新的pps。

在一系列画面中,应用于画面的多条画面分区信息可根据特定规则而改变。例如,画面分区信息可根据画面的数量而周期性地改变。

当多条画面分区信息根据该特定规则改变时,可通过利用这样的规则来省略画面分区信息的发送。例如,解码设备可从先前已发送的一条画面分区信息推导出另一画面的画面分区信息。

典型地,可不必针对每个画面改变多条画面分区信息,可在固定周期并根据特定规则来重复多条画面分区信息。

例如,可按照并行编码策略来执行画面分区。为了对画面执行并行编码,编码设备可将每个画面分区为并行块。解码设备可使用关于并行编码策略的信息来获得与画面分区信息的周期性改变相应的规则。

例如,当并行块被用作画面分区工具时,可基于编码设备的并行编码策略的信息推导出与用于将单个画面分区为多个并行块的方法相关的周期性改变规则。

图9示出根据实施例的应用了画面组(gop)级别的编码的参考结构。

在图9中,示出构成gop的画面和在画面之间的参考关系。

当画面的序列被编码时,可应用gop。可对通过gop编码的视频进行随机访问。

在图9中,gop的大小被示出为8。例如,单个gop可以是8个画面的组。

在图9中,每个画面被示出为矩形。每个画面中的“i”、“b”或“b”可表示画面的类型。画面的水平位置可表示画面的时间顺序。画面的垂直位置可表示画面的级别。这里,“级别”可以是时间级别。例如,每个画面的gop级别可与画面的时间级别相应。可选地,画面的gop级别可与画面的时间级别相同。

可通过画面的画面顺序计数(poc)值来确定每个画面的gop级别。可通过当画面的poc值除以gop的大小时获得的余数来确定画面的gop级别。换句话说,当画面的poc值是8的倍数(8k)时,画面的gop级别可以为0。这里,k可以是0或更大的整数。当画面的poc值为(8k+4)时,画面的gop级别可以为1。当画面的poc值为(8k+2)或(8k+6)时,画面的gop级别可以为2。当画面的poc值为(8k+1)、(8k+3)、(8k+5)或(8k+7)时,画面的gop级别可以为3。

在图9中,通过范围从gop级别0到gop级别3的gop级别来划分画面。画面之间的箭头可表示画面之间的参考关系。例如,从第一i画面到第二b画面的箭头可表示第一i画面被第二b画面参考。

图10示出根据实施例的gop中的画面的编码顺序。

在图10中,示出了画面的序列、序列中的瞬时解码器刷新(idr)周期、和gop。此外,示出了gop中的画面的编码顺序。

在图10中,未着色的画面可以是处于gop级别0或1的画面。轻着色的画面可以是处于gop级别2的画面。深着色的画面可以是处于gop级别3的画面。

如附图所示,可以以优先应用画面的类型而不是画面的时间顺序这样的方式来确定gop中的画面的编码顺序。

图11示出根据实施例的gop中的画面的并行编码。

在实施例中,对于处于gop各级别的画面(诸如图9中所示的画面),编码设备可使用画面级别的并行化和并行块级别的并行化的组合来对画面进行编码。

画面级别并行化可指画面不彼此参考,因此能够彼此独立地被编码的画面被并行地编码。

并行块级别并行化可以是与对画面进行分区相关的并行化。并行块级别并行化可指单个画面被分区为多个并行块,并且多个并行块被并行地编码。

画面级别并行化和并行块级别并行化两者可同时被应用于画面的并行化。可选地,画面级别并行化可与并行块级别并行化组合。

针对该并行化,如图9中所示,可进行设计使得gop中的画面之中除了处于gop级别0的画面之外的处于相同gop级别的其余画面不彼此参考。也就是说,在图9中,处于gop级别2的b画面可不彼此参考,处于gop级别3的b画面可不彼此参考。

在该设计下,可设计出使gop中的画面之中除了处于gop级别0的画面之外的其余画面能够被并行编码的方案。由于处于gop级别2的两个画面不彼此参考,因此处于gop级别2的两个画面可被并行编码。此外,由于处于gop级别3的四个画面不彼此参考,因此处于gop级别3的四个画面可被并行编码。

在这样的编码方案下,可根据画面的gop级别不同地分配画面的分区的数量和形状。每个画面的分区的数量可指示画面被分区为的并行块或条带的数量。画面的分区的形状可表示各个并行块或条带的尺寸和/或位置。

换句话说,可基于画面的gop级别确定画面的分区的数量和形状。每个画面可根据画面的gop级别被分区为特定数量的部分。

画面的gop级别和画面的分区可具有特定关系。处于相同gop级别的画面可具有相同的画面分区信息。

例如,当设计诸如图11中所示的并行化时,如果处于gop级别0的画面和处于gop级别1的画面被分别分区为4n个部分,则处于gop级别2的画面可被分区为2n个部分,处于gop级别3的画面可被分区为n个部分。这里,n可以是1或更大的整数。根据该设计,针对当帧级别并行化和画面级别并行化被同时使用时并行编码的部分的线程的数量可以是固定的。也就是说,当存在能够与特定画面并行编码或解码的额外的画面时,可首先执行画面级别并行化,并在一定程度上与画面级别并行化成反比地执行针对一个画面的并行块级别并行化。

在实施例中,可提出不通过若干个pps传送周期性地或根据特定规则改变的画面分区信息,并且使用一个pps中包括的画面分区信息推导出其它画面的改变后的画面分区信息的方法。可选地,一条画面分区信息可指示多个画面分区形状,其中,每个画面按照多个画面分区形状被分区为不同的形状。

例如,画面分区信息可指示处于特定gop级别中的每个级别的并行处理的画面的数量。可使用画面分区信息获得每个画面的分区的数量。

与上述实施例中的对画面进行分区相关地进行的gop级别的描述也可被应用于时间标识符(时间id)或时间级别。换句话说,在实施例中,“gop级别”可被“时间级别”或“时间标识符”代替。

时间标识符可指示分层时间预测结构中的级别。

时间标识符可被包含在网络抽象层(nal)单元头。

图12示出根据实施例的使用条带对画面进行分区。

在图12中,画面由实线指示,条带由粗虚线指示,编码树单元(ctu)由细虚线指示。如附图中所示,画面可被分区为多个条带。一个条带可由一个或更多个连续的ctu组成。

条带可以是被用作画面的分区单位的实体之一。条带可以是画面的分区单位。可选地,条带可以是画面分区编码的单位。

可通过条带段头用信号发送关于条带的信息。条带段头可包含关于条带的信息。

当条带是画面分区编码的单位时,画面分区信息可定义一个或更多个条带中的每个条带的起始地址。

每个条带的起始地址的单位可以是ctu。画面分区信息可定义一个或更多个条带中的每个条带的起始ctu地址。画面的分区形状可由条带的起始地址定义。

下面的表2示出slice_segment_header的结构的示例。画面分区信息可以是slice_segment_header或可包括slice_segment_header。

[表2]

“slice_segment_header”可包括下面的元素。

-first_slice_segment_in_pic_flag:“first_slice_segment_in_pic_flag”可以是指示由slice_segment_header指示的条带是否为画面中的第一条带的第一条带指示标记。

例如,first_slice_segment_in_pic_flag值“0”可指示相应的条带不是画面中的第一条带。first_slice_segment_in_pic_flag值“1”可指示相应的条带是画面中的第一条带。

dependent_slice_segment_flag:“dependent_slice_segment_flag”可以是指示由slice_segment_header指示的条带是否为非独立条带的非独立条带段指示标记。

例如,dependent_slice_segment_flag值“0”可指示相应的条带不是非独立条带。dependent_slice_segment_flag值“1”可指示相应的条带是非独立条带。

例如,用于波前并行处理(wpp)的子流条带可以是非独立条带。可存在与非独立条带相应的独立条带。当由slice_segment_header指示的条带是非独立条带时,slice_segment_header的至少一个元素可不存在。换句话说,slice_segment_header中的元素的值可不被定义。对于在非独立条带中值不被定义的元素,可使用与非独立条带相应的独立条带的元素的值。换句话说,在非独立条带的slice_segment_header中不存在的特定元素的值可等于与非独立条带相应的独立条带的slice_segment_header中的特定元素的值。例如,非独立条带可继承与其相应的独立条带中的元素的值,并可重新定义独立条带中的至少一些元素的值。

-slice_segment_address:“slice_segment_address”可以是指示由slice_segment_header指示的条带的起始地址的起始地址信息。起始地址信息的单位可以是ctb。

用于将画面分区为一个或更多个条带的方法可包括下面的方法1)至方法3)。

方法1):第一方法可以是用于通过一个条带能够包括的比特流的最大尺寸来对画面进行分区的方法。

方法2):第二方法可以是用于通过一个条带能够包括的ctu的最大数量来对画面进行分区的方法。

方法3):第三方法可以是用于通过一个条带能够包括的并行块的最大数量来对画面进行分区的方法。

当编码设备打算在条带基础上执行并行编码时,可通常使用这三种方法之中的第二方法和第三方法。

在第一方法的情况下,在编码已经完成之后才可知道比特流的大小,因此可能难以在编码开始之前定义将被并行处理的条带。因此,能够进行基于条带的并行编码的画面分区方法可以是使用ctu的最大数量的单位的第二方法和使用并行块的最大数量的单位的第三方法。

当使用第二方法和第三方法时,可在画面被并行编码之前预先定义画面的分区尺寸。此外,根据定义的尺寸,可计算slice_segment_address。当编码设备将条带用作并行编码的单位时,通常存在不针对每个画面改变slice_segment_address而是以固定周期和/或根据特定规则重复slice_segment_address的倾向。

因此,在实施例中,可使用用于通过共同应用于多个画面的参数用信号发送画面分区信息而不是针对每个条带用信号发送画面分区信息的方法。

图13是根据实施例的用于执行视频编码的编码设备的配置图。

编码设备1300可包括控制单元1310、解码单元1320和通信单元1330。

控制单元1310可执行用于对视频进行编码的控制。

解码单元1320可对视频执行编码。

解码单元1320可包括以上已参照图1描述的帧间预测单元110、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵解码单元150、反量化单元160、逆变换单元170、加法器175、滤波单元180和参考画面缓冲器190。

通信单元1330可将编码的视频的数据发送到另一装置。

以下将更详细地描述控制单元1310、解码单元1320和通信单元1330的详细功能和操作。

图14是根据实施例的用于执行视频编码的编码方法的流程图。

在步骤1410,控制单元1310可产生关于视频中的多个画面的画面分区信息。画面分区信息可指示针对视频中的多个画面中的每个画面的画面分区方法。

例如,画面分区信息可指示哪个方法将被用于对多个画面中的每个画面进行分区。画面分区信息可被应用于多个画面。此外,当基于画面分区信息对多个画面进行分区时,用于对多个画面进行分区的方法可彼此不同。分区方法可指示从分区操作产生的部分的数量、部分的形状、部分的尺寸、部分的宽度、部分的高度和/或部分的长度。

例如,画面分区信息可指示用于对画面进行分区的至少两种不同的方法。可通过画面分区信息指定用于对画面进行分区的至少两种不同的方法。此外,画面分区信息可指示至少两种不同的方法中的哪一种方法将被用于对多个画面中的每个画面进行分区。

例如,多个画面可以是单个gop中的画面或者构成单个gop的画面。

在步骤1420,控制单元1310可使用至少两种不同的方法中的一种方法来对多个画面中的每个画面进行分区。至少两种不同的方法与画面分区信息相应。换句话说,画面分区信息可指定用于对多个画面进行分区的至少两种不同的方法。

这里,“不同的方法”可指从分区操作产生的部分的数量、形状或尺寸彼此不同。这里,部分可以是并行块或条带。

例如,控制单元1310可基于画面分区信息确定至少两种不同的方法之中的哪一种方法将被用于对多个画面中的每个画面进行分区。控制单元1310可通过对画面进行分区来产生画面的部分。

在步骤1430,解码单元1320可对基于画面分区信息进行分区的多个画面执行编码。解码单元1320可对使用至少两种不同的方法中的一种方法进行分区的每个画面执行编码。

每个画面的部分可被单独地编码。解码单元1320可对从对画面进行分区而产生的多个部分并行地执行编码。

在步骤1440,解码单元1320可产生包括画面分区信息和多个编码的画面两者的数据。所述数据可以是比特流。

在步骤1450,通信单元1330可将产生的数据发送到解码设备。

将参照其它实施例更详细地描述每个画面的画面分区信息和部分。将在其它实施例中描述的每个画面的画面分区信息和部分的细节也可被应用于本实施例。将省略对其的重复描述。

图15是根据实施例的用于执行视频解码的解码设备的配置图。

解码设备1500可包括控制单元1510、解码单元1520和通信单元1530。

控制单元1510可执行用于视频进行解码的控制。例如,控制单元1510可从数据或比特流获取画面分区信息。可选地,控制单元1510可对数据或比特流中的画面分区信息进行解码。此外,控制单元1510可控制解码单元1520从而基于画面分区信息对视频进行解码。

解码单元1520可对视频执行解码。

解码单元1520可包括以上已参照图2描述的熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、帧间预测单元250、加法器255、滤波单元260和参考画面缓冲器270。

通信单元1530可从另一装置接收编码的视频的数据。

以下将更详细地描述控制单元1510、解码单元1520和通信单元1530的详细功能和操作。

图16是根据实施例的用于执行视频解码的解码方法的流程图。

在步骤1610,通信单元1530可从编码设备1300接收编码的视频的数据。所述数据可以是比特流。

在步骤1620,控制单元1510可从所述数据获取画面分区信息。控制单元1510可对所述数据中的画面分区信息进行解码,并可经由解码获取画面分区信息。

画面分区信息可指示针对视频中的多个画面中的每个画面的画面分区方法。

例如,画面分区信息可指示哪种方法将被用于对多个画面中的每个画面进行分区。此外,当基于画面分区信息对多个画面进行分区时,用于对多个画面进行分区的方法可彼此不同。

分区方法可指示从分区操作产生的部分的数量、部分的形状、部分的尺寸、部分的宽度、部分的高度和/或部分的长度。

例如,画面分区信息可指示用于对画面进行分区的至少两种不同的方法。可通过画面分区信息指定用于对画面进行分区的至少两种不同的方法。此外,画面分区信息可指示至少两种不同的方法中的哪一种方法将被用于基于画面的特征或属性对多个画面中的每个画面进行分区。

例如,画面的属性可以是gop级别、时间标识符或画面的时间级别。

例如,多个画面可以是单个gop中的画面或者构成单个gop的画面。

在步骤1630,控制单元1510可基于画面分区信息,使用至少两种不同的方法之一对多个画面中的每个画面进行分区。控制单元1510可基于画面分区信息确定至少两种不同的方法中的哪一种方法将被用于对多个画面中的每个画面进行分区。控制单元1510可通过对画面进行分区产生每个画面的部分。

从分区操作产生的部分可以是并行块或条带。

例如,控制单元1510可基于画面分区信息对多个画面中的第一画面进行分区。控制单元1510可根据由画面分区信息指示的第一画面分区方法对第一画面进行分区。控制单元1510可基于从画面分区信息推导出的另外的画面分区信息对多个画面中的第二画面进行分区。第一画面和第二画面可以是不同的画面。例如,第一画面的gop级别和第二画面的gop级别可彼此不同。例如,可将画面分区信息中的一个或更多个元素中的至少一些元素用于从画面分区信息推导出另外的画面分区信息。

可选地,控制单元1510可根据从画面分区信息推导出第二画面分区方法对第二画面进行分区。画面分区信息中的一个或更多个元素中的至少一些元素可指示第一画面分区方法。可将画面分区信息中的一个或更多个元素中的至少其它元素用于从画面分区信息或第一画面分区方法推导出第二画面分区方法。

画面分区信息可定义周期性改变的画面分区方法。控制单元1510可使用由画面分区信息定义的且周期性改变的画面分区方法来对多个画面进行分区。换句话说,特定画面分区方法可被重复地应用于一系列画面。当特定画面分区方法被应用于特定数量的画面时,特定画面分区方法可被重复地应用于后续的特定数量的画面。

画面分区信息可定义根据规则改变的画面分区方法。控制单元1510可使用根据规则改变的且由画面分区信息定义的画面分区方法对多个画面进行分区。也就是说,根据规则指定的画面分区方法可被应用于一系列的画面。

在步骤1640,解码单元1520可对基于画面分区信息分区的多个画面执行解码。解码单元1520可对使用至少两种不同的方法之一进行分区的每个画面执行解码。

每个画面的多个部分可被单独地解码。解码单元1520可对从每个画面的分区操作产生的多个部分并行地执行解码。

在步骤1650,解码单元1520可产生包括多个经解码的画面的视频。

如上所述,画面分区信息可由pps或由pps中的至少一些元素定义。

在实施例中,pps可包括画面分区信息。也就是说,pps可包括与画面分区信息相关的元素和与画面分区信息不相关的元素。画面分区信息可与pps中的至少一些元素相应。

可选地,在实施例中,画面分区信息可包括pps。也就是说,画面分区信息可由pps和其它信息定义。

在实施例中,针对多个画面的画面分区信息可由单个pps而不是由数个pps定义。换句话说,由单个pps定义的画面分区信息可被用于按照至少两个不同的形状对多个画面进行分区。

在实施例中,针对单个画面的画面分区信息也可被用于对使用与该画面的画面分区方法不同的画面分区方法进行分区的其它画面进行分区。画面分区信息除了可包括pps中的对画面进行分区所需的信息之外,还可包括推导其它的画面分区方法所需的信息。

在这种情况下,可理解一条画面分区信息指示应用于多个画面的多个画面分区方法。例如,画面分区信息中的至少一些元素可定义第一画面分区方法。第一画面分区方法可被应用于多个画面中的第一画面。画面分区信息中的至少其它元素可被用于从第一画面分区方法推导出第二画面分区方法。推导出的第二画面分区方法可被应用于多个画面中的第二画面。画面分区信息可包含用于定义将被应用的画面分区方法和该画面分区方法将被应用于的画面的信息。也就是说,画面分区信息可包含用于指定与多个画面中的每个画面相应的画面分区方法的信息。

可选地,在实施例中,单个pps可包括多条画面分区信息。多条画面分区信息可被用于对多个画面进行分区。换句话说,根据实施例,针对单个画面的pps不仅可包括用于对相应画面进行分区的画面分区信息还可包括用于对其它画面进行分区的画面分区信息。

在这种情况下,可理解多条画面分区信息分别指示多种不同的画面分区方法,并可通过单个pps从编码设备被传送到解码设备。例如,pps中的至少一些元素可定义画面分区信息。定义的画面分区信息可被应用到多个画面中的第一画面。pps中的至少其它元素可被用于从定义的画面分区信息推导出其它的画面分区信息。推导出的画面分区信息可被应用于多个画面中的第二画面。pps可包括用于定义将被应用的画面分区信息和该画面分区信息将被应用于的画面的信息。换句话说,pps可包括用于指定与多个画面中的每个画面相应的画面分区信息的信息。

用于将画面分区为并行块的画面分区信息

如上所述,从分区操作产生的画面的部分可以为并行块。画面可被分区为多个并行块。

pps可定义被应用于特定画面的参数。这些参数中的至少一些参数可以是画面分区信息,并可被用于确定画面分区方法。

在实施例中,单个pps中包括的画面分区信息可被应用于多个画面。这里,可使用至少两种不同的方法之一对多个画面进行分区。也就是说,为了定义至少两种不同的画面分区方法,可使用单个pps而不是数个pps。

即使使用不同的画面分区方法对两个画面进行分区,也不针对每个画面用信号发送pps,并且可由单个pps或单条画面分区信息推导出改变后的画面分区方法。例如,pps可包括将被应用于单个画面的画面分区信息,并可由该pps推导出将被应用于其它画面的画面分区信息。可选地,例如,pps可包括将被应用于单个画面的画面分区信息,并且可基于该画面分区信息定义将被应用于多个画面的画面分区方法。

例如,pps可定义将针对每个gop级别并行处理的画面的数量。一旦将针对每个gop级别并行处理的画面的数量被定义,可确定针对处于特定gop级别的画面的画面分区方法。可选地,一旦将针对每个gop级别并行处理的画面的数量被定义,可确定处于特定gop级别的画面将被分区为的并行块的数量。

例如,pps可定义将针对每个时间标识符并行处理的画面的数量。一旦将针对每个时间标识符并行处理的画面的数量被定义,可确定针对具有特定时间标识符的画面的画面分区信息。可选地,一旦将针对每个时间标识符并行处理的画面的数量被定义,可确定具有特定时间标识符的画面将被分区为的并行块的数量。

解码设备可经由参考画面的配置提取gop的大小,并可从gop大小推导gop级别。可选地,解码设备可从时间级别推导gop级别。gop级别和时间级别可被用于对每个画面进行分区,这将在稍后进行描述。

根据gop级别将画面分区为并行块的实施例

下面的表3示出指示用于用信号发送画面分区信息的pps的pic_parameter_set_rbsp的结构的示例。画面分区信息可以是pic_parameter_set_rbsp或可包括pic_parameter_set_rbsp。画面可通过pic_parameter_set_rbsp被分区为多个并行块。

[表3]

pic_parameter_set_rbsp可包括下面的元素。

-parallel_frame_by_gop_level_enable_flag:“parallel_frame_by_gop_level_enable_flag”可以是指示参考pps的画面是否与处于相同gop级别的其它画面并行地被编码或解码的gop级别并行处理标记。

例如,parallel_frame_by_gop_level_enable_flag值“0”可指示参考pps的画面不与处于相同gop级别的其它画面并行地编码或解码。parallel_frame_by_gop_level_enable_flag值“1”可指示参考pps的画面与处于相同gop级别的其它画面并行地被编码或解码。

当画面与其它画面并行地处理时,可考虑降低将单个画面分区为多个部分并对多个部分并行地处理的必要性。因此,可认为针对多个画面的并行处理和针对单个画面的多个部分的并行处理之间可具有相关性。

画面分区信息可包括关于处于gop级别n的将被并行处理的画面的数量的信息(即,并行处理画面数量信息)。处于特定gop级别n的并行处理画面数量信息可与处于gop级别n的可应用并行处理的画面的数量相应。这里,n可以是2或更大的整数。并行处理画面数量信息可包含下面的元素:num_frame_in_parallel_gop_level3_minus1和num_frame_in_parallel_gop_level2_minus1。

-num_frame_in_parallel_gop_level3_minus1:“num_frame_in_parallel_gop_level3_minus1”可以是处于gop级别3的并行处理画面数量信息。处于gop级别3的并行处理画面数量信息可与处于gop级别3的能够被并行编码或解码的画面的数量相应。

例如,“num_frame_in_parallel_gop_level3_minus1+1”的值可表示处于gop级别3的能够被并行编码或解码的画面的数量。

-num_frame_in_parallel_gop_level2_minus1:“num_frame_in_parallel_gop_level2_minus1”可以是处于gop级别2的并行处理画面数量信息。处于gop级别2的并行处理画面数量信息可与处于gop级别2的能够被并行编码或解码的画面的数量相应。

例如,“num_frame_in_parallel_gop_level2_minus1+1”的值可表示处于gop级别2的能够被并行编码或解码的画面的数量。

通过利用使用上述pic_parameter_set_rbsp的画面分区信息的信令,可使用下面的过程来对多个编码画面进行解码。

例如,假设当前画面的pps中的“parallel_frame_by_gop_level_enable_flag”的值为“1”,并且当前画面的gop级别为2,则将被应用于当前画面的num_tile_columns_minus1和num_tile_rows_minus1可通过下面的等式2和3被重新定义:

[等式2]

new_num_tile_columns=(num_tile_columns_minus1+1)/(num_frame_in_parallel_gop_level2_minus1+1)

[等式3]

new_num_tile_rows=(num_tile_rows_minus1+1)/(num_frame_in_parallel_gop_level2_minus1+1)

这里,“new_num_tile_columns”可表示在分区的画面的横向上排列的并行块的数量(即,并行块的列的数量)。“new_num_tile_rows”可表示在分区的画面的纵向上排列的并行块的数量(即,并行块的行的数量)。当前画面可被分区为new_num_tile_columns×new_num_tile_rows个并行块。

例如,假设当前画面的pps中的“parallel_frame_by_gop_level_enable_flag”的值为“1”,并且当前块的gop级别为3,则将被应用于当前画面的num_tile_columns_minus1和/或num_tile_rows_minus1可通过下面的等式4和5被重新定义:

[等式4]

new_num_tile_columns=(num_tile_columns_minus1+1)/(num_frame_in_parallel_gop_level3_minus1+1)

[等式5]

new_num_tile_rows=(num_tile_rows_minus1+1)/(num_frame_in_parallel_gop_level3_minus1+1)

以上重新定义可被应用于new_num_tile_columns或new_num_tile_rows或者被应用于new_num_tile_columns和new_num_tile_rows两者。

根据上述等式2至5,num_frame_in_parallel_gop_level2_minus1等的值越大,new_num_tile_columns的值越小。也就是说,当num_frame_in_parallel_gop_level2_minus1或num_frame_in_parallel_gop_level3_minus1的值变大时,从分区操作产生的并行块的数量可被减少。因此,num_frame_in_parallel_gop_level2_minus1和num_frame_in_parallel_gop_level3_minus1可以是用于减少从对画面进行分区而产生的并行块的数量的减少指示信息。当处于相同gop级别的被并行编码或解码的并行块的数量变大时,每个画面可被分区为更小数量的并行块。

画面分区信息可包含用于减少从对每个画面进行分区而产生的并行块的数量的减少指示信息。此外,减少指示信息可指示根据并行处理的编码或解码从对画面进行分区而产生的并行块的数量减少到的程度。

画面分区信息可包含用于减少从对处于gop级别n的画面进行分区而产生的并行块的数量的gop级别n减少指示信息。这里,n可以是2或更大的整数。例如,num_frame_in_parallel_gop_level2_minus1可以是gop级别2减少指示信息。此外,num_frame_in_parallel_gop_level3_minus1可以是gop级别3减少指示信息。

例如,当当前画面的pps中的“parallel_frame_by_gop_level_enable_flag”的值为“0”时,可使用当前画面的pps中的num_tile_columns_minus1和/或num_tile_columns_minus1的值,将当前画面分区为s个并行块。

例如,可使用下面的等式6计算s:

[等式6]

s=(num_tile_columns_minus1+1)×(num_tile_rows_minus1+1)

如上根据等式2至等式6所述,画面分区信息可包含针对处于gop级别n的画面的gop级别n减少指示信息。当从对处于gop级别0或1的画面进行分区而产生的并行块的列的数量为w并且从对处于gop级别n的画面进行分区而产生的并行块的列的数量为w/m时,gop级别n减少指示信息可与m相应。可选地,当从对处于gop级别0或1的画面进行分区而产生的并行块的行的数量为w并且从对处于gop级别n的画面进行分区而产生的并行块的行的数量为w/m时,gop级别n减少指示信息可与m相应。

如上根据等式2至等式6所述,可基于画面的gop级别确定应用于对画面进行分区的画面分区形状。此外,如上参照图10所述,可基于画面的画面顺序计数(poc)确定画面的gop级别。

可根据当画面的poc值除以预定值时的余数的值来确定画面的gop级别。例如,在gop中的多个画面中,处于gop级别3的画面可以是画面的poc值除以2时余数为1的画面。例如,在gop中的多个画面中,处于gop级别2的画面可以是画面的poc值除以4时余数为2的画面。

例如,如上所述,可将相同的画面分区方法应用于gop中的多个画面之中处于相同gop级别的画面。画面分区信息可指示相同的画面分区方法将被应用于多个画面之中的当画面的poc值除以第一预定值时获得的余数为第二预定值的画面。

画面分区信息可指示针对处于特定值的gop级别的画面的画面分区方法。此外,画面分区信息可定义针对与两个或更多个gop级别之一相应的一个或更多个画面的画面分区方法。

根据时间级别等将画面分区为并行块的实施例

下面的表4示出pic_parameter_set_rbsp的结构的示例,其中,pic_parameter_set_rbsp指示用于用信号发送画面分区信息的pps。画面分区信息可以是pic_parameter_set_rbsp,或可包括pic_parameter_set_rbsp。通过pic_parameter_set_rbsp,每个画面可被分区为多个并行块。

[表4]

“pic_parameter_set_rbsp”可包括下面的元素。

-drive_num_tile_enable_flag:“drive_num_tile_enable_flag”可以是指示是否使用至少两种不同的方法之一对参考pps的每个画面进行分区的统一分区指示标记。可选地,“drive_num_tile_enable_flag”可指示当参考pps的每个画面被分区为并行块时从分区操作产生的并行块的数量是否彼此相同。

例如,drive_num_tile_enable_flag值“0”可指示使用单个方法对参考pps的多个画面进行分区。可选地,drive_num_tile_enable_flag值“0”可指示当参考pps的多个画面被分区时,多个画面总是被分区为相同数量的并行块。

drive_num_tile_enable_flag值“1”可指示由单个pps定义多个分区形状。可选地,drive_num_tile_enable_flag值“1”可指示使用至少两种不同的方法之一对参考pps的每个画面进行分区。可选地,drive_num_tile_enable_flag值“1”可指示当参考pps的每个画面被分区时产生的并行块的数量不相同。

可认为当将时间可伸缩性应用于视频或画面时,将单个画面分区为多个部分并且并行地处理这些部分的必要性与时间符识符相关联。可认为对用于提供时间可伸缩性的画面的处理与将一个画面分区为多个部分之间具有相关性。

画面分区信息可包含针对时间标识符n的关于并行块的数量的信息(即,并行块数量信息)。针对特定时间标识符n的并行块数量信息可指示处于时间级别n的画面被分区为的并行块的数量。这里,n可以是1或更大的整数。

并行块数量信息可包含以下元素:num_tile_level1_minus1和num_tile_level2_minus1。此外,并行块数量信息可包含针对一个或更多个值的num_tile_leveln_minus1。

当drive_num_tile_enable_flag为“1”时,画面分区信息或pps可选择地包含num_tile_level1_minus1、num_tile_level2_minus1和num_tile_leveln_minus1中的至少一个。

-num_tile_level1_minus1:“num_tile_level1_minus1”可以是针对处于级别1的画面的级别1并行块数量信息。该级别可以是时间级别。

级别1并行块数量信息可与从对处于级别1的画面进行分区而产生的并行块的数量相应。级别1并行块信息可与从对处于级别1的画面进行分区而产生的并行块的数量成反比。

例如,处于级别1的画面可被分区为m/(num_tile_level1_minus1+1)个并行块。m的值可以是(num_tile_columns_minus1+1)×(num_tile_rows_minus1+1)。因此,级别1并行块数量信息的值越大,从对处于级别1的画面进行分区而产生的并行块的数量越小。

-num_tile_level2_minus1:“num_tile_level2_minus1”可以是针对处于级别2的画面的级别2并行块数量信息。该级别可以是时间级别。

级别2并行块数量信息可与从对处于级别2的画面进行分区而产生的并行块的数量相应。级别2并行块信息可与从对处于级别2的画面进行分区而产生的并行块的数量成反比。

例如,处于级别2的画面可被分区为m/(num_tile_level2_minus1+1)个并行块。m的值可以是(num_tile_columns_minus1+1)×(num_tile_rows_minus1+1)。因此,级别2并行块数量信息的值越大,从对处于级别2的画面进行分区而产生的并行块的数量越小。

-num_tile_leveln_minus1:“num_tile_leveln_minus1”可以是针对处于级别n的画面的级别n并行块数量信息。该级别可以是时间级别。

级别n并行块数量信息可与从对处于级别n的画面进行分区而产生的并行块的数量相应。级别n并行块数量信息可与从对处于级别n的画面进行分区而产生的并行块的数量成反比。

例如,处于级别n的画面可被分区为m/(num_tile_leveln_minus1+1)个并行块。m的值可以是(num_tile_columns_minus1+1)×(num_tile_rows_minus1+1)。因此,级别n并行块数量信息的值越大,从对处于级别n的画面进行分区而产生的并行块的数量越小。

“num_tile_leveln_minus1”可以是用于减少从对画面进行分区而产生的并行块的数量的减少指示信息。

画面分区信息可包含用于减少从对处于级别n的画面进行分区而产生的并行块的数量的级别n减少指示信息。这里,n可以是2或更大的整数。例如,num_tile_level2_minus1可以是级别2减少指示信息。此外,num_tile_level3_minus1可以是级别3减少指示信息。

通过利用使用上述的pic_parameter_set_rbsp的画面分区信息的信令,可使用下面的程序对多个编码画面进行解码。

如上所述,可根据画面的级别改变从对每个画面进行分区而产生的并行块的数量。编码设备和解码设备可使用相同的方法对每个画面进行分区。

例如,当当前画面的pps中的drive_num_tile_enable_flag的值为“0”时,当前画面可被分区为(num_tile_columns_minus1+1)×(num_tile_rows_minus1+1)个并行块。以下,当drive_num_tile_enable_flag的值为“0”时执行的分区被称为“基本分区”。

例如,当pps中的drive_num_tile_enable_flag的值为“1”并且num_tile_leveln_minus1+1的值为p时,处于级别n的画面可被分区为(num_tile_columns_minus1+1)×(num_tile_rows_minus1+1)/p个并行块。也就是说,从对处于级别n的画面进行分区而产生的并行块的数量可以是从进行基本分区而产生的并行块的数量的1/p倍。这里,可使用下面的方法1)至5)之一对处于级别n的画面进行分区。

这里,p可以是画面的gop级别。

处于n级别的水平并行块的数量(n级别水平并行块的数量)可表示在处于级别n的画面的横向上排列的并行块的数量(即,并行块的列的数量)。

处于n级别的垂直并行块的数量(n级别垂直并行块的数量)可表示在处于级别n的画面的纵向上排列的并行块的数量(即,并行块的行的数量)。

水平并行块的基本数量可以是(num_tile_columns_minus1+1)。

垂直并行块的基本数量可以是(num_tile_rows_minus1+1)。

画面水平长度可表示画面的水平长度。

画面的垂直长度可表示画面的垂直长度。

方法1)

减少指示信息可被用于调整从对画面进行分区而产生的水平并行块的数量。

n级别水平并行块的数量可以是水平并行块的基本数量的1/p倍,并且n级别垂直并行块的数量可与垂直并行块的基本数量相同。

方法2)

减少指示信息可被用于调整从对画面进行分区而产生的垂直并行块的数量。

n级别垂直并行块的数量可以是垂直并行块的基本数量的1/p倍,并且n级别水平并行块的数量可与水平并行块的基本数量相同。

方法3)

减少指示信息可被用于在画面的水平长度大于画面的垂直长度时调整水平并行块的数量,并在画面的垂直长度大于画面的水平长度时调整垂直并行块的数量。

基于画面水平长度和画面垂直长度之间的比较,可确定n级别水平并行块的数量和n级别垂直并行块的数量中的1/p将被应用于的那一个。

例如,当画面水平长度大于画面垂直长度时,n级别水平并行块的数量可以是水平并行块的基本数量的1/p倍,并且n级别垂直并行块的数量可与垂直并行块的基本数量相同。当画面垂直长度大于画面水平长度时,n级别垂直并行块的数量可以是垂直并行块的基本数量的1/p倍,并且n级别水平并行块的数量可与水平并行块的基本数量相同。

当画面水平长度与画面垂直长度相同时,n级别水平并行块的数量可以是水平并行块的基本数量的1/p倍,并且n级别垂直并行块的数量可与垂直并行块的基本数量相同。相反,当画面水平长度与画面垂直长度相同时,n级别垂直并行块的数量可以是垂直并行块的基本数量的1/p倍,并且n级别水平并行块的数量可与水平并行块的基本数量相同。

例如,当画面水平长度大于画面垂直长度时,n级别水平并行块的数量可以是“(num_tile_columns_minus1+1)/p”,并且n级别垂直并行块的数量可以是“(num_tile_rows_minus1+1)”。当画面垂直长度大于画面水平长度时,n级别水平并行块的数量可以是“(num_tile_columns_minus1+1)”,并且n级别垂直并行块的数量可以是“(num_tile_rows_minus1+1)/p”。

方法4)

减少指示信息可被用于在水平并行块的基本数量大于垂直并行块的基本数量时调整水平并行块的数量,并在垂直并行块的基本数量大于水平并行块的基本数量时调整垂直并行块的数量。

基于水平并行块的基本数量与垂直并行块的基本数量之间的比较,可确定n级别水平并行块的数量和n级别垂直并行块的数量中的将被应用与1/p倍相应的减少的那一个。

例如,当水平并行块的基本数量大于垂直并行块的基本数量时,n级别水平并行块的数量可以是水平并行块的基本数量的1/p倍,并且n级别垂直并行块的数量可与垂直并行块的基本数量相同。当垂直并行块的基本数量大于水平并行块的基本数量时,n级别垂直并行块的数量可以是垂直并行块的基本数量的1/p倍,并且n级别水平并行块的数量可与水平并行块的基本数量相同。

当水平并行块的基本数量与垂直并行块的基本数量相同时,n级别水平并行块的数量可以是水平并行块的基本数量的1/p倍,并且n级别垂直并行块的数量可与垂直并行块的基本数量相同。相反,当水平并行块的基本数量与垂直并行块的基本数量相同时,n级别垂直并行块的数量可以是垂直并行块的基本数量的1/p倍,并且n级别水平并行块的数量可与水平并行块的基本数量相同。

例如,当水平并行块的基本数量大于垂直并行块的基本数量时,n级别水平并行块的数量可以是“(num_tile_columns_minus1+1)/p”,并且n级别垂直并行块的数量可以是“(num_tile_rows_minus1+1)”。当垂直并行块的基本数量大于水平并行块的基本数量时,n级别水平并行块的数量可以是“(num_tile_columns_minus1+1)”,并且n级别垂直并行块的数量可以是“(num_tile_rows_minus1+1)/p”。

方法5)

当“p=qr”时,n级别水平并行块的数量可以是“水平并行块的基本数量/q”,并且n级别水平并行块的数量可以是“水平并行块的基本数量/r”。

例如,(p,q,r)可以是(p,p,1)、(p,1,p)、(t2,t,t)、(6,3,2)、(6,2,3)、(8,4,2)和(8,2,4)之一,其中,p、q、r和t可分别是1或更大的整数。

用于将画面分区为条带的画面分区信息

如上所述,从分区操作产生的画面的部分可以是条带。画面可被分区为多个条带。

在上述的实施例中,画面分区信息可通过slice_segment_header用信号发送。slice_segment_header的slice_segment_address可被用于对画面进行分区。

在下面的实施例中,slice_segment_address可被包括在pps中,而不是被包括在slice_segment_header中。也就是说,包括slice_segment_address的pps可被用于将画面分区为多个条带。

pps可定义被应用于特定画面的参数。这里,这些参数中的至少一些参数可以是画面分区信息,并可被用于确定画面分区方法。

在实施例中,单个pps中包括的画面分区信息可被应用于多个画面。这里,可使用至少两种不同的方法之一来对多个画面进行分区。换句话说,为了定义至少两种不同的画面分区方法,可使用单个pps,而不是使用数个pps。即使使用不同的画面分区方法对两个画面进行分区,也不针对每个画面都用信号发送pps,并可基于单个pps中的画面分区信息推导出改变的画面分区信息。例如,pps可包括将被应用于单个画面的画面分区信息,并且可基于pps推导出将被应用于另一画面的画面分区信息。可选地,例如,pps可包括将被应用于单个画面的画面分区信息,并可基于画面分区信息定义将被应用于多个画面的画面分区方法。

例如,pps可定义针对每个gop级别的将被并行处理的画面的数量。一旦针对每个gop级别的将被并行处理的画面的数量被定义,可确定针对处于特定gop级别的画面的画面分区方法。可选地,一旦针对每个gop级别的将被并行处理的画面的数量被定义,可确定处于特定gop级别的画面将被分区为的条带的数量。

根据gop级别将画面分区为条带的实施例

下面的表5示出指示用于用信号发送画面分区信息的pps的pic_parameter_set_rbsp的结构的示例。画面分区信息可以是pic_parameter_set_rbsp或可包括pic_parameter_set_rbsp。可通过pic_parameter_set_rbsp将画面分区为多个条带。可周期性地改变多个条带的形状。

[表5]

下面的表6示出当使用表5的pps时slice_segment_header的结构的示例。

[表6]

参照表5,pic_parameter_set_rbsp可包括下面的元素。

-parallel_slice_enabled_flag:“parallel_slice_enabled_flag”可以是条带分区信息标记。条带分区信息标记可指示pps是否包括将被应用于参考该pps的画面的条带分区信息。

例如,parallel_slice_enabled_flag值“1”可指示pps包括将被应用于参考该pps的画面的条带分区信息。parallel_slice_enabled_flag值“0”可指示pps不包括将被应用于参考该pps的画面的条带分区信息。

例如,parallel_slice_enabled_flag值“0”可指示参考pps的画面的条带分区信息存在于slice_segment_header中。这里,条带分区信息可包含slice_segment_address。

-num_parallel_slice_minus1:“num_parallel_slice_minus1”可以是与分区的画面中的条带的数量相应的条带数量信息。

例如,“num_parallel_slice_minus1+1”的值可表示分区的画面中的条带的数量。

-slice_uniform_spacing_flag:“slice_uniform_spacing_flag”可以是指示所有条带的尺寸是否彼此相同的统一间隔标记。

例如,当slice_uniform_spacing_flag的值为“0”时,可不考虑所有条带的尺寸彼此相同,并可需要用于确定各个条带的尺寸的附加信息。

例如,当slice_uniform_spacing_flag的值为“1”时,所有条带的尺寸可彼此相同。此外,当slice_uniform_spacing_flag的值为“1”时,所有条带的尺寸彼此相同,因此,可基于画面的总尺寸和条带的数量来推导出针对条带的条带分区信息。

-parallel_slice_segment_address_minus1[i]:“parallel_slice_segment_address_minus1”可表示从对画面进行分区而产生的条带的尺寸。例如,“parallel_slice_segment_address_minus1[i]+1”可指示第i条带的尺寸。条带的尺寸单位可以是ctb。这里,i可以是等于或大于0且小于n的整数,并且n可以是条带的数量。

-parallel_frame_by_gop_level_enable_flag:“parallel_frame_by_gop_level_enable_flag”可以是gop级别并行处理标记,其中,gop级别并行处理标记指示参考pps的画面是否与处于相同gop级别的其它画面并行地被编码或解码。

例如,parallel_frame_by_gop_level_enable_flag值“0”可指示参考pps的画面不与处于相同gop级别的其它画面并行地被编码或解码。parallel_frame_by_gop_level_enable_flag值“1”可指示参考pps的画面与处于相同gop级别的其它画面并行地被编码或解码。

当parallel_frame_by_gop_level_enable_flag的值为“1”时,需要根据画面级别的并行化来调整对画面进行分区的程度。

画面分区信息可包括关于处于gop级别n的将被并行处理的画面的数量的信息(即,并行处理画面数量信息)。处于特定gop级别n的并行处理画面数量信息可与可应用并行处理的处于gop级别n的画面的数量相应。这里,n可以是2或更大的整数。

并行处理画面数量信息可包含下面的元素:num_frame_in_parallel_gop_level3_minus1和num_frame_in_parallel_gop_level2_minus1。

-num_frame_in_parallel_gop_level3_minus1:“num_frame_in_parallel_gop_level3_minus1”可以是处于gop级别3的并行处理画面数量信息。处于gop级别3的并行处理画面数量信息可与能够被并行编码或解码的处于gop级别3的画面的数量相应。

例如,“num_frame_in_parallel_gop_level3_minus1+1”的值可表示能够被并行编码或解码的处于gop级别3的画面的数量。

-num_frame_in_parallel_gop_level2_minus1:“num_frame_in_parallel_gop_level2_minus1”可以是处于gop级别2的并行处理画面数量信息。处于gop级别2的并行处理画面数量信息可与能够被并行编码或解码的处于gop级别2的画面的数量相应。

例如,“num_frame_in_parallel_gop_level2_minus1+1”的值可表示能够被并行编码或解码的处于gop级别2的画面的数量。

通过利用使用上述pic_parameter_set_rbsp的画面分区信息的信令,可使用下面的过程来对多个编码的画面进行解码。

例如,当当前画面的pps中的“parallel_slice_enabled_flag”的值为“1”时,可将画面分区为一个或更多个条带。为了将画面分区为条带,作为条带分区信息的slice_segment_address必须能够被计算。在pps已被接收之后,可基于pps中的元素计算slice_segment_address。

当“parallel_slice_enabled_flag”的值为“1”时,所有条带的尺寸可彼此相同。换句话说,可根据画面的尺寸和条带的数量来计算单位条带的尺寸,所有条带的尺寸可等于计算出的单位条带的尺寸。此外,可使用单位条带的尺寸来计算所有条带的slice_segment_address值。当“parallel_slice_enabled_flag”的值为“1”时,可使用下面的表7中示出的代码来计算单位条带的尺寸以及条带的slice_segment_address值。

[表7]

当“slice_uniform_spacing_flag”的值为“0”时,可在pps中解析slice_segment_address[i]。也就是说,当“slice_uniform_spacing_flag”的值为“0”时,pps可包括slice_segment_address[i]。这里,i可以是等于或大于0且小于n的整数,n可以是条带的数量。

例如,当当前画面的pps中的“parallel_frame_by_gop_level_enable_flag”的值为“1”时,可重新定义num_parallel_slice_minus1和slice_segment_address[i]。

当当前画面的pps中的“parallel_frame_by_gop_level_enable_flag”的值为“1”,并且当前画面的gop级别为2时,可通过下面的等式7来重新定义将被应用于当前画面的num_parallel_slice_minus1:

[等式7]

new_num_parallel_slice_minus1=(num_parallel_slice_minus1)/(num_frame_in_parallel_gop_level2_minus1+1)

这里,new_num_parallel_slice_minus1可与处于gop级别2的当前画面中的条带的数量相应。例如,“new_num_parallel_slice_minus1+1”的值可表示在分区的当前画面中的条带的数量。

当当前画面的pps中的“parallel_frame_by_gop_level_enable_flag”的值为“1”并且当前画面的gop级别为3时,将被应用于当前画面的num_parallel_slice_minus1可由下面的等式8来重新定义:

[等式8]

new_num_parallel_slice_minus1=(num_parallel_slice_minus1)/(num_frame_in_parallel_gop_level3_minus1+1)

在这种情况下,new_num_parallel_slice_minus1可与处于gop级别3的当前画面中的条带的数量相应。例如,“new_num_parallel_slice_minus1+1”的值可表示在分区的当前画面中的条带的数量。

根据上述等式7和等式8,num_frame_in_parallel_gop_level2_minus1或num_frame_in_parallel_gop_level3_minus1的值越大,new_num_parallel_slice_minus1的值越小。换句话说,num_frame_in_parallel_gop_level2_minus1或num_frame_in_parallel_gop_level3_minus1的值越大,从分区操作产生的条带的数量越小。因此,num_frame_in_parallel_gop_level2_minus1和num_frame_in_parallel_gop_level3_minus1可以是用于减少将从对画面进行分区而产生的条带的数量的减少指示信息。随着被并行编码或解码的处于相同gop级别的画面的数量变大,每个画面可被分区为更少数量的条带。

画面分区信息可包含用于减少从对每个画面进行分区而产生的并行块的数量的减少指示信息。此外,减少指示信息可指示根据并行处理的编码或解码从对画面进行分区而产生的条带的数量被减少到的程度。画面分区信息可包含用于减少从对处于gop级别n的画面进行分区而产生的条带的数量的gop级别n减少指示信息。这里,n可以是2或更大的整数。例如,num_frame_in_parallel_gop_level2_minus1可以是gop级别2减少指示信息。此外,num_frame_in_parallel_gop_level3_minus1可以是gop级别3减少指示信息。

如上面根据等式7和等式8所述,画面分区信息可包括针对处于gop级别n的画面的gop级别n减少指示信息。当从对处于gop级别n或1的画面进行分区而产生的条带的数量为w并且从对处于gop级别n的画面进行分区而产生的条带的数量为w/m时,gop级别n减少指示信息可与m相应。

通过等式7和等式8的重新定义,可使用下面的表8中示出的代码来计算当前画面中的条带的slice_segment_address值。

[表8]

根据gop级别或时间级别将画面分区为条带的实施例

下面的表9示出pic_parameter_set_rbsp的结构的示例,其中,pic_parameter_set_rbsp指示用于用信号发送画面分区信息的pps。画面分区信息可以是pic_parameter_set_rbsp或可包括pic_parameter_set_rbsp。可基于pic_parameter_set_rbsp将画面分区为多个条带。可周期性地改变多个条带的形状。

[表9]

下面的表10示出当使用表9的pps时slice_segment_header的结构的示例。

[表10]

参考表9,pic_parameter_set_rbsp可包括下面的元素。

-unified_slice_segment_enabled_flag:“unified_slice_segment_enabled_flag”可以是条带分区信息标记。条带分区信息标记可指示pps是否包括将被应用于参考pps的画面的条带分区信息。

例如,unified_slice_segment_enabled_flag值“1”可指示pps包括将被应用于参考pps的画面的条带分区信息。unified_slice_segment_enabled_flag值“0”可指示pps不包括将被应用于参考pps的画面的条带分区信息。

例如,unified_slice_segment_enabled_flag值“0”可指示参考pps的画面的条带分区信息存在于slice_segment_header中。这里,条带分区信息可包含slice_segment_address。

-num_slice_minus1:“num_slice_minus1”可以是与在分区的画面中的条带的数量相应的条带数量信息。例如,“num_slice_minus1+1”的值可表示在分区的画面中的条带的数量。

-slice_uniform_spacing_flag:“slice_uniform_spacing_flag”可以是指示所有条带的尺寸是否彼此相同的统一间隔标记。

例如,当slice_uniform_spacing_flag的值为“0”时,可不认为所有条带的尺寸彼此相同,并可需要用于确定条带的尺寸的附加信息。例如,当slice_uniform_spacing_flag的值为“1”时,所有条带的尺寸可彼此相同。

此外,当slice_uniform_spacing_flag的值为“1”时,条带的尺寸彼此相同,并因此可基于画面的总尺寸和条带的数量推导出针对条带的条带分区信息。

-unified_slice_segment_address_minus1[i]:“unified_slice_segment_address_minus1”可表示从对画面进行分区而产生的条带的尺寸。

例如,“unified_slice_segment_address_minus1[i]+1”的值可表示第i条带的尺寸。条带的尺寸单位可以是ctb。这里,i可以是等于或大于0并且小于n的整数,并且n可以是条带的数量。

-unified_slice_segment_by_gop_level_enable_flag:“unified_slice_segment_by_gop_level_enable_flag”可以是指示是否使用至少两种不同的方法之一对参考pps的画面进行分区的分区方法指示标记。

可选地,unified_slice_segment_by_gop_level_enable_flag可指示当参考pps的每个画面被分区为条带时从分区操作产生的条带的数量和形状是否彼此相同。条带的形状可包括条带的起始位置、条带的长度和条带的结束位置中的一个或更多个。

例如,unified_slice_segment_by_gop_level_enable_flag值“0”可指示使用单个方法对参考pps的画面进行分区。可选地,unified_slice_segment_by_gop_level_enable_flag值“0”可指示当参考pps的每个画面被分区时产生的条带的数量总是彼此相同,并且条带的形状总是统一的。

例如,unified_slice_segment_by_gop_level_enable_flag值“1”可指示由单个pps定义多个分区形状。可选地,unified_slice_segment_by_gop_level_enable_flag值“1”可指示使用至少两种不同的方法之一对参考pps的画面进行分区。使用不同的方法对画面进行分区可指从对画面进行分区而产生的条带的数量和/或形状彼此不同。

例如,unified_slice_segment_by_gop_level_enable_flag值“1”可指示从对参考pps的画面进行分区而产生的条带的数量或形状不是统一的。

可选地,unified_slice_segment_by_gop_level_enable_flag可以是gop级别并行处理标记,其中,gop级别并行处理标记指示参考pps的画面是否与处于相同gop级别的其它画面并行地被编码或解码。

例如,unified_slice_segment_by_gop_level_enable_flag值“0”可指示参考pps的画面不与处于相同gop级别的其它画面并行地被编码或解码。unified_slice_segment_by_gop_level_enable_flag值“1”可指示参考pps的画面与处于相同gop级别的其它画面并行地被编码或解码。当unified_slice_segment_by_gop_level_enable_flag的值为“1”时,需要根据画面级别的并行化来调整对画面进行分区的程度。

画面分区信息可包括处于gop级别n的帧数量指示信息。处于特定gop级别n的帧数量指示信息可与处于gop级别n的可应用并行处理的画面的数量相应。这里,n可以是2或更大的整数。

帧数量指示信息可包含下面的元素:num_frame_by_gop_level2_minus1和num_frame_by_gop_level3_minus1。此外,帧数量指示信息可包含针对一个或更多个值的num_frame_by_gop_leveln_minus1。

当unified_slice_segment_by_gop_level_enable_flag的值为“1”时,画面分区信息或pps可选择性地包括num_frame_by_gop_level2_minus1、num_frame_by_gop_level3_minus1和num_frame_by_gop_leveln_minus1中的至少一个。

-num_frame_by_gop_level3_minus1:“num_frame_by_gop_level3_minus1”可以是处于gop级别3的帧数量信息。处于gop级别3的帧数量信息可与处于gop级别3的能够并行地被编码或解码的画面的数量相应。

例如,“num_frame_by_gop_level3_minus1+1”的值可表示处于gop级别3的能够并行地被编码或解码的画面的数量。

-num_frame_by_gop_level2_minus1:“num_frame_by_gop_level2_minus1”可以是处于gop级别2的帧数量信息。处于gop级别2的帧数量信息可与处于gop级别2的能够并行地被编码或解码的画面的数量相应。

例如,“num_frame_by_gop_level3_minus1+1”的值可表示处于gop级别2的能够并行地被编码或解码的画面的数量。

上面的描述还可被应用于时间级别。也就是说,在实施例中,“gop”可被“时间标识符”代替,“gop级别”可被“时间级别”代替。

通过利用使用上述pic_parameter_set_rbsp的画面分区信息的信令,可使用下面的过程对多个编码画面进行解码。

首先,当当前画面的pps中的“unified_slice_segment_enabled_flag”的值为“1”时,画面可被分区为一个或更多个条带。

此外,当当前画面的pps中的“unified_slice_segment_enabled_flag”的值为“1”时,可使用至少两种不同的方法之一对参考pps的画面进行分区。

为了将画面分区为条带,作为条带分区信息的slice_segment_address必须能够被计算。可在已接收到pps之后基于pps的元素计算slice_segment_address。

当“slice_uniform_spacing_flag”的值为“1”时,所有条带的尺寸可彼此相同。换句话说,可计算单位条带的尺寸,所有条带的尺寸可等于计算出的单位条带的尺寸。可使用单位条带的尺寸计算所有条带的slice_segment_address值。当“slice_uniform_spacing_flag”的值为“1”时,可使用下面的表11中示出的代码计算单位条带的尺寸以及各个条带的unified_slice_segment_address值:

[表11]

当“slice_uniform_spacing_flag”的值为“0”时,可在pps中解析unified_slice_segment_address[i]。换句话说,当“slice_uniform_spacing_flag”的值为“0”时,pps可包括unified_slice_segment_address[i]。这里,i可以是等于或大于0并且小于n的整数,并且n可以是条带的数量。

例如,当当前画面的pps中的“unified_slice_segment_by_gop_level_enable_flag”的值为“1”时,可重新定义num_slice_minus1和unified_slice_segment_address[i]。

当当前画面的pps中的“parallel_frame_by_gop_level_enable_flag”的值为“1”并且当前画面的gop级别为2时,可通过下面的等式7重新定义将被应用于当前画面的num_slice_minus1:

[等式7]

num_slice_minus1=(num_slice_minus1)/(num_frame_by_gop_level2_minus1+1)

这里,重新定义的num_slice_minus1可与处于gop级别2的当前画面中的条带的数量相应。例如,“num_slice_minus1+1”的值可表示在分区的当前画面中的条带的数量。

当当前画面的pps中的“parallel_frame_by_gop_level_enable_flag”的值为“1”并且当前画面的gop级别为3时,可通过下面的等式8重新定义将被应用于当前画面的num_parallel_slice_minus1:

[等式8]

num_slice_minus1=(num_slice_minus1)/(num_frame_by_gop_level3_minus1+1)

这里,重新定义的num_slice_minus1可与处于gop级别3的当前画面中的条带的数量相应。例如,“num_slice_minus1+1”的值可表示当前画面中的条带的数量。

根据上述等式7和等式8,num_frame_by_gop_level2_minus1或num_frame_by_gop_level3_minus1的值越大,num_slice_minus1的值越小。换句话说,num_frame_by_gop_level2_minus1或num_frame_by_gop_level3_minus1的值越大,从分区操作产生的条带的数量越小。因此,num_frame_by_gop_level2_minus1和num_frame_by_gop_level3_minus1可以是用于减少从对画面进行分区而产生的条带的数量的减少指示信息。随着处于相同gop级别的被并行编码解码的画面的数量变大,每个画面可被分区为更小数量的条带。

画面分区信息可包含用于减少从对每个画面进行分区产生的并行块的数量的减少指示信息。此外,减少指示信息可表示根据并行处理的编码或解码从对画面进行分区而产生的条带的数量被减少到的程度。画面分区信息可包含用于减少从对处于gop级别n的画面进行分区而产生的并行块的数量的gop级别n减少指示信息。这里,n可以是2或更大的整数。例如,num_frame_by_gop_level2_minus1可以是gop级别2减少指示信息。此外,num_frame_by_gop_level3_minus1可以是gop级别3减少指示信息。

如以上根据等式7和等式8所述,画面分区信息可包含针对处于gop级别n的画面的gop级别n减少指示信息。当从对处于gop级别0或1的画面进行分区而产生的条带的数量为w并且从对处于gop级别n的画面进行分区而产生的条带的数量为w/m时,gop级别n减少指示信息可与m相应。

通过等式7和等式8的重新定义,可使用下面的表12中示出的代码计算当前画面中的条带的unified_slice_segment_address值:

[表12]

下面的表13示出当根据画面改变将被应用于多个画面的画面分区方法时用于用信号发送画面分区信息的pps的语法的示例。

[表13]

下面的表14示出当根据画面改变将被应用于多个画面的画面分区方法时用于用信号发送画面分区信息的条带段头的语法的示例。

[表14]

下面的表15示出当根据画面改变将被应用于多个画面的画面分区方法时用于用信号发送画面分区信息的pps的语法的另一示例。

[表15]

下面的表16示出当根据画面改变将被应用于多个画面的画面分区方法时用于用信号发送画面分区信息的pps的语法的另一示例。

[表16]

通过上述实施例,比特流中的画面分区信息可从编码设备1300发送到解码设备1500。

根据实施例,即使在使用不同的方法对多个画面进行分区的情况下,也可不必针对每个画面或针对每个画面的每次分区来用信号发送画面分区信息。

根据实施例,即使在使用不同的方法对多个画面进行分区的情况下,也可不必针对每个画面或针对每个画面的每个部分来对画面分区信息进行编码。由于有效地执行编码和用信号发送,因此可减小编码的比特流的大小,可提高编码效率,并可降低解码设备1500的实现的复杂度。

图17是实现编码设备和/或解码设备的电子装置的配置图。

在实施例中,编码设备1300的控制单元1310、编码单元1320和通信单元1330中的至少一些可以是程序模块,并且可与外部装置或系统进行通信。程序模块可以以操作系统、应用程序模块和其它程序模块的形式被包括在编码设备1300中。

此外,在实施例中,解码设备1500的编码单元1510、解码单元1520和编码单元1530中的至少一些可以是程序模块,并可与外部装置或系统进行通信。程序模块可以以操作系统、应用程序模块和其它程序模块的形式被包括在解码设备1500中。

程序模块可被物理地存储在各种类型的公知的存储装置中。此外,所述程序模块中的至少一些也可被存储在能够与编码设备1300进行通信的远程存储装置或能够与解码设备1500进行通信的远程存储装置中。

程序模块可包括但不限于用于执行根据实施例的功能或操作或者用于实现根据实施例的抽象数据类型的例程、子例程、程序、对象、组件和数据结构。

可使用由编码设备1300的至少一个处理器或解码设备1500的至少一个处理器执行的指令或代码来实现程序模块。

编码设备1300和/或解码设备1500可被实现为如图17中示出的电子装置1700。电子装置1700可以是用作编码设备1300和/或解码设备1500的通用计算机系统。

如图17所示,电子装置1700可包括通过总线1790彼此通信的至少一个处理器1710、存储器1730、用户界面(ui)输入装置1750、ui输出装置1760和贮存器1740。电子装置1700还可包括连接到网络1799的通信单元1720。处理器1710可以是用于执行存储在存储器1730或贮存器1740中的处理指令的中央处理器(cpu)或半导体装置。存储器1730和贮存器1740中的每一个可以是各种类型的易失性存储介质或非易失性存储介质中的任何一个。例如,存储器可包括只读存储器(rom)1731和随机存取存储器(ram)1732中的至少一个。

可在包括计算机可读存储介质的计算机系统中实现编码设备1300和/或解码设备1500。

存储介质可存储为了将电子装置1700用作编码设备1300和/或解码设备1500所需要的至少一个模块。存储器1730可存储至少一个模块,并可被配置为由至少一个处理器1700执行。

与编码设备1300和/或解码设备1500的数据或信息的通信相关的功能可由通信单元1720执行。例如,编码设备1300的控制单元1310和编码单元1320可与处理器1710相应,通信单元1330可与通信单元1720相应。例如,编码设备1500的控制单元1510和解码单元1520可与处理器1710相应,通信单元1530可与通信单元1720相应。

在以上描述的实施例中,虽然已基于作为一系列步骤或单元的流程图描述了方法,但是本发明不限于步骤的顺序,并且一些步骤可以按照与已描述的步骤的顺序不同的顺序来执行或者与其它步骤同时执行。此外,本领域技术人员将理解:在流程图中示出的步骤不是排他性的,并且还可包括其它步骤,或者,可在不脱离本发明的范围的情况下删除流程图中的一个或更多个步骤。

以上描述的根据本发明的实施例可被实现为能够由各种计算机装置运行的程序,并且可被记录在计算机可读存储介质上。计算机可读存储介质可单独地或者组合地包括程序指令、数据文件和数据结构。在存储介质上记录的程序指令可被专门设计或配置用于本发明,或者对于计算机软件领域的普通技术人员可以是已知的或者可用的。计算机存储介质的示例可包括被专门配置用于记录和运行程序指令的所有类型的硬件装置,诸如,磁介质(诸如硬盘、软盘和磁带)、光学介质(诸如致密盘(cd)-rom和数字多功能盘(dvd))、磁光介质(诸如软光盘、rom、ram和闪存)。程序指令的示例包括机器代码(诸如由编译器创建的代码)和能够由计算机使用解释器执行的高级语言代码。硬件装置可被配置为作为一个或更多个软件模块进行操作以执行本发明的操作,反之亦然。

如上所述,虽然已基于特定细节(诸如详细组件和有限数量的实施例和附图)描述了本发明,但是所述特定细节仅被提供用于容易理解本发明,本发明不限于这些实施例,本领域技术人员将根据以上描述实践各种改变和修改。

因此,应该理解的是,本实施例的精神不受限于上述实施例,并且所附权利要求及其等同物和对它们的修改落入本发明的范围内。

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