技术领域
本发明涉及图像解码方法和图像解码装置,更具体地,涉及使用预测块的大小信息创建当前块的各子块的帧内预测块并创建重构块的方法和装置。
背景技术:
图像数据必须被编码以有效地存储或发送图像数据。MPEG-1、MPEG-2、MPEG-4、H.264/MPEG-4AVC(高级视频编码)等被已知为对图像数据编码的技术。在这些技术中,画面被划分成宏块,按宏块为单位确定应该执行帧内编码或帧间编码中的哪一个,并且利用确定的编码方法对宏块编码。
在作为最新的图像压缩技术的H.264中,执行帧内预测以增强帧内编码的效率。即,代替参照参考画面对当前块编码,利用与将被编码的当前块空间相邻的像素值创建预测块。具体地,利用相邻像素值通过与原始宏块的比较来选择具有小的失真的帧内预测模式,并且利用选择的帧内预测模式和相邻像素值来创建将被编码的当前块的预测块。创建包括当前块和预测块之间的差信号(difference signal)的残差块,并且对残差块进行变换、量化和熵编码。还对用于创建预测块的帧内预测模式进行编码。
然而,在H.264中,不管当前块的左块和上块的帧内预测模式的方向性来对当前块的帧内预测模式进行编码,因此存在编码效率低的问题。当帧内预测模式的数量增加以增强残差块的编码效率时,需要一种具有比H.264的帧内预测模式编码方法的效率更高的效率的帧内预测编码方法。
在H.264中,利用当前块的帧内预测模式仅创建一个具有等于当前块的大小的重构块。因此,在当前块的大小增加时,存在的问题是预测块和原始块之间的残差信号增加并且编码效率降低。因此,需要用于创建与原始块更类似的预测块的新的帧内预测编码/解码方法。
技术实现要素:
技术问题
本发明的一个目的在于提供一种能够通过利用当前块的左块和上块的帧内预测模式减少对当前块的帧内预测模式编码所需的比特数来增强图像的压缩效率的方法和装置。
本发明的另一个目的在于提供一种能够通过利用当前块的帧内预测模式创建与当前块更类似的预测块以减少用于对残差块编码所需的比特数来增强图像的压缩效率的方法和装置。
针对问题的方案
根据本发明的一方面,提供了一种图像解码方法,所述图像解码方法包括:重构当前块的帧内预测模式组指示符和预测模式索引;利用所述当前块的左块和上块的有效的帧内预测模式来构造第一组(MPM组);当所述帧内预测模式组指示符指示所述第一组时,将所述第一组中的与所述预测模式索引相对应的帧内预测模式确定为所述当前块的帧内预测模式,并且当所述帧内预测模式组指示符指示第二组时,确定第二组中的与所述预测模式索引相对应的帧内预测模式;以及创建预测块,其中,根据变换大小信息来确定所述预测块的大小。
在图像解码方法中,第一组可以包括三个帧内预测模式。当所述当前块的所述左块和所述上块的帧内预测模式中的仅一个有效时,可以将两个帧内预测模式添加到所述第一组。可以根据有效的帧内预测模式来确定添加的两个帧内预测模式。
有益效果
根据本发明的图像解码方法包括:重构当前块的帧内预测模式组指示符和预测模式索引;利用所述当前块的左块和上块的有效的帧内预测模式来构造第一组(MPM组);当所述帧内预测模式组指示符指示所述第一组时,将所述第一组中的与所述预测模式索引相对应的帧内预测模式确定为所述当前块的帧内预测模式,并且当所述帧内预测模式组指示符指示第二组时,确定第二组中的与所述预测模式索引相对应的帧内预测模式;以及创建预测块。根据变换大小信息来确定所述预测块的大小。
因此,通过基于当前块的左块和上块的有效的帧内预测模式使第一组包括很大可能与当前块的预测模式相等的模式,并且利用第一组确定将被编码的帧内预测模式组指示符和预测模式索引,可以减小将被编码的帧内预测模式的信息量。通过创建与当前块类似的预测块,可以减少将被编码/解码的残差块的比特数,以增强编码和解码效率。
附图说明
图1是示出根据本发明的一个实施方式的运动图像编码装置的框图。
图2是示出根据本发明的另一个实施方式的运动图像解码装置的框图。
图3是示出根据本发明的一个实施方式的在运动图像解码装置中创建帧内预测块的方法的示图。
图4是示出根据本发明的一个实施方式的帧内预测模式的概念示图。
图5是示出根据本发明的一个实施方式的帧内预测块创建单元300的框图。
图6是示出根据本发明的一个实施方式重构块创建过程的示图。
图7是示出根据本发明的另一个实施方式的重构块创建过程的示图。
具体实施方式
下面,将参照附图详细描述本发明的各种实施方式。本发明可以以各种形式被修改,并且可以具有各种实施方式。这些实施方式没有意图限制本发明,而应该被理解为本发明包括属于本发明的精神和技术范围的所有修改、等同形式和替换。在参照附图对本发明的描述中,用相同的编号表示相同的构成。
根据本发明的运动图像编码装置和运动图像解码装置可以是诸如个人电脑、笔记本PC、个人数字助理、便携式多媒体播放器、智能电话、无线通信终端和TV的用户终端或提供服务的服务器。运动图像编码装置和运动图像解码装置可以是具有如下部件的设备:诸如用于与各种设备或者无线或有线通信网络通信的通信调制解调器的通信装置、存储用于对图像编码和解码的各种程序和数据的存储器、以及执行所述程序以执行操作和控制的微处理器。
图1是示出根据本发明的实施方式的运动图像编码装置的框图。
根据本发明的实施方式的运动图像编码装置100包括帧内预测模块110、帧间预测模块120、变换和量化模块130、熵编码模块140、逆量化和逆变换模块150、后处理模块160、画面缓冲器170、减法模块、以及加法模块。
帧内预测模块110利用当前块所属的画面或片(slice)的重构像素来创建帧内预测块。帧内预测模块110根据将被预测编码的当前块的大小来选择预定数量的帧内预测模式中的一种帧内预测模式,并且根据选择的帧内预测模式来创建预测块。
帧间预测模块120利用存储在画面缓冲器170中的参考画面来执行运动估计操作,并且针对运动估计操作确定参考画面索引和运动矢量。然后,帧间预测模块120利用参考画面索引和运动矢量来创建当前块的帧内预测块。
变换和量化模块130对由帧内预测模块110或帧间预测模块120所创建的预测块的残差块进行变换和量化。在水平和垂直方向上利用一维变换矩阵来执行变换。利用根据变换块的大小(即,残差块的大小)和帧内预测模式所确定的变换矩阵来对用于帧内预测的残差块进行变换。利用预定的变换矩阵来对用于帧间预测的残差块进行变换。
变换和量化模块130利用量化步长对变换块进行量化。可以按等于或大于预定大小的编码单元来改变量化步长。
向逆量化和逆变换模块150以及熵编码模块140提供量化的变换块。
逆量化和逆变换模块150对量化的变换块进行逆量化并且对经逆量化的变换块进行逆变换,以重构残差块。加法模块将由逆量化和逆变换模块150重构的残差块与来自帧内预测模块110或帧间预测模块120的预测块相加以创建重构块。
后处理模块160用于提高重构画面的图像质量,并且包括去块滤波器模块161、偏移模块162和环路滤波器模块163。
去块滤波器模块161自适应地向预测块和变换块的边界应用去块滤波器。所述边界可以被限制为8x8网格的边界。去块滤波器模块161确定将被滤波的边界,确定所述边界的边界强度,并且当边界强度大于0时,确定是否应该向所述边界应用去块滤波器。当确定边界应该被滤波时,去块滤波器模块161选择将被应用于边界的滤波器,并且利用选择的滤波器对边界滤波。
偏移模块162确定应该由画面还是片来应用偏移以减小经受去块滤波器模块的图像中的像素与相应原始像素之间的失真。另选地,片被划分成多个偏移区域,并且可以确定各偏移区域的偏移类型。偏移类型可以包括预定数量个的边缘偏移类型和带偏移类型。当偏移类型是边缘偏移类型时,确定各像素所属的边缘类型并且应用与其相对应的偏移。基于与当前像素相邻的两个像素值的分布来确定边缘类型。
环路滤波器模块163基于经历了偏移模块162的重构图像与原始图像的比较结果来对重构图像进行自适应地环路滤波。确定是否应该按编码单元对重构图像进行环路滤波。可以按编码单元改变将被应用的环路滤波器的大小和系数。指示是否应该按编码单元应用自适应环路滤波的信息可以包括在各片报头中。在色度信号的情况下,可以确定是否应该按画面应用自适应环路滤波。因此,指示色度分量是否被滤波的信息可以包括在片报头或画面报头中。
画面缓冲器170从后处理模块160接收经后处理的图像数据,并且以画面为单位重构和存储图像。画面可以是以帧为单位的图像或以场为单位的图像。
熵编码模块140对通过变换和量化模块130量化的量化系数信息、从帧内预测模块110接收到的帧内预测信息、从帧间预测模块120接收到的运动信息等进行熵编码。熵编码模块140包括扫描模块145,所述扫描模块145用于将量化的变换块的系数变换成一维量化系数。
扫描模块145确定用于将量化的变换块的系数变换成一维量化系数的扫描类型。所述扫描类型可以根据方向性帧内预测模式和变换块的大小而变化。按向后方向扫描量化系数。
当量化的变换块大于预定大小时,变换系数被划分成多个子块并被扫描。应用于这些子块的变换系数的扫描类型是相同的。应用于子块的扫描类型可以是Z字形扫描,或者可以是与应用于子块的变换系数的扫描类型相同的扫描类型。
图2是示出根据本发明的实施方式的运动图像解码装置200的框图。
根据本发明的实施方式的运动图像解码装置200包括熵解码模块210、逆量化模块220、逆变换模块230、帧内预测模块240、帧间预测模块250、后处理模块260、画面缓冲器270和加法模块280。
熵解码模块210对接收到的比特流进行解码,并且将比特流区分成帧内预测信息、帧间预测信息、量化系数信息等。熵解码模块210向帧内预测模块240提供解码的帧内预测信息,并且向帧间预测模块250提供解码的帧间预测信息。熵解码模块210包括逆扫描模块215,所述逆扫描模块215用于对解码的量化系数信息进行逆向地扫描。
逆扫描模块215将量化系数信息转换成二维量化块。针对转换选择多个扫描类型中的一种扫描类型。扫描类型可以根据方向性帧内预测模式和变换块的大小而改变。按向后方向扫描量化系数。当量化的变换块大于预定大小时,变换系数被划分成多个子块并且被扫描。应用于这些子块的变换系数的扫描类型是相同的。应用于子块的扫描类型可以是Z字形扫描,或者可以是与应用于子块的变换系数的扫描类型相同的扫描类型。
逆量化模块220确定当前编码单元的量化步长预测因子,并且将确定的量化步长预测因子与接收到的残差量化步长相加以重构当前编码单元的量化步长。逆量化模块220利用量化步长和逆量化矩阵对量化块进行逆量化。量化矩阵根据量化块的大小和预测模式来确定。即,基于当前块的预测模式和用于具有预定大小的量化块的帧内预测模式中的至少一方来选择量化矩阵。
逆变换模块230对经逆量化的变换块进行逆变换以重构残差块。可以根据预测模式和帧内预测模式来确定将应用于逆量化块的逆变换矩阵。
加法模块280将由帧内预测模块240或帧间预测模块250创建的预测块与由逆变换模块230重构的残差块相加,以创建重构块。
帧内预测模块240基于从熵解码模块210接收到的帧内预测信息来重构当前块的帧内预测模式。然后,帧内预测模块240根据重构的帧内预测模式来创建预测块。
帧间预测模块250基于从熵解码模块210接收到的帧间预测信息来重构参考画面索引和运动矢量。然后,帧间预测模块250利用参考画面索引和运动矢量来创建当前块的预测块。当应用具有十进制预测的运动补偿时,应用选择的插值滤波器以创建预测块。
后处理模块260的操作与图1中示出的后处理模块160的操作相同,因此不再进行描述。
画面缓冲器270以画面为单位存储经后处理模块260进行了后处理的解码图像。
图3是示出根据本发明的实施方式的创建帧内预测块的方法的示图。
首先,对来自接收的比特流的帧内预测信息进行熵解码(S110)。
帧内预测信息包括帧内预测模式组指示符和预测模式索引。帧内预测模式组指示符指示当前块的帧内预测模式是属于MPM组还是属于除了MPM组之外的组。预测模式索引是指示通过帧内预测模式组指示符所指示的帧内预测模式组中的特定帧内预测模式的信息。
可以以无符号整数的形式接收帧内预测模式组指示符。在这种情况下,帧内预测模式组指示符可以在不进行熵解码的情况下被使用。另选地,可以根据当前片的类型对帧内预测模式组指示符自适应地进行熵编码。例如,可以利用根据片类型所确定的上下文来对帧内预测模式组指示符进行熵编码。因此,可以利用根据当前片的类型所确定的上下文来对帧内预测模式组指示符进行解码。预测模式索引的熵编码方法根据帧内预测模式是否属于MPM组而变化。因此,利用不同的方法来对预测模式索引进行熵解码。具体地,当帧内预测模式组指示符表示当前块的帧内预测模式属于MPM组时,预测模式索引以截断指数哥伦布码(Exp-Golomb code)方式或截断一元码(unary)方式被二值化,并随后被熵编码。因此,在通过执行熵解码获取了二进制信息之后,利用上面提到的方法来重构预测模式索引。当帧内预测模式组指示符表示当前块的帧内预测模式不属于MPM组时,预测模式索引可以被二值化为固定长度。因此,在通过执行熵解码获取了二进制信息之后,可以重构预测模式索引。
然后,利用与当前块相邻的块的帧内预测模式来创建MPM组,然后利用MPM组来重构当前块的帧内预测模式(S120)。MPM组包括三个帧内预测模式。这将参照图4进行描述。图4是示出根据本发明的实施方式的帧内预测模式的示图。
(1)在当前块的上块和左块的帧内预测模式都存在并且彼此不同时,MPM组包括这两个帧内预测模式和一个附加帧内预测模式。
当这两个帧内预测模式中的一个是DC模式并且另一个不是平面模式时,附加帧内预测模式可以是平面模式。类似地,当这两个帧内预测模式中的一个帧内预测模式是平面模式并且另一个不是DC模式时,附加帧内预测模式可以是DC模式。
当这两个帧内预测模式是DC模式和平面模式时,附加帧内预测模式可以是垂直模式或水平模式。
当这两个帧内预测模式不是DC模式也不是平面模式时,附加帧内预测模式可以是在这两个帧内预测模式之间具有方向性的帧内预测模式、或DC模式、或平面模式。
(2)在当前块的上块和左块的帧内预测模式都存在并且彼此相等时,MPM组包括该帧内预测模式和两个附加帧内预测模式。
当该帧内预测模式既不是DC模式也不是平面模式时,两个附加帧内预测模式被设置为与该帧内预测模式相邻的两个帧内预测模式。当该帧内预测模式是DC模式时,两个附加帧内预测模式可以是平面模式和垂直模式。
(3)在当前块的上块和左块的帧内预测模式中仅一个帧内预测模式存在时,MPM组包括该帧内预测模式和两个附加帧内预测模式。两个附加帧内预测模式根据该帧内预测模式来确定。
(4)在当前块的上块和左块的帧内预测模式都不存在时,MPM组包括DC模式、平面模式和垂直模式。
当帧内预测模式组指示符指示MPM组时,从MPM组中选择由预测模式索引所指示的帧内预测模式,并且选择的帧内预测模式被确定为当前块的帧内预测模式。帧内预测模式组指示符可以是表示当前块的帧内预测模式是属于MPM组还是属于除了MPM组之外的组的标记信息。
当帧内预测模式组指示符不指示MPM组时,帧内预测模块240将除了属于MPM组的帧内预测模式之外的帧内预测模式(下面称为残差帧内预测模式)中的由预测模式索引所指示的帧内预测模式确定为当前块的帧内预测模式。分配给残差帧内预测模式的预测模式索引根据MPM组的配置而变化。即,解码的预测模式索引指示根据MPM组的配置重新排列的残差帧内预测模式的索引。因此,帧内预测模块240根据解码的预测模式索引和属于MPM组的帧内预测模式从残差帧内预测模式中选择当前块的帧内预测模式。
具体地,按模式编号顺序重新排列当前块的残差帧内预测模式,并且将与接收的预测模式索引相对应的帧内预测模式选择作为当前块的帧内预测模式。在这种情况下,可以重新排列残差帧内预测模式,但可以通过将属于MPM组的帧内预测模式编号与当前块的帧内预测模式索引进行比较来确定当前块的帧内预测模式。
该方法可以应用于将模式编号2分配给非方向性模式中的DC模式、将模式编号34分配给平面模式并且将方向性模式编号分配给其它模式的情况。然而,由于选择平面模式和DC模式作为当前块的帧内预测模式的可能性高于选择其它方向性模式作为当前块的帧内预测模式的可能性,所以将小的模式编号(例如,模式编码0)分配给平面模式并且可以应用上面提到的方法。在这种情况下,其它排名较低模式的模式编号增加1。
另选地,可以将最低的索引分配给非方向性模式。例如,在当前块的帧内预测模式是平面模式并且残差帧内预测模式包括平面模式时,帧内预测模式索引可以包括0。例如,当残差帧内预测模式包括平面模式和DC模式时,在平面模式、DC模式和方向性模式按该顺序排列的状态下与预测模式索引相对应的帧内预测模式可以被设置为当前块的帧内预测模式。例如,可以将模式编号0和模式编号1分别分配给平面模式和DC模式,或者可以将模式编号0和模式编号1分别分配给DC模式和平面模式。在这种情况下,可以将当前块的帧内预测模式索引与属于MPM组的帧内预测模式编号相比较,以确定当前块的帧内预测模式。
然后,利用指示当前块的变换大小的信息来确定预测块的大小(S130)。
当预测块的大小等于当前块的大小时,利用当前块的帧内预测模式和当前块的参考像素来创建预测块。参考像素是在当前块之前重构或创建的像素。
当预测块的大小小于当前块的大小时,即在当前块可以被划分成多个子块并且对子块执行帧内预测时,使用相同的帧内预测模式(即,当前块的帧内预测模式)以创建各子块的预测块。利用先前子块的重构像素来创建第二子块或按解码顺序在第二子块之后的子块的预测块。因此,在以子块为单位创建了预测块、残差块和重构块之后,创建下一子块的预测块。
然后,确定与预测块的大小相对应的块的参考像素是否都是有效的(S140)。参考像素是先前被解码和重构的像素。当确定参考像素中的至少一个是无效的时,创建参考像素(S150)。
具体地,当确定参考像素都不有效时,用值2L-1来代替参考像素值。这里,L表示的是表示亮度分量的灰阶的比特数。
当相对于无效参考像素的位置仅在一个方向上存在有效参考像素时,有效参考像素中的最近的参考像素被复制以创建参考像素。
当相对于无效参考像素的位置在两个方向上存在有效参考像素时,在预定方向上位于最近位置的参考像素可以被复制,或者在两个方向上的两个最近的参考像素可以被取平均,以创建参考像素。
然后,确定参考像素是否应被滤波(S160)。根据重构的帧内预测模式和预测块的大小来对参考像素进行自适应地滤波。
当帧内预测模式是DC模式时,不对参考像素进行滤波。当帧内预测模式是垂直模式和水平模式时,帧内预测模块240也不对参考像素滤波。然而,当帧内预测模式是除了垂直模式和水平模式之外的方向性模式时,根据帧内预测模式和预测块的大小来对参考像素进行自适应地滤波。当预测块的大小是4x4时,为了减小复杂度,不管帧内预测模式都不对参考像素滤波。滤波用于使参考像素之间的像素值的变化平滑并且使用低通滤波器。低通滤波器可以是作为3抽头滤波器的[1,2,1]或者作为5抽头滤波器的[1,2,4,2,1]。当预测块的大小在8x8到32x32的范围内时,随着预测块大小的增加按更多的帧内预测模式来对参考像素进行滤波。
然后,根据帧内预测模式来创建预测块(S180)。用于预测块的参考像素可以是根据预测块的大小和帧内预测模式被自适应滤波的像素。
在DC模式下,可以将位于(x=0,…,N-1,y=-1)位置的N个上参考像素、位于(x=-1,y=0,…,M-1)位置的M个左参考像素、和位于(x=-1,y=-1)位置的中心像素的平均值确定为预测块的预测像素。然而,可以利用平均值和与预测像素相邻的参考像素的加权平均来创建与参考像素相邻的预测像素。在平面模式下,可以与在DC模式相同的方式创建预测像素。
在垂直模式下,将位于垂直方向的参考像素设置为预测像素。然而,可以利用位于垂直方向的参考像素以及左参考像素之间的变化来创建与左参考像素相邻的预测像素。所述变化表示中心参考像素和与预测像素相邻的左参考像素之间的变化。在水平模式下,除了方向,可以按与垂直模式相同的方式创建预测像素。
图5是示出根据本发明实施方式的帧内预测块创建单元300的框图。根据本发明的帧内预测块创建单元300包括解析模块310、预测模式解码模块320、预测块大小确定模块330、参考像素有效性确定模块340、参考像素创建模块350、参考像素滤波模块360、预测块创建模块370。
解析模块310对接收到的比特流进行熵解码,以获取帧内预测信息和变换块大小信息。
帧内预测信息包括帧内预测模式组指示符和预测模式索引。帧内预测模式组指示符表示当前块的帧内预测模式属于MPM组和除了MPM组之外的组中的哪一个。预测模式索引是表示由帧内预测模式组指示符指示的帧预测模式组中的特定帧内预测模式的信息。对帧内预测信息进行熵解码的方法与图3的步骤S110中相同。
变换块大小信息包括表示变换块大小以及从编码器发送的至少一个标记(split_transform_flag)。
预测模式解码模块320利用与当前块相邻的块的帧内预测模式来创建MPM组,并且利用MPM组和经熵解码的帧内预测信息来重构当前块的帧内预测模式。MPM组包括三个帧内预测模式。
(1)在当前块的上块和左块的帧内预测模式都存在并且彼此不同时,MPM组包括这两个帧内预测模式和一个附加帧内预测模式。
当这两个帧内预测模式中的一个是DC模式并且另一个不是平面模式时,附加帧内预测模式可以是平面模式。类似地,当这两个帧内预测模式中的一个帧内预测模式是平面模式并且另一个不是DC模式时,附加帧内预测模式可以是DC模式。
当这两个帧内预测模式是DC模式和平面模式时,附加帧内预测模式可以是垂直模式或水平模式。
当这两个帧内预测模式不是DC模式也不是平面模式时,附加帧内预测模式可以是在这两个帧内预测模式之间具有方向性的帧内预测模式、或DC模式、或平面模式。
(2)在当前块的上块和左块的帧内预测模式都存在并且彼此相等时,MPM组包括该帧内预测模式和两个附加帧内预测模式。
当该帧内预测模式既不是DC模式也不是平面模式时,两个附加帧内预测模式被设置为与该帧内预测模式相邻的两个帧内预测模式。当该帧内预测模式是DC模式时,两个附加帧内预测模式可以是平面模式和垂直模式。
(3)在当前块的上块和左块的帧内预测模式中仅一个帧内预测模式存在时,MPM组包括该帧内预测模式和两个附加帧内预测模式。两个附加帧内预测模式根据该帧内预测模式来确定。
(4)在当前块的上块和左块的帧内预测模式都不存在时,MPM组包括DC模式、平面模式和垂直模式。
当帧内预测模式组指示符指示MPM组时,从MPM组中选择由预测模式索引所指示的帧内预测模式,并且选择的帧内预测模式被确定为当前块的帧内预测模式。帧内预测模式组指示符可以是表示当前块的帧内预测模式是属于MPM组还是属于除了MPM组之外的组的标记信息。
当帧内预测模式组指示符不指示MPM组时,帧内预测模块240将除了属于MPM组的帧内预测模式之外的帧内预测模式(下面称为残差帧内预测模式)中的由预测模式索引所指示的帧内预测模式确定为当前块的帧内预测模式。分配给残差帧内预测模式的预测模式索引根据MPM组的配置而变化。即,解码的预测模式索引指示根据MPM组的配置重新排列的残差帧内预测模式的索引。因此,帧内预测模块240根据解码的预测模式索引和属于MPM组的帧内预测模式从残差帧内预测模式中选择当前块的帧内预测模式。
具体地,按模式编号顺序重新排列当前块的残差帧内预测模式,并且将与接收的预测模式索引相对应的帧内预测模式选择作为当前块的帧内预测模式。在这种情况下,可以重新排列残差帧内预测模式,但可以通过将属于MPM组的帧内预测模式编号与当前块的帧内预测模式索引进行比较来确定当前块的帧内预测模式。
MPM组构造方法可以应用于将模式编号2分配给非方向性模式中的DC模式、将模式编号34分配给平面模式并且将方向性模式编号分配给其它模式的情况。然而,由于选择平面模式和DC模式作为当前块的帧内预测模式的可能性高于选择其它方向性模式作为当前块的帧内预测模式的可能性,所以将小的模式编号(例如,模式编码0)分配给平面模式并且可以应用上面提到的方法。在这种情况下,其它排名较低的模式的模式编号增加1。
另选地,可以将最低的索引分配给无方向性模式。例如,在当前块的帧内预测模式是平面模式并且残差帧内预测模式包括平面模式时,帧内预测模式索引可以包括0。例如,当残差帧内预测模式包括平面模式和DC模式时,在平面模式、DC模式和方向性模式按该顺序排列的状态下与预测模式索引相对应的帧内预测模式可以被设置为当前块的帧内预测模式。例如,可以将模式编号0和模式编号1分别分配给平面模式和DC模式,或者可以将模式编号0和模式编号1分别分配给DC模式和平面模式。在这种情况下,可以将当前块的帧内预测模式索引与属于MPM组的帧内预测模式编号相比较,以确定当前块的帧内预测模式。
预测块大小确定模块330利用块变换大小确定当前块的预测块的大小。预测块的大小可以具有当前块的大小或当前块的子块的大小。
当预测块的大小等于当前块的大小时,利用当前块的帧内预测模式和当前块的参考像素来创建预测块。参考像素是在当前块之前重构或创建的像素。
当预测块的大小小于当前块的大小时,即在当前块可以被划分成多个子块并且对子块执行帧内预测时,使用相同的帧内预测模式(即,当前块的帧内预测模式)以创建各子块的预测块。利用先前子块的重构像素来创建第二子块或按解码顺序在第二子块之后的子块的预测块。因此,在以子块为单位创建了预测块、残差块和重构块之后,创建下一子块的预测块。
后面将描述上述操作的特定步骤。
接着,参考像素有效性确定模块340确定与预测块的大小相对应的块的参考像素是否都是有效的。参考像素是先前被解码和重构的像素。
当确定参考像素中的至少一个是无效的时,参考像素有效性确定模块340创建参考像素。
具体地,当确定参考像素都不有效时,用值2L-1来代替参考像素值。这里,L表示的是表示亮度分量的灰阶的比特数。
当相对于无效参考像素的位置仅在一个方向上存在有效参考像素时,有效参考像素中的最近的参考像素被复制以创建参考像素。
当相对于无效参考像素的位置在两个方向上存在有效参考像素时,在预定方向上位于最近位置的参考像素可以被复制,或者在两个方向上的两个最近的参考像素可以被取平均,以创建参考像素。
参考像素滤波模块360确定参考像素是否应被滤波。根据重构的帧内预测模式和预测块的大小来对参考像素进行自适应地滤波。
当帧内预测模式是DC模式时,不对参考像素进行滤波。当帧内预测模式是垂直模式和水平模式时,帧内预测模块240也不对参考像素滤波。然而,当帧内预测模式是除了垂直模式和水平模式之外的方向性模式时,根据帧内预测模式和预测块的大小来对参考像素进行自适应地滤波。当预测块的大小是4x4时,为了减小复杂度,不管帧内预测模式都不对参考像素滤波。滤波用于使参考像素之间的像素值的变化平滑并且使用低通滤波器。低通滤波器可以是作为3抽头滤波器的[1,2,1]或者作为5抽头滤波器的[1,2,4,2,1]。当预测块的大小在8x8到32x32的范围内时,随着预测块大小的增加按更多的帧内预测模式来对参考像素进行滤波。
预测块创建模块370根据帧内预测模式来创建预测块。用于预测块的参考像素可以是根据预测块的大小和帧内预测模式被自适应滤波的像素。
在DC模式下,可以将位于(x=0,…,N-1,y=-1)位置的N个上参考像素、位于(x=-1,y=0,…,M-1)位置的M个左参考像素、和位于(x=-1,y=-1)位置的中心像素的平均值确定为预测块的预测像素。然而,可以利用平均值和与预测像素相邻的参考像素的加权平均来创建与参考像素相邻的预测像素。在平面模式下,可以与在DC模式相同的方式创建预测像素。
在垂直模式下,将位于垂直方向的参考像素设置为预测像素。然而,可以利用位于垂直方向的参考像素以及左参考像素之间的变化来创建与左参考像素相邻的各预测像素。所述变化表示中心参考像素和与预测像素相邻的左参考像素之间的变化。在水平模式下,除了方向,可以按与垂直模式相同的方式创建预测像素。
图6是示出根据本发明的实施方式的重构块创建过程的示图。图6示出当预测块的大小等于当前块的大小时的重构块创建过程。
首先,重构当前块的帧内预测模式(S210)。利用图3的步骤S120中描述的相同方法来重构帧内预测模式。
然后,确定在当前块的预定位置的所有参考像素是否都有效(S220)。当在所述预定位置的参考像素中的至少一个无效时,创建在相应位置的无效的参考像素(S230)。创建参考像素的方法与图3的步骤S150中的相同。这里,预测块的大小等于当前块的大小。
随后,确定当前块的参考像素是否被滤波(S240)。根据重构的帧内预测模式和当前块的大小,来确定参考像素是否应该被滤波。使用图3的步骤S170中描述的方法来确定参考像素是否应该被滤波。当确定当前块的参考像素应该被滤波时,对当前块的参考像素进行滤波(S250)。
然后,利用重构的帧内预测模式来创建当前块的预测块(S260)。利用重构的帧内预测模式来创建残差块(S270)。残差块的大小等于当前块的大小。
最后,将当前块的预测块和当前块的残差块相加以创建重构块(S280)。
图7是示出根据本发明的另一个实施方式的重构块创建过程的示图。图7示出当预测块的大小小于当前块的大小时的当前块的重构块创建过程。
首先,重构当前块的帧内预测模式(S310)。利用与图3的步骤S120中的方法相同的方法来重构帧内预测模式。
确定将被解码的当前块的子块(S320)。
然后,确定在子块的预定位置的所有参考像素是否都有效(S330)。当在所述预定位置的参考像素中的至少一个无效时,创建在相应位置的无效的参考像素(S340)。创建参考像素的方法与图3的步骤S150中的相同。这里,预测块的大小等于当前块的大小。
随后,确定子块的参考像素是否应被滤波(S350)。根据重构的帧内预测模式和当前块的大小,来确定参考像素是否应该被滤波。使用图3的步骤S170中描述的方法来确定参考像素是否应该被滤波。当确定子块的参考像素应该被滤波时,对子块的参考像素进行滤波(S360)。
然后,利用重构的帧内预测模式来创建子块的预测块(S370)。利用重构的帧内预测模式来创建子块的残差块(S380)。
随后,将当前块的预测块和当前块的残差块相加以创建重构块(S390)。
然后,确定子块是否为当前块的最后的子块(S395)。当子块不是当前块的最后子块时,重复执行从按编码顺序确定下一个子块的处理(S320)到创建子块的预测块的处理(S390)的过程。在这种情况下,按解码顺序在第一子块之后的子块使用重构的先前子块的一些像素作为子块的参考像素。由于在第一子块之后的子块中总存在无效的参考像素,所以可以在不执行步骤S330的处理的情况下执行步骤S340的处理。当子块的大小相同时,可以对第一子块执行参考像素滤波处理,但可以对后面的子块不执行参考像素滤波处理。
尽管已参照实施方式描述了本发明,但本领域技术人员能够理解的是,在不脱离所附权利要求描述的本发明的精神和范围的情况下,可以按各种形式修改和改变本发明。