专利名称:基于统计的h.264svc增强层的快速模式选择方法
技术领域:
本发明涉及H. 264可伸缩视频编码中模式选择方法,实现了一种增强层上的快速模式选择方法。
背景技术:
近年来,H. 264可伸缩视频编码(SVC)发展成为一种新的标准。传统的视频编码方案将视频数据压缩成为一个固定的码流,而H. ^4/SVC可以只对视频数据编码一次,然后根据客户端的网络带宽以及处理能力而提供不同质量和分辨率的码流。H. ^4/SVC支持三种形式的可伸缩空间可伸缩、时间可伸缩和质量(SNR)可伸缩。但是同时它也提高了编码算法的复杂度,所以,对编码算法优化来减少编码时间成为了一个重要的问题。大量的研究结果表明,在编码的过程中,模式选择占用了多于70%的时间。所以, 大量学者对H. 264中模式选择算法进行了优化和改进。总体来讲,这些算法分为两类一类算法是在尽量不影响质量的情况下,通过减少搜索节点的数目来达到减少计算时间的目的;另一类算法则是通过有选择的跳过某些模式的检查来减少计算时间。后一类算法比较常见。在编码过程中,由于量化后相当一部分宏块会变为全零,通过提前检查到这些全零块(all-zero blocks, AZB)就可以跳过后面多余的检查,从而节省编码时间,提高编码效率。根据这个特点文献 Hanli Wang,Sam Kwong,Chi-Wah Kok :An Efficient Mode DecisionAlgorithm for H. 264/AVC Encoding Optimization. In :IEEE Transactions on Multimedia,vol 9,no.4,pp. 882—888(2007)禾口Chaoke Pei,Shuyan Yang,Li Gao,Weipeng Ma :An early modedecision algorithm for H. 264optimization. In Proceedings of the 27th conference on PictureCoding Symposium,pp. 89-92(2009)中提出了一种基于全零宏块检查的算法° 文献 Huanqiang Zeng, Canhui Cai,Kai-Kuang Ma :Fast Mode Decision for H. 264/AVC Based onMB Motion Activity. In :IEEE Transactions on Circuits and Systems for Video Technology,vol. 19,no. 4,pp. 491-499(2009)中提出了一种基于宏块运动活跃度的模式选择算法(motionactivity-based mode decision,MAMD),它通过时间及空间上相邻宏块的运动特性,来估计当前宏块的运动活跃度,宏块运动活跃度较小时,则可以跳过一些细致的模式检查。文献 Xinxin Zhou,Chun Yuan,Chunhua Li, YuzhuoZhong Fast Mode Decision for P-Slices inH. 264/AVC Based on Probabilistic Learning. In Proceedings of the Ilth internationalconference on Advanced Communication Technology, vol.2, pp. 1180-1184(2006)中提出了一种根据相邻宏块与当前宏块预测模式的统计特性来进行预测的方法。文献DJu,S. Wu, K. P. Lim, F. Pan, Z.G.Li and X.Lin" Block inter-mode decision for fast encoding ofH. 264" ,Proc. IEEE ICASSP, vol. 3,pp. 181 2004中提出利用算子快速计算出此模块是否属于平滑不动区域,从而快速选择出适合此模块的模式。在H. 264/SVC中,所有基于H. 264/AVC的快速模式选择算法都可以应用在任何独立的一层中。但是SVC中,增强层宏块的预测模式与基本层相应宏块的预测模式有着很紧密的联系。
发明内容
本发明的目的是提供一种基于统计的H. 264SVC增强层的快速模式选择方法。本发明基于统计的H. 264可伸缩视频编码中增强层的快速模式选择方法,包括以下步骤根据对多个视频序列H. 264编码增强层中各个宏块与其上侧宏块、左侧宏块及基本层相应宏块的模式选择相关性的统计结果,建立上侧宏块、左侧宏块及基本层相应宏块在不同模式组合下,当前宏块对应的模式选择算法列表;读取当前编码视频序列增强层当前宏块的上侧宏块、左侧宏块及基本层相应宏块的模式选择结果,从所述模式选择算法列表选取对应的模式选择算法,按该算法获得当前宏块的模式。一种优选方案中,所述模式选择算法列表包括以下模式选择算法算法case_l 首先检测当前宏块在SKIP模式和16X16模式下的率失真开销,若在SKIP模式下的率失真开销小,则选择SKIP模式;否则,若当前宏块在16 X 16模式下的率失真开销小于上侧宏块和左侧宏块率失真开销中的较大者,则选择16X16模式;否则,继续检测在其它帧间模式下的率失真开销,选择率失真开销最小的模式;算法case_2 首先检测当前宏块在16X8模式和8X16模式下的率失真开销,若它们中的较小者小于上侧宏块和左侧宏块率失真开销中的较大者,则选择16X8模式和 8X16模式中率失真开销较小者;否则,继续检测在其它帧间模式下的率失真开销,选择率失真开销最小的模式;算法case_3 首先检测当前宏块在8X8及其子模式下的率失真开销,如果8X8 模式率失真开销最小,继续检测在其它帧间模式下的率失真开销,选择率失真开销最小的模式;否则,选择8X8及其子模式中率失真开销最小的模式;算法CaSe_4:首先检测当前宏块在SKIP模式下的率失真开销,如果小于上侧宏块和左侧宏块率失真开销中的较大者,则选择SKIP模式;否则,继续检测在其它帧间模式下的率失真开销,选择率失真开销最小的模式;算法case_5 检测所有帧间模式,选择率失真开销最小的模式;算法Case_X_l 在算法casej的基础上,进一步检测在htra4模式下的率失真开销,然后选择率失真开销最小的模式;算法case_X_2 在算法casej的基础上,进一步检测在各个帧内模式下的率失真开销,然后选择率失真开销最小的模式;算法case_x_BL 在算法casej的基础上,进一步检测在htraBL模式下的率失真开销,然后选择率失真开销最小的模式;算法case_x_y_BL 在算法Case_x_y的基础上,进一步检测在htraBL模式下的率失真开销,然后选择率失真开销最小的模式;其中,χ表示第χ种帧间模式选择算法,χ为1、或2、或3、或4、或5,y表示第y种帧内模式选择算法,y为1或2。一种优选方案中,所述模式选择算法列表中上侧宏块、左侧宏块及基本层相应宏块的各个模式组合对应的算法如下a.当上侧宏块和左侧宏块均为16X16模式时,若基本层相应宏块为16X16模式,选择算法case_l_l,若基本层相应宏块为16 X 8或8 X 16模式,选择算法caSe_2,若基本层相应宏块为P8 X 8模式,选择算法CaSe_3,若基本层相应宏块为Intra模式,选择算法 case——5—1—BL ;b.当上侧宏块和左侧宏块均为SKIP模式时,若基本层相应宏块为16X16模式, 选择算法case_l,若基本层相应宏块为16X8或8X16模式,选择算法case_5_l,若基本层相应宏块为P8 X 8模式,选择算法CaSe_5,若基本层相应宏块为Intra模式,选择算法 case—4—BL ;c.当上侧宏块和左侧宏块中有一个为16X16模式且另一个不是16X16模式和SKIP模式时、或上侧宏块和左侧宏块为16X8或8X 16模式时,若基本层相应宏块为16X 16模式,选择算法case_l_2,若基本层相应宏块为16X8或8X 16模式,选择算法CaSe_2_l,若基本层相应宏块为P8 X 8模式,选择算法CaSe_3_l,若基本层相应宏块为 Intra模式,选择算法case_5_2_BL ;d.当上侧宏块和左侧宏块中有一个为SKIP模式且另一个不是SKIP模式时,若基本层相应宏块为16X16模式,选择算法case_l_2,若基本层相应宏块为16X8或8X16模式,选择算法case_2_l,若基本层相应宏块为P8 X 8模式,选择算法caSe_3_l,若基本层相应宏块为Intra模式,选择算法caSe_5_2_BL ;e.当上侧宏块和左侧宏块的模式组合不属于所述a_d中的情形时,若基本层相应宏块为16乂16模式,选择算法(^%_5_2,若基本层相应宏块为16X8或8X16模式,选择算法case_5_2,若基本层相应宏块为P8 X 8模式,选择算法case_5_2,若基本层相应宏块为 Intra模式,选择算法case上2_BL。本发明方法能够在几乎不损害编码质量的情况下,有效节省编码时间。经实验证明,与JSVM9. 18中的算法比较,本发明方法能够节省10% 40%的编码时间而信噪比与码率基本相同。而且本发明方法受视频内容的影响小,更具有普遍适用性。
图1为本发明中宏块与其相邻宏块及基本层对应宏块的位置关系示意图。
具体实施例方式下面结合附图和具体实施例对本发明做进一步说明。本发明中增强层宏块与其相邻宏块及基本层对应宏块的位置关系如图1所示,其中宏块A和B为宏块X的上侧宏块和左侧宏块,统称为宏块X的相邻宏块,宏块&为宏块X 的基本层对应宏块。本基于统计的H. 264可伸缩视频编码中增强层的快速模式选择方法,包括以下步骤Si.根据对多个视频序列H. 264编码增强层中各个宏块与其上侧宏块、左侧宏块及基本层相应宏块的模式选择相关性的统计结果,建立上侧宏块、左侧宏块及基本层相应宏块在不同模式组合下,当前宏块对应的模式选择算法列表;
S2.读取当前编码视频序列增强层当前宏块的上侧宏块、左侧宏块及基本层相应宏块的模式选择结果,从所述模式选择算法列表选取对应的模式选择算法,按该算法获得当前宏块的模式。其中,步骤Sl的实施过程如下。宏块分类当前宏块的预测方式与相邻宏块的预测方式有相关性,如果宏块在增强层,那么还与基本层对应宏块的预测方式有着很强的相关性。为了研究这种相关性,发明人利用 JSVM9. 18 对 8 个视频序列 Bus、Foreman、City、Crew、Mobile、Harbour、Football 和 Soccer进行编码,其中基本层分辨率为QCIF,量化参数为28和30,增强层分辨率为CIF,量化参数为34和36,然后对增强层中宏块模式选择结果进行了统计。表1指出了宏块A与B 的不同组合在整体中所有组合所占的比例。可以看到,宏块A和B都是16X16的情况占了 40%以上,所以可以有针对的对这种情况进行优化。为了方便归类,利用宏块A与B的组合方式,将所有宏块分为5个大类,使每一类里的宏块特点相近,如表2所示。表1宏块A与B不同组合在所有组合中所占比例
权利要求
1.基于统计的H.264可伸缩视频编码中增强层的快速模式选择方法,其特征在于,包括以下步骤根据对多个视频序列H. 264编码增强层中各个宏块与其上侧宏块、左侧宏块及基本层相应宏块的模式选择相关性的统计结果,建立上侧宏块、左侧宏块及基本层相应宏块在不同模式组合下,当前宏块对应的模式选择算法列表;读取当前编码视频序列增强层当前宏块的上侧宏块、左侧宏块及基本层相应宏块的模式选择结果,从所述模式选择算法列表选取对应的模式选择算法,按该算法获得当前宏块的模式。
2.根据权利要求1所述的快速模式选择方法,其特征在于,所述模式选择算法列表包括以下模式选择算法算法case」首先检测当前宏块在SKIP模式和16X 16模式下的率失真开销,若在 SKIP模式下的率失真开销小,则选择SKIP模式;否则,若当前宏块在16X16模式下的率失真开销小于上侧宏块和左侧宏块率失真开销中的较大者,则选择16X16模式;否则,继续检测在其它帧间模式下的率失真开销,选择率失真开销最小的模式;算法case_2 首先检测当前宏块在16X8模式和8X 16模式下的率失真开销,若它们中的较小者小于上侧宏块和左侧宏块率失真开销中的较大者,则选择16 X 8模式和8 X 16 模式中率失真开销较小者;否则,继续检测在其它帧间模式下的率失真开销,选择率失真开销最小的模式;算法case_3 首先检测当前宏块在8X8及其子模式下的率失真开销,如果8X8模式率失真开销最小,继续检测在其它帧间模式下的率失真开销,选择率失真开销最小的模式; 否则,选择8X8及其子模式中率失真开销最小的模式;算法Case_4:首先检测当前宏块在SKIP模式下的率失真开销,如果小于上侧宏块和左侧宏块率失真开销中的较大者,则选择SKIP模式;否则,继续检测在其它帧间模式下的率失真开销,选择率失真开销最小的模式;算法case_5 检测所有帧间模式,选择率失真开销最小的模式; 算法Case_X_l 在算法casej的基础上,进一步检测在htra4模式下的率失真开销, 然后选择率失真开销最小的模式;算法case_X_2 在算法case_X的基础上,进一步检测在各个帧内模式下的率失真开销,然后选择率失真开销最小的模式;算法case_X_BL 在算法casej的基础上,进一步检测在htraBL模式下的率失真开销,然后选择率失真开销最小的模式;算法CaSe_X_y_BL 在算法CaSe_X_y的基础上,进一步检测在htraBL模式下的率失真开销,然后选择率失真开销最小的模式;其中,χ表示第χ种帧间模式选择算法,χ为1、或2、或3、或4、或5,y表示第y种帧内模式选择算法,y为1或2。
3.根据权利要求2所述的快速模式选择方法,其特征在于,所述算法Case_X_2中, 帧内模式下率失真开销的检测采用以下快速算法如果帧间预测的最佳模式是Skip或者 16x16,那么只检测htraie模式,否则继续检测其它帧内模式。
4.根据权利要求2所述的快速模式选择方法,其特征在于,所述模式选择算法列表中上侧宏块、左侧宏块及基本层相应宏块的各个模式组合对应的算法如下a.当上侧宏块和左侧宏块均为16X16模式时,若基本层相应宏块为16X16模式, 选择算法case_l_l,若基本层相应宏块为16X8或8X16模式,选择算法caSe_2,若基本层相应宏块为P8 X 8模式,选择算法CaSe_3,若基本层相应宏块为Intra模式,选择算法 case——5—1—BL ;b.当上侧宏块和左侧宏块均为SKIP模式时,若基本层相应宏块为16X16模式,选择算法case」,若基本层相应宏块为16 X 8或8 X 16模式,选择算法CaSe_5_l,若基本层相应宏块为P8 X 8模式,选择算法CaSe_5,若基本层相应宏块为Intra模式,选择算法caSe_4_ BL ;c.当上侧宏块和左侧宏块中有一个为16X16模式且另一个不是16X16模式和SKIP 模式时、或上侧宏块和左侧宏块为16X8或8X16模式时,若基本层相应宏块为16X16模式,选择算法case_l_2,若基本层相应宏块为16X8或8X16模式,选择算法caSe_2_l,若基本层相应宏块为P8 X 8模式,选择算法CaSe_3_l,若基本层相应宏块为Intra模式,选择算法 case_5_2_BL ;d.当上侧宏块和左侧宏块中有一个为SKIP模式且另一个不是SKIP模式时,若基本层相应宏块为16 X 16模式,选择算法caSe_l_2,若基本层相应宏块为16 X 8或8 X 16模式,选择算法case_2_l,若基本层相应宏块为P8 X 8模式,选择算法case_3_l,若基本层相应宏块为Intra模式,选择算法case_5_2_BL ;e.当上侧宏块和左侧宏块的模式组合不属于所述a_d中的情形时,若基本层相应宏块为16\16模式,选择算法(^%_5_2,若基本层相应宏块为16X8或8X16模式,选择算法CaSe_5_2,若基本层相应宏块为P8 X 8模式,选择算法CaSe_5_2,若基本层相应宏块为 Intra模式,选择算法case_5_2_BLo
全文摘要
一种基于统计的H.264可伸缩视频编码中增强层的快速模式选择方法,包括以下步骤根据对多个视频序列H.264编码增强层中各个宏块与其上侧宏块、左侧宏块及基本层相应宏块的模式选择相关性的统计结果,建立上侧宏块、左侧宏块及基本层相应宏块在不同模式组合下,当前宏块对应的模式选择算法列表;读取当前编码视频序列增强层当前宏块的上侧宏块、左侧宏块及基本层相应宏块的模式选择结果,从所述模式选择算法列表选取对应的模式选择算法,按该算法获得当前宏块的模式。本发明方法能够在几乎不损害编码质量的情况下,有效节省编码时间,而且受视频内容的影响小,更具有普遍适用性。
文档编号H04N7/32GK102316325SQ20111028546
公开日2012年1月11日 申请日期2011年9月23日 优先权日2011年9月23日
发明者徐博林, 袁春, 邸晨旭 申请人:清华大学深圳研究生院