專利名稱:一種運(yùn)動(dòng)估計(jì)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字視頻編碼技術(shù),尤其涉及一種視頻壓縮編碼過程中的運(yùn)動(dòng) #"計(jì)方法。
背景技術(shù):
幀間預(yù)測是視頻編碼器中的重要部分,而幀間預(yù)測的主要途徑是基于單個(gè) 宏塊的運(yùn)動(dòng)估計(jì)。運(yùn)動(dòng)估計(jì)的方法是先將當(dāng)前編碼幀劃分為固定大小的塊,然 后針對每個(gè)要被編碼的塊,在參考幀的一定范圍內(nèi)搜索出與它匹配誤差最小的 塊。運(yùn)動(dòng)估計(jì)的運(yùn)算速度是影響編碼速度的關(guān)鍵因素,其通常占編碼器運(yùn)算速
率的60%~80%,運(yùn)動(dòng)估計(jì)的精度會對碼流產(chǎn)生很大的影響。
對于搜索方法,目前采用的有全搜索方法和快速搜索方法,全搜索方法精 度很高,但是由于其要求對搜索窗內(nèi)的所有點(diǎn)進(jìn)行匹配,運(yùn)算量巨大,不能滿 足實(shí)時(shí)編碼的要求,而且資源消耗和功耗非常大;快速搜索方法事實(shí)上是以犧 牲搜索的精確度為代價(jià)來減少運(yùn)算量的,對于圖像質(zhì)量要求較高的應(yīng)用并不適 用。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是提供一種運(yùn)動(dòng)估計(jì)方法,結(jié)合運(yùn)動(dòng)估計(jì)的統(tǒng)計(jì)特 征實(shí)現(xiàn)搜索點(diǎn)數(shù)的減少;同時(shí)考慮運(yùn)動(dòng)估計(jì)中的數(shù)據(jù)復(fù)用,提高數(shù)據(jù)的重用性。 為了解決上述技術(shù)問題,本發(fā)明采用了如下技術(shù)手段 一種運(yùn)動(dòng)估計(jì)方法, 所述方法是先將當(dāng)前編碼幀劃分為互不重疊的、固定大小的塊,然后針對每個(gè) 要被編碼的當(dāng)前塊,在參考幀的一搜索區(qū)域內(nèi)搜索出與當(dāng)前塊匹配誤差最小的 塊,即最佳匹配塊,最后才艮據(jù)最佳匹配塊所在點(diǎn),即最佳匹配點(diǎn)的位置,輸出 最佳匹配塊與當(dāng)前塊的相對位移,即運(yùn)動(dòng)矢量,其特征在于,所述的搜索過程 是這樣實(shí)現(xiàn)的
4步驟l、根據(jù)最佳匹配點(diǎn)出現(xiàn)的概率,在搜索范圍內(nèi),將圍繞搜索區(qū)域中心
的一子區(qū)域定為中央全搜索區(qū);在中央全搜索區(qū)外,將最佳匹配點(diǎn)出現(xiàn)概率較 高的搜索點(diǎn)定為搜索節(jié)點(diǎn);
步驟2、確定兩個(gè)搜索初始點(diǎn),從兩個(gè)搜索初始點(diǎn)并行出發(fā)開始一級搜索, 兩路同時(shí)沿著搜索節(jié)點(diǎn)反向逐點(diǎn)移動(dòng)搜索,每移動(dòng)一個(gè)搜索點(diǎn),計(jì)算一次宏塊 的累計(jì)絕對值差SAD,保存最小的SAD值及其相應(yīng)的點(diǎn)坐標(biāo)值;
步驟2.1、若當(dāng)前搜索點(diǎn)為搜索節(jié)點(diǎn),需進(jìn)一步對以搜索節(jié)點(diǎn)為中心的3x3 范圍內(nèi)除搜索節(jié)點(diǎn)以外的8個(gè)點(diǎn)進(jìn)行二級搜索,并計(jì)算各個(gè)點(diǎn)的累計(jì)絕對值差 SAD,保存最小的SAD值及其相應(yīng)的點(diǎn)坐標(biāo)值;
步驟2.2、當(dāng)前:^臾索節(jié)點(diǎn)的二級搜索結(jié)束后,繼續(xù)向下一搜索節(jié)點(diǎn)進(jìn)行一級 搜索;
步驟2.3、循環(huán)執(zhí)行步驟2.1-2.2,直至當(dāng)前搜索點(diǎn)進(jìn)入中央全搜索區(qū); 步驟3、在中央全搜索區(qū),逐點(diǎn)搜索該區(qū)域內(nèi)的所有點(diǎn),直到當(dāng)前搜索點(diǎn)為
中央全搜索區(qū)中心,停止搜索;
步驟4、在兩路并行搜索完成后,比較各自存儲的最小SAD值,取兩者中
較小值,保存此較小值所對應(yīng)的坐標(biāo)為最佳匹配塊所在點(diǎn)的坐標(biāo)。 進(jìn)一步的,所述的兩個(gè)搜索初始點(diǎn)關(guān)于中央全搜索區(qū)的中心對稱。 進(jìn)一步的,所述的兩個(gè)搜索初始點(diǎn)設(shè)置在搜索區(qū)域兩側(cè)的中心位置。 在所述的一級;t叟索中,最相鄰的兩個(gè)搜索節(jié)點(diǎn),如果位于同一水平方向上,
則搜索路徑為經(jīng)過最短距離的水平向移動(dòng)搜索;如果位于同一豎直方向上,則
搜索路徑為經(jīng)過最短距離的豎直向移動(dòng)搜索;如果既不是同一水平方向,也不
是同一豎直方向,則每步搜索僅移動(dòng)豎直或水平方向上一個(gè)搜索點(diǎn)的距離。 所述的二級搜索的路徑由搜索節(jié)點(diǎn)向外逆時(shí)針逐點(diǎn)移動(dòng)。 所述步驟2.2中,當(dāng)二級搜索結(jié)束時(shí)所在的點(diǎn)并非是移動(dòng)向下一個(gè)搜索節(jié)點(diǎn)
距離最近的點(diǎn),即出口點(diǎn)時(shí),那么首先移動(dòng)到出口點(diǎn),再從出口點(diǎn)繼續(xù)向下一
個(gè)搜索節(jié)點(diǎn)移動(dòng)。
所述的中央全搜索區(qū)的搜索路徑呈"S"形。
由于采用了以上的運(yùn)動(dòng)估計(jì)方法,與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn)(一)結(jié) 合運(yùn)動(dòng)估計(jì)的統(tǒng)計(jì)特征,在中央?yún)^(qū)域進(jìn)行全搜索,此外通過搜索高概率的搜索
5節(jié)點(diǎn),減少了搜索點(diǎn)數(shù),減少了計(jì)算資源的消耗,降低了功耗;而中央?yún)^(qū)域的 全搜索以及搜索節(jié)點(diǎn)的二級搜索,卻又保證了運(yùn)動(dòng)估計(jì)的質(zhì)量;(二)由于搜索 逐點(diǎn)移動(dòng),在水平方向每移動(dòng)一點(diǎn),宏塊數(shù)據(jù)只更新最左或最右的一個(gè)像素列; 在豎直方向每移動(dòng)一點(diǎn),宏塊數(shù)據(jù)只更新最上或最下的一個(gè)像素列,這樣保證 了絕大多數(shù)數(shù)據(jù)可以被復(fù)用,提高了數(shù)據(jù)的重用性,節(jié)省了時(shí)鐘周期,可以更 好的滿足編碼的實(shí)時(shí)性要求。
本發(fā)明的運(yùn)動(dòng)估計(jì)方法由以下的實(shí)施例及附圖詳細(xì)給出。
圖1為本發(fā)明實(shí)施例的搜索路徑示意圖2為本發(fā)明實(shí)施例的中央全搜索區(qū)域的搜索路徑示意圖3為本發(fā)明實(shí)施例中二級搜索向一級搜索移動(dòng)的狀態(tài)控制示意圖4為本發(fā)明實(shí)施例中二級搜索的路徑示意圖5為本發(fā)明實(shí)施例中宏塊向上移動(dòng)一個(gè)搜索點(diǎn)后的數(shù)據(jù)更新示意圖。
具體實(shí)施例方式
以下將對本發(fā)明的運(yùn)動(dòng)估計(jì)方法作進(jìn)一步的詳細(xì)描述。
本實(shí)施例一種^L頻編碼運(yùn)動(dòng)估計(jì)方法,所迷方法將當(dāng)前編碼幀劃分為互不 重疊的、大小為64x64的塊,然后針對每個(gè)要被編碼的塊,在參考幀的一定范 圍內(nèi)(搜索區(qū)域)搜索出與它匹配誤差最小的塊,即最佳匹配塊,最后根據(jù)最 佳匹配塊所在點(diǎn)(即最佳匹配點(diǎn))的位置,輸出最佳匹配塊與當(dāng)前編碼幀中的 當(dāng)前塊的相對位移,即運(yùn)動(dòng)矢量,所述的搜索過程是這樣實(shí)現(xiàn)的
步驟l、根據(jù)最佳匹配點(diǎn)出現(xiàn)概率,在搜索范圍內(nèi),將圍繞搜索區(qū)域中心一 定大小的范圍定為中央全搜索區(qū),該中央全搜索區(qū)大小的選擇既要保證一定的 運(yùn)動(dòng)估計(jì)質(zhì)量,又要避免消耗過多的運(yùn)算資源,因此,需要根據(jù)宏塊的大小選 取一個(gè)適中的數(shù)值,本實(shí)施例中,宏塊的大小為64x64,中央全搜索區(qū)的大小設(shè) 定為5x5,在其他實(shí)施例中可根據(jù)圖像質(zhì)量要求選取合適的范圍,如3x3或者 7x7;在中央全搜索區(qū)夕卜,將最佳匹配點(diǎn)出現(xiàn)概率較高的搜索點(diǎn)確定為搜索節(jié)點(diǎn), 如圖l中空心圓所示,本實(shí)施例中,共確定了 IO個(gè)搜索節(jié)點(diǎn),可以分成5對關(guān)于中央全搜索區(qū)的中心(即搜索終點(diǎn))對稱的搜索節(jié)點(diǎn);
步驟2、確定搜索初始點(diǎn)1和搜索初始點(diǎn)2 (如圖1中實(shí)心圓所示),這兩 個(gè)搜索初始點(diǎn)也關(guān)于中央全搜索區(qū)的中心對稱,于本實(shí)施例中,該兩個(gè)搜索初 始點(diǎn)設(shè)置在搜索區(qū)域兩側(cè)的中心位置。從兩個(gè)搜索初始點(diǎn)并行出發(fā)開始一級搜 索,兩路同時(shí)沿著搜索節(jié)點(diǎn)反向逐點(diǎn)移動(dòng)搜索,搜索路徑如圖1粗線箭頭指示 方向;每移動(dòng)一個(gè)搜索點(diǎn),計(jì)算一次宏塊的累計(jì)絕對值差SAD,保存最小的SAD 值及其對應(yīng)的坐標(biāo)值;
步驟2.1、若當(dāng)前搜索點(diǎn)移動(dòng)到步驟1中確定的搜索節(jié)點(diǎn)時(shí),需進(jìn)一步對以 該搜索節(jié)點(diǎn)為中心的3x3范圍內(nèi)的,除該:lt索節(jié)點(diǎn)以外的8個(gè)點(diǎn)進(jìn)行二級搜索, 并計(jì)算各個(gè)點(diǎn)的累計(jì)絕對值差SAD,保存最小的SAD值及其相應(yīng)的點(diǎn)坐標(biāo)值;
步驟2.2、圍繞當(dāng)前搜索節(jié)點(diǎn)的二級搜索結(jié)束后,繼續(xù)沿粗線箭頭指示的方 向進(jìn)行下一搜索節(jié)點(diǎn)的 一級搜索;
步驟2.3、循環(huán)執(zhí)fl"步驟2.1 2.2,直至當(dāng)前搜索點(diǎn)進(jìn)入中央全搜索區(qū);
步驟3、在中央全搜索區(qū)內(nèi),逐點(diǎn)搜索該區(qū)域內(nèi)的所有點(diǎn),直到當(dāng)前搜索點(diǎn) 為中央全搜索區(qū)的中心,停止搜索;中央全搜索區(qū)的搜索路徑呈"S,,形,如圖2 所示。
步驟4、在兩路并行搜索完成后,比較各自存儲的最小SAD值,取兩者中 較小值,保存此較小值對應(yīng)的坐標(biāo)為最佳匹配塊所在點(diǎn)的坐標(biāo)。
在所述的一級搜索中,最相鄰的兩個(gè)搜索節(jié)點(diǎn),如果位于同一水平方向上, 則搜索路徑為經(jīng)過最短距離的水平向移動(dòng)搜索;如果位于同一豎直方向上,則 搜索路徑為經(jīng)過最短距離的豎直向移動(dòng)搜索;如果既不是同一水平方向,也不 是同一豎直方向,則每步搜索僅移動(dòng)豎直或水平方向上一個(gè)搜索點(diǎn)的距離,在 本實(shí)施例中,可以采用水平方向上連續(xù)移動(dòng)四個(gè)點(diǎn),然后再在豎直方向移動(dòng)一 個(gè)點(diǎn)的方式實(shí)現(xiàn)跨行跨列移動(dòng),如圖1所示。
以上步驟2.2中,當(dāng)二級搜索結(jié)束時(shí)所在的點(diǎn)并非出口點(diǎn)(即移動(dòng)向下一個(gè) 搜索節(jié)點(diǎn)距離最近的點(diǎn))時(shí),那么首先移動(dòng)到出口點(diǎn),再從出口點(diǎn)繼續(xù)向下一 搜索節(jié)點(diǎn)移動(dòng)。該移動(dòng)方式通過狀態(tài)機(jī)控制實(shí)現(xiàn),控制機(jī)制如圖3所示,設(shè)當(dāng) 前搜索節(jié)點(diǎn)二級搜索完成位置為點(diǎn)Do(xo, yo),當(dāng)前搜索節(jié)點(diǎn)的出口點(diǎn)為點(diǎn)Dd (xd, yd),當(dāng)前搜索點(diǎn)為Dcur (xcur, ycur), ()為取值正負(fù)的函數(shù),則:
7J^尸^"r+^gW( JV"W ) 如果當(dāng)前點(diǎn)Dw不是出口點(diǎn)Dd,則循環(huán)運(yùn)算以上等式,直至當(dāng)前點(diǎn)在出口點(diǎn)。
所述的二級搜索的路徑由搜索節(jié)點(diǎn)向外逆時(shí)針逐點(diǎn)移動(dòng),如圖4所示。 本實(shí)施例在搜索區(qū)域內(nèi),.把中間高概率的搜索點(diǎn)5x5范圍定為全搜索區(qū)域,
全搜索區(qū)域之外的搜索點(diǎn)又有選擇的分成為一級搜索點(diǎn)和二級搜索點(diǎn),這樣既 保證了運(yùn)動(dòng)估計(jì)質(zhì)量,又減少了計(jì)算資源的消耗及功耗;另外,由于搜索在一 級搜索和二級搜索過程中都采取水平或豎直方向的逐點(diǎn)移動(dòng),在水平方向每移
動(dòng)一點(diǎn),宏塊數(shù)據(jù)只更新最左或最右的一個(gè)像素列;在豎直方向每移動(dòng)一點(diǎn), 宏塊數(shù)據(jù)只更新最上或最下的一個(gè)像素列,如圖5所示,由此保證了絕大多數(shù) 數(shù)據(jù)可以被復(fù)用,提高了數(shù)據(jù)的重用性,更好的滿足了編碼的實(shí)時(shí)性要求。
權(quán)利要求
1、一種運(yùn)動(dòng)估計(jì)方法,所述方法是先將當(dāng)前編碼幀劃分為互不重疊的、固定大小的塊,然后針對每個(gè)要被編碼的當(dāng)前塊,在參考幀的一搜索區(qū)域內(nèi)搜索出與當(dāng)前塊匹配誤差最小的塊,即最佳匹配塊,最后根據(jù)最佳匹配塊所在點(diǎn),即最佳匹配點(diǎn)的位置,輸出最佳匹配塊與當(dāng)前塊的相對位移,即運(yùn)動(dòng)矢量,其特征在于,所述的搜索過程是這樣實(shí)現(xiàn)的步驟1、根據(jù)最佳匹配點(diǎn)出現(xiàn)的概率,在搜索范圍內(nèi),將圍繞搜索區(qū)域中心的一子區(qū)域定為中央全搜索區(qū);在中央全搜索區(qū)外,將最佳匹配點(diǎn)出現(xiàn)概率較高的搜索點(diǎn)定為搜索節(jié)點(diǎn);步驟2、確定兩個(gè)搜索初始點(diǎn),從兩個(gè)搜索初始點(diǎn)并行出發(fā)開始一級搜索,兩路同時(shí)沿著搜索節(jié)點(diǎn)反向逐點(diǎn)移動(dòng)搜索,每移動(dòng)一個(gè)搜索點(diǎn),計(jì)算一次宏塊的累計(jì)絕對值差SAD,保存最小的SAD值及其相應(yīng)的點(diǎn)坐標(biāo)值;步驟2. 1、若當(dāng)前搜索點(diǎn)為搜索節(jié)點(diǎn),需進(jìn)一步對以搜索節(jié)點(diǎn)為中心的3×3范圍內(nèi)除搜索節(jié)點(diǎn)以外的8個(gè)點(diǎn)進(jìn)行二級搜索,并計(jì)算各個(gè)點(diǎn)的累計(jì)絕對值差SAD,保存最小的SAD值及其相應(yīng)的點(diǎn)坐標(biāo)值;步驟2. 2、當(dāng)前搜索節(jié)點(diǎn)的二級搜索結(jié)束后,繼續(xù)向下一搜索節(jié)點(diǎn)進(jìn)行一級搜索;步驟2. 3、循環(huán)執(zhí)行步驟2.1~2.2,直至當(dāng)前搜索點(diǎn)進(jìn)入中央全搜索區(qū);步驟3、在中央全搜索區(qū),逐點(diǎn)搜索該區(qū)域內(nèi)的所有點(diǎn),直到當(dāng)前搜索點(diǎn)為中央全搜索區(qū)中心,停止搜索;步驟4、在兩路并行搜索完成后,比較各自存儲的最小SAD值,取兩者中較小值,保存此較小值所對應(yīng)的坐標(biāo)為最佳匹配塊所在點(diǎn)的坐標(biāo)。
2、 如權(quán)利要求1所述的運(yùn)動(dòng)估計(jì)方法,其特征在于,所述的兩個(gè)搜索初始 點(diǎn)關(guān)于中央全搜索區(qū)的中心對稱。
3、 如權(quán)利要求2所述的運(yùn)動(dòng)估計(jì)方法,其特征在于,所述的兩個(gè)搜索初始 點(diǎn)設(shè)置在搜索區(qū)域兩側(cè)的中心位置。
4、 如權(quán)利要求1所述的運(yùn)動(dòng)估計(jì)方法,其特征在于,在所述的一級搜索中, 最相鄰的兩個(gè)搜索節(jié)點(diǎn),如果位于同一水平方向上,則搜索路徑為經(jīng)過最短距離的水平向移動(dòng)搜索;如果位于同一豎直方向上,則搜索路徑為經(jīng)過最短距離 的豎直向移動(dòng)搜索;如果既不是同一水平方向,也不是同一豎直方向,則每步 搜索僅移動(dòng)豎直或水平方向上一個(gè)搜索點(diǎn)的距離。
5、 如權(quán)利要求1所述的運(yùn)動(dòng)估計(jì)方法,其特征在于,所述的二級搜索的路 徑由搜索節(jié)點(diǎn)向外逆時(shí)針逐點(diǎn)移動(dòng)。
6、 如權(quán)利要求1或5所述的運(yùn)動(dòng)估計(jì)方法,其特征在于,所述步驟2.2中, 當(dāng)二級搜索結(jié)束時(shí)所在的點(diǎn)并非是移動(dòng)向下一個(gè)搜索節(jié)點(diǎn)距離最近的點(diǎn),即出 口點(diǎn)時(shí),那么首先移動(dòng)到出口點(diǎn),再從出口點(diǎn)繼續(xù)向下一個(gè)搜索節(jié)點(diǎn)移動(dòng)。
7、 如權(quán)利要求1所述的運(yùn)動(dòng)估計(jì)方法,其特征在于,所述的中央全搜索區(qū) 的搜索路徑呈"S"形。
全文摘要
本發(fā)明提供了一種運(yùn)動(dòng)估計(jì)方法,所述方法的搜索過程采用局部全搜索和選擇性搜索相結(jié)合的方法,在選擇性搜索的同時(shí)在搜索節(jié)點(diǎn)處展開二級搜索,由此,不僅減少了搜索點(diǎn),而且還保證了運(yùn)動(dòng)估計(jì)質(zhì)量;由于本發(fā)明的搜索過程為逐點(diǎn)移動(dòng),而且每次移動(dòng)只在水平或豎直方向移動(dòng)一個(gè)點(diǎn)的距離,因此可以最大程度的實(shí)現(xiàn)數(shù)據(jù)的復(fù)用,降低資源的消耗。
文檔編號H04N7/32GK101448161SQ20081020496
公開日2009年6月3日 申請日期2008年12月30日 優(yōu)先權(quán)日2008年12月30日
發(fā)明者濤 嚴(yán), 滕國偉, 賀 王, 王國中 申請人:上海廣電(集團(tuán))有限公司中央研究院