通过帧内预测来对图像进行编码和解码的方法和设备与流程

文档序号:14267510阅读:174来源:国知局
本申请是申请日为2011年7月15日、申请号为201180044566.9、题为“通过帧内预测来对图像进行编码和解码的方法和设备”的专利申请的分案申请。本公开的示例性实施例涉及图像的编码和解码,更具体地说,涉及一种可通过使用具有各种方向性的帧内预测模式来提高图像压缩效率的用于通过帧内预测对图像进行编码和解码的方法和设备。
背景技术
::根据图像压缩标准(诸如运动图像专家组(mpeg)-1、mpeg-2、mpeg-4或h.264/mpeg-4先进视频编码(avc)),画面被划分为宏块以对图像进行编码。在以帧间预测编码模式和帧内预测编码模式中的任一模式对每个宏块进行编码之后,根据对宏块进行编码所需的比特率以及原始宏块和重建宏块之间的可允许的失真来选择适当的编码模式,然后以选择的编码模式对宏块进行编码。随着用于再现和存储高分辨率或高质量图像内容的硬件的发展,对有效地对高分辨率或高质量视频内容进行编码或解码的视频编解码器的需求正在增加。技术实现要素:技术问题在传统的视频编解码器中,以受限的编码模式基于具有预定尺寸的宏块来对视频进行编码。技术方案示例性实施例提供了一种通过使用具有各种方向性的帧内预测模式来通过帧内预测对图像进行编码和解码的方法和设备。示例性实施例还提供了一种可减少在帧内预测期间执行的计算的量的通过帧内预测对图像进行编码和解码的方法和设备。有益效果由于按照各种方向执行帧内预测,因此可提高图像压缩效率。可减少用于在帧内预测期间确定参考像素所执行的计算的量。附图说明图1是示出根据示例性实施例的用于对图像进行编码的设备的框图;图2是示出根据示例性实施例的根据当前块的尺寸的帧内预测模式的数量的示图;图3是用于解释根据示例性实施例的应用到具有预定尺寸的块的帧内预测模式的示图;图4是示出根据示例性实施例的图3的帧内预测模式的方向的示图;图5是用于解释根据示例性实施例的对图3中示出的块执行的帧内预测方法的示图;图6是用于解释根据另一示例性实施例的应用到具有预定尺寸的块的帧内预测模式的示图;图7是用于解释根据示例性实施例的具有各种方向性的帧内预测模式的参考图;图8是用于解释根据示例性实施例的当具有预定梯度的延长线在整数位置的邻近像素之间通过,而不是在整数位置的邻近像素通过时产生预测因子的处理的参考图;图9是用于解释根据另一示例性实施例的当具有预定梯度的延长线在整数位置的邻近像素之间通过时产生预测因子的处理的参考图;图10是用于解释根据示例性实施例的双线性模式的参考图;图11是用于解释根据示例性实施例的产生当前块的帧内预测模式的预测值的处理的示图;图12和图13是用于解释根据示全实施例的用于统一具有不同尺寸的块的帧内预测模式的映射处理的参考图;图14是用于解释根据示例性实施例的将邻近块的帧内预测模式映射到代表性帧内预测模式之一的处理的参考图;图15是用于解释根据示例性实施例的位于方向性为(dx,dy)的延长线上的当前像素和邻近像素之间的关系的示图;图16是用于解释根据示例性实施例的位于方向性为(dx,dy)的延长线上的邻近像素根据当前像素的位置的改变的示图;图17和图18是用于解释根据示例性实施例的确定帧内预测模式方向的方法的示图;图19是示出根据示例性实施例的通过帧内预测对图像进行编码的方法的流程图;图20是示出根据示例性实施例的对图像进行解码的设备的框图;图21是示出根据示例性实施例的通过帧内预测对图像进行解码的方法的流程图。最佳实施方式根据示例性实施例的一方面,提供了一种对图像进行帧内预测编码的方法,所述方法包括:将图像的当前画面划分为具有预定尺寸的至少一个块;沿着关于所述至少一个块的像素的具有预定梯度的延长线,从在所述至少一个块的像素之前被先前重建的邻近块的像素中,确定邻近块的像素;使用确定的邻近块的像素来预测所述至少一个块的像素。根据示例性实施例的另一方面,提供了一种对图像进行帧内预测解码的方法,所述方法包括:将图像的当前画面划分为具有预定尺寸的至少一个块;从比特流中提取指示应用于所述至少一个块的帧内预测模式的帧内预测模式信息;根据由提取的帧内预测模式信息指示的帧内预测模式,对所述至少一个块执行帧内预测,其中,在帧内预测模式中,邻近块的像素预测所述至少一个块的像素,使用关于所述至少一个块的像素的具有预定梯度的延长线,从在所述至少一个块的像素之前被先前重建的邻近块的像素中确定所述邻近块的像素。根据示例性实施例的另一方面,提供了一种用于对图像进行帧内预测编码的设备,所述设备包括:帧内预测单元,使用关于当前块的像素的具有预定梯度的延长线,从在图像的当前块的像素之前被先前重建的邻近块的像素中,确定邻近块的像素,并使用确定的邻近块的像素来预测当前块的像素。根据示例性实施例的另一方面,提供了一种用于对图像进行帧内预测解码的设备,所述设备包括:帧内预测单元,从比特流中提取指示应用于图像的当前块的帧内预测模式的帧内预测模式信息,根据由提取的帧内预测模式信息指示的帧内预测模式,对当前块执行帧内预测,其中,在帧内预测模式中,邻近块的像素预测当前块的像素,使用关于所当前块的像素的具有预定梯度的延长线,从在当前块的像素之前被先前重建的邻近块的像素中,确定所述邻近块的像素。具体实施方式现在,将参考附图更充分地描述示例性实施例,其中,示例性实施例在附图中示出。图1是示出根据示例性实施例的用于对图像进行编码的设备100的框图。参照图1,设备100包括帧内预测单元110、运动估计单元120、运动补偿单元125,频率变换单元130、量化单元140、熵编码器150、反量化单元160、频率反变换单元170、去块单元180和环路滤波单元190。运动估计单元120和运动补偿单元125执行这样的帧间预测:将当前画面的当前帧105划分为多个块(其中,每个块具有预定尺寸),并在参考画面中搜索每个块的预测值。帧内预测单元110执行这样的帧内预测:通过使用当前画面的邻近块的像素来搜索当前块的预测值。具体地说,帧内预测单元110除了执行传统的帧内预测模式之外,还通过使用(dx,dy)参数附加地执行具有各种方向性的帧内预测模式。稍后将解释附加的根据本示例性实施例的帧内预测模式。基于从帧内预测单元110和运动补偿单元125输出的预测值来产生当前块的残差值,并且所述残差值通过频率变换单元130和量化单元140被输出为量化的变换系数。量化的变换系数通过反量化单元160和频率反变换单元170被恢复为残差值,恢复的残差值通过去块单元180和环路滤波单元190被后处理,并被输出为参考帧195。量化的变换系数可通过熵编码器150被输出为比特流155。将详细解释由图1的帧内预测单元110执行的帧内预测。将通过假设可通过使用具有大于或者小于16×16的尺寸的块作为编码单元来执行压缩编码的编解码器,而不是基于尺寸为16×16的宏块执行编码的传统编解码器(诸如h.264),来解释用于提高图像压缩效率的帧内预测方法。图2是示出根据示例性实施例的根据当前块的尺寸的帧内预测模式的数量的示图。将被应用到块的帧内预测模式的数量可根据当前块的尺寸而改变。例如,参照图2,当将被预测的块的尺寸为n×n时,对分别具有尺寸2×2、4×4、8×8、16×16、32×32、64×64和128×128的块中的每个块实际执行的帧内预测模式的数量可被设置为5、9、9、17、33、5和5(在示例2的情况下)。这样,由于用于对预测模式信息进行编码的开销根据块的尺寸而改变,因此实际执行的帧内预测模式的数量根据块的尺寸而改变。换句话说,在具有小尺寸的块的情况下,虽然该块占据整个图像的一小部分,但是用于发送附加信息(诸如具有小尺寸的块的预测模式)的开销可以很高。因此,如果通过使用太多预测模式对具有小尺寸的块进行编码,则会增加比特率,从而降低了压缩效率。此外,由于具有大尺寸(例如,大于64×64的尺寸)的块经常被选择为用于图像的平坦区域的块,因此当通过使用太多预测模式对具有大尺寸的块进行编码时,也会降低压缩效率。因此,在图2中,如果块的尺寸被大致划分为至少三个尺寸n1×n1(2≤n1≤8,n1为整数)、n2×n2(16≤n2≤32,n2为整数)和n3×n3(64≤n3,n3为整数),则将对尺寸为n1×n1的块执行的帧内预测模式的数量为a1(a1为正整数),将对尺寸为n2×n2的块执行的帧内预测模式的数量为a2(a2为正整数),将对尺寸为n3×n3的块执行的帧内预测模式的数量为a3(a3为正整数),优选地,将根据每个块的尺寸执行的帧内预测模式的数量被设置为满足a3≤a2≤a1的关系。也就是说,当当前画面被大致划分为具有小尺寸的块、具有中等尺寸的块和具有大尺寸的块时,优选地,具有中等尺寸的块被设置为具有最大量的预测模式,具有小尺寸的块和具有大尺寸的块被设置为具有相对小量的预测模式。然而,本示例性实施例不限于此,具有小尺寸的块和具有大尺寸的块可被设置为具有大量的预测模式。图2中示出的预测模式的数量根据每个块的尺寸而改变是一个示例,并可被改变。图3是用于解释根据示例性实施例的应用于具有预定尺寸的块的帧内预测模式的示图。参照图2和图3,当对尺寸为4×4的块执行帧内预测时,尺寸为4×4的块可具有垂直模式(模式0)、水平模式(模式1)、直流(dc)模式(模式2)、对角线左下模式(模式3)、对角线右下模式(模式4)、垂直向右模式(模式5)、水平向下模式(模式6)垂直向左模式(模式7)和水平向上模式(模式8)。图4是示出根据示例性实施例的图3的帧内预测模式的方向的示图。在图4中,在箭头端示出的数字表示当按照由箭头标记的方向执行预测时的相应的模式值。这里,模式2是不具有方向性的dc预测模式,因此没有被示出。图5是用于解释根据示例性实施例的对图3中示出的块执行的帧内预测方法的示图。参照图5,在由块的尺寸确定的可用帧内预测模式下,通过使用当前块的邻近像素a-m来产生预测块。例如,将解释在图3的模式0(即,垂直模式)下对尺寸为4×4的当前块进行预测编码的操作。首先,在尺寸为4×4的当前块的上方邻近的像素a至d的像素值被预测为尺寸为4×4的当前块的像素值。也就是说,像素a的像素值被预测为包括在尺寸为4×4的当前块的第一列中的四个像素的像素值,像素b的像素值被预测为包括在尺寸为4×4的当前块的第二列中的四个像素的像素值,像素c的像素值被预测为包括在尺寸为4×4的当前块的第三列中的四个像素的像素值,像素d的像素值被预测为包括在尺寸为4×4的当前块的第四列中的第四个像素的像素值。接下来,包括在原始4×4的当前块中的像素的实际像素值与包括在通过使用像素a至d预测的4×4的当前块中的像素的像素值之间残差被获得并被编码。图6是用于解释根据另一示例性实施例的应用到具有预定尺寸的块的帧内预测模式的示图。参照图2和图6,当对尺寸为2×2或128×128的块执行帧内预测时,尺寸为2×2或128×128的块可具有5个模式:垂直模式、水平模式、dc模式、平面模式(planemode)和对角线右下模式。同时,如果如图2中示出,尺寸为32×32块包括33个帧内预测模式,则需要设置这33个帧内预测模式的方向。为了设置除了图4和图6中示出的帧内预测模式之外的具有各种方向的帧内预测模式,通过使用(dx,dy)参数来设置用于选择将被用作关于块中的像素的参考像素的邻近像素的预测方向。例如,当所述33个预测模式中的每一个被表示为模式n(n为从0到32的整数),模式0可被设置为垂直模式,模式1可被设置为水平模式、模式2可被设置为dc模式、模式3可被设置为平面模式,模式4至模式32中的每个模式可被设置为方向性为如下(dx,dy)之一所表示的tan-1(dy/dx)的预测模式,其中,(dx,dy)被表示为表1中所示的(1,-1)、(1,1)、(1,2)、(2,1)、(1,-2)、(2,1)、(1,-2)、(2,-1)、(2,-11)、(5,-7)、(10,-7)、(11,3)、(4,3)、(1,11)、(1,-1)、(12,-3)、(1,-11)、(1,-7),(3,-10)、(5,-6)、(7,-6)、(7,-4)、(11,1)、(6,1)、(8,3)、(5,3)、(5,7)、(2,7)、(5,-1)和(4,-3)。[表1]最后的模式32可被设置为使用双线性插值的双线性模式,这将在稍后参照图10描述。图7是用于解释根据示例性实施例的具有各种方向性的帧内预测模式的参考图。如参照表1所描述的,帧内预测模式可具有通过使用多个(dx,dy)参数的各种方向性tan-1(dy/dx)。参照图7,位于梯度为tan-1(dy/dx)的延长线700上的邻近像素a和b可被用作当前像素p的预测因子,其中,根据表1中示出每个模式的(dx,dy)确定关于在当前块中将被预测的当前像素p的梯度tan-1(dy/dx)。在这种情况下,优选地,用作预测因子的邻近像素a和b是在当前块的上方、左侧、右上方和左下方的先前被编码和恢复的邻近块的像素。此外,如果延长线700在整数位置的邻近像素之间通过,而不是通过在整数位置的邻近像素,则在接近于延长线700的邻近像素中更接近于当前像素p的邻近像素可被用作预测因子,或者可通过使用接近于延长线700的邻近像素来执行预测。例如,接近于延长线700的邻近像素之间的平均值或者考虑延长线700和接近于延长线700的邻近像素之间的连接线的交叉点与接近于延长线700的邻近像素之间的距离的加权的平均值可被用作当前像素p的预测因子。此外,如图7所示,可以以块为单位发送信号,其中,在根据预测方向可用的x轴上的邻近像素和y轴上的邻近像素当中的邻近像素(例如,邻近像素a和b)被用作当前像素p的预测因子。图8是用于解释根据示例性实施例的当具有预定梯度的延长线800在整数位置的邻近像素之间通过而不是通过在整数位置的邻近像素时产生预测因子的处理的参考图。参照图8,如果具有根据每个模式的(dx,dy)确定的tan-1(dy/dx)的角度的延长线800在整数位置的邻近像素a810和邻近像素b820之间通过,则如上所述,考虑延长线800与接近于延长线800的邻近像素a810和邻近像素b820之间的连接线的交叉点与接近于延长线800的邻近像素a810和邻近像素b820之间的距离的加权的平均值可被用作当前像素p的预测因子。例如,当角度为tan-1(dy/dx)的延长线800的交叉点与邻近像素a810之间的距离为f,角度为tan-1(dy/dx)的延长线800的交叉点与邻近像素b820之间的距离为g时,当前像素p的预测因子可被获得为(a×g+b×f)/(f+g)。这里,优选地,f和g可均为使用整数的归一化的距离。如果使用软件或硬件,则可通过移位运算来获得当前像素p的预测因子为(g×a+f×b+2)>>2。如图8所示,如果延长线800在通过将整数位置的邻近像素a810和邻近像素b820之间距离四等分而获得的四个部分中的接近于邻近像素a810的第一四分之一处通过,则当前像素p的预测因子可被获得为(3×a+b)/4。考虑到四舍五入到最接近的整数,可通过移动运算来执行这样的运算,像(3×a+b+2)>>2。图9是用于解释根据另一示例性实施例的当具有预定梯度的延长线在整数位置的邻近像素之间通过时产生预测因子的处理的参考图。参照图9,如果具有根据每个模式的(dx,dy)确定的tan-1(dy/dx)的角度的延长线800在整数位置的邻近像素a910和邻近像素b920之间通过,则邻近像素a910和邻近像素b920之间的部分可被划分为预定数量的区域,考虑到每个划分的区域中的交叉点与邻近像素a910和邻近像素b920之间的距离的加权的平均值可被用作预测值。例如,如图9所示,邻近像素a910和邻近像素b920之间的部分可被划分为五个部分p1至p5,可确定考虑每个部分中的交叉点与邻近像素a151和邻近像素b152之间的距离的代表性加权平均值,代表性加权平均值可被用作当前像素p的预测因子。具体地,如果延长线通过部分p1,邻近像素a910的值可被确定为当前像素p的预测因子。如果延长线通过部分p2,则考虑邻近像素a910和邻近像素b920与部分p2的中点之间的距离的加权的平均值(3×a+1×b+2)>>2可被确定为当前像素p的预测因子。如果延长线通过部分p3,则考虑邻近像素a910和邻近像素b920与部分p3的中点之间的距离的加权的平均值(2×a+2×b+2)>>2可被确定为当前像素p的预测因子。如果延长线通过部分p4,则考虑邻近像素a910和邻近像素b920与部分p4的中点之间的距离的加权的平均值(1×a+3×b+2)>>2可被确定为当前像素p的预测因子。如果延长线通过部分p5,邻近像素b920的值可被确定为当前像素p的预测因子。此外,如果如图7所示,两个邻近像素(即,在上方的邻近像素a和在左侧的邻近像素b)与延长线700相遇,则邻近像素a和邻近像素b的平均值可被用作当前像素p的预测因子。可选地,如果(dx×dy)为正值,则可使用在上方的邻近像素a,如果(dx×dy)为负值,则可使用在左侧的邻近像素b。优选地,可在编码端和解码端预先设置如表1所示的具有各种方向性的帧内预测模式,并且仅发送针对每个块设置的帧内预测模式的相应索引。图10是用于解释根据示例性实施例的双线性模式的参考图。参照图10,在双线性模式中,计算考虑到当前像素p与当前像素p的上边界、下边界、左边界和右边界的距离以及位于当前块中将被预测的当前像素p的上边界、下边界、左边界和右边界的像素的几何平均值,并且计算的结果被用作当前像素p的预测因子。也就是说,在双线性模式中,当前像素p与当前像素p的上边界、下边界、左边界和右边界的距离以及位于当前像素p的上边界、下边界、左边界和右边界的像素a1061、像素b1002、像素d1006和像素e1007的几何平均值可被用作当前像素p1060的预测因子。在这种情况下,由于双线性模式是帧内预测模式之一,因此在上方和左侧的先前被编码并被恢复的邻近像素应该也被用作在预测期间的参考像素。因此,在当前块中的相应像素值不被用作像素a1061和像素b1002,而是使用通过使用在上方和侧面的邻近像素产生的虚拟像素值。具体地,如等式1所示,通过使用邻近于当前块的右上方的邻近像素rightuppixel1004和左下方的邻近像素leftdowpixel1005的平均值来计算在当前块的右下方的虚拟像素c1003。数学图1[数学.1]c=0.5(downpixel+uppixel)等式1可通过移位运算被计算为c=0.5(downpixel+uppixel+1)>>1。当通过考虑与当前像素p1060的左边界的距离w1和与当前像素p1060的右边界的距离w2来向下延长当前像素p1060时,可通过使用在左下方的邻近像素leftdownpixel1005和像素c1003的平均值来设置位于下边界上的虚的像素a1061的值。例如,可通过使用在等式2中示出的一个等式来计算像素a1061的值。数学图2[数学.2]a=(c×w1+downpixel×w2)/(w1+w2);a=(c×w1+downpixel×w2+((w1+w2)/2))/(w1+w2)在等式2中,当w1+w2的值是2的幂次方,像2^n时,可通过移位运算将a=(c×w1+downpixel×w2+((w1+w2)/2))/(w1+w2)计算为a=(c×w1+leftdownpixel×w2+2^(n-1))>>n,而不需除法。同样,当通过考虑与当前像素p1060的上边界的距离h1和与当前像素p1060的下边界的距离h2来向右延长当前像素p1060时,通过考虑距离h1和h2,可通过使用像素c1003和在右上方的邻近像素rightuppixel1004平均值来设置位于右边界上的虚拟像素b1002的值。例如,可通过使用等式3中示出的一个等式来计算像素b1002的值。数学图3[数学.3]b=(c×h1+uppixel×h2)/(h1+h2);b=(c×h1+uppixel×h2+((h1+h2)/2))/(h1+h2)在等式3中,当h1+h2的值是2的幂次方,像2^m时,可通过移位运算将b=(c×h1+uppixel×h2+((h1+h2)/2))/(h1+h2)计算为b=(c×h1+uppixel×h2+2^(m-1))>>m,而不需除法。一旦通过使用等式1至等式3确定在当前像素p1060的下边界上的虚拟像素a1061的值和在当前像素p1060的右边界上的虚拟像素b1002的值,可通过使用a+b+d+e的平均值来确定当前像素p1060的预测因子。具体地,考虑当前像素p1060与虚拟像素a1061、虚拟像素b1002、像素d1006和像素e1007之间的距离的加权的平均值或者a+b+d+e的平均值可被用作当前像素p1060的预测因子。例如,如果图10的块的尺寸为16×16并使用加仅的平均值,则当前像素p1060的预测因子可被获得为(h1×a+h2×d+w1×b+w2×e+16)>>5。这样,这样的双线性预测被应用到当前块中的所有像素,产生双线性预测模式下的当前块的预测块。由于根据帧内预测模式(其中,所述帧内预测模式根据块的尺寸而改变)执行预测编码,因此可根据图像的特征来实现更有效的压缩。同时,由于根据本示例性实施例使用比在传统编解码器中使用的帧内预测模式更多数量的帧内预测模式,因此,与传统的编解码器的兼容性可能成为问题。因此,可能需要将具有各种方向的可用的帧内预测模式映射到更少数量的帧内预测模式之一。也就是说,当当前块的可用帧内预测模式的数量为n1(n1为整数)时,为了使当前块的可用帧内预测模式与具有n2(n2为不同于n1的整数)个帧内预测模式的块具有兼容性,当前块的帧内预测模式可被映射到所述n2个帧内预测模式中具有最相似方向的帧内预测模式。例如,假设如表1所示,在当前块中共33个帧内预测模式可用,最终应用到当前块的帧内预测模式是模式14,即,,具有方向性为tan-1(3/4)≈36.87(度)的(dx,dy)=(4,3)。在这种情况下,为了将应用到当前块的帧内预测模式匹配到如图4所示的9个帧内预测模式之一,可选择具有与36.87(度)的方向性最相似的方向性的模式4(右下)。也就是说,表1中的模式14可被映射到图4中示出的模式4。同样,如果应用到当前块的帧内预测模式被选择为表1的33个可用帧内预测模式中的模式15,即,(dx,dy)=(1,11),则由于应用到当前块的帧内预测模式的方向性为tan-1(11/1)≈84.80(度),因此具有与84.80(度)的方向性最相似的方向的图4的模式0(垂直)可被映射到模式15。同时,为了对通过帧内预测进行编码的块进行解码,需要关于当前块通过哪种帧内预测模式被编码的预测模式信息。因此,当图像被编码时,关于当前块的帧内预测模式的信息被添加到比特流,这时,如果关于帧内预测模式的信息针对每个块按原样被添加到比特流,则开销增加,从而降低了压缩效率。因此,确定为对当前块进行编码的结果的关于当前块的帧内预测模式的信息可不按照原样被发送,而可仅发送实际预测模式的值与从邻近块预测的帧内预测模式的值之间的差值。如果根据本示例性实施例使用具有各种方向的帧内预测模式,则可根据块的尺寸来改变可用预测模式的数量。因此,为了对当前块的帧内预测模式进行预测,需要将邻近块的帧内预测模式映射到代表性帧内预测模式。这里,优选地,代表性帧内预测模式可以是可用邻近块的帧内预测模式中更少数量的帧内预测模式,或者是如图14中所示的9个帧内预测模式。图11是用于解释根据示例性实施例的产生当前块的帧内预测模式的预测值的处理的示图。参照图11,当当前块为a110时,可从自邻近块确定的帧内预测模式中预测当前块a110的帧内预测模式。例如,如果从当前块a110的左边的块b111确定的帧内预测模式为模式3,并且从上边的块c112确定的帧内预测模式为模式4,则当前块a110的帧内预测模式可被预测为在上边的块c112和左边的块b111的预测模式中具有更小值的模式3。如果被确定为对当前块a110执行的实际帧内预测编码的结果的帧内预测模式为模式4,则仅发送与作为从邻近块b111和c112预测的帧内预测模式的值的模式3的差1,作为帧内预测模式信息。当图像被解码时,以相同的方式,产生当前块的帧内预测模式的预测值,通过比特流发送的模式差值与帧内预测模式的预测值相加,获得实际应用到当前块的帧内预测模式信息。虽然仅使用位于当前块的上方和左侧的邻近块,但是还可使用如图11所示的其它邻近块e和d来预测当前块a110的帧内预测模式。同时,由于实际执行的帧内预测模式根据块的尺寸而改变,因此,从邻近块预测的帧内预测模式可能与当前块的帧内预测模式不匹配。因此,为了从具有不同尺寸的邻近块预测当前块的帧内预测模式,需要统一具有不同帧内预测模式的块的帧内预测模式的映射处理。图12和图13是用于解释根据示例性实施例的用于统一具有不同尺寸的块的帧内预测模式的映射处理的参考图。参照图12,假设当前块a120的尺寸为16×16,左边的块b121的尺寸为8×8,上边的块c122的尺寸为4×4。此外,如图2的示例1所示,假设尺寸为4×4、8×8和16×16的块的可用帧内预测模式的数量为9、9、和33。在这种情况下,由于左边的块b121和上边的块c122的可用帧内预测模式与当前块a120的可用帧内预测模式的数量不同,因此从左边的块b121和上边的块c122预测的帧内预测模式不适合于用作当前块a120的帧内预测模式的预测值。因此,在图12中,左边的块b121和上边的块c122的帧内预测模式被分别改变为在如图14所示的预定数量的代表性帧内预测模式中具有最大相似方向的第一代表性帧内预测模式和第二代表性帧内预测模式,并从第一代表性帧内预测模式和第二代表性帧内预测模式中选择具有更小模式值的模式作为最终的代表性帧内预测模式。从根据当前块a120的尺寸而可用的帧内预测模式中选择的与最终的代表性帧内预测模式具有最大相似方向的帧内预测模式被预测为当前块a120的帧内预测模式。可选地,参照图13,假设当前块a130的尺寸为16×16,左边的块b133的尺寸为32×32,上边的块c132的尺寸为8×8。此外,如图2的示例1所示,假设尺寸为8×8、16×16和32×32的块的可用帧内预测模式的数量为9、9和32。此外,假设左边的块b133的帧内预测模式为模式4,上边的块c132的帧内预测模式为模式31。在这种情况下,由于左边的块b133和上边的块c132的帧内预测模式互相不兼容,因此左边的块b133和上边的块c132的帧内预测模式中的每个帧内预测模式被映射到如图14所示的代表性帧内预测模式之一。由于作为左边的块b133的帧内预测模式的模式31的方向性为如表1所示的(dx,dy)=(4,-3),因此模式31被映射到图14的代表性帧内预测模式中的具有与tan-1(-3/4)最相似的方向性的模式5,由于模式4具有与图14的代表性帧内预测模式中的模式4相同的方向性,因此作为上方的块c132的帧内预测模式的模式4被映射到模式4。接下来,在作为左边的块b133的映射的帧内预测模式的模式5和作为上边的块c132的映射的帧内预测模式的模式4中具有更小模式值的模式4可被确定为当前块a130的帧内预测模式的预测值,并且仅当前块a130的实际帧内预测模式与预测的帧内预测模式之间的模式差值可被编码为当前块a130的预测模式信息。图14是用于解释根据示例性实施例的将邻近块的帧内预测模式映射到代表性帧内预测模式之一的处理的参考图。在图14中,将垂直模式0、水平模式1、dc模式(未示出)、对角线左下模式3、对角线右下模式4、垂直向右模式5、水平向下模式6、垂直向左模式7和水平向上模式8设置为代表性帧内预测模式。然而,代表性帧内预测模式不限于此,并可被设置为具有多种方向性。参照图14,预先设置预定数量的代表性帧内预测模式,邻近块的帧内预测模式被映射到具有最相似方向的代表性帧内预测模式。例如,如果确定的邻近块的帧内预测模式为具有方向性的帧内预测模式mode_a140,则邻近块的帧内预测模式mode_a140被映射到9个预设的代表性帧内预测模式1至9中的具有最相似方向的模式1。如果确定的邻近块的帧内预测模式为具有方向性的帧内预测模式mode_b141,则邻近块的帧内预测模式mode_b141被映射到9个预设的代表性帧内预测模式1至9中的具有最相似方向的模式5。这样,如果邻近块的可用的帧内预测模式不相同,则邻近块的帧内预测模式被映射到代表性帧内预测模式,并且从邻近块的映射的帧内预测模式中将具有最小模式值的帧内预测模式选为邻近块的最终的代表性帧内预测模式。这样,代表性帧内预测模式具有更小模式值的原因在于更小模式值被设置为更经常产生的预测模式。也就是说,如果从邻近块预测到不同的帧内预测模式,则由于具有更小模式值的帧内预测模式具有更高的发生可能性,因此当存在不同的预测模式时,优选地将具有更小模式值的预测模式选为当前块的预测模式的预测因子。有时,虽然从邻近块选出代表性帧内预测模式,但是无法将该代表性帧内预测模式如该代表性帧内预测模式原样用作当前块的帧内预测模式的预测因子。例如,如果如参照图12所描述的,当前块a120具有33个帧内预测模式,并且代表性帧内预测模式仅具有9个代表性帧内预测模式,则与代表性帧内预测模式相应的当前块a120的帧内预测模式不存在。在这种情况下,以与如上所述的将邻近块的帧内预测模式映射到代表性帧内预测模式的方式相似的方式,从根据当当前块的尺寸的可用的帧内预测模式中选择的具有与代表性帧内预测模式最相似的方向的帧内预测模式可被选为最终的当前块的帧内预测模式的预测因子。例如,如果在图14中从邻近块最终选择的代表性帧内预测模式是模式6,则在根据当前块的尺寸的可用的帧内预测模式中具有与模式6的方向性最相似的方向性的帧内预测模式可被最终选为当前块的帧内预测模式的预测因子。同时,如参照图7所描述的,如果通过使用在延长线700上或接近于延长线700的邻近像素产生当前像素p的预测因子,则延长线700实际上具有方向性tan-1(dy/dx)。由于需要除法(dy/dx)以计算方向性,因此当使用硬件或软件时,计算进行到小数位,从而增加了计算量。因此,优选地,当以与参照表1描述的相似的方式通过使用(dx,dy)参数设置用于选择将用作关于块中的像素的参考像素的邻近像素的预测方向时,设置dx和dy以减少计算量。图15是用于解释根据示例性实施例的位于方向性为(dx,dy)的延长线上的当前像素和邻近像素之间的关系的示图。参照图15,假设位于基于当前块的上边界的第i处(i为整数)以及基于当前块的左边界的第j处(j为整数)的当前像素p1510的位置为p(j,i),并且位于通过当前像素p1510并且方向性(即,梯度)为tan-1(dy/dx)的延长线上的上边的邻近像素和左边的邻近像素分别为a1520和b1530。此外,当假设上边的邻近像素的位置相应于坐标平面上的x轴,左边的邻近像素的位置相应于坐标平面上的y轴时,通过使用三角函数比率发现与延长线相遇的上边的邻近像素a1520位于(j+i×dx/dy,0),与延长线相遇的左边的邻近像素b1530位于(0,i+j×dy/dx)。因此,为了确定用于预测当前像素p1510的上边的邻近像素a1520和左边的邻近像素b1530中的任何一个,需要进行诸如dx/dy或dy/dx的除法。由于如上所述除法非常复杂,因此会降低软件或硬件的计算速度。因此,表示确定用于帧内预测的邻近像素的预测模式的方向性的dx和dy中的至少一个的值可被确定为2的幂次方。也就是说,当n和m是整数时,dx和dy可以分别是2^n和2^m。参照图15,如果左边的邻近像素b1530被用作当前像素p1510的预测因子,并且dx具有2^n的值,则确定(0,i+j×dy/dx)(即,左边的邻近像素b1530的位置)所需要的j×dy/dx变为(i×dy)/(2^n),通过移位运算将使用这样的2的幂次方的除法容易地获得为(i×dy)>>n,从而减少了计算量。同样,如果上边的邻近像素a1520被用作当前像素p1510的预测因子,并且dy具有2^m的值,则确定(j+i×dx/dy,0)(即,上边的邻近像素a1520的位置)所需要的i×dx/dy变为(i×dx)/(2^m),通过移位运算将使用这样的2的幂次方的除法容易地获得为(i×dx)>>m,从而减少了计算量。图16是用于解释根据示例性实施例的位于方向性为(dx,dy)的延长线上的邻近像素根据当前像素的位置而改变的示图。根据当前像素的位置和延长线的梯度,位于通过当前像素的延长线上的上边的邻近像素和左边的邻近像素之一被选为预测所需的邻近像素。参照图16,当前像素1610为p(j,i),并通过使用位于具有梯度的延长线上的邻近像素来预测时,上边的像素a被用于预测当前像素p1610。当当前像素1620为q(b,a)时,左边的像素b被用于预测当前像素q1620。如果表示预测方向的(dx,dy)中的仅y轴方向的dy分量具有2的幂次方,像2^m,则可通过移位运算等将图16中的上边的像素a确定为(j+(i×dx)>>m,0),而不需要进行除法,但是左边的像素b需要除法,如(0,a+b×2^m/dx)所示。因此,为了在针对当前块的所有像素产生预测因子时排除除法,所有的dx和dy应该具有2的幂次方的类型。图17和图18是用于解释根据示例性实施例的确定帧内预测模式方向的方法的示图。通常,存在许多这样的情况:图像或视频信号中显示的线性模式是垂直或水平的。因此,当通过使用(dx,dy)参数定义具有各种方向性的帧内预测模式时,可通过定义dx和dy的值来提高图像编码效率。例如,设置dx和dy的绝对值,使得接近于水平方向或垂直方向的预测方向之间的距离窄,接近于对角线方向的预测方向之间的距离宽。具体地,参照图17,如果dy具有固定值2^n,则可设置dx的绝对值,使得接近于垂直方向的预测方向之间的距离窄,更接近于水平方向的预测方向之间的距离更宽。换句话说,可设置dx的绝对值使得接近于垂直方向的预测方向之间的距离窄,更接近于对角线(+45或-45度)方向的预测方向之间的距离更宽。也就是说,如果dy的固定值为2的幂次方,则延长线之间的距离可被设置为随着dx的绝对值越接近于0而减小,使得延长线之间的距离随着延长线的方向越接近于垂直方向而减小,并且延长线之间的距离可被设置为随着dx的绝对值越远离于0而增大,从而延长线之间的距离随着延长线的方向越接近于水平方向而增大。例如,如图17所示,如果dy具有值2^4,即16,则dx的值可被设置为1、2、3、4、6、9、12、16、0、-1、-2、-3、-4、-6、-9、-12和-16,从而接近于垂直方向的延长线之间的距离可以是窄的,接近于水平方向的延长线之间的距离可以是宽的。同样,当dx具有固定值2^n,则可设置dy的绝对值,使得接近于水平方向的预测方向之间的距离窄,更接近于垂直方向的预测方向之间的距离更宽。换句话说,可设置dy的绝对值使得接近于水平方向的预测方向之间的距离窄,更接近于对角线(+45或-45度)方向的预测方向之间的距离更宽。也就是说,如果dx的固定值为2的幂次方,则延长线之间的距离可被设置为随着dy的绝对值越接近于0而减小,使得延长线之间的距离随着延长线的方向越接近于水平方向而减小,并且延长线之间的距离可被设置为随着dy的绝对值越远离于0而增大,从而延长线之间的距离随着延长线的方向越接近于水平方向而增大。例如,如图17所示,如果dx具有值2^4,即16,则dy的值可被设置为1、2、3、4、6、9、12、16、0、-1、-2、-3、-4、-6、-9、-12和-16,从而接近于水平方向的延长线之间的距离可以是窄的,接近于垂直方向的延长线之间的距离可以是宽的。此外,当dx和dy中的任何一个的值被固定时,剩余的一个的值可被设置为根据预测模式而增大。具体地说,当dy被固定时,dx之间的距离可被设置为增大预定的值。例如,如果dy的值被固定为16,则可设置dx使得不同的dx(诸如,0、1、3、6和8)之间的绝对值差增加1。此外,可以以预定单位来划分水平方向和垂直方向之间的角度,可在每个划分的角度中设置增加的量。例如,如果dy被固定,则dx的值可被设置为在小于15度的部分中增加的量为“a”,在15度和30度之间的部分中增加的量为“b”,在大于30度的部分中增加的量为“c”。在这种情况下,为了具有如图17所示的这样的形状,dx的值可被设置为满足a<b<c的关系。通过使用表2至表4中所示的(dx,dy),参照图15至图18描述的预测模式可被定义为方向性为tan-1(dy/dx)的预测模式。表2dxdydxdydxdy-323221323213-263226323217-213232323221-173232-263226-133232-213232-93232-17-53232-13-23232-903232-523232-253232093232213323251732329表3表4dxdydxdydxdy-323223323215-273227323219-233232323223-193232-273227-153232-233232-113232-19-73232-15-33232-1103232-733232-37323201132323153232719323211如以上参考图15所示,位于基于当前块的上边界的第i处和基于当前块的左边界的第j处的当前像素p的位置为p(i,j),位于通过当前像素p并且梯度为tan-1(dy/dx)的延长线上的上边的邻近像素a和左边的邻近像素b分别位于(j+i×dx/dy,0)和(0,i+j×dy/dx)。因此,当通过使用软件或硬件执行帧内预测时,需要进行像i×dx/dy或j×dy/dx的计算。当需要进行像i×dx/dy的计算时,可用值dx/dy或通过乘以预定常量c而获得的c×dx/dy可被存储在表中,并且可通过使用在实际帧内预测期间预先准备的表中存储的值,来确定用于对当前像素进行帧内预测的邻近像素的位置。也就是说,根据如表1所示的预测模式确定的(dx,dy)的各种值以及考虑根据块的尺寸而确定的i的值的可用值i×dx/dy可被预先存储在表中,并在帧内预测期间可被使用。具体地,如果c×dx/dy具有n个不同的值,则c×dx/dy的这n个不同的值可被存储为dyval_table[n](n=0…整数至n-1)。同样,当需要进行像j×dy/dx的计算时,可用值dy/dx或通过乘以预定常量c而获得的c×dy/dx可被存储在表中,并且可通过使用在实际帧内预测期间预先准备的表中存储的值,来确定用于对当前像素进行帧内预测的邻近像素的位置。也就是说,根据如表1所示的预测模式确定的(dx,dy)的各种值以及考虑根据块的尺寸确定的j的值的可用值j×dy/dx可被预先存储在表中,并可用于帧内预测。具体地,当c×dy/dx具有n个不同的值时,c×dy/dx的这n个不同的值可被存储为dxval_table[n](n=0…整数至n-1)。这样,一旦c×dx/dy或c×dy/dx的值被预先存储在表中,就可通过使用存储在与i×dx/dy和j×dy/dx相应的表中的值来确定将被用于预测当前像素的邻近块的像素的位置,而不需要附加计算。例如,假设为了以与图17所示的形状相似的形状来形成预测模式,dy为32,dx为{0、2、5、9、13、17、21、26和32}之一,常量c为32。在这种情况下,由于c×dy/dx为32×32/dx,并根据dx的值具有值{0、512、205、114、79、60、49、39和32}之一,因此值{0、512、205、114、79、60、49、39和32}可被存储在表中,并可被用于帧内预测。图19是示出根据示例性实施例的通过帧内预测对图像进行编码的方法的流程图。参照图19,在操作1910,当前画面被划分为具有预定尺寸的至少一个块。如上所述,当前画面不限于尺寸为16×16的宏块,并可被划分为尺寸为2×2、4×4、8×8、16×16、32×32、64×64、128×128或具有更大尺寸的块。在操作1920,通过使用具有预定梯度的延长线,在先前重建的邻近块的像素中确定将用于对当前块内的每个像素进行预测的邻近块的像素。如上所述,位于基于当前块的上边界的第i处和基于当前块的左边界的第j处上的当前像素p的位置为p(j,i),并且位于通过当前像素p并梯度为tan-1(dy/dx)的延长线上的上边的邻近像素和左边的邻近像素分别位于(j+i×dx/dy,0)和(0,i+j×dy/dx)。为了减少确定邻近像素的位置所需要的dx/dy和dy/dx的计算量,优选地,dx和dy中的至少一个的值为2的幂次方。此外,如果可用值dx/dy和dy/dx或者通过将dx/dy和dy/dx的值乘以预定常量而获得的值预先存储在表中,则可通过搜索表中的相应值来确定邻近块的像素,而不需要另外的计算。在操作1930,通过使用确定的邻近块的像素来预测当前块内的每个像素。也就是说,邻近块的像素值被预测为当前块的像素值,通过对当前块内的每个像素值反复执行上述操作来产生当前块的预测块。图20是示出根据示例性实施例的用于对图像进行解码的设备2000的框图。参照图20,设备2000包括解析单元2010、熵解码器单元2020、反量化单元2030、频率反变换单元2040、帧内预测单元2050、运动补偿单元2060、去块单元2070和环路滤波单元2080。这里,帧内预测单元2050相应于用于通过帧内预测对图像进行解码的设备。比特流2005通过解析单元2010,并且解码所需的编码信息和将被解码的当前块的图像数据被提取。编码的图像数据通过熵解码单元2020和反量化单元2030被输出为反量化的数据,并通过频率反变换单元2040被恢复为残差值。运动补偿单元2060和帧内预测单元2050通过使用解析的当前块的编码信息来产生当前块的预测块。具体地,帧内预测单元2050通过使用根据包括在比特流中的帧内预测模式确定的具有预定梯度的延长线,在先前重建的邻近块的像素中,确定将被用于对当前块内的每个像素进行预测的邻近块的像素。如上所述,为了减少确定邻近像素的位置所需要的dx/dy和dy/dx的计算量,优选地,dx和dy中的至少一个的值为2的幂次方。此外,帧内预测单元2050可将可用值dx/dy和dy/dx或通过将dx/dy和dy/dx的值乘以预定常量而获得的值预先存储在表中,通过搜索表中的相应值来确定邻近块的像素,并通过使用邻近块的确定的像素来执行帧内预测。在运动补偿单元2060或帧内预测单元2050中产生的预测块与残差值相加来恢复当前帧2095。恢复的当前帧可通过去块单元2070和循环滤波单元2080被用作下一个块的参考帧2085。图21是示出根据示例性实施例的通过帧内预测对图像进行解码的方法的流程图。参照图21,在操作2110,当前画面被划分为具有预定尺寸的至少一个块。在操作2120,从比特流中提取应用到将被解码的当前块的帧内预测模式信息。帧内预测模式信息可以是实际帧内预测模式与从当前块的邻近块预测的帧内预测模式之间的模式差值,或可以是具有如上所述的通过使用(dx,dy)参数定义的各种方向性的帧内预测模式的模式值。如果模式差值作为预测模式信息被发送,则帧内预测单元2050可从先前解码的邻近块的帧内预测模式预测并确定当前块的预测的帧内预测模式,并通过将从比特流提取的模式差值与预测的帧内预测模式的模式值相加来确定当前块的帧内预测模式。在操作2130,帧内预测单元2050根据提取的预测模式,通过使用具有预定梯度的延长线,在先前重建的邻近块的像素中,确定将被用于对当前块内的每个像素进行预测的邻近块的像素。如上所述,位于基于当前块的上边界的第i处和基于当前块的左边界的第j处的当前像素p的位置为p(j,i),位于通过当前像素p并且梯度为tan-1(dy/dx)的延长线上的上边的邻近像素和左边的邻近像素分别位于(j+i×dx/dy,0)和(0,i+j×dy/dx)。为了减少确定邻近像素的位置所需要的dx/dy和dy/dx的计算量,优选地,dx和dy中的至少一个的值为2的幂次方。此外,可用值dx/dy和dy/dx或者通过将dx/dy和dy/dx的值乘以预定常量而获得的值可被预先存储在表中,并且可通过搜索表中的相应值来确定邻近块的像素。帧内预测单元2050将确定的邻近块的像素值预测为当前块的像素值,并且通过对当前块内的每个像素反复执行以上操作来产生当前块的预测块。示例性实施例可被编写为计算机程度,并且可在通用数字计算机中被实现,其中,通用数字计算机使用计算机可读记录介质来执行程序。计算机可读记录介质包括磁存储介质(例如,rom、软盘、硬盘等)和光记录介质(例如,cd-rom或dvd)。示例性实施例的设备、编码器和解码器可包括连接到所述设备的每个单元的总线、连接到所述总线的用于控制所述设备的操作以实现上述功能并执行命令的至少一个处理器(例如,中央处理单元、微处理器等)、以及连接到总线以存储命令、接收的消息和产生的消息的存储器。虽然已参照本发明的优选实施例具体示出并描述了本发明,但本领域的普通技术人员将理解,在不脱离由权利要求所限定的本发明的精神和范围的情况下,可对其进行形式和细节上的各种改变。优选实施例应该被视为仅是描述的意义,而不是为了限制的目的。因此,本发明的范围不是由本发明的详细描述来限定的,而是由权利要求来限定的,并且在本范围内的所有差别将被视为包括在本发明中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1