用于基于变换和反变换执行内插的方法和设备转让专利

申请号 : CN201610575759.1

文献号 : CN106231310B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 艾林娜·阿尔辛娜亚历山大·阿尔辛尼古拉·斯利亚科夫崔秉斗洪允美韩宇镇李泰美

申请人 : 三星电子株式会社

摘要 :

提供了一种用于基于变换和反变换执行内插的方法和设备。所述方法包括:根据内插位置从多个不同的滤波器中选择用于在整数像素单元的像素值之间进行内插的第一滤波器;以及通过使用选择的第一滤波器,在整数像素单元的像素值之间进行内插来产生至少一个分数像素单元的至少一个像素值。

权利要求 :

1.一种运动补偿的设备,所述设备包括:

滤波器选择器,被配置为根据第一内插位置选择用于进行内插的第一内插滤波器的滤波器系数,并根据第二内插位置选择用于进行内插的第二内插滤波器的滤波器系数,其中,第一内插位置包括2/4像素位置、1/4像素位置以及3/4像素位置中的至少一个,第二内插位置包括1/8像素位置、3/8像素位置和4/8像素位置中的至少一个;

内插器,被配置为通过使用选择的第一内插滤波器的滤波器系数将第一内插滤波器应用于第一参考画面的整数像素单元的像素值的第一集合来产生1/4像素单元的至少一个像素值,并通过使用选择的第二内插滤波器的滤波器系数将第二内插滤波器应用于第二参考画面的整数像素单元的像素值的第二集合来产生1/8像素单元的至少一个像素值,其中:当第一内插位置是2/4像素位置时,第一内插滤波器是包括八个滤波器系数:{-1,4,-

11,40,40,-11,4,-1}的8抽头内插滤波器,

当第一内插位置是1/4像素位置或3/4像素位置时,所述至少一个像素值是通过在不使用2/4像素位置的像素值的情况下将第一内插滤波器应用于整数像素单元的像素值的所述第一集合而产生的,当第二内插位置是4/8像素位置时,第二内插滤波器是包括四个滤波器系数:{-4,36,

36,-4}的4抽头内插滤波器。

说明书 :

用于基于变换和反变换执行内插的方法和设备

[0001] 本申请是向中国知识产权局提交的申请日为2011年4月5日的标题为“用于基于变换和反变换执行内插的方法和设备”的第201180027840.1号申请的分案申请。

技术领域

[0002] 与示例性实施例一致的设备和方法涉及对图像进行内插,更具体地讲,涉及在整数像素单元的像素值之间进行内插。

背景技术

[0003] 在现有技术的图像编码和解码方法中,一幅画面被划分为多个宏块以对图像进行编码。然后,通过对宏块执行帧间预测或帧内预测来对所述多个宏块中的每个宏块执行预测编码。
[0004] 帧间预测是一种通过去除画面之间的时间冗余性来压缩图像的方法。帧间预测的代表性示例是运动估计编码。在运动估计编码中,通过使用至少一个参考画面来预测当前画面的每个块。通过使用预定的估计函数来在预定的搜索范围内搜索与当前块最相似的参考块。
[0005] 基于参考块预测当前块,并通过从当前块减去作为预测结果的预测的块来获得残差块,然后对所述残差块进行编码。在这种情况下,为了精确地预测当前块,通过在参考画面的搜索范围中执行内插来产生比整数像素单元更小的子像素,并基于子像素来执行帧间预测。

发明内容

[0006] 技术方案
[0007] 一个或多个示例性实施例的多个方面提供了一种用于通过对整数像素单元的像素值进行内插来产生分数像素单元的像素值的方法和设备。
[0008] 一个或多个示例性实施例的多个方面还提供了一种其上记录有用于执行所述方法的计算机程序的计算机可读记录介质。
[0009] 有益效果
[0010] 根据本申请,可更准确地产生分数像素单元。

附图说明

[0011] 通过参照附图详细描述示例性实施例,上述和其他特征将变得更加清楚,其中:
[0012] 图1是根据示例性实施例的用于对图像进行编码的设备的框图;
[0013] 图2是根据示例性实施例的用于对图像进行解码的设备的框图;
[0014] 图3示出根据示例性实施例的分层编码单元;
[0015] 图4是根据示例性实施例的基于编码单元的图像编码器的框图;
[0016] 图5是根据示例性实施例的基于编码单元的图像解码器的框图;
[0017] 图6示出根据示例性实施例的最大编码单元、子编码单元和预测单元;
[0018] 图7示出根据示例性实施例的编码单元和变换单元;
[0019] 图8a至图8d示出根据示例性实施例的编码单元、预测单元和变换单元的划分形状;
[0020] 图9是根据示例性实施例的图像内插设备的框图;
[0021] 图10是示出根据示例性实施例的由图9的图像内插设备执行的二维(2D)内插方法的示图;
[0022] 图11是示出根据示例性实施例的内插区域的示图;
[0023] 图12是示出根据示例性实施例的一维(1D)内插方法的示图;
[0024] 图13是专门示出根据示例性实施例的由图9的图像内插设备执行的1D内插方法的示图;
[0025] 图14是根据示例性实施例的图像内插设备的框图;
[0026] 图15示出根据示例性实施例的2D内插滤波器;
[0027] 图16a至图16f示出根据示例性实施例的1D内插滤波器;
[0028] 图17a至图17y示出根据示例性实施例的优化的1D内插滤波器;
[0029] 图18a和图18b示出根据示例性实施例的通过使用1D内插滤波器沿各方向对像素值进行内插的方法;
[0030] 图19a示出根据示例性实施例的2D内插方法;
[0031] 图19b示出根据另一示例性实施例的使用1D内插滤波器的2D内插方法;
[0032] 图19c示出根据另一示例性实施例的使用1D内插滤波器的2D内插方法;
[0033] 图20是示出根据示例性实施例的图像内插方法的流程图;
[0034] 图21是示出根据另一示例性实施例的图像内插方法的流程图;
[0035] 图22是示出根据另一示例性实施例的图像内插方法的流程图;
[0036] 图23a至图23e示出根据示例性实施例的执行与1D内插滤波器相关的缩放和四舍五入的方法。
[0037] 最优实施方式
[0038] 根据示例性实施例的一方面,提供了一种对图像进行内插的方法,所述方法包括:根据内插位置从多个不同的滤波器中选择用于在整数像素单元的像素值之间进行内插的第一滤波器;以及通过使用选择的用于在整数像素单元的像素值之间进行内插的第一滤波器,在整数像素单元的像素值之间进行内插来产生至少一个分数像素单元的至少一个像素值。
[0039] 所述方法还可包括:根据内插位置从多个不同的滤波器中选择用于在产生的所述至少一个分数像素单元的至少一个像素值之间进行内插的第二滤波器;以及通过使用选择的用于在产生的所述至少一个分数像素单元的至少一个像素值之间进行内插的第二滤波器,在产生的所述至少一个分数像素单元的至少一个像素值之间进行内插。
[0040] 用于在整数像素单元的像素值之间进行内插的第一滤波器可以是下面的空间域滤波器,其中,所述空间域滤波器通过使用具有不同频率的多个基函数来对整数像素单元的像素值进行变换,并通过使用相位被移动的所述多个基函数,对通过对整数像素单元的像素值进行变换而获得的多个系数进行反变换。
[0041] 用于在产生的所述至少一个分数像素单元的至少一个像素值之间进行内插的第二滤波器可以是下面空间域滤波器,其中,所述空间域滤波器通过使用具有不同频率的多个基函数来对产生的所述至少一个分数像素单元的至少一个像素值进行变换,并通过使用相位被移动的所述多个基函数,对通过对产生的所述至少一个分数像素单元的至少一个像素值进行变换而获得的多个系数进行反变换。
[0042] 根据另一示例性实施例的一方面,提供了一种用于对图像进行内插的设备,所述设备包括:滤波器选择器,根据内插位置从多个不同的滤波器中选择用于在整数像素单元的像素值之间进行内插的第一滤波器;以及内插器,通过使用选择的用于在整数像素单元的像素值之间进行内插的第一滤波器,在整数像素单元的像素值之间进行内插来产生至少一个分数像素单元的至少一个像素值。
[0043] 所述滤波器选择器可根据内插位置从多个不同的滤波器中选择用于在产生的所述至少一个分数像素单元的至少一个像素值之间进行内插的第二滤波器,所述内插器可通过使用选择的用于在产生的所述至少一个分数像素单元的至少一个像素值之间进行内插的第二滤波器,在产生的所述至少一个分数像素单元的至少一个像素值之间进行内插。
[0044] 根据另一示例性实施例的一方面,提供了一种其上包含有用于执行上述方法的计算机程序的计算机可读记录介质。
[0045] 根据另一示例性实施例的一方面,提供了一种用于对图像进行内插的方法,所述方法包括:通过使用具有不同频率的多个基函数,在空间域中对像素值进行变换;移动所述多个基函数的相位;通过使用相位被移动的所述多个基函数,对通过对所述像素值进行变换而获得的多个系数进行反变换。

具体实施方式

[0046] 在下文中,将参照附图更充分地描述一个或多个示例性实施例。当诸如“…中的至少一个”的表述在一列元件之后时,所述表述修饰整列元件而不是修饰列表的各个元件。在本说明书中,“图像”可表示视频的静止图像或运动图像(即,视频本身)。
[0047] 图1是根据示例性实施例的用于对图像进行编码的设备100的框图。参照图1,用于对图像进行编码的设备100包括最大编码单元划分器110、编码深度确定器120、图像数据编码器130以及编码信息编码器140。
[0048] 最大编码单元划分器110可基于作为最大尺寸的编码单元的最大编码单元对当前帧或条带进行划分。也就是说,最大编码单元划分器110可将当前帧或条带划分为至少一个最大编码单元。
[0049] 根据示例性实施例,可使用最大编码单元和深度来表示编码单元。如上所述,最大编码单元指示在当前帧的编码单元中具有最大尺寸的编码单元,深度指示分层地减小编码单元的程度。随着深度增大,编码单元可从最大编码单元减小到最小编码单元,其中,最大编码单元的深度被定义为最小深度,最小编码单元的深度被定义为最大深度。由于编码单元的尺寸随着深度增大而从最大编码单元减小,因此第k深度的子编码单元可包括多个第(k+n)深度的子编码单元(其中,k和n是等于或大于1的整数)。
[0050] 根据将被编码的帧的尺寸的增加,按照更大的编码单元对图像进行编码可造成更高的图像压缩率。然而,如果更大的编码单元被固定,则可能不能通过反映连续改变的图像特性来有效地对图像进行编码。
[0051] 例如,当对诸如海洋或天空的平滑区域进行编码时,编码单元越大,压缩率会增加得越多。然而,当对诸如人或建筑物的复杂区域进行编码时,编码单元越小,压缩率会增加得越多。
[0052] 因此,根据示例性实施例,可针对每个帧或条带设置不同的最大图像编码单元和不同的最大深度。由于最大深度表示编码单元可减小的最大次数,因此包括在最大图像编码单元中的每个最小编码单元的尺寸可根据最大深度而被可变地设置。可针对每个帧或条带或者针对每个最大编码单元来不同地确定最大深度。
[0053] 编码深度确定器120确定最大编码单元的划分形状。可基于率失真(RD)代价的计算来确定划分形状。确定的最大编码单元的划分形状被提供给编码信息编码器140,根据最大编码单元的图像数据被提供给图像数据编码器130。
[0054] 可根据不同的深度将最大编码单元划分为具有不同尺寸的子编码单元,可基于具有不同尺寸的处理单元对包括在最大编码单元中的具有不同尺寸的子编码单元进行预测或变换。换句话说,用于对图像进行编码的设备100可基于具有多种尺寸和多种形状的处理单元来执行多个处理操作以进行图像编码。为了对图像数据进行编码,执行诸如预测、变换和熵编码中的至少一种的处理操作,其中,具有相同尺寸或不同尺寸的处理单元可分别用于多个处理操作。
[0055] 例如,用于对图像进行编码的设备100可选择与编码单元不同的处理单元,以预测编码单元。
[0056] 当编码单元的尺寸是2N×2N(其中,N是正整数)时,用于预测的处理单元可以是2N×2N、2N×N、N×2N和N×N。换句话说,可基于具有以下形状的处理单元来执行运动预测:按照所述形状,编码单元的高度和宽度中的至少一个被二等分。在下文中,作为预测的基础的处理单元被定义为“预测单元”。
[0057] 预测模式可以是帧内模式、帧间模式和跳过模式中的至少一个,并且可仅对具有特定尺寸或形状的预测单元执行特定的预测模式。例如,可仅对尺寸为2N×2N和N×N的预测单元(其形状为方形)执行帧内模式。此外,可仅对尺寸为2N×2N的预测单元执行跳过模式。如果在编码单元中存在多个预测单元,则在对每个预测单元执行预测之后,可选择具有最小编码误差的预测模式。
[0058] 可选择地,用于对图像进行编码的设备100可基于具有与编码单元不同尺寸的处理单元对图像数据执行变换。对于编码单元中的变换,可基于尺寸等于或小于编码单元的尺寸的处理单元来执行变换。在下文中,作为变换的基础的处理单元被定义为“变换单元”。所述变换可以是离散余弦变换(DCT)或Karhunen Loeve变换(KLT),或者是任何其他定点空间变换。
[0059] 编码深度确定器120可通过使用基于拉格朗日乘子的RD最优化来确定包括在最大编码单元中的子编码单元。换句话说,编码深度确定器120可确定从最大编码单元划分的多个子编码单元具有哪种形状,其中,所述多个子编码单元根据子编码单元的深度而具有不同尺寸。图像数据编码器130通过基于由编码深度确定器120确定的划分形状对最大编码单元进行编码来输出比特流。
[0060] 编码信息编码器140对关于由编码深度确定器120确定的最大编码单元的编码模式的信息进行编码。换句话说,编码信息编码器140通过对关于最大编码单元的划分形状的信息、关于最大深度的信息以及关于每个深度的子编码单元的编码模式的信息进行编码来输出比特流。关于子编码单元的编码模式的信息可包括关于子编码单元的预测单元的信息、关于用于每个预测单元的预测模式的信息以及关于子编码单元的变换单元的信息。
[0061] 关于最大编码单元的划分形状的信息可以是指示每个编码单元是否被划分的信息,例如,标记信息。例如,当最大编码单元被划分并被编码时,指示最大编码单元是否被划分的信息被编码。此外,当从最大编码单元划分的子编码单元被划分并被编码时,指示子编码单元是否被划分的信息被编码。
[0062] 由于对于每个最大编码单元存在具有不同尺寸的子编码单元,并且必须针对每个子编码单元确定关于编码模式的信息,所以可针对一个最大编码单元确定关于至少一个编码模式的信息。
[0063] 用于对图像进行编码的设备100可根据深度的增加,通过将最大编码单元的高度和宽度两者二等分来产生子编码单元。也就是说,当第k深度的编码单元的尺寸是2N×2N时,第(k+1)深度的编码单元的尺寸是N×N。
[0064] 因此,用于对图像进行编码的设备100可考虑图像特性,基于最大编码单元的尺寸和最大深度,确定每个最大编码单元的最佳划分形状。通过考虑图像特性来可变地调整最大编码单元的尺寸,并通过将最大编码单元划分为不同深度的子编码单元来对图像进行编码,具有各种分辨率的图像可以被更有效地编码。
[0065] 图2是根据示例性实施例的用于对图像进行解码的设备200的框图。参照图2,用于对图像进行解码的设备200包括图像数据获取单元210、编码信息提取器220和图像数据解码器230。
[0066] 图像数据获取单元210通过解析由用于对图像进行解码的设备200接收的比特流获取根据最大编码单元的图像数据,并将图像数据输出到图像数据解码器230。图像数据获取单元210可从当前帧或条带的头提取关于当前帧或条带的最大编码单元的信息。换句话说,图像数据获取单元210可根据最大编码单元划分比特流,从而图像数据解码器230可根据最大编码单元来对图像数据进行解码。
[0067] 编码信息提取器220通过解析由用于对图像进行解码的设备200接收的比特流,从当前帧的头提取关于最大编码单元、最大深度、最大编码单元的划分形状和子编码单元的编码模式的信息。关于划分形状的信息和关于编码模式的信息被提供给图像数据解码器230。
[0068] 关于最大编码单元的划分形状的信息可包括关于根据深度具有不同尺寸的且被包括在最大编码单元中的子编码单元的信息,并且可以是指示每个编码单元是否被划分的信息(例如,标记信息)。关于编码模式的信息可包括关于根据子编码单元的预测单元的信息、关于预测模式的信息以及关于变换单元的信息。
[0069] 图像数据解码器230通过基于由编码信息提取器220提取的信息,对每个最大编码单元的图像数据进行解码来恢复当前帧。
[0070] 图像数据解码器230可基于关于最大编码单元的划分形状的信息对包括在最大编码单元中的子编码单元进行解码。解码步骤可包括帧内预测、帧间预测(包括运动补偿)以及反变换。
[0071] 图像数据解码器230可基于关于预测单元的信息和关于预测模式的信息执行帧内预测或帧间预测,以便预测出预测单元。图像数据解码器230还可基于关于子编码单元的变换单元的信息对每个子编码单元执行反变换。
[0072] 图3示出根据示例性实施例的分层编码单元。参照图3,分层编码单元可包括宽度和高度为64×64、32×32、16×16、8×8和4×4的编码单元。除了这些具有完美方形形状的编码单元以外,还可存在宽度和高度为64×32、32×64、32×16、16×32、16×8、8×16、8×4和4×8的编码单元。
[0073] 参照图3,对于分辨率为1920×1080的图像数据310,最大编码单元的尺寸被设置为64×64,最大深度被设置为2。
[0074] 对于分辨率为1920×1080的图像数据320,最大编码单元的尺寸被设置为64×64,最大深度被设置为3。对于分辨率为352×288的图像数据330,最大编码单元的尺寸被设置为16×16,最大深度被设置为1。
[0075] 当分辨率高或者数据量大时,编码单元的最大尺寸可相对大,以增加压缩率并准确地反映图像特性。因此,对于具有比图像数据330更高分辨率的图像数据310和320,64×64可被选为最大编码单元的尺寸。
[0076] 最大深度指示分层编码单元中层的总数。由于图像数据310的最大深度为2,因此图像数据310的编码单元315根据深度的增加可包括较长轴尺寸为64的最大编码单元以及较长轴尺寸为32和16的子编码单元。
[0077] 另一方面,由于图像数据330的最大深度为1,因此图像数据330的编码单元335根据深度的增加可包括较长轴尺寸为16的最大编码单元以及较长轴尺寸为8和4的编码单元。
[0078] 然而,由于图像数据320的最大深度为3,因此图像数据320的编码单元325根据深度的增加可包括较长轴尺寸为64的最大编码单元以及较长轴尺寸为32、16、8和4的子编码单元。由于随着深度增加基于更小的子编码单元来对图像进行编码,因此当前示例性实施例适合用于对包括更多小场景的图像进行编码。
[0079] 图4是根据示例性实施例的基于编码单元的图像编码器400的框图。帧内预测单元410对当前帧405中的帧内模式的预测单元执行帧内预测,运动估计器420和运动补偿器425通过使用当前帧405以及参考帧495对帧间模式的预测单元执行帧间预测和运动补偿。
[0080] 基于从帧内预测单元410、运动估计器420和运动补偿器425输出的预测单元产生残差值,随后所述残差值经过变换器430和量化器440被输出为量化的变换系数。
[0081] 量化的变换系数经过反量化器460和反变换器470被恢复为残差值,经过去块单元480和环路滤波单元490被后处理并随后作为参考帧495被输出。量化的变换系数经过熵编码器450可被输出为比特流455。
[0082] 为了基于根据示例性实施例的编码方法执行编码,图像编码器400的组件(即,帧内预测单元410、运动估计器420、运动补偿器425、变换器430、量化器440、熵编码器450、反量化器460、反变换器470、去块单元480和环路滤波单元490)可基于最大编码单元、根据深度的子编码单元、预测单元和变换单元执行图像编码处理。
[0083] 图5是示出根据示例性实施例的基于编码单元的图像解码器500的框图。参照图5,比特流505被解析器510解析,从而获得将被解码的编码的图像数据和解码所必要的编码信息。编码的图像数据经过熵解码器520和反量化器530被输出为反量化的数据,并经过反变换器540被恢复为残差值。通过将残差值与帧内预测单元550的帧内预测结果或运动补偿器560的运动补偿结果相加,根据编码单元来恢复残差值。恢复的编码单元经过去块单元570和环路滤波单元580被用于预测下一编码单元或下一帧。
[0084] 为了基于根据示例性实施例的解码方法执行解码,图像解码器500的组件(即,解析器510、熵解码器520、反量化器530、反变换器540、帧内预测单元550、运动补偿器560、去块单元570和环路滤波单元580)可基于最大编码单元、根据深度的子编码单元、预测单元和变换单元执行图像解码处理。
[0085] 具体地讲,帧内预测单元550和运动补偿器560通过考虑最大编码单元和深度来确定子编码单元中的预测单元和预测模式,并且反变换器540通过考虑变换单元的尺寸来执行反变换。
[0086] 图6示出根据示例性实施例的最大编码单元、子编码单元和预测单元。图1中示出的的用于对图像进行编码的编码设备100和图2中示出的用于对图像进行解码的解码设备200考虑到图像特性,使用分层编码单元来执行编码和解码。可根据图像特性自适应地设置最大编码单元和最大深度,或者可根据用户的需求不同地设置最大编码单元和最大深度。
[0087] 在图6中,分层编码单元结构600具有最大编码单元610,其中,最大编码单元610的高度和宽度为64并且最大深度为4。深度沿着分层编码单元结构600的纵轴增加,并且随着深度增加,子编码单元620至650的高度和宽度减小。最大编码单元610和子编码单元620至650的预测单元沿着分层编码单元结构600的横轴被示出。
[0088] 最大编码单元610深度为0且编码单元的尺寸(即,高度和宽度)为64×64。深度沿着纵轴增加,并且存在尺寸为32×32且深度为1的子编码单元620、尺寸为16×16且深度为2的子编码单元630、尺寸为8×8且深度为3的子编码单元640以及尺寸为4×4且深度为4的子编码单元650。尺寸为4×4且深度为4的子编码单元650是最小编码单元,并且最小编码单元可被划分为预测单元,每个预测单元小于最小编码单元。
[0089] 参照图6,根据每个深度沿着横轴示出预测单元的示例。也就是说,深度为0的最大编码单元610的预测单元可以是尺寸等于编码单元610(即,64×64)的预测单元,或者可以是尺寸小于编码单元610(其尺寸为64×64)的尺寸为64×32的预测单元612、尺寸为32×64的预测单元614或尺寸为32×32的预测单元616。
[0090] 深度为1且尺寸为32×32的编码单元620的预测单元可以是尺寸等于编码单元620(即,32×32)的预测单元,或者可以是尺寸小于编码单元620(其尺寸为32×32)的尺寸为32×16的预测单元622、尺寸为16×32的预测单元624或尺寸为16×16的预测单元626。
[0091] 深度为2且尺寸为16×16的编码单元630的预测单元可以是尺寸等于编码单元630(即,16×16)的预测单元,或者可以是尺寸小于编码单元630(其尺寸为16×16)的尺寸为16×8的预测单元632、尺寸为8×16的预测单元634或尺寸为8×8的预测单元636。
[0092] 深度为3且尺寸为8×8的编码单元640的预测单元可以是尺寸等于编码单元640(即,8×8)的预测单元,或者可以是尺寸小于编码单元640(其尺寸为8×8)的尺寸为8×4的预测单元642、尺寸为4×8的预测单元644或尺寸为4×4的预测单元646。
[0093] 最后,深度为4且尺寸为4×4的编码单元650是最小编码单元和最大深度的编码单元,编码单元650的预测单元可以是尺寸为4×4的预测单元650、尺寸为4×2的预测单元652、尺寸为2×4的预测单元654或尺寸为2×2的预测单元656。
[0094] 图7示出根据示例性实施例的编码单元和变换单元。图1中示出的用于对图像进行编码的设备100和图2中示出的用于对图像进行解码的设备200使用最大编码单元自身来执行编码和解码,或者使用从最大编码单元划分的等于或小于最大编码单元的子编码单元来执行编码和解码。在编码和解码处理中,用于变换的变换单元的尺寸可被选择为不大于相应编码单元的尺寸。例如,参照图7,在当前编码单元710的尺寸为64×64时,可使用尺寸为32×32的变换单元720来执行变换。
[0095] 图8a至图8d示出根据示例性实施例的编码单元、预测单元和变换单元的划分形状。具体地讲,图8a和图8b示出根据示例性实施例的编码单元和预测单元。
[0096] 图8a示出由图1中示出的用于对图像进行编码的设备100选择的划分形状,以对最大编码单元810进行编码。用于对图像进行编码的设备100将最大编码单元810划分为各种形状,对其执行编码,并通过基于R-D代价将各种划分形状的编码结果彼此进行比较来选择最佳划分形状。当最大编码单元810被原样编码最优时,可在没有如图8a至图8d中所示划分最大编码单元810的情况下对最大编码单元810进行编码。
[0097] 参照图8b,通过将深度为0的最大编码单元810划分为深度等于或大于1的子编码单元来对最大编码单元810进行编码。也就是说,最大编码单元810被划分为四个深度为1的子编码单元,所有或部分深度为1的子编码单元被划分为深度为2的子编码单元。
[0098] 在深度为1的子编码单元中位于右上方的子编码单元和位于左下方的子编码单元被划分为深度等于或大于2的子编码单元。一些深度等于或大于2的子编码单元可被划分为深度等于或大于3的子编码单元。
[0099] 图8b示出用于最大编码单元810的预测单元的划分形状。参照图8b,用于最大编码单元810的预测单元860可以与最大编码单元810不同地被划分。换句话说,每个子编码单元的预测单元可小于相应的子编码单元。
[0100] 例如,在深度为1的子编码单元中位于右下方的子编码单元854的预测单元可小于子编码单元854。此外,深度为2的子编码单元814、816、818、828、850和852中的一些子编码单元814、816、850和852的预测单元可分别小于子编码单元814、816、850和852。
[0101] 此外,深度为3的子编码单元822、832和848的预测单元可分别小于子编码单元822、832和848。预测单元可具有以下形状:按照所述形状,各个子编码单元沿着高度或宽度的方向被二等分;或者预测单元可具有以下形状:按照所述形状,各个子编码单元沿着高度和宽度的方向被四等分。
[0102] 图8c和图8d示出根据示例性实施例的预测单元和变换单元。
[0103] 图8c示出图8b中示出的最大编码单元810的预测单元的划分形状,图8d示出最大编码单元810的变换单元的划分形状。
[0104] 参照图8d,变换单元870的划分形状可与预测单元860不同地被设置。
[0105] 例如,即使深度为1的编码单元854的预测单元被选择为具有以下形状:按照所述形状,编码单元854的高度被二等分,变换单元也可被选择为具有与编码单元854相同的尺寸。同样地,即使深度为2的编码单元814和850的预测单元被选择为具有以下形状:按照所述形状,编码单元814和850中的每一个的高度被二等分,变换单元也可被选择为具有与编码单元814和850中的每一个的原始尺寸相同的尺寸。
[0106] 变换单元可以被选择为具有比预测单元更小的尺寸。例如,当深度为2的编码单元852的预测单元被选择为具有以下形状时:按照所述形状,编码单元852的宽度被二等分,变换单元可被选择为具有比预测单元的形状更小尺寸的以下形状:按照所述形状,编码单元
852沿着高度和宽度的方向被四等分。
[0107] 图9是根据示例性实施例的图像内插设备900的框图。图像内插可被用于将具有低分辨率的图像转换为具有高分辨率的图像。此外,图像内插可被用于将隔行扫描的图像转换为渐进图像,或者可被用于将具有低分辨率的图像上采样到更高的分辨率。当图4的图像编码器400对图像进行编码时,运动估计器420和运动补偿器425可通过使用经过内插的参考帧执行帧间预测。也就是说,参照图4,可通过对参考帧495进行内插来产生具有高分辨率的图像,并可基于具有高分辨率的图像执行运动估计和补偿,从而增加帧间预测的精确度。同样,当图5的图像解码器500对图像进行解码时,运动补偿器550可通过使用经过内插的参考帧来执行运动补偿,从而增加帧间预测的精确度。
[0108] 参照图9,图像内插设备900包括变换器910和反变换器920。
[0109] 变换器910通过使用具有不同频率的多个基函数来对像素值进行变换。所述变换可以是将空间域中的像素值变换为频域系数的各种处理之一,并且可以是例如如上所述的DCT。使用所述多个基函数来对整数像素单元的像素值进行变换。所述像素值可以是亮度分量的像素值或色度分量的像素值。所述多个基函数的类型不受限制,并且可以是用于将空间域中的像素值变换为频域值的各种类型的函数之一。例如,所述多个基函数可以是用于执行DCT或反DCT的余弦函数。此外,可使用各种类型的基函数,诸如正弦基函数或多项式基函数。DCT的示例可包括改进的DCT以及使用窗的改进的DCT。
[0110] 反变换器920对变换器910用于执行变换的多个基函数的相位进行移动,并通过使用相位被移动的所述多个基函数,对变换器910产生的多个系数(即,频域值)进行反变换。现在将通过使用二维(2D)DCT和一维(1D)DCT来描述变换器910执行的变换以及反变换器
920执行的反变换。
[0111] <2D DCT和2D反DCT>
[0112] 图10是示出根据示例性实施例的由图9的图像内插设备900执行的2D内插方法的示图。参照图10,图像内插设备900通过在空间域中的整数像素单元的像素值(例如,块1000中的位置O上的像素值)之间进行内插来产生位置X(即,内插位置)上的像素值。位置X上的像素值是分数像素单元的像素值,其中,所述像素值的内插位置由“αx”和“αy”来确定。尽管图10示出块1000具有4×4的尺寸的情况,但块1000的尺寸不限于4×4,对于本领域普通技术人员而言显而易见的是,可通过对比块1000更小或更大的块执行2D DCT和2D反DCT来产生分数像素单元的像素值。
[0113] 首先,变换器910对整数像素单元的像素值执行2D DCT。可根据以下等式来执行2D DCT:
[0114] C=D(x)×REF×D(y)…(1),
[0115] 其中,“C”表示包括通过执行2D DCT而获得的频域系数的块,“REF”表示对其执行了DCT的块1000,“D(x)”是用于沿X轴的方向(即,水平方向)执行DCT的矩阵,“D(y)”表示用于沿Y轴的方向(即,垂直方向)执行DCT的矩阵。这里,“D(x)”和“D(y)”可由以下等式(2)来限定:
[0116]
[0117] 0≤k≤Sx-1
[0118] 0≤l≤Sx-1…(2),
[0119] 其中,“k”和“l”表示均满足等式(2)中表示的条件的整数,“Dkl(x)”表示方阵D(x)的第k行和第l列,Sx表示方阵D(x)的水平大小和垂直大小。
[0120]
[0121] 0≤k≤Sy-1
[0122] 0≤l≤Sy-1…(3),
[0123] 其中,“k”和“l”表示均满足等式(3)中表示的条件的整数,“Dkl(y)”表示方阵D(y)的第k行和第l列,Sy表示方阵D(y)的水平大小和垂直大小。
[0124] 变换器910通过计算等式(1)来对块1000执行2D DCT,反变换器920通过计算以下等式来对由变换器910产生的频域系数执行2D反DCT:
[0125] P=W(x)×D(x)×REF×D(y)×W(y)…(4),
[0126] 其中,“P”表示包括通过执行反DCT而获得的内插位置(即,位置X)上的像素值的块。与等式(1)相比,通过将块C的两边分别乘以“W(x)”和“W(y)”来获得等式(4),从而对块C执行反DCT。这里,“W(x)”表示用于沿水平方向执行反DCT的矩阵。“W(y)”表示沿垂直方向执行反DCT。
[0127] 如上所述,反变换器920使用相位被移动的多个基函数以执行2D反DCT。“W(x)”和“W(y)”可由以下等式(5)和(6)来限定:
[0128]
[0129] 0≤k≤Sx-1
[0130] 0≤l≤Sx-1…(5),
[0131] 其中,“l”和“k”表示均满足等式(5)中表示的条件的整数,“Wlk(x)”表示方阵W(x)的第l行和第k列,Sx表示方阵W(x)的水平大小和垂直大小。αx表示如图10中示出的水平内插位置,并且可以是分数,例如,1/2、1/4、3/4、1/8、3/8、5/8、7/8、1/16、或…。然而,所述分数不限于此,αx可以是实数。
[0132]
[0133] 0≤k≤Sy-1
[0134] 0≤l≤Sy-1…(6),
[0135] 其中,“l”和“k”表示均满足等式(6)中表示的条件的整数,“Wlk(y)”表示方阵W(y)的第l行和第k列,Sy表示方阵W(y)的水平大小和垂直大小。αy表示如图10中示出的垂直内插位置,并且可以是分数,例如,1/2、1/4、3/4、1/8、3/8、5/8、7/8、1/16、或…。然而,所述分数不限于此,αy可以是实数。
[0136] 与等式(2)和(3)相比,在等式(5)和(6)中,反变换器920使用的多个基函数(即,多个余弦函数)的相位被分别移动了2αx和2αy,如果如等式(5)和(6)中所表示,反变换器920基于相位被移动的多个余弦函数执行2D反DCT,则位置X的像素值被产生。
[0137] 图11是示出根据示例性实施例的内插区域1110的示图。当图9的变换器910和反变换器920通过分别执行2D DCT和2D反DCT来产生内插位置上的像素值时,比将被内插的块(即,内插区域1110)更大的区域1120可被使用。一般而言,内插的精确度可能在内插区域1110的边界降低,因此,与内插位置邻近的像素值之间的相关性可被考虑用于内插。图9的图像内插设备900对包括在内插区域1110中的像素值执行2D DCT,并随后对执行2D DCT的结果执行2D反DCT,其中,包括在内插区域1110中的像素值与内插区域1110之外的像素值之间的相关性不被考虑。
[0138] 因此,图像内插设备900对区域1120执行内插并使用内插区域1110中的像素值进行运动补偿,其中,所述区域1120比内插区域1110更大并且包括内插区域1110和与内插区域1110邻近的区域。
[0139] <1D DCT和1D反DCT>
[0140] 图12是示出根据示例性实施例的1D内插方法的示图。参照图12,图9的图像内插设备900通过在空间域中的整数像素单元的像素值1210和像素值1220之间进行内插来产生内插位置上的像素值1200。像素值1200是分数像素单元的像素值,所述像素值的内插位置由“α”确定。以下将参照图13详细描述根据当前示例性实施例的1D内插方法。
[0141] 图13是专门示出根据示例性实施例的由图9的图像内插设备900执行的1D内插方法的示图。参照图13,通过在两个像素值1210和1220之间进行内插,包括整数像素单元的像素值1210和1220的多个邻近像素值1310和1320被分别用于产生分数像素单元的像素值1200。换句话说,对第-(M-1)至第M个像素值(即,2M个像素值)执行1D DCT,基于相位被移动的多个基函数对执行1D DCT的结果执行1D反DCT,从而在第0个像素和第1个像素之间进行内插。图13示出M=6的情况,但“M”不限于6并且可以是任何大于0的正整数。
[0142] 此外,图12和图13示出在沿水平方向邻近的像素值之间执行内插的情况,但对本领域普通技术人员而言将显而易见的是,图12和图13的1D内插方法可被用于在沿垂直方向或对角线方向邻近的像素值之间进行内插(具体见图18a和图18b)。
[0143] 变换器910对整数像素单元的像素值执行1D DCT。可通过计算以下等式来执行1D DCT:
[0144]
[0145] 0≤k≤2M-1…(7),
[0146] 其中,“p(l)”表示第-(M-1)至第M个像素值,例如,图13中示出的第-5像素值1310至第6像素值1320,“Ck”表示通过对像素值执行1D DCT而获得的多个系数。这里,“k”表示满足等式(7)中表示的条件的正整数。
[0147] 当变换器910通过计算等式(7)对像素值1310和1320执行1D DCT时,反变换器920通过计算以下的等式(8)来对变换器910产生的频域系数执行1D反DCT。
[0148]
[0149] 其中,“α”表示如上参照图13描述的两个像素值之间的内插位置,并且可以是各种分数之一,例如,1/2、1/4、3/4、1/8、3/8、5/8、7/8、1/16、…。所述分数不限于此,“α”可以是实数。“P(α)”表示通过执行1D反DCT产生的内插位置上的像素值1200。与等式(7)相比,等式(8)中表示的作为用于执行1D反DCT的基函数的余弦函数的相位由除整数“1”之外的分数“α”确定,因此与用于执行1D DCT的基函数的相位不同。
[0150] 图14是根据示例性实施例的图像内插设备1400的框图。参照图14,图像内插设备1400包括滤波器选择器1410和内插器1420。图9的图像内插设备900对图像进行变换,并基于相位被移动的多个基函数对变换的结果进行反变换。然而,如果每当像素值被输入到图像内插设备900时都执行变换和反变换,那么所需的计算量很大,从而降低了图像处理系统的运行速度。
[0151] 因此,通过计算用于执行如上所述的变换和反变换的滤波器系数,并随后通过使用计算的滤波器系数在空间域中对将被输入到图像内插设备1400的像素值进行滤波,可在不必将空间域变换到频域的情况下在空间域快速执行图像内插。
[0152] 滤波器选择器1410接收关于内插位置的信息并选择将用于内插的滤波器。如上所述,滤波器被用于基于具有不同频率的多个基函数来对像素值进行变换,并基于相位被移动的所述多个基函数来对通过变换获得的多个系数进行反变换。滤波器系数可根据内插位置而改变,并且根据内插位置来选择滤波器。
[0153] 如以上参照图9所述,使用具有不同频率的多个基函数来对像素值进行变换,并且所述具有不同频率的多个基函数的相位根据内插位置而被移动以执行反变换。然后,可通过使用相位被移动的所述多个基函数对所述多个系数进行反变换来对内插位置上的像素值进行内插。换句话说,如果根据内插位置,基于整数像素单元的像素值执行变换,并且基于相位被移动的所述多个基函数来执行反变换,则可针对各内插位置产生至少一个分数像素单元的像素值。因此,图14的滤波器选择器1410基于不同的基函数来预设用于执行变换和执行反变换的多个滤波器,并基于关于内插位置的信息来选择预设的滤波器之一。
[0154] 内插器1420通过使用滤波器选择器1410选择的滤波器来执行内插。具体地讲,通过基于选择的滤波器对整数像素单元的多个像素值进行滤波来执行内插。作为内插的结果,预定内插位置上的像素值(即,分数像素单元的像素值)被获得。参照图10,如果使用2D滤波器对包括整数像素单元的多个像素值的块进行滤波,则产生内插位置上的多个像素值,其中,由“αx”和“αy”来确定每个内插位置。参照图13,如果使用1D滤波器对包括整数像素单元的多个像素值的行或列进行滤波,则产生内插位置α上的多个像素值。现在将在下面参照附图描述分别使用2D滤波器和1D滤波器执行的内插方法。
[0155] <2D滤波器>
[0156] 上述P=W(x)×D(x)×REF×D(y)×W(y)与等式(4)相关。该等式还可被如下表示:
[0157] P=F(x)×REF×F(y)…(9),
[0158] 其中,“F(x)”表示用于沿水平方向对REF块进行变换并且用于通过使用相位被移动的多个基函数来对沿水平方向进行变换的结果进行反变换的滤波器。“F(y)”表示用于沿垂直方向对REF块进行变换并且用于通过使用相位被移动的多个基函数来对沿垂直方向进行变换的结果进行反变换的滤波器。例如,“F(x)”可表示用于沿水平方向对REF块执行DCT并通过使用相位被移动的多个余弦函数来对沿水平方向执行的结果执行反DCT的滤波器。“F(y)”可表示用于沿垂直方向对REF块执行DCT并通过使用相位被移动的多个余弦函数来对沿垂直方向执行的结果执行反DCT的滤波器。
[0159] 根据等式(2)、(3)、(5)和(6),滤波器F(x)和F(y)可由以下等式(10)和(11)来限定:
[0160]
[0161] 0≤k≤Sx-1
[0162] 0≤l≤Sx-1…(10),
[0163] 其中,“k”和“l”表示均满足等式(10)中表示的条件的整数。“Fkl(x)”表示矩阵F(x)的第k行和第l列,Sx表示方阵W(x)和D(x)的水平大小和垂直大小。由于方阵W(x)和D(x)具有相同的大小,因此方阵W(x)和D(x)的水平大小和垂直大小也相同。“Wkn(x)”表示以上关于等式(5)描述的方阵W(x)的第k行和第n列。Dnl(x)表示以上关于等式(2)描述的方阵D(x)的第n行和第l列。
[0164]
[0165] 0≤k≤Sy-1
[0166] 0≤l≤Sy-1…(11),
[0167] 其中,“k”和“l”表示均满足等式(11)中表示的条件的整数。“Fkl(y)”表示矩阵F(y)的第k行和第l列,Sy表示方阵W(y)和D(y)的水平大小和垂直大小。由于方阵W(y)和D(y)具有相同的大小,因此方阵W(y)和D(y)的水平大小和垂直大小也相同。“Wnl(y)”表示以上关于等式(5)描述的方阵W(y)的第n行和第l列。“Dkn(y)”表示以上关于等式(2)描述的方阵D(y)的第k行和第n列。
[0168] 如果通过增加滤波器F(x)和F(y)的比特深度来执行内插,则滤波的精确度会提高。因此,根据示例性实施例,通过将滤波器F(x)和F(y)的系数与预定值相乘来增加滤波器F(x)和F(y)的系数,并且可使用这些包括增加的系数的滤波器来对图像进行内插。在这种情况下,可如下改变等式(9):
[0169] P=(F’(x)×REF×F’(y))/S2…(12),
[0170] 其中,“F’(x)”表示通过将滤波器F(x)的系数乘以缩放因子“S”并将相乘的结果四舍五入为整数而缩放的滤波器,“F’(y)”表示通过将滤波器F(y)的系数乘以缩放因子“S”并将相乘的结果四舍五入为整数而获得的滤波器。由于使用经过缩放的滤波器执行内插,因2
此内插位置上的像素值被计算并随后除以“S”以对缩放效果进行补偿。
[0171] 图15示出根据示例性实施例的2D内插滤波器。具体地讲,图15示出根据等式(2)缩放的滤波器系数。也就是说,图15示出当“αx”为1/4、1/2和3/4时的2D内插滤波器F’(x),其中,通过将2D内插滤波器F(x)的系数乘以缩放因子213来产生2D内插滤波器F’(x)。可通过对滤波器F’(x)进行转置来使用当αy”为1/4、1/2和3/4时的2D内插滤波器F’(y)。
[0172] 参照图14,如果滤波器选择器1410基于内插位置选择图15的2D内插滤波器中的一个,则内插器1420通过计算等式(9)或(12)来产生内插位置上的像素值。
[0173] <1D滤波器>
[0174] 根据等式(7)的1D DCT可被表示为如下的行列式:
[0175] C=D×REF…(13),
[0176] 其中,“C”表示针对以上关于等式(7)描述的2M个系数的(2M×1)矩阵,“REF”表示针对以上关于等式(7)描述的整数像素单元的像素值(即,P-(M-1)、…、至PM)的(2M×1)矩阵。用于内插的像素值的总数(即,2M)表示1D内插滤波器的抽头的总数。“D”表示可被如下限定的用于1D DCT的方阵:
[0177]
[0178] 0≤k≤2M-1
[0179] -(M-1)≤l≤M…(14),
[0180] 其中,其中,“k”和“l”表示均满足等式(14)中表示的条件的整数,“Dkl”表示用于等式(13)中表示的1D DCT的方阵D的第k行和第l列,以上已关于等式(13)描述了“M”。
[0181] 根据等式(8)的使用相位被移动的多个基函数的1D DCT可被表示为如下行列式:
[0182] P(α)=W(α)×C…(15),
[0183] 其中,“P(α)”与等式(8)中表示的“P(α)相同”,“W(α)”表示用于使用相位被移动的多个基函数的1D反DCT的(1×2M)矩阵。“W(α)”可被如下限定:
[0184]
[0185] 1<k<2M-1…(16),
[0186] 其中,“k”表示满足等式(16)中表示的条件的整数,“Wk(α)”表示以上关于等式(15)描述的W(α)矩阵的第k列。基于等式(13)和(15)的用于执行1D DCT以及使用相位被移动的多个基函数的1D反DCT的1D内插滤波器F(α)可被如下限定:
[0187] P(α)=F(α)×REF
[0188]
[0189] 0≤k≤2M-1
[0190] -(M-1)≤l≤M…(17),
[0191] 其中,“k”和“l”表示均满足等式(17)中表示的条件的整数,“F1(α)”表示滤波器F(α)的第l列,“W(α)”和“D”与等式(13)中表示的“W(α)”和“D”相同。
[0192] 可通过增加与2D内插滤波器相似的1D内插滤波器F(α)的比特深度来提高滤波精确度。可通过将1D内插滤波器F(α)的系数与预定值相乘增加1D内插滤波器F(α)的系数并使用包括增加的系数的1D内插滤波器F(α)来对图像进行内插。
[0193] 例如,可通过将1D内插滤波器F(α)乘以缩放因子“2ScalingBits”来执行内插。在这种情况下,等式(7)中表示的P(α)=F(α)×REF可被如下改变:
[0194]
[0195] 其中,F’l(α)表示通过将1D内插滤波器F(α)的系数乘以缩放因子“2ScalingBits”并将相乘的结果四舍五入为整数而缩放的滤波器。“REFl”表示等式(17)中表示的REF矩阵的第l列,“2ScalingBits-1”表示被加上以对经过滤波的像素值进行四舍五入的值。通过将经过缩放的滤波器F’l(α)乘以针对像素值的矩阵来计算内插位置α上的像素值,通过将值“2ScalingBits-1”加到计算的结果来对计算的结果四舍五入,最终结果值被移动了“Scaling Bits”比特,从而对缩放效果进行补偿。
[0196] 在上述等式中使用的四舍五入仅是量化滤波器系数的方法的示例。为了概括量化滤波器系数的方法以便于理解,可如以下等式(19)和(20)中所表示的来修改和优化滤波器系数:
[0197] (Fl(α)-ε)≤f'l(α)≤(Fl(α)+ε)…(19),
[0198] 其中,“Fl(α)”表示未被量化的滤波器的第l个系数,“f’l(α)”表示被量化的滤波器的第l个系数,“ε”表示可根据量化的程度而被选择的任意实数,并可以是例如0.2*Fl(α)。根据等式(19),当根据等式(13)至(17)计算作为实数的第l个系数Fl(α)时,第l个系数Fl(α)被改变为满足等式(19)的第l个系数f’l(α),从而对第l个系数Fl(α)进行量化。
[0199] 当通过预定的缩放因子对滤波器系数进行缩放时,根据等式(19)的量化可被如下改变:
[0200] (p*Fl(α)-p*ε)≤F'l(α)≤(p*Fl(α)+p*ε)…(20),
[0201] 其中,“P”表示缩放因子(可以是“2ScalingBits”),p*Fl(α)表示经过缩放的滤波器系数。根据等式(20),“p*Fl(α)”被转换为“F’l(α)”。
[0202] 图16a至图16f示出根据示例性实施例的1D内插滤波器。在图16a至图16f中,根据抽头的数量和内插位置来示出以上关于等式(18)描述的经过缩放的滤波器。具体地讲,图16a至图16f分别示出4抽头滤波器、6抽头滤波器、8抽头滤波器、10抽头滤波器、12抽头滤波器和14抽头滤波器。在图16a至图16f中,用于滤波器系数的缩放因子被设置为“256”,即,ScalingBits被设置为“8”。
[0203] 在图16a至图16f中,滤波器系数包括用于高频分量的系数,由此内插和预测的准确度可被提高,但是图像压缩效率可能由于高频分量而降低。然而,如以上参照图9所描述的,执行内插以增加图像压缩效率。为了解决该问题,图16a至图16f中示出的滤波器系数可被调整以增加这种情况下的图像压缩效率。
[0204] 例如,每个滤波器系数的绝对值可被降低,并且处于每个滤波器的中点的每个滤波器系数可被乘以比分配给其他滤波器系数的权重值更大的权重值。例如,参照图16b,在用于产生1/2内插位置上的像素值的6抽头滤波器中,滤波器系数{11,-43,160,160,-43,11}按照“11”、“-43”和“160”的绝对值可被降低并且仅有处于所述6抽头滤波器的中点的“160”乘以权重值的方式而被调整。
[0205] 图17a至图17y示出根据示例性实施例的优化的1D内插滤波器。图16a至图16f中示出的滤波器还可被调整以容易地以硬件来实现滤波器。当使用计算机来计算等式(17)或(18)时,滤波器系数可被优化为使算数运算(例如,二进制数的比特移位以及相加)最小化。
[0206] 在图17a和图17b中,为每个滤波器的内插而执行滤波所需的计算量以“相加”和“移位”单位来指示。图17a至图17m的滤波器中的每一个包括被优化用于使相应内插位置上的“相加”和“移位”单位最小化的系数。
[0207] 图17a和图17b分别示出被优化用于以缩放了8比特偏移的1/4像素的精确度对图像进行内插的6抽头滤波器和12抽头滤波器。图17c、17d和17e示出被优化用于以缩放了8比特偏移的1/4像素的精确度对图像进行内插的8抽头滤波器。根据滤波器系数是否将被优化以及优化滤波器系数的方法中的至少一个来对图17c至图17e的8抽头滤波器分类。图17f和图17g示出被优化用于以缩放了6比特偏移的1/4像素的精确度对图像进行内插的8抽头滤波器。根据优化滤波器系数的方法来对图17f至图17g的滤波器分类。
[0208] 图17h示出被优化用于以缩放了6比特偏移的1/8像素的精确度对图像进行内插的6抽头滤波器。图17i示出被优化用于以缩放了8比特偏移的1/8像素的精确度对图像进行内插的6抽头滤波器。
[0209] 图17j和图17k示出被优化用于以缩放了5比特偏移的1/8像素的精确度对图像进行内插的4抽头滤波器。可根据优化滤波器系数的方法来对图17j和图17k的滤波器分类。图17l和图17m示出被优化用于以缩放了8比特偏移的1/8像素的精确度对图像进行内插的4抽头滤波器。也可根据优化滤波器系数的方法来对图17l和图17m的滤波器分类。
[0210] 图17n至图17y分别示出被优化用于以缩放了8比特偏移的1/8像素的精确度对图像进行内插的4抽头滤波器、6抽头滤波器、8抽头滤波器、10抽头滤波器和12抽头滤波器。图17n至图17y的滤波器与图17a至图17m的滤波器不同在于一些滤波器系数不同,但与图17a至图17m的滤波器相同在于:用于对1/8内插位置进行内插的滤波器系数与用于对7/8内插位置进行内插的滤波器系数对称、用于对2/8内插位置进行内插的滤波器系数与用于对6/8内插位置进行内插的滤波器系数对称、用于对3/8内插位置进行内插的滤波器系数与用于对5/8内插位置进行内插的滤波器系数对称。
[0211] 图23a至图23e示出根据示例性实施例的执行与1D内插滤波器相关的缩放和四舍五入的方法。
[0212] 如上所述,内插滤波使用DCT和反DCT,因此1D内插滤波器包括滤波器系数,所述滤波器系数的绝对值小于“1”。因此,如以上关于等式(12)所描述的,通过将滤波器系数乘以“2ScalingBits”来对滤波器系数进行缩放,分别将所述滤波器系数四舍五入为整数并随后用于内插。
[0213] 图23a示出当1D内插滤波器是12抽头滤波器时被缩放“2ScalingBits”的滤波器系数。参照图23a,滤波器系数已被缩放,但没有被四舍五入为整数。
[0214] 图23b示出通过将图23a的经过缩放的滤波器系数四舍五入至小数点之前来将图23a的经过缩放的滤波器系数四舍五入为整数的结果。参照图23b,在1D内插滤波器中,某些滤波器的四舍五入后的经过缩放的滤波器系数之和小于“256”。具体地讲,用于对1/8内插位置上的像素值进行内插的滤波器、用于对3/8内插位置上的像素值进行内插的滤波器、用于对5/8内插位置上的像素值进行内插的滤波器、用于对7/8内插位置上的像素值进行内插的滤波器中的每一个的所有滤波器系数之和小于“256”。也就是说,被缩放了8比特偏移的滤波器的滤波器系数之和应该是“256”,但在对滤波器系数进行四舍五入期间发生错误。
[0215] 滤波器系数之和不相同意味着像素值可根据内插位置而改变。为了解决该问题,可通过调整滤波器系数来产生归一化的滤波器。图23c示出由图23b中示出的滤波器的滤波器系数产生的归一化滤波器。
[0216] 图23b和23c的比较显示出通过调整用于对1/8内插位置上的像素值进行内插的滤波器、用于对3/8内插位置上的像素值进行内插的滤波器、用于对5/8内插位置上的像素值进行内插的滤波器、以及用于对7/8内插位置上的像素值进行内插的滤波器的滤波器系数中的某些,所有滤波器系数之和被归一化为“256”。
[0217] 图23d和23e分别示出被缩放的8抽头滤波器以及对所述8抽头滤波器进行归一化的结果。如果被缩放2offset的8抽头滤波器如图23d中所示出,则将图23d的8抽头滤波器的滤波器系数四舍五入为整数值并按照滤波器系数之和为“256”的方式对四舍五入的结果归一化的结果可如图23e中示出。参照图23e,一些滤波器系数与对图23d中示出的8抽头滤波器的滤波器系数四舍五入的结果不同。这意味着一些滤波器系数按照所有的滤波器系数之和为“256”的方式被调整。
[0218] 如图23b和23c中所示,通过对滤波器系数进行缩放的步骤和对滤波器系数四舍五入的步骤中的至少一个而获得的最终结果的滤波器系数中的至少一个可与对最终结果的滤波器系数进行归一化的结果不同。因此,对于本领域普通技术人员而言显而易见的是,在图16a至图16f中示出的滤波器或图17a至图17m中示出的滤波器中,滤波器系数中的至少一个在预定的误差范围(例如,±1或±2)内改变的1D内插滤波器应该被理解为落入示例性实施例的范围内。
[0219] 如果滤波器选择器1410基于内插位置选择图16a至图16f或图17a至图17y或图23a至图23e中示出的滤波器之一,则内插器1420通过计算等式(17)或(18)来产生内插位置上的像素值。其他各种因素(诸如帧间预测的方向、环路滤波器的类型、块中的像素的位置)可被进一步考虑用于滤波器选择器1410选择滤波器之一。可通过将被内插的块的尺寸或用于内插的滤波的方向来确定将被选择的滤波器的大小(即,抽头大小)。例如,当将被内插的块较大时,可选择较大的滤波器,当将沿垂直方向执行内插时,可选择较小的滤波器来最小化存储器存取。
[0220] 根据示例性实施例,关于滤波器选择的信息可被另外地编码。例如,如果在对图像编码期间对图像进行内插,则解码侧应该知道用于对图像进行内插的滤波器的类型,以通过使用在图像编码期间使用的相同滤波器来对图像进行解码。为此,指定用于对图像进行内插的滤波器的信息可与图像一起被编码。然而,当基于对另一块的先前编码的结果(即,上下文)来执行滤波器选择时,关于滤波器选择的信息不需要被另外地编码。
[0221] 如果通过执行内插而产生的像素值小于最小像素值或者大于最大像素值,则像素值被改变为最小像素值或最大像素值。例如,如果产生的像素值小于最小像素值0,则产生的像素值被改变为“0”,如果产生的像素值大于最大像素值255,则产生的像素值被改变为“255”。
[0222] 当执行内插以在图像的编码期间精确地执行帧间预测时,指定内插滤波器的信息可与图像一起被编码。换句话说,关于滤波器选择器1410选择的滤波器的类型的信息可与图像一起被编码为图像参数。由于可按照编码单元或按照条带或画面单元来选择不同类型的内插滤波器,因此关于滤波器选择的信息也可按照编码单元或条带或画面单元与图像一起被编码。然而,如果根据隐含规则执行滤波器选择,则关于滤波器选择的信息可不与图像一起被编码。
[0223] 现在将参照图18a、图18b和图19详细描述根据示例性实施例由内插器1420执行内插的方法。
[0224] 图18a和图18b示出根据示例性实施例的通过使用1D内插滤波器沿各种方向对像素值进行内插的方法。参照图18a和图18b,可通过使用1D内插滤波器来产生沿各种方向的内插位置上的像素值,其中,所述1D内插滤波器可对1D像素值执行1D DCT并通过使用相位被移动的多个基函数来对执行的结果执行1D反DCT。
[0225] 参照图18a,可通过在像素值P0 1802和沿垂直方向相邻的像素值P11804之间进行内插来产生沿垂直方向的内插位置α上的像素值P(α)1800。与图13的1D内插方法相比较,使用沿垂直方向布置的像素值1810和1820而非沿水平方向布置的像素值1310和1320来执行内插,但以上关于等式(13)至(18)描述的内插方法也可被应用于图18a的方法。
[0226] 类似地,与图13的1D内插方法相比,在图18b的方法中,使用沿对角线方向布置的像素值1840和1850而非沿水平方向布置的像素值1310和1320来执行内插,但可如以上关于等式(13)至(18)所描述的通过在两个相邻像素值1832和1834之间进行内插来产生内插位置α上的像素值P(α)1830。
[0227] 图19a示出根据示例性实施例的2D内插方法。参照图19a,可基于整数像素单元的像素值1900至1906来产生分数像素单元的像素值1910至1950。
[0228] 具体地讲,首先,图14中示出的图像内插设备1400的滤波器选择器1410选择1D内插滤波器来产生整数像素单元的像素值1900至1906之间存在的分数像素单元的像素值1910、1920、1930和1940。如以上参照图14所描述的,可根据内插位置选择不同的滤波器。例如,可分别为分数像素单元的像素值1912、1914和1916选择不同的滤波器,从而在两个上部的像素值1900和1902之间内插像素值1910。例如,用于产生1/2像素单元的像素值1914的滤波器可与用于产生同一1/4像素单元的像素值1912和1916的滤波器不同。此外,可分别使用不同的滤波器来产生同一1/4像素单元的像素值1912和1916。如以上参照图14所描述的,用于执行反DCT的基函数的相位的移动程度根据内插位置而改变,因此,根据内插位置选择用于执行内插的滤波器。
[0229] 类似地,可基于根据内插位置选择的1D内插滤波器来产生在整数像素单元的像素值1900至1906之间存在的不同分数像素单元的像素值1920、1930和1940。
[0230] 如果滤波器选择器1410选择用于产生在整数像素单元的像素值1900至1906之间存在的分数像素单元的像素值1910、1920、1930和1940的滤波器,则内插器1420基于选择的滤波器分别在内插位置上产生分数像素单元的像素值1910、1920、1930和1940。根据示例性实施例,由于用于产生每个内插位置上的像素值的滤波器先前已被计算,因此可基于整数像素单元的像素值来产生所有内插位置上的像素值。
[0231] 换句话说,由于可直接从整数像素单元的像素值1900和1902产生1/4像素单元的像素值1912和1916,因此不需要首先计算1/2像素单元的像素值1914并随后基于整数像素单元的像素值1900和1902以及1/2像素单元的像素值1914来产生1/4像素单元的像素值1912和1916。由于不需要根据像素单元的大小来顺序执行图像内插,因此可高速执行图像内插。
[0232] 根据另一示例性实施例,根据示例性实施例的基于内插位置的内插方法可与现有的内插方法相结合。例如,可通过使用根据示例性实施例的内插滤波器直接从整数像素单元的像素值1900和1902产生1/2像素单元的像素值和1/4像素单元的像素值,可通过使用现有的线性内插滤波器从1/4像素单元的像素值产生1/8像素单元的像素值。另外地,可通过使用根据示例性实施例的内插滤波器直接从整数像素单元的像素值1900和1902产生1/2像素单元的像素值,可通过使用现有技术的线性内插滤波器从1/2像素单元的像素值产生1/4像素单元的像素值,并可通过使用现有技术的线性内插滤波器从1/4像素单元的像素值产生1/8像素单元的像素值。
[0233] 如果通过执行内插来产生在整数像素单元的像素值1900至1906之间存在的分数像素单元的所有像素值1910、1920、1930和1940,则滤波器选择器1410再次选择用于在分数像素单元的像素值1910、1920、1930和1940之间进行内插的1D内插滤波器。在这种情况下,与以下方式类似的根据内插位置来选择不同的滤波器:在所述方式中,滤波器被选择用于在整数像素单元的像素值1900至1906之间进行内插。
[0234] 内插器1420通过使用滤波器选择器1410选择的滤波器来产生与每个内插位置相应的分数像素单元的像素值1950。也就是说,产生分数像素单元的像素值1910、1920、1930和1940之间的分数像素单元的像素值1950。
[0235] 图19b示出根据另一示例性实施例的使用1D内插滤波器的2D内插方法。参照图19b,可通过使用1D内插滤波器沿垂直方向和水平方向重复执行内插来产生2D内插位置上的像素值。
[0236] 具体地讲,通过沿水平方向在整数像素单元的像素值REF(i,j)1960和像素值REF(i+1,j)1964之间进行内插来产生像素值Temp(i,j)。此外,通过沿水平方向在像素值REF(i,j+1)1962和像素值REF(i+1,j+1)1966之间进行内插来产生像素值Temp(i,j+1)。然后,通过沿垂直方向在像素值Temp(i,j)和像素值Temp(i,j+1)之间进行内插来产生2D内插位置上的像素值P(i,j)。
[0237] 1D内插滤波器可以是用于执行1D DCT和基于相位被移动的多个基函数来执行1D反DCT的滤波器。此外,1D内插滤波器可以是如以上关于等式(17)所描述的经过缩放的滤波器。当基于经过缩放的滤波器沿水平方向和垂直方向执行内插时,可通过计算以下的等式(21)来执行内插:
[0238]
[0239]
[0240] 其中,F’l(αx)和F’l(αy)与等式(18)中表示的F’l(α)对应。然而,由于垂直内插位置可与水平内插位置不同,因此可根据内插位置选择不同的1D内插滤波器。
[0241] 当执行水平内插和垂直内插时,在水平内插之后根据StageBits1执行第一比特移位,并在垂直内插之后根据StageBits2执行第二比特移位。(TotalBits=StageBits1+StageBits2)如果StageBits1被设置为0,则不执行第一比特移位。
[0242] 因此,如果在等式(21)中用于F’l(αy)的缩放因子为“2bit1”且用于F’l(αx)的缩放因bit2子为“2 ”,则“TotalBits=bits1+bits2”。
[0243] 图19c示出根据另一示例性实施例的使用1D内插滤波器的2D内插方法。参照图19c,可通过使用1D内插滤波器沿垂直方向和水平方向重复执行内插来产生2D内插位置上的像素值。
[0244] 具体地讲,通过沿垂直方向在整数像素单元的像素值REF(i,j)1960和像素值REF(i,j+1)1962之间进行内插来产生像素值Temp(i,j)。接下来,通过沿垂直方向在像素值REF(i,j+1)1964和像素值REF(i+1,j+1)1966之间进行内插来产生像素值Temp(i+1,j)。然后,通过在像素值Temp(i,j)和像素值Temp(i+1,j)之间进行内插来产生2D内插位置上的像素值P(i,j)。当基于经过缩放的滤波器沿水平方向和垂直方向执行内插时,可通过计算以下的等式(22)来执行内插:
[0245]
[0246]
[0247] 图20是示出根据示例性实施例的图像内插方法的流程图。参照图20,在操作2010,图9的图像内插设备900通过使用具有不同频率的多个基函数来在空间域对像素值进行变换。所述像素值可以是包括在预定块中的多个像素值,或者可以是沿水平方向或垂直方向布置的像素值的行或列。
[0248] 这里,所述变换可以以上关于变换器910和等式(1)、(2)、(3)和(7)所描述的2D DCT或1D DCT。
[0249] 在操作2020,图像内插设备900移动在操作2010中使用的多个基函数的相位。可根据由“αx”和“αy”确定的2D内插位置或根据由“α”确定的1D内插位置来移动所述多个基函数的相位。
[0250] 在操作2030,图像内插设备900通过使用相位在操作2020被移动的多个基函数来对在操作2010通过在空间域对像素值进行变换而获得的DCT系数进行反变换。也就是说,通过对在操作2010获得的DCT系数进行反变换来产生内插位置上的像素值。
[0251] 如果在操作2010执行的变换是2D DCT,则在操作2030,图像内插设备900通过使用相位被移动的多个余弦函数对DCT系数执行2D反DCT,产生2D内插位置上的像素值。
[0252] 如果在操作2010执行的变换是按照像素值的行或列执行的1D DCT,则在操作2030,图像内插设备900通过使用相位被移动的多个余弦函数对DCT系数执行1D反DCT,产生
1D内插位置上的像素值。
[0253] 以上已关于反变换器920和等式(4)、(5)、(6)和(8)描述了相位被移动的多个基函数以及基于其的反变换。
[0254] 图21是示出根据另一示例性实施例的图像内插方法的流程图。参照图21,在操作2110,图14的图像内插设备1400根据内插位置选择用于执行变换和基于相位被移动的多个基函数来执行反变换的滤波器。例如,根据内插位置选择用于执行DCT和基于相位被移动的多个余弦函数执行反DCT的滤波器。如果将被内插的像素值包括在预定块中,则基于“αx”和“αy”选择用于执行2D DCT和2D反DCT的滤波器。如果将被内插的像素值是像素值的行或列,则基于“α”选择用于执行1D DCT和1D反DCT的滤波器。可根据内插位置选择以上参照图15、图16a至图16f和图17描述的滤波器之一。然而,可由除以上关于滤波器选择器1410和参照图17描述的内插位置以外的各种其他因素来确定滤波器的大小。
[0255] 在操作2120,图像内插设备1400基于在操作2110选择的滤波器来执行内插。可通过使用在操作2110选择的滤波器在空间域对像素值进行滤波来产生2D内插位置上的像素值或1D内插位置上的像素值。以上已关于等值(9)至(19)描述了使用滤波执行的内插。
[0256] 图22是示出根据另一示例性实施例的图像内插方法的流程图。参照图22,在操作2210,图14的图像内插设备1400根据内插位置选择用于在整数像素单元的像素值1900至
1906之间进行内插的不同滤波器。在当前的示例性实施例中,可直接从整数像素单元的像素值1900至1906产生至少一个分数像素单元的像素值1910、1920、1930和1940。因此,图像内插设备1400在操作2210选择分别与内插位置相应的内插滤波器。
[0257] 在操作2220,图像内插设备1400基于在操作2210根据每个内插位置选择的不同滤波器,通过在整数像素单元的像素值1900至1906之间进行内插来产生所述至少一个分数像素单元的像素值1910、1920、1930和1940。
[0258] 在操作2230,图像内插设备1400根据内插位置选择用于在操作2220产生的所述至少一个分数像素单元的像素值1910、1920、1930和1940之间进行内插的不同滤波器。根据内插位置选择用于产生图19中示出的另一分数像素单元的像素值1950的不同滤波器,其中,所述像素值1950存在于所述至少一个分数像素单元的像素值1910、1920、1930和1940之间。
[0259] 在操作2240,图像内插设备1400基于在操作2230选择的滤波器,通过对所述至少一个分数像素单元的像素值1910、1920、1930和1940进行内插来产生另一分数像素单元的像素值1950。
[0260] 尽管以上已具体示出和描述了示例性实施例,但本领域普通技术人员将理解的是,在不脱离由权利要求及其等同物限定的本发明构思的精神和范围的情况下,可对其进行形式和细节上的各种改变。此外,根据示例性实施例的系统可被实现为计算机可读记录介质上的计算机可读代码。
[0261] 例如,如图1、2、4、5、9、和14中示出的根据示例性实施例的用于对图像进行编码的设备、用于对图像进行解码的设备、图像编码器和图像解码器中的每一个可包括与它们的单元连接的总线、连接到总线的至少一个处理器以及连接到总线以存储命令或存储接收的或产生的消息并且连接到所述至少一个处理器以执行所述命令的存储器。
[0262] 计算机可读记录介质可以是可存储将由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、紧密盘(CD)-ROM、磁带、软盘和光学数据存储装置。计算机可读记录介质还可分布于联网的计算机系统上,从而计算机可读代码可以以分布式方式被存储和执行。