專利名稱:估算視頻序列內(nèi)后向運(yùn)動矢量的方法
技術(shù)領(lǐng)域:
本發(fā)明一般來講涉及視頻序列內(nèi)的運(yùn)動估算,更具體地講,涉及從前向運(yùn)動矢量估算后向運(yùn)動矢量的方法。
背景技術(shù):
說明對視頻編碼和解碼時可具有的效率對于許多視頻系統(tǒng)的節(jié)省成本的實(shí)現(xiàn)是關(guān)鍵的,特別是那些要求對視頻實(shí)時編碼或解碼的應(yīng)用。
圖1分割成多個宏塊來舉例說明視頻幀圖,為簡單起見,作為舉例,只表示了九個。各宏塊包括許多像素,例如用于幀運(yùn)動矢量的MPEG-2里使用的16×16像素宏塊。用于視頻信號的MPEG-2編碼的使用一直在穩(wěn)定地增長。
可以理解,估算例如編碼成MPEG-2格式的視頻序列內(nèi)的運(yùn)動是一個計算密集的過程。以CCIR 601視頻為例,用于ISO MPEG-2的編碼器中所需計算的大約90%是用于估算運(yùn)動。將視頻編碼所需的時間可能是將給定視頻序列解碼所需時間的許多倍。具體地,作為基于測試模型5(TM5)的ISO MPEG-2技術(shù)報告編碼器實(shí)現(xiàn)的編碼器,在Ultra-SPARC 80上對具有+/-63個像素的水平搜索范圍以及+/-32個像素的垂直搜索范圍的視頻序列編碼需要的CPU執(zhí)行時間為在相應(yīng)解碼過程中所需時間的大約100倍。結(jié)果,盡管MPEG-2視頻的實(shí)時解碼已經(jīng)變得可行,但實(shí)時編碼仍形成挑戰(zhàn)。
為理解計算密集性,應(yīng)認(rèn)識到MPEG-2是利用消除包含在空間域和時域中的冗余信息以實(shí)現(xiàn)壓縮的幀內(nèi)編碼和幀間編碼的混合類型的有損編碼方案。幀內(nèi)編碼是在空間域中對圖像數(shù)據(jù)執(zhí)行以產(chǎn)生I-圖像、也稱為幀內(nèi)圖像的壓縮。幀間編碼是在時域執(zhí)行的產(chǎn)生預(yù)測圖像、即P-圖像以及雙向預(yù)測圖像、即B-圖像的壓縮。用于B-圖像的運(yùn)動矢量只可在計算用于在前的P-圖像和I-圖像的前向和后向運(yùn)動矢量之后產(chǎn)生。I-圖像編碼時獨(dú)立于其它相鄰圖像,例如幀信號或場信號,而P-圖像將預(yù)測的和內(nèi)插的運(yùn)動進(jìn)行編碼來響應(yīng)來自前面I-圖像和P-圖像的元素的運(yùn)動。B-圖像作為所預(yù)測或內(nèi)插的運(yùn)動的差異信號進(jìn)行編碼,其編碼考慮了前面或即將到來的圖像里的運(yùn)動,只能在考慮前面I-圖像和P-圖像的運(yùn)動相關(guān)性之后進(jìn)行編碼。在前向、反向以及前向和反向模式中選擇提供最低預(yù)測差錯率的編碼模式用于B-圖像。通常,根據(jù)MPEG-2使用的圖像結(jié)構(gòu)遵循模式I、B、B、P、B、B、P,其中一個例子示于圖2中并參照這里宏塊矢量圖。
例如在MPEG-2標(biāo)準(zhǔn)內(nèi),視頻序列內(nèi)的幀、圖像組合在一起而形成圖像組(GOP)。在MPEG-2測試模型5(TM4)中說明的流行GOP結(jié)構(gòu)由整數(shù)M和N指定。在TM5,數(shù)值N表示GOP中的圖像數(shù)量,而M-1是兩個連續(xù)I或P幀之間的B幀數(shù)量。如表示宏塊1和宏塊3的圖2所示,M可采用的一個典型值為3,它對應(yīng)于在連續(xù)I或P圖像之間具有兩個B圖像。
在幀序列的前向或后向運(yùn)動中宏塊可能移位。圖3說明當(dāng)前幀10和后續(xù)幀12,其中,通過后向運(yùn)動矢量16,從后續(xù)幀中的位置18移動當(dāng)前幀10中的宏塊14。在圖4,相應(yīng)運(yùn)動矢量表示為B1、B2、B3、B4。圖5說明當(dāng)前幀10和前一幀20的幀圖,其中,通過前向運(yùn)動矢量24,當(dāng)前幀10中的宏塊22從前一幀20中的位置26移動。圖6是與圖5所示幀相關(guān)的常規(guī)單幀距離前向運(yùn)動矢量的宏塊矢量圖。
在TM5中M=3的情況下,編碼器需要計算運(yùn)動矢量B1、B2。如果編碼器使用H×V個像素的搜索窗口來尋找運(yùn)動矢量B2,而且假定搜索窗口尺寸隨兩個圖像之間的幀距而縮放,則利用完全搜索的運(yùn)動矢量B1和B2的計算復(fù)雜度大約為H×V+4(H×V)=5(H×V),而存儲復(fù)雜度大約為4(H×V)。
已經(jīng)設(shè)計了許多運(yùn)動估算方法來加快編碼過程內(nèi)的計算。通常這些方法必須結(jié)合使用來獲得對于提供足夠圖像質(zhì)量的實(shí)時編碼所必要的性能增益。例如,如果方法“A”可按5倍加快計算,而方法“B”可按2倍加快計算,而計算方法是正交的,則組合方法可產(chǎn)生10倍的速度增加??梢岳斫饫梅钦环椒ǖ慕M合將減少可達(dá)到的速度增加。
因此,需要可有益用于與其它運(yùn)動估算增強(qiáng)組合的加快運(yùn)動估算速度的方法。本發(fā)明滿足這些要求以及其它要求,并克服以前開發(fā)的運(yùn)動估算方法的不足。
發(fā)明簡介提供一種運(yùn)動估算方法,當(dāng)連續(xù)場之間的前向運(yùn)動矢量場可用時,該方法消除大量與后向運(yùn)動估算相關(guān)的計算。
計算前向和后向矢量通常在編碼過程中執(zhí)行。本發(fā)明認(rèn)識到在各相應(yīng)的前向和后向運(yùn)動矢量之間存在一般平行關(guān)系,并提供一種在前向運(yùn)動矢量可用時簡化后向運(yùn)動矢量計算的方法,從而減少總計算開銷。而且,本方法保持與當(dāng)前速度增強(qiáng)方法一般正交,其中可獲得技術(shù)的全部速度優(yōu)勢。
根據(jù)最接近鄰域標(biāo)準(zhǔn)的使用以及一個圖像中對象的相對前向運(yùn)動與其在前一幀中的相對后向運(yùn)動平行的事實(shí),斷定本發(fā)明中的后向運(yùn)動的估算。所以通過分析前向運(yùn)動矢量,常??筛菀椎毓浪惴聪蜻\(yùn)動矢量。
本發(fā)明的一個目的是利用關(guān)于所計算的前向運(yùn)動矢量的信息,提供快速后向運(yùn)動矢量計算。
本發(fā)明的另一個目的是提供與常規(guī)矢量計算速度增強(qiáng)方法正交的后向運(yùn)動矢量估算方法。
本發(fā)明的另一個目的是提供加快用于各種MPEG-2和其它編碼和解碼操作的后向運(yùn)動矢量計算的速度以及使實(shí)時MPEG-2編碼可行的方法。
本發(fā)明的另一個目的是為可鏈接到多幀視頻序列內(nèi)的連續(xù)幀的宏塊提供估算后向運(yùn)動矢量的方法。
本發(fā)明的其它目的和優(yōu)點(diǎn)將在說明書以下部分說明,其中,詳細(xì)說明是為了充分公開本發(fā)明的最佳實(shí)施例,而未在其上設(shè)置限制。
附圖簡介通過參照以下只用于說明的附圖將更完全理解本發(fā)明圖1是表示可將幀分割成多個宏塊的視頻幀圖,在MPEG-2中,各個宏塊包括16×16個像素。
圖2是說明在連續(xù)I/P圖像之間兩個B圖像的常規(guī)可用性的宏塊矢量圖。
圖3是表示通過后向運(yùn)動矢量從后續(xù)幀中的一個位置移動當(dāng)前幀中的宏塊的視頻幀圖。
圖4是表示例如用于圖3的后向運(yùn)動矢量集的宏塊矢量圖。
圖5是表示通過前向運(yùn)動矢量從前一幀中的一個位置移動當(dāng)前幀中宏塊的幀圖。
圖6是常規(guī)單幀距離前向運(yùn)動矢量的宏塊矢量圖。
圖7是宏塊矢量圖,說明根據(jù)本發(fā)明的一個方面,將前向運(yùn)動矢量分配給當(dāng)前幀中的最接近宏塊來形成相同大小、但與前向運(yùn)動矢量方向相反的后向運(yùn)動矢量。
圖8是宏塊矢量圖,說明根據(jù)本發(fā)明的一個方面,基于最接近宏塊標(biāo)準(zhǔn),從單幀距離前向運(yùn)動矢量導(dǎo)出單幀距離后向運(yùn)動矢量。
圖9是宏塊矢量圖,說明根據(jù)本發(fā)明的一個方面,鏈接單幀后向運(yùn)動矢量以形成多幀后向運(yùn)動矢量。
圖10是宏塊矢量圖,說明根據(jù)本發(fā)明,當(dāng)后向運(yùn)動矢量、如b3和b4不能從前向運(yùn)動矢量得出時的情況。
圖11是根據(jù)本發(fā)明的一個實(shí)施例的通用后向估算方法的流程圖。
發(fā)明詳細(xì)說明更具體地參考附圖,為說明目的,總體上在圖7至圖11所示的裝置中實(shí)施本發(fā)明??梢岳斫猓灰疵撾x這里所公開的基本概念,裝置在配置和部件細(xì)節(jié)上可變化,而方法在具體步驟和順序上可變化。
如圖6所示,當(dāng)連續(xù)幀之間可獲得前向運(yùn)動矢量場時,通過利用本發(fā)明的方法,可大量減少產(chǎn)生后向運(yùn)動矢量所涉及的計算。如圖7和圖8所示,通過從最接近鄰域單幀距離前向運(yùn)動矢量導(dǎo)出單幀距離后向運(yùn)動矢量,接著如圖9所示,通過鏈接單幀距離后向運(yùn)動矢量到多幀距離后向運(yùn)動矢量,來達(dá)到這種減少。
如圖7所示,當(dāng)前幀10的單幀距離后向運(yùn)動矢量從后面部分的下一幀12的單幀距離前向運(yùn)動矢量獲得。令下一幀12中的宏塊40的給定整數(shù)像素(pel)前向運(yùn)動矢量38為兩維矢量(u,v)。而且,令宏塊40的左上部像素位于(x,y)。因此,宏塊40按照前向運(yùn)動矢量(u,v)從位于當(dāng)前幀中的(x+u,y+v)處的16×16像素32移動。
因?yàn)檫\(yùn)動是相對的,說明16×16像素32按照后向運(yùn)動矢量(-u,-v)從當(dāng)前幀中的位置(x+u,y+v)移到下一幀的位置(x,y)。但是,位置(x+u,y+v)不一定位于宏塊的左上角。為了獲得宏塊的后向運(yùn)動矢量,分配后向運(yùn)動矢量(-u,-v)給左上角(xm,ym)最接近(x+u,y+v)的宏塊。因此,xm=16*((x+u+8)/16),ym=16*((y+v+8)/16),這里“*”是整數(shù)乘法,而“/”是如C編程語言中定義的帶舍位的整數(shù)除法。
分配過程的副作用是不能保證當(dāng)前幀中的各宏塊分配到一個且只有一個后向運(yùn)動矢量。一些宏塊可能被分配了多個后向運(yùn)動矢量,而一些宏塊可能根本未分配到任何后向運(yùn)動矢量。例如在圖8,幀B2的宏塊1未分配到任何后向運(yùn)動矢量。因此,本發(fā)明提供用于檢測哪些宏塊尚未分配到任何后向運(yùn)動矢量的方法。通過任何便利裝置,例如通過利用常規(guī)后向運(yùn)動矢量計算,后向運(yùn)動矢量接著可分配給這些未被分配的宏塊。另外,當(dāng)對相同宏塊進(jìn)行了多個分配時,提供用于選擇后向運(yùn)動矢量之一的方法。
圖9表示后向運(yùn)動矢量,其中,運(yùn)動矢量b2實(shí)際上是b31。通過將b31和b32相加獲得運(yùn)動矢量b1的近似值。選擇矢量b31是因?yàn)樗c運(yùn)動矢量b1源自相同的位置,而選擇運(yùn)動矢量b32是因?yàn)閎32的起點(diǎn)在幀B2中所有單幀距離后向運(yùn)動矢量之中離矢量b31的終點(diǎn)最近。通過選擇從形成b1的矢量b31+b32起在+/-2水平時間+/-1像素之內(nèi)使絕對差之和(SAD)最小的運(yùn)動矢量,進(jìn)一步改進(jìn)b2的近似值。
如前所述,利用本方法,并非可以確定每個宏塊的每個有效后向運(yùn)動矢量。例如,不能確定圖10中的矢量b3和b4,因?yàn)闃?gòu)建它們的運(yùn)動矢量b23無效,因而不能利用。通過以上方法,當(dāng)不能確定宏塊的有效后向運(yùn)動矢量時,不應(yīng)使用后向運(yùn)動矢量來將該宏塊編碼,而它們可通過任何便利裝置產(chǎn)生。而且,要記住,幀中的各宏塊可能分配有多個后向運(yùn)動矢量。其中可選擇后向運(yùn)動矢量之一來使用,例如最接近地逼近結(jié)果位置的后向運(yùn)動矢量,或者可計算和使用矢量的組合并將其分配給宏塊。
一個檢測未被分配的宏塊的方法是通過在后面迭代過程之前,給所有宏塊預(yù)分配無效運(yùn)動矢量,例如指向幀外部,其中可容易檢測到未被分配的宏塊。接著對下一幀內(nèi)的各宏塊執(zhí)行確定后向運(yùn)動矢量的迭代過程。
對于在下一幀中(x,y)處的每個宏塊,它的前向運(yùn)動矢量(u,v)被轉(zhuǎn)換成新的后向運(yùn)動矢量(-u,-v)。接著使用新的后向運(yùn)動矢量代替當(dāng)前幀中(xm,ym)處的宏塊的舊后向運(yùn)動矢量。結(jié)果在任一時刻對于當(dāng)前幀中每個宏塊,只保留了一個可能有效或無效的后向運(yùn)動矢量。
一旦找到后,可使用單幀距離后向運(yùn)動矢量產(chǎn)生多幀后向運(yùn)動矢量。令bim為第m幀到第(m+1)幀的第i宏塊的單幀距離后向運(yùn)動矢量。令bimn為第m幀到第n幀的第i宏塊的后向運(yùn)動矢量。因此,得到bim=bim(m+1)。
在本發(fā)明中,通過在連續(xù)幀之間鏈接運(yùn)動矢量,可利用迭代鏈接過程來找到第m幀到第n幀的第i宏塊的多幀后向運(yùn)動矢量bimn。令第m幀的第i宏塊位于(xim,yim)。
從前向運(yùn)動矢量確定后向運(yùn)動矢量之前,首先將迭代過程初始化。獲得單幀距離運(yùn)動矢量bim并標(biāo)記為bim(m+1),接著k初始化為k=(m+1)。如果bim為無效運(yùn)動矢量,則繼續(xù)迭代過程。如果bim不是無效運(yùn)動矢量,則把無效矢量分配給bimn并終止鏈接過程。
迭代地求出多幀距離后向運(yùn)動矢量bimn。一旦求出有效bimk=(uimk,vimk),通過利用第k幀的第j宏塊的單幀距離后向運(yùn)動矢量bjk,從bimk構(gòu)建運(yùn)動矢量bim(k+1),這里第j宏塊位于(xjk,yjk)以及xjk=16*((xim+uimk+8)/16),yjk=16*((yim+vimk+8)/16),而“*”是整數(shù)乘法,“/”是C編程語言中定義的帶舍位的整數(shù)除法。如果bjk是無效運(yùn)動矢量,則分配無效矢量給bimn并終止過程。如果bjk是有效運(yùn)動矢量,則分配bim(k+1)=bimk+bjk數(shù)值k按1遞增,而以上迭代過程一直重復(fù)到分配bimn。然后分配bimn后,即如果bimn為有效運(yùn)動矢量,則通過從bimn起在+/-2水平時間+/-1像素之內(nèi)使絕對差之和(SAD)最小的運(yùn)動矢量代替它以使它進(jìn)一步改進(jìn)。如果bimn不是有效運(yùn)動矢量,則不應(yīng)使用后向運(yùn)動矢量來將相應(yīng)宏塊編碼。
圖11說明根據(jù)本發(fā)明的一般步驟。為了提供在迭代過程中檢測后向運(yùn)動矢量是否被有效地分配的簡單裝置,如塊100所示,預(yù)定無效運(yùn)動矢量首先分配給所有宏塊。例如,在用于MPEG-2的本實(shí)現(xiàn)中,無效運(yùn)動矢量可包括指向幀外部的運(yùn)動矢量??梢岳斫?,并非對于每個應(yīng)用都需要檢測過程,而當(dāng)使用時,它可采用對本領(lǐng)域的普通技術(shù)人員顯而易見的許多方法來實(shí)現(xiàn)。
在下一幀中的(x,y)處選擇前面未選定的宏塊,而且按照塊102獲得它的兩維前向運(yùn)動矢量(u,v)。宏塊可為任何大小,例如包括16×16像素的宏塊。如塊104所示,從當(dāng)前幀中選擇最接近位置(x+u,y+v)的宏塊。接著如塊106所示,最接近(x+u,y+v)的宏塊的后向運(yùn)動矢量可用(-u,-v)代替。可以理解,當(dāng)多個相應(yīng)前向運(yùn)動矢量可用時,可以采用替換方法,例如選擇最接近的一個,或者在計算中組合矢量以得到后向運(yùn)動矢量。接著迭代執(zhí)行如塊102、104、106所示的以上步驟,直至已經(jīng)選擇下一幀中的宏塊,如塊108所示。如所述與多幀視頻序列配合使用時,可對后向運(yùn)動矢量進(jìn)行鏈接。
因此,可以看出,用于從前向運(yùn)動矢量估算后向運(yùn)動矢量的本發(fā)明方法可通過對本領(lǐng)域的技術(shù)人員來說顯而易見的許多變型來實(shí)現(xiàn)??梢岳斫?,只要未脫離如權(quán)利要求所述的本發(fā)明的理論,本領(lǐng)域的普通技術(shù)人員通過許多替代方法可實(shí)現(xiàn)具體步驟和步驟次序。
盡管以上說明包含許多特征,但這些不應(yīng)視為限制本發(fā)明的范圍,而僅僅是提供本發(fā)明的一些當(dāng)前最佳實(shí)施例的說明。因此,可以理解,本發(fā)明的范圍完全包括本領(lǐng)域技術(shù)人員可能想到的其它實(shí)施例,因此本發(fā)明的范圍僅受所附權(quán)利要求的限制,其中除非明確說明,引用單數(shù)元素不是要表示“一個且只有一個”,而是表示“一個或多個”。本領(lǐng)域的普通技術(shù)人員已知的上述最佳實(shí)施例的元素的所有結(jié)構(gòu)的、化學(xué)的和功能的等效物通過引用明確地結(jié)合在這里,并要由本權(quán)利要求涵蓋。而且,一種裝置或方法不一定針對本發(fā)明設(shè)法解決的每一個問題,因?yàn)樗杀緳?quán)利要求涵蓋。而且,本公開中沒有任何元素、組件或方法步驟要對公眾作出貢獻(xiàn),而不管該元素、組件或方法步驟是否在權(quán)利要求中明確引述。這里沒有任何權(quán)利要求元素被視為符合美國法典第35章第112款第6節(jié)的規(guī)定,除非使用短語“用來…的裝置”明確地引用該元素。
權(quán)利要求
1.一種在視頻幀序列中估算多幀后向運(yùn)動矢量的方法,包括對于任何幀,從最接近鄰域前向運(yùn)動矢量推導(dǎo)后向運(yùn)動矢量;以及將所述后向運(yùn)動矢量鏈接到視頻序列內(nèi)的多幀后向運(yùn)動矢量。
2.如權(quán)利要求1所述的方法,其特征在于,推導(dǎo)所述后向運(yùn)動矢量的所述步驟包括識別當(dāng)向后移動時產(chǎn)生給定宏塊的前一幀的區(qū)域;以及將所述區(qū)域的后向運(yùn)動矢量分配給最接近所述區(qū)域的宏塊。
3.如權(quán)利要求2所述的方法,其特征在于還包括檢測與無法從前向運(yùn)動矢量產(chǎn)生的任何后向運(yùn)動矢量相關(guān)聯(lián)的宏塊,并以常規(guī)方式產(chǎn)生所述后向運(yùn)動矢量。
4.如權(quán)利要求1所述的方法,其特征在于,所述鏈接包括迭代鏈接,通過鏈接連續(xù)幀之間的運(yùn)動矢量,求出第m幀到第n幀的第i宏塊的后向運(yùn)動矢量bimn;bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;以及bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量。
5.如權(quán)利要求4所述的方法,其特征在于,所述鏈接包括將迭代過程初始化;將后向運(yùn)動矢量bim標(biāo)記為bim(m+1);如果bim不是無效的,則向bimn分配無效后向運(yùn)動矢量并終止所述鏈接過程;把k初始化為k=(m+1);繼續(xù)所述迭代過程,直至求出有效后向運(yùn)動矢量bimk=(uimk,vimk);當(dāng)求出有效bimk時,通過利用第k幀的第j宏塊的后向運(yùn)動矢量bjk,從bimk構(gòu)建后向運(yùn)動矢量bim(k+1),這里第j宏塊位于(xjk,yjk)以及yjk=16*((yim+vimk+8)/16),xjk=16*((xim+uimk+8)/16);如果bjk為無效后向運(yùn)動矢量,則給bimn分配無效后向運(yùn)動矢量并終止鏈接過程;如果bjk為有效后向運(yùn)動矢量,則分配后向運(yùn)動矢量bim(k+1)=bimk+bjk;增大k值和重復(fù)以上迭代過程,直至分配后向運(yùn)動矢量bimn;其中bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;其中bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量;其中bim=bim(m+1);其中第m幀的第i宏塊位于(xim,yim)。
6.如權(quán)利要求4所述的方法,其特征在于還包括通過用使絕對差之和(SAD)最小的后向運(yùn)動矢量代替有效后向運(yùn)動矢量bimn來改進(jìn)有效后向運(yùn)動矢量bimn。
7.如權(quán)利要求6所述的方法,其特征在于還包括從bimn起在+/-2水平時間+/-1像素之內(nèi)使絕對差之和(SAD)最小。
8.一種從連續(xù)幀之間的可用前向運(yùn)動矢量場來估算后向運(yùn)動矢量的方法,包括(a)識別當(dāng)向后移動時產(chǎn)生給定宏塊的前一幀的區(qū)域;以及(b)將所述區(qū)域的后向運(yùn)動矢量分配給最接近所述區(qū)域的宏塊。
9.如權(quán)利要求8所述的方法,其特征在于還包括對于下一幀中的各宏塊重復(fù)步驟(a)和(b)來估算幀的后向運(yùn)動矢量。
10.如權(quán)利要求9所述的方法,其特征在于還包括檢測與無法從前向運(yùn)動矢量產(chǎn)生的任何后向運(yùn)動矢量相關(guān)聯(lián)的宏塊,并以常規(guī)方式產(chǎn)生所述后向運(yùn)動矢量。
11.如權(quán)利要求10所述的方法,其特征在于,檢測與無法從前向運(yùn)動矢量產(chǎn)生的任何后向運(yùn)動矢量相關(guān)聯(lián)的宏塊的所述步驟包括在確定后向運(yùn)動矢量之前,將預(yù)定的非法后向運(yùn)動矢量分配給當(dāng)前幀中的每個宏塊,其中未被分配的宏塊保留所述非法后向運(yùn)動矢量并可被檢測到。
12.如權(quán)利要求8所述的方法,其特征在于還包括將后向運(yùn)動矢量鏈接到多幀距離后向運(yùn)動矢量。
13.如權(quán)利要求12所述的方法,其特征在于,所述鏈接包括迭代鏈接,通過在連續(xù)幀之間鏈接運(yùn)動矢量,求出第m幀到第n幀的第i宏塊的后向運(yùn)動矢量bimn;bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量。
14.如權(quán)利要求12所述的方法,其特征在于,所述鏈接包括將迭代過程初始化;將后向運(yùn)動矢量bim標(biāo)記為bim(m+1);如果bim不是無效的,則將無效后向運(yùn)動矢量分配給bimn并終止所述鏈接過程;將k初始化為k=(m+1);繼續(xù)以上迭代過程,直至求出有效后向運(yùn)動矢量bimk=(uimk,vimk);當(dāng)求出有效bimk時,通過利用第k幀的第j宏塊的后向運(yùn)動矢量bjk,從bimk構(gòu)建后向運(yùn)動矢量bim(k+1),這里第j宏塊位于(xjk,yjk)以及yjk=16*((yim+vimk+8)/16),xjk=16*((xim+uimk+8)/16);如果bjk為無效后向運(yùn)動矢量,則給bimn分配無效后向運(yùn)動矢量并終止所述鏈接過程;如果bjk為有效后向運(yùn)動矢量,則分配后向運(yùn)動矢量bim(k+1)=bimk+bjk;以及遞增k值并重復(fù)以上迭代過程,直至分配后向運(yùn)動矢量bimn;其中bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;其中bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量;其中bim=bim(m+1);其中第m幀的第i宏塊位于(xim,yim)。
15.一種從在連續(xù)幀之間的前向運(yùn)動矢量場估算后向運(yùn)動矢量的方法,包括(a)對于任何幀,選擇在下一幀中的位置(x,y)處的先前未選定的宏塊,并獲得前向運(yùn)動矢量(u,v);(b)在當(dāng)前幀中選擇最接近(x+u,y+v)的宏塊;以及(c)為最接近(x+u,y+v)的宏塊分配后向運(yùn)動矢量為矢量(-u,-v)。
16.如權(quán)利要求15所述的方法,其特征在于還包括對于下一幀中的各宏塊重復(fù)步驟(a)到(c)。
17.如權(quán)利要求15所述的方法,其特征在于還包括檢測與無法從前向運(yùn)動矢量產(chǎn)生的任何后向運(yùn)動矢量相關(guān)聯(lián)的宏塊,并按常規(guī)方式產(chǎn)生所述后向運(yùn)動矢量。
18.如權(quán)利要求17所述的方法,其特征在于,檢測與無法從前向運(yùn)動矢量產(chǎn)生的任何后向運(yùn)動矢量相關(guān)聯(lián)的宏塊的所述步驟包括在確定后向運(yùn)動矢量之前,將預(yù)定的非法后向運(yùn)動矢量分配給當(dāng)前幀中的每個宏塊,其中未被分配的宏塊保留所述非法后向運(yùn)動矢量。
19.如權(quán)利要求15所述的方法,其特征在于還包括將后向運(yùn)動矢量鏈接到多幀后向運(yùn)動矢量。
20.如權(quán)利要求19所述的方法,其特征在于,所述鏈接包括迭代鏈接,通過在連續(xù)幀之間鏈接運(yùn)動矢量,求出第m幀到第n幀的第i宏塊的后向運(yùn)動矢量bimn;bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;以及bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量。
21.如權(quán)利要求19所述的方法,其特征在于,所述鏈接包括將迭代過程初始化;將后向運(yùn)動矢量bim標(biāo)記為bim(m+1);如果bim不是無效的,則將無效后向運(yùn)動矢量分配給bimn并終止所述鏈接過程;將k初始化為k=(m+1);繼續(xù)所述迭代過程,直至求出有效后向運(yùn)動矢量bimk=(uimk,vimk);當(dāng)求出有效bimk時,通過利用第k幀的第j宏塊的后向運(yùn)動矢量bjk,從bimk構(gòu)建后向運(yùn)動矢量bim(k+1),這里第j宏塊位于(xjk,yjk)以及yjk=16*((yim+vimk+8)/16),xjk=16*((xim+uimk+8)/16);如果bjk為無效后向運(yùn)動矢量,則將無效后向運(yùn)動矢量分配給bimn并終止所述鏈接過程;如果bjk為有效后向運(yùn)動矢量,則分配后向運(yùn)動矢量bim(k+1)=bimk+bjk;以及增加k值并重復(fù)以上迭代過程,直至分配后向運(yùn)動矢量bimn;其中bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;其中bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量;其中bim=bim(m+1);其中第m幀的第i宏塊位于(xim,yim)。
22.如權(quán)利要求20所述的方法,其特征在于還包括通過用使絕對差之和(SAD)最小的運(yùn)動矢量代替有效運(yùn)動矢量bimn以改進(jìn)有效運(yùn)動矢量bimn。
23.如權(quán)利要求22所述的方法,其特征在于還包括從bimn起在+/-2水平時間+/-1像素之內(nèi)使絕對差之和(SAD)最小。
24.一種在視頻序列中估算多幀后向運(yùn)動矢量的方法,包括對于包含所述幀和前一幀的幀序列中的任何幀,識別當(dāng)向后移動時產(chǎn)生給定宏塊的前一幀的區(qū)域;以及將所述區(qū)域的后向運(yùn)動矢量分配給最接近所述區(qū)域的宏塊;以及將所述后向運(yùn)動矢量鏈接到多幀后向運(yùn)動矢量。
25.如權(quán)利要求24所述的方法,其特征在于,所述鏈接包括迭代鏈接,通過在連續(xù)幀之間鏈接運(yùn)動矢量,求出第m幀到第n幀的第i宏塊的后向運(yùn)動矢量bimn;bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;以及bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量。
26.如權(quán)利要求25所述的方法,其特征在于還包括通過用使絕對差之和(SAD)最小的運(yùn)動矢量代替有效后向運(yùn)動矢量bimn以改進(jìn)有效后向運(yùn)動矢量bimn。
27.如權(quán)利要求26所述的方法,其特征在于還包括從bimn起在+/-2水平時間+/-1像素之內(nèi)使絕對差之和(SAD)最小。
28.一種估算多幀后向運(yùn)動矢量的方法,包括對于包含所述幀和前一幀的幀序列中的任何幀,識別當(dāng)向后移動時產(chǎn)生給定宏塊的前一幀的區(qū)域;以及將所述區(qū)域的后向運(yùn)動矢量分配給最接近所述區(qū)域的宏塊;通過迭代鏈接將所述后向運(yùn)動矢量鏈接到多幀后向運(yùn)動矢量,從而通過在連續(xù)幀之間鏈接后向運(yùn)動矢量而求出第m幀到第n幀的第i宏塊的后向運(yùn)動矢量bimn;其中bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;以及其中bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量。
29.一種估算多幀后向運(yùn)動矢量的方法,包括選擇在下一幀中的位置(x,y)處未選定的宏塊并獲得相關(guān)的前向運(yùn)動矢量(u,v);在當(dāng)前幀中選擇最接近(x+u,y+v)的宏塊;以及為最接近(x+u,y+v)的宏塊分配后向運(yùn)動矢量為矢量(-u,-v);通過迭代鏈接將所述后向運(yùn)動矢量鏈接到多幀后向運(yùn)動矢量,從而通過在連續(xù)幀之間鏈接后向運(yùn)動矢量而求出第m幀到第n幀的第i宏塊的后向運(yùn)動矢量bimn;其中bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;以及其中bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量。
30.一種估算多幀后向運(yùn)動矢量的方法,包括選擇在下一幀中的位置(x,y)處的未選定宏塊并獲得它的前向運(yùn)動矢量(u,v);在當(dāng)前幀中選擇最接近(x+u,y+v)的宏塊;以及為最接近(x+u,y+v)的宏塊分配后向運(yùn)動矢量為矢量(-u,-v);通過將迭代過程初始化,將所述后向運(yùn)動矢量鏈接到多幀后向運(yùn)動矢量;將后向運(yùn)動矢量bim標(biāo)記為bim(m+1);如果bim不是無效的,則將無效后向運(yùn)動矢量分配給bimn并終止所述鏈接過程;將k初始化為k=(m+1);繼續(xù)所述迭代過程,直至求出有效后向運(yùn)動矢量bimk=(uimk,vimk);當(dāng)求出有效bimk時,通過利用第k幀的第j宏塊的后向運(yùn)動矢量bjk,從bimk構(gòu)建后向運(yùn)動矢量bim(k+1),這里第j宏塊位于(xjk,yjk)以及yjk=16*((yim+vimk+8)/16),xjk=16*((xim+uimk+8)/16);如果bjk是無效后向運(yùn)動矢量,則將無效后向運(yùn)動矢量分配給bimn并終止所述鏈接過程;如果bjk是有效后向運(yùn)動矢量,則分配后向運(yùn)動矢量bim(k+1)=bimk+bjk;以及增大k值并重復(fù)以上迭代過程,直至分配后向運(yùn)動矢量bimn;其中bim表示第m幀到第(m+1)幀的第i宏塊的后向運(yùn)動矢量;其中bimn表示第m幀到第n幀的第i宏塊的后向運(yùn)動矢量;其中bim=bim(m+1);其中第m幀的第i宏塊位于(xim,yim)。
全文摘要
一種加速后向運(yùn)動矢量估算值(38)的計算的方法,該后向運(yùn)動矢量估算值從基于最接近鄰域標(biāo)準(zhǔn)可從前向運(yùn)動矢量估算值(36)得到的場中導(dǎo)出。本方法允許產(chǎn)生多幀后向運(yùn)動矢量(10和12)。用于估算后向運(yùn)動矢量的本方法發(fā)明特別適合與MPEG-2視頻標(biāo)準(zhǔn)(36和38)配合使用。
文檔編號H04N7/32GK1656704SQ03811727
公開日2005年8月17日 申請日期2003年1月14日 優(yōu)先權(quán)日2002年3月29日
發(fā)明者歐陽強(qiáng) 申請人:索尼電子有限公司