通过使用去块滤波对视频进行编码的方法和设备以及通过使用去块滤波对视频进行解码的方法和设备技术领域
示例性实施例涉及对视频进行编码和解码。
背景技术
随着用于再现和存储高分辨率或高质量视频内容的硬件的发展和提供,
对有效地对高分辨率或高质量视频内容进行编码或解码的视频编解码器的需
求正在增加。在现有技术的视频编解码器中,根据基于具有预定大小的宏块
的受限的编码方法对视频进行编码。
发明内容
技术问题
一个或多个示例性实施例提供在考虑将在编码和解码处理中使用的各种
数据单元之间的边界的情况下执行的去块滤波,以及使用所述去块滤波的视
频编码和解码。
技术方案
根据示例性实施例的一方面,提供了一种通过使用去块滤波来对视频进
行编码的方法,所述方法包括:将画面划分为最大编码单元;通过基于至少
一个预测单元来对最大编码单元的多个编码单元进行预测编码并基于至少一
个变换单元对所述多个编码单元进行变换,来确定多个编码深度的所述多个
编码单元以及最大编码单元的所述多个编码单元的编码模式,其中,随着深
度加深,最大编码单元被分层划分为所述多个编码单元,编码深度是按照所
述多个编码单元对最大编码单元进行编码的深度;考虑所述多个编码单元的
确定的编码模式,按照所述多个编码单元对正被反变换到空间域的视频数据
执行去块滤波。
有益效果
通过基于考虑当前画面的特征确定的最大编码单元的大小和最大深度针
对每个最大编码单元确定具有最佳形状和最佳大小的编码单元,来形成具有
树结构的编码单元。此外,由于可通过使用各种预测模式中的任意一个以及
变换来对每个最大编码单元执行编码,因此可考虑各种图像大小的编码单元
的特性来确定最佳编码模式。
类似于根据现有标准的视频编解码器,可考虑预测模式、是否存在编码
的残差分量、运动矢量、参考画面的数量和参考画面的索引中的至少一个来
执行去块滤波。在视频编码和解码方法中,编码单元、预测单元和变换单元
均单独设置,因此,可根据编码单元、预测单元和变换单元的边界特性,针
对编码单元、预测单元和变换单元中的每个来独立地确定去块方法。因此,
可基于数据单元的特性来设置去块滤波方法。
附图说明
图1是根据示例性实施例的用于对视频进行编码的设备的框图;
图2是根据示例性实施例的用于对视频进行解码的设备的框图;
图3是用于描述根据示例性实施例的编码单元的概念的示图;
图4是根据示例性实施例的基于编码单元的图像编码器的框图;
图5是根据示例性实施例的基于编码单元的图像解码器的框图;
图6是示出根据示例性实施例的根据深度的较深层编码单元以及分区的
示图;
图7是用于描述根据示例性实施例的编码单元和变换单元之间的关系的
示图;
图8是用于描述根据示例性实施例的与编码深度相应的编码单元的编码
信息的示图;
图9是根据示例性实施例的根据深度的较深层编码单元的示图;
图10至图12是用于描述根据示例性实施例的编码单元、预测单元和变
换单元之间的关系的示图;
图13是用于描述根据表1的编码模式信息的编码单元、预测单元或分区
以及变换单元之间的关系的示图;
图14是示出根据示例性实施例的对视频进行编码的方法的流程图;
图15是示出根据示例性实施例的对视频进行解码的方法的流程图;
图16是根据示例性实施例的采用去块滤波的视频编码设备的框图;
图17是根据示例性实施例的采用去块滤波的视频解码设备的框图;
图18是用于描述根据另一示例性实施例的编码单元、预测单元和变换单
元之间的关系的框图;
图19是用于描述根据另一示例性实施例的编码单元、预测单元和变换单
元之间的关系的框图;
图20是用于描述根据另一示例性实施例的编码单元、预测单元和变换单
元之间的关系的框图;
图21示出根据示例性实施例的确定去块滤波方法的方法;
图22示出根据示例性实施例的将被去块滤波的样本;
图23是示出根据示例性实施例的通过使用去块滤波对视频进行编码的
方法的流程图;
图24是示出根据示例性实施例的通过使用去块滤波对视频进行解码的
方法的流程图。
最佳实施方式
根据示例性实施例的一方面,提供了一种通过使用去块滤波对视频进行
编码的方法,所述方法包括:将画面划分为最大编码单元;通过基于至少一
个预测单元对最大编码单元的编码单元进行预测编码并基于至少一个变换单
元对编码单元进行变换,确定最大编码单元的编码深度的编码单元和编码单
元的编码模式,其中,随着深度加深,最大编码单元被分层划分为多个编码
单元,编码深度是最大编码单元按照编码单元被编码的深度;考虑确定的编
码单元的编码模式,按照编码单元对被反变换到空间域的视频数据执行去块
滤波。
编码单元可由最大大小和深度表征。
深度表示编码单元被分层划分的次数,随着深度加深,根据深度的较深
层编码单元可从最大编码单元被划分以获得最小编码单元。深度从上层深度
加深到下层深度。随着深度加深,最大编码单元被划分的次数增加,最大编
码单元被划分的可能的总次数相应于最大深度。编码单元的最大大小和最大
深度可被预先确定。
根据另一示例性实施例的一方面,提供了一种通过使用去块滤波对视频
执行解码的方法,所述方法包括:解析接收到的比特流以提取编码单元的编
码模式和按照编码单元被编码的视频数据;通过对编码视频数据进行熵解码
和反量化来产生编码单元的变换系数;通过根据编码单元的编码模式,基于
变换单元对变换系数执行反变换并基于预测单元对变换系数执行预测解码,
重建空间域中的视频数据;考虑编码单元的编码模式,对空间域中的视频数
据执行去块滤波。
执行去块滤波的步骤可包括:考虑编码单元的编码模式,对与空间域中
的视频数据的编码单元相应的预测单元或变换单元的边界执行去块滤波。
执行去块滤波的步骤可包括:考虑在编码单元的编码模式中定义的当前
边界是否是编码单元、预测单元和变换单元中的至少一个的边界,来执行去
块滤波。
执行去块滤波的步骤可包括:根据编码单元的编码模式,考虑编码单元
的大小、预测单元的大小和变换单元的大小中的至少一个,执行去块滤波。
执行去块滤波的步骤可包括:根据编码单元的编码模式,考虑编码单元的分
区类型,执行去块滤波。分区类型可包括对称分区类型和不对称分区类型。
执行去块滤波的步骤可包括:考虑在编码单元的编码模式中定义的预测
单元的预测模式、是否存在编码残差分量、运动矢量、参考画面的数量以及
参考画面的索引,执行去块滤波。
执行去块滤波的步骤可包括:考虑编码单元的编码模式确定边界强度,
确定是否将执行去块滤波,或确定包括关于滤波器表大小的信息的去块滤波
方法。
根据另一示例性实施例的一方面,提供了一种通过使用去块滤波对视频
进行编码的设备,所述设备包括:最大编码单元划分器,将画面划分为最大
编码单元;编码单元和编码模式确定器,通过基于至少一个预测单元对最大
编码单元的编码单元进行预测编码并基于至少一个变换单元对编码单元进行
变换,确定最大编码单元的编码深度的编码单元和编码单元的编码模式,其
中,随着深度加深,最大编码单元被分层划分为多个编码单元,编码深度是
最大编码单元按照编码单元被编码的深度;去块滤波执行单元,考虑确定的
编码单元的编码模式,按照编码单元对被反变换到空间域的视频数据执行去
块滤波。
根据另一示例性实施例的一方面,提供了一种通过使用去块滤波对视频
执行解码的设备,所述设备包括:数据提取器,解析接收到的比特流以提取
编码单元的编码模式和按照编码单元被编码的视频数据;熵解码和反量化单
元,通过对编码视频数据进行熵解码和反量化来产生编码单元的变换系数;
反变换和预测解码单元,通过根据编码单元的编码模式,基于变换单元对变
换系数执行反变换并基于预测单元对变换系数执行预测解码,重建空间域中
的视频数据;去块滤波执行单元,考虑编码单元的编码模式,对空间域中的
视频数据执行去块滤波。
根据另一示例性实施例的一方面,提供了一种计算机可读记录介质,所
述计算机可读记录介质记录有用于执行通过使用去块滤波对视频进行编码的
方法的程序。
根据另一示例性实施例的一方面,提供了一种计算机可读记录介质,所
述计算机可读记录介质记录有用于执行通过使用去块滤波对视频进行解码的
方法的程序。
具体实施方式
以下,将参照图1至图24更详细地描述根据示例性实施例的视频编码设
备、视频解码设备、对视频进行编码的方法和对视频进行解码的方法。具体
地,将参照图1至图15描述根据示例性实施例的基于空间分层数据单元来对
视频进行编码和解码。此外,将参照图16至图24描述根据示例性实施例的
通过考虑编码单元、预测单元和变换单元执行去块滤波来对视频进行编码和
解码。
在本公开中,“编码单元”的意思在编码器侧对图像数据进行编码的编码
数据单元以及在解码器侧对编码的图像数据进行解码的编码数据单元。此外,
“编码深度”表示编码单元被编码的深度。此外,“图像”可表示视频的静止
图像或者运动图像(即,视频本身)。
图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可通过使用基于拉格朗日乘子的率失真优化来测量
根据深度的较深层编码单元的编码误差。
输出单元130在比特流中输出最大编码单元的图像数据以及关于根据编
码深度的编码模式的信息,其中,所述图像数据基于由编码单元确定器120
确定的至少一个编码深度被编码。
可通过对图像的残差数据进行编码来获得编码图像数据。
关于根据编码深度的编码模式的信息可包括关于编码深度的信息、关于
预测单元中的分区类型的信息、预测模式以及变换单元的大小。
可通过使用根据深度的划分信息来定义关于编码深度的信息,关于编码
深度的信息指示是否针对下层深度而不是当前深度的编码单元来执行编码。
如果当前编码单元的当前深度是编码深度,则当前编码单元中的图像数据被
编码并被输出,因此划分信息可被定义为不将当前编码单元划分到下层深度。
可选地,如果当前编码单元的当前深度不是编码深度,则针对下层深度的编
码单元来执行编码,因此,划分信息可被定义为划分当前编码单元以获得下
层深度的编码单元。
如果当前深度不是编码深度,则针对被划分为下层深度的编码单元的编
码单元来执行编码。由于在当前深度的一个编码单元中存在下层深度的至少
一个编码单元,因此针对下层深度的每个编码单元重复执行编码,因此,可
针对具有相同深度的编码单元递归地执行编码。
由于针对一个最大编码单元确定具有树结构的编码单元,并且针对编码
深度的编码单元确定关于至少一个编码模式的信息,因此,可针对一个最大
编码单元确定关于至少一个编码模式的信息。此外,由于图像数据根据深度
被分层划分,因此,最大编码单元的图像数据的编码深度可根据位置而不同,
因此,可针对图像数据设置关于编码深度和编码模式的信息。
因此,输出单元130可将关于相应的编码深度和编码模式的编码信息分
配给包括在最大编码单元中的编码单元、预测单元和最小单元中的至少一个。
根据示例性实施例的最小单元是通过将构成最低深度的最小编码单元划
分4次所获得的矩形数据单元。可选地,最小单元可以是最大矩形数据单元,
所述最大矩形数据单元可包括在最大编码单元中所包括的所有编码单元、预
测单元、分区单元和变换单元中。
例如,通过输出单元130输出的编码信息可被分为根据编码单元的编码
信息和根据预测单元的编码信息。根据编码单元的编码信息可包括关于预测
模式的信息和关于分区大小的信息。根据预测单元的编码信息可包括关于帧
间模式的估计方向的信息、关于帧间模式的参考图像索引的信息、关于运动
矢量的信息、关于帧内模式的色度分量的信息和关于帧内模式的插值方法的
信息。此外,关于根据画面、像条或GOP定义的编码单元的最大大小的信息
以及关于最大深度的信息可被插入比特流的SPS(序列参数集)或头中。
在视频编码设备100中,较深层编码单元可以是通过将作为上一层的上
层深度的编码单元的高或宽划分两次所获得的编码单元。换句话说,当当前
深度的编码单元的大小为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可获得关于当针对每个最大编码单元递归执行编码时
产生最小编码误差的至少一个编码单元的信息,并可使用所述信息来对当前
画面进行解码。换句话说,可对每个最大编码单元中被确定为最佳编码单元
的具有树结构的编码单元进行解码。此外,考虑分辨率和图像数据量来确定
编码单元的最大大小。
因此,即使图像数据具有高分辨率和大数据量,也可通过使用编码单元
的大小和编码模式来有效地对图像数据进行解码和恢复,其中,通过使用从
编码器接收的关于最佳编码模式的信息,根据图像数据的特性来适应性地确
定所述编码单元的大小和所述编码模式。
现在将参照图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
×64,最大深度为2。在视频数据320中,分辨率为1920×1080,编码单元
的最大大小为64×64,最大深度为3。在视频数据330中,分辨率为352×
288,编码单元的最大大小为16×16,最大深度为1。图3中示出的最大深度
指示从最大编码单元到最小解码单元的总划分次数。
如果分辨率高或数据量大,则编码单元的最大大小可较大,从而不仅提
高了编码效率还精确地反映出图像的特性。因此,分辨率高于视频数据330
的视频数据310和视频数据320的编码单元的最大大小可以是64。
由于视频数据310的最大深度是2,因此,由于通过将最大编码单元划
分两次,深度被加深两层,因此视频数据310的编码单元315可包括长轴大
小为64的最大编码单元以及长轴大小为32和16的编码单元。同时,由于视
频数据330的最大深度是1,因此,由于通过将最大编码单元划分一次,深
度被加深一层,因此视频数据330的编码单元335可包括长轴大小为16的最
大编码单元以及长轴大小为8的编码单元。
由于视频数据320的最大深度为3,因此,由于通过将最大编码单元划
分三次,深度被加深3层,因此视频数据320的编码单元325可包括长轴大
小为64的最大编码单元以及长轴大小为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。
为了将图像编码器400应用在视频编码设备100中,图像编码器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之后执行的操作。
为了将图像解码器500应用在视频解码设备200中,图像解码器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的分区630、大小为16×8的分区632、大小为8×16的分区634和大小
为8×8的分区636。
类似地,大小为8×8且深度为3的编码单元640的预测单元可被划分为
包括在编码单元640中的分区,即,包括在编码单元640中的大小为8×8的
分区640、大小为8×4的分区642、大小为4×8的分区644或大小为4×4
的分区646。
大小为4×4且深度为4的编码单元650是最小编码单元和最下层深度的
编码单元。编码单元650的预测单元仅被分配给大小为4×4的分区。
为了确定组成最大编码单元610的编码单元的至少一个编码深度,视频
编码设备100的编码单元确定器120针对包括在最大编码单元610中的与每
个深度相应的编码单元执行编码。
随着深度加深,以相同范围和相同大小包括数据的根据深度的较深层编
码单元的数量增加。例如,需要四个与深度2相应的编码单元,以覆盖包括
在一个与深度1相应的编码单元中的数据。因此,为了比较相同数据根据深
度的编码结果,与深度1相应的编码单元和四个与深度2相应的编码单元各
自被编码。
为了针对深度中的当前深度执行编码,可通过沿分层结构600的横轴,
针对与当前深度相应的编码单元中的每个预测单元执行编码,来针对当前深
度选择最小编码误差。可选地,可通过随着深度沿分层结构600的纵轴加深
针对每个深度执行编码来比较根据深度的最小编码误差,从而搜索最小编码
误差。编码单元610中具有最小编码误差的深度和分区可被选为编码单元610
的编码深度和分区类型。
图7是用于描述根据示例性实施例的编码单元710和变换单元720之间
的关系的示图。视频编码设备100或视频解码设备200针对每个最大编码单
元,根据具有小于或等于最大编码单元的大小的编码单元来对图像进行编码
或解码。可基于不大于相应编码单元的数据单元来选择编码期间用于变换的
变换单元的大小。
例如,在视频编码设备100或视频解码设备200中,如果编码单元710
的大小是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的分区、两个大小为2N_0
×N_0的分区、两个大小为N_0×2N_0的分区和四个大小为N_0×N_0的分区
重复执行预测编码。可对大小为2N_0×2N_0、N_0×2N_0、2N_0×N_0和N_0
×N_0的分区执行帧内模式和帧间模式下的预测编码。仅对大小为2N_0×
2N_0的分区执行跳过模式下的预测编码。
比较包括分区类型912至918中的预测编码的编码的误差,在分区类型
中确定最小编码误差。如果在分区类型912至916之一中编码误差最小,则
预测单元910可不被划分到下层深度。
如果在分区类型918中编码误差最小,则深度从0改变到1以在操作920
对分区类型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中编码误差最小,则深度从1改变到2以在操作950
对分区类型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
中的编码单元1014、1016、1022、1032、1048、1050和1052不同。换句话
说,视频编码设备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,这是当前编码单元的大小。如果变换单元的划分信息是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增加的同时,变换单元可被分层划分以具有树
结构。
图14是示出根据示例性实施例的对视频进行编码的方法的流程图。在操
作1210,当前画面被划分为至少一个最大编码单元。可预先确定指示可能划
分的次数的总数的最大深度。
在操作1220,通过对至少一个划分的区域进行编码来确定根据所述至少
一个划分的区域的用于输出最终编码结果的编码深度,并且根据树结构的编
码单元被确定,其中,通过根据深度对每个最大编码单元的区域进行划分来
获得所述至少一个划分的区域。
每当深度加深时,最大编码单元被空间划分,从而最大编码单元被划分
为下层深度的编码单元。每个编码单元可通过独立于邻近编码单元被空间划
分而被划分为另一下层深度的编码单元。对根据深度的每个编码单元重复执
行编码。
此外,针对每个较深层编码单元确定具有最小编码误差的根据分区类型
的变换单元。为了确定每个最大编码单元中的具有最小编码误差的编码深度,
可在所有根据深度的较深层编码单元中测量和比较编码误差。
在操作1230,针对每个最大编码单元输出组成根据编码深度的最终编码
结果的编码图像数据以及关于编码深度和编码模式的编码信息。关于编码模
式的信息可包括关于编码深度或划分信息的信息、关于预测单元的分区类型、
预测模式和变换单元的大小的信息。关于编码模式的编码信息可与编码图像
数据一起被发送到解码器。
图15是示出根据示例性实施例的对视频进行解码的方法的流程图。在操
作1310,编码视频的比特流被接收和解析。
在操作1320,从解析的比特流提取被分配给最大编码单元的当前画面的
编码图像数据以及关于根据最大编码单元的编码深度和编码模式的编码信
息。每个最大编码单元的编码深度是每个最大编码单元中具有最小编码误差
的深度。在对每个最大编码单元进行编码中,基于通过根据深度对每个最大
编码单元进行分层划分而获得的至少一个数据单元来对图像数据进行编码。
根据关于编码深度和编码模式的信息,最大编码单元可被划分为具有树
结构的编码单元。具有树结构的多个编码单元中的每一个被确定为与编码深
度相应的编码单元,并被最佳编码以输出最小编码误差。因此,可通过在确
定根据编码单元的至少一个编码深度之后对编码单元中的每条编码图像数据
进行解码来提高图像的编码和解码效率。
在操作1330,基于关于根据最大编码单元的编码深度和编码模式的编码
信息来对每个最大编码单元的图像数据进行解码。解码的图像数据可通过再
现设备被再现,可被存储在存储介质中,或可通过网络被发送。
以下,将参照图16至图24描述根据示例性实施例的通过考虑编码单元、
预测单元和变换单元执行去块滤波对视频进行编码和解码。
图16是根据示例性实施例的采用去块滤波的视频编码设备1400的框图。
参照图16,视频编码设备1400包括最大编码单元划分器1410、编码单元和
编码模式确定器1420以及去块滤波执行单元1430。
视频编码设备1400是视频编码设备100的另一示例性实施例。具体地,
最大编码单元划分器1410可相应于包括在视频编码设备100中的最大编码单
元划分器110,编码单元和编码模式确定器1420以及去块滤波执行单元1430
可相应于包括在视频编码设备100中的编码单元确定器120。
最大编码单元划分器1410可将输入视频数据的画面划分为最大编码单
元,并将划分的结果输出到编码单元和编码模式确定器1420。
编码单元和编码模式确定器1420可通过按照根据深度的编码单元对最
大编码单元重复执行预测编码和变换,来针对每个最大编码单元的每个区域
分别确定与具有最小编码误差的深度和编码模式相应的编码单元。这里,可
按照各种分区类型预测单元执行预测编码,并按照各种大小的变换单元执行
变换。
用于每个编码单元的编码模式可包含关于编码单元的分区类型的信息,
所述信息表示当执行引起最小编码误差的编码时使用的预测单元的大小和形
状、预测模式(例如,帧间模式、帧间模式或跳过模式)以及变换单元的大
小。
根据示例性实施例,编码单元的分区类型不仅可包括大小为N×N、N×
2N、2N×N、2N×2N的对称分区类型,还可包括按照1∶3或3∶1对编码单
元的高度或宽度进行划分而获得的不对称分区类型。根据示例性实施例,变
换单元的大小可以是2×2、4×4、8×8、16×16、32×32、64×64或128×
128。
去块滤波执行单元1430可接收被反变换到空间域的视频数据,并可考虑
视频数据的编码单元的编码模式来对空间域中的视频数据执行去块滤波。具
体地,由编码单元和编码模式确定器1420基于预测单元对编码单元进行预测
编码,基于变换单元对编码的结果进行变换,并根据基于编码深度的编码单
元量化最终结果而获得的量化变换系数可被反量化并反变换回到空间域中的
视频数据,并可被发送到去块滤波单元1430。
去块滤波执行单元1430可考虑编码单元的编码模式,按照空间域中的视
频数据的编码单元对预测单元或变换单元的边界执行去块滤波。
可对每个最大编码单元的编码单元递归和重复地执行去块滤波。例如,
如果编码单元的划分信息是“1”,则当前深度不是编码深度。因此,不执行
去块滤波,当前深度的编码单元还可被划分为下层深度的编码单元。如果编
码单元的划分信息为“0”,则当前深度是编码深度。因此,对与当前深度相
应的编码单元的左、上和内边界执行去块滤波。
去块滤波执行单元1430可通过考虑当前边界是否相应于编码单元、预测
单元和变换单元中的至少一个的边界,来执行去块滤波。例如,可基于当前
边界是否相应于编码单元、预测单元和变换单元中的至少一个的边界来设置
边界强度。
去块滤波执行单元1430可通过考虑在编码单元的编码模式中定义的编
码单元大小、预测单元大小和变换单元大小中的至少一个,来执行去块滤波。
另外,去块滤波执行单元1430可通过考虑编码单元的分区类型来执行去块滤
波。
另外,去块滤波执行单元1430可通过考虑在编码单元的编码模式中定义
的每个预测单元的预测模式、编码残差分量是否存在、运动矢量、参考画面
的数量和参考画面的索引中的至少一个,来执行去块滤波。
去块滤波执行单元1430可考虑编码单元的编码模式来确定边界强度。去
块滤波执行单元1430可考虑编码单元的编码模式来确定去块滤波是否将被
执行或确定去块滤波方法。另外,去块滤波执行单元1430可基于考虑编码单
元的编码模式确定的边界强度、去块滤波是否将被执行以及去块滤波方法来
执行去块滤波。
去块滤波方法可包括设置去块滤波器的长度、滤波器表(filter tab)大
小和将被去块滤波的样本的位置。在这种情况下,所述样本可包括像素的原
始值(即,去块滤波系数)以及像素,像素的值通过执行去块滤波而被改变。
例如,通过使用去块滤波,预定线性公式(其变量是滤波系数)的输出
值可被确定为去块滤波输出值,其中,所述去块滤波使用垂直于边界的像素
的原始像素作为系数。
由去块滤波执行单元1430按照编码单元进行去块滤波的视频数据可被
循环滤波以用作用于后续画面的运动估计和补偿的参考画面。
采用去块滤波的视频编码设备1400可对编码单元中的变换系数进行量
化和熵编码,并可输出比特流,其中,比特流包含按照最大编码单元编码的
视频数据以及关于每个编码单元的编码深度和编码模式的信息。
图17是根据示例性实施例的采用去块滤波的视频解码设备1500的框图。
参照图17,视频解码设备1500包括数据提取器1510、熵解码和反量化单元
1520、反变换和预测解码单元1530和去块滤波执行单元1540。
采用去块滤波的视频解码设备1500相应于图2的视频解码设备200。具
体地,数据提取器1510可相应于包括在视频解码设备200中的图像数据和编
码信息提取器220,熵解码和反量化单元1520、反变换和预测解码单元1530
以及去块滤波执行单元1540可相应于包括在视频解码设备200中的图像数据
解码器230。
数据提取器1510可解析接收的比特流以提取每个编码单元的编码模式
以及按照编码单元编码的视频数据。还可从比特流的解析结果提取关于最大
编码单元的大小的信息。
每个编码单元的编码模式可包含与用于对编码视频数据进行解码的编码
深度、预测单元、预测模式和变换单元有关的信息。因此,可从根据每个编
码单元的编码模式的解析结果按照编码单元提取编码视频数据。
熵解码和反量化单元1520可通过对从数据提取器1510接收的编码视频
数据进行熵解码和反量化来输出变换系数。具体地,可通过对编码视频数据
进行熵解码来输出量化的变换系数,可通过对量化的变换系数进行反量化来
输出与编码单元相应的变换系数。
反变换和预测解码单元1530可通过对从熵解码和反量化单元1520接收
的与编码单元相应的变换系数进行反变换和预测解码,来输出空间域中的视
频数据。
具体地,在反变换中,与编码单元相应的变换系统可基于从由数据提取
器1510提取的编码单元的编码模式获得的关于变换单元的信息被反变换,从
而产生每个编码单元的残差数据。
在预测解码中,每个编码单元的残差数据可基于从提取的编码单元的编
码模式获得的关于预测单元的信息被帧内预测和运动补偿,从而按照编码单
元重建空间域中的视频数据。
去块滤波执行单元1540可考虑编码单元的编码模式来对从反变换和预
测解码单元1530接收的空间域中的视频数据执行去块滤波。
另外,去块滤波执行单元1540可基于提取的编码单元的编码模式,按照
最大编码单元对空间域中的视频数据执行去块滤波。可对编码单元中的预测
单元或变换单元的边界执行去块滤波。
去块滤波执行单元1540可对包括在每个最大编码单元中的编码单元递
归和重复地执行去块滤波。例如,如果编码单元的划分信息为“1”,则当前
深度不是编码深度。因此,不对当前深度的编码单元执行去块滤波,当前深
度的编码单元可被进一步划分为下层深度的编码单元。如果编码单元的划分
信息为“0”,则当前深度是编码深度。因此,对与当前深度相应的编码单元
的左边界、上边界和内边界执行去块滤波。
与上述类似,去块滤波执行单元1540可基于当前边界是否相应于根据编
码单元的编码模式的编码单元、预测单元和变换单元的边界,来执行去块滤
波。
去块滤波所考虑的编码模式的各种示例可包括在编码单元的编码模式中
定义的编码单元大小、预测单元大小、变换单元大小和编码单元的分区类型。
此外,与根据现有标准的视频编解码器类似,可考虑预测模式、是否存在编
码残差分量、运动矢量、参考画面的数量和参考画面的索引中的至少一个,
来执行去块滤波。
此外,可根据去块滤波方法,考虑编码单元、预测单元和变换单元的编
码模式来执行去块滤波,其中,所述去块滤波方法包括关于以下项的信息:
根据基于上述编码模式的各种示例确定的边界强度的去块滤波器、是否将执
行去块滤波的信息和滤波器表大小。
对视频数据进行去块滤波的结果可被输出为空间域中的再现视频。另外,
对视频数据进行去块滤波的结果可被循环滤波以被用作用于对后续画面的运
动进行补偿的参考画面。
在根据示例性实施例的采用去块滤波的视频编码设备1400和视频解码
设备1500中,图像的画面被划分为最大编码单元,每个最大编码单元按照分
别确定的根据深度的编码单元被编码。因此,即使是邻近编码单元在大小或
类型方面也会不同。
在根据示例性实施例的视频编码设备1400和视频解码设备1500中,编
码单元不限于16×16的宏块,编码单元可以是各种大小或形状的块(例如,
2×2、4×4、8×8、16×16、32×32、64×64、128×128和256×256的块)
之一。
在根据示例性实施例的视频编码设备1400和视频解码设备1500中,每
个变换单元不限于4×4或8×8的块,每个变换单元可以是各种大小或形状
的块(例如,2×2、4×4、8×8、16×16、32×32、64×64、128×128和256
×256的块)之一。也就是说,变换单元的最大大小和最小大小不被限制。
在根据示例性实施例的视频编码设备1400和视频解码设备1500中,从
编码单元中单独设置用于执行预测编码的预测单元和用于执行变换/反变换
的变换单元。因此,变换单元可大于预测单元。以上已参照图10至图12描
述了根据示例性实施例的编码单元、变换单元和预测单元之间的关系。
在本公开中,边界可以是编码单元、预测单元或变换单元的边界。例如,
边界可以是编码单元和预测单元的共同边界,可以是变换单元和预测单元的
共同边界,或可以是变换单元和预测单元的共同边界。此外,数据单元的边
界可以是编码单元、预测单元和变换单元的所有的共同边界。此外,预定数
据单元的边界可以是最大编码单元的边界。
根据示例性实施例,分析边界特性以确定是否将对边界执行去块滤波。
例如,在像条头中定义的“disable_deblocking_filter_idc”可被用于分析
边界特性。“disable_deblocking_filter_idc”表示用于确定是否对像条的
边界执行去块滤波的参数。如果“disable_deblocking_filter_idc”为“1”,
则可不对该像条的边办执行去块滤波。
例如,如果“disable_deblocking_filter_idc”为“1”并且边界是画
面的边界,则不对编码单元的边界执行去块滤波。因此,如果
“disable_deblocking_filter_idc”不为“1”并且边界不是画面的边界,
则去块滤波执行单元1430和1540可对编码单元的边界执行去块滤波。如果
“disable_deblocking_filter_ifc”不等于或大于“1”,则可对预测单元或
变换单元的边界执行去块滤波。
在根据示例性实施例的视频编码和解码方法中,编码单元、预测单元和
变换单元均被单独设置,因此,可根据编码单元、预测单元和变换单元中的
每一个的边界特性来针对编码单元、预测单元和变换单元中的每一个单独确
定去块方法。因此,在根据示例性实施例的视频编码设备1400和视频解码设
备1500中,可基于数据单元的边界特性设置去块滤波方法。
例如,可设置针对最大编码单元的边界的去块滤波方法。如果当前边界
是最大编码单元的边界,则可根据针对最大编码单元的边界的去块滤波方法
来对当前边界执行去块滤波。可设置针对编码单元的边界的去块滤波方法。
如果当前边界是编码单元的边界(而非最大编码单元的边界),则可根据针对
编码单元的边界的去块滤波方法对当前边界执行去块滤波。
可设置针对变换单元的边界的去块滤波方法。如果当前边界不是最大编
码单元或编码单元的边界,而是变换单元的边界,则可根据针对变换单元的
边界的去块滤波方法对当前边界执行去块滤波。
可设置针对预测单元的边界的去块滤波方法。如果当前边界不是最大编
码单元、编码单元或变换单元的边界,而是预测单元的边界,则可根据针对
预测单元的边界的去块滤波方法来对当前边界执行去块滤波。
去块滤波方法可包括设置是否将执行去块滤波、去块滤波器的长度和将
被去块滤波的样本的数量和位置。
根据示例性实施例,边界的长度可根据编码单元、预测单元或变换单元
的大小或类型而改变。
现在将参照图18至图20来描述根据其它示例性实施例的编码单元、预
测单元和变换单元之间的关系。在图18至图20中,标号1600、1700和1800
表示编码单元而非最大编码单元。
图18是用于描述根据另一示例性实施例的编码单元、预测单元和变换单
元之间的关系的框图。编码单元1600是2N×2N的块,并基于N×N分区类型
的预测单元被预测编码,并基于N×N变换单元被变换。因此,边界1612、
1614、1616、1620、1626、1630、1632和1634是编码单元1600、预测单元
和变换单元的共同边界,边界1618、1622、1624和1628是预测单元和变换
单元的边界。
图16和图17的去块滤波执行单元1430和1540可对编码单元1600(而
非最大编码单元)的边界1612、1614、1616、1620、1626、1630、1632和
1634执行针对编码单元的边界的去块滤波方法。
另外,去块滤波执行单元1430和1540可对变换单元(而非编码单元1600
或最大编码单元)的边界1618、1622、1624和1628执行针对变换单元的边
界的去块滤波方法。
图19是用于描述根据另一示例性实施例的编码单元、预测单元和变换单
元之间的关系的框图。编码单元1700是2N×2N的块,基于N×N的分区类型
的预测单元被预测编码,并基于2N×2N的变换单元被变换。因此,边界1712、
1714、1716、1720、1726、1730、1732和1734是编码单元1700、预测单元
和变换单元的共同边界,边界1718、1722、1724和1728仅是变换单元的边
界。
图16和图17的去块滤波执行单元1430和1540可对编码单元1700(而
非最大编码单元)的边界1712、1714、1716、1720、1726、1730、1732和
1734执行针对编码单元的边界的去块滤波方法。
去块滤波执行单元1430和1540可对预测单元(而非最大编码单元、编
码单元1700或变换单元)的边界1718、1722、1724和1728执行针对预测单
元的边界的去块滤波方法。
图20是用于描述根据另一示例性实施例的编码单元、预测单元和变换单
元之间的关系的框图。编码单元1800是4N×4N的块,其基于通过根据3∶1
的比例划分编码单元1800的宽度而获得的不对称分区类型的预测单元被预
测编码,并基于2N×2N的变换单元被变换。因此,边界1812、1814、1816、
1820、1822和1824是编码单元1800、预测单元和变换单元的共同边界,边
界1818仅是变换单元的边界,边界1826、1828、1830和1832仅是变换单元
的边界。
图16和图17的去块滤波变换单元1430和1540可对变换单元1800(而
非最大编码单元)的边界1812、1814、1816、1820、1822和1824执行针对
编码单元的边界的去块滤波方法。
此外,图16和图17的去块滤波变换单元1430和1540可对变换单元(而
非最大编码单元或编码单元1800)的边界1826、1828、1830和1832执行针
对变换单元的边界的去块滤波方法。
此外,去块滤波变换单元1430和1540可对变换单元(而非最大编码单
元、编码单元1800或变换单元)的边界1818执行针对预测单元的边界的去
块滤波方法。
图21示出根据示例性实施例的确定去块滤波方法的方法。可分别针对满
足各种条件的组合的边界来设置去块滤波方法。例如,所述各种条件可包括
形成边界的数据单元的类型、预测模式、块中是否存在不为“0”的变换系数、
运动矢量、参考画面、每个数据单元的大小和应用到数据单元的各种编码/
解码技术。去块滤波方法可包括设置是否将执行去块滤波、去块滤波器的长
度以及将被去块滤波的样本的数量和位置。
例如,去块滤波变换单元1430和1540可基于在编码模式中定义的形成
将被去块滤波的边界的两个邻近数据单元的块类型1910和块大小1920,确
定表示边界将被执行去块滤波的数据单元的数量的应用单元1930。
可基于两个邻近数据单元之间的边界是最大编码单元(LCU)、编码单元
(CU)、预测单元(PU)还是变换单元(TU)(块类型1910)的边界,以及两
个邻近数据单元的大小是相同,是大于预定门限还是不大于预定门限(块大
小1920),来将将被执行去块滤波的数据单元的数量(即,应用单元1930)
确定为“2”、“1”或“0”。
此外,去块滤波方法可被设置为满足以上条件中的至少一个。例如,可
针对与满足块类型1910和块大小1920的多个条件的组合的块边界有关的多
个应用单元1930中的每一个设置不同的去块滤波方法。参照图21,可根据
块类型1910、块大小1920以及应用单元1930多个条件的组合来确定将被滤
波的目标的36个条件。去块滤波执行单元1430和1540可通过基于将被去块
滤波的边界的多个条件,通过单独确定去块滤波方法1至36来执行去块滤波。
去块滤波方法1至36被确定意味着分别针对36个边界条件设置不同的去块
滤波方法。因此,可针对不同的边界条件设置相同的去块滤波方法。此外,
可针对一组边界条件设置相同的去块滤波方法。例如,可针对相同块类型的
块边界设置相同的去块滤波方法,或可针对具有相同大小的块边界设置相同
的去块滤波方法。
虽然图21仅示出一些去块滤波条件(例如,形成边界的数据单元的块类
型和块大小以及将被去块滤波的数据单元的数量),去块滤波条件还可包括预
测模式(诸如帧内模式或帧间模式)、块中是否存在编码的残差分量、运动矢
量、参考画面的数量和索引以及编码技术中的至少一个。
图22示出根据示例性实施例的将被去块滤波的样本2000。在样本2000
中,样本p3、p2、p1和p0是存在于块边界的左侧的像素,其它样本q0、q1、
q2和q3是存在于块边界的右侧的像素。虽然图22示出相对于垂直块边界在
执行去块滤波的水平方向上布置的样本2000,但是可对相对于水平块边界在
垂直方向上布置的样本执行去块滤波。
根据示例性实施例,可基于样本2000的原始值,确定边界强度、是否将
执行去块滤波和去块滤波器的长度。
例如,可通过样本2000的原始值来确定边界强度。可根据边界强度的多
个条件以及样本2000的多个原始值之间的差的组合来确定是否将对块边界
执行去块滤波。此外,可根据边界强度的多个条件以及样本2000的多个原始
值之间的差的多个条件的组合来确定样本2000的去块滤波器的长度以及当
执行去块滤波时值改变的样本的数量和位置。
根据示例性实施例,如果亮度分量的去块滤波的边界强度是“4”,则可
在除了样点p3和q3之外的用作去块滤波系数的样本2000中忽略对样本p2
和q2进行去块滤波的结果。
根据示例性实施例,图16和图17的去块滤波执行单元1430和1540基
于当前块边界是编码单元、预测单元还是变换单元的边界,来确定边界强度、
是否将执行去块滤波、去块滤波器的长度和将被滤波的样本的数量和位置。
图23是示出根据示例性实施例的通过使用去块滤波对视频进行编码的
方法的流程图。参照图23,在操作2110,画面被划分为最大编码单元。
在操作2120,针对每个最大编码单元确定与编码单元、预测单元和变换
单元有关的编码深度的编码单元和每个编码单元的编码模式。
在操作2130,考虑编码单元的编码模式,按照编码单元对已被反变换到
空间域的视频数据执行去块滤波。可根据在编码单元的编码模式中定义的形
成边界的数据单元(包括编码单元、预测单元和变换单元)的类型、数据单
元的大小以及分区模式,确定指示是否将对边界执行去块滤波、去块滤波的
边界强度和滤波器表大小的去块滤波方法。
图24是示出根据示例性实施例的通过使用去块滤波的对视频进行解码
的方法的流程图。参照图24,在操作2210,接收到的比特流被解析以提取每
个编码单元的编码模式以及按照编码单元被编码的视频数据。
在操作2220,通过按照编码单元对编码视频数据进行熵解码和反量化,
获得变换系数。
在操作2230,通过按照在编码单元的编码模式中定义的变换单元对变换
系数进行反变换并按照在编码单元的编码模式中定义的预测单元对变换系数
进行预测解码,来重建空间域中的视频数据。
在操作2240,考虑编码单元的编码模式,对空间域中的视频数据执行去
块滤波。可根据在编码单元的编码模式中定义的形成边界的数据单元(包括
编码单元、预测单元和变换单元)的类型、数据单元的大小和分区模式,来
确定指示是否将对边界执行去块滤波、去块滤波的边界强度和滤波器表大小
的去块滤波方法。
示例性实施例可被写为计算机程序,并可在使用计算机可读记录介质执
行程序的通用数字计算机中被实现。计算机可读记录介质的示例包括磁存储
介质(例如,ROM、软盘、硬盘等)和光记录介质(例如,CD-ROM或DVD)。
虽然以上具体示出和描述了示例性实施例,但是本领域的普通技术人员
将理解,在不脱离由权利要求定义的发明构思的精神和范围的情况下,可对
其进行形式和细节上的各种改变。示例性实施例应该被认为仅是描述的意义,
而并非为了限制的目的。因此,本发明构思的范围不由示例性实施例的具体
描述来定义,而是由权利要求来定义,在所述范围内的所有不同方式将被理
解为包括在本发明构思中。