专利名称::采用帧内预测模式的图像编码方法
技术领域:
:本发明涉及釆用帧内预测模式的图像编码方法。
背景技术:
:在MPEG-4AVC中,大小为4x4、8x8或16x16像素的图像块的帧内预测是通过沿预定义方向根据相邻重建像素进行1D外插的方式予以实现的。该预测的执行过于局部化,因而,只利用周边的信息。无法对含有某种纹理或重复的2D图案的图像执行最优的帧内预测。在比如Siu-LeongYu和ChristosChrysafis的、题为"NewIntraPredictionusingIntra-MacroblockMotionCompensation"的论文中(文档JVT-C151,JVT会议,2002年5月),或SatoshiKondo、HisaoSasai和ShinyaKadono的、题为"Treestructuredhybridintraprediction"的论文中(2004年)提出了利用运动估计进行帧内编码的方法。当块匹配涉及相同图案时,此类算法的效率无法达到最优。
发明内容本发明的目的之一在于缓解上述缺陷。本发明的主题是一种利用帧内模式对视频图像逐块编码的方法,包括-重建已编码的图像部分的步骤,-计算预测块的帧内预测步骤,-计算与当前块和预测块间的差异相对应的残差的步骤,其特征在于,帧内预测步骤包括-在图像的重建部分内对已编码的当前块的相邻部分进行运动估计以获得相关部分的步骤,-根据相关部分以及与相邻部分有关的当前块的位置定义预测块的步骤。依照具体实施例,所考虑的重建部分取决于当前块在其所属的宏块内的位置。依照具体实施例,所考虑的当前块的相邻部分取决于当前块在其所属的宏块内的位置。依照具体实施例,运动估计执行块匹配算法。依照具体实施例,运动估计为全像素搜索、半像素搜索或l/4像素搜索。依照具体实施例,对于相关,所述运动估计考虑偏重于所述当前块的最近像素的加权函数。通过阅读对不同实施例的说明,本发明的其他特征以及优势将显而易见,该说明是参照附图描述的,附图中图1示出了重建图像中的帧内运动估计,图2示出了依照本发明的算法的图示,图3示出了重建宏块,图4示出了当前宏块内4x4块的重建区域,图5示出了当前宏块内8x8块的重建区域,图6示出了4x4块的相邻子分区的形状,图7示出了8x8块的相邻子分区的形状,图8示出了位于全像素和下一半像素上的边缘的示例,图9示出了两个2x2块及其之间的一个半像素2x2块的示例,图IO示出了半像素的水平内插,图11示出了半像素的垂直内插,图12示出了与初始全像素相对应的半像素,图13示出了1/4像素内插,图14示出了目标块的可能的子分区扩展,图15示出了根据编码顺序和块位置的目标形状,图16示出了加权运动估计函数,图17示出了预测图像的表,图18示出了残差图像的表。具体实施例方式提出了一种所谓的基于运动估计的帧内预测方法,包括利用帧内图像运动估计对当前块进行预测。帧内运动估计的实现同"传统的"帧间运动估计类似。最重要的区别在于,参考图像不是另一已编码图像而是当前解码图像本身。只利用被称为重建图像的、包含在前宏块以及当前宏块内的在前块的图像已编码部分。该方法的目标是,在重建图像内搜索与要预测的块最相似的块。以和利用MPEG-4AVC标准的预测模式获得的预测块同样的方式,将这个最相似的块用作帧内预测。可以将这种执行运动估计的新式帧内预测编码模式看作现有编码模式(如MPEG4标准的编码模式)中的另一种编码模式。选中的模式可以是比如在某一给定质量下编码开销最小的模式。与解码有关的方法包括在已解码且接近于要解码的当前块的子分区和当前图像的己解码区域之间进行运动估计的步骤。同子分区相关的部分允许获得与当前块相关的、作为预测块的部分。将该预测块与残差相加以获得当前块。无需运动矢量就能找到该预测块。该算法基于如下构思取与要预测的当前块相邻的重建图像子分区。图1表示重建图像中的帧内运动估计,其中bk和ndgh_part对应于要预测的当前块。利用该子分区扫描重建图像,根据相似性准则搜索在图中被称为sim_part的最相似子分区。图中被称为pred的预测块就是找到的子分区simj)art的相邻块。该算法还可应用在解码器中。由于根据定义,重建图像在编码器和解码器中相同,因此算法将给出同样的结果。因而,不必传送帧内运动矢量。帧内运动估计具有两个主要优点-有可能可以从整个重建图像中提取搜索块预测所需的信息,而不像在MPEG-4AVC帧内预测中的那样,仅从当前块的相邻像素提取搜索块预测所需的信息。在此,预测内容可以是复杂的2D图案和纹理。-编码器无需向解码器传送任何运动矢量。利用运动估计的帧内预测算法以之字形顺序对当前宏块的例如大小为4x4或8x8的每个块进行处理。按光栅扫描顺序处理图像的宏块。对于每个块,算法步骤如下,如图2所示1)获取对重建图像中与相邻子分区最相似的候选子分区Sim_part的位置进行描述的最佳运动矢量。这是通过在重建图像中扫描neighjDart并在每个位置处计算相邻子分区与候选子分区之差而实现的。该差是利用相似性准则计算的,相'似性准则比如是全、半和1/4像素搜索中的绝对差和或者SAD。2)获取预测块。该预测结果就是同上述运动矢量对应的sim_part邻接的块pred。3)根据由帧内运动估计得到的预测块以及由MPEG-4AVC标准的帧内预测模式得到的其他预测块,确定最佳预测块。这是通过对所有获得的预测块的编码开销(sse+X*块开销)进行比较而实现的。重建图像的定义区域在图1中,简化了重建图像的定义区域。实际上,该区域包含图3中阴影区域所示的先前已编码的宏块。在图3中虚线区域所示的当前宏块内,定义区域的边界取决于当前块(打叉的块)的位置。定义区域的边界取决于图3(a)中当前4x4块或图3(b)中当前8x8块的位置,在图4和图5中分别针对宏块内当前块的不同位置示出了定义区域的边界。全像素搜索为了获得最佳运动矢量,在前段定义的重建图像上扫描当前块的相邻子分区,以便确定最相似子分区。此搜索的精度单位是一个像素。这就是此搜索被成为"全像素搜索"的原因。4x4块的相邻子分区的定义根据宏块内当前块的位置,4x4块的相邻子分区可以具有两种不同的形状。如果右上方的块不在重建区域内(编号为5、7、11、13、15的4x4块,以及当宏块位于图像最后一列时编号为3的块)(块编号可参见图15),那么4x4块的相邻子分区具有图6(a)的形状。如果右上方的块在重建区域内(编号为0、1、2、4、6、8、9、10、13、14的块,以及当宏块并非位于图像最后一列时编号为3的块),相邻子分区具有(b)的形状。由图4可见,对于宏块中每个4x4块位置,由此定义的相邻子分区能够同重建区域相符合。8x8块的相邻子分区的定义同样,根据宏块内当前块的位置,8x8块的相邻子分区可以具有两种不同的形状。如果右上方的块不在重建区域内(编号为3的8x8块,以及当宏块位于图像最后一列时编号为1的块),那么8x8块的相邻子分区具有图7(a)的形状。如果右上方的块在重建区域内(编号为0、2的块,和当宏块并非位于图像最后一列时编号为1的块),相邻子分区具有图7(b)的形状。由图5可见,对于宏块中每个4x4块位置,由此定义的相邻子分区能够同重建区域相符合。全像素搜索算法-在整个重建区域中扫描该相邻子分区,用SAD(绝对差和)准则选择最佳候选子分区,作为最相似子分区。对Sahn-GyuPark、EdwardJ.Delp禾口HoapingYu的、题为"Ad冲tivelosslessvideocompressionusinganintegerwavelettransform"(ICIP,2004)的论文中所描述的算法进行调整,在帧内4x4预测的情况下,按如下方式计算SAD:<formula>formulaseeoriginaldocumentpage7</formula>其中,根据图h-dec(u,v)与要预测的当前块blc相对应的因果(causal)部分-dec(m,n)是,在应用于当前帧重建部分的运动估计的情形下,位移了矢量(u-m,v-n)的、与dec(u,v)大小相同的块,-i和j索引允许对块dec(u,v)和dec(m,n)中的全部像素进行扫描,-SADuv(m,n)是分别包含于块dec(u,v)和dec(m,n)中的像素的绝对差的和。值得注意的是,和的索引取决于相邻子分区的形状。此处,图6中的形状(a)作为参考。并且,在帧内8x8预测的情况下,需要对这些索引进行调整。半像素搜索在全像素搜索中,搜索网格的单位是像素。可能出现最佳预测位于两个单元位置之间的情形。此类预测是由内插像素构成的块。图8示出了位于两个像素之间(或位于半像素上)的边缘的示例。并且,图9示出了由全像素之间的内插半像素构成的块的示例。如同MPEG-4AVC标准中那样,根据两个方向上的三个相邻像素进行半像素内插。该内插算法如下所示1)如图IO所示,首先根据包含有全像素的每一行中的半像素的6个最近的水平相邻全像素,在水平方向上内插这些半像素。内插半像素的值为,「a-5b+20c+20d-5e+f)h=round-L32J2)如图11所示,根据全像素或已在第一步中内插的半像素,在垂直方向上内插其他半像素。在垂直方向上计算半像素的值时采用同样的公式。图12示出了如何(沿两个方向)将每个全像素分成4个半像素。因而,对于每个全像素需要计算3个半像素。因此,如果n和m表示图像的尺寸,那么在该图像上需计算3.11.111个半像素。为了避免对该图像的所有3.11.111个半像素进行计算,并避免以SAD准则测试图像中的所有半像素子分区,在运行中(ontheflight)进行半像素搜索,对于每个己处理的块进行一次。从先前已算得的最相似的全像素子分区开始,考虑该全像素子分区周围的8个半像素子分区。只内插这8个候选子分区所需的半像素。然后,对上述所有8个半像素候选子分区的SAD和位于中心的最相似的全像素子分区的SAD(共9个SAD)进行比较,并选出最相似的半像素子分区。该半像素子分区的邻接块确定了预测块。1/4像素搜索同前述从全像素到半像素的搜索精度的提高类似,搜索精度可以从半像素提高到l/4像素。如图13所示,实现1/4像素内插的方式同MPEG-4AVC标准中的相似,采用两个邻接的相邻像素的线性内插。该内插算法如下所示全部1/4像素都是根据两个邻接像素内插得到的。-如图13(a,)所示,内插得到全像素周围的8个1/4像素-如图13(a》所示,内插得到内插半像素(在4个全像素和4个半像素之间)周围的8个l/4像素-如图13(b)所示,内插得到内插半像素(在2个全像素和6个半像素之间)周围的8个l/4像素"+b、内插1/4像素的值为q=roundV2乂和前面的半像素搜索一样,不计算图像的所有1/4像素。只计算在运行中计算最相似的半像素子分区周围的8个候选子分区时所需的l/4像素。然后,对8个候选子分区的SAD和最相似的半像素子分区的SAD(共9个SAD)进行比较,并选出最相似的1/4像素子分区。该1/4像素子分区的邻接块确定了预测块。巾贞内4x4禾口8x8预测在实现基于运动估计的帧内4x4和帧内8x8预测算法时,可以无误地同时实现两种算法。这两种算法分别返回4x4和8x8预测块。可以将这些预测模式集成在编码过程中。图l提出了相邻子分区的基本形状,因此,如果要预测4x4像素块,相邻子分区大小等于不存在4x4候选块的8x8个像素。事实上,根据MB和MB内的块的扫描顺序以及由于相邻子分区大小导致的块匹配机会,该子分区可以采用截然不同的形式。图14的示例示出了可能的匹配随着(a)、(b)和(c)的情况下而逐渐增大。然而,如前面所见,目标的配置取决于当前块在宏块内的位置。如果是4x4的块,根据块编码顺序和当前块在宏块内的位置,相邻子分区可能具有三种不同的形状。图14以典型的左下对角线示出了匹配/不匹配的示例。由图14(a)可见,利用具有这种形状的相邻子分区内的可用信息,无法预测(与水平轴的)角度小于兀/4且位于当前块右下半部分内的直线边缘(straitedge)。在(b)中,相邻子分区向右扩展,因此无法预测的仅仅是角度小于兀/8且位于当前块右下1/4部分内的直线边缘。如图(c)所示,随着相邻子分区向右下扩展,理论上可以预测所有通过预测块的直线边缘。图15示出了根据编码顺序和块位置的目标形状。图15a)示出了宏块内的块的扫描顺序,图15b)示出了这些宏块(块0、块l、块4...)的编码顺序。图15c)至e)示出了要求分别与图14的(a)、(b)、(c)相对应的不同子分区的不同当前块位置a、b、c。图15f)根据所用的子分区对宏块中不同的块进行了命名。如果是4x4的块,则根据块编码顺序和以a、b或c命名的当前块在以2标识的宏块内的位置,相邻子分区可能具有以1标识三种不同的形状-如果右上方的块不在重建区域内(编号为5、7、11、13和15的4x4块),则相邻子分区具有图14(a)的形状,-如果右上方的块在重建区域内,但左下方的块不在重建区域内(编号为1、3、6、9、12和14的块),则相邻子分区具有图14(b)的形状,-如果右上方的块和左下方的块都在重建区域内(编号为0、2、4、8和10的4块),则相邻子分区具有图14(c)的形状,-在帧的边界上(最后一列和最后一行的块),可以使用其他种类的目标形状。上面解释了针对4x4块大小的目标形状,由于4x4块和8x8块的形状相同,因此对于8x8的块,方法是类似的。加权函数由于运动估计器试图借助于周围的像素块搜索子分区,因而块匹配类型是特定的。为了在块匹配过程中偏重于最近的像素,一种解决方案包括利用加权函数。加权系数值可以随所要匹配的像素距所要预测的块的中心的距离而变化。在这种情况下,所用的4x4和8x8加权函数为<formula>formulaseeoriginaldocumentpage11</formula>其中C是归一化系数,p=0.8,i和j是基于目标参考的系数坐标,其中,对于4x4的块,所要编码的块的中心为(5.5,5.5),对于8x8的块,为(11.5,11.5),且原点(0,0)位于目标的右上角。利用这个函数,相关系数为一43<formula>formulaseeoriginaldocumentpage11</formula>参考图l,通过使用该函数,偏重了接近当前块的neighjart的像素。举例而言,当进行块匹配时,按照ndghj)art的像素的位置,将加权系数应用于neigh_part中像素的亮度与sim_part中相应像素的亮度之差。图16a)示出了针对8x8大小的块的、并且特别地具有类似于图14b)的目标形状的加权函数。x轴对应于图像的水平方向,y轴对应于图像的垂直方向。当前块与x轴的S9至S16以及y轴的16至9相对应。如图所示,最接近于该块的像素具有最大系数。图16b)表示从目标角度观察的相同函数。测试及结果在该配置下,基于运动估计的帧内预测的执行时间很长。这主要是由于,对于图像中的每个块,搜索窗尺寸均是整个已编码图像(重建图像)。运动估计算法(整块匹配)是通过遍历该窗中的每个位置而实现的。这意味着,算法的复杂度是0(N2),其中N是图像中像素的总数,O表示函数。举例而言,如果将图像的高度和宽度增大一倍,图像的像素数量就将增大至原来的4倍,且执行时间将增长至原先的42=16倍。算法复杂度的计算O(基于ME的帧内预测,在重建图像上)2O(基于ME的帧内预测,广宽度髙度A仅在当前块的左上方上)<formula>formulaseeoriginaldocumentpage12</formula>预测图像预测图像是由基于运动估计的帧内预测算法算得的预测块构成的。编码器将预测图像从源图像中减去,从而得到差值图像,也称残差图像。对残差图像进行编码,并将其发送至解码器。图17是一张表,示出了仅对4x4块进行1/4像素搜索、仅对8x8块进行1/4像素搜索、以及对4x4和8x8块的组合进行1/4像素搜索后得到的预测图像。将上述预测图像与采用MPEG-4AVC标准预测模式得到的预测图像进行比较。上述测试是对QCIF图像(176x144个像素)进行的测试,QCIF图像的源图像显示在表的第一行。能够注意到,具有帧内4x4和帧内8x8块的预测图像不等同于从帧内4x4预测图像和帧内8x8预测图像得到的块构成的图像。所观察到的差异是由于如下事实解码图像是在运行中生成的,并且在根据帧内4x4/帧内8x8MB判决选择的编码过程中发生改变。可以根据该表进行以下视觉观察第一,在"工头"序列中,基于运动估计算法的帧内预测算法较好地预测出了位于人物后的规则结构。然而,检测到一些错误的边缘,而且一些从左下到右上的对角线边缘没有得到较好的预测。下面将对这些情况予以讨论。图像的不规则部分、人物的脸部和上衣的预测效果比使用MPEG-4AVC算法得到的预测效果要差。第二,在"qcif!7"序列中,利用基于运动估计的方法以最佳效果预测出了电视屏幕上重复的内容。第三,在"qcif—8"序列中,同MPEG-4AVC标准帧内预测(允许使用所有帧内模式)相比,帧内运动估计算法可以产生非常好的结果。在这种情况下,我们的算法找到了矩阵符号上的正确的位置。虽然,算法未找到正确的符号(非常困难...),但同MPEG-4AVC相比,进步还是十分明显的。图18是显示了残差图像的表。这些图像是源图像的亮度分量和预测图像的亮度分量之差。如同通过预测图像所注意到的一样,由残差图像可见,利用基于运动估计的算法可以在视觉效果上更好地预测出序列"qcif—7"和"qcif—8"。在"工头"序列中,我们的算法在视觉上减小了位于人物后的规则结构中的残差。以下,我们将看到利用该方法可以使比特流大小縮减多少。性能以下,将用于执行基于运动估计的帧内预测的模式称为帧内运动估计模式。在以下所示的仿真中,用该模式替换MPEG-4AVC标准的另一帧内模式。选择要替换哪种模式是由对采样序列执行的仿真而决定的。一般而言,帧内模式5(沿右垂直轴预测)是较少使用的模式之一。因此,在其他仿真中用所述帧内运动估计模式替换模式5。执行所述模式替换,以避免进一步修改软件,并且为了产生可解码的比特流。由于只有在块预测之后产生的所发送的残差发生了变化(同原始MPEG-4AVC残差相比),因此比特流依然是可解码的。当接收到采用基于帧内运动估计的模式而编码的块时,解码器就认为应该用帧内模式5进行解码。由于解码器采用原始预测模式5对块进行重建,因此,解码图像是错误的。但是,编码比特流的大小对应于要搜索什么。毫无疑问,必须根据新预测模式对编码器的编码语法进行修改。解码器也必须进行修改。解码器实现同样的、基于帧内运动估计的算法。在用帧内运动估计模式替换帧内模式5以及将帧内运动估计模式添加至标准模式这两种情况下,都要对解码器进行这种修改。对不同的CIF图像(352x288个像素)测试基于运动估计的帧内预测模式。同前面的QCIF序列的计算时间相比,此时计算时间非常长。首先,只对于帧内4x4块进行测试。以下的表1以百分比形式示出了同样条件下、基于运动估计的帧内4x4预测(替换预测模式5)和MPEG-4AVC之间的比特流大小之差。该差是利用Bjontegaard准则计算得到的。由表可见,在所有情况下,从全像素搜索到半像素搜索最终到1/4像素搜索,性能越来越好。<table>tableseeoriginaldocumentpage14</column></row><table>表l如果只对于帧内8x8块大小进行编码,那么根据以下的表2可以得出相同的结论。当基于帧内运动估计的预测从全像素精度提高到1/4像素精度时,比特流大小减小。<table>tableseeoriginaldocumentpage15</column></row><table>同前面基于最可能的模式估计的方法相比,其改进在于,在从4x4块大小变为8x8块大小时,能够保持良好的性能。例如,当从4x4块大小变为8x8块大小时,第一种最可能模式估计方法的改进平均上是从75%开始下降的。有关基于运动估计的帧内预测的结论前段所示的结果显示,基于运动估计的帧内预测改善了MPEG-4AVC帧内预测的质量-如果不存在旋转或变焦或透视效果,可以较好地实现相似2D图案和纹理元素的匹配。-在从4x4块大小变为8x8块大小时,图像质量不会显著下降。并且两种块大小的结合能够产生良好的结果。-在MPEG-4AVC预测效率较低时,该算法十分高效。作为示例,可以对该方法进行以下修改-縮小搜索窗,以缩短计算时间,或者使用另一运动估计器代替全块匹配,以在时间开销和结果质量之间取得折中,-改变相邻子分区的尺寸或者形状。如图16(c)所示,当可以利用重建图像中左下方的块时,相邻子分区可以向下方扩展。-利用其他相邻子分区相似性准侧代替SAD,或除了SAD还利用其他相邻子分区相似性准侧实现运动估计。-在16x16块上执行帧内运动估计。-在预测级(运动估计)使用色度信号,比如,通过将色度包含到运动估计过程中,在预测级(运动估计)使用色度信号。权利要求1.一种利用帧内模式对视频图像逐块编码的方法,包括-重建已编码的图像部分的步骤,-计算预测块的帧内预测步骤,-计算与当前块和预测块之差相对应的残差的步骤,其特征在于,帧内预测步骤包括-在图像的重建部分内对已编码的当前块(a、b、c)的相邻部分(1)进行运动估计以获得相关部分的步骤,-根据所述相关部分以及与所述相邻部分有关的当前块的位置定义预测块的步骤。2.根据权利要求1所述的方法,其特征在于,所考虑的重建部分取决于所述当前块(a、b、c)在其所属的宏块(2)内的位置。3.根据权利要求1所述的方法,其特征在于,所考虑的当前块(a、b、c)的相邻部分(1)取决于所述当前块在其所属的宏块(2)内的位置。4.根据权利要求1所述的方法,其特征在于,所述运动估计执行块匹配算法。5.根据权利要求1所述的方法,其特征在于,所述运动估计为全像素搜索、半像素搜索或l/4像素搜索。6.根据权利要求1所述的方法,其特征在于,对于相关,所述运动估计考虑偏重于所述当前块的最近像素的加权函数。全文摘要本方法的特征在于,帧内预测步骤包括在图像的重建部分内对已编码的当前块(a、b、c)的相邻部分(1)进行运动估计从而获得相关部分的步骤;根据所述相关部分以及与所述相邻部分有关的当前块的位置定义预测块的步骤。文档编号H04N7/34GK101385356SQ200780005063公开日2009年3月11日申请日期2007年2月15日优先权日2006年2月17日发明者列奥纳德·坡塔,多米尼克·托罗,奥利弗·勒默尔,艾尼塔·奥翰德申请人:汤姆森许可贸易公司