对视频编码的方法和设备及对视频解码的方法和设备与流程

文档序号:14302840阅读:175来源:国知局
对视频编码的方法和设备及对视频解码的方法和设备与流程

技术领域

示例性实施例涉及对视频编码的方法和设备以及对视频解码的方法和设备,所述方法和设备能够通过使用滤波的相邻像素执行帧内预测来提高视频压缩效率。



背景技术:

在比如MPEG-1、MPEG-2、MPEG-4和H.264/MPEG-4高级视频编码(AVC)的视频压缩方法中,一个画面可被划分为用于对视频编码的宏块。之后,根据可用于帧间预测和帧内预测的所有编码模式对每个宏块编码,然后根据对宏块编码所需的比特率和原始宏块与解码的宏块之间的失真来选择一个编码模式。

随着用于再现和存储高分辨率的视频内容或高品质的视频内容的硬件被开发和提供,增加了对用于有效地对高分辨率的视频内容或高品质的视频内容编码或解码的视频编解码器的需要。在传统的视频编解码器中,基于具有预定大小的宏块根据有限预测模式对视频进行编码。



技术实现要素:

技术问题

在传统的视频编解码器中,基于具有预定大小的宏块根据有限预测模式对视频编码。

技术方案

示例性实施例提供一种对视频编码的方法和设备以及对视频解码的方法和设备,所述方法和设备能够通过对当前块的相邻像素进行滤波并通过使用滤波的相邻像素对当前块执行帧内预测来提高视频压缩效率。

有益效果

根据本发明,编码效率被提高。

附图说明

图1是根据示例性实施例的对视频编码的设备的框图;

图2是根据示例性实施例的对视频解码的设备的框图;

图3是用于描述根据示例性实施例的编码单元的概念的示图;

图4是根据示例性实施例的基于编码单元的图像编码器的框图;

图5是根据示例性实施例的基于编码单元的图像编码器的框图;

图6是示出根据示例性实施例的根据深度的较深层编码单元以及分块的示图;

图7是用于描述根据示例性实施例的编码单元和变换单元之间的关系的示图;

图8是用于描述根据示例性实施例的与编码深度相应的编码单元的编码信息的示图;

图9是根据示例性实施例的根据深度的较深层编码单元的示图;

图10至图12是用于描述根据示例性实施例的编码单元、预测单元和变换单元之间的关系的示图;

图13是用于描述根据表1的编码模式信息的编码单元、预测单元或分块和变换单元之间的关系的示图;

图14示出根据示例性实施例的帧内预测设备的框图;

图15是示出根据示例性实施例的根据编码单元的大小的帧内预测模式的数量的表;

图16A至图16C示出根据示例性实施例的应用到具有预定大小的编码单元的帧内预测模式;

图17示出根据另一示例性实施例的应用到具有预定大小的编码单元的帧内预测模式;

图18A至图18C是描述根据示例性实施例的具有各种方向的帧内预测模式的示图;

图19是示出根据示例性实施例的当前编码单元和将被滤波的相邻像素的示图;

图20是用于描述根据示例性实施例的对相邻像素滤波的处理的示图;

图21是示出根据示例性实施例的视频编码方法的流程图;

图22是示出根据示例性实施例的视频解码方法的流程图。

最佳模式

根据示例性实施例的一方面,提供了一种视频编码方法,所述视频编码方法包括:对将被编码的当前块的相邻像素进行滤波以产生滤波的相邻像素;将滤波的相邻像素或原始相邻像素选择为用于对当前块执行帧内预测的参考像素;通过使用选择的参考像素对当前块执行帧内预测。

根据示例性实施例的另一方面,提供了一种视频解码方法,所述视频解码方法包括:对将被解码的当前块的相邻像素进行滤波以产生滤波的相邻像素;从比特流提取关于应用到当前块的帧内预测模式的信息;将滤波的相邻像素或原始相邻像素选择为用于对当前块执行帧内预测的参考像素;通过使用提取的关于帧内预测模式的信息和选择的参考像素对当前块执行帧内预测。

根据示例性实施例的另一方面,提供了一种视频编码设备,所述视频编码设备包括:相邻像素滤波单元,对将被编码的当前块的相邻像素进行滤波以产生滤波的相邻像素;参考像素确定单元,将滤波的相邻像素或原始相邻像素选择为用于对当前块执行帧内预测的参考像素;帧内预测执行单元,通过使用选择的参考像素对当前块执行帧内预测。

根据示例性实施例的另一方面,提供了一种视频解码设备,所述视频解码设备包括:相邻像素滤波单元,对将被解码的当前块的相邻像素进行滤波以产生滤波的相邻像素;熵解码器,从比特流提取关于应用到当前块的帧内预测模式的信息;参考像素确定单元,将滤波的相邻像素或原始相邻像素选择为用于对当前块执行帧内预测的参考像素;帧内预测执行单元,通过使用提取的关于帧内预测模式的信息和选择的参考像素对当前块执行帧内预测。

具体实施模式

以下,将参照附图更全面地描述示例性实施例,示例性实施例显示在附图中。在示例性实施例中,取决于其上下文,单元可以表示或者也可以不表示大小的单位。在本说明书中,图像可以表示用于视频的静止图像或者运动图像(也即,视频本身)。

下面,根据示例性实施例,“编码单元”是在编码器侧对图像数据进行编码的编码数据单元和在解码器侧对编码的图像数据解码的编码后的数据单元。此外,“编码深度”表示对编码单元编码的深度。

首先将参照图1至图13描述根据示例性实施例的对视频编码的方法和设备以及对视频解码的方法和设备。

图1是根据示例性实施例的视频编码设备100的框图。

视频编码设备100包括最大编码单元划分器110、编码单元确定器120和输出单元130。

最大编码单元划分器110可基于用于图像的当前画面的最大编码单元来划分当前画面。如果当前画面大于最大编码单元,则当前画面的图像数据可被划分为至少一个最大编码单元。根据示例性实施例的最大编码单元可以是具有32×32、64×64、128×128、256×256等大小的数据单元,其中,数据单元的形状是具有宽度和高度为2的若干次方的正方形。根据至少一个最大编码单元,图像数据可被输出到编码单元确定器120。

根据示例性实施例的编码单元可由最大大小和深度来表示特性。深度表示编码单元从最大编码单元被空间划分的次数,并且随着深度加深或增加,可从最大编码单元到最小编码单元划分根据深度的较深层编码单元。最大编码单元的深度是最高的深度,最小编码单元的深度是最低的深度。因为与每个深度相应的编码单元的大小随着最大编码单元的深度加深而减小,所以与较高深度相应的编码单元可包括与较低深度相应的多个编码单元。

如上所述,当前画面的图像数据根据编码单元的最大大小被划分为多个最大编码单元,并且每个最大编码单元可包括根据深度划分的较深层编码单元。因为根据示例性实施例的最大编码单元根据深度被划分,所以包括在最大编码单元的空间域中的图像数据可根据深度被分层地分类。

编码单元的最大深度和最大大小可以被预先确定,所述最大深度和最大大小限制最大编码单元的高度和宽度被分层划分的总次数。

编码单元确定器120对通过根据深度划分最大编码单元的区域获得的至少一个划分区域编码,并根据至少一个划分区域确定深度以输出最终编码的图像数据。换句话说,编码单元确定器120根据当前画面的最大编码单元,通过根据深度以较深层编码单元对图像数据编码来确定编码深度,并选择具有最小编码误差的深度。因此,与确定的编码深度相应的编码单元的编码的图像数据被最终输出。此外,与编码深度相应的编码单元可被视为编码的编码单元。

确定的编码深度和根据确定的编码深度的编码的图像数据被输出到输出单元130。

基于与等于或低于最大深度的至少一个深度相应的较深层编码单元对最大编码单元中的图像数据编码,并且基于每个较深层编码单元来比较对图像数据编码的结果。可在比较较深层编码单元的编码误差之后选择具有最小编码误差的深度。可针对每个最大编码单元选择至少一个编码深度。

随着根据深度对编码单元进行分层划分且随着编码单元的数量的增加,最大编码单元的大小被划分。另外,即使在一个最大编码单元中多个编码单元相应于相同深度,也通过单独测量每个编码单元的图像数据的编码误差来确定是否将与相同深度相应的每个编码单元划分至较低的深度。因此,即使在图像数据被包括在一个最大编码单元中时,也根据深度将图像数据划分为多个区域,在所述一个最大编码单元中编码误差可根据区域而不同,因此,编码深度可根据在图像数据中的区域而不同。因此,可在一个最大编码单元中确定一个或多个编码深度,并可根据至少一个编码深度的编码单元对最大编码单元的图像数据进行划分。

因此,编码单元确定器120可确定包括在最大编码单元中的具有树结构的编码单元。根据示例性实施例的具有树结构的编码单元包括在最大编码单元中包括的所有较深层编码单元中与确定为编码深度的深度相应的编码单元。可在最大编码单元的相同区域中根据深度来分层确定编码深度的编码单元,并且可在不同区域中独立地确定编码深度的编码单元。类似地,当前区域中的编码深度与另一区域中的编码深度可被独立地确定。

根据示例性实施例的最大深度是与从最大编码单元到最小编码单元的划分次数相关的索引。根据示例性实施例的第一最大深度可表示从最大编码单元到最小编码单元的总划分次数。根据示例性实施例的第二最大深度可表示从最大编码单元到最小编码单元的深度级的总数。例如,当最大编码单元的深度为0时,最大编码单元被划分一次的编码单元的深度可被设置为1,最大编码单元被划分两次的编码单元的深度可被设置为2。这里,如果最小编码单元是最大编码单元被划分四次的编码单元,则存在深度0、1、2、3和4这5个深度级,因此,第一最大深度可被设置为4,第二最大深度可被设置为5。

可根据最大编码单元执行预测编码和变换。还可根据最大编码单元,基于根据等于最大深度的深度或小于最大深度的深度的较深层编码单元,执行预测编码和变换。可根据正交变换或整数变换的方法来执行变换。

因为每当最大编码单元根据深度被划分时较深层编码单元的数量都增加,所以对随着深度加深而产生的所有的较深层编码单元执行包括预测编码和变换的编码。为了方便描述,现在将基于最大编码单元中的当前深度的编码单元描述预测编码和变换。

视频编码设备100可不同地选择用于对图像数据编码的数据单元的大小或形状。为了对图像数据编码,执行诸如预测编码、变换和熵编码的操作,并且同时,相同的数据单元可被用于所有的操作,或者不同的数据单元可被用于各个操作。

例如,视频编码设备100可不仅选择用于对图像数据编码的编码单元,还可选择与编码单元不同的数据单元以对编码单元中的图像数据执行预测编码。

为了在最大编码单元中执行预测编码,可基于与编码深度相应的编码单元,即,基于不再被划分为与较低的深度相应的编码单元的编码单元,执行预测编码。以下,不再被划分并且变为用于预测编码的基础单元的编码单元现在将被称为预测单元。通过划分预测单元获得的分块(partition)可包括预测单元或通过划分预测单元的高度和宽度中的至少一个获得的数据单元。

例如,当2N×2N(其中,N是正整数)的编码单元不再被划分并且变为2N×2N的预测单元时,所述分块的大小可以是2N×2N、2N×N、N×2N以及N×N。分块类型的示例包括通过对称地划分预测单元的高度或宽度获得的对称分块、通过非对称地划分预测单元的高度或宽度(诸如1:n或n:1)获得的分块、通过几何地划分预测单元获得的分块、以及具有任意形状的分块。

预测单元的预测模式可以是帧内模式、帧间模式和跳过模式中的至少一个。例如,可对2N×2N、2N×N、N×2N或N×N的分块执行帧内模式或帧间模式。另外,可仅对2N×2N的分块执行跳过模式。对编码单元中的一个预测单元独立地执行编码,从而选择具有最小编码误差的预测模式。

视频编码设备100还可不仅基于用于对图像数据编码的编码单元,而且基于与编码单元不同的数据单元,对编码单元中的图像数据执行变换。

为了在编码单元中执行变换,可基于具有小于或等于所述编码单元的大小的数据单元来执行变换。例如,用于变换的数据单元可包括针对帧内模式的数据单元和针对帧间模式的数据单元。

用作变换的基础的数据单元将被称为变换单元。指示通过划分编码单元的高度和宽度以达到变换单元的划分次数的变换深度也可被设置在变换单元中。例如,在2N×2N的当前编码单元中,当变换单元的大小也为2N×2N时,变换深度可以为0;当当前编码单元的高度和宽度中的每一个分别被划分为两个相等部分,总共被划分为41个变换单元,并且变换单元的大小因而为N×N时,变换深度可以为1;当当前编码单元的高度和宽度中的每一个分别被划分为四个相等部分,总共被划分为42个变换单元,并且变换单元的大小因而为N/2×N/2时,变换深度可以为2。例如,可根据分层树结构来设置变换单元,在分层树结构中,较高的变换深度的变换单元根据变换深度的分层特性被划分为较低的变换深度的四个变换单元。

与编码单元相似,编码单元中的变换单元可被递归地划分为更小的区域,从而可以以区域为单位独立地确定变换单元。因此,编码单元中的残差数据可根据变换深度按照具有树结构的变换被划分。

根据与编码深度相应的编码单元的编码信息不仅需要关于编码深度的信息,还需要关于与预测编码和变换相关的信息。因此,编码单元确定器120不仅确定具有最小编码误差的编码深度,还确定预测单元中的分块类型、根据预测单元的预测模式以及用于变换的变换单元的大小。

稍后将参照图3至图12详细地描述根据示例性实施例的最大编码单元中的根据树结构的编码单元以及确定分块的方法。

编码单元确定器120可通过使用基于拉格朗日乘子(Lagrangian multiplier)的率失真最优化,测量根据深度的较深层编码单元的编码误差。

输出单元130在比特流中输出最大编码单元的图像数据和关于根据编码深度的编码模式的信息,其中,基于由编码单元确定器120确定的至少一个编码深度对最大编码单元的图像数据编码。

可通过对图像的残差数据编码来获得编码的图像数据。

关于根据编码深度的编码模式的信息可包括关于编码深度的信息、关于预测单元中的分块类型、预测模式和变换单元的大小的信息。

可通过使用根据深度的划分信息定义关于编码深度的信息,所述根据深度的划分信息指示是否对较低深度而非当前深度的编码单元执行编码。如果当前编码单元的当前深度是编码深度,则当前编码单元中的图像数据被编码和输出,并且因此划分信息可被定义为不将当前编码单元划分至较低深度。可选择地,如果当前编码单元的当前深度不是编码深度,则对较低深度的编码单元执行编码,并且因此划分信息可被定义为对当前编码单元进行划分以获得较低深度的编码单元。

如果当前深度不是编码深度,则对被划分为较低深度的编码单元的编码单元执行编码。因为在当前深度的一个编码单元中存在较低深度的至少一个编码单元,所以对较低深度的每个编码单元重复执行编码,从而可针对具有相同深度的编码单元递归地执行编码。

因为针对一个最大编码单元确定具有树结构的编码单元,并且针对编码深度的编码单元确定关于至少一个编码模式的信息,所以可针对一个最大编码单元确定关于至少一个编码模式的信息。另外,因为根据深度分层地划分图像数据,所以最大编码单元的图像数据的编码深度可根据位置而不同,从而可针对图像数据设置关于编码深度和编码模式的信息。

因此,输出单元130可将关于相应的编码深度和编码模式的编码信息分配给包括在最大编码单元中的编码单元、预测单元和最小单元中的至少一个。

根据示例性实施例的最小单元是通过将组成最低深度的最小编码单元划分为4份而获得的矩形数据单元。可选择地,最小单元可以是最大矩形数据单元,所述最大矩形数据单元可被包括在最大编码单元中包括的所有编码单元、预测单元、分块单元和变换单元中。

例如,通过输出单元130输出的编码信息可被分类为根据编码单元的编码信息和根据预测单元的编码信息。根据编码单元的编码信息可包括关于预测模式的信息以及关于分块的大小的信息。根据预测单元的编码信息可包括关于帧间模式的估计方向的信息、关于帧间模式的参考图像索引的信息、关于运动矢量的信息、关于帧内模式的色度分量的信息以及关于帧内模式的插值方法的信息。另外,关于根据画面、像条或GOP定义的编码单元的最大大小的信息以及关于最大深度的信息可被插入到比特流的SPS(序列参数集)或头中。

在视频编码设备100中,较深层编码单元可以是通过将作为上一层的较高深度的编码单元的高度或宽度除以2而获得的编码单元。换句话说,在当前深度的编码单元的大小是2N×2N时,较低深度的编码单元的大小是N×N。另外,具有2N×2N的大小的当前深度的编码单元可包括最多4个较低深度的编码单元。

因此,视频编码设备100可基于最大编码单元的大小和考虑当前画面的特性而确定的最大深度,通过针对每个最大编码单元确定具有最佳形状和最佳大小的编码单元,来形成具有树结构的编码单元。另外,因为可通过使用各种预测模式和变换中的任意一种来对每个最大编码单元执行编码,所以可考虑各种图像大小的编码单元的特性来确定最佳编码模式。

因此,如果以传统的宏块对具有高分辨率或大数据量的图像编码,则每个画面的宏块的数量会急剧增加,针对每个宏块产生的压缩信息的条数增加,从而难以发送压缩的信息并且数据压缩效率下降。然而,通过使用视频编码设备100,因为在考虑图像的大小而增大编码单元的最大大小的同时,考虑图像的特性调整了编码单元,所以图像压缩效率可提高。

图2是根据示例性实施例的视频解码设备200的框图。

视频解码设备200包括接收器210、图像数据和编码信息提取器220以及图像数据解码器230。用于视频解码设备200的各种操作的各种术语(诸如编码单元、深度、预测单元、变换单元以及关于各种编码模式的信息)的定义与参照图1和视频编码设备100所描述的术语的定义相同。

接收器210接收并解析编码的视频的比特流。图像数据和编码信息提取器220从解析的比特流中提取每个编码单元的编码的图像数据,并将提取的图像数据输出到图像数据解码器230,其中,编码单元具有根据每个最大编码单元的树结构。图像数据和编码信息提取器220可从关于当前画面的头或SPS提取关于当前画面的编码单元的最大大小的信息。

此外,图像数据和编码信息提取器220从解析的比特流提取关于编码单元的编码深度和编码模式的信息,其中,编码单元具有根据每个最大编码单元的树结构。提取的关于编码深度和编码模式的信息被输出到图像数据解码器230。换句话说,比特流中的图像数据被划分为最大编码单元,从而图像数据解码器230对每个最大编码单元的图像数据解码。

可针对关于与编码深度相应的至少一个编码单元的信息设置关于根据最大编码单元的编码深度和编码模式的信息,关于编码模式的信息可包括关于与编码深度相应的相应编码单元的分块类型的信息、关于预测模式的信息以及变换单元的大小的信息。另外,根据深度的划分信息可被提取作为关于编码深度的信息。

由图像数据和编码信息提取器220提取的关于根据每个最大编码单元的编码模式和编码深度的信息是关于这样的编码深度和编码模式的信息,即:所述编码深度和编码模式被确定为当编码器(诸如视频编码设备100)根据每个最大编码单元针对根据深度的每个较深层编码单元重复执行编码时产生最小编码误差。因此,视频解码设备200可通过根据产生最小编码误差的编码深度和编码模式对图像数据解码来恢复图像。

因为关于编码深度和编码模式的编码信息可被分配给相应的编码单元、预测单元和最小单元中的预定数据单元,所以图像数据和编码信息提取器220可提取关于根据预定数据单元的编码深度和编码模式的信息。被分配有相同的关于编码深度和编码模式的信息的预定数据单元可被推断为是包括在同一最大编码单元中的数据单元。

图像数据解码器230通过基于关于根据最大编码单元的编码深度和编码模式的信息,对每个最大编码单元中的图像数据解码来恢复当前画面。换句话说,图像数据解码器230可基于提取的与包括在每个最大编码单元中的具有树结构的编码单元中的每个编码单元的分块类型、预测模式和变换单元有关的信息,来对编码的图像数据解码。解码处理可包括预测和反变换,所述预测包括帧内预测和运动补偿。可根据反正交变换或反整数变换的方法来执行反变换。

图像数据解码器230可基于关于根据编码深度的编码单元的预测单元的分块类型和预测模式的信息,根据每个编码单元的分块和预测模式,执行帧内预测或运动补偿。

此外,图像数据解码器230可基于关于根据编码深度的编码单元的变换单元的大小的信息,根据编码单元中的每个变换单元来执行反变换,以根据最大编码单元执行反变换。

图像数据解码器230可通过使用根据深度的划分信息,确定当前最大编码单元的至少一个编码深度。如果所述划分信息指示在当前深度中不再划分图像数据,则当前深度是编码深度。因此,图像数据解码器230可通过使用关于预测单元的分块类型、预测模式、针对与编码深度相应的每个编码单元的变换单元的大小的信息,对当前最大编码单元中的与每个编码深度相应的至少一个编码单元的编码的数据进行解码,并输出当前最大编码单元的图像数据。

换句话说,可通过观察为编码单元中的预定数据单元分配的编码信息集,收集包含编码信息(所述编码信息包括相同的划分信息)的数据单元,并且收集的数据单元可被认为是将由图像数据解码器230以相同编码模式解码的一个数据单元。

视频解码设备200可获得与在对每个最大编码单元递归地执行编码时产生最小编码误差的至少一个编码单元有关的信息,并且视频解码设备200可使用所述信息来对当前画面解码。换句话说,可以对在每个最大编码单元中被确定为最佳编码单元的具有树结构的编码单元进行解码。此外,考虑图像数据的分辨率和数据量来确定编码单元的最大大小。

因此,即使图像数据具有高分辨率和大数据量,也可通过使用编码单元的大小和编码模式对所述图像数据进行有效地解码和恢复,其中,通过使用从编码器接收的关于最佳编码模式的信息,根据图像数据的特性来自适应地确定编码单元的大小和编码模式。

现在将参照图3至图13描述根据示例性实施例的确定具有树结构的编码单元、预测单元和变换单元的方法。

图3是用于描述根据示例性实施例的编码单元的构思的示图。

可以以宽度×高度来表示编码单元的大小,并且编码单元的大小可以是64×64、32×32、16×16和8×8。64×64的编码单元可被划分为64×64、64×32、32×64或32×32的分块,32×32的编码单元可被划分为32×32、32×16、16×32或16×16的分块,16×16的编码单元可被划分为16×16、16×8、8×16或8×8的分块,8×8的编码单元可被划分为8×8、8×4、4×8或4×4的分块。

在视频数据310中,分辨率是1920×1080,编码单元的最大大小是64,最大深度是2。在视频数据320中,分辨率是1920×1080,编码单元的最大大小是64,最大深度是3。在视频数据330中,分辨率是352×288,编码单元的最大大小是16,最大深度是1。图3中示出的最大深度表示从最大编码单元到最小编码单元的的划分的总数。

如果分辨率高或者数据量大,则编码单元的最大大小可以很大,以便不仅提高编码效率,还精确地反映图像的特性。因此,具有比视频数据330更高的分辨率的视频数据310和视频数据320的编码单元的最大大小可以为64。

因为视频数据310的最大深度是2,所以视频数据310的编码单元315可包括具有64的长轴(long axis)大小的最大编码单元,以及由于通过划分最大编码单元两次将深度加深至两层而具有32和16的长轴大小的编码单元。同时,因为视频数据330的最大深度是1,所以视频数据330的编码单元335可包括具有16的长轴大小的最大编码单元,以及由于通过划分最大编码单元一次将深度加深至一层而具有8的长轴大小的编码单元。

因为视频数据320的最大深度是3,所以所述视频数据320的编码单元325可包括具有64的长轴大小的最大编码单元,并且由于通过划分最大编码单元三次将深度加深至3层而具有32、16和8的长轴大小的编码单元。随着深度加深,详细信息可被精确地表示。

图4是根据示例性实施例的基于编码单元的图像编码器400的框图。

图像编码器400执行视频编码设备100的编码单元确定器120的操作,以对图像数据编码。换句话说,,帧内预测器410对当前帧405中的帧内模式的编码单元执行帧内预测,运动估计器420和运动补偿器425通过使用当前帧405和参考帧495,对当前帧405中的帧间模式的编码单元执行帧间估计和运动补偿。

从帧内预测器410、运动估计器420和运动补偿器425输出的数据通过变换器430和量化器440被输出为量化的变换系数。量化的变换系数通过反量化器460和反变换器470被恢复为空间域中的数据,并且恢复的空间域中的数据在通过去块单元480和环路滤波单元490进行后处理之后,被输出为参考帧495。量化的变换系数可通过熵编码器450被输出为比特流455。

为了在视频编码设备100中应用图像编码器400,图像编码器400的所有部件(即,帧内预测器410、运动估计器420、运动补偿器425、变换器430、量化器440、熵编码器450、反量化器460、反变换器470、去块单元480、环路滤波器490)在考虑每个最大编码单元的最大深度的同时,基于具有树结构的编码单元中的每个编码单元执行操作。

具体地说,帧内预测器410、运动估计器420以及运动补偿器425在考虑当前最大编码单元的最大大小和最大深度的同时,确定具有树结构的编码单元中的每个编码单元的分块和预测模式,变换器430确定在具有树结构的编码单元中的每个编码单元中的变换单元的大小。

图5是根据示例性实施例的基于编码单元的图像解码器500的框图。

解析器510从比特流505解析将被解码的编码图像数据和解码所需的关于编码的信息。编码图像数据通过熵解码器520和反量化器530被输出为反量化的数据,并且反量化的数据通过反变换器540被恢复为空间域中的图像数据。

帧内预测器550针对空间域中的图像数据,在帧内模式下对编码单元执行帧内预测,运动补偿器560通过使用参考帧585,在帧间模式下对编码单元执行运动补偿。

经过帧内预测器550和运动补偿器560的空间域中的图像数据可在通过去块单元570和环路滤波单元580进行后处理之后,被输出为恢复的帧595。另外,通过去块单元570和环路滤波单元580进行后处理的图像数据可被输出为参考帧585。

为了在视频解码设备200的图像数据解码器230中对图像数据解码,图像解码器500可执行在解析器510之后执行的操作。

为了在视频解码设备200中应用图像解码器500,图像解码器500的所有部件(即,解析器510、熵解码器520、反量化器530、反变换器540、帧内预测器550、运动补偿器560、去块单元570以及循环滤波单元580)针对每个最大编码单元基于具有树结构的编码单元来执行操作。

具体地说,帧内预测器550和运动补偿器560基于每个具有树结构的编码单元的分块和预测模式来执行操作,反变换器540基于每个编码单元的变换单元的大小来执行操作。

图6是示出根据示例性实施例的根据深度和分块的较深编码单元的示图。

视频编码设备100和视频解码设备200使用分层的编码单元以考虑图像的特性。根据图像的特性可合适地确定编码单元的最大高度、最大宽度和最大深度,或可由用户不同地设置编码单元的最大高度、最大宽度和最大深度。可根据编码单元的预定的最大大小来确定根据深度的较深编码单元的大小。

根据示例性实施例,在编码单元的分层结构600中,编码单元的最大高度和最大宽度每个都是64,最大深度是4。随着深度随分层结构600的垂直轴加深,较深编码单元的高度和宽度中的每一个都被划分。此外,沿分层结构600的水平轴示出了作为用于每个较深编码单元的预测编码的基础的预测单元和分块。

换句话说,编码单元610是分层结构600中的最大编码单元,其中,深度是0,大小(即高度×宽度)是64×64。深度沿着垂直轴加深,并存在大小为32×32和深度为1的编码单元620、大小为16×16和深度为2的编码单元630、大小为8×8和深度为3的编码单元640和大小为4×4和深度为4的编码单元650。大小为4×4和深度为4的编码单元650是最小编码单元。

编码单元的预测单元和分块根据每个深度沿着水平轴布置。换句话说,如果大小为64×64和深度为0的编码单元610是预测单元,则所述预测单元可被划分为包括在编码单元610中的多个分块,即:大小为64×64的分块610、大小为64×32的分块612、大小为32×64的分块614和大小为32×32的分块616。

类似地,大小为32×32深度为1的编码单元620的预测单元可以被划分为包括在编码单元620中的多个分块,即:大小为32×32的分块620、大小为32×16的分块622、大小为16×32的分块624和大小为16×16的分块626。

类似地,大小为16×16深度为2的编码单元630的预测单元可以被划分为包括在编码单元630中的多个分块,即:包括在编码单元630中的大小为16×16的分块、大小为16×8的分块632、大小为8×16的分块634和大小为8×8的分块636。

类似地,大小为8×8深度为3的编码单元640的预测单元可以被划分为包括在编码单元640中的多个分块,即:包括在编码单元640中的大小为8×8的分块、大小为8×4的分块642、大小为4×8的分块644和大小为4×4的分块646。

大小为4×4深度为4的编码单元650是最小编码单元和最低深度的编码单元。编码单元650的预测单元只被分配给大小为4×4的分块。

为了确定组成最大编码单元610的编码单元的至少一个编码深度,视频编码设备100的编码单元确定器120对包括在最大编码单元610中的与各个深度相应的编码单元执行编码。

随着深度加深,以相同范围和相同大小包括数据的根据深度的较深编码单元的数量增加。例如,需要4个与深度2相应的编码单元以覆盖与深度1相应的一个编码单元中包括的数据。因此,为了比较根据深度的相同数据的编码结果,与深度1相应的编码单元和与深度2相应的编码单元各自都被编码。

为了对深度中的当前深度执行编码,可通过沿着分层结构600的水平轴对与当前深度相应的编码单元中的每个预测单元执行编码来针对当前深度选择最小编码误差。作为选择,可通过随着深度沿分层结构600的垂直轴加深对每个深度执行编码来比较根据深度的最小编码误差,从而搜索最小编码误差。编码单元610中具有最小编码误差的深度和分块可被选择为编码单元610的编码深度和分块类型。

图7是用于描述根据示例性实施例的在编码单元710和变换单元720之间的关系的示图。

视频编码设备100或200根据具有小于或等于用于每个最大编码单元的最大编码单元的大小的编码单元对图像进行编码或解码。可基于不大于相应编码单元的数据单元来选择编码期间用于变换的变换单元的大小。

例如,在视频编码设备100或200中,如果编码单元170的大小是64×64,则可通过使用大小为32×32的变换单元720来执行变换。

此外,可通过对大小小于64×64的32×32、16×16、8×8、4×4的变换单元中的每一个执行变换来对大小为64×64的编码单元710的数据进行编码,然后可选择具有最小编码误差的变换单元。

图8是用于描述根据示例性实施例的与编码深度相应的编码单元的编码信息的示图。

视频编码设备100的输出单元130可将与编码深度相应的每个编码单元的关于分块类型的信息800、关于预测模式的信息810和关于变换单元的大小的信息820编码为关于编码模式的信息,并将其发送。

信息800表示关于通过划分当前编码单元的预测单元而获得的分块的形状的信息,其中,所述分块是用于对当前编码单元进行预测编码的数据单元。例如,大小为2N×2N的当前编码单元CU_0可被划分为大小为2N×2N的分块802、大小为2N×N的分块804、大小为N×2N的分块806和大小为N×N的分块808中的任意一个。这里,关于分块类型的信息800被设置为表示大小为2N×N的分块804、大小为N×2N的分块806和大小为N×N的分块808中的一个。

信息810表示每个分块的预测模式。例如,信息810可表示对由信息800表示的分块执行预测编码的模式,即:帧内模式812、帧间模式814或跳过模式816。

信息820表示当对当前编码单元执行变换时作为基础的变换单元。例如,变换单元可以是第一帧内变换单元822、第二帧内变换单元824、第一帧间变换单元826或第二帧间变换单元828。

视频解码设备200的图像数据和编码信息提取器220可根据每个较深编码单元提取和使用用于解码的信息800、810和820。

图9是根据示例性实施例的根据深度的较深编码单元的示图。

划分信息可被用于表示深度的改变。划分信息表示当前深度的编码单元是否被划分为较低深度的编码单元。

用于对深度为0大小为2N_0×2N_0的编码单元900进行预测编码的预测单元910可包括大小为2N_0×2N_0的分块类型912、大小为2N_0×N_0的分块类型914、大小为N_0×2N_0的分块类型916和大小为N_0×N_0的分块类型918的分块。图9只示出了通过对称地划分预测单元910获得的分块类型912至分块类型918,但是分块类型不限于此,预测单元910的分块可包括非对称分块、具有预定形状的分块和具有几何形状的分块。

根据每个分块类型,可对大小为2N_0×2N_0的一个分块、大小为N_0×2N_0的两个分块、大小为2N_0×N_0的两个分块、大小为N_0×N_0的四个分块重复地执行预测编码。可对大小为2N_0×2N_0、N_0×2N_0、2N_0×N_0和N_0×N_0的分块执行帧内模式下和帧间模式下的预测编码。仅对大小为N_0×N_0的分块执行跳过模式下的预测编码。

对包括分块类型912至分块类型918中的预测编码的编码误差进行比较,在分块类型中确定最小编码误差。如果在分块类型912至分块类型916之一中,编码误差最小,则预测单元910可不被划分为较低深度。

如果在分块类型918中编码误差最小,则在操作920,深度从0改变为1以划分分块类型918,并对深度为2大小为N_0×N_0的编码单元930重复执行编码以搜索最小编码误差。

用于对深度为1大小为2N_1×2N_1(=N_0×N_0)的编码单元930进行预测编码的预测单元940可包括大小为2N_1×2N_1的分块类型942、大小为2N_1×N_1的分块类型944、大小为N_1×2N_1的分块类型946和大小为N_1×N_1的分块类型948的分块。

如果在分块类型948中编码误差最小,则在操作950,深度从1改变为2以划分分块类型948,并对深度为2大小为N_2×N_2的编码单元960重复执行编码以搜索最小编码误差。

当最大深度为d时,根据每个深度的划分操作可被执行直到深度变为d-1,并且划分信息可被编码直到深度为0至d-2中的一个。换句话说,当在操作970将与深度d-2相应的编码单元划分之后,执行编码直到深度为d-1时,用于对深度为d-1大小为2N_(d-1)×2N_(d-1)的编码单元980进行预测编码的预测单元990可包括大小为2N_(d-1)×2N_(d-1)的分块类型992、大小为2N_(d-1)×N_(d-1)的分块类型994、大小为N_(d-1)×2N_(d-1)的分块类型996以及大小为N_(d-1)×N_(d-1)的分块类型998的分块。

可对分块类型992至分块类型998中的大小为2N_(d-1)×2N_(d-1)的一个分块、大小为2N_(d-1)×N_(d-1)的两个分块、大小为N_(d-1)×2N_(d-1)的两个分块、大小为N_(d-1)×N_(d-1)的四个分块重复执行预测编码,以搜索具有最小编码误差的分块类型。

即使当分块类型998具有最小编码误差时,由于最大深度为d,所以深度为d-1的编码单元CU_(d-1)不再被划分为较低深度,构成当前最大编码单元900的编码单元的编码深度被确定为d-1,并且当前最大编码单元900的分块类型可被确定为N_(d-1)×N_(d-1)。此外,由于最大深度为d,并且最低深度为d-1的最小编码单元980不再被划分为较低深度,所以不设置最小编码单元980的划分信息。

数据单元999可以是用于当前最大编码单元的“最小单元”。根据本发明实施例的最小单元可以是通过将最小编码单元980划分为4部分而获得的矩形数据单元。通过重复地执行编码,视频编码设备100可通过比较根据编码单元900的深度的编码误差来选择具有最小编码误差的深度以确定编码深度,并且可将相应的分块类型和预测模式设置为编码深度的编码模式。

这样,在深度1至深度d的所有深度中比较根据深度的最小编码误差,并且具有最小编码误差的深度可被确定为编码深度。预测单元的分块类型、编码深度和预测模式可作为关于编码模式的信息被编码和发送。此外,由于从深度0至编码深度来划分编码单元,所以只有编码深度的划分信息被设置为0,并且除了编码深度之外的深度的划分信息被设置为1。

视频解码设备200的图像数据和编码信息提取器220可提取并使用关于编码单元900的编码深度以及预测单元的信息,以对分块912解码。视频解码设备200可通过使用根据深度的划分信息将划分信息为0的深度确定为编码深度,并且可使用关于相应深度的编码模式的信息进行解码。

图10至图12是描述根据示例性实施例的编码单元1010、预测单元1060和变换单元1070之间的关系的示图。

编码单元1010是最大编码单元中的与由视频编码设备100确定的编码深度相应的具有树结构的编码单元。预测单元1060是每个编码单元1010的预测单元的分块,变换单元1070是每个编码单元1010的变换单元。

当编码单元1010中的最大编码单元的深度为0时,编码单元1012和1054的深度为1,编码单元1014、1016、1018、1028、1050和1052的深度为2,编码单元1020、1022、1024、1026、1030、1032和1048的深度为3,编码单元1040、1042、1044和1046的深度为4。

在预测单元1060中,通过在编码单元1010中划分编码单元来获得一些编码单元1014、1016、1022、1032、1048、1050、1052和1054。换句话说,编码单元1014、1022、1050和1054中的分块类型的大小为2N×N,编码单元1016、1048和1052的分块类型的大小为N×2N,编码单元1032的分块类型的大小为N×N。编码单元1010的预测单元和分块小于或等于每个编码单元。

以小于编码单元1052的数据单元对变换单元1070中的编码单元1052的图像数据执行变换和反变换。另外,变换单元1070中的编码单元1014、1016、1022、1032、1048、1050和1052与预测单元1060中的那些编码单元在大小和形状上不同。换句话说,视频编码设备100和视频解码设备200可基于各个数据单元对相同的编码单元执行帧内预测、运动估计、运动补偿、变换和反变换。

因此,对最大编码单元的每个区域中具有分层结构的每个编码单元递归地执行编码以确定最佳编码单元,因此可获得具有递归树结构的编码单元。编码信息可包括关于编码单元的信息、关于分块类型的信息、关于预测模式的信息以及关于变换单元的大小的信息。表1示出了可由视频编码和解码设备100和200设置的编码信息。

[表1]

视频编码设备100的输出单元130可输出关于具有树结构的编码单元的编码信息,视频解码设备200的图像数据和编码信息提取器220可从接收的比特流提取关于具有树结构的编码单元的编码信息。

划分信息指示当前编码单元是否被划分为较低深度的编码单元。如果当前深度d的划分信息为0,则当前编码单元不再被划分为较低深度的深度是编码深度,因此可针对编码深度定义关于变换单元的大小、分块类型、预测模式的信息。如果根据划分信息将当前编码单元进一步划分,则对较低深度的四个划分的编码单元独立执行编码。

预测模式可以是帧内模式、帧间模式和跳过模式中的一种。可在所有分块类型中定义帧内模式和帧间模式,仅在大小为2N×2N的分块类型中定义跳过模式。

关于分块类型的信息可表示通过对称划分预测单元的高度或宽度获得的大小为2N×2N、2N×N、N×2N和N×N的对称分块类型以及通过非对称划分预测单元的高度或宽度获得的大小为2N×nU、2N×nD、nL×2N和nR×2N的非对称分块类型。可通过以1:3和3:1划分预测单元的高度来分别获得大小为2N×nU和2N×nD的非对称分块类型,可通过以1:3和3:1划分预测单元的宽度来分别获得大小为nL×2N和nR×2N的非对称分块类型。

变换单元的大小可被设置为帧内模式中的两种类型以及帧间模式中的两种类型。换句话说,如果变换单元的划分信息为0,则变换单元的大小可以是2N×2N(2N×2N是当前编码单元的大小)。如果变换单元的划分信息为1,则可通过划分当前编码单元来获得变换单元。另外,如果大小为2N×2N的当前编码单元的分块类型是对称分块类型,则变换单元的大小可以是N×N,如果当前编码单元的分块类型是非对称分块类型,则变换单元的大小可以是N/2×N/2。

关于具有树结构的编码单元的编码信息可包括与编码深度相应的编码单元、预测单元以及最小单元中的至少一个。与编码深度相应的编码单元可包括包含相同编码信息的最小单元和预测单元中的至少一个。

因此,通过比较相邻数据单元的编码信息来确定相邻数据单元是否包括在与编码深度相应的相同编码单元中。另外,通过使用数据单元的编码信息来确定与编码深度相应的相应编码单元,因此可确定最大编码单元中的编码深度的分布。

因此,如果基于相邻数据单元的编码信息来预测当前编码单元,则可直接参照和使用与当前编码单元相邻的较深编码单元中的数据单元的编码信息。

或者,如果基于相邻数据单元的编码信息来预测当前编码单元,则使用所述数据单元的编码信息来搜索与当前编码单元相邻的数据单元,并且可参照搜索到的相邻的编码单元来预测当前编码单元。

图13是描述根据表1的编码模式信息的编码单元、预测单元或分块、变换单元之间的关系的示图。

最大编码单元1300包括编码单元1302、1304、1306、1312、1314、1316以及编码深度的编码单元1318。这里,由于编码单元1318是编码深度的编码单元,所以划分信息可被设置为0。关于大小为2N×2N的编码单元1318的分块类型的信息可被设置为大小为2N×2N的分块类型1322、大小为2N×N的分块类型1324、大小为N×2N的分块类型1326、大小为N×N的分块类型1328、大小为2N×nU的分块类型1332、大小为2N×nD的分块类型1334、大小为nL×2N的分块类型1336以及大小为nR×2N的分块类型1338中的一个。

当分块类型被设置为对称(即,分块类型1322、1324、1326或1328)时,如果变换单元的划分信息(TU大小标志)为0,则设置大小为2N×2N的变换单元1342;如果TU大小标志为1,则设置大小为N×N的变换单元1344。

当分块类型被设置为非对称(即,分块类型1332、1334、1336或1338)时,如果TU大小标志为0,则设置大小为2N×2N的变换单元1352;如果TU大小标志为1,则设置大小为N/2×N/2的变换单元1354。

参照图13,TU大小标志是具有值0或1的标志,但是TU大小标志并不限于1比特,在TU大小标志从0增加时,变换单元可被分层地划分为具有树结构。

在这种情况下,根据示例性实施例,可通过使用变换单元的TU大小标志以及变换单元的最大大小和最小大小一起来表示已经实际使用的变换单元的大小。根据示例性实施例,视频编码设备100能够对最大变换单元大小信息、最小变换单元大小信息和最大TU大小标志编码。对最大变换单元大小信息、最小变换单元大小信息和最大TU大小标志编码的结果可被插入SPS。根据示例性实施例,视频解码设备200可通过使用最大变换单元大小信息、最小变换单元大小信息和最大TU大小标志信息来对视频解码。

例如,如果当前编码单元的大小是64×64并且最大变换单元大小是32×32,则当TU大小标志是0时,变换单元的大小可以是32×32;当TU大小标志是1时,变换单元的大小可以是16×16;并且当TU大小标志是2时,变换单元的大小可以是8×8。

作为另一示例,如果当前编码单元的大小是32×32并且最小变换单元是32×32,则当TU大小标志是0时,变换单元的大小可以是32×32。这里,TU大小标志不能被设置为除0之外的值,这是因为变换单元的大小不能小于32×32。

作为另一示例,如果当前编码单元的大小是64×64并且最大TU大小标志是1,则TU大小标志可被设置为0或1。这里,TU大小标志不能被设置为除了0或1之外的值。

因此,如果定义最大TU大小标志为“MaxTransformSizeIndex”,定义最小变换单元大小为“MinTransformSize”,并且当TU大小标志是0时,定义变换单元大小为“RootTuSize”,则可通过等式(1)来定义可在当前编码单元中确定的当前最小编码单元大小“CurrMinTuSize”。

CurrMinTuSize=max(MinTransformSize,RootTuSize/(2^MaxTransformSizeIndex))……(1)

与可在当前编码单元中确定的当前最小变换单元大小“CurrMinTuSize”相比,当TU大小标志是0时的变换单元大小“RootTuSize”可表示可在系统中选择的最大变换单元。在等式(1)中,RootTuSize/(2^MaxTransformSizeIndex)表示当在TU大小标志是0时的变换单元大小“RootTuSize”被划分与最大TU大小标志相应的次数时的变换单元大小,“MinTransformSize”表示最小变换大小。因此,“RootTuSize/(2^MaxTransformSizeIndex)”和“MinTransformSize”中的较小值可以是可在当前编码单元中确定的当前最小变换单元大小“CurrMinTuSize”。

根据示例性实施例,最大变换单元大小RootTuSize可根据预测模式的类型而改变。

例如,如果当前预测模式是帧间模式,则可通过使用下面的等式(2)来确定RootTuSize。在等式(2)中,“MaxTransformSize”表示最大变换单元大小,“PUSize”表示当前预测单元大小。

RootTuSize=min(MaxTransformSize,PUSize)……(2)

也就是说,如果当前预测模式是帧间模式,则当TU大小标志是0时的变换单元大小“RootTuSize”可以是最大变换单元大小和当前预测单元大小中的较小值。

如果当前分块单元的预测模式是帧内模式,则可通过使用下面的等式(3)来确定“RootTuSize”。在等式(3)中,“PartitionSize”表示当前分块单元的大小。

RootTuSize=min(MaxTransformSize,PartitionSize)……(3)

也就是说,如果当前预测模式是帧内模式,则当TU大小标志是0时的变换单元大小“RootTuSize”可以是最大变换单元大小和当前分块单元的大小中的较小值。

然而,在分块单元中根据预测模式的类型变化的当前最大变换单元大小“RootTuSize”只是示例,当前最大变换单元大小“RootTuSize”不限于此。

现在将详细描述图4中示出的视频编码设备100的帧内预测单元410执行的帧内预测和在图5中示出的视频解码设备200的帧内预测单元550。在下面的描述中,编码单元表示图像的编码处理中的当前编码的块,解码单元表示在图像的解码处理中的当前解码的块。编码单元和解码单元的不同之处仅在于编码单元用于编码处理而解码单元用于解码。为了术语一致,除非特定的情况,编码单元和解码单元在编码和解码处理中都被称作编码单元。此外,通过本说明书,本领域的普通技术人员应该理解,根据示例性实施例的帧内预测方法和设备还可被用于在普通的视频编解码器中执行帧内预测。

图14是根据示例性实施例的帧内预测设备1200的框图。

参照图14,帧内预测设备1200包括相邻像素滤波单元1210、参考像素确定单元1220和帧内预测执行单元1230。

相邻像素滤波单元1210对用于对将被编码的当前编码单元执行帧内预测的相邻像素进行滤波,以产生滤波的相邻像素。现在将参照图19和图20来描述相邻像素的滤波。

图19是示出根据示例性实施例的当前编码单元1700和将被滤波的相邻像素1710和相邻像素1720。

参照图19,相邻像素滤波单元1210对当前编码单元1700上侧的X相邻像素1710和当前编码单元1700左侧的Y相邻像素1720执行至少一次滤波以产生滤波的相邻像素。这里,如果当前编码单元1700大小为N×N,则相邻像素滤波单元1210可对比如当前编码单元1700上侧的2N个相邻像素1710和当前编码单元1700左侧的2N个相邻像素1720的4N个相邻像素执行滤波。也就是说,X=2N,Y=2N。由相邻像素滤波单元1210进行滤波的相邻像素1710和相邻像素1720的数量并不限于此,并且可考虑到应用于当前编码单元1700的帧内预测模式的方向来改变该数量。

此外,在图19中,如果在当前编码单元1700上侧和左侧的X+Y原始相邻像素1710和相邻像素1720由ContextOrg[n](其中,n是从0至X+Y-1的整数)表示,则Y相邻像素1720的最下面的相邻像素具有n=0的值(即,ContextOrg[0]),X相邻像素1710的最右上面的相邻像素具有值n=X+Y-1(即,ContextOrg[X+Y-1])。

图20是描述根据示例性实施例的对相邻像素进行滤波处理的示图。

参照图20,如果在大小为N×N的当前编码单元的上侧和左侧的4N个原始相邻像素由ContextOrg[n](n是从0至4N-1的整数)表示,则相邻像素滤波单元1210通过计算原始相邻像素之间的加权平均值来对原始相邻像素进行滤波,从而产生第一滤波的相邻像素ContextFiltered1[n]。例如,相邻像素滤波单元1210通过将3抽头的滤波器应用到由等式(4)所表示的原始相邻像素ContextOrg[n]来产生第一滤波的相邻像素。

ContextFiltered1[n]=(ContextOrg[n-1]+2×ContextOrg[n]+ContextOrg[n+1])/4……(4)

参照等式(4),相邻像素滤波单元1210从原始相邻像素、位于相邻像素ContextOrg[n]左侧的相邻像素ContextOrg[n-1]和位于相邻像素ContextOrg[n]右侧的相邻像素ContextOrg[n+1]计算当前将被滤波的相邻像素ContextOrg[n]的加权平均值,以产生第一滤波的相邻像素。第一滤波的相邻像素中最外面的滤波的相邻像素具有原始相邻像素的值。也就是说,ContextFiltered1[0]=ContextOrg[0],并且ContextFiltered1[4N-1]=ContextOrg[4N-1]。

类似地,相邻像素滤波单元1210可计算第一滤波的相邻像素ContextFiltered1[n]之间的加权平均值,以产生第二滤波的ContextFiltered2[n]。例如,相邻像素滤波单元1210如等式(5)所示,通过将3抽头的滤波器应用到第一滤波的相邻像素ContextFiltered1[n]来产生第二滤波的相邻像素。

ContextFiltered2[n]=

(ContextFiltered1[n-1]+2×ContextFiltered1[n]+ContextFiltered1[n+1])/4……(5)

参照等式(5),相邻像素滤波单元1210从第一滤波的相邻像素、位于相邻像素ContextFiltered1[n]左侧的相邻像素ContextFiletered1[n-1]和位于相邻像素ContextFiltered1[n]右侧的相邻像素ContextFiltered1[n+1]计算当前将被滤波的相邻像素ContextFiltered1[n]的加权平均值,以产生第二滤波的相邻像素。第二滤波的相邻像素中最外面的滤波的相邻像素具有第一滤波的相邻像素的值。也就是说,ContextFiltered2[0]=ContextFiltered1[0],并且ContextFiltered2[4N-1]=ContextFiltered1[4N-1]。上面描述的相邻像素的滤波处理可被重复多于两次。此外,用于对相邻像素进行滤波的滤波器的抽头的数目并不限于如上所述的3个,所述抽头的数目可以可变地改变。此外,可适应性地应用用于对相邻像素进行滤波的滤波器的抽头的数目和滤波器的系数。

参考像素确定单元1220将滤波的相邻像素或者原始相邻像素确定为用于对当前编码单元执行帧内预测的参考像素。更详细地讲,参考像素确定单元1220根据当前编码单元的大小和当前将执行的帧内预测模式的类型来选择原始相邻像素、第一滤波的相邻像素或第二滤波的相邻像素作为参考像素。例如,如果使用原始相邻像素的预测模式的参考索引是0,使用第一滤波的相邻像素的预测模式的参考索引是1并且使用第二滤波的相邻像素的预测模式的参考索引是2,则参考像素确定单元1220可如表2所示根据当前编码单元的大小和当前执行的帧内预测模式的类型确定将用于执行帧内预测的相邻像素的类型。

表2

参照表2,例如,如果当前编码单元大小为32×32,并且通过使用帧内模式4执行帧内预测,则参考索引是0,因此参考像素确定单元1220将原始相邻像素ContextOrg[n]确定为将用于对当前编码单元执行帧内预测的参考像素。表2中的帧内预测模式表示表3中的帧内预测模式。此外,表2中的“-”表示不限定编码单元的相应大小的帧内预测模式。表2是基于表3中所示的帧内预测模式,并被示例性地示出。与表3不同,只要根据编码单元的大小设置不同的帧内预测模式,可不同地设置表2中的参考索引。

再参照图14,如果参考像素确定单元1220从原始相邻像素和滤波的相邻像素中确定将被用于对当前编码单元执行帧内预测的参考像素,则帧内预测执行单元1230通过使用根据按照当前编码单元的大小可用的帧内预测模式确定的参考像素执行帧内预测,以产生预测编码单元。

图15是示出根据示例性实施例的根据编码单元的大小的帧内预测模式的数量的表。

根据示例性实施例,可以可变地设置将被应用于编码单元(在解码处理中的解码单元)的帧内预测模式的数量。例如,参照图15,如果对其执行帧内预测的编码单元的大小是N×N,实际对大小为2×2、4×4、8×8、16×16、32×32、64×64和128×128的编码单元执行的帧内预测模式的数量可以分别被设置为5、9、9、17、33、5和5(在示例2中)。对于另一示例,当将被执行帧内预测的编码单元的大小是N×N时,实际对大小为2×2、4×4、8×8、16×16、32×32、64×64和128×128的编码单元执行的帧内预测模式的数量可以被设置为3、17、34、34、34、5和5。因为用于对预测模式信息进行编码的开销根据编码单元的大小而不同,所以实际将被执行的帧内预测模式的数量可根据编码单元的大小不同地设置。换句话说,小的编码单元占据整个图像数据的一小部分,但是可能会具有大的开销以发送比如编码单元的预测模式信息的附加信息。因此,如果通过使用过大数量的预测模式来对小的编码单元进行编码,则比特数会增加,因此会降低压缩效率。此外,大的编码单元(比如等于或大于64×64的编码单元)通常对应于图像数据的平面区域(plain region),因此,通过使用过大数量的预测模式来对大的编码单元进行编码也会降低压缩效率。

因此,根据示例性实施例,编码单元被大致划分为至少三种大小,比如N1×N1(其中,2=N1=4,N1是整数),N2×N2(其中,8=N2=32,N2是整数)和N3×N3(其中,64=N3,N3是整数)。如果对N1×N1的编码单元执行帧内预测模式的数量是A1(其中,A1是正整数),对N2×N2的编码单元执行帧内预测模式的数量是A2(其中,A2是正整数),并且对N3×N3的编码单元执行帧内预测模式的数量是A3(其中,A3是正整数),则根据编码单元的大小执行的帧内预测模式的数量可被设置为满足A3=A2=A1。也就是说,如果当前画面被划分为小的编码单元、中等的编码单元和大的编码单元,则中等的编码单元可被设置为具有最大数量的预测模式,小的编码单元和大的编码单元可被设置为具有相对小的数量的预测模式。然而,示例性实施例并不限于此,所述小的和大的编码单元也可被设置为具有大的数量的预测模式。图15中根据编码单元的大小的预测模式的数量被示例性地示出,并可被改变。

图16A是示出根据示例性实施例的应用到具有预定大小的编码单元的帧内预测模式的表。

参照图15和图16A,例如,当对大小为4×4并具有垂直模式(模式0)的编码单元执行帧内预测时,编码单元可具有水平模式(模式1)、直流(DC)模式(模式2)、斜的下-左模式(模式3)、斜的下-右模式(模式4)、垂直-右模式(模式5)、水平-下模式(模式6)、垂直-左模式(模式7)和水平-上模式(模式8)。

图16B示出了图16A中示出的帧内预测模式的方向。在图16B中,箭头端的数字表示与箭头表示的预测方向相应的预测模式。这里,模式2是不具有方向性的DC模式,因此没有在图16B中示出。

图16C是用于描述通过使用图16A中示出的帧内预测模式来对编码单元执行帧内预测的方法的示图。

参照图16C,通过使用当前编码单元的相邻像素A至相邻像素M执行根据当前编码单元的大小确定的可用帧内预测模式,来产生预测编码单元。例如,将描述图16A中示出的根据模式0(即,垂直模式)对大小为4×4的当前编码单元执行预测编码的操作。最初,当前编码单元上侧的相邻像素A至相邻像素D的值被预测为当前编码单元的像素值。也就是说,相邻像素A的值被预测为当前编码单元的第一列的四个像素的值,相邻像素B的值被预测为当前编码单元的第二列的四个像素的值,相邻像素C的值被预测为当前编码单元的第三列的四个像素的值,相邻像素D的值被预测为当前编码单元的第四列的四个像素的值。之后,从当前编码单元的原始的像素值减去通过使用相邻像素A至相邻像素D预测的当前编码单元的像素值以计算误差值,然后对误差值进行编码。同时,当应用各种帧内预测模式时,用作参考像素的相邻像素可以是原始相邻像素或者是上面描述的滤波的相邻像素。

图17示出根据另一示例性实施例的应用到具有预定大小的编码单元的帧内预测模式。

参照图15和图17,例如,当对大小为2×2的编码单元执行帧内预测时,编码单元可总共具有五个模式,比如,垂直模式、水平模式、DC模式、平面模式、斜的下-右模式。

同时,如果如图15所示,大小为32×32的编码单元具有33个帧内预测模式,则需要设置33个帧内预测模式的方向。根据示例性实施例,为了设置除在图16A至图16C和图17示出的帧内预测模式以外的具有各种方向的帧内预测模式,通过使用(dx,dy)参数来设置用于选择用作编码单元的像素的参考像素的相邻像素的预测方向。例如,如果33个预测模式的每一个预测模式被定义为模式N(其中,N是从0到32的整数),则模式0可被设置为垂直模式,模式1可被设置为水平模式,模式2可被设置为DC模式,模式3可被设置为平面模式,通过使用被表示为如表3中所示的(1,-1)、(1,1)、(1,2)、(2,1)、(1,-2)、(2,1)、(1,-2)、(2,-1)、(2,-11)、(5,-7)、(10,-7)、(11,3)、(4,3)、(1,11)、(1,-1)、(12,-3)、(1,-11)、(1,-7)、(3,-10)、(5,-6)、(7,-6)、(7,-4)、(11,1)、(6,1)、(8,3)、(5,3)、(5,7)、(2,7)、(5,-7)和(4,-3)之一的(dx,dy)来将模式4至模式31中的每一个定义为具有tan-1(dy/dx)的方向的预测模式。

表3

图18A至图18C是描述根据示例性实施例的具有多种方向的帧内预测模式的示图。

如上面参照表3所描述的,根据示例性实施例的帧内预测模式可通过使用多个(dx,dy)参数而具有多个tan-1(dy/dx)的方向。

参照图18A,针对将被预测的当前编码单元中的当前像素P,具有根据表3中的(dx,dy)值的tan-1(dy/dx)的角度的延长线160上的相邻像素A和相邻像素B被用作当前像素P的预测值。在这种情况下,用作预测值的相邻像素可以是当前编码单元的上侧和左侧的先前编码单元的先前被编码并被恢复的像素。此外,如果延长线160穿过位于整数位置的两个相邻像素之间,

则比另一个相邻像素更接近延长线160的那一个相邻像素可被用作当前像素P的预测值。

此外,如果延长线160穿过位于整数位置的两个相邻像素之间,则比另一个相邻像素更接近当前像素P的那一个相邻像素可被用作当前像素P的预测值,或者考虑相邻像素到所述延长线160与所述两个相邻像素之间的连线的交点之间的距离计算的加权平均值可被用作当前像素P的预测值。

图18B和图18C是用于描述根据示例性实施例的当延长线160穿过两个位于整数位置的两个相邻像素之间时产生预测值的处理的示图。

参照图18B,如果如上所述,具有根据每个模式的(dx,dy)值确定的tan-1(dy/dx)的角度的延长线160穿过位于整数位置的相邻像素A 151和相邻像素B 152之间,则更接近于延长线160的相邻像素A 151和相邻像素B 152之一可被用作当前像素P的预测值,或者考虑相邻像素A 151和相邻像素B 152到延长线160与相邻像素A 151和相邻像素B 152之间的连线的交点之间的距离计算的加权平均值可被用作当前像素P的预测值。例如,如果所述交点和相邻像素A 151之间的距离为f,所述交点和相邻像素B 152之间的距离是g,则当前像素P的预测值可获得为(A×g+B×f)/(f+g)。这里,f和g可以被调整为整数的距离。在实际的软件或硬件实现中,当前像素P的预测值可通过执行移位操作(比如(A×g+B×f+2)>>2)获得。如图18B所示,如果延长线160穿过相邻像素A 151和相邻像素B 152之间的1/4的位置(更接近于相邻像素A 151),则当前像素P的预测值可获得为(3×A+B)/4。可考虑取整通过执行比如(3×A+B+2)>>2的移位操作来获得该值。

同时,如果延长线160穿过相邻像素A 151和相邻像素B 152,则相邻像素A 151和相邻像素B 152之间的线段(section)可被划分为预定数量的线段,并且考虑每个线段中的交点与相邻像素A 151和相邻像素B 152之间的距离而计算的加权平均值可被用作预测值。例如,参照图18C,相邻像素A151和相邻像素B 152之间的线段被划分为五个线段P1至P5。考虑每个线段中交点与相邻像素A 151和相邻像素B 152之间的距离而计算的代表性加权平均值可被确定,并可被用作当前像素P的预测值。更详细地讲,如果延长线160穿过线段P1,则相邻像素A 151的值可被确定为当前像素P的预测值。如果延长线160穿过线段P2,则考虑线段P2的中心与相邻像素A 151和相邻像素B 152之间的距离计算的加权平均值(即(3×A+1×B+2)>>2)可被确定为当前像素P的预测值。如果延长线160穿过线段P3,则考虑线段P3的中心与相邻像素A 151和相邻像素B 152之间的距离计算的加权平均值(即(2×A+2×B+2)>>2)可被确定为当前像素P的预测值。如果延长线160穿过线段P4,则考虑线段P2的中心与相邻像素A 151和相邻像素B 152之间的距离计算的加权平均值(即(1×A+3×B+2)>>2)可被确定为当前像素P的预测值。如果延长线160穿过线段P5,则相邻像素B 152的值可被确定为当前像素P的预测值。

此外,如图18A所示,如果延长线160与比如上侧的相邻像素A和左侧的相邻像素B的两个相邻像素重合,则相邻像素A和相邻像素B的平均值可被用作当前像素P的预测值。作为选择,如果dx×dy的值是正数,则可使用相邻像素A,如果dx×dy是负数,则可使用相邻像素B。此外,如上所述,用作参考像素的相邻像素可以是原始相邻像素或者滤波的相邻像素。

可在编码器侧和解码器侧预先设置表3中的具有多种方向的帧内预测模式,因此每个编码单元可发送仅与设置的帧内预测模式相应的索引。

根据示例性实施例,因为根据按照编码单元的大小可变地设置的帧内预测模式执行预测编码,所以可根据图像的特性提高图像的压缩效率。此外,根据示例性实施例,因为原始相邻像素和滤波的相邻像素被有选择地用于执行帧内预测,所以可更加多变地执行预测,因此可提高图像的压缩效率。

根据另一示例性实施例,代替使用根据当前编码单元的大小和当前将执行的帧内预测模式的类型在先前确定的相邻像素,帧内预测执行单元1230可通过单独将原始相邻像素、第一滤波的相邻像素和第二滤波的相邻像素用作参考像素,根据可用的帧内预测模式对当前编码单元执行预测,并且参考像素确定单元1220可选择具有最小代价的相邻像素作为最终用于对当前编码单元执行帧内预测的参考像素。

图21是示出根据示例性实施例的视频编码方法的流程图。

参照图21,在操作1910,将被编码的当前编码单元的相邻像素被滤波以产生滤波的相邻像素。如上所述,相邻像素滤波单元1210对当前编码单元上侧和左侧的相邻像素执行进行一次滤波以产生滤波的相邻像素。这里,可基于作为具有最大大小的编码单元的最大编码单元和作为最大编码单元的分层划分信息的编码深度来划分当前画面以获得编码单元。

在操作1920,将滤波的相邻像素或者原始相邻像素选择为用于对当前编码单元执行帧内预测的参考像素。如上所述,参考像素确定单元1220可根据如表2所示的当前编码单元的大小和当前将执行的帧内预测模式的类型来选择参考像素。根据另一示例性实施例,参考像素确定单元1220可比较通过单独使用原始相邻像素和滤波的相邻像素执行帧内预测编码的产生的代价,并可确定最终被用于执行帧内预测的相邻像素。此外,参考像素确定单元1220可发出信号表示在原始相邻像素和滤波的相邻像素中选择哪个相邻像素以对当前编码单元执行帧内预测。换句话说,帧内预测模式信息可包括表示在原始相邻像素和滤波的相邻像素中选择哪个相邻像素以对当前编码单元执行帧内预测的参考索引信息。当在编码端和解码端预先设置了如表2所示的将被使用的参考像素时,不需要发送参考索引信息。

在操作1930,通过使用选择的参考像素对当前编码单元执行帧内预测。如上所述,帧内预测执行单元1230通过使用选择的参考像素,通过应用可用于当前编码单元中的帧内预测模式对当前编码单元执行帧内预测来产生预测编码单元,并输出预测编码单元。

图22是示出根据示例性实施例的视频解码方法的流程图。

参照图22,在操作2010,将被解码的当前解码单元的相邻像素被滤波以产生滤波的相邻像素。

在操作2020,从比特流中提取关于应用到当前解码单元的帧内预测模式的信息。关于帧内预测模式的信息可包括关于应用到当前解码单元的帧内预测模式的信息和关于表示是原始相邻像素还是滤波的相邻像素被用作参考像素的参考索引的信息。如果如表1所示在编码器侧和解码器侧设置根据帧内预测模式和当前解码单元的大小而被使用的相同类型的相邻像素,则不必要发送关于参考索引的信息。

在操作2030,滤波的相邻像素或者原始相邻像素被选择为将被用于对当前解码单元执行帧内预测的参考像素。如上所述,如果关于参考索引的信息被另外包括在比特流中,则根据关于参考索引的提取的信息来选择参考像素。如果如表2所示可基于当前解码单元的大小和帧内预测模式来确定参考像素,则可基于当前解码单元的大小和帧内预测模式来确定将被用作参考像素的原始相邻像素或滤波的相邻像素。

在操作2040,通过使用提取的关于帧内预测模式和选择的参考像素的信息对当前解码单元执行帧内预测。

本发明可被实施为计算机可读记录介质上的计算机可读代码。计算机可读记录介质可以是可存储稍后由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置。计算机可读记录介质还可以分布在联网的计算机系统中,从而以分布式方式存储和执行计算机可读代码。

尽管已经参照本发明的示例性实施例具体示出和描述了本发明,但是本领域的普通技术人员应该理解,在不脱离由权利要求限定的发明的精神和范围的情况下,可以在形式和细节上对此做出各种改变。示例性实施例应该被认为只是描述的意义,而非限制的目的。因此,发明的范围不由发明的详细描述限定,而是由权利要求限定,落入该范围中的所有不同可被认为是包括在本发明中。

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