專利名稱:用于符合mpeg2的實時編碼的有效靈活的運動估計結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于符合MPEG2的數(shù)字視頻編碼的實時運動估計。運動估計通過使用運動矢量在圖象間起壓縮作用。根據(jù)本發(fā)明,數(shù)字視頻數(shù)據(jù)流的時域壓縮通過在參考圖象的至少一個搜索單元中分級搜索象素為當(dāng)前宏塊尋找最佳匹配宏塊來實現(xiàn)。接著是在當(dāng)前宏塊和參考圖象的最佳匹配宏塊之間構(gòu)造運動矢量。
在過去的十年中,世界范圍的電子通信系統(tǒng)的出現(xiàn)改善了人們接收和發(fā)送信息的方式。特別是在最近的幾年中,實時視頻和音頻系統(tǒng)的性能得到了極大的提高。為了向用戶提供諸如圖象點播和會議電視之類的業(yè)務(wù),需要占用很多的網(wǎng)絡(luò)帶寬。事實上網(wǎng)絡(luò)帶寬通常是這類系統(tǒng)有效性的主要障礙。
為了克服網(wǎng)絡(luò)帶來的限制,出現(xiàn)了壓縮系統(tǒng)。這些系統(tǒng)通過去除圖象序列中的冗余來減少需要傳輸?shù)囊曨l和音頻的數(shù)據(jù)量。在接收端,圖象序列被解壓縮并且可以實時地顯示。
現(xiàn)有視頻壓縮標(biāo)準(zhǔn)的一個例子是MPEG標(biāo)準(zhǔn)。在MPEG標(biāo)準(zhǔn)中,視頻壓縮被規(guī)定為在給定圖象內(nèi)的壓縮和圖象間的壓縮。圖象內(nèi)的視頻壓縮通過離散余弦變換、量化和游程編碼等處理來完成。圖象間的壓縮通過一個被稱之為運動估計的處理來實現(xiàn),其中運動矢量被用來描述一系列的圖象元素(象素)從一幅圖象到另一圖象的移動。這些運動矢量本身要被編碼。
運動估計算法是重復(fù)性的操作,如果要有效地實現(xiàn),則需要極大的計算能力。如果運動估計要在實時的視頻傳輸環(huán)境下實現(xiàn)更是這樣。此外,系統(tǒng)設(shè)計者施加的兩個重要的限制是完成運動估計功能需要占用的卡/板的面積和元器件的費用。特別要包括用于存儲參考圖象數(shù)據(jù)所需的DRAM和/或SRAM的數(shù)量。完善的運動估計數(shù)據(jù)所需流程的要求是使計算能力最大以便滿足實時編碼的要求,同時使實現(xiàn)該功能需要占用的芯片面積最小。另一個很明顯的要求是運動估計的數(shù)據(jù)流程要很靈活以便能夠支持多種系統(tǒng)成本估計。
本發(fā)明的一個目的是提供完善的運動估計數(shù)據(jù)流程,使計算能力能夠達到最大以滿足實時編碼的要求,同時在其實現(xiàn)時芯片占用的面積要最小。
本發(fā)明的另一個目的是提供靈活的運動估計數(shù)據(jù)流程以便能夠支持多種系統(tǒng)成本估計。
本發(fā)明的再一個目的是提供一種分級的運動估計方法和設(shè)備。
本發(fā)明的又一個目的是提供一種分級的運動估計方法和設(shè)備,其中分級運動估計搜索是藉利用經(jīng)過下取樣之后的全象素值來進行的。
本發(fā)明的又一個目的是提供一種分級的運動估方法和設(shè)備,其中分級運動估計搜索是場搜索。
利用這里介紹的方法和設(shè)備能夠達到上述目的和其他目的。
根據(jù)本發(fā)明,提供了一種數(shù)字視頻數(shù)據(jù)流的時域壓縮方法。這種方法開始時要在參考圖象的至少一個搜索單元中分級搜索象素以尋找對應(yīng)于當(dāng)前宏塊的最佳匹配宏塊。下一步是在最佳匹配宏塊和當(dāng)前宏塊之間構(gòu)造運動矢量。
根據(jù)另一個實施例,它提供了一種數(shù)字視頻數(shù)據(jù)流的時域壓縮方法。這種方法包括通過利用經(jīng)過下取樣之后的全象素值在參考圖象中搜索象素,從而尋找最佳匹配宏塊。最佳匹配宏塊是指在參考圖象中與當(dāng)前宏塊最相象的宏塊。下一步是在最佳匹配宏塊和當(dāng)前宏塊之間構(gòu)造運動矢量。
根據(jù)本發(fā)明的又一個實施例,它提供了一種數(shù)字視頻數(shù)據(jù)流的時域壓縮方法,包括具有偶/偶、奇/奇、偶/奇,奇/偶場搜索單元輸入的場搜索。搜索是針對參考圖象場中的象素的,目的是尋找其中對應(yīng)于當(dāng)前宏塊的最佳匹配宏塊。同前面一樣,要在最佳匹配宏塊和當(dāng)前宏塊之間構(gòu)造運動矢量。
參考本發(fā)明的附圖可以理解本發(fā)明。
圖1是通用的符合MPEG2的編碼器11的流程圖,包括離散余弦變換器21,量化器23,變長編碼器25,反量化器29,反離散余弦變換器31,運動補償41,幀存儲器42和運動估計43。數(shù)據(jù)通路包括第i幀圖象輸入111,差值數(shù)據(jù)112,運動矢量113,圖象輸出121,用于運動估計和補償?shù)姆答亪D象131,以及經(jīng)過運動補償后的圖象101。本圖假設(shè)第i幀圖象已經(jīng)在幀存儲器或幀存42中存在,并且正在用運動估計對第i+1幀圖象進行編碼。
圖2說明了I,P和B圖象,給出的例子中有它們的顯示順序,傳輸順序和前向及后向運動預(yù)測。
圖3給出了從當(dāng)前幀或圖象中的運動估計塊到后續(xù)幀或前面幀或圖象中的最佳匹配塊的搜索。單元211和211’表示在兩圖象中的相同位置。
圖4給出了圖象塊根據(jù)運動矢量從它們在前一圖象中的位置移動到新圖象中的位置,同時還給出了利用運動矢量進行調(diào)整之后的前一幀的圖象塊。
圖5給出了帶有分級搜索單元201和精細搜索單元221的搜索單元的總體結(jié)構(gòu)。分級搜索單元201有一個下取樣全象素搜索單元203。精細搜索單元有一個全象素的搜索單元223,它為半象素搜索單元225和雙基搜索單元227提供輸入。雙基搜索單元227還要從半象素搜索單元225接收輸入。
圖6顯示了分級運動估計的數(shù)據(jù)流程圖,分級搜索單元201從前一個分級搜索單元(圖中未畫出)接收最佳匹配差值/偏移數(shù)據(jù)和從當(dāng)前宏塊(CMB)數(shù)據(jù)總線205接收數(shù)據(jù),并把它的輸出送給精細搜索/重建單元221和分級搜索存儲器211。精細搜索/重建單元221接收來自當(dāng)前宏塊數(shù)據(jù)總線205的數(shù)據(jù),同時把數(shù)據(jù)發(fā)送到Diff/Qxfrm總線231和精細搜索存儲器229或者是從Diff/Qxfrm總線231和精細搜索存儲器229接收數(shù)據(jù)。精細搜索/重建單元221的輸出被送到運動矢量總線241。
圖7顯示了分級搜索單元的數(shù)據(jù)流,它通過亮度緩沖器207從當(dāng)前宏塊數(shù)據(jù)總線(只有亮度信號205)接收數(shù)據(jù),同時接收來自搜索數(shù)據(jù)總線207的數(shù)據(jù)以及將數(shù)據(jù)傳送給搜索數(shù)據(jù)總線207。圖中顯示了四個場搜索,f1/f1,301,f2/f2,303,f1/f2,305,和f2/f1,307。它們分別提供了f1/f1的差值,f2/f2的差值,f1/f2的差值,以及f2/f1的差值。這些數(shù)據(jù)送到最佳匹配結(jié)果選擇單元311,該單元輸出最佳匹配的差值/偏移313。
圖8顯示了精細搜索/重建單元212的數(shù)據(jù)流程圖。色度和亮度數(shù)據(jù)在存儲器控制器301的控制下通過CMB數(shù)據(jù)總線205和亮度/色度緩沖器207進入該單元。數(shù)據(jù)通過全分辨率單元(FR)321和半分辨率單元(HR)323送到雙基單元(DP)325,并通過該雙基單元送到FD單元327,然后從FD單元327被送到運動調(diào)整單元(MA)329。運動估計處理單元(MEPROC)331對這些單元進行控制并向運動矢量總線(MV總線)發(fā)送控制信號。FD單元的輸出327送到Diff/QXFRM數(shù)據(jù)總線332,并從那里到達反量化器(IQ)333和反離散余弦變換單元(ID)335,最后回到運動調(diào)整單元(MA)329。
表1顯示了運動估計的策略,包括搜索模式(分級或是無分級),圖象結(jié)構(gòu)(隔行或是逐行),圖象類型(幀內(nèi),預(yù)測,雙向),運動估計選項(雙基,無雙基),搜索次數(shù),搜索類型,以及精細尺度。
這里公開的是一種運動估計結(jié)構(gòu),它靈活高效,并且能夠滿足實時編碼環(huán)境的嚴格要求。
本發(fā)明涉及符合MPEG和HDTV的編碼器和編碼過程。編碼器完成的編碼功能,包括數(shù)據(jù)輸入,運動估計,宏塊模式產(chǎn)生,數(shù)據(jù)重建,熵編碼和數(shù)據(jù)輸出。運動估計和運動補償起著時域壓縮的作用。它們是重復(fù)性的操作,需要很高的運算能力,同時它們包括集中的重建處理,比如反離散余弦變換,反量化和運動補償。
具體而言,本發(fā)明涉及運動估計、補償和預(yù)測,更具體而言涉及運動矢量的計算。運動補償利用時域冗余度的方法是把當(dāng)前圖象劃分為塊(比如宏塊),然后在前面已經(jīng)傳輸?shù)膱D象的相同位置附近尋找具有相似內(nèi)容的塊。只有當(dāng)前塊象素和從參考圖象中取出的預(yù)測塊象素的差值才真正進行用于傳輸?shù)膲嚎s并在以后傳輸出去。
最簡單的運動預(yù)測和補償方法是在“I”圖象中記錄每個象素的亮度和色度即強度和顏色,然后在后續(xù)的圖象中為每個特定的象素記錄亮度和色度的變化即強度和顏色的變化。但是從傳輸媒體帶寬、存儲器、處理器能力以及處理時間的角度來看這樣做是不經(jīng)濟的,因為物體在圖象間是運動的,也就是說象素內(nèi)容從一幅圖象中一個位置移動到了后續(xù)圖象中的另一個位置。一種更先進的思想是利用前面的圖象來預(yù)測一個塊的象素在后續(xù)的一幅圖象或多幅圖象中的位置,比如說用運動矢量,并且以“預(yù)測圖象”或“P”圖象的形式寫下該結(jié)果。更具體而言,這就要牽涉到對第i+1幀圖象中的象素或宏塊在第i幀圖象中的位置進行最佳預(yù)測或估計。進一步還可以利用后面圖象和前面的圖象來預(yù)測象素塊將在中間或“B”圖象中的什么位置。
應(yīng)該注意圖象的編碼順序和圖象傳輸?shù)捻樞虿⒉灰欢ㄅc圖象顯示的順序一致。參看圖2。對于I-P-B的系統(tǒng),輸入圖象的傳輸順序不同于編碼順序,輸入的圖象必須要暫時存儲起來直到用于編碼。有一個緩沖器會將這些輸入保存直到使用它們。
為了便于描述,圖1顯示了通用的符合MPEG的編碼流程圖。在這個流程圖中將處理第i幀圖象和第i+1幀圖象以便產(chǎn)生運動矢量。運動矢量預(yù)測一個象素宏塊在前面和/或后面圖象中的位置。使用運動矢量而不是整個圖象是MPEG和HDTV標(biāo)準(zhǔn)中時域壓縮的關(guān)鍵因素。正如圖1所示,運動矢量一旦產(chǎn)生就將被用來把第i幀圖象中象素宏塊平移到第i+1幀圖象中去。
正如圖1所示,在編碼過程中第i幀和第i+1幀圖象在編碼器11中被處理以便產(chǎn)生運動矢量,其它的圖象,比如第i+1幀圖象和后面的圖象也將用這種方式來進行編碼和傳輸。后續(xù)圖象的輸入圖象111X被送入編碼器的運動估計單元43。運動矢量113作為運動估計單元43的輸出被構(gòu)成。這些運動矢量被運動補償單元41用來從前面和/或后面的圖象中恢復(fù)被稱作為參考數(shù)據(jù)的宏塊數(shù)據(jù),作為本單元的輸出。運動補償單元41的一個輸出帶負號地與運動估計單元43的輸出相加,并將結(jié)果送到離散余弦變換器21的輸入。離散余弦變換器21的輸出在量化器23中被量化。量化器23的輸出被分為兩路輸出121和131;一路輸出121送入下一個單元43以在傳輸前被進一步地壓縮和處理,比如說送給游程編碼器;另一路輸出131通過重建編碼的象素宏塊然后被存儲到幀存儲器42中。在用于描述目的編碼器中,這個第二路輸出131通過反量化29和反離散余弦變換31得到差值宏塊的一個有損失的版本。這個數(shù)據(jù)同運動補償單元41的輸出相加得到原先圖象的一個有損失的版本送入幀存儲器42。
正如圖2所示,圖象類型有三種?!皫瑑?nèi)圖象”或“I”圖象被完全編碼和傳輸,同時不需要定義運動矢量。這些“I”圖象起著運動矢量源的作用?!邦A(yù)測圖象”或“P”圖象通過相對于前面圖象的運動矢量來得到,并且為別的圖象起著運動矢量源的作用。最后,“雙向圖象”或“B”圖象通過相對于另外兩幅圖象的運動矢量來得到,一是前面的圖象一是后面的圖象,它不能作為運動矢量的源。運動矢量要從“I”和“P”圖象得到并且用于構(gòu)造“P”和“B”圖象。
圖3顯示的是一種進行運動估計的方法,該方法開始時要在前一幀圖象中一個區(qū)域中對第i+1幀的宏塊211進行全搜索,尋找最佳匹配宏塊213(211’與211處在同一位置但它在前一幀圖象之中)。以這種方式平移這些宏塊就得到了第i+1幀圖象的宏塊類型,如圖4所示。這樣,第i幀的圖象只要比如說藉利用運動矢量和差值數(shù)據(jù)做很少的改變以便生成第i+1幀圖象。被編碼的是差值數(shù)據(jù)和運動矢量,而不是第i+1幀圖象本身。運動矢量逐幀圖象地平移圖象的位置,而差值數(shù)據(jù)載有色度、亮度和飽和度的變化,也就是顏色和亮度的變化。
回到圖3,我們從在第i幀圖象中的與在第i+1幀圖象中的211X位置相同的211’位置開始尋找好的匹配。在第i幀圖象中要創(chuàng)建一個搜索窗口。我們要在這個搜索窗口中搜索最佳匹配。一旦找到,該宏塊的最佳運動矢量就被編碼。最佳匹配宏塊的編碼包括運動矢量,也就是說在下一幀圖象中,在Y方向有多少個象素和在X方向有多少個象素是最佳匹配位移的。被編碼的還有差值數(shù)據(jù),也被稱為“預(yù)測誤差”,它是在當(dāng)前宏塊和最佳匹配宏塊之間在色度和亮度上的差值。
圖4給出了圖象塊根據(jù)運動矢量從它們在前一幀圖象中的位置移動到新圖象中的位置,同時還給出了利用運動矢量進行調(diào)整后的前一幀的圖象塊。
本發(fā)明的總體結(jié)構(gòu)顯示在圖5和圖6之中。如圖5所示,采用了兩級分級處理器結(jié)構(gòu),而如圖6所示,采用了兩級分級搜索的方法。
當(dāng)前宏塊數(shù)據(jù)總線(CMB數(shù)據(jù)總線)205被用來給分級搜索單元201和精細搜索/重建單元202輸入當(dāng)前宏塊(CMB)的亮度數(shù)據(jù)。這條總線還為精細搜索/重建單元提供CMB的亮度和色度數(shù)據(jù)。
圖中所示的分級搜索單元201通常被用來藉使用下取樣的CMB數(shù)據(jù)來完成其搜索操作。用戶可以選擇數(shù)據(jù)下取樣的程度,其在水平方向上從最大的4∶1到最小的1∶1(即沒有下取樣)。所使用的這類單元的數(shù)目根據(jù)需要的搜索范圍可以變化(1,2或4)。分級搜索單元201存儲和取出分級搜索存儲器中的I-幀和P-幀的亮度數(shù)據(jù)。分級搜索存儲器的大小取決于圖象數(shù)據(jù)下取樣的程度。如果用戶選擇進行下取樣,所存儲的亮度搜索數(shù)據(jù)與對輸入的當(dāng)前宏塊(CMB)數(shù)據(jù)進行下取樣之后的數(shù)據(jù)量相當(dāng)。在搜索結(jié)束時,分級搜索單元根據(jù)最小絕對差值并通過最佳匹配差值/偏移總線為給定的當(dāng)前宏塊(CMB)輸出最佳匹配搜索結(jié)果和它的相對于當(dāng)前宏塊(CMB)位置相應(yīng)的偏移。上面的描述是針對亮度的,但是也可以用于色度和/或亮度和色度數(shù)據(jù)。
圖5,6和8中所示的精細搜索/重建單元221既可以在獨立環(huán)境下(也就是說沒有附加的分級搜索單元)為IP的編碼而工作,也可以與附加的分級搜索單元一起為IPB的編碼而工作。該單元221利用未經(jīng)下取樣的當(dāng)前宏塊(CMB)的亮度數(shù)據(jù)來完成它的搜索操作而不是利用存儲在精細搜索存儲器中的重建的前面和/或后面的I-幀和P-幀數(shù)據(jù)。當(dāng)搜索結(jié)束時,精細搜索/重建單元在DIFF/QXFRM數(shù)據(jù)總線231上輸出幀內(nèi)當(dāng)前宏塊(CMB)的亮度和色度的象素值或是輸出非幀內(nèi)當(dāng)前宏塊(CMB)的亮度和色度減去最佳匹配精細宏塊(RMB)的亮度和色度的象素的差值數(shù)據(jù)。此外,當(dāng)輸出非幀內(nèi)的差值數(shù)據(jù)時,運動矢量被輸出到運動矢量總線(MV總線)241上,該運動矢量相應(yīng)于最佳匹配參考宏塊(RMB)位置相對于當(dāng)前宏塊(CMB)的位置。
在對輸出的幀內(nèi)數(shù)據(jù)或非幀內(nèi)的差值數(shù)據(jù)完成離散余弦變換(DCT)和量化后,變換后的亮度和色度塊通過DIFF/QXFRM數(shù)據(jù)總線231被輸入到精細搜索/重建單元,使得精細搜索/重建單元221能夠正確地重建被輸出到精細搜索存儲器的I和P幀的數(shù)據(jù)。在每個單元內(nèi)采用擴充的流水線其目的是為了滿足實時編碼環(huán)境的性能要求。
這里公開的運動補償結(jié)構(gòu)所采用的總的搜索策略被分成下面圖6到圖8所示的流水線部分。
正如圖6和圖8所示,分級搜索單元201藉利用下取樣(平均)的全象素值完成典型的搜索。在藉利用非重建的當(dāng)前宏塊(CMB)數(shù)據(jù)從前面和/或后面的I-和P-幀中確定了最佳的經(jīng)過下取樣的匹配后,精細搜索單元221藉利用在最佳下取樣匹配的偏移附近重建的精細搜索數(shù)據(jù)來進行非下取樣的全象素搜索。在確定了非下取樣的全象素匹配之后,半象素和可選用的雙基(DP)精細搜索根據(jù)最佳無下取樣全象素匹配的位置藉利用重建的精細數(shù)據(jù)來進行。根據(jù)由最小絕對差值確定的最佳匹配運動估計的結(jié)果,如果宏塊是要被幀內(nèi)或非幀內(nèi)編碼,則將分別輸出原先的當(dāng)前宏塊(CMB)或最佳匹配差值宏塊的亮度和色度數(shù)據(jù)。非幀內(nèi)的結(jié)果有三種不同的可能結(jié)果CMB-RMB全象素最佳匹配CMB-RMB半象素最佳匹配CMB-RMB雙基最佳匹配分級搜索單元被顯示在圖5和圖6之中。該單元的數(shù)據(jù)流程圖在圖7中給出。如圖所示,當(dāng)前宏塊(CMB)的亮度數(shù)據(jù)保存在亮度緩沖器207中。數(shù)據(jù)的下取樣就在這里進行。為了給用戶提供盡可能多的靈活性,根據(jù)搜索的范圍和搜索存儲器的大小,可以有下列的下取樣選項4∶1——宏塊的每個象素行存儲四個象素,每個象素取同一行中四個連續(xù)象素值的平均值。這樣每個單元能夠提供最大的搜索窗口(水平+/-64,垂直+/-56),同時需要的搜索存儲器最少(兩個搜索參考幀為0.25MB)。
2∶1——宏塊的每個象素行存儲八個象素,每個象素取同一行中每兩個連續(xù)象素的平均值。這樣每個單元能夠提供次最大的搜索窗口(水平+/-32,垂直+/-32),同時需要次最大的搜索存儲器(兩個搜索參考幀為0.5MB)。
1∶1——每個象素行存儲十六個象素(無下取樣)。這樣每個單元能夠提供最小的搜索窗口(水平+/-16,垂直+/-16),同時需要最大的搜索存儲器(兩個參考搜索幀為1MB)。
經(jīng)過下取樣或是沒有經(jīng)過下取樣的CMB數(shù)據(jù)通過亮度緩沖器207輸出到四個場搜索單元,301,303,305和307,如圖7所示。對I-和P-圖象來說,當(dāng)前宏塊(CMB)數(shù)據(jù)還要通過搜索數(shù)據(jù)總線輸出到分級搜索存儲器。注意,B-圖象的當(dāng)前宏塊(CMB)數(shù)據(jù)將不會輸出到分級搜索存儲器,因為MPEG2標(biāo)準(zhǔn)使B-圖象不能作為參考幀。包含在搜索窗口中的所有宏塊的搜索存儲器數(shù)據(jù)也將被輸入到四個場搜索單元。當(dāng)只使用—個搜索分級搜索單元時,在獲取搜索數(shù)據(jù)時要保證位于搜索窗口中心的搜索宏塊(SMB)與正在被搜索的宏塊處于相同的位置。當(dāng)使用兩個或四個分級搜索單元時,在獲取搜索數(shù)據(jù)時要保證位于所有單元的組合搜索窗口中心的搜索宏塊位置與當(dāng)前宏塊(CMB)位置的偏移等于前一圖象的平均運動矢量。
如圖7所示,場搜索是在分級搜索單元中進行的。f1/f1場搜索單元301用當(dāng)前宏塊(CMB)的奇數(shù)行對搜索數(shù)據(jù)的奇數(shù)行進行搜索。f2/f2場搜索單元303用當(dāng)前宏塊(CMB)的偶數(shù)行對搜索數(shù)據(jù)的偶數(shù)行進行搜索。f1/f2場搜索單元305用當(dāng)前宏塊(CMB)的奇數(shù)行對搜索數(shù)據(jù)的偶數(shù)行進行搜索。f2/f1場搜索單元307用當(dāng)前宏塊(CMB)的偶數(shù)行對搜索數(shù)據(jù)的奇數(shù)行進行搜索。
對于這些單元輸出的每個差值數(shù)據(jù),通過合并f1/f2和f2/f2場搜索的結(jié)果以及f1/f2和f2/f1場搜索的結(jié)果便得到另外兩個幀搜索結(jié)果,每個結(jié)果被輸入到最佳匹配結(jié)果選擇單元311。單元311進行的第一步工作是給每個結(jié)果加一個加權(quán)因子,稱之為基本加權(quán)?;炯訖?quán)值隨搜索宏塊(SMB)相對于前一圖象的平均運動的偏移位置而變化。相對于前一圖象的平均運動矢量,一個給定的搜索宏塊到當(dāng)前宏塊(CMB)偏置的位移越遠,加到該搜索位置結(jié)果的基本加權(quán)值就越大。這樣,搜索就趨向于選擇最緊跟前一圖象平均運動軌跡的SMB位置。
該單元在最佳匹配差值/位移總線上輸出的結(jié)果的數(shù)目取決于正在被搜索的圖象的格式。對幀(逐行)格式的搜索,輸出五個結(jié)果四個最佳匹配的場搜索結(jié)果(f1/f1,f2/f2,f1/f2,f2/f1),一個最佳當(dāng)前宏塊的幀搜索結(jié)果(f1/f1+f2/f2差值和f1/f2+f2/f1差值的最小值)。對于場(隔行)格式的搜索,輸出兩個結(jié)果與當(dāng)前宏塊(CMB)奇偶性相同的最佳幀搜索(f1/f1+f2/f2的差值最小),與當(dāng)前宏塊奇偶性相反的最佳幀搜索(f1/f2+f2/f1的差值最小)。
此外,當(dāng)對B-圖象進行搜索操作時,要產(chǎn)生兩組這樣的結(jié)果(一組是對前面參考圖象的搜索,另一組是對后面參考圖象的搜索)。除了最小的絕對差值之外,還要輸出產(chǎn)生最小值的SMB的偏移位置。
正如上面所提到的那樣,可以采用多個分級搜索單元來擴大搜索窗口的大小。當(dāng)采用兩個搜索單元時,使用0.5MB的搜索存儲器可以得到的最大搜索窗口為水平+/-128,垂直+/-56,或者是水平+/-64,垂直+/-112。當(dāng)采用最大數(shù)目的四個單元時,使用1MB的搜索存儲器可以得到的最大搜索窗口大小為水平+/-128,垂直+/-112。在有多個分級搜索單元的情況下,最佳匹配的差值/偏移結(jié)果將以串級鏈方式從一個單元傳送到另一個單元。在這種情況下,位于串級鏈頂端的第一個發(fā)送單元將它的絕對差值和偏移結(jié)果傳送給第一個接收單元。第一個接收單元將其搜索的結(jié)果與從第一個發(fā)送單元接收到的結(jié)果進行比較,然后將最小的絕對值差值和偏移結(jié)果傳送給第二個接收單元。這個過程一直進行下去直到鏈上的最后一個單元將最終的最小絕對差值和偏移結(jié)果傳送到精細搜索/重建單元為止。
精細搜索/重建單元被顯示在圖5,6和8中。在圖8中還專門給出該單元的數(shù)據(jù)流程圖。正如圖中所示,當(dāng)前宏塊(CMB)的亮度和色度數(shù)據(jù)從CMB數(shù)據(jù)總線205上接收下來并被存儲到亮度/色度緩沖器207中。亮度數(shù)據(jù)與前面所述的分級搜索單元所接收到的亮度數(shù)據(jù)是相同的。為了最有效地按流水線處理運動估計過程,緩沖器被設(shè)計成能夠保持兩個宏塊的亮度數(shù)據(jù)和一個宏塊的色度數(shù)據(jù)。
運動估計精細步驟的第一步在全分辨率(FR)單元321進行。該單元從亮度/色度緩沖器207取出當(dāng)前宏塊(CMB)的亮度數(shù)據(jù),同時通過MC(存儲器控制器)單元301從精細搜索存儲器中取出從屬于全象素精細搜索窗口的參考宏塊(RMB)的亮度數(shù)據(jù)。全分辨率單元(FR)321所需要的用來完成精細數(shù)據(jù)獲取的控制信息(地址和獲取規(guī)模)由運動估計處理單元(MEPROC)331根據(jù)正在進行的操作是有分級的或是無分級的(即沒有分級搜索單元)來確定。如果工作在無分級模式,運動估計處理單元(MEPROC)331將全象素精細搜索的中心定位在當(dāng)前宏塊(CMB)位置的附近。如果工作在分級搜索模式,運動估計處理單元(MEPROC)331要利用通過最佳匹配的差值/偏移總線330接收到的分級搜索單元的結(jié)果,其目的是使全象素精細搜索的中心定位在偏移的位置附近。為了滿足實時性能的要求,根據(jù)搜索的模式(分級或是無分級)、圖象的結(jié)構(gòu)和類型、以及用戶選擇的運動估計選項,搜索進行的次數(shù)和類型以及搜索窗口的大小可以變化。表1對這些信息進行了總結(jié)。注意,在I-圖象中也進行了運動估計搜索,其目的是為了產(chǎn)生錯誤隱藏的運動矢量,用戶可以選擇將它們插入到壓縮后的比特流中去。
在表1中,Hier表示分級搜索模式,Non-Hier表示無分級搜索模式,DP表示雙基運動估計,x Ref表示為搜索而規(guī)定的究竟是1個(奇偶性相反)還是2個(奇偶性相同和相反)參考場,OP表示與當(dāng)前宏塊(CMB)的奇偶性相反的參考宏塊(RMB)的場數(shù)據(jù)。SP表示與當(dāng)前宏塊(CMB)的奇偶性相同的參考宏塊(RMB)的場數(shù)據(jù),(PR)表示存儲在精細搜索存儲器中的前面圖象的精細搜索數(shù)據(jù),(FR)表示存儲在精細搜索存儲器中的后面圖象的精細搜索數(shù)據(jù),(BR)表示存儲在精細搜索存儲器中前面和后面的精細搜索數(shù)據(jù)之間的雙向內(nèi)插(平均),f1/f1表示被用來搜索當(dāng)前宏塊(CMB)奇數(shù)場行的奇數(shù)行的精細數(shù)據(jù),f1/f2表示被用來搜索當(dāng)前宏塊(CMB)奇數(shù)場行的偶數(shù)行的精細數(shù)據(jù),f2/f1表示被用來搜索當(dāng)前宏塊(CMB)偶數(shù)場行的奇數(shù)行的精細數(shù)據(jù),f2/f2表示被用來搜索當(dāng)前宏塊(CMB)偶數(shù)場行的偶數(shù)行的精細數(shù)據(jù),f1/fx表示被用來搜索當(dāng)前宏塊(CMB)奇數(shù)場行的奇數(shù)行或偶數(shù)行的精細數(shù)據(jù),這要根據(jù)f1/f1或f1/f2分級搜索單元的結(jié)果是否產(chǎn)生較好的匹配,而f2/fx表示用于搜索當(dāng)前宏塊(CMB)偶數(shù)場行的奇數(shù)行或偶數(shù)行的精細數(shù)據(jù),這要根據(jù)f2/f1或f2/f2分級搜索單元的結(jié)果是否產(chǎn)生較好的匹配。在為每個搜索位置確定絕對差值時,要給每個結(jié)果加一個基本的加權(quán)因子,其方法與前面所述對分級搜索單元加權(quán)的方法相同。對每種搜索類型進行搜索的最終最佳匹配結(jié)果是由最小絕對差值加上基本加權(quán)值來確定的。
在搜索操作結(jié)束時,F(xiàn)R單元輸出CMB數(shù)據(jù)同時還輸出圍繞在每個最佳匹配的RMB附近的足夠的精細數(shù)據(jù)以便進行多達八個的半象素的宏塊搜索。對于隔行的圖象,將輸出一個(OP場)或兩個(SP場,OP場)最佳參考宏塊(RMB)搜索區(qū)域,對于逐行圖象,將輸出兩個場最佳匹配參考宏塊(RMB)搜索區(qū)域(最佳CMBf1匹配,最佳CMBf2匹配)和一個最佳參考宏塊(RMB)幀搜索區(qū)域。注意為傳輸最佳匹配的參考宏塊(RMB)搜索區(qū)域的數(shù)據(jù),采用了44比特的總線,這是因為在B-圖象中當(dāng)雙向參考宏塊(RMB)數(shù)據(jù)產(chǎn)生最佳匹配時,每一個參考宏塊(RMB)最佳匹配象素值要用11比特的字節(jié)來表示(參考美國專利申請序列號08/411,100和美國專利申請序列號08/602,472,這里加以引用,以供參考)。此外,對每個最佳匹配的RMB搜索區(qū)域的最佳匹配絕對差值和偏移結(jié)果將輸出給MEPROC單元。
第二個運動估計精細步驟在半分辯率(HR)單元323進行。該單元對圍繞在全分辨率(FR)單元321確定的最佳匹配的全象素參考宏塊(RMB)附近的多達八個的半象素的參考宏塊(RMBs)進行精細搜索。當(dāng)對特定的搜索操作確定最佳匹配的半象素參考宏塊(RMB)位置(即產(chǎn)生了最小絕對差值的位置)時,最佳匹配的絕對差值和它的相應(yīng)的半象素偏移都要被輸出給運動估計處理器單元331(MEPROC)。然后運動估計處理器(MEPROC)單元331把從全分辨率(FR)單元321和半分辨率(HR)單元323接收的最佳匹配絕對差值進行比較,同時指令半分辨率(HR)單元323輸出參考宏塊(RMB)的全象素或半象素亮度數(shù)據(jù),它們?yōu)樗M行的每種搜索操作產(chǎn)生最小絕對差值。半分辨率單元(HR單元)把這些數(shù)據(jù)連同相應(yīng)的當(dāng)前宏塊(CMB)數(shù)據(jù)輸出到雙基單元(DP單元)。
運動估計精細步驟的另一步驟在雙基單元(DP)325進行。該單元可被配置來藉使用來自全分辨率(FR)還是半分辨率(HR)單元323的當(dāng)前宏塊(CMB)和參考宏塊(RMB)數(shù)據(jù)進行雙基精細處理。此外,對于隔行(場)圖象,在被提供了兩個參考場時該單元還可以被加以配置以便使用奇偶性相同或是相反的參考宏塊(RMB)。缺省模式是藉利用全分辨率單元(FR單元)321的當(dāng)前宏塊(CMB)和參考宏塊(RMB)數(shù)據(jù)來進行雙基運動估計的,利用該缺省模式可以有兩個優(yōu)點第一,性能可以得到優(yōu)化,因為半分辨率(HR)323和雙基(DP)325單元的搜索操作可以并行進行。
第二,對于逐行(幀)圖象,消除了一種無效情況,在該情況下,半分辨率(HR)參考宏塊(RMB)的幀最佳匹配牽涉到在奇偶性相反的場之間進行垂直內(nèi)插,這樣對于給定的當(dāng)前宏塊(CMB)進行有效雙基精細處理的可能性從33%增加到100%。
根據(jù)從分級搜索單元、全分辨率單元(FR單元)321、和半分辨率單元(HR單元)323等接收到的偏移信息(如果選擇了向DP單元325提供用于雙基精細處理的數(shù)據(jù)的話),運動估計處理器(MEPROC)331將構(gòu)造出指向雙基參考宏塊(RMB)的運動矢量。然后運動估計處理器(MEPROC)331將進行運動矢量的比例縮放操作,并且把經(jīng)過比例縮放之后的運動矢量轉(zhuǎn)換到相應(yīng)的精細搜索存儲單元中,從這些單元可以取出用于進行雙基運動估計的附加亮度精細搜索數(shù)據(jù)。一旦找到了雙基最佳匹配,相應(yīng)的絕對差值和偏移都要輸出給運動估計處理器(MEPROC)單元331。接著,運動估計處理器(MEPROC)單元根據(jù)圖象結(jié)構(gòu)判定三個保留的結(jié)果中的哪一個產(chǎn)生總的最匹配逐行——最佳匹配的幀參考宏塊(RMB),最佳匹配的組合f1和f2的場參考宏塊(RMB),最佳匹配的雙基參考宏塊(RMB)。
隔行——奇偶性相反的最佳匹配場參考宏塊(RMB),奇偶性相同的最佳匹配場參考宏塊(RMB),最佳匹配的雙基參考宏塊(RMB),運動估計處理器(MEPROC)331通知雙基(DP)單元325將哪一個參考宏塊(RMB)結(jié)果輸出到FD單元327。此時,精細運動估計過程就完成了。
開始宏塊(MB)重建過程的下一個單元是FD單元327。該單元從雙基(DP)單元325收集當(dāng)前宏塊(CMB)和最佳匹配參考宏塊(RMB)的亮度數(shù)據(jù),同時從亮度/色度緩沖器207取得相應(yīng)的當(dāng)前宏塊(CMB)色度數(shù)據(jù),以及對于非幀內(nèi)編碼的宏塊還要從精細搜索存儲器中取得參考宏塊(RMB)的色度數(shù)據(jù)。根據(jù)從運動估計處理器(MEPROC)331獲得的指示當(dāng)前宏塊(CMB)將作為幀內(nèi)還是非幀內(nèi)編碼的信息,該單元將用不同的方式處理亮度和色度數(shù)據(jù)。如果確定是幀內(nèi)的(無運動),那么FD單元將直接輸出當(dāng)前宏塊(CMB)的亮度和色度數(shù)據(jù)到DIFF/QXFRM數(shù)據(jù)總線332,并且給MA(運動調(diào)整)單元329發(fā)送全“00”的參考宏塊(RMB)的亮度和色度數(shù)據(jù)。如果確定是非幀內(nèi)的(運動),那么FD單元327將把CMB-RMB的亮度和色度輸出到DIFF/QXFRM數(shù)據(jù)總線,同時給運動調(diào)整(MA)單元329發(fā)送所選擇的參考宏塊(RMB)的亮度和色度數(shù)據(jù)。在非幀內(nèi)的情況下,運動估計處理器(MEPROC)單元331要初始化在FD單元327中的精細存儲器的指針以便能夠取得所需要的參考宏塊(RMB)的色度數(shù)據(jù),從而CMB-RMB的色度差值才能計算出來。注意,F(xiàn)D單元要負責(zé)DIFF/QXFRM數(shù)據(jù)總線332的正確仲裁。
這是通過由確保該單元發(fā)送的亮度(或色度)數(shù)據(jù)在下一個色度(或亮度)數(shù)據(jù)發(fā)送之前全部返回到IQ(反量化)單元333來完成的。由FD單元327輸出的數(shù)據(jù)的后面跟隨著由運動估計處理器(MEPROC)單元331輸出的非幀內(nèi)宏塊的運動矢量。運動估計處理器(MEPROC)單元把運動矢量數(shù)據(jù)輸出到運動矢量總線(MV總線)。
當(dāng)對由FD單元輸出的數(shù)據(jù)進行了離散余弦變換(DCT)和量化變換后,這些數(shù)據(jù)以塊的形式回到IQ(反量化)單元333用于對變換和量化后的數(shù)據(jù)的重建(解碼)。IQ333和ID(反DCT)進行MPEG-2標(biāo)準(zhǔn)所規(guī)定的反量化和反離散余弦變換工作。這樣就得到一個由FD單元輸出的原先的亮度和色度MB數(shù)據(jù)的有損失版本,這正是一個外部MEPG-2解碼器解壓縮該宏塊得到的內(nèi)容。這些有損失的亮度和色度宏塊數(shù)據(jù)被送到MA(運動調(diào)整)單元,該單元將該輸入與以前從FD單元接收到的參考宏塊(RMB)數(shù)據(jù)相加。對于所有被處理的I-和P-圖象,相加后的亮度和色度宏塊數(shù)據(jù)將通過MC單元被輸出到精細搜索存儲器。
雖然我們的發(fā)明是利用了一些優(yōu)選的實施例和例子來描述的,但這并不意味著本發(fā)明的范圍就只限于此,它要由所附的權(quán)利要求書來限定。
權(quán)利要求
1.一種數(shù)字視頻數(shù)據(jù)流的時域壓縮方法,包括在參考圖象的至少一個搜索單元中分級搜索象素以便在那里尋找與當(dāng)前宏塊相對應(yīng)的最佳匹配宏塊,并在最佳匹配宏塊和當(dāng)前宏塊之間構(gòu)造運動矢量。
2.權(quán)利要求1的方法,其特征在于包括在多個搜索單元中進行多個分級搜索以便增大搜索窗的尺寸。
3.權(quán)利要求2的方法,其特征在于包括以串級鏈的方式將最佳匹配宏塊的差值和偏移從一個搜索單元傳送到另一個搜索單元。
4.權(quán)利要求3的方法,其特征在于包括將最佳匹配宏塊的最小絕對差值和偏移從最后一個分級搜索單元傳送到精細搜索和重建單元。
5.一種數(shù)字視頻數(shù)據(jù)流的時域壓縮方法,包括在參考圖象中藉使用下取樣后的全象素值來搜索象素以便在那里尋找與當(dāng)前宏塊相對應(yīng)的最佳匹配宏塊,并構(gòu)建在最佳匹配宏塊和當(dāng)前宏塊之間的運動矢量。
6.權(quán)利要求5的方法,其特征在于包括按全搜索、2∶1下取樣搜索、或4∶1下取樣搜索方式進行搜索。
7.權(quán)利要求5的方法,其特征在于下一圖象要被幀內(nèi)編碼并且其輸出是原先的當(dāng)前宏塊。
8.權(quán)利要求5的方法,其特征在于下一圖象要被雙向編碼或預(yù)測編碼,并且其輸出是最佳匹配的差值宏塊。
9.權(quán)利要求5的方法,其特征在于包括藉采用非重建的參考宏塊數(shù)據(jù)來搜索最佳匹配宏塊。
10.權(quán)利要求9的方法,其特征在于包括在這之后要藉使用在下取樣匹配偏移附近的重建后的精細搜索數(shù)據(jù)來進行無下取樣的全象素搜索。
11.權(quán)利要求10的方法,其特征在于包括在這之后要藉利用根據(jù)最佳匹配的無下取樣的全象素最佳匹配宏塊的位置重建的精細數(shù)據(jù)來進行半象素搜索。
12.權(quán)利要求11中的方法,其特征在于包括進行雙基搜索。
13.一種數(shù)字視頻數(shù)據(jù)流的時域壓縮方法,包括采用帶偶/偶,奇/奇,偶/奇,奇/偶場搜索單元輸入的場搜索在參考圖象場中搜索象素,以便在那里尋找與當(dāng)前宏塊相對應(yīng)的最佳匹配宏塊,并構(gòu)建在最佳匹配宏塊和當(dāng)前宏塊之間的運動矢量。
14.權(quán)利要求13的時域壓縮方法,其特征在于包括藉采用最佳場搜索的內(nèi)插來進行搜索。
15.一種用于數(shù)字視頻運動估計的搜索處理器,所述的搜索處理器包括a.分級搜索單元;以及b.與之相串連的精細搜索單元。
16.權(quán)利要求15的搜索處理器,其特征在于所述的分級搜索單元包括下取樣全象素搜索裝置。
17.權(quán)利要求15的搜索處理器,其特征在于所述的精細搜索單元包括全象素搜索裝置、半象素搜索裝置、和雙基搜索裝置,所述的全象素搜索裝置要與所述的半象素搜索裝置和雙基搜索裝置相連,并且所述的半象素搜索裝置與所述的雙基搜索裝置相串連。
全文摘要
數(shù)字視頻數(shù)據(jù)流的時域壓縮首先在參考圖象的至少一個搜索單元中分級搜索象素,以便找到與當(dāng)前宏塊相對應(yīng)的最佳匹配宏塊,接著構(gòu)建在參考圖象的最佳匹配宏塊和當(dāng)前宏塊之間的運動矢量。
文檔編號H04N7/32GK1182335SQ9712008
公開日1998年5月20日 申請日期1997年10月6日 優(yōu)先權(quán)日1996年11月7日
發(fā)明者A·S·布特爾, J·M·卡茨馬爾茲克, A·Y·蓋, E·F·維斯特爾曼, R·J·雅格萊 申請人:國際商業(yè)機器公司