一种自适应的帧预测的方法及装置的制作方法

文档序号:7666314阅读:157来源:国知局

专利名称::一种自适应的帧预测的方法及装置的制作方法
技术领域
:本发明涉及视频编码技术,尤其是指一种自适应的帧预测的方法及装置。
背景技术
:随着多々某体技术和网络技术的飞速发展和广泛应用,通过网络来传输的视频数据变得越来越多。由于原始的视频数据所需带宽极大,同时有具有^f艮大的冗余性,因此通常将视频数据经过编码压缩后再进行传输。在视频编码技术中,为了提高压缩效率,通常将输入的一帧视频图象分割成多个宏块,并对各个宏块进行预测、变换、量化、编码。其中,预测包括帧内预测和帧间预测,帧内预测可去除空间冗余性,而帧间预测可去除时间冗余性。所述的帧间预测是利用图像间数据的冗余,即活动图像序列中相邻帧之间像素存在的相关性,根据相邻的帧进行图像预测的技术。在帧间预测过程中,可以采用不同大小的匹配块,例如,可将一个大小为(16xl6)(单位为象素点)的宏块划分成大小为(16x8)、(8x16)或(8x8)的子块,最小可被划分成大小为(4x4)的子块,进行运动搜索和匹配;对宏块进行划分后,可通过对当前帧的前向帧、后向帧或双向的参考帧的选择,采用不同大小的匹配块进行运动搜索和匹配,根据不同的预测模式对子块进行预测,得到子块的子块残差;然后对不同子块的子块残差使用整数离散余弦变换(IDCT),从而得到码率失真比,并通过码率失真比来选择最优的块划分的方法和预测模式进行帧间预测。而在帧内预测中,目前运用广泛的浮见频编解码标准H.264/AVC在以前标准中的帧内宏块预测方式的基础上,提出了一种新的帧内预测方法,即将一帧图象分割成多个大小为(16x16)的宏块,然后再分别将各个宏块划分成16个(4x4)的子块,并对每一个子块分别进行帧内预测,并各自有独立的预测模式。在H.264/AVC中,对每个(4x4)的子块来说,可使用如图1所示的9种预测模式。此外,H.264/AVC中还包含了基于大小为(8x8)和(16x16)的子块的帧内预测模式。在现有技术中,有一种针对H.264/AVC的双向帧内预测方法。该方法将H.264/AVC中已有的9种预测模式,按照一定的加权系数两两结合,从而得到36种新的预测模式,使得帧内预测的模式达到9+36=45种。而在现有技术中,还提出了一种针对H.264/AVC的自适应的变换方法,即将宏块划分成如图2所示的大小为(4x8)或(8x4)的非正方形的子块,并对于上述非正方形子块提出了非正方形的整数离散余弦变换(IDCT)。其中,图2中还给出了将宏块划分成(4x4)和(8x8)的正方形的子块的示意图。此外,在现有技术中,还提出了一种针对双向帧内预测的KL变换,即在对大小为(4x4)和(8x8)的子块进行双向帧内预测后,使用K-L变换来替代原有的IDCT对预测结果进行变换。K-L变换是建立在统计特性基础上的一种变换方法,其突出优点是相关性好,是均方误差意义下的最佳变换,在数据压缩技术中占有重要地位。在上述的现有技术中,无论是H.264/AVC中的帧内预测方法,还是双向帧内预测方法,它们的模式选择的适应性都依赖于对残差的变换及量化。由于所划分的子块为规则的正方形,且所使用的变换方法为传统的整数离散余弦变换(IDCT),因此会破坏图像中连续的紋理特性,从而将导致明显的块效应。而无论是上述帧间预测中的变换方法,还时帧内预测中的自适应的变换方法和双向帧内预测的KL变换方法,它们的变换方法都是基于当前的规则划分块。虽然双向帧内预测的KL变换方法取代了传统的IDCT,但是由于不同的块划分方法所产生的子块具有不同的能量分布,因此如果仫使用单一的变换方法,将导致编码效率不高。
发明内容有鉴于此,本发明实施例的主要目的在于提供一种自适应的帧预测的方法及装置,从而可根据最优的帧预测方法来进行帧内预测或帧间预测。为达到上述目的,本发明实施例中的技术方案是这样实现的一种自适应的帧预测的方法,该方法包括使用至少一种块划分的方法对需做帧内预测的宏块进行块划分;使用至少一种预测模式对每种块划分的结果中的每个子块进行预测,得到当前子块的子块残差;根据子块的类型选择至少一种或至少两种变换方法对每个子块残差进行变换,得到当前子块的码率失真比;根据所得到的所有码率失真比中具有最小值的码率失真比所对应的块划分方法、预测模式和变换方法对所述宏块进行帧予贞测。本发明的实施例中还提供了一种自适应的帧预测装置,该装置包括块划分模块、预测模块、变换模块、选择模块和帧预测模块;所述块划分模块,用于使用至少一种块划分的方法对需做帧内预测的宏块进行块划分,将块划分结果发送给预测模块;所述预测模块,用于使用至少一种预测模式对所接收到的每种块划分结果中的每个子块进行预测,得到当前子块的子块残差;将所述子块残差发送给变换模块;所述变换模块,用于根据子块的类型选择至少一种或至少两种变换方法对所接收到的每个子块残差进行变换,得到当前子块的码率失真比;将所述码率失真比发送给选择模块;所述选择模块,用于从所得到的所有码率失真比中选择具有最小值的码率失真比,将所选择的码率失真比发送给帧预测模块;所述帧预测模块,用于根据所接收到的码率失真比所对应的划分方法、预测模式和变换方法对所述宏块进行帧预测。综上可知,本发明的实施例中提供了一种自适应的帧预测的方法及装置。通过使用本发明实施例所提供的方法及装置,将传统的帧内预测技术和双向预测技术组合后,利用不同的变换方法,选择最优的帧预测方法来实现灵活的帧内预测或帧间预测,为宏块的帧内、帧间编码提供了最大的灵活性,可在不同的紋理特性的情况下,提供最优的帧内、帧间编码性能,可更好地适应宏块的局部紋理统计特性,使得编码效率得到显著地提高。图1为现有技术中的9中预测模式的示意图。图2为现有技术中的对宏块的划分结果的示意图。图3为本发明实施例中自适应的帧内预测方法的流程图。图4(a)和图4(b)为本发明实施例中对宏块的非规则的划分方法示意图。图5为本发明实施例中对宏块的另一种非规则的划分方法的示意图。图6为本发明实施例中自适应的帧内预测装置的示意图。具体实施例方式为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。在本发明的实施例中,将以需做帧内预测的宏块大小为(16xl6)个《象素点为例,对本发明的实施例中的技术方案进行介绍。图3为本发明实施例中自适应的帧内预测方法的流程图。如图3所示,本发明实施例中自适应的帧内预测方法包括如下所述的步骤步骤301,使用多种方法对需做帧内预测的宏块进行块划分。即可使用n(n〉1)种块划分的方法,将需^f故帧内预测的宏块划分成子块。由于不同的划分方法将产生不同形状或大小的子块,因此使用n种块划分的方法后,将产生n种不同的划分结果。一般来说,可将上述的n种块划分方法分成规则的块划分方法和非规则的块划分方法两类。所述的规则的块划分方法,即所产生的子块为矩形的块划分方法,包括如图2所示的4种块划分方法;而所述的非规则的块划分方法即利用宏块的紋理特性,将根据上线分割为两个非矩形的子块的块划分方法。例如,沿各个子块的对角线将每个子块划分为两个对称的三角形的块划分方法,此时,对于规则的块划分结果(4x8)和(8x4),可以有如图4(a)所示的4种块划分方法,产生的划分结果分别为(4x8—down)、(4x8—up)、(8x4—down)和(8x4—up);而对于规则的块划分结果(4x4)和(8x8),则可以有如图4(b)所示的4种块划分方法,产生的划分结果分别为(4x4—down)、(4x4—up)、(8x8一down)和(8x8—up)。此夕卜,还可以有如图5所示的非MJ寸的块划分方法,即在形状为矩形的子块中,沿图5所示的直线将矩形子块划分为两个非矩形的子块。该直线的中点与矩形子块的几何中心重合,且该直线可绕垂直于纸面并通过其中心的轴旋转,旋转后的角度A可根据实际应用情况或图像的紋理特性预先进行设定。步骤302,对每种划分结果中的每个子块均使用多种预测模式或预测方向进行帧内预测。即对上述n种划分结果的每种划分结果,都使用m(m〉l)种预测模式(例如,H.264/AVC中已有的9种预测模式,以及将上述9种预测模式按照一定的加权系数两两结合,从而得到的36种新的预测模式)对每种划分结果中的每个子块进行帧内预测,并根据预测结果得到相应的子块残差(即预测值与原始值的差值)。由于对于同一种划分结果中的各个子块所采用的预测模式相同,因此,经过本步骤的处理后,可得到(nxm)个子块残差。步骤303,对每个子块残差,均使用多种变换方法进行变换。即对于上述(nxm)个子块残差中的每一个子块残差,均使用k种变换方法进行变换。由于使用不同的划分方法、不同的预测模式或不同的变换方法时,可得到不同的码率失真比(RD—Cost),因此,经过本步骤的处理后,将得到(nxmxk)个码率失真比。此外,所述的变换方法可以为IDCT、K-L变换或小波变换。例如,对于上述所得到的子块残差,可按照两种或两种以上的变换方法做变换。所述的变换方法可以为IDCT或K-L变换。对于使用规则的块划分方法得到的子块,可使用K-L变换或IDCT分别做变换;而对于使用非规则的块划分方法得到的子块,则可利用K-L变换做变换。在做K-L变换时,对于KL系数的选择,可先设置一个统一整合的K-L变换(KLT)码表,然后按照不同的块划分方法和不同的预测模式,在该统一整合的KLT码表的一定范围内进行搜索,从而得到最优KL变换系数,并按照最优KL变换系数对子块残差做变换,从而得到码率失真比。此外,对于KL系数的选择,也可直接根据不同的块划分方法、不同的预测模式分别获得相应的KLT的系数码表,并"fe照相应的KL变换系数对子块残差做变换,从而得到码率失真比。步骤304,根据具有最小值的码率失真比所对应的划分方法、预测模式和变换方法对所述宏块进行帧内预测。即从上述(nxmxk)个码率失真比中选择一个具有最小值的码率失真比,并将该被选择的码率失真比所对应的块划分方法、预测模式和变换方法,做为最优的块划分方法、预测模式和变换方式对所述宏块进行帧内预测。在选定上述最优的块划分方法、预测模式和变换方式后,还需将所选择的最优的块划分方法、预测才莫式和变换方式分别通知给编码端和解码端,以实现对数据的编码和解码,从而完成数据的传输。在本发明的实施例中,可通过对宏块头信息的修改来实现上述的通知。其中,由于宏块头信息已包括了对当前模块所使用的预测模式的信息,因此编码端和解码端可从宏块头信息中直接得到预测模式的信息。对于所使用的块划分方法的信息来说,由于存在上述的多种规则的块划分方法和非规则的块划分方法,因此,可以通过对原有的宏块头信息进行相应的^f奮改,即在宏块头信息中加入一个块划分标志位(mb_partition—flag),然后根据具体的实际情况,对上述标志位的值进行设置,从而在编码、解码过程中可根据上述的标志位的值来确定对宏块的最优的块划分方法。如表1所示,上述对宏块头信息的修改为表1<table>tableseeoriginaldocumentpage11</column></row><table>在表1中,macroblock—layer表示宏块层,C表示重要性,Descriptor表示编码类型;mb—type表示宏块类型,其重要性为2,编码方式可以为变长编码方法u(v)或基于上下文模型的编码方法ae(v);mb_partition—flag表示新加入的标志位,其重要性为2,编码方式可以为变长编码u(v)或基于上下文编码ae(v)。其中,u(v)中的v可以为2,此时u(2)表示定长为2的变长编码方法,并可依此类推。在对上述的宏块头信息进行设置后,在编码或解码过程中,编码端或解码端可根据上述宏块头信息中的宏块类型和新加入的标志位来确定所选择的最优的块划分方法。例如,如果可选的块划分方法为图2所示的四种规则的块划分方法以及图4(a)所示的四种块划分方式,则标志位mb_partition—flag的长度可以是2位(bit),可取0、1、2和3等四个值。此时,可根据宏块类型和标志位的值来获知所选择的最优的块划分方法,例如首先判断宏块的类型,如果宏块的类型为14x4MB,则当标志位的值小于2时,可知所选择的最优的块划分方法为规则的块划分方法,例如,当标志位的值为0时,即表示所选择的最优的块划分方法为(4x4)的规则的块划分方法;当标志位的值为1时,即表示所选择的最优的块划分方法为(4x8)的规则的块划分方法;而当标志位的值大于等于2时,则可知所选择的最优的块划分方法为非规则的块划分方法,例如,当标志位的值为2时,即表示所选择的最优的块划分方法为(4x8—down)的非规则的块划分方法;当标志位的值为3时,即表示所选择的最优的块划分方法为(4x8—up)的非规则的块划分方法。同理,如果宏块的类型为18x8MB,则当标志位的值小于2时,则可知所选择的最优的块划分方法为规则的块划分方法,例如,当标志位的值为0时,即表示所选择的最优的块划分方法为(8x4)的规则的块划分方法;当标志位的值为1时,即表示所选择的最优的块划分方法为(8x8)的规则的块划分方法;而当标志位的值大于等于2时,则可知所选择的最优的块划分方法为非规则的块划分方法,例如,当标志位的值为2时,即表示所选择的最优的块划分方法为(8x4—down)的非规则的块划分方法;当标志位的值为3时,即表示所选择的最优的块划分方法为(8x4_up)的非规则的块划分方法。如上所述的实施方式,-f叉为本实施例中的一种4支佳实施方式。在实际应用场景中,可根据具体的实际情况,灵活地设定上述标志位的长度,以及标志位的值与块划分方法的对应关系。例如,在上述的实施方式中,仅以使用图4(a)中的四种非规则的划分方式为例进行了说明,但在实际应用情况下,还可使用图4(b)中的四种非规则的划分方式,或者使用图4中所示的8种非规则的划分方式中的若干种划分方式。当所使用的非规则的划分方式超过4种时,可扩展标志位的长度,并重新设置标志位的值与块划分方法的对应关系。例如,可将标志位的长度扩展为3bit,并设置标志位的值与8种块划分方法的对应关系。另外,对于所使用的变换方法的信息来说,由步骤303可知,如果所使用的变换方法为两种,即IDCT和K-L变换时,不4吏用IDCT,而使用K-L变换对非规则的划分方法得到的子块做变换,而对于通过规则的划分方法得到的子块,在每种预测模式下都可从上述2种变换方法中选择一种变换方法,因此还需要在宏块预测信息后增加一个长度为1位(bit)的变换标志位,即宏块变化类型(Mb—Transform—Type);编码端和解码端可才艮据此标志位来确定对当前子块的变换方法。添加后的宏块变化类型在宏块预测变换语法中的位置如表2所示表2<table>tableseeoriginaldocumentpage13</column></row><table>志位,而是根据事先约定好的规则,根据块划分方式确定对当前子块的变换方法。例如,以使用的变换方法为两种,即IDCT和K-L变换为例,编码端和解码端可事先达成如下的变换方法与划分方法和预测模式之间的对应关系如果所选择的块划分方法为规则的块划分方法(4x4)、(8x8)、(4x8)或(8x4),且对于划分结果中的子块中的采用垂直、横向或直流(DC)预测模式时,则可利用IDCT对当前子块做变换;如果所选择的块划分方法为规则的块划分方法(4x4)、(8x8)、(4x8)或(8x4),且对于划分结果中的子块中的不采用垂直、横向或直流(DC)预测模式时,或者所选择的块划分方法为非规则的块划分方法时,则可利用K-L变换(KLT)对当前子块做变换。根据上述事先达成的变换方法与划分方法和预测模式之间的对应关系,编码端和解码端可根据已经获知的块划分方法以及预测模式,直接获知对当前子块所使用的变换方法。同理,当所使用的变换方法为两种以上时,则可将上述增加的在宏块头信息中的标志位的长度适当延长(例如,2bit,3bit,…等),使得编码端和解码端可根据此标志位来确定对当前子块的变换方法;或者可通过事先达成的约定,获知对当前子块的变换方法。以上所述为自适应的帧内预测方法,由于帧间预测法与帧内预观'J的不同点在于块划分的方式以及进行预测的方法,即帧间预测主要是利用前、后帧的信息作为预测的参考信息,并采用不同大小的子块在参考帧上进行运动搜索和匹配,找寻匹配块,得到子块残差并进行变换;而帧内预测的的参考信息主要为为同一帧内的宏块周围的信息。因此,上述自适应的帧内预测方法也可应用到帧间预测上,由于所使用的方法是类似的,因此不再赘述。图6为本发明实施例中自适应的帧预测装置的示意图。如图6所示,本发明实施例中自适应的帧内预测装置包括块划分模块、预测模块、变换模块、选择模块和帧预测模块。所述块划分模块,用于使用至少一种块划分的方法对需做帧内预测的宏块进行块划分,将块划分结果发送给预测模块;所述预测模块,用于使用至少一种预测模式对所接收到的每种块划分结果中的每个子块进行预测,得到当前子块的子块残差;将所述子块残差发送给变换模块;所述变换模块,用于根据子块的类型选择至少一种或至少两种变换方法对所接收到的每个子块残差进行变换,得到当前子块的码率失真比;将所述码率失真比发送给选择模块;所述选择模块,用于从所得到的所有码率失真比中选择具有最小值的码率失真比,将所选择的码率失真比发送给帧预测模块;所述帧内预测模块,用于根据所接收到的码率失真比所对应的划分方法、预测模式和变换方法对所述宏块进行帧内预测,输出帧内预测结果。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种自适应的帧预测的方法,其特征在于,该方法包括使用至少一种块划分的方法对需做帧内预测的宏块进行块划分;使用至少一种预测模式对每种块划分的结果中的每个子块进行预测,得到当前子块的子块残差;根据子块的类型选择至少一种或至少两种变换方法对每个子块残差进行变换,得到当前子块的码率失真比;根据所得到的所有码率失真比中具有最小值的码率失真比所对应的块划分方法、预测模式和变换方法对所述宏块进行帧预测。2、根据权利要求1所述的方法,其特征在于,当所述帧预测为帧内预测时,所述块划分的方法包括至少一种非规则的块划分方法。3、根据权利要求2所述的方法,其特征在于,所述非规则的块划分方法包括将每一个形状为矩形的子块,沿非垂直且非水平的直线分割为两个非矩形的子块的块划分方法。4、根据权利要求3所述的方法,其特征在于,所述非规则的块划分方法包括将每一个形状为矩形的子块,沿矩形的对角线分割为两个非矩形的子块的划分方法。5、根据权利要求2所述的方法,其特征在于,所述根据子块的类型选择至少一种或至少两种变换方法对每个子块残差进行变换包括当所述当前子块的类型为非规则的块划分方法所产生的子块时,则选择除整数离散余弦变换之外的至少一种变换方法对当前子块的子块残差做变换;当所述当前子块的类型为规则的块划分方法所产生的子块时,则选择至少两种变换方法对当前子块的子块残差做变换。6、根据权利要求1所述的方法,其特征在于,所述变换方法包括整数离散余弦变换、K-L变换或小波变换。7、根据权利要求3所述的方法,其特征在于,当使用K-L变换对子块残差进行变换时按照不同的块划分方法和不同的预测模式,在预先设置的整合的K-L变换码表中进行搜索,得到最优的K-L变换系数,并按照最优K-L变换系数对子块残差做K-L变换;或根据不同的块划分方法和不同的预测模式,分别获得相应的K-L变换系数码表,并按照相应的K-L变换系数对子块残差做K-L变换。8、根据权利要求1所述的方法,其特征在于,该方法还包括在宏块头信息中设置块划分标志位,根据宏块类型和所述块划分标志位的值确定对宏块进行块划分的块划分方法。9、根据权利要求1所述的方法,其特征在于,该方法还包括在宏块预测信息后设置变换标志位,根据所述变换标志位的值确定对当前子块的子块残差进行变换的变换方法。10、根据权利要求1所述的方法,其特征在于,该方法还包括根据预先设定的变换方法与划分方法和预测模式之间的对应关系,并根据当前的划分方法和预测模式确定对当前子块的子块残差进进行变换的变换方法。11、一种自适应的帧预测装置,其特征在于,该装置包括块划分模块、预测模块、变换模块、选择模块和帧预测模块;所述块划分模块,用于使用至少一种块划分的方法对需做帧内预测的宏块进行块划分,将块划分结果发送给预测模块;所述预测模块,用于使用至少一种预测模式对所接收到的每种块划分结果中的每个子块进行预测,得到当前子块的子块残差;将所述子块残差发送给变换模块;所述变换模块,用于根据子块的类型选择至少一种或至少两种变换方法对所接收到的每个子块残差进行变换,得到当前子块的码率失真比;将所述码率失真比发送给选择模块;所述选择模块,用于从所得到的所有码率失真比中选择具有最小值的码率失真比,将所选择的码率失真比发送给帧预测模块;所述帧预测模块,用于根据所接收到的码率失真比所对应的划分方法、预测模式和变换方法对所述宏块进行帧预测。全文摘要本发明实施例中公开了一种自适应的预测的方法,该方法包括使用多种块划分的方法对需做帧内预测的宏块进行块划分;使用多种预测模式对每种块划分的结果中的每个子块进行预测,得到当前子块的子块残差;根据子块的类型选择多种变换方法对每个子块残差进行变换,得到当前子块的码率失真比;根据所得到的所有码率失真比中具有最小值的码率失真比所对应的块划分方法、预测模式和变换方法对所述宏块进行预测。本发明实施例中公开了一种自适应的预测装置,该装置包括块划分模块、预测模块、变换模块、选择模块和帧预测模块。通过使用所述方法及装置,可灵活地进行宏块的帧内或帧间编码,更好地适应宏块的局部纹理统计特性,提高编码效率。文档编号H04N7/32GK101415121SQ20071018182公开日2009年4月22日申请日期2007年10月15日优先权日2007年10月15日发明者傅佳莉,刘盈嘉,周建同,张晓森,林四新,熊联欢,谢清鹏,山高申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1