用于对图像编码的设备和方法转让专利

申请号 : CN201510553023.X

文献号 : CN105245886B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴秀美梁文玉

申请人 : M&K控股株式会社

摘要 :

公开了一种活动图画编码设备,用于提高活动图画信号的压缩比,同时保持高的图像质量。为了使残余块所需的比特数量最小化,根据变换块的大小将量化的变换系数自适应地分成多个子集,对每个子集的非零量化变换系数进行扫描和编码。而且,利用通过过滤当前块的参考像素获得的参考像素来确定当前块的帧内预测模式。因此,可以使当前块的残余块所需的数据量最小化。

权利要求 :

1.一种用于对图像进行编码的设备,所述设备包括:

帧内预测器,被配置成使用帧内预测产生预测块;

变换/量化单元,被配置成对残余块进行变换和量化以产生量化的变换块;

逆量化/变换单元,被配置成对所述量化的变换块进行逆量化和逆变换;以及熵编码器,被配置成对所述量化的变换块的量化变换系数进行熵编码,其中,如果确定变换块的尺寸在帧内预测中等于或大于8×8,将所述量化变换系数划分成多个子块,其中,根据扫描模式对所述多个子块和每个子块的非零系数进行扫描,其中,上述用于扫描所述多个子块和每个子块的所述非零系数的扫描模式由所述预测块的帧内预测模式决定,对所述扫描的非零系数进行熵编码,其中,当所述帧内预测模式是水平模式时,所述扫描模式是垂直扫描模式,其中,当存在不可用参考像素时,所述帧内预测器产生参考像素。

2.根据权利要求1所述的设备,其中,所述熵编码器沿着相反方向从每个子块的最后非零系数对每个子块的所述非零系数进行扫描。

3.根据权利要求1所述的设备,其中,所述熵编码器沿着相反方向从最后的子块对所述多个子块进行扫描。

4.根据权利要求1所述的设备,其中,当所述帧内预测模式是垂直模式时,所述扫描模式是水平扫描模式。

5.根据权利要求1所述的设备,其中,用于扫描表示每个子块的每个变换系数是否为0的标志的扫描模式与用于扫描每个子块的所述非零系数的扫描模式相同。

说明书 :

用于对图像编码的设备和方法

[0001] 本案是分案申请,其母案为于2011年4月22日申请的申请号为201180031338.8的题为“用于对图像编码的设备和方法”的专利申请。

技术领域

[0002] 本发明涉及一种图像处理设备和方法,更具体而言,涉及用于减少图像的残余信号量并对残余信号进行熵编码的设备。

背景技术

[0003] 为了有效率地在低数据速率下传输活动图画信号同时保持高的图像质量,已经提出了各种数字活动图画压缩技术。这些活动图画压缩技术包括H.261、活动图画专家组(MPEG)-2/H.262、H.263、MPEG-4、高级视频编码(AVC)/H.264等。压缩技术包括离散余弦变换(DCT)方案、运动补偿(MC)方案、量化方案、熵编码方案等。
[0004] 为了进行图像编码,将每幅图画划分成多个切片,将每个切片划分成预定大小的多个编码块。由于高清晰度(HD)等级或更高级别的图像具有很多平坦区域,所以可以通过用大于宏块(MB)的编码块对图像编码来改善图像压缩。
[0005] 因此,在编码单元的大小增大时,需要新的预测技术,并需要在变换编码、熵编码、帧内预测和帧间预测中的改变,以提高图像压缩比而不增加图像压缩的复杂性。

发明内容

[0006] 技术问题
[0007] 本发明涉及一种对活动图像编码的设备,更具体而言,涉及一种对预定大小或更大的活动图像的已变换残余信号进行有效编码的设备。
[0008] 技术方案
[0009] 本发明的一个方面提供了一种为活动图画进行编码的设备,包括:编码模式判决器,被配置成将输入图像划分成编码单元并确定所述编码单元的预测模式和所述编码单元的预测编码块的大小;变换/量化单元,被配置成对所述预测编码块和通过帧内预测或帧间预测产生的预测块之间的残余块进行变换和量化;逆量化/变换单元,被配置成将所量化的变换块逆量化和逆变换到频域中;去块滤波器,被配置成向从所述逆量化/变换解码单元接收到的图像数据应用去块滤波过程;预测块发生器,被配置成产生所述预测编码块;以及熵编码器,被配置成对来自变换编码/量化单元的量化变换系数进行编码,其中,在变换块的大小等于或大于预定大小时,所述熵编码器将量化变换系数划分成多个子集,并对所述每个子集的非零量化变换系数进行扫描和熵编码。
[0010] 有益效果
[0011] 本发明能够通过减少要进行编码块的残余信号量来提高编码效率。而且,通过在熵编码期间有效地扫描不为0的量化变换系数,使熵编码所需的比特数量最小化,从而可以提高编码效率。

附图说明

[0012] 图1示出了根据本发明示范性实施例的块划分结构。
[0013] 图2示出了根据本发明的确定编码模式的方法。
[0014] 图3示出了根据本发明的用于对活动图画进行编码的设备。
[0015] 图4到6是示出了根据本发明的自适应块划分方法的示意图。
[0016] 图7是示出了对残余信号进行编码的方法的示意图。

具体实施方式

[0017] 在下文中,将参考附图详细描述本发明的各实施例。不过,本发明不限于下文公开的示范性实施例,而是可以通过各种方式实施。因此,本发明很多其他修改和变化都是可能的,要理解的是,在所公开的概念范围之内,可以通过与具体所述不同的方式实践本发明。
[0018] 为了进行图像编码,将每幅图画划分成多个切片,将每个切片划分成预定大小的多个编码单元。由于高清晰度(HD)等级或更高级别的图像具有很多平坦区域,所以可以通过用大于16×16大小的宏块(MB)的编码单元对图像进行编码来改善图像压缩比。
[0019] 根据本发明的编码单元可以是大小为32×32的块或大小为64×64的块或大小为16×16的MB。而且,大小为8×8或更小的块可以是编码单元。为了方便起见,将最大的编码单元称为超级宏块(SMB)。可以根据表示最小编码单元的大小的信息和深度信息来确定SMB的大小。深度信息表示SMB的大小和最小编码单元大小之间的差异。
[0020] 于是,用于对图像序列的所有图画进行编码的编码单元可以是SMB或SMB的子块。可以默认或在序列报头中指定编码单元的允许大小。当在序列报头中指定编码单元的允许大小时,根据最小编码单元的大小和深度信息指定编码单元的允许大小。
[0021] 将每幅图画或切片划分成多个SMB单元。每个SMB或SMB的子块可以是帧内编码或帧间编码和解码的。
[0022] 为了使得编码单元(即SMB或SMB的子块)能够被正确地解码,编码器应当向比特流中添加关于编码单元的预测编码块的大小信息和表示编码单元已经以帧内预测模式或帧间预测模式进行了编码的预测模式信息。为此,应当在编码单元的比特流中包括预测模式信息和表示预测编码块大小的信息。预测模式根据切片的类型而改变。
[0023] 当切片类型是帧内(I)时,切片中的所有预测编码块都是帧内预测的,并且可以根据预测编码块的大小确定预测编码块的预测类型。不过,在切片类型是单向预测(P)或双向预测(B)时,可以根据预测模式信息和预测编码块的大小来确定预测编码块的预测类型。于是,优选基于切片类型、预测模式信息和表示预测编码块大小的信息来产生预测编码块的预测类型,并将所产生的预测类型插入编码单元的报头中。
[0024] 当预测编码块是帧内编码时,需要向解码器传送用于帧内预测的帧内预测模式信息以及预测类型。
[0025] 当预测编码块是帧间编码时,通过单向预测和双向预测的任一种对预测编码块进行编码。在单向预测的情形中,比特流应当包括关于参考图画的信息和用于预测的运动矢量以及用于单向预测的预测编码块的预测类型。在双向预测的情形中,预测编码块的报头应当包括关于两个参考图画的信息和用于双向预测的运动矢量信息以及用于双向预测的块的预测类型。运动矢量信息可以包括表示残余运动矢量和运动矢量预测器的信息。
[0026] 图1示出了层次划分结构,表示根据本发明示范性实施例用于64×64大小的SMB的允许预测编码块。
[0027] 在将SMB用作编码单元时,优选具有如图1所示的四个子块划分步骤,但块的划分不限于四个子块划分步骤。在有四个子块划分步骤时,可以定义总共13个预测性块类型(64×64、64×32、32×64、32×32、32×16、16×32、16×16、16×8、8×16、8×8、8×4、4×8和4×4)。
[0028] 在这里,对于大小比MB更大的帧间预测编码块,可能没有要传送的数据。于是,优选在预测编码块的大小为64×64时新增加MB64_SKIP模式,在预测编码块的大小为32×32时,增加MB32_SKIP模式。为了向解码器传送模式信息,可以使用MB64_SKIP_flag或MB32_SKIP_flag。在这些标志(flag)的值是1时,没有对应预测编码块的传送数据。
[0029] 同时,在多个连续SMB未编码时,可以仅在第一个SMB中插入MB64_SKIP_flag,可以在后续SMB中省略。在这种情况下,可以向切片或第一个SMB添加连续跳过的SMB的数量。具体而言,在多个连续的SMB未编码时,将第一个SMB的SMB_SKIP_flag设置为1,也可以共同地应用到几个连续SMB。在这种情况下,可以向切片添加与未被连续编码的SMB的数量(例如SMB_SKIP_number)对应的信息。
[0030] 在编码单元的大小为32×32时,除了现有的大小为16×16、16×8、8×16、8×8、8×4、4×8或4×4的块之外,还可以将大小为32×32、32×16或16×32的块用作预测编码块。
[0031] 在帧间预测模式中,编码单元的预测类型(Mb32_type)可以在预测类型为0时表示32×32分割,在预测类型为1时表示32×16分割,在预测类型为2时表示16×32分割,在预测类型为3时表示16×16分割。
[0032] 在将编码单元划分成四个子编码单元时,对所述四个子编码单元进行编码并按照光栅扫描次序传送。在这种情况下,可以针对每个编码单元传送量化参数,并且在将同一量化参数应用于所有子编码单元时,可以仅在超级编码单元的报头中传送一次。不过,当需要在子编码单元中改变量化参数时,可以仅传送与上层编码单元或同一层级的前面编码单元的量化参数不同的值。
[0033] 可以利用四叉树方法划分每个子编码单元,也可以利用四叉树方法传送经编码后的块图案(cbp)和残余系数。在使用1比特cbp时,cbp的值1可以表示编码单元具有至少一个不为0的系数,cbp的值0可以表示所有系数都是0。
[0034] 图2示出了根据本发明的在SMB大小为64×64时确定编码模式的方法。
[0035] 如图2所示,在SMB是64×64块时,编码器判断是否能够跳过64×64块,并在能够跳过64×64块时将跳过(SKIP)模式确定为编码模式。此时,应当向解码器传送mb64_skip_flag。在64×64块有要进行编码的数据但未划分成32×32块时,在SMB报头中插入SMB的编码大小(该编码大小是64×64、64×32和32×64之一)以及关于SMB是帧内编码还是帧间编码的信息,并且利用经编码的数据产生SMB数据块。
[0036] 当在64×64块有要进行编码的数据且被划分成32×32块时,同样判断在对应的32×32块中是否有要进行编码的数据。当在对应的32×32块中没有要进行编码的数据时,将SKIP模式确定为32×32块模式,将mb32_skip_flag传送到解码器。
[0037] 不过,当32×32块有要进行编码的数据但未被划分成16×16块时,在32×32块的报头中插入32×32块的编码大小(该编码大小是32×32、32×16和16×32之一)以及关于32×32块是帧内编码还是帧间编码的信息,并且利用经编码的数据产生数据块。
[0038] 当32×32块有要进行编码的数据且被划分成16×16块时,判断在对应的16×16块中是否有要进行编码的数据。当在对应的16×16块中没有要进行编码的数据时,将SKIP模式确定为16×16块模式,并且将mb16_skip_flag传送到解码器。另一方面,当在对应的16×16块中有要进行编码的数据时,在16×16块的报头中插入16×16块的编码大小(该编码大小是16×16、16×8和8×16之一)以及关于16×16块是帧内编码还是帧间编码的信息,并且利用经编码的数据产生数据块。
[0039] 在使用具有这样不同大小的块时,块大小信息可以根据每个序列层次、图画层次、切片层次、SMB或SMB的子编码单元而改变。
[0040] 图3示出了根据本发明的用于对活动图画进行编码的设备。
[0041] 参考图3,根据本发明的对活动图画进行编码的设备包括编码模式判决器110、变换/量化单元120、熵编码器130、帧内预测器140、运动补偿器150、运动估算器155、逆量化/变换单元160、去块滤波器170、图画存储器180、加法器和减法器。
[0042] 编码模式判决器110分析输入的视频信号以将图画划分成编码单元,并针对每个编码单元确定预测编码块的大小和预测模式。而且,编码模式判决器110向减法器发送与所确定大小对应的预测编码块。
[0043] 变换/量化单元120确定变换块的大小以变换从减法器接收到的残余信号。变换块的大小可以等于或小于预测编码块的大小,但可以在帧间模式中进行不同设置。换言之,在帧间模式中,变换块的大小可以大于预测编码块的大小。在这种情况下,变换/量化单元120从减法器接收多个残余块并产生由多个残余块构成的一个变换块。变换块的大小等于或小于编码单元的大小。变换/量化单元120对变换块执行二维(2D)离散余弦变换(DCT)以产生变换系数。DCT可以是整数DCT。
[0044] 而且,变换/量化单元120确定用于量化变换系数的量化步长大小,利用根据所确定的量化步长和编码模式而确定的量化矩阵来量化变换系数。
[0045] 逆量化/变换单元160对变换编码/量化单元120所量化的量化系数进行逆量化和逆变换,由此从变换到频域中的残余块来恢复空间域中的残余块。
[0046] 去块滤波器170从逆量化/变换单元160接收经过逆量化和逆变换的图像数据并执行滤波过程以消除块效应(blocking effect)。可以将去块滤波过程应用于预测编码块间和变换块之间的边界。边界是具有预定大小或更大的网格边缘,预定大小可以是8×8。去块滤波过程包括确定要进行滤波的边界的步骤,确定要应用于该边界的边界滤波强度的步骤,判断是否应用去块滤波器的步骤,以及在确定要应用去块滤波器时选择要应用于该边界的滤波器的步骤。
[0047] 根据i)边界滤波强度是否大于0以及ii)表示P块和Q块的边界像素之间差异的值是否小于根据量化参数确定的第一参考值,判断是否应用去块滤波器。
[0048] 可以有两个或更多滤波器。当与块边界相邻的两个像素之间的差异的绝对值等于或大于第二参考值时,选择弱滤波器。第二参考值是通过量化参数和边界滤波强度确定的。
[0049] 图画存储器180从去块滤波器170接收已滤波的图像并在图画单元中存储该图像。图画可以是帧的图像或场的图像。图画存储器180具有能够存储多个图画的缓存(未示出)。
[0050] 运动估算器155利用图画存储器180中存储的至少一个参考图画进行运动估计,并输出表示参考图画的参考图画索引和运动矢量。
[0051] 运动补偿器150根据从运动估算器155输入的参考图画索引和运动矢量,从存储在图画存储器180中的多个参考图画中的用于运动估计的参考图画中提取与要进行编码的块相对应的预测块,并输出所提取的预测块。
[0052] 帧内预测器140在同一图画中利用重构的像素值执行帧内预测。帧内预测器140接收要预测编码的当前块,根据当前块的大小选择预定数量的帧内预测模式中的一种并执行帧内预测。
[0053] 熵编码器130对变换/量化单元120所量化的量化系数、由运动估算器155产生的运动信息等进行熵编码。通过预定的扫描方法将所量化的变换系数转换成一维(1D)量化变换信息并进行熵编码。
[0054] 下面将参考图3描述帧内预测过程。
[0055] 首先,帧内预测器140从编码模式判决器110接收关于要进行编码的编码块的位置和大小信息。
[0056] 接下来,帧内预测器140从图画存储器180接收有效的参考像素,用于确定当前预测编码块的帧内预测模式。参考像素已经被编码并恢复,并与当前预测编码块(下文称为当前块)相邻。在当前块位于当前图画的上边界时,不定义与当前块上侧相邻的像素。在当前块位于当前图画的左边界时,不定义与当前块左侧相邻的像素。而且,在当前块位于切片上边界或左边界时,不定义与上侧或左侧相邻的像素。
[0057] 在没有与当前块左侧或上侧相邻的像素或没有如上所述先前已经进行编码并恢复的像素时,可以仅利用有效像素确定当前块的帧内预测模式。
[0058] 不过,可以利用与当前块相邻的像素或可用像素产生无效参考像素。例如,在上侧块的像素无效时,可以利用左侧的一个或多个可用参考像素产生上侧的像素。
[0059] 同时,即使在当前块的上侧或左侧有像素时,也可以根据像素所属的块的编码模式将像素确定为无效像素。例如,在与当前块上侧相邻的像素所属的块已经被帧间编码并恢复,可以将所述像素确定为无效像素。在这种情况下,可以利用具有帧内模式的块的参考像素产生参考像素。
[0060] 接下来,帧内预测器140利用参考像素确定当前块的帧内预测模式。帧内预测模式的数量取决于块的大小。
[0061] 根据块的大小,允许33、16或2个方向性模式和至少一个非方向性模式。非方向性模式可以是直流(DC)模式或平面模式。
[0062] 可以将不同数量的帧内预测模式分配给具有相同大小的块。为了表明允许不同数量的帧内预测模式,可以在序列报头、图画报头、切片报头和编码单元报头中的至少一个中插入表示帧内预测模式数量的信息。优选在序列报头或图画报头中插入所述信息。
[0063] 接下来,在确定当前块的帧内预测模式时,产生当前块的预测块。基于当前块的帧内预测模式,利用包括所产生像素的参考像素或利用参考像素的线性组合产生预测块。例如,在特定方向的方向性模式中,可以利用当前块上侧和当前块左侧的参考像素产生预测模式。
[0064] 用于产生预测块的有效参考像素可以是经滤波的参考像素。应用于有效参考像素的滤波器数量可以是多个。而且,可以根据当前块的大小和帧内预测模式自适应地应用多个滤波器。
[0065] 接下来,由变换/量化单元120和熵编码器130对利用当前块和帧内预测器140产生的预测块获得的残余块进行编码。
[0066] 同时,单独对当前块的帧内预测模式进行编码。可以由帧内预测器140、单独的帧内预测模式编码器(未示出)或熵编码器130对帧内预测模式进行编码。
[0067] 利用当前块的上侧块和左侧块的帧内预测模式对当前块的帧内预测模式进行编码。
[0068] 首先,得到当前块的左侧块和上侧块的帧内预测模式。当上侧块的数量是多个时,将最左边的上侧块或具有最低模式数量的块设置为当前块的上侧块。而且,当左侧块的数量是多个时,将最上边的左侧块或具有最低模式数量的块设置为当前块的左侧块。在上侧块或左侧块不是以帧内预测模式进行编码时,可以将DC模式(模式数2)设置为上侧块或左侧块的帧内预测模式。
[0069] 接下来,在上侧块或左侧块的帧内预测模式数量等于或大于当前块的允许帧内预测模式的数量时,将上侧块或左侧块的帧内预测模式转换成当前块允许的帧内预测模式之一。
[0070] 接下来,在当前块的帧内预测模式等于左侧块的帧内预测模式和上侧块的帧内预测模式之一时,传送表示当前块的帧内预测模式等于左侧块的帧内预测模式和上侧块的帧内预测模式之一的标志以及表示上侧块和左侧块的帧内预测模式之一的标志。在这种情况下,在当前块的左侧块和上侧块具有相同帧内预测模式时,可以仅传送表示当前块的帧内预测模式等于左侧块的帧内预测模式和上侧块的帧内预测模式之一的标志。类似地,在上侧块和左侧块的帧内预测模式中仅有一个有效且等于当前块的帧内预测模式时,可以仅传送表示当前块的帧内预测模式等于左侧块的帧内预测模式和上侧块的帧内预测模式中之一的标志。
[0071] 不过,在当前块的帧内预测模式与左侧块和上侧块的帧内预测模式不同时,判断当前块的帧内预测模式数量是否小于左侧块和上侧块的帧内预测模式。
[0072] 在判定当前块的左侧块和上侧块的帧内预测模式数量都大于当前块的帧内预测模式数量时,将当前块的帧内预测模式确定为最终帧内预测模式。不过,在当前块的左侧块和上侧块的帧内预测模式数量中仅有一个不大于当前块的帧内预测模式数量时,将具有从当前块的帧内预测模式数量减1得到的模式数的帧内预测模式确定为当前块的最终帧内预测模式。而且,在当前块的左侧块和上侧块的帧内预测模式数量中的任一个都不大于当前块的帧内预测模式数量时,将具有从当前块的帧内预测模式数量减2得到的模式数的帧内预测模式确定为当前块的最终帧内预测模式。
[0073] 接下来,对当前块的最终帧内预测模式进行编码。根据当前块的上侧块是否与当前块的左侧块具有相同帧内预测模式,利用不同的编码表,对当前块的最终帧内预测模式进行编码。当前块的上侧块或左侧块的帧内预测模式可以是修改的帧内预测模式。换言之,当前块的上侧块或左侧块的帧内预测模式可以是通过表格修改的,该表格用于将上侧块和左侧块可允许的帧内预测模式映射到预定数量的帧内预测模式。预定数量可以是9或3。
[0074] 下文将描述图3的熵编码器130的量化变换系数编码过程。
[0075] 利用语境自适应可变长度编码(CAVLC)或语境自适应二进制算术编码(CABAC)对量化的变换系数进行熵编码。在变换块的大小变大时,有很大可能性将需要扫描大量比特并对不为0的系数进行熵编码。于是,优选引入新的扫描方法,用于针对大小等于或大于预定大小的变换块减少比特数量。
[0076] 首先,判断是否将量化的变换系数划分成多个子集。这取决于变换块的大小。换言之,在变换块的大小等于或大于预定大小时,将量化的变换系数划分成多个子集。预定大小可以是8×8或16×16。多个子集由一个主要子集和一个或多个残余子集构成。主要子集位于包括DC系数的左上侧,一个或多个残余子集覆盖除主要子集覆盖区域之外的区域。
[0077] 接下来,在变换块的大小等于或大于预定大小时,将量化的变换系数划分成主要子集和一个或多个残余子集,并对每个子集中包括的量化变换系数进行扫描和编码。可以利用多个扫描模式之一来扫描子集中的量化变换系数。可以根据子集中量化变换系数的非零像素的分布来选择要编码的比特数量变为最小的扫描模式。多个扫描模式可以包括锯齿形扫描、垂直扫描和水平扫描。而且,可以包括活动图画专家组(MPEG)-4的垂直扫描或水平扫描。在针对每个子集传送扫描模式时,需要大量比特。因此,可以向多个子集应用一种扫描模式。
[0078] 同时,可以根据预测模式和帧内预测方向自适应地选择扫描模式。例如,在帧间预测模式中,可以仅应用一种预定扫描模式(例如锯齿形扫描)或多种扫描模式之一。在前一种情况下,不需要向解码器传送扫描模式信息,但在后一种情况下,需要向解码器传送扫描模式信息。在帧内预测模式中,可以根据帧内预测方向选择扫描模式。例如,可以在垂直帧内预测模式中应用水平扫描,可以在水平帧内预测模式中应用垂直扫描,可以在DC模式中应用锯齿形扫描。
[0079] 要应用于主要子集的扫描模式和一个或多个残余子集可以是预定模式。预定模式可以是锯齿形扫描。除了锯齿形扫描之外,可以向子集应用水平扫描或垂直扫描。也可以根据预测模式和帧内预测方向自适应地确定应用于子集的扫描模式。换言之,在帧间预测模式中,可以向子集应用预定的扫描模式。在帧内预测中,可以向子集应用帧内预测方向所选择的扫描模式。
[0080] 沿相反方向扫描子集中的量化变换系数可以是有效的。换言之,可以根据扫描模式沿相反方向从子集的最后非零系数扫描量化的变换系数。同样地,沿相反方向从包括变换块的最后非零系数的子集向主要子集扫描多个子集。
[0081] 同时,为了解码器进行正确熵解码,编码器对能够表示变换块中最后非零系数的位置的信息和能够表示每个子集中最后非零系数位置的信息进行编码并向解码器传送编码的信息。该信息可以表示每个子集中最后非零系数的位置。而且,该信息可以是地图信息,由表示每个变换系数是否为0的标志以及表示非零系数是否是变换块中最后非零系数的标志构成。用于产生地图信息的扫描模式可以与子集中的扫描模式相同。
[0082] 在另一个范例中,为了扫描变换块的量化变换系数,可以利用交织方法重新布置变换块的量化变换系数,并转换成多个子块,可以对每个子块进行扫描和编码。
[0083] 同时,在图像具有特定方向的边界并使用等价预测模式时,为运动边界部分的类似数据使用不同子块,并且可能发生不必要的开销。在这种情况下,可能更有效的是根据图像的边界部分形状沿特定方向划分编码单元并对每个所划分的区域执行运动估计。
[0084] 参考图4到6,将描述一种考虑图像特性以方向自适应方式来划分块的方法。在图4、5和6中,将描述32×32的编码单元作为范例。不过,编码单元的大小不限于32×32,也可以将该方法应用于64×64块或16×16块。
[0085] 在最简单自适应模式的一个范例中,通过直线将编码单元分成两个块,以便提取局部拓扑上预测区域的统计学相关性。换言之,将图像的边界部分匹配到直线并进行划分。
[0086] 如图所示,在存在横贯32×32块的图像的边界时,应当将横贯图像的边界部分划分成小块,以根据常规图像划分方法有效率地压缩图像。
[0087] 于是,如图4中所示,应当将一个32×32块划分成至少10个块并编码。因此,应当将10个运动矢量与表示图像划分的信息一起传送到解码器,从而需要除图像信息之外的更多额外信息。
[0088] 同时,如图5或6所示,在有横贯32×32块的图像的边界时,可以通过将图像边界与表示图像边界的至少一条直线进行匹配来显著减少要传送到解码器的额外信息的条数。
[0089] 例如,在将横贯32×32块的图像的边界匹配到图5所示的两条直线时,将32×32块划分成四个16×16块,并且可以获得将第一和第四16×16块各自匹配到块边界的直线。在这种情况下,需要六个划分区域,并且可以将要传送到解码器的运动矢量减少到六个。
[0090] 同样地,在将横贯块的边界匹配到图6所示的一条直线时,将32×32块划分成两个块,仅需要向解码器传送一条块模式信息和两个运动矢量。
[0091] 同时,在利用直线划分块时,应当额外向解码器传送所用直线的信息。下文将描述要传送的直线信息。
[0092] 可以利用各种方法传送要传送的直线信息。
[0093] 第一范例是利用相对于预定位置的距离和角度来表达直线的信息。在这种情况下,预定位置可以是块左上角或中心的像素。所述距离可以是整数或量化值。所述角度可以是0到180,也可以是量化值。
[0094] 第二范例是向解码器传送横贯块的直线两端的位置值。可以将该位置值表达为表示从左上角开始沿顺时针方向绕块的边界行进,同时所述两端距离块的左上角处的像素有多远的值。在这种情况下,可以将任一端表达为顺时针方向绕边界行进时距离像素的位置,可以将另一端表达为逆时针方向绕边界行进时距离像素的位置,从而可以表示直线信息。在这种情况下,可以利用少量的比特表达关于接近更多不同形状的直线信息。
[0095] 在有已经被方向自适应地划分并被编码的相邻块时,有效的做法是传送当前块的直线信息与从相邻块中选择的一个块的直线信息之间的差异信息。更优选地是利用沿与当前块相同方向划分的块的方向信息对差异信息进行编码。可以将关于当前块的直线信息或差异信息表达为一个对应的索引,其可以是可变长度编码并传送的。
[0096] 同时,可以根据预测编码块的大小确定是否应用方向自适应划分法。由于应用于过小编码块的方向自适应划分法可能增大要传送的信息量和复杂性,优选不应用该方法。
[0097] 如图7所示,可以仅向限于预定数量的特定方向应用根据图像的边界部分的形状来划分预测编码块的方法。例如,可以将划分块的方法限于四个方向,即水平方向、垂直方向、向上对角线方向和向下对角线方向,或两个方向,即水平方向和垂直方向。沿特定方向划分块的情形的数量可以随着预测编码块大小而变化。例如,可以利用七种方法沿特定方向(例如水平方向)划分大小为32×32的预测编码块,可以利用三种方法划分大小为16×16的预测编码块。而且,不论预测编码块大小如何,都可以利用相同数量的方法划分预测编码块。
[0098] 根据色度,也可以将预测编码块划分成相同的分割,也可以将以下所有方法应用于该划分。具有各自划分区域的预测编码块应当在报头中包括表示存在划分块的标志、表示如何完成划分的信息以及根据各自划分区域指称的经编码的参考图画索引。
[0099] 当一个块是方向自适应地预测的时,应当在两个已划分区域的每个上进行运动估计和运动补偿。于是,应当从每个被划分区域得出运动矢量,并且应当得出并对每个被划分区域与基于该运动矢量获得的参考区域之间的残余信号进行编码。
[0100] 可以利用以下方法的任一种对残余信号进行编码。
[0101] 首先,可以从一个预测编码块所划分的两个区域中的每个得出残余信号,然后可以添加所述两个残余信号以形成一个块的残余信号并进行变换编码。在这种情况下,在沿边界划分的各自区域中的残余信号的总体分布之间非常可能存在差异,从而优选向边界应用滤波器。
[0102] 在另一种方法中,可以通过向每个被划分区域应用形状自适应变换来进行编码。如图7中所示,在将一个块划分成两个区域时,按照原样对左上块进行水平1D变换,然后进行垂直1D变换,对右下块如图所示地进行重新布置或旋转180度,并进行1D变换,然后进行垂直1D变换。在这种情况下,可以将根据各自划分区独立进行编码的残余系数传送到解码器或者可以对其进行组合并传送。
[0103] 在又一种方法中,可以根据各自的被划分区域进行补白(padding)以产生块并对块进行编码。换言之,在对当前划分区域进行编码时,为构成该块的其他划分区域补上当前划分区域的值,以构成一个块,然后进行2D变换编码。补白可以是水平补白(从已定义区域水平地拷贝未定义区域)和垂直补白(从已定义区域垂直拷贝未定义区域)。在这种情况下,优选执行水平补白,然后进行垂直补白。而且,可以通过所定义像素的线性组合填补与一个或多个所定义像素相邻的未定义像素。而且,可以根据划分方向给出方向性,使得可以首先执行水平补白和垂直补白的任一种。
[0104] 接下来将描述运动矢量估计。
[0105] 当利用直线将一个块划分成两个区域时,利用已经编码的运动矢量对每个划分区域的运动矢量进行差异编码。
[0106] 在第一种方法中,被划分区域的第一区域可以选择相邻块的运动矢量之一作为运动矢量预测器,第二区域可以选择除第一区域之外的相邻块的运动矢量之一作为运动矢量预测器。
[0107] 在第二种方法中,被划分区域的第一区域可以选择相邻块的运动矢量之一作为运动矢量预测器,第二区域可以选择第一区域的运动矢量作为运动矢量预测器。
[0108] 在第三种方法中,在与当前块相邻的块中有方向自适应地划分的块时,考虑到所划分块的方向性,将方向自适应地划分的块的运动矢量用作参考运动矢量。于是,在有多个方向自适应地划分的块时,可以将预定序列中的运动矢量或具有类似划分方向的块的运动矢量用作参考运动矢量。
[0109] 在第四种方法中,被划分区域的第一区域可以将与第一区域相邻的一个块的运动矢量设置为第一区域的运动矢量预测器,第二区域可以选择与第二区域相邻的块的运动矢量以及处于先前图画中同一位置的块或划分区域的运动矢量中的任一个作为运动矢量预测器,并对差异运动矢量进行编码。
[0110] 在这里,使用一条直线进行块划分。不过,也可以利用由至少两条直线构成的信息将一个块划分成至少两个划分区域,并可以如上所述执行所划分区域的编码。
[0111] 尽管已经参考其某些示范性实施例示出并描述了本发明,但本领域的技术人员将理解,可以在其中做出各种形式和细节的改变而不脱离如所附权利要求界定的本发明精神和范围。