賀艷春,林其偉
(華僑大學 信息科學與工程學院,福建 廈門 361021)
運動估計中的塊匹配算法因運算簡單、容易實現而成為目前運動估計的主流。其中的全搜索算法(FS),因其窮盡搜索每個像素點,搜索精度最高,但計算太復雜,不能滿足實時性要求;而三步法(TSS)、四步法(FSS)以及交叉搜索法(CSS)等,相對FS,減少了搜索點數,滿足實時性要求,但不利于小的運動塊的搜索;新三步法(NTSS)、 六邊形法 (HEX)、 鉆石法 (DS)、 新四步法(NFSS)等,雖然提高了運動估計的速度,解決了早期算法不利于小運動塊搜索的問題,但易陷入局部最優(yōu)點,且不能很好地處理圖像的運動類型[1]。針對這些問題,CHEN Z B等[2]人提出了UMHexagonS算法,它是一種混合型搜索算法,綜合了非對稱十字形法、六邊形法、菱形法等,相對 FS,其均峰值信噪比(PSNR)保持基本不變,而運動估計時間減少了近90%,是目前運動估計搜索效率最高的快速搜索算法,己被JVT正式采納。
UMHexagonS算法的搜索路徑如圖 1[3]所示,它主要分4步進行搜索:
(1)初始搜索點預測。包括中值預測、上層預測、前幀預測以及鄰近參考幀預測,得到最佳的初始搜索點。
(2)以步驟(1)得到的最佳初始搜索點為中心,進行非對稱的十字形搜索,取絕對差值和(SAD值)最小的點為當前最佳匹配點。其中水平方向的搜索范圍為窗口寬度,垂直方向的搜索范圍為窗口寬度的一半,如圖1的step2所示。

(3)以步驟(2)得到的最佳匹配點為搜索中心,進行5×5共25點的正方形螺旋搜索,如圖 1的 step3-1所示。接著進行多層六邊形格點搜索,取最小SAD值所對應的點為最佳匹配點,如圖1的step3-2所示。
(4)該步驟分兩步進行:①以步驟(3)獲得的最佳匹配點為搜索中心,進行擴展的六邊形搜索。若當前最小SAD值點位于六邊形的中心,則轉到 b;否則返回 a繼續(xù)進行六邊形搜索,直到最小SAD值點位于六邊形的中心,如圖1的step4-1所示。②以步驟(3)的中心點為搜索中心,進行小菱形搜索,直到最小SAD值點位于小菱形的中心時,停止搜索,如圖1的step4-2所示。
雖然UMHexagonS算法具有很高的編碼效率,但仍存在兩種不足:
(1)參考文獻[4]中指出,在如圖 2所示的 H.264的7種幀間預測模式中,有30.71%~98.03%的預測塊的運動矢量全為0。若能在UMHexagonS算法進行搜索之前就判決出這些零運動矢量,就可以提前退出搜索,減少搜索時間。

(2)候選搜索塊的運動劇烈程度不同,其運動矢量的分布也不同。UMHexagonS算法對所有的候選搜索塊都是進行4層16點的六邊形搜索,沒有考慮到候選搜索塊的運動劇烈程度的不同,因此搜索存在冗余。
(1)針對UMHexagonS算法的第一種不足,提出了零運動矢量提前判決的方法。
在進行初始搜索點預測時,最先進行中值預測,且所有的模板都可以使用中值預測,因此,可以判斷中值預測得到的最佳匹配點mv(best_x,best_y)的 SAD值是否小于給定的閾值,若小于,則判決出該塊的運動矢量為0。
定義SAD值為:

式中,s、c(MV)分別為編碼的原始數據和編碼重建的參考幀數據,MV為預測運動矢量。
本文定義點 mv(best_x,best_y)處的 SAD值滿足式(2)時,則判定其運動矢量為0。

式中,Thresh[blocktype]是通過JM10.1的程序調試獲得的經驗閾值,表示7種幀間預測模式,取值為1,…,7。
(2)針對UMHexagonS算法的第二種不足,提出了自適應選擇模板的方法。
[5]中指出,運動劇烈程度不同的塊其運動矢量的分布也不同:若塊的運動幅度較小,其運動矢量通常分布在離搜索中心較近的周圍;若塊的運動幅度中等,其運動矢量通常分布在離搜索中心較遠的周圍;若塊的運動幅度很大,其運動矢量通常分布在遠離搜索中心的周圍。
因此,在UMHexagonS算法中,可通過判斷塊的運動劇烈程度,自適應地選擇16點的六邊形的搜索層數。但因為八邊形比六邊形更接近圓,所以將16點的六邊形格點搜索減少為8點的八邊形格點的搜索,如圖3所示。

本文將當前模塊的最小SAD值SADmin與自適應的閾值進行比較來確定其運動劇烈程度:平緩的運動、中等的運動以及劇烈的運動:

式中,pred_SAD為預測塊的最小 SAD值,β2、β3為自適應系數,分別定義如下:

式中,blocktype取值1,…7,表示7種幀間預測模式。
因此,自適應模板選擇過程如下:
(1)當模塊的運動為平緩的運動時,選擇 5×5小正方形以及2層8點八邊形模板進行搜索。
(2)當模塊的運動為中等的運動時,選擇3層的8點八邊形模板進行搜索。
(3)當模塊的運動為劇烈的運動時,選擇4層的8點八邊形模板進行搜索。
由于非對稱十字型搜索之后,需進行5×5的正方形搜索,以得到這一步的最佳匹配點。但是通過上面的分析可知,當模塊的運動為中等的運動或者很劇烈的運動時,最佳匹配點在遠離搜索中心點的周圍,則5×5的搜索就沒有必要了,只在模塊的運動為平緩時,進行5×5的搜索。參考文獻[6]中,5×5正方形的運動矢量分布如圖4所示。

由圖 4可知,5×5的正方形區(qū)域內,3×3的小正方形區(qū)域的運動矢量分布概率為71.792%,相對5×5的正方形區(qū)域的運動矢量的分布概率81.791%只減少了9.999%,而搜索點數減少了16點。因此,將5×5的正方形區(qū)域搜索改為3×3的小正方形區(qū)域搜索,能夠在基本保證視頻的質量的情況下,減少搜索點數,提高搜索速度。
改進后的算法流程圖如圖5所示。

本文采用JM10.1模型進行測試,分別對運動劇烈的coastguard序列、運動中等的 foreman序列、運動平緩的news序列以及運動較復雜、細節(jié)較多、水平方向運動特征明顯的Football序列進行了測試,這些序列都采用QCIF格式。編碼100幀,IPPPP……編碼模式,采用Hardmard變換,CABAC熵編碼,QP取 28,選取 5幀參考幀。比較運動估計時間Me-time和峰值信噪比PSNR值。測試數據結果如表1所示。
表1中,△Me-time表示改進的 UMHexagonS算法的運動估計時間減去原UMHexagonS算法的運動估計時間得到的差值與原UMHexagonS算法的運動估計時間的百分比;△PSNR表示改進后與改進前的UMHexagonS算法的PSNR值的差值;△bit-rate/(kb/s)表示表示改進后與改進前的UMHexagonS算法的比特率的差值,正號表示增加,負號表示減少。由表1可知,改進后的算法與原算法相比,PSNR值基本保持不變,比特率有所增加,但是在誤差允許的范圍之內(±0.2 kb/s);運動估計所消耗的時

表1 各種算法下的PSNR值和運動估計時間
間減少了10%~25%。達到了一定的改進效果。
本文通過分析UMHexagonS算法的一些不足,提出了零運動矢量提前判零、自適應選擇水平方向和垂直方向搜索范圍的相應的改進措施以及自適應的選擇搜索模板。這樣的改進在保證圖像編碼質量基本不變的情況下,減少了運動估計的搜索時間,從而提高了編碼效率。
參考文獻
[1]袁濤.基于 H.264運動估計算法的研究[D].重慶:重慶大學,2009.
[2]CHEN Z B,ZHOU P, HE Y.Fastintegerpeland fractional pel motion estimation for JVT[C].6th meeting:Awaji,Japan.JVT-F017,2002.
[3]畢厚杰.新一代視頻壓縮編碼標準-H.264/AVC(第二版)[M].北京:人民郵電出版社,2009.
[4]陳桂蘭,劉子堅.基于H.264的運動估計算法優(yōu)化研究[J].濮陽職業(yè)技術學院學報,2010,23(2):150-153.
[5]Xie Lifen,Huang Chunqing.UMHexagonS search algorithm forfastmotion estimation [C].IEEE, 3rd International conference on ICCRD 2011 3rd Intenational Conference on ICCRD,2011,4:483-487.
[6]LAM C H,PO L M,CHEUNG C H.A novel kite-crossdiamond search algorithm for fast block motion estimation[C].Proceeding s of 2004 IEEE International Symposium on Circuits and Systems.Canada: IEEE, 2004:729-732.