專利名稱:用于半象素sad產(chǎn)生的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及運(yùn)動(dòng)估計(jì)編碼器,尤其涉及使用絕對(duì)差值取和(SAD)計(jì)算的半象素運(yùn)動(dòng)矢量的確定。
在視頻壓縮系統(tǒng)中,通常需要從一幀到下一幀地估算象素塊的運(yùn)動(dòng)。不是發(fā)送視頻信息的全幀,而只是發(fā)送需要發(fā)送的象素塊的變化增量或運(yùn)動(dòng)信息,即通常所述的運(yùn)動(dòng)矢量。視頻壓縮編碼器執(zhí)行這樣的處理,即它產(chǎn)生比原始圖象比特速率大大地降低的一個(gè)圖象比特速率。以原來(lái)的初始的幀開(kāi)始,視頻解碼器能夠通過(guò)使用先前針對(duì)在幀中的每一塊計(jì)算出的運(yùn)動(dòng)矢量來(lái)重建該原有幀。對(duì)運(yùn)動(dòng)估計(jì)處理更深入的討論可見(jiàn)由Vasudev Bhaskaran和Konstantinas Konstanfinides所著的“圖像與視頻壓縮標(biāo)準(zhǔn),算法和結(jié)構(gòu)”。
目前存在的視頻壓縮編碼器可以執(zhí)行對(duì)于半象素的運(yùn)動(dòng)估計(jì)。但是它們通常是規(guī)模大并且價(jià)格高。從制造更小和價(jià)格低廉的產(chǎn)品的長(zhǎng)期趨勢(shì)來(lái)看,非常希望降低視頻壓縮編碼器的規(guī)模、重量、費(fèi)用和復(fù)雜性。特別地,如果其規(guī)模和費(fèi)用都被降低的話,該視頻壓縮編碼器的運(yùn)動(dòng)估計(jì)部分將受益非淺。
因此,本發(fā)明的目的是提供一個(gè)克服已有技術(shù)的缺點(diǎn)的半象素SAD發(fā)生器。
本發(fā)明的另一目的是提供計(jì)算用于環(huán)繞一個(gè)全象素位置的全部八個(gè)可能半象素位置的SAD值的一個(gè)半象素SAD發(fā)生器。
本發(fā)明的另一目的是提供在串行基礎(chǔ)上計(jì)算該用于每一半象素位置的SAD值的一個(gè)半象素SAD發(fā)生器。
本發(fā)明的再一個(gè)目的是提供這樣一個(gè)半象素SAD發(fā)生器不需要同時(shí)得到全部搜索窗口的象素以及它們對(duì)應(yīng)的內(nèi)插半象素,或被存取一次以上。
本申請(qǐng)公開(kāi)一種用于計(jì)算針對(duì)半象素的SAD值的新穎裝置和方法。本發(fā)明以串行方式內(nèi)插來(lái)自包含在一個(gè)搜索窗口中的全象素的半象素值。隨后這些半象素與在一個(gè)模板宏塊中的象素相比較。隨后產(chǎn)生差值并累加在寄存器中。該搜索窗口和模板宏塊象素被移位到FIFO裝置中從而有多個(gè)加法器產(chǎn)生半象素值。鎖存器被用于存儲(chǔ)和延遲該半象素值,以便輸入到一組減法器。減法器計(jì)算該內(nèi)插的半象素和該模板宏塊象素之間的差值。該減法器的輸出被累加而產(chǎn)生八個(gè)SAD值。
因此,根據(jù)本發(fā)明優(yōu)選實(shí)施例提供一個(gè)用于產(chǎn)生在包含在一個(gè)搜索窗口存儲(chǔ)器中的全象素塊和包含在一個(gè)預(yù)定義模板宏塊存儲(chǔ)器中的模板象素之間的半象素的絕對(duì)差值取和(SAD)的一個(gè)裝置,該裝置包括用于保持包含在該搜索窗口中的全象素的搜索窗口先進(jìn)先出(FIFO)裝置;用于保持包含在該模板宏塊中的模板象素的模板宏塊FIFO裝置;連接到該搜索窗口FIFO裝置的內(nèi)插裝置,該內(nèi)插裝置用于計(jì)算環(huán)繞每一全象素的半象素值;連接到該內(nèi)插裝置和該模板宏塊FIFO裝置的減法裝置,該減法裝置用于計(jì)算在該半象素和該模板象素之間的差值;連接到該減法裝置的絕對(duì)值裝置,該絕對(duì)值裝置用于產(chǎn)生該減法裝置的輸出的絕對(duì)值;連接到該絕對(duì)值裝置的輸出的累加器裝置,該累加器裝置用于保持由絕對(duì)值裝置輸出的用于每一半象素SAD值的絕對(duì)差值的和;以及,控制器裝置,用于產(chǎn)生適當(dāng)?shù)目刂菩盘?hào)以便啟動(dòng)該半象素SAD值的產(chǎn)生。
此外,搜索窗口FIFO裝置包括足夠數(shù)目的寄存器,以便保持全象素的一個(gè)整行加上來(lái)自模板宏塊的隨后行的至少一個(gè)象素。該模板宏塊FIFO裝置包括足夠數(shù)目的寄存器,以便保持全象素的一個(gè)整行加上來(lái)自模板宏塊的隨后行的至少一個(gè)象素。內(nèi)插裝置包括適當(dāng)放置的加法器和寄存器,以便計(jì)算環(huán)繞每一全象素的半象素值。這種減法裝置包括兩輸入端減法器。
該減法裝置和該絕對(duì)值裝置共同包括結(jié)合一個(gè)絕對(duì)值函數(shù)的兩輸入端減法器。該累加器裝置和該絕對(duì)值裝置共同包括在其輸入端采用一個(gè)絕對(duì)值函數(shù)的一個(gè)累加器。每一全象素和每一模板象素只分別地從模板宏塊存儲(chǔ)器和該模板宏塊存儲(chǔ)器存取一次。
根據(jù)本發(fā)明優(yōu)選實(shí)施例還提供一個(gè)用于產(chǎn)生在包含在一個(gè)搜索窗口存儲(chǔ)器中的一個(gè)全象素塊和包含在一個(gè)預(yù)定義模板宏塊存儲(chǔ)器中的模板象素之間的半象素的絕對(duì)差值取和(SAD)的一個(gè)方法,該方法包括步驟提供搜索窗口先進(jìn)先出(FIFO)裝置,用于移位通過(guò)包含在該搜索窗口中的全象素;提供一個(gè)模板宏塊FIFO裝置,用于移位通過(guò)包含在該模板宏塊中的模板象素;對(duì)于每一全象素來(lái)說(shuō),只內(nèi)插一次在水平、垂直和對(duì)角線的方向環(huán)繞每一全象素的半象素的值,計(jì)算在半象素和該模板象素之間的差值,確定計(jì)算步驟期間產(chǎn)生的差值的絕對(duì)值,以及累加在用于對(duì)每一半象素SAD值進(jìn)行確定的步驟期間產(chǎn)生的絕對(duì)差值的和。
每一全象素和每一模板象素只分別地從該搜索窗口存儲(chǔ)器和該模板宏塊存儲(chǔ)器存取一次。
在此以實(shí)例的方式參照附圖描述本發(fā)明,其中
圖1示出一個(gè)取樣搜索窗口存儲(chǔ)器的一部分以及對(duì)應(yīng)于4×4大小模板宏塊的一個(gè)區(qū)域;圖2示出一個(gè)取樣搜索窗口存儲(chǔ)器的一部分、對(duì)應(yīng)于4×4大小模板宏塊的一個(gè)區(qū)域、以及環(huán)繞每一全象素的八個(gè)半象素;圖3示出匹配定位在該框中的模板宏塊的八個(gè)可能最佳半象素之一;圖4示出與在該模板宏塊中的左上端象素相關(guān)的八個(gè)半象素位置;圖5示出與在該模板宏塊中的左上中間的象素相關(guān)的八個(gè)半象素位置;圖6是一個(gè)高等級(jí)框圖,示出根據(jù)本發(fā)明一優(yōu)選實(shí)施例構(gòu)成的半象素SAD發(fā)生器;以及,圖7示出一個(gè)取樣搜索窗口的一部分,示出全象素和它們的相關(guān)半象素,以及模板宏塊象素。
如先前所述,視頻壓縮技術(shù)目前被使用在廣泛的應(yīng)用中。例如MPEG 2的視頻壓縮標(biāo)準(zhǔn)詳細(xì)定義視頻編碼器的輸出規(guī)范。視頻編碼器的作用是把視頻信息流從其相當(dāng)大的原始帶寬壓縮到一個(gè)小得多的帶寬。因此該編碼的視頻信息流能在一個(gè)通信信道上發(fā)送或存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中。不管是在哪種情況中,通信信道的帶寬要求都被大大地降低,并且為了保持視頻節(jié)目所需要存儲(chǔ)的信息量也被大大地降低。例如,以MPEG 2標(biāo)準(zhǔn)編碼的一個(gè)視頻信息流需要估計(jì)在連續(xù)的幀之間的運(yùn)動(dòng)中的變化。這種處理被稱為運(yùn)動(dòng)估計(jì)。運(yùn)動(dòng)估計(jì)處理的更深入的討論可見(jiàn)由Vasudev Bhaskaran和Konstantinas Konstantinides所著的“圖像和視頻壓縮標(biāo)準(zhǔn)、算法和結(jié)構(gòu)”的第11章,在此被結(jié)合作為參考。首先,幀被分解成例如16×16象素的象素塊,然后針對(duì)在當(dāng)前幀中的每一塊尋找在先前幀中的最佳匹配塊。不是把相同的塊再一次地全部發(fā)送,而是發(fā)送該塊從先前幀到當(dāng)前幀的位置中的變化(即運(yùn)動(dòng)),這就大大地減小了需要被發(fā)送的數(shù)據(jù)量。
公開(kāi)和描述的本發(fā)明在一個(gè)視頻壓縮系統(tǒng)的背景中實(shí)施一種用于產(chǎn)生針對(duì)在一個(gè)搜索區(qū)域中的數(shù)據(jù)的半象素SAD的(絕對(duì)差值的和)值的裝置和方法。但是該決不限制本發(fā)明對(duì)于其它領(lǐng)域的應(yīng)用。本發(fā)明可被應(yīng)用在需要處理來(lái)源于相對(duì)于一個(gè)搜索窗口的數(shù)據(jù)的一個(gè)模板的內(nèi)插值(例如尋找一個(gè)最佳匹配)的任何類型的系統(tǒng)中。此外,計(jì)算準(zhǔn)則可以是在該數(shù)據(jù)模板中的數(shù)據(jù)和在該搜索窗口中的數(shù)據(jù)的任何一個(gè)函數(shù)(例如使用SAD值選擇最佳匹配)。
在此介紹的視頻壓縮方案的范例使用一個(gè)運(yùn)動(dòng)估計(jì)方法,采用具有一個(gè)特定大小的搜索窗口。在當(dāng)前幀中的把被稱為模板宏塊的每一象素塊都和在該搜索窗口中的含有先前幀的數(shù)據(jù)的每個(gè)塊相比較。通常,搜索窗口是幀面積的一個(gè)子集而不是整個(gè)幀,因?yàn)閺囊粠较乱粠撃繕?biāo)的移動(dòng)不大可能相距很遠(yuǎn)。使用一個(gè)減小的搜索窗口將降低為了尋找最佳匹配塊所需要的計(jì)算時(shí)間。
貫穿本申請(qǐng)文件使用的范例中,該搜索窗口包括多個(gè)4×4象素塊。在該搜索窗口中的數(shù)據(jù)是以逐個(gè)塊為基礎(chǔ)處理的。搜索在搜索窗口的左上角開(kāi)始,因此對(duì)于在該左上角中的塊執(zhí)行匹配函數(shù)。隨后該塊被右移一個(gè)象素并且再次執(zhí)行匹配函數(shù)。該處理被逐個(gè)象素地重復(fù),直到達(dá)到象素第一行的末尾為止。執(zhí)行全象素搜索的一個(gè)裝置和方法在由Skeletzky等人在1996年12月3日提交的申請(qǐng)?zhí)枮镹o.08/754,059的標(biāo)題是APPARATUS FOR AND METHOD OF REDUCING THEMEMORY BANDWIDTH REQUIREMENTS OF A SYSTOLICARRAY的美國(guó)專利中有所描述,在此處引用作為參考。
本發(fā)明將通常是(但是不必須)在獲得全象素SAD結(jié)果之后使用。首先,在該搜索窗口中的數(shù)據(jù)被逐個(gè)塊地與模板宏塊數(shù)據(jù)比較,以便確定象素塊的最佳匹配。在該搜索期間只考慮全象素。一旦發(fā)現(xiàn)該最佳匹配的全象素塊的位置,即可執(zhí)行一個(gè)半象素搜索,以便進(jìn)一步改進(jìn)該搜索的清晰度。執(zhí)行半象素搜索導(dǎo)致系統(tǒng)的潛在清晰度增加四倍因數(shù)(每一軸增加二倍因數(shù))。半象素的精確性與半象素SAD計(jì)算相關(guān)。該半象素SAD計(jì)算是通過(guò)把模板宏塊象素和對(duì)應(yīng)于環(huán)繞該全象素目標(biāo)位置的半象素的一個(gè)特定搜索窗口相比較而確定的。
取樣搜索窗口存儲(chǔ)器的一部分以及對(duì)應(yīng)于大小為4×4模板宏塊的一個(gè)區(qū)域在圖1中示出。在全象素搜索期間發(fā)現(xiàn)的搜索窗口中的最佳匹配塊由方框70表示。每一′X′74代表在該搜索窗口中的一個(gè)全象素。
為了執(zhí)行半象素搜索,使用環(huán)繞該最佳匹配全象素塊的周邊的象素。這在圖2中示出。由大粗體′X′74表示的象素代表在該搜索窗口中的象素。在該框70中的象素74是在全象素搜索期間被發(fā)現(xiàn)屬于是最佳匹配的搜索窗口象素。圓周72代表使用在該全象素搜索中的模板宏塊象素。以相似于全象素搜索的方式,半象素搜索使用該模板宏塊象素72,以便確定最佳匹配半象素塊。實(shí)心圓點(diǎn)76代表與該全象素搜索結(jié)果相關(guān)的半象素。該半象素是從在該搜索窗口中的全象素計(jì)算出的。本發(fā)明包括用于計(jì)算這些半象素的一種裝置和方法。用于左上全象素的八個(gè)可能的半象素76由箭頭指示。每個(gè)半象素與模板宏塊象素比較,以便產(chǎn)生八個(gè)SAD值。所以,全象素搜索和半象素搜索的配合產(chǎn)生九個(gè)SAD結(jié)果(即一個(gè)全象素結(jié)果加上八個(gè)半象素結(jié)果)。這九個(gè)SAD結(jié)果的最小值被確定并且用于產(chǎn)生該結(jié)果運(yùn)動(dòng)矢量。應(yīng)該注意,作為半象素SAD計(jì)算的結(jié)果,可能該八個(gè)半象素的SAD值當(dāng)中沒(méi)有任何一個(gè)小于該全象素SAD結(jié)果。在這種情況下,運(yùn)動(dòng)矢量就從先前計(jì)算出的全象素塊確定。
匹配由該圓周表示的模板宏塊的可能的八個(gè)最佳半象素之一在圖3中示出。為了確定該八個(gè)可能半象素74的哪一個(gè)是最佳匹配的半象素,該模板宏塊象素72必須與八個(gè)半象素的每一個(gè)分別地比較。圖3示出該模板宏塊象素和與箭頭指示的左上半象素相關(guān)的半象素塊的比較。來(lái)自全部十六個(gè)比較的絕對(duì)差值被求和以便產(chǎn)生用于該八個(gè)半象素之一的SAD結(jié)果。該處理過(guò)程針對(duì)其余的七個(gè)半象素重復(fù)。一旦獲得全部八個(gè)SAD結(jié)果,則與先前計(jì)算出的全象素SAD的結(jié)果結(jié)合,并且確定出全部九個(gè)SAD的最小值。
為了更好地說(shuō)明半象素搜索,與在該模板宏塊中的該左上象素相關(guān)的八個(gè)半象素位置在圖4中示出。如前所述,來(lái)自全象素搜索的結(jié)果被包括在該正方形的框70中。為了確定環(huán)繞該框中左上角全象素的半象素76所需要的搜索窗口全象素被包括在正方形的框80中。對(duì)于左上角全象素來(lái)說(shuō),需要在該塊70中的四個(gè)象素和在該塊外面的五個(gè)象素。該角的半象素是通過(guò)對(duì)環(huán)繞它們的四個(gè)全象素取和并且最終被4去除以便獲得該四個(gè)象素的平均值而確定的。例如,該角落的半象素86是通過(guò)取和四個(gè)全象素81、82、83、84并且最終被四除而被確定的。非角落的半象素是通過(guò)計(jì)算在任一側(cè)的兩個(gè)半象素并且被二除而確定的。例如,半象素88是通過(guò)求和全象素84和87并且最后把該結(jié)果除以二而獲得的。
與在該模板宏塊70中的左上中間位置象素相關(guān)的八個(gè)半象素位置在圖5中示出。需要位于正方形框80中的全象素72,以便計(jì)算環(huán)繞在該宏塊70的頂行中的左中位置的全象素89的半象素76。
對(duì)于在塊70中的每個(gè)全象素,都必須計(jì)算出其全部八個(gè)半象素值。但是應(yīng)該注意,包括在圓90中的與左中全象素89相關(guān)的左邊的三個(gè)半象素也是它左邊的全象素的右邊的三個(gè)半象素。這些半象素先前針對(duì)左邊全象素已計(jì)算出,而不需要再次計(jì)算。所以,除了在最左邊的列中的全象素之外的列中的全象素,就只需要確定五個(gè)唯一的半象素,因?yàn)槠溆嗳齻€(gè)是針對(duì)該先前的全象素計(jì)算出的半象素。而且,對(duì)于每個(gè)全象素來(lái)說(shuō),只有五個(gè)半象素的三個(gè)需要被計(jì)算出,因?yàn)橄聦拥膬蓚€(gè)半象素可以結(jié)合在下行中的全象素的處理而被計(jì)算出出來(lái)。唯一的例外是在塊70中的第一和最后一行。
現(xiàn)在來(lái)更詳細(xì)地描述對(duì)于八個(gè)半象素的每一個(gè)而計(jì)算SAD值的裝置和方法。說(shuō)明根據(jù)本發(fā)明優(yōu)選實(shí)施例構(gòu)成的半象素SAD發(fā)生器的高級(jí)別框圖在圖6中示出。本發(fā)明的裝置和方法的操作為的是串行地計(jì)算這些半象素。七個(gè)搜索窗口象素和五個(gè)模板宏塊象素被輸入到寄存器中。半象素被從搜索窗口象素內(nèi)插并且模板宏塊象素被與這些半象素相比較。產(chǎn)生的差值被輸入到一個(gè)累加器,該累加器起到將該差值取絕對(duì)值并且將它加到一個(gè)累加寄存器的作用。在下一周期中,來(lái)自搜索窗口的一個(gè)附加的新全象素被讀入到該搜索窗口FIFO裝置中。該搜索窗口象素被再一次內(nèi)插以便產(chǎn)生新的半象素。該模板宏象素被與該新的半象素比較并且該產(chǎn)生的新差值被相加到在先前的周期中計(jì)算出的差值。針對(duì)在該搜索窗口象素塊中的保持在該全象素搜索期間計(jì)算出的最小SAD的全部象素以及環(huán)繞該塊的象素重復(fù)這個(gè)過(guò)程(圖1)。
半象素SAD發(fā)生器10包括兩個(gè)先進(jìn)先出(FIFO)存儲(chǔ)器陣列。第一個(gè)是搜索窗口FIFO裝置12,包括七個(gè)寄存器,每個(gè)寄存器用于保持一個(gè)搜索窗口象素。第二個(gè)是模板宏塊FIFO裝置30,包括五個(gè)寄存器,每個(gè)寄存器用于保持來(lái)自該模板宏塊的一個(gè)象素。箭頭表明象素被寫入到該FIFO裝置中以及從該FIFO裝置讀出的方向。兩個(gè)FIFO裝置都被從象素塊的左上角開(kāi)始并且連續(xù)到右側(cè)地饋送象素。在一行的最后,該過(guò)程從下面一行的左邊繼續(xù)進(jìn)行。
發(fā)生器10還包括用于對(duì)這些值進(jìn)行求和的多個(gè)加法器以及用于對(duì)中間結(jié)果提供延遲的寄存器或鎖存器。對(duì)于該加法器的輸入可以是其它加法器的輸出、鎖存器的輸出或在該FIFO裝置中的寄存器的輸出。
該原理把象素的一個(gè)完整行加上一個(gè)象素裝入到該搜索窗口FIFO裝置中。這使得除在相同行中的相鄰象素之間半象素之外還計(jì)算出在來(lái)自兩個(gè)相鄰的行的全象素之間的半象素。這個(gè)原理也被應(yīng)用到模板宏塊FIFO裝置。一個(gè)完整象素行加上一個(gè)象素被裝入到該模板宏塊FIFO裝置,以便實(shí)現(xiàn)在相鄰行的象素之間的半象素的計(jì)算。
特別地,對(duì)于加法器14的輸入是在該搜索窗口FIFO裝置中的寄存器0和寄存器6的內(nèi)容。對(duì)于加法器16的輸入是在該搜索窗口FIFO裝置中的寄存器0和寄存器1的內(nèi)容。加法器14的輸出被輸入到鎖存器18和第三加法器17。到該加法器17的其它輸入是鎖存器18的輸出,它也是到鎖存器22的輸入。加法器17的輸出是到鎖存器24的輸入,鎖存器24的輸出是到鎖存器28的輸入。加法器16的輸出是到鎖存器20的輸入。鎖存器20的輸出是到鎖存器26的輸入。
鎖存器20、22、24、26、28的輸出被輸入到八個(gè)減法器32、34、36、38、40、42、44、46的一個(gè)減法器組。每個(gè)減法器與一個(gè)半象素相關(guān)。加法器14、16、17的作用在于產(chǎn)生對(duì)于每個(gè)全象素是唯一的五個(gè)半象素。用四去除角落半象素以及用二去除非角落半象素的操作是在這些差值已經(jīng)求和之后的更遲的時(shí)間執(zhí)行。鎖存器提供了在產(chǎn)生這五個(gè)半象素過(guò)程中的必要的延遲。
鎖存器22的輸出被輸入到減法器34和40。鎖存器24的輸出被輸入到減法器36和42。鎖存器28的輸出被輸入到減法器32和38。鎖存器20的輸出被輸入到減法器44。鎖存器26的輸出被輸入到減法器46。模板宏塊FIFO寄存器0的內(nèi)容被輸入到減法器38、40、42、44、46。模板宏塊FIFO寄存器4的內(nèi)容被輸入到減法器32、34、36。隨著差值被這些減法器計(jì)算出來(lái),它們被輸入到累加器48、50、52、54、56、58、60、62。一個(gè)累加器被與每個(gè)減法器相關(guān)聯(lián)。對(duì)于累加器的輸入是其相關(guān)減法器的輸出。累加器的輸出代表用于該八個(gè)半象素的SAD結(jié)果。
注意,累加器執(zhí)行這種絕對(duì)值函數(shù)不是必須遵循的規(guī)則。做為選擇這種絕對(duì)值函數(shù)可以由減法器執(zhí)行。
控制器13把適當(dāng)?shù)目刂菩盘?hào)提供到FIFO裝置、加法器、鎖存器、減法器和累加器,例如時(shí)鐘、使能信號(hào)等等。該控制信號(hào)的定時(shí)可以來(lái)源于在下面介紹的定時(shí)表。該表描述了針對(duì)若干時(shí)鐘周期的FIFO裝置、加法器、鎖存器、減法器和累加器中的每一個(gè)的內(nèi)容。
如前所述,用于保持搜索窗口象素和模板宏塊象素的寄存器是作為一個(gè)FIFO裝置實(shí)現(xiàn)的。但是,這里介紹的該范例使用最小數(shù)目的寄存器實(shí)現(xiàn)本發(fā)明的方法。在不背離本發(fā)明的本質(zhì)的條件下,本專業(yè)技術(shù)人員可以使用不同數(shù)目的FIFO裝置或具有不同數(shù)目的寄存器的FIFO裝置實(shí)現(xiàn)一個(gè)半象素SAD發(fā)生器。
使用圖6的心動(dòng)式處理硬件,能夠?qū)崿F(xiàn)利用最小的硬件和低成本確定該半象素SAD結(jié)果。而且,本發(fā)明的發(fā)生器只要求從存儲(chǔ)器存取一次每個(gè)全象素的值。這種半象素以及對(duì)應(yīng)的SAD值的計(jì)算不需要多余的存儲(chǔ)器存取或多余的半象素計(jì)算。每個(gè)半象素只被計(jì)算一次。
本發(fā)明的這種半象素發(fā)生器的另一優(yōu)點(diǎn)是直到這種累加過(guò)程的結(jié)束都保持完美的精確性。換句話說(shuō),這種由二或四所除的過(guò)程是在用于每個(gè)SAD值的所有象素值已經(jīng)求和之后執(zhí)行的,這就增加了每個(gè)象素的精確性。
為了幫助理解本發(fā)明的操作,描述針對(duì)前11個(gè)時(shí)鐘周期的FIFO裝置、加法器、鎖存器、減法器和累加器的每一個(gè)的內(nèi)容的一個(gè)表格作為表1在下面給出。表1是利用在圖7中示出的象素標(biāo)記構(gòu)成的。搜索窗口全象素塊的一部分在該圖的上部分示出。模板宏塊象素在該圖的下部分示出。全部搜索窗口象素由在圓周中的大寫字母代表。用于計(jì)算在邊緣的半象素的環(huán)繞該塊的搜索窗口象素由在正方框中的大寫字母代表。半象素被表示為帶下標(biāo)的大寫字母。針對(duì)每個(gè)全象素計(jì)算出的三個(gè)唯一半象素是被下標(biāo)為1、2、3。在模板宏塊中的象素被表示為包括在圓周中的小寫字母表示。
在周期2,計(jì)算出半象素B1、B2和B3,并且半象素A1、A2和A3被分別地移入鎖存器22、28和26。由于相加A1和B1產(chǎn)生半象素B2。在該周期中,第一模板宏塊象素,象素a,被輸入到模板宏塊FIFO裝置,以便能夠產(chǎn)生第一差值。
在下一周期,周期3中,產(chǎn)生與全象素C相關(guān)的三個(gè)半象素C1、C2、C3,并且半象素B1、B2和B3被移位。全象素b被移入該FIFO裝置并且計(jì)算出第一差值。減法器36、40、42、44、46分別地計(jì)算在象素a和鎖存器28、22、24、20、和26的輸出之間的差值。差值結(jié)果a-A2、a-A1、a-B2、a-B3和a-A3被分別地輸入到累加器54、56、58、60、62。
該過(guò)程以針對(duì)輸入到該搜索窗口FIFO裝置的每個(gè)象素的新的一組三個(gè)半象素的計(jì)算繼續(xù)進(jìn)行。在每個(gè)周期期間,產(chǎn)生在與每個(gè)全象素(例如針對(duì)全象素A的A1、A2、A3、B2、B3)相關(guān)的五個(gè)上層半象素和對(duì)應(yīng)的模板宏塊象素(即象素a)之間的差值。三個(gè)下層半象素,例如E2、E1、F2不能被計(jì)算直到來(lái)自隨后行的象素被輸入到該FIFO裝置為止。
在環(huán)繞該圓周中的塊象素的正方框中的邊緣象素對(duì)于某些半象素計(jì)算是需要的。對(duì)于半象素的計(jì)算來(lái)說(shuō)屬不需要的所獲結(jié)果被放棄,并且不被用于產(chǎn)生輸入到該累加器的差值。在周期7和周期8過(guò)程中顯見(jiàn)其中沒(méi)有值被鐘控進(jìn)入該累加器??刂破魈峁┻m當(dāng)?shù)臅r(shí)鐘和使能信號(hào)以便實(shí)現(xiàn)這一目的。
一旦模板宏塊FIFO裝置充滿,即在周期8,則產(chǎn)生八個(gè)差值并且被累加,而不是在周期3到6期間的僅僅五個(gè)差值。在表1中概述的處理被繼續(xù)直到所有36個(gè)象素都被處理。在該點(diǎn),該累加器保持用于八個(gè)可能半象素的每一個(gè)的SAD結(jié)果。這些結(jié)果結(jié)合與來(lái)自全搜索的原始最佳匹配,并且確定全部九個(gè)SAD值的最小值。
雖然本發(fā)明已經(jīng)參考有限數(shù)目的實(shí)施例進(jìn)行了描述,但是本發(fā)明可以實(shí)現(xiàn)許多變化、改進(jìn)和其它的應(yīng)用。
權(quán)利要求
1.一種用于產(chǎn)生在包含在一個(gè)搜索窗口存儲(chǔ)器中的全象素塊與包含在一個(gè)預(yù)定義模板宏塊存儲(chǔ)器中的模板象素之間的半象素的絕對(duì)差值和(SAD)的一個(gè)裝置,所述的裝置包括用于保持包含在所述的搜索窗口中的全象素的搜索窗口先進(jìn)先出(FIFO)存儲(chǔ)器裝置;用于保持包含在所述的模板宏塊中的模板象素的模板宏塊FIFO裝置;連接到所述的搜索窗口FIFO裝置的內(nèi)插裝置,所述的內(nèi)插裝置用于計(jì)算環(huán)繞所述每一全象素的半象素值;連接到所述的內(nèi)插裝置和所述的模板宏塊FIFO裝置的減法裝置,所述的減法裝置用于計(jì)算在所述的半象素和所述的模板象素之間的差值;連接到所述的減法裝置的絕對(duì)值裝置,所述的絕對(duì)值裝置用于產(chǎn)生所述的減法裝置的輸出的絕對(duì)值;連接到所述的絕對(duì)值裝置的輸出的累加器裝置,所述的累加器裝置用于保持由絕對(duì)值裝置輸出的用于每一半象素SAD值的絕對(duì)差值的和;以及,控制器裝置,用于產(chǎn)生適當(dāng)?shù)目刂菩盘?hào)以便使能所述的半象素SAD值的產(chǎn)生。
2.根據(jù)權(quán)利要求1的裝置,其中所述的搜索窗口FIFO裝置包括足夠數(shù)目的寄存器,以便保持全象素的一個(gè)整行加上來(lái)自所述的搜索窗口的隨后行的至少一個(gè)象素。
3.根據(jù)權(quán)利要求1的裝置,其中所述的模板宏塊FIFO裝置包括足夠數(shù)目的寄存器,以便保持全象素的一個(gè)整行加上來(lái)自所述的搜索窗口的隨后行的至少一個(gè)象素。
4.根據(jù)權(quán)利要求1的裝置,其中內(nèi)插裝置包括適當(dāng)放置的加法器和寄存器,以便計(jì)算環(huán)繞每一全象素的半象素值。
5.根據(jù)權(quán)利要求1的裝置,其中的減法裝置包括兩輸入端減法器。
6.根據(jù)權(quán)利要求1的裝置,其中所述的減法裝置和所述的絕對(duì)值裝置共同包括結(jié)合一個(gè)絕對(duì)值函數(shù)的兩輸入端減法器。
7.根據(jù)權(quán)利要求1的裝置,其中所述的累加器裝置和所述的絕對(duì)值裝置共同包括在其輸入端結(jié)合一個(gè)絕對(duì)值函數(shù)的一個(gè)累加器。
8.根據(jù)權(quán)利要求1的裝置,其中每一個(gè)所述的全象素和每一模板象素只分別地從所述的搜索窗口存儲(chǔ)器和所述的模板宏塊存儲(chǔ)器存取一次。
9.一種用于產(chǎn)生在包含在一個(gè)搜索窗口存儲(chǔ)器中的全象素塊和包含在一個(gè)預(yù)定義模板宏塊存儲(chǔ)器中的模板象素之間的半象素的絕對(duì)差值和(SAD)的一種方法,所述的方法包括步驟提供搜索窗口先進(jìn)先出(FIFO)裝置,用于移位通過(guò)包含在所述的搜索窗口中的全象素;提供一個(gè)模板宏塊FIFO裝置,用于移位通過(guò)包含在所述的模板宏塊中的模板象素;對(duì)于每一全象素來(lái)說(shuō),只內(nèi)插一次在水平、垂直和對(duì)角線的方向環(huán)繞每一全象素的半象素的值;計(jì)算在所述半象素和所述的模板象素之間的差值;確定計(jì)算步驟期間產(chǎn)生的差值的絕對(duì)值;以及,累加在用于對(duì)每一半象素SAD值進(jìn)行確定的步驟期間產(chǎn)生的絕對(duì)差值的和。
10.根據(jù)權(quán)利要求9的方法,其中每一個(gè)所述的全象素和每一個(gè)所述的模板象素只分別地從所述的搜索窗口存儲(chǔ)器和所述的模板宏塊存儲(chǔ)器存取一次。
全文摘要
公開(kāi)一種用于計(jì)算針對(duì)半象素的SAD值的新穎裝置和方法。本發(fā)明以串行方式內(nèi)插來(lái)自包含在一個(gè)搜索窗口(70)中的全象素的半象素值。隨后這些半象素與在一個(gè)模板宏塊中的象素相比較。隨后產(chǎn)生差值并累加在寄存器中。該搜索窗口(70)和模板宏塊象素被移位到FIFO裝置中從而有多個(gè)加法器產(chǎn)生半象素值。鎖存器(20、22、24、26、28)被用于存儲(chǔ)和延遲該半象素值,以便輸入到一組減法器。減法器計(jì)算該內(nèi)插的半象素和該模板宏塊象素之間的差值。該減法器的輸出被累加而產(chǎn)生八個(gè)SAD值。
文檔編號(hào)G06T7/00GK1246187SQ97181535
公開(kāi)日2000年3月1日 申請(qǐng)日期1997年12月30日 優(yōu)先權(quán)日1997年1月3日
發(fā)明者厄勒茲·斯泊林, 米切爾·哈萊泊, 阿米爾·弗雷杰特, 吉爾帕特·斯卡爾特奇 申請(qǐng)人:薩帕克斯技術(shù)(以色列)有限公司