一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法
【專利摘要】本發(fā)明公開一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,包括步驟:將比較幀和參考幀分成至少兩個(gè)圖層,任意兩個(gè)圖層之間的分辨率不同,比較幀和參考幀的圖層一一對應(yīng);選擇比較幀中分辨率較低的圖層跟參考幀同一圖層進(jìn)行對比,得到預(yù)測結(jié)果;比較幀中分辨率較高的圖層根據(jù)預(yù)測結(jié)果進(jìn)行運(yùn)動(dòng)估計(jì)。本發(fā)明先預(yù)測分辨率較低的圖層,大幅減少了運(yùn)算量,而基于較低圖層的運(yùn)動(dòng)估計(jì)來預(yù)測其他圖層的計(jì)算量在整個(gè)編碼過程中占比很小,因此相比直接預(yù)測最高分辨率的圖層,本發(fā)明能顯著降低計(jì)算量。
【專利說明】一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及影像編碼領(lǐng)域,更具體的說,涉及一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法。
【背景技術(shù)】
[0002]現(xiàn)有的視頻編碼在對幀圖像進(jìn)行編碼時(shí),會(huì)設(shè)立參考幀和比較幀,參考幀進(jìn)行幀內(nèi)預(yù)測,而比較幀依據(jù)參考幀進(jìn)行預(yù)測,為了減少預(yù)測的技術(shù)量,比較幀通常采用運(yùn)動(dòng)估計(jì)的方式來預(yù)測。具體來說,將比較幀劃分成多個(gè)宏塊,每個(gè)宏塊跟參考幀對應(yīng)位置的宏塊比較,然后圍繞該宏塊周邊進(jìn)行搜索,得到運(yùn)動(dòng)矢量,由于宏塊有多種劃分方式,如4X4、8X8等,對于H265標(biāo)準(zhǔn)來說,最多可支持64乂64,運(yùn)算量是!1264的5倍以上。現(xiàn)有技術(shù)為了找出最優(yōu)的宏塊進(jìn)行運(yùn)動(dòng)估計(jì),需要對每一種宏塊進(jìn)行計(jì)算,即同一像素點(diǎn)需要進(jìn)行多次的重復(fù)運(yùn)算,計(jì)算量大,不利于提高運(yùn)算速度。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是提供一種降低計(jì)算量的幀圖像運(yùn)動(dòng)估計(jì)的搜索算法。
[0004]本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:
[0005]一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,包括步驟:
[0006]將比較幀和參考幀分成至少兩個(gè)圖層,任意兩個(gè)圖層之間的分辨率不同,比較幀和參考幀的圖層對應(yīng);
[0007]選擇比較幀中分辨率較低的圖層跟參考幀同一圖層進(jìn)行對比,得到預(yù)測結(jié)果;
[0008]比較幀中分辨率較高的圖層根據(jù)預(yù)測結(jié)果進(jìn)行運(yùn)動(dòng)估計(jì)。
[0009]進(jìn)一步的,設(shè)定基礎(chǔ)宏塊,計(jì)算該基礎(chǔ)宏塊的殘差值計(jì)算分辨率最低的圖層的殘差值;然后以基礎(chǔ)宏塊為基準(zhǔn),計(jì)算其他更大宏塊的殘差值,比較不同宏塊的殘差值,得到所述預(yù)測結(jié)果。本技術(shù)方案大量節(jié)約了計(jì)算量,每個(gè)像素點(diǎn)只計(jì)算一次,就能得到所有模塊的值。因?yàn)槭侨蛩阉鳎瑳]有死角,所以搜索更加精確。
[0010]進(jìn)一步的,所述預(yù)測結(jié)果包括最優(yōu)宏塊及其對應(yīng)的運(yùn)動(dòng)矢量。
[0011]進(jìn)一步的,所述預(yù)測結(jié)果還包括次優(yōu)宏塊及其對應(yīng)的運(yùn)動(dòng)矢量。
[0012]進(jìn)一步的,所述運(yùn)動(dòng)矢量包括最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量中的任意一個(gè)或兩個(gè)。
[0013]進(jìn)一步的,對比較幀中下一個(gè)分辨率較高的圖層的預(yù)測結(jié)果基于上一層分辨率較低圖層的預(yù)測結(jié)果,進(jìn)行有限位置和有限范圍搜索,得到該圖層的預(yù)測結(jié)果;
[0014]依次類推,直至計(jì)算出比較幀中分辨率最高圖層的預(yù)測結(jié)果;
[0015]將分辨率最高圖層的最優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量,以及次優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量進(jìn)行高斯函數(shù)擬合,得到1/N像素點(diǎn)的殘差值,根據(jù)該殘差值完成比較幀的運(yùn)動(dòng)估計(jì);其中N為大于2的整數(shù)。本技術(shù)方案中,圍繞每個(gè)宏塊都進(jìn)行有限位置和有限范圍搜索,即采用全域搜索,沒有死角,所以搜索更加精確。本技術(shù)方案采用擬合類高斯函數(shù)的方法去估計(jì)1/N (比如1/2,1/4)精度的運(yùn)動(dòng)矢量,這樣的算法的好處:1)節(jié)約計(jì)算量,通過利用現(xiàn)有預(yù)測模式的殘差值,輸入類高斯函數(shù),就能迅速求取1/N像素精度的值;2)此算法符合圖像像素值分布特征,所有的圖像成像特征都符合高斯分布,所以此算法精度很高,實(shí)際試驗(yàn)結(jié)果也證明此算法和一般搜索算法,PSNR值只相差0.1db0
[0016]進(jìn)一步的,除分辨率最低的圖層外,每一圖層的預(yù)測基于分辨率最接近圖層的預(yù)測結(jié)果。
[0017]進(jìn)一步的,選擇比較幀中分辨率最低的圖層跟參考幀同一圖層進(jìn)行對比,得到預(yù)測結(jié)果;基于該圖層得到的預(yù)測結(jié)果,直接對最高分辨率的圖層進(jìn)行運(yùn)動(dòng)估計(jì)。
[0018]進(jìn)一步的,利用可編程并行處理器對每個(gè)圖層進(jìn)行預(yù)測,然后將分辨率最高的圖層的運(yùn)動(dòng)估計(jì)的結(jié)果反饋回CPU進(jìn)行編碼處理。
[0019]進(jìn)一步的,所述預(yù)測結(jié)果包括最優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量,還包括次優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量;
[0020]將圖層分成三層,以4X4為基礎(chǔ)宏塊,計(jì)算分辨率最低的第三圖層的殘差值;
[0021]比較不同宏塊的殘差值,選擇殘差值最小的宏塊作為最優(yōu)宏塊,選擇次小的宏塊作為次優(yōu)宏塊;
[0022]分別圍繞第三圖層的最優(yōu)宏塊和次優(yōu)宏塊,進(jìn)行有限位置和有限范圍搜索,得到第二圖層的預(yù)測結(jié)果;
[0023]分別圍繞第二圖層的最優(yōu)宏塊和次優(yōu)宏塊,進(jìn)行有限位置和有限范圍搜索,得到分辨率最高的第一圖層的預(yù)測結(jié)果;
[0024]將第一圖層的最優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量,以及次優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量進(jìn)行高斯函數(shù)擬合,得到1/N像素點(diǎn)的殘差值,根據(jù)該殘差值完成比較幀的運(yùn)動(dòng)估計(jì);其中N為大于2的整數(shù);
[0025]每一圖層的預(yù)測和運(yùn)動(dòng)估計(jì)采用GPU進(jìn)行運(yùn)算,然后將分辨率最高的圖層的運(yùn)動(dòng)估計(jì)的結(jié)果反饋回CPU進(jìn)行編碼處理。
[0026]本發(fā)明由于將圖像、視頻數(shù)據(jù)按不同分辨率進(jìn)行分層處理,形成一個(gè)圖像金字塔結(jié)構(gòu)。預(yù)測時(shí),先對分辨率較低的圖層進(jìn)行運(yùn)動(dòng)估計(jì),然后根據(jù)預(yù)測結(jié)果來預(yù)測分辨率較高的圖層,最終可以得到分辨率最高的圖層預(yù)測結(jié)果。由于先預(yù)測分辨率較低的圖層,大幅減少了運(yùn)算量,而基于較低圖層的運(yùn)動(dòng)估計(jì)來預(yù)測其他圖層的計(jì)算量在整個(gè)編碼過程中占比很小,因此相比直接預(yù)測最高分辨率的圖層,本發(fā)明能顯著降低計(jì)算量。
【專利附圖】
【附圖說明】
[0027]圖1是本發(fā)明幀圖像運(yùn)動(dòng)估計(jì)的搜索算法的方法示意圖;
[0028]圖2是本發(fā)明金字塔建模原理示意圖;
[0029]圖3是本發(fā)明實(shí)施例基于CPU+GPU架構(gòu)的幀圖像運(yùn)動(dòng)估計(jì)的搜索算法的方法示意圖。
【具體實(shí)施方式】
[0030]如圖1所示,本發(fā)明公開一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,包括步驟:
[0031]將比較幀和參考幀分成至少兩個(gè)圖層,任意兩個(gè)圖層之間的分辨率不同,比較幀和參考巾貞的圖層 對應(yīng);
[0032]選擇比較幀中分辨率較低的圖層跟參考幀同一圖層進(jìn)行對比,得到預(yù)測結(jié)果;
[0033]比較幀中分辨率較高的圖層根據(jù)預(yù)測結(jié)果進(jìn)行運(yùn)動(dòng)估計(jì)。
[0034]本發(fā)明由于將圖像、視頻數(shù)據(jù)按不同分辨率進(jìn)行分層處理,形成一個(gè)圖像金字塔結(jié)構(gòu)。
[0035]一幅圖像的金字塔是一系列以金字塔形狀排列的分辨率逐步降低的圖像集合。金字塔的底部是待處理圖像的高分辨率表示,而頂部是低分辨率的近似。當(dāng)向金字塔的上層移動(dòng)時(shí),尺寸和分辨率就降低。因?yàn)榛A(chǔ)級(jí)J的尺寸是2~J*2~J或N*N (J=log2N),所以中間級(jí)j的尺寸是2~j*2~j,其中0〈=j〈=J。完整的金字塔由J+1個(gè)分辨率級(jí)組成,由2~J*2~J到2~0*2~0,但大部分金字塔只有P+1級(jí),其中J=J-P,...,了-2,了-1,了,且1〈=卩〈=了。也就是說通常限制它們只使用P級(jí)來減少原始圖像近似值的尺寸。例如,一幅512*512圖像的1*1或單像素近似值將非常小。
[0036]圖2顯示了一個(gè)建立圖像金字塔的簡單系統(tǒng)。j_l級(jí)的近似輸出用來建立近似值金字塔,包括原始圖像的一個(gè)或多個(gè)近似值。作為金字塔的原始圖像和它的P級(jí)減少的分辨率近似都能直接獲取并調(diào)整。j級(jí)的預(yù)測殘差輸出用于建立預(yù)測殘差金字塔。這些金字塔包括了原始圖像的J-P級(jí)低分辨率的近似信息,以及建立P級(jí)較高分辨率的近似信息。j級(jí)的信息在相應(yīng)近似金字塔的j級(jí)近似與基于j-Ι級(jí)預(yù)測殘差得到的近似估計(jì)之間是不同的。對這些差異進(jìn)行編碼(用于存儲(chǔ)或傳輸)將比對近似值進(jìn)行編碼有效得多。
[0037]預(yù)測時(shí),先對分辨率較低的圖層進(jìn)行運(yùn)動(dòng)估計(jì),然后根據(jù)預(yù)測結(jié)果來預(yù)測分辨率較高的圖層,最終可以得到分辨率最高的圖層預(yù)測結(jié)果。由于先預(yù)測分辨率較低的圖層,大幅減少了運(yùn)算量,而基于較低圖層的運(yùn)動(dòng)估計(jì)來預(yù)測其他圖層的計(jì)算量在整個(gè)編碼過程中占比很小,因此相比直接預(yù)測最高分辨率的圖層,本發(fā)明能顯著降低計(jì)算量。
[0038]下面結(jié)合附圖和較佳的實(shí)施例對本發(fā)明作進(jìn)一步說明。
[0039]本實(shí)施方式公開一種基于CPU+GPU架構(gòu)的硬件平臺(tái)實(shí)現(xiàn)幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,利用GPU對每個(gè)圖層進(jìn)行幀內(nèi)預(yù)測,然后將預(yù)測結(jié)果反饋回CPU進(jìn)行編碼處理。采用CPU+GPU平臺(tái),充分發(fā)揮各個(gè)平臺(tái)的優(yōu)點(diǎn),讓CPU和GPU協(xié)作處理,提高了平臺(tái)的運(yùn)算效率。當(dāng)然,GPU也可以換成FPGA等其他可編程并行處理器。
[0040]如圖3所示,本實(shí)施例以三個(gè)圖層為例,公開幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,包括步驟:
[0041]S1、將比較幀和參考幀分成三個(gè)圖層,分辨率從低到高分別是第三圖層、第二圖層和第一圖層,比較幀和參考幀的圖層一一對應(yīng)。
[0042]S2、以4X4為基礎(chǔ)宏塊,計(jì)算第三圖層的殘差值,然后基于4X4的基礎(chǔ)模塊進(jìn)一步預(yù)測其他更大宏塊(如8 X 8、16 X 16等)的殘差值。本步驟中,每個(gè)像素的數(shù)據(jù)僅在基礎(chǔ)模塊的時(shí)候需要載入計(jì)算,后面更大的宏塊只需要根據(jù)其他小的宏塊進(jìn)行運(yùn)算,每個(gè)像素點(diǎn)只計(jì)算一次,就能得到所有模塊的值,大量節(jié)約了計(jì)算量;再者,由于全域搜索,沒有死角,所以搜索更加精確。
[0043]S3、比較不同宏塊的殘差值,將預(yù)測結(jié)果反饋回第二圖層;所述預(yù)測結(jié)果包括最優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量,還包括次優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量;其中殘差值最小的宏塊作為最優(yōu)宏塊,次小的宏塊作為次優(yōu)宏塊。[0044]S4、分別圍繞第三圖層的最優(yōu)宏塊和次優(yōu)宏塊,進(jìn)行有限位置和有限范圍搜索,得到第二圖層的預(yù)測結(jié)果。
[0045]S5、分別圍繞第二圖層的最優(yōu)宏塊和次優(yōu)宏塊,進(jìn)行有限位置和有限范圍搜索,得到分辨率最高的第一圖層的預(yù)測結(jié)果。
[0046]S6、將第一圖層的最優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量,以及次優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量進(jìn)行高斯函數(shù)擬合,得到1/N像素點(diǎn)的殘差值,根據(jù)該殘差值完成比較幀的運(yùn)動(dòng)估計(jì);其中N為大于2的整數(shù)。圍繞每個(gè)宏塊都進(jìn)行有限位置和有限范圍搜索,即采用全域搜索,沒有死角,所以搜索更加精確。本技術(shù)方案采用擬合類高斯函數(shù)的方法去估計(jì)1/N (比如1/2,1/4)精度的運(yùn)動(dòng)矢量,這樣的算法的好處:I)節(jié)約計(jì)算量,通過利用現(xiàn)有預(yù)測模式的殘差值,輸入類高斯函數(shù),就能迅速求取1/N像素精度的值;2)此算法符合圖像像素值分布特征,所有的圖像成像特征都符合高斯分布,所以此算法精度很高,實(shí)際試驗(yàn)結(jié)果也證明此算法和一般搜索算法,PSNR值只相差0.ldb。
[0047]S7、每一圖層的預(yù)測和運(yùn)動(dòng)估計(jì)采用GPU進(jìn)行運(yùn)算,然后將分辨率最高的圖層的運(yùn)動(dòng)估計(jì)的結(jié)果反饋回CPU進(jìn)行編碼處理。
[0048]下面詳細(xì)介紹一下高斯擬合的過程。
[0049]高斯函數(shù)的形式為:
[0050]
【權(quán)利要求】
1.一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,包括步驟: 將比較幀和參考幀分成至少兩個(gè)圖層,任意兩個(gè)圖層之間的分辨率不同,比較幀和參考中貞的圖層對應(yīng); 選擇比較幀中分辨率較低的圖層跟參考幀同一圖層進(jìn)行對比,得到預(yù)測結(jié)果; 比較幀中分辨率較高的圖層根據(jù)預(yù)測結(jié)果進(jìn)行運(yùn)動(dòng)估計(jì)。
2.如權(quán)利要求1所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,設(shè)定基礎(chǔ)宏塊,計(jì)算該基礎(chǔ)宏塊的殘差值;然后以基礎(chǔ)宏塊為基準(zhǔn),計(jì)算其他更大宏塊的殘差值,比較不同宏塊的殘差值,得到所述預(yù)測結(jié)果。
3.如權(quán)利要求2所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,所述預(yù)測結(jié)果包括最優(yōu)宏塊及其對應(yīng)的運(yùn)動(dòng)矢量。
4.如權(quán)利要求3所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,所述預(yù)測結(jié)果還包括次優(yōu)宏塊及其對應(yīng)的運(yùn)動(dòng)矢量。
5.如權(quán)利要求4所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,所述運(yùn)動(dòng)矢量包括最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量中的任意一個(gè)或兩個(gè)。
6.如權(quán)利要求5所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,對比較幀中下一個(gè)分辨率較高的圖層的預(yù)測結(jié)果基于上一層分辨率較低圖層的預(yù)測結(jié)果,進(jìn)行有限位置和有限范圍搜索,得到該圖層的預(yù)測結(jié)果; 依次類推,直至計(jì)算出比較幀中分辨率最高圖層的預(yù)測結(jié)果;· 將分辨率最高圖層的最優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量,以及次優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量進(jìn)行高斯函數(shù)擬合,得到1/N像素點(diǎn)的殘差值,根據(jù)該殘差值完成比較幀的運(yùn)動(dòng)估計(jì);其中N為大于2的整數(shù)。
7.如權(quán)利要求1所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,除分辨率最低的圖層外,每一圖層的預(yù)測基于分辨率最接近圖層的預(yù)測結(jié)果。
8.如權(quán)利要求1所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,選擇比較幀中分辨率最低的圖層跟參考幀同一圖層進(jìn)行對比,得到預(yù)測結(jié)果;基于該圖層得到的預(yù)測結(jié)果,直接對最高分辨率的圖層進(jìn)行運(yùn)動(dòng)估計(jì)。
9.如權(quán)利要求1所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,利用可編程并行處理器對每個(gè)圖層進(jìn)行預(yù)測,然后將分辨率最高的圖層的運(yùn)動(dòng)估計(jì)的結(jié)果反饋回CPU進(jìn)行編碼處理。
10.如權(quán)利要求1所述的一種幀圖像運(yùn)動(dòng)估計(jì)的搜索算法,其特征在于,所述預(yù)測結(jié)果包括最優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量,還包括次優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量; 將圖層分成三層,以4X4為基礎(chǔ)宏塊,計(jì)算分辨率最低的第三圖層的殘差值; 比較不同宏塊的殘差值,選擇殘差值最小的宏塊作為最優(yōu)宏塊,選擇次小的宏塊作為次優(yōu)宏塊; 分別圍繞第三圖層的最優(yōu)宏塊和次優(yōu)宏塊,進(jìn)行有限位置和有限范圍搜索,得到第二圖層的預(yù)測結(jié)果; 分別圍繞第二圖層的最優(yōu)宏塊和次優(yōu)宏塊,進(jìn)行有限位置和有限范圍搜索,得到分辨率最高的第一圖層的預(yù)測結(jié)果;將第一圖層的最優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量,以及次優(yōu)宏塊及其對應(yīng)的最優(yōu)運(yùn)動(dòng)矢量、次優(yōu)運(yùn)動(dòng)矢量進(jìn)行高斯函數(shù)擬合,得到1/N像素點(diǎn)的殘差值,根據(jù)該殘差值完成比較幀的運(yùn)動(dòng)估計(jì);其中N為大于2的整數(shù); 每一圖層的預(yù)測和運(yùn)動(dòng)估計(jì)采用GPU進(jìn)行運(yùn)算,然后將分辨率最高的圖層的運(yùn)動(dòng)估計(jì)的結(jié)果反饋回CPU進(jìn) 行編碼處理。
【文檔編號(hào)】H04N19/57GK103716639SQ201310728099
【公開日】2014年4月9日 申請日期:2013年12月25日 優(yōu)先權(quán)日:2013年12月25日
【發(fā)明者】隆剛, 金明, 史方 申請人:同觀科技(深圳)有限公司