掌桥专利:专业的专利平台
掌桥专利
首页

基于帧内预测的视频编码/解码方法和装置

文献发布时间:2023-06-19 12:11:54


基于帧内预测的视频编码/解码方法和装置

技术领域

本发明涉及视频编码/解码方法和装置。

背景技术

最近,在各种应用领域中对诸如高清(HD)图像和超高清(UHD)图像的高分辨率和高质量图像的需求正在增加,并且因此,正在讨论高效图像压缩技术。

存在各种技术,例如,使用视频压缩技术从当前图片之前或之后的图片来预测当前图片中包括的像素值的帧间预测技术、通过使用当前图片中的像素信息来预测当前图片中包括的像素值的帧内预测技术、将短代码分配给具有高出现频率的值并且将长代码分配给具有低出现频率的值的熵编码技术。可以通过使用这样的图像压缩技术来有效地压缩图像数据,并且可以发送或存储图像数据。

发明内容

技术问题

本发明的目的是提供高效的块划分方法和装置。

本发明的目的是提供用于得出帧内预测模式的方法和装置。

本发明的目的是提供用于确定用于帧内预测的参考区域的方法和装置。

本发明的目的是提供根据分量类型的帧内预测方法和装置。

技术解决方案

本发明的对图像进行编码/解码的方法和装置可以确定用于当前块的帧内预测的参考区域,得出当前块的帧内预测模式,并且基于参考区域和帧内预测模式来对当前块进行解码。

在本发明的对图像进行编码/解码的方法和装置中,在编码/解码装置中预定义的帧内预测模式可以被划分成MPM候选组和非MPM候选组,并且MPM候选组可以包括第一候选组或第二候选组中的至少之一。

在本发明的对图像进行编码/解码的方法和装置中,可以从第一候选组或第二候选组得出当前块的帧内预测模式。

在本发明的对图像进行编码/解码的方法和装置中,第一候选组可以由在解码装置中预定义的默认模式构成,并且第二候选组可以由多个MPM候选构成。

在本发明的对图像进行编码/解码的方法和装置中,默认模式可以是平面模式、DC模式、垂直模式、水平模式、竖直模式或对角线模式中的至少之一。

在本发明的对图像进行编码/解码的方法和装置中,多个MPM候选可以包括相邻块的帧内预测模式、通过从相邻块的帧内预测模式减去n值而获得的模式、或通过将n值加至相邻块的帧内预测模式而获得的模式中的至少之一。在本文中,n可以表示1、2或更大的自然数。

在本发明的对图像进行编码/解码的方法和装置中,多个MPM候选可以包括DC模式、垂直模式、水平模式、通过对垂直模式减去或加上m值而获得的模式、或通过对水平模式减去或加上m值而获得的模式中的至少之一。在本文中,m可以是1、2、3、4或更大的自然数。

在本发明的对图像进行编码/解码的方法和装置中,编码装置可以确定当前块的帧内预测模式所属的候选组,对用于识别候选组的标记进行编码,并且解码装置可以基于从编码装置通知的标记来选择第一候选组或第二候选组之一。

在本发明的对图像进行编码/解码的方法和装置中,可以通过将预定偏移施加至得出的帧内预测模式来改变得出的帧内预测模式。

在本发明的对图像进行编码/解码的方法和装置中,可以基于当前块的大小、形状、分割信息、帧内预测模式的值或分量类型中的至少之一来选择性地执行偏移的施加。

在本发明的对图像进行编码/解码的方法和装置中,确定参考区域可以包括搜索属于参考区域的不可用像素,以及用可用像素代替不可用像素。

在本发明的对图像进行编码/解码的方法和装置中,可用像素可以基于位深度值来确定,或者可以是与不可用像素的左、右、上或下中的至少之一相邻的像素。

有益效果

本发明可以通过自适应块划分来提高帧内预测编码/解码的效率。

根据本发明,可以通过基于MPM候选组得出帧内预测模式来更准确和高效地执行预测。

根据本发明,在色度块的情况下,通过将基于分量间参考的预测模式定义为单独的组,可以更高效地执行色度块的帧内预测模式导出。

根据本发明,可以通过用预定可用像素代替用于帧内预测的参考区域中的不可用像素来提高帧内预测的准确性和效率。

根据本发明,可以基于分量间参考来提高帧间预测的效率。

附图说明

图1是示出根据本发明的实施方式的图像编码装置的框图。

图2是示出根据本发明的实施方式的图像解码装置的框图。

图3示出了作为应用本发明的实施方式的将图片划分成多个片段区域的方法。

图4是示出在作为应用本发明的实施方式的图像编码/解码装置中预定义的帧内预测模式的示例性图。

图5示出了作为应用本发明的实施方式的基于帧内预测对当前块进行解码的方法。

图6示出了作为应用本发明的实施方式的代替参考区域中的不可用像素的方法。

图7示出了作为应用本发明的实施方式的改变/校正帧内预测模式的方法。

图8示出了作为应用本发明的实施方式的基于分量间参考的预测方法。

图9示出了作为应用本发明的实施方式的配置参考区域的方法。

图10是作为应用本发明的实施方式的用于逐步配置帧内预测模式设置的示例性图。

图11示出了作为应用本发明的实施方式的将帧内预测模式分类成多个候选组的方法。

图12是示出作为应用本发明的实施方式的当前块和与其相邻的像素的示例性图。

图13示出了作为应用本发明的实施方式的逐步执行帧内预测的方法。

图14是作为应用本发明的实施方式的用于帧内预测的任意像素的示例性图。

图15是作为应用本发明的实施方式的基于任意像素划分成多个子区域的示例性图。

最佳实施方式

本发明的对图像进行编码/解码的方法和装置可以确定用于当前块的帧内预测的参考区域,得出当前块的帧内预测模式,并且基于参考区域和帧内预测模式来对当前块进行解码。

在本发明的对图像进行编码/解码的方法和装置中,在编码/解码装置中预定义的帧内预测模式可以被划分成MPM候选组和非MPM候选组,并且MPM候选组可以包括第一候选组或第二候选组中的至少之一。

在本发明的对图像进行编码/解码的方法和装置中,可以从第一候选组或第二候选组得出当前块的帧内预测模式。

在本发明的对图像进行编码/解码的方法和装置中,第一候选组可以由在解码装置中预定义的默认模式构成,并且第二候选组可以由多个MPM候选构成。

在本发明的对图像进行编码/解码的方法和装置中,默认模式可以是平面模式、DC模式、垂直模式、水平模式、竖直模式或对角线模式中的至少之一。

在本发明的对图像进行编码/解码的方法和装置中,多个MPM候选可以包括相邻块的帧内预测模式、通过从相邻块的帧内预测模式减去n值而获得的模式、或通过将n值加至相邻块的帧内预测模式而获得的模式中的至少之一。在本文中,n可以表示1、2或更大的自然数。

在本发明的对图像进行编码/解码的方法和装置中,多个MPM候选可以包括DC模式、垂直模式、水平模式、通过对垂直模式减去或加上m值而获得的模式、或通过对水平模式减去或加上m值而获得的模式中的至少之一。在本文中,m可以是1、2、3、4或更大的自然数。

在本发明的对图像进行编码/解码的方法和装置中,编码装置可以确定当前块的帧内预测模式所属的候选组,对用于识别候选组的标记进行编码,并且解码装置可以基于从编码装置用信号通知的标记来选择第一候选组或第二候选组之一。

在本发明的对图像进行编码/解码的方法和装置中,可以通过将预定偏移施加至得出的帧内预测模式来改变得出的帧内预测模式。

在本发明的对图像进行编码/解码的方法和装置中,可以基于当前块的大小、形状、分割信息、帧内预测模式的值或分量类型中的至少之一来选择性地执行偏移的施加。

在本发明的对图像进行编码/解码的方法和装置中,确定参考区域可以包括搜索属于参考区域的不可用像素,以及用可用像素代替不可用像素。

在本发明的对图像进行编码/解码的方法和装置中,可用像素可以基于位深度值来确定,或者可以是与不可用像素的左、右、上或下中的至少之一相邻的像素。

本发明的实施方式

本发明可以以各种方式进行改变和修改并且可以参考不同的示例性实施方式进行说明,其中一些实施方式将在附图中描述和示出。然而,这些实施方式不旨在限制本发明,而是被理解为包括属于本发明的精神和技术范围的所有修改、等同方案和替换方案。在附图中自始至终相似的附图标记指代相似的元件。

虽然可以使用术语第一、第二等来描述各种元件,但是这些元件不应当受到这些术语的限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不偏离本发明的教导的情况下,第一元件可以被称为第二元件,并且同样地第二元件可以被称为第一元件。术语“和/或”包括多个关联列出项的任何组合和所有组合。

将要理解,当元件被称为“连接至”或“耦接至”另一元件时,元件可以直接连接或耦接至另一元件或中间元件。相反,当元件被称为“直接连接至”或“直接耦接至”另一元件时,不存在中间元件。

本文中使用的术语仅出于描述特定实施方式的目的,并且并不旨在限制本发明。如本文中所使用的,除非上下文另外清楚地指出,否则单数形式“一(a)”、“一个(an)”和“该(the)”旨在也包括复数形式。还将理解,当在本说明书中使用时,术语“包括”和/或“具有”指定所陈述的特征、单体、步骤、操作、元件和/或部件的存在,但是不排除一个或更多个其他特征、单体、步骤、操作、元件、部件和/或它们的组的存在或添加。

在下文中,将参照附图详细描述本发明的示例性实施方式。在附图中自始至终相似的附图标记指代相似的元件,并且在本文中将省略对相似元件的冗余描述。

图1是示出根据本发明的实施方式的图像编码装置的框图。

参照图1,图像编码装置100包括图片划分单元110、预测单元120和125、变换单元130、量化单元135、重排单元160、熵编码单元165、逆量化单元140、逆变换单元145、滤波器单元150和存储器155。

图1中示出的元件中的每一个被独立地示出以表示编码装置中的不同特性功能,但并不意指每个元件由单独的硬件或一个软件元件组成。即,为了便于描述,元件被独立地布置,其中,至少两个元件可以被组合成单个元件,或者单个元件可以被划分成多个元件以执行功能。要注意,在不偏离本发明的精神的情况下,一些元件被集成为一个组合的元件和/或元件被划分成多个单独的元件的实施方式被包括在本发明的范围内。

一些元件对于本发明的实质功能并非是必要的,并且可能是仅用于提高性能的可选构成元件。可以通过仅包括除了仅用于提高性能的构成元件之外的对于本发明的实施方式必要的构成元件来实施本发明。仅包括除了仅用于提高性能的光学构成元件之外的必要构成元件的结构属于本发明的范围。

图片划分单元110可以将输入图片划分成至少一个处理单元。在该情况下,处理单元可以是预测单元(PU)、变换单元(TU)或编码单元(CU)。图片划分单元110可以将一个图片划分成编码单元、预测单元和变换单元的多个组合,并且基于预定准则(例如,成本函数)选择编码单元、预测单元和变换单元的一个组合以对图片进行编码。

例如,可以将一个图片划分成多个编码单元。为了将图片划分成编码单元,可以使用诸如四叉树结构的递归树结构。作为根的一个图像、最大编码块(最大编码单元)或编码树单元(CTU)可以被划分成其他编码单元,并且可以划分有与划分的编码单元的数目一样多的子节点。根据某些限制不再划分的编码单元成为叶节点。即,当假设对于一个编码单元仅正方形划分是可能的时,一个编码单元可以被划分成多至四个不同的编码单元。

在本发明的实施方式中,编码单元不仅可以用于指代编码的单元而且还可以用于指代解码的单元。

预测单元可以是在一个编码单元内以诸如具有相同大小的至少一个正方形或矩形的形状划分的块,或者在一个编码单元内划分的预测单元中的一个预测单元可以具有与另一预测单元不同的形状和/或大小。

当基于编码单元执行帧内预测的预测单元不是最小编码单元时,可以在不划分成多个预测单元N×N的情况下执行帧内预测。

预测单元120和125可以包括用于执行帧间预测的帧间预测单元120和用于执行帧内预测的帧内预测单元125。预测单元120和125可以确定对PU执行帧间预测和帧内预测中的哪一个,并且可以确定所确定的预测方法的特定信息(例如,帧内预测模式、运动矢量和参考图片)。这里,对其执行预测的处理单元可以不同于对其确定了预测方法和特定信息的处理单元。例如,可以针对每个PU来确定预测方法和预测模式,而可以针对每个TU来执行预测。可以将生成的预测块与原始块之间的残差值(残差块)输入至变换单元130。此外,用于预测的预测模式信息、运动矢量信息等可以与残差值一起被熵编码单元165编码并且被发送至解码装置。当使用特定编码模式时,原始块可以被编码并且被发送至解码装置,而不由预测单元120和125生成预测块。

帧间预测单元120可以基于关于在当前图片的先前图片和当前图片的后续图片中的至少一个图片的信息来预测PU。在一些情况下,帧间预测单元120可以基于当前图片中的部分编码区域的信息来预测PU。帧间预测单元120可以包括参考图片插值单元、运动预测单元和运动补偿单元。

可以向参考图片插值单元提供来自存储器155的参考图片信息,并且参考图片插值单元可以生成小于或等于参考图片上的整数像素的像素信息。在亮度像素的情况下,可以使用具有可变滤波器系数的基于DCT的8抽头插值滤波器以1/4像素为单位生成小于或等于整像素的像素信息。在色度像素的情况下,可以使用具有可变滤波器系数的基于DCT的4抽头插值滤波器以1/8像素为单位生成小于或等于整像素的像素信息。

运动预测单元可以基于由参考图片插值单元插值的参考图片来执行运动预测。可以使用各种方法例如基于全搜索的块匹配算法(FBMA)、三步搜索(TSS)算法和新三步搜索(NTS)算法来计算运动矢量。基于插值像素,运动矢量具有以1/2或1/4像素为单位的运动矢量值。运动预测单元可以使用不同的运动预测方法来预测当前PU。可以将各种方法例如跳过模式、合并模式和高级运动矢量预测(AMVP)模式和帧内块复制模式等用作运动预测方法。

帧内预测单元125可以基于关于与当前块相邻的参考像素的信息来生成PU。当由于与当前PU相邻的块是已经执行了帧间预测的块而导致参考像素是已经执行了帧间预测的像素时,可以用关于已经执行了帧内预测的块中的参考像素的信息来代替关于已经执行了帧间预测的块中的参考像素的信息。即,当参考像素不可用时,可以用关于可用参考像素中的至少一个参考像素的信息来代替关于不可用参考像素的信息。

帧内预测的预测模式包括根据预测方向使用参考像素信息的方向预测模式、以及在执行预测时不使用关于方向的信息的非方向预测模式。用于预测亮度信息的模式和用于预测色度信息的模式可以彼此不同。此外,可以使用用于预测亮度信息的帧内预测模式信息或预测的亮度信号信息来预测色度信息。

当在执行帧内预测时预测单元的大小与变换单元的大小相同时,可以基于预测单元的左像素、左上像素和上像素来执行预测单元的帧内预测。然而,当在执行帧内预测时预测单元的大小与变换单元的大小不同时,可以使用基于变换单元确定的参考像素来执行帧内预测。此外,使用N×N划分的帧内预测可以仅用于最小编码单元。

在帧内预测方法中,可以通过根据预测模式对参考像素应用自适应帧内平滑(AIS)滤波器来生成预测块。可以对参考像素应用不同类型的AIS滤波器。在帧内预测方法中,可以根据与当前PU相邻的PU的帧内预测模式来预测当前PU的帧内预测模式。在使用根据相邻PU预测的模式信息来预测当前PU的预测模式中,当当前PU与相邻PU具有相同的帧内预测模式时,可以使用预定标记信息来发送指示当前PU与相邻PU具有相同的预测模式的信息。当当前PU与相邻PU具有不同的预测模式时,可以通过熵编码对关于当前块的预测模式的信息进行编码。

可以生成包括残差信息的残差块。残差信息是由预测单元120和125生成的预测单元与预测单元的原始块之间的差。生成的残差块可以被输入至变换单元130。

变换单元130可以通过使用诸如DCT(离散余弦变换)、DST(离散正弦变换)或KLT的变换类型来对包括由预测单元120和125生成的预测单元与原始块之间的残差信息的残差块进行变换。可以基于用于生成残差块的预测单元的帧内预测模式信息来确定是应用DCT、DST还是KLT来对残差块进行变换。

量化单元135可以对由变换单元130变换到频域的值进行量化。量化系数可以取决于图像的重要性或块而改变。可以将从量化单元135输出的值提供至逆量化单元140和重排单元160。

重排单元160可以对量化残差的系数值执行重排。

重排单元160可以通过系数扫描方法将二维(2D)块的系数变成一维(1D)矢量的系数。例如,重排单元160可以使用Z形扫描方法将DC系数扫描成高频区域中的系数,并且将其变成一维矢量形式。取决于变换单元的大小和帧内预测模式,可以使用在列方向上扫描二维块形状系数的垂直扫描或在行方向上扫描二维块形状系数的水平扫描来代替Z形扫描。即,根据变换单元的大小和帧内预测模式,可以确定要使用Z形扫描、垂直方向扫描和水平方向扫描中的哪一个。

熵编码单元165可以基于由重排单元160获得的值来执行熵编码。针对熵编码,可以使用各种编码方法例如指数哥伦布(Golomb)编码、上下文自适应可变长度编码(CAVLC)或上下文自适应二进制算术编码(CABAC)。

熵编码单元165可以对来自重排单元160以及预测单元120和125的各种信息例如编码单元的残差系数信息和块类型信息、预测模式信息、划分单元信息、预测单元信息、传输单元信息、运动矢量信息、参考帧信息、块插值信息和滤波信息进行编码。

熵编码单元165可以对从重排单元160输入的CU的系数进行熵编码。

逆量化单元140和逆变换单元145对由量化单元135量化的值进行去量化,以及对由变换单元130变换的值进行逆变换。可以通过将残差值加至预测的PU来生成重建块。残差值可以由逆量化单元140和逆变换单元145生成。预测的PU可以由预测单元120和125的运动矢量预测单元、运动补偿单元和帧内预测单元来预测。

滤波器单元150可以包括去块滤波器、偏移单元和自适应环路滤波器(ALF)中的至少之一。

去块滤波器可以去除由重建图片中的块之间的边界生成的块失真。可以基于块的若干行或列中包括的像素来确定是否对当前块应用去块滤波器。当对块应用去块滤波器时,可以取决于所需的去块滤波强度来应用强滤波器或弱滤波器。当在应用去块滤波器时执行水平滤波和垂直滤波时,可以并行地执行水平滤波和垂直滤波。

偏移单元可以以像素为单位对去块滤波图像施加相对于原始图像的偏移。可以在将图片的像素划分成预定数目的区域之后确定可以对其施加偏移的区域。可以考虑关于每个像素的边缘信息或对确定的区域施加偏移的方法而对确定的区域施加偏移。

ALF可以基于滤波重建图像与原始图像的比较结果来执行滤波。可以将图像中包括的像素划分成预定组,可以确定要应用于每个组的滤波器,以及可以针对每个组执行差分滤波。可以由每个编码单元传输关于是否应用ALF的信息,并且要应用于每个块的ALF的形状和滤波器系数可以变化。此外,可以与块的特性无关地对块应用具有相同形式(固定形式)的ALF。

存储器155可以存储从滤波器单元150输出的重建块或重建图片,并且当执行帧间预测时,存储的重建块或重建图片可以被提供至预测单元120和125。

图2是示出根据本发明的示例性实施方式的图像解码装置的框图。

参照图2,图像解码装置200可以包括熵解码单元210、重排单元215、去量化单元220、逆变换单元225、预测单元230和235、滤波器单元240和存储器245。

当从图像编码装置输入图像比特流时,可以以与图像编码装置的过程相反的过程对输入比特流进行解码。

熵解码单元210可以以与在图像编码装置的熵编码单元中执行熵编码的过程相反的过程来执行熵解码。例如,可以与由图像编码装置执行的方法对应地应用各种方法例如指数哥伦布编码、CAVLC或CABAC。

熵解码单元210可以对与由编码装置执行的帧内预测和帧间预测相关联的信息进行解码。

重排单元215可以基于编码装置的重排方法来执行对由熵解码单元210熵解码的比特流的重排。重排单元215可以将1D矢量的系数重建并重排成2D块的系数。可以向重排单元215提供关于由编码装置执行的系数扫描的信息,并且重排单元215可以基于由编码装置执行的扫描顺序使用对系数进行逆扫描的方法来执行重排。

去量化单元220可以基于由编码装置提供的量化参数以及块的重排系数来执行去量化。

逆变换单元225可以相对于由变换单元对由图像编码装置执行的量化结果执行的变换即DCT、DST和KLT来执行逆变换即逆DCT、逆DST和逆KLT。可以基于由图像编码装置确定的传输单元来执行逆变换。图像解码装置的逆变换单元225可以根据诸如预测方法、当前块的大小和预测方向的多条信息来选择性地执行变换技术(例如,DCT、DST、KLT)。

预测单元230和235可以基于所提供的用于生成预测块的信息以及关于先前解码的块或图片的信息来生成预测块。用于生成预测块的信息可以由熵解码单元210提供。关于先前解码的块或图片的信息可以从存储器245提供。

如上所述,当以与图像编码装置的操作相同的方式执行帧内预测时如果预测单元的大小与变换单元的大小相同,可以基于预测单元的左像素、左上像素和上像素来执行预测单元的帧内预测。然而,当在执行帧内预测时如果预测单元的大小与变换单元的大小彼此不同,可以使用基于变换单元确定的参考像素来执行预测单元的帧内预测。另外,使用N×N划分的帧内预测可以仅用于最小编码单元。

预测单元230和235可以包括预测单元确定单元、帧间预测单元和帧内预测单元。预测单元确定单元可以从熵解码单元210接收各种信息例如预测单元信息、帧内预测方法的预测模式信息和帧间预测方法的运动预测相关信息等,可以确定当前编码单元的预测单元。预测单元确定单元可以确定对预测单元执行帧间预测和帧内预测中的哪一个。帧间预测单元230可以基于关于包括当前预测单元的当前图片的先前图片和后续图片中的至少之一的信息对当前预测单元执行帧间预测。在本文中,帧间预测单元230可以使用从图像编码装置提供的当前预测单元的帧间预测所需的信息。可以基于包括当前预测单元的当前图片中的预重建的部分区域的信息来执行帧间预测。

为了执行帧间预测,可以以编码单元为单位来确定编码单元中包括的预测单元的运动预测方法是跳过模式、合并模式、AMVP模式还是帧内块复制模式。

帧内预测单元235可以基于当前图片中的像素信息来生成预测块。当预测单元是对其执行帧内预测的预测单元时,可以基于从图像编码装置提供的关于预测单元的帧内预测模式信息来执行帧内预测。帧内预测单元235可以包括AIS(自适应帧内平滑)滤波器、参考像素插值单元和DC滤波器。AIS滤波器对当前块的参考像素执行滤波。AIS滤波器可以取决于当前预测单元的预测模式来判定是否应用滤波器。可以使用从图像编码装置提供的关于AIS滤波器的信息和预测单元的预测模式对当前块的参考像素执行AIS滤波。当当前块的预测模式是不执行AIS滤波的模式时,可以不应用AIS滤波器。

当预测单元的预测模式指示基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值单元可以通过对参考像素进行插值以小于整数像素(即,全像素)的分数像素为单位生成参考像素。当当前预测单元的预测模式指示在不对参考像素进行插值的情况下生成预测块的预测模式时,可以不对参考像素进行插值。当当前块的预测模式是DC模式时,DC滤波器可以通过滤波来生成预测块。

重建块或重建图片可以被提供至滤波器单元240。滤波器单元240包括去块滤波器、偏移单元和ALF。

图像编码装置可以提供关于是否对对应的块或图片应用去块滤波器的信息以及关于在使用去块滤波器时应用强滤波器和弱滤波器中的哪一个的信息。可以向图像解码装置的去块滤波器提供来自图像编码装置的关于去块滤波器的信息,并且去块滤波器可以对对应的块执行去块滤波。

偏移单元可以基于关于在编码过程中应用于图片的偏移类型和偏移值的信息来对重建图片施加偏移。

可以基于从编码装置提供的关于是否应用ALF的信息和ALF系数信息等来对编码单元应用ALF。ALF信息可以被包括在特定参数集中并且在特定参数集中被提供。

存储器245可以存储用作参考图片或参考块的重建图片或重建块,并且可以将重建图片提供至输出单元。

在本说明书中,编码单元、编码块、当前块等可以被解释为相同的含义。稍后将描述的实施方式可以由图像编码装置和/或图像解码装置的对应的单元执行。

图3示出了作为应用本发明的实施方式的将图片划分成多个片段区域的方法。

一个图片可以被划分成预定片段区域。根据本发明的片段区域可以包括子图片、切片、图块、编码树单元(CTU)或编码单元(CU)中的至少之一。

参照图3,图片300可以包括一个或更多个子图片。即,图片可以由一个子图片构成,或者可以如图3所示被划分成多个子图片。

在子图片的情况下,可以根据编码设置不同地配置划分信息。(1)例如,可以基于与图片交叉的垂直线或水平线,以批划分方法获得子图片。(2)替选地,可以基于每个子图片的特征信息(位置、大小、形状等,对于稍后描述的形状,假设矩形角)通过部分划分方法获得子图片。

在前一情况下,可以基于划分子图片的垂直线或水平线来配置子图片的划分信息。

基于线的划分可以使用统一或不统一的划分。当使用统一的方法时,可以生成关于每条线的划分数的信息,并且当使用不统一的方法时,可以生成线之间的距离信息(宽度或高度)。可以取决于编码设置使用统一或不统一的划分方法,或者可以显式地生成方法选择信息。统一或不统一的划分方法可以共同应用于垂直线和水平线。替选地,应用于垂直线和水平线的方法彼此不同。可以基于划分信息来得出关于子图片的数目的信息。

线之间的距离信息可以以诸如n样本单位、CTU大小、(2*CTU大小)、(4*CTU大小)等的单位进行编码。这里,n可以是4、8、16、32、64、128、256或更大的自然数。可以在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)和图片标头(PH)中的至少一个级别处通知生成的信息。

(2)在后一情况下,可以使用子图片的位置信息(例如,指示每个子图片的左上、右上、左下和右下的位置的信息)、大小信息(例如,指示宽度或高度的信息)、关于子图片的数目的信息等来配置子图片的划分信息。

可以由编码装置对指定子图片的数目的信息(在下文中,数目信息)进行编码,并且解码装置可以基于经编码的数目信息来确定配置一个图片的子图片的数目。可以在VPS、SPS、PPS和PH中的至少一个级别处通知数目信息。替选地,可以基于子图片的划分信息(位置、大小信息等)隐式地得出子图片的数目信息。

指定每个子图片的位置的信息(在下文中,位置信息)可以包括对应的子图片的预先提供的位置的x坐标或y坐标。预先提供的位置可以在子图片的左上、右上、左下和右下中确定。位置信息可以由编码装置编码,并且解码装置可以基于经编码的位置信息来确定每个子图片的位置。这里,x坐标/y坐标可以以诸如n样本单位、CTU大小、(2*CTU大小)、(4*CTU大小)的单位来表达。这里,n可以是1、2、4、8、16、32、64、128、256或更大的自然数。例如,在使用子图片的左上CTU的x坐标和y坐标对位置信息进行编码的情况下,如果以CTU(CtbSize)为单位宽度和高度分别为2和3,则可以将子图片的位置(左上)确定为(2*CtbSize,3*CtbSize)。

指定每个子图片的大小的信息(在下文中,大小信息)可以包括对应的子图片的宽度信息和高度信息中的至少之一。这里,宽度/高度信息可以以诸如n样本单位、CTU大小、(2*CTU大小)、(4*CTU大小)等的单位进行编码。这里,n可以是4、8、16、32、64、128、256或更大的自然数。例如,在以CTU大小(CtbSize)为单位对宽度信息进行编码的情况下,如果宽度信息为6,则可以将子图片的宽度确定为(6*CtbSize)。

上述位置信息和大小信息可以被限制为仅当属于图片的子图片的数目是2或更多时才被编码/解码。即,如果根据数目信息的子图片的数目大于或等于2,则通知位置信息和大小信息。否则,可以将子图片设置成具有与图片相同的位置/大小。然而,即使当子图片的数目是2或更多时,也可以不通知位于图片的左上处的第一子图片的位置信息,并且可以根据关于第二子图片的位置信息通知位于图片的左上处的第一子图片的位置信息。此外,可以不通知关于图片的最后子图片的位置信息或大小信息中的至少之一。

参照图3,一个子图片可以包括一个或更多个切片。即,一个子图片可以由一个切片构成或者可以被划分成多个切片。子图片可以由在水平方向上划分的多个切片构成,或者可以由在垂直方向上划分的多个切片构成。

指定属于一个图片或子图片的切片的数目的信息(在下文中,数目信息)由编码装置编码,并且解码装置可以基于经编码的数目信息来确定子图片或一个图片中的子图片的数目。可以在VPS、SPS、PPS和PH中的至少一个级别处通知数目信息。然而,可以仅在允许矩形切片的情况或者一个子图片不是由一个切片构成的情况中的至少一种情况下通知数目信息。

指定每个切片的大小的信息(在下文中,大小信息)可以包括对应的切片的宽度信息和高度信息中的至少之一。这里,可以以图块或CTU为单位对宽度/高度信息进行编码。

然而,可能不允许一个切片被划分成以与多个子图片交叠。换言之,一个子图片可以被划分成完全包括一个或更多个切片。替选地,构成一个子图片的切片可以被限制为仅在水平方向或垂直方向上被划分。

参照图3,一个子图片或切片310可以包括一个或更多个图块。即,一个切片可以由一个图块构成或者可以由多个图块构成。然而,本发明不限于此,并且多个切片可以被包括在一个图块中。作为示例,一个切片可以由属于一个图块的多个CTU行的子集构成。在该情况下,指定属于一个图块的切片的数目的信息(在下文中,数目信息)由编码装置编码,并且解码装置可以基于经编码的数目信息来确定构成一个图块的切片的数目。指定每个切片的大小的信息(在下文中,大小信息)可以包括对应的切片的宽度信息和高度信息中的至少之一。这里,可以以CTU大小为单位对宽度/高度信息进行编码。然而,当一个切片由多个CTU行的子集构成时,仅可以通知对应的切片的高度信息,并且可以不通知宽度信息。可以在VPS、SPS、PPS或PH中的至少一个级别处通知数目/大小信息。

仅当将图片划分成预定片段区域时,才需要上述关于数目、位置和大小的信息中的至少之一。例如,仅当将图片划分成多个切片或图块时,才可以通知信息。为此,可以使用指示当前图片是否被划分成多个切片或图块的单独的标记。可以在VPS、SPS、PPS和PH中的至少一个级别处通知标记。

参照图3,一个图块可以由多个CTU构成,并且一个CTU 320(在下文中,第一块)可以被垂直线或水平线中的至少之一划分成多个子块(在下文中,第二块)。垂直线和水平线的数目可以是一个、两个或更多。在下文中,第一块不限于CTU,并且可以是从CTU划分的编码块(CU)、作为预测性编码/解码的基本单元的预测块(PU)、或者作为变换编码/解码的基本单元的变换块(TU)。第一块可以是正方形块或非正方形块。

不仅可以基于四叉树而且可以基于诸如二叉树或三叉树的多树来执行第一块的划分。

具体地,四叉树划分(QT)是其中第一块被划分成四个第二块的划分类型。例如,当通过QT来划分2N×2N的第一块时,第一块可以被划分成具有N×N大小的四个第二块。QT可以被限制成适用于仅正方形块,但是也可适用于非正方形块。

二叉树划分(BT)是其中第一块被划分成两个第二块的划分类型。BT可以包括水平二叉树(在下文中,水平BT)和垂直二叉树(在下文中,垂直BT)。水平BT是其中第一块被一条水平线划分成两个第二块的划分类型。该划分可以对称地或不对称地执行。例如,当基于水平BT来划分2N×2N的第一块时,第一块可以被划分成具有(a∶b)的高度比的两个第二块。这里,a和b可以是相同的值,而a可以大于或小于b。垂直BT是其中第一块被一条垂直线划分成两个第二块的划分类型。该划分可以对称地或不对称地执行。例如,当基于垂直BT来划分2N×2N的第一块时,第一块可以被划分成具有(a∶b)的宽度比的两个第二块。这里,a和b可以是相同的值,而a可以大于或小于b。

三叉树划分(TT)是其中第一块被划分成三个第二块的划分类型。同样地,TT可以包括水平三叉树(在下文中,水平TT)和垂直三叉树(在下文中,垂直TT)。水平TT是其中第一块被两条水平线划分成三个第二块的划分类型。例如,当基于水平TT来划分2N×2N的第一块时,第一块可以被划分成具有(a∶b∶c)的高度比的三个第二块。这里,a、b和c可以是相同的值。替选地,a和c可以相同,并且b可以大于或小于a。例如,a和c可以是2,并且b可以是1。垂直TT是其中第一块被两条垂直线划分成三个第二块的划分类型。例如,当基于垂直TT来划分2N×2N的第一块时,第一块可以被划分成具有(a∶b∶c)的宽度比的三个第二块。这里,a、b和c可以是相同值或不同值。替选地,a和c可以相同,而b可以大于或小于a。替选地,a和b可以相同,而c可以大于或小于a。替选地,b和c相同,而a可以大于或小于b。例如,a和c可以是2,并且b可以是1。

可以基于从编码装置通知的划分信息来执行上述划分。划分信息可以包括划分类型信息、划分方向信息或划分比率信息中的至少之一。

划分类型信息可以指定在编码/解码装置中预定义的划分类型中的任何一个。预定义的划分类型可以包括QT、水平BT、垂直BT、水平TT、垂直TT或非划分模式(无分割)中的至少之一。替选地,划分类型信息可以表示关于是否应用QT、BT或TT的信息,并且可以以标记或索引的形式编码。作为示例,划分类型信息可以包括指示是否应用QT的第一标记或者指示是否应用BT或TT的第二标记中的至少之一。可以根据第二标记选择性地使用BT或TT。然而,仅当第一块的大小小于或等于预定阈值大小时,才可以通知第一标记。阈值大小可以是64、128或更大的自然数。当第一块的大小大于阈值大小时,可以使用仅QT来强制划分第一块。另外,仅当根据第一标记没有应用QT时,才可以通知第二标记。

在BT或TT的情况下,划分方向信息可以指示其是水平划分还是垂直划分。在BT或TT的情况下,划分比率信息可以指示第二块的宽度比和/或高度比。

图3中示出的块320被假设为大小为8N×8N且划分深度为k的正方形块(在下文中,第一块)。当第一块的划分信息指示QT划分时,第一块可以被划分成四个子块(在下文中,第二块)。第二块的大小可以为4N×4N,并且划分深度可以为(k+1)。

可以基于QT、BT、TT或非划分模式来再次划分四个第二块。例如,当第二块的划分信息指示水平BT时,第二块被划分成两个子块(在下文中,第三块)。在该情况下,第三块的大小可以为4N×2N,并且划分深度可以为(k+2)。

还可以基于QT、BT、TT或非划分模式再次划分第三块。例如,当第三块的划分信息指示垂直BT时,第三块被划分成两个子块321和322。在该情况下,子块321和322的大小可以为2N×2N,并且划分深度为(k+3)。替选地,当第三块的划分信息指示水平BT时,第三块可以被划分成两个子块323和324。在该情况下,子块323和324的大小可以为4N×N,并且划分深度为(k+3)。

划分可以独立地执行或者与相邻块并行地执行,或者可以根据预定优先级顺序来顺序地执行。

可以取决于当前块的上部块的划分信息或相邻块的划分信息中的至少之一来确定当前块的划分信息。例如,当基于水平BT来划分第二块并且基于垂直BT来划分上部第三块时,不需要基于垂直BT来划分下部第三块。如果通过垂直BT来划分下部第三块,则这与通过QT来划分第二块的结果相同。因此,可以跳过对下部第三块的划分信息(特别是划分方向信息)的编码,并且解码装置可以被设置成使得下部第三块在水平方向上被划分。

上部块可以表示具有与当前块的划分深度更小的划分深度的块。例如,当当前块的划分深度为(k+2)时,上部块的划分深度可以为(k+1)。相邻块可以是与当前块的上或左侧相邻的块。相邻块可以是具有与当前块相同的划分深度的块。

可以重复地执行上述划分,直到编码/解码的最小单元。当划分成最小单元时,不再从编码装置通知块的划分信息。关于最小单元的信息可以包括最小单元的大小或形状中的至少之一。最小单元的大小可以由宽度、高度、宽度和高度的最小值或最大值、宽度和高度的总和、像素数或划分深度表示。关于最小单元的信息可以以视频序列、图片、切片或块单元中的至少之一来通知。替选地,关于最小单元的信息可以是在编码/解码装置中预定义的值。可以针对CU、PU和TU中的每一个通知关于最小单元的信息。关于一个最小单元的信息可以均等地应用于CU、PU和TU。可以通过上述块划分来获得下述实施方式中的块。

可以在可支持的范围内获得根据本发明的实施方式的块划分,并且可以支持针对此的块划分设置信息。例如,块划分设置信息可以包括与最大编码块(CTU)、最小编码块、最大变换块和最小变换块有关的m×n大小(例如,m和n是诸如2、4、8、16、32、64、128等的自然数),以及每个块的最大划分深度k(例如,编码/变换x帧内/帧间x QT/BT/TT等,k为0、1、2或更多)。并且,其可以在VPS、SPS、PPS、PH或切片标头中的至少一个级别处通知。

在上述片段区域(子图片、切片、图块等)中的一些的情况下,为了对每个片段区域进行分段/划分(例如,得出片段区域的位置和大小信息),可能需要预定基本信息(例如,关于对应的片段区域例如CTU或图块的下部或基本单元的信息)。在该情况下,可以顺序地进行VPS-SPS-PPS,但是为了同时进行编码/解码,可能需要在支持每个片段区域的分段/划分的级别处提供基本信息。

例如,可以在SPS中生成(固定地生成)CTU信息,并且可以根据是否划分成子图片(假设在SPS中被处理)来使用(如果划分)CTU信息。替选地,可以根据是否划分成切片或图块(假设在PPS中被处理)来生成(如果划分则另外生成)CTU信息,并且可以基于此来将CTU信息划分成切片和图块。

总之,可以在一个级别处生成用于片段图像的分段/划分的基本信息。替选地,可以根据片段图像的类型在两个或更多个级别处生成用于分段/划分的基本信息。

不管片段图像的类型如何,可以在一个级别处生成与片段图像的段有关的基本信息(语法或标记)。替选地,可以根据片段图像在多个级别处生成与每个片段图像的段有关的基本信息。在该情况下,即使基本信息可以在两个或更多个级别处发生和存在,也可以通过设置为彼此具有相同的值或信息来保持与在一个级别处发生和存在相同的效果。然而,在基本信息的情况下,具有相同值或信息可以是默认设置,但是不限于此,并且可以将它们改变为具有不同的值或信息。

图4是示出在作为应用本发明的实施方式的图像编码/解码装置中预定义的帧内预测模式的示例性图。

参照图4,预定义帧内预测模式可以被定义为由67个模式构成的预测模式候选组,并且具体地可以包括65个方向性模式(第2号至第66号)和两个非方向性模式(DC,平面)。在该情况下,可以基于斜率信息(例如,dy/dx)或角度信息(度)来识别方向性模式。在以上示例中描述的帧内预测模式中的全部或一些可以被包括在亮度分量或色度分量的预测模式候选组中,并且其他附加模式可以被包括在预测模式候选组中。

另外,已经使用颜色空间之间的相关性进行编码/解码的另一颜色空间的重建块可以用于当前块的预测,并且可以包括支持的预测模式。例如,在色度分量的情况下,可以通过使用与当前块对应的亮度分量的重建块来生成当前块的预测块。即,可以通过考虑颜色空间之间的相关性,基于重建块来生成预测块。

可以根据编码/解码设置来自适应地确定预测模式候选组。出于提高预测的准确性的目的,可以增加候选组的数目,以及出于减少根据预测模式的比特的量的目的,可以减少候选组的数目。

例如,可以选择候选组A(67,65个方向性模式和2个非方向性模式)、候选组B(35,33个方向性模式和2个非方向性模式)或候选组C(18,17个方向性模式和1个非方向性模式)中之一,并且可以基于块的大小和形状来自适应地选择或确定候选组。

另外,根据编码/解码设置,可以具有预测模式候选组的各种配置。例如,如图4所示,预测模式候选组可以被配置成使得模式间隔为偶数,或预测模式候选组可以被配置成使得图4中的模式18与模式34之间的模式的数目大于模式2与模式18之间的模式的数目。相反的情况也是可能的。可以根据块的形状(即,正方形、宽度大于高度的非正方形、高度大于宽度的非正方形等)来自适应地配置候选组。

例如,当当前块的宽度大于高度时,可以不使用属于模式2至模式18的帧内预测模式中的全部或一些,并且可以用属于模式67至模式80的帧内预测模式中的全部或一些代替属于模式2至模式18的帧内预测模式中的全部或一些。另一方面,当当前块的宽度小于高度的情况下,不使用属于模式50至模式66的帧内预测模式中的全部或一些,并且可以用属于模式-14至模式-1的帧内预测模式中的全部或一些代替属于模式50至模式66的帧内预测模式中的全部或一些。

在本发明中,除非另有说明,否则假设使用具有统一模式间隔的一个预设预测模式候选组(候选组A)执行帧内预测,但是也可以将本发明的主要元素应用于自适应帧内预测设置。

图5示出了作为应用本发明的实施方式的基于帧内预测对当前块进行解码的方法。

参照图5,可以确定用于当前块的帧内预测的参考区域(S500)。

根据本发明的参考区域可以是与当前块的左、上、左上、左下或右上中的至少之一相邻的区域。另外,尽管图5中未示出,但是参考区域还可以包括与当前块的右、右下或下中的至少之一相邻的区域,并且可以基于当前块的帧内预测模式、编码/解码顺序、扫描顺序等被选择性地使用。

编码/解码装置可以定义可用于帧内预测的多个像素线。多个像素线可以包括与当前块相邻的第一像素线、与第一像素线相邻的第二像素线、与第二像素线相邻的第三像素线、或者与第三像素线相邻的第四像素线中的至少之一。

例如,取决于编码/解码设置,多个像素线可以包括第一像素线至第四像素线的全部,或者可以包括除了第三像素线之外的仅剩余像素线。替选地,多个像素线可以包括仅第一像素线和第四像素线,或者可以包括仅第一像素线至第三像素线。

当前块可以选择多个像素线中的一个或更多个,并将其用作参考区域。在该情况下,可以基于从编码装置通知的索引(refIdx)来执行选择。替选地,可以基于预定编码信息来执行选择。这里,编码信息可以包括当前块的大小、形状和划分类型、帧内预测模式是否是非方向性模式、帧内预测模式是否是水平方向性、帧内预测模式的角度或分量类型中的至少之一。

例如,当帧内预测模式是平面模式或DC模式时,可以限制使用仅第一像素线。替选地,当当前块的大小小于或等于预定阈值时,可以限制使用仅第一像素线。这里,大小可以被表达为当前块的宽度或高度(例如,最大值、最小值等)、宽度和高度的总和、或属于当前块的样本数中的任何一个。替选地,当帧内预测模式的角度大于预定阈值角度(或小于预定阈值角度)时,可以使用仅第一像素线。阈值角度可以是与前面提及的预测模式候选组中的模式2或模式66对应的帧内预测模式的角度。

同时,可能存在参考区域的像素中的至少之一不可用的情况,并且在该情况下,可以用预定默认值或可用像素代替不可用像素。这将参照图6进行详细描述。

参照图5,可以得出当前块的帧内预测模式(S510)。

当前块是包括亮度块和色度块的概念,并且可以针对亮度块和色度块中的每一个确定帧内预测模式。在下文中,假设在解码装置中预定义的帧内预测模式由非方向性模式(平面模式、DC模式)和65个方向性模式构成。

1.亮度块的情况

上述预定义帧内预测模式可以被划分成MPM候选组和非MPM候选组。可以通过选择性地使用MPM候选组或非MPM候选组来得出当前块的帧内预测模式。为此,可以使用指示是否从MPM候选组得出当前块的帧内预测模式的标记(在下文中,第一标记)。例如,当第一标记是第一值时,可以使用MPM候选组,而当第一标记是第二值时,可以使用非MPM候选组。

具体地,当第一标记是第一值时,可以基于包括至少一个MPM候选和MPM索引的MPM候选组(candModeList)来确定当前块的帧内预测模式。MPM索引可以是指定属于MPM候选组的MPM候选中的任何一个的信息。仅当多个MPM候选属于MPM候选组时,才可以通知MPM索引。

另一方面,当第一标记是第二值时(即,当在MPM候选组中不存在与当前块的帧内预测模式相同的MPM候选时),可以基于通知的剩余模式信息来确定当前块的帧内预测模式。剩余模式信息可以指定除了MPM候选之外的剩余模式中的任何一个。

在下文中,将描述确定MPM候选组的方法。

(实施方式1)MPM候选组可以包括相邻块的帧内预测模式(模式A)、模式A-n、模式A+n或默认模式中的至少之一。n值可以是1、2、3、4或更大的整数。相邻块可以表示与当前块的左和/或上相邻的块。然而,本发明不限于此,并且相邻块可以包括左上相邻块、左下相邻块或右上相邻块中的至少之一。默认模式可以是平面模式、DC模式或预定方向性模式中的至少之一。预定方向性模式可以包括水平模式(模式V)、垂直模式(模式H)、模式V-k、模式V+k、模式H-k或模式H+k中的至少之一。这里,k可以是1、2、3、4、5或更大的整数。

MPM索引可以在MPM候选组的MPM中指定与当前块的帧内预测模式相同的MPM。即,可以将由MPM索引指定的MPM设置为当前块的帧内预测模式。

(实施方式2)MPM候选组可以被划分成m个候选组。m可以是2、3、4或更大的整数。在下文中,为了便于描述,假设MPM候选组被划分成第一候选组和第二候选组。

编码/解码装置可以选择第一候选组或第二候选组。可以基于指定当前块的帧内预测模式是属于第一候选组还是第二候选组的标记(在下文中,第二标记)来执行选择。例如,如果第二标记是第一值,则可以从第一候选组得出当前块的帧内预测模式,否则,可以从第二候选组得出当前块的帧内预测模式。

具体地,当根据第二标记使用第一候选组时,可以通知指定属于第一候选组的多个默认模式中的任何一个的第一MPM索引。可以将与通知的第一MPM索引对应的默认模式设置为当前块的帧内预测模式。另一方面,当第一候选组由一个默认模式构成时,不通知第一MPM索引,并且可以将当前块的帧内预测模式设置为第一候选组的默认模式。

当根据第二标记使用第二候选组时,可以通知指定属于第二候选组的多个MPM候选中的任何一个的第二MPM索引。与通知的第二MPM索引对应的MPM候选可以被设置为当前块的帧内预测模式。另一方面,当第二候选组由一个MPM候选构成时,不通知第二MPM索引,并且可以将当前块的帧内预测模式设置为第二候选组的MPM候选。

同时,仅当上述第一标记是第一值(条件1)时,才可以通知第二标记。此外,仅当当前块的参考区域被确定为第一像素线时,才可以通知第二标记。当当前块参考不相邻像素线时,第一候选组的MPM候选可以被限制成使得它们不被使用。或者相反,当根据第二标记从第一候选组得出当前块的帧内预测模式时,当前块可以被限制成参考仅第一像素线。

另外,仅当当前块不以子块为单位执行帧内预测(条件2)时,才可以通知第二标记。相反,当当前块以子块为单位执行帧内预测时,可以不通知标记,并且可以在解码装置中将标记设置为等于第二值。

当满足上述条件1或条件2中的任何一个时,可以通知第二标记,或者当满足条件1和条件2两者时,可以通知第二标记。

第一候选组可以由预定义默认模式构成。默认模式可以是方向性模式或非方向性模式中的至少之一。例如,方向性模式可以包括垂直模式、水平模式和对角线模式中的至少之一。非方向性模式可以包括平面模式和DC模式中的至少之一。

第一候选组可以包括仅r个非方向性模式或方向性模式。r可以是1、2、3、4、5或更大的整数。r可以是预先提供给编码/解码装置的固定值,或者可以基于预定编码参数来可变地确定。

第二候选组可以包括多个MPM候选。然而,第二候选组可以被限制成不包括属于第一候选组的默认模式。MPM候选的数目可以是2、3、4、5、6或更多。MPM候选的数目可以是预先提供给编码/解码装置的固定值,或者可以基于编码参数来可变地确定。可以基于与当前块相邻的相邻块的帧内预测模式来得出MPM候选。相邻块可以是与当前块的左、上、左上、左下或右上中的至少之一相邻的块。

具体地,可以考虑左块的帧内预测模式(candIntraPredModeA)和上块的帧内预测模式(candIntraPredModeB)是否相同以及candIntraPredModeA和candIntraPredModeB是否为非方向性模式来确定MPM候选。

[情况1]例如,当candIntraPredModeA和candIntraPredModeB相同并且candIntraPredModeA不是非方向性模式时,当前块的MPM候选可以包括candIntraPredModeA、(candIntraPredModeA-n)、(IntraPredModeA+n)或非方向性模式中的至少之一。这里,n可以是1、2或更大的整数。非方向性模式可以包括平面模式或DC模式中的至少之一。作为示例,可以如以下表1所示来确定当前块的MPM候选。表1的索引指定MPM候选的位置或优先级,但不限于此。

[表1]

[情况2]或者,当candIntraPredModeA与candIntraPredModeB不相同并且candIntraPredModeA和candIntraPredModeB两者均不是非方向性模式时,当前块的MPM候选可以包括candIntraPredModeA、candIntraPredModeB、(maxAB-n)、(maxAB+n)、(minAB-n)、(minAB+n)或非方向性模式中的至少之一。这里,maxAB和minAB分别表示candIntraPredModeA和candIntraPredModeB的最大值和最小值,并且n可以是1、2或更大的整数。非方向性模式可以包括平面模式或DC模式中的至少之一。作为示例,基于candIntraPredModeA和candIntraPredModeB之间的差值D,可以如以下表2所示来确定第二候选组的候选模式。表2的索引指定MPM候选的位置或优先级,但不限于此。

[表2]

在以上表2中,基于minAB得出MPM候选中的一个,并且基于maxAB得出另一个。然而,本发明不限于此,并且可以基于maxAB与minAB无关地得出MPM候选,并且相反地,可以基于minAB与maxAB无关地得出MPM候选。

[情况3]当candIntraPredModeA与candIntraPredModeB不相同并且candIntraPredModeA和candIntraPredModeB中仅一个是非方向性模式时,当前块的MPM候选可以包括maxAB、(maxAB-n)、(maxAB+n)或非方向性模式中的至少之一。这里,maxAB表示candIntraPredModeA和candIntraPredModeB的最大值,并且n可以是1、2或更大的整数。非方向性模式可以包括平面模式或DC模式中的至少之一。作为示例,可以如以下表3所示来确定当前块的MPM候选。表3的索引指定MPM候选的位置或优先级,但不限于此。

[表3]

[情况4],当candIntraPredModeA与candIntraPredModeB不相同并且candIntraPredModeA和candIntraPredModeB两者均是非方向性模式时,当前块的MPM候选可以包括非方向性模式、垂直模式、水平模式、(垂直模式-m)、(垂直模式+m)、(水平模式-m)或(水平模式+m)中的至少之一。这里,m可以是1、2、3、4或更大的整数。非方向性模式可以包括平面模式或DC模式中的至少之一。作为示例,可以如以下表4所示来确定当前块的MPM候选。表4的索引指定MPM候选的位置或优先级,但不限于此。例如,可以将索引1分配给水平模式,或者可以将最大索引分配给水平模式。此外,MPM候选可以包括对角线模式(例如,模式2、模式34、模式66)、(对角线模式-m)或(对角线模式+m)中的至少之一。

[表4]

可以基于预定偏移来改变/校正通过上述过程解码的帧内预测模式(IntraPredMode),这将参照图7进行详细描述。

2.色度块的情况

色度块的预定义帧内预测模式可以被划分成第一组和第二组。这里,第一组可以配置有基于分量间参考的预测模式,并且第二组可以配置有上述预定义帧内预测模式中的全部或一些。

可以通过选择性地使用第一组或第二组来得出色度块的帧内预测模式。可以基于预定第三标记来执行选择。第三标记可以指示是基于第一组还是第二组来得出色度块的帧内预测模式。

例如,当第三标记是第一值时,可以将色度块的帧内预测模式确定为属于第一组的一个或更多个基于分量间参考的预测模式中之一。这将在图8中进行详细描述。

另一方面,当第三标记是第二值时,可以将色度块的帧内预测模式确定为属于第二组的多个帧内预测模式中之一。作为示例,可以如表5所示定义第二组,并且可以基于由编码装置通知的信息(intra_chroma_pred_mode)和亮度块的帧内预测模式(intraPredModeY)来得出色度块的帧内预测模式。

[表5]

根据表5,可以基于通知的信息和亮度块的帧内预测模式来确定色度块的帧内预测模式。表5中列出的模式编号对应于图4中的模式编号。例如,当通知的信息intra_chroma_pred_mode的值为0时,可以根据亮度块的帧内预测模式将色度块的帧内预测模式确定为对角线模式(66)或平面模式(0)。替选地,当通知的信息intra_chroma_pred_mode的值为4时,色度块的帧内预测模式可以被设置为与亮度块的帧内预测模式相同。同时,亮度块的帧内预测模式(IntraPredModeY)可以是包括亮度块中的特定位置的子块的帧内预测模式。这里,亮度块中的特定位置可以对应于色度块中的中心位置。

然而,可能存在亮度块中与色度块的中心位置对应的子块不可用的情况。这里,“不可用”可以是对应的子块没有以帧内模式被编码的情况。例如,当子块不具有帧内预测模式时,例如当对应的子块以帧间模式或当前图片参考模式被编码时,可以确定对应的子块不可用。在该情况下,可以将亮度块的帧内预测模式(IntraPredModeY)设置为等于预先提供给编码/解码装置的模式。这里,预先提供的模式可以是平面模式、DC模式、垂直模式或水平模式中的任何一个。

参照图5,可以基于用于帧内预测的参考区域和帧内预测模式对当前块进行解码(S520)。

当前块的解码可以以当前块的子块为单位执行。为此,可以将当前块划分成多个子块。这里,当前块可以对应于叶节点。叶节点可以表示不再被划分成较小编码块的编码块。即,叶节点可以表示不再通过上述基于树的块划分来划分的块。

可以基于当前块的大小来执行划分(实施方式1)。

例如,当当前块的大小小于预定阈值大小时,可以将当前块垂直或水平地划分成两个子块。相反,当当前块的大小大于或等于阈值大小时,可以将当前块垂直或水平地划分成四个子块。阈值大小可以由编码装置通知,或者可以是在解码装置中预定义的固定值。例如,阈值大小被表示为N×M,并且N和M可以是4、8、16或更大。N和M可以相同,或者可以彼此不同地设置。

替选地,如果当前块的大小小于预定阈值大小,则不划分(非分割)当前块。否则,可以将当前块划分成两个或四个子块。

可以基于当前块的形状执行划分(实施方式2)。

例如,如果当前块的形状是正方形,则将当前块划分成四个子块,并且否则,可以将当前块划分成两个子块。相反,如果当前块的形状是正方形,则将当前块划分成两个子块,并且否则,可以将当前块划分成四个子块。

替选地,如果当前块的形状是正方形,则将当前块划分成两个或四个子块,并且否则,可以不划分当前块。相反,当当前块的形状是正方形时,可以不划分当前块,并且否则,可以将当前块划分成两个或四个子块。

可以通过选择性地应用上述实施方式1或实施方式2中的任何一个执行划分,或者可以基于实施方式1和实施方式2的组合来执行划分。

二划分表示在垂直或水平方向上划分成两个子块,并且四划分可以包括在垂直或水平方向上划分成四个子块,或者在垂直和水平方向上划分成四个子块。

在以上实施方式中,描述了二划分或四划分,但是本发明不限于此,并且可以在垂直或水平方向上将当前块划分成三个子块。在该情况下,宽度比或高度比可以是(1∶1∶2)、(1∶2∶1)或(2∶1∶1)。

关于是否划分成子块单位、是否划分成四个子块、划分方向和划分数目的信息可以从编码装置通知,或者可以由解码装置基于预定编码参数可变地确定。这里,编码参数可以表示块大小/形状、划分类型(四划分、二划分、三划分)、帧内预测模式、用于帧内预测的相邻像素的范围/位置、分量类型(例如,亮度和色度)、变换块的最大/最小大小、变换类型(例如,变换跳过、DCT2、DST7、DCT8)等。

可以根据预定优先级顺序地预测/重建当前块的子块。在该情况下,可以预测/重建当前块的第一子块,并且可以参考预解码的第一子块来预测/重建第二子块。关于优先级,按照上→下的顺序来预测/重建,但是上和下处的每个子块可以按照左→右的顺序来预测/重建。替选地,按照上→下的顺序来预测/重建,但是上和下处的每个子块可以按照右→左的顺序来预测/重建。替选地,按照下→上的顺序来预测/重建,但是下和上处的每个子块可以按照左→右的顺序来预测/重建。替选地,按照下→上的顺序来预测/重建,但是下和上处的每个子块可以按照右→左的顺序来预测/恢复。替选地,按照左→右的顺序来预测/重建,但是左和右处的每个子块可以按照上→下的顺序来预测/重建。替选地,按照左→右的顺序来预测/重建,但是左和右处的每个子块可以按照下→上的顺序来预测/重建。替选地,按照右→左的顺序来预测/重建,但是右和左处的每个子块可以按照上→下的顺序来预测/重建。替选地,按照右→左的顺序来预测/重建,但是右和左处的每个子块可以按照下→上的顺序来预测/重建。

编码/解码装置可以定义上述顺序中的任何一个,并且使用该顺序。替选地,编码/解码装置可以定义上述顺序中的至少两个或更多个,并且选择性地使用这些顺序中的任何一个。为此,可以编码和通知指定预定义顺序中的任何一个的索引或标记。

图6示出了作为应用本发明的实施方式的代替参考区域中的不可用像素的方法。

如上所述,可以将参考区域确定为第一像素线至第四像素线中之一。然而,在本实施方式中,为了便于描述,假设参考区域是第一像素线。本实施方式可以以相同的方式或类似地应用于第二像素线至第四像素线。

当参考区域中的所有像素均不可用时,可以用由位深度表示的像素值的范围或图像的实际像素值的范围之一代替对应的像素。例如,像素值的范围的最大值、最小值、中值、平均值等可以对应于要代替的值。当位深度为8时,在用位深度的中值代替时,可以用128填充参考区域的所有像素。

然而,如果不是,即,不是参考区域的所有像素均不可用,而是参考区域的像素中的至少之一不可用,则可以对当前块的上参考区域、左参考区域、右参考区域或下参考区域中的至少之一执行替代过程。为了便于说明,描述将集中在当前块的左参考区域、上参考区域和右参考区域。

(步骤1)确定与当前块(预测块)相邻的左上像素TL是否不可用。如果左上像素TL不可用,则可以用位深度的中值代替该像素。

(步骤2)可以顺序地搜索在上参考区域中是否存在不可用像素。这里,上参考区域可以包括与当前块的上或右上中的至少之一相邻的像素线。上参考区域的长度可以等于当前块的宽度(nW)、(2*nW),或者等于宽度和高度的总和(nW+nH)。

这里,可以从左到右执行搜索方向。在该情况下,当确定像素p[x][-1]不可用时,可以用相邻像素p[x-1][-1]代替像素p[x][-1]。替选地,可以从右到左执行搜索方向。在该情况下,当确定像素p[x][-1]不可用时,可以用相邻像素p[x+1][-1]代替像素p[x][-1]。

(步骤3)可以顺序地搜索在左参考区域中是否存在不可用像素。这里,左参考区域可以包括与当前块的左或左下中的至少之一相邻的像素线。左参考区域的长度可以等于当前块的高度(nH)、(2*nH),或者等于宽度和高度的总和(nW+nH)。

这里,可以从上到下执行搜索方向。在该情况下,当确定像素p[-1][y]不可用时,可以用相邻像素p[-1][y-1]代替像素p[-1][y]。替选地,可以从下到上执行搜索方向。在该情况下,当确定像素p[-1][y]不可用时,可以用相邻像素p[-1][y+1]代替像素p[-1][y]。

(步骤4)可以顺序地搜索在右参考区域中是否存在不可用像素。这里,右参考区域可以包括与当前块的右相邻的像素线。右参考区域的长度可以与当前块的高度(nH)相同。

这里,可以从上到下执行搜索方向。在该情况下,当确定像素p[nW][y]不可用时,可以用相邻像素p[nW][y-1]代替像素p[nW][y]。替选地,可以从下到上执行搜索方向。在该情况下,当确定像素p[nW][y]不可用时,可以用相邻像素p[nW][y+1]代替像素p[nW][y]。

替选地,对于右参考区域,可以省略单独的搜索过程。而是,可以用位深度的中值填充右参考区域中的不可用像素。替选地,右参考区域中的不可用像素可以用与当前块相邻的右上像素TR或右下像素BR之一代替,或者可以用其代表值代替。这里,代表值可以被表示为平均值、最大值、最小值、模式值、中值等。替选地,可以通过对右上像素TR和右下像素BR中的每一个施加预定权重来得出右参考区域中的不可用像素。在该情况下,可以考虑右参考区域中的不可用像素与右上像素TR之间的第一距离以及右参考区域中的不可用像素与右下像素BR之间的第二距离来确定权重。右下像素BR可以用与当前块相邻的左上像素TL、右上像素TR或左下像素BL之一填充,或者可以用左上像素TL、右上像素TR或左下像素BL中的至少两个的代表值代替。这里,代表值如上所述。替选地,可以通过分别对左上像素TL、右上像素TR或左下像素BL中的至少两个施加预定权重来得出右下像素BR。这里,可以考虑距右下像素BR的距离来确定权重。

同时,上述替代过程不限于按照上→左→右的优先级执行。例如,可以按照左→上→右的优先级执行替代过程。替选地,可以对上和左参考区域并行地执行替代过程,并且然后可以对右参考区域执行替代过程。另外,当按照左→上→右的优先级执行替代过程时,可以省略步骤1过程。

图7示出了作为应用本发明的实施方式的改变/校正帧内预测模式的方法。

可以基于预定偏移来改变解码的帧内预测模式(IntraPredMode)。可以基于块属性(即,大小、形状、划分信息、划分深度、帧内预测模式的值或分量类型)中的至少之一来选择性地执行偏移的施加。这里,块可以表示当前块和/或当前块的相邻块。

划分信息可以包括指示当前块是否被划分成多个子块的第一信息、指示划分方向(例如,水平或垂直)的第二信息、或者关于划分的子块的数目的第三信息中的至少之一。第二划分信息可以由编码装置编码并通知。替选地,划分信息中的一些可以基于上述块属性在解码装置中可变地确定,或者可以被设置为在编码/解码装置中预定义的固定值。

例如,如果第一信息是第一值,则当前块被划分成多个子块,否则,当前块可以不被划分成多个子块(NO_SPLIT)。当当前块被划分成多个子块时,可以基于第二信息来水平地划分(HOR_SPLIT)或垂直地划分(VER_SPLIT)当前块。在该情况下,当前块可以被划分成k个子块。这里,k可以是2、3、4或更大的整数。替选地,k可以限于2的幂,例如1、2、4等。替选地,在当前块的宽度或高度中的至少之一为4(例如,4×8、8×4)的块的情况下,k被设置为2,否则,k被设置为4、8或16。当当前块未被划分(NO_SPLIT)时,k可以被设置为1。

当前块可以被划分成具有相同宽度和高度的子块,或者可以被划分成具有不同宽度和高度的子块。当前块可以被划分成预先提供给编码/解码装置的N×M块单元(例如,2×2、2×4、4×4、8×4、8×8等),而不管上述块的属性如何。

仅当当前块的大小小于或等于预定阈值T1时,才可以施加偏移。这里,阈值T1可以表示施加偏移的最大块大小。替选地,仅当当前块的大小大于或等于预定阈值T2时,才可以施加偏移。在该情况下,阈值T2可以表示施加偏移的最小块大小。可以通过比特流通知阈值。替选地,阈值可以由解码装置基于上述块属性中的至少之一来可变地确定,或者可以是预先提供给编码/解码装置的固定值。

替选地,仅当当前块的形状是非正方形时,才可以施加偏移。例如,当满足以下条件时,可以将预定偏移(例如,65)加至当前块的IntraPredMode。

-nW大于nH

-IntraPredMode大于或等于2

-IntraPredMode小于(whRatio>1)?(8+2*whRatio):8

这里,nW和nH分别表示当前块的宽度和高度,并且whRatio可以被设置为Abs(Log2(nW/nH))。

替选地,当满足以下条件时,可以从当前块的IntraPredMode中减去预定偏移(例如,67)。

-nH大于nW

-IntraPredMode小于或等于66

-IntraPredMode大于(whRatio>1)?(60-2*whRatio):60

如上所述,可以考虑当前块的属性通过将偏移加至当前块的帧内预测模式(IntraPredMode)或从当前块的帧内预测模式(IntraPredMode)减去偏移来确定最终帧内预测模式。然而,本发明不限于此,并且可以考虑子块而不是当前块的属性(例如,大小、形状)以相同/相似的方式执行偏移的施加。

图8示出了在应用本公开内容的实施方式中的基于分量间参考的预测方法。

根据分量类型,可以将当前块划分成亮度块和色度块。可以使用重建的亮度块的像素来预测色度块。这被称为分量间参考。在该实施方式中,假设色度块的大小为(nTbW×nTbH),并且与色度块对应的亮度块的大小为(2*nTbW×2*nTbH)。

参照图8,可以确定色度块的帧内预测模式(S800)。

如图5所述,根据第三标记,可以将色度块的帧内预测模式确定为属于第一组的一个或更多个基于分量间参考的预测模式中之一。第一组可以由仅基于分量间参考的预测模式构成。编码/解码装置可以将INTRA_LT_CCLM、INTRA_L_CCLM或INTRA_T_CCLM中的至少之一定义为基于分量间参考的预测模式。INTRA_LT_CCLM是参考与亮度/色度块相邻的左区域和上区域两者的模式,INTRA_L_CCLM是参考与亮度/色度块相邻的左区域的模式,并且INTRA_T_CCLM是参考与亮度/色度块相邻的上区域的模式。

可以使用预定索引来选择基于分量间参考的预测模式中的任何一个。索引可以是指定INTRA_LT_CCLM、INTRA_L_CCLM或INTRA_T_CCLM中的任何一个的信息。仅当第三标记是第一值时,才可以通知索引。在以下表6中示出了属于第一组的基于分量间参考的预测模式以及分配给每个预测模式的索引。

[表6]

表6仅是分配给每个预测模式的索引的示例,但不限于此。即,如表6所示,可以按照INTRA_LT_CCLM、INTRA_L_CCLM、INTRA_T_CCLM的优先级顺序来分配索引,或者可以按照INTRA_LT_CCLM、INTRA_T_CCLM、INTRA_L_CCLM的优先级顺序来分配索引。替选地,INTRA_LT_CCLM的优先级顺序可以比INTRA_T_CCLM或INTRA_L_CCLM低。可以基于指示是否允许分量间参考的信息来选择性地通知第三标记。例如,如果信息的值为1,则可以通知第三标记,否则,可以不通知第三标记。这里,可以基于稍后描述的预定条件将信息确定为0或1。

(条件1)当指示是否允许基于分量间参考的预测的第四标记为0时,可以将信息设置为0。可以在VPS、SPS、PPS、PH和切片标头中的至少之一中通知第四标记。

(条件2)当满足以下子条件中的至少之一时,可以将信息设置为1。

-qtbtt_dual_tree_intra_flag等于0

-切片类型不是I切片

-编码树块的大小小于64×64

在条件2中,qtbtt_dual_tree_intra_flag可以指示编码树块是否隐式地划分成64×64编码块,以及64×64编码块是否基于双树而划分。双树可以是指亮度分量和色度分量用独立的划分结构划分的方法。编码树块的大小(CtbLog2Size)可以是在编码/解码装置中预定义的大小(例如,64×64、128×128、256×256),或者可以由编码装置编码并通知。

(条件3)当满足以下子条件中的至少之一时,可以将信息设置为1。

-第一上块的宽度和高度为64

-第一上块的深度与(CtbLog2Size-6)相同,第一上块基于水平BT来划分,并且第二上块为64×32

-第一上块的深度大于(CtbLog2Size-6)

-第一上块的深度与(CtbLog2Size-6)相同,第一上块基于水平BT来划分,并且第二上块基于垂直BT来划分

在条件3中,第一上块可以是包括当前色度块作为下块的块。例如,当当前色度块的深度为k时,第一上块的深度为(k-n),并且n可以是1、2、3、4或更大。第一上块的深度可以仅表示根据基于四叉树的划分的深度,或者可以表示根据四叉树、二叉树或三叉树中的至少之一的划分的深度。第二上块是属于第一上块的下块,并且可以具有小于当前色度块的深度和大于第一上块的深度。例如,当当前色度块的深度为k时,第二上块的深度为(k-m),并且m可以是小于n的自然数。

当均不满足上述条件1至条件3时,可以将信息设置为0。

然而,即使当满足条件1至条件3中的至少之一时,在满足以下子条件中的至少之一时,也可以将信息重置为0。

-第一上块为64×64,并且执行上述基于子块的预测

-第一上块的宽度或高度中的至少之一小于64,并且第一上块的深度等于(CtbLog2Size-6)

参照图8,可以指定用于色度块的分量间参考的亮度区域(S810)。

亮度区域可以包括亮度块或与亮度块相邻的相邻区域中的至少之一。这里,亮度块可以被定义为包括像素pY[x][y](x=0..nTbW*2-1,y=0..nTbH*2-1)的区域。像素可以表示在应用环路滤波器之前的重建值。

相邻区域可以包括左相邻区域、上相邻区域或左上相邻区域中的至少之一。左相邻区域可以被设置为包括像素pY[x][y](x=-1..-3,y=0..2*numSampL-1)的区域。仅当numSampL的值大于0时,才可以执行该设置。上相邻区域可以被设置为包括像素pY[x][y](x=0..2*numSampT-1,y=-1..-3)的区域。仅当numSampT的值大于0时,才可以执行该设置。左上相邻区域可以被设置为包括像素pY[x][y](x=-1,y=-1,-2)的区域。仅当亮度块的左上区域可用时,才可以执行该设置。

可以基于当前块的帧内预测模式来确定上述numSampL和numSampT。这里,当前块可以表示色度块。

例如,当当前块的帧内预测模式是INTRA_LT_CCLM时,可以基于等式9得出numSampL和numSampT。这里,INTRA_LT_CCLM可以表示基于当前块的左相邻区域和上相邻区域执行分量间参考的模式。

[等式1]

numSampT=availT?nTbW:0

numSampL=availL?nTbH:0

根据等式1,当当前块的上相邻区域可用时,numSampT被得出为nTbW。否则,numSampT可以被得出为0。类似地,当当前块的左相邻区域可用时,numSampL被得出为nTbH。否则,numSampL可以被得出为0。

相反,当当前块的帧内预测模式不是INTRA_LT_CCLM时,可以基于以下等式2得出numSampL和numSampT。

[等式2]

numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+numTopRight):0

numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+numLeftBelow):0

在等式2中,INTRA_T_CCLM可以是指基于当前块的上相邻区域执行分量间参考的模式。INTRA_L_CCLM可以表示基于当前块的左相邻区域执行分量间参考的模式。numTopRight可以表示属于色度块的右上相邻区域的所有或一些像素的数目。一些像素可以是指属于对应的区域的最低像素行的像素中的可用像素。在可用性确定中,可以在从左到右的方向上顺序地确定像素是否可用。可以执行该过程直到找到不可用像素。numLeftBelow可以表示属于色度块的左下相邻区域的所有或一些像素的数目。一些像素可以是指属于对应的区域的最右像素行(列)的像素中的可用像素。在可用性确定中,可以在从上到下的方向上顺序地确定像素是否可用。可以执行该过程直到找到不可用像素。

参照图8,可以对在S810中指定的亮度区域执行下采样(S820)。

下采样可以包括以下中的至少之一:1.亮度块的下采样,2.亮度块的左相邻区域的下采样,或3.亮度块的上相邻区域的下采样。这将在下面详细描述。

(实施方式1)

可以基于亮度块的对应的像素pY[2*x][2*y]和相邻像素得出下采样亮度块的像素pDsY[x][y](x=0..nTbW-1,y=0..nTbH-1)。相邻像素可以表示对应的像素的左相邻像素、右相邻像素、上相邻像素或下相邻像素中的至少之一。例如,可以基于以下等式3得出像素pDsY[x][y]。

[等式3]

pDsY[x][y]=(pY[2*x][2*y-1]+pY[2*x-1][2*y]+4*pY[2*x][2*y]+pY[2*x+1][2*y]+pY[2*x][2*y+1]+4)>>3

然而,可能存在当前块的左/上相邻区域不可用的情况。当当前块的左相邻区域不可用时,可以基于亮度块的对应的像素pY[0][2*y]和对应的像素的相邻像素得出下采样亮度块的像素pDsY[0][y](y=1..nTbH-1)。相邻像素可以表示对应的像素的上相邻像素或下相邻像素中的至少之一。例如,可以基于以下等式4得出像素pDsY[0][y](y=1..nTbH-1)。

[等式4]

pDsY[0][y]=(pY[0][2*y-1]+2*pY[0][2*y]+pY[0][2*y+1]+2)>>2

当当前块的上相邻区域不可用时,可以基于亮度块的对应的像素pY[2*x][0]和对应的像素的相邻像素得出下采样亮度块的像素pDsY[x][0](x=1..nTbW-1)。相邻像素可以表示对应的像素的左相邻像素或右相邻像素中的至少之一。例如,可以基于以下等式5得出像素pDsY[x][0](x=1..nTbW-1)。

[等式5]

pDsY[x][0]=(pY[2*x-1][0]+2*pY[2*x][0]+pY[2*x+1][0]+2)>>2

可以基于亮度块的对应的像素pY[0][0]和/或对应的像素的相邻像素得出下采样亮度块的像素pDsY[0][0]。相邻像素的位置可以取决于当前块的左/上相邻区域是否可用而变化。

例如,当左相邻区域可用而上相邻区域不可用时,可以基于以下等式6得出pDsY[0][0]。

[等式6]

pDsY[0][0]=(pY[-1][0]+2*pY[0][0]+pY[1][0]+2)>>2

相反,当左相邻区域不可用而上相邻区域可用时,可以基于以下等式7得出pDsY[0][0]。

[等式7]

pDsY[0][0]=(pY[0][-1]+2*pY[0][0]+pY[0][1]+2)>>2

在另一示例中,当左相邻区域和上相邻区域两者均不可用时,pDsY[0][0]可以被设置为亮度块的对应的像素pY[0][0]。

(实施方式2)

可以基于亮度块的对应的像素pY[2*x][2*y]和对应的像素的相邻像素得出下采样亮度块的像素pDsY[x][y](x=0..nTbW-1,y=0..nTbH-1)。相邻像素可以表示对应的像素的下相邻像素、左相邻像素、右相邻像素、左下相邻像素或右下相邻像素中的至少之一。例如,可以基于以下等式8得出像素pDsY[x][y]。

[等式8]

pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3

然而,当当前块的左相邻区域不可用时,可以基于亮度块的对应的像素pY[0][2*y]及其下相邻像素得出下采样亮度块的像素pDsY[0][y](y=0..nTbH-1)。例如,可以基于以下等式9得出像素pDsY[0][y](y=0..nTbH-1)。

[等式9]

pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1

可以基于如上所述的实施方式1和实施方式2之一来执行亮度块的下采样。这里,可以基于预定标记来选择实施方式1和实施方式2之一。标记可以指示下采样亮度像素是否具有与原始亮度像素的位置相同的位置。例如,当标记是第一值时,下采样亮度像素具有与原始亮度像素的位置相同的位置。相反,当标记是第二值时,下采样亮度像素在水平方向上具有与原始亮度像素的位置相同的位置,但是在垂直方向上具有偏移二分之一像素的位置。

(实施方式1)

可以基于左相邻区域的对应的像素pY[-2][2*y]和对应的像素的相邻像素得出下采样左相邻区域的像素pLeftDsY[y](y=0..numSampL-1)。相邻像素可以表示对应的像素的左相邻像素、右相邻像素、上相邻像素或下相邻像素中的至少之一。例如,可以基于以下等式10得出像素pLeftDsY[y]。

[等式10]

pLeftDsY[y]=(pY[-2][2*y-1]+pY[-3][2*y]+4*pY[-2][2*y]+pY[-1][2*y]+pY[-2][2*y+1]+4)>>3

然而,当当前块的左上相邻区域不可用时,可以基于左相邻区域的对应的像素pY[-2][0]和对应的像素的相邻像素得出下采样左相邻区域的像素pLeftDsY[0]。相邻像素可以表示对应的像素的左相邻像素或右相邻像素中的至少之一。例如,可以基于以下等式11得出像素pLeftDsY[0]。

[等式11]

pLeftDsY[0]=(pY[-3][0]+2*pY[-2][0]+pY[-1][0]+2)>>2

(实施方式2)

可以基于左相邻区域的对应的像素pY[-2][2*y]和对应的像素周围的相邻像素得出下采样左相邻区域的像素pLeftDsY[y](y=0..numSampL-1)。相邻像素可以表示对应的像素的下相邻像素、左相邻像素、右相邻像素、左下相邻像素或右下相邻像素中的至少之一。例如,可以基于以下等式12得出像素pLeftDsY[y]。

[等式12]

pLeftDsY[y]=(pY[-1][2*y]+pY[-1][2*y+1]+2*pY[-2][2*y]+2*pY[-2][2*y+1]+pY[-3][2*y]+pY[-3][2*y+1]+4)>>3

类似地,可以基于如上所述的实施方式1和实施方式2之一执行左相邻区域的下采样。这里,可以基于预定标记来选择实施方式1和实施方式2之一。标记指示下采样亮度像素是否具有与原始亮度像素的位置相同的位置。这与上述相同。

仅当numSampL值大于0时,才可以执行左相邻区域的下采样。当numSampL值大于0时,其可以表示当前块的左相邻区域可用,并且当前块的帧内预测模式是INTRA_LT_CCLM或INTRA_L_CCLM。

(实施方式1)

可以考虑上相邻区域是否属于与亮度块所属的CTU不同的CTU,来得出下采样上相邻区域的像素pTopDsY[x](x=0..numSampT-1)。

当上相邻区域属于与亮度块相同的CTU时,可以基于上相邻区域的对应的像素pY[2*x][-2]和对应的像素的相邻像素得出下采样上相邻区域的像素pTopDsY[x]。相邻像素可以表示对应的像素的左相邻像素、右相邻像素、上相邻像素或下相邻像素中的至少之一。例如,可以基于以下等式13得出像素pTopDsY[x]。

[等式13]

pTopDsY[x]=(pY[2*x][-3]+pY[2*x-1][-2]+4*pY[2*x][-2]+pY[2*x+1][-2]+pY[2*x][-1]+4)>>3

相反,当上相邻区域属于与亮度块不同的CTU时,可以基于上相邻区域的对应的像素pY[2*x][-1]和对应的像素的相邻像素得出下采样上相邻区域的像素pTopDsY[x]。相邻像素可以表示对应的像素的左相邻像素或右相邻像素中的至少之一。例如,可以基于以下等式14得出像素pTopDsY[x]。

[等式14]

pTopDsY[x]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2

替选地,当当前块的左上相邻区域不可用时,相邻像素可以表示对应的像素的上相邻像素或下相邻像素中的至少之一。例如,可以基于以下等式15得出像素pTopDsY[0]。

[等式15]

pTopDsY[0]=(pY[0][-3]+2*pY[0][-2]+pY[0][-1]+2)>>2

替选地,当当前块的左上相邻区域不可用并且上相邻区域属于与亮度块不同的CTU时,像素pTopDsY[0]可以被设置为上相邻区域的像素pY[0][-1]。

(实施方式2)

可以考虑上相邻区域是否属于与亮度块不同的CTU,来得出下采样上相邻区域的像素pTopDsY[x](x=0..numSampT-1)。

当上相邻区域属于与亮度块相同的CTU时,可以基于上相邻区域的对应的像素pY[2*x][-2]和对应的像素的相邻像素得出下采样上相邻区域的像素pTopDsY[x]。相邻像素可以表示对应的像素的下相邻像素、左相邻像素、右相邻像素、左下相邻像素或右下相邻像素中的至少之一。例如,可以基于以下等式16得出像素pTopDsY[x]。

[等式16]

pTopDsY[x]=(pY[2*x-1][-2]+pY[2*x-1][-1]+2*pY[2*x][-2]+2*pY[2*x][-1]+pY[2*x+1][-2]+pY[2*x+1][-1]+4)>>3

相反,当上相邻区域属于与亮度块不同的CTU时,可以基于上相邻区域的对应的像素pY[2*x][-1]和对应的像素的相邻像素得出下采样上相邻区域的像素pTopDsY[x]。相邻像素可以表示对应的像素的左相邻像素或右相邻像素中的至少之一。例如,可以基于以下等式17得出像素pTopDsY[x]。

[等式17]

pTopDsY[x]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2

替选地,当当前块的左上相邻区域不可用时,相邻像素可以表示对应的像素的上相邻像素或下相邻像素中的至少之一。例如,可以基于以下等式18得出像素pTopDsY[0]。

[等式18]

pTopDsY[0]=(pY[0][-2]+pY[0][-1]+1)>>1

替选地,当当前块的左上相邻区域不可用并且上相邻区域属于与亮度块不同的CTU时,像素pTopDsY[0]可以被设置为上相邻区域的像素pY[0][-1]。

以类似的方式,可以基于如上所述的实施方式1和实施方式2之一执行上相邻区域的下采样。这里,可以基于预定标记来选择实施方式1和实施方式2之一。标记指示下采样亮度像素是否具有与原始亮度像素的位置相同的位置。这与上述相同。

同时,仅当numSampT值大于0时,才可以执行上相邻区域的下采样。当numSampT值大于0时,这可以表示当前块的上相邻区域可用,并且当前块的帧内预测模式是INTRA_LT_CCLM或INTRA_T_CCLM。

可以仅使用特定位置处的对应的像素pY[-2][2*y]和周围像素来执行针对亮度块的左相邻区域或上相邻区域中的至少之一(在下文中,亮度参考区域)的下采样。这里,可以基于在属于色度块的左相邻区域或上相邻区域中的至少之一(在下文中,被称为色度参考区域)的多个像素中的选择的像素的位置来确定特定位置。

所选择的像素可以是色度参考区域中的奇数编号像素或偶数编号像素。替选地,所选择的像素可以是起始像素和被定位在距起始像素预定间隔处的一个或更多个像素。这里,起始像素可以是被定位在色度参考区域中的第一、第二或第三位置处的像素。间隔可以是1、2、3、4或更多个采样间隔。例如,当间隔是一个采样间隔时,所选择的像素可以包括第n像素、第(n+2)像素等。所选择的像素的数目可以是2、4、6、8或更多。

所选择的像素的数目、起始像素和间隔可以基于色度参考区域的长度(即,numSampL和/或numSampT)或色度块的帧内预测模式中的至少之一来可变地确定。替选地,所选择的像素的数目可以是预先提交给编码/解码装置的固定数目(例如,4),而不管色度参考区域的长度和色度块的帧内预测模式如何。

参照图8,可以得出用于色度块的分量间参考的参数(S830)。

参数可以包括权重或偏移中的至少之一。可以考虑当前块的帧内预测模式来确定参数。可以使用色度参考区域的所选择的像素和通过亮度参考区域的下采样获得的像素得出参数。

具体地,通过在通过亮度参考区域的下采样获得的n个像素之间执行大小比较,可以将n个像素分类成两个组。例如,第一组可以是n个像素中具有相对大的值的一组像素,以及第二组可以是n个样本中除了第一组的像素之外的一组像素。即,第二组可以是具有相对小的值的一组像素。这里,n可以是4、8、16或更大。可以将属于第一组的像素的平均值设置为最大值MaxL,并且可以将属于第二组的像素的平均值设置为最小值MinL。

根据通过亮度参考区域的下采样获得的n个像素的分组,可以对色度参考区域的所选择的像素进行分组。通过使用与色度参考区域的第一组的像素对应的色度参考区域的像素来配置色度参考区域的第一组。可以通过使用与亮度参考区域的第二组的像素对应的色度参考区域的像素来配置色度参考区域的第二组。类似地,可以将第一组中的像素的平均值设置为最大值MaxC,并且可以将第二组中的像素的平均值设置为最小值MinC。

基于计算的最大值(MaxL,MaxC)和最小值(MinL,MaxC),可以得出参数的权重和/或偏移。

可以基于下采样亮度块和参数来预测色度块(S840)。

可以通过将预先得出的权重或偏移中的至少之一施加至下采样亮度块的像素来预测色度块。

图9示出了作为应用本发明的实施方式的配置参考区域的方法。

根据本发明的参考区域可以是与当前块相邻的区域。接下来,将描述通过根据类别对参考区域进行分类来将每个参考区域配置为可用像素的方法。为了便于说明,描述将集中在当前块的左参考区域、上参考区域、右参考区域。可以通过参照图6描述的实施方式参考或得出稍后要描述的实施方式中未提及的描述。

参照图9,可以将参考区域中的像素分类成预定类别(SA00)。

可以将参考区域识别/分类成k个类别,并且k可以是1、2、3或更大的整数。替选地,k可以被限制为2或更小的整数。可以将参考区域分类为基于图像类型(I/P/B)、分类类型(Y/Cb/Cr等)、块属性(大小、形状、划分信息、划分深度等)、以及参考像素的位置的预定类别之一。这里,块可以表示当前块和/或当前块的相邻块。

例如,可以根据块的大小将参考区域分类成预定类别。在块的大小的情况下,可以通过阈值大小来确定支持范围。基于宽度(W)和高度(H),可以将每个阈值大小表示为W、H、W×H和W*H。W和H可以是自然数,例如4、8、16、32等。两个或更多个阈值大小被支持并且可以用于设置支持范围,例如块可能具有的最小值和最大值。

替选地,可以根据参考像素的位置将参考区域分类成预定类别。在该情况下,参考像素的位置可以以像素为单位来定义,或者可以被定义为参考像素所属的块的方向(左、右、上、下、左上、右上、左下、右下)。

参照图6,可以将参考像素的位置定义为是否包括在左上像素TL、右上像素TR、左下像素BL和右下像素BR的位置中。此外,可以将参考像素的位置定义为是否包括在基于当前块的宽度(2*nW)、高度(2*nH)或宽度和高度的总和(nW+nH)而定位的TL0、TL1、TR0、TR1、BL0、BL1、BR0、BR1的像素位置中。另外,参照图12,可以将参考像素的位置定义为是否包括在作为位于上块、下块、左块和右块的两端的像素的T0、T3、B0、B3、L0、L3、R0和R3的像素位置中。替选地,可以将参考像素的位置定义为是否包括在位于每个块的中间的像素(T1、L2、B2、R1等)中。

可以基于各种编码元素将参考区域(参考像素)分类成每个类别。

参照图9,可以搜索属于参考区域的不可用像素(SA10)。

可以顺序地搜索参考区域中是否存在不可用像素。参照图6,可以在TL、TR、BL和BR中确定搜索的起始位置,但不限于此。在该情况下,当顺序地执行搜索时,可以将搜索的起始位置的数目设置为一个,但是对于并行处理的情况,可以将其设置为两个或更多个。

可以基于搜索的起始位置来确定不可用像素的搜索区域。如果指定了一个搜索位置(假设为TL),则可以在右参考区域之前搜索上参考区域或左参考区域,但是在编码设置(并行处理)中可能不是这样。

这里,搜索方向可以被确定为顺时针或逆时针之一。在该情况下,可以针对整个参考区域选择顺时针或逆时针之一。替选地,可以根据参考区域的位置来自适应地选择顺时针或逆时针之一。即,可以针对上/下/左/右参考区域中的每一个来支持顺时针或逆时针的一个搜索方向。这里,应当理解,参考区域的位置不仅限于当前块的宽度(nW)和高度(nH)(即,包括2*nW、2*nH、nW+nH等中包括的参考区域)。

这里,在顺时针方向的情况下,其可以是指左参考区域中从下到上的方向、上参考区域中从左到右的方向、右参考区域中从上到下的方向、以及下参考区域中从右到左的方向。逆时针可以与逆时针相反地得出。

例如,当从与当前块相邻的左上像素TL开始搜索时,可以沿顺时针方向(左→右,顶→底)搜索上参考区域和右参考区域。另外,可以沿逆时针方向(上→下,左→右)搜索左参考区域和下参考区域。然而,以上描述仅是部分示例,并且各种修改的示例是可能的。

参照图9,可以通过使用为每个类别设置的方法用可用像素代替不可用像素(SA20)。

可以用预定默认值(例如,像素值范围的中值)代替不可用像素。替选地,可以基于预定可用像素代替不可用像素,并且可以用通过一个或更多个相邻可用像素的复制、线性外推、插值等而获得的值来替换不可用像素。首先,进行基于每个像素的位置对类别进行分类的过程。以下是根据多个类别如何应用每种方法的示例,并且不可用像素被称为目标像素。

作为示例<1>,当参考区域中存在可用像素时,可以通过使用基于可用像素而获得的像素值来代替目标像素,并且当参考区域中不存在可用像素时,可以用默认值代替目标像素。

作为示例<2>,当在目标像素之前以及在搜索的起始位置处存在可用像素时,可以通过使用基于可用像素而获得的像素值来代替目标像素,并且当在目标像素之前不存在可用像素时,可以用默认值代替目标像素。

作为示例<3>,可以用默认值代替目标像素。

在<1>的情况下,描述了根据参考区域中是否存在可用像素用可用像素来代替的方法。在<2>的情况下,描述了根据在先前搜索过程期间是否存在可用像素用可用像素来代替的方法。在<3>的情况下,描述了用一个固定可用像素来代替的方法。

如果支持一个类别,则可以使用<1>至<3>的一种方法。如果支持多于一个的类别,则属于任何一个类别的一个参考像素可以选择并使用<1>至<3>之一,并且属于另一类别的参考像素可以选择并使用<1>至<3>之一。

参照图9,参考区域可以被配置为可用像素(SA30)。另外,可以执行帧内预测(SA40)。

通过上述实施方式描述了通过将参考区域中的不可用像素分类成类别来根据类别用可用像素来代替的方法。另外,不仅不可用像素,而且可用像素也可以用默认值、另一可用像素或基于其他可用像素而获得的值来代替。

图10是作为应用本发明的实施方式的用于逐步配置帧内预测模式设置的示例性图。

参照图10的(步骤1),可以支持各种预测模式候选组的配置,并且可以隐式或显式地选择其中之一。预测模式候选组可以由模式的数目、方向模式的斜率信息(dy/dx)、方向模式的支持范围等来识别。在该情况下,即使模式的数目为k(a个方向性模式,b个非方向性模式),也可能存在具有不同a或b的预测模式候选。

预测模式候选组选择信息可以显式地生成,并且可以在VPS、SPS、PPS、PH和切片标头中的至少一个级别处通知。替选地,可以根据编码设置隐式地选择预测模式候选组。在该情况下,可以基于图像类型(I/P/B)、分量类型和块属性(大小、形状、划分信息、划分深度等)来定义编码设置。这里,块可以表示当前块和/或当前块的相邻块,并且在本实施方式中,可以应用相同的描述。

当通过(步骤1)选择一个预测模式候选组(在该示例中选择B)时,可以基于此执行帧内预测或预测模式编码。替选地,可以执行用于高效的候选组配置的过程,这将通过(步骤2)进行描述。

参照图10的(步骤2),可以以各种方式配置一些预测模式的配置,并且可以隐式或显式地选择其中之一。(B0)至(B2)可以是假设未很好地使用一些方向上的预测模式(图中的虚线)的候选配置。

预测模式候选组选择信息可以显式地生成,并且可以在CTU、编码块、预测块、变换块等中用信号通知。替选地,可以根据编码设置隐式地选择预测模式候选组,并且可以将编码设置定义为先前各种编码元素。

这里,可以根据块的宽度/高度比(W∶H)细分块的形状,并且可以根据W∶H的所有可能比率或者根据仅一定比率的W∶H来不同地配置预测模式候选组。

当通过(步骤2)选择一个预测模式候选组(在该示例中选择B1)时,可以基于此执行帧内预测或预测模式编码。替选地,可以执行用于高效的候选组配置的过程,这将通过(步骤3)进行描述。

参照图10的(步骤3),由于预测模式候选组的数目很多,因此可以是假设未很好地使用一些预测模式(图中的虚线)的候选配置。

预测模式候选组选择信息可以显式地生成,并且可以在CTU、编码块、预测块、变换块等中通知。替选地,可以根据编码设置隐式地选择预测模式候选组,并且可以将编码设置定义为先前各种编码元素。另外,块的位置、预测模式等可以是在定义编码设置中另外考虑的元素。

在该情况下,块的位置和预测模式可以表示关于与当前块相邻的相邻块的信息。即,基于当前块和相邻块的属性信息,可以得出估计未很好地使用的预测模式,并且可以从预测模式候选组排除对应的模式。

例如,当相邻块包括图12的位置TL、T0、TR0、L0和BL0时,假设对应的块的预测模式具有某种方向性(从左上到右下)。在该情况下,可以预期当前块的预测模式具有高概率的某种方向性,并且可能存在以下处理可能性。

例如,可以对预测模式候选组内的所有模式执行帧内预测。另外,可以基于预测模式候选组来执行预测模式编码。

替选地,可以对已经从中去除一些模式的预测模式候选组内的模式执行帧内预测。另外,可以基于已经从中去除一些模式的预测模式候选组来执行预测模式编码。

比较以上示例,可以区分被认为具有低出现概率的预测模式是被包括在实际预测和编码过程(其可以被包括为非MPM等)中还是被去除。

在可以部分地去除具有与相邻块的预测模式不同的方向性的预测模式的(B21)的情况下,可以是这样的示例:对于实际出现对应的方向性模式的情况,去除一些稀疏排列的模式。

图11示出了作为应用本发明的实施方式的将帧内预测模式分类成多个候选组的方法。

下面将描述分类成用于帧内预测模式的解码的一个或更多个候选组的情况,并且其可以与前面提及的MPM候选组和非MPM候选组相同或相似。因此,本实施方式中未提及的部分可以通过先前实施方式相同或相似地得出。在本实施方式的情况下,稍后将描述扩展候选组的数目和配置候选组的方法。

可以通过选择性地使用多个候选组中的任何一个来得出当前块的帧内预测模式。为此,选择标记可以使用与(候选组的数目-1)一样多或更少的数目。

例如,当将预测模式分类成三个候选组(A,B,C)时,可以使用指示当前块的帧内预测模式是否从候选组A得出的标记(第一标记)。

在该情况下,当第一标记是第一值时,使用候选组A,并且当第一标记是第二值时,可以使用指示当前块的帧内预测模式是否从候选组B得出的标记(第二标记)。

在该情况下,当第二标记是第一值时,使用候选组B,而当第二标记是第二值时,可以使用候选组C。在以上示例中,支持三个候选组,并且为此,可以使用第一标记和第二标记——即总计两个选择标记。

当选择候选组之一时,可以基于候选组和候选组索引来确定当前块的帧内预测模式。候选组索引可以是指定属于候选组的候选中的任何一个的信息。仅当多个候选属于候选组时,才可以通知候选组索引。

通过以上示例描述了当支持三个候选组时选择标记的配置。如在以上配置中,可以顺序地支持指示当前块的预测模式是否从具有高优先级的候选组得出的标记(例如,按照第一标记→第二标记的顺序)。即,当生成预定候选组选择标记并且未选择对应的候选组时,可以生成具有下一优先级的候选组的选择标记。

替选地,可以是具有与选择标记(EE)不同的含义的配置。例如,可以使用指示当前块的帧内预测模式是否从候选组A或候选组B得出的标记(第一标记)。

在该情况下,当第一标记是第一值时,使用候选组C,而当第一标记是第二值时,可以使用指示当前块的帧内预测模式是否从候选组A得出的标记(第二标记)。

在该情况下,当第二标记是第一值时,可以使用候选组A,而当第二标记是第二值时,可以使用候选组B。

候选组A、B和C中的每一个可以具有m个、n个和p个候选,并且m可以是1、2、3、4、5、6或更大的整数。n可以是1、2、3、4、5、6或更大的整数。替选地,n可以是10到40之间的整数。p可以是(预测模式的总数-m-n)。这里,m可以小于或等于n,并且n可以小于或等于p。

作为另一示例,当将预测模式分类成四个候选组(A,B,C,D)时,可以使用指示当前块的帧内预测模式是否从候选组A、B、C得出的标记(第一标记,第二标记,第三标记)。

在该情况下,当第一标记是第二值时,可以生成第二标记,而当第二标记是第二值时,可以生成第三标记。即,当第一标记是第一值时,可以使用候选组A,而当第二标记是第一值时,可以使用候选组B。另外,当第三标记是第一值时,可以使用候选组C,而当第三标记是第二值时,可以使用候选组D。在该示例中,相反的配置也是可能的,如在三个候选组的配置的一些示例(EE)中。

替选地,当第一标记是第一值时,可以生成第二标记,而当第一标记是第二值时,可以生成第三标记。当第二标记是第一值时,可以使用候选组A,而当第二标记是第二值时,可以使用候选组B。当第三标记是第一值时,可以使用候选组C,而当第二值是第二值时,可以使用候选组D。

候选组A、B、C和D中的每一个可以具有m个、n个、p个和q个候选,并且m可以是1、2、3、4、5、6或更大的整数。n可以是1、2、3、4、5、6或更大的整数。替选地,n可以是8到24之间的整数。p可以是整数,例如6、7、8、9、10、11、12等。替选地,p可以是10到32之间的整数。q可以是(预测模式的总数-m-n-p)。这里,m可以小于或等于n,n可以小于或等于p,并且p可以小于或等于q。

接下来,将描述当支持多个候选组时配置每个候选组的方法。支持多个候选组的原因是为了高效的帧内预测模式解码。即,预期与当前块的帧内预测模式相同的预测模式被配置为具有高优先级的候选组,并且不期望与当前块的帧内预测模式相同的预测模式被配置为具有低优先级的候选组。

例如,在图11中,当类别2(a)、类别3(b和c)和类别4(d)分别是具有最低优先级的候选组时,可以使用不包括在具有先前优先级的候选中的任何一个中的预测模式来配置候选组。在该实施方式中,由于候选组由不包括在之前的候选组中的剩余预测模式构成,因此假设是与配置稍后要描述的每个候选组的预测模式之间的优先级无关的候选组(即,在不考虑优先级的情况下,不包括在先前候选组中的剩余预测模式)。并且,假设候选组之间的优先级(优先次序)是按照升序(类别1→类别2→类别3→类别4),如图11所示,并且稍后描述的示例中的优先级是在用于配置每个候选组的列表模式中使用的术语。

类似于前面提及的MPM候选组,候选组可以配置有相邻块的预测模式、默认模式、预定方向性模式等。出于将较少量的比特分配给具有最高出现概率的预测模式的目的,可以通过确定用于配置候选组的预定优先级来配置候选组。

参照图11A,可以支持第一候选组(类别1)的优先级。当根据优先级基于第一候选组的数目来配置第一候选组时,可以将剩余预测模式(b、j等)配置为第二候选组(类别2)。

参照图11B,可以支持第一候选组和第二候选组的共同优先级。根据优先级,基于第一候选组的数目来配置第一候选组。在第一候选组中最终包括的预测模式(e)之后(c之后),根据优先级基于第二候选组的数目来配置第二候选组。另外,可以将剩余预测模式(b、j等)配置为第三候选组(类别3)。

参照图11C,可以支持第一候选组和第二候选组的单独优先级(第一优先级、第二优先级)。根据第一优先级基于第一候选组的数目来配置第一候选组。然后,根据第二优先级基于第二候选组的数目来配置第二候选组。另外,可以将剩余预测模式(b、w、x等)配置为第三候选组。

这里,与现有优先级(第一优先级)类似,可以基于相邻块<1>的预测模式、默认模式<2>、预定方向性模式<3>等来设置第二优先级。然而,可以基于与第一优先级不同的重要性来设置优先级(例如,如果按照1-2-3的顺序配置第一优先级,则按照3-2-1的顺序配置第二优先级等)。另外,第二优先级可以根据先前候选组中包括的模式可变地配置,并且可以受当前块的相邻块的模式的影响。可以与第一优先级不同地配置第二优先级,但是可以理解,第二优先级的配置可以部分地受第一候选组的配置的影响。在本段中,应当理解,第一优先级(先前等级)、第一候选组(先前候选组)、以及第二优先级(当前等级)和第二候选组(当前候选组)不以诸如数字的固定等级描述。

参照图11D,可以支持第一候选组和第二候选组的共同优先级(第一优先级),并且可以支持第三候选组的单独优先级(第二优先级)。根据第一优先级基于第一候选组的数目来配置第一候选组。在第一候选组中最终包括的预测模式(d)之后(e之后),根据优先级基于第二候选组的数目来配置第二候选组。然后,根据第二优先级,基于第三候选组的数目来配置第三候选组。另外,可以将剩余预测模式(u、f等)配置为第四候选组。

根据本发明的实施方式,在当前块的帧内预测模式的情况下,预测模式可以配置有一个或更多个候选组,并且可以基于此执行预测模式解码。在该情况下,可以支持用于配置候选组的一个或更多个优先级。可以在配置一个或更多个候选组的过程中使用优先级。

在以上示例中,当支持两个或更多个优先级时,与先前候选组(第一候选组)中使用的优先级(第一优先级)分开的优先级(第二优先级)用于另一候选组(第二候选组)。这可以对应于根据一个优先级配置一个候选组中的所有候选的情况。

另外,用于第一候选组的第一优先级可以用于配置第二候选组中的一些候选。即,可以基于第一优先级(从不包括在第一候选组中的模式开始)来确定第二候选组中的一些候选(cand_A),并且可以基于第二优先级来确定第二候选组中的一些候选(或剩余候选,cand_B)。在该情况下,cand_A可以是0、1、2、3、4、5或更大的整数。即,当配置第一候选组时,可以将不包括在第一候选组中的预测模式包括在第二候选组中。

例如,支持三个候选组,并且第一候选组包括两个候选,并且可以在相邻块(例如,左、上)的预测模式、预定方向性模式(例如,垂直、水平等)、预定非方向性模式(例如,DC、平面等)中确定第一优先级(例如,Pmode_L-Pmode_U-DC-Planar-Ver-Hor等)。根据第一优先级(例如,Pmode_L、Pmode_U)基于第一候选组的数目来配置候选组。

在该情况下,第二候选组配置有6个候选,并且可以在与相邻块的预测模式具有预定间隔(1、2、3、4或更大的整数)的方向性模式和具有预定斜率(dy/dx,1∶1,1∶2,2∶1,4∶1,1∶4等)的方向性模式中确定第二优先级(例如,对角左下-对角右下-对角右上-等)。

可以根据第二优先级基于第二候选组的数目来配置第二候选组。替选地,可以基于第一优先级来配置第二候选组的两个候选(DC,平面),并且可以基于第二优先级来配置剩余四个候选(DDL,DDR,DUR)。

为了便于说明,使用与先前描述相同的术语,例如第一候选组、第二候选组和第一优先级,但是应当注意,多个候选组中的候选组之间的优先级不固定到第一和第二。

总之,当分类成用于预测模式解码的多个候选组并且支持一个或更多个优先级时,可以基于一个或更多个优先级来配置预定候选组。

图12是示出作为应用本发明的实施方式的当前块和与其相邻的像素的示例性图。

参照图12,示出了属于当前块的像素(a至p)和与其相邻的像素。详细地,与其相邻的像素表示与当前块相邻且可参考的像素(Ref_T,Ref_L,Ref_TL,Ref_TR和Ref_BL)以及与当前块相邻但不可参考的像素(B0至B3,R0至R3,BR)。该图假设一些编码顺序、扫描顺序等是固定的(可以参考当前块的左、上、左上、右上和左下块),并且可以根据编码设置的改变而改变成不同配置。

图13示出了作为应用本发明的实施方式的逐步执行帧内预测的方法。

当前块可以使用位于左、右、上和下方向上的像素来执行帧内预测。在该情况下,如图12所示,不仅可以存在可以参考的像素,而且还可以存在不能参考的像素。通过不仅估计可参考像素的像素值而且还估计非可参考像素的像素值并使用它们,可以提高编码效率。

参照图13,可以获得任意像素值(SB00)。

这里,任意像素可以是在当前块周围不能参考的像素或当前块内部的像素。将参照以下图描述任意像素位置。

图14是作为应用本发明的实施方式的用于帧内预测的任意像素的示例性图。

参照图14,不仅位于当前块外部并且不能参考的像素(c),而且位于当前块内部的像素(a,b)也可以是任意像素。以下假设当前块的大小为宽度×高度,并且左上坐标为(0,0)。

在图14中,a和b可以位于(0,0)至(宽度-1,高度-1)。

例如,a和b可以位于当前块的边界线(左,右,上,下)上。例如,a和b可以位于当前块的右列(宽度-1,0)至(宽度-1,高度-1)或当前块的下行(0,高度-1)至(宽度-1,高度-1)。

例如,a和b可以位于当前块的奇数或偶数列和行。例如,a和b可以位于当前块的偶数行,或者可以位于当前块的奇数列。替选地,a和b可以位于当前块的偶数行和奇数列,或者可以位于当前块的奇数行和奇数列。这里,a和b除了奇数或偶数之外还可以位于与k或指数(2

在图14中,c可以位于可参考像素和当前块外部。

作为示例,c可以位于当前块的边界线(在该示例中,右、下)上。例如,c可以位于当前块的右边界(宽度,0)至(宽度,高度)或当前块的下边界(0,高度)至(宽度,高度)。

例如,c可以位于当前块的奇数或偶数列和行。例如,c可以位于当前块右边界之外的偶数行,或者可以位于当前块的下边界之外的奇数列。这里,c除了奇数或偶数之外还可以位于与k或指数(2

用于/参考当前块的帧内预测的任意像素的数目可以是m,并且m可以是1、2、3、4或更大。替选地,可以基于当前块的大小(宽度或高度)来设置任意像素的数目。例如,用于帧内预测的任意像素的数目可以是宽度/w_factor、高度/h_factor或(宽度*高度)/wh_factor。这里,w_factor和h_factor可以是基于每个块的宽度和高度用作划分值的预定值,并且可以是诸如1、2、4和8的整数。这里,wh_factor可以是基于块的大小用作划分值的预定值,并且可以是诸如2、4、8、16等的整数。

此外,可以基于诸如图像类型、分量类型、块属性和帧内预测模式的编码元素中的全部或一些来确定任意像素的数目。

通过以上过程获得的任意像素可以从可以参考对应的像素值的区域获得。例如,可以基于位于任意像素的水平或垂直方向上的可参考像素来获得像素值。

在该情况下,可以将任意像素的像素值作为通过使用位于(<1>水平方向/<2>垂直方向)的一个或更多个像素(k,k是1、2、3、4、5、6等的整数)的复制或加权平均值获得的值来获得。在(<1>水平方向/<2>垂直方向)中,可以使用/参考任意像素的坐标中具有相同或相似(<1>y分量/<2>x分量)的可参考像素来获得像素值。然而,从广义上讲,位于当前块的(<1>左方向/<2>上方向)的可参考像素可以用于获得任意像素的像素值。

可以基于水平方向或垂直方向来获得像素值,或者可以基于这两个方向来获得像素值。在该情况下,可以基于各种编码元素(在以上示例中描述,例如图像类型和块属性)来确定像素值获取设置。

例如,当当前块具有宽度大于高度的矩形形状时,可以基于位于垂直方向上的可参考像素来获得任意像素的像素值。替选地,当基于位于垂直方向和水平方向上的可参考像素中的每一个来获得主像素值时,可以通过对在垂直方向上获得的主像素值而不是在水平方向上获得的主像素值进一步施加权重来获得次像素值(即,任意像素的像素值)。

替选地,当当前块具有高度大于宽度的矩形形状时,可以基于位于水平方向上的可参考像素来获得任意像素的像素值。替选地,当基于位于垂直方向和水平方向上的可参考像素中的每一个来获得主像素值时,可以通过对在水平方向上获得的主像素值而不是在垂直方向上获得的主像素值进一步施加权重来获得次像素值(即,任意像素的像素值)。当然,不限于以上示例,相反的配置也是可能的。

另外,可以配置预定候选列表,并且可以通过选择其中的至少之一来获得任意像素的像素值。可以以诸如CTU、编码块、预测块和变换块的单元中之一来通知。在该情况下,候选列表可以配置有预定值,或者可以基于与当前块相邻的上述可参考像素来配置。在该情况下,候选列表的数目可以是2、3、4、5或更大的整数。替选地,候选列表的数目可以是10到20之间的整数、20到40之间的整数或10到40之间的整数。

这里,在候选列表中,可以将像素值配置为候选,或者可以将用于导出像素值、特征值等的等式配置为候选。在后一情况下,可以基于用于获得任意像素的位置(x坐标或y坐标)和像素值或特征值的等式,以任意像素为单位得出各种像素值。

如上所述,可以获得一个或更多个任意像素,并且可以基于此执行帧内预测。以下,为了便于说明,假设任意像素的数目为1。然而,显然,即使获得两个或更多个任意像素,也可以将稍后描述的示例扩展为相同或相似的情况。

参照图13,可以基于任意像素将子区域划分成多个子区域(SB10)。

这里,可以基于包括任意像素的水平线或垂直线来划分子区域,并且子区域的数目可以是2、3、4或更大的整数。将参照以下附图描述子区域的配置。

图15是作为应用本发明的实施方式的基于任意像素划分成多个子区域的示例性图。

参照图15,可以获得作为任意像素d的垂直线或水平线的预定子区域(b,c),并且可以基于垂直线和水平线来获得预定子区域(a)。

在该情况下,可以在任意像素与能够在垂直方向上参考的像素T之间获得子区域(b),并且可以在任意像素与能够在水平方向上参考的像素L之间获得子区域(c)。在该情况下,子区域b和c可以不总是固定地出现,并且根据当前块的任意像素相关设置(例如,b或c也是任意像素等),可以出现这两个子区域中的仅一个。如果出现子区域b和c中的仅一个,则可能不会出现子区域a。

如图15所示,T或L可以是指与当前块相邻的可参考像素。替选地,T或L可以是指位于任意像素(d)的垂直方向或水平方向上的不同于d的任何像素(e,f)。这表示任何像素d也可以是任何其他像素的T或L。

如在以上示例中,可以基于当前块中的任意像素的数目和布置来确定子区域的大小。

例如,当两个或更多个任意像素存在并且位于一个狭缝的间隔处时,子区域a、b和c中的每一个可以具有1×1的大小。替选地,当一个任意像素存在并且位于图14的c处时,子区域a、b和c可以分别具有(宽度×高度)、(1×高度)和(宽度×1)的大小。

参照图13,可以根据预定顺序执行帧内预测(SB20)。

这里,根据任意像素的位置,一些子区域可以用作用于帧内预测的预测值,或者可以用作用于帧内预测的临时参考值。

例如,当任意像素(或子区域d)位于图14的c处时,子区域b和c位于当前块外部,并且仅子区域a可以是帧内预测的目标。替选地,当任意像素位于图14的c上方时,子区域b位于当前块外部,并且子区域a和c可以是帧内预测的目标。替选地,当任意像素位于图14的c的左侧时,子区域c位于当前块外部,并且子区域a和b可以是帧内预测的目标。替选地,当任意像素位于当前块内部时,子区域a、b和c可以是帧内预测的目标。

如在以上示例中,根据任意像素的位置,其可以是帧内预测的目标,或者可以用作临时参考值。

以下描述假设任意像素位于当前块内部的情况,但是即使发生位置改变,也可以以相同或相似的方式来应用和理解以下示例。

由于通过先前步骤获得任意像素的位置和像素值,因此可以根据子区域a、b和c中的预定优先级执行每个子区域获取过程。例如,可以按照b→c或c→b的顺序获得每个子区域的像素值,并且可以获得子区域a的像素值。

在子区域b的情况下,可以基于任意像素d或T来获得像素值。在子区域c的情况下,可以基于任意像素d或L来获得像素值。

尽管图中未示出,但是假设左上像素是TL(即,T的水平线与L的垂直线的交点)。当TL和T位于当前块的上部时,可以参考TL与T之间的像素。另外,当TL和L位于当前块的左侧时,可以参考TL与L之间的像素。这是因为可参考像素属于与当前块相邻的块。

另一方面,当至少一个TL或T位于当前块内部时,可以参考TL与T之间的像素。另外,当TL或L中的至少之一位于当前块内部时,可以参考TL与L之间的像素。这是因为可参考像素可以是基于另一任意像素获得的子区域。

因此,在子区域a的情况下,可以基于子区域b和c、TL与T之间的可参考区域、以及TL与L之间的可参考区域来获得像素值。当然,TL、T、L和d可以用于获得子区域a的像素值。这里,这表示也可以参考任何像素。

通过以上过程,可以基于任意像素来执行当前块的帧内预测。

基于任意像素执行帧内预测可以被配置为帧内预测模式之一,或者可以被包括为现有模式的替代。

替选地,可以将其分类为预测方法的一个候选,并且可以生成用于该预测方法的选择信息。例如,可以将其视为基于方向性模式或非方向性模式执行帧内预测的方法的附加预测方法。选择信息可以在CTU、编码块、预测块、变换块等中通知。

将在任意像素位置是图14的c的假设下描述以下内容。然而,本发明不限于此,并且即使布置在不同位置,也可以以相同或相似的方式应用以下描述的内容。下面将参照图12进行描述。

尽管当前块以及当前块的右块和下块未被编码,但是可以基于可参考区域的数据来估计它们。

例如,可以从作为与当前块的右边界和下边界相邻的区域的Ref_TR、Ref_BL等复制或得出数据,并且然后可以用数据填充当前块的右边界或下边界。例如,可以通过按原样复制诸如T3、TR0和TR1的像素之一来填充右边界,或者用通过对T3、TRO和TR1应用滤波而获得的值来填充右边界。

替选地,可以从作为与当前块相邻的区域的Ref_TL、Ref_T、Ref_L、Ref_TR、Ref_BL等复制或得出数据,并且可以用数据填充当前块的右下边界。例如,可以用基于相邻区域中的一个或更多个像素获得的值来填充当前块的右下边界。

这里,当前块的右边界可以是(d~p)或(R0~R3)。当前块的下边界可以是(m~p)或(B0~B3)。当前块的右下边界可以是p、BR、R3和B3之一。

在以下示例中,假设右边界是R0~R3,下边界是B0~B3,并且右下边界是BR。

(右边界和下边界的处理)

例如,可以通过复制与垂直方向相邻的T3、TR0和TR1之一来填充右边界,并且可以通过复制与水平方向相邻的L3、BL0和BL1之一来填充下边界。

替选地,可以用与垂直方向相邻的T3、TR0和TR1的加权平均值来填充右边界,并且可以用与水平方向相邻的L3、BL0和BL1的加权平均值来填充下边界。

在获得右边界和下边界的值之后,可以基于这些值来执行当前块的帧内预测。

(右下边界的处理)

例如,可以通过复制T3、TR0、TR1、L3、BL0和BL1之一来填充右下边界。替选地,可以用T3、TR0和TR1之一和L3、BL0和BL1之一的加权平均值来填充右下边界。替选地,可以用T3、TR0和TR1的加权平均值和L3、BL0和BL1的加权平均值之一来填充右下边界。替选地,可以用T3、TR0和TR1的第一加权平均值和L3、BL0和BL1的第一加权平均的第二加权平均值来填充右下边界。

在获得右下边界的值之后,可以基于该值获得右边界或下边界的值,并且可以基于右边界或下边界来执行当前块的帧内预测。

以下继续右下边界处理的描述。

假设考虑TL、TR0、BL0和BR的位置的配置。这里,BR可以表示右下边界处的像素,TR0可以是位于BR的垂直方向上的可参考像素,BL0可以是位于BR的水平方向上的可参考像素,并且TL可以是位于当前块的左上边界或TR0的水平方向与BL0的垂直方向之间的交点处的可参考像素。

基于像素位置,可以估计当前块的方向性和特征信息(例如,边缘等)。

作为示例<1>,当从TL对角移动到BR时,像素值可以逐渐增大或减小。在该情况下,如果TL大于或等于TR0和BL0,则BR可以小于或等于TR0和BL0。替选地,可以是相反的配置。

作为示例<2>,当从BL0对角移动到TR0时,像素值可以逐渐增大或减小。在该情况下,如果BL0大于或等于TL和BR,则TR0可以小于或等于TL和BR。替选地,可以是相反的配置。

作为示例<3>,当在水平方向上从左(TL,BL0)移动到右(TR0,BR)时,像素值可以逐渐增大或减小。在该情况下,如果TL大于或等于TR0,则BL0可以大于或等于BR。替选地,可以是相反的配置。

作为示例<4>,当在垂直方向上从上(TL,TR0)移动到下(BL0,BR)时,像素值可以逐渐显示或减小。在该情况下,如果TL大于或等于BL0,则TR0可以大于或等于BR。替选地,可以是相反的配置。

如果当前块中存在如在以上示例中的图像特征,则可以使用此预测右下边界。在该情况下,可能需要位于估计目标像素的垂直方向或水平方向上的像素以及作为每个像素的垂直方向或水平方向上的交点的像素,并且可以基于其像素值的比较来预测估计目标像素。

<1>示例:当TL<=TR0并且TL<=BL0时,可以通过估计存在从TL增大到BR的趋势,基于像素之间的差异来得出(预测)BR值。

例如,可以通过将(BL0-TL)的值加至TR0或通过将(TR0-TL)的值加至BL0来得出BR像素值。替选地,可以通过对所述两个值进行平均或加权平均得出BR像素值。

<2>示例:当TL>=BL0并且TL<=TR0时,可以通过估计存在从BL0增大到TR0的趋势,基于像素之间的差异来得出BR值。

例如,可以通过从TR0减去(TL-BL0)值或通过将(TR0-TL)值加至BL0来得出BR像素值。替选地,可以通过对所述两个值进行平均或加权平均得出BR像素值。

在以上示例中,描述了通过基于与当前块相邻的预定像素估计块的特性来预测任意像素BR的情况。同时,由于像素有限,可能难以准确地把握块的特性。例如,当脉冲分量存在于参考以导出BR像素中的一些中时,可能难以准确地把握特征。

为此,可以计算当前块的上区域和左区域的特性信息(例如,方差、标准偏差等)。例如,如果确定TL与TR0之间的像素的特性信息或TL与BL0之间的像素的特性信息很好地反映了块的增大或减小,则可以使用基于当前块的预定像素例如TL、TR0、BL0等来得出诸如BR的任意像素的值的方法。

本公开内容的各种实施方式不旨在包括一切,并且旨在示出本公开内容的代表性方面,并且各种实施方式中描述的特征可以独立地或以两个或更多个的组合来应用。

另外,本公开内容的各种实施方式可以通过硬件、固件、软件或其组合来实现。在硬件实现方式的情况下,可以通过一个或更多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器等来实现硬件。

本公开内容的范围包括:软件或机器可执行指令(例如,操作系统、应用、固件、程序等),该软件或机器可执行指令使根据各种实施方式的方法的操作在装置或计算机上执行;以及非暂态计算机可读介质,其中储存有能够在装置或计算机上执行的这样的软件或指令。

工业适用性

本发明可以用于对视频信号进行编码/解码。

相关技术
  • 基于帧内预测的视频编码/解码方法和装置
  • 一种基于分割的色度帧内预测方法、及视频编码解码方法
技术分类

06120113205848