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