專(zhuān)利名稱(chēng):B圖像的直接模式運(yùn)動(dòng)矢量計(jì)算方法
技術(shù)領(lǐng)域:
本發(fā)明涉及運(yùn)動(dòng)圖像編碼方法,尤其涉及用于計(jì)算在下一代運(yùn)動(dòng)圖像壓縮技術(shù)中定義的B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的技術(shù)。
現(xiàn)有技術(shù)傳統(tǒng)的B圖像具有五種類(lèi)型的預(yù)測(cè)模式,包括前向模式、后向模式、雙向模式、直接模式和幀內(nèi)模式。在前向模式、后向模式和雙向模式中,因?yàn)榉较蛐畔谀J矫Q(chēng)中,所以可以從模式名稱(chēng)中識(shí)別出運(yùn)動(dòng)矢量的方向。在直接模式中,基于時(shí)間冗余特征,即在兩個(gè)相鄰圖像之間不變地保持運(yùn)動(dòng)連續(xù)性,從相鄰圖像的相同位置塊的運(yùn)動(dòng)中,可以得出兩個(gè)方向的兩個(gè)運(yùn)動(dòng)矢量。此直接模式在編碼效率方面具有優(yōu)點(diǎn),因?yàn)椴话堰\(yùn)動(dòng)信息發(fā)送到解碼器。
另一方面,在諸如H.264或者M(jìn)PEG-4第10部分的下一代運(yùn)動(dòng)圖像壓縮技術(shù)中所采用的B圖像具有如下特征,即因?yàn)槟軌驅(qū)圖像存儲(chǔ)在參考圖像緩沖器中,所以允許將B圖像用作參考圖像。該B圖像還具有如下特征,即,其具有5種類(lèi)型的預(yù)測(cè)模式,即序列0模式,序列1模式,雙向預(yù)測(cè)模式,直接模式和幀內(nèi)模式。
序列0模式與傳統(tǒng)的前向模式類(lèi)似,分別使用ref_id×_l0和mvd_l0指示諸如參考圖像索引和運(yùn)動(dòng)矢量差值的運(yùn)動(dòng)信息。序列1模式與傳統(tǒng)的后向模式類(lèi)似,分別使用ref_id×_l1和mvd_l1指示諸如參考圖像索引和運(yùn)動(dòng)矢量差值的運(yùn)動(dòng)信息。雙向預(yù)測(cè)模式具有兩個(gè)參考圖像,兩個(gè)參考圖像在時(shí)間上可以同時(shí)處于B圖像之前或之后,或者分別處于B圖像之前和之后。在此情況下,分別使用ref_id×_l0,ref_id×_l1,mvd_l0和mvd_l1指示兩個(gè)參考圖像索引和兩個(gè)運(yùn)動(dòng)矢量差值,并且每一個(gè)參考圖像都具有圖像順序計(jì)數(shù)(POC)數(shù)據(jù),這是一個(gè)時(shí)間位置信息。
在直接模式中,通過(guò)選擇空間技術(shù)和時(shí)間技術(shù)中的任意一種而獲得運(yùn)動(dòng)矢量??臻g直接模式技術(shù)用于從所要編碼的宏塊的相鄰塊中得出序列0和序列1參考圖像索引和運(yùn)動(dòng)矢量。時(shí)間直接模式技術(shù)通過(guò)對(duì)直接模式的序列1參考圖像中相同位置塊的序列0運(yùn)動(dòng)矢量進(jìn)行縮放(該參考圖像與傳統(tǒng)的B圖像類(lèi)似),從而得出序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB。此處,直接模式的序列1參考圖像是這樣一個(gè)圖像序列1預(yù)測(cè)的索引為0,直接模式序列0參考圖像是直接模式序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量所指向的序列0參考圖像。
圖1a到1c分別顯示的是,當(dāng)可用的序列0和序列1參考圖像的數(shù)目(或者短期緩沖器的大小)為6時(shí),在IBBBP模式中,序列0預(yù)測(cè)的缺省索引,序列1預(yù)測(cè)的缺省索引和各個(gè)B圖像的直接模式序列1參考圖像。此處,序列0預(yù)測(cè)的缺省索引和序列1預(yù)測(cè)的缺省索引取決于先前解碼的參考圖像的輸出順序,或POC值,而與解碼順序無(wú)關(guān)。在圖1中,所有的B圖像使用在時(shí)間上緊隨的P圖像作為直接模式序列1參考圖像。
圖2a到2c分別顯示的是,在僅使用B圖像的IBBB模式中,序列0預(yù)測(cè)的缺省索引,序列1預(yù)測(cè)的缺省索引和各個(gè)B圖像的直接模式序列1參考圖像。在圖2a中,當(dāng)要編碼的B圖像為B8時(shí),具有序列1索引0的、在時(shí)間上超前的B5為直接模式序列1參考圖像。如圖2b所示,接著要解碼的B7的直接模式序列1參考圖像是時(shí)間上落后的B8。最后,如圖2C所示,接著要解碼的B9的直接模式序列1參考圖像是時(shí)間上超前的B7。
因此,如圖1a到2c所示,直接模式序列1參考圖像可以是在時(shí)間上落后于所要編碼的B圖像的P或B圖像,或者在時(shí)間上超前于它的B圖像。
圖3a到3h顯示的是當(dāng)序列1參考圖像在時(shí)間上落后于B圖像時(shí),直接模式序列1參考圖像中的相同位置塊所可以具有的模式。在這種情況下,因?yàn)樾蛄?參考圖像可以是P圖像或者是B圖像,從而它的相同位置塊具有一個(gè)或者兩個(gè)運(yùn)動(dòng)矢量,或者幀內(nèi)模式。下一代的運(yùn)動(dòng)圖像壓縮技術(shù),諸如H.264或者M(jìn)PEG-4第10部分,允許在“片(slice)”的級(jí)別上對(duì)參考圖像索引進(jìn)行重新排序,從而將序列1預(yù)測(cè)的索引0分配給B圖像之后的圖像。即,由于序列1參考圖像能夠緊隨B圖像之后,所以相同位置塊的運(yùn)動(dòng)矢量可以指向前或者后。
圖4a到4h顯示的是當(dāng)序列1參考圖像在時(shí)間上超前于B圖像時(shí),直接模式序列1參考圖像中的相同位置塊所可以具有的模式。如上所述,在這種情況下,相同位置塊具有一個(gè)或者兩個(gè)運(yùn)動(dòng)矢量,或者幀內(nèi)模式。序列1參考圖像和B圖像之間可以有其它的參考圖像,從而相同位置塊的運(yùn)動(dòng)矢量可以指向時(shí)間上超前或者落后的方向。
如圖3a到4h所示,直接模式序列1參考圖像可以具有不同的預(yù)測(cè)模式,使得需要開(kāi)發(fā)出一種方法,用于根據(jù)不同的情況,計(jì)算直接模式運(yùn)動(dòng)矢量。
發(fā)明內(nèi)容
因此,本發(fā)明已經(jīng)考慮了上述問(wèn)題,并且本發(fā)明的一個(gè)目的是提供一種計(jì)算在下一代運(yùn)動(dòng)圖像壓縮技術(shù)中定義的B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,其中,提出了一種用于計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量的方法,以提高將直接模式選作為宏塊預(yù)測(cè)模式的概率,從而提高B圖像編碼效率。
根據(jù)本發(fā)明的一個(gè)方面,通過(guò)提供一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,從而實(shí)現(xiàn)本發(fā)明的上述和其它目的,該方法包括如下步驟如果直接模式序列1參考圖像中的相同位置塊具有兩個(gè)運(yùn)動(dòng)矢量,則選擇兩個(gè)運(yùn)動(dòng)矢量中的任何一個(gè)(序列0運(yùn)動(dòng)矢量或者序列1運(yùn)動(dòng)矢量),并且從所選擇的運(yùn)動(dòng)矢量中得出B圖像的直接模式運(yùn)動(dòng)矢量。
優(yōu)選地,上述步驟包括如下步驟選擇序列0和序列1運(yùn)動(dòng)矢量中的一個(gè),其指向在時(shí)間上接近于直接模式序列1參考圖像的圖像,作為運(yùn)動(dòng)矢量以得出直接模式運(yùn)動(dòng)矢量;如果兩個(gè)運(yùn)動(dòng)矢量指向相同的參考圖像,則將序列0運(yùn)動(dòng)矢量選作為運(yùn)動(dòng)矢量,以得出直接模式運(yùn)動(dòng)矢量;將所選擇的運(yùn)動(dòng)矢量指向的參考圖像確定為直接模式序列0參考圖像;并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。作為選擇,上述步驟可以包括如下步驟與時(shí)間距離無(wú)關(guān)地,無(wú)條件地將序列0運(yùn)動(dòng)矢量選擇作為運(yùn)動(dòng)矢量以計(jì)算直接模式運(yùn)動(dòng)矢量;將序列0運(yùn)動(dòng)矢量所指向的參考圖像確定為直接模式序列0參考圖像;并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,從而實(shí)現(xiàn)本發(fā)明的上述和其它目的,該方法包括如下步驟與相同位置塊的運(yùn)動(dòng)矢量的模式(序列0模式和/或序列1模式)無(wú)關(guān)地,將直接模式序列1參考圖像的相同位置塊的任何一個(gè)運(yùn)動(dòng)矢量確定為運(yùn)動(dòng)矢量,以得出直接模式運(yùn)動(dòng)矢量;將所選擇的運(yùn)動(dòng)矢量所指向的參考圖像確定為直接模式序列0參考圖像;計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。已經(jīng)提出過(guò)一種傳統(tǒng)的方法,該方法用于從相同位置塊的序列0運(yùn)動(dòng)矢量中,計(jì)算直接模式運(yùn)動(dòng)矢量。如果將此傳統(tǒng)方法應(yīng)用到在序列1參考圖像中的相同位置塊僅具有一個(gè)序列1運(yùn)動(dòng)矢量的情況,則因?yàn)樾蛄?運(yùn)動(dòng)矢量為0,所以所有的直接模式運(yùn)動(dòng)矢量將成為0。然而,本發(fā)明能夠解決此問(wèn)題。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,從而實(shí)現(xiàn)本發(fā)明的上述和其它目的,該方法包括如下步驟如果直接模式序列1參考圖像中的相同位置塊僅具有一個(gè)序列1運(yùn)動(dòng)矢量,考慮到相同位置塊具有零運(yùn)動(dòng),將在時(shí)間上正好位于B圖像之前的解碼圖像確定為直接模式序列0參考圖像,并且得出B圖像的直接模式運(yùn)動(dòng)矢量。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,從而實(shí)現(xiàn)本發(fā)明的上述和其它目的,該方法包括如下步驟如果在直接模式序列1參考圖像中的相同位置塊僅具有一個(gè)序列1運(yùn)動(dòng)矢量,則將相同位置塊的序列1運(yùn)動(dòng)矢量用作為運(yùn)動(dòng)矢量以計(jì)算直接模式運(yùn)動(dòng)矢量;將在時(shí)間上正好位于B圖像之前的解碼圖像確定為直接模式序列0參考圖像;并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,該方法包括如下步驟如果在直接模式序列1參考圖像中的相同位置塊僅具有一個(gè)序列1運(yùn)動(dòng)矢量,則將相同位置塊的序列1運(yùn)動(dòng)矢量用作為運(yùn)動(dòng)量以計(jì)算直接模式運(yùn)動(dòng)矢量;將相同位置塊的序列1運(yùn)動(dòng)矢量所指向的參考圖像確定為直接模式序列0參考圖像;并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,該方法包括如下步驟將最新解碼的圖像設(shè)定為直接模式序列1參考圖像,對(duì)直接模式序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量進(jìn)行縮放,以得出序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB,并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。在傳統(tǒng)方法中,將具有序列1預(yù)測(cè)的索引0的圖像定義為直接模式序列1參考圖像。當(dāng)在B圖像和具有索引0的圖像之間解碼不同的圖像時(shí),必須保持具有索引0的圖像的運(yùn)動(dòng)信息和參考圖像信息,這導(dǎo)致使用附加的存儲(chǔ)器。然而,本方法能夠避免使用附加的存儲(chǔ)器。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,該方法包括如下步驟如果直接模式序列1參考圖像在時(shí)間上超前于B圖像,則對(duì)直接模式序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量進(jìn)行縮放,以得到序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB,并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。
優(yōu)選地,上述步驟可以包括如下步驟如果B圖像的宏塊和序列1參考圖像的相同位置宏塊處于幀模式,而直接模式序列0參考圖像在時(shí)間上超前于序列1參考圖像,則按照下面的公式計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD或者Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示在直接模式序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊和序列1參考圖像的相同位置宏塊處于幀模式,而直接模式序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照下面的公式計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=-TDB×MV/TDDMVB=-(TDB+TDD)×MV/TDD或者Z=-TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊和序列1參考圖像的相同位置宏塊處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上超前于序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i或者Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示直接模式序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊和序列1參考圖像的相同位置宏塊處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MVi/TDD,iMVB,i=-(TDB,i+TDD,i)×MVi/TDD,i
或者Z=-TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示直接模式序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于場(chǎng)模式,序列1參考圖像的相同位置宏塊處于幀模式,而直接模式序列0參考圖像在時(shí)間上超前于序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD或者Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于場(chǎng)模式,序列1參考圖像的相同位置宏塊處于幀模式,而直接模式序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MV/TDDMVB,i=-(TDB,i+TDD)×MV/TDD或者Z=-TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于幀模式,序列1參考圖像的相同位置宏塊處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上超前于序列1參考圖像,則由下面的公式計(jì)算B幀的直接模式運(yùn)動(dòng)矢量MVF和MVB,其中只用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量MVF=TDB×MV1/TDD,1MVB=(TDB-TDD,1)×MV1/TDD,1或者Z=TDB×256/TDD,1MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,1表示序列1參考幀的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,MV1表示直接模式序列1參考幀的場(chǎng)1中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于幀模式,序列1參考圖像的相同位置宏塊處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上落后于序列1參考圖像,則由下面的公式計(jì)算B幀的直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量MVF=-TDB×MV1/TDD,1MVB=-(TDB,+TDD,1)×MV1/TDD,1或者Z=-TDB×256/TDD,1MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,1表示序列1參考幀的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,MV1表示直接模式序列1參考幀的場(chǎng)1中相同位置塊的運(yùn)動(dòng)矢量。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,該方法包括如下步驟如果直接模式序列0參考圖像和序列1參考圖像均在時(shí)間上落后于B圖像,則對(duì)直接模式序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量進(jìn)行縮放,以得到序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB,并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。
優(yōu)選地,上述步驟可以包括如下步驟如果B圖像的宏塊和序列1參考圖像的相同位置宏塊處于幀模式,而直接模式序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照下面的公式計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD或者Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考圖像中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊和序列1參考圖像的相同位置宏塊都處于幀模式,而直接模式序列0參考圖像在時(shí)間上超前于序列1參考圖像,則按照下面的公式計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=-TDB×MV/TDDMVB=-(TDB+TDD)×MV/TDD或者Z=-TDB×256/TDDMVF=(Z×MV+128)>>8
W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考圖像中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊和序列1參考圖像的相同位置宏塊都處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,iMVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i或者Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示直接模式序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊和序列1參考圖像的相同位置宏塊都處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上超前于序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MVi/TDD,iMVB,i=-(TDB,i+TDD,i)×MVi/TDD,i或者Z=-TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示直接模式序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于場(chǎng)模式,序列1參考圖像的相同位置宏塊處于幀模式,而直接模式序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD或者Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于場(chǎng)模式,序列1參考圖像的相同位置宏塊處于幀模式,而直接模式序列0參考圖像在時(shí)間上超前于序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MV/TDDMVB,i=-(TDB,i+TDD)×MV/TDD或者Z=-TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于幀模式,而序列1參考圖像的相同位置宏塊處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上落后于序列1參考圖像,則由下面的公式計(jì)算B幀的直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)0中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量MVF=TDB×MV0/TDD,0MVB=(TDB-TDD,0)×MV0/TDD,0或者Z=TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256MVB=(W×MV0+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,0表示序列1參考幀的場(chǎng)0和序列0參考場(chǎng)之間的時(shí)間距離,MV0表示直接模式序列1參考幀的場(chǎng)0中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于幀模式,而序列1參考圖像的相同位置宏塊處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上超前于序列1參考圖像,則由下面的公式計(jì)算B幀的直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)0中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量MVF=-TDB×MV0/TDD,0MVB=-(TDB+TDD,0)×MV0/TDD,0或者Z=-TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256 MVB=(W×MV0+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,0表示序列1參考幀的場(chǎng)0和序列0參考場(chǎng)之間的時(shí)間距離,MV0表示直接模式序列1參考幀的場(chǎng)0中相同位置塊的運(yùn)動(dòng)矢量。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,該方法包括如下步驟為圖像間時(shí)間距離值指定符號(hào),與直接模式的序列0和序列1參考圖像的位置無(wú)關(guān)地,對(duì)直接模式序列1參考圖像中相同位置塊的運(yùn)動(dòng)矢量進(jìn)行縮放,以得到序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB,并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。
優(yōu)選地,上述步驟可以包括如下步驟如果B圖像宏塊和序列1參考圖像的相同位置宏塊都處于幀模式,則按照下面的公式計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD或者Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,如果從序列1參考幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV表示直接模式序列1參考圖像中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像宏塊和序列1參考圖像的相同位置宏塊都處于場(chǎng)模式,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i或者Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從B場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MVi表示直接模式序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于場(chǎng)模式,而序列1參考圖像的相同位置宏塊處于幀模式,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD或者Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從B場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,如果從序列1參考幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于幀模式,序列1參考圖像的相同位置宏塊處于場(chǎng)模式,而序列1參考圖像在時(shí)間上落后于B圖像,則由下面的公式計(jì)算B幀的直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=TDB×MV0/TDD,0MVB=(TDB-TDD,0)×MV0/TDD,0或者Z=TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256 MVB=(W×MV0+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,0表示序列1參考幀的場(chǎng)0和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考幀的場(chǎng)0進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV0表示直接模式序列1參考幀的場(chǎng)0中相同位置塊的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果B圖像的宏塊處于幀模式,序列1參考圖像的相同位置宏塊處于場(chǎng)模式,而直接模式序列0參考圖像在時(shí)間上超前于所述的B圖像,則由下面的公式計(jì)算B幀的所述直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=TDB×MV1/TDD,1MVB=(TDB-TDD,1)×MV1/TDD,1或者Z=TDB×256/TDD,1MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,1表示序列1參考幀的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考幀的場(chǎng)1進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV1表示直接模式序列1參考幀的場(chǎng)1中相同位置塊的運(yùn)動(dòng)矢量。
根據(jù)本發(fā)明的另外一個(gè)方面,提供了一種在運(yùn)動(dòng)圖像編碼系統(tǒng)中,用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量,該方法包括如下步驟如果直接模式序列1參考圖像的相同位置宏塊處于幀內(nèi)模式,則基于空間冗余,從所要編碼的B圖像的宏塊的相鄰塊中,預(yù)測(cè)和計(jì)算序列0和序列1參考圖像和運(yùn)動(dòng)矢量,并且計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量。
優(yōu)選地,上述步驟可以包括如下步驟如果所要編碼的所述宏塊的相鄰塊A,B和C涉及不同的參考圖像,則選擇具有最小索引的參考圖像作為各個(gè)序列的參考圖像。
另外,上述步驟可以包括如下步驟如果所要編碼的所述宏塊的相鄰塊中,兩個(gè)或多個(gè)相鄰塊涉及具有相同索引的參考圖像,則選擇該參考圖像作為各個(gè)序列的參考圖像。
另外,上述步驟可以包括如下步驟如果所要編碼的所述宏塊的相鄰塊A,B和C處于幀內(nèi)模式,則將其序列0和序列1運(yùn)動(dòng)矢量設(shè)定為0;在相鄰塊中,選擇具有和各個(gè)序列的參考圖像的時(shí)間位置相同方向的運(yùn)動(dòng)矢量;并且通過(guò)中值操作,獲得各個(gè)序列的運(yùn)動(dòng)矢量,或者如果相鄰塊具有方向相同的兩個(gè)運(yùn)動(dòng)矢量,則從該塊的兩個(gè)運(yùn)動(dòng)矢量中僅選擇一個(gè),并且通過(guò)包含所選擇的運(yùn)動(dòng)矢量在內(nèi)的中值操作,獲得各個(gè)序列的運(yùn)動(dòng)矢量。
另外,上述步驟可以包括如下步驟如果不能獲得各個(gè)序列模式的有效參考圖像索引,則將序列0和序列1參考圖像索引指定為0,并且將各個(gè)序列模式的運(yùn)動(dòng)矢量設(shè)定為0。
附圖幫助更好地理解本發(fā)明,并在此結(jié)合構(gòu)成本申請(qǐng)的一部分,
本發(fā)明的實(shí)施例并和說(shuō)明書(shū)一起解釋本發(fā)明的原理,附圖中圖1a到1c顯示的是在傳統(tǒng)的IBBBP模式中,直接模式的序列1參考圖像;圖2a到2c顯示的是在普通的IBBB模式中,直接模式的序列1參考圖像;圖3a到3h顯示的是直接模式序列1參考圖像在時(shí)間上落后于B圖像時(shí)的情況(L0 MV序列0運(yùn)動(dòng)矢量,L1 MV序列1運(yùn)動(dòng)矢量);圖4a到4h顯示的是直接模式序列1參考圖像在時(shí)間上超前于B圖像時(shí)的情況(L0 MV序列0運(yùn)動(dòng)矢量,L1 MV序列1運(yùn)動(dòng)矢量);圖5顯示的是在考慮普通的空間冗余時(shí),使用相鄰塊A,B和C的運(yùn)動(dòng)矢量的塊E運(yùn)動(dòng)矢量預(yù)測(cè);圖6a到6c顯示的是當(dāng)B圖像的宏塊和直接模式序列1參考圖像的相同位置宏塊均處于幀模式,并且序列1參考圖像在時(shí)間上落后于B圖像時(shí)的情況;圖7a到7d顯示的是當(dāng)B圖像的宏塊和直接模式序列1參考圖像的相同位置宏塊均處于場(chǎng)模式,并且序列1參考圖像在時(shí)間上落后于B圖像時(shí)的情況;圖8a到8c顯示的是當(dāng)B圖像的宏塊處于場(chǎng)模式,直接模式序列1參考圖像的相同位置宏塊處于幀模式,并且序列1參考圖像在時(shí)間上落后于B圖像時(shí)的情況;圖9a到9c顯示的是當(dāng)B圖像的宏塊處于幀模式,直接模式序列1參考圖像的相同位置宏塊處于場(chǎng)模式,并且序列1參考圖像在時(shí)間上落后于B圖像時(shí)的情況;圖10a到10b顯示的是當(dāng)B圖像的宏塊和直接模式序列1參考圖像的相同位置宏塊均處于幀模式,并且序列1參考圖像在時(shí)間上超前于B圖像時(shí)的情況;圖11a到11d顯示的是當(dāng)B圖像的宏塊和直接模式序列1參考圖像的相同位置宏塊均處于場(chǎng)模式,并且序列1參考圖像在時(shí)間上超前于B圖像時(shí)的情況;圖12a到12b顯示的是當(dāng)B圖像的宏塊處于場(chǎng)模式,普通直接模式序列1參考圖像的相同位置宏塊處于幀模式,并且序列1參考圖像在時(shí)間上超前于B圖像時(shí)的情況;圖13a到13c顯示的是當(dāng)B圖像的宏塊處于幀模式,普通直接模式序列1參考圖像的相同位置宏塊處于場(chǎng)模式,并且序列1參考圖像在時(shí)間上超前于B圖像時(shí)的情況。
優(yōu)選實(shí)施例詳細(xì)說(shuō)明本發(fā)明提出了一種當(dāng)直接模式序列1參考圖像中的相同位置宏塊處于幀內(nèi)模式時(shí),用于計(jì)算直接模式運(yùn)動(dòng)矢量的方法,以及在序列1參考圖像在時(shí)間上落后于B圖像的情況下,和在序列1參考圖像在時(shí)間上超前于B圖像的情況下,用于計(jì)算直接模式運(yùn)動(dòng)矢量的方法。
本發(fā)明還提出了一種與直接模式序列0和序列1參考圖像的位置無(wú)關(guān)地計(jì)算直接模式運(yùn)動(dòng)矢量的方法,其通過(guò)為圖像間時(shí)間距離值指定符號(hào)而簡(jiǎn)化了計(jì)算直接模式運(yùn)動(dòng)矢量的算法。
另一方面,在圖像的級(jí)別上進(jìn)行幀模式和場(chǎng)模式的轉(zhuǎn)換,從而能夠?qū)圖像和序列1參考圖像編碼成為幀模式或者場(chǎng)模式。結(jié)果,B圖像的宏塊和序列1參考圖像的相同位置宏塊具有四種類(lèi)型的幀/場(chǎng)編碼組合。
序列1參考圖像的相同位置宏塊處于幀內(nèi)模式的情況如圖3f和4f所示,不管參考圖像的時(shí)間位置,直接模式序列1參考圖像中的相同位置宏塊可以處于幀內(nèi)模式。由于在此模式下的宏塊沒(méi)有運(yùn)動(dòng)信息,所以傳統(tǒng)的方法只是簡(jiǎn)單地將直接模式運(yùn)動(dòng)矢量設(shè)置為0,而將序列0參考圖像定義為最新解碼的圖像。然而,傳統(tǒng)的方法不能保證很高的編碼效率。因此,本發(fā)明基于空間冗余,從所要編碼的B圖像的宏塊的相鄰塊中,對(duì)序列0和序列1參考圖像和運(yùn)動(dòng)矢量進(jìn)行預(yù)測(cè)和計(jì)算。
以下面的方式獲得各個(gè)序列模式的參考圖像索引。圖5顯示的是在考慮普通的空間冗余時(shí),使用相鄰塊A,B和C的塊E運(yùn)動(dòng)矢量預(yù)測(cè)。
——如果相鄰塊A,B和C具有不同的參考圖像索引,則將參考圖像索引中最小的一個(gè)確定為直接模式參考圖像索引。
——如果相鄰塊中的兩個(gè)具有相同的參考圖像索引,則將此索引確定為直接模式參考圖像索引。
——如果所有的相鄰塊具有相同的參考圖像索引,則將此索引確定為直接模式參考圖像索引。
另外,通過(guò)下面的運(yùn)動(dòng)矢量預(yù)測(cè)而獲得各個(gè)序列模式的運(yùn)動(dòng)矢量。此時(shí),如果相鄰塊A、B和C中的任何一個(gè)處于幀內(nèi)模式,則將其序列0和序列1運(yùn)動(dòng)矢量設(shè)定為0。
——從相鄰塊中,選擇具有與如上得到的各個(gè)序列模式的參考圖像的時(shí)間位置方向相同的運(yùn)動(dòng)矢量,并且通過(guò)中值操作獲得各個(gè)序列模式的運(yùn)動(dòng)矢量。
——如果相鄰塊具有方向相同的兩個(gè)運(yùn)動(dòng)矢量,則在該塊中僅選擇兩個(gè)運(yùn)動(dòng)矢量中的一個(gè),并且進(jìn)行中值操作。
另一方面,如果不能從相鄰塊中得到任何一個(gè)有效的序列0和序列1參考圖像索引,則將其設(shè)定為0,并且將各個(gè)序列模式的運(yùn)動(dòng)矢量設(shè)定為0。
直接模式序列1參考圖像時(shí)間上落后于B圖像第1種情況B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于幀模式如圖3a到3h所示,序列1參考圖像的相同位置塊可以具有一個(gè)運(yùn)動(dòng)矢量或者兩個(gè)運(yùn)動(dòng)矢量。在本發(fā)明中,如果相同位置塊具有兩個(gè)運(yùn)動(dòng)矢量,則選擇兩個(gè)運(yùn)動(dòng)矢量中的一個(gè)(L0 MV或者L1 MV),并且由所選擇的運(yùn)動(dòng)矢量得到直接模式運(yùn)動(dòng)矢量(下文中根據(jù)選擇L0MV(序列0運(yùn)動(dòng)矢量)的情況進(jìn)行描述)。
因此,可以分別將圖3a和3c簡(jiǎn)化為圖6a,將圖3b,3d和3e簡(jiǎn)化為圖6c,將圖3g和3h簡(jiǎn)化為圖6b。
如果直接模式序列0參考圖像和序列1參考圖像分別在時(shí)間上超前于或者落后于B圖像(圖6a),或者如果直接模式的序列0和序列1參考圖像在時(shí)間上都落后于B圖像,且序列0參考圖像在時(shí)間上落后于序列1參考圖像(圖6b),則按照下面的公式計(jì)算直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離。
為了方便,對(duì)直接模式運(yùn)動(dòng)矢量MVF和MVB的計(jì)算結(jié)果進(jìn)行位操作,則上述公式表示為Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8如果直接模式序列0和序列1參考圖像均在時(shí)間上落后于B圖像,而序列0參考圖像在時(shí)間上超前于序列1參考圖像(圖6c),則按照下面的公式計(jì)算直接模式運(yùn)動(dòng)矢量MVF=-TDB×MV/TDDMVB=-(TDB+TDD)×MV/TDD此公式可以表示如下Z=-TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8第2種情況B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于場(chǎng)模式圖7a到7d顯示的是B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于場(chǎng)模式的情況。由相同奇偶性的序列1參考場(chǎng)中的相同位置塊的運(yùn)動(dòng)矢量,得到B圖像的宏塊的各個(gè)運(yùn)動(dòng)矢量。
如果直接模式序列0和序列1參考圖像分別在時(shí)間上超前或者落后于B圖像(圖7a),或者如果直接模式序列0和序列1參考圖像在時(shí)間上均落后于B圖像,而序列0參考圖像在時(shí)間上落后于序列1參考圖像(圖7b),則按照下面的公式計(jì)算B幀的各個(gè)場(chǎng)i的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF,i和MVB,i(i=0表示第1個(gè)場(chǎng),i=1表示第2個(gè)場(chǎng))MVF,i=TDB,i×MVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i其中,MVi表示在序列1參考幀中,場(chǎng)i的相同位置塊的運(yùn)動(dòng)矢量,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,而TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離。
上面的公式可以表示如下Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256MVB,i=(W×MVi+128)>>8如果,因?yàn)樾蛄?參考幀中的場(chǎng)i的相同位置塊的運(yùn)動(dòng)矢量指向一個(gè)在時(shí)間上落后于B圖像的幀中的場(chǎng),所以直接模式序列0和序列1參考圖像均在時(shí)間上落后于B圖像,且序列0參考圖像在時(shí)間上超前于序列1參考圖像(圖7c和7d),則按照下面的公式計(jì)算直接模式序列0和序列1運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MVi/TDD,iMVB,i=-(TDB,i+TDD,i)×MVi/TDD,i上面的公式可以表示如下Z=-TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8第3種情況B圖像的宏塊處于場(chǎng)模式,而序列1參考圖像的相同位置宏塊處于幀模式圖8a到8c顯示的是B圖像的宏塊處于場(chǎng)模式,而序列1參考圖像的相同位置宏塊處于幀模式的情況。此處,設(shè)當(dāng)前宏塊的縱坐標(biāo)為ycurrent,設(shè)序列1參考圖像的相同位置宏塊的縱坐標(biāo)為yco-located,在兩個(gè)坐標(biāo)之間建立yco-located=2×ycurrent的關(guān)系。另外,在相同奇偶性的序列0和序列1參考幀中分別出現(xiàn)序列0和序列1參考場(chǎng)。
如果直接模式序列0和序列1參考圖像分別在時(shí)間上超前于和落后于B圖像(圖8a),或者如果直接模式序列0和序列1參考圖像在時(shí)間上均落后于B圖像,且序列0參考圖像在時(shí)間上落后于序列1參考圖像(圖8b),則按照下面的公式計(jì)算B幀的各個(gè)場(chǎng)i的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD上面的公式可以表示如下Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8如果,由于序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量指向一個(gè)在時(shí)間上落后于B圖像的幀,所以直接模式序列0和序列1參考圖像均在時(shí)間上落后于B圖像,且序列0參考圖像在時(shí)間上超前于序列1參考圖像(圖8c),則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MV/TDDMVB,i=-(TDB,i-TDD)×MV/TDD上面的公式可以表示如下Z=-TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,而MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
第4種情況B圖像宏塊處于幀模式,而序列1參考圖像的相同位置宏塊處于場(chǎng)模式圖9a到9c顯示的是B圖像宏塊處于幀模式,而序列1參考圖像的相同位置宏塊處于場(chǎng)模式的情況。此處,設(shè)當(dāng)前宏塊的縱坐標(biāo)為ycurrent,設(shè)序列1參考圖像的相同位置宏塊的縱坐標(biāo)為yco-located,在兩個(gè)坐標(biāo)之間建立yco-located=y(tǒng)current/2的關(guān)系。另外,由于序列1參考幀的場(chǎng)0在時(shí)間上比場(chǎng)1更接近于B圖像,所以使用場(chǎng)0的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量。
如果直接模式序列0和序列1參考圖像分別在時(shí)間上超前于和落后于B圖像(圖9a),或者如果直接模式序列0和序列1參考圖像在時(shí)間上均落后于B圖像,且序列0參考圖像在時(shí)間上落后于序列1參考圖像(圖9b),則按照下面的公式計(jì)算B幀的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV0/TDD,0MVB=(TDB-TDD,0)×MV0/TDD,0上面的公式可以表示如下Z=TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256 MVB=(W×MV0+128)>>8如果,由于序列1參考幀的場(chǎng)0的相同位置塊的運(yùn)動(dòng)矢量指向在時(shí)間上落后于B圖像的幀中的一個(gè)場(chǎng),所以直接模式序列0和序列1參考圖像均在時(shí)間上落后于B圖像,且序列0參考圖像在時(shí)間上超前于序列1參考圖像(圖9c),則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF和MVBMVF=-TDB×MV0/TDD,0MVB=-(TDB+TDD,0)×MV0/TDD,0上面的公式可以表示如下Z=-TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256 MVB=(W×MV0+128)>>8
其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,0表示序列1參考幀的場(chǎng)0和序列0參考場(chǎng)之間的時(shí)間距離,而MV0表示直接模式序列1參考幀的場(chǎng)0中相同位置塊的運(yùn)動(dòng)矢量。
直接模式序列1參考圖像在時(shí)間上超前于B圖像在此情況下,序列0和序列1參考圖像均在時(shí)間上超前于B圖像。
第1種情況B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于幀模式如圖4a到4h所示,序列1參考圖像中的相同位置塊可以具有一個(gè)或者兩個(gè)運(yùn)動(dòng)矢量。在本發(fā)明中,如果相同位置塊具有兩個(gè)運(yùn)動(dòng)矢量,則選擇兩個(gè)運(yùn)動(dòng)矢量中的一個(gè)(L0 MV或者L1 MV),并且由所選擇的運(yùn)動(dòng)矢量得到直接模式運(yùn)動(dòng)矢量(在下文中,基于選擇了L0 MV(序列0運(yùn)動(dòng)矢量)的情況進(jìn)行描述)。
因此,可以分別將圖4a,4c,4e,4g和4h簡(jiǎn)化為圖10a,將圖4b和4d簡(jiǎn)化為圖10b。
如果直接模式序列0參考圖像在時(shí)間上超前于直接模式序列1參考圖像,則按照下面的公式計(jì)算直接模式運(yùn)動(dòng)矢量MVF和MVB(圖10a)MVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考圖像中相同位置塊的運(yùn)動(dòng)矢量。
上面的公式可以表示如下Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256MVB=(W×MV+128)>>8
如果序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照如下公式計(jì)算直接模式運(yùn)動(dòng)矢量MVF和MVB(圖10b)MVF=-TDB×MV/TDDMVB=-(TDB+TDD)×MV/TDD該公式可以表示如下Z=-TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考圖像中相同位置塊的運(yùn)動(dòng)矢量。
第2種情況B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于場(chǎng)模式如果直接模式序列0參考圖像在時(shí)間上超前于直接模式序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF,i和MVB,I(圖11a和11b)MVF,i=TDB,i×MVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i上面的公式可以表示如下Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256MVB,i=(W×MVi+128)>>8其中TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MV;表示直接模式序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
如果,因?yàn)樾蛄?參考幀中的場(chǎng)i的相同位置塊的運(yùn)動(dòng)矢量指向時(shí)間上落后的幀中的一個(gè)場(chǎng),所以序列0參考圖像在時(shí)間上超前于序列1參考圖像,則按照如下公式計(jì)算直接模式序列0和序列1運(yùn)動(dòng)矢量MVF,i和MVB,i(圖11c和11d)MVF,i=-TDB,i×MVi/TDD,iMVB,i=-(TDB,i+TDD,i)×MVi/TDD,i上面的公式可以表示如下Z=-TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示直接模式序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
第3種情況B圖像的宏塊處于場(chǎng)模式,而序列1參考圖像的相同位置宏塊處于幀模式如果直接模式序列0參考圖像在時(shí)間上超前于直接模式序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF,i和MVB,I(圖12a)MVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD上面的公式可以表示如下Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
如果,因?yàn)樾蛄?參考幀中的相同位置塊的運(yùn)動(dòng)矢量指向一個(gè)時(shí)間上落后的幀,所以序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照如下公式計(jì)算B幀各個(gè)場(chǎng)i的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF,i和MVB,i(圖12b)
MVF,i=-TDB,i×MV/TDDMVB,i=-(TDB,i+TDD)×MV/TDD上面的公式可以表示如下Z=-TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
第4種情況B圖像的宏塊處于幀模式,而序列1參考圖像的相同位置宏塊處于場(chǎng)模式因?yàn)樾蛄?參考幀的場(chǎng)1 f1比場(chǎng)0 f0在時(shí)間上更接近于B圖像,所以使用場(chǎng)1 f1的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量。
如果直接模式序列0參考圖像在時(shí)間上超前于直接模式序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的直接模式序列0和序列1運(yùn)動(dòng)矢量MVF和MVB(圖13a)MVF=TDB×MV1/TDD,1MVB=(TDB-TDD,1)×MV1/TDD,1上面的公式可以表示如下Z=TDB×256/TDD,1MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,1表示序列1參考圖像的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,而MV1表示直接模式序列1參考幀的場(chǎng)1中相同位置塊的運(yùn)動(dòng)矢量。
如果,因?yàn)樾蛄?參考幀的場(chǎng)1 f1的相同位置塊的運(yùn)動(dòng)矢量指向時(shí)間上落后的幀中的一個(gè)場(chǎng),所以序列0參考圖像在時(shí)間上落后于序列1參考圖像,則按照下面的公式計(jì)算直接模式序列0和序列1運(yùn)動(dòng)矢量MVF和MVB(圖13b)MVF=-TDB×MV1/TDD,1MVB=-(TDB+TDD,1)×MV1/TDD,1上面的公式可以表示如下Z=-TDB×256/TDD,1MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,1表示序列1參考圖像的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,而MV1表示直接模式序列1參考幀的場(chǎng)1中相同位置塊的運(yùn)動(dòng)矢量。
通過(guò)為圖像間時(shí)間距離值指定符號(hào)而計(jì)算直接模式運(yùn)動(dòng)矢量的情況對(duì)于直接模式序列1參考圖像在時(shí)間上超前或者落后于B圖像的情況,對(duì)各種情況均給出了兩種類(lèi)型的算法。此算法可以簡(jiǎn)單地表示為向圖像間時(shí)間距離值指定符號(hào),如下所示。
第1種情況B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于幀模式如果B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于幀模式,則按照下面的公式計(jì)算直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD或者Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,如果從序列1參考幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV表示直接模式序列1參考圖像中相同位置塊的運(yùn)動(dòng)矢量。
第2種情況B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于場(chǎng)模式如果B圖像的宏塊和序列1參考圖像的相同位置宏塊均處于場(chǎng)模式,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i或者Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從B場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MVi表示直接模式序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
第3種情況B圖像的宏塊處于場(chǎng)模式,序列1參考圖像的相同位置宏塊處于幀模式如果B圖像的宏塊處于場(chǎng)模式,而序列1參考圖像的相同位置宏塊處于幀模式,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)的直接模式運(yùn)動(dòng)矢量MVF,i和MVB,i;MVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD或者Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從B場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,如果從序列1參考幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV表示直接模式序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
第4種情況B圖像的宏塊處于幀模式,序列1參考圖像的相同位置宏塊處于場(chǎng)模式如果B圖像的宏塊處于幀模式,而序列1參考圖像的相同位置宏塊處于場(chǎng)模式,且序列1參考圖像在時(shí)間上落后于B圖像,序列1參考幀的場(chǎng)0比場(chǎng)1在時(shí)間上更接近于B圖像,則使用場(chǎng)0的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量。從而,由下面的公式計(jì)算B幀的直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量MVF=TDB×MV0/TDD,0MVB=(TDB-TDD,0)×MV0/TDD,0或者Z=TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256 MVB=(W×MV0+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,0表示序列1參考幀的場(chǎng)0和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考幀的場(chǎng)0進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV0表示直接模式序列1參考幀的場(chǎng)0中相同位置塊的運(yùn)動(dòng)矢量。
如果序列1參考圖像在時(shí)間上超前于B圖像,序列1參考幀的場(chǎng)1比其場(chǎng)0在時(shí)間上更接近于B圖像,則使用場(chǎng)1的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算直接模式運(yùn)動(dòng)矢量。從而,由下面的公式計(jì)算B幀的直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=TDB×MV1/TDD,1MVB=(TDB-TDD,1)×MV1/TDD,1或者Z=TDB×256/TDD,1MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,1表示序列1參考幀的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考幀的場(chǎng)1進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV1表示直接模式序列1參考幀的場(chǎng)1中相同位置塊的運(yùn)動(dòng)矢量。
從上面的描述中可以明晰,本發(fā)明提供了一種用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,這里的B圖像是在下一代運(yùn)動(dòng)圖像壓縮技術(shù)中定義的。提出了一種用于計(jì)算B圖像的直接模式運(yùn)動(dòng)矢量的技術(shù),以提高將直接模式選擇為宏塊預(yù)測(cè)模式的概率,從而提高了B圖像編碼效率。
盡管說(shuō)明性地公布了本發(fā)明的優(yōu)選實(shí)施例,但是對(duì)于本領(lǐng)域技術(shù)人員而言,在不脫離所附權(quán)利要求書(shū)中限定的精神或本質(zhì)特征的情況下,顯然可以有各種替換、改進(jìn)和變化。
權(quán)利要求
1.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟選擇直接模式的序列1參考圖像中的相同位置塊的任何一個(gè)運(yùn)動(dòng)矢量作為運(yùn)動(dòng)矢量以得到所述直接模式運(yùn)動(dòng)矢量,而不論所述相同位置塊的所述運(yùn)動(dòng)矢量的模式(序列0模式和/或序列1模式),將所選擇的運(yùn)動(dòng)矢量所指向的參考圖像確定為所述直接模式的序列0參考圖像,并計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
2.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟如果直接模式序列1參考圖像中的相同位置塊僅具有一個(gè)序列1運(yùn)動(dòng)矢量,則使用所述的序列1運(yùn)動(dòng)矢量作為運(yùn)動(dòng)矢量以得到所述直接模式運(yùn)動(dòng)矢量,將所述序列1運(yùn)動(dòng)矢量所指向的參考圖像確定為所述直接模式的序列0參考圖像,并計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
3.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟如果直接模式的序列1參考圖像中的相同位置塊僅具有一個(gè)序列1運(yùn)動(dòng)矢量,則認(rèn)為所述的相同位置塊具有零運(yùn)動(dòng),將在時(shí)間上緊接所述B圖像之前的解碼圖像確定為所述直接模式的序列0參考圖像,并得出所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
4.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟如果直接模式的序列1參考圖像中的相同位置塊僅具有一個(gè)序列1運(yùn)動(dòng)矢量,則使用所述相同位置塊的所述序列1運(yùn)動(dòng)矢量作為運(yùn)動(dòng)矢量以得到所述直接模式運(yùn)動(dòng)矢量,將在時(shí)間上緊接所述B圖像之前的解碼圖像確定為所述直接模式的序列0參考圖像,并得出所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
5.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟如果直接模式的序列1參考圖像中的相同位置塊具有兩個(gè)運(yùn)動(dòng)矢量,則選擇所述兩個(gè)運(yùn)動(dòng)矢量中的任意一個(gè)(序列0運(yùn)動(dòng)矢量或者序列1運(yùn)動(dòng)矢量),并由所選擇的運(yùn)動(dòng)矢量得出所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述的步驟包括如下步驟無(wú)論時(shí)間距離的大小,無(wú)條件地選擇所述的序列0運(yùn)動(dòng)矢量作為運(yùn)動(dòng)矢量來(lái)得出所述直接模式運(yùn)動(dòng)矢量,將所述的序列0運(yùn)動(dòng)矢量所指向的參考圖像確定為所述直接模式的序列0參考圖像,并且得出所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
7.根據(jù)權(quán)利要求5所述的方法,其中,所述的步驟包括如下步驟從所述的序列0和序列1運(yùn)動(dòng)矢量中,選擇一個(gè)指向在時(shí)間上更接近于所述直接模式的所述序列1參考圖像的圖像的運(yùn)動(dòng)矢量,作為運(yùn)動(dòng)矢量來(lái)得出所述直接模式運(yùn)動(dòng)矢量,如果所述的兩個(gè)運(yùn)動(dòng)矢量指向同一個(gè)參考圖像,則選擇所述的序列0運(yùn)動(dòng)矢量作為用于計(jì)算所述直接模式運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量,將所選擇的運(yùn)動(dòng)矢量指向的參考圖像確定為所述直接模式的序列0參考圖像,并且計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
8.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟將最新解碼的圖像設(shè)定為直接模式的序列1參考圖像,對(duì)所述直接模式序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量進(jìn)行縮放,以得出序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB,并且計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
9.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟如果直接模式的序列1參考圖像在時(shí)間上超前于所述的B圖像,則對(duì)所述直接模式序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量進(jìn)行縮放,以得出序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB,并且計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
10.根據(jù)權(quán)利要求9所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊都處于幀模式,且所述直接模式的序列0參考圖像在時(shí)間上超前于所述的序列1參考圖像,則按照下面的公式計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD或者Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示所述直接模式的序列1參考圖像中,所述相同位置塊的運(yùn)動(dòng)矢量。
11.根據(jù)權(quán)利要求9所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊處于幀模式,且所述直接模式的序列0參考圖像在時(shí)間上落后于所述的序列1參考圖像,則按照下面的公式計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=-TDB×MV/TDDMVB=-(TDB+TDD)×MV/TDD或者Z=-TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示所述直接模式的序列1參考圖像中,所述相同位置塊的運(yùn)動(dòng)矢量。
12.根據(jù)權(quán)利要求9所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊都處于場(chǎng)模式,且所述直接模式的序列0參考圖像在時(shí)間上超前于所述的序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i或者Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示所述直接模式的序列1參考場(chǎng)中相同位置塊的運(yùn)動(dòng)矢量。
13.根據(jù)權(quán)利要求9所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊都處于場(chǎng)模式,且所述直接模式的序列0參考圖像在時(shí)間上落后于所述的序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MVi/TDD,iMVB,i=-(TDB,i+TDD,i)×MVi/TDD,i或者Z=-TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示所述直接模式的序列1參考場(chǎng)中,相同位置塊的運(yùn)動(dòng)矢量。
14.根據(jù)權(quán)利要求9所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于場(chǎng)模式,而所述序列1參考圖像的相同位置宏塊處于幀模式,且所述直接模式的序列0參考圖像在時(shí)間上超前于所述的序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD或者Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示所述直接模式的序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
15.根據(jù)權(quán)利要求9所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于場(chǎng)模式,所述序列1參考圖像的相同位置宏塊處于幀模式,且所述直接模式的序列0參考圖像在時(shí)間上落后于所述的序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MV/TDDMVB,i=-(TDB,i+TDD)×MV/TDD或者Z=-TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示所述直接模式的序列1參考幀中相同位置塊的運(yùn)動(dòng)矢量。
16,根據(jù)權(quán)利要求9所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于幀模式,所述序列1參考圖像的相同位置宏塊處于場(chǎng)模式,且所述直接模式的序列0參考圖像在時(shí)間上超前于所述的序列1參考圖像,則由下面的公式計(jì)算B幀的所述直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=TDB×MV1/TDD,1MVB=(TDB-TDD,1)×MV1/TDD,1或者Z=TDB×256/TDD,1MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,1表示序列1參考幀的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,MV1表示所述直接模式的序列1參考幀的場(chǎng)1中相同位置塊的運(yùn)動(dòng)矢量。
17.根據(jù)權(quán)利要求9所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于幀模式,所述序列1參考圖像的相同位置宏塊處于場(chǎng)模式,且所述直接模式的序列0參考圖像在時(shí)間上落后于所述的序列1參考圖像,則由下面的公式計(jì)算B幀的所述直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=-TDB×MV1/TDD,1MVB=-(TDB+TDD,1)×MV1/TDD,1或者Z=-TDB×256/TDD,1-MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,1表示序列1參考幀的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,MV1表示所述直接模式的序列1參考幀的場(chǎng)1中相同位置塊的運(yùn)動(dòng)矢量。
18.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟如果直接模式的序列0參考圖像和序列1參考圖像均在時(shí)間上落后于所述的B圖像,則對(duì)所述直接模式的所述序列1參考圖像中的相同位置塊的運(yùn)動(dòng)矢量進(jìn)行縮放,以得出序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB,并且計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
19,根據(jù)權(quán)利要求18所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊都處于幀模式,且所述直接模式的所述序列0參考圖像在時(shí)間上落后于所述的序列1參考圖像,則按照下面的公式計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD或者Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示所述直接模式的序列1參考圖像中,所述相同位置塊的運(yùn)動(dòng)矢量。
20.根據(jù)權(quán)利要求18所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊都處于幀模式,且所述直接模式的所述序列0參考圖像在時(shí)間上超前于所述的序列1參考圖像,則按照下面的公式計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=-TDB×MV/TDDMVB=-(TDB+TDD)×MV/TDD或者Z=-TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示所述直接模式的序列1參考圖像中,所述相同位置塊的運(yùn)動(dòng)矢量。
21.根據(jù)權(quán)利要求18所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊處于場(chǎng)模式,且所述直接模式的所述序列0參考圖像在時(shí)間上落后于所述的序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i或者Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中, TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示所述直接模式的序列1參考場(chǎng)中,相同位置塊的運(yùn)動(dòng)矢量。
22.根據(jù)權(quán)利要求18所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊都處于場(chǎng)模式,且所述直接模式的所述序列0參考圖像在時(shí)間上超前于所述的序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MVi/TDD,iMVB,i=-(TDB,i+TDD,i)×MVi/TDD,i或者Z=-TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,MVi表示所述直接模式的序列1參考場(chǎng)中,相同位置塊的運(yùn)動(dòng)矢量。
23.根據(jù)權(quán)利要求18所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于場(chǎng)模式,所述序列1參考圖像的相同位置宏塊處于幀模式,且所述直接模式的所述序列0參考圖像在時(shí)間上落后于所述的序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD或者Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示所述直接模式的序列1參考幀中,相同位置塊的運(yùn)動(dòng)矢量。
24.根據(jù)權(quán)利要求18所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于場(chǎng)模式,而所述序列1參考圖像的相同位置宏塊處于幀模式,且所述直接模式的所述序列0參考圖像在時(shí)間上超前于所述的序列1參考圖像,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=-TDB,i×MV/TDDMVB,i=-(TDB,i+TDD)×MV/TDD或者Z=-TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,MV表示所述直接模式的序列1參考幀中,相同位置塊的運(yùn)動(dòng)矢量。
25.根據(jù)權(quán)利要求18所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于幀模式,所述序列1參考圖像的相同位置宏塊處于場(chǎng)模式,且所述直接模式的所述序列0參考圖像在時(shí)間上落后于所述的序列1參考圖像,則由下面的公式計(jì)算B幀的所述直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=TDB×MV0/TDD,0MVB=(TDB-TDD,0)×MV0/TDD,0或者Z=TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256 MVB=(W×MV0+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,0表示序列1參考幀的場(chǎng)0和序列0參考場(chǎng)之間的時(shí)間距離,MV0表示所述直接模式的序列1參考幀的場(chǎng)0中,相同位置塊的運(yùn)動(dòng)矢量。
26.根據(jù)權(quán)利要求18所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于幀模式,所述序列1參考圖像的相同位置宏塊處于場(chǎng)模式,且所述直接模式的所述序列0參考圖像在時(shí)間上超前于所述的序列1參考圖像,則由下面的公式計(jì)算B幀的所述直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)0中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=-TDB×MV0/TDD,0MVB=-(TDB+TDD,0)×MV0/TDD,0或者Z=-TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256 MVB=(W×MV0+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,TDD,0表示序列1參考幀的場(chǎng)0和序列0參考場(chǎng)之間的時(shí)間距離,MV0表示所述直接模式的序列1參考幀的場(chǎng)0中,相同位置塊的運(yùn)動(dòng)矢量。
27.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟為圖像間的時(shí)間距離值指定符號(hào),不論直接模式的序列0和序列1參考圖像的位置,對(duì)直接模式的序列1參考圖像中相同位置塊的運(yùn)動(dòng)矢量進(jìn)行縮放,以得出序列0運(yùn)動(dòng)矢量MVF和序列1運(yùn)動(dòng)矢量MVB,并且計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
28.根據(jù)權(quán)利要求27所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊都處于幀模式,則按照下面的公式計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量MVF和MVBMVF=TDB×MV/TDDMVB=(TDB-TDD)×MV/TDD或者Z=TDB×256/TDDMVF=(Z×MV+128)>>8W=Z-256 MVB=(W×MV+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,如果從序列1參考幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV表示所述直接模式的序列1參考圖像中,所述相同位置塊的運(yùn)動(dòng)矢量。
29.根據(jù)權(quán)利要求27所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊和所述序列1參考圖像的相同位置宏塊都處于場(chǎng)模式,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MVi/TDD,iMVB,i=(TDB,i-TDD,i)×MVi/TDD,i或者Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)>>8W=Z-256 MVB,i=(W×MVi+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從B場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,i表示序列1參考場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MVi表示所述直接模式的序列1參考場(chǎng)中,相同位置塊的運(yùn)動(dòng)矢量。
30.根據(jù)權(quán)利要求27所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于場(chǎng)模式,所述序列1參考圖像的相同位置宏塊處于幀模式,則按照下面的公式計(jì)算B幀各個(gè)場(chǎng)i的所述直接模式運(yùn)動(dòng)矢量MVF,i和MVB,iMVF,i=TDB,i×MV/TDDMVB,i=(TDB,i-TDD)×MV/TDD或者Z=TDB,i×256/TDDMVF,i=(Z×MV+128)>>8W=Z-256 MVB,i=(W×MV+128)>>8其中,TDB,i表示當(dāng)前B場(chǎng)和序列0參考場(chǎng)之間的時(shí)間距離,如果從B場(chǎng)進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD表示序列1參考幀和序列0參考幀之間的時(shí)間距離,如果從序列1參考幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV表示所述直接模式的序列1參考幀中,相同位置塊的運(yùn)動(dòng)矢量。
31.根據(jù)權(quán)利要求27所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于幀模式,而所述序列1參考圖像的相同位置宏塊處于場(chǎng)模式,且所述序列1參考圖像在時(shí)間上落后于所述的B圖像,則由下面的公式計(jì)算B幀的所述直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=TDB×MV0/TDD,0MVB=(TDB-TDD,0)×MV0/TDD,0或者Z=TDB×256/TDD,0MVF=(Z×MV0+128)>>8W=Z-256 MVB=(W×MV0+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,0表示序列1參考幀的場(chǎng)0和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考幀的場(chǎng)0進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV0表示所述直接模式的序列1參考幀的場(chǎng)0中,相同位置塊的運(yùn)動(dòng)矢量。
32.根據(jù)權(quán)利要求27所述的方法,其中,所述的步驟包括如下步驟如果所述B圖像的宏塊處于幀模式,而所述序列1參考圖像的相同位置宏塊處于場(chǎng)模式,且所述直接模式的所述序列1參考圖像在時(shí)間上超前于所述的B圖像,則由下面的公式計(jì)算B幀的所述直接模式運(yùn)動(dòng)矢量MVF和MVB,其中使用序列1參考幀的場(chǎng)1中的相同位置塊的運(yùn)動(dòng)信息來(lái)計(jì)算所述的直接模式運(yùn)動(dòng)矢量MVF=TDB×MV1/TDD,1MVB=(TDB-TDD,1)×MV1/TDD,1或者Z=TDB×256/TDD,1MVF=(Z×MV1+128)>>8W=Z-256 MVB=(W×MV1+128)>>8其中,TDB表示當(dāng)前B幀和序列0參考幀之間的時(shí)間距離,如果從B幀進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考幀進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),TDD,1表示序列1參考幀的場(chǎng)1和序列0參考場(chǎng)之間的時(shí)間距離,如果從序列1參考幀的場(chǎng)1進(jìn)行測(cè)量,則指定為正(+)號(hào),如果從序列0參考場(chǎng)進(jìn)行測(cè)量,則指定為負(fù)(-)號(hào),MV1表示所述直接模式的序列1參考幀的場(chǎng)1中,相同位置塊的運(yùn)動(dòng)矢量。
33.在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量,以提取B圖像的直接模式運(yùn)動(dòng)矢量的方法,包括如下步驟如果直接模式的序列1參考圖像中的相同位置塊處于幀內(nèi)模式,則基于空間冗余,由所要編碼的所述B圖像的宏塊的相鄰塊,預(yù)測(cè)和計(jì)算序列0和序列1參考圖像和運(yùn)動(dòng)矢量,并且計(jì)算所述B圖像的所述直接模式運(yùn)動(dòng)矢量。
34.根據(jù)權(quán)利要求33所述的方法,其中,所述的步驟包括,如果所要編碼的所述宏塊的相鄰塊A、B和C涉及不同的參考圖像,則選擇具有最小索引的參考圖像作為各個(gè)序列的所述參考圖像。
35.根據(jù)權(quán)利要求33所述的方法,其中,所述的步驟包括,如果所要編碼的所述宏塊的相鄰塊中,兩個(gè)或者更多的相鄰塊涉及具有相同索引的參考圖像,則選擇該參考圖像作為各個(gè)序列的所述參考圖像。
36.根據(jù)權(quán)利要求33所述的方法,其中,所述的步驟包括,如果所要編碼的所述宏塊的相鄰塊A、B和C中任何一個(gè)處于幀內(nèi)模式,則將其序列0和序列1運(yùn)動(dòng)矢量設(shè)定為0,從相鄰塊中,選擇與各個(gè)序列的所述參考圖像的時(shí)間位置具有相同方向的運(yùn)動(dòng)矢量,并且通過(guò)中值操作,獲得各個(gè)序列的所述運(yùn)動(dòng)矢量,或者,如果相鄰塊具有方向相同的兩個(gè)運(yùn)動(dòng)矢量,則僅從該塊中選擇兩個(gè)運(yùn)動(dòng)矢量中的一個(gè),并且通過(guò)包含所選擇的運(yùn)動(dòng)矢量在內(nèi)的中值操作,獲得各個(gè)序列的所述運(yùn)動(dòng)矢量。
37.根據(jù)權(quán)利要求33所述的方法,其中,所述的步驟包括,如果不能獲得各個(gè)序列模式的有效參考圖像索引,則將序列0和序列1參考圖像索引指定為0,并且將各個(gè)序列模式的所述運(yùn)動(dòng)矢量設(shè)定為0。
全文摘要
在運(yùn)動(dòng)圖像編碼系統(tǒng)中,一種用于計(jì)算B(雙向預(yù)測(cè))圖像的直接模式運(yùn)動(dòng)矢量的方法,以提取B圖像的直接模式運(yùn)動(dòng)矢量。當(dāng)直接模式序列1參考圖像在時(shí)間上超前或者落后于B圖像時(shí),則不論相同位置塊的運(yùn)動(dòng)矢量的模式(序列0模式和/或序列1模式),將序列1參考圖像中的相同位置塊的任何一個(gè)運(yùn)動(dòng)矢量確定為運(yùn)動(dòng)矢量,以得到直接模式運(yùn)動(dòng)矢量。對(duì)所確定的運(yùn)動(dòng)矢量進(jìn)行縮放,以得到序列0運(yùn)動(dòng)矢量MV
文檔編號(hào)H04N7/32GK1487748SQ0310162
公開(kāi)日2004年4月7日 申請(qǐng)日期2003年1月10日 優(yōu)先權(quán)日2002年10月4日
發(fā)明者全炳文 申請(qǐng)人:Lg電子株式會(huì)社