專利名稱:用于掃描搜索區(qū)內(nèi)參考宏塊窗口的運(yùn)動(dòng)估計(jì)裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種運(yùn)動(dòng)估計(jì)裝置和方法。更具體地說,本發(fā)明涉及用于掃描搜索區(qū)內(nèi)參考宏塊窗口的運(yùn)動(dòng)估計(jì)裝置和方法。
背景技術(shù):
該申請(qǐng)享有2001年7月9日申請(qǐng)的申請(qǐng)?zhí)枮?001-40904的韓國(guó)專利申請(qǐng)的優(yōu)先權(quán),這里完整引入其內(nèi)容以供參考。
視頻編碼器生成遵守視頻壓縮國(guó)際標(biāo)準(zhǔn),比如H.261、H.263、MPEG-1、MPEG-2、MPEG-4、MPEG-7、以及MPEG-21的位流。這些標(biāo)準(zhǔn)廣泛地應(yīng)用于數(shù)據(jù)存儲(chǔ)、基于互聯(lián)網(wǎng)的圖像服務(wù)、娛樂、數(shù)字廣播、便攜式視頻終端等領(lǐng)域。
視頻壓縮標(biāo)準(zhǔn)使用將當(dāng)前幀分成多個(gè)宏塊(macroblock)(MB)的運(yùn)動(dòng)估計(jì)技術(shù)。計(jì)算當(dāng)前MB和存在于參考幀搜索區(qū)內(nèi)的其它參考MB之間的差異。搜索區(qū)中與當(dāng)前MB最相似的參考MB被認(rèn)為是“匹配塊”并將其選中。將指示當(dāng)前MB和匹配塊之間相位差的當(dāng)前MB的運(yùn)動(dòng)矢量進(jìn)行編碼。相位差是指當(dāng)前MB和匹配塊之間的位置差。由于只傳送當(dāng)前MB的運(yùn)動(dòng)矢量,故需要傳送或存儲(chǔ)的為較小量數(shù)據(jù)。
當(dāng)前MB與搜索區(qū)的關(guān)系如圖1所示。根據(jù)四分之一公共中間格式(Quarter Common Intermediate Format,QCIF),一幀包含176×144個(gè)像素,當(dāng)前幀2包含99個(gè)當(dāng)前MB,并且每個(gè)當(dāng)前MB 10包含16×16個(gè)像素。在參考幀4中計(jì)算當(dāng)前MB 10的運(yùn)動(dòng)矢量。參考幀4中搜索區(qū)12包括48×48個(gè)像素。
在搜索區(qū)12中,將與當(dāng)前MB 10最相似的16×16參考MB識(shí)別為匹配塊??梢杂酶鞣N不同的方法計(jì)算當(dāng)前MB與參考MB之間的差。例如通過使用絕對(duì)差均值(MAD)、絕對(duì)方差均值(MAE)、或絕對(duì)差總和(SAD)。SAD最為普遍因?yàn)樗恍枰獪p法和加法運(yùn)算。
圖2說明了一種基本完全搜索,其中將像素10_1和14_1分別裝載到32位寄存器15和17。然后使用算術(shù)邏輯單元(ALU)30計(jì)算SAD。在用ALU 30比較當(dāng)前MB 10和參考MB 14a之前,將它們存儲(chǔ)在存儲(chǔ)器中并一個(gè)像素一個(gè)像素地裝載到32位寄存器15和17中。將存在于搜索區(qū)12中的參考MB14a、14b、14c等與當(dāng)前MB 10一個(gè)像素一個(gè)像素地進(jìn)行比較。
這種簡(jiǎn)單思想的估計(jì)方法提供了高精確度。但是,因?yàn)橛刑嗟挠?jì)算故限制了傳送速率。該方法也不適合于由一些處理能力有限的多用途的中央處理單元(CPU),比如一些在手持個(gè)人計(jì)算機(jī)(PC)中使用的CPU進(jìn)行的實(shí)時(shí)解碼。
通過比較當(dāng)前MB與搜索區(qū)內(nèi)有限數(shù)目的參考MB可以使用一種快速搜索算法(沒有示出)計(jì)算SAD。與上述完全搜索方法相比該種快速搜索算法可以顯著地減少計(jì)算次數(shù)。然而,這種快速搜索算法降低了畫面質(zhì)量。
使用完全搜索方法發(fā)展出了一種快速計(jì)算SAD的方法。使用單指令多數(shù)據(jù)(Single Instruction Multiple Data,SIMD)方法可同時(shí)計(jì)算多個(gè)像素的SAD。該減少的運(yùn)算次數(shù)提高了傳送速率。
圖3說明了使用SIMD部件的SAD計(jì)算。當(dāng)前MB 10和參考MB 14a各自的八個(gè)像素10_8與14_8分別裝載到64位寄存器16和18。SIMD機(jī)20同時(shí)計(jì)算裝載到64位寄存器16和18中的八個(gè)像素的SAD。與典型的完全搜索算法其中單獨(dú)計(jì)算每個(gè)像素的SAD不同,使用SIMD技術(shù)可以實(shí)現(xiàn)對(duì)多個(gè)像素同時(shí)并行計(jì)算SAD。
計(jì)算量隨著搜索區(qū)12中下一個(gè)MB移位的方向而變化。如圖3所示,每當(dāng)選擇下一個(gè)MB進(jìn)行水平移位,必須從存儲(chǔ)器中訪問當(dāng)前MB 10和參考MB 14中的八個(gè)像素并將其裝載到寄存器16和18。這種大量的存儲(chǔ)器訪問增加了導(dǎo)出運(yùn)動(dòng)矢量所需的時(shí)間量并增加了能量消耗。
由于大量的存儲(chǔ)器訪問以及伴隨的大能量消耗,這些傳統(tǒng)運(yùn)動(dòng)估計(jì)方法不適合于移動(dòng)環(huán)境。本發(fā)明致力于解決該問題以及其它與現(xiàn)有技術(shù)相關(guān)的問題。
發(fā)明內(nèi)容
運(yùn)動(dòng)估計(jì)技術(shù)將當(dāng)前宏塊與參考幀搜索區(qū)內(nèi)的不同參考宏塊進(jìn)行比較。從與當(dāng)前宏塊最為匹配的參考宏塊中導(dǎo)出當(dāng)前宏塊的運(yùn)動(dòng)矢量。為減少裝載新參考宏塊所需的指令數(shù)目,復(fù)用參考宏塊之間重疊的部分、并只將沒有重疊的部分裝載到存儲(chǔ)器存儲(chǔ)部件中。
通過參考附圖對(duì)本發(fā)明優(yōu)選實(shí)施例的詳細(xì)描述本發(fā)明前述的及其它目的、功能和優(yōu)點(diǎn)將變得更為清楚。
圖1是說明如何導(dǎo)出運(yùn)動(dòng)矢量的現(xiàn)有技術(shù)示意圖。
圖2是說明使用完全搜索方法并使用絕對(duì)差總和(SAD)的方法、執(zhí)行運(yùn)動(dòng)矢量搜索的傳統(tǒng)方法的現(xiàn)有技術(shù)示意圖。
圖3是說明使用單指令多數(shù)據(jù)(SIMD)方法執(zhí)行運(yùn)動(dòng)矢量搜索的傳統(tǒng)方法的現(xiàn)有技術(shù)示意圖。
圖4是根據(jù)本發(fā)明執(zhí)行運(yùn)動(dòng)估計(jì)的系統(tǒng)的方框圖。
圖5是抽取過濾器的示意圖。
圖6是說明抽取后的當(dāng)前宏塊和相應(yīng)的搜索區(qū)的示意圖。
圖7是說明根據(jù)本發(fā)明如何使用兩組寄存器的示意圖。
圖8說明根據(jù)本發(fā)明如何在搜索區(qū)移位參考宏塊。
圖9是說明根據(jù)本發(fā)明如何識(shí)別運(yùn)動(dòng)矢量的流程圖。
圖10A-10D是比較不同運(yùn)動(dòng)估計(jì)技術(shù)的指令計(jì)數(shù)的圖表。
圖11A-11D說明傳統(tǒng)運(yùn)動(dòng)估計(jì)方法與根據(jù)本發(fā)明的運(yùn)動(dòng)估計(jì)方法之間的其它差別。
圖12比較根據(jù)本發(fā)明的垂直掃描技術(shù)和其它掃描技術(shù)并說明在存儲(chǔ)器訪問方面的差別。
圖13概念性地說明圖4中差異計(jì)算單元110的一部分。
具體實(shí)施方式
本發(fā)明通過在搜索區(qū)掃描參考MB時(shí)復(fù)用公共寄存器提供減少存儲(chǔ)器訪問次數(shù)的高效運(yùn)動(dòng)估計(jì)。。
圖4是本發(fā)明優(yōu)選實(shí)施例運(yùn)動(dòng)估計(jì)系統(tǒng)的方框圖。運(yùn)動(dòng)估計(jì)系統(tǒng)包括當(dāng)前幀(C/F)100、第一寄存器組102、差異計(jì)算單元110、搜索區(qū)(S/A)104、第二寄存器組106、以及控制器108。第一和第二寄存器組102及106分別為當(dāng)前幀100的一個(gè)宏塊(MB)和搜索區(qū)104的一個(gè)宏塊存儲(chǔ)像素。在一個(gè)例子中,一個(gè)MB的大小為16×16像素。第一和第二寄存器組102及106的每一個(gè)都可以存儲(chǔ)一個(gè)16×16像素的數(shù)組??刂破?08可以用軟件或硬件構(gòu)造。
圖5說明了使用4∶1抽取過濾器實(shí)施的預(yù)處理步驟。在當(dāng)前幀100(圖4)上使用n∶1抽取過濾器以減少所需硬件資源。當(dāng)前幀在圖5中由輸入幀130表示。幀130由四個(gè)4∶1抽取過濾器126a、126b、126c和126d分成四種抽取幀a、b、c和d,并存儲(chǔ)在幀存儲(chǔ)器128中。從電荷耦合圖像捕獲部件(CCD)120輸出的視頻信號(hào)通過模-數(shù)轉(zhuǎn)換器(ACD)122轉(zhuǎn)換成數(shù)字信號(hào)。從ADC 122輸出的信號(hào)是RGB信號(hào)。預(yù)處理器124將RGB信號(hào)轉(zhuǎn)換成YCbCr信號(hào)。在一個(gè)實(shí)施例中,抽取過濾器126只對(duì)Y信號(hào)進(jìn)行抽取。
抽取過濾器126a用于輸入幀130中的a種像素,抽取過濾器126b用于b種像素,抽取過濾器126c用于c種像素,并且抽取過濾器126d用于d種像素。抽取之后,抽取后幀a、b、c、和d存儲(chǔ)在幀存儲(chǔ)器128中。
作為對(duì)輸入幀130進(jìn)行4∶1抽取的結(jié)果,一個(gè)MB的大小減小到8×8個(gè)像素。對(duì)搜索區(qū)104進(jìn)行與當(dāng)前幀130同樣比率的抽取。例如,對(duì)48×48個(gè)像素的搜索區(qū)進(jìn)行4∶1抽取將搜索區(qū)的大小減小到24×24個(gè)像素。圖6說明了經(jīng)過4∶1抽取后一個(gè)當(dāng)前MB 140及其相應(yīng)的搜索區(qū)150。
為解釋之便,將當(dāng)前幀描述為經(jīng)過圖5中4∶1抽取過濾器的四種抽取后幀a、b、c、和d之一。當(dāng)前幀100中的每個(gè)MB的大小為8×8個(gè)像素并且經(jīng)過4∶1抽取過濾器的搜索區(qū)104的大小為24×24個(gè)像素。
第一寄存器組102(圖4)存儲(chǔ)當(dāng)前幀100的一個(gè)當(dāng)前MB,并且第二寄存器組106存儲(chǔ)搜索區(qū)104的一個(gè)參考MB。第一和第二寄存器組102及106以圖7中描述為畫圈的數(shù)字的預(yù)定次序存儲(chǔ)像素。對(duì)八個(gè)像素的各個(gè)組來說在第一和第二寄存器組102及106中每一個(gè)的計(jì)算次序都是確定的。
圖7說明了圖4中第一和第二寄存器組102及106的結(jié)構(gòu)和裝載順序。第一寄存器組102存儲(chǔ)當(dāng)前MB并包括每個(gè)都存儲(chǔ)八個(gè)像素的寄存器。以預(yù)定的次序從0到7指定這些寄存器。第二寄存器組106包括每個(gè)都存儲(chǔ)八個(gè)像素的寄存器并且以預(yù)定的次序從8到15指定這些寄存器。為計(jì)算存儲(chǔ)在第一寄存器組102中的當(dāng)前MB與存儲(chǔ)在第二寄存器器組106中的參考MB之間的差,用下面公式計(jì)算當(dāng)前參考?jí)K的SAD和運(yùn)動(dòng)矢量MV。
SAD(dx,dy)=Σm=xx+N-1Σn=yy+N-1|Ik(m,n)-Ik-1(m+dx,n+dy)|]]>(MVx,MVy)=min(dx,dy)∈R2SAD(dx,dy)]]>
其中,k(m,n)是第k個(gè)幀在(M,N)處的像素值。運(yùn)動(dòng)矢量(MVx,MVy)表示當(dāng)前塊到參考幀中最匹配塊的位移。
差異計(jì)算單元110(圖4)用圖3中的單指令多數(shù)據(jù)(SIMD)方法同時(shí)計(jì)算八個(gè)像素的差。
圖13概念性地說明了圖4中的差異計(jì)算單元110。第一寄存器組102的每個(gè)寄存器142的每個(gè)像素和第二寄存器組106的每個(gè)寄存器144的每個(gè)像素之間的絕對(duì)差值存儲(chǔ)在寄存器132中。例如,142a和144a之間的絕對(duì)差值存儲(chǔ)在132a中,并且142b和144b之間的絕對(duì)差值存儲(chǔ)在132b中。為計(jì)算142和144之間的絕對(duì)差,執(zhí)行一個(gè)內(nèi)部求和指令將存儲(chǔ)在圖13的點(diǎn)劃線框內(nèi)寄存器132中的每個(gè)差值相加。
如圖13的點(diǎn)劃線框所示,一個(gè)內(nèi)部求和指令的執(zhí)行僅用到多個(gè)相加器。在傳統(tǒng)方法中為了將每個(gè)值相加,用一個(gè)相加指令和移位指令執(zhí)行求和,因此與本方法相比需要額外的循環(huán)。所以,為完整地計(jì)算抽取后當(dāng)前MB和抽取后參考MB之間的匹配塊需執(zhí)行八個(gè)內(nèi)部求和指令。
一旦計(jì)算了當(dāng)前MB 10和參考MB 14所有像素的SAD,通過將每個(gè)像素的SAD相加計(jì)算參考MB 14a的內(nèi)部總和。在計(jì)算了搜索區(qū)12的所有參考MB的內(nèi)部總和之后,將具有最小內(nèi)部總和的參考MB識(shí)別為匹配塊,并且計(jì)算結(jié)果作為圖4中的MB差(E_MB)輸出。圖4中的控制器108控制如何使用SIMD掃描方法在搜索區(qū)104中移位參考MB窗口以減小存儲(chǔ)器訪問次數(shù)。
圖12更詳細(xì)地說明傳統(tǒng)掃描方法和根據(jù)本發(fā)明的掃描方法的一些差別。對(duì)于完全搜索,根據(jù)傳統(tǒng)掃描方法,當(dāng)前參考?jí)K在水平或垂直方向移位一個(gè)像素得到下一個(gè)參考?jí)K,分別如圖12_1和12_2所示。在這些情況下,當(dāng)前比較的參考?jí)K中的大部分像素與下一個(gè)要比較的參考?jí)K中使用的像素相重疊。
對(duì)于圖12_1中所示的水平掃描,只有下一個(gè)寄存器組106’_2的最右邊區(qū)域包括相對(duì)于寄存器組106’_1中的像素而言的新像素。同樣的,對(duì)于圖12_2中所示的垂直掃描,只有下一個(gè)寄存器組106”_2的最下邊區(qū)域包括相對(duì)于當(dāng)前寄存器組106”_1而言的新像素。即便只有邊緣區(qū)域包括新像素,對(duì)整個(gè)參考宏塊106執(zhí)行存儲(chǔ)器訪問。
根據(jù)本發(fā)明用于SIMD方案的垂直掃描在圖12_3中說明。在圖4中只有新像素106_2從主存儲(chǔ)器裝載到第二寄存器組106中。如圖7所示,第二寄存器組160b復(fù)用存儲(chǔ)在第一寄存器組160a中9到15寄存器區(qū)域中的重疊像素。將新的一行像素值只裝載到第二寄存器組160b的第一寄存器區(qū)域8。在第二寄存器組160b中第一寄存器區(qū)域8下移到最后一個(gè)位置。存儲(chǔ)與下一個(gè)參考?jí)K重疊的像素行的其它寄存器區(qū)域9至15在序列中上移1。例如,寄存器區(qū)域9移到了第一個(gè)位置,寄存器10移到了第二個(gè)位置,寄存器11移到了第三個(gè)位置等。
這種參考MB移位只需要一次存儲(chǔ)器訪問以在搜索區(qū)104中在每次垂直移位時(shí)讀取一行新的沒有重疊的像素(圖4)。由于不需要從存儲(chǔ)器中讀取下一個(gè)參考MB的整個(gè)8×8像素?cái)?shù)組,從而減少了用于掃描搜索區(qū)104的存儲(chǔ)器訪問次數(shù)。
圖8說明了參考MB在搜索區(qū)104中的移位。圖4中在控制器108的控制下垂直掃描參考MB窗口。參考MB窗口每次垂直移位一個(gè)像素行。雖然這里說明了垂直窗口移位,同樣的技術(shù)可以用于水平窗口移位。當(dāng)像素沿當(dāng)前和參考幀的垂直列存儲(chǔ)在存儲(chǔ)器中的連續(xù)位置時(shí)可以使用水平移位。
如上所述,當(dāng)使用能夠存儲(chǔ)一個(gè)MB數(shù)據(jù)的寄存器并且在搜索區(qū)中垂直移位參考MB窗口時(shí),復(fù)用當(dāng)前參考MB和下一個(gè)參考MB之間的重疊像素。這減少了控制器108掃描搜索區(qū)所需的存儲(chǔ)器訪問次數(shù)。當(dāng)前MB存儲(chǔ)在第一寄存器組中,并且當(dāng)前參考MB存儲(chǔ)在第二寄存器組中。
圖9是更詳細(xì)地說明本發(fā)明SIMD掃描方案的流程圖。在步驟170,以n∶1的比率抽取當(dāng)前幀和參考幀。為解釋之便,在本實(shí)施例中n=4。參數(shù)HS指明搜索區(qū)中第一個(gè)參考MB的最后一列的位置,參數(shù)VS指明搜索區(qū)中第一個(gè)參考MB的最后一行的位置,以及參數(shù)DCM指明四個(gè)抽取后幀。
這里,第一個(gè)參考MB是搜索區(qū)中左邊最上面的MB,并且第一個(gè)參考MB的第一個(gè)參數(shù)HS和第二個(gè)參數(shù)VS為零。在步驟172中,參數(shù)HS、VS、DCM都初始化為零,并且最小差異E_MIN初始化為盡可能大的值,例如,無窮大。
將標(biāo)識(shí)號(hào)0、1、2、和3分別分配給四個(gè)抽取后幀。在步驟174將參數(shù)DCM與值4進(jìn)行比較以確定最后一個(gè)抽取幀的運(yùn)動(dòng)估計(jì)是否完成。如果最后一個(gè)抽取后幀的運(yùn)動(dòng)估計(jì)沒有完成,在步驟176將當(dāng)前MB裝載到第一寄存器組140(參見圖7)。
在步驟178確定HS參數(shù)是否小于17。當(dāng)HS參數(shù)不小于17時(shí),完成搜索區(qū)中最后一列(HS16)的運(yùn)動(dòng)估計(jì)。在步驟192將HS重設(shè)為零并且在塊198中將DCM加1到下一個(gè)DCM幀。處理然后回到步驟174。
如果到HS16的運(yùn)動(dòng)估計(jì)沒有完成,在步驟180確定VS參數(shù)是否小于17。如果VS小于17,在步驟182和184執(zhí)行流水線操作程序。在步驟182只有最后一行VS1裝載到參考MB(參見圖8)。如果到最后一行的運(yùn)動(dòng)估計(jì)沒有完成,即,如果參考MB窗口沒有移位到最后一行VS16,在步驟182將參考MB裝載到第二寄存器組160a。在步驟184計(jì)算當(dāng)前MB和參考MB之間的差。
在這種情況下,垂直方向上的新行VS1存儲(chǔ)到第一寄存器位置的寄存器區(qū)序列中。例如,將下一個(gè)參考MB的下一個(gè)新的沒有重疊的像素行裝載到第二寄存器組160b的寄存器8($register 8)中。其它的寄存器區(qū),即,寄存器9($register 9)到寄存器15($register 15),在序列中向上移1位。即,圖7中的第二寄存器組160b復(fù)用存儲(chǔ)在寄存器區(qū)寄存器9($register 9)到寄存器15($register 15)中的像素。因此,僅從存儲(chǔ)器中訪問新行VS1(圖8)的像素并將其存儲(chǔ)在第二寄存器組160b的寄存器區(qū)寄存器8($register 8)中。
在步驟184,計(jì)算裝載到圖7中第一和第二寄存器組140及160中的MB之間的差。在步驟186將MB差異E_MB與最小差異E_MIN相比較。如果MB差異E_MB小于最小差異E_MIN,在步驟188將最小差異E_MIN設(shè)置為MB差異E_MB。如果MB差異E_MB不小于最小差異E_MIN,保持當(dāng)前最小差異E_MIN,并且在步驟190將參數(shù)VS加1。然后重復(fù)步驟180到190直到對(duì)參考MB的垂直掃描到達(dá)最后一行VS16(圖8)。
如果在步驟180確定了作為掃描到最后一行VS16的結(jié)果第二個(gè)參數(shù)VS不小于17,在步驟200將參數(shù)VS初始化為零。在步驟202將參數(shù)HS加1,并且處理回到步驟178。換句話說,參考MB窗口向右移位了一個(gè)像素位置。然后重復(fù)步驟180到190。
在參考MB窗口在水平方向移位到最后一列HS16后,即,如果在步驟178確定了參數(shù)HS不小于17,在步驟192將第一個(gè)參數(shù)HS重新初始化到零。在步驟198將DCM參數(shù)加1并且處理回到步驟174。增加DCM參數(shù)意味著執(zhí)行了另一個(gè)抽取后幀的運(yùn)動(dòng)估計(jì)。
當(dāng)所有抽取后幀的運(yùn)動(dòng)估計(jì)都已完成,即,如果在步驟174確定了DCM參數(shù)不小于4,在步驟204將具有最小差異的參考MB識(shí)別為匹配塊。通過對(duì)當(dāng)前幀所有MB重復(fù)上述的處理完成當(dāng)前幀的運(yùn)動(dòng)估計(jì)。
如上所述,第一和第二寄存器組存儲(chǔ)當(dāng)前MB和參考MB。在搜索區(qū)中垂直移位參考MB窗口以進(jìn)行運(yùn)動(dòng)估計(jì)。復(fù)用當(dāng)前參考MB和下一個(gè)參考MB之間的重疊像素。結(jié)果,當(dāng)將下一個(gè)參考MB裝載到第二寄存器組中時(shí)需要較少的指令(裝載/存儲(chǔ))。這樣可以以較小的能量消耗獲取快速運(yùn)動(dòng)估計(jì)。
圖10a至10d說明了本發(fā)明相對(duì)于傳統(tǒng)運(yùn)動(dòng)估計(jì)方法的優(yōu)點(diǎn)。圖10a指明了不執(zhí)行抽取(即,完全搜索算法)的傳統(tǒng)運(yùn)動(dòng)估計(jì)方法的指令計(jì)數(shù)。下面情況得到了確定圖10a的傳統(tǒng)方法中總指令計(jì)數(shù)的26.2%用作存儲(chǔ)器訪問指令,并且指令計(jì)數(shù)的余下73.8%用于非存儲(chǔ)器訪問。圖10a與圖2對(duì)應(yīng),其中在搜索區(qū)中水平移位參考MB并且用SAD為每個(gè)像素執(zhí)行運(yùn)動(dòng)估計(jì)。圖10b說明了執(zhí)行抽取的傳統(tǒng)運(yùn)動(dòng)估計(jì)方法的總指令計(jì)數(shù)。圖10c說明了使用抽取和SIMD的傳統(tǒng)運(yùn)動(dòng)估計(jì)方法的總指令計(jì)數(shù)。
圖10d說明了使用本發(fā)明的運(yùn)動(dòng)估計(jì)方法的總指令計(jì)數(shù)。對(duì)于圖10b到10d中說明的三種情況,百分比27.0%、1.6%、以及0.9%分別為與圖10a的傳統(tǒng)運(yùn)動(dòng)估計(jì)方法相比較的存儲(chǔ)器訪問指令計(jì)數(shù)的相對(duì)比率。很顯然用正交掃描訪問非重疊部分的方法是減小存儲(chǔ)器訪問計(jì)數(shù)的最高效技術(shù)。
圖11說明具有要求的四分之一公共中間格式(QCIF)的兩幀提取99個(gè)最小SAD所需的總時(shí)鐘周期數(shù)。在圖11中,11a對(duì)應(yīng)于圖10a,11b對(duì)應(yīng)于圖10b,11c對(duì)應(yīng)于圖10c,以及11d對(duì)應(yīng)于圖10d。用正交掃描方案訪問非重疊部分相對(duì)于使用普通SIMD的傳統(tǒng)運(yùn)動(dòng)估計(jì)方法性能提高了兩倍。
上述掃描技術(shù)可以使用用于比較當(dāng)前宏塊和參考宏塊的單指令多數(shù)據(jù)(SIMD)部件或較長(zhǎng)指令字(VLIW)部件來實(shí)現(xiàn)。用于匹配宏塊的方案可以包括絕對(duì)差均值(MAD)、絕對(duì)方差均值(MAE)、或絕對(duì)差總和(SAD)方案。用于選擇下一個(gè)參考宏塊的方法可以包括快速算法或完全搜索算法。當(dāng)然,也可以使用其它單指令/多數(shù)據(jù)部件、匹配方案、以及搜索算法。
該發(fā)明可以通過在通用數(shù)字計(jì)算機(jī)中運(yùn)行一個(gè)來自計(jì)算機(jī)可用媒介,包括但不限于如磁存儲(chǔ)媒介(例如,ROM、軟盤、硬盤等)、光可讀媒介(例如,CD-ROM、DVD等)的存儲(chǔ)媒介、以及載波(例如,在互聯(lián)網(wǎng)上傳送)的程序?qū)嵤S?jì)算機(jī)可用媒介可以在由網(wǎng)絡(luò)連接的分布式計(jì)算機(jī)系統(tǒng)中存儲(chǔ)和執(zhí)行。
上述系統(tǒng)可以使用專用處理器系統(tǒng)、微控制器、可編程邏輯部件、或執(zhí)行一些或所有操作的微處理器。上述一些操作可以用軟件實(shí)現(xiàn)并且其它操作可以用硬件實(shí)現(xiàn)。
為方便起見,將操作描述為各種內(nèi)連的功能塊或不同的軟件模塊。但是,這是不必要的并且可能會(huì)存在下面情況,即,這些功能塊或模塊等價(jià)地聚集在單獨(dú)一個(gè)邏輯部件,程序或操作中而沒有明顯的界限。無論如何,功能塊和軟件模塊或靈活的接口的各種功能特征可以單獨(dú)實(shí)現(xiàn),或者以硬件方式或軟件方式與其它操作聯(lián)合實(shí)現(xiàn)。
在以本發(fā)明的優(yōu)選實(shí)施例描述和說明了其原理之后,應(yīng)該清楚可以在布局和細(xì)節(jié)方面修改本發(fā)明而不悖離這些原理。所請(qǐng)求保護(hù)的是在下面權(quán)力要求的精神和范圍內(nèi)的所有修改和變化。
權(quán)利要求
1.一種通過使用宏塊來處理圖像的圖像處理裝置,包括第一存儲(chǔ)單元,用于存儲(chǔ)當(dāng)前宏塊;第二存儲(chǔ)單元,用于存儲(chǔ)第一參考宏塊;計(jì)算單元,用于計(jì)算第一存儲(chǔ)單元和第二存儲(chǔ)單元所存儲(chǔ)的內(nèi)容的差作為圖像處理裝置的輸出;以及控制器,用于通過將第一參考宏塊的非重疊部分替換為第二參考宏塊的非重疊部分而將第二參考宏塊裝載到第二存儲(chǔ)單元中,其中第一參考宏塊和第二參考宏塊是在搜索區(qū)中部分重疊并且從搜索區(qū)中依次選擇的宏塊,所述控制器還協(xié)調(diào)第一存儲(chǔ)單元、第二存儲(chǔ)單元和計(jì)算單元的操作。
2.如權(quán)利要求
1所述的圖像處理裝置,其中計(jì)算單元的結(jié)果用于確定運(yùn)動(dòng)矢量。
3.如權(quán)利要求
1所述的圖像處理電路,其中計(jì)算單元包括單指令多數(shù)據(jù)部件。
4.如權(quán)利要求
1所述的圖像處理裝置,其中通過由計(jì)算單元計(jì)算第一存儲(chǔ)單元和第二存儲(chǔ)單元之間的差,在第二存儲(chǔ)單元中復(fù)用第一參考宏塊與第二參考宏塊重疊的部分。
5.如權(quán)利要求
1所述的圖像處理裝置,其中第一存儲(chǔ)單元包含每個(gè)都為當(dāng)前宏塊存儲(chǔ)一組像素值的多個(gè)寄存器,以及第二存儲(chǔ)單元包含每個(gè)都為第一參考宏塊存儲(chǔ)一組像素值的多個(gè)寄存器。
6.如權(quán)利要求
5所述的圖像處理裝置,其中計(jì)算單元同時(shí)將存儲(chǔ)在第一存儲(chǔ)單元的每個(gè)寄存器中的一組像素值與存儲(chǔ)在第二存儲(chǔ)單元的每個(gè)寄存器中的一組像素值進(jìn)行比較。
7.如權(quán)利要求
5所述的圖像處理裝置,其中第一存儲(chǔ)單元中多個(gè)寄存器的每一個(gè)都存儲(chǔ)當(dāng)前宏塊的一行或一列,以及第二存儲(chǔ)單元中多個(gè)寄存器的每一個(gè)存儲(chǔ)第一參考宏塊的一行或一列。
8.如權(quán)利要求
1所述的圖像處理裝置,其中通過用第二參考宏塊的非重疊部分代替第一參考宏塊的非重疊部分而將第二參考宏塊的非重疊部分從存儲(chǔ)器裝載到第二存儲(chǔ)單元。
9.如權(quán)利要求
1所述的圖像處理裝置,其中控制器通過將第二存儲(chǔ)單元中存儲(chǔ)非重疊部分的第一個(gè)寄存器位置移動(dòng)到最后一個(gè)寄存器位置、并將第二存儲(chǔ)單元中存儲(chǔ)第一參考宏塊重疊部分的其它寄存器按次序上移,從而將第二參考宏塊裝載到第二存儲(chǔ)單元。
10.如權(quán)利要求
1所述的圖像處理裝置,包括預(yù)處理器,將當(dāng)前幀抽取為多個(gè)抽取后當(dāng)前幀、并將參考幀抽取為多個(gè)抽取后參考幀。
11.如權(quán)利要求
1所述的圖像處理裝置,其中控制器和計(jì)算單元以軟件或硬件形式實(shí)現(xiàn)。
12.如權(quán)利要求
5所述的圖像處理裝置,其中計(jì)算單元包括第三存儲(chǔ)單元,用于存儲(chǔ)第一存儲(chǔ)單元的每個(gè)寄存器的每個(gè)像素與第二存儲(chǔ)單元的每個(gè)寄存器的每個(gè)像素之間的絕對(duì)差;以及求和電路,用于導(dǎo)出存儲(chǔ)在第三存儲(chǔ)單元中的絕對(duì)差值的總和。
13.如權(quán)利要求
12所述的圖像處理裝置,其中求和電路僅包含多個(gè)加法器。
14.如權(quán)利要求
12所述的圖像處理裝置,其中單個(gè)內(nèi)部求和指令導(dǎo)致求和電路生成所有存儲(chǔ)在第三存儲(chǔ)單元中的絕對(duì)差值的總和。
15.一種運(yùn)動(dòng)估計(jì)方法,包括裝載當(dāng)前宏塊;裝載當(dāng)前參考宏塊;比較當(dāng)前宏塊和當(dāng)前參考宏塊;以及通過將裝載后的當(dāng)前參考宏塊的非重疊部分替換成下一個(gè)參考宏塊的非重疊部分來裝載下一個(gè)參考宏塊,其中當(dāng)前參考宏塊和下一個(gè)參考宏塊是在搜索區(qū)中部分重疊并且從搜索區(qū)中依次選擇的宏塊。
16.如權(quán)利要求
15所述的方法,包括復(fù)用當(dāng)前參考宏塊的重疊部分,以比較下一個(gè)參考宏塊和當(dāng)前宏塊。
17.如權(quán)利要求
15所述的方法,包括在一條指令下將非重疊的一組像素從下一個(gè)參考宏塊裝載到當(dāng)前包含當(dāng)前參考宏塊非重疊部分像素的標(biāo)識(shí)的寄存器;以及復(fù)用其它寄存器中與下一個(gè)參考宏塊重疊的像素。
18.如權(quán)利要求
17所述的方法,包括從存儲(chǔ)參考幀的存儲(chǔ)器裝載所標(biāo)識(shí)的寄存器。
19.如權(quán)利要求
17所述的方法,包括將存儲(chǔ)下一個(gè)參考宏塊的非重疊部分的標(biāo)識(shí)寄存器的次序移動(dòng)到最后一個(gè)寄存器位置,并將其它寄存器的次序上移。
20.如權(quán)利要求
15所述的方法,包括將裝載后當(dāng)前宏塊的每組像素值與裝載后當(dāng)前參考宏塊的每組像素值同時(shí)進(jìn)行比較。
21.如權(quán)利要求
20所述的方法,其中每組像素值包含當(dāng)前宏塊的一行或一列、或當(dāng)前參考宏塊的一行或一列。
22.如權(quán)利要求
15所述的方法,包括使用單指令多數(shù)據(jù)部件或較長(zhǎng)指令字部件,用于比較當(dāng)前宏塊和當(dāng)前參考宏塊。
23.如權(quán)利要求
15所述的方法,包括使用匹配宏塊方案比較當(dāng)前宏塊和當(dāng)前參考宏塊。
24.如權(quán)利要求
23所述的方法,其中匹配宏塊方案為絕對(duì)差均值、絕對(duì)方差均值、或絕對(duì)差總和。
25.如權(quán)利要求
15所述的方法,包括使用快速算法或完全搜索算法選擇下一個(gè)參考宏塊。
26.如權(quán)利要求
15所述的方法,包括將當(dāng)前幀抽取為多個(gè)抽取后當(dāng)前幀;將參考幀抽取為多個(gè)抽取后參考幀;從抽取后當(dāng)前幀選擇當(dāng)前宏塊;在抽取后參考幀的搜索區(qū)中移位所選擇的當(dāng)前宏塊,以識(shí)別與當(dāng)前宏快最相似的參考宏塊;以及導(dǎo)出所識(shí)別出的參考宏塊的運(yùn)動(dòng)矢量。
27.如權(quán)利要求
20所述的方法,包括存儲(chǔ)裝載后的當(dāng)前宏塊的每組像素值與裝載后的當(dāng)前參考宏塊的每組像素值之間的絕對(duì)差;以及導(dǎo)出該絕對(duì)差值的總和。
28.如權(quán)利要求
27所述的方法,包括僅使用加法器導(dǎo)出絕對(duì)差值的總和。
29.如權(quán)利要求
28所述的方法,包括使用一條單獨(dú)內(nèi)部求和指令生成所有絕對(duì)差值的總和。
專利摘要
公開了一種運(yùn)動(dòng)估計(jì)技術(shù),將當(dāng)前宏塊與參考幀搜索區(qū)中的不同參考宏塊進(jìn)行比較。將當(dāng)前宏塊的運(yùn)動(dòng)矢量從與當(dāng)前宏塊最為匹配的參考宏塊中導(dǎo)出。為減少裝載新參考宏塊所需的指令數(shù)目,復(fù)用參考宏塊之間的重疊部分并且僅將非重疊部分裝載到存儲(chǔ)器存儲(chǔ)部件。
文檔編號(hào)H03M7/36GKCN1297134SQ02122743
公開日2007年1月24日 申請(qǐng)日期2002年6月10日
發(fā)明者趙真顯, 盧亨來, 李潤(rùn)泰, 全炳宇 申請(qǐng)人:三星電子株式會(huì)社導(dǎo)出引文BiBTeX, EndNote, RefMan專利引用 (2),