摘 要:H.264視頻編碼標準對于幀內預測采用了I16×16、I4×4和IPCM三種模式,而前兩種模式分別有四種和九種預測方向,這些特性提高了幀內宏塊的編碼效率,但同時也增加了幀內模式選擇的復雜度。提出了一種適用于H.264視頻流空間分辨率縮減轉碼的幀內宏塊模式選擇算法,主要利用輸入碼流中的宏塊模式信息,推算出下采樣后宏塊可能的模式及預測方向,從而減少需要計算的宏塊模式數目,同時對I4×4宏塊采用子塊刷新機制,確保轉碼質量。實驗證明,在保持編碼效率和視頻質量的同時,能有效降低H.264下采樣轉碼過程中幀內宏塊模式選擇算法的復雜度。
關鍵詞:H.264; 視頻轉碼; 模式選擇; 統計信息
中圖分類號:TP301.6文獻標志碼:A
文章編號:1001-3695(2010)06-2356-03
doi:10.3969/j.issn.10013695.2010.06.103
Fast intra mode decision algorithms of downscaling video transcoding for H.264
CHEN Buzhena, KANG Zhiweib, ZHANG Minb
(a.School of Software, b.School of Computer Communication, Hunan University, Changsha 410082, China)
Abstract:The H.264 video coding standard adopts some new methods for intra prediction.Though these characteristics enhance the efficiency of coding,it also increases the complexity of intra coding.This paper proposed a fast intra mode decision algorithm of spatial downscaling tanscoding for H.264. Fully used the statistic information of the source video stream to estimate the most possible modes and predict directions.The experimental results show that the proposed algorithms can increase the speed of intra coding significantly with neligibal loss of PSNR and increase of biterate.
Key words:H.264; video transcoding; mode decision; statistic information
0 引言
視頻轉碼就是對壓縮視頻流進行端到端的處理,即轉碼器的輸入、輸出都是壓縮數據,使轉碼后的壓縮碼流更能適應傳輸帶寬以及接收端的要求。轉碼按照變換對象的不同可以分為碼率轉碼、分辨率轉碼和語法轉碼[1]。其中,空間分辨率的轉換是根據客戶端顯示設備的大小和處理能力來降低碼流的分辨率,并盡量保證視頻質量的不顯著降低。現階段,隨著智能手機和掌上電腦等低分辨率顯示與處理性能較弱的移動設備的逐漸普及,分辨率轉碼在視頻應用中得到了廣泛的支持。
現階段空間分辨率轉碼的結構主要是像素域級聯結構。它將輸入的壓縮碼流完全解碼到像素域,然后進行下采樣以降低分辨率,再重新送入編碼器中,從而獲得所需要分辨率的視頻流。H.264標準中引入了幀內預測編碼等技術。H.264幀內預測編碼充分利用圖像的空間相關性,用圖像塊周圍的像素來進行預測,再利用率失真優化技術進行最優幀內編碼模式的選擇,這雖然降低了空域冗余,提高了轉碼的壓縮效率,也大大增加了轉碼器的計算復雜度。空間分辨率下采樣后幀內預測編碼模式選擇的計算復雜度成為影響H.264編碼速率、實現實時性應用的瓶頸之一。為滿足實時視頻通信的要求,必須使用快速算法來降低幀內預測編碼模式選擇的計算復雜度。
本文就此問題作了較深入的研究,分析了H.264幀內預測編碼模式選擇基本算法,介紹了國內外對空域下采樣后編碼模式選擇的快速算法的研究情況,針對預測模式的選擇問題作了較深入分析,提出了根據原壓縮視頻流的統計特性來實現快速模式選擇的方法,同時采用了宏塊內刷新機制,確保轉碼質量,并進行了仿真實驗,驗證了算法的性能。
1 H.264的幀內模式選擇
1.1 幀內模式類型
H.264支持I4×4、I16×16以及IPCM三種幀內預測模式。如表1所示,I4×4模式的4×4子塊通過周圍的像素值來預測本身的像素值。表中,a~p為4×4塊內的16個像素;A~M為其鄰接的13個像素。I4×4宏塊模式支持九種預測模式,分別為垂直、水平、DC、水平偏上、水平偏下、垂直偏右、垂直偏左、左下角、右下角模式。
I16×16宏塊也是通過其周圍的33個鄰接像素值來預測其本身的256個像素值。如圖1所示,它支持四種模式,分別為垂直、水平、DC和平面模式。
表1 I4×4預測的像素分布
MABCDEFGH
IabCd
JefGh
KijKL
Lmnop
1.2 H.264的幀內模式選擇算法
H.264采用基于Lagrangian優化算法的率失真優化模型來進行模式選擇。宏塊Sk的Lagrangian代價函數如下所示:
JMODE(Sk,Ik|Q,λMODE)=DREC(Sk,Ik|Q)+λMODE×RREC(Sk,Ik|Q)
其中:Sk為原始像素;Ik為相應宏塊的編碼模式;Q為量化參數;λMODE為Lagrangian乘數因子,取值為0.85×2Q/3;DREC為失真度,一般為原始像素與重構像素的方差值之和;RREC為給定模式和量化參數編碼后的比特率。對于幀內宏塊,顯然率失真的值是通過幀內預測、整數DCT變換、哈達碼變換、量化、逆量化、逆哈達碼變換、逆整數DCT變換、熵編碼之后才能夠得到,其計算非常耗費時間。
選擇最優編碼模式算法是通過遍歷所有可能的編碼模式,尋找具有min(JMODE(#8226;))的模式作為最優編碼模式。對每一個幀內宏塊進行模式選擇,即使不包括色度計算,也需要進行(9×16+4)=148種組合模式的RDO計算。用此方法計算所得的幀內預測模式進行編碼,能得到最優的編碼壓縮效果,但是過多的候選模式數和每種模式率失真代價計算開銷巨大,使模式選擇成為影響空域下采樣編碼速率的瓶頸之一。
1.3 快速算法的主要研究情況
快速算法研究的主要途徑是通過分析輸入流的宏塊模式統計,預測最有可能的宏塊模式以減少計算復雜度。文獻[2]中的幀內預測將預測方向分為DC類、水平類和垂直類,通過根據各個類的特征模式比較,選擇其中一個類的模式繼續比較;文獻[3]假設編碼代價隨宏塊的大小而單調變化,先嘗試大塊宏塊模式,如果較小宏塊模式對應的編碼代價大于較大模式的編碼代價,則選擇較大宏塊對應的編碼模式,提前終止模式選擇;文獻[4]利用輸入碼流中幀內宏塊的DCT系數選擇H.264幀內編碼模式,如果四個塊的DCT系數差異小,則采用INTRA16×16模式,反之采用INTRA4×4模式;文獻[2]則將各種模式出現概率從大到小排列,逐個進行選擇判斷,當某個模式的編碼代價已經足夠小時,終止模式選擇,不再考慮其他模式;文獻[5]根據宏塊的邊緣特征,選擇出與該特征相應的模式自己進行RDO計算,能大幅度降低幀內預測的模式選擇數目;文獻[6]通過周圍宏塊的模式,提出了模式選擇提前終止算法。
2 基于統計的快速模式選擇算法
H.264的兩種幀內模式中,I16×16模式適合于紋理比較平滑的區域,而I4×4模式適合于細節比較豐富的區域,而模式的預測方向則反映了模塊的局部邊緣方向。顯然下采樣后的圖像與原圖像內容基本是不變的,則下采樣后圖像與原圖像有很大的相關性。
如圖2所示,實驗是從對container_cif.yuv和container_qcif.yuv第一幀進行幀內編碼的I4×4與I16×16模式分布圖。其中,黑塊表示為I4×4模式,白塊表示為I16×16模式。顯然,不同分辨率下的模式分布非常相似,且比例大致相同。
表2顯示了原始圖像與下采樣后圖像中I4×4模式幀內預測類型的統計數據。從表中可以看出,原始圖像與下采樣后圖像的預測類型大致相似。
表2 幀內預測方向分布
預測方向01234
container_cif5041412678141190
container_qcif1173861832943
預測方向5678總計
container_cif112297802983712
container_qcif30722080960
由此可見,原始圖像中的幀內宏塊模式與預測方向的分布可以粗略反映出下采樣后的圖像幀內宏塊模式和預測模式的分布。因此,本文提出了一種基于統計分布的快速幀內宏塊選擇算法。具體算法如下:
a)對原始碼流進行熵解碼后,統計如下數據:一幀中I16×16宏塊的數目與宏塊總數目的比例prop16×16;一幀中I16×16宏塊各預測模式的數目CVi16×16,并排序得到V16×16={Vn|Vn∈V16×16,CVn16×16>CVn+116×16,0≤n<4};在下采樣后的宏塊Bi中,如圖3所示,得到Bi對應原始幀中I16×16宏塊的比例propBi16×16,并得到I16×16宏塊中出現的各預測模式的數目CBi16×16Vi。根據結果及V16×16對預測模式排序,如果在Bi對應原始幀的宏塊中出現的預測模式次數多則排前,若出現預測模式的次數相同,則將同時在V16×16中排前的預測模式排前,即
VBi16×16={VBi16×16(m)|VBi16×16(m)∈V16×16,CBi16×16VBi16×16(m)>CBi16×16VBi16×16(m+1)‖(CBi16×16VBi16×16(m)=CBi16×16VBi16×16(m+1)CVBi16×16(m)16×16>CVBi16×16(m+1)16×16),0≤m<4}
同理得到一幀中I4×4宏塊各預測模式排序后的集合V4×4及宏塊Bi對應原始幀中的I4×4宏塊各預測模式排序后的集合VBi4×4。
b)選擇宏塊模式。當prop16×16≤1/3且propBi16×16≥3/4時,選擇I16×16宏塊模式;當prop16×16≥2/3且propBi16×16≥1/2時,選擇I16×16宏塊模式;當1/3 c)選擇預測模式。 (a)宏塊模式為I16×16。如果prop16×16≤1/3,則在VBi16×16中依次選取兩個可用的預測模式進行RDO計算;如果1/3 (b)宏塊模式為I4×4。將當前I4×4子塊的上面和左邊的預測模式作為候選預測模式。從候選的預測模式及VBi4×4中依次選取三個不同且可用的預測模式進行RDO計算,從而獲得最佳預測模式。 (c)如果在選擇宏塊模式的計算中選擇了兩種宏塊模式,則分別進行(a)(b)的計算,選取可得到最佳結果的宏塊模式作為當前宏塊的模式,同時確定了預測模式。 d)I4×4宏塊內刷新機制。由于每個4×4子塊都用其上面和左邊的4×4子塊的預測模式參考,對每個采用I4×4模式的宏塊,對其第1個4×4子塊及第13個4×4子塊都進行九種預測模式的RDO計算,以獲得最佳預測模式,防止預測模式誤差的擴散。 上面所提出的算法,實際上是在基本算法流程的基礎上,利用了轉碼前后碼流間相應幀及相應宏塊的高相關性,根據統計出的宏塊模式信息及預測模式信息,先決斷出宏塊模式,并提取出最有可能的幾種候選預測模式,然后計算出最優的預測模式。因為對于轉碼前后的視頻來說,它們的內容、紋理、細節等特征都是極其相似的,這樣在保證轉碼質量的同時也就大大減少了算法的計算量。 3 實驗結果及分析 本文提出的算法的實驗平臺是P4 3.2 GHz CPU,1 GB內存,Windows XP操作系統。仿真以JVT提供的參考軟件JM8.6[7]作為平臺,進行部分修改,然后將實驗結果與未作修改的參考軟件進行對比。仿真選取了bus、container、foreman、news四個CIF視頻序列作為測試對象。對每個視頻序列選取50幀,量化參數Qp分別選取12、18、28、36、42五個值,編碼幀率為20 fps。 表3 Bus和container序列 由表3、4的實際仿真數據可以得出結論: a)本文所提出的改進算法能在一定程度上減少幀內預測計算量,而PSNR僅僅減小了0.03~0.24 dB,甚至還會增加,碼率的增加也在6%之內,而且Qp越小,碼率增加得也越小。 b)改進算法對幀內預測計算量減小相當大,計算量的減少能達到60%~83%。計算量的減少與量化參數的取值密切相關,量化參數越大,對計算量的減少就越大,但此時碼率會增加。 4 結束語 本文主要提出了一種適用于H.264視頻下采樣轉碼的幀內宏塊模式選擇算法。對于幀內宏塊模式,充分利用了原碼流中的各種宏塊模式信息,選出一個最有可能的模式子集進行搜索,減少了需要搜索的模式數量,并且采用宏塊內刷新機制,有效防止了誤差的擴散。實驗證明該算法能有效地排除可能性較小的模式,降低了模式選擇的復雜度,同時對其質量和壓縮率僅有輕微的下降。 參考文獻: [1]尚書林,杜清秀,盧漢青,等.視頻轉碼技術研究現狀與最新進展[J].自動化學報,2007,33(12):1233-1241. [2]LU Xiaoan, TOURAPIS A M, YIN Peng, et al. Fast mode decision and motion estimate for H.264 with a focus on MPEG2/H.264 transcoding[C]//Proc of the 2005 IEEE International Symposium on Circuits and Systems. Washington DC:IEEE Computer Society, 2005:1246-1249. [3]ZHOU Z, SUN S J, LEI S, et al. Motion information and coding mode reuse for MPEG2 to H.264 transcoding[C]//Proc of IEEE International Symposium on Circuits and Systems. Seattle:IEEE, 2005:1230-1233. [4]WANG L, WANG Q, LIU Y, et al. A fast intra mode decision algorithm for MPEG2 to H.264 video transcoding[C]//Proc of the 10th IEEE International Symposium on Consumer Electronics. 2006:1-5. [5]常偉,蔡燦輝. 基于邊緣特征的H.264/AVC幀內模式選擇算法[J].計算機工程與應用,2007,43(29):82-85. [6]LEE J,BYUNGWOO J.Fast mode decision for H.264[C]//Proc of the 2004 International Conference on Multimedia and Expo.Washington DC:IEEE Computer Society,2004:1131-1134. [7]H.264/AVC reference software version 8.6[CP/OL]. (20070807).http://iphome.hhi.de/suehring/tml/download/old_jm/jm86.zip.