專利名稱:對(duì)交錯(cuò)數(shù)字視頻的雙向預(yù)測(cè)的視頻目標(biāo)平面的預(yù)測(cè)和編碼的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種方法及其裝置,用于對(duì)諸如雙向預(yù)測(cè)視頻目標(biāo)平面(B_VOPs)的數(shù)字視頻圖像進(jìn)行預(yù)測(cè)和編碼,特別是其中用來(lái)對(duì)B-VOP編碼的B-VOP和/或參考圖像是交錯(cuò)編碼的。
背景技術(shù):
本發(fā)明特別適用于各種多媒體設(shè)備,并且與可供本文參考的名稱為“MPEG-4 Video Verification Model Version 8.0”,Stockholm,July 1997的ISO/IEC/JTC1/SC29/WG11/N1796文獻(xiàn)中說(shuō)明的MPEG-4 Verification Model(VM)8.0標(biāo)準(zhǔn)(MPEG-4 VM 8.0)兼容。在可供本文參考的名稱為“InformationTechnology-Generic Coding of Moving Pictures and AssociatedAudio,Recommendation H.262”1994年3月25日的ISO/IEC 13818-2文獻(xiàn)中說(shuō)明的MPEG-2標(biāo)準(zhǔn)是這種MPEG-4標(biāo)準(zhǔn)的前身。
MPEG-4是一種編碼標(biāo)準(zhǔn),它為數(shù)字音像數(shù)據(jù)的通信,存取和操作提供了一種靈活的結(jié)構(gòu)和開放的編碼工具。這些工具可以支持許多特性。MPEG-4的靈活性結(jié)構(gòu)可以支持編碼工具的各種組合及其在計(jì)算機(jī),電信和文化(TV和電影等)市場(chǎng)中需要的有關(guān)功能,例如數(shù)據(jù)庫(kù)瀏覽,信息提取,以及相互通信等等。
MPEG-4提供了標(biāo)準(zhǔn)的核心技術(shù),可以在多媒體環(huán)境中有效地存儲(chǔ),傳輸和控制視頻數(shù)據(jù)。MPEG-4可以有效地實(shí)現(xiàn)壓縮,目標(biāo)可放縮性,空間和時(shí)間的可放縮性,以及錯(cuò)誤的彈性。
MPEG-4視頻VM編碼/解碼器(codec)是一種具有運(yùn)動(dòng)補(bǔ)償?shù)幕谧謮K和目標(biāo)的混合編碼器。利用重疊的字塊運(yùn)動(dòng)補(bǔ)償用8×8的離散余弦變換(DCT)對(duì)紋理進(jìn)行編碼。用一種字母圖來(lái)表示目標(biāo)形狀,并且采用一種Content-based Arithmetic Encoding(CAE)算法或是改型的DCT編碼器進(jìn)行編碼,二者均采用了時(shí)間預(yù)測(cè)。這種編碼器可以處理從計(jì)算機(jī)曲線獲得的子畫面。在具體應(yīng)用中也可以使用諸如子波和子畫面編碼的其他編碼方法。
運(yùn)動(dòng)補(bǔ)償?shù)募y理編碼是視頻編碼的一種公知方法,它可以被視為一種三步程序。第一步是信號(hào)處理,其中包括運(yùn)動(dòng)估算和補(bǔ)償(ME/MC)和一種二維(2-D)空間變換。ME/MC和空間變換的目的是為了利用視頻序列中的時(shí)間和空間坐標(biāo)的優(yōu)點(diǎn),在復(fù)雜的限制下對(duì)量化和熵編碼的速率失真特性進(jìn)行優(yōu)化。目前普遍用于ME/MC的技術(shù)是字塊匹配,最普遍的空間變換方式是DCT。
然而,如果MB本身是交錯(cuò)編碼的,以及/或是使用了交錯(cuò)編碼的參考圖像,就會(huì)出現(xiàn)對(duì)B-VOP中的宏模塊(MB)的ME/MC的重要影響。
特別是需要具有一種有效的技術(shù)為B-VOP中的MB提供運(yùn)動(dòng)矢量(MV)預(yù)測(cè)。此外還需要有一種有效的技術(shù)用于對(duì)B-VOP中的場(chǎng)編碼的MB進(jìn)行直接式編碼。另外還需要有一種用于場(chǎng)編碼B-VOP中的一個(gè)MB的編碼方式?jīng)Q定程序,以便選擇能夠產(chǎn)生最有效的編碼的參考圖像。
本發(fā)明提供了一種具有上述和其他優(yōu)點(diǎn)的系統(tǒng)。
發(fā)明內(nèi)容
按照本發(fā)明提供了一種方法和裝置,用于對(duì)雙向預(yù)測(cè)視頻目標(biāo)平面(B-VOP)中的數(shù)字視頻圖像進(jìn)行編碼,例如一種當(dāng)前圖像(例如宏模塊),特別是其中的當(dāng)前圖像和/或用來(lái)對(duì)當(dāng)前圖像進(jìn)行編碼的參考圖像是交錯(cuò)(例如場(chǎng))編碼的。
按照本發(fā)明的第一方面,一種方法為一系列數(shù)字視頻圖像中當(dāng)前的雙向預(yù)測(cè)場(chǎng)編碼圖像提供了直接式運(yùn)動(dòng)矢量(MV),例如具有頂場(chǎng)和底場(chǎng)的一個(gè)宏模塊(MB)。具有頂場(chǎng)和底場(chǎng)的一個(gè)過(guò)去場(chǎng)編碼參考圖像和具有頂場(chǎng)和底場(chǎng)的一個(gè)未來(lái)場(chǎng)編碼參考圖像被確定。未來(lái)的圖像是用過(guò)去的圖像來(lái)預(yù)測(cè)的,使得未來(lái)圖像的頂場(chǎng)中前向的MV即MVtop參考上述過(guò)去圖像的頂場(chǎng)或底場(chǎng)。被參考的場(chǎng)包含一種最佳匹配MB,它被用作未來(lái)圖像的頂場(chǎng)中的MB。
這種MV被定義為“前向”MV,因?yàn)楸M管它參考了過(guò)去的圖像(也就是過(guò)去的時(shí)間),但是根據(jù)過(guò)去的圖像對(duì)未來(lái)的圖像也就是前向的時(shí)間作出了預(yù)測(cè)。作為一種記憶,預(yù)測(cè)方向可以被認(rèn)為是相應(yīng)MV的相反方向。
同樣,未來(lái)圖像的底場(chǎng)的前向運(yùn)動(dòng)矢量MVbot參考過(guò)去圖像的頂場(chǎng)或是底場(chǎng)。通過(guò)對(duì)與未來(lái)圖像的場(chǎng)相對(duì)應(yīng)的前向MV定標(biāo)來(lái)確定前向和反向MV,以便預(yù)測(cè)當(dāng)前圖像的頂場(chǎng)和/或底場(chǎng)。
特別是用于預(yù)測(cè)當(dāng)前圖像頂場(chǎng)的前向運(yùn)動(dòng)矢量MVf,top是按照公式MVf,top=(MVtop*TRB,top)/TRD,top+MVD來(lái)確定的,其中的MVD是一個(gè)檢索區(qū)域的增量運(yùn)動(dòng)矢量,TRB,top對(duì)應(yīng)著當(dāng)前圖像的頂場(chǎng)和供MVtop參考的過(guò)去圖像的場(chǎng)之間的時(shí)間間隙,TRD,top對(duì)應(yīng)著未來(lái)圖像的頂場(chǎng)和供MVtop參考的過(guò)去圖像的場(chǎng)之間的時(shí)間間隙。這種時(shí)間間隙可能與圖像顯示的幀速率有關(guān)。
與此類似,用于預(yù)測(cè)當(dāng)前圖像底場(chǎng)的前向運(yùn)動(dòng)矢量MVf,bot是按照公式MVf,bot=(MVbot*TRB,bot)/TRD,bot+MVD來(lái)確定的,其中的MVD是一個(gè)增量運(yùn)動(dòng)矢量,TRB,bot對(duì)應(yīng)著當(dāng)前圖像的底場(chǎng)和供MVbot參考的過(guò)去圖像的場(chǎng)之間的時(shí)間間隙,TRD,bot對(duì)應(yīng)著未來(lái)MB的底場(chǎng)和供MVbot參考的過(guò)去MB的場(chǎng)之間的時(shí)間間隙。
當(dāng)增量運(yùn)動(dòng)矢量MVD=0時(shí),用于預(yù)測(cè)當(dāng)前MB頂場(chǎng)的反向運(yùn)動(dòng)矢量MVb,top是按照公式MVb,top=((TRB,top-TRD,top)*MVtop)/TRD,top來(lái)確定的,或是當(dāng)MVD≠0時(shí),MVb,top=MVf,top-MVtop。
當(dāng)增量運(yùn)動(dòng)矢量MVD=0時(shí),用于預(yù)測(cè)當(dāng)前MB底場(chǎng)的反向運(yùn)動(dòng)矢量MVb,bot是按照公式MVb,bot=((TRB,bot-TRD,bot)*MVbot)/TRD,bot來(lái)確定的,或是在MVD≠0時(shí),MVb,bot=MVf,bot-MVbot。
還有一個(gè)相應(yīng)的解碼器。
按照本發(fā)明的另一方面提供了一種方法,用于在一系列數(shù)字視頻MB中為當(dāng)前預(yù)測(cè)的具有頂場(chǎng)和底場(chǎng)的場(chǎng)編碼MB選擇一種編碼方式。該編碼方式可以是反向方式,其中的參考MB在時(shí)間上處在顯示次序中的當(dāng)前MB之后,前向方式,其中的參考MB在時(shí)間上處于當(dāng)前MB之前,或是平均(例如雙向)方式,在其中使用參考MB前、后的平均值。
該方法包括一個(gè)為相對(duì)于過(guò)去參考MB的當(dāng)前MB確定絕對(duì)差分誤差的前向總和SADforward,field的步驟,該步驟對(duì)應(yīng)著前向編碼方式。SADforward,field表示當(dāng)前MB和過(guò)去參考MB中的最佳匹配MB之間的象素亮度值誤差。同時(shí)還要為相對(duì)于未來(lái)參考MB的當(dāng)前MB確定絕對(duì)差分誤差的反向總和SADbackward,field,該步驟對(duì)應(yīng)著反向編碼方式。SADbackward,field代表當(dāng)前MB和未來(lái)參考MB中的最佳匹配MB之間的象素亮度值誤差。
還要為關(guān)于過(guò)去和未來(lái)參考MB的平均值的當(dāng)前MB確定絕對(duì)差分誤差的平均值總和SADaverage,field,該步驟對(duì)應(yīng)著平均編碼方式。SADaverage,field代表當(dāng)前MB與過(guò)去和未來(lái)參考MB的最佳匹配MB的平均值MB之間的象素亮度值誤差。
編碼方式是按照SAD最小的原則來(lái)選擇的。在編碼方式選擇程序中還可以引入構(gòu)成各種編碼方式中所需的MB數(shù)量的偏置項(xiàng)。
SADforward,field,SADbackward,field和SADaverage,field是通過(guò)將頂場(chǎng)和底場(chǎng)的各分量項(xiàng)目相加來(lái)確定的。
圖1是按照本發(fā)明的一種視頻目標(biāo)平面(VOP)編碼和解碼程序的示意圖。
圖2是按照本發(fā)明的一個(gè)編碼器的框圖。
圖3表示用于半象素檢索的一種內(nèi)插方案。
圖4表示按照本發(fā)明的一種交錯(cuò)編碼B-VOP的頂場(chǎng)的直接編碼方式。
圖5表示按照本發(fā)明的一種交錯(cuò)編碼B-VOP的底場(chǎng)的直接編碼方式。
圖6表示在按照本發(fā)明的一種自適應(yīng)幀/場(chǎng)預(yù)測(cè)方案中重新排列象素線的方法。
圖7是按照本發(fā)明的一個(gè)解碼器的框圖。
圖8表示按照本發(fā)明的一種宏字塊層次結(jié)構(gòu)。
具體實(shí)施例方式
因此,此處用術(shù)語(yǔ)″VOP″來(lái)代表隨機(jī)或是非隨機(jī)的(即矩形的)圖形數(shù)據(jù)形狀。采用公知的技術(shù)獲得一種區(qū)段時(shí)標(biāo),并且其格式與ITU-R 601亮度數(shù)據(jù)類似。每個(gè)象素被看作是屬于視頻幀內(nèi)的某一區(qū)域。
幀105和來(lái)自幀115的VOP數(shù)據(jù)被提供給獨(dú)立的編碼功能。具體地說(shuō),VOP117,118和119分別在編碼器137,138和139中經(jīng)過(guò)形狀,運(yùn)動(dòng)和紋理編碼。在形狀編碼中用二進(jìn)制和灰色色度形狀信息進(jìn)行編碼。在運(yùn)動(dòng)編碼中用一幀之內(nèi)的運(yùn)動(dòng)估算值對(duì)形狀信息進(jìn)行編碼。在紋理編碼中執(zhí)行DCT一類的局部變換,從中獲得一種變換系數(shù),可以改變編碼的長(zhǎng)度以便于壓縮。
然后用一個(gè)多路復(fù)用器(MUX)140來(lái)組合編碼的VOP數(shù)據(jù),以便通過(guò)信道145中進(jìn)行傳輸。或者是可以將數(shù)據(jù)存儲(chǔ)在記錄媒體上。用一個(gè)多路分解器(DEMUX)150來(lái)分離接收的編碼VOP數(shù)據(jù),從而對(duì)分離的VOP117-119進(jìn)行解碼和恢復(fù)。幀155,165和175分別表示經(jīng)過(guò)解碼和恢復(fù)的VOP117,118和119,并且可以用一個(gè)與視頻庫(kù)170接口的合成器160進(jìn)行獨(dú)立的操作。
合成器160例如可以是一臺(tái)個(gè)人計(jì)算機(jī),它被放在用戶的房間中,用戶可以用它對(duì)接收的數(shù)據(jù)進(jìn)行編輯,從而提供需要的圖像。例如,用戶的私人視頻庫(kù)170中可能包括先前存儲(chǔ)的與接收的VOP不同的VOP 178(例如一個(gè)圈)。用戶可以用圓圈VOP178代替正方形VOP117來(lái)組成一個(gè)幀185。這樣的幀185包括接收的VOP118和119以及在本地存儲(chǔ)的VOP178。
在另一個(gè)例子中,背景VOP109可以被用戶選擇的背景來(lái)代替。例如,在觀看電視新聞廣播時(shí),廣播可以編碼成與例如新聞播音室等等背景分離的VOP。用戶可以從視頻庫(kù)170或是其他電視節(jié)目中選擇一種背景,例如商品價(jià)格或是天氣信息的頻道。用戶可以象視頻編輯人員那樣進(jìn)行操作。
視頻庫(kù)170還可以存儲(chǔ)通過(guò)頻道145接收的VOP,并且可以通過(guò)Internet一類的網(wǎng)絡(luò)訪問(wèn)VOP和其他圖像設(shè)備??傊@種視頻對(duì)話包括單個(gè)VOP或是順序的VOP。
圖1的視頻物體編碼和節(jié)目程序適用于許多表演,商業(yè)和教育用途,這其中包括個(gè)人計(jì)算機(jī)游戲,假想環(huán)境,圖文用戶接口,電視會(huì)議,Internet用途等等。本發(fā)明特別是為具有交錯(cuò)編碼的(例如場(chǎng)模式)VOP的ME/MC功能提供了更強(qiáng)的能力。
圖2是按照本發(fā)明的一個(gè)編碼器的框圖。該編碼器適用于預(yù)測(cè)編碼的VOP(P-VOP)和雙向編碼的VOP(B-VOP)。
P-VOP可以包括許多宏字塊(MB),它們可以用幀內(nèi)模式或是幀間模式單獨(dú)地編碼。在采用幀內(nèi)(INTRA)編碼時(shí),宏字塊(MB)的編碼不參考其他的MB。在采用幀間(INTER)編碼時(shí),MB是按照稱為前向預(yù)測(cè)的模式相對(duì)于暫態(tài)的后續(xù)幀進(jìn)行差分編碼的。暫態(tài)的后續(xù)幀被稱為固定幀或是參考幀。固定幀(例如VOP)必須是P-VOP或是I-VOP,而不能是B-VOP。一個(gè)I-VOP包括內(nèi)部的(例如內(nèi)部編碼的)字塊,它不是預(yù)測(cè)的編碼。
在前向預(yù)測(cè)中,將當(dāng)前的MB與固定幀內(nèi)的一個(gè)檢索區(qū)的MB進(jìn)行比較,從中確定最佳的匹配。被稱為反向MV的一個(gè)對(duì)應(yīng)的運(yùn)動(dòng)矢量(MV)代表當(dāng)前MB相對(duì)于最佳匹配MB的位移。另外還可以對(duì)P-VOP使用超前預(yù)測(cè)模式,在8×8字塊上而不是16×16M上執(zhí)行運(yùn)動(dòng)補(bǔ)償。另外,幀內(nèi)和幀間編碼的P-VOP MB都可以用幀模式或是場(chǎng)模式進(jìn)行編碼。
B-VOP可以與P-VOP相聯(lián)系地使用上述的前向預(yù)測(cè)模式以及反向預(yù)測(cè),雙向預(yù)測(cè)和直接模式,這些模式都是幀內(nèi)的技術(shù)。按照目前還沒(méi)有改變的MPEG-4 VM 8.0,B-VOP不使用幀內(nèi)編碼的MB。固定幀(例如VOP)必須是P-VOP或是I-VOP,而不能是B-VOP。
在反向預(yù)測(cè)B-VOP時(shí),將當(dāng)前的MB與前面的暫態(tài)固定幀內(nèi)的一個(gè)檢索區(qū)的MB進(jìn)行比較,從中確定最佳匹配的MB。被稱為前向MV的一個(gè)對(duì)應(yīng)的MV代表當(dāng)前MB相對(duì)于最佳匹配MB的位移。對(duì)于雙向預(yù)測(cè)的B-VOPMB來(lái)說(shuō),將當(dāng)前的MB與前面的暫態(tài)固定幀內(nèi)的和后面的暫態(tài)固定幀內(nèi)的一個(gè)檢索區(qū)的MB進(jìn)行比較,從中確定最佳匹配的MB。前向和反向MV代表當(dāng)前MB相對(duì)于最佳匹配MB的位移。另外,從最佳匹配的MB中獲得一個(gè)平均圖像,在當(dāng)前MB的編碼中使用。
對(duì)于B-VOP的直接模式預(yù)測(cè)來(lái)說(shuō),如果在P-VOP后面收集到的MB采用了8×8超前預(yù)測(cè)模式,就從8×8的字塊中推導(dǎo)出一個(gè)MV。P-VOP中的8×8字塊MV是線性定標(biāo)的,以便獲得B-VOP中的字塊的的一個(gè)MV,而不需要通過(guò)檢索來(lái)尋找最佳匹配的字塊。
用200表示的編碼器包括一個(gè)形狀編碼器210,一個(gè)運(yùn)動(dòng)估算函數(shù)220,一種運(yùn)動(dòng)補(bǔ)償函數(shù)230,以及一個(gè)紋理編碼器240,它們各自接收從端子205上輸入的視頻象素?cái)?shù)據(jù)。運(yùn)動(dòng)估算函數(shù)220,運(yùn)動(dòng)補(bǔ)償函數(shù)230,紋理編碼器240以及形狀編碼器210還要接收從端子207上輸入的VOP形狀信息,例如一種MPEG-4參數(shù)VOP的隨機(jī)形狀。如果這一參數(shù)是0,VOP就是矩形的,此時(shí)不使用形狀編碼器210。
重組的固定VOP函數(shù)250提供了供運(yùn)動(dòng)估算函數(shù)220和運(yùn)動(dòng)補(bǔ)償函數(shù)230使用的一種重組的固定VOP。在一個(gè)減法器260中從經(jīng)過(guò)運(yùn)動(dòng)補(bǔ)償?shù)南惹癡OP中減去當(dāng)前的VOP,剩下的部分在紋理編碼器240中進(jìn)行編碼。紋理編碼器240執(zhí)行DCT,將紋理信息(例如變換系數(shù))提供給多路復(fù)用器(MUX)280。紋理編碼器240還向加法器270提供信息,將其與運(yùn)動(dòng)補(bǔ)償器230的輸出相加,并且輸入到先前重組的VOP函數(shù)250。
運(yùn)動(dòng)估算函數(shù)220向MUX 280提供運(yùn)動(dòng)信息(即運(yùn)動(dòng)矢量),同時(shí)由形狀編碼函數(shù)210向MUX 280提供代表VOP形狀的形狀信息。MUX 280向一個(gè)緩沖器290提供相應(yīng)的多路復(fù)用數(shù)據(jù)流,以便通過(guò)一個(gè)數(shù)據(jù)信道連續(xù)地進(jìn)行通信。
輸入到編碼器的象素?cái)?shù)據(jù)可以具有YUV 4∶2∶0的格式。利用矩形的邊界來(lái)表示VOP。矩形邊界的左上坐標(biāo)被變成不大于中心矩形的左上坐標(biāo)的最接近的偶數(shù)。與此相應(yīng),色度分量中的矩形邊界的左上坐標(biāo)是亮度分量坐標(biāo)的一半。
圖3表示用于半象素檢索的一種內(nèi)插方案。運(yùn)動(dòng)估算和運(yùn)動(dòng)補(bǔ)償(ME/MC)通常包含使當(dāng)前視頻幀的字塊(例如當(dāng)前的字塊)與參考幀的檢索區(qū)中的一個(gè)字塊(例如預(yù)測(cè)的字塊或是參考字塊)相匹配。對(duì)于預(yù)測(cè)(P)編碼的圖像,參考字塊是前面的一幀。對(duì)于雙向預(yù)測(cè)(B)編碼的圖像,可以使用前一幀和后一幀中的預(yù)測(cè)字塊。預(yù)測(cè)字塊相對(duì)于當(dāng)前字塊的位移就是運(yùn)動(dòng)矢量(MV),它具有水平(x)和垂直(y)的分量。MV分量的正值表示預(yù)測(cè)字塊處在當(dāng)前字塊的右側(cè)和下面。
運(yùn)動(dòng)補(bǔ)償?shù)牟煌謮K是通過(guò)從當(dāng)前的字塊上逐點(diǎn)地減去預(yù)測(cè)字塊的象素值而構(gòu)成的。然后對(duì)不同的字塊執(zhí)行紋理編碼。不同字塊的編碼的MV和編碼的紋理信息被發(fā)送給解碼器。然后由解碼器根據(jù)MV在預(yù)測(cè)的字塊上增加一個(gè)量化的不同字塊,一半重組一個(gè)近似的當(dāng)前字塊。ME/MC的字塊可以是16×16幀的字塊(宏字塊),8×8的字塊,或是16×8場(chǎng)的字塊。
MV的精度被設(shè)定在半個(gè)象素。在固定幀上必須采用內(nèi)插,因此,用于x或y的p(i+x,j+y)被限定為一個(gè)整數(shù)的一半。內(nèi)插是按照?qǐng)D3執(zhí)行的。整數(shù)象素位置用符號(hào)″+″來(lái)表示,例如圖中的A,B,C和D。半象素位置用圓圈來(lái)表示,例如a,b,c和d。在圖中可見(jiàn),a=A,b=(A+B)//2,c=(A+C)//2,d=(A+B+C+D)//4,其中的//代表圓形的分界。在可供本文參考的上述MPEG-4 VM8.0和1997年7月21日由Eifrig等人共同提出的名稱為″Motion Estimation andCompensation of Video Object Planes for Interlaced Digital Video″的美國(guó)專利申請(qǐng)08/897847號(hào)中描述了這種內(nèi)插方式的進(jìn)一步細(xì)節(jié)。
圖6表示按照本發(fā)明的一種自適應(yīng)幀/場(chǎng)預(yù)測(cè)方案中的重新排列的象素線。按照超前預(yù)測(cè)方案的第一方面,采用自適應(yīng)技術(shù)來(lái)確定當(dāng)前宏字塊(MB)的16×16象素是否需要照常進(jìn)行ME/MC編碼,或是應(yīng)該被分成四個(gè)8×8象素的字塊,其中的每個(gè)8×8字塊是單獨(dú)進(jìn)行ME/MC編碼的,或是應(yīng)該使用基于運(yùn)動(dòng)估算的場(chǎng),其中的MB象素線被重新排列,組成兩個(gè)16×8場(chǎng)字塊中的相同場(chǎng)的線,而每個(gè)16×8字塊是分別進(jìn)行ME/MC編碼的。
用600表示一個(gè)場(chǎng)模式16×16宏字塊(MB)。這一MB包括偶數(shù)的線602,604,606,608,610,612,614和616,以及奇數(shù)的線603,605,607,609,611,613,615和617。偶數(shù)和奇數(shù)線是交錯(cuò)的,并且分別構(gòu)成頂場(chǎng)和底場(chǎng)(或是第一和第二場(chǎng))。
如果圖像600中的象素線被排列成同場(chǎng)的亮度字塊,就形成了用650表示的MB。用645表示的箭頭指出了重新排列的線602-617。例如,作為MB600的第一線的偶數(shù)線602也是MB 650的第一線。偶數(shù)線604被重新排列成MB 650的第二線。同樣,偶數(shù)線606,608,610,612,614和616分別被排列成MB 650的第三到第八線。這樣就形成了具有偶數(shù)編號(hào)的一個(gè)16×8亮度區(qū)域680。同樣,用奇數(shù)線601,603,605,607,609,611,613,615和617形成16×8的區(qū)域685。
用來(lái)為P-VOP選擇MC模式的決定程序如下。對(duì)于幀模式的視頻,首先獲得單個(gè)16×16 MB的絕對(duì)差之和(SAD),即SAD16(MVx,MVy);以及四個(gè)8×8字塊的絕對(duì)差之和,即SAD8(MVx1,MVy1),SAD8(MVx2,MVy2),SAD8(MVx3,MVy3)和SAD8(MVx4,MVy4)。如果Σi=14SAD8(MVxi,MVyi)<SAD16(MVx,MVy)-129,]]>就選擇8×8預(yù)測(cè);否則就選擇16×16預(yù)測(cè)。常數(shù)“129”是從Nb/2+1獲得的,其中的Nb是一個(gè)MB中不透明的象素?cái)?shù)量。對(duì)于交錯(cuò)視頻,獲得SADtop(MVx_top,MVy_top)和SADbottom(MVx_bottom,MVy_bottom),其中的(MVx_top,MVy_top)和(MVx_bottom,MVy_bottom)是頂場(chǎng)(偶數(shù))和底場(chǎng)(奇數(shù))的運(yùn)動(dòng)矢量(MV)。然后從半場(chǎng)采樣檢索中(例如為SADtop和SADbottom)選擇出具有最小SAD的參考場(chǎng)。
整個(gè)預(yù)測(cè)模式?jīng)Q定基于從a,b和c中選擇的最小值(a)SAD16(MVx,MVy),(b)Σi=14SAD8(MVxi,MVyi)+129]]>以及(c)SADtop(MVx_top,MVy_top)+SADbottom(MVx_bottom,MVy_bottom)+65。如果(a)項(xiàng)是最小的,就使用16×16預(yù)測(cè)。如果(b)項(xiàng)是最小的,就使用8×8運(yùn)動(dòng)補(bǔ)償(超前預(yù)測(cè)模式)。如果(c)項(xiàng)最小,就使用基于運(yùn)動(dòng)估算的場(chǎng)。常數(shù)“65”是從Nb/4+1獲得的。
如果選擇了8×8預(yù)測(cè),對(duì)于四個(gè)8×8亮度字塊一共有四個(gè)MV,即每個(gè)8×8字塊有一個(gè)MV。然后通過(guò)對(duì)這四個(gè)MV取平均值并且將平均值除以2而獲得兩個(gè)色度字塊的MV。由于每個(gè)8×8亮度字塊的MV具有半象素的精度,色度字塊的MV可能具有十六個(gè)象素值。以下的表1說(shuō)明了針對(duì)色度MV的十六象素值到半象素值的轉(zhuǎn)換。例如0到2/16被舍入成0,3/16到13/16被舍入成1/2,14/16和15/16被舍入成2/2=1。
表1
對(duì)于場(chǎng)預(yù)測(cè),每?jī)蓚€(gè)16×8字塊有兩個(gè)MV。亮度預(yù)測(cè)是這樣產(chǎn)生的。MB的偶數(shù)線(即線602,604,606,608,610,612,614和616)是采用參考的規(guī)定用頂場(chǎng)MV來(lái)限定的。在幀坐標(biāo)中規(guī)定了MV,因此,全象素的垂直位移相當(dāng)于垂直MV坐標(biāo)的偶數(shù)整數(shù)值,并且用奇數(shù)偶數(shù)值來(lái)代表半象素垂直位移。在采用半象素垂直偏差時(shí),僅有同一參考場(chǎng)內(nèi)的象素被組合在一起。
兩個(gè)色度字塊的MV是從(亮度)MV中推導(dǎo)出來(lái)的,將每個(gè)分量除以2,然后舍入。通過(guò)將所有分?jǐn)?shù)值變換成一個(gè)半象素偏差對(duì)水平分量進(jìn)行舍入。垂直MV分量是一個(gè)整數(shù),并且將所得的色度MV垂直分量舍入成整數(shù)。如果被二除的結(jié)果是一個(gè)非整數(shù)值,就將其舍入成相鄰的奇數(shù)整數(shù)。這一奇數(shù)整數(shù)值代表同一場(chǎng)的線之間的垂直內(nèi)插。
未來(lái)預(yù)測(cè)技術(shù)的第二方面是在上文中提到的MPEG-4 VM 8.0和Eifrig等人的申請(qǐng)中已詳細(xì)說(shuō)明的用于亮度字塊的重疊的MC。
以下要說(shuō)明B-VOP的具體編碼技術(shù)。對(duì)于B-VOP那樣的INTER編碼的VOP來(lái)說(shuō),一共有四種預(yù)測(cè)模式,也就是直接模式,內(nèi)插(例如平均或是雙向的)模式,反向模式,以及前向模式。后三種模式屬于間接模式。單一的前向或是反向預(yù)測(cè)也被稱為“單方向預(yù)測(cè)”。在各種模式中用不同的方式來(lái)確定B-VOP的預(yù)測(cè)字塊。另外,B-VOP的字塊和固定字塊可以是逐步(例如逐幀)編碼或是交錯(cuò)(例如逐場(chǎng))編碼的。
一個(gè)B-VOP中可以具有用不同模式來(lái)預(yù)測(cè)的不同的MB。術(shù)語(yǔ)“B-VOP”僅僅表示它可以包括雙向預(yù)測(cè)的字塊,但是這并不是必要的。與此相反,在P-VOP和I-VOP中不使用雙向預(yù)測(cè)的MB。
對(duì)于間接模式B-VOP的MB,MV是差分編碼的。對(duì)于前向和雙向模式的前向MV以及反向和雙向模式的反向MV,在同一行中緊接在當(dāng)前MB前面的那個(gè)MB的“同類型”(例如前向或是反向)MV被用作預(yù)測(cè)值。這種情況與光柵次序中緊接在MB前面的情況相同,并且通常是在發(fā)送次序中。然而,如果光柵次序和發(fā)送次序不同,就應(yīng)該使用發(fā)送次序中緊接在MB前面的MV,以免在解碼器中需要存儲(chǔ)和重組MB和相應(yīng)的MV。
使用同類的MV,并且假設(shè)發(fā)送次序和光柵次序相同,而且光柵次序是從左到右,從上到下,把左鄰MB的前向MV作為B-VOP中當(dāng)前MB的前向MV的預(yù)測(cè)值。類似地,將左鄰MB的反向MV作為B-VOP中當(dāng)前MB的反向MV的預(yù)測(cè)值。然后使用這種預(yù)測(cè)值對(duì)當(dāng)前MB的MV進(jìn)行差分編碼。也就是說(shuō),預(yù)測(cè)值和被確定為當(dāng)前MB的MV之間的差作為一個(gè)運(yùn)動(dòng)矢量差被發(fā)送給解碼器。在解碼器中通過(guò)恢復(fù)并且將PMV和差MV相加來(lái)確定當(dāng)前MB的MV。
如果當(dāng)前的MB位于VOP的左側(cè)邊沿上,就將當(dāng)前MB的預(yù)測(cè)值設(shè)定為零。
對(duì)于交錯(cuò)編碼的B-VOP,在總共四個(gè)MV中,每個(gè)頂場(chǎng)和底場(chǎng)具有兩個(gè)有關(guān)的預(yù)測(cè)運(yùn)動(dòng)矢量。在發(fā)送次序中,這四個(gè)預(yù)測(cè)MV代表前一個(gè)固定MB的前向頂場(chǎng)和前向底場(chǎng)以及下一個(gè)固定MB的反向頂場(chǎng)和反向底場(chǎng)。當(dāng)前MB以及前向MB和/或當(dāng)前MB以及反向MB被一或多個(gè)中間圖像分開,這些圖像不被用于當(dāng)前MB的ME/MC編碼。B-VOP不包含INTRA編碼的MB,因此,B-VOP中的各個(gè)MB是ME/MC編碼的。前向和反向固定MB可以來(lái)自一個(gè)P-VOP或是I-VOP,并且可以是按幀或是按場(chǎng)編碼的。
對(duì)于交錯(cuò)的間接模式B-VOP MB,在以下的表2中表示了可能的四種預(yù)測(cè)運(yùn)動(dòng)矢量(PMV)。表2的第一列表示預(yù)測(cè)功能,第二列表示PMV的類型。這些PMV在以下所示的表3中被用于不同的MB預(yù)測(cè)模式。
表2
表3
例如,表3表示對(duì)具有前向預(yù)測(cè)模式(即“場(chǎng),前向”)的前場(chǎng)模式MB采用頂場(chǎng)前向(“0”)和底場(chǎng)前向(“1”)運(yùn)動(dòng)矢量。
當(dāng)前一個(gè)MB的運(yùn)動(dòng)矢量在差分編碼中被使用之后就變成了發(fā)送次序中下一個(gè)MB的PMV。在MB的每一行的起點(diǎn)將PMV清零,因?yàn)榍耙恍心┪驳哪莻€(gè)MB的MV不可能與當(dāng)前一行起點(diǎn)上的MB的MV相同。在直接模式MB中也不使用預(yù)測(cè)值。對(duì)于跳過(guò)的MB,PMV保持最后的值。
對(duì)于直接模式編碼的B-VOP MB不發(fā)送矢量的差。而是在解碼器中根據(jù)時(shí)間上的下一個(gè)P-VOP MB直接計(jì)算出前向和反向MV,并且用沒(méi)有預(yù)測(cè)的單個(gè)增量MV進(jìn)行校正。由于發(fā)送的MV數(shù)據(jù)較少,這種方式非常有效。
在表4中總結(jié)了根據(jù)前一個(gè)和當(dāng)前MB的類型用哪一種PMV為運(yùn)動(dòng)矢量編碼的情況。對(duì)于B-VOP可以提供一個(gè)預(yù)測(cè)運(yùn)動(dòng)矢量的矩陣pmv[],矩陣被表示成從零到三(即pmv
,pmv[1],pmv[2]和pmv[3])。標(biāo)志pmv[]是不用發(fā)送的,但是解碼器可以按照Mv編碼類型和被解碼的具體矢量來(lái)確定使用的pmv[]標(biāo)志。在對(duì)一個(gè)B-VOP MB進(jìn)行編碼之后,有些PMV矢量被更新,使其與當(dāng)前MB的運(yùn)動(dòng)矢量相同。前一個(gè),前兩個(gè)或是前四個(gè)PMV是按照關(guān)于當(dāng)前MB的MV數(shù)量來(lái)更新的。
例如,前向場(chǎng)預(yù)測(cè)的MB具有兩個(gè)運(yùn)動(dòng)矢量,其pmv[1]就是底場(chǎng),前向的PMV。對(duì)于反向場(chǎng)預(yù)測(cè)的MB來(lái)說(shuō),pmv[2]就是頂場(chǎng),反向的PMV,而pmv[3]則是底場(chǎng),反向的PMV。對(duì)于雙向場(chǎng)預(yù)測(cè)的MB來(lái)說(shuō),pmv
是頂場(chǎng),前向的PMV,pmv[1]是底場(chǎng),前向的PMV,pmv[2]是頂場(chǎng),反向的PMV,而pmv[3]是底場(chǎng),反向的PMV。對(duì)于前向或反向預(yù)測(cè)的幀模式BVOP MB只有一個(gè)MV,因此,用于前向的僅有pmv
,,用于反向的僅有pmv[2]。對(duì)于平均(即雙向)預(yù)測(cè)的幀模式BVOP MB來(lái)說(shuō),有兩個(gè)MV,具體地說(shuō),pmv
用于前向MV,pmv[2]用于反向MV。表示成“更新pmv[]”的那一行代表需要更新的MV是一個(gè),兩個(gè),還是四個(gè)。
表4-預(yù)測(cè)模式矢量標(biāo)志pmv[]
顯而易見(jiàn),表4僅僅是用來(lái)實(shí)現(xiàn)本發(fā)明技術(shù)的一種簡(jiǎn)化方式,可以用來(lái)為當(dāng)前的MB選擇一個(gè)預(yù)測(cè)MV。然而,這種方案還可以用各種途徑來(lái)實(shí)現(xiàn)。
子塊間的DC自適應(yīng)預(yù)測(cè)可以使用MPEG-4 VM 8.0中關(guān)于dct型數(shù)值的相同算法。子塊間的自適應(yīng)AC預(yù)測(cè)可以按照MPEG-4 VM 8.0中所數(shù)的方式執(zhí)行,區(qū)別僅是第一行系數(shù)是從上面的編碼子塊復(fù)制來(lái)的。僅有當(dāng)前MB和上面的子塊具有相同的dct型數(shù)值時(shí)才可以使用這種操作。如果dct型不同,就只能通過(guò)從子塊左邊第一欄進(jìn)行復(fù)制來(lái)實(shí)現(xiàn)AC預(yù)測(cè)。如果沒(méi)有左邊的子塊,就在AC預(yù)測(cè)中使用零。
圖4標(biāo)識(shí)按照本發(fā)明的交錯(cuò)編碼B-VOP的頂場(chǎng)的直接模式編碼。如果與當(dāng)前MB具有相同相對(duì)位置(即共位)的未來(lái)固定圖像是按照(1)16×16(幀)MB,(2)MB內(nèi)部,或是(3)8×8(超前預(yù)測(cè))MB來(lái)編碼的,當(dāng)前宏子塊(MB)就采用漸進(jìn)的直接編碼模式。
如果共位的未來(lái)固定圖像Mb是按照交錯(cuò)MB來(lái)編碼的,直接模式預(yù)測(cè)就是交錯(cuò)的。如果偏置的SAD是所有B-VOP MB預(yù)測(cè)值中的最小值,當(dāng)前MB的編碼就使用直接模式。交錯(cuò)編碼MB的直接模式分別為當(dāng)前MB的頂場(chǎng)和底場(chǎng)形成預(yù)測(cè)的MB。經(jīng)過(guò)雙向場(chǎng)運(yùn)動(dòng)補(bǔ)償?shù)腗B的四個(gè)場(chǎng)運(yùn)動(dòng)矢量(MV)(即頂場(chǎng)前向,底場(chǎng)前向,頂場(chǎng)反向,以及底場(chǎng)反向)是直接根據(jù)未來(lái)固定圖像中對(duì)應(yīng)的MB計(jì)算出來(lái)的。
由于明顯地減少了所需的檢索工作,并且減少了MV數(shù)據(jù)的發(fā)送量,這種技術(shù)是有效的。一旦確定了MV和參考場(chǎng),就把當(dāng)前的MB當(dāng)作雙向場(chǎng)預(yù)測(cè)的MB。在場(chǎng)預(yù)測(cè)MB的比特流中只有一個(gè)增量運(yùn)動(dòng)矢量(供兩個(gè)場(chǎng)使用)。
當(dāng)前MB的頂場(chǎng)預(yù)測(cè)的依據(jù)是未來(lái)固定圖像(它可以是P-VOP,或是I-VOP,其中的MV=0)的MB的頂場(chǎng)MV和前一個(gè)固定圖像的過(guò)去參考場(chǎng),它是由對(duì)應(yīng)未來(lái)固定MB的頂場(chǎng)MV來(lái)選擇的。也就是說(shuō),與當(dāng)前MB的位置相對(duì)應(yīng)的(即共位的)那個(gè)未來(lái)固定圖像的頂場(chǎng)MB與過(guò)去固定圖像的頂場(chǎng)或是底場(chǎng)具有最佳的匹配。然后將這一最佳匹配MB用作當(dāng)前MB頂場(chǎng)的固定MB。通過(guò)詳盡的檢索來(lái)確定增量運(yùn)動(dòng)矢量MVD,根據(jù)MB給出在一個(gè)MB上共位的未來(lái)固定MV。
用于當(dāng)前MB的底場(chǎng)的運(yùn)動(dòng)矢量同樣也是用相應(yīng)位置上未來(lái)固定MB的底場(chǎng)的MV來(lái)確定的,后者又參考了過(guò)去固定圖像的頂場(chǎng)或是底場(chǎng)中的最佳匹配MB。
頂場(chǎng)運(yùn)動(dòng)矢量被用來(lái)構(gòu)成一個(gè)MB預(yù)測(cè)值,它是(a)從相應(yīng)位置上的未來(lái)固定MB的頂場(chǎng)獲得的象素和(b)從供相應(yīng)位置上的未來(lái)固定MB的頂場(chǎng)MV參考的那個(gè)過(guò)去固定場(chǎng)獲得的象素二者的平均值。同樣,底場(chǎng)運(yùn)動(dòng)矢量被用來(lái)構(gòu)成一個(gè)MB預(yù)測(cè)值,它是(a)從相應(yīng)位置上的未來(lái)固定MB的底場(chǎng)獲得的象素和(b)從供相應(yīng)位置上的未來(lái)固定MB的底場(chǎng)MV參考的那個(gè)過(guò)去固定場(chǎng)獲得的象素二者的平均值。
如圖4所示,當(dāng)前B-VOP MB 420中包括頂場(chǎng)430和底場(chǎng)425,過(guò)去固定VOP MB 400中包括頂場(chǎng)410和底場(chǎng)405,而未來(lái)固定VOP MB 440中包括頂場(chǎng)450和底場(chǎng)445。
運(yùn)動(dòng)矢量MVtop是未來(lái)固定MB 440的頂場(chǎng)450的前向運(yùn)動(dòng)矢量,用它表示過(guò)去固定MB 400中的最佳匹配MB。盡管MVtop參考了前面的圖像(即以往時(shí)間),它仍是一個(gè)前向MV,因?yàn)槲磥?lái)固定VOP 440與過(guò)去固定VOP 400相比在時(shí)間上是前向的。在本例中,MVtop參考過(guò)去固定VOP 400的底場(chǎng)405,當(dāng)然也可以參考其頂場(chǎng)410。MVtop是當(dāng)前MB的頂場(chǎng)的前向MV,而MVb,top是當(dāng)前MB的頂場(chǎng)的反向MV。象素?cái)?shù)據(jù)是在解碼器中從雙向預(yù)測(cè)MB推導(dǎo)出來(lái)的,在解碼器中對(duì)分別用MVb,top和MVf,top表示的未來(lái)和過(guò)去固定圖像中的象素?cái)?shù)據(jù)取平均值,然后將原來(lái)發(fā)送的殘余部分和這一平均圖像相加。
頂場(chǎng)的運(yùn)動(dòng)矢量計(jì)算如下如果MVD=0,MVf,top=(TRB,top*MVtop)/TRD,top+MVD;MVb,top=((TRB,top-TRD,top)*MVtop/TRD,I;并且如果MVD≠0,MVb,top=(MVf,top-MVtop)MVD是運(yùn)動(dòng)矢量的增量或是偏差。此處的運(yùn)動(dòng)矢量是二維的矢量。另外,運(yùn)動(dòng)矢量是一種整數(shù)半亮度象素運(yùn)動(dòng)矢量。斜線“/”代表接近零的整數(shù)除法的舍項(xiàng)。另外,未來(lái)固定VOP永遠(yuǎn)是場(chǎng)直接預(yù)測(cè)模式的P-VOP。如果未來(lái)固定是一個(gè)I-VOP,MV就是零,并且可以使用16×16的間接模式。TRB,top是過(guò)去參考場(chǎng)(即頂場(chǎng)或底場(chǎng))和當(dāng)前B-VOP 420的頂場(chǎng)430之間的場(chǎng)中的時(shí)間距離,本例中的過(guò)去參考場(chǎng)指得是底場(chǎng)405。TRD,top是過(guò)去參考場(chǎng)(即頂場(chǎng)或底場(chǎng))和未來(lái)的參考頂場(chǎng)450之間的時(shí)間距離,本例中的過(guò)去參考場(chǎng)指得是底場(chǎng)405。
圖5表示按照本發(fā)明對(duì)交錯(cuò)編碼的B-VOP的底場(chǎng)進(jìn)行直接模式編碼的情況。其中的交錯(cuò)視頻信號(hào)源可以具有頂場(chǎng)在前或是底場(chǎng)在前的格式。在圖4和5中表示了底場(chǎng)在前的格式。圖中相同的編號(hào)與圖4中的項(xiàng)目是相同的。此處的運(yùn)動(dòng)矢量MVbot是未來(lái)固定宏字塊(MB)440的底場(chǎng)445的前向運(yùn)動(dòng)矢量,字塊440指出了過(guò)去固定MB 400中的最佳匹配MB。在本例中,MVbot參考過(guò)去固定MB 400的底場(chǎng)405,當(dāng)然也可以參考其頂場(chǎng)410。MVf,bot和MVb,bot分別是前向和反向運(yùn)動(dòng)矢量。
和頂場(chǎng)運(yùn)動(dòng)矢量并行計(jì)算的底場(chǎng)運(yùn)動(dòng)矢量計(jì)算如下如果MVD=0,MVf,bot=(TRB,bot*MVbot)/TRD,bot+MVD;MVb,bot=((TRB,bot-TRD,bot)*MVbot/TRD,I;并且如果MVD≠0,MVb,bot=(MVf,bot-MVbot)TRB,bot是過(guò)去參考場(chǎng)(即頂場(chǎng)或底場(chǎng))和當(dāng)前B-VOP 420的底場(chǎng)425之間的時(shí)間距離,本例中的過(guò)去參考場(chǎng)指得是底場(chǎng)405。TRD,bot是過(guò)去參考場(chǎng)(即頂場(chǎng)或底場(chǎng))和未來(lái)的參考底場(chǎng)445之間的時(shí)間距離,本例中的過(guò)去參考場(chǎng)指得是底場(chǎng)405。
對(duì)于圖4和5的例子來(lái)說(shuō),TRB,top,TRD,top,TRB,bot和TRD,bot的計(jì)算不僅取決于當(dāng)前場(chǎng),參考場(chǎng)和幀參考時(shí)間,還要取決于當(dāng)前的視頻信號(hào)是頂場(chǎng)在前還是底場(chǎng)在前。具體地說(shuō)TRD,top或是TRD,bot=2*(TR未來(lái)-TR過(guò)去)+δ;并且TRB,top或是TRB,bot=2*(TR當(dāng)前-TR過(guò)去)+δ;其中的TR未來(lái),TR當(dāng)前和TR過(guò)去分別是顯示次序中未來(lái),當(dāng)前和過(guò)去幀的幀號(hào),δ是由以下的標(biāo)5中給定的場(chǎng)間時(shí)間距離的附加校正值。δ的單位是場(chǎng)的周期。
例如,第一列最后一行中的“1”表示未來(lái)固定場(chǎng)是一個(gè)頂場(chǎng),而參考場(chǎng)是一個(gè)底場(chǎng)。正如圖4中所示的情況。第二列最后一行中的“1”表示未來(lái)固定場(chǎng)是一個(gè)底場(chǎng),而參考場(chǎng)也是底場(chǎng)。如圖5中所示的情況。
表5-時(shí)間校正,δ
關(guān)于系數(shù)編碼,需要一個(gè)適當(dāng)?shù)木幋a模式?jīng)Q定程序。如上所述,對(duì)于B-VOP,MB的編碼可以采用(1)直接編碼,(2)16×16運(yùn)動(dòng)補(bǔ)償(包括前向,反向和平均模式),或是(3)場(chǎng)運(yùn)動(dòng)補(bǔ)償(包括前向,反向和平均模式)。當(dāng)對(duì)應(yīng)的未來(lái)固定MB是幀或場(chǎng)的直接編碼時(shí),對(duì)當(dāng)前MB分別采用幀或場(chǎng)的直接編碼。
對(duì)于一個(gè)B-VOP中的場(chǎng)運(yùn)動(dòng)補(bǔ)償MB來(lái)說(shuō),根據(jù)相對(duì)于編碼固定圖像的最小亮度半象素SAD來(lái)決定用前向,反向或是平均模式對(duì)MB進(jìn)行編碼。具體地說(shuō),七個(gè)偏置SAD項(xiàng)目是如下計(jì)算的(1)SAD直接+b1,(2)SAD前向+b2,(3)SAD反向+b2,(4)SAD平均+b3,(5)SAD前向,場(chǎng)+b3,(6)SAD反向,場(chǎng)+b3,以及(7)SAD平均,場(chǎng)+b4,其中的下標(biāo)代表直接模式,前向運(yùn)動(dòng)預(yù)測(cè),反向運(yùn)動(dòng)預(yù)測(cè),平均(例如內(nèi)插或是雙向)運(yùn)動(dòng)預(yù)測(cè),幀模式(例如局部前進(jìn))以及場(chǎng)模式(例如局部交錯(cuò))。上述的場(chǎng)SAD(例如SAD前向,場(chǎng),SAD反向,場(chǎng),以及SAD平均,場(chǎng))是頂場(chǎng)和底場(chǎng)SAD之和,各自具有自己的參考場(chǎng)和運(yùn)動(dòng)矢量。具體地說(shuō),SAD前向,場(chǎng)=SAD前向,頂場(chǎng)+SAD前向,底場(chǎng);SAD反向,場(chǎng)=SAD反向,頂場(chǎng)+SAD反向,底場(chǎng);并且SAD平均,場(chǎng)=SAD平均,頂場(chǎng)+SAD平均,底場(chǎng)。
SAD直接是最佳直接模式預(yù)測(cè),SAD前向是根據(jù)前向(過(guò)去)參考的最佳16×16預(yù)測(cè),SAD反向是根據(jù)反向(未來(lái))參考的最佳16×16預(yù)測(cè),SAD平均是由平均的最佳前向和最佳反向參考的逐個(gè)象素構(gòu)成的最佳16×16預(yù)測(cè),SAD前向,場(chǎng)是根據(jù)前向(過(guò)去)參考的最佳場(chǎng)預(yù)測(cè),SAD反向,場(chǎng)是根據(jù)反向(未來(lái))參考的最佳場(chǎng)預(yù)測(cè),而SAD平均,場(chǎng)是由平均的最佳前向和最佳反向參考的逐個(gè)象素構(gòu)成的最佳場(chǎng)預(yù)測(cè)。
bi′是以下的表6中所限定的偏置值,用來(lái)計(jì)算需要更多運(yùn)動(dòng)矢量的預(yù)測(cè)模式。最好是直接模式和MV比較少的模式。
表6
直接模式的負(fù)偏置是用來(lái)與現(xiàn)有的用于逐級(jí)視頻信號(hào)的MPEG-4 VM保持一致,這樣可能會(huì)有比較多的MB被忽略。
圖7是按照本發(fā)明的一個(gè)解碼器的框圖。統(tǒng)一用700標(biāo)識(shí)的這一解碼器可以用來(lái)接收?qǐng)D2的編碼器發(fā)送的編碼數(shù)據(jù)信號(hào)并且進(jìn)行解碼。在端子740上接收編碼的視頻圖像數(shù)據(jù)和差分編碼的運(yùn)動(dòng)矢量(MV)數(shù)據(jù),并且提供給一個(gè)多路分解器(DEMUX)742。編碼的視頻圖像數(shù)據(jù)通常是用作為預(yù)測(cè)誤差信號(hào)(也就是殘余)的DCT變換系數(shù)進(jìn)行差分編碼的。
當(dāng)VOP具有隨機(jī)的形狀時(shí),形狀解碼功能744通過(guò)信號(hào)處理來(lái)恢復(fù)形狀信息,該信息被提供給運(yùn)動(dòng)補(bǔ)償功能750和VOP重組功能752。紋理解碼功能746對(duì)變換系數(shù)執(zhí)行反向DCT,從中恢復(fù)出殘余信息。對(duì)于INTRA編碼的宏字塊(MB),象素信息是直接恢復(fù)的,并且提供給VOP重組功能752。
對(duì)于B-VOP中的INTER編碼的字塊和MB,從紋理編碼功能746提供給VOP重組功能752的象素信息代表當(dāng)前MB和參考圖像之間的殘余。參考圖像可以是來(lái)自由前向或是反向MV指定的一個(gè)固定MB的象素?cái)?shù)據(jù)。反之,對(duì)于內(nèi)插(即平均)的MB來(lái)說(shuō),參考圖像是兩個(gè)參考MB的平均值,也就是一個(gè)過(guò)去固定MB和一個(gè)未來(lái)固定MB的平均值。在這種情況下,在恢復(fù)當(dāng)前的MB象素?cái)?shù)據(jù)之前,解碼器必須根據(jù)前向和反向MV計(jì)算出平均的象素?cái)?shù)據(jù)。
對(duì)于INTER編碼的字塊和MB來(lái)說(shuō),運(yùn)動(dòng)解碼功能748需要處理編碼的MV數(shù)據(jù),從中恢復(fù)差分的MV,并且將其提供給運(yùn)動(dòng)補(bǔ)償功能750和RAM構(gòu)成的運(yùn)動(dòng)矢量存儲(chǔ)器749。運(yùn)動(dòng)補(bǔ)償功能750接收這一差分MV數(shù)據(jù),并且按照本發(fā)明的方式確定參考運(yùn)動(dòng)矢量(即預(yù)測(cè)值運(yùn)動(dòng)矢量,或是PMV)。PMV是按照編碼模式(即前向,反向,雙向,或是直接)來(lái)確定的。
一旦運(yùn)動(dòng)補(bǔ)償功能750確定了整個(gè)參考MV并且將其與當(dāng)前MB的差分MV相加之后,當(dāng)前MB的整個(gè)MV就可以使用了。因此,運(yùn)動(dòng)補(bǔ)償功能750在此時(shí)就可以從RAM構(gòu)成的VOP存儲(chǔ)器754中恢復(fù)固定幀最佳匹配數(shù)據(jù),根據(jù)需要計(jì)算出平均圖像,并且將固定幀象素?cái)?shù)據(jù)提供給用來(lái)重組當(dāng)前MB的VOP重組功能。
恢復(fù)或是計(jì)算出的最佳匹配數(shù)據(jù)重新被加到VOP重組功能752的象素殘余上,從中獲得解碼的當(dāng)前MB或是字塊。重組的字塊作為視頻輸出信號(hào)被輸出,并且被提供給VOP存儲(chǔ)器754,以便獲得新的固定幀數(shù)據(jù)。值得注意的是,根據(jù)幀的傳輸和圖像的次序可能需要適當(dāng)?shù)囊曨l數(shù)據(jù)緩沖能力,因?yàn)锽-VOP MB的固定幀在圖像次序中可能是時(shí)間上的未來(lái)幀或是場(chǎng)。
圖8表示按照本發(fā)明的一個(gè)MB包結(jié)構(gòu)。該結(jié)構(gòu)適用于B-VOP,并且表示解碼器接收到的數(shù)據(jù)格式。為了便于表示,圖中的這種包一共有四行。這種包實(shí)際上是從頂行開始串行發(fā)送的,并且在一行內(nèi)是從左到右。第一行810包括場(chǎng)first_shape_code,MVD_shape,CR,ST,和BAC。第二行830包括場(chǎng)MODB和MBTYPE。第三行850包括場(chǎng)CBPB,DQUANT,Interlaced_Information,MVDf,MVDb,和MVDB。第四行包括場(chǎng)CODA,CBPBA,Alpha Block Data和Block Data。上述的每個(gè)場(chǎng)都是按照MPEG-4 VM 8.0來(lái)限定的。
first_shape_code表示一個(gè)MB是否處在一個(gè)VOP的邊界框內(nèi)。CR表示Binary Alpha Block的轉(zhuǎn)換率。ST代表水平或是垂直掃描次序。BAC表示一種二進(jìn)制運(yùn)算的代碼字。
代表MB模式的MODB被用于一個(gè)B-VOP中的每個(gè)編碼的(沒(méi)有被忽略的)MB。如果出現(xiàn)了MODB的指示,就會(huì)產(chǎn)生差運(yùn)動(dòng)矢量(MVDf,MVDb,或是MVDB)和CBPB。MBTYPE用來(lái)指示宏字塊類型,它還可以代表運(yùn)動(dòng)矢量模式(MVD)和量化(DQUANT)。對(duì)于交錯(cuò)模式來(lái)說(shuō),每個(gè)MB可以具有多達(dá)四個(gè)MV。MBTYPE用來(lái)指示編碼類型,也就是前向,反向雙向或是直接。CBPB是用于B-型宏字塊的Coded Block Pattern。CBPBA的定義和CBPB類似,區(qū)別僅是最多只有四個(gè)比特。DQUANT限定了量化器中數(shù)值的變化。
第三行850中的場(chǎng)Interlaced_Information表示MB是不是一個(gè)交錯(cuò)編碼的MB,并且向解碼器提供當(dāng)前MB的編碼模式或是字塊的場(chǎng)MV參考數(shù)據(jù)。解碼器使用這種信息來(lái)計(jì)算當(dāng)前MB的MV。Interlaced_Information的場(chǎng)可以存儲(chǔ)在解碼器中的MV存儲(chǔ)器749或是其他存儲(chǔ)器中,根據(jù)需要在以后使用。
Interlaced_Information場(chǎng)還可以包括一種標(biāo)志dct_type,例如參照?qǐng)D6所述的情況,它表示場(chǎng)編碼的MB中的頂場(chǎng)和底場(chǎng)象素線是否與交錯(cuò)的次序不同。
在VOP_prediction_type=10的情況下使用圖示的MB層次構(gòu)造。如果COD指示出對(duì)最新解碼的I-或是P-VOP跳過(guò)(COD=“1”)一個(gè)MB,就跳過(guò)B-VOP中位置相同(即共位)的那個(gè)MB。因此,在比特流中不包括信息。
MVDf是B-VOP中相對(duì)于時(shí)間在前的參考VOP(一個(gè)I-或是P-VOP)的一個(gè)MB的運(yùn)動(dòng)矢量。它包括一個(gè)用于水平分量的可變長(zhǎng)度的代碼字,后面是一個(gè)用于垂直分量的可變長(zhǎng)度的代碼字。對(duì)于一個(gè)場(chǎng)預(yù)測(cè)值是“1”并且前向或是內(nèi)插的MBTYPE的交錯(cuò)B-VOP MB來(lái)說(shuō),MVDf代表一對(duì)以過(guò)去固定VOP為參考的場(chǎng)運(yùn)動(dòng)矢量(底場(chǎng)在頂場(chǎng)后面)。
MVDb是B-VOP中相對(duì)于時(shí)間在后的參考VOP(一個(gè)I-或是P-VOP)的一個(gè)MB的運(yùn)動(dòng)矢量。它包括一個(gè)用于水平分量的可變長(zhǎng)度的代碼字,后面是一個(gè)用于垂直分量的可變長(zhǎng)度的代碼字。對(duì)于一個(gè)場(chǎng)預(yù)測(cè)值是“1”并且前向或是內(nèi)插的MBTYPE的交錯(cuò)B-VOP MB來(lái)說(shuō),MVDb代表一對(duì)以未來(lái)固定VOP為參考的場(chǎng)運(yùn)動(dòng)矢量(底場(chǎng)在頂場(chǎng)后面)。
MVDB僅僅在MODB和MBTYPE指示出直接模式時(shí)才出現(xiàn)在B-VOP中,它包括每個(gè)矢量中用于水平分量的可變長(zhǎng)度代碼字,后面是用于垂直分量的可變長(zhǎng)度代碼字。MVDB代表用來(lái)校正B-VOP MB運(yùn)動(dòng)矢量的增量矢量,后者是通過(guò)對(duì)P-VOP MB運(yùn)動(dòng)矢量定標(biāo)而獲得的。
CODA代表灰色色度形狀編碼。
圖8的格式僅僅是一個(gè)例子,本領(lǐng)域的技術(shù)人員以此為依據(jù)還可以為解碼器的有關(guān)信息采用各種其他通信格式。
在MPEG-4 VM 8.0和Eifrig等人的上述申請(qǐng)中已經(jīng)描述了在本發(fā)明中使用的比特流語(yǔ)法和MB層次語(yǔ)法。
因此可以看出,本發(fā)明為B-VOP中的當(dāng)前MB提供了一種編碼方案,特別適用于當(dāng)前MB是場(chǎng)編碼以及/或是固定MB是場(chǎng)編碼方式的情況。這是一種對(duì)場(chǎng)編碼的MB進(jìn)行直接編碼的方案,還有一種編碼決定程序,它使用絕對(duì)差項(xiàng)目之和的最小值來(lái)選擇一種最佳的模式。另外還為場(chǎng)編碼的當(dāng)前MB的頂場(chǎng)和底場(chǎng)提供了一種預(yù)測(cè)運(yùn)動(dòng)矢量(PMV),在其中根據(jù)需要還可以包括前向和反向PMV,并且也可以用于幀編碼的MB。
盡管上文中是參照各種具體實(shí)施例來(lái)描述本發(fā)明的,顯而易見(jiàn),本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書所限定的本發(fā)明的精神和范圍的條件下仍然可以實(shí)現(xiàn)各種修改和變更。
權(quán)利要求
1.一種選擇編碼方式的方法,用于在一系列數(shù)字視頻圖像中為當(dāng)前預(yù)測(cè)的具有頂場(chǎng)和底場(chǎng)的場(chǎng)編碼宏子塊選擇一種編碼方式,包括以下步驟相對(duì)于過(guò)去參考宏子塊,確定當(dāng)前宏子塊絕對(duì)差分誤差的前向總和SADforward,field,該步驟對(duì)應(yīng)于前向編碼方式;相對(duì)于未來(lái)參考宏子塊,確定當(dāng)前宏子塊絕對(duì)差分誤差的反向總和SADbackward,field,該步驟對(duì)應(yīng)于反向編碼方式;相對(duì)于上述的過(guò)去和未來(lái)參考宏子塊的平均值,確定當(dāng)前宏子塊絕對(duì)差分誤差的平均值總和SADaverage,field,該步驟對(duì)應(yīng)于平均編碼方式;以及按照上述SAD最小的原則,選擇上述編碼方式。
2.按照權(quán)利要求1的方法,其進(jìn)一步包括以下步驟按照上述SAD各自的和數(shù)最小的原則,選擇編碼方式,且考慮對(duì)應(yīng)的說(shuō)明各編碼方式所需的運(yùn)動(dòng)矢量的數(shù)量的偏置項(xiàng)。
3.按照權(quán)利要求1或2的方法,其中SADforward,field是按照(a)當(dāng)前宏子塊的頂場(chǎng)相對(duì)于過(guò)去參考宏子塊的頂場(chǎng)的絕對(duì)差之和,以及(b)當(dāng)前宏子塊的底場(chǎng)相對(duì)于過(guò)去參考宏子塊的底場(chǎng)的絕對(duì)差之和的總和來(lái)確定的。
4.按照權(quán)利要求1到3之一的方法,其中SADbackward,field是按照(a)當(dāng)前宏子塊的頂場(chǎng)相對(duì)于未來(lái)參考宏子塊的頂場(chǎng)的絕對(duì)差之和,以及(b)當(dāng)前宏子塊的底場(chǎng)相對(duì)于未來(lái)參考宏子塊的底場(chǎng)的絕對(duì)差之和的總和來(lái)確定的。
5.按照權(quán)利要求1到4之一的方法,其中SADaverage,field是按照(a)當(dāng)前宏子塊的頂場(chǎng)相對(duì)于過(guò)去和未來(lái)參考宏子塊的頂場(chǎng)平均值的絕對(duì)差之和,以及(b)當(dāng)前宏子塊的底場(chǎng)相對(duì)于過(guò)去和未來(lái)參考宏子塊的底場(chǎng)平均值的絕對(duì)差之和的總和來(lái)確定的。
全文摘要
雙向預(yù)測(cè)視頻目標(biāo)平面(B_VOPs)的數(shù)字視頻圖像編碼的系統(tǒng)。對(duì)和一個(gè)未來(lái)固定圖像的位置相同的B-VOP宏子塊,通過(guò)計(jì)算四個(gè)場(chǎng)運(yùn)動(dòng)矢量執(zhí)行直接式預(yù)測(cè)產(chǎn)生預(yù)測(cè)的宏子塊。四個(gè)場(chǎng)運(yùn)動(dòng)矢量及參考的場(chǎng)根據(jù)(1)當(dāng)前宏子塊的編碼矢量的一個(gè)偏差項(xiàng)(MVD),(2)兩個(gè)未來(lái)固定圖像場(chǎng)運(yùn)動(dòng)矢量,(3)供位置相同的未來(lái)固定宏子塊的兩個(gè)場(chǎng)運(yùn)動(dòng)矢量使用的參考場(chǎng),及(4)當(dāng)前B-VOP場(chǎng)和固定場(chǎng)間的場(chǎng)周期中的時(shí)間間隙確定。
文檔編號(hào)G06K9/00GK1620145SQ20041006820
公開日2005年5月25日 申請(qǐng)日期1998年3月7日 優(yōu)先權(quán)日1997年3月7日
發(fā)明者羅伯特·O·艾弗雷格, 陳學(xué)敏, 阿賈伊·盧特拉 申請(qǐng)人:通用儀器公司