聶 菁,昂志敏
(合肥工業(yè)大學 計算機與信息學院,安徽 合肥 230009)
視頻編碼專家組VCEG(Video Coding Expert Group)和運動圖像專家組 MPEG(Moving Picture Experts Group)在2001年聯(lián)合成立了視頻專家組JVT(Joint Video Team),制定了新一代的視頻編碼標準H.264/AVC,并于2003年3月正式公布[1]。H.264/AVC采用了許多新技術(shù),包括可變尺寸塊運動補償技術(shù)、多參考幀、基于上下文的自適應二進制算術(shù)熵編碼(CABAC)等技術(shù)[2]。在 H.264/AVC標準中,采用率失真優(yōu)化(RDO)技術(shù)遍歷所有的預測模式,尋找率失真代價值最小的宏塊模式作為最佳宏塊模式。這種遍歷的宏塊模式選擇過程提高了編碼效率,但增加了計算復雜度。因此,尋找一種在保證編碼質(zhì)量的同時,降低編碼復雜度的快速模式選擇算法具有重要的研究意義。
文獻[3]提出的快速算法是根據(jù)前一幀的編碼信息及運動矢量代價來確定宏塊模式;文獻[4]基于視頻對象紋理的空間同質(zhì)性和視頻序列中固有的時間平穩(wěn)性特點提出了一種新的算法;文獻[5]根據(jù)當前塊的絕對殘差和與基于已解碼宏塊模式信息的自適應閾值來跳過一部分宏塊模式率失真代價值的計算;文獻[6]利用時空中相鄰宏塊的信息來選擇最佳模式及根據(jù)前一幀宏塊來估計當前塊的率失真代價值;文獻[7]通過時空中的同質(zhì)區(qū)域及分析幀間模式的運動代價和幀內(nèi)模式的幀內(nèi)預測代價來減少率失真優(yōu)化過程的候選模式的數(shù)目。本文研究的快速模式選擇算法利用宏塊模式與avgJmotion之間的關(guān)系,根據(jù)16×16尺寸塊運動估計后的代價函數(shù)值Jmotion(16×16)的范圍對候選搜索塊模式進行分類。然后,利用最佳模式和次最佳模式的率失真代價的關(guān)系以及時間相關(guān)性提前排除部分宏塊模式。
率失真代價包括Jmode和Jmotion。Jmode精確地計算出編碼比特數(shù)而Jmotion只是對其進行了估計,從而降低了計算的復雜度。因此,編碼器通過計算Jmotion來決定最佳運動矢量和參考幀數(shù)。Jmode和Jmotion最小的宏塊模式分別被稱為最佳模式和次最佳模式。
Jmotion的定義如下:
其中,SAD為當前塊s與參考塊r之間的絕對殘差和;λmotion為拉格朗日乘子[8];R(MV,REF)為編碼比特數(shù)。
Jmode定義如下:
其中,M、λmode分別為宏塊編碼模式和拉格朗日乘子;SSD(s,r,M)為原始信號和重建信號之間的率失真代價值的平方;R(s,r,M)為編碼比特數(shù)。
1.2.1 基于avgJmotion的宏塊模式分類
絕對殘差和(SAD)用來度量當前塊和參考塊的像素值精度的差異。定義平均SAD值(包括運動矢量代價)如下:
其中,avgJmotion為已編碼宏塊的平均代價函數(shù)值;n為相應的宏塊模式的頻率。
在大多數(shù)情況下,小尺寸宏塊模式的SAD值比大尺寸宏塊模式的SAD值要大些。因此,對應于不同尺寸的宏塊模式,SAD值有很大的差異,avgJmotion也不同。
在宏塊模式選擇的過程中,可以根據(jù)具有相同代價函數(shù)值的宏塊模式來預測當前塊的最佳宏塊模式。例如,如果16×16塊運動估計后的代價函數(shù)值Jmotion(16×16)接近于 avgJmotion(p8×8),那么 可以認為在宏塊模式選擇過程結(jié)束之前,宏塊的最佳模式可能是p8×8子塊模式中的一個。如果具體的宏塊模式的代價函數(shù)值高度集中在一定的范圍內(nèi),那么可以根據(jù)以下的方法來估計必要的候選搜索塊模式,而不需要遍歷所有的宏塊模式。下面定義avgJmotion的范圍。
其中,avgJmotion(large)包括16×16、16×8和8×16;avgJmotion(p8×8)包 括 8×8、8×4、4×8、4×4。Jbestmode是由最佳宏塊模式編碼的當前塊的代價函數(shù)值。
對不同序列進行測試,測試序列包括Blue Sky、Container。量化參數(shù)QP選取28、32,結(jié)果見表1所列。
表1 宏塊模式在avgJmotion的不同范圍內(nèi)的分布情況
由表1可以看出,SKIP模式最有可能在范圍1內(nèi),p8×8子塊模式在范圍4內(nèi)出現(xiàn)的概率最高,大塊模式經(jīng)常作為范圍2的最佳模式。基于此,候選搜索塊模式可以根據(jù)16×16尺寸塊運動估計后的代價函數(shù)值Jmotion(16×16)的范圍來確定。因此可以確定每個宏塊模式的最有可能的范圍,具體見表2所列。
表2 根據(jù)Jmotion(16×16)的范圍對候選搜索模式集進行分類
1.2.2 排除很少被選為最佳宏塊模式幀間條件
由Jmotion的最小值可以確定次最佳模式,根據(jù)次最佳模式就可以排除那些可能性很小的預測模式。同時,可以利用當前編碼幀的前一幀的相應位置已解碼宏塊的最佳模式作為候選模式來預測當前塊的最佳模式。
(1)幀間條件1:早期SKIP模式判決。SKIP模式編碼時不需要殘差信號和運動矢量,所需的編碼比特數(shù)很少。如果SKIP模式被選為最佳宏塊模式,那么就可以大大節(jié)省計算量,降低復雜度。早期SKIP模式判決條件如下:① 參考幀為當前幀的前一幀;②SKIP模式運動矢量與16×16尺寸塊運動矢量相同;③ 運動補償塊的最佳大小為16×16;④ 經(jīng)過變換量化后的殘差為0。
(2)幀間條件2:排除16×8和8×16模式。①Jmotion(16×16) <Jmotion(16×8) 或Jmotion(16×16) <Jmotion(8×16);② 當前編碼幀前一幀的相應位置已解碼宏塊的最佳模式是SKIP模式或16×16模式。
第1個條件是基于次最佳模式和最佳模式率失真代價之間的關(guān)系。第2個條件是依據(jù)當前塊和對應位置宏塊模式之間的時間關(guān)聯(lián)性。當上述條件同時滿足時,16×8和8×16模式被選為宏塊最佳模式的概率非常低,可以排除16×8和8×16模式作為最佳模式。
(3)幀間條件3:排除p8×8模式。如果Jmode(16×8)、Jmode(8×16)、Jmode(16×16) 及Jmode(skip) 的最小值小于前一幀p8×8模式的平均代價函數(shù)值,那么p8×8模式很少被選為最佳模式;在這種情況下,可以排除p8×8模式。
1.2.3 P幀中的快速幀間模式選擇算法
圖1所示為本文的快速幀間模式選擇算法的流程圖。
圖1 快速幀間模式選擇算法流程圖
具體步驟如下:
(1)計算Jmotion(16×16)和Jmode(16×16),為SKIP模式尋找運動矢量。
(2)根據(jù)早期SKIP模式判決條件判定最佳模式是否是SKIP模式,如果是,則最佳模式為SKIP模式;否則轉(zhuǎn)步驟(3)。
(3)計算avgJmotion(skip)、avgJmotion(large)、avgJmotion(p8×8),根據(jù)Jmotion(16×16)的范圍來對候選搜索模式集進行分類。如果在范圍2,轉(zhuǎn)步驟(4)步;如果在范圍3,轉(zhuǎn)步驟(5);如果在范圍4,轉(zhuǎn)步驟(6)。
(4)在范圍2,說明候選搜索模式集是大塊模式,根據(jù)幀間條件2判定是否可以排除幀間16×8和8×16模式,如果能,轉(zhuǎn)步驟(7);如果不能,計算Jmode(16×8)、Jmode(8×16),轉(zhuǎn)步驟(7)。
(5)在范圍3,說明候選搜索模式集可能是大塊模式和p8×8模式。根據(jù)幀間條件2和幀間條件3排除不可能的宏塊模式,計算可能的宏塊模式的代價函數(shù)值,轉(zhuǎn)步驟(7)。
(6)在范圍4,說明候選搜索模式集是p8×8模式,根據(jù)幀間條件3判定是否可以排除p8×8模式。如果能,轉(zhuǎn)步驟(7);如果不能,計算Jmode(p8×8),轉(zhuǎn)步驟(7)。
(7)計算Jmode(intra16×16)、Jmode(intra4×4),和所有可能的幀間宏塊模式的代價函數(shù)值進行比較,從中選出代價函數(shù)值最小的作為最佳宏塊模式。
本文采用JVT參考軟件JM11.0作為實驗平臺,對不同的測試序列進行了測試。量化參數(shù)QP選取22、27、32、37,測試結(jié)果見表3所列。表3中,PSDR表示信噪比的變化情況,單位為dB,如果結(jié)果為正,表示信噪比上升,否則為下降;Time表示時間變化情況,如果結(jié)果為負,表示編碼時間減少,反之為增加;Bitrate表示碼率變化情況,如果結(jié)果為正,表示碼率增加,否則為減少。由表3可見,與JM原始算法相比,本文算法平均節(jié)省時間56.75%,信噪比下降0.06dB,碼率增加0.58%,算法在信噪比下降和碼率增加可以忽略的情況下,節(jié)省了編碼時間,提高了編碼性能。
表3 本文算法的實驗結(jié)果
本文算法與Lee算法的實驗結(jié)果見表4所列,雖然Lee算法節(jié)省的編碼時間較本文多一點,但是本文的碼率和信噪比的變化情況都要優(yōu)于Lee算法[6]。表4中參數(shù)含義和單位同表3。
表4 本文算法和Lee算法的實驗結(jié)果對比
本文提出了一種P幀的快速幀間模式選擇算法。利用宏塊模式與avgJmotion之間的關(guān)系,根據(jù)代價函數(shù)值Jmotion(16×16)的范圍對候選搜索塊模式進行分類,再利用最佳模式和次最佳模式的率失真代價之間的關(guān)系以及時間相關(guān)性提前排除一部分宏塊模式。從實驗結(jié)果可以看出本文算法平均節(jié)省編碼時間56.75%,而信噪比下降只有0.06dB,碼率增加0.58%。而且,本文算法與Lee算法相比,信噪比和碼率情況較好。
[1]Wiegand T,Sullivan G J,Bjontegaard G,et al.Overview of the H.264/AVC video coding standard [J].IEEE Transactions on Circuits and Systems for Video Technology,2003,13(7):560-576.
[2]畢厚杰,王 健.新一代視頻壓縮編碼標準sout H.264/AVC[M].第2版.北京:人民郵電出版社,2009:76-117.
[3]Ahmad A,Khan N,Masud S,et al.Selection of variable block sizes in H.264[C]//Proc IEEE Int Conf Acoust Speech Signal Process,Vol 3,2004:173-176.
[4]Wu D,Wu S,Lim K P,et al.Block inter mode decision for fast encoding of H.264[C]//IEEE Int Conf Speech A-coustics and Signal Processing,Vol 3,2004:181-184.
[5]Bu J,Lou S,Chen C,et al.,A predictive block-size mode selection for inter frame in H.264[C]//Proc IEEE Int Conf Acoust Speech Signal Process,Vol 2,2006:917-920.
[6]Ri S H,Vatis Y,Ostermann J.Fast inter-mode decision in an H.264/AVC encoder using mode and Lagrangian cost correlation[J].IEEE Transactions on Circuits and Systems for Video Technology,2009,19:302-306.
[7]Lee J Y,Park H W,A fast mode decision method based on motion cost and intra prediction cost for H.264/AVC[J].IEEE Transactions on Circuits and Systems for Video Technology,2012,22(3):393-402.
[8]Sullivan G J,Wiegand T.Rate-distortion optimization for video compression[J].IEEE Signal Process Mag,1998,15(6):74-90.