專利名稱::一種十字菱形運動估計搜索方法
技術領域:
:本發(fā)明涉及一種視頻壓縮中的處理方法,特別涉及一種視頻壓縮中快速塊匹配運動估計中的搜索方法。技術背景由于視頻序列圖像在時間軸上具有較強的相關性,運動估計(ME)及運動補償(MC)技術可以有效的減少時間相關性,因此該技術被廣泛應用于各種視頻壓縮編碼方案中。運動估計用來估計物體的位移,得到運動矢量;運動補償根據得到的運動矢量,對前一幀中由于運動而產生的位移進行調整,從而得到盡可能接近本幀的預測幀。由此可見,運動估計算法越完善,估計出的運動矢量越準確,運動補償的性能就越好,從而使預測誤差越小,編碼后需要傳輸的信息量也將隨之大大減少,整個系統(tǒng)的碼率壓縮比得到很大的提高,因此運動估計和補償技術己經成為視頻序列圖像編碼系統(tǒng)中減少時間冗余、提高壓縮比的重要技術?,F(xiàn)有的運動估計算法有多種,其中塊匹配法以其算法簡單有效、易于硬件實現(xiàn)的特點,被當今所有的視頻編碼標準所采用。塊匹配的基本思想就是將當前幀分成若干個大小相同的塊,對每一個塊(當前塊)分別在參考幀中的一定區(qū)域(稱為搜索窗)內,按照一定的匹配準則搜索與之最接近的塊(稱為預測塊),預測塊與當前塊之間的位移稱為運動矢量,它們的像素間的差值稱為殘差塊,預測塊與當前塊之間通過匹配準則函數得到的值稱為塊失真度(BDM)。這樣當前幀中的每一塊都可用一個殘差塊和一對運動矢量來表示。圖1為塊匹配運動估計的示意圖。塊匹配運動估計可以從三個方面進行研究塊形狀與大小、塊匹配準則、搜索策略。目前,塊形狀與大小以及塊匹配準則由于相對比較簡單,已經有了比較一致的選擇。而搜索策略最為復雜,它決定了一個塊匹配運動估計方法的好壞,因此一直是快速運動估計研究的主要方向。目前的H.26X和MPEG-1,MPEG-2,MPEG-4等標準采用的都是基于塊運動估計與運動補償的幀間壓縮方案,其壓縮比和基于幀內壓縮的標準(如JPEG)相比有較大的提高。如在H.261的編碼過程中,在采用著名的三步快速搜索法的情況下,運動估計仍要占用整個編碼過程的63%的計算量;而在11263編碼器中,運動估計占用了42%的計算量。因此,運動估計是視頻壓縮的瓶頸。由于上述原因,高效快速的運動估計算法一直是視頻壓縮領域的研究熱點。尤其是從1997年10月召開的MPEG會議上開始征集運動估計快速算法以來,在視頻編碼中運動估計算法的研究領域中競爭日益激烈。為此,很多運動估計的快速算法從降低匹配函數復雜度和降低搜索點數等方面進行了改進,早期的運動估計改進算法主要有三步搜索法(TSS),后來為了進一步提高計算速度和預測矢量精度,利用運動矢量的中心偏移分布特性來設計搜索模式,相繼又提出了新三步法(NTSS)、四步法(FSS)、菱形搜速法(DS)、十字菱形搜索法(CDS)和六邊形搜索法(HEXBS)等算法。在所有的搜索算法中,.全搜索算法雖然精度最高,但是巨大的計算復雜度使其不宜實時應用。三步法通過限制搜索位置的數目來減小計算復雜度,不利于估計小的運動且容易陷入局部最小。新三步法,四步法,菱形搜索法和六邊形搜索法提高了匹配速度,減小了陷入局部最小的可能性,但是搜索點數依然較多,可以進一步優(yōu)化。
發(fā)明內容本發(fā)明要解決的技術問題是為克服現(xiàn)有技術的不足,本發(fā)明提供一種十字菱形運動估計搜索方法,在不影響圖像質量的同時能夠大大降低了計算復雜度,縮短了計算時間。本發(fā)明解決其技術問題所采用的技術方案是一種十字菱形運動估計搜索方法,其特征在于包括以下步驟'第一步(小十字模式)在小十字模式的5個搜索點中,應用改進的部分塊失真準則,找出最小塊失真(MBD)所在點,如果最小塊失真MBD點在小十字模式的中心,則一步搜索停止,得到最終要求的運動矢量MV(O,O);否則,進入第二步;第二步(小十字模式)以第一步所搜索的最小塊失真MBD點為中心構造新的小十字模式,搜尋3個新的搜索點,應用改進的部分塊失真準則,找出新的最小塊失真MBD點,如果該點在小十字模式的中心,則二步搜索停止,得到最終要求的運動矢量MV(士l,O)或(O,±1);否則,進入第三步;第三步(大十字模式)搜索大十字模式3個還沒有搜索到的點,應用改進的部分塊失真準則,找出新的最小塊失真MBD點,以作為下一步搜索的中心;第四步(大菱形模式)以第三步中的最小塊失真MBD點為中心,構造大菱形搜索模式,應用改進的部分塊失真準則,找出新的最小塊失真MBD點,如果該點在大菱形的中心,進入第五步;否則,繼續(xù)第四步;第五步(小菱形模式)以第四步中的最小塊失真MBD點為中心,構造小菱形搜索模式,應用改進的部分塊失真準則,找出新的最小塊失真MBD點。該點所對應的向量即為最終要求的運動矢量。采用改進的部分塊失真準則搜索所述的最小塊失真MBD點,改進的部分塊失真準則具體如下在塊匹配算法BMA中,改進的部分塊失真準則只使用塊其中的一部分像素就可以對失真度有較好的度量。定義塊的大小為16x16,第n幀左上角坐標為(m,n)的塊與第n-l幀左上角坐標為(m+p,w+《)的塊間的失真度量SAD值由下式給出-15—IS>SC(ff^;7,gr)=〉:>1乂(附+/,"+力-1,(附+/+/,"+9+/)|其中,/(附+,',"+力表示第11幀坐標為(>+/,"+刀像素點的像素值。將失真度量&4Z)(m,";;7,《):分成16個部分失真度量^《(w,(k=l,2,...,16)。第k個部分失真度量的定義如下式所示■sac/4(m,m;j3,g)=ZZ|/(m+4!'+^,w+4乂+/+4/十5^,w+9+47+々)1'■=0乂=0其中A,t分別為第k個部分失真度量所用左上角像素點相對于塊左上角的水平和垂直偏移。部分失真度量sa《(m,w;A《)(k-l,2,…,16)的計算順序如圖5方框內序號所示。第k次累加部分失真度量的定義如下式所示(附,w;g)=Ssad,(附,7T,p,g),=1如果第k次累加部分失真度量滿足16x(w,m;m)>A:xmin(&4D)其中min(&4")是搜索過程中當前得到的最小失真,k為自己設定的整數,取值范圍為32^^16,則認為該點不可能為匹配點。否則,繼續(xù)計算第k+l次累加部分失真度量&4£>4+1(m,n;p,g),再進行比較。本發(fā)明與現(xiàn)有技術相比所具有的優(yōu)點在于本發(fā)明的搜索方法在菱形搜索之前加上十字搜索,并對傳統(tǒng)的十字菱形搜索做出了改進,使其進一步符合視頻序列間運動矢量的運動規(guī)律,減少了尋找最優(yōu)匹配塊的搜索點,從而縮短了搜索時間;本發(fā)明還采用了中途停止,即一步停止和二步停止,對靜止和半靜止塊的搜索速度有顯著的提高;本發(fā)明同時對最優(yōu)匹配準則進行了優(yōu)化,在不影響判別失真度情況下,大大降低了計算復雜度,縮短了計算時間。實驗測試表明本發(fā)明的搜索方法對各種測試視頻序列都有較好的適應性,尤其是對背景變化不太大的序列,搜索點數明顯降低,搜索時間有較大的減少,而搜索質量(運動估計和補償后的圖像的峰值信噪比PSNR)降低很少甚至沒有變化。圖1.塊匹配模型;圖2.十字菱形搜索中的搜索模式圖2(a)表示菱形模式,其中G)表示大菱形模式,E3表示小菱形模式;圖2(b)表示十字模式,其中表示大十字模式,攀表示小十字模式;圖3.本發(fā)明的十字菱形運動估計搜索方法流程圖;圖4.本發(fā)明的十字菱形運動估計搜索方法搜索示例圖4(a)表示一步停止;圖4(b)表示二步停止;圖4(c)表示搜索大十字模式沒有搜索到的3個點;圖4(d)表示大菱形搜索;圖4(e)表示小菱形搜索得到最終運動矢量MV;圖5.改進的部分失真準則所用到的搜索點;其中16個數字表示部分失真度量的計算順序,16個黑點為1個部分失真度量所用到的像素;圖6.akiyo.qcif視頻中第19幀、20幀的原始圖像、運動矢量圖以及運動估計和補償圖像圖6(a)表示參考幀第19幀;圖6(b)表示原始幀第20幀;圖6(c)表示運動矢量圖;圖6(d)表示本發(fā)明十字菱形運動估計搜索方法對第20幀的運動估計和補償圖像;圖7.對mother-daughter.cif視頻前70幀逐幀進行運動估計圖7(a)表示每幀搜索點數;圖7(b)表示運動估計和補償后每幀圖像的峰值信噪比。具體實施方式下面結合附圖及具體實施方式詳細介紹本發(fā)明。本發(fā)明的一種十字菱形運動估計搜索方法分為兩種模式十字模式和菱形模式,如圖2所示,其中十字模式分為大十字模式和小十字模式,菱形模式分為大菱形模式和小菱形模式。本發(fā)明改進的十字菱形搜索方法的前兩步采用小十字模式,而并非傳統(tǒng)的十字菱形搜索方法中首先使用大十字模式進行搜索,從而使得在靜止塊和準靜止塊中,可以用更少的搜索點便可找到匹配塊。然后搜索大十字模式沒有搜索到的點和準靜止區(qū)域中沒有搜索到的點,以為下面的菱形搜索找到更精確的搜索方向。圖3所示為本發(fā)明的十字菱形搜索方法流程圖,圖4為本實施例的一種十字菱形搜索方法,具體步驟如下(1)、(小十字模式)應用改進的部分塊失真準則,在小十字模式中的.5個搜索點中搜索最小塊失真MBD所在點。如圖4(a)所示,此步驟中小十字模式的5個搜索點用①表示。如果最小塊失真MBD點在小十字模式的中心,即中心的黑色的①位置處,此時一步搜索停止,得到最終要求的運動矢量MV(0,0);否則,進入步驟(2);(2)、(小十字模式)以步驟(1)搜索到的最小塊失真MBD點為中心構造新的小十字模式,應用改進的部分塊失真準則,此時需要搜尋3個新的搜索點,如圖4(b)中的增加的②所示。緊接著再搜索最小塊失真MBD點,如果該點在小十字模式的中心,即中心的黑色的①位置處,二步搜索停止,得到最終要求的運動矢量MV(士l,O)或(O,±1);否則,進入步驟(3);(3)、(大十字模式)搜索大十字模式3個還沒有搜索到的點,如圖4(c)中的增加的③所示。應用改進的部分塊失真準則,搜索新的最小塊失真MBD點,如黑色的②位置處,以作為下一步搜索的中心;(4)、(大菱形模式)以上一步的最小塊失真MBD點為中心,構造大菱形搜索模式,如圖4(d)中的增加的④所示。應用改進的部分塊失真準則,找出新的最小塊失真MBD點,如果該點在大菱形的中心,即中心的黑色的②位置處,進入步驟(5);否則,繼續(xù)步驟(4);(5)、(小菱形模式)以步驟(4)所搜索到的位于大菱形的中心的最小塊失真MBD點為中心,構造小菱形搜索模式,如圖4(e)中的增加的⑤所示。應用改進的部分塊失真準則,找出新的最小塊失真MBD點,如黑色的⑤位置處,該點所對應的向量即為最終要求的運動.矢量。相比菱形搜索法和現(xiàn)有的十字菱形搜索法,本發(fā)明的十字菱形搜索法最大的改進是搜索點數減少,搜索速度提高,尤其是對靜止塊或準靜止塊(|MV|-1)。對于靜止塊,菱形搜索法需要搜索13個搜索點,現(xiàn)有的十字菱形搜索需要搜索9個點,而本發(fā)明的十字菱形搜索法只需要搜索5個點;對于準靜止塊,菱形搜索法需要搜索13個搜索點,現(xiàn)有的十字菱形搜索法需要搜索11個點,而本發(fā)明的十字菱形搜索法只需要搜索7個點。在以上步驟中的改進的部分塊失真準則,其具體實現(xiàn)過程如下在塊匹配算法BMA中,運動估計通常使用塊的全部像素來計算失真度,這大大增加了計算的復雜度。實際上,只使用塊其中的一部分像素就可以對失真度有較好的度量。定義塊的大小為16x16,第n幀左上角坐標為(m,ft)的塊與第n-l幀左上角坐標為(柳+A"+《)的塊間的失真度量SAD值由下式給出」5■S4D^;,q)=〉:>1乂(附+/,"+力丄(附+;7+/,,+力其中,/(>+/,"+刀表示第n幀坐標為O+/,"+像素點的像素值。將失真度量&4Z)(m,";/7,《)分成16個部分失真度量m《(附,(k=l,2,...,16)。第k個部分失真度量的定義如下式所示■sm/4O,p,《)=ZZj/"O+4/+^,"+4_/+)一(w+/+4/+&,m+《+4_/+)|'■=o_/=o其中A,々分別為第k個部分失真度量所用左上角像素點相對于塊左上角的水平和垂直偏移。部分失真度量^《0,n;;,《)(]^l,2,…,16)的計算順序如圖5方框內序號所示。第k次累加部分失真度量的定義如下式所示&4Z^(m,w;p,《)=Zs"《(附,w;p,《)對于累加部分失真度量來說,這樣的計算順序使其用到的像素點在塊內均勻分布。如果進行判斷時累加部分失真度量&4A(m,";A《)所用的像素點太少,則不能正確的表征塊的失真,非??赡茉斐墒д`。對大量的測試視頻序列進行試驗,發(fā)現(xiàn)當A》3時,誤判的概率小于5%。在本發(fā)明中,如果第k次累加部分失真度量滿足16x(附,";/,《)>A:xmin(S^D)其中min(&4D)是搜索過程中當前得到的最小失真,k為自己設定的整數,取值范圍為3Sit^16,則認為該點不可能為匹配點。否則,繼續(xù)計算第k+l次累加部分失真度量&iDt+1(m,w;p,《),再進行比較。為了驗證本發(fā)明的十字菱形搜索方法,對多個不同運動程度的視頻序列進行了實驗。計算機CPU為InterCore2E6300,主頻1.86GHz,內存2G,在VisualC++6.0環(huán)境中進行編程。在實驗仿真中,宏塊的大小為16x16像素,搜索窗口的最大距離在水平和垂直方向均為士7像素,失真準則采用了改進的部分塊失真準則。測試中用到了六個不同運動程度的視頻序列,分別為低空間細節(jié)且運動緩慢的測試序列claire.cif,hall.cif;中等空間細節(jié)且運動一般的測試序列foreman.cif,flower,cif,paris.cif;高空間細節(jié)且運動劇烈的測試序列stefan.cif。測試序列均取視頻序列前面的70幀。將本發(fā)明的十字菱形搜索方法,簡稱為新十字菱形搜索法NCDS,同現(xiàn)有三步搜索法TSS、新型三步搜索法NTSS、菱形搜索法DS、十字菱形搜索法CDS在兩個方面進行了對比(1)搜索點數每一幀測試序列搜索到最小塊失真MBD點、即最佳匹配塊所需要的搜索點數;(2)峰值信噪比PSNR:用以衡量運動估計和補償后的圖像和原圖像的差別。PSNR=10xlogl0(2552/MSE)其中15152從表2可以看出在所有的視頻測試序列中,NCDS所用到的搜索點數是所有搜索算法中最少的,具體有TSS>NTSS>DS>CDS〉NCDS。尤其對運動不太劇烈且背景變化不太大的視頻序列,如claire.cif和hall.cif,NCDS較DS能節(jié)省41%的搜索點,NCDS較CDS能節(jié)省16%的搜索點。對運動劇烈且背景有較大變化的視頻序列,如stefan.cif,NCDS也有較好的效果。表2每幀的平均搜索點數<table>tableseeoriginaldocumentpage10</column></row><table>從表3可以看出相比于CDS,NCDS的PSNR下降的很少(大約有0~1.7%的下降),尤其是對測試序列背景變化不大的視頻,NCDS擁有和CDS差不多的PSNR。表3平均峰值信噪比PSNR<table>tableseeoriginaldocumentpage11</column></row><table>針對視頻akiyo.qcif,抽取其任意一幀(第20幀,如圖6(b)所示),圖6(a)是其參考幀第19幀,應用NCDS進行運動估計和補償,得到運動矢量圖和其補償后圖像如圖6(c)和圖6(d)所示。更進一步,對中等空間細節(jié)且運動一般的測試序列mother-daughter.cif的前70幀的每一幀所用到的搜索點數和運動估計補償后的峰值信噪比(PSNR)做了實驗,其結果如圖7所示。權利要求1、一種十字菱形運動估計搜索方法,其特征在于包括以下步驟(1)在小十字模式的5個搜索點中,搜索最小塊失真MBD所在點,如果最小塊失真MBD點在小十字模式的中心,則一步搜索停止,得到最終要求的運動矢量MV(0,0);否則,進入步驟(2);(2)以步驟(1)所搜索的最小塊失真MBD點為中心構造新的小十字模式,搜尋3個新的搜索點,找出新的最小塊失真MBD點,如果該點在小十字模式的中心,則二步搜索停止,得到最終要求的運動矢量MV(±1,0)或(0,±1);否則,進入步驟(3);(3)搜索大十字模式3個還沒有搜索到的點,找出最小塊失真MBD點,以作為下一步搜索的中心;(4)以步驟(3)中的最小塊失真MBD點為中心,構造大菱形搜索模式,找出新的最小塊失真MBD點,如果該點在大菱形的中心,進入步驟(5);否則,繼續(xù)步驟(4);(5)以步驟(4)所搜索到的最小塊失真MBD點為中心,構造小菱形搜索模式,找出新的最小塊失真MBD點,該點所對應的向量即為最終要求的運動矢量。2、根據權利要求1所述的一種十字菱形運動估計搜索方法,其特征在于采用改進的部分塊失真準則搜索所述的最小塊失真MBD點,改進的部分塊失真準則具體如下-定義塊的大小為16x16,第n幀左上角坐標為(w,")的塊與第n-l幀左上角坐標為(m,n)的塊間的失真度量SAD由下式給出<formula>formulaseeoriginaldocumentpage2</formula>其中,fn(m+i,n+j)表示第n幀坐標為(m+i,n+j)像素點的像素值;將失真度量SAD)m,n;p,q)分成16個部分失真度量sadk(m,n;p,1)(k=l,2,...,16),第k個部分失真度量的定義如下式所示<formula>formulaseeoriginaldocumentpage2</formula>其中A,分別為第k個部分失真度量所用左上角像素點相對于塊左上角的水平和垂直偏移,第k次累加部分失真度量的定義如下式所示-&4Z)A(附,";_p,《)=2ra《(w,";;,《)如果第k次累加部分失真度量滿足16x(w,";;,g)>&xmin(5^D)其中minOSL4D)是搜索過程中當前得到的最小失真,k為自己設定的整數,取值范圍為3St《16,則認為該點不可能為匹配點;否則,繼續(xù)計算第k+l次累加部分失真度量&4A+1(m,n;p,《),再進行比較。全文摘要一種新型的十字菱形搜索方法,首先用小十字模式進行預搜索,找到最小塊匹配失真(MBD)點,以MBD為中心構造大十字搜索模式,找到MBD;然后以大十字模式的MBD為中心,開始菱形搜索首先搜索大菱形,如果MBD在中心,以小菱形方式搜索,找到的MBD點即為最終的塊匹配失真點。否則繼續(xù)大菱形搜索。十字菱形還采用了中途停止技術,對靜止和半靜止塊的搜索速度有顯著的提高。改進的部分失真準則在不影響失真度的情況下大大降低了計算復雜度。實驗結果表明新型十字菱形搜索方法比菱形搜索方法和十字菱形搜索方法在信噪比降低很少甚至不降低的情況下,分別節(jié)省41%和16%的搜索點,和其它流行的塊匹配運動估計方法相比,本方法有更快的搜索速度和更小的失真度。文檔編號H04N7/32GK101394566SQ20081022498公開日2009年3月25日申請日期2008年10月29日優(yōu)先權日2008年10月29日發(fā)明者申曉東,祝世平申請人:北京航空航天大學