專利名稱:矩形運(yùn)動(dòng)搜索的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻和圖形信號處理,更具體而言,涉及在視頻幀中進(jìn)行運(yùn)動(dòng)搜索。
背景技術(shù):
視頻數(shù)據(jù)壓縮去除容易恢復(fù)的冗余數(shù)據(jù),以減少存儲空間或者傳輸帶寬。一般地,視頻數(shù)據(jù)存在于一系列幀中,其中隨著視頻幀中的物體在場中移動(dòng),圖像的大部分實(shí)質(zhì)上是類似的。通過跟蹤移動(dòng)的物體,所記錄的數(shù)據(jù)量可以被縮減為物體從一幀到另一幀的變化,而其余的數(shù)據(jù)可以用前一幀所記錄的數(shù)據(jù)代替。
現(xiàn)有的用來估計(jì)視頻幀中的像素塊在后繼幀中將如何移動(dòng)的梯度下降法通常被稱為全像素鉆石搜索。全像素鉆石搜索使用兩級進(jìn)行運(yùn)動(dòng)搜索,如圖1A和圖1B所示。參考圖1A,在該運(yùn)動(dòng)搜索的第一級中,在鉆石搜索模板中的9個(gè)搜索點(diǎn)103處收集像素的測量。運(yùn)動(dòng)搜索點(diǎn)處的測量彼此進(jìn)行比較,以確定參考幀中的像素塊的每個(gè)搜索點(diǎn)與當(dāng)前幀的像素塊有多接近。參考幀可以是視頻數(shù)據(jù)中的在先幀。如果最接近的點(diǎn)是鉆石搜索模板內(nèi)的8個(gè)外部點(diǎn)中的一個(gè),則搜索模板被移動(dòng)到以那個(gè)點(diǎn)為中心的新位置。在此情況下,新的搜索模板有4個(gè)和舊的搜索模板一樣的搜索點(diǎn),并有5個(gè)新的搜索點(diǎn)。因此,當(dāng)該鉆石搜索模板被右移2個(gè)網(wǎng)格線時(shí),進(jìn)行5個(gè)新的測量。無需對兩個(gè)搜索模板共有的搜索點(diǎn)進(jìn)行測量,因?yàn)橐郧皽y量的數(shù)據(jù)可以再使用。
如果最佳測量在中心點(diǎn),則進(jìn)行下一級的搜索,如圖1B所示。在此級,測量4個(gè)新的運(yùn)動(dòng)搜索點(diǎn)110,以前測量的中心點(diǎn)105的數(shù)據(jù)可以再使用。具有最小測量的運(yùn)動(dòng)搜索點(diǎn)是全像素搜索位置。
鉆石搜索是一種快速算法,因?yàn)閷⒛0逡苿?dòng)兩個(gè)網(wǎng)格只需要5個(gè)或者更多的測量。但是,鉆石搜索模板的不規(guī)則形狀使得被存儲在寄存器文件中的測量數(shù)據(jù)的操作變得復(fù)雜。鉆石搜索的一些問題包括跟蹤數(shù)據(jù)的地址偏移的困難,存儲空間的利用不足,以及其稀疏的取樣模板導(dǎo)致可能遺漏真正的最小值。
由于其大量運(yùn)算的需求,通常由并行處理器進(jìn)行運(yùn)動(dòng)搜索。一個(gè)這樣的并行處理器使用單指令多數(shù)據(jù)(SIMD)的操作。例如,運(yùn)動(dòng)搜索的一種測量是絕對差和(Sum of Absolute Different,SAD),即當(dāng)前幀中的塊和參考幀中的塊之間的差的L1范數(shù)的測量。另一種運(yùn)動(dòng)搜索測量是差平方和(Sum of Square Different,SSD),即當(dāng)前幀中的塊和參考幀中的塊之間的差的L2范數(shù)(歐幾里得范數(shù))的平方測量。多個(gè)數(shù)據(jù)條目上的SAD或SSD測量可以通過SIMD操作進(jìn)行。一個(gè)典型的并行處理器具有大寄存器文件,以便減少對分級存儲器體系的數(shù)據(jù)訪問量。搜索區(qū)域中的鉆石搜索的數(shù)據(jù)通常被存儲在寄存器文件中。并行處理器可以在并行操作中訪問寄存器文件中的多個(gè)數(shù)據(jù)條目,例如,計(jì)算幾個(gè)連續(xù)列中的數(shù)據(jù)條目的絕對差和的SAD操作。由于寄存器文件中的鉆石形狀區(qū)域的行具有不同數(shù)目的列,所以不同數(shù)目的列被訪問以計(jì)算行中的條目的SAD。因此,并行處理器必須跟蹤各個(gè)行和列的不同的地址偏移,從而使并行操作的性能惡化。
發(fā)明內(nèi)容
本發(fā)明的目的是針對上述問題提供方法和裝置。根據(jù)本發(fā)明的一個(gè)方面,提供了一種視頻編碼器,包括運(yùn)動(dòng)估測器,用于相對于參考視頻幀在輸入視頻數(shù)據(jù)上進(jìn)行運(yùn)動(dòng)搜索,以產(chǎn)生多個(gè)運(yùn)動(dòng)向量,所述運(yùn)動(dòng)搜索包括矩形運(yùn)動(dòng)搜索;和可變長編碼器,用于使用所述運(yùn)動(dòng)向量壓縮所述輸入視頻數(shù)據(jù)。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種方法,包括相對于參考視頻幀在輸入視頻數(shù)據(jù)上進(jìn)行運(yùn)動(dòng)搜索,以產(chǎn)生多個(gè)運(yùn)動(dòng)向量,所述運(yùn)動(dòng)搜索包括矩形運(yùn)動(dòng)搜索;以及使用所述運(yùn)動(dòng)向量壓縮所述輸入視頻數(shù)據(jù)。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于確定像素塊從第一視頻幀到第二視頻幀的相對運(yùn)動(dòng)的方法,所述方法包括在形成矩形搜索區(qū)域的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量;基于所述運(yùn)動(dòng)測量的結(jié)果,找到所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn);以及如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與所述像素塊從所述第一視頻幀到所述第二視頻幀的所述相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于壓縮視頻數(shù)據(jù)的方法,包括將第一視頻幀定義為參考視頻幀;相對于所述參考視頻幀在第二視頻幀上進(jìn)行運(yùn)動(dòng)搜索,以確定所述第二視頻幀相對于所述參考視頻幀的多個(gè)運(yùn)動(dòng)向量;以及將所述視頻數(shù)據(jù)簡化為所述參考視頻幀和所述第二視頻幀的所述多個(gè)運(yùn)動(dòng)向量,其中所述運(yùn)動(dòng)搜索包括在形成像素塊內(nèi)的矩形搜索區(qū)域的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量;基于所述運(yùn)動(dòng)測量的結(jié)果,找到所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn);如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與所述像素塊從所述第一視頻幀到所述第二視頻幀的所述相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種提供指令的機(jī)器可訪問介質(zhì),所述指令如果被處理器執(zhí)行,將引起所述處理器執(zhí)行操作,以確定像素塊從第一視頻幀到第二視頻幀的相對運(yùn)動(dòng),所述操作包括在形成像素塊內(nèi)的矩形搜索區(qū)域的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量;基于所述運(yùn)動(dòng)測量的結(jié)果找到所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn);以及如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與所述像素塊從所述第一視頻幀到所述第二視頻的所述相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種系統(tǒng),包括動(dòng)態(tài)隨機(jī)訪問存儲器器件;與所述動(dòng)態(tài)隨機(jī)訪問存儲器器件耦合的存儲控制器;和與所述存儲控制器耦合的并行處理器芯片,所述并行處理器芯片包括定義寄存器文件的多個(gè)寄存器;和與所述多個(gè)寄存器耦合的并行處理器,其中,所述并行處理器可操作用來進(jìn)行操作,以確定像素塊從第一視頻幀到第二視頻幀的相對運(yùn)動(dòng),所述操作包括在形成所述像素塊內(nèi)的矩形搜索區(qū)域的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量;基于所述運(yùn)動(dòng)測量的結(jié)果,找到所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn);如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與所述像素塊從所述第一視頻幀到所述第二視頻的所述相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
從隨后的詳細(xì)說明及附圖將更全面地理解本發(fā)明,但是,它們不應(yīng)被理解為將所附權(quán)利要求限制為所示出的具體實(shí)施例,而僅僅是用于解釋和理解。
圖1A示出了鉆石搜索的第一級的運(yùn)動(dòng)搜索點(diǎn)。
圖1B示出了鉆石搜索的第二級的運(yùn)動(dòng)搜索點(diǎn)。
圖2示出了搜索區(qū)域的一個(gè)實(shí)施例。
圖3示出了用矩形搜索模板進(jìn)行運(yùn)動(dòng)搜索的處理的一個(gè)實(shí)施例的流程圖。
圖4示出了矩形搜索模板的一個(gè)實(shí)施例。
圖5示出了并行處理器芯片的一個(gè)實(shí)施例。
圖6示出了寄存器文件的示例實(shí)施例。
圖7示出了視頻編碼器的一個(gè)實(shí)施例。
圖8示出了計(jì)算機(jī)系統(tǒng)的示例實(shí)施例。
具體實(shí)施例方式
這里公開了一種用于矩形運(yùn)動(dòng)搜索的方法。用于進(jìn)行矩形塊運(yùn)動(dòng)搜索的方法的一個(gè)實(shí)施例包括以下操作在矩形搜索區(qū)域內(nèi)的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量;根據(jù)運(yùn)動(dòng)測量的結(jié)果找到多個(gè)運(yùn)動(dòng)搜索點(diǎn)中最小的運(yùn)動(dòng)搜索點(diǎn),以及如果最小運(yùn)動(dòng)搜索點(diǎn)在矩形搜索區(qū)域的內(nèi)部區(qū)域中,則將矩形搜索區(qū)域會聚在最小運(yùn)動(dòng)搜索點(diǎn)處,以找到表示像素塊從第一視頻幀到第二視頻幀的相對運(yùn)動(dòng)的運(yùn)動(dòng)向量。
在以下說明中,給出了許多具體細(xì)節(jié)。但是,應(yīng)認(rèn)識到?jīng)]有這些具體細(xì)節(jié),也可以實(shí)現(xiàn)本發(fā)明。在其他情況下,沒有詳細(xì)示出公知的模塊、結(jié)構(gòu)和技術(shù),以避免模糊對本說明的理解。
接下來的詳細(xì)說明的某些部分是按照對計(jì)算機(jī)存儲器中的數(shù)據(jù)位的操作的算法和符號表示給出的。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域技術(shù)人員用來最有效地向本領(lǐng)域其他技術(shù)人員表達(dá)其工作實(shí)質(zhì)的手段。這里的算法一般被認(rèn)為是導(dǎo)致所需結(jié)果的操作的自洽序列。這些操作需要對物理量的物理操縱。盡管不是必要的,但通常這些量采用能夠被存儲、傳輸、組合、比較或以其他方式被操作的電或磁信號的形式。已證實(shí)主要是由于通用的原因,將這些信號稱為位、值、元素、符號、字符、項(xiàng)、數(shù)等等有時(shí)是方便的。
但是,應(yīng)該牢記,所有這些以及相似的術(shù)語都將與合適的物理量關(guān)聯(lián),并且僅僅是用于這些物理量的方便的標(biāo)記。除非以從下面的討論明顯看出的以其他方式被特定地?cái)⑹?,?yīng)該意識到,貫穿整個(gè)說明使用諸如“處理”、“計(jì)算”、“運(yùn)算”、“確定”或“顯示”等術(shù)語的討論指的是計(jì)算機(jī)系統(tǒng)或類似的電子計(jì)算設(shè)備的動(dòng)作或處理,其將計(jì)算機(jī)系統(tǒng)的寄存器和存儲器中被表示為物理(電子)量的數(shù)據(jù)操縱并轉(zhuǎn)換成計(jì)算機(jī)系統(tǒng)的存儲器或寄存器或其他這樣的信息存儲、傳輸或顯示設(shè)備中類似地被表示為物理量的其他數(shù)據(jù)。
本發(fā)明還涉及用于進(jìn)行這里的操作的裝置。裝置可以是為所需目的專門構(gòu)造的,或者它可以包括由存儲在計(jì)算機(jī)中的計(jì)算機(jī)程序可選擇地激活或重新配置的通用計(jì)算機(jī)。這樣的計(jì)算機(jī)程序可以被存儲在計(jì)算機(jī)可讀存儲介質(zhì)中,例如但不限于任何類型的包括軟盤、光盤、CD-ROM和磁光盤的盤、只讀存儲器(ROM)、隨機(jī)訪問存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、磁卡或光卡,或適于存儲電子指令的任何類型的介質(zhì),它們每個(gè)都被耦合到計(jì)算機(jī)系統(tǒng)總線上。
這里表示出的操作和顯示并不固有地與任何特定的計(jì)算機(jī)或其他裝置相關(guān)。各種通用系統(tǒng)可以與根據(jù)這里的教導(dǎo)的程序一起使用,或者可以證實(shí)構(gòu)造用來進(jìn)行這些操作的更專門的裝置是方便的。各種這樣的系統(tǒng)所需的結(jié)構(gòu)將從下面的描述中呈現(xiàn)出。此外,并非參考任何特定的編程語言來描述本發(fā)明。應(yīng)當(dāng)認(rèn)識到,可以使用各種編程語言來實(shí)現(xiàn)這里所描述的本發(fā)明的教導(dǎo)。
機(jī)器可讀介質(zhì)包括任何以機(jī)器(例如,計(jì)算機(jī))可讀形式存儲或傳輸信息的機(jī)構(gòu)。例如,機(jī)器可讀介質(zhì)包括只讀存儲器(ROM);隨機(jī)訪問存儲器(RAM);磁盤存儲介質(zhì);光存儲介質(zhì);閃存器件;電、光、聲或者其他形式的傳播信號(例如,載波,紅外信號,數(shù)字信號等)等等。
在一個(gè)實(shí)施例中,使用矩形搜索模板定義搜索區(qū)域,以確定像素塊從一個(gè)視頻幀到另一個(gè)視頻幀的相對運(yùn)動(dòng)。視頻幀可以包括多個(gè)像素塊。圖2示出了參考窗口200中搜索區(qū)域的一個(gè)實(shí)施例。參考圖2,參考窗口200是16×16的網(wǎng)格。搜索區(qū)域201是4×4的正方形,區(qū)域內(nèi)有16個(gè)運(yùn)動(dòng)搜索點(diǎn)。公知地,正方形是一類等邊的矩形。應(yīng)該知道,該4×4正方形這里被用作說明的目的。應(yīng)該很清楚,不同尺度的矩形搜索區(qū)域可以被用在其他的實(shí)施例中,例如,4×8,16×8,16×16等等。參考圖2,該搜索區(qū)域具有4個(gè)內(nèi)部搜索點(diǎn),例如點(diǎn)220,以及沿正方形區(qū)域201各邊的12個(gè)搜索點(diǎn),例如點(diǎn)210。和4個(gè)內(nèi)點(diǎn)對比,這12個(gè)搜索點(diǎn)被稱為外點(diǎn)。在一個(gè)實(shí)施例中,內(nèi)點(diǎn)和外點(diǎn)中的每個(gè)對應(yīng)于參考幀中的一個(gè)像素塊。
在一個(gè)實(shí)施例中,在搜索區(qū)域201的每個(gè)運(yùn)動(dòng)搜索點(diǎn)處進(jìn)行一個(gè)或多個(gè)像素屬性的測量,以在當(dāng)前視頻幀中找到和參考視頻幀中的另一個(gè)像素塊匹配的像素塊。屬性可以包括像素強(qiáng)度、像素顏色等等。在一個(gè)實(shí)施例中,基于預(yù)定的標(biāo)準(zhǔn),將每個(gè)搜索點(diǎn)處的像素塊的測量與參考視頻幀中的像素塊相比較。在一個(gè)實(shí)施例中,計(jì)算兩幀中的像素塊中的像素之間在像素強(qiáng)度上的絕對差和(SAD)。在一個(gè)實(shí)施例中,選擇具有最小SAD的搜索點(diǎn),該點(diǎn)也被稱為最小點(diǎn)。
在一個(gè)實(shí)施例中,進(jìn)行搜索以得到像素塊從參考視頻幀到當(dāng)前視頻幀的相對運(yùn)動(dòng)。當(dāng)最小點(diǎn)是正方形搜索區(qū)域中的內(nèi)點(diǎn)之一時(shí),參考幀中以最小點(diǎn)為中心的像素塊是當(dāng)前幀中的像素塊的最接近匹配者。一旦找到了參考幀中該像素塊的最接近匹配者,就可以確定一個(gè)運(yùn)動(dòng)向量,該運(yùn)動(dòng)向量表示像素塊從參考幀到當(dāng)前幀的相對運(yùn)動(dòng)。
在一個(gè)實(shí)施例中,通過如下方式壓縮具有一組視頻幀的視頻數(shù)據(jù)將第一幀以壓縮格式存儲為參考幀,將隨后的幀存儲為來自在先幀的各個(gè)像素塊的運(yùn)動(dòng)預(yù)測殘留(residue)和運(yùn)動(dòng)向量。諸如變換編碼和熵編碼之類的工具可以被用來壓縮和/或存儲第一幀以及隨后的幀。經(jīng)壓縮的視頻數(shù)據(jù)的大小小于未被壓縮的視頻數(shù)據(jù),因此,既減少了用來傳輸視頻數(shù)據(jù)的帶寬,也減少了用來存儲視頻數(shù)據(jù)的存儲空間。
在一個(gè)實(shí)施例中,當(dāng)最小點(diǎn)是外點(diǎn)中的任何一個(gè)時(shí),搜索繼續(xù)。移動(dòng)搜索區(qū)域,以使得新的搜索區(qū)域基本上以找到的最小點(diǎn)為中心。例如,參考圖2,有8個(gè)可能的移動(dòng)方向,即,四個(gè)角的情形和四個(gè)邊的情形。對矩形搜索區(qū)域的每邊上的2個(gè)非角的外邊位置,新的搜索位置是共同的。圖2中示出了新搜索區(qū)域的一些示例,即,左上角的情形203,右移的情形205和下移的情形207。
在一個(gè)實(shí)施例中,兩個(gè)搜索模板共有的運(yùn)動(dòng)搜索點(diǎn)的測量被重用,以節(jié)省時(shí)間。參考圖2,在角的情形203中,有4個(gè)共有的運(yùn)動(dòng)搜索點(diǎn),即,運(yùn)動(dòng)搜索點(diǎn)223。因此,在移動(dòng)后的搜索模板中進(jìn)行12個(gè)非共有的搜索點(diǎn)的測量。在邊的情形中,例如右移的情形205或者下移的情形207,有8個(gè)共有搜索點(diǎn)。因此,在移動(dòng)后的搜索模板中進(jìn)行8個(gè)非共有搜索點(diǎn)的測量。換言之,當(dāng)搜索模板移動(dòng)2個(gè)網(wǎng)格時(shí),進(jìn)行8個(gè)或者更多的測量。
在一個(gè)實(shí)施例中,4×4的搜索區(qū)域進(jìn)一步被劃分為4個(gè)2×2的漫游模板(walk pattern),也被稱作圖像片(tile)??梢灾饌€(gè)在每個(gè)2×2的圖像片中進(jìn)行運(yùn)動(dòng)測量。
圖3示出了利用矩形搜索模板進(jìn)行運(yùn)動(dòng)搜索的過程的一個(gè)實(shí)施例的流程圖。通過處理邏輯進(jìn)行該過程,該處理邏輯可以包括硬件(例如,電路、專用邏輯等等)、軟件(例如,運(yùn)行在通用計(jì)算機(jī)系統(tǒng)或者專用機(jī)器上),或者兩者的組合。參考圖3,處理邏輯為當(dāng)前幀的像素塊加載在以參考視頻幀中所選起始搜索位置為中心的參考窗口(處理框310)。在一個(gè)實(shí)施例中,參考窗口包含32×32的像素陣列,并且矩形搜索區(qū)域?yàn)?×4的正方形。在一個(gè)實(shí)施例中,4×4的正方形進(jìn)一步被分為4個(gè)2×2的數(shù)據(jù)單元。該數(shù)據(jù)單元也可以被稱為圖像片。在一個(gè)實(shí)施例中,處理邏輯將4位的掩碼設(shè)置為“1111”,以開啟正方形搜索區(qū)域的四個(gè)圖像片的每一個(gè)的運(yùn)動(dòng)測量,其中該掩碼的每一位對應(yīng)于正方形搜索區(qū)域的一個(gè)不同的圖像片(處理框320)。
在一個(gè)實(shí)施例中,處理邏輯在每個(gè)圖像片內(nèi)進(jìn)行運(yùn)動(dòng)測量(處理框330)。處理邏輯可以在移到另一個(gè)圖像片前完成一個(gè)圖像片內(nèi)的運(yùn)動(dòng)測量,該移動(dòng)也被稱作圖像片漫游(tile walking)。在一個(gè)實(shí)施例中,處理邏輯在搜索區(qū)域內(nèi)的每個(gè)搜索點(diǎn)測量像素的一個(gè)或多個(gè)屬性。屬性的示例包括像素強(qiáng)度、像素顏色等等。在一個(gè)實(shí)施例中,處理邏輯計(jì)算測得的屬性的SAD,以找到16個(gè)運(yùn)動(dòng)搜索點(diǎn)中具有最小SAD的點(diǎn)(處理框340)。該點(diǎn)也被稱為最小點(diǎn)。
在一個(gè)實(shí)施例中,如果最小點(diǎn)是搜索區(qū)域中的內(nèi)點(diǎn)之一,則處理邏輯終止搜索(處理框390)。如果最小點(diǎn)是搜索區(qū)域中的外點(diǎn)之一,則處理邏輯移動(dòng)正方形搜索區(qū)域,以使其基本上以最小點(diǎn)為中心(處理框360)。由于當(dāng)前搜索區(qū)域和經(jīng)移動(dòng)的搜索區(qū)域部分重疊,因此不必測量在重疊的區(qū)域內(nèi)的運(yùn)動(dòng)搜索點(diǎn)處的像素。在一個(gè)實(shí)施例中,當(dāng)最小點(diǎn)是在當(dāng)前搜索區(qū)域的角上時(shí),處理邏輯復(fù)制兩個(gè)搜索區(qū)域共有的4個(gè)運(yùn)動(dòng)搜索點(diǎn)的SAD 值,或者當(dāng)最小點(diǎn)是沿當(dāng)前搜索區(qū)域的一條邊而不是在當(dāng)前搜索區(qū)域的角上時(shí),處理邏輯復(fù)制兩個(gè)搜索區(qū)域共有的8個(gè)運(yùn)動(dòng)搜索點(diǎn)的SAD值。在一個(gè)實(shí)施例中,取決于最小點(diǎn)是否在正方形搜索區(qū)域的角上,處理邏輯用兩個(gè)1或者3個(gè)1設(shè)置掩碼,以開啟在經(jīng)移動(dòng)的搜索區(qū)域內(nèi)的2個(gè)或者3個(gè)圖像片的運(yùn)動(dòng)測量(處理框370)。
在一個(gè)實(shí)施例中,如果經(jīng)移動(dòng)的搜索區(qū)域的像素塊內(nèi)的任何像素在參考窗口的之外,則處理邏輯加載另一像素塊并重新居中于該像素塊(處理框380)。處理邏輯然后重復(fù)處理框330~380。在一個(gè)實(shí)施例中,進(jìn)行運(yùn)動(dòng)搜索,以確定像素塊從一個(gè)視頻幀到另一個(gè)視頻幀的相對運(yùn)動(dòng)。在一個(gè)實(shí)施例中,處理邏輯通過保存運(yùn)動(dòng)向量,而不是保存整個(gè)視頻幀來壓縮視頻數(shù)據(jù),其中該運(yùn)動(dòng)向量表示像素塊從一個(gè)視頻幀到另一個(gè)視頻幀的相對運(yùn)動(dòng)。
在一個(gè)實(shí)施例中,使用更大的矩形搜索模板,例如8×8、4×8、16×4等等。如果最小點(diǎn)不在矩形搜索區(qū)域的邊上或者角上,通過收縮搜索區(qū)域,搜索會聚。在一個(gè)實(shí)施例中,支持次像素運(yùn)動(dòng)向量,因此,當(dāng)整數(shù)運(yùn)動(dòng)搜索的最小點(diǎn)是搜索區(qū)域的內(nèi)點(diǎn)之一時(shí),搜索在次像素級上繼續(xù)。圖4示出了使用矩形搜索模板的兩級分級結(jié)構(gòu)的運(yùn)動(dòng)搜索的一個(gè)實(shí)施例。參考圖4,第一級矩形搜索模板包括4×4=16個(gè)搜索點(diǎn),相鄰搜索點(diǎn)相隔2個(gè)像素。在第一級搜索后,如果搜索被會聚在內(nèi)部搜索點(diǎn)420,則在點(diǎn)420周圍進(jìn)行第二級整數(shù)點(diǎn)運(yùn)動(dòng)搜索。具體而言,在第二級搜索中測量最小點(diǎn)420附近的8個(gè)新的樣本位置410(在圖4中被標(biāo)記為星形)。9個(gè)位置中具有最小值的位置是被會聚的整數(shù)位置。在一個(gè)實(shí)施例中,次像素運(yùn)動(dòng)是在半像素精度上的。在與由8個(gè)樣本位置410所形成的形狀相類似的形狀中的被會聚的整數(shù)位置附近的半像素位置的8個(gè)新的樣本位置被測量。9個(gè)位置(8個(gè)半像素位置加上被會聚的整數(shù)位置)中具有最小值的位置是被會聚的半像素位置。
圖5示出了并行處理器芯片500的一個(gè)實(shí)施例。并行處理器芯片500包括并行處理器542和寄存器組544。該寄存器組也被稱為寄存器文件。并行處理器542包括編碼器551和解碼器553。下面參考圖7討論編碼器的一個(gè)實(shí)施例的細(xì)節(jié)。并行處理器向寄存器文件544寫入數(shù)據(jù)或從寄存器文件544讀數(shù)據(jù)。在一個(gè)實(shí)施例中,被存儲在寄存器文件544中的數(shù)據(jù)被安排成列和行。
在一個(gè)實(shí)施例中,并行處理器542采用單指令多數(shù)據(jù)(SIMD)體系結(jié)構(gòu)并支持對寄存器文件544的基于列和基于行的訪問。并行處理器542將對應(yīng)于視頻幀內(nèi)矩形搜索區(qū)域的測量數(shù)據(jù)加載到寄存器文件中。在一個(gè)實(shí)施例中,寄存器文件544邏輯上被排列成矩形,因此,視頻幀中的矩形搜索區(qū)域可以方便地映射到寄存器文件中的區(qū)域上。在寄存器文件中以矩形區(qū)域存儲像素?cái)?shù)據(jù)允許并行處理器542并行地訪問及操作搜索區(qū)域的像素?cái)?shù)據(jù)。這樣的并行訪問能力增加了并行處理器542的吞吐量。
圖6示出了寄存器文件600的示例實(shí)施例。正方形610中的寄存器存儲視頻幀中正方形搜索區(qū)域的搜索點(diǎn)的數(shù)據(jù)。假設(shè)搜索區(qū)域的最小點(diǎn)在正方形的右側(cè)邊上,則并行處理器將該正方形搜索區(qū)域向右移動(dòng)。與新搜索區(qū)域相對應(yīng)的數(shù)據(jù)在寄存器文件600中的正方形620內(nèi)的寄存器中。在一個(gè)實(shí)施例中,寄存器文件中的數(shù)據(jù)的位置對應(yīng)于搜索點(diǎn)的位置。因此,并行處理器542在處理重疊的搜索區(qū)域時(shí)重用已被存儲在寄存器文件中的數(shù)據(jù),以節(jié)省時(shí)間。此外,因?yàn)榇鎯?shù)據(jù)的位置對應(yīng)于搜索點(diǎn)的位置,所以無需將重疊范圍中的搜索點(diǎn)的數(shù)據(jù)拷貝到寄存器文件的另一個(gè)位置。
此外,不同于鉆石搜索模板和菱形搜索模板,使用矩形搜索模板還使得重用在寄存器文件中的數(shù)據(jù)變得更容易,因?yàn)椴⑿刑幚砥骺梢院苋菀椎赜?jì)算可以邏輯上被安排成矩形的寄存器文件中對于矩形模板的地址偏移。此外,當(dāng)數(shù)據(jù)被存儲在與搜索區(qū)域相對應(yīng)的矩形區(qū)域中時(shí),并行處理器542可以重用寄存器文件中的更多數(shù)據(jù)。
圖7示出了視頻編碼器的一個(gè)實(shí)施例。視頻編碼器700可以是運(yùn)動(dòng)圖像專家組(MPEG)視頻編碼器。編碼器700包括離散余弦變換器(DCT)710、運(yùn)動(dòng)補(bǔ)償器720、運(yùn)動(dòng)估測器730、幀存儲器740,進(jìn)行剪裁的邏輯電路750、可變長編碼器(VLC)760、反離散余弦變換器(IDCT)770、量化單元780、解量化單元790、掃描單元792以及反掃描單元794。
在一個(gè)實(shí)施例中,輸入的視頻數(shù)據(jù)被提供給運(yùn)動(dòng)估測器730,該運(yùn)動(dòng)估測器730進(jìn)行矩形運(yùn)動(dòng)搜索,以將當(dāng)前視頻幀和參考視頻幀進(jìn)行比較。除矩形運(yùn)動(dòng)搜索外,運(yùn)動(dòng)估測器還可以進(jìn)行其他類型的運(yùn)動(dòng)搜索,例如,菱形運(yùn)動(dòng)搜索。其輸出被提供給VLC 760以及運(yùn)動(dòng)補(bǔ)償器720。運(yùn)動(dòng)補(bǔ)償器還接收來自幀存儲器740的輸入,以確定在輸入數(shù)據(jù)上的運(yùn)動(dòng)補(bǔ)償,其通過減法器705被從當(dāng)前視頻幀中減去。經(jīng)補(bǔ)償?shù)囊曨l數(shù)據(jù)輸入到DCT710。DCT 710輸出經(jīng)變換的視頻數(shù)據(jù)到量化單元780。量化單元780輸出經(jīng)量化的視頻數(shù)據(jù)到掃描單元792。
在一個(gè)實(shí)施例中,掃描單元792將數(shù)據(jù)組織成一串?dāng)?shù)據(jù)元。例如,通過對8×8的經(jīng)量化經(jīng)變換的視頻數(shù)據(jù)塊進(jìn)行Z字形掃描,掃描單元720輸出一串?dāng)?shù)據(jù)元。由于量化后許多數(shù)據(jù)元為零,所以數(shù)據(jù)被格式化為兩個(gè)變量的組合,即RUN和LEVEL。RUN是在LEVEL處的非零值前的零的數(shù)目。所以,量化單元的輸出可以由(RUN,LEVEL)符號序列組成。此外,當(dāng)數(shù)據(jù)壓縮是有損的時(shí)候,例如MPEG-2編碼,則量化單元可以丟棄一些信息。掃描單元792然后輸出經(jīng)量化的數(shù)據(jù)到VLC 760。在一個(gè)實(shí)施例中,經(jīng)量化的數(shù)據(jù)被組成為一串?dāng)?shù)據(jù)元。在一個(gè)實(shí)施例中,VLC 760讓每個(gè)(RUN,LEVEL)對通過一組哈夫曼(Huffman)查找表,以給其賦予一個(gè)位模式。這些位模式對不同的(RUN,LEVEL)符號可以有不同數(shù)目的位,即,這些位模式可以有可變的長度。
除VLC 760以外,掃描單元792還將數(shù)據(jù)輸出到反掃描單元794。反掃描單元794將該串視頻數(shù)據(jù)反向變換為8×8的經(jīng)量化經(jīng)變換的視頻數(shù)據(jù)塊。反掃描單元794輸出數(shù)據(jù)到解量化單元790。解量化單元790反向變換施加于數(shù)據(jù)上的量化并將數(shù)據(jù)輸出到反離散余弦變換器770。反離散余弦變換器770的輸出被加到來自幀存儲器740的數(shù)據(jù)上。在一個(gè)實(shí)施例中,該和具有超過8個(gè)位,即,超出0到255的范圍,因此,該和被輸入到進(jìn)行剪裁的邏輯電路750。邏輯電路750可以逐個(gè)像素地截短輸入,以使得數(shù)據(jù)在0到255的范圍內(nèi)。在一個(gè)實(shí)施例中,任何小于0的輸入值被賦成0,任何大于255的輸入值被賦成255,而任何在0到255之間的輸入值保持不變。剪裁的結(jié)果然后被存儲在幀存儲器740中。被存儲在幀存儲器中的結(jié)果然后可以被用作對于未來視頻幀的參考幀。
圖8示出了計(jì)算機(jī)系統(tǒng)800的示例實(shí)施例。系統(tǒng)800包括處理器810、動(dòng)態(tài)隨機(jī)訪問存儲器(DRAM)830、存儲控制器(MCH)820以及圖形芯片840。處理器810、DRAM 830以及圖形芯片840被耦合到MCH820。
在一個(gè)實(shí)施例中,圖形處理器840是能進(jìn)行視頻編碼的并行處理器。圖形芯片840包括寄存器組844和圖形處理器842。寄存器組844被稱作寄存器文件。在一個(gè)實(shí)施例中,寄存器文件被安排成列和行。圖形處理器842被耦合到寄存器組844。
在一個(gè)實(shí)施例中,圖形處理器842用矩形搜索模板在視頻幀中進(jìn)行運(yùn)動(dòng)搜索。在像素塊上的矩形搜索模板內(nèi)有許多運(yùn)動(dòng)搜索點(diǎn)。圖形處理器842對每個(gè)運(yùn)動(dòng)搜索點(diǎn)進(jìn)行運(yùn)動(dòng)測量,以計(jì)算對于每個(gè)運(yùn)動(dòng)搜索點(diǎn)的SAD值。在一個(gè)實(shí)施例中,具有最小SAD值的運(yùn)動(dòng)搜索點(diǎn)被認(rèn)為是最小點(diǎn)。如果最小點(diǎn)是矩形搜索區(qū)域的外點(diǎn),則圖形處理器842移動(dòng)搜索區(qū)域,使其以該最小點(diǎn)為中心,并在經(jīng)移動(dòng)的搜索區(qū)域內(nèi)的運(yùn)動(dòng)搜索點(diǎn)上重復(fù)運(yùn)動(dòng)測量。否則,圖形處理器842終止搜索并計(jì)算像素塊的運(yùn)動(dòng)向量。圖形處理器842可以在寄存器844中存儲測量數(shù)據(jù)、SAD值或者運(yùn)動(dòng)向量。通過存儲視頻幀的運(yùn)動(dòng)搜索數(shù)據(jù),而不是視頻幀本身,圖形處理器842壓縮了視頻數(shù)據(jù)。
前述的討論僅僅描述了本發(fā)明的一些示例實(shí)施例。從這樣的討論、附圖和權(quán)利要求中,本領(lǐng)域的技術(shù)人員將容易認(rèn)識到,在不脫離所附權(quán)利要求的精神和范圍的條件下,可以進(jìn)行各種修改。因而,本說明應(yīng)被看作是說明性的而不是限制性的。
權(quán)利要求
1.一種視頻編碼器,包括運(yùn)動(dòng)估測器,用于相對于參考視頻幀在輸入視頻數(shù)據(jù)上進(jìn)行運(yùn)動(dòng)搜索,以產(chǎn)生多個(gè)運(yùn)動(dòng)向量,所述運(yùn)動(dòng)搜索包括矩形運(yùn)動(dòng)搜索;和可變長編碼器,用于使用所述運(yùn)動(dòng)向量壓縮所述輸入視頻數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的視頻編碼器,還包括用于變換實(shí)域中的所述輸入視頻數(shù)據(jù)的變換器;和用于量化所述經(jīng)變換的視頻數(shù)據(jù)的量化單元。
3.根據(jù)權(quán)利要求1所述的視頻編碼器,還包括被耦合到所述運(yùn)動(dòng)估測器的用于存儲所述參考幀的幀存儲器。
4.一種方法,包括相對于參考視頻幀在輸入視頻數(shù)據(jù)上進(jìn)行運(yùn)動(dòng)搜索,以產(chǎn)生多個(gè)運(yùn)動(dòng)向量,所述運(yùn)動(dòng)搜索包括矩形運(yùn)動(dòng)搜索;以及使用所述運(yùn)動(dòng)向量壓縮所述輸入視頻數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的方法,還包括變換實(shí)域中的所述輸入視頻數(shù)據(jù);以及量化所述經(jīng)變換的視頻數(shù)據(jù)。
6.權(quán)利要求4所述的方法,還包括存儲所述參考幀。
7.一種用于確定像素塊從第一視頻幀到第二視頻幀的相對運(yùn)動(dòng)的方法,所述方法包括在形成矩形搜索區(qū)域的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量;基于所述運(yùn)動(dòng)測量的結(jié)果,找到所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn);以及如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與所述像素塊從所述第一視頻幀到所述第二視頻幀的所述相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
8.根據(jù)權(quán)利要求7所述的方法,還包括如果所述最小運(yùn)動(dòng)搜索點(diǎn)是沿著所述矩形搜索區(qū)域的邊或者在所述矩形搜索區(qū)域的角上,則重定位所述矩形搜索區(qū)域,使其基本上以所述最小運(yùn)動(dòng)搜索點(diǎn)為中心,并部分重疊所述矩形搜索區(qū)域,所述被重定位的矩形搜索區(qū)域包括第二多個(gè)運(yùn)動(dòng)搜索點(diǎn);以及在所述第二多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量。
9.根據(jù)權(quán)利要求8所述的方法,其中,在所述第二多個(gè)運(yùn)動(dòng)搜索點(diǎn)上的所述運(yùn)動(dòng)測量不包括所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中既落在所述矩形搜索區(qū)域內(nèi)又落在所述被重定位的矩形搜索區(qū)域內(nèi)的一個(gè)或多個(gè)。
10.根據(jù)權(quán)利要求7所述的方法,還包括將所述矩形搜索區(qū)域劃分成多個(gè)數(shù)據(jù)單元,所述多個(gè)數(shù)據(jù)單元中的每個(gè)具有基本相同的大小以及所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)的不同子集,其中,依次在所述多個(gè)數(shù)據(jù)單元的每個(gè)上進(jìn)行所述運(yùn)動(dòng)測量。
11.根據(jù)權(quán)利要求10所述的方法,其中,所述矩形搜索區(qū)域是具有16個(gè)運(yùn)動(dòng)搜索點(diǎn)的正方形搜索區(qū)域。
12.根據(jù)權(quán)利要求11所述的方法,其中所述正方形搜索區(qū)域被劃分成4個(gè)數(shù)據(jù)單元,所述4個(gè)數(shù)據(jù)單元的每個(gè)具有4個(gè)不同的運(yùn)動(dòng)搜索點(diǎn)。
13.根據(jù)權(quán)利要求7所述的方法,還包括進(jìn)行細(xì)化運(yùn)動(dòng)搜索,其中,進(jìn)行所述細(xì)化運(yùn)動(dòng)搜索包括如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的所述內(nèi)部區(qū)域內(nèi),則在所述最小點(diǎn)處收縮所述矩形搜索區(qū)域。
14.根據(jù)權(quán)利要求7所述的方法,還包括如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則在所述最小點(diǎn)周圍進(jìn)行次像素運(yùn)動(dòng)搜索。
15.一種用于壓縮視頻數(shù)據(jù)的方法,包括將第一視頻幀定義為參考視頻幀;相對于所述參考視頻幀在第二視頻幀上進(jìn)行運(yùn)動(dòng)搜索,以確定所述第二視頻幀相對于所述參考視頻幀的多個(gè)運(yùn)動(dòng)向量;以及將所述視頻數(shù)據(jù)簡化為所述參考視頻幀和所述第二視頻幀的所述多個(gè)運(yùn)動(dòng)向量,其中所述運(yùn)動(dòng)搜索包括在形成像素塊內(nèi)的矩形搜索區(qū)域的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量基于所述運(yùn)動(dòng)測量的結(jié)果,找到所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn);如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與所述像素塊從所述第一視頻幀到所述第二視頻幀的所述相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
16.根據(jù)權(quán)利要求15所述的方法,其中,進(jìn)行所述運(yùn)動(dòng)搜索還包括如果所述最小運(yùn)動(dòng)搜索點(diǎn)是沿著所述矩形搜索區(qū)域的邊或者在所述矩形搜索區(qū)域的角上,則重定位所述矩形搜索區(qū)域,使其基本上以所述最小運(yùn)動(dòng)搜索點(diǎn)為中心,并部分重疊所述矩形搜索區(qū)域,所述被重定位的矩形搜索區(qū)域包括第二多個(gè)運(yùn)動(dòng)搜索點(diǎn);以及在所述第二多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量。
17.根據(jù)權(quán)利要求16所述的方法,其中,在所述第二多個(gè)運(yùn)動(dòng)搜索點(diǎn)上的所述運(yùn)動(dòng)測量不包括所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中既落在所述矩形搜索區(qū)域內(nèi)又落在所述被重定位的矩形搜索區(qū)域內(nèi)的一個(gè)或多個(gè)。
18.根據(jù)權(quán)利要求15所述的方法,其中,進(jìn)行所述運(yùn)動(dòng)搜索還包括將所述矩形搜索區(qū)域劃分成多個(gè)數(shù)據(jù)單元,所述多個(gè)數(shù)據(jù)單元中的每個(gè)具有基本相同的大小以及所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)的不同子集,其中,依次在所述多個(gè)數(shù)據(jù)單元的每個(gè)上進(jìn)行所述運(yùn)動(dòng)測量。
19.一種提供指令的機(jī)器可訪問介質(zhì),所述指令如果被處理器執(zhí)行,將引起所述處理器執(zhí)行操作,以確定像素塊從第一視頻幀到第二視頻幀的相對運(yùn)動(dòng),所述操作包括在形成像素塊內(nèi)的矩形搜索區(qū)域的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量;基于所述運(yùn)動(dòng)測量的結(jié)果找到所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn);以及如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與所述像素塊從所述第一視頻幀到所述第二視頻的所述相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
20.根據(jù)權(quán)利要求19所述的機(jī)器可訪問介質(zhì),其中,所述操作還包括如果所述最小運(yùn)動(dòng)搜索點(diǎn)是沿著所述矩形搜索區(qū)域的邊或者在所述矩形搜索區(qū)域的角上,則重定位所述矩形搜索區(qū)域,使其基本上以所述最小運(yùn)動(dòng)搜索點(diǎn)為中心,并部分重疊所述矩形搜索區(qū)域,所述被重定位的矩形搜索區(qū)域包括第二多個(gè)運(yùn)動(dòng)搜索點(diǎn);以及在所述第二多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量。
21.根據(jù)權(quán)利要求20所述的機(jī)器可訪問介質(zhì),其中,在所述第二多個(gè)運(yùn)動(dòng)搜索點(diǎn)上的所述運(yùn)動(dòng)測量不包括所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中既落在所述矩形搜索區(qū)域內(nèi)也落在所述被重定位的矩形搜索區(qū)域內(nèi)的一個(gè)或多個(gè)。
22.根據(jù)權(quán)利要求19所述的機(jī)器可訪問介質(zhì),其中,所述操作還包括將所述矩形搜索區(qū)域劃分成多個(gè)數(shù)據(jù)單元,所述多個(gè)數(shù)據(jù)單元中的每個(gè)具有基本相同的大小以及所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)的不同子集,其中,依次在所述多個(gè)數(shù)據(jù)單元的每個(gè)上進(jìn)行所述運(yùn)動(dòng)測量。
23.根據(jù)權(quán)利要求22所述的機(jī)器可訪問介質(zhì),其中,所述矩形搜索區(qū)域是具有16個(gè)運(yùn)動(dòng)搜索點(diǎn)的正方形搜索區(qū)域。
24.根據(jù)權(quán)利要求23所述的機(jī)器可訪問介質(zhì),其中,所述正方形搜索區(qū)域被劃分成4個(gè)數(shù)據(jù)單元,所述4個(gè)數(shù)據(jù)單元的每個(gè)具有4個(gè)不同的運(yùn)動(dòng)搜索點(diǎn)。
25.一種系統(tǒng),包括動(dòng)態(tài)隨機(jī)訪問存儲器器件;與所述動(dòng)態(tài)隨機(jī)訪問存儲器器件耦合的存儲控制器;和與所述存儲控制器耦合的并行處理器芯片,所述并行處理器芯片包括定義寄存器文件的多個(gè)寄存器;和與所述多個(gè)寄存器耦合的并行處理器,其中,所述并行處理器可操作用來進(jìn)行操作,以確定像素塊從第一視頻幀到第二視頻幀的相對運(yùn)動(dòng),所述操作包括在形成所述像素塊內(nèi)的矩形搜索區(qū)域的多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量;基于所述運(yùn)動(dòng)測量的結(jié)果,找到所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn);如果所述最小運(yùn)動(dòng)搜索點(diǎn)在所述矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與所述像素塊從所述第一視頻幀到所述第二視頻的所述相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
26.根據(jù)權(quán)利要求25所述的系統(tǒng),其中,所述操作還包括如果所述最小運(yùn)動(dòng)搜索點(diǎn)是沿著所述矩形搜索區(qū)域的邊或者在所述矩形搜索區(qū)域的角上,則重定位所述矩形搜索區(qū)域,使其基本上以所述最小運(yùn)動(dòng)搜索點(diǎn)為中心,并部分重疊所述矩形搜索區(qū)域,所述被重定位的矩形搜索區(qū)域包括第二多個(gè)運(yùn)動(dòng)搜索點(diǎn);以及在所述第二多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量。
27.根據(jù)權(quán)利要求26所述的系統(tǒng),其中,在所述第二多個(gè)運(yùn)動(dòng)搜索點(diǎn)上的所述運(yùn)動(dòng)測量不包括所述多個(gè)運(yùn)動(dòng)搜索點(diǎn)中既落在所述矩形搜索區(qū)域內(nèi)也落在所述被重定位的矩形搜索區(qū)域內(nèi)的一個(gè)或多個(gè)。
28.根據(jù)權(quán)利要求25所述的系統(tǒng),其中,所述并行處理器將多個(gè)數(shù)據(jù)元加載到所述寄存器文件內(nèi)的矩形區(qū)域中,所述矩形區(qū)域?qū)?yīng)于所述矩形搜索區(qū)域。
29.根據(jù)權(quán)利要求25所述的系統(tǒng),還包括與所述存儲控制器耦合的微處理器。
全文摘要
本發(fā)明公開了一種用于矩形運(yùn)動(dòng)搜索的方法。該方法的一個(gè)實(shí)施例包括在多個(gè)運(yùn)動(dòng)搜索點(diǎn)上進(jìn)行運(yùn)動(dòng)測量,多個(gè)運(yùn)動(dòng)搜索點(diǎn)形成一個(gè)矩形搜索區(qū)域,基本上基于運(yùn)動(dòng)測量的結(jié)果找到多個(gè)運(yùn)動(dòng)搜索點(diǎn)中的最小運(yùn)動(dòng)搜索點(diǎn),以及如果最小運(yùn)動(dòng)搜索點(diǎn)在矩形搜索區(qū)域的內(nèi)部區(qū)域內(nèi),則找到與像素塊從第一視頻幀到第二視頻幀的相對運(yùn)動(dòng)相對應(yīng)的運(yùn)動(dòng)向量。
文檔編號H04N7/50GK1607835SQ200410078090
公開日2005年4月20日 申請日期2004年9月21日 優(yōu)先權(quán)日2003年9月30日
發(fā)明者弘江 申請人:英特爾公司