H.264中p帧模式的快速选择方法

文档序号:7704082阅读:120来源:国知局

专利名称::H.264中p帧模式的快速选择方法
技术领域
:本发明涉及H.264中P帧编码时的模式选择方法,特别是一种利用机器学习的方法实现快速的P帧模式选择的方法。
背景技术
:随着与网络相关的多媒体应用技术的出现和快速发展,使得多媒体数据需要在多种多样的网络传输介质中进行传输,于是也就对视频压缩标准提出了更高的要求。以H.264为代表的新一代视频压缩标准通过采用大量的新技术实现了更高的数据压缩比和更好的网络传输特性,但是也带来了新的问题,如视频压缩算法变得更为复杂、对计算资源的要求更高、算法运行时间也更长。这就对H.264算法的广泛运用(尤其是在嵌入式环境中的实时应用)带来了一定的局限性。在H.264中,模式选择阶段所需的时间占到了整个编码过程的60%-80%。而P帧一般来说又是H.264中数量最多的帧,因此缩短P帧模式选择所需要的时间就能大大降低H.264整个编码过程所需要的时间。目前在国内外已经有一些该方面的研究,出现了一些改进的P帧编码快速算法。但这些算法大多缺少灵活性,只能按照人工设定的一些规则运行,且不能在编码时间和编码质量上都能取得好的效果。
发明内容本发明的目的是提供一种H.264中P帧模式的快速选择方法,该方法能够使H.264算法在获得较好编码质量的情况下大幅缩短编码所需时间,能够降低H.264算法的复杂度,降低对计算资源的要求。在H.264标准中,编码的最小单位是宏块。P帧中的每个宏块都有帧间和帧内两类大的模式可以选择,而每类大的模式中都有多种小的候选模式(帧间模式有SKIP、16x16、16x8、8x16和P8x8五种,帧内模式有16x16和4x4两种尺寸13种模式)。把每种模式依次编码一次,通过率失真优化公式来获得最佳模式是一种很耗费时间的方法。宏块的编码模式和宏块本身所包含的内容有着很大的联系。处于画面背景或是较为平滑部分的宏块通常适合采用大尺寸的模式(如SKIP、16x16、16x8或8x16),而处于高速运动物体内部或是细节较多部分的宏块则适合采用小尺寸的模式(如P8x8、Inter4x4)。相邻宏块的模式通常具有某些相似性,称为空间相关性。这是因为相邻的宏块往往包含相似的视频内容。比如它们可能同时处于画面的背景中或是同一个物体中。为了更好地利用宏块间的空间相关性,本发明首先采用大量已经编码完毕的视频作为学习材料进行学习,通过邻近的已经编码完毕的宏块的模式来对当前宏块的模式进行预测。然后按照预测的模式对当前宏块进行编码,随即对编码效果进行评估。如果编码效果良好,则忽略其他候选模式。否则,再按照一定的顺序对其余候选模式进行检测,从中选取最好的模式作为当前宏块的最终模式。本发明的具体技术方案:^下H.264中P帧模式的快速选择方法,包括以下步骤1)用邻块的最终模式通过贝叶斯分类器选出当前宏块的初始候选模式集合;2)若初始侯选模式集合是大尺寸模式集合,则执行步骤3),若是小尺寸模式集合则转至步骤4);3)根据邻块的最终率失真开销,选出当前宏块的最佳巾贞间模式;包括3.1根据邻块的最终率失真开销设置阈值T1,检测当前宏块在SKIP模式下的率失真开销并与阈值T1比较,若小于T1,则将SKIP作为最佳帧间模式并转至步骤5),否则执行步骤3.2;3,2进一步检测当前宏块在16x16、16x8和8x16模式下的率失真开销,若率失真开销最小的模式是16x16或SKIP,则将率失真开销最小的模式作为最佳帧间模式并转至步骤5),否则执行步骤3.3;3.3进一步检测当前宏块在P8x8模式下的率失真开销,将所有模式中率失真开销最小的模式作为最佳帧间模式,转至步骤5);4)根据邻块的最终模式,选出当前宏块的最佳帧间模式;包括4.1根据邻块的最终模式设置阚值T2,检测当前宏块在P8x8模式下4个8x8子块的编码模式(宏块在进行8x8模式编码时会被分成4个8x8子块,每个8x8子块可以独立地选择自己的模式,每个子块的候选模式有8x8、8x4、4x8和4x4四种),若4个8x8子块中有大于或等于T2个子块的模式不为8x8,则将P8x8作为当前宏块的最佳帧间模式并转至步骤5),否则执行步骤4.2;4.2进一步检测当前宏块在各个大尺寸模式下的率失真开销,将所有模式中率失真开销最小的模式作为最佳帧间模式;5)比较帧间模式集在给定邻块模式下的后验概率和帧内模式集在给定邻块模式下的后验概率,若前者大于后者则将所述最佳帧间模式作为当前宏块的最终模式,否则执行步骤6);6)判断最佳帧间模式是否是SKIP或者16x16,若是则从Intra16x16和所述最佳帧间模式间选出当前宏块的最终模式,若不是,则从Intra4x4和所述最佳帧间模式间选出当前宏块的最终模式。本发明具有以下有益技术效果本发明实现了一种基于机器学习的帧模式选择的快速算法,通过前期对大量视频进行学习,可以很好地适应各种视频场景,同时能在获得较好编码质量的情况下大幅缩短编码所需时间。通过实验证明,本发明方法比JM10.0中的原始算法可以缩短60%-80%的编码时间,同时带来的失真度很小,几乎可以忽略。图1为相邻宏块间的位置关系;图2为一种理想状态下相邻宏块之间编码模式的关系;图3为不同的邻块模式组合情况下,当前宏块模式的概率分布情况;图4为本发明P帧模式快速选择方法的流程图。具体实施例方式本发明首先利用贝叶斯学习的方法,将已经编码过的一些视频材料作为学习内容进行学习。学习的目的是为了获得宏块间的空间相关性信息,如图1所示。图中的A、B、C三个宏块为当前宏块的相邻宏块,由于宏块都已编码完毕,因此可以找到相邻宏块和当前宏块编码模式之间的对应关系。图2给出了一种最理想状况下的相关情况一一当相邻3个宏块都为同一种模式时,当前的宏块也为相同模式。但在实际情况中,空间相关性远远复杂得多。图3给出了在不同的邻块模式组合情况下,当前宏块模式的概率分布情况。用贝叶斯学习的方法可以在学习完毕之后获得当前宏块各候选模式在给定邻块模式下的后验概率。选取后验概率最高的模式作为首选进行检测并评估编码效果。参照图4,本实施例H.264中P帧模式的快速选择方法,包括以下步骤1)用邻块的最终模式通过贝叶斯分类器选出当前宏块的初始候选模式集合;2)若初始侯选模式集合是大尺寸模式集合,则执行步骤3),若是小尺寸模式集合则转至步骤4);3)根据邻块的最终率失真开销,选出当前宏块的最佳帧间模式;包括3.1根据3个邻块的最终率失真开销(RDcost值)设置阈值T1,检测当前宏块在SKIP模式下的率失真开销并与阈值T1比较,若小于T1,则将SKIP作为最佳帧间模式并转至步骤5),否则执行步骤3.2;3,2进一步检测当前宏块在16x16、16x8和8x16模式下的率失真开销,若率失真开销最小的模式是16x16或SKIP,则将率失真开销最小的模式作为最佳帧间模式并转至步骤5),否则执行步骤3.3;3.3进一步检测当前宏块在P8x8模式下的率失真开销,将所有模式中率失真开销最小的模式作为最佳帧间模式,转至步骤5);4)根据邻块的最终模式,选出当前宏块的最佳帧间模式;包括4.1根据邻块的最终模式设置阈值T2,检测当前宏块在P8x8模式下4个8x8子块的编码模式(注宏块在进行8x8模式编码时会被分成4个8x8子块,每个8x8子块可以独立地选择自己的模式,每个子块的候选模式有8x8、8x4、4x8和4x4四种),若4个8x8子块中有大于或等于T2个子块的模式不为8x8,则将P8x8作为当前宏块的最佳帧间模式并转至步骤5),否则执行步骤4.2;4.2进一步检测当前宏块在各个大尺寸模式(即SKIP、16x16、16x8和8x16模式)下的率失真开销,将所有模式中率失真开销最小的模式作为最佳帧间模式;5)利用贝叶斯学习中得到的后验概率判断帧内模式编码是否有必要进行。具体是分别计算当前宏块的帧间模式集和帧内模式集在给定邻块模式下的后验概率,若前者大于后者,则认为没有必要进行帧内编码,直接将最佳帧间模式作为当前宏块的最终模式;否则认为有必要进行帧内编码,执行步骤6);6)判断最佳帧间模式是否是SKIP或者16x16,若是则从Intra16x16和所述最佳帧间模式间选出当前宏块的最终模式,若不是,则从lntra4x4和所述最佳帧间模式间选出当前宏块的最终模式。上述步骤3.1中,根据邻块的最终率失真开销设置阈值T1的方法为若3个邻块均采用SKIP模式,则将T1设置为3个邻块最终率失真开销的最大值,否则,将T1设置为3个邻块最终率失真开销的最小值。上述步骤4.1中,根据邻块的最终模式设置阈值T2的方法为若3个邻块的最终模式均为P8x8模式,则将T2设置为1,否则将T2设置为3。上述步骤1中,用邻块的最终模式通过贝叶斯分类器选出当前宏块的初始候选模式集合的方法如下将帧间模式分为大尺寸模式集合(SKIP,16X16,16X8和8x16)和小尺寸模式集合(P8x8模式,包括4个8x8子块的各种组合),分别计算两种模式集合在给定邻块模式下的后验概率,选取后验概率大的一种模式集合作为初始候选模式集合。上述大尺寸模式包括SKIP模式、16x16模式、16x8模式和8x16模式,小尺寸模式包括P8x8模式。为了验证本发明的效果,将本发明与两个很有名的快速算法1I.Choi,丄Lee,andB.Jeon,"EfficientcodingmodedecisioninMPEG-4part-10AVC/H.264mainprofile,"inProc.Int.Conf.ImageProcess.(ICIP)2004,Oct.2004,vol.2,pp.1141—1145.2.Yang,M.,Wang,W.S,"FastMacroblockModeSelectionBasedOnMotionContentClassificationinH.264/AVC",IEEEInternationalConferenceonImageProcessing(ICIP),October24-27,pp.741-744.进行了比较。实验采用了8个视频片段,在JM10.0上进行,实验重要的参数设定如表1,试验结果如表2所示。8表1<table>tableseeoriginaldocumentpage9</column></row><table>表2<table>tableseeoriginaldocumentpage9</column></row><table>由实验结果可以得出,本发明所提出的算法较之Choi和Yang的算法在编码时间缩减和编码质量上均有提高,比起JM10.0中的原始算法来可以縮短60%-80%的编码时间,同时带来的失真度4艮小,几乎可以忽略。权利要求1、H.264中P帧模式的快速选择方法,其特征在于包括以下步骤1)用邻块的最终模式通过贝叶斯分类器选出当前宏块的初始候选模式集合;2)若初始候选模式集合是大尺寸模式集合,则执行步骤3),若是小尺寸模式集合则转至步骤4);3)根据邻块的最终率失真开销,选出当前宏块的最佳帧间模式;包括3.1根据邻块的最终率失真开销设置阈值T1,检测当前宏块在SKIP模式下的率失真开销并与阈值T1比较,若小于T1,则将SKIP作为最佳帧间模式并转至步骤5),否则执行步骤3.2;3.2进一步检测当前宏块在16×16、16×8和8×16模式下的率失真开销,若率失真开销最小的模式是16×16或SKIP,则将率失真开销最小的模式作为最佳帧间模式并转至步骤5),否则执行步骤3.3;3.3进一步检测当前宏块在P8×8模式下的率失真开销,将所有模式中率失真开销最小的模式作为最佳帧间模式,转至步骤5);4)根据邻块的最终模式,选出当前宏块的最佳帧间模式;包括4.1根据邻块的最终模式设置阈值T2,检测当前宏块在P8×8模式下4个8×8子块的编码模式,若4个8×8子块中有大于或等于T2个子块的模式不为8×8,则将P8×8作为当前宏块的最佳帧间模式并转至步骤5),否则执行步骤4.2;4.2进一步检测当前宏块在各个大尺寸模式下的率失真开销,将所有模式中率失真开销最小的模式作为最佳帧间模式;5)比较帧间模式集在给定邻块模式下的后验概率和帧内模式集在给定邻块模式下的后验概率,若前者大于后者则将所述最佳帧间模式作为当前宏块的最终模式,否则执行步骤6);6)判断最佳帧间模式是否是SKIP或者16×16,若是则从Intra16×16和所述最佳帧间模式间选出当前宏块的最终模式,若不是,则从Intra4×4和所述最佳帧间模式间选出当前宏块的最终模式。2、根据权利要求1所述的H.264中P帧模式的快速选择方法,其特征在于,根据邻块的最终率失真开销设置阈值T1的方法为若3个邻块均采用SKIP模式,则将T1设置为3个邻块最终率失真开销的最大值,否则,将T1设置为3个邻块最终率失真开销的最小值;根据邻块的最终模式设置阈值T2的方法为若3个邻块的最终模式均为P8x8模式,则将T2设置为1,否则将T2设置为3。3、根据权利要求1所述的H.264中P帧模式的快速选择方法,其特征在于,用邻块的最终模式通过贝叶斯分类器选出当前宏块的初始候选模式集合的方法为将帧间模式分为大尺寸模式集合和小尺寸模式集合,分别计算两种模式集合在给定邻块模式下的后验概率,选取后验概率大的一种模式集合作为初始候选模式集合。4、根据权利要求1或2或3所述的H.264中P帧模式的快速选择方法,其特征在于所述大尺寸模式集合包括SKIP模式、16x16模式、16x8模式和8x16模式,小尺寸模式集合包括P8x8模式。全文摘要一种H.264中P帧模式的快速选择方法,包括以下步骤用邻块的最终模式通过贝叶斯分类器选出当前宏块的初始候选模式集合;若初始侯选模式集合是大尺寸模式集合,则根据邻块的最终率失真开销选出当前宏块的最佳帧间模式,若是小尺寸模式集合,则根据邻块的最终模式选出当前宏块的最佳帧间模式;利用贝叶斯学习中得到的后验概率判断帧内模式编码是否有必要进行,若没必要,则将所述最佳帧间模式作为当前宏块的最终模式,若有必要则从帧内模式和最佳帧间模式中选出最终模式。本发明方法可以很好地适应各种视频场景,同时能在获得较好编码质量的情况下大幅缩短编码所需时间。文档编号H04N7/26GK101527851SQ20091010655公开日2009年9月9日申请日期2009年4月10日优先权日2009年4月10日发明者周欣欣,坤张,春袁,钟玉琢申请人:清华大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1