H.264視頻壓縮快速運動(dòng)估計算法分析
H.264是現有最重要數據壓縮編碼國際標準之一。
本文引用地址:http://dyxdggzs.com/article/193233.htm快速運動(dòng)估計算法一直是視頻壓縮中的研究熱點(diǎn)。本文針對一些快速估計算法過(guò)早確定了搜索方向,容易陷入局部最小點(diǎn),損失了搜索精度的情況,在原有基礎上,運用菱形十字搜索算法(DCS)與閾值估計相結合的方法提高了運動(dòng)估計的性能。實(shí)驗結果表明,該算法可以用較小的搜索代價(jià)取得與全搜索(FS)相當的效果,并且在搜索速度方面優(yōu)于鉆石法DS)。
0 引言
H.264采用了減少視頻圖像各幀間冗余度的運動(dòng)估計算法。運動(dòng)估計算法傳統的有全搜索(FS)、三步搜索(TSS)、新三步搜索(NTSS)、四步搜索(FSS)等;常用的是鉆石搜索(DS)和非對稱(chēng)十字交叉多層次六邊形格點(diǎn)運動(dòng)搜索算法(UMHexagonS)。運動(dòng)估計是整個(gè)視頻編碼中運算量最大的模塊,可占整個(gè)軟件編碼器運算量的70%以上。因此視頻系統中編碼器的復雜部分取決于運動(dòng)估計算法體系結構的復雜性。
1 運動(dòng)估計算法分析
1.1 鉆石搜索(DS)算法
DS算法即鉆石搜索算法,被MPEG-4國際標準采用并收入驗證模型VM(Verification Model)中,是MPEG-4建議采用的快速運動(dòng)估計算法。 DS算法采用了兩種搜索模板,分別是有9個(gè)檢測點(diǎn)的大模板和有5個(gè)檢測點(diǎn)的小模板。搜索時(shí)先用大模板LDSP在搜索區域中心及周?chē)?個(gè)點(diǎn)處進(jìn)行匹配計算,當最小塊誤差出現在中心點(diǎn)處時(shí),將大模板LDSP換為SDSP,再進(jìn)行匹配計算,這時(shí)5個(gè)點(diǎn)中的MBD(Minimum Block Distortion)即為最優(yōu)匹配點(diǎn);否則,改變中心位置,仍用LDSP重復計算。
1.2 菱形十字搜索(DCS)算法
菱形十字搜索算法(DCS)算法是在DS算法基礎上改進(jìn)而來(lái),DCS的匹配模板是建立在兩種不同的搜索模板之上的,即大菱形十字型(LDCSP)和小菱形十字型(SDCSP),如圖1所示。其中,十字型可以對應于實(shí)際的運動(dòng)的矢量分布,而交叉型則是為了加速搜索效果。
DCS算法在進(jìn)行運動(dòng)估計匹配運算時(shí),有三種可能的情況:
(1)若MBD點(diǎn)位于LDCSP中心位置,說(shuō)明圖像是靜止的,DCS算法一步結束;
(2)若MBD點(diǎn)位于LDCSP小十字位置,說(shuō)明圖像的運動(dòng)較小,則在此基礎上按照SDCSP模板反復進(jìn)行交叉搜索。
(3)若MBD點(diǎn)位于LDCSP大十字位置,說(shuō)明圖像的運動(dòng)較大,則在此基礎上按照LDCSP模板反復進(jìn)行交叉搜索。
由此可以看出,DCS算法的優(yōu)點(diǎn)是,可以根據圖像的運動(dòng)類(lèi)型(如上述三種情況),白適應選擇下一步相應的搜索模板,使搜索與圖像內容有關(guān)(基于內容的搜索),從而得到較好的搜索效果;DCS算法的搜索并不一定要經(jīng)歷模板由大到小的必然過(guò)程,有時(shí)一步即可完成搜索;用DCS搜索時(shí),十字形模板對應于實(shí)際的運動(dòng)矢量分布,交叉形模板則有準確性“聚焦”特性,這從本質(zhì)上體現了DCS是粗定位和準確定位的有效結合。 Script type=text/javascript> function ImgZoom(Id)//重新設置圖片大小 防止撐破表格 { var w = $(Id).width; var m = 650; if(w m){return;} else{ var h = $(Id).height; $(Id).height = parseInt(h*m/w); $(Id).width = m; } } window.onload = function() { var Imgs = $(content).getElementsByTagName(img); var i=0; for(;i
視頻圖像的運動(dòng)矢量大部分為零矢量或運動(dòng)很小的矢量。運動(dòng)矢量為零的塊稱(chēng)為靜止塊;運動(dòng)矢量很小的塊(以搜索窗口中心為圓心,兩像素為半徑的圓內)稱(chēng)為準靜止塊:而其他的稱(chēng)為運動(dòng)塊。如果有超過(guò)80%運動(dòng)矢量很小的塊可被看作靜止或準靜止塊。因此,可設一個(gè)閥值T,當運動(dòng)矢量的值小于T時(shí),可用SDCSP搜索法直接進(jìn)行精確定位,找出最優(yōu)點(diǎn);當運動(dòng)矢量的值大于T時(shí),可用LDCSP搜索算法找出最優(yōu)點(diǎn)。
運動(dòng)矢量空間域的預測方式有運動(dòng)矢量中值預測、空間域的上層塊模式運動(dòng)矢量;在時(shí)間域的預測方式有前幀對應塊運動(dòng)矢量預測和時(shí)間域的鄰近參考幀運動(dòng)矢量預測。本文采用運動(dòng)矢量中值預測方式。根據與當前E塊相鄰的左邊A塊,上邊B塊和右上邊C塊的運動(dòng)矢量,取中值作為當前塊的預測運動(dòng)矢量。如圖2所示。
設當前要編碼塊E的運動(dòng)矢量為MVp。如果運動(dòng)矢量的值MVp≥T,則與E塊相鄰的各塊間運動(dòng)的相關(guān)性較高,表明該區域的變化比較平緩;如果運動(dòng)矢量的值MVpT,則與E塊相鄰的各塊間運動(dòng)的相關(guān)性較低,表明該區域變化比較劇烈。通過(guò)對missa、grandmother、carphone、salesman的檢測可知,取閾值T=2。
3 自適應運動(dòng)估計算法
結合上述DCS算法和閾值的確定,可采取先對視頻圖像的運動(dòng)塊進(jìn)行閾值的判斷,再根據判斷結果進(jìn)行最佳匹配塊的搜索。具體搜索步驟描述如下:
Step 1:判斷當前塊運動(dòng)矢量MVp和閾值確大小。若MVp≥T,則進(jìn)入Step 2;若MVpT,則進(jìn)入Step 5。
Step 2:用LDCSP在搜索區域中心及周?chē)?個(gè)點(diǎn)進(jìn)行匹配運算,然后判斷,找出MBD點(diǎn)。若MBD點(diǎn)位于中心點(diǎn),說(shuō)明宏塊是靜止的,DCS算法一步結束,得到最優(yōu)匹配塊;否則進(jìn)行Step 3。
Step 3:若MBD點(diǎn)為L(cháng)DCSP模版的小十字處,以該點(diǎn)為中心構建SDCSP進(jìn)行匹配計算,若MBD點(diǎn)位于中心點(diǎn),所得MBD點(diǎn)為所求。否則,進(jìn)入Step 4。
Step 4:若MBD點(diǎn)為L(cháng)DCSP模版的大十字處,以該點(diǎn)為中心構建LCSP進(jìn)行匹配計算,進(jìn)入step 2。
Step 5:用LDCSP在搜索區域中心及周?chē)?個(gè)點(diǎn)進(jìn)行匹配運算,然后判斷,找出MBD點(diǎn)。若MBD點(diǎn)位于中心點(diǎn),所得MBD點(diǎn)為所求;否則繼續Step 5。
算法流程圖如圖3所示
評論