文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)08-128-03
H.264標(biāo)準(zhǔn)是由視頻聯(lián)合工作組JVT(Joint Video Team)組織提出的新一代數(shù)字視頻編碼標(biāo)準(zhǔn),與其他標(biāo)準(zhǔn)相比,H.264具有更高的編碼效率[1],能夠節(jié)省大約50%的碼率,。但是對(duì)H.264性能的改進(jìn)是以增加復(fù)雜性為代價(jià)的,,其編碼的計(jì)算復(fù)雜度大約相當(dāng)于H.263的3倍。運(yùn)動(dòng)估計(jì)是視頻壓縮編碼的關(guān)鍵部分,能有效地去除序列圖像的幀間冗余[2],在H.264的編碼過(guò)程中,,由于H.264編碼器采用了高精度運(yùn)動(dòng)矢量,,計(jì)算量迅速增長(zhǎng),運(yùn)動(dòng)估計(jì)消耗了整個(gè)編碼時(shí)間的80%左右,是復(fù)雜度和運(yùn)算量最高的部分[3],。如何有效地減少運(yùn)動(dòng)估計(jì)的消耗,對(duì)提高編碼的效率和實(shí)時(shí)性編碼具有重大的意義,。
1 UMHexagonS算法分析
非對(duì)稱十字型多層次六邊形格點(diǎn)搜索算法(UMHexagonS算法)由Chen Zhibo等人[4]提出,,由于該算法的運(yùn)算量相對(duì)于快速全搜索算法可節(jié)約90%以上,同時(shí)能保持較好的率失真性能,,因此,,UMHexagonS算法已經(jīng)被H.264的參考軟件JM正式采納,成為H.264標(biāo)準(zhǔn)專利庫(kù)中的一部分。
UMHexagonS算法的基本步驟[5]如下:
(1)起始搜索點(diǎn)預(yù)測(cè),。使用多幀參考,、中值預(yù)測(cè)、上層預(yù)測(cè),、相應(yīng)塊預(yù)測(cè)和鄰近參考幀預(yù)測(cè)五種方法來(lái)進(jìn)行預(yù)測(cè),。在起始搜索矢量的集合中,以擁有最小代價(jià)預(yù)測(cè)的運(yùn)動(dòng)矢量作為起始搜索點(diǎn),然后用EARLY_TERMINATION判斷是否提前截止,如果絕對(duì)誤差和SAD較大則跳到步驟5,SAD很小則跳到步驟6,。
(2)非對(duì)稱十字搜索,,如圖1中步驟2。EARLY_TERMINATION判斷是否提前截止,SAD較大則跳到步驟5,,SAD很小則跳到步驟6,。
(3)螺旋搜索5×5區(qū)域如圖1中步驟3-1。以目前最佳點(diǎn)為中心,搜索(-2, 2)方形區(qū)域內(nèi)的25個(gè)點(diǎn),。
(4)多層次大六邊形格點(diǎn)搜索如圖1中步驟3-2,。在1/4 search_range的范圍內(nèi),用不斷擴(kuò)大一倍直徑的大六邊形模板進(jìn)行搜索。
(5)小六邊形模板反復(fù)搜索如圖1中步驟4-1,。以小六邊形為模板,,在search_range范圍內(nèi)搜索,直到最優(yōu)點(diǎn)出現(xiàn)在模板中心才停止搜索,。
(6)菱形模板反復(fù)搜索如圖1中步驟4-2,。以菱形為模板,在search_range范圍內(nèi)搜索,,直到最優(yōu)點(diǎn)出現(xiàn)在模板中心才停止搜索,,得到最終的運(yùn)動(dòng)矢量。
2 UMHexagonS算法的改進(jìn)
2.1 對(duì)稱十字搜索模板
在UMHexagonS算法的步驟3中使用的是螺旋搜索5×5區(qū)域,。螺旋搜索是一種全搜索的搜索策略,需要計(jì)算整個(gè)搜索范圍內(nèi)所有點(diǎn)的SAD值,也就是要搜索25點(diǎn),。這樣不僅復(fù)雜度高,、運(yùn)算量大而且費(fèi)時(shí),。
自然的視頻序列的運(yùn)動(dòng)矢量場(chǎng)通常是柔和平滑的,變化也比較緩慢,。參考文獻(xiàn)[6]中對(duì)典型的平緩和運(yùn)動(dòng)復(fù)雜的自然視頻序列的運(yùn)動(dòng)矢量的統(tǒng)計(jì)研究發(fā)現(xiàn),,超過(guò)80%的運(yùn)動(dòng)矢量預(yù)測(cè)值位于中心5×5的網(wǎng)格區(qū)域內(nèi),但不是均勻分布,。從圖2中可以看出,總的5×5網(wǎng)格區(qū)域內(nèi)的運(yùn)動(dòng)矢量是81.79%,,而以原點(diǎn)為中心的半徑為2的對(duì)稱十字型區(qū)域(也就是A+B+C區(qū)域)運(yùn)動(dòng)矢量為74.74%,。對(duì)稱十字模板和螺旋搜索模板如圖3所示。從5×5網(wǎng)格區(qū)域到半徑為2的對(duì)稱十字型區(qū)域,,雖然運(yùn)動(dòng)矢量減少了7.05%,,但是搜索點(diǎn)數(shù)減少達(dá)到64%,如圖3(b)所示搜索點(diǎn)數(shù)從25點(diǎn)減少到9點(diǎn),。所以本文用對(duì)稱十字型模板的9點(diǎn)搜索來(lái)取代螺旋搜索5×5區(qū)域的25點(diǎn)搜索,。
2.2自適應(yīng)搜索長(zhǎng)度
搜索長(zhǎng)度search_range在UMHexagonS算法中用來(lái)控制搜索候選搜索點(diǎn)的范圍。主要體現(xiàn)在以下幾個(gè)步驟:步驟(4)(多層次大六邊形格點(diǎn)搜索)中,,以1/4 search_range做為搜索長(zhǎng)度,。步驟(5)(小六邊形模板反復(fù)搜索)中,以search_range作為搜索長(zhǎng)度,;步驟(6)(菱形模板反復(fù)搜索)中,,以search_range作為搜索長(zhǎng)度??梢?jiàn),,在UMHexagonS算法中搜索長(zhǎng)度是固定不變的,合理地設(shè)定搜索長(zhǎng)度能有效地減少UMHexagonS算法的復(fù)雜度,。
場(chǎng)景中一般都是以某一對(duì)象為單位的運(yùn)動(dòng),,因此該對(duì)象內(nèi)部的代價(jià)(mcost)應(yīng)該具有很高的相關(guān)性[7]。據(jù)此,,本文利用前兩個(gè)搜索步驟的min_mcost之比,,提出自適應(yīng)搜索長(zhǎng)度的方法。
設(shè)利用變量pre_min_mcost1,、pre_min_mcost2,、pre_min_mcost3、 pre_min_mcost4來(lái)分別保存步驟(2),、(3),、(4)、(5)的min_mcost,,其定義公式如下:
ki=pre_min_mcosti/pre_min_mcost(i+1) (1)
search_range=search_range/ki (2)
式(1)中,,ki表示前兩個(gè)搜索步驟的min_mcost之比,式(2)中search_range是搜索長(zhǎng)度,。根據(jù)ki來(lái)相應(yīng)地縮短改進(jìn)后的搜索長(zhǎng)度,,本文的改進(jìn)方法分別用在步驟(4)、(5),、(6),。
3實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)環(huán)境
本文在H.264的參考軟件JM10.1上實(shí)現(xiàn)改進(jìn)后的UMHexagonS算法,選取3個(gè)具有代表性的標(biāo)準(zhǔn)QCIF測(cè)試序列進(jìn)行測(cè)試。
實(shí)驗(yàn)平臺(tái):Windows XP SP3系統(tǒng),,Intel Core 2 Duo CPU(T6400)2.00 GHz,內(nèi)存2 GB,。
實(shí)驗(yàn)測(cè)試序列:akyio_qcif.yuv、foreman_qcif.yuv,、mobile_qcif.yuv,其場(chǎng)景運(yùn)動(dòng)快慢鮮明,,運(yùn)動(dòng)劇烈程度由左到右依次加強(qiáng)。
實(shí)驗(yàn)參數(shù)設(shè)置:FramesToBeEncoded=20,FrameRate=30.0,SearchRange=16,NumberReferenceFrames=5,其他參數(shù)設(shè)置為默認(rèn)值,。
3.2 實(shí)驗(yàn)數(shù)據(jù)與分析
本文主要采用Y,、U、V各分量的峰值信噪比( PSNR),、運(yùn)動(dòng)估計(jì)時(shí)間(MET)和比特率作為算法性能評(píng)判的標(biāo)準(zhǔn),。Y、U,、V 各分量的PSNR表明壓縮后圖像的質(zhì)量,,“+”為改善;MET表明運(yùn)動(dòng)搜索的時(shí)間,,“-”為改善,;比特率表明壓縮率,“-”為改善,。改進(jìn)率=(改進(jìn)后算法-原算法)/原算法×100%,。實(shí)驗(yàn)結(jié)果比較如表1所示。
從表1中可以看出,,改進(jìn)后算法對(duì)Y,、U、V各分量的峰值信噪比和比特率影響不大,,但運(yùn)動(dòng)估計(jì)時(shí)間減少很顯著(從7.4%~20.5%),,平均減少了15%。實(shí)驗(yàn)中,改進(jìn)算法對(duì)于不同視頻序列的運(yùn)動(dòng)估計(jì)時(shí)間的減少幅度不同,,主要由視頻場(chǎng)景運(yùn)動(dòng)的激烈程度不同所造成,。視頻序列akiyo運(yùn)動(dòng)場(chǎng)景相對(duì)平緩,起始點(diǎn)預(yù)測(cè)的精度較高,,在早期判斷EARLY_TERMINATION時(shí),因?yàn)镾AD很小,,直接跳到步驟(6),也就是說(shuō),沒(méi)有執(zhí)行對(duì)稱十字模板步驟(3)和通過(guò)自適應(yīng)搜索長(zhǎng)度來(lái)降低運(yùn)算量的步驟(4)和步驟(5)所以運(yùn)動(dòng)估計(jì)時(shí)間減少的效果不是很明顯。而對(duì)于場(chǎng)景運(yùn)動(dòng)一般和場(chǎng)景運(yùn)動(dòng)激烈的foreman和mobile序列,由于SAD指標(biāo)不符合早期判斷EARLY_TERMINATION條件, 執(zhí)行了對(duì)稱十字模板步驟(3)和自適應(yīng)搜索長(zhǎng)度搜索步驟(4),、(5),、(6),因此運(yùn)動(dòng)估計(jì)時(shí)間減少顯著,。
本文在結(jié)合JM10.1模型的基礎(chǔ)上分析了H.264中運(yùn)動(dòng)估計(jì)算法(UMHexagonS算法),針對(duì)該算法的不足之處提出了兩處改進(jìn),。首先,利用對(duì)稱十字模板9點(diǎn)搜索替換原來(lái)的5×5螺旋搜索,,減少了64%的搜索點(diǎn)數(shù),;其次,利用對(duì)象內(nèi)部代價(jià)的相關(guān)性提出自適應(yīng)搜索長(zhǎng)度方法,。在保證視頻序列各分量的信噪比和比特率的情況下,,使運(yùn)動(dòng)估計(jì)時(shí)間平均降低了15%,增強(qiáng)了編碼的實(shí)時(shí)性,有利于視頻圖像實(shí)時(shí)編碼傳輸?shù)膶?shí)現(xiàn),。
參考文獻(xiàn)
[1] Yang Enhui, Xu Xiang. Rate distortion optimization for H.264 interframe coding: a general framework and algorithms[J]. IEEE Transactions on Image Processing,2007,16(7):1774-1784.
[2] 畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)-H.264/AVC[M].北京:人民郵電出版社,,2005:33-45.
[3] WIEGAND T, SULLIVAN G J.Overview of the H. 264/AVC video coding standard[J].IEEE Transactions on Ciruits and Systems for Video Technology,2003,13(7):560-576.
[4] CHEN Z, ZHOU P, HE Y. Fast motion estimation for JVT [S]. JVT-G016,7th Meeting[C]. Thailand, Pattaya II: JVT of ISO/IEC MPEG & ITU-T VCEG, 7-14 March, 2003.
[5] CHEN Z, ZHOU P, HE Y. Fast integer pixel and fractional pixel motion estimation for JVT[S].JVT-F017,2002,6th Meeting[C].Awajilsland,Japan:JVT of ISO/IEC MPEG & ITU-T VCEG,2002,5-13.
[6] LAM C H, PO L M, CHEUNG C H. A novel kite-cross-diamond search algorithm for fast block motion estimation[C]. Proceedings of 2004 IEEE International Symposium on Circuits and Systems. Canada:IEEE, 2004:729-732.
[7] 鄭振東,王沛,應(yīng)駿. H.264 JM模型中運(yùn)動(dòng)估計(jì)算法及其改進(jìn)方案[J].中國(guó)圖像圖形學(xué)報(bào),2007,10(12):1798-1780.