專利名稱:一種運(yùn)動(dòng)估計(jì)中sad的并行實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字視頻編解碼技術(shù)領(lǐng)域,特別涉及一種運(yùn)動(dòng)估計(jì)中SAD的并 行實(shí)現(xiàn)方法。
背景技術(shù):
在現(xiàn)有的一見頻編碼方法中,大都采用以宏塊為單位的運(yùn)動(dòng)估計(jì)(Motion Estimation, ME)來實(shí)現(xiàn)幀間壓縮。ME的主要功能是對(duì)當(dāng)前幀圖像中的一個(gè) 被編碼像素塊,在參考幀圖像中的一個(gè)指定窗口中搜索與之相差最小的像素塊, 作為最佳匹配。運(yùn)動(dòng)估計(jì)中要得到兩個(gè)值 一個(gè)是被編碼的像素塊相對(duì)于參考 幀中最佳匹配像素塊的偏移,即運(yùn)動(dòng)矢量MV (Motion Vector);另一個(gè)是被編 碼像素塊與匹配像素塊的殘差絕對(duì)值之和SAD (Sum of Absolute Difference )。 這部分的計(jì)算占了整個(gè)編碼過程計(jì)算量的很大比重,因此,這部分硬件的執(zhí)行 效率直接關(guān)系到整個(gè)編碼芯片的性能。在現(xiàn)有的運(yùn)動(dòng)估計(jì)的硬件實(shí)現(xiàn)技術(shù)中,主要通過以下方法來實(shí)現(xiàn)實(shí)時(shí)編碼 通過使用多個(gè)計(jì)算SAD的處理單元PE (process element)(如圖1所示)來并行 處理,PE中每個(gè)計(jì)算單元(AD,如圖2所示)在時(shí)鐘上升沿到來時(shí),依次進(jìn)行 一次減法、取絕對(duì)值以及一次加法運(yùn)算,這個(gè)環(huán)節(jié)釆用單沿、串行的處理方法。 但是,這種方法減法單元和加法單元不能同時(shí)使用,也不能在同一時(shí)鐘周期內(nèi) 完成,并沒有因此達(dá)到很高的工作效率。這種方法在高分辨率的視頻和大搜索 范圍時(shí)會(huì)耗費(fèi)大量的硬件資源。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種運(yùn)動(dòng)估計(jì)中SAD的并行實(shí)現(xiàn)方法,即通過時(shí)鐘 雙沿觸發(fā),將加法與減法并行處理,并保證SAD在單周期內(nèi)進(jìn)行。所述方法能 在多路并行處理時(shí),減少運(yùn)動(dòng)估計(jì)硬件資源開銷50%;或者在單路處理時(shí)縮短處理周期50%,并能{呆^〖正高清晰一見頻的實(shí)時(shí)編碼。本發(fā)明的目的是這樣實(shí)現(xiàn)的 一種運(yùn)動(dòng)估計(jì)中SAD的并行實(shí)現(xiàn)方法,用于 視頻編碼幀間壓縮處理,所述方法采用具有數(shù)個(gè)計(jì)算單元AD的處理單元PE計(jì) 算SAD,所述每個(gè)計(jì)算單元AD計(jì)算一個(gè)當(dāng)前幀的像素塊與參考幀的像素塊中 的像素差絕對(duì)值,并計(jì)算每個(gè)像素的差絕對(duì)值之和SAD,所述方法在系統(tǒng)時(shí)鐘 的上升沿,將進(jìn)入處理單元PE的一組參考幀的像素塊REF0與當(dāng)前幀的編碼塊 進(jìn)行像素差絕對(duì)值SAD計(jì)算;在系統(tǒng)時(shí)鐘的下降沿,將進(jìn)入處理單元PE的另 一組參考幀的像素塊REF1與當(dāng)前幀的編碼塊進(jìn)行像素差絕對(duì)值SAD計(jì)算;參 考?jí)KREFO和REF1的輪流輸入通過控制模塊切換實(shí)現(xiàn)。進(jìn)一步地,所述的處理單元PE由8*8個(gè)計(jì)算單元AD組成。 本發(fā)明由于采用了上述的技術(shù)方案,相對(duì)于用兩個(gè)PE模塊來并行計(jì)算兩個(gè) 參考?jí)K的SAD,節(jié)約了一半的硬件資源;相對(duì)于用一個(gè)PE模塊串行來計(jì)算兩個(gè) 參考?jí)K的SAD,縮短了處理時(shí)間,特別是在對(duì)兩個(gè)參考?jí)K的有很多的相同的像 素點(diǎn),能大大提高參考數(shù)據(jù)的重用效率,減少對(duì)參考數(shù)據(jù)存儲(chǔ)器的訪問,同時(shí) 并沒有降低工作的最高頻率。
本發(fā)明的一種運(yùn)動(dòng)估計(jì)中SAD的并行實(shí)現(xiàn)方法由以下的實(shí)施例及附圖給出。圖1為本發(fā)明的處理單元中計(jì)算單元的功能示意圖; 圖2為本發(fā)明的差絕對(duì)值之和^1塊的功能示意圖; 圖3為本發(fā)明的實(shí)施例的時(shí)序關(guān)系示意圖。
具體實(shí)施方式
以下將結(jié)合附圖對(duì)本發(fā)明的一種運(yùn)動(dòng)估計(jì)中SAD的并行實(shí)現(xiàn)方法作進(jìn)一步 的詳細(xì)描述。本發(fā)明提供了一種運(yùn)動(dòng)估計(jì)中SAD的并行實(shí)現(xiàn)方法,用于視頻編碼幀間壓 縮處理,所述方法涉及多個(gè)計(jì)算SAD的處理單元PE, PE通過計(jì)算單元計(jì)算一 個(gè)當(dāng)前幀的像素塊與參考幀的像素塊中的像素差絕對(duì)值,并計(jì)算每個(gè)像素的差絕對(duì)值之和SAD。請(qǐng)參閱圖3,本發(fā)明中,PE的每個(gè)AD單元在時(shí)鐘上升沿和 下降沿同時(shí)工作,具體實(shí)現(xiàn)過程如下在時(shí)刻tl (時(shí)鐘CLK下降沿),輸入圖像幀數(shù)據(jù),參考幀數(shù)據(jù)為參考?jí)K0 (REF0),經(jīng)過處理單元PE中AD的運(yùn)算,即對(duì)當(dāng)前圖像幀和參考幀數(shù)據(jù)REFO 進(jìn)行差絕對(duì)值運(yùn)算,得到差絕對(duì)值0 (ABS0)和Err一out, Err—out作為下一個(gè) AD單元的輸入Errjn;在時(shí)刻t2(CLK上升沿),輸入圖像幀數(shù)據(jù),參考幀數(shù)據(jù)為參考?jí)Kl(REFl ), 經(jīng)過處理單元PE中AD的運(yùn)算,即對(duì)當(dāng)前圖像幀和參考幀數(shù)據(jù)REF1進(jìn)行差絕 對(duì)值運(yùn)算,得到差絕對(duì)值1 (ABS1 ),同時(shí)求和運(yùn)算進(jìn)行ABS0與Errjn的和運(yùn) 算,得到Err—out,作為下一個(gè)AD單元的Err_in;在時(shí)刻t3 (CLK下降沿),輸入圖像幀數(shù)據(jù),參考幀數(shù)據(jù)為參考?jí)KREFO, 經(jīng)過處理單元PE中AD的運(yùn)算,即對(duì)當(dāng)前圖像幀和參考幀數(shù)據(jù)REFO進(jìn)行差絕 對(duì)值運(yùn)算,得到差絕對(duì)值A(chǔ)BSO,同時(shí)求和運(yùn)算進(jìn)行ABS1與Errjn的和運(yùn)算, 得到Err_out,作為下一個(gè)AD單元的Err—in;依次類推,即在時(shí)鐘上升沿進(jìn)行參考?jí)KREF1的SAD計(jì)算,下降沿進(jìn)行參 考?jí)KREFO的SAD計(jì)算。所述的處理單元PE由8*8個(gè)計(jì)算單元AD組成在具體的硬件實(shí)現(xiàn)時(shí),只需在原有結(jié)構(gòu)上增加一個(gè)控制單元,用于參考?jí)K REFO和REF1的輪流輸入控制。考慮到FPGA中的加法和減法只能在一個(gè)時(shí)鐘 沿工作,需要對(duì)系統(tǒng)時(shí)鐘進(jìn)行倍頻處理,以原始數(shù)據(jù)的兩倍頻工作,在時(shí)鐘沿 輪流送出兩個(gè)不同參考?jí)K。本設(shè)計(jì)用于多路并行處理的結(jié)構(gòu)時(shí),由于可以同時(shí) 復(fù)用電路,可以把并行度降低一半,相當(dāng)于硬件資源節(jié)省一半;當(dāng)用于單路處 理時(shí),可以把處理時(shí)間節(jié)省一半。盡管時(shí)鐘頻率變高了一倍,但本發(fā)明中的一 個(gè)時(shí)鐘沿只做了一次減法或者一次加法,相比現(xiàn)有的技術(shù)在一個(gè)時(shí)鐘沿做了一 次減法和一次加法,實(shí)際的工作頻率并沒有P條低。
權(quán)利要求
1、一種運(yùn)動(dòng)估計(jì)中SAD(Sum of Absolute Difference,殘差絕對(duì)值之和)的并行實(shí)現(xiàn)方法,用于視頻編碼幀間壓縮處理,所述方法采用具有數(shù)個(gè)計(jì)算單元的處理單元計(jì)算SAD,所述每個(gè)計(jì)算單元計(jì)算一個(gè)當(dāng)前幀的像素塊與參考幀的像素塊中的像素差絕對(duì)值,并計(jì)算每個(gè)像素的差絕對(duì)值之和SAD,其特征在于所述方法在系統(tǒng)時(shí)鐘的上升沿,將進(jìn)入處理單元的一組參考幀的像素塊REF0與當(dāng)前幀的編碼塊進(jìn)行像素差絕對(duì)值SAD計(jì)算;在系統(tǒng)時(shí)鐘的下降沿,將進(jìn)入處理單元的另一組參考幀的像素塊REF1與當(dāng)前幀的編碼塊進(jìn)行像素差絕對(duì)值SAD計(jì)算;參考?jí)KREF0和REF1的輪流輸入通過控制模塊切換實(shí)現(xiàn)。
2、 如權(quán)利要求1所述的運(yùn)動(dòng)估計(jì)中SAD的并行實(shí)現(xiàn)方法,其特征在于 所述的處理單元由8*8個(gè)計(jì)算單元組成。
全文摘要
本發(fā)明提供了一種運(yùn)動(dòng)估計(jì)中SAD的并行實(shí)現(xiàn)方法,所述方法通過時(shí)鐘雙沿觸發(fā),將加法與減法并行處理,并保證SAD在單周期內(nèi)進(jìn)行。所述方法能在多路并行處理時(shí),減少運(yùn)動(dòng)估計(jì)硬件資源開銷50%;或者在單路處理時(shí)縮短處理周期50%,并能保證高清晰視頻的實(shí)時(shí)編碼。
文檔編號(hào)H04N7/26GK101217662SQ20081003224
公開日2008年7月9日 申請(qǐng)日期2008年1月3日 優(yōu)先權(quán)日2008年1月3日
發(fā)明者劉錦陽, 王鳳麟 申請(qǐng)人:上海廣電(集團(tuán))有限公司中央研究院