对图像边界的编码单元进行编码和解码的方法和设备转让专利

申请号 : CN201080049482.X

文献号 : CN102640492B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 千岷洙

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

摘要 :

提供一种对图像进行编码的方法和设备。对包括超出当前图像的边界的区域的图像编码单元进行划分以获得具有比该图像编码单元的大小更小的大小的编码单元,并仅在未超出当前图像的边界的区域中执行编码。还提供了一种对通过对图像进行编码的方法和设备编码的图像进行解码的方法和设备。

权利要求 :

1.一种对图像进行解码的方法,所述方法包括:当第一编码单元不包括超出将被解码的图像的边界的区域时,从比特流获取指示第一编码单元是否被划分的信息,当所述信息指示第一编码单元被划分时,将第一编码单元划分为多个第二编码单元;

当第一编码单元包括超出所述图像的边界的区域时,将第一编码单元划分为多个第二编码单元;

当第二编码单元不包括超出所述图像的边界的区域并且被确定为不被划分时,对第二编码单元进行解码,其中:

所述图像被划分为多个最大编码单元,

最大编码单元根据所述信息被分层地划分为根据深度的一个或更多个编码单元,其中,所述深度包括第一深度和第二深度中的至少一个,当所述信息指示对第一深度进行划分时,第一深度的第一编码单元独立于邻近编码单元被划分为第二深度的四个正方形第二编码单元,当所述信息指示不对第一深度进行划分时,第一深度的第一编码单元被划分为一个或更多个预测单元,根据深度的编码单元的尺寸随着深度从第一深度增加到第二深度而减小。

2.如权利要求1所述的方法,还包括:确定第一编码单元的左边界或右边界是否超出所述图像的左边界或右边界。

3.如权利要求1所述的方法,还包括:确定第一编码单元的上边界或下边界是否超出所述图像的上边界或下边界。

说明书 :

对图像边界的编码单元进行编码和解码的方法和设备

技术领域

[0001] 与示例性实施例一致的设备和方法涉及对图像进行编码和解码,更具体地,涉及一种对图像边界的图像编码单元进行编码和解码的方法和设备。

背景技术

[0002] 在图像压缩方法(诸如,运动图像专家组(MPEG-1)、MPEG-2和MPEG-4H.264/MPEG-4先进视频编码(AVC))中,图像被划分为具有预定大小的块以对图像进行编码。然后,使用帧间预测或帧内预测对每个块进行预测编码。

发明内容

[0003] 技术方案
[0004] 示例性实施例提供一种对图像边界的编码单元进行编码和解码的方法和设备。
[0005] 示例性实施例还提供一种其上记录有用于执行对图像边界的编码单元进行编码和解码的方法的程序的计算机可读记录介质。
[0006] 有益效果
[0007] 根据本发明,可有效地对边界的块进行编码而不会发生开销。

附图说明

[0008] 通过参照附图详细描述示例性实施例,以上和其它方面将会变得更清楚,其中:
[0009] 图1是根据示例性实施例的用于对图像进行编码的设备的框图;
[0010] 图2是根据示例性实施例的用于对图像进行解码的设备的框图;
[0011] 图3是根据示例性实施例的分层编码单元;
[0012] 图4是根据示例性实施例的基于编码单元的图像编码器的框图;
[0013] 图5是根据示例性实施例的基于编码单元的图像解码器的框图;
[0014] 图6示出根据示例性实施例的最大编码单元、子编码单元和预测单元;
[0015] 图7示出根据示例性实施例的编码单元和变换单元;
[0016] 图8A和图8B示出根据示例性实施例的编码单元、预测单元和频率变换单元的划分形状;
[0017] 图9是根据另一示例性实施例的用于对图像进行编码的设备的框图;
[0018] 图10A和图10B示出根据示例性实施例的图像边界的编码单元;
[0019] 图11A和图11B示出根据示例性实施例的划分图像边界的编码单元的方法;
[0020] 图12A和图12B示出根据另一示例性实施例的划分图像边界的编码单元的方法;
[0021] 图13A和图13B示出根据示例性实施例的帧内预测方法;
[0022] 图14示出根据示例性实施例的对最大编码单元进行索引;
[0023] 图15是示出根据示例性实施例的对图像进行编码的方法的流程图;
[0024] 图16是根据另一示例性实施例的用于对图像进行解码的设备的框图;
[0025] 图17是示出根据示例性实施例的对图像进行解码的方法的流程图;
[0026] 图18A到图18G示出包括超出当前图像的边界的区域的第一编码单元中的预测模式;
[0027] 图19是示出根据另一示例性实施例的对图像进行编码的方法的流程图;
[0028] 图20A和图20B示出根据示例性实施例的对图像边界的编码单元进行编码的方法;
[0029] 图21是示出根据另一示例性实施例的对图像进行解码的方法的流程图;
[0030] 图22是示出根据另一示例性实施例的对图像进行编码的方法的流程图;
[0031] 图23A和图23B示出根据另一示例性实施例的对图像边界的编码单元进行编码的方法;
[0032] 图24是示出根据另一示例性实施例的对图像进行解码的方法的流程图。
[0033] 最佳模式
[0034] 根据示例性实施例的一方面,提供了一种对图像进行编码的方法,所述方法包括:确定第一编码单元是否包括超出当前图像的边界的区域;基于确定的结果划分第一编码单元,以获得至少一个第二编码单元;仅对作为划分的结果而产生的所述至少一个第二编码单元中的未超出当前图像的边界的第二编码单元进行编码。
[0035] 当执行对未超出当前图像的边界的第二编码单元进行编码的步骤时,关于第一编码单元的划分的信息不被编码。
[0036] 确定第一编码单元是否包括超出当前图像的边界的区域的步骤包括:确定第一编码单元的左边界或右边界是否超出当前图像的左边界或右边界。
[0037] 确定第一编码单元是否包括超出当前图像的边界的区域的步骤包括:确定第一编码单元的上边界或下边界是否超出当前图像的上边界或下边界。
[0038] 根据示例性实施例的另一方面,提供了一种对图像进行解码的方法,所述方法包括:确定第一编码单元是否包括超出当前图像的边界的区域;基于确定的结果,对与通过划分第一编码单元而产生的至少一个第二编码单元中的未超出当前图像的边界的第二编码单元相关的数据进行解析;对与未超出当前图像的边界的第二编码单元相关的数据进行解码。
[0039] 根据示例性实施例的另一方面,提供了一种对图像进行编码的设备,所述设备包括:确定器,确定第一编码单元是否包括超出当前图像的边界的区域;控制器,基于确定的结果划分第一编码单元,以获得至少一个第二编码单元;编码器,仅对作为划分的结果而产生的所述至少一个第二编码单元中的未超出当前图像的边界的第二编码单元进行编码。
[0040] 根据示例性实施例的另一方面,提供了一种用于对图像进行解码的设备,所述设备包括:确定器,确定第一编码单元是否包括超出当前图像的边界的区域;解析器,基于确定的结果,对与通过划分第一编码单元而产生的至少一个第二编码单元中的未超出当前图像的边界的第二编码单元相关的数据进行解析;解码器,对与未超出当前图像的边界的第二编码单元相关的数据进行解码。
[0041] 根据示例性实施例的另一方面,提供了一种其上记录有用于执行对图像进行编码和解码的方法的程序的计算机可读记录介质。

具体实施方式

[0042] 将参照附图更完整地描述示例性实施例,在附图中示例性实施例被显示。当诸如“…中的至少一个”的表达出现在列出的组件之后时,该表达修饰列出的全部组件而不是修饰列出的单个组件。在本说明书中,“图像”可表示视频的静止图像,或表示运动图像(即,视频本身)。
[0043] 图1是根据示例性实施例的用于对图像进行编码的设备100的框图。
[0044] 参照图1,用于对图像进行编码的设备100包括:最大编码单元划分器110、编码深度确定器120、图像数据编码器130和编码信息编码器140。
[0045] 最大编码单元划分器110可基于作为最大大小的编码单元的最大编码单元来划分当前图像或像条(slice)。也就是说,最大编码单元划分器110可划分当前图像或像条以获得至少一个最大编码单元。
[0046] 根据示例性实施例,可使用最大编码单元和深度表示编码单元。如上所述,最大编码单元指示当前图像的编码单元中的具有最大大小的编码单元,深度指示通过分层地减小编码单元获得的程度。随着深度增加,编码单元可从最大编码单元减小为最小编码单元,其中,最大编码单元的深度被定义为最小深度,最小编码单元的深度被定义为最大深度。由于根据深度的编码单元的大小随着深度增加从最大编码单元减小,因此第k深度的子编码单元可包括多个第(k+n)深度的子编码单元(k和n是等于或大于1的整数)。
[0047] 根据将被编码的图像的大小的增加,以更大的编码单元对图像进行编码可促成更高的图像压缩比率。然而,如果固定了更大的编码单元,则不可以通过连续反映变化的图像特性来有效地对图像进行编码。
[0048] 例如,当对诸如海或天空的平滑区域进行编码时,编码单元越大,压缩比率会越增加。然而,当对诸如人或建筑的复杂区域进行编码时,编码单元越小,压缩比率会越增加。
[0049] 因此,根据示例性实施例,针对每幅图像或每个像条设置具有不同大小的最大图像编码单元和最大深度。由于最大深度表示编码单元可减小的最大次数,因此可根据最大深度可变地设置包括在最大图像编码单元中的每个最小编码单元的大小。
[0050] 编码深度确定器120确定最大深度。可基于比率-失真(R-D)代价的计算来确定最大深度。可针对每幅图像或每个像条不同地确定最大深度,或可针对每个最大编码单元不同地确定最大深度。确定的最大深度被提供给编码信息编码器140,根据最大编码单元的图像数据被提供给图像数据编码器130。
[0051] 最大深度表示可包括在最大编码单元中的具有最小大小的编码单元,即,最小编码单元。换而言之,可根据不同的深度将最大编码单元划分为具有不同大小的子编码单元。稍后将参照图8A和图8B对此进行详细描述。另外,包括在最大编码单元中的具有不同大小的子编码单元可基于具有不同大小的处理单元被预测变换或频率变换(像素域的值可例如通过执行离散余弦变换 (DCT)被变换为频域的值)。换而言之,用于对图像进行编码的设备100可基于具有多种大小和多种形状的处理单元执行多个处理操作以进行图像编码。
为了对图像数据进行编码,执行诸如预测、频率变换和熵编码的处理操作,其中,可针对每个操作使用具有相同大小的处理单元,或者针对每个操作使用具有不同大小的处理单元。
[0052] 例如,用于对图像进行编码的设备100可选择不同于预定编码单元的处理单元来预测所述预定编码单元。
[0053] 当编码单元的大小是2N×2N时(其中,N是正整数),用于预测的处理单元可以是2N×2N、2N×N、N×2N和N×N。换而言之,可基于这样的形状的处理单元来执行运动预测:
编码单元的高度和宽度中的至少一个可被等分为二。以下,作为预测的基础的处理单元被定义为“预测单元”。
[0054] 预测模式可以是帧内模式、帧间模式和跳过模式中的至少一个,并且可仅针对具有特定大小或形状的预测单元执行特定预测模式。例如,可仅针对形状为正方形的大小为2N×2N和N×N的预测单元执行帧内模式。此外,可仅针对大小为2N×2N的预测单元执行跳过模式。如果在编码单元中存在多个预测单元,则可在针对每个预测单元执行预测之后选择具有最小编码误差的预测模式。
[0055] 可选择地,用于对图像进行编码的设备100可基于具有与编码单元不同大小的处理单元来对图像数据执行频率变换。对于编码单元的频率变换,可基于具有等于或小于编码单元的大小的大小的数据单元执行频率变换。以下,将作为频率变换的基础的处理单元定义为“变换单元”。
[0056] 编码深度确定器120可使用基于拉格朗日乘子的R-D优化来确定包括在最大编码单元中的子编码单元。换而言之,编码深度确定器120可确定从最大编码单元划分的多个子编码单元具有哪一种形状,其中,所述多个子编码单元根据它们的深度具有不同的大小。图像数据编码器130通过基于编码深度确定器120所确定的划分形状对最大编码单元进行编码来输出比特流。
[0057] 编码信息编码器140对关于编码深度确定器120所确定的最大编码单元的编码模式的信息进行编码。换而言之,编码信息编码器140通过对关于最大编码单元的划分形状的信息、关于最大深度的信息和关于每个深度的子编码单元的编码模式的信息进行编码来输出比特流。关于子编码单元的编码模式的信息可包括关于子编码单元的预测单元的信息、关于每个预测单元的预 测模式的信息和关于子编码单元的变换单元的信息。
[0058] 关于最大编码单元的划分形状的信息可以是指示每个编码单元是否将被划分的信息。例如,当最大编码单元被划分和编码时,指示最大编码单元是否将被划分的信息被编码,甚至当通过划分最大编码单元而产生的子编码单元被进一步划分和编码时,指示每个子编码单元是否将被划分的信息被编码。指示划分的信息可以是指示划分的标志信息的形式。
[0059] 由于针对每个最大编码单元存在具有不同大小的子编码单元,并且必须针对每个子编码单元确定关于编码模式的信息,因此,可针对一个最大编码单元确定关于至少一个编码模式的信息。
[0060] 用于对图像进行编码的设备100可通过根据深度的增加而将最大编码单元的高度和宽度两者等分为二来产生子编码单元。也就是说,当第k深度的编码单元的大小为2N×2N时,第(k+1)深度的编码单元的大小为N×N。
[0061] 因此,根据示例性实施例的用于对图像进行编码的设备100可考虑图像特性,基于最大编码单元的大小和最大深度来针对每个最大编码单元确定最佳划分形状。通过考虑图像特性可变地控制最大编码单元的大小并通过将最大编码单元划分为具有不同深度的子编码单元来对图像进行编码,可更有效地对具有不同分辨率的图像进行编码。
[0062] 图2是根据示例性实施例的用于对图像进行解码的设备200的框图。
[0063] 参照图2,用于对图像进行解码的设备200包括图像数据获取单元210、编码信息提取器220和图像数据解码器230。
[0064] 图像数据获取单元210通过解析用于对图像进行解码的设备200接收的比特流来根据最大编码单元获取图像数据,并将图像数据输出到图像数据解码器230。图像数据获取单元210可从当前图像或像条的头提取关于当前图像或像条的最大编码单元的信息。换而言之,图像数据获取单元210以最大编码单元划分比特流,从而图像数据解码器230可根据最大编码单元对图像数据进行解码。
[0065] 编码信息提取器220通过解析用于对图像进行解码的设备200接收的比特流,从当前图像的头提取与最大编码单元、最大深度、最大编码单元的划分形状、子编码单元的编码模式有关的信息。关于划分形状的信息和关于编码模式的信息被提供给图像数据解码器230。
[0066] 关于最大编码单元的划分形状的信息可包括与包括在最大编码单元中的 具有根据深度的不同大小的子编码单元有关的信息。如上所述,关于最大编码单元的划分形状的信息可以是针对每个编码单元指示划分编码信息的信息,例如,标志信息。
[0067] 关于编码模式的信息可包括关于根据子编码单元的预测单元的信息、关于预测模式的信息和关于变换单元的信息。
[0068] 图像数据解码器230通过基于编码信息提取器220提取的信息对每个最大编码单元的图像数据进行解码,来恢复当前图像。
[0069] 图像数据解码器230可基于关于最大编码单元的划分形状的信息对包括在最大编码单元中的子编码单元进行解码。解码处理可包括运动预测处理和逆频率变换处理,运动预测处理包括帧内预测和运动补偿。
[0070] 图像数据解码器230可基于关于根据子编码单元的预测单元的信息和关于预测模式的信息执行帧内预测或帧间预测,以预测子编码单元。图像数据解码器230还可基于关于子编码单元的变换单元的信息执行针对每个子编码单元的逆频率变换。
[0071] 图3是示出根据示例性实施例的分层编码单元。
[0072] 参照图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的框图。
[0080] 帧内预测单元410对当前帧405中的帧内模式的预测单元执行帧内预测,运动估计器420和运动补偿器425使用当前帧405和参考帧495对帧间模式的预测单元执行帧间预测和运动补偿。
[0081] 基于从帧内预测单元410、运动估计器420和运动补偿器425输出的预测单元产生残差值,通过经过频率变换单元430和量化器440将产生的残差值输出作为量化的变换系数。
[0082] 量化的变换系数通过经过逆量化器460和逆频率变换单元470被恢复为残差值,恢复的残差值通过解块单元480和环路滤波单元490被后处理并输出作为参考帧495。量化的变换系数可通过经过熵编码器450被输出为比特流455。
[0083] 为了基于根据示例性实施例的编码方法执行编码,图像编码器400的部件(即,帧内预测单元410、运动估计器420、运动补偿器425、频率变换单元430、量化器440、熵编码器450、逆量化器460、逆频率变换单元470、解块单元480和环路滤波单元490)基于最大编码单元、根据深度的子编码单元、预测单元和变换单元执行图像编码处理。
[0084] 图5是根据示例性实施例的基于编码单元的图像解码器500的框图。
[0085] 比特流505通过解析器510,从而将被解码的编码的图像数据和用于解码所必须的编码信息被解析。编码的图像数据通过经过熵解码器520和逆量化器530被输出为逆量化的数据,并通过经过逆频率变换单元540被恢复为残差值。残差值通过与帧内预测单元550的帧内预测结果或运动补偿器560的运动补偿结果相加而根据编码单元被恢复。恢复的编码单元通过经过解块单元570和环路滤波单元580而被用于后面的编码单元或后面的图像的预测。
[0086] 为了基于根据示例性实施例的解码方法执行解码,图像解码器500的部 件(即,解析器510、熵解码器520、逆量化器530、逆频率变换单元540、帧内预测单元550、运动补偿器560、解块单元570和环路滤波单元580)基于最大编码单元、根据深度的子编码单元、预测单元和变换单元执行图像解码处理。
[0087] 具体地,帧内预测单元550和运动补偿器560通过考虑最大编码单元和深度确定子编码单元中的预测单元和预测模式,逆频率变换单元540通过考虑变换单元的大小执行逆频率变换。
[0088] 图6示出根据示例性实施例的最大编码单元、子编码单元和预测单元。
[0089] 根据示例性实施例的用于对图像进行编码的设备100和用于对图像进行解码的设备200考虑图像特性使用分层编码单元来执行编码和解码。可根据图像特性适应性地设置最大编码单元和最大深度,或可根据用户的要求可变地设置最大编码单元和最大深度。
[0090] 根据示例性实施例的分层编码单元结构600示出高度和宽度为64×64且最大深度为4的最大编码单元610。深度沿着分层编码单元结构600的垂直轴增加,随着深度增加,子编码单元620到650的高度和宽度减小。沿着分层编码单元结构600的水平轴显示了最大编码单元610和子编码单元620到650的预测单元。
[0091] 最大编码单元610深度为0,编码单元的大小(即,高度和宽度)为64×64。深度沿着垂直轴增加,存在大小为32×32且深度为1的子编码单元620、大小为16×16且深度为2的子编码单元630、大小为8×8且深度为3的子编码单元640和大小为4×4且深度为4的子编码单元650。大小为4×4且深度为4的子编码单元650是最小编码单元。
[0092] 参照图6,根据每个深度,沿着水平轴显示了预测单元的示例。也就是说,深度为0的最大编码单元610的预测单元可以是大小等于编码单元610的预测单元(即,64×64),或者是大小为64×32的预测单元612,或者是大小为32×64的预测单元614,或者是大小为32×32的预测单元616(预测单元612、614、616的大小均小于编码单元610的大小64×64)。
[0093] 深度为1且大小为32×32的编码单元620的预测单元可以是大小等于编码单元620的预测单元(即,32×32),或者是大小为32×16的预测单元622,或者是大小为16×32的预测单元624,或者是大小为16×16的预测单元626(预测单元622、624、626的大小均小于编码单元620的大小32×32)。
[0094] 深度为2且大小为16×16的编码单元630的预测单元可以是大小等于编码单元630的预测单元(即,16×16),或者是大小为16×8的预测单元632,或者是大小为8×16的预测单元634,或者是大小为8×8的预测单元636(预测单元632、634、636的大小均小于编码单元630的大小16×16)。
[0095] 深度为3且大小为8×8的编码单元640的预测单元可以是大小等于编码单元640的预测单元(即,8×8),或者是大小为8×4的预测单元642,或者是大小为4×8的预测单元644,或者是大小为4×4的预测单元646(预测单元642、644、646的大小均小于编码单元640的大小8×8)。
[0096] 最后,深度为4且大小为4×4的编码单元650是最小编码单元和最大深度的编码单元,编码单元650的预测单元是大小为4×4的预测单元650。
[0097] 图7示出根据示例性实施例的编码单元和变换单元。
[0098] 根据示例性实施例的用于对图像进行编码的设备100和用于对图像进行解码的设备200利用最大编码单元本身或子编码单元执行编码,子编码单元等于或小于最大编码单元并且从最大编码单元被划分。
[0099] 在编码处理中,用于频率变换的变换单元的大小被选择为不大于相应编码单元的大小。例如,当当前编码单元710具有64×64的大小时,可使用具有大小为32×32的变换单元720来执行频率变换。
[0100] 图8A和图8B示出根据示例性实施例的编码单元、预测单元和频率变换单元的划分形状。
[0101] 图8A示出根据示例性实施例的编码单元和预测单元。
[0102] 图8A的左侧显示由根据示例性实施例的用于对图像进行编码的设备100为了对最大编码单元810进行编码而选择的划分形状。用于对图像进行编码的设备100将最大编码单元810划分为各种形状,执行编码,并通过基于R-D代价将各种划分形状的编码结果相互比较来选择最佳划分形状。当最大编码单元810按其原样被编码是最佳时,可如图8A和图8B所示不划分最大编码单元810来对最大编码单元810进行编码。
[0103] 参照图8A的左侧,通过将深度为0的最大编码单元810划分为深度等于或大于1的子编码单元来对最大编码单元810进行编码。也就是说,最大编码单元810被划分为深度为1的4个子编码单元,并且所有或部分的深度为1的子编码单元被划分为深度为2的子编码单元。
[0104] 深度为1的子编码单元中的位于右上侧的子编码单元和位于左下侧的子 编码单元被划分为深度等于或大于2的子编码单元。深度等于或大于2的子编码单元中的一部分可被划分为深度等于或大于3的子编码单元。
[0105] 图8A的右侧显示最大编码单元810的预测单元860的划分形状。
[0106] 参照图8A的右侧,最大编码单元810的预测单元860可被划分为与最大编码单元810不同。换而言之,每个子编码单元的预测单元可以小于相应的子编码单元。
[0107] 例如,深度为1的子编码单元中的位于右下侧的子编码单元854的预测单元可以小于编码单元810的子编码单元854。另外,深度为2的子编码单元814、816、818、828、850和852中的一部分子编码单元(814、816、850和852)的预测单元可以分别小于子编码单元814、816、850和852。另外,深度为3的子编码单元822、832和848的预测单元可以分别小于子编码单元822、832和848。预测单元可具有这样的形状,该形状的各子编码单元可沿高度或宽度的方向被等分为二,或者该形状的各子编码单元沿高度或宽度的方向被等分为四。
[0108] 图8B示出根据示例性实施例的预测单元和变换单元。
[0109] 图8B的左侧显示了图8A的右侧中显示的最大编码单元810的预测单元的划分形状,图8B的右侧显示了最大编码单元810的变换单元的划分形状。
[0110] 参照图8B的右侧,变换单元870的划分形状可被设置为与预测单元860不同。
[0111] 例如,即使深度为1的编码单元854的预测单元被选择为具有编码单元854的高度被等分为二的形状,变换单元也可被选择为具有与编码单元854相同的形状。类似地,即使深度为2的编码单元814和850的预测单元被选择为具有编码单元814和850各自的高度被等分为二的形状,变换单元也可被选择为具有与编码单元814和850各自的原始大小相同的大小。
[0112] 变换单元可被选择为具有小于预测单元的大小。例如,当深度为2的编码单元852的预测单元被选择为具有编码单元852的宽度被等分为二的形状时,变换单元可被选择为具有编码单元852沿高度和宽度的方向被等分为四的形状,并且具有小于预测单元的形状的大小。
[0113] 图9是根据另一示例性实施例的用于对图像进行编码的设备900的框图。
[0114] 参照图9,根据当前示例性实施例的用于对图像进行编码的设备900包括确定器910、控制器920和编码器930。用于对图像进行编码的设备900可 以是基于编码单元、预测单元和变换单元对图像进行编码的设备,其中,编码单元、预测单元和变换单元的大小根据如上所述的深度逐步变化。
[0115] 确定器910确定输入到用于对图像进行编码的设备900以执行编码的第一编码单元是否包括超出当前图像的边界的区域。
[0116] 当第一编码单元不包括超出当前图像的边界的区域时,用于对图像进行编码的设备900按照第一编码单元原样对图像进行编码。用于对图像进行编码的设备900还可在不划分第一编码单元的情况下执行预测和变换(例如,DCT),或者也可如参照图2、图6、图8A和图8所述,根据预定深度将第一编码单元划分为多个编码单元。
[0117] 然而,当第一编码单元包括超出当前图像的边界的区域时,用于对图像进行编码的设备900将第一编码单元划分为第二编码单元,并仅对未超出当前图像的边界的第二编码单元进行编码。
[0118] 换而言之,用于对图像进行编码的设备900通过根据第一编码单元是否包括超出当前图像的边界的区域,使用不同的编码方法来对第一编码单元进行编码。因此,确定器910首先确定第一编码单元是否包括超出当前图像的边界的区域。稍后将参照图10A和图
10B对此进行描述。
[0119] 图10A和图10B示出根据示例性实施例的图像边界的编码单元。
[0120] 参照图10A和图10B,第一编码单元1020延伸超出当前图像的边界1010。当当前图像的大小不是最大编码单元的大小的倍数时,例如,当最大编码单元的大小被设置为32×32以对当前图像进行编码并且当前图像的宽度或高度不是32的倍数时,最大编码单元可包括超出当前图像的边界1010的区域1024。类似地,第一编码单元1040可包括超出当前图像的边界1030的区域1044,如图10B中所示。在图10A中,当前图像的边界1010的左侧是当前图像的内部区域,当前图像的边界1010的右侧是当前图像的外部区域。在图
10B中,当前图像的边界1030的上部是当前图像的内部区域,当前图像的边界1030的下部是当前图像的外部区域。
[0121] 图10A和图10B示出第一编码单元1020或1040延伸超出当前图像的右边界和下边界的情况。然而,第一编码单元1020或1040也可延伸超出当前图像的左边界和上边界。
[0122] 确定器910将第一编码单元1020或1040的边界与当前图像的边界进行比较,以确定第一编码单元1020或1040是否包括超出当前图像的边界1010 或1030的区域。
[0123] 当第一编码单元1020的右边界超出当前图像的右边界,或者第一编码单元1020的左边界超出当前图像的左边界时,确定器910可确定第一编码单元1020包括超出当前图像的边界1010的区域。另外,当第一编码单元1040的下边界超出当前图像的下边界或第一编码单元1040的上边界超出当前图像的上边界时,确定器910可确定第一编码单元1040包括超出当前图像的边界的区域。
[0124] 参照回到图9,当确定器910确定第一编码单元1020或1040包括超出当前图像的边界1010或1030的区域时,控制器920将第一编码单元1020或1040划分为第二编码单元。
[0125] 根据示例性实施例的用于对图像进行编码的设备900可通过使用如上所述的分层编码单元来对图像进行编码和解码。用于对图像进行编码的设备900可通过将最大编码单元划分为具有预定深度的子编码单元来对图像进行编码和解码。在这里,深度指示从最大编码单元的大小减小到预定的子编码单元的大小的步进程度。
[0126] 控制器920将第一编码单元1020划分为根据深度的第二编码单元。例如,当第一编码单元1020是具有深度0的最大编码单元时,控制器920可将第一编码单元1020划分为至少一个具有深度1的编码单元。控制器920还可将第一编码单元1020划分为具有比深度为1的编码单元更大的深度的编码单元,即,划分为具有深度2或更大深度的编码单元。以下将参照图11A和图11B对此进行详细描述。
[0127] 图11A和图11B示出根据示例性实施例的划分图像边界的编码单元的方法。
[0128] 图11A示出图10A中示出的第一编码单元1020被划分为第二编码单元1110、1120、1130和1140的情况。如参照图10A所描述的,当第一编码单元1020延伸超出图像边界时,第一编码单元1020包括超出当前图像的边界的区域1024。
[0129] 第一编码单元1020被划分为具有不同深度的第二编码单元1110、1120、1130和1140,并且第一编码单元1020与未超出当前图像的边界的区域中的第二编码单元1110和
1120有区别,与超出当前图像的边界的区域中的第二编码单元1130和1140有区别。
[0130] 图11B示出了图10B中示出的第一编码单元1040被划分为第二编码单元1150、1160、1170和1180的情况。
[0131] 第一编码单元1040被划分为具有不同深度的第二编码单元1150、1160、1170和1180,并且第一编码单元1040与未超出当前图像的边界的区域中的第二编码单元1150和
1160有区别,与超出当前图像的边界的区域中的第二编码单元1170和1180有区别。
[0132] 图11A和图11B示出了当第一编码单元1020或1040被划分为具有相同大小的四个第二编码单元的情况,第一编码单元1020或1040与未超出当前图像的边界的区域中的第二编码单元有区别,与超出当前图像的边界的区域中的第二编码单元有区别。然而,即使第一编码单元1020或1040被划分为具有相同大小的四个第二编码单元,第一编码单元1020或1040可以与未超出当前图像的边界的区域中的第二编码单元没有区别,或者与超出当前图像的边界的区域没有区别。将参照图12A和图12B对此进行详细描述。
[0133] 图12A和图12B示出根据另一示例性实施例的划分图像边界的编码单元的方法。
[0134] 如图12A中所示,当第一编码单元1220位于图像边界处时,即使第一编码单元1220被划分为第二编码单元1230、1240、1250和1260,第一编码单元1220可以与超出当前图像的边界的区域中的第二编码单元没有区别,或者与未超出当前图像的边界的区域中的第二编码单元没有区别。其原因在于第二编码单元1250和1260仍包括超出当前图像的边界的区域和未超出当前图像的边界的区域。
[0135] 因此,当第一编码单元1220位于图像边界处时,第一编码单元1220被重复划分,如图12A中所示。在图12A中,第二编码单元1250和1260被进一步划分以产生第三编码单元1252到1258和第三编码单元1262到1268。
[0136] 通过将第二编码单元1250和1260进一步划分为具有比第二编码单元1250和1260更小的大小的第三编码单元,第一编码单元1220可与未超出当前图像的边界的区域中的编码单元1230、1240、1252、1254、1262和1264有区别,并与超出当前图像的边界的区域中的编码单元1256、1258、1266和1268有区别。
[0137] 参照回到图9,当控制器920将第一编码单元1020、1040或1220划分为与超出当前图像的边界的区域中的编码单元有区别并且与未超出当前图像 的边界的区域中的编码单元有区别时(如图11A、图11B和图12B中所示),编码器930仅对通过划分第一编码单元产生的编码单元中的、未超出当前图像的边界的区域中的编码单元进行编码。
[0138] 当第一编码单元不包括超出当前图像的边界的区域时,所有的第一编码单元均被编码。用于对图像进行编码的设备900还可在不划分第一编码单元的情况下执行预测和频率变换(例如,DCT),或者还可将第一编码单元划分为根据预定深度的多个编码单元,如以上参照图2、图6、图8A和图8B所述。
[0139] 然而,当第一编码单元包括超出当前图像的边界的区域时,根据控制器920的划分结果仅对未超出当前图像的边界的区域的像素值进行编码。
[0140] 位于图11A的左侧的第二编码单元1110和1120被编码,位于图11B的上部的第二编码单元1150和1160被编码。位于图12B的左侧的第二编码单元1230和1240被编码,位于图12B的左侧的第三编码单元1252、1254、1262和1262被编码。基于预定预测单元预测未超出当前图像的边界的编码单元,并基于预定变换单元变换根据预测的结果产生的残差值。
[0141] 根据示例性实施例的用于对图像进行编码的设备900可仅对位于图像边界处的第一像素单元中的未超出当前图像的边界的像素值进行编码,从而可防止由于对超出当前图像的边界的非必要像素值进行编码而降低压缩比率。
[0142] 另外,关于编码器930的划分的信息(例如,指示编码器930的划分的标志信息)可被可选地编码。当第一编码单元延伸超出图像边界时,控制器920划分第一编码单元。由于划分对于仅对未超出当前图像的边界的区域的像素值进行编码是必须的,因此关于第一编码单元的划分的信息不必被编码。其原因是,即使关于编码器930的划分的信息没有被单独地编码,解码器可知道第一编码单元被划分。然而,根据另一示例性实施例,即使第一编码单元的划分是必须的,也可单独地对关于编码器930的划分的信息进行编码。
[0143] 然而,由于编码器930没有通过使用如上所述的对图像进行编码的方法来对超出当前图像的边界的区域中的像素值进行编码,因此,在其它编码单元的预测中不可使用延伸超出当前图像的边界的第一编码单元。将参照图13A和图13B对此进行详细描述。
[0144] 图13A和图13B示出根据示例性实施例的帧内预测方法。
[0145] 参照图13A,在根据当前示例性实施例的帧内预测方法中,当预定预测 单元1310被帧内预测时,可使用先前已经被编码的邻近像素值1320。具体地,在根据当前示例性实施例的帧内预测中,可在预测单元1310的左下侧的纵向方向上进一步使用具有高度“PuSize”的像素。
[0146] 在根据示例性实施例的对图像进行编码的方法中,使用分层编码单元对图像进行编码,如图8A中所示。因此,可使用靠近预测单元1310左侧的像素以及靠近预测单元1310的左下侧的像素执行帧内预测。例如,当图8A中示出的子编码单元830被帧内预测时,可使用靠近子编码单元830的左侧和左下侧的像素(即,包括在子编码单元828中的像素)以及靠近子编码单元830的上部和右上侧的像素(即,包括在子编码单元812中的像素)执行帧内预测。
[0147] 然而,靠近编码单元的右上侧和左下侧的像素可能是不可用的。当编码单元1330被编码时,如图13中所示,靠近编码单元1330的右上侧的像素值中的某些像素值1346可不被使用。其原因在于,当位于编码单元1340的右上侧的编码单元1340被编码时,超出当前图像的边界1350的区域中的编码单元1344没有被编码。因此,在编码单元1330的帧内预测中可使用的邻近像素可以仅是靠近编码单元1330的上部、左侧和左下侧的像素。
[0148] 如上所述,编码器930确定“cux+cuSize+cuSize”是否大于“Frame_width”,以确定是否可使用靠近编码单元1330的右上侧的像素。“cux”是编码单元1330的左边界的X坐标,“cuSize”是编码单元1330的宽度和高度。“Frame_width”是当前图像的宽度。
[0149] 另外,如上所述,编码器930确定“cuy+cuSize+cuSize”是否大于“Frame_height”,以确定是否可使用靠近编码单元1330的左下侧的像素。“cuy”是编码单元1330的上边界的Y坐标,“cuSize”是编码单元1330的宽度和高度。“Frame_height”是当前图像的高度。
[0150] 编码器930可基于第一编码单元是否包括超出当前图像的边界的区域来对关于编码方法的信息(即,关于编码模式的信息)进行编码。当第一编码单元包括超出当前图像的边界的区域时,编码器930可对关于编码模式的信息进行编码,从而使第一编码模式可指示第二编码模式。
[0151] 将参照图18A到图18G描述对关于第一编码单元中的预测模式的信息进行编码的情况。
[0152] 图18A到图18G示出包括超出当前图像的边界的区域的、大小为2N× 2N的第一编码单元中的预测模式。图18A到图18G的阴影部分指示超出当前图像的边界的区域。
[0153] 参照图18A,大小为2N×2N的第一编码单元的右边的N×2N区域是超出当前图像的边界的区域。当编码器930对图18A中示出的第一编码单元进行编码并选择大小为2N×2N的第一编码单元中的预测模式时,没有在超出当前图像的边界的区域中执行预测。
因此,编码器930在N×2N预测模式下执行预测。
[0154] 换而言之,即使编码器930将第一编码单元的预测模式设置为2N×2N预测模式,仍然以与第一编码单元的预测模式被设置为N×2N预测模式的方式相同的方式执行预测。因此,不必单独设置N×2N,并且关于2N×2N预测模式的信息可用作关于N×2N预测模式的信息。这与减少预测模式的类型具有相同的效果。因此,编码器930可减少对关于预测模式的信息进行编码所需的比特的数量。
[0155] 类似地,在图18B中,编码器930可通过将第一编码单元的预测模式设置为2N×2N预测模式来替换2N×N预测模式。
[0156] 在图18C中,编码器930可通过将第一编码单元的预测模式设置为2N×2N预测模式来替换2N×N/2预测模式。在图18C中,预测区域的高度与图18B相比被减小1/2。然而,与图18B中类似,仅在未超出当前图像的边界的区域中执行预测。因此,可通过将第一编码单元的预测模式设置为2N×2N来替换2N×N/2预测模式。
[0157] 在图18D中,编码器930可通过将第一编码单元的预测模式设置为N×N预测模式来替换2N×N预测模式。当在2N×N预测模式下预测图18D中示出的第一编码单元并且第一编码单元的右半边包括在超出当前图像的边界的区域中时,与在N×N预测模式下相同地预测大小为N×N的第一编码单元。因此,可用N×N预测模式来替换2N×N预测模式。
[0158] 在图18E中,编码器930可通过将第一编码单元的预测模式设置为2N×N预测模式来替换2N×N/2预测模式。基于高度与图18B相比被减小1/2的两个预测单元来执行预测。因此,第一编码单元的预测模式可被设置为高度从图18B中设置的2N×2N预测模式减小1/2的2N×N预测模式。
[0159] 在图18F中,编码器930可通过将第一编码单元的预测模式设置为2N×2N预测模式来替换N×N预测模式。与图18A、图18B和图18C类似, 也可仅在未超出当前图像的边界的区域中执行图18F中示出的第一编码单元的预测。因此,可通过将第一编码单元的预测模式设置为2N×2N预测模式来替换N×N预测模式。
[0160] 在图18G中,编码器930可通过将第一编码单元的预测模式设置为N×2N预测模式来替换N/2×N预测模式。基于高度与图18F相比被减小1/2的两个预测单元来执行预测。因此,第一编码单元的预测模式可被设置为宽度从图18B中设置的2N×2N预测模式减小1/2的N×2N预测模式。
[0161] 可利用以下编程语法来执行参照图9到图13的如上所述的用于对图像进行编码的设备900的编码。
[0162]
[0163] 参 照 该 编 程 语 法,通 过 使 用 诸 如“UInt uiLPelX”、“UInt uiRPelX”、“UIntuiTPelY”和“UInt uiBPelY”的函数来获得第一编码单元的左边界的X坐标、右边界的X坐标、上边界的Y坐标和下边界的Y坐标,并使用“pcCU->getSlice()->getWidth()”和“pcCU->getSlice()->getHeight()”来获得当前图像的宽度和高度。
[0164] 然后,第一编码单元的左边界的X坐标和当前图像的宽度被相互比较,第一编码单元的下边界的Y坐标和当前图像的高度被相互比较。当第一编码单元的左边界的X坐标大于当前图像的宽度,或者第一编码单元的下边界的Y坐标大于当前图像的高度时,通过调用函数“go_next_depth_process()”,将第一编码单元划分为具有下一深度(即,比第一编码单元的深度“k”更大的深度“k+1”)的第二编码单元,并仅对未超出当前图像的边界的第二编码单元进行编码。
[0165] 然而,即使用于对图像进行编码的设备900仅对未超出当前图像的边界 的区域进行编码(如图9到图13中所示),仍假设超出当前图像的边界的区域也被编码来设置最大编码单元的地址。将参照图14对此进行详细描述。
[0166] 图14示出根据示例性实施例的对最大编码单元进行索引。
[0167] 参照图14,当当前图像1410被划分为具有预定大小的最大编码单元并被编码时,如果当前图像1410的宽度“Frame_width”和高度“Frame_height”不是最大编码单元的倍数,则最大编码单元延伸超出当前图像1410的右边界和下边界,如图14中所示。
[0168] 在图9到图13中,当用于图像进行编码的设备900对延伸超出当前图像的边界的最大编码单元进行编码时,仅在未超出当前图像的边界的区域中执行编码。然而,当设置了最大编码单元的地址时,最大编码单元的地址不是基于“Frame_width”和“Frame_height”,而是基于“Frame_widthN”和“Frame_heightN”。换而言之,通过将地址分配给延伸超出当前图像的右边界和下边界的最大编码单元来设置最大编码单元的地址。
[0169] 例如,位于第一行的最右部分处的最大编码单元延伸超出当前图像的右边界,仅在未超出当前图像的边界的区域中执行编码,并将“P”分配给最大编码单元作为地址。因此,位于第二行的最左部分处的最大编码单元的地址为“P+1”。可如下计算“Frame_widthN”和“Frame_heightN”。
[0170] 如果Frame_width%LcuSize不等于0,
[0171] Frame_widthN=(Frame_width/LcuSize+1)*LcuSize
[0172] 如果Frame_height%LcuSize不等于0,
[0173] Frame_heightN=(Frame_height/LcuSize+1)*LcuSize
[0174] 在以上计算中,“Frame_width%LcuSize”表示通过将“Frame_width”除以“LcuSize”的所获得的余数,“Frame_height%LcuSize”表示通过将“Frame_height”除以“LcuSize”所获得的余数。“Frame_width/LcuSize”表示通过将“Frame_width”除以“LcuSize”所获得的商,“Frame_height/LcuSize”表示通过将“Frame_height”除以“LcuSize”所获得的商。当最大编码单元具有完美的矩形形状时,“LcuSize”表示最大编码单元的宽度和高度。
[0175] 图15是示出根据示例性实施例的对图像进行编码的方法的流程图。
[0176] 参照图15,在操作1510,用于对图像进行编码的设备900确定第一编码单元是否包括超出当前图像的边界的区域。由于第一编码单元延伸超出图像边界(如图10A、图10B和图12A中所示),用于对图像进行编码的设备900 确定第一编码单元是否包括超出当前图像的边界的区域。为了确定第一编码单元是否包括超出当前图像的边界的区域,当前图像的边界和第一编码单元的边界被相互比较。用于对图像进行编码的设备900确定第一编码单元的左边界或右边界是否超出当前图像的左边界或右边界,或者第一编码单元的上边界或下边界是否超出当前图像的上边界或下边界。
[0177] 在操作1520,用于对图像进行编码的设备900基于在操作1510确定的结果对第一编码单元进行划分以获得第二编码单元。用于对图像进行编码的设备900可划分第一编码单元,以获得均具有大于第一编码单元的深度“k”的深度“k+1”的第二编码单元。虽然第一编码单元已经被划分以获得第二编码单元,但是如果再次确定第二编码单元包括超出图像边界的区域,则对第一编码单元进行划分,直到通过重复划分所产生的编码单元不包括超出图像边界的区域为止。
[0178] 在操作1530,用于对图像进行编码的设备900仅对作为操作1520的划分结果而产生的第二编码单元中的未超出图像边界的第二编码单元进行编码。用于对图像进行编码的设备900预测第二编码单元,产生残差值并对残差值执行变换、量化和熵编码。另外,由于延伸超出图像边界的第一编码单元的划分对于用于对图像进行编码的设备900是必要的,因此用于对图像进行编码的设备900可不对关于第一编码单元的划分的信息进行编码。
[0179] 另外,如以上参照图18A到图18G所描述,用于对图像进行编码的设备900可对关于根据第一编码单元是否包括超出图像边界的区域而编码的编码模式的信息进行编码。
[0180] 图16是根据另一示例性实施例的用于对图像进行解码的设备1600的框图。
[0181] 参照图16,根据当前示例性实施例的用于对图像进行解码的设备1600包括确定器1610、解析器1620和解码器1630。
[0182] 确定器1610确定将被解码的第一编码单元是否包括超出当前图像的边界的区域。确定器1610可基于先前已经被解码的编码单元确定将被解码的第一编码单元是否包括超出当前图像的边界的区域。例如,在图14中,当刚刚已经被解码的编码单元是“P-1”编码单元时,由于将被解码的第一编码单元延伸超出当前图像的边界,因此确定器1610可确定第一编码单元包括超出当前图像的边界的区域。
[0183] 换而言之,确定器1610确定当前将被解码的第一编码单元的左边界和右边界是否超出当前图像的左边界或右边界,或者第一编码单元的上边界或下边界是否超出当前图像的上边界或下边界,从而确定将被解码的第一编码单元是否延伸超出了当前图像的边界。
[0184] 解析器1620接收图像比特流,如果确定第一编码单元包括超出当前图像的边界的区域,则仅对与通过划分第一编码单元而产生的第二编码单元中的未超出图像边界的第二编码单元有关的数据进行解析。第二编码单元可以是具有大于第一个编码单元的深度“k”的深度“k+1”的编码单元。另外,如果确定第一编码单元不包括超出图像边界的区域,则解析器1620解析关于第一编码单元的所有数据。
[0185] 当确定第一编码单元包括超出图像边界的区域并且解析器1620仅解析了与未超出图像边界的第二编码单元有关的数据时,可不解析关于第一编码单元的划分的信息(例如,标志信息)。当延伸超出图像边界的第一编码单元的划分是必要的并且关于第一编码单元的划分的信息没有被编码时,不存在将被解析的信息,并且关于第一编码单元的划分的信息不必被解析。
[0186] 然而,如果确定第一编码单元包括超出图像边界的区域,则第一编码单元的划分是必要的并且关于第一编码单元的划分的信息被单独编码,并且可解析关于第一编码单元的划分的信息。
[0187] 由于仅对未超出图像边界的第二编码单元的残差值进行编码,因此无论是否解析关于第一编码单元的划分的信息,仅对与通过划分第一编码单元而产生的第二编码单元中的未超出图像边界的第二编码单元有关的数据进行解析。
[0188] 解码器1630对解析器1620解析的关于未超出当前图像的边界的第二编码单元的数据进行解码。解码器1630对关于未超出当前图像的边界的第二编码单元的数据执行熵解码、逆量化和逆变换(例如,逆DCT)以恢复残差值,并将通过对第二编码单元执行帧内预测或帧间预测而产生的预测值与恢复的残差值相加,以恢复第二编码单元。
[0189] 在解码中使用的设置编码单元的地址的方法与图14的方法相同,在解码期间可用于帧内预测的邻近像素与图13A和图13B的邻近像素相同。
[0190] 如以上参照图18A到图18G所述,关于在解码器1630执行解码时使用的第一编码单元的编码模式的信息可以是关于根据第一编码单元是否包括超 出当前图像的边界的区域而编码的编码模式的信息。
[0191] 图17是示出根据示例性实施例的对图像进行解码的方法的流程图。
[0192] 参照图17,在操作1710,用于对图像进行解码的设备1600确定将被解码的第一编码单元是否包括超出当前图像的边界的区域。用于对图像进行解码的设备1600通过参照先前已经被解码的编码单元,确定第一编码单元的右边界或左边界是否超出当前图像的右边界或左边界,或者第一编码单元的上边界或下边界是否超出当前图像的上边界或下边界。
[0193] 在操作1720,用于对图像进行解码的设备1600基于在操作1710的确定结果解析与通过划分第一编码单元而产生的第二编码单元中的未超出图像边界的第二编码单元有关的数据。如果在操作1710确定第一编码单元包括超出当前图像的边界的区域,则解析与通过划分第一编码单元而产生的第二编码单元中的未超出图像边界的第二编码单元有关的数据。如上所述,第二编码单元可以是具有大于第一编码单元的深度“k”的深度“k+1”的编码单元。
[0194] 在操作1730,用于对图像进行解码的设备1600仅对在操作1720解析的与未超出当前图像的边界的第二编码单元有关的数据进行解码。用于对图像进行解码的设备1600对与未超出图像边界的第二编码单元有关的数据执行熵解码、逆量化和逆变换以恢复残差值,并将作为预测的结果而产生的预测值与恢复的残差值相加以恢复第二编码单元。
[0195] 如以上参照图18A到图18G所述,关于在用于对图像进行解码的设备1600执行解码时使用的第一编码单元的编码模式的信息可以是关于根据第一编码单元是否包括超出当前图像的边界的区域而编码的编码模式的信息。
[0196] 图19是示出根据另一示例性实施例的对图像进行编码的方法的流程图。
[0197] 参照图19,在操作1910,用于对图像进行编码的设备900确定第一编码单元是否包括超出当前图像的边界的区域。
[0198] 在操作1920,用于对图像进行编码的设备900基于操作1910的确定的结果将第一编码单元划分为第二编码单元。第一编码单元可被划分为具有大于第一编码单元的深度“k”的深度“k+1”的第二编码单元。
[0199] 在操作1930,用于对图像进行编码的设备900用预定值填充超出作为在操作1920的划分结果而产生的第二编码单元的边界的区域。将参照图20A和图20B对此进行详细描述。
[0200] 图20A和图20B示出根据示例性实施例的对图像边界的编码单元进行编 码的方法。
[0201] 如果用于对图像进行编码的设备900的确定器910确定第一编码单元2020延伸超出图像边界,则控制器920划分第一编码单元2020以获得具有小于第一编码单元2020的大小的大小的第二编码单元(即,具有大于第一编码单元2020的深度的深度的第二编码单元)。然而,当第二编码单元是最小编码单元时,控制器920不能划分第二编码单元以获得比第二编码单元更小的编码单元,并且不能进一步划分第二编码单元。因此,不能将第二编码单元与超出图像边界的区域或未超出图像边界的区域相区别。
[0202] 因此,编码器930对第二编码单元2024和2028中超出边界2010的区域进行填充,如图20B所示。超出当前图像的边界2010的区域的所有像素值被设置为“0”,或者超出当前图像的边界2010的区域的像素值被设置为与未超出当前图像的边界2010的区域的邻近像素值相同。
[0203] 参照回到图19,在操作1940,用于对图像进行编码的设备900对包括在操作1930填充的区域的至少一个第二编码单元进行编码。
[0204] 用于对图像进行编码的设备900的编码器930通过预测第二编码单元2022到2028来产生残差值,并对残差值执行频率变换。编码器930对通过执行频率变换产生的频率变换系数执行量化和熵编码,从而对第二编码单元2022到2028进行编码。
[0205] 当延伸超出当前图像的边界2010的第二编码单元2024和2028被预测时,第二编码单元2024和2028可都被预测,或者仅在未超出当前图像的边界2010的区域中执行预测。例如,当延伸超出当前图像的边界2010的第二编码单元2024为8×8时,可预测第二编码单元2024具有8×8的大小(包括超出当前图像的边界2010的区域),或者具有4×8的大小(不包括超出当前图像的边界2010的区域)。
[0206] 另外,可对延伸超出当前图像的边界2010的第二编码单元2024和2028均进行变换,或者仅在未超出当前图像的边界2010的区域中执行变换。
[0207] 例如,当延伸超出当前图像的边界2010的最小编码单元2024为8×8时,可对包括超出当前图像的边界2010的区域的8×8的大小执行变换。当超出边界2010的区域被预测时,超出当前图像的边界2010的区域包括残差值。因此,可对第二编码单元的大小执行变换。当超出当前图像的边界2010的区域没有被预测且不存在残差值时,超出当前图像的边界2010的区域可被 设置为任意残差值(例如,“0”),并且可以以第二编码单元的大小执行变换。由于无论预测与否,超出当前图像的边界2010的区域中的残差值都是无意义的,因此可通过将超出当前图像的边界2010的区域中的残差值设置为在变换中具有最高效率的任意值来执行变换。
[0208] 编码器930还可对不包括超出当前图像的边界2010的区域的4×8的大小执行变换。如上所述,根据示例性实施例,由于编码单元、预测单元和变换单元的大小可被独立地确定,因此,可选地可通过使用具有比最小编码单元的大小更小的大小的变换单元来仅在未超出当前图像的边界2010的区域中执行变换。除了在操作1940对第二编码单元进行编码之外,编码器930还可对与根据第二编码单元是否包括超出当前图像的边界2010的区域而编码的编码模式有关的信息进行编码,如以上参照图18A到图18G所述。
[0209] 图21是示出根据另一示例性实施例的对图像进行解码的方法的流程图。
[0210] 参照图21,在操作2110,用于对图像进行解码的设备1600的确定器1610确定第一编码单元是否包括超出当前图像的边界的区域。
[0211] 在操作2120,用于对图像进行解码的设备1600的解析器1620基于在操作2110的确定结果,对与通过划分第一编码单元而产生的第二编码单元中的包括填充区域的第二编码单元有关的数据进行解析。如图20A中所示,当第二编码单元是最小编码单元且延伸超出当前图像的边界时,第二编码单元中的一部分是超出当前图像的边界的区域。如以上参照图19所述,可用预定值来填充该区域。因此,用于对图像进行解码的设备1600的解析器1620对关于包括填充区域的第二编码单元的数据进行解析。
[0212] 在操作2130,用于对图像进行解码的设备1600的解码器1630基于在操作2120解析的关于第二编码单元的数据对第二编码单元进行解码。解码器1630执行对关于解析的第二编码单元的数据执行熵解码、逆量化和逆变换以恢复残差值,并将作为预测的结果产生的预测值与恢复的残差值相加以恢复第二编码单元。如以上参照图18A到图18G描述的,解码器1630可对与根据第二编码单元是否包括超出当前图像的边界的区域而编码的编码模式有关的信息进行解码。
[0213] 与参照图19描述的变换类似,可对所有的第二编码单元执行逆变换,或者仅在未超出当前图像的边界的区域中执行逆变换。另外,可对所有的第二编码单元执行预测,或者仅在未超出当前图像的边界的区域中执行预测。
[0214] 图22是示出根据另一示例性实施例的对图像进行编码的方法的流程图。
[0215] 参照图22,在操作2210,用于对图像进行编码的设备900的确定器910确定第一编码单元是否包括超出当前图像的边界的区域。
[0216] 在操作2220,用于对图像进行编码的设备900基于在操作2210的确定结果,用预定值填充超出第一编码单元的边界的区域。将参照图23A对此进行详细描述。
[0217] 图23A和图23B示出根据另一示例性实施例的对图像边界的编码单元进行编码的方法。
[0218] 参照图23A,当用于对图像进行编码的设备900的确定器910确定第一编码单元2330延伸超出当前图像的边界2310时,编码器930对超出第一编码单元2320的边界2310的区域2322进行填充。超出当前图像的边界2310的区域的所有像素值被设置为“0”,或者超出当前图像的边界2310的区域的邻近像素值被设置为与未超出当前图像的边界2310的区域的邻近像素值相同。
[0219] 参照回到图22,在操作2230,用于对图像进行编码的设备900的编码器930在使用具有比第一编码单元2320的大小更小的大小的第二编码单元的编码模式下对第一编码单元2320进行编码,在第一编码单元2320中,超出第一编码单元2320的边界2310的区域2322在操作2220被填充。如果编码器和解码器共享填充方法的规则,则解码器可不用对第一编码单元2320的填充区域2322进行编码而恢复填充区域2322。因此,对于未超出第一编码单元2320的边界2310的第二编码单元2324的可选编码,用于对图像进行编码的设备900的编码器930在使用具有比第一编码单元2320的大小更小的大小的第二编码单元的编码模式下对第一编码单元2320进行编码。将参照图23B对此进行详细描述。
[0220] 参照图23B,编码器930在使用具有比第一编码单元2320更小的大小的第二编码单元2322到2328的编码模式下对第一编码单元2320进行编码。编码器930根据使用第二编码单元2322到2328的编码模式预测第二编码单元2322到2328中的每一个,并对根据预测结果产生的残差值执行频率变换。编码器930对作为变换结果产生的变换系数执行量化并随后对其执行熵编码。
[0221] 当对每个第二编码单元执行编码时,可仅对未超出第一编码单元2320 的边界2310的区域的第二编码单元2336和2338执行预测,并可基于预测结果对未超出第一编码单元2320的边界2310的区域的第二编码单元2336和2338进行编码。残差值可被设置为预定值(例如,“0”),而不用对超出第一编码单元2320的边界2310的区域的第二编码单元2332和2334执行预测。
[0222] 另外,可仅对关于与未超出第一编码单元2320的边界2310的区域的第二编码单元2336和2338相关的运动矢量和像素值的信息进行编码,并且可以不对关于与超出第一编码单元2320的边界2310的区域的第二编码单元2332和2334相关的运动矢量和像素值的信息进行编码。关于像素值的信息可以是通过对包括在第二编码单元2332到2338中的每一个中的像素值执行变换而产生的变换系数(例如,离散余弦系数)。
[0223] 在操作2230,编码器930还可根据第二编码单元是否包括超出边界的区域来对关于编码模式的信息进行编码,如以上参照图18A到图18G所述。
[0224] 图24是示出根据另一示例性实施例的对图像进行解码的方法的流程图。
[0225] 参照图24,在操作2410,用于对图像进行解码的设备1600的确定器1610确定第一编码单元是否包括超出当前图像的边界的区域。
[0226] 在操作2420,用于对图像进行解码的设备1600的解析器1620基于在操作2410的确定结果对关于包括填充有预定值的区域的第一编码单元的数据进行解析。
[0227] 解析的数据可仅包括关于未超出第一编码单元2320的边界2310的区域的第二编码单元2336和2338(在图23B中示出)的信息。解析的数据还可仅包括关于与未超出第一编码单元2320的边界2310的区域的第二编码单元2336和2338相关的运动矢量和像素值的信息。
[0228] 在操作2430,用于对图像进行解码的设备1600的解码器1630通过使用操作2420的解析的数据,根据使用具有比第一编码单元的大小更小的大小的第二编码单元的编码模式来对第一编码单元进行解码。解码器1630通过根据使用第二编码单元的编码模式对第一编码单元的第二编码单元执行熵解码、逆量化、逆变换和预测来对第一编码单元进行解码。解码器1630可对关于根据第二编码单元是否包括超出边界的区域而编码的编码模式的信息进行解码,并可根据解码的关于编码模式的信息对第二编码单元进行解码,如以上参照图18A到图18G所述。
[0229] 当解析的数据仅包括关于未超出边界2310的区域的第二编码单元2336 和2338的信息时,解码器1630根据使用第二编码单元的编码模式,仅对未超出边界2310的区域的第二编码单元的2336和2338进行解码。
[0230] 虽然已经参照本发明的示例性实施例具体显示和描述了示例性实施例,但是本领域的普通技术人员应理解,在不脱离权利要求限定的示例性实施例的精神和范围的情况下,可以在形式和细节上对其进行各种修改。另外,可使用计算机可读记录介质中的计算机可读代码来实现根据示例性实施例的系统。
[0231] 例如,根据示例性实施例的用于对图像进行编码的设备和用于对图像进行解码的设备可包括与图1、图2、图4、图5、图9和图16中显示的每个装置的单元结合的总线以及连接到总线的至少一个处理器。另外,与用于执行如上所述的命令的至少一个处理器结合的存储器可被包括并连接到总线以存储命令和接收的消息或产生的消息。
[0232] 计算机可读记录介质是能够存储其后可由计算机系统读取的数据的任意数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置等。计算机可读记录介质还可分布于联网的计算机系统,从而以分布的方式存储和执行计算机可读代码。