劉鵬宇,何絮,賈克斌
(北京工業大學 電子信息與控制工程學院,北京100124)
H.264/AVC(以下簡稱H.264)是由國際電信聯盟和國際標準化組織共同開發的新一代視頻壓縮標準,具有更高的壓縮效率。它采用了最新的視頻壓縮技術,如1/4 像素精度運動估計、多參考幀與多模式的幀間預測,去塊效應濾波器等,因此具有眾多突出優點[1]: 對信道時延的適應性較強,既可工作于低時延模式,如會議電視,以滿足實時業務; 又可工作于無時延限制的場合,如視頻存儲。在相同的重建圖象質量下,不僅H.264 比H.263 +和MPEG-4 減小了約50%的碼率[2],同時將編碼壓縮效率提高了1 倍。
H.264 采用遍歷的基于率失真代價最優模式選擇算法,在獲得較高編碼效率的同時導致了編碼計算量的急劇增加,其計算復雜度約為H.263 的4~5倍,是MPEG-4 的3 倍[3],如此高的復雜度使得H.264很難直接應用于對實時性要求較高的場合。分析表明,在H.264 巨大的編碼計算量中,幀間模式選擇和運動估計約占據了編碼開銷的80%,因此對幀間預測編碼進行優化,尤其重要。如何在不損失圖像質量、無碼率增加的前提下,優化幀間預測算法,提高H.264 的編碼速度,已成為目前視頻編碼領域的重要研究方向之一。文獻[4]提出利用離散余弦變換系數計算該塊的能量,獲得宏塊的紋理復雜度并劃分模式選擇,優化效果較好,但在變換域嵌入優化編碼,會影響算法通用性,需重新設計解碼器;文獻[5]提出了基于低運算復雜度視頻的幀間預測快速算法,編碼時間節省十分優異,不過在應用范圍上還可以做進一步擴展; 文獻[6]分析了選擇幀間各模式的域值和參數設定,但在幀內模式判決方面還可以繼續改進。本文針對H.264 幀間編碼的特點,在詳盡分析上述幀間預測編碼優化算法的基礎上,根據幀間各預測模式的概率統計特性,對特定模式進行預判以提前終止不必要的宏塊搜索和率失真代價計算,提出了新的基于特定模式選擇的幀間快速編碼算法,在有效降低幀間預測復雜度的同時,仍然能夠保持很好的圖像質量和壓縮性能。
幀間預測是H.264 視頻壓縮的關鍵技術之一,通過利用己經重建的參考幀對當前幀進行預測編碼,只對當前塊與參考塊的運動矢量以及相應的運動補償殘差值進行編碼,可以有效消除視頻編碼中的時間冗余,提高編碼效率。在H.264 視頻編碼標準中,幀間預測采用多模式運動估計,支持可變尺寸塊的宏塊分割和亞分割以及幀內預測,共有7 種幀間編碼模式:
ModeP∈{ SKIP(mode0),{ 16 × 16(mode1),16 ×8 (mode2),8 ×16(mode3),8 ×8(mode4)},{I16 MB,I4 MB}}
在選定8 × 8 模式的情況下,需要進行8 ×4(mode5),4 ×8(mode6)和4 ×4(mode7)3 種亞分割模式。
H.264 標準幀間預測編碼算法采用率失真優化方法,通過遍歷計算所有幀間預測模式的絕對誤差和(SAD),得到各模式的率失真代價值(RD cos t),并根據率失真優化準則選擇最佳編碼模式。H.264使用拉格朗日率失真優化策略,其目標是在給定的碼率約束條件下使失真達到最小,通過率失真優化(RDO)選擇RD cos t 值最小的模式作為最佳幀間預測模式進行編碼。

式中:M,N 分別為宏塊的寬和高; s 為源視頻信號;c 為解碼視頻信號。

式中:m =(mx,my)T為運動矢量; p =(px,py)T為預測的運動矢量;λMotion為拉格朗日運動模式乘數因子;R(m-p)為運動矢量差值所需的二進制位數。
視頻圖像基本可以分為背景紋理平坦區域、背景紋理細致區域和運動區域3 大類: 通常背景紋理平坦區域在視頻內容中占有很大比重[7],對于這類平坦區域和運動平滑區域,大多采取SKIP 模式或者宏塊級編碼模式(mode1~mode3)進行預測;在運動復雜的情況下需要使用更多的編碼模式進行預測,才會使用到亞分割預測模式(mode4~mode7);只有在視頻圖像的邊緣部分才會使用到幀內預測模式(I16 MB,I4 MB),因此其出現的幾率非常低。
以H.264 的JM10.2 測試模型為實驗平臺,在1 G內存,1.6 GHz 主頻的計算機上運行,對標準視頻序列進行測試,得到的幀間預測編碼中各種模式使用的統計結果如表1所示。

表1 幀間編碼中各種模式的統計概率分布Tab.1 Mode distribution in inter-frame encoding %
由表1可見,對于Akiyo、Silent 等背景平坦的視頻序列較多采用了宏塊級編碼模式,而Foreman、Football 等紋理細膩且運動劇烈的序列較多使用亞分割編碼模式;整體上宏塊級預測明顯多于亞分割預測,SKIP 模式平均所占比重約為50%,Inter16 ×16 模式也達到17.7%,幀內預測模式只有1.2%.
上述實驗結果和已有文獻[8]都表明,可以根據幀間預測模式統計特性進行預先判決,分集篩選,以排除掉出現機率很小的編碼模式,提高編碼速度,大幅節省H.264 的編碼時間。
SKIP 模式是指不經過運動估計,可直接以參考幀中對應位置的宏塊作為運動補償塊,其復雜度很小不包含運動信息,在通常的視頻序列中,相鄰圖像之間普遍存在著時間相關性,在變化緩慢的區域中SKIP 模式占有相當大的比重。因此在對所有其它模式進行遍歷前做出對SKIP 模式的預判,可以極大減少運動搜索以及計算率失真代價的開銷。
在H.264 標準中,被判決采用SKIP 模式的宏塊須同時滿足以下4 個條件: 運動補償的最佳宏塊劃分方法為16 ×16; 參考幀為當前幀的前一幀; 運動搜索出的最佳運動向量和運動向量預測值完全一致;當前宏塊與參考宏塊的殘差經變換量化后系數全部為0.為了簡化這一復雜的判定流程,在保證低誤判率的前提下,本文提出利用自適應域值的方法來提前判定SKIP 模式:
1)計算SKIP 模式(mode0)的率失真代價值Jskip,如果小于域值T 則停止對其他模式的搜索,選定SKIP 作為最佳預測模式,否則執行步驟2).
2)計算Inter 16 ×16 模式(mode1)的率失真代價值J16×16,如果J16×16>Jskip,則仍選定SKIP 作為最佳編碼模式。
根據宏塊率失真代價的大小,設定相應的調整系數,經過實驗數據的修正并本著簡潔和自適應的原則,域值T 設定為

式中Min_cos t 為前一個編碼宏塊的最優率失真代價值。
如表1所示Inter 16 ×16 平均占所有編碼模式的17.7%,在不滿足選擇SKIP 模式的條件下,預判出是否選擇Inter 16 ×16 模式意義重大,具體步驟為:
1)計算Inter 16 ×16 模式和Inter 8 ×8 模式的率失真代價,即J16×16和J8×8.
2)若J8×8-J16×16>T0,則選定Inter 16 ×16 模式作為最佳編碼模式。
這里T0=0.2Min_cos t,是根據實驗數據得出的自適應經驗域值,可以在保證快速判決模式的同時,盡量減少誤判率。
H.264 幀間編碼并不排斥幀內模式,盡管幀內模式被選定的比例很小,但對幀內模式率失真代價計算開銷卻占到總遍歷編碼時間的20%.如果直接忽略幀內預測,雖然可以大幅節省編碼時間,但會影響算法的適用范圍。本文提出了基于宏塊時空相關性的幀內模式提前判決策略:
1)計算宏塊的平均邊緣誤差值(ABE)與邊緣誤差總和(SBE),平均邊緣誤差值反映了宏塊的時間相關性;

式中:Yorig為當前編碼宏塊的像素值; Yrec為重構宏塊的像素值。
2)計算宏塊的平均比特率(AR),平均比特率反映了宏塊的空間相關性

式中:λ 為拉格朗日乘數因; Rate 為宏塊編碼所需的比特數。
3)比較宏塊的平均邊緣誤差和平均比特率,若ABE<CAR (C =0.95),則說明該宏塊的空域冗余小于時域冗余,可以提前中止對幀內模式的遍歷。
經過上述步驟的預處理,既可以節省因遍歷幀內模式所帶來的巨大計算開銷,又不會因為丟失對幀內預測的計算而造成圖像質量的損失。
在基于率失真代價的H.264 標準幀間預測算法的基礎上,結合上述SKIP,Inter 16 ×16 和幀內模式提前判決策略和各幀間編碼模式統計特性,本文提出的快速算法流程如圖2所示。
1)計算SKIP 的率失真代價值(Jskip),如果Jskip小于自適應域值T,則直接跳轉至步驟8),選擇SKIP 模式作為最佳預測模式。否則進行步驟2).
2)計算幀間16 × 16 模式的率失真代價值(J16×16),如果J16×16>Jskip,則仍然選擇SKIP 模式作為最佳預測模式,跳轉至步驟8).否則進行步驟3).
3)計算幀間8 × 8 模式的率失真代價值(J8×8),如果J8×8與J16×16之差大于門限T0,則選定幀間16 ×16 模式作為最佳預測模式,跳轉至步驟8);否則進行步驟4).
4)計算幀間4 × 4 模式的率失真代價值(J4×4),如果J4×4同時小于J16×16和J8×8,則對該宏塊進行亞分割,在小塊模式中選擇SAD 值最小的模式作為幀間備選模式。否則進行步驟5).
5)忽略亞分割預測,計算16 ×8 和8 ×16 模式的率失真代價值,在大塊模式中比較,選擇SAD 值最小的模式作為幀間預測備選模式。
6)判斷是否需要進行幀內預測,如果不需要幀內預測則選定幀間預測備選模式作為最佳預測模式,跳轉至步驟8);否則進行步驟7).
7)計算幀內4 ×4(JI4MB)和16 ×16(JI16MB)模式的率失真代價,如果幀內的最小率失真代價小于幀間預測備選模式,則選擇幀內作為最佳預測模式;否則將幀間備選模式作為最佳預測模式。
8)以最佳預測模式開始進行幀間預測編碼。
整體幀間快速預測編碼算法的流程圖如圖1所示。

圖1 幀間快速預測編碼算法流程圖Fig.1 Flow chart of inter-frame prediction algorithm
與表1實驗條件相同,測試本文提出算法在編碼時間、輸出碼率和輸出圖像質量三方面與H.264標準算法作比較,驗證本算法的優化效果。優化效果計算公式分別記為:
編碼時間優化效果ΔT% =(JM10.2 測試模型編碼時間-本算法編碼時間)/JM10.2 測試模型編碼時間。
碼率優化效果ΔB% =(JM10.2 測試模型輸出碼率-本算法輸出碼率)/JM10.2 測試模型輸出碼率。
圖像質量優化效果=ΔPSNR =JM10.2 測試模型輸出圖像質量-本算法輸出圖像質量。
測試標準視頻序列的前30 幀,序列結構為IPPP,QP 值為30,實驗結果如表2所示。
由表2可見,本文提出的快速算法在基本不影響輸出視頻圖像質量的前提下,平均節省編碼時間69.59%,最高節省80.40%,優化效果十分明顯,碼率平均減少0.54%.對于圖像運動平滑的視頻序列,如Claire、Container、Akiyo 等,節省編碼時間均超過75%,同時還可以降低碼率。編碼速度優化效果明顯優于文獻[6],與文獻[4 -5]相比本文算法在通用性和適用范圍上有了提高。
圖2~圖5分析了以Claire、Foreman 為典型代表的運動平滑和紋理復雜的兩類視頻序列,由圖2和圖4可見,在不同的QP 條件下,本文算法的輸出碼率基本與標準算法相當,很好的保持了H.264 低碼率這一突出優勢。由圖3和圖5可見,在不同的QP 條件下,本文算法在編碼時間上明顯優于標準算法,特別是對于平坦的視頻片斷,曲線平滑,優化效果明顯而且穩定。

表2 快速算法同H.264 標準算法的性能比較統計表Tab.2 Comparison of fast and standard algorithms of H.264

圖2 Claire 視頻序列碼率的優化效果Fig.2 Optimization result in bit-rate of Claire

圖3 Claire 視頻序列編碼時間的優化效果Fig.3 Optimization result in encoding time of Claire

圖4 Foreman 視頻序列碼率的優化效果Fig.4 Optimization result in bit-rate of Foreman

圖5 Foreman 視頻序列編碼時間的優化效果Fig.5 Optimization result in encoding time of Foreman
本文提出了新的基于特定模式選擇的快速幀間編碼預測算法,通過對SKIP、Inter 16 ×16 和幀內模式的預判以及對各幀間預測模式統計特性的分析,對H.264 幀間預測編碼算法進行了優化。實驗仿真結果表明,本文提出的快速算法對具有不同運動復雜程度的視頻序列均具有理想的優化效果,通用性良好。本文算法能夠很好地克服原H.264 標準算法實時性差的缺陷,在不影響圖像質量和碼率,保持原輸出碼流結構的前提下,大幅提高了編碼速率,尤其適用于會議電視、可視電話等實時應用場合。
References)
[1]Luthra A,Sullivan G J,Wiegand T.Introduction to the special issue on the H.264/AVC video coding standard[J].IEEE Transactions on Circuits and Systems for Video Technology,2003,13(7):557 -559.
[2]Sullivan G J,Wiegand T.Rate-distortion optimization for video compression[J].IEEE Signal Processing Manazine,1998,15(6):74 -90.
[3]Lappalainen V,Hallapuro A,H?m?l?inen T D.Optimization of emerging H.26L video encoder[C]∥IEEE Workshop on Signal Processing Systems-Design and Implementation.Antwerp: Institute of Electrical and Electronics Engineers Inc,2001: 406 -415.
[4]Tian L,Zhou Y M,Sun S X.Optimal complexity prediction approach for H.264/AVC inter frame encoding[J].Journal of Information and Computational Science,2010,7(4): 855 -862.
[5]Chien-Da Wu,Yinyi Lin.Efficient inter/intra mode decision for H.264/AVC inter frame transcoding[C]∥Proceedings of the 16th International Conference on Image Processing.Piscataway: IEEE,2009: 697 -700.
[6]Fan J L,Chen Y,Zhang X D.A novel fast inter mode decision for H.264[C]∥Processings of the 8th International Conference on Signal.Piscataway: IEEE,2006: 16 - 20.
[7]干宗良,齊麗娜,朱秀昌.H.264 中基于先驗預測的幀間編碼模式選擇算法研究[J].電子與信息學報,2006,28(10):1883 -1887.GAN Zong-liang,QI Li-na,ZHU Xiu-chang.Interframe video coding mode decision algorithm based on prior detection in H.264[J].Journal of Electronics & Information Technology,2006,28(10):1883 -1887.(in Chinese)
[8]藤國偉,張兆揚,張一鈞,等.一種基于H.264/AVC 的幀間模式快速判決算法[J].光電子·激光,2005,16(7): 866 -870.TENG Guo-wei,ZHANG Zhao-yang,ZHANG Yi-jun,et al.Fast mode decision algorithm in inter pictures based on H.264/AVC[J].Journal of Optoelectronics·Laser,2005,16(7): 866 -870.(in Chinese)