聶 菁,昂志敏
(合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009)
視頻編碼專家組VCEG(Video Coding Expert Group)和運(yùn)動圖像專家組 MPEG(Moving Picture Experts Group)在2001年聯(lián)合成立了視頻專家組JVT(Joint Video Team),制定了新一代的視頻編碼標(biāo)準(zhǔn)H.264/AVC,并于2003年3月正式公布[1]。H.264/AVC采用了許多新技術(shù),包括可變尺寸塊運(yùn)動補(bǔ)償技術(shù)、多參考幀、基于上下文的自適應(yīng)二進(jìn)制算術(shù)熵編碼(CABAC)等技術(shù)[2]。在 H.264/AVC標(biāo)準(zhǔn)中,采用率失真優(yōu)化(RDO)技術(shù)遍歷所有的預(yù)測模式,尋找率失真代價(jià)值最小的宏塊模式作為最佳宏塊模式。這種遍歷的宏塊模式選擇過程提高了編碼效率,但增加了計(jì)算復(fù)雜度。因此,尋找一種在保證編碼質(zhì)量的同時,降低編碼復(fù)雜度的快速模式選擇算法具有重要的研究意義。
文獻(xiàn)[3]提出的快速算法是根據(jù)前一幀的編碼信息及運(yùn)動矢量代價(jià)來確定宏塊模式;文獻(xiàn)[4]基于視頻對象紋理的空間同質(zhì)性和視頻序列中固有的時間平穩(wěn)性特點(diǎn)提出了一種新的算法;文獻(xiàn)[5]根據(jù)當(dāng)前塊的絕對殘差和與基于已解碼宏塊模式信息的自適應(yīng)閾值來跳過一部分宏塊模式率失真代價(jià)值的計(jì)算;文獻(xiàn)[6]利用時空中相鄰宏塊的信息來選擇最佳模式及根據(jù)前一幀宏塊來估計(jì)當(dāng)前塊的率失真代價(jià)值;文獻(xiàn)[7]通過時空中的同質(zhì)區(qū)域及分析幀間模式的運(yùn)動代價(jià)和幀內(nèi)模式的幀內(nèi)預(yù)測代價(jià)來減少率失真優(yōu)化過程的候選模式的數(shù)目。本文研究的快速模式選擇算法利用宏塊模式與avgJmotion之間的關(guān)系,根據(jù)16×16尺寸塊運(yùn)動估計(jì)后的代價(jià)函數(shù)值Jmotion(16×16)的范圍對候選搜索塊模式進(jìn)行分類。然后,利用最佳模式和次最佳模式的率失真代價(jià)的關(guān)系以及時間相關(guān)性提前排除部分宏塊模式。
率失真代價(jià)包括Jmode和Jmotion。Jmode精確地計(jì)算出編碼比特?cái)?shù)而Jmotion只是對其進(jìn)行了估計(jì),從而降低了計(jì)算的復(fù)雜度。因此,編碼器通過計(jì)算Jmotion來決定最佳運(yùn)動矢量和參考幀數(shù)。Jmode和Jmotion最小的宏塊模式分別被稱為最佳模式和次最佳模式。
Jmotion的定義如下:
其中,SAD為當(dāng)前塊s與參考塊r之間的絕對殘差和;λmotion為拉格朗日乘子[8];R(MV,REF)為編碼比特?cái)?shù)。
Jmode定義如下:
其中,M、λmode分別為宏塊編碼模式和拉格朗日乘子;SSD(s,r,M)為原始信號和重建信號之間的率失真代價(jià)值的平方;R(s,r,M)為編碼比特?cái)?shù)。
1.2.1 基于avgJmotion的宏塊模式分類
絕對殘差和(SAD)用來度量當(dāng)前塊和參考塊的像素值精度的差異。定義平均SAD值(包括運(yùn)動矢量代價(jià))如下:
其中,avgJmotion為已編碼宏塊的平均代價(jià)函數(shù)值;n為相應(yīng)的宏塊模式的頻率。
在大多數(shù)情況下,小尺寸宏塊模式的SAD值比大尺寸宏塊模式的SAD值要大些。因此,對應(yīng)于不同尺寸的宏塊模式,SAD值有很大的差異,avgJmotion也不同。
在宏塊模式選擇的過程中,可以根據(jù)具有相同代價(jià)函數(shù)值的宏塊模式來預(yù)測當(dāng)前塊的最佳宏塊模式。例如,如果16×16塊運(yùn)動估計(jì)后的代價(jià)函數(shù)值Jmotion(16×16)接近于 avgJmotion(p8×8),那么 可以認(rèn)為在宏塊模式選擇過程結(jié)束之前,宏塊的最佳模式可能是p8×8子塊模式中的一個。如果具體的宏塊模式的代價(jià)函數(shù)值高度集中在一定的范圍內(nèi),那么可以根據(jù)以下的方法來估計(jì)必要的候選搜索塊模式,而不需要遍歷所有的宏塊模式。下面定義avgJmotion的范圍。
其中,avgJmotion(large)包括16×16、16×8和8×16;avgJmotion(p8×8)包 括 8×8、8×4、4×8、4×4。Jbestmode是由最佳宏塊模式編碼的當(dāng)前塊的代價(jià)函數(shù)值。
對不同序列進(jìn)行測試,測試序列包括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尺寸塊運(yùn)動估計(jì)后的代價(jià)函數(shù)值Jmotion(16×16)的范圍來確定。因此可以確定每個宏塊模式的最有可能的范圍,具體見表2所列。
表2 根據(jù)Jmotion(16×16)的范圍對候選搜索模式集進(jìn)行分類
1.2.2 排除很少被選為最佳宏塊模式幀間條件
由Jmotion的最小值可以確定次最佳模式,根據(jù)次最佳模式就可以排除那些可能性很小的預(yù)測模式。同時,可以利用當(dāng)前編碼幀的前一幀的相應(yīng)位置已解碼宏塊的最佳模式作為候選模式來預(yù)測當(dāng)前塊的最佳模式。
(1)幀間條件1:早期SKIP模式判決。SKIP模式編碼時不需要?dú)埐钚盘柡瓦\(yùn)動矢量,所需的編碼比特?cái)?shù)很少。如果SKIP模式被選為最佳宏塊模式,那么就可以大大節(jié)省計(jì)算量,降低復(fù)雜度。早期SKIP模式判決條件如下:① 參考幀為當(dāng)前幀的前一幀;②SKIP模式運(yùn)動矢量與16×16尺寸塊運(yùn)動矢量相同;③ 運(yùn)動補(bǔ)償塊的最佳大小為16×16;④ 經(jīng)過變換量化后的殘差為0。
(2)幀間條件2:排除16×8和8×16模式。①Jmotion(16×16) <Jmotion(16×8) 或Jmotion(16×16) <Jmotion(8×16);② 當(dāng)前編碼幀前一幀的相應(yīng)位置已解碼宏塊的最佳模式是SKIP模式或16×16模式。
第1個條件是基于次最佳模式和最佳模式率失真代價(jià)之間的關(guān)系。第2個條件是依據(jù)當(dāng)前塊和對應(yīng)位置宏塊模式之間的時間關(guān)聯(lián)性。當(dāng)上述條件同時滿足時,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模式的平均代價(jià)函數(shù)值,那么p8×8模式很少被選為最佳模式;在這種情況下,可以排除p8×8模式。
1.2.3 P幀中的快速幀間模式選擇算法
圖1所示為本文的快速幀間模式選擇算法的流程圖。
圖1 快速幀間模式選擇算法流程圖
具體步驟如下:
(1)計(jì)算Jmotion(16×16)和Jmode(16×16),為SKIP模式尋找運(yùn)動矢量。
(2)根據(jù)早期SKIP模式判決條件判定最佳模式是否是SKIP模式,如果是,則最佳模式為SKIP模式;否則轉(zhuǎn)步驟(3)。
(3)計(jì)算avgJmotion(skip)、avgJmotion(large)、avgJmotion(p8×8),根據(jù)Jmotion(16×16)的范圍來對候選搜索模式集進(jìn)行分類。如果在范圍2,轉(zhuǎn)步驟(4)步;如果在范圍3,轉(zhuǎn)步驟(5);如果在范圍4,轉(zhuǎn)步驟(6)。
(4)在范圍2,說明候選搜索模式集是大塊模式,根據(jù)幀間條件2判定是否可以排除幀間16×8和8×16模式,如果能,轉(zhuǎn)步驟(7);如果不能,計(jì)算Jmode(16×8)、Jmode(8×16),轉(zhuǎn)步驟(7)。
(5)在范圍3,說明候選搜索模式集可能是大塊模式和p8×8模式。根據(jù)幀間條件2和幀間條件3排除不可能的宏塊模式,計(jì)算可能的宏塊模式的代價(jià)函數(shù)值,轉(zhuǎn)步驟(7)。
(6)在范圍4,說明候選搜索模式集是p8×8模式,根據(jù)幀間條件3判定是否可以排除p8×8模式。如果能,轉(zhuǎn)步驟(7);如果不能,計(jì)算Jmode(p8×8),轉(zhuǎn)步驟(7)。
(7)計(jì)算Jmode(intra16×16)、Jmode(intra4×4),和所有可能的幀間宏塊模式的代價(jià)函數(shù)值進(jìn)行比較,從中選出代價(jià)函數(shù)值最小的作為最佳宏塊模式。
本文采用JVT參考軟件JM11.0作為實(shí)驗(yàn)平臺,對不同的測試序列進(jìn)行了測試。量化參數(shù)QP選取22、27、32、37,測試結(jié)果見表3所列。表3中,PSDR表示信噪比的變化情況,單位為dB,如果結(jié)果為正,表示信噪比上升,否則為下降;Time表示時間變化情況,如果結(jié)果為負(fù),表示編碼時間減少,反之為增加;Bitrate表示碼率變化情況,如果結(jié)果為正,表示碼率增加,否則為減少。由表3可見,與JM原始算法相比,本文算法平均節(jié)省時間56.75%,信噪比下降0.06dB,碼率增加0.58%,算法在信噪比下降和碼率增加可以忽略的情況下,節(jié)省了編碼時間,提高了編碼性能。
表3 本文算法的實(shí)驗(yàn)結(jié)果
本文算法與Lee算法的實(shí)驗(yàn)結(jié)果見表4所列,雖然Lee算法節(jié)省的編碼時間較本文多一點(diǎn),但是本文的碼率和信噪比的變化情況都要優(yōu)于Lee算法[6]。表4中參數(shù)含義和單位同表3。
表4 本文算法和Lee算法的實(shí)驗(yàn)結(jié)果對比
本文提出了一種P幀的快速幀間模式選擇算法。利用宏塊模式與avgJmotion之間的關(guān)系,根據(jù)代價(jià)函數(shù)值Jmotion(16×16)的范圍對候選搜索塊模式進(jìn)行分類,再利用最佳模式和次最佳模式的率失真代價(jià)之間的關(guān)系以及時間相關(guān)性提前排除一部分宏塊模式。從實(shí)驗(yà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]畢厚杰,王 健.新一代視頻壓縮編碼標(biāo)準(zhǔn)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.