用于对视频进行编码和解码的方法和设备的制作方法

文档序号:7850045阅读:197来源:国知局
专利名称:用于对视频进行编码和解码的方法和设备的制作方法
技术领域
与示例性实施例一致的设备和方法涉及对视频进行编码和解码,更具体地讲,涉及视频的精确运动估计和补偿。
背景技术
随着用于再现和存储高分辨率或高质量的视频内容的硬件的开发和提供,对用于高效地编码或解码高分辨率或高质量的视频内容的视频编解码器的需要正在增加。在现有技术的视频编解码器中,根据有限的编码方法以宏块为单位对视频进行编码,其中,每个宏块具有预定尺寸。

发明内容
技术问题在现有技术的视频编解码器中,根据有限的编码方法以宏块为单位对视频进行编码,其中,每个宏块具有预定尺寸。技术方案一个或多个示例性实施例的多个方面提供一种在不显著增加计算负荷的情况下执行精确的运动估计和补偿的视频编码和解码方法和设备。·
本发明的有益效果根据一个或多个示例性实施例,在不显著增加用于运动估计的计算负荷的情况下,还执行精确的运动估计是可行的。


图I是根据示例性实施例的视频编码设备的框图;图2是根据示例性实施例的视频解码设备的框图;图3是用于描述根据示例性实施例的编码单元的构思的示图;图4是根据示例性实施例的基于编码单元的图像编码器的框图;图5是根据示例性实施例的基于编码单元的图像解码器的框图;图6是示出根据示例性实施例的根据深度的较深层编码单元和分区的示图;图7是用于描述根据示例性实施例的编码单元和变换单元之间的关系的示图;图8是用于描述根据示例性实施例的与编码深度相应的编码单元的编码信息的示图;图9是根据示例性实施例的根据深度的较深层编码单元的示图;图10至图12是用于描述根据示例性实施例的编码单元、预测单元、变换单元之间的关系的不图;图13是用于根据表I的编码模式信息描述编码单元、预测单元或分区、变换单元之间的关系的示图14是示出根据示例性实施例的运动估计装置的构造的框图;图15示出由图14的插值单元1420执行的插值方法;图16是描述由图14的运动矢量获取单元1430执行的运动估计的示图;图17是示出根据示例性实施例的运动补偿装置的构造的框图;图18是描述由图17的插值单元1710执行的插值方法的参考画面;图19是用于描述由图17的第二子像素选择单元1720执行的第二子像素选择的示图;图20是示出根据图19的第二子像素选择的运动矢量的校正方向的参考示图; 图21示出根据示例性实施例的通过运动估计和补偿将被校正的参考画面的相应区域;图22示出根据示例性实施例的运动矢量信息;图23是描述根据示例性实施例的运动矢量估计处理的示图;图24是根据示例性实施例的对视频进行编码的方法的流程图;图25是示出根据示例性实施例的运动补偿装置的构造的框图;图26是示出根据示例性实施例的对视频进行解码的方法的流程图。实现本发明的最佳方式根据示例性实施例的一方面,提供一种对视频编码的方法,所述方法包括根据第一子像素单位对当前块执行运动估计,并针对当前块获得第一子像素单位的运动矢量;根据小于第一子像素单位的第二子像素单位对由获得的第一子像素单位的运动矢量指示的参考画面进行插值;从与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的第一子像素邻近的第二子像素单位的子像素之中选择第二子像素,其中,使用插值的参考画面来执行该选择;选择与当前块具有较小误差的相应区域,其中,相应区域来自第一相应区域和第二相应区域之中,其中,第一相应区域属于由运动矢量指示的参考画面并且是针对第一子像素单位的第一子像素获得的,第二相应区域属于当前块并且是针对选择的第二子像素单位的第二子像素获得的;对选择的相应区域的信息进行编码。根据另一示例性实施例的一方面,提供一种视频编码设备,包括运动估计器,通过第一子像素单位对当前块执行运动估计,并针对当前块获得第一子像素单位的运动矢量;运动补偿器,根据小于第一子像素单位的第二子像素单位对由第一子像素单位的运动矢量指示的参考画面进行插值,通过使用根据第二子像素单位进行插值的参考画面从与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的第一像素邻近的第二子像素单位的子像素之中选择第二子像素,并且选择与当前块具有较小误差的相应区域,其中,相应区域来自第一相应区域和第二相应区域之中,其中,第一相应区域属于由运动矢量指示的参考画面并且是针对第一子像素单位的第一子像素获得的,第二相应区域属于当前块并且是针对选择的第二子像素单位的第二子像素获得的;编码器,对选择的相应区域的信息进行编码。根据另一示例性实施例的一方面,提供一种对视频解码的方法,该方法包括从比特流解码并获得针对当前块的第一子像素单位的运动矢量;从比特流获得信息,其中,所述信息指示是否通过使用相应区域对当前块执行了运动补偿,其中,针对与由第一子像素单位的第一子像素单位的运动矢量指示的参考画面的第一子像素单位的子像素邻近的小于第一子像素单位的第二子像素单位的第二子像素获 得所述相应区域;如果通过使用针对第二子像素单位的第二子像素获得的所述相应区域的信息对当前块执行了运动补偿,则从比特流提取第二子像素单位的第二子像素的位置信息;通过使用第一子像素单位的运动矢量和提取的第二子像素单位的第二子像素的位置信息,对当前块执行运动补偿。根据另一示例性实施例的一方面,提供一种视频解码设备,包括熵解码器,从比特流解码并获得针对当前块的第一子像素单位的运动矢量,获得信息,其中,所述信息指示是否通过使用相应区域对当前块执行了运动补偿,其中,针对与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的第一子像素邻近的小于第一子像素单位的第二子像素单位的第二子像素获得所述相应区域,其中,如果通过使用针对第二子像素单位的第二子像素获得的所述相应区域的信息对当前块执行了运动补偿,则熵解码器从比特流提取第二子像素单位的第二子像素的位置信息;运动补偿器,通过使用第一子像素单位的运动矢量和提取的第二子像素单位的第二子像素的位置信息,对当前块执行运动补偿。
具体实施例方式以下,将参照附图详细描述示例性实施例。图I是根据示例性实施例的视频编码设备100的框图。视频编码设备100包括最大编码单元分割器110、编码单元确定器120和输出单元130。最大编码单元分割器110可基于图像的当前画面的最大编码单元来分割当前画面。如果当前画面大于最大编码单元,则可将当前画面的图像数据分割为至少一个最大编码单元。根据示例性实施例的最大编码单元可以是尺寸为32X32、64X64、128X128、256 X 256等的数据单元,其中,数据单元的形状是方形,该方形的宽和长中的每个为2的倍数并且大于8。图像数据可根据至少一个最大编码单元被输出到编码单元确定器120。根据示例性实施例的编码单元可由最大尺寸和深度表征。深度表示编码单元从最大编码单元被空间分割的次数,随着深度加深,根据深度的较深层编码单元可从最大编码单元被分割为最小编码单元。最大编码单元的深度是最上层深度,最小编码单元的深度是最下层深度。由于与每个深度相应的编码单元的尺寸随着最大编码单元的深度加深而减小,因此与较上层深度相应的编码单元可包括多个与较下层深度相应的编码单元。如上所述,根据编码单元的最大尺寸将当前画面的图像数据分割为最大编码单元,每个最大编码单元可包括根据深度分割的较深层编码单元。由于根据示例性实施例的最大编码单元根据深度被分割,因此包括在最大编码单元中的空间域的图像数据可根据深度被分层地分类。可预先确定编码单元的最大深度和最大尺寸,最大深度和最大尺寸限制了最大编码单元的高度和宽度被分层分割的总次数。编码单元确定器120对通过根据深度分割最大编码单元的区域获得的至少一个分割区域进行编码,并根据所述至少一个分割区域来确定用于输出最终编码的图像数据的深度。换句话说,编码单元确定器120根据当前画面的最大编码单元以根据深度的较深层编码单元对图像数据进行编码,并选择具有最小编码误差的深度,来确定编码深度。因此,与确定的编码深度相应的编码单元的编码图像数据被最终输出。此外,与编码深度相应的编码单元可被认为是编码的编码单元。确定的编码深度和根据确定的编码深度的编码图像数据被输出到输出单元130。基于与等于或低于最大深度的至少一个深度相应的较深层编码单元来对最大编码单元中的图像数据进行编码,基于每个较深层编码单元来比较对图像数据进行编码的结果。在对多个较深层编码单元的编码误差进行比较之后,可选择具有最小编码误差的深度。可为每个最小编码单元选择至少一个编码深度。随着编码单元根据深度被分层地分割并且随着编码单元的数量增加,最大编码单元的尺寸被分割。此外,即使在一个最大编码单元中编码单元对应于相同深度,也可通过分别测量每个编码单元的图像数据的编码误差来确定是否将与该相同深度对应的每个编码单元分割为较下层深度。因此,即使当图像数据包括在一个最大编码单元中时,图像数据根据深度被分割为多个区域,并且在所述一个最大编码单元中,编码误差可根据区域而不同,因此,编码深度可根据图像数据中的区域而不同。因此,可在一个最大编码单元中确定一个或多个编码深度,可根据至少一个编码深度的编码单元来划分最大编码单元的图像数据。
因此,编码单元确定器120可确定包括在最大编码单元中的具有树结构的编码单元。根据示例性实施例的具有树结构的编码单元包括在最大编码单元中所包括的所有较深层编码单元之中的与确定为编码深度的深度相应的编码单元。在最大编码单元的相同区域中,可根据深度来分层地确定编码深度的编码单元,并且可在不同的区域中独立地确定编码深度的编码单元。类似地,当前区域中的编码深度可独立于另一区域中的编码深度被确定。最大深度表示图像数据从最大编码单元被分割为最小编码单元的次数。根据示例性实施例的第一最大深度可表示从最大编码单元至最小编码单元的分割次数的总数量。根据示例性实施例的第二最大深度可表示从最大编码单元至最小编码单元的深度级的总层数。例如,当最大编码单元的深度为O时,通过对最大编码单元分割一次获得的编码单元的深度可被设置为1,通过对最大编码单元分割两次获得的编码单元的深度可被设置为2。在此情况下,如果最小编码单元表示通过对最大编码单元分割四次获得的编码单元,则由于深度级包括深度0、1、2、3、4,则第一最大深度可被设置为4,第二最大深度可被设置为5。可根据最大编码单元执行预测编码和变换。也可根据最大编码单元,基于根据等于最大深度的深度或小于最大深度的深度的较深层编码单元,执行预测编码和变换。由于每当最大编码单元根据深度被分割时较深层编码单元的数量增加,因此可对随着深度加深产生的所有较深层编码单元执行包括预测编码和变换的编码。为了便于描述,将基于最大编码单元中的当前深度的编码单元描述预测编码和变换。视频编码设备100可变化地选择用于对图像数据编码的数据单元的尺寸或形状。为了对图像数据编码,执行诸如预测编码、变换和墒编码的操作,此时,可针对所有操作使用相同的数据单元,或者可针对每个操作使用不同的数据单元。例如,视频编码设备100不仅可选择用于对图像数据编码的编码单元,而且还选择与所述编码单元不同的数据单元,从而对编码单元中的图像数据执行预测编码。为了在最大编码单元中执行预测编码,可基于与编码深度相应的编码单元(即,基于不再分割为与较下层深度相应的编码单元的编码单元)执行预测编码。以下,不再分割并且变为用于预测编码的基本单元的编码单元现在将被称为预测单元。通过分割预测单元获得的分区(partition)可包括预测单元或者通过将预测单元的高度和宽度中的至少一个进行分割获得的数据单元。例如,当2NX2N(其中,N为正整数)的编码单元不再分割并且变为2NX 2N的预测单元时,分区的尺寸可以是2NX2N、2NXN、NX2N或NXN。分区类型的示例包括通过对称地分割预测单元的高度或宽度获得的对称分区、通过非对称地分割预测单元的高度或宽度(例如,I η或η I)获得的分区、通过几何地分割预测单元获得的分区以及具有任意形状的分区。预测单元的预测模式可以是帧内模式、帧间模式和跳过模式中的至少一种。例如,可对2Ν X 2Ν、2Ν X N、N X 2Ν或N X N的分区执行帧内模式或帧间模式。此外,可仅对2Ν X 2Ν的分区执行跳过模式。对编码单元中的一个预测单元独立地执行编码,从而选择具有最小编码误差的预测模式。视频编码设备100还可不仅基于用于对图像数据编码的编码单元对编码单元中的图像数据进行变换,而且还可基于与编码单元不同的数据单元对编码单元中的图像数据 进行变换。 为了在编码单元中执行变换,可基于具有小于或等于编码单元的尺寸的数据单元执行该变换。例如,用于变换的数据单元可包括用于帧内模式的数据单元和用于帧间模式的数据单元。用作变换的基础的数据单元现在将被称为变换单元。类似于编码单元,编码单元中的变换单元可被递归地分割为更小尺寸的区域,从而可以以区域为单元独立地确定变换单元。因此,可根据变换深度根据具有树结构的变换来划分编码单元中的残差数据。也可在变换单元中设置变换深度,变换深度表示通过分割编码单元的高度和宽度达到变换单元的分割次数。例如,在2ΝΧ 2Ν的当前编码单元中,当变换单元也为2ΝΧ 2Ν时,变换深度可以是0,当变换单元的尺寸为NXN时,变换深度可以是1,当变换单元的尺寸为Ν/2ΧΝ/2时,变换深度可以是2。即,也可根据变换深度基于树结构来设置变换单元。根据与编码深度相应的编码单元的编码信息不仅使用关于编码深度的信息,还使用与预测编码和变换有关的信息。因此,编码单元确定器120不仅确定具有最小编码误差的编码深度,还确定预测单元中的分区类型、根据预测单元的预测模式和用于变换的变换单元的尺寸。稍后将参照图3至图12详细描述根据示例性实施例的最大编码单元中的根据树结构的编码单元以及确定分区的方法。编码单元确定器120可通过使用基于拉格朗日乘子的率失真优化来测量根据深度的较深层编码单元的编码误差。输出单元130在比特流中输出最大编码单元的图像数据以及关于根据编码深度的编码模式的信息,其中,所述图像数据基于由编码单元确定器120确定的至少一个编码深度被编码。通过对图像的残差数据进行编码来获得编码图像数据。关于根据编码深度的编码模式的信息可包括关于编码深度的信息、关于预测单元中的分区类型的信息、预测模式和变换单元的尺寸。可通过使用根据深度的分割信息来定义关于编码深度的信息,关于编码深度的信息指示是否针对较下层深度而不是当前深度的编码单元来执行编码。如果当前编码单元的当前深度是编码深度,则当前编码单元中的图像数据被编码并被输出,因此分割信息可被定义为不将当前编码单元分割为较下层深度。可选地,如果当前编码单元的当前深度不是编码深度,则针对较下层深度的编码单元来执行编码,因此,分割信息可被定义为分割当前编码单元以获得较下层深度的编码单元。如果当前深度不是编码深度,则针对被分割为较下层深度的编码单元的编码单元来执行编码。由于在当前深度的一个编码单元中存在较下层深度的至少一个编码单元,因此针对较下层深度的每个编码单元重复执行编码。因此,可针对具有相同深度的编码单元递归地执行编码。由于针对一个最大编码单元确定具有树结构的编码单元,并且针对编码深度的编码单元确定关于至少一个编码模式的信息,因此,可针对一个最大编码单元确定关于至少一个编码模式的信息。此外,由于图像数据根据深度被分级分割,因此,最大编码单元的图像数据的编码深度可根据位置而不同。因此,可针对图像数据设置关于编码深度和编码模式的信息。因此,输出单元130可将关于相应的编码深度和编码模式的编码信息分配给包括 在最大编码单元中的编码单元、预测单元和最小单元中的至少一个。根据示例性实施例的最小单元可以是通过将构成最低深度的最小编码单元分割4次所获得的矩形数据单元。可选地,最小单元可以是最大矩形数据单元,所述最大矩形数据单元可包括在最大编码单元中所包括的所有编码单元、预测单元、分区单元和变换单元中。例如,通过输出单元130输出的编码信息可被分类为根据编码单元的编码信息和根据预测单元的编码信息。根据编码单元的编码信息可包括关于预测模式的信息和关于分区的尺寸的信息。根据预测单元的编码信息可包括关于帧间模式的估计方向的信息、关于帧间模式的参考图像索引的信息、关于运动矢量的信息、关于帧内模式的色度分量的信息和关于帧内模式的插值方法的信息。此外,关于根据画面、像条或图像组(GOP)定义的编码单元的最大尺寸的信息以及关于最大深度的信息可被插入比特流的序列参数集(SPS)或头中。在视频编码设备100中,较深层编码单元可以是通过将作为上一层的较上层深度的编码单元的高度或宽度划分两次所获得的编码单元。换句话说,当当前深度的编码单元的尺寸为2NX 2N时,较下层深度的编码单元的尺寸可以是NXN。此外,尺寸为2NX 2N的当前深度的编码单元可最多包括较下层深度的4个编码单元。因此,视频编码设备100可通过基于考虑当前画面的特征所确定的最大编码单元的尺寸和最大深度,针对每个最大编码单元确定具有最佳形状和最佳尺寸的编码单元,来形成具有树结构的编码单元。此外,由于可通过使用各种预测模式和变换的任意一个来针对每个最大编码单元执行编码,因此可考虑各种图像尺寸的编码单元的特征来确定最佳编码模式。因此,如果以现有技术的宏块对具有高分辨率或大数据量的图像进行编码,则每个画面的宏块数量过度增加。因此,针对每个宏块产生的压缩信息的条数增加,因此难以发送压缩信息,数据压缩效率降低。然而,通过使用视频编码设备100,由于在考虑图像的尺寸的同时增加编码单元的最大尺寸,同时在考虑图像特征的同时调整编码单元,因此可提高图像压缩效率。
图2是根据示例性实施例的视频解码设备200的框图。视频解码设备200包括接收器210、图像数据和编码信息提取器220和图像数据解码器230。用于视频解码设备200的各种操作的各种术语(诸如编码单元、深度、预测单元、变换单元和关于各种编码模式的信息)的定义与参照图I和视频编码设备100描述的那些术语相同。接收器210接收并解析编码视频的比特流。图像数据和编码信息提取器220从解析的比特流提取每个编码单元的编码图像数据,并将提取的图像数据输出到图像数据解码器230,其中,编码单元具有根据每个最大编码单元的树结构。图像数据和编码信息提取器220可从关于当前画面的头或SPS提取关于当前画面的编码单元的最大尺寸的信息。
此外,图像数据和编码信息提取器220从解析的比特流提取关于具有根据每个最大编码单元的树结构的编码单元的编码深度和编码模式的信息。提取的关于编码深度和编码模式的信息被输出到图像数据解码器230。换句话说,比特流中的图像数据被分割为最大编码单元,从而图像数据解码器230对每个最大编码单元的图像数据进行解码。可针对关于与编码深度相应的至少一个编码单元的信息,来设置关于根据最大编码单元的编码深度和编码模式的信息,关于编码模式的信息可包括关于与编码深度相应的相应编码单元的分区类型的信息、关于预测模式的信息和变换单元的尺寸。此外,根据深度的分割信息可被提取作为关于编码深度的信息。由图像数据和编码信息提取器220提取的关于根据每个最大编码单元的编码深度和编码模式的信息是关于编码深度和编码模式的信息,其中,所述编码深度和编码模式被确定为用于当编码器(诸如视频编码设备100)根据每个最大编码单元针对每个根据深度的较深层编码单元重复执行编码时产生最小编码误差。因此,视频解码设备200可通过根据产生最小编码误差的编码深度和编码模式对图像数据进行解码来恢复图像。由于关于编码深度和编码模式的编码信息可被分配给相应编码单元、预测单元和最小单元中的预定数据单元,因此图像数据和编码信息提取器220可提取关于根据预定数据单元的编码深度和编码模式的信息。被分配关于编码深度和编码模式的相同信息的预定数据单元可被推断为包括在相同最大编码单元中的数据单元。图像数据解码器230通过基于关于根据最大编码单元的编码深度和编码模式的信息对每个最大编码单元中的图像数据进行解码,来恢复当前画面。换句话说,图像数据解码器230可基于提取的关于包括在每个最大编码单元中的具有树结构的编码单元中的每个编码单元的分区类型、预测模式和变换单元的信息,来对编码图像数据进行解码。解码处理可包括预测(包括帧内预测和运动补偿)和反变换。可根据反正交变换或反整数变换的方法来执行反变换。图像数据解码器230可基于关于根据编码深度的编码单元的预测单元的分区类型和预测模式的信息,根据每个编码单元的分区和预测模式执行帧内预测或运动补偿。此外,图像数据解码器230可基于关于根据编码深度的编码单元的变换单元的尺寸的信息,根据编码单元中的每个变换单元执行反变换,从而根据最大编码单元执行反变换。图像数据解码器230可通过使用根据深度的分割信息来确定当前最大编码单元的至少一个编码深度。如果分割信息指示图像数据在当前深度下不再被分割,则当前深度是编码深度。因此,图像数据解码器230可通过使用与编码深度相应的每个编码单元的关于预测单元的分区类型、预测模式和变换单元的尺寸的信息,对当前最大编码单元中与每个编码深度相应的至少一个编码单元的编码数据进行解码,并输出当前最大编码单元的图像数据。换句话说,可通过观察为编码单元、预测单元和最小单元之中的预定数据单元分配的编码信息集来收集包含包括相同分割信息的编码信息的数据单元,收集的数据单元可被视为将由图像数据解码器230以相同的编码模式进行解码的一个数据单元。视频解码设备200可获得关于当针对每个最大编码单元递归执行编码时产生最小编码误差的至少一个编码单元的信息,并可使用所述信息来对当前画面进行解码。换句话说,可对每个最大编码单元中被确定为最佳编码单元的具有树结构的编码单元进行解码。因此,即使图像数据具有高分辨率和大数据量,也可通过使用编码单元的尺寸和编码模式来对图像数据进行有效地解码和恢复,其中,通过使用从编码器接收的关于最佳 编码模式的信息,根据图像数据的特征来适应性地确定所述编码单元的尺寸和所述编码模式。现在将参照图3至图13描述根据示例性实施例的确定具有树结构的编码单元、预测单元和变换单元的方法。图3是用于描述根据示例性实施例的编码单元的构思的示图。编码单元的尺寸可被表示为宽X高,可以是64X64、32X32、16X16和8X8。64X64的编码单元可被分割为64X64、64X32、32X64或32X32的分区,32X32的编码单元可被分割为32X32、32X16、16X32或16X16的分区,16X16的编码单元可被分割为16X16、16X8、8X16或8X8的分区,8X8的编码单元可被分割为8X8、8X4、4X8或4X4的分区。在视频数据310中,分辨率为1920 X 1080,编码单元的最大尺寸为64,最大深度为
2。在视频数据320中,分辨率为1920 X 1080,编码单元的最大尺寸为64,最大深度为3。在视频数据330中,分辨率为352X288,编码单元的最大尺寸为16,最大深度为I。图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,尺寸(即,高度乘宽度)为64X64。深度沿纵轴加深,存在尺寸为32X32且深度为I的编码单元620、尺寸为16 X 16且深度为2的编码单元630、尺寸为8 X 8且深度为3的编码单元640以及尺寸为4X4且深度为4的编码单元650。尺寸为4X4且深度为4的编码单元650是
最小编码单元。编码单元的预测单元和分区根据每个深度沿横轴排列。换句话说,如果尺寸为 64X64且深度为O的编码单元610是预测单元,则预测单元可被分割为包括在编码单元610中的分区,即,尺寸为64X64的分区610、尺寸为64X32的分区612、尺寸为32X64的分区614或尺寸为32X32的分区616。类似地,尺寸为32X32且深度为I的编码单元620的预测单元可被分割为包括在编码单元620中的分区,即,尺寸为32X32的分区620、尺寸为32X16的分区622、尺寸为16X32的分区624和尺寸为16X16的分区626。类似地,尺寸为16X16且深度为2的编码单元630的预测单元可被分割为包括在编码单元630中的分区,即,包括在编码单元630中的尺寸为16X16的分区、尺寸为16X8的分区632、尺寸为8X16的分区634和尺寸为8X8的分区636。类似地,尺寸为8X8且深度为3的编码单元640的预测单元可被分割为包括在编码单元640中的分区,S卩,包括在编码单元640中的尺寸为8 X 8的分区640、尺寸为8 X 4的分区642、尺寸为4X8的分区644和尺寸为4X4的分区646。尺寸为4X4且深度为4的编码单元650是最小编码单元和最下层深度的编码单元。编码单元650的预测单元仅被分配给尺寸为4X4的分区。为了确定构成最大编码单元610的编码单元的至少一个编码深度,视频编码设备100的编码单元确定器120针对包括在最大编码单元610中的与每个深度相应的编码单元执行编码。随着深度加深,以相同范围和相同尺寸包括数据的根据深度的较深层编码单元的数量增加。例如,需要四个与深度2相应的编码单元来覆盖包括在一个与深度I相应的编码单元中的数据。因此,为了比较根据深度的相同数据的编码结果,与深度I相应的编码单元和四个与深度2相应的编码单元各自被编码。为了针对深度中的当前深度执行编码,可通过沿分层结构600的横轴,针对与当前深度相应的编码单元中的每个预测单元执行编码,来针对当前深度选择最小编码误差。可选地,可通过随着深度沿分层结构600的纵轴而加深针对每个深度执行编码来比较根据深度的最小编码误差,从而搜索最小编码误差。编码单元610中具有最小编码误差的深度和分区可被选为编码单元610的编码深度和分区类型。图7是用于描述根据示例性实施例的编码单元710和变换单元720之间的关系的示图。视频编码设备100或视频解码设备200针对每个最大编码单元,根据尺寸小于或等于最大编码单元的编码单元来对图像进行编码或解码。可基于不大于相应编码单元的数据单元来选择编码期间用于变换的变换单元的尺寸。例如,在视频编码设备100或视频解码设备200中,如果编码单元710的尺寸是64X64,则可通过使用尺寸为32X32的变换单元720来执行变换。此外,可通过对小于64X64的尺寸为32X32、16X 16、8X8和4X4的变换单元中的每一个执行变换,来对尺寸为64X64的编码单元710的数据进行编码,随后可选择具有最小编码误差的变换单元。图8是用于描述根据示例性实施例的与编码深度相应的编码单元的编码信息的示图。
视频编码设备100的输出单元130可对与编码深度相应的每个编码单元的关于分区类型的信息800、关于预测模式的信息810和关于变换单元的尺寸的信息820进行编码和发送,以作为关于编码模式的信息。信息800指示关于通过对当前编码单元的预测单元进行分割而获得的分区的形状的信息,其中,所述分区是用于对当前编码单元进行预测编码的数据单元。例如,尺寸为2NX2N的当前编码单元CU_0可被分割为尺寸为2NX2N的分区802、尺寸为2NXN的分区804、尺寸为NX 2N的分区806和尺寸为NXN的分区808中的任意一个。这里,关于分区类型的信息800被设置为指示尺寸为2NXN的分区804、尺寸为NX2N的分区806和尺寸为NXN的尺寸的分区808之一。信息810指示每个分区的预测模式。例如,信息810可指示对由信息800指示的分区执行的预测编码的模式,即,帧内模式812、帧间模式814或跳过模式816。信息820指示当对当前编码单元执行变换时所基于的变换单元。例如,变换单元可以是第一帧内变换单元822、第二帧内变换单元824、第一帧间变换单元826或第二帧内变换单元828。视频解码设备200的图像数据和编码信息提取器220可根据每个较深层编码单元提取和使用用于解码的信息800、810和820。图9是根据示例性实施例的根据深度的较深层编码单元的示图。分割信息可被用于指示深度的改变。分割信息指示当前深度的编码单元是否被分割为较下层深度的编码单元。用于对深度为O且尺寸为2N_0X2N_0的编码单元900进行预测编码的预测单元910可包括以下分区类型的分区尺寸为2N_0X2N_0的分区类型912、尺寸为2N_0XN_0的分区类型914、尺寸为N_0X2N_0的分区类型916、尺寸为Ν_0ΧΝ_0的分区类型918。图9仅示出通过对预测单元910进行对称分割而获得的分区类型912至918,但分区类型不限于此,预测单元910的分区可包括非对称分区、具有预定形状的分区和具有几何形状的分区。根据每个分区类型,对一个尺寸为2N_0X2N_0的分区、两个尺寸为2N_0XN_0的分区、两个尺寸为N_0X2N_0的分区和四个尺寸为Ν_0ΧΝ_0的分区重复执行预测编码。可对尺寸为2N_0 X 2N_0、N_0 X 2N_0、2N_0 X N_0和N_0 X N_0的分区执行帧内模式和帧间模式下的预测编码。可仅对尺寸为2N_0X2N_0的分区执行跳过模式下的预测编码。比较包括分区类型912至918中的预测编码的编码的误差,在分区类型中确定最小编码误差。如果在分区类型912至916之一中编码误差最小,则预测单元910可不被分割为较下层深度。
如果在分区类型918中编码误差最小,则深度从O改变到I以在操作920对分区类型918进行分割,对深度为2且尺寸为Ν_0ΧΝ_0的编码单元930重复执行编码,以搜索
最小编码误差。用于对深度为I且尺寸为2N_1 X 2N_1 ( = Ν_0ΧN_0)的编码单元930进行预测编码的预测单元940可包括以下分区类型的分区尺寸为2N_1X2N_1的分区类型942、尺寸为2N_1XN_1的分区类型944、尺寸为N_1X2N_1的分区类型946、尺寸为N_1 XN_1的分区类型948。如果在分区类型948中编码误差最小,则深度从I改变到2以在操作950对分区类型948进行分割,对深度为2且尺寸为N_2XN_2的编码单元960重复执行编码,以搜索
最小编码误差。当最大深度为d时,可执行根据每个深度的分割操作,直到深度变为d-Ι,分割信 息可被编码直到深度为O到d-2中的一个。换句话说,当编码被执行直到在操作970与深度d-2相应的编码单元被分割之后深度为d-Ι时,用于对深度为d-Ι且尺寸为2N_(d-l) X2N_(d-1)的编码单元980进行预测编码的预测单元990可包括以下分区类型的分区尺寸为2N_(d-l) X2N_(d-l)的分区类型992、尺寸为2N_(d-l) XN_(d-l)的分区类型994、尺寸为N_(d-1) X2N_(d-l)的分区类型996、尺寸为N_(d-1) XN_(d-l)的分区类型998。可在分区类型992至998中对一个尺寸为2N_(d_l) X2N_(d_l)的分区、两个尺寸为2N_(d-l) XN_(d-l)的分区、两个尺寸为N_(d-1) X2N_(d-l)的分区、四个尺寸为N_(d-1) XN_(d-l)的分区重复执行预测编码,以搜索具有最小编码误差的分区类型。即使分区类型998具有最小编码误差,但由于最大深度为d,因此深度为d-Ι的编码单元cu_(d-l)不再被分割到较下层深度,用于构成当前最大编码单元900的编码单元的编码深度被确定为d-Ι,当前最大编码单元900的分区类型可被确定为(d-1) XN_(d-l)。此外,由于最大深度为d,具有最下层深度d-Ι的最小编码单元980不再被分割到较下层深度,因此不设置最小编码单元980的分割信息。数据单元999可以是当前最大编码单元的最小单元。根据示例性实施例的最小单元可以是通过对最小编码单元980分割4次而获得的矩形数据单元。通过重复执行编码,视频编码设备100可通过比较根据编码单元900的深度的编码误差来选择具有最小编码误差的深度以确定编码深度,将相应的分区类型和预测模式设置为编码深度的编码模式。这样,在I至d的所有深度中对根据深度的最小编码误差进行比较,具有最小编码误差的深度可被确定为编码深度。编码深度、预测单元的分区类型和预测模式可被编码和发送,以作为关于编码模式的信息。此外,由于编码单元被从深度O分割到编码深度,因此仅编码深度的分割信息被设置为0,除了编码深度之外的深度的分割信息被设置为I。视频解码设备200的图像数据和编码信息提取器220可提取并使用关于编码单元900的编码深度和预测单元的信息以对分区912进行解码。视频解码设备200可通过使用根据深度的分割信息将分割信息为O的深度确定为编码深度,并使用关于相应深度的编码模式的信息以进行解码。图10至图12是用于描述根据示例性实施例的编码单元1010、预测单元1060和变换单元1070之间的关系的示图。编码单元1010是最大编码单元中与视频编码设备100确定的编码深度相应的具有树结构的编码单元。预测单元1060是编码单元1010中的每一个的预测单元的分区,变换单元1070是编码单元1010中的每一个的变换单元。当编码单元1010中的最大编码单元的深度是O时,编码单元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中的分区类型具有2NXN的尺寸,编码单元1016、1048和1052中的分区类型具有NX2N的尺寸,编码单元1032的分区类型具有NXN的尺寸。编码单元1010的预测单元和分区小于或等于每个编码单元。对小于编码单元1052的数据单元中的变换单元1070中的编码单元1052的图像数据执行变换或反变换。此外,变换单元1070中的编码单元1014、1016、1022、1032、1048、 1050和1052在尺寸和形状方面与预测单元1060中的编码单元1014、1016、1022、1032、1048,1050和1052不同。换句话说,视频编码设备100和视频解码设备200可对相同编码单元中的数据单元分别执行帧内预测、运动估计、运动补偿、变换和反变换。因此,对最大编码单元的每个区域中具有分层结构的编码单元中的每一个递归地执行编码,以确定最佳编码单元,从而可获得具有递归树结构的编码单元。编码信息可包括关于编码单元的分割信息、关于分区类型的信息、关于预测模式的信息和关于变换单元的尺寸的信息。表I示出可由视频编码设备100和视频解码设备200设置的示例性编码信息。表I
分割信息O (对尺、!.为2NX2N且当前深度为d的编码单元进行分割信息I
编码)_
预测模式分区类型 _变换单元的P寸对具有较
帧内对称分区非对称分变换甲.元变换申.元下层深度
帧间类型区类型的分割信的分割信 d+Ι的编码
跳过(仅__息O息I单元进行
2NX2N) 2NX2N 2NXnU 2NX2N NXN (对重复编码 2NXN 2NXnD称类型)
NX2N nLX2NN/2XN/2
NXN nRX2N(非对称
____I 类型) _视频编码设备100的输出单元130可输出关于具有树结构的编码单元的编码信息,视频解码设备200的图像数据和编码信息提取器220可从接收的比特流提取关于具有树结构的编码单元的编码信息。分割信息指示当前编码单元是否被分割为较下层深度的编码单元。如果当前深度d的分割信息为O,则当前编码单元不再被分割到较下层深度的深度是编码深度,因此可针对编码深度定义关于分区类型、预测模式和变换单元的尺寸的信息。如果当前编码单元根据分割信息被进一步分割,则对较下层深度的四个分割的编码单元独立地执行编码。预测模式可以是帧内模式、帧间模式和跳过模式中的一个。可在所有分区类型下定义帧内模式和帧间模式,仅在尺寸为2NX2N的分区类型中定义跳过模式。关于分区类型的信息可指示通过对预测单元的高度或宽度进行对称分割而获得的尺寸为2NX2N、2NXN、NX2N和NXN的对称分区类型,以及通过对预测单元的高度或宽度进行非对称分割而获得的尺寸为2NXnU、2NXnD、nLX2N和nRX2N的非对称分区类型。可通过按照I : 3和3 I对预测单元的高度进行分割来分别获得尺寸为2NXnU和2NXnD的非对称分区类型,可通过按照I : 3和3 : I对预测单元的宽度进行分割来分别获得尺寸为nLX2N和nRX2N的非对称分区类型。
变换单元的尺寸可被设置为帧内模式下的两种类型和帧间模式下的两种类型。换句话说,如果变换单元的分割信息是0,则变换单元的尺寸可以是2NX 2N,这是当前编码单元的尺寸。如果变换单元的分割信息是1,则可通过对当前编码单元进行分割来获得变换单元。此外,如果尺寸为2NX2N的当前编码单元的分区类型是对称分区类型,则变换单元的尺寸可以是NXN,如果当前编码单元的分区类型是非对称分区类型,则变换单元的尺寸可以是 N/2XN/2。关于具有树结构的编码单元的编码信息可包括与编码深度相应的编码单元、预测单元和最小单元中的至少一个。与编码深度相应的编码单元可包括包括相同编码信息的预测单元和最小单元中的至少一个。因此,通过比较邻近数据单元的编码信息来确定邻近数据单元是否包括在与编码深度相应的相同编码单元中。此外,通过使用数据单元的编码信息来确定与编码深度相应的相应编码单元,从而可确定最大编码单元中的编码深度的分布。因此,如果基于邻近数据单元的编码信息来预测当前编码单元,则可直接参考和使用与当前编码单元邻近的较深层编码单元中的数据单元的编码信息。可选地,如果基于邻近数据单元的编码信息来预测当前编码单元,则使用数据单元的编码信息来搜索与当前编码单元邻近的数据单元,可参考搜索到的邻近编码单元来预测当前编码单元。图13是用于根据表I的编码模式信息描述编码单元、预测单元或分区、变换单元之间的关系的示图。最大编码单元1300包括多个编码深度的编码单元1302、1304、1306、1312、1314、1316和1318。这里,由于编码单元1318是编码深度的编码单元,因此分割信息可被设置为O。关于尺寸为2NX2N的编码单元1318的分区类型的信息可被设置为以下分区类型之一尺寸为2NX2N的分区类型1322、尺寸为2NXN的分区类型1324、尺寸为NX2N的分区类型1326、尺寸为NXN的分区类型1328、尺寸为2NXnU的分区类型1332、尺寸为2NXnD的分区类型1334、尺寸为nLX2N的分区类型1336和尺寸为nRX2N的分区类型1338。当分区类型被设置为对称(即,分区类型1322、1324、1326或1328)时,如果变换单元的分割信息(TU尺寸标记)为0,则设置尺寸为2NX 2N的变换单元1342,如果TU尺寸标记为I,则设置尺寸为NXN的变换单元1344。
当分区类型被设置为非对称(S卩,分区类型1332、1334、1336或1338)时,如果TU尺寸标记为0,则设置尺寸为2NX 2N的变换单元1352,如果TU尺寸标记为I,则设置尺寸为N/2XN/2的变换单元1354。将详细描述由图4中所示的视频编码设备100的运动估计器420和运动补偿器425以及由图5中所示的视频解码设备200的帧内预测器550执行的运动估计和补偿。在下面的描述中,前述预测单元被称为块。图14是示出根据示例性实施例的运动估计装置1400的构造的框图。图14的运动估计装置1400对应于图4的运动估计器420。
参照图14,运动估计装置1400包括第一子像素单位选择单元1410、插值单元1420和运动矢量获取单元1430。第一子像素单位选择单元1410从至少两个像素精度确定将被应用到当前块的运动估计的像素精度。例如,第一子像素单位选择单元1410确定1/4子像素单位和1/8子像素单位的哪个像素精度用于执行运动估计。第一子像素单位选择单元1410不是必要的构造元素,因此在用于运动估计的像素精度被预先设置在编码器和解码器中的情况下可省略第一子像素单位选择单元1410。如果第一子像素单位选择单元1410在多个精度之中选择第一子像素单位,则关于选择的第一子像素单位的信息被编码然后被发送到解码器。如果第一子像素单位等于或小于整数像素,则插值单元1420对参考画面的像素值进行插值,并根据第一子像素单位产生被插值的参考画面。图15示出由图14的插值单元1420执行的插值方法。参照图15,插值单元1420通过对参考画面的整数像素Al A6、BI B6、Cl C6、D1 D6、E1 E6、F1 F6插值来产生第一子像素单位的子像素。例如,如果第一子像素单位是1/2子像素,则插值单元1420通过使用六抽头有限冲击响应(FIR)滤波器执行插值来产生1/2子像素单位的子像素a至I。这里,六抽头FIR滤波器的系数可以是[(I,_5,20,20,-5,I)/32]。通过使用整数像素Al、A2、A3、A4、A5和A6执行插值来产生整数像素A3和A4之间的1/2子像素,通过使用整数像素B1、B2、B3、B4、B5和B6执行插值来产生整数像素B3和B4之间的1/2子像素。在使用具有所述系数的六抽头FIR滤波器的情况下,1/2子像素的插值的像素值a和b可被计算为a = (A1-5A2+20A3+20A4-5A5+A6) /32, b =(B1-5B2+20B3+20B4-5B5+B6) /32 类似地,插值单元1420产生1/2子像素单位的子像素C、d、e和f。类似地,通过使用六抽头FIR滤波器执行插值产生垂直方向上的子像素。插值单元1420通过使用整数像素A1、B1、C1、D1、E1和Fl产生1/2子像素g,通过使用A2、B2、C2、D2、E2和F2产生1/2子像素h。通过使用1/2子像素单位的其他子像素对1/2子像素单位的子像素m进行插值。1/2子像素单位的子像素m的像素值被计算为m = (a-5b+20c+20d-5e+f)/32。当产生1/2子像素单位的子像素时,可通过使用整数像素单位的像素和1/2子像素单位的子像素执行线性插值,来产生1/4子像素单位的子像素。例如,通过使用整数像素单位的像素C3和1/2子像素单位的子像素c执行线性插值,来产生1/4子像素单位的子像素η。例如,1/4子像素单位的子像素η的像素值可被计算为n= (C3+c)/2。此外,通过使用1/2子像素单位的子像素c和m执行线性插值,来产生1/4子像素单位的另一子像素ο的像素值。例如,1/4子像素单位的子像素ο的像素值可被计算为ο = (c+m)/2。通过使用对角线方向上的1/2子像素执行线性插值,来产生对角线方向上的1/4子像素单位的子像素P。例如,1/4子像素单位的子像素P的像素值可被计算为P = (d+j)/2。然而,对等于或小于整数像素的子像素进行插值的方法不限于上述示例,因此可以以各种方式来对等于或小于整数像素的子像素进行插值。如在图15中所示,插值单元1420根据第一子像素单位对参考画面执行插值。SP,在第一像素单位为1/2子像素单位的情况下,插值单元1420根据1/2像素单位对参考画面进行插值,在第一子像素单位为1/4子像素单位的情况下,插值单元1420根据1/4子像素单位对参考画面进行插值。返回参考图14,运动矢量获取单元1430通过将当前块与根据1/2子像素单位进行插值的参考画面进行比较,来获得当前块的运动矢量。图16是描述由图14的运动矢量获取单元1430执行的运动估计的示图。运动矢量获取单元1430在根据第一子像素单位进行插值的参考画面1620中搜索具有与当前块1615的最大相似性的相应区域1627,并输出位置差作为相应区域1627与当前块1615之间的运 动矢量MV。运动矢量获取单元1430通过计算当前块1615与参考画面1620中的相应区域1627之间的差值(例如,通过计算诸如绝对差和(SAD)的误差值)来确定具有最大相似性的相应区域1627。由运动矢量获取单元1430获取的运动矢量MV具有前述第一子像素单位的精度。例如,在第一子像素单位为1/4子像素单位的情况下,运动矢量MV也具有1/4子像素单位的精度。图17是示出根据示例性实施例的运动补偿装置1700的构造的框图。图17的运动补偿装置1700对应于图4的运动补偿器425。当通过使用运动估计装置1400获取第一子像素单位的运动矢量时,为了允许进一步的精确运动估计,运动补偿装置1700通过使用小于第一子像素单位的第二子像素单位校正第一子像素单位的运动矢量,来执行运动补偿。参照图17,运动补偿装置1700包括插值单元1710、第二子像素选择单元1720和第二子像素确定单元1730。插值单元1710根据小于第一子像素单位的第二子像素单位对参考画面进行插值,其中,参考画面由第一子像素单位的运动矢量表示。图18是描述由图17的插值单元1710执行的插值方法的参考画面。参照图18,当假设图18的子像素1815是由第一子像素单位的运动矢量(通过使用运动估计装置1400获得)表示的参考画面的第一子像素时,可在与第一子像素单位的其他子像素不重叠的区域1810中校正第一子像素单位的运动矢量。这是因为,当第一子像素单位具有X(X为实数)值的精度时,误差容限具有x/2的值。可在与第一子像素单位的其他子像素不重叠的区域1810中校正第一子像素单位的运动矢量。因此,根据当前示例性实施例的运动补偿装置1700通过针对由通过根据第一子像素单位执行运动估计获得的第一子像素单位的运动矢量表示的第一子像素单位的子像素在区域1810中校正运动矢量,来执行运动估计。插值单元1710根据小于第一子像素单位的第二子像素单位对参考画面进行插值,为此,可根据奇数划分第一子像素单位来获得第二子像素单位。通常,根据具有I/(2~p)(其中,P是等于或大于零的整数)的值的第一子像素单位执行运动估计,因此,当第二子像素单位是l/(2~q)子像素单位时(其中,q是大于P的整数)时,运动估计与获取运动矢量的处理类似。因此,当第一子像素单位为I/(2~p)(其中,P是等于或大于零的整数)时,第二子像素单位可以是l/[(2a+l)X(2~p)]子像素单位(其中,a是等于或大于I的整数)。例如,如果第一子像素单位是1/4子像素单位,则第二子像素单位可以是通过将1/4子像素单位之间的间隙三等分而获得的1/12子像素单位。在图18中,当第一子像素单位是1/4子像素单位时,并且第二子像素单位是1/12子像素单位时,插值单元1710通过使用各种滤波器来产生子像素的值,其中,所述子像素位于与1/4子像素单位之间的间隙的三等分处对应的位置。例如,可考虑到1/4子像素1815和1816的距离通过使用加权平均值来计算位于与1/4子像素1815和1816之间的间隙的三等分处对应的位置的1/12子像素单位的子像素1817和1818。S卩,在1/4子像素1815的值为f,1/4子像素1816的值为g,1/12子像素1817的值为h,1/12子像素1818的值为i的情况下,子像素1817和1818可被计算为h= [f+2g]/3,i = [2f+g]/3。然而,本领域的普通技术人员理解的是,用于产生在子像素的位置的像素值的插值处理不限于前述示例,因此可以以各种方式来产生像素值。
返回参照图17,当插值单元1710根据第二子像素单位对参考画面进行插值时,第二子像素选择单元1720从与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的子像素邻近的第二子像素单位的子像素之中选择一个子像素。图19是用于描述由图17的第二子像素选择单元1720执行的第二子像素选择的示图。图20是示出根据图19的第二子像素选择的运动矢量的校正方向的参考示图。参照图19和图20,第二子像素选择单元1720选择并输出与位于由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的子像素1905的在预定区域1900中的邻近第二子像素1901至1909之一,其中,预定区域1900不与其他第一子像素单位重叠。由第二子像素选择单元1720选择的邻近第二子像素1901至1909用于校正第一子像素单位的运动矢量。即,如在图20中所示,根据从第二子像素2001至2009之中选择的一个第二子像素,通过与所述运动矢量和从第二子像素2001至2009之中选择的第二子像素之间的差相应的矢量,来校正第一子像素单位的运动矢量。图21示出根据示例性实施例的通过运动估计和补偿将被校正的参考画面的相应区域2100。参照图21,针对通过根据第一子像素的单位执行运动估计获得的参考画面的相应区域2100,可通过根据上下左右方向上的第二子像素的单位校正相应区域2100,来获得区域2110,然后可从区域2110获得运动补偿值。返回参考图17,第二子像素确定单元1730选择相应区域,其中,该相应区域与当前块具有较小的误差并且来自第一相应区域和第二相应区域之中,第一相应区域属于由运动矢量指示的参考画面并且是针对第一子像素单位的子像素获得的,第二相应区域属于当前块并且是针对第二子像素单位的子像素获得的。关于选择的相应区域的信息被墒编码单元编码,为此,可通过使用第二子像素的位置信息指示该信息。在图20的示例性实施例中,分别分配O至8的值,以指示与第一子像素邻近的第二子像素单位的8个第二像素2001至2009,可通过使用分配的值来指示最终选择的第二子像素单位的位置值。这里,当不根据第二子像素单位执行校正时,即,当由第一子像素单位的运动矢量指示的子像素2005被选择作为第二子像素时,值O可被分配作为第二子像素的位置信息。
图22示出根据示例性实施例的运动矢量信息2200。参照图22,编码的比特流的运动矢量信息2200包括由运动估计装置1400获取的第一子像素单位2210中的运动矢量信息和由运动补偿装置1700确定的第二子像素位置信息2220。如上所述,当第一子像素单位为1/4子像素单位,并且第二子像素单位是通过将1/4子像素单位之间的间隙三等分而获取的1/12子像素单位时,可通过分配的O至8的值来表示9个第二子像素2001至2009。图23是描述根据示例性实施例的运动矢量估计处理的示图。通常,块的运动矢量高度依赖于邻近块的运动矢量。因此,通过从邻近块估计当前块然后仅对它们的差值进行编码,可减小将被编码的比特的量。在当前示例性实施例中,从邻近块的估计结果可用于对第一子像素单位2210中的运动矢量信息和第二子像素位置信息2220进行编码。更详细地,参照图23,为了对第一子像素单位2210中的运动矢量信息进行编码,可通过使用当前块X的左侧块A的运动矢量MVA的中心值、上侧块B的运动矢量MVB的中心值以及右上侧块C的运动矢量MVC的中心值,来产生估计运动矢量,然后仅对估计运动矢量与第一子像素单位的实际运动矢量之间的差值进行编码。由于第二子像素位置信息2220不高度依赖于邻近块,因此可独立于第一子像素单位的运动矢量的估计来执行第二子像素位置信息2220的估计。如在上面的示例性实施例所述的,在第二子像素单位是1/2子像素单位并且O至8的值被分别分配给9个可选择的第二子像素单位的情况下,可通过使用在当前块的邻近块的运动估计和补偿中使用的第二子像素单位的子像素的位置信息,来估计当前块的第二子像素单位的子像素的位置信息,仅对估计的第二子像素单位的子像素的位置信息与选择的当前块的第二子像素单位的子像素的位置信息之间的差值进行编码。例如,在3、4和5的值被分配给在作为当前块的·邻近块的上侧块、左侧块和右上侧块的运动估计和补偿的多条第二子像素的位置信息的情况下,可将它们的平均值(即,4)估计为当前块的第二子像素单位的子像素的位置信息的估计值,并且可仅对估计值与第二子像素单位的实际子像素的位置信息之间的差值进行编码。然而,如上所述,第二子像素单位的位置信息不高度依赖于邻近块,从而可省略用于对第二子像素单位的位置信息进行编码的估计处理。图24是根据示例性实施例的对视频进行编码的方法的流程图。参照图24,在操作2410中,可通过第一子像素的单位对当前块执行运动估计,可针对当前块获取第一子像素单位的运动矢量。如上所述,可根据由第一子像素单位选择单元1410选择的精度来确定第一子像素单位,或者可根据在编码器和解码器之间预先设置的精度来确定第一子像素单位。在操作2420,根据小于第一子像素单位的第二子像素单位来对第一子像素单位的运动矢量所指示的参考画面进行插值。如上所述,可通过根据奇数来对第一子像素单位进行划分而获得第二子像素单位。例如,当第一子像素单位为I/ (2~p)(其中,P为等于或大于O的整数)时,第二子像素单位可以是l/[(2a+l)X(2~p)]子像素单位(其中,a是等于或大于I的整数)。在操作2430,通过使用根据第二子像素单位插值的参考画面,可从与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的子像素邻近的第二子像素单位的子像素,来选择子像素。
在操作2440,从第一相应区域和第二相应区域中选择与当前块具有较小的误差的相应区域,其中,第一相应区域属于由运动矢量指示的参考画面并且是针对第一子像素单位的子像素获得的,第二相应区域属于当前块并且是针对选择的第二子像素单位的子像素获得的。在操作2450,通过对关于选择的第二子像素单位的子像素的信息和作为当前块的运动矢量信息的关于第一子像素单位的运动矢量的信息进行编码,来对选择的相应区域的信息进行编码。如上所述,对于关于第一子像素单位的运动矢量的信息和第二子像素的位置信息的编码,仅对相 比于来自邻近块的估计值的差值进行编码。图25是示出根据示例性实施例的运动补偿装置2500的构造的框图。图25的运动补偿装置2500对应于图5的运动补偿器560。参照图25,运动补偿装置2500包括运动矢量确定单元2510、插值单元2520、运动补偿执行单元2530。
图5的熵解码器从比特流解码出运动矢量、信息和位置信息,并输出它们,其中,该运动矢量是针对当前块根据第一子像素单位的,所述信息指示是否通过使用相应区域对当前块执行了运动补偿,所述相应区域是针对与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的子像素邻近的小于第一子像素单位的第二子像素单位的第二子像素获得的,所述位置信息是当通过使用针对第二子像素单位的子像素获得的所述相应区域对当前块执行运动补偿时第二子像素单位的子像素的位置信息。运动矢量确定单元2510通过使用解码的第一子像素单位的运动矢量和解码的第二子像素单位的子像素的位置信息,来确定将被解码的当前块的运动矢量。即,运动矢量确定单元2510以下面的方式通过对第一子像素单位的运动矢量进行校正来确定当前块的运动矢量运动矢量确定单元2510通过使用第二子像素单位的子像素的位置信息,确定与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的子像素邻近的第二子像素单位的子像素。如上所述,在通过使用相比于来自邻近块的估计值的差值对关于第一子像素单位的运动矢量的信息进行编码的情况下,运动矢量确定单元2510通过从解码的邻近块的运动矢量产生当前块的估计运动矢量然后将包括在比特流中的差值与估计运动矢量相加,来产生第一子像素单位的运动矢量。针对第二子像素的位置信息,在仅从邻近块估计的估计值和差值被编码的情况下,运动矢量确定单元2510可通过从解码的邻近块估计第二子像素的位置信息的值然后将包括在比特流中的差值与估计值相加,来恢复第二子像素的位置信息。以这样的方式,运动矢量确定单元2510通过使用恢复的第一子像素单位的运动矢量和恢复的第二子像素的位置信息,来确定当前块的运动矢量。插值单元2520根据由运动矢量确定单元2510确定的当前块的运动矢量的精度,来对参考画面进行插值。例如,在当前块的运动矢量是第一子像素单位的运动矢量并且当前块的运动矢量不使用第二子像素单位的子像素的情况下,插值单元2520根据第一子像素单位对当前块进行插值。在当前块的运动矢量根据第二子像素单位被校正的情况下,插值单元2520根据第二子像素单位对参考画面进行插值。运动补偿执行单元2530通过执行用于获得由根据当前块的运动矢量的精度进行插值的参考画面中的运动矢量指示的相应区域的运动补偿,输出当前块的估计块。图26是示出根据示例性实施例的对视频进行解码的方法的流程图。参照图26,在操作2610,从比特流解码并获得针对当前块的第一子像素单位的运
动矢量。在操作2620,从比特流获得信息,其中,所述信息指示是否通过使用相应区域对当前块执行了运动补偿,所述相应区域是针对与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的子像素邻近的小于第一子像素单位的第二子像素单位的子像素获得的。如上所述,在第二子像素单位的子像素不用于运动矢量的校正的情况下,O的值被分配给第二子像素的位置信息,从而可表示是否通过使用第二子像素单位的子像素执行了运动补偿。在操作2630,确定是否使用针对第二子像素单位的子像素获得的相应区域的信息 来对当前块执行运动补偿。作为在操作2630中确定的结果,如果不根据第二子像素单位执行运动补偿,则在操作2640,可通过使用根据第一子像素单位进行插值的参考画面执行运动补偿,来产生针对当前块的估计块。作为在操作2630的确定的结果,如果根据第二子像素单位执行运动补偿,则在操作2650,从比特流提取第二子像素单位的子像素的位置信息,在操作2660,通过使用第一子像素单位的运动矢量和第二子像素单位的子像素的位置信息,来确定当前块的最终运动矢量,通过使用确定的最终运动矢量,从根据第二子像素单位进行插值的参考画面产生针对当前块的估计块。根据一个或多个示例性实施例,可执行更精确的运动估计,而不显著增加用于运动估计的计算负载。示例性实施例可被实施为计算机可读记录介质上的计算机可读代码。所述计算机可读记录介质是任何可存储其后可以被计算机系统读取的数据的数据存储装置。所述计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置。所述计算机可读记录介质也可以被分布在联网的计算机系统上,从而所述计算机可读代码以分布式方式被存储和执行。此外,示例性实施例可被写为计算机程序,所述计算机程序通过计算可读传输介质(例如,载波)传输并在执行所述程序的通用或专用数字计算机中接收和实现。此外,上述编码和解码设备的一个或多个单元可包括执行存储在计算机可读介质中的计算机程序的处理器或微处理器。尽管已经在上面具体示出和描述了示例性实施例,但是本领域的普通技术人员将理解,在不脱离权利要求所限定的本发明构思的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
权利要求
1.一种对视频解码的方法,该方法包括 从比特流解码并获得针对当前块的第一子像素单位的运动矢量; 从比特流获得信息,其中,所述信息指示是否通过使用相应区域对当前块执行了运动补偿,其中,针对与由获得的第一子像素单位的运动矢量指示的参考画面的第一子像素单位的第一子像素邻近的小于第一子像素单位的第二子像素单位的第二子像素获得所述相应区域; 如果通过使用针对第二子像素单位的第二子像素获得的所述相应区域的信息对当前块执行了运动补偿,则从比特流提取第二子像素单位的第二子像素的位置信息; 通过使用第一子像素单位的运动矢量和提取的第二子像素单位的第二子像素的位置信息,对当前块执行运动补偿。
2.如权利要求I所述的方法,其中,获得运动矢量的步骤包括 通过使用当前块的邻近块的运动矢量获得估计运动矢量; 通过使用获得的当前块的估计运动矢量以及包括在比特流中的估计运动矢量与当前块的运动矢量之间的差值,来获得第一子像素单位的运动矢量。
3.如权利要求I所述的方法,其中,当第一子像素单位为l/(2~p)时,第二子像素单位为I/ [ (2a+l) X (2~p)]子像素单位,其中,P是等于或大于零的整数,a是等于或大于O的整数。
4.如权利要求I所述的方法,其中,第二子像素单位为1/12子像素单位。
5.如权利要求I所述的方法,其中,提取位置信息的步骤包括 通过使用用于估计和补偿当前块的邻近块的运动的第二子像素单位的子像素的位置信息,来估计当前块的第二子像素单位的第二子像素的位置信息; 通过使用估计的第二子像素单位的第二子像素的位置信息、以及估计的第二子像素单位的第二子像素的位置信息与从比特流提取的所述提取的第二子像素单位的第二子像素的位置信息之间的差值,来获得当前块的第二子像素单位的第二子像素的位置信息。
6.如权利要求I所述的方法,其中,执行运动补偿的步骤包括 根据第二子像素单位对由第一子像素单位的运动矢量指示的参考画面进行插值; 通过使用提取的第二子像素单位的第二子像素的位置信息,确定与由第一子像素单位的运动矢量指示的参考画面的第一子像素单位的第一子像素邻近的第二子像素单位的第二子像素; 针对确定的第二子像素单位的第二子像素获得与当前块相应的区域。
7.一种视频解码设备,包括 熵解码器,从比特流解码并获得针对当前块的第一子像素单位的运动矢量,获得信息,其中,所述信息指示是否通过使用相应区域对当前块执行了运动补偿,其中,针对与由获得的第一子像素单位的运动矢量指示的参考画面的第一子像素单位的第一子像素邻近的小于第一子像素单位的第二子像素单位的第二子像素获得所述相应区域,其中,如果通过使用针对第二子像素单位的第二子像素获得的所述相应区域的信息对当前块执行了运动补偿,则熵解码器从比特流提取第二子像素单位的第二子像素的位置信息; 运动补偿器,通过使用第一子像素单位的运动矢量和提取的第二子像素单位的第二子像素的位置信息,对当前块执行运动补偿。
8.—种对视频编码的方法,所述方法包括 根据第一子像素单位对当前块执行运动估计,并针对当前块获得第一子像素单位的运动矢量; 根据小于第一子像素单位的第二子像素单位对由获得的运动矢量指示的参考画面进行插值; 从与由获得的运动矢量指示的参考画面的第一子像素单位的第一子像素邻近的第二子像素单位的子像素之中,选择第二子像素,其中,使用插值的参考画面来执行该选择;从第一相应区域和第二相应区域之中选择与当前块具有较小误差的相应区域,其中,第一相应区域属于由获得的运动矢量指示的参考画面并且是针对第一子像素单位的第一子像素获得的,第二相应区域属于当前块并且是针对选择的第二子像素单位的第二子像素获得的; 对选择的相应区域的信息进行编码。
9.如权利要求8所述的方法,其中,获得运动矢量的步骤包括 从至少两个精度之中选择精度作为第一子像素单位; 根据选择的第一子像素单位对参考画面进行插值; 在插值的参考画面中搜索当前块的最相似的相应区域,并获得指示搜索的相应区域的位置的运动矢量。
10.如权利要求9所述的方法,其中,对所述信息进行编码的步骤包括对运动矢量的精度信息进行编码,该精度信息指示从至少两个精度之中被选择作为第一子像素单位的精度。
11.如权利要求9所述的方法,其中,所述至少两个精度包括1/4子像素单位和1/8子像素单位。
12.如权利要求8所述的方法,其中,第一子像素单位为l/(2~p),其中,P是等于或大于零的整数,第二子像素单位为I/ [ (2a+l) X (2~p)]子像素单位,其中,a是等于或大于O的整数。
13.如权利要求12所述的方法,其中,第二子像素单位为1/12子像素单位。
14.如权利要求I所述的方法,其中,对所述信息进行编码的步骤包括对第一子像素单位的运动矢量的信息以及指示第二相应区域是否被选择的信息进行编码。
15.一种视频编码设备,包括 运动估计器,根据第一子像素单位对当前块执行运动估计,并针对当前块获得第一子像素单位的运动矢量; 运动补偿器,根据小于第一子像素单位的第二子像素单位对由获得的运动矢量指示的参考画面进行插值,通过使用插值的参考画面从与由获得的运动矢量指示的参考画面的第一子像素单位的第一子像素邻近的第二子像素单位的子像素之中选择第二子像素,并且从第一相应区域和第二相应区域之中选择与当前块具有较小误差的相应区域,其中,第一相应区域属于由获得的运动矢量指示的参考画面并且是针对第一子像素单位的第一子像素获得的,第二相应区域属于当前块并且是针对选择的第二子像素单位的第二子像素获得的; 编码器,对选择的相应区域的信息进行编码。
全文摘要
提供用于对视频进行编码和解码的方法和设备。该编码方法包括根据第一子像素单位对当前块执行运动估计,并针对当前块获得第一子像素单位的运动矢量;根据小于第一子像素单位的第二子像素单位对由运动矢量指示的参考画面进行插值;使用插值的参考画面,选择与参考画面的第一子像素单位的第一子像素邻近的第二子像素单位的第二子像素;从第一相应区域和第二相应区域之中选择与当前块具有较小误差的相应区域,其中,第一相应区域属于参考画面并且是针对第一子像素获得的,第二相应区域属于当前块并且是针对选择的第二子像素获得的;对选择的相应区域的信息进行编码。
文档编号H04N7/26GK102934443SQ201180027428
公开日2013年2月13日 申请日期2011年4月5日 优先权日2010年4月5日
发明者艾林娜·阿尔辛娜, 亚历山大·阿尔辛, 千岷洙, 韩宇镇, 李泰美 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1