專利名稱::隔行掃描視頻的高級(jí)雙向預(yù)測(cè)編碼的制作方法
技術(shù)領(lǐng)域:
:描述了用于隔行掃描視頻編碼和解碼的技術(shù)和工具。例如,視頻編碼器對(duì)隔行掃描視頻中的雙向預(yù)測(cè)宏塊進(jìn)行編碼。
背景技術(shù):
:數(shù)字視頻消耗大量的存儲(chǔ)和傳輸容量。典型的原始數(shù)字視頻序列包括每秒15或30個(gè)圖片。每個(gè)圖片可包括數(shù)萬(wàn)或數(shù)十萬(wàn)個(gè)像素(也稱為pel)。每個(gè)像素表示圖片的小元素。在原始形式中,計(jì)算機(jī)通常用24個(gè)比特或以上來(lái)表示像素。因而,典型的原始數(shù)字視頻序列的每秒比特?cái)?shù)或比特率可以是5百萬(wàn)比特/秒或以上。大多數(shù)計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)缺乏處理原始數(shù)字視頻的資源。為此,工程師們使用壓縮(也稱為譯碼或編碼)來(lái)降低數(shù)字視頻的比特率。壓縮可以是無(wú)損的,其中視頻的質(zhì)量未受損,但比特率的降低受視頻復(fù)雜性的限制?;蛘?,壓縮可以是有損的,其中視頻的質(zhì)量受損,但可獲得的比特率降幅更大。解壓縮是壓縮的反向過(guò)程。一般而言,視頻壓縮技術(shù)包括"幀內(nèi)"壓縮和"幀間"或預(yù)測(cè)壓縮。幀內(nèi)壓縮技術(shù)壓縮通常稱為I-幀或關(guān)鍵幀的各個(gè)圖片。幀間壓縮技術(shù)參考前面和/或后續(xù)的各幀來(lái)壓縮各個(gè)幀,而經(jīng)幀間壓縮的幀通常稱為預(yù)測(cè)幀、P-幀、或B-幀。I.WindowsMediaVideo版本8禾Q9中的幀間壓縮微軟公司的WindowsMediaVideo版本8["WMV8"]包括視頻編碼器和視頻解碼器。WMV8編碼器使用幀內(nèi)壓縮和幀間壓縮,且WMV8解碼器使用幀內(nèi)解壓縮和幀間解壓縮。WindowsMediaVideo版本9["WMV9"]則將類似的體系結(jié)構(gòu)用于許多操作。WMV8編碼器中的幀內(nèi)壓縮使用基于塊的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)編碼,然后使用殘差的變換編碼。圖1和2示出WMV8編碼器中預(yù)測(cè)幀的基于塊的幀間壓縮。特別地,圖1示出對(duì)預(yù)測(cè)幀110的運(yùn)動(dòng)估計(jì),而圖2示出對(duì)預(yù)測(cè)幀的運(yùn)動(dòng)補(bǔ)償塊的預(yù)測(cè)殘差壓縮。例如,在圖1中,WMV8編碼器計(jì)算用于預(yù)測(cè)幀110中的宏塊115的運(yùn)動(dòng)向量。為了計(jì)算該運(yùn)動(dòng)向量,編碼器在參考幀130的搜索區(qū)域135中進(jìn)行搜索。在搜索區(qū)域135內(nèi),編碼器對(duì)來(lái)自預(yù)測(cè)幀110的宏塊115和各個(gè)候選宏塊作比較,以便于尋找是好匹配的候選宏塊。編碼器輸出指定匹配宏塊的(經(jīng)熵編碼的)運(yùn)動(dòng)向量。因?yàn)檫\(yùn)動(dòng)向量值常常相關(guān)于空間上位于四周的運(yùn)動(dòng)向量的值,所以用來(lái)傳送運(yùn)動(dòng)向量信息的數(shù)據(jù)的壓縮可通過(guò)從相鄰宏塊中選擇運(yùn)動(dòng)向量預(yù)測(cè)值,并使用該預(yù)測(cè)值來(lái)預(yù)測(cè)當(dāng)前宏塊的運(yùn)動(dòng)向量來(lái)獲得。編碼器可編碼運(yùn)動(dòng)向量和預(yù)測(cè)值之前的差值。在通過(guò)將差值添加到預(yù)測(cè)值中重構(gòu)運(yùn)動(dòng)向量之后,解碼器使用該運(yùn)動(dòng)向量來(lái)用來(lái)自參考幀130的信息計(jì)算用于宏塊115的預(yù)測(cè)宏塊,該參考幀是在編碼器和解碼器上可用的先前重構(gòu)幀。預(yù)測(cè)很少是完美的,所以編碼器常常編碼預(yù)測(cè)宏塊和宏塊115本身之間的像素差異(也稱為誤差或殘差塊)的各個(gè)塊。圖2示出WMV8編碼器中誤差塊235的計(jì)算和編碼的一個(gè)示例。該誤差塊235是預(yù)測(cè)塊215和原始當(dāng)前塊225之間的差異。編碼器將離散余弦變換["DCT"]240應(yīng)用于誤差塊235,得到系數(shù)的8x8塊245。然后編碼器量化(250)DCT系數(shù),得到經(jīng)量化的DCT系數(shù)的8x8塊255。編碼器將8x8塊255掃描(260)成一維數(shù)組265,從而系數(shù)通常從最低頻率到最高頻率進(jìn)行排序。編碼器使用運(yùn)行長(zhǎng)度編碼270的變體來(lái)熵編碼經(jīng)掃描的系數(shù)。編碼器從一個(gè)或多個(gè)run/level/last表格275中選擇熵碼,并輸出該熵碼。圖3示出對(duì)經(jīng)幀間編碼塊的相應(yīng)解碼過(guò)程300的一個(gè)示例。從圖3總地看來(lái),解碼器使用具有一個(gè)或多個(gè)run/level/last表格315的可變長(zhǎng)度解碼310和運(yùn)行長(zhǎng)度解碼320來(lái)解碼(310、320)表示預(yù)測(cè)殘差的經(jīng)熵編碼的信息。解碼器將存儲(chǔ)了經(jīng)熵編碼信息的一維數(shù)組325逆掃描(330)成二維塊335。解碼器逆量化并逆離散余弦變換(一起編號(hào)為340)該數(shù)據(jù),產(chǎn)生經(jīng)重構(gòu)的誤差塊345。在獨(dú)立的運(yùn)動(dòng)補(bǔ)償路徑中,解碼器使用運(yùn)動(dòng)向量信息355來(lái)計(jì)算預(yù)測(cè)塊365,用于相對(duì)參考幀的位移。解碼器將預(yù)測(cè)塊365與經(jīng)重構(gòu)的誤差塊345組合(370)在一起,以形成重構(gòu)塊375。原始和重構(gòu)幀之間的改變量是失真,且編碼該幀所需的比特?cái)?shù)表示該幀的速率。失真量大致與速率成反比。II.隔行掃描視頻和逐行掃描視頻視頻幀包含視頻信號(hào)的各行空間信息。對(duì)于逐行掃描視頻,這些行包含從一時(shí)刻開(kāi)始并繼續(xù)后續(xù)行直到幀的底部的樣本。逐行掃描I幀是幀內(nèi)編碼的逐行掃描視頻幀。逐行掃描P幀是使用正向預(yù)測(cè)編碼的逐行掃描視頻幀,而逐行掃描B幀是使用雙向預(yù)測(cè)編碼的逐行掃描視頻幀。典型的隔行掃描視頻幀由在不同時(shí)間開(kāi)始掃描的兩個(gè)半幀組成。例如,參照?qǐng)D4,隔行掃描的視頻幀400包括上半幀410和下半幀420。通常,偶數(shù)編號(hào)行(上半幀)在一時(shí)間(例如時(shí)間t)開(kāi)始掃描而奇數(shù)編號(hào)行(下半幀)在不同(通常為后續(xù))時(shí)間(例如時(shí)間t+l)開(kāi)始掃描。該定時(shí)可在隔行掃描視頻幀的區(qū)域中創(chuàng)建鋸齒狀特征,其中因?yàn)閮蓚€(gè)半幀在不同時(shí)間開(kāi)始掃描而呈現(xiàn)運(yùn)動(dòng)。因此,各個(gè)隔行掃描的視頻幀可根據(jù)半幀結(jié)構(gòu)來(lái)重新排列,其中奇數(shù)行組合在一個(gè)半幀中而偶數(shù)行組合在另一個(gè)半幀中。稱為半幀編碼的該排列對(duì)在高運(yùn)動(dòng)圖片中減少這種鋸齒邊緣人工效應(yīng)是有用的。另一方面,在靜態(tài)區(qū)域中,隔行掃描視頻幀中的圖像細(xì)節(jié)無(wú)需這種重新排列就可更為有效地保留。因此,幀編碼常用于靜態(tài)或低運(yùn)動(dòng)的隔行掃描視頻幀,其中原始的交替半幀行排列得以保留。典型的逐行掃描視頻幀由具有非交替行的一內(nèi)容幀組成。與隔行掃描視頻相比,逐行掃描視頻不將視頻幀分成各個(gè)半幀,并且整個(gè)幀從某個(gè)時(shí)間開(kāi)始進(jìn)行從左到右、從上到下的掃描。III.先前WMV編碼器和解碼器中的P-幀編碼和解碼先前的WMV編碼器和解碼器使用P-幀中的逐行掃描及隔行掃描的編碼和解碼。在隔行掃描和逐行掃描的P-幀中,運(yùn)動(dòng)向量通過(guò)計(jì)算運(yùn)動(dòng)向量和運(yùn)動(dòng)向量預(yù)測(cè)值之間的差值來(lái)在編碼器中編碼,其中運(yùn)動(dòng)向量預(yù)測(cè)值基于相鄰的運(yùn)動(dòng)向量進(jìn)行計(jì)算。并且,在解碼器中,運(yùn)動(dòng)向量通過(guò)將運(yùn)動(dòng)向量差值添加到運(yùn)動(dòng)向量預(yù)測(cè)值來(lái)重新構(gòu)建,其中運(yùn)動(dòng)向量預(yù)測(cè)值再次基于相鄰的運(yùn)動(dòng)向量進(jìn)行計(jì)算(這次是在解碼器中)。當(dāng)前宏塊的預(yù)測(cè)值或當(dāng)前宏塊的半幀基于候選預(yù)測(cè)值來(lái)選擇,而運(yùn)動(dòng)向量差值基于該預(yù)測(cè)值來(lái)計(jì)算。通過(guò)將運(yùn)動(dòng)向量差值添加到編碼器側(cè)或解碼器側(cè)的選定運(yùn)動(dòng)向量預(yù)測(cè)值,可重構(gòu)運(yùn)動(dòng)向量。通常,亮度運(yùn)動(dòng)向量從經(jīng)編碼的運(yùn)動(dòng)信息中重構(gòu),而色度運(yùn)動(dòng)向量從經(jīng)重構(gòu)的亮度運(yùn)動(dòng)向量中導(dǎo)出。A.逐行掃描P-幀的編碼和解碼例如,在先前的WMV編碼器和解碼器中,逐行掃描P-幀可包含以一運(yùn)動(dòng)向量(1MV)模式或四運(yùn)動(dòng)向量(4MV)模式編碼的宏塊,或被跳過(guò)的宏塊,其中決定通常在逐個(gè)宏塊的基礎(chǔ)上作出。僅具有1MV宏塊(以及可能被跳過(guò)的宏塊)的P-幀被稱為1MVP-幀,而都具有1MV和4MV宏塊(以及可能被跳過(guò)的宏塊)的P-幀被稱為混合MV的P-幀。一個(gè)運(yùn)動(dòng)向量與每個(gè)1MV宏塊相關(guān)聯(lián),而四個(gè)運(yùn)動(dòng)向量與每個(gè)4MV宏塊相關(guān)聯(lián)(每個(gè)塊一個(gè))。圖5A和5B是示出被視作用于1MV逐行掃描P-幀中宏塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的宏塊的位置的示圖。候選預(yù)測(cè)值從左邊、上方和右上方宏塊中取得,除了宏塊是行中最后一個(gè)宏塊的情形。在該情形中,Predicator(預(yù)測(cè)值)B從左上方宏塊而不是從右上方中取得。對(duì)于幀為一個(gè)宏塊寬的特定情形,預(yù)測(cè)值總是預(yù)測(cè)值A(chǔ)(頂部預(yù)測(cè)值)。當(dāng)因?yàn)楹陦K在首行中從而預(yù)測(cè)值A(chǔ)在界限之外時(shí),預(yù)測(cè)值為預(yù)測(cè)值C。各種其它規(guī)則解決其它特定情形,諸如幀內(nèi)編碼的預(yù)測(cè)值。圖6A-10示出被視作用于混合MV幀中的1MV或4MV宏塊的運(yùn)動(dòng)向量的至多3個(gè)候選運(yùn)動(dòng)向量的塊或宏塊的位置。在以下附圖中,較大的正方形是宏塊邊界而較小的正方形是塊邊界。對(duì)于幀為一個(gè)宏塊寬的特定情形,預(yù)測(cè)值總是PredictorA(頂部預(yù)測(cè)值)。各種其它規(guī)則解決其它特定情形,諸如用于首行4MV宏塊的首行塊、首行1MV宏塊、以及幀內(nèi)編碼預(yù)測(cè)值。圖6A和6B是示出被視作用于混合MV幀中的1MV當(dāng)前宏塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖。相鄰的各個(gè)宏塊可以是1MV或4MV宏塊。圖6A和6B示出假設(shè)鄰居都是4MV的候選運(yùn)動(dòng)向量的位置(即預(yù)測(cè)值A(chǔ)是當(dāng)前宏塊上面的宏塊中塊2的運(yùn)動(dòng)向量,而預(yù)測(cè)值C是當(dāng)前宏塊左側(cè)緊鄰的宏塊中塊1的運(yùn)動(dòng)向量)。如果鄰居的任一個(gè)是1MV宏塊,則圖5A和5B中示出的運(yùn)動(dòng)向量預(yù)測(cè)值被視為整個(gè)宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值。如圖6B所示,如果宏塊是該行中的最后一個(gè)宏塊,則預(yù)測(cè)值B來(lái)自左上方宏塊的塊3而不像其它情形一樣來(lái)自右上方宏塊的塊2。圖7A-10示出被視作用于4MV宏塊中4個(gè)亮度塊的每一個(gè)的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置。圖7A和7B是示出被視作用于位置0上一個(gè)塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖;圖8A和8B是示出被視作用于位置1上一個(gè)塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖;圖9是示出被視作用于位置2上一個(gè)塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖;而圖10是示出被視作用于位置3上一個(gè)塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖。再一次,如果鄰居是1MV宏塊,則該宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值用于該宏塊的各個(gè)塊。對(duì)于宏塊是行中第一宏塊的情形,塊0的預(yù)測(cè)值B與該行中剩余宏塊的塊0進(jìn)行不同的處理(參見(jiàn)圖7A和7B)。在該情形中,預(yù)測(cè)值B從當(dāng)前宏塊上面緊鄰宏塊的塊3中取得,而不像其它情形一樣從當(dāng)前宏塊左上方的宏塊的塊3中取得。類似地,對(duì)于宏塊是行中最后一個(gè)宏塊的情形,對(duì)塊1的預(yù)測(cè)值B進(jìn)行不同的處理(參見(jiàn)圖8A和8B)。在該情形中,預(yù)測(cè)值從當(dāng)前宏塊上面緊鄰宏塊的塊2中取得,而不像其它情形一樣從當(dāng)前宏塊右上方的宏塊的塊2中取得。一般而言,如果該宏塊在第一宏塊列中,則塊0和2的預(yù)測(cè)值C被設(shè)置為等于0。B.先前WMV編碼器和解碼器中隔行掃描P-幀的編碼和解碼先前WMV編碼器和解碼器將4:1:1宏塊格式用于隔行掃描的P-幀,該宏塊格式可包含用半幀模式或幀模式編碼的宏塊,或被跳過(guò)的宏塊,其中決定通常在逐個(gè)宏塊的基礎(chǔ)上作出。兩個(gè)運(yùn)動(dòng)向量關(guān)聯(lián)于每個(gè)半幀編碼的宏塊(每個(gè)半幀一個(gè)運(yùn)動(dòng)向量),而一個(gè)運(yùn)動(dòng)向量關(guān)聯(lián)于每個(gè)幀編碼的宏塊。編碼器聯(lián)合編碼運(yùn)動(dòng)信息,包括水平和垂直運(yùn)動(dòng)向量差值分量,以及可能的其它信令信息。圖11和12A-B示出分別用于先前WMV編碼器和解碼器的隔行掃描P-幀中的幀編碼4:1:1宏塊和半幀編碼4:1:1宏塊的運(yùn)動(dòng)向量預(yù)測(cè)的候選預(yù)測(cè)值的示例。圖11示出用于隔行掃描P-幀的內(nèi)部位置中當(dāng)前幀編碼4:1:1宏塊的候選預(yù)測(cè)值A(chǔ)、B和C(不是宏塊行中第一或最后一個(gè)宏塊、也不是首行)。預(yù)測(cè)值可從不同于那些標(biāo)有A、B和C的不同候選方向中獲得(例如在諸如當(dāng)前宏塊是行中第一宏塊或最后一個(gè)宏塊或在首行中的特定情形,因?yàn)閷?duì)于這些情形得不到某些預(yù)測(cè)值)。對(duì)于當(dāng)前的幀編碼宏塊,候選預(yù)測(cè)值取決于相鄰宏塊是半幀編碼還是幀編碼的來(lái)進(jìn)行不同的計(jì)算。對(duì)于相鄰的幀編碼宏塊,運(yùn)動(dòng)向量簡(jiǎn)便地取作候選預(yù)測(cè)值。對(duì)于相鄰的半幀編碼宏塊,候選運(yùn)動(dòng)向量通過(guò)平均上半幀和下半幀運(yùn)動(dòng)向量來(lái)確定。圖12A-B示出用于半幀內(nèi)部位置中半幀編碼的4:1:1宏塊內(nèi)的當(dāng)前半幀的候選預(yù)測(cè)值A(chǔ)、B和C。在圖12A中,當(dāng)前半幀是下半幀,且相鄰宏塊中的下半幀運(yùn)動(dòng)向量被用作候選預(yù)測(cè)值。在圖12B中,當(dāng)前半幀是上半幀,且相鄰宏塊中的上半幀運(yùn)動(dòng)向量被用作候選預(yù)測(cè)值。因而,對(duì)于當(dāng)前半幀編碼宏塊中的每個(gè)半幀,每個(gè)半幀的候選運(yùn)動(dòng)向量預(yù)測(cè)值的數(shù)量最多為3,其中每個(gè)候選值來(lái)自與當(dāng)前半幀相同的同一半幀類型(例如上半幀或下半幀)。再一次,各種特定情形(未示出)在當(dāng)前宏塊是行中第一宏塊或最后一個(gè)宏塊,或在首行中時(shí)應(yīng)用,因?yàn)閷?duì)于這些情形得不到某些預(yù)測(cè)值。為了從候選預(yù)測(cè)值集中選擇一預(yù)測(cè)值,討論中的先前WMV編碼器和解碼器使用不同的選擇算法,諸如三者中值算法或四者中值算法。三者中值預(yù)測(cè)的過(guò)程在圖13的偽碼1300中說(shuō)明。四者中值預(yù)測(cè)的過(guò)程在圖14的偽碼1400中說(shuō)明。IV.雙向預(yù)測(cè)雙向預(yù)測(cè)幀(或B-幀)使用來(lái)自源視頻的兩個(gè)幀作為參考(或錨)幀,而不是在P-幀中使用的一個(gè)錨。在典型B-幀的錨幀中,一個(gè)錨幀來(lái)自時(shí)間上的過(guò)去而另一個(gè)錨幀來(lái)自時(shí)間上的將來(lái)。參照?qǐng)D15,視頻序列中的B-幀1510具有時(shí)間上在先的參考幀1520和時(shí)間上將來(lái)的參考幀1530。使用B-幀提供了根據(jù)更大的比特率節(jié)約(例如出現(xiàn)某些類型的移動(dòng),諸如閉塞)而有效壓縮的優(yōu)點(diǎn)。具有B-幀的經(jīng)編碼比特流通常比沒(méi)有B-幀的經(jīng)編碼比特流使用較少的比特,同時(shí)提供相似的視覺(jué)質(zhì)量。B-幀還提供在較小設(shè)備空間中使用時(shí)的更多選項(xiàng)和靈活性。例如,解碼器可通過(guò)選擇不解碼或顯示B-幀來(lái)容許空間和時(shí)間限制,因?yàn)锽-幀通常不被用作參考幀。對(duì)視頻序列中使用B-幀來(lái)使速率-失真改進(jìn)的估計(jì)的范圍為從0到50%。V.先前WMV編碼器和解碼器中B-幀的編碼和解碼先前的WMV編碼器和解碼器使用B-幀。盡管正向預(yù)測(cè)幀(例如P-幀)中的宏塊僅具有一個(gè)方向模式的預(yù)測(cè)(正向,從先前的I-或P-幀),但B-幀中的宏塊可使用五種不同預(yù)測(cè)模式來(lái)預(yù)測(cè)正向、反向、直接、插值和幀內(nèi)。編碼器選擇并用信號(hào)表示比特流中不同的預(yù)測(cè)模式。例如,討論中的先前WMV編碼器在幀級(jí)別上發(fā)送經(jīng)壓縮的位平面,表示用于B-幀的每個(gè)宏塊的直接/非直接模式?jīng)Q定,而非直接模式(諸如正向、反向和插值模式)在宏塊級(jí)別中示出。正向模式類似于常規(guī)的P-幀預(yù)測(cè)。在正向模式中,宏塊從時(shí)間上在先的錨中導(dǎo)出。在反向模式中,宏塊從時(shí)間上后續(xù)的錨中導(dǎo)出。以直接或插值模式預(yù)測(cè)的宏塊在預(yù)測(cè)中使用正向和反向錨。直接和插值模式使用將兩個(gè)參考的像素值組合到一個(gè)宏塊像素集中的舍入平均,如以下公式所示平均像素值=(正向插值+反向插值+l)>>1A.共處(co-located)運(yùn)動(dòng)向量的分?jǐn)?shù)編碼(FractionCoding)和縮放在討論中的先前WMV編碼器和解碼器中,編碼器通過(guò)縮放正向錨的共處運(yùn)動(dòng)向量來(lái)隱式地導(dǎo)出直接模式的運(yùn)動(dòng)向量。該縮放運(yùn)算依賴于當(dāng)前B-幀相對(duì)于其錨的時(shí)間位置。為了編碼參考圖片的時(shí)間位置,編碼器使用分?jǐn)?shù)編碼。在分?jǐn)?shù)編碼中,編碼器顯式地將當(dāng)前B-幀的時(shí)間位置編碼為其兩個(gè)錨之間距離的一分?jǐn)?shù)。變量BFRACTION用來(lái)表示不同的各個(gè)分?jǐn)?shù),并在幀級(jí)別上發(fā)送。該分?jǐn)?shù)在0和1之間離散值的有限集上取值。對(duì)于直接模式的運(yùn)動(dòng)向量,編碼器和解碼器使用該分?jǐn)?shù)來(lái)縮放參考幀中的共處運(yùn)動(dòng)向量(MV),從而通過(guò)實(shí)現(xiàn)以下縮放運(yùn)算來(lái)導(dǎo)出當(dāng)前B-幀的隱式的直接模式運(yùn)動(dòng)向量(MVf和MVb):MV產(chǎn)分?jǐn)?shù)承MVMV產(chǎn)(分?jǐn)?shù)-1"MV圖16示出分?jǐn)?shù)編碼如何使編碼器能任意縮放周圍參考幀之間的運(yùn)動(dòng)。為了導(dǎo)出在B-幀1620中編碼的當(dāng)前宏塊的MVf和MVb,編碼器和解碼器使用分?jǐn)?shù)編碼來(lái)縮放將來(lái)參考幀1630中相應(yīng)宏塊的運(yùn)動(dòng)向量(MV)。在圖16所示的示例中,對(duì)于分?jǐn)?shù)p和q,p+q=l。該編碼器和解碼器使用兩個(gè)隱式的運(yùn)動(dòng)向量來(lái)處理在先參考幀1640和將來(lái)參考幀1630中的宏塊,并使用這些的平均來(lái)預(yù)測(cè)當(dāng)前宏塊1610。例如,在圖16中,MFf辦*;)而肘^=(-&*9,-辦*9)。圖17中的表格1700是用于比特流元素BFRACTION的可變長(zhǎng)度代碼(VLC)表格。在表格1700所示示例中,3-比特代碼字是"短"代碼字而7-比特代碼字是"長(zhǎng)"代碼字。該解碼器根據(jù)圖18中所示偽碼1800基于分?jǐn)?shù)的分子和分母來(lái)尋找縮放系數(shù)。一旦縮放系數(shù)已被確定,解碼器就用它來(lái)縮放用于共處宏塊的運(yùn)動(dòng)向量的x-和y-元素。給定后續(xù)的錨幀是P-幀(對(duì)于I-幀,所有的運(yùn)動(dòng)向量被假定為(O,O))且共處宏塊包含運(yùn)動(dòng)向量(MV一X,MV一Y),則解碼器導(dǎo)出兩個(gè)運(yùn)動(dòng)向量,其中一個(gè)(MV_XF,MV_YF)參考正向(在先)錨幀,而另一個(gè)(MV_XB,MV—YB)參考反向(后續(xù))錨幀。解碼器根據(jù)圖19中所示偽碼1900來(lái)執(zhí)行縮放。在偽碼1900的函數(shù)Scale—Direct—MV中,輸入MV一X和MV一Y是來(lái)自將來(lái)參考圖片的共處宏塊的運(yùn)動(dòng)向量的x-和y-元素,而輸出MV—XF、MV—YF、MV—Xb和MV—Ys是用于被解碼宏塊的正向和反向指示運(yùn)動(dòng)向量的x-和y-元素。B.B/I幀討論中的先前WMV編碼器和解碼器還在逐行掃描編碼和解碼中使用幀內(nèi)B-幀("B/I-幀")。B/I幀像I-幀一樣編碼,因?yàn)樗鼈儾灰蕾囉趨⒖紟?。但與I-幀不一樣的是,B/I幀不是關(guān)鍵幀;不允許其它幀將B/I幀用作錨。C.隔行掃描的B-幀討論中的先前WMV編碼器和解碼器還使用隔行掃描的B-幀。隔行掃描B-幀中的宏塊可進(jìn)行半幀編碼或幀編碼。經(jīng)幀編碼的宏塊可具有一個(gè)、兩個(gè)(例如插值模式的正向和反向運(yùn)動(dòng)向量,直接模式的導(dǎo)出正向和反向運(yùn)動(dòng)向量)、或沒(méi)有運(yùn)動(dòng)向量,而半幀編碼的宏塊可取決于預(yù)測(cè)模式具有多達(dá)四個(gè)運(yùn)動(dòng)向量。例如,在直接模式的半幀編碼宏塊中,導(dǎo)出四個(gè)隱式運(yùn)動(dòng)向量:上半幀的正向和反向運(yùn)動(dòng)向量,以及下半幀的正向和反向運(yùn)動(dòng)向量。盡管討論中的先前WMV編碼器和解碼器使用隔行掃描的B-幀,但它們?cè)谌舾芍匾矫媸芟?。例如,每個(gè)宏塊只允許一種宏塊預(yù)測(cè)模式(例如直接模式、正向模式等),不使用4MV編碼(即,對(duì)宏塊中的每個(gè)塊使用一個(gè)運(yùn)動(dòng)向量),且沒(méi)有任何B-幀部分可以是任何幀的運(yùn)動(dòng)補(bǔ)償?shù)膮⒖?。作為另一示例,討論中的先前WMV編碼器和解碼器的隔行掃描編碼和解碼(包括隔行掃描的B-幀)僅使用4:1:1宏塊格式執(zhí)行。VI.用于視頻壓縮和解壓縮的標(biāo)準(zhǔn)除了先前的WMV編碼器和解碼器之外,若干種國(guó)際標(biāo)準(zhǔn)涉及視頻壓縮和解壓縮。這些標(biāo)準(zhǔn)包括來(lái)自國(guó)際電信同盟["ITU"]的運(yùn)動(dòng)圖象專家組["MPEG"]1、2和4標(biāo)準(zhǔn)以及H.261、H.262、H.263和H.264標(biāo)準(zhǔn)。在國(guó)際標(biāo)準(zhǔn)中用來(lái)獲得數(shù)字視頻序列的數(shù)據(jù)壓縮的主要方法之一是減少圖片之間的時(shí)間冗余。這些流行壓縮方案(MPEG-1、MPEG-2、MPEG-4、H.261、H.263等)使用運(yùn)動(dòng)估計(jì)和補(bǔ)償。例如,當(dāng)前幀被分成均勻的正方形區(qū)域(例如各個(gè)塊和/或宏塊)。每個(gè)當(dāng)前區(qū)域的匹配區(qū)域通過(guò)發(fā)送該區(qū)域的運(yùn)動(dòng)向量信息來(lái)指定。該運(yùn)動(dòng)向量指示在先前編碼(和重構(gòu))幀中要用作當(dāng)前區(qū)域的預(yù)測(cè)值的區(qū)域的位置。當(dāng)前區(qū)域和參考幀中區(qū)域之間稱為誤差信號(hào)逐個(gè)像素差值被導(dǎo)出。該誤差信號(hào)通常具有比原始信號(hào)更低的熵。因此,信息可以較低速率進(jìn)行編碼。因?yàn)樵谙惹暗腤MV編碼器和解碼器中,運(yùn)動(dòng)向量值常常相關(guān)于空間上位于四周的運(yùn)動(dòng)向量,所以用來(lái)表示運(yùn)動(dòng)向量信息的數(shù)據(jù)的壓縮可通過(guò)編碼當(dāng)前運(yùn)動(dòng)向量與基于先前編碼的、相鄰運(yùn)動(dòng)向量的預(yù)測(cè)值之間的差異來(lái)獲得。一些國(guó)際標(biāo)準(zhǔn)描述隔行掃描視頻幀的運(yùn)動(dòng)估計(jì)和補(bǔ)償。H.262標(biāo)準(zhǔn)使隔行掃描的視頻幀被編碼為單個(gè)幀或兩個(gè)半幀,其中幀編碼或半幀編碼可自適應(yīng)地在逐幀基礎(chǔ)上選擇。H.262標(biāo)準(zhǔn)描述基于半幀的預(yù)測(cè),這是一種僅使用參考幀的一個(gè)半幀的預(yù)測(cè)模式。11.262標(biāo)準(zhǔn)還描述雙基預(yù)測(cè),這是兩個(gè)正向的基于半幀預(yù)測(cè)值對(duì)隔行掃描P-圖片中的16xl6塊平均的預(yù)測(cè)模式。H.262標(biāo)準(zhǔn)的7.6節(jié)描述"半幀預(yù)測(cè)",包括在兩個(gè)參考半幀中進(jìn)行選擇,以用作隔行掃描視頻幀的當(dāng)前半幀的宏塊的運(yùn)動(dòng)補(bǔ)償。小節(jié)7.6.3描述運(yùn)動(dòng)向量預(yù)測(cè)和重構(gòu),其中給定宏塊的重構(gòu)運(yùn)動(dòng)向量變成經(jīng)后續(xù)編碼/解碼宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值。這種運(yùn)動(dòng)向量預(yù)測(cè)在許多情形中未能充分預(yù)測(cè)用于隔行掃描視頻幀的半幀的宏塊的運(yùn)動(dòng)向量。此外,R262標(biāo)準(zhǔn)的7.6節(jié)描述B-圖片的"半幀預(yù)測(cè)"和"幀預(yù)測(cè)"。在"半幀預(yù)測(cè)"和"幀預(yù)測(cè)"中,對(duì)B-圖片的預(yù)測(cè)使用兩個(gè)最新重構(gòu)的參考幀(略去其它介入的B-圖片)執(zhí)行,這些參考幀可被編碼為兩個(gè)半幀或單個(gè)幀。知道了視頻壓縮和解壓縮對(duì)數(shù)字視頻的關(guān)鍵重要性,視頻壓縮和解壓縮是得以豐富開(kāi)發(fā)的領(lǐng)域就不足為奇了。然而,不管先前的視頻壓縮和解壓縮技術(shù)的優(yōu)點(diǎn)是什么,它們并不具有以下技術(shù)和工具的優(yōu)點(diǎn)。
發(fā)明內(nèi)容總而言之,詳細(xì)描述涉及用于編碼和解碼雙向預(yù)測(cè)的隔行掃描視頻幀(例如隔行掃描的B-半幀、隔行掃描的B-幀)的各種技術(shù)和工具。所述技術(shù)和工具改進(jìn)了速率/失真性能,并便于更好地支持具有較低CPU資源的設(shè)備(例如具有較小形狀系數(shù)的設(shè)備)。所述各實(shí)施例實(shí)現(xiàn)一種或多種用于編碼和/或解碼隔行掃描B-圖片的所述技術(shù)和工具,如下包括但不限于在一方面中,對(duì)于隔行掃描B-幀,編碼器/解碼器在隔行掃描B-幀的半幀編碼宏塊中的半幀之間切換預(yù)測(cè)模式。例如,編碼器/解碼器在半幀編碼宏塊中的上半幀的正向預(yù)測(cè)模式和下半幀的反向模式之間切換。同一半幀編碼宏塊內(nèi)正向和反向預(yù)測(cè)之間的切換使發(fā)現(xiàn)對(duì)隔行掃描B-幀的不同部分的有效預(yù)測(cè)模式更為靈活。在另一方面中,對(duì)于隔行掃描B-幀,編碼器/解碼器通過(guò)為先前解碼的時(shí)間后續(xù)錨的共處宏塊的上半幀和下半幀的每一個(gè)選擇至多一個(gè)代表性運(yùn)動(dòng)向量,計(jì)算當(dāng)前宏塊的直接模式運(yùn)動(dòng)向量。例如,至少部分地基于編碼當(dāng)前隔行掃描B-幀的宏塊的模式(例如1MV模式、2半幀MV模式等)執(zhí)行選擇。在又一方面中,對(duì)于隔行掃描B-半幀或隔行掃描B-幀,編碼器/解碼器使用4MV編碼。例如,4MV被用于單向預(yù)測(cè)模式(正向或反向模式),但不用于其它可用預(yù)測(cè)模式(例如直接、插值)。使用4MV允許對(duì)隔行掃描B-半幀和隔行掃描B-幀進(jìn)行更準(zhǔn)確的運(yùn)動(dòng)補(bǔ)償;將4MV限制在正向和反向模式減少了編碼開(kāi)銷,并避免了關(guān)聯(lián)于組合4MV與諸如直接和插值的模式的解碼復(fù)雜性。在另一方面中,對(duì)于隔行掃描B-半幀或隔行掃描B-幀,正向運(yùn)動(dòng)向量使用來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的先前重構(gòu)(或估計(jì))的正向運(yùn)動(dòng)向量由編碼器/解碼器進(jìn)行預(yù)測(cè),而反向運(yùn)動(dòng)向量使用來(lái)自反向運(yùn)動(dòng)向量緩沖區(qū)的先前重構(gòu)(或估計(jì))的反向運(yùn)動(dòng)向量進(jìn)行預(yù)測(cè)。結(jié)果的運(yùn)動(dòng)向量被添加到相應(yīng)的緩沖區(qū)中。運(yùn)動(dòng)向量緩沖區(qū)中的空穴可用估計(jì)的運(yùn)動(dòng)向量值來(lái)填充。例如,對(duì)于隔行掃描B-幀,當(dāng)正向預(yù)測(cè)用來(lái)預(yù)測(cè)運(yùn)動(dòng)向量且運(yùn)動(dòng)向量被添加到正向運(yùn)動(dòng)向量緩沖區(qū)中時(shí),反向運(yùn)動(dòng)向量緩沖區(qū)中的相應(yīng)位置以僅將反向運(yùn)動(dòng)向量用作預(yù)測(cè)值的預(yù)測(cè)運(yùn)動(dòng)向量來(lái)填充("空穴填充")。作為另一示例,對(duì)于隔行掃描B-半幀,要為空穴填充在不同極性的運(yùn)動(dòng)向量(例如"相同極性"或"相反極性")之間選擇,編碼器/解碼器選擇主極性半幀運(yùn)動(dòng)向量。錨和當(dāng)前幀之間的距離使用各種語(yǔ)法元素計(jì)算,且計(jì)算出的距離被用于縮放參考半幀運(yùn)動(dòng)向量。各個(gè)運(yùn)動(dòng)向量緩沖區(qū)和各個(gè)運(yùn)動(dòng)向量緩沖區(qū)中的空穴填充使得對(duì)隔行掃描B-半幀和隔行掃描B-幀的運(yùn)動(dòng)向量預(yù)測(cè)更為準(zhǔn)確。在又一方面中,對(duì)于隔行掃描的B-半幀,編碼器/解碼器使用"自參考"幀。例如,當(dāng)前幀中的第二個(gè)B-半幀在運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中參考來(lái)自當(dāng)前幀的第一B-半幀。使幀中第一個(gè)B-半幀用作該幀中第二個(gè)B-半幀的參考使得第二個(gè)半幀的預(yù)測(cè)更加準(zhǔn)確,同時(shí)還保留在當(dāng)前幀中具有B-半幀的時(shí)間可縮放性優(yōu)點(diǎn)。在另一方面中,對(duì)于隔行掃描的B-半幀,編碼器發(fā)送指示用于隔行掃描B-半幀中的一個(gè)或多個(gè)宏塊的預(yù)測(cè)模式是正向還是非正向的二進(jìn)制信息。例如,編碼器在經(jīng)壓縮位平面的B-半幀級(jí)別上發(fā)送正向/非正向決定信息。在經(jīng)壓縮位平面的B-半幀級(jí)別上發(fā)送正向/非正向預(yù)測(cè)模式?jīng)Q定信息可減少預(yù)測(cè)模式編碼的編碼開(kāi)銷。解碼器執(zhí)行相應(yīng)的解碼。在又一方面中,對(duì)于隔行掃描的B-半幀,如果下一錨圖片的相應(yīng)半幀中的相應(yīng)宏塊使用四個(gè)運(yùn)動(dòng)向量編碼,則編碼器/解碼器使用利于主極性的邏輯來(lái)選擇直接模式的運(yùn)動(dòng)向量。例如,如果相應(yīng)宏塊的相同極性運(yùn)動(dòng)向量數(shù)量上超過(guò)其相反極性的運(yùn)動(dòng)向量,則編碼器/解碼器計(jì)算相同極性運(yùn)動(dòng)向量的中值,以獲得用于導(dǎo)出直接模式運(yùn)動(dòng)向量的運(yùn)動(dòng)向量。該選擇過(guò)程允許導(dǎo)出準(zhǔn)確的用于具有4MV宏塊錨的隔行掃描B-半幀的直接模式運(yùn)動(dòng)向量。各種技術(shù)和工具可組合或單獨(dú)使用。從以下參照附圖進(jìn)行的不同實(shí)施例的詳細(xì)描述中,本發(fā)明的其它特征和優(yōu)點(diǎn)將變得顯而易見(jiàn)。圖1是示出根據(jù)現(xiàn)有技術(shù)的視頻編碼器的運(yùn)動(dòng)估計(jì)的示圖。圖2是示出根據(jù)現(xiàn)有技術(shù)的視頻編碼器中預(yù)測(cè)殘差的8x8塊的基于塊的壓縮。圖3是示出根據(jù)現(xiàn)有技術(shù)的視頻編碼器中預(yù)測(cè)殘差的8x8塊的基于塊的解壓縮。圖4是示出根據(jù)現(xiàn)有技術(shù)的隔行掃描幀的示圖。圖5A和5B是示出用于根據(jù)現(xiàn)有技術(shù)的逐行掃描P-幀中1MV宏塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的宏塊的位置的示圖。圖6A和6B是示出用于根據(jù)現(xiàn)有技術(shù)的混合1MV/4MV逐行掃描P-幀中的1MV宏塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖。圖7A、7B、8A、8B、9和10是示出用于根據(jù)現(xiàn)有技術(shù)的混合1MV/4MV逐行掃描P-幀中的4MV宏塊中各位置上塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖。圖11是示出用于根據(jù)現(xiàn)有技術(shù)的隔行掃描P-幀中當(dāng)前幀編碼宏塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的示圖。圖12A-12B是示出用于根據(jù)現(xiàn)有技術(shù)的隔行掃描P-幀中當(dāng)前半幀編碼宏塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的示圖。圖13和14是示出根據(jù)現(xiàn)有技術(shù)的用于分別執(zhí)行三者中值和四者中值計(jì)算的偽碼的代碼示圖。圖15是示出根據(jù)現(xiàn)有技術(shù)的具有過(guò)去和將來(lái)參考幀的B-幀的示圖。圖16是示出根據(jù)現(xiàn)有技術(shù)的使用分?jǐn)?shù)編碼的直接模式預(yù)測(cè)的示圖。圖17示出根據(jù)現(xiàn)有技術(shù)的比特流元素BFRACTION的VLC表格。圖18是示出根據(jù)現(xiàn)有技術(shù)的用于尋找縮放直接模式預(yù)測(cè)中共處宏塊的運(yùn)動(dòng)向量的縮放系數(shù)的偽碼的代碼清單。圖19是示出根據(jù)現(xiàn)有技術(shù)的用于根據(jù)縮放系數(shù)縮放共處宏塊中運(yùn)動(dòng)向量的X-和y-元素的偽碼的代碼清單。圖20是適當(dāng)計(jì)算環(huán)境的框圖,結(jié)合該環(huán)境可實(shí)現(xiàn)若干所述實(shí)施例。圖21是通用視頻編碼器系統(tǒng)的框圖,結(jié)合該系統(tǒng)可實(shí)現(xiàn)若干所述實(shí)施例。圖22是通用視頻解碼器系統(tǒng)的框圖,結(jié)合該系統(tǒng)可實(shí)現(xiàn)若干所述實(shí)施例。圖23是在若干所述實(shí)施例中使用的宏塊格式的示圖。圖24A是一部分隔行掃描視頻幀的示圖,其中示出上半幀和下半幀的交替行。圖24B是為編碼/解碼組織成幀的隔行掃描視頻幀的示圖,而圖24C是為編碼/解碼組織成半幀的隔行掃描視頻幀的示圖。圖25和26是示出具有兩個(gè)參考半幀的隔行掃描P-半幀的示圖。圖27和28是示出使用所允許的最新參考半幀的隔行掃描P-半幀的示圖。圖29和30是示出使用所允許的第二最新參考半幀的隔行掃描P-半幀的示圖。圖31是示出運(yùn)動(dòng)向量的各垂直分量與當(dāng)前和參考半幀極性的不同組合的相應(yīng)空間位置之間的關(guān)系的示圖。圖32是示出當(dāng)前宏塊的兩組三個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值的示圖。圖33A-33F是示出用于計(jì)算兩個(gè)參考半幀的隔行掃描P-或B-半幀中的運(yùn)動(dòng)向量預(yù)測(cè)值的偽碼的代碼清單。圖34A-34B是示出用于縮放來(lái)自一個(gè)半幀的預(yù)測(cè)值以導(dǎo)出來(lái)自另一個(gè)半幀的預(yù)測(cè)值的偽碼的代碼清單。圖35和36是示出關(guān)聯(lián)于不同參考幀距離的縮放運(yùn)算值的表格。圖37是示出隔行掃描P-幀的2半幀MV宏塊中亮度塊的運(yùn)動(dòng)向量和色度塊的導(dǎo)出運(yùn)動(dòng)向量的示圖。圖38是示出隔行掃描P-幀的4幀MV宏塊中4個(gè)亮度塊的每一個(gè)的不同運(yùn)動(dòng)向量和4個(gè)色度子塊的每一個(gè)的導(dǎo)出運(yùn)動(dòng)向量的示圖。圖39是示出隔行掃描P-幀的4半幀MV宏塊中亮度塊的運(yùn)動(dòng)向量和色度塊的導(dǎo)出運(yùn)動(dòng)向量的示圖。圖40A-40B是示出隔行掃描P-幀的當(dāng)前宏塊的候選預(yù)測(cè)值的示圖。圖41是示出使用不同預(yù)測(cè)模式預(yù)測(cè)隔行掃描B-幀的半幀編碼宏塊中的各個(gè)半幀的運(yùn)動(dòng)向量的技術(shù)的流程圖。圖42是示出計(jì)算隔行掃描B-幀的宏塊的直接模式運(yùn)動(dòng)向量的技術(shù)的流程43是先前已解碼的時(shí)間上后續(xù)錨幀的共處宏塊的各個(gè)塊的緩存運(yùn)動(dòng)向量的示圖,這些緩存運(yùn)動(dòng)向量用于計(jì)算隔行掃描B-幀的宏塊的直接模式運(yùn)動(dòng)向量。圖44是示出使用正向和/或反向運(yùn)動(dòng)向量緩沖區(qū)預(yù)測(cè)隔行掃描B-幀的當(dāng)前宏塊的運(yùn)動(dòng)向量的技術(shù)的流程圖。圖45是示出用于預(yù)測(cè)宏塊運(yùn)動(dòng)向量的正向運(yùn)動(dòng)向量緩沖區(qū)和反向運(yùn)動(dòng)向量緩沖區(qū)中的運(yùn)動(dòng)向量的示圖。圖46是示出正向運(yùn)動(dòng)向量緩沖區(qū)和反向運(yùn)動(dòng)向量緩沖區(qū)中重構(gòu)宏塊的上半幀和下半幀運(yùn)動(dòng)向量的示圖。圖47是示出描述用于隔行掃描B-半幀運(yùn)動(dòng)向量預(yù)測(cè)中的實(shí)值緩存和空穴填充的極性選擇過(guò)程的偽碼的代碼清單。圖48A-48B是示出縮放來(lái)自一個(gè)半幀的預(yù)測(cè)值以導(dǎo)出來(lái)自另一半幀的預(yù)測(cè)值用于經(jīng)反向預(yù)測(cè)的隔行掃描B-半幀的偽碼的代碼清單。圖49是示出關(guān)聯(lián)于第一隔行掃描B-半幀的不同參考幀距離的縮放運(yùn)算值的表格。圖50A和50B是示出隔行掃描B-半幀的參考半幀的示圖。圖51是示出用于在具有一個(gè)或多個(gè)位平面編碼模式的視頻編碼器中編碼隔行掃描B-半幀的宏塊的正向/非正向預(yù)測(cè)模式?jīng)Q定信息的技術(shù)的流程圖。圖52是示出用于解碼隔行掃描B-半幀的宏塊的正向/非正向預(yù)測(cè)模式?jīng)Q定信息的技術(shù)的流程圖,其中該決定信息由具有一個(gè)或多個(gè)位平面編碼模式的視頻編碼器編碼。圖53是顯示描述對(duì)用作隔行掃描B-半幀中直接模式運(yùn)動(dòng)向量的基礎(chǔ)的運(yùn)動(dòng)向量的選擇過(guò)程的偽碼的代碼清單。圖54是示出用于組合實(shí)現(xiàn)中隔行掃描B-半幀或BI-半幀的幀-層比特流語(yǔ)法的示圖。圖55是示出用于組合實(shí)現(xiàn)中隔行掃描B-半幀的半幀-層比特流語(yǔ)法的示圖。圖56是示出用于組合實(shí)現(xiàn)中隔行掃描BI-半幀的半幀-層比特流語(yǔ)法的示圖。圖57是用于組合實(shí)現(xiàn)中隔行掃描B-半幀的宏塊的宏塊-層比特流語(yǔ)法的示圖。圖58是用于組合實(shí)現(xiàn)中隔行掃描BI-半幀的宏塊的宏塊-層比特流語(yǔ)法的示圖。圖59是用于組合實(shí)現(xiàn)中隔行掃描B-幀的幀-層比特流語(yǔ)法的示圖。圖60是用于組合實(shí)現(xiàn)中隔行掃描B-幀的宏塊的宏塊-層比特流語(yǔ)法的示圖。圖61A-61B是示出用于組合實(shí)現(xiàn)中解碼運(yùn)動(dòng)向量差值和主/非主預(yù)測(cè)值信息的偽碼的代碼清單。圖62A-62F是示出用于組合實(shí)現(xiàn)中計(jì)算雙參考隔行掃描P-半幀中的運(yùn)動(dòng)向量預(yù)測(cè)值的偽碼的代碼清單。圖63是示出用于組合實(shí)現(xiàn)中確定隔行掃描B-半幀的參考半幀的偽碼的代碼清單。圖64是示出用于組合實(shí)現(xiàn)中收集隔行掃描P-幀的1MV宏塊的候選運(yùn)動(dòng)向量的偽碼的代碼清單。圖65、66、67和68是示出用于組合實(shí)現(xiàn)中收集隔行掃描P-幀的4幀MV宏塊的候選運(yùn)動(dòng)向量的偽碼的代碼清單。圖69和70是示出用于組合實(shí)現(xiàn)中收集隔行掃描P-幀的2半幀MV宏塊的候選運(yùn)動(dòng)向量的偽碼的代碼清單。圖71、72、73和74是示出用于組合實(shí)現(xiàn)中收集隔行掃描P-幀的4半幀MV宏塊的候選運(yùn)動(dòng)向量的偽碼的代碼清單。圖75是示出用于組合實(shí)現(xiàn)中計(jì)算隔行掃描P-幀的幀運(yùn)動(dòng)向量的運(yùn)動(dòng)向量預(yù)測(cè)值的偽碼的代碼清單。圖76是示出用于組合實(shí)現(xiàn)中計(jì)算隔行掃描P-幀的半幀運(yùn)動(dòng)向量的運(yùn)動(dòng)向量預(yù)測(cè)值的偽碼的代碼清單。圖77A和77B是示出用于組合實(shí)現(xiàn)中解碼隔行掃描P-幀和B-幀的運(yùn)動(dòng)向量差值的偽碼的代碼清單。圖78是示出用于組合實(shí)現(xiàn)中導(dǎo)出隔行掃描P-幀的色度運(yùn)動(dòng)向量的偽碼的代碼清單。圖79A-79C是示出用于隔行掃描B-半幀的宏塊的正向/非正向預(yù)測(cè)模式?jīng)Q定信息的Norm-6和Diff-6位平面編碼模式的平鋪顯示的示圖。具體實(shí)施例方式本申請(qǐng)涉及用于隔行掃描視頻的有效壓縮和解壓縮的技術(shù)和工具。在各個(gè)所述實(shí)施例中,視頻編碼器和解碼器結(jié)合用于編碼和解碼雙向預(yù)測(cè)的隔行掃描視頻幀的技術(shù),和以包括各種層或級(jí)別(例如序列級(jí)別、幀級(jí)別、半幀級(jí)別、宏塊級(jí)別、和/或塊級(jí)別)的比特流格式或語(yǔ)法使用的相應(yīng)信號(hào)表示技術(shù)。對(duì)所述實(shí)現(xiàn)的各種可選方案是可能的。例如,參照流程圖描述的方法可通過(guò)改變各流程圖中所示的各階段的順序、或重復(fù)或略去某些階段等來(lái)變更。作為另一示例,盡管某些實(shí)現(xiàn)參照特定宏塊格式進(jìn)行了描述,但是也可使用其它格式。此外,參照雙向預(yù)測(cè)描述的技術(shù)和工具也可應(yīng)用于其它類型的預(yù)測(cè)。各種技術(shù)和工具可組合或獨(dú)立地使用。不同實(shí)施例實(shí)現(xiàn)所述技術(shù)和工具的一種或多種。在此所述的一些技術(shù)和工具可用于視頻編碼器或解碼器,或者在一些其它系統(tǒng)中并非具體受限于視頻編碼或解碼。I.計(jì)算環(huán)境圖20示出可實(shí)現(xiàn)若干所述實(shí)施例的適當(dāng)計(jì)算環(huán)境2000的通用示例。計(jì)算環(huán)境2000并非旨在提出對(duì)本發(fā)明使用范圍或功能的任何限制,因?yàn)楸景l(fā)明的技術(shù)和工具可在不同的通用或?qū)S糜?jì)算環(huán)境中實(shí)現(xiàn)。參照?qǐng)D20,計(jì)算環(huán)境2000包括至少一個(gè)處理單元2010和存儲(chǔ)2020。在圖20中,該最基本配置2030包括在虛線內(nèi)。處理單元2010執(zhí)行計(jì)算機(jī)可執(zhí)行指令,且可以是實(shí)際或虛擬處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令以增加處理能力。存儲(chǔ)器2020可以是易失性存儲(chǔ)器(例如寄存器、高速緩存、RAM)、非易失性存儲(chǔ)器(例如ROM、EEPROM、閃存等)或兩者的組合。存儲(chǔ)器2020存儲(chǔ)實(shí)現(xiàn)進(jìn)行隔行掃描視頻幀的雙向預(yù)測(cè)的視頻編碼器或解碼器的軟件2080。計(jì)算環(huán)境可具有附加特征。例如,計(jì)算環(huán)境2000包括存儲(chǔ)2040、一個(gè)或多個(gè)輸入設(shè)備2050、一個(gè)或多個(gè)輸出設(shè)備2060、以及一個(gè)或多個(gè)通信連接2070。諸如總線、控制器或網(wǎng)絡(luò)的互連機(jī)制(未示出)使計(jì)算環(huán)境2000的各個(gè)組件互相連接。通常,操作系統(tǒng)軟件(未示出)向在計(jì)算環(huán)境2000中執(zhí)行的其它軟件提供一個(gè)操作環(huán)境,并協(xié)調(diào)計(jì)算環(huán)境2000的各個(gè)組件的動(dòng)作。存儲(chǔ)2040可以是可移動(dòng)或不可移動(dòng)的,并包括磁盤、磁帶或盒式磁帶、CD-ROM、CD-RW、DVD、或任何其它可用于存儲(chǔ)信息并可在計(jì)算環(huán)境2000內(nèi)訪問(wèn)的媒體。存儲(chǔ)2040為軟件2080存儲(chǔ)實(shí)現(xiàn)視頻編碼器或解碼器的指令。輸入設(shè)備2050可以是諸如鍵盤、鼠標(biāo)、電子筆、或跟蹤球、語(yǔ)音輸入設(shè)備、掃描設(shè)備、或向計(jì)算環(huán)境2000提供輸入的另一設(shè)備。對(duì)于音頻或視頻編碼,輸入設(shè)備2050可以是接受模擬或數(shù)字形式的音頻或視頻輸入的聲卡、視頻卡、TV調(diào)諧器卡或相似設(shè)備、或?qū)⒁纛l或視頻樣本讀入計(jì)算環(huán)境2000中的CD-ROM或CD-RW。輸出設(shè)備2060可以是顯示器、打印機(jī)、揚(yáng)聲器、CD刻錄機(jī)、或從計(jì)算環(huán)境2000提供輸出的另一設(shè)備。通信連接2070允許經(jīng)通信媒體與另一計(jì)算實(shí)體的通信。通信媒體在已調(diào)制數(shù)據(jù)信號(hào)中傳送諸如計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出、或其它數(shù)據(jù)等信息。已調(diào)制數(shù)據(jù)信號(hào)是使其特征的一個(gè)或多個(gè)以在信號(hào)中編碼信息的方式進(jìn)行設(shè)置或改變的信號(hào)。作為示例且非限制,通信媒體包括用電子、光學(xué)、RF、紅外線、聲學(xué)或其它載體實(shí)現(xiàn)的有線或無(wú)線技術(shù)。這些技術(shù)和工具可在計(jì)算機(jī)可讀媒體的一般上下文中描述。計(jì)算機(jī)可讀媒體是可在計(jì)算環(huán)境內(nèi)訪問(wèn)的任何可用媒體。作為示例,但非限制,對(duì)于計(jì)算環(huán)境2000,計(jì)算機(jī)可讀媒體包括存儲(chǔ)器2020、存儲(chǔ)2040、通信媒體、以及以上任一個(gè)的組合。這些技術(shù)和工具可在計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,諸如在目標(biāo)實(shí)際或虛擬處理器上的計(jì)算環(huán)境中執(zhí)行的程序模塊所包括的計(jì)算機(jī)可執(zhí)行指令。通常,程序模塊包括執(zhí)行具體任務(wù)或?qū)崿F(xiàn)具體抽象數(shù)據(jù)類型的例程、程序、庫(kù)、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。程序模塊的功能可在各個(gè)實(shí)施例中按需在程序模塊之間組合或劃分。程序模塊的計(jì)算機(jī)可執(zhí)行指令可在本地或分布式的計(jì)算環(huán)境內(nèi)執(zhí)行。為說(shuō)明起見(jiàn),詳細(xì)描述使用像"估計(jì)"、"補(bǔ)償"、"預(yù)測(cè)"和"應(yīng)用"的術(shù)語(yǔ)來(lái)描述計(jì)算環(huán)境中的計(jì)算機(jī)操作。這些術(shù)語(yǔ)是由計(jì)算機(jī)執(zhí)行的操作的高層抽象,且不應(yīng)與人執(zhí)行的動(dòng)作相混淆。對(duì)應(yīng)于這些術(shù)語(yǔ)的實(shí)際計(jì)算機(jī)操作取決于實(shí)現(xiàn)而變化。II.通用視頻編碼器和解碼器圖21是通用視頻編碼器2100的框圖,結(jié)合該系統(tǒng)可實(shí)現(xiàn)若干所述實(shí)施例。圖22是通用視頻解碼器2200的框圖,結(jié)合該系統(tǒng)可實(shí)現(xiàn)若干所述實(shí)施例。編碼器2100和解碼器2200內(nèi)各模塊之間的所示關(guān)系表示編碼器和解碼器中的一般信息流;其它關(guān)系為簡(jiǎn)化起見(jiàn)并未示出。特別地,圖21和22通常并未示出表示用于視頻序列、圖片、宏塊、塊等的編碼器設(shè)置、模式、表格等的輔助信息。這些輔助信息通常在輔助信息的熵編碼之后在輸出比特流中發(fā)送。輸出比特流的格式可以是WindowsMediaVideo版本9格式或其它格式。編碼器2100和解碼器2200處理視頻圖片,它們可以是視頻幀、視頻半幀、或幀和半幀的組合。圖片和宏塊級(jí)別上的比特流語(yǔ)法和語(yǔ)義可依賴于是使用幀還是半幀。也可以有對(duì)宏塊組織和整體定時(shí)的改變。編碼器2100和解碼器2200是基于塊的,并對(duì)幀使用4:2:0的宏塊格式,其中每個(gè)宏塊包括4個(gè)8x8亮度塊(常被視為一個(gè)16x16宏塊)和2個(gè)8x8色度塊。對(duì)于半幀,可使用相同或不同的宏塊組織和格式。這些8x8塊可在不同階段上作進(jìn)一步的細(xì)分,例如在頻率變換和熵編碼階段。示例視頻幀組織如下進(jìn)行更詳細(xì)的描述。或者,編碼器2100和解碼器2200是基于對(duì)象的、使用不同的宏塊或塊格式、或?qū)Σ煌?x8塊和16x16宏塊的大小或配置的像素集執(zhí)行操作。取決于所需的壓縮實(shí)現(xiàn)和類型,編碼器或解碼器的模塊可添加、略去、劃分成多個(gè)模塊、與其它模塊相組合、和/或用類似模塊替換。在替換實(shí)施例中,具有不同模塊和/或模塊其它配置的編碼器或解碼器執(zhí)行一種或多種所述技術(shù)。A.視頻幀組織在一些實(shí)現(xiàn)中,編碼器2100和解碼器2200處理如下組織的視頻幀。幀包含視頻信號(hào)的各行空間信息。對(duì)于逐行掃描視頻,這些行包含從一時(shí)刻開(kāi)始并繼續(xù)后續(xù)行直到幀的底部的樣本。逐行掃描視頻幀被分成諸如圖23中所示宏塊2300的宏塊。宏塊2300包括4個(gè)8x8亮度塊(Yl到Y(jié)4)和與4個(gè)亮度塊共處的2個(gè)8x8色度塊,這些色度塊符合常規(guī)的4:2:0宏塊格式但在水平和垂直方向分辨率減半。這些8x8塊可在不同階段上作進(jìn)一步的細(xì)分,例如在頻率變換(例如8x4、4x8或4x4DCT)和熵編碼階段。逐行掃描I-幀是幀內(nèi)編碼的逐行掃描視頻幀。逐行掃描P-幀是使用正向預(yù)測(cè)編碼的逐行掃描視頻幀,而逐行掃描B-幀是使用雙向預(yù)測(cè)編碼的逐行掃描視頻幀。逐行掃描P-和B-幀可包括幀內(nèi)編碼宏塊以及不同類型的經(jīng)預(yù)測(cè)宏塊。隔行掃描視頻幀由一個(gè)幀的兩次掃描組成一一次包括該幀的偶數(shù)行(上半幀)而另一次包括該幀的奇數(shù)行(下半幀)。這兩個(gè)半幀可表示兩個(gè)不同時(shí)段,或者它們可來(lái)自同一時(shí)段。圖24A示出隔行掃描視頻幀2400的一部分,包括隔行掃描視頻幀2400中左上方的上半幀和下半幀的交替行。圖24B示出為編碼/解碼而組織為幀2430的圖24A的隔行掃描視頻幀2400。隔行掃描視頻幀2400已被分成諸如宏塊2431和2432的宏塊,它們使用如圖23所示的4:2:0格式。在亮度平面中,每個(gè)宏塊2431、2432包括來(lái)自上半幀的8行、與之交替的來(lái)自下半幀的8行(一共為16行),且每一行為16像素長(zhǎng)。(宏塊2431、2432內(nèi)亮度塊和色度塊的實(shí)際組織和放置并未示出,且實(shí)際上對(duì)于不同的編碼決定可變化。)在給定宏塊內(nèi),上半幀信息和下半幀信息在各個(gè)階段的任一個(gè)上可聯(lián)合或獨(dú)立地編碼。隔行掃描的I-幀是隔行掃描視頻幀的兩個(gè)幀內(nèi)編碼半幀,其中宏塊包括兩個(gè)半幀的信息。隔行掃描P-幀是使用正向預(yù)測(cè)編碼的隔行掃描視頻幀的兩個(gè)半幀,而隔行掃描B-幀是使用雙向預(yù)測(cè)編碼的隔行掃描視頻幀的兩個(gè)半幀,其中宏塊包括兩個(gè)半幀的信息。隔行掃描P-和B-幀可包括幀內(nèi)編碼宏塊以及不同類型的預(yù)測(cè)宏塊。圖24C示出為編碼/解碼而組織為半幀2460的圖24A的隔行掃描視頻幀2400。隔行掃描視頻幀2400的兩個(gè)半幀的每一個(gè)被分成各個(gè)宏塊。上半幀被分成諸如宏塊2461的宏塊,而下半幀被分成諸如宏塊2462的宏塊。(再一次,各宏塊使用如圖23所示的4:2:0格式,且各宏塊內(nèi)亮度塊和色度塊的組織和放置并未示出。)在亮度平面中,宏塊2461包括來(lái)自上半幀的16行、宏塊2462包括來(lái)自下半幀的16行,且每一行為16像素長(zhǎng)。隔行掃描的I-半幀是隔行掃描視頻幀的單個(gè)獨(dú)立表示半幀。隔行掃描P-半幀是使用正向預(yù)測(cè)編碼的隔行掃描視頻幀的單個(gè)獨(dú)立表示半幀,而隔行掃描B-半幀是使用雙向預(yù)測(cè)編碼的隔行掃描視頻幀的單個(gè)獨(dú)立表示半幀。隔行掃描P-和B-半幀可包括幀內(nèi)編碼宏塊以及不同類型的預(yù)測(cè)宏塊。術(shù)語(yǔ)圖片通常指源、經(jīng)編碼或重構(gòu)的圖像數(shù)據(jù)。對(duì)于逐行掃描視頻,圖片是逐行掃描視頻幀。對(duì)于隔行掃描視頻,取決于上下文,圖片可指隔行掃描視頻幀、幀的上半幀、或幀的下半幀。或者,編碼器2100或解碼器2200是基于對(duì)象的、使用不同的宏塊或塊格式、或?qū)Σ煌?x8塊和16x16宏塊的大小或配置的像素集執(zhí)行操作。B.視頻編碼器圖21是通用視頻編碼器系統(tǒng)2100的框圖。編碼器系統(tǒng)2100接收包括當(dāng)前圖片2105的一個(gè)視頻圖片序列(例如,逐行掃描視頻幀、隔行掃描視頻幀、或隔行掃描視頻幀的半幀),并產(chǎn)生壓縮后視頻信息2195作為輸出。視頻編碼器的特定實(shí)施例通常使用通用編碼器2100的變體或補(bǔ)充版本。編碼器系統(tǒng)2100壓縮預(yù)測(cè)圖片和關(guān)鍵圖片。為演示起見(jiàn),圖21示出關(guān)鍵圖片通過(guò)編碼器系統(tǒng)2100的路徑,以及預(yù)測(cè)圖片的路徑。編碼器系統(tǒng)2100的許多組件用于壓縮關(guān)鍵圖片和預(yù)測(cè)圖片。由那些組件執(zhí)行的確切操作可取決于所壓縮的信息類型而變化。預(yù)測(cè)圖片(例如逐行掃描p-幀或b-幀、隔行掃描p-半幀或b-半幀、或隔行掃描p-幀或b—幀)根據(jù)來(lái)自一個(gè)或多個(gè)其它圖片(通常稱為參考圖片或錨)的預(yù)測(cè)(或差值)來(lái)表示。預(yù)測(cè)殘差是所預(yù)測(cè)圖片和原始圖片之間的差值。相反,關(guān)鍵圖片(例如逐行掃描I-幀、隔行掃描I-半幀、或隔行掃描I-幀)不參照其它圖片進(jìn)行壓縮。如果當(dāng)前圖片2105是正向預(yù)測(cè)圖片,則運(yùn)動(dòng)估計(jì)器2110參照一個(gè)或多個(gè)參考圖片估計(jì)當(dāng)前圖片2105的宏塊或其它像素集的運(yùn)動(dòng),其中參考圖片是例如緩存在圖片存儲(chǔ)2120中的重構(gòu)的先前圖片2125。如果當(dāng)前圖片2105是雙向預(yù)測(cè)圖片,則運(yùn)動(dòng)估計(jì)器2110參照(例如隔行掃描B-半幀的)多達(dá)4個(gè)重構(gòu)參考圖片來(lái)估計(jì)當(dāng)前圖片2105中的運(yùn)動(dòng)。通常,運(yùn)動(dòng)估計(jì)器參照一個(gè)或多個(gè)時(shí)間上在先的參考圖片和一個(gè)或多個(gè)時(shí)間上將來(lái)的參考圖片來(lái)估計(jì)B-圖片中的運(yùn)動(dòng)。因此,編碼器系統(tǒng)2100可將分別的存儲(chǔ)2120和2122用于多個(gè)參考圖片。對(duì)于有關(guān)逐行掃描B-幀的更多信息,參見(jiàn)序列號(hào)為10/622,378題為"AdvancedBi-DirectionalPredictiveCodingofVideoFrames"(視頻幀的高級(jí)雙向預(yù)測(cè)編碼)并于2003年7月18日提交的美國(guó)專利申請(qǐng)。運(yùn)動(dòng)估計(jì)器2110可按像素、1/2像素、1/4像素或其它增量進(jìn)行估計(jì),并可在逐個(gè)圖片基礎(chǔ)或其它基礎(chǔ)上切換運(yùn)動(dòng)估計(jì)的分辨率。運(yùn)動(dòng)估計(jì)器2110(和補(bǔ)償器2130)還可在每幀或其它基礎(chǔ)上在參考圖片像素插值類型之間(例如雙三次和雙線性)切換。運(yùn)動(dòng)估計(jì)的分辨率可水平地或垂直地相同或不同。運(yùn)動(dòng)估計(jì)器2110輸出諸如差值運(yùn)動(dòng)向量信息的輔助信息運(yùn)動(dòng)信息2115。編碼器2100通過(guò)例如計(jì)算運(yùn)動(dòng)向量的一個(gè)或多個(gè)預(yù)測(cè)值、計(jì)算運(yùn)動(dòng)向量和預(yù)測(cè)值之間的差值、并熵編碼這些差值,來(lái)編碼運(yùn)動(dòng)信息。為了重構(gòu)運(yùn)動(dòng)向量,運(yùn)動(dòng)補(bǔ)償器2130組合預(yù)測(cè)值與差值運(yùn)動(dòng)向量信息。用于計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值、計(jì)算差值運(yùn)動(dòng)向量、并重構(gòu)隔行掃描B-半幀和隔行掃描B-幀的運(yùn)動(dòng)向量的各種技術(shù)如下所述。運(yùn)動(dòng)補(bǔ)償器2130將重構(gòu)運(yùn)動(dòng)向量應(yīng)用于重構(gòu)圖片2125,以形成經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前圖片2135。然而,預(yù)測(cè)很少是完美的,且經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前圖片2135和原始的當(dāng)前圖片2105之間的差值為預(yù)測(cè)殘差2145。在圖片的隨后重構(gòu)中,預(yù)測(cè)殘差2145被添加到經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前圖片2135中,以獲得更接近于原始當(dāng)前圖片2105的重構(gòu)圖片。然而,在有損壓縮中,仍有一些信息從原始當(dāng)前圖片2105中丟失?;蛘撸\(yùn)動(dòng)估計(jì)器和運(yùn)動(dòng)補(bǔ)償器應(yīng)用另一類型的運(yùn)動(dòng)估計(jì)/補(bǔ)償。頻率變換器2160將空間域視頻信息轉(zhuǎn)換成頻域(即頻譜)數(shù)據(jù)。對(duì)于基于塊的視頻圖片,頻率變換器2160將DCT、DCT的變體、或其它塊變換應(yīng)用于像素?cái)?shù)據(jù)或預(yù)測(cè)殘差數(shù)據(jù)的塊,從而產(chǎn)生頻率變換系數(shù)的塊?;蛘?,頻率變換器2160應(yīng)用諸如傅立葉變換的另一種常規(guī)頻率變換、或使用小波或子頻帶分析。頻率變換器2160可應(yīng)用8x8、8x4、4x8、4x4或其它大小的頻率變換。然后量化器2170量化頻譜數(shù)據(jù)系數(shù)的各個(gè)塊。該量化器將均勻的標(biāo)量量化應(yīng)用于頻譜數(shù)據(jù),其中步長(zhǎng)在逐個(gè)圖片或其它基礎(chǔ)上變化?;蛘撸炕鲗⒘硪环N類型的量化應(yīng)用于頻譜數(shù)據(jù)系數(shù),例如不均勻的向量或非自適應(yīng)量化,或者直接在不使用頻率變換的編碼器系統(tǒng)中量化空間域數(shù)據(jù)。除了自適應(yīng)量化之外,編碼器2100可將幀丟棄、自適應(yīng)濾波或其它技術(shù)用于速率控制。編碼器2100可將特定的信號(hào)表示用于被跳過(guò)的宏塊,該宏塊是沒(méi)有特定類型信息的宏塊(例如沒(méi)有該宏塊的運(yùn)動(dòng)信息和沒(méi)有殘差信息)。當(dāng)需要重構(gòu)后的當(dāng)前幀用于隨后的運(yùn)動(dòng)估計(jì)/補(bǔ)償時(shí),逆量化器2176對(duì)量化后的頻譜數(shù)據(jù)系數(shù)執(zhí)行逆量化。然后反向頻率變換器2166執(zhí)行頻率變換器2160的反向操作,產(chǎn)生重構(gòu)后預(yù)測(cè)殘差(用于預(yù)測(cè)圖片)或重構(gòu)后的關(guān)鍵圖片。如果當(dāng)前圖片2105是關(guān)鍵圖片,則重構(gòu)后的關(guān)鍵圖片被取作重構(gòu)后的當(dāng)前圖片(未示出)。如果當(dāng)前圖片2105是預(yù)測(cè)圖片,則重構(gòu)后的預(yù)測(cè)殘差被添加到經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前圖片2135中以形成重構(gòu)后的當(dāng)前圖片。一個(gè)或多個(gè)圖片存儲(chǔ)2120、2122緩存重構(gòu)后的當(dāng)前圖片,以用于運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)。在某些實(shí)施例中,編碼器將解塊濾波器應(yīng)用于重構(gòu)后的幀以自適應(yīng)地使圖片中的間斷點(diǎn)和其它人工效應(yīng)平滑。熵編碼器2180壓縮量化器2170的輸出以及某些輔助信息(例如運(yùn)動(dòng)信息2115、量化步長(zhǎng))。典型的熵編碼技術(shù)包括算術(shù)編碼、差分編碼、哈夫曼編碼、運(yùn)行長(zhǎng)度編碼、LZ編碼、字典編碼以及以上的組合。熵編碼器2180通常使用用于不同類型信息(例如DC系數(shù)、AC系數(shù)、不同類型的輔助信息)的不同編碼技術(shù),并可從特定編碼技術(shù)內(nèi)的多個(gè)代碼表中選擇。熵編碼器2180向多路復(fù)用器["MUX"]2190提供壓縮后的視頻信息2195。MUX2190可包括緩沖區(qū),且緩沖區(qū)級(jí)別指示符被反饋給比特率自適應(yīng)模塊作速率控制。在MUX2190之前或之后,壓縮后的視頻信息2195可被信道編碼用于在網(wǎng)絡(luò)上傳輸。信道編碼可將差錯(cuò)檢測(cè)和糾正數(shù)據(jù)應(yīng)用于壓縮后的視頻信息2195。C視頻解碼器圖22是一般視頻解碼器系統(tǒng)2200的框圖。解碼器系統(tǒng)2200接收用于視頻圖片的經(jīng)壓縮序列的信息2295,并產(chǎn)生包括重構(gòu)圖片2205的輸出(例如,逐行掃描視頻幀、隔行掃描視頻幀、或隔行掃描視頻幀的半幀)。視頻解碼器的特定實(shí)施例通常使用通用解碼器2200的變體或補(bǔ)充版本。解碼器系統(tǒng)2200解壓縮預(yù)測(cè)圖片和關(guān)鍵圖片。為演示起見(jiàn),圖22示出關(guān)鍵圖片通過(guò)解碼器系統(tǒng)2200的路徑,以及正向預(yù)測(cè)圖片的路徑。解碼器系統(tǒng)2200的許多組件用于解壓縮關(guān)鍵圖片和預(yù)測(cè)圖片。由那些組件執(zhí)行的確切操作取決于所解壓縮的信息類型而變化。DEMUX(多路分解器)2290接收壓縮后視頻序列的信息2295,并使接收到的信息可用于熵解碼器2280。DEMUX2290可包括一抖動(dòng)緩沖區(qū)和其它緩沖區(qū)。在DEMUX2290之前或之后,經(jīng)壓縮的視頻信息可進(jìn)行信道解碼和用于差錯(cuò)檢測(cè)和糾正處理。熵解碼器2280通常應(yīng)用編碼器中執(zhí)行的熵編碼的逆,對(duì)熵編碼后的量化數(shù)據(jù)以及熵編碼后的輔助信息(例如運(yùn)動(dòng)信息2215、量化步長(zhǎng))進(jìn)行熵解碼。熵解碼技術(shù)包括算術(shù)解碼、差分解碼、哈夫曼解碼、運(yùn)行長(zhǎng)度解碼、LZ解碼、字典解碼以及以上的組合。熵解碼器2280經(jīng)常使用用于不同類型信息(例如DC系數(shù)、AC系數(shù)、不同類型的輔助信息)的不同解碼技術(shù),并可從特定解碼技術(shù)內(nèi)的多個(gè)代碼表中選擇。解碼器2200通過(guò)例如計(jì)算運(yùn)動(dòng)向量的一個(gè)或多個(gè)預(yù)測(cè)值、熵解碼差值運(yùn)動(dòng)向量、并組合解碼后的差值運(yùn)動(dòng)向量和用于重構(gòu)運(yùn)動(dòng)向量的預(yù)測(cè)值,來(lái)解碼運(yùn)動(dòng)2215。用于計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值、計(jì)算差值運(yùn)動(dòng)向量、并重構(gòu)隔行掃描B-半幀和隔行掃描B-幀的各種技術(shù)如下所述。運(yùn)動(dòng)補(bǔ)償器2230將運(yùn)動(dòng)信息2215應(yīng)用于一個(gè)或多個(gè)參考圖片2225,以形成被重構(gòu)的圖片2205的預(yù)測(cè)值2235。例如,運(yùn)動(dòng)補(bǔ)償器2230使用一個(gè)或多個(gè)宏塊運(yùn)動(dòng)向量來(lái)尋找參考圖片2225中的宏塊。一個(gè)或多個(gè)圖片存儲(chǔ)(例如圖片存儲(chǔ)2220、2222)存儲(chǔ)先前重構(gòu)后的圖片,以用作參考圖片。通常,B-圖片具有一個(gè)以上的參考圖片(例如至少一個(gè)時(shí)間上在先的參考圖片和至少一個(gè)時(shí)間上將來(lái)的參考圖片)。因此,解碼器系統(tǒng)2200可將分別的圖片存儲(chǔ)2220和2222用于多個(gè)參考圖片。運(yùn)動(dòng)補(bǔ)償器2230可按像素、1/2像素、1/4像素或其它增量補(bǔ)償運(yùn)動(dòng),并可在逐個(gè)圖片基礎(chǔ)或其它基礎(chǔ)上切換運(yùn)動(dòng)補(bǔ)償?shù)姆直媛省_\(yùn)動(dòng)補(bǔ)償器2230還可在每幀或其它基礎(chǔ)上在參考圖片像素插值類型之間(例如雙三次和雙線性)切換。運(yùn)動(dòng)補(bǔ)償?shù)姆直媛士伤降鼗虼怪钡叵嗤虿煌?。或者,運(yùn)動(dòng)補(bǔ)償器應(yīng)用另一類型的運(yùn)動(dòng)補(bǔ)償。由運(yùn)動(dòng)補(bǔ)償器進(jìn)行的預(yù)測(cè)很少是完美的,因此解碼器2200還重構(gòu)預(yù)測(cè)殘差。逆量化器2270對(duì)熵解碼后的數(shù)據(jù)執(zhí)行逆量化。一般而言,該逆量化器將均勻的標(biāo)量逆量化應(yīng)用于熵解碼后的數(shù)據(jù),其中步長(zhǎng)在逐幀或其它基礎(chǔ)上變化。或者,該逆量化器將另一種類型的逆量化應(yīng)用于數(shù)據(jù),例如在不均勻的向量或非自適應(yīng)量化后重構(gòu),或者在不使用逆頻率變換的解碼器系統(tǒng)中直接逆量化空間域數(shù)據(jù)。逆頻率變換器2260將量化后的頻域數(shù)據(jù)轉(zhuǎn)換成空間域視頻信息。對(duì)于基于塊的視頻圖片,逆頻率變換器2260將逆DCT["IDCT"]、IDCT的變體、或其它逆向塊變換應(yīng)用于頻率變換系數(shù)的塊,從而分別產(chǎn)生關(guān)鍵圖片或預(yù)測(cè)圖片的像素?cái)?shù)據(jù)或預(yù)測(cè)殘差數(shù)據(jù)?;蛘撸聪蝾l率變換器2260應(yīng)用諸如傅立葉逆變換的另一種常規(guī)反向頻率變換、或使用小波或子頻帶分析。反向頻率變換器2260可應(yīng)用8x8、8x4、4x8、4x4或其它大小的反向頻率變換。對(duì)于預(yù)測(cè)圖片,解碼器2200組合重構(gòu)后的預(yù)測(cè)殘差2245和經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)2235來(lái)形成重構(gòu)后的圖片2205。當(dāng)解碼器需要用于隨后運(yùn)動(dòng)補(bǔ)償?shù)闹貥?gòu)后圖片2205時(shí),一個(gè)或兩個(gè)圖片存儲(chǔ)(例如圖片存儲(chǔ)2220)緩存重構(gòu)后圖片2205,以用于預(yù)測(cè)下一圖片。在一些實(shí)施例中,解碼器2200將解塊濾波器應(yīng)用于重構(gòu)后圖片以自適應(yīng)地使圖片中的間斷點(diǎn)和其它人工效應(yīng)平滑。III.隔行掃描P-半幀和隔行掃描P-幀典型的隔行掃描視頻幀由在不同時(shí)間掃描的兩個(gè)半幀(例如上半幀和下半幀)組成。一般而言,通過(guò)一起編碼半幀來(lái)編碼隔行掃描視頻幀的靜態(tài)區(qū)域是更為有效的("幀模式"編碼)。另一方面,通過(guò)分開(kāi)編碼半幀來(lái)編碼隔行掃描視頻幀的移動(dòng)區(qū)域通常更為有效("半幀模式"編碼),因?yàn)檫@兩個(gè)半幀傾向于具有不同的運(yùn)動(dòng)。正向預(yù)測(cè)的隔行掃描視頻幀可被編碼為兩個(gè)獨(dú)立的正向預(yù)測(cè)半幀一隔行掃描P-半幀。例如,當(dāng)在隔行掃描視頻幀上有較高運(yùn)動(dòng)從而在各半幀之間有很大差異時(shí),分開(kāi)編碼正向預(yù)測(cè)的隔行掃描視頻幀的半幀會(huì)比較有效。或者,正向預(yù)測(cè)的隔行掃描視頻幀可使用半幀編碼和幀編碼的混合來(lái)編碼為隔行掃描P-幀。對(duì)于隔行掃描P-幀的宏塊,該宏塊包括上半幀和下半幀的像素行,且各行可用幀編碼模式一起編碼,或用半幀編碼模式分開(kāi)編碼。A.隔行掃描P-半幀隔行掃描P-半幀參考一個(gè)或多個(gè)先前解碼的半幀。例如,在一些實(shí)現(xiàn)中,隔行掃描P-半幀參考一個(gè)或兩個(gè)先前解碼的半幀,而隔行掃描B-半幀參考多達(dá)兩個(gè)先前的和兩個(gè)將來(lái)的參考半幀(即多達(dá)總共四個(gè)參考半幀)。(用于隔行掃描B-半幀的編碼和解碼技術(shù)在下面詳細(xì)描述。)圖25和26示出具有兩個(gè)參考半幀的隔行掃描P-半幀的示例。在圖25中,當(dāng)前半幀2510參考時(shí)間上在先的隔行掃描視頻幀中的上半幀2520和下半幀2530。因?yàn)榘霂?540和2550是隔行掃描的B-半幀,所以它們不用作參考半幀。在圖26中,當(dāng)前半幀2610參考在包含當(dāng)前半幀2610的隔行掃描視頻幀前面緊鄰的隔行掃描視頻幀中的上半幀2620和下半幀2630。對(duì)于有關(guān)雙參考的隔行掃描P-半幀的更多信息,參見(jiàn)序列號(hào)為xx/yyy,zzz題為"PredictingMotionVectorsforFieldsofForward-predictedInterlacedVideoFrames"(預(yù)測(cè)正向預(yù)測(cè)的隔行掃描視頻幀的半幀的運(yùn)動(dòng)向量)并于2004年5月27日提交的美國(guó)專利申請(qǐng)。圖27和28示出具有一個(gè)參考半幀一所允許的時(shí)間上最新參考半幀的隔行掃描P-半幀的示例。在圖27中,當(dāng)前半幀2710參考時(shí)間上在先的隔行掃描視頻幀的下半幀2730,但不參考該隔行掃描視頻幀上不那么新的上半幀2720。在圖27所示示例中,半幀2740和2750是隔行掃描B-半幀,且不是所允許的參考半幀。在圖28中,當(dāng)前半幀2810參考在包含當(dāng)前半幀2810的隔行掃描視頻幀前面緊鄰的隔行掃描視頻幀中的下半幀2830,而不參考不那么新的上半幀2820。圖29和30示出使用所允許的第二最新參考半幀的隔行掃描P-半幀的示例。在圖29中,當(dāng)前半幀2910參考時(shí)間上在先的隔行掃描視頻幀的上半幀2920,但不參考更新的下半幀2920。在圖29所示示例中,半幀2940和2950是隔行掃描B-半幀,且不是所允許的參考半幀。在圖30中,當(dāng)前半幀3010參考上半幀3020,而不參考更新的下半幀3030。在一實(shí)現(xiàn)中,圖25-30中示出的全部情形在隔行掃描P-半幀語(yǔ)法中都是許可的。其它實(shí)現(xiàn)也是可能的。例如,圖片可將來(lái)自不同類型或時(shí)間位置的其它圖片的半幀用作參考半幀。1.半幀圖片坐標(biāo)系統(tǒng)和半幀極性運(yùn)動(dòng)向量表示以1/4像素為單位的水平和垂直位移。例如,如果運(yùn)動(dòng)向量的垂直分量表示6個(gè)1/4像素單位的位移,則這表示參考?jí)K是當(dāng)前塊位置下方1.5個(gè)半幀行處(6*1/4=11/2)。圖31示出在一實(shí)現(xiàn)中運(yùn)動(dòng)向量的垂直分量和空間位置之間的關(guān)系。圖31所示示例示出當(dāng)前和參考半幀類型(例如上和下)的三種不同組合的三種不同情形3110、3120和3130。如果半幀類型對(duì)當(dāng)前和參考半幀不同,則極性"相反"。如果半幀類型相同,則極性"相同"。對(duì)于每種情形,圖31示出當(dāng)前半幀中一個(gè)垂直像素列和參考半幀中的第二垂直像素列。實(shí)際上,該兩列是水平對(duì)齊的。圓圈表示實(shí)際整數(shù)像素位置,而X表示插值的l/2或l/4像素位置。水平分量值(未示出)無(wú)需說(shuō)明因?yàn)楦粜袙呙璧娜魏纹屏?,因?yàn)楦鱾€(gè)半幀都是水平對(duì)齊的。負(fù)值表示在相反方向上比所示正值垂直偏移量更偏上的偏移量。在情形3110中,極性"相反"。當(dāng)前半幀為上半幀,而參考半幀為下半幀。相對(duì)于當(dāng)前半幀,參考半幀的位置因?yàn)楦粜袙呙瓒谙蛳路较蛏掀苐/2像素。垂直運(yùn)動(dòng)向量分量值為0是"無(wú)垂直運(yùn)動(dòng)"偏移,并表示參考半幀中與當(dāng)前半幀中位置在同一垂直水平上(絕對(duì)值)的位置;垂直運(yùn)動(dòng)向量分量值為+2表示參考半幀中偏移到當(dāng)前半幀中位置下方l/2像素(絕對(duì)值)的位置,該位置是參考半幀中的實(shí)際值;而垂直分量值為+4表示參考半幀中偏移到當(dāng)前半幀中位置下方1整個(gè)像素(絕對(duì)值)的位置,該位置是參考半幀中的插值。在情形3120中,極性也"相反"。當(dāng)前半幀是下半幀,而參考半幀是上半幀。相對(duì)于當(dāng)前半幀,參考半幀的位置因?yàn)楦粜袙呙瓒谙蛏戏较蛏掀?/2像素。垂直運(yùn)動(dòng)向量分量值為-2表示參考半幀中偏移到當(dāng)前半幀中位置上方1/2像素(絕對(duì)值)的位置;垂直分量值為O表示參考半幀中與當(dāng)前半幀中位置在同一水平上(絕對(duì)值)的位置;而垂直分量值為+2表示參考半幀中偏移到當(dāng)前半幀中位置下方1/2像素(絕對(duì)值)的位置。在情形3130中,極性"相同"。相對(duì)于當(dāng)前半幀,參考半幀的位置在垂直方向上相同。垂直運(yùn)動(dòng)向量分量值為O是"無(wú)垂直運(yùn)動(dòng)"偏移,并表示參考半幀中與當(dāng)前半幀中位置在同一垂直水平上(絕對(duì)值)的位置;垂直運(yùn)動(dòng)向量分量值為+2表示參考半幀中偏移到當(dāng)前半幀中位置下方l/2像素(絕對(duì)值)的位置,該位置是參考半幀中的插值;而垂直分量值為+4表示參考半幀中偏移到當(dāng)前半幀中位置下方l整個(gè)像素(絕對(duì)值)的位置,該位置是參考半幀中的實(shí)際值。或者,運(yùn)動(dòng)向量的位移根據(jù)不同慣例來(lái)表達(dá)。2.雙參考半幀的隔行掃描P-半幀中的運(yùn)動(dòng)向量預(yù)測(cè)雙參考半幀的隔行掃描P-半幀參考相同時(shí)間方向上的兩個(gè)半幀(例如兩個(gè)最近的先前參考半幀)。對(duì)每個(gè)宏塊計(jì)算兩個(gè)運(yùn)動(dòng)向量預(yù)測(cè)值。在一些實(shí)現(xiàn)中,一個(gè)預(yù)測(cè)值來(lái)自相同極性的參考半幀,而另一個(gè)預(yù)測(cè)值來(lái)自相反極性的參考半幀。極性的其它組合也是可能的。(以下描述每個(gè)方向上使用雙參考半幀的隔行掃描B-半幀。在一些實(shí)現(xiàn)中,這些隔行掃描B-半幀將與隔行掃描P-半幀相同的技術(shù)用于計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值。)在一些實(shí)現(xiàn)中,編碼器/解碼器通過(guò)尋找奇半幀預(yù)測(cè)值和偶半幀預(yù)測(cè)值、并選擇處理預(yù)測(cè)值之一用于處理宏塊,來(lái)計(jì)算當(dāng)前塊或宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值。例如,編碼器/解碼器確定奇半幀運(yùn)動(dòng)向量預(yù)測(cè)值和偶半幀運(yùn)動(dòng)向量預(yù)測(cè)值。運(yùn)動(dòng)向量預(yù)測(cè)值之一因而具有與當(dāng)前半幀相同的極性,而另一運(yùn)動(dòng)向量預(yù)測(cè)值具有相反極性。編碼器/解碼器從奇半幀運(yùn)動(dòng)向量預(yù)測(cè)值和偶半幀運(yùn)動(dòng)向量預(yù)測(cè)值中選擇一運(yùn)動(dòng)向量預(yù)測(cè)值。例如,編碼器基于哪個(gè)給出較佳預(yù)測(cè)在各運(yùn)動(dòng)向量預(yù)測(cè)值之間選擇。編碼器使用簡(jiǎn)單的選擇信號(hào)或使用較復(fù)雜的結(jié)合改進(jìn)編碼效率的上下文信息的信號(hào)表示來(lái)用信號(hào)表示要使用哪個(gè)運(yùn)動(dòng)向量預(yù)測(cè)值。該上下文信息可表示奇半幀或偶半幀的哪一個(gè)、或相同極性半幀或相反極性半幀的哪一個(gè)已主要用于塊或宏塊周圍的鄰域中。解碼器基于選擇信號(hào)和/或上下文信息選擇要使用哪個(gè)運(yùn)動(dòng)向量預(yù)測(cè)值。然后,編碼器/解碼器使用選定的運(yùn)動(dòng)向量預(yù)測(cè)值處理該運(yùn)動(dòng)向量。例如,編碼器編碼運(yùn)動(dòng)向量和運(yùn)動(dòng)向量預(yù)測(cè)值之間的差值?;蛘撸獯a器通過(guò)組合運(yùn)動(dòng)向量差值和運(yùn)動(dòng)向量預(yù)測(cè)值來(lái)解碼運(yùn)動(dòng)向量。或者,編碼器和/或解碼器可跳過(guò)確定奇半幀運(yùn)動(dòng)向量預(yù)測(cè)值、或跳過(guò)確定偶半幀運(yùn)動(dòng)向量預(yù)測(cè)值。例如,如果編碼器確定奇半幀將用于特定塊或宏塊的運(yùn)動(dòng)補(bǔ)償,則編碼器只確定奇半幀運(yùn)動(dòng)向量預(yù)測(cè)值?;蛘撸绻獯a器從上下文和/或信號(hào)表示信息中確定奇半幀將用于運(yùn)動(dòng)補(bǔ)償,則解碼器只確定奇半幀運(yùn)動(dòng)向量預(yù)測(cè)值。這樣,編碼器和解碼器可避免不必要的運(yùn)算。解碼器可采用以下技術(shù)來(lái)確定當(dāng)前隔行掃描P-半幀的運(yùn)動(dòng)向量預(yù)測(cè)值。對(duì)于隔行掃描P-半幀中具有運(yùn)動(dòng)向量的每個(gè)塊或宏塊,可獲得兩組三個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值。從中獲得這些候選運(yùn)動(dòng)向量預(yù)測(cè)值的相鄰宏塊相對(duì)于當(dāng)前宏塊3200的位置如圖32所示。這些候選值的三個(gè)來(lái)自偶參考半幀,而另三個(gè)來(lái)自奇參考半幀。因?yàn)槊總€(gè)候選方向中的相鄰宏塊(A、B和C)是幀內(nèi)編碼的或具有參考偶半幀或奇半幀的實(shí)際運(yùn)動(dòng)向量,所以需要導(dǎo)出其它半幀的運(yùn)動(dòng)向量(或?qū)С鰩瑑?nèi)編碼宏塊的奇半幀和偶半幀運(yùn)動(dòng)向量候選值)。例如,對(duì)于給定宏塊,假設(shè)預(yù)測(cè)值A(chǔ)具有參考奇半幀的運(yùn)動(dòng)向量。在該情形中,"偶半幀"候選預(yù)測(cè)值A(chǔ)從"奇半幀"候選預(yù)測(cè)值A(chǔ)的運(yùn)動(dòng)向量中導(dǎo)出。該導(dǎo)出使用縮放運(yùn)算來(lái)完成。(參見(jiàn)例如以下圖34A和34B的解釋。)或者,導(dǎo)出用另一種方式完成。一旦已得到三個(gè)奇半幀候選運(yùn)動(dòng)向量預(yù)測(cè)值,就使用中值運(yùn)算來(lái)從三個(gè)奇半幀候選值中導(dǎo)出奇半幀運(yùn)動(dòng)向量預(yù)測(cè)值。類似地,一旦已得到三個(gè)偶半幀候選運(yùn)動(dòng)向量預(yù)測(cè)值,就使用中值運(yùn)算來(lái)從三個(gè)偶半幀候選值中導(dǎo)出偶半幀運(yùn)動(dòng)向量預(yù)測(cè)值?;蛘?,使用另一種機(jī)制來(lái)基于候選半幀運(yùn)動(dòng)向量預(yù)測(cè)值選擇半幀運(yùn)動(dòng)向量預(yù)測(cè)值。解碼器判定是將偶半幀還是奇半幀用作運(yùn)動(dòng)向量預(yù)測(cè)值(例如通過(guò)選擇主預(yù)測(cè)值),及偶還是奇運(yùn)動(dòng)向量預(yù)測(cè)值被用來(lái)重構(gòu)運(yùn)動(dòng)向量。圖33A-33F中的偽碼3300示出用來(lái)從如圖32所示排列的預(yù)測(cè)值A(chǔ)、B和C中產(chǎn)生運(yùn)動(dòng)向量預(yù)測(cè)值的過(guò)程。盡管圖32示出當(dāng)前隔行掃描P-半幀中典型宏塊的鄰域,但圖33A-33F的偽碼3300解決了宏塊位置的各個(gè)特定情形。此外,偽碼3300可用來(lái)計(jì)算各個(gè)位置上塊的運(yùn)動(dòng)向量的運(yùn)動(dòng)向量預(yù)測(cè)值。在偽碼3300中,術(shù)語(yǔ)"相同半幀"和"相反半幀"被理解成與當(dāng)前編碼或解碼的半幀相關(guān)。例如,如果當(dāng)前半幀是偶半幀,貝lj"相同半幀"是偶參考半幀而"相反半幀"是奇參考半幀。偽碼3300中的變量samefieldpred—x和samefieldpred_y表示來(lái)自相同半幀的運(yùn)動(dòng)向量預(yù)測(cè)值的水平和垂直分量,而變量oppositefieldpred_x和oppositefieldpred_y表示來(lái)自相反半幀的運(yùn)動(dòng)向量預(yù)測(cè)值的水平和垂直分量。變量samecount和oppositecount分別跟蹤當(dāng)前塊或宏塊的鄰域的多少運(yùn)動(dòng)向量參考當(dāng)前半幀的"相同"極性參考半幀,及多少參考"相反"極性參考半幀。變量samecount和oppositecount在偽碼開(kāi)始時(shí)初始化為0。偽碼3300中所提及的縮放運(yùn)算scaleforsame()和scaleforopposite()被用來(lái)從鄰居的實(shí)際運(yùn)動(dòng)向量值中導(dǎo)出"另一"半幀的候選運(yùn)動(dòng)向量預(yù)測(cè)值??s放運(yùn)算是實(shí)現(xiàn)無(wú)關(guān)的。示例縮放運(yùn)算在以下參照?qǐng)D34A、34B、35和36進(jìn)行描述。或者,其它縮放運(yùn)算可用來(lái)例如補(bǔ)償諸如圖31中所示的垂直位移。(具體用于隔行掃描B-半幀的縮放運(yùn)算如下進(jìn)行詳細(xì)描述。)圖33A和33B示出用于計(jì)算幀內(nèi)的內(nèi)部位置中典型塊或宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值的偽碼。"幀內(nèi)"鄰居的運(yùn)動(dòng)向量被設(shè)置為0。對(duì)于每個(gè)鄰居,都設(shè)置相同半幀運(yùn)動(dòng)向量預(yù)測(cè)值和相反半幀運(yùn)動(dòng)向量預(yù)測(cè)值,在其中一個(gè)通過(guò)鄰居運(yùn)動(dòng)向量的實(shí)際值設(shè)置時(shí),另一個(gè)從中導(dǎo)出。對(duì)相同半幀運(yùn)動(dòng)向量預(yù)測(cè)值和相反半幀運(yùn)動(dòng)向量預(yù)測(cè)值計(jì)算候選值的中值,而"主"預(yù)測(cè)值從samecount和oppositecount中確定。變量dominantpredictor表示哪個(gè)半幀包含主運(yùn)動(dòng)向量預(yù)測(cè)值。如果運(yùn)動(dòng)向量預(yù)測(cè)值具有與三個(gè)候選預(yù)測(cè)值的大部分相同的極性,則它是主要預(yù)測(cè)值。(用運(yùn)動(dòng)向量差值數(shù)據(jù)解碼的表示信號(hào)的值predictor_flag表示使用主還是非主預(yù)測(cè)值。)圖33C中的偽碼解決每行只有一個(gè)宏塊(它沒(méi)有鄰居B或C)的隔行掃描P-半幀的宏塊的情形。圖33D或33E中的偽碼解決塊或宏塊在隔行掃描P-半幀的左邊緣(沒(méi)有鄰居C)的情形。在此,如果運(yùn)動(dòng)向量預(yù)測(cè)值具有與兩個(gè)以上候選預(yù)測(cè)值相同的極性,則它是主預(yù)測(cè)值;而在不分上下的情形中,相反半幀運(yùn)動(dòng)向量預(yù)測(cè)值為主預(yù)測(cè)值。最后,圖33F中的偽碼解決例如宏塊在隔行掃描P-半幀的首行中的情形。3.—個(gè)半幀運(yùn)動(dòng)向量預(yù)測(cè)值從另一個(gè)半幀運(yùn)動(dòng)向量預(yù)測(cè)值導(dǎo)出的縮放在一實(shí)現(xiàn)中,編碼器/解碼器使用圖34A和34B的偽碼3400中示出的縮放運(yùn)算,將一個(gè)半幀運(yùn)動(dòng)向量預(yù)測(cè)值從另一個(gè)半幀運(yùn)動(dòng)向量預(yù)測(cè)值導(dǎo)出。SCALEOPP、SCALESAME1、SCALESAME2、SCALEZO麗一X、SCALEZ0NE1一Y、ZONE10FFSET一X禾卩ZONE10FFSET_Y的值是實(shí)現(xiàn)相關(guān)的。示出兩個(gè)可能的值集,其中當(dāng)前半幀是隔行掃描視頻幀中的第一半幀的情形在圖35的表格3500中示出,而當(dāng)前半幀是隔行掃描視頻幀中的第二半幀的情形在圖36的表格3600中示出。對(duì)于P-幀,參考幀距離被第一為當(dāng)前P-幀及其參考幀之間的B-幀(即包含兩個(gè)B-半幀的視頻幀)數(shù)量。如果不出現(xiàn)B-幀,則參考距離為O。例如,編碼器使用可變大小的語(yǔ)法元素(例如在以下XIV節(jié)詳細(xì)描述的REFDIST語(yǔ)法元素)來(lái)編碼參考幀距離。在表格3500和3600中示出的各個(gè)示例中,N的值(用作表格中SCALEZ0NE1_X、SCALEZ0NE1—Y、ZONE1OFFSET—X和ZONE10FFSET_Y值的乘數(shù))取決于運(yùn)動(dòng)向量范圍。例如,經(jīng)擴(kuò)展的運(yùn)動(dòng)向量范圍可通過(guò)語(yǔ)法元素EXTENDED—MV=1來(lái)用信號(hào)表示。如果EXTENDED—MV=1,則MVRANGE語(yǔ)法元素在圖片頭中出現(xiàn),并用信號(hào)表示運(yùn)動(dòng)向量范圍。如果EXTENDED—MV=0,則使用缺省運(yùn)動(dòng)向量范圍。以下的表格1示出N和MVRANGE之間的關(guān)系。表格l:圖35和36中N的導(dǎo)出<table>tableseeoriginaldocumentpage46</column></row><table>表格3500和3600中示出的各個(gè)值可依賴于實(shí)現(xiàn)而更改。或者,N被假設(shè)為1(即縮放不依賴于N),或者縮放可用一些其它方式來(lái)執(zhí)行。B.隔行掃描P-幀在一些實(shí)現(xiàn)中,隔行掃描P-幀中的宏塊可以是5種類型之一1MV、2半幀MV、4幀MV、4半幀MV和幀內(nèi)。在1MV宏塊中,宏塊中4個(gè)亮度塊的位移通過(guò)單個(gè)運(yùn)動(dòng)向量表示。相應(yīng)的色度運(yùn)動(dòng)向量可從亮度運(yùn)動(dòng)向量導(dǎo)出,以表示運(yùn)動(dòng)向量的2個(gè)8x8色度塊的每一個(gè)的位移。例如,再參看圖23中示出的宏塊排列,1MV宏塊2300包括4個(gè)8x8亮度塊和2個(gè)8x8色度塊。亮度塊(Y1到Y(jié)4)的位移通過(guò)單個(gè)運(yùn)動(dòng)向量表示,且相應(yīng)的色度運(yùn)動(dòng)向量可從亮度運(yùn)動(dòng)向量導(dǎo)出,以表示2個(gè)色度塊(U和V)的每一個(gè)的位移。在2半幀MV宏塊中,宏塊中4個(gè)亮度塊的每個(gè)半幀的位移通過(guò)不同運(yùn)動(dòng)向量描述。例如,圖37示出,上半幀運(yùn)動(dòng)向量描述全部4個(gè)亮度塊的偶數(shù)行的位移,下半幀運(yùn)動(dòng)向量描述全部4個(gè)亮度塊的奇數(shù)行的位移。使用上半幀運(yùn)動(dòng)向量,編碼器可導(dǎo)出相應(yīng)的上半幀色度運(yùn)動(dòng)向量,它描述色度塊偶數(shù)行的位移。類似地,編碼器可導(dǎo)出下半幀色度運(yùn)動(dòng)向量,它描述色度塊奇數(shù)行的位移。參照?qǐng)D38,在4幀MV宏塊中,4個(gè)亮度塊的每一個(gè)的位移通過(guò)不同運(yùn)動(dòng)向量(MV1、MV2、MV3和MV4)描述。每個(gè)色度塊可通過(guò)使用4個(gè)導(dǎo)出色度運(yùn)動(dòng)向量(MVr、MV2'、MV3'和MV4')來(lái)進(jìn)行運(yùn)動(dòng)補(bǔ)償,這些色度運(yùn)動(dòng)向量描述4個(gè)4x4色度子塊的位移。每個(gè)4x4色度子塊的運(yùn)動(dòng)向量可從空間上相應(yīng)的亮度塊的運(yùn)動(dòng)向量中導(dǎo)出。參照?qǐng)D39,在4半幀MV宏塊中,亮度塊的每一個(gè)半幀的位移通過(guò)兩個(gè)不同運(yùn)動(dòng)向量來(lái)描述。亮度塊的偶數(shù)行被垂直細(xì)分以形成2個(gè)8x8區(qū)域。對(duì)于偶數(shù)行,左邊區(qū)域的位移通過(guò)左上方半幀塊的運(yùn)動(dòng)向量描述,而右邊區(qū)域的位移通過(guò)右上方半幀塊的運(yùn)動(dòng)向量描述。亮度塊的奇數(shù)行也被垂直細(xì)分以形成2個(gè)8x8區(qū)域。左邊區(qū)域的位移通過(guò)左下方半幀塊的運(yùn)動(dòng)向量描述,而右邊區(qū)域的位移通過(guò)右下方半幀塊的運(yùn)動(dòng)向量描述。每個(gè)色度塊也可用與亮度塊相同的方式分成4個(gè)區(qū)域,且每個(gè)色度塊區(qū)域可使用導(dǎo)出運(yùn)動(dòng)向量進(jìn)行運(yùn)動(dòng)補(bǔ)償。對(duì)于幀內(nèi)宏塊,運(yùn)動(dòng)假設(shè)為0。一般而言,計(jì)算隔行掃描P-幀中當(dāng)前宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值的過(guò)程包括兩個(gè)步驟。首先,從其相鄰宏塊收集當(dāng)前宏塊的三個(gè)候選運(yùn)動(dòng)向量。例如,在一實(shí)現(xiàn)中,候選運(yùn)動(dòng)向量基于圖40A-40B中示出的排列(和首行宏塊等的各種特定情形)來(lái)收集?;蛘撸蜻x運(yùn)動(dòng)向量可在一些其它順序或排列中收集。其次,當(dāng)前宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值從候選運(yùn)動(dòng)向量集中計(jì)算。例如,預(yù)測(cè)值可使用3個(gè)預(yù)測(cè)值的中值、或通過(guò)其它方法來(lái)計(jì)算。對(duì)于有關(guān)隔行掃描P-幀的宏塊的預(yù)測(cè)值計(jì)算和色度運(yùn)動(dòng)向量導(dǎo)出的其它細(xì)節(jié),參見(jiàn)申請(qǐng)?zhí)枮?0/501,081題為"VideoEncodingandDecodingToolsandTechniques"(視頻編碼和解碼工具及技術(shù))并于2003年9月7日提交的美國(guó)臨時(shí)專利申請(qǐng),如以下XIV節(jié)所述。IV.逐行掃描視頻幀的雙向預(yù)測(cè)如上所述,逐行掃描B-幀中的宏塊可使用5種不同預(yù)測(cè)模式來(lái)預(yù)測(cè)正向、反向、直接、插值和幀內(nèi)。編碼器選擇并用信號(hào)表示在宏塊級(jí)別或一些其它級(jí)別上比特流中的不同預(yù)測(cè)模式。在正向模式中,當(dāng)前逐行掃描B-幀中的宏塊從時(shí)間上在先的錨中導(dǎo)出。在反向模式中,當(dāng)前逐行掃描B-幀中的宏塊從時(shí)間上后續(xù)的錨中導(dǎo)出。用直接或插值模式預(yù)測(cè)的宏塊將正向和反向錨用于預(yù)測(cè)。因?yàn)橛兄苯雍筒逯的J降膬蓚€(gè)參考幀,所以對(duì)于每個(gè)宏塊通常都有至少兩個(gè)運(yùn)動(dòng)向量(顯式編碼或?qū)С龅?。(用于逐行掃描B-幀的編碼、信號(hào)表示和解碼的各個(gè)方面也可用于隔行掃描B-幀,如下所述。)在一些實(shí)現(xiàn)中,編碼器通過(guò)使用分?jǐn)?shù)值縮放正向錨的共處運(yùn)動(dòng)向量,隱式地用直接模式導(dǎo)出運(yùn)動(dòng)向量。該分?jǐn)?shù)可反映當(dāng)前逐行掃描B-幀在通過(guò)其錨形成的間隔內(nèi)的相對(duì)時(shí)間位置,但不需要反映真實(shí)的幀間距離。因而,編碼器無(wú)需采取固定速度。這使得編碼器有附加的自由度,來(lái)通過(guò)改變來(lái)自"實(shí)際"時(shí)間位置的分?jǐn)?shù)準(zhǔn)確并容易地描述錨和當(dāng)前逐行掃描B-幀之間的真實(shí)運(yùn)動(dòng),以便于改進(jìn)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)。變量BFRACTION表示可在比特流中發(fā)送(例如在圖片級(jí)別或一些其它級(jí)別上)以表示該相對(duì)時(shí)間位置的不同分?jǐn)?shù)。不同分?jǐn)?shù)是0和1之間的有限離散值集。再參看圖17,表格1700是用于比特流元素BFRACTION的可變長(zhǎng)度代碼(VLC)表格。在相同兩個(gè)錨之間的逐行掃描B-幀中對(duì)BFRACTION的唯一性沒(méi)有限制;具有相同錨的不同逐行掃描B-幀可具有相同的BFRACTION值。表格1700中的代碼可改變或重新安排,以用不同代碼表示不同分?jǐn)?shù)。未在表格1700中示出的其它可能代碼(例如,1H1110或1111111)可被認(rèn)為是無(wú)效代碼,或可用于其它目的。例如,條目1111110可用來(lái)顯式地編碼定點(diǎn)格式的BFRACTION。作為另一示例,條目1111111可用于用信號(hào)表示特定幀類型(例如,幀內(nèi)編碼的逐行掃描B-幀)。再參看圖18,解碼器根據(jù)偽碼1800尋找縮放系數(shù)。再參看圖19,解碼器使用該縮放系數(shù)來(lái)縮放后續(xù)參考圖片中共處宏塊的運(yùn)動(dòng)向量的x和y元素。偽碼1900中的函數(shù)Scale_Direct—MV取輸入MV—X和MV_Y,并用直接模式來(lái)導(dǎo)出兩個(gè)運(yùn)動(dòng)向量,其中一個(gè)運(yùn)動(dòng)向量參考正向(先前)錨圖片(MV_XF、MV_YF),而另一個(gè)運(yùn)動(dòng)向量參考反向(后續(xù))錨圖片(MV_XB、MV_YB)。逐行掃描B-幀中的"跳過(guò)"宏塊信號(hào)表示對(duì)給定宏塊未出現(xiàn)運(yùn)動(dòng)向量預(yù)測(cè)誤差。所預(yù)測(cè)的運(yùn)動(dòng)向量將精確地等同于編碼器/解碼器在重構(gòu)宏塊時(shí)使用的運(yùn)動(dòng)向量(即不應(yīng)用運(yùn)動(dòng)向量預(yù)測(cè)誤差)。編碼器仍然用信號(hào)表示宏塊的預(yù)測(cè)模式,因?yàn)樵摵陦K可使用直接、正向、反向或插值預(yù)測(cè)來(lái)跳過(guò)。V.對(duì)隔行掃描B-圖片的預(yù)測(cè)編碼/解碼的創(chuàng)新的縱覽各所述實(shí)施例包括用于編碼和解碼隔行掃描B-圖片(例如隔行掃描B-半幀、隔行掃描B-幀)的技術(shù)和工具。各所述實(shí)施例實(shí)現(xiàn)所述用于編碼和/或解碼雙向預(yù)測(cè)的隔行掃描圖片的技術(shù)和工具的一種或多種,如下包括但不限于1.對(duì)于隔行掃描B-幀,編碼器/解碼器在隔行掃描B-幀的宏塊中的上半幀和下半幀之間切換預(yù)測(cè)模式。2.對(duì)于隔行掃描B-幀,編碼器/解碼器通過(guò)為先前解碼的時(shí)間后續(xù)錨的共處宏塊的上和下半幀的每一個(gè)選擇一個(gè)代表性運(yùn)動(dòng)向量,計(jì)算當(dāng)前宏塊的直接模式運(yùn)動(dòng)向量。該選擇至少可部分地基于編碼當(dāng)前隔行掃描B-幀的宏塊的模式(例如1MV模式、2半幀MV模式等)執(zhí)行。3.對(duì)于隔行掃描B-半幀或隔行掃描B-幀,編碼器/解碼器使用4MV編碼。例如,4MV可用于單向預(yù)測(cè)模式(正向或反向模式),但不用于其它可用預(yù)測(cè)模式(例如直接、插值)。4.對(duì)于隔行掃描B-半幀或隔行掃描B-幀,正向運(yùn)動(dòng)向量使用來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的先前重構(gòu)(或估計(jì))的正向運(yùn)動(dòng)向量進(jìn)行預(yù)測(cè),而反向運(yùn)動(dòng)向量使用來(lái)自反向運(yùn)動(dòng)向量緩沖區(qū)的先前重構(gòu)(或估計(jì))的反向運(yùn)動(dòng)向量進(jìn)行預(yù)測(cè)。結(jié)果的運(yùn)動(dòng)向量被添加到相應(yīng)的緩沖區(qū)中,且運(yùn)動(dòng)向量緩沖區(qū)中的空穴可用估計(jì)的運(yùn)動(dòng)向量值來(lái)填充。a.對(duì)于隔行掃描B-幀,當(dāng)正向預(yù)測(cè)用來(lái)預(yù)測(cè)運(yùn)動(dòng)向量且運(yùn)動(dòng)向量被添加到正向緩沖區(qū)中時(shí),反向緩沖區(qū)中的相應(yīng)位置以僅將反向運(yùn)動(dòng)向量用作預(yù)測(cè)值的預(yù)測(cè)運(yùn)動(dòng)向量來(lái)填充("空穴填充")。類似地,當(dāng)反向預(yù)測(cè)用來(lái)預(yù)測(cè)運(yùn)動(dòng)向量且運(yùn)動(dòng)向量被添加到反向緩沖區(qū)中時(shí),正向運(yùn)動(dòng)向量緩沖區(qū)中的相應(yīng)位置以僅將正向運(yùn)動(dòng)向量用作預(yù)測(cè)值的預(yù)測(cè)運(yùn)動(dòng)向量來(lái)填充。b.對(duì)于隔行掃描B-半幀,要為空穴填充在不同極性的運(yùn)動(dòng)向量(例如"相同極性"或"相反極性")之間選擇,編碼器/解碼器選擇主極性半幀運(yùn)動(dòng)向量。錨和當(dāng)前幀之間的距離使用各種語(yǔ)法元素計(jì)算,且計(jì)算出的距離被用于縮放參考半幀運(yùn)動(dòng)向量。5.對(duì)于隔行掃描的B-半幀,編碼器/解碼器使用"自參考"幀。例如,當(dāng)前幀中的第二個(gè)B-半幀在運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中參考來(lái)自當(dāng)前幀的第一B-半幀。6.對(duì)于隔行掃描的B-半幀,編碼器發(fā)送指示用于隔行掃描B-半幀中的一個(gè)或多個(gè)宏塊的預(yù)測(cè)模式是正向還是非正向的二進(jìn)制信息(例如,在經(jīng)壓縮位平面的B-半幀級(jí)別上)。解碼器執(zhí)行相應(yīng)的解碼。7.對(duì)于隔行掃描的B-半幀,如果下一錨圖片的相應(yīng)半幀中的相應(yīng)宏塊使用四個(gè)運(yùn)動(dòng)向量編碼,則編碼器/解碼器使用利于主極性的邏輯來(lái)選擇直接模式的運(yùn)動(dòng)向量。8.幀內(nèi)編碼半幀當(dāng)沒(méi)有好的運(yùn)動(dòng)補(bǔ)償對(duì)B半幀可能時(shí),它可被編碼為幀內(nèi)(即非預(yù)測(cè)的)B-半幀("BI-半幀")。各種所述技術(shù)和工具可彼此組合、或與其它技術(shù)組合、或可單獨(dú)使用。VI.切換隔行掃描B-幀中半幀編碼宏塊內(nèi)的預(yù)測(cè)模式在一些實(shí)現(xiàn)中,編碼器在隔行掃描B-幀的宏塊內(nèi)執(zhí)行預(yù)測(cè)模式切換。例如,編碼器允許在隔行掃描B-幀的宏塊中從上半幀去到下半幀時(shí),預(yù)測(cè)模式可從正向切換成反向,或從反向切換成正向。與用一種預(yù)測(cè)方向模式編碼整個(gè)宏塊相反,預(yù)測(cè)方向模式的組合被用來(lái)編碼單個(gè)宏塊。在宏塊的各個(gè)半幀中改變預(yù)測(cè)方向模式的能力在許多情形中導(dǎo)致隔行掃描B-幀的更有效編碼。圖41示出使用不同預(yù)測(cè)模式預(yù)測(cè)隔行掃描B-幀的半幀編碼宏塊中的各個(gè)半幀的運(yùn)動(dòng)向量的一種技術(shù)4100。在4110,在隔行掃描B-幀中,編碼器/解碼器使用第一預(yù)測(cè)模式預(yù)測(cè)半幀編碼宏塊中第一半幀的運(yùn)動(dòng)向量。在一些實(shí)現(xiàn)中,該"第一半幀"可以是上半幀或下半幀,對(duì)其的判定獨(dú)立地用信號(hào)表示。在4120,編碼器/解碼器使用一不同預(yù)測(cè)模式預(yù)測(cè)同一宏塊中第二半幀的運(yùn)動(dòng)向量。例如,對(duì)于使用兩個(gè)運(yùn)動(dòng)向量半幀編碼的宏塊,上半幀可以是正向預(yù)測(cè)的(即,上半幀運(yùn)動(dòng)向量參考先前的錨圖片),而下半幀可以是反向預(yù)測(cè)的(即,下半幀參考后續(xù)的錨圖片)。在一些實(shí)現(xiàn)中,隔行掃描B-幀中的半幀編碼宏塊不使用4個(gè)運(yùn)動(dòng)向量編碼。或者,如果該宏塊使用4個(gè)運(yùn)動(dòng)向量進(jìn)行半幀編碼(例如每個(gè)半幀兩個(gè)運(yùn)動(dòng)向量),則上半幀的這兩個(gè)運(yùn)動(dòng)向量將參考一個(gè)錨(正向或反向),而下半幀運(yùn)動(dòng)向量將參考另一個(gè)錨。這種預(yù)測(cè)模式的切換在該宏塊類型不是以直接或插值開(kāi)始的情形中僅需一個(gè)附加比特,如在以下隔行掃描B-幀的偽碼中進(jìn)一步示出IfMB是半幀編碼的ANDMB類型是正向或反向thenIfMVSwitch=lthen預(yù)測(cè)模式在上半幀和下半幀之間切換(從正向到反向或反之)因此,將預(yù)測(cè)模式切換限于正向和反向模式避免對(duì)用信號(hào)表示第二模式的更多比特的需要,因?yàn)樵摰诙J綇牡谝荒J?在先前用信號(hào)表示的)和切換值中隱含。如果在由隔行掃描B-幀的宏塊覆蓋的區(qū)域中有較高運(yùn)動(dòng),則宏塊有可能用半幀模式編碼。在這些情形中,正向或反向預(yù)測(cè)更可能比直接或插值模式(包括像素平均)給出準(zhǔn)確的運(yùn)動(dòng)補(bǔ)償結(jié)果。因?yàn)樵谄交衅骄烁鱾€(gè)結(jié)果(例如損失了伴隨高運(yùn)動(dòng)的高頻率元素),所以直接和插值模式并非是編碼這些宏塊的最佳方法。試驗(yàn)結(jié)果表明,因?yàn)樵诎霂幋a宏塊內(nèi)的半幀級(jí)別上將全部四種預(yù)測(cè)模式用信號(hào)表示為切換選項(xiàng)的增加開(kāi)銷使其低效?;蛘?,編碼器可在隔行掃描B-幀的半幀編碼宏塊內(nèi)切換兩種以上的預(yù)測(cè)模式,或可在不同預(yù)測(cè)模式之間切換。VII.計(jì)算隔行掃描B-幀中的直接模式運(yùn)動(dòng)向量在一些實(shí)現(xiàn)中,編碼器/解碼器緩存來(lái)自經(jīng)先前解碼錨的I-幀或P-幀(它是時(shí)間上正向的參考幀,用作反向預(yù)測(cè)參考幀)的運(yùn)動(dòng)向量,并選擇一個(gè)或多個(gè)緩存運(yùn)動(dòng)向量,以用于計(jì)算隔行掃描B-幀中當(dāng)前宏塊的直接模式運(yùn)動(dòng)向量。例如,編碼器/解碼器緩存來(lái)自錨幀的每個(gè)宏塊的上半幀和下半幀的每一個(gè)的代表性運(yùn)動(dòng)向量,并使用一個(gè)或多個(gè)所緩存的運(yùn)動(dòng)向量來(lái)計(jì)算當(dāng)前直接模式宏塊的運(yùn)動(dòng)向量。該選擇至少部分地基于當(dāng)前宏塊的編碼模式執(zhí)行(例如1MV模式、2半幀MV模式等)。圖42示出用于在一實(shí)現(xiàn)中計(jì)算隔行掃描B-幀中宏塊的直接模式運(yùn)動(dòng)向量的一種技術(shù)4200。在4210,編碼器/解碼器緩存在先前重構(gòu)的時(shí)間上將來(lái)的錨幀中共處宏塊的每個(gè)宏塊的多個(gè)運(yùn)動(dòng)向量。如果該共處宏塊僅具有一個(gè)運(yùn)動(dòng)向量,則如果需要,該運(yùn)動(dòng)向量將被緩存為共處宏塊的各個(gè)塊的運(yùn)動(dòng)向量值。在4220,編碼器/解碼器部分地依賴于當(dāng)前宏塊所需運(yùn)動(dòng)向量的數(shù)量,選擇共處宏塊的一個(gè)或多個(gè)緩存運(yùn)動(dòng)向量,用于隔行掃描B-幀中當(dāng)前宏塊的直接模式預(yù)測(cè)。在一實(shí)現(xiàn)中,解碼器緩存共處宏塊中的兩個(gè)運(yùn)動(dòng)向量,或緩存來(lái)自將來(lái)錨幀的最大可能數(shù)量的經(jīng)解碼亮度運(yùn)動(dòng)向量的一半。錨幀中的各宏塊可用不同方法編碼,其中每個(gè)宏塊最多達(dá)4個(gè)運(yùn)動(dòng)向量,但只能緩存最多達(dá)兩個(gè)運(yùn)動(dòng)向量,如下所述。而且,為當(dāng)前宏塊產(chǎn)生的正向/反向運(yùn)動(dòng)向量對(duì)的數(shù)量取決于當(dāng)前宏塊的編碼模式,而不是僅僅取決于經(jīng)先前解碼的將來(lái)錨幀的共處宏塊的編碼模式。例如,如果當(dāng)前直接模式宏塊是1MV編碼的,則解碼器從錨幀的共處宏塊的上半幀中取得被緩存的運(yùn)動(dòng)向量,并產(chǎn)生一對(duì)直接運(yùn)動(dòng)向量一一個(gè)正向另一個(gè)反向。如果當(dāng)前直接模式宏塊是半幀編碼的,則解碼器從錨幀的共處宏塊中取得被緩存的上半幀和下半幀運(yùn)動(dòng)向量,并產(chǎn)生兩對(duì)運(yùn)動(dòng)向量,一共有當(dāng)前直接模式宏塊的4個(gè)運(yùn)動(dòng)向量一對(duì)每個(gè)半幀都有一個(gè)正向另一個(gè)反向的運(yùn)動(dòng)向量。圖43示出經(jīng)先前解碼的時(shí)間上將來(lái)的錨幀的共處宏塊4300的各個(gè)塊的運(yùn)動(dòng)向量MV1、MV2、MV3和MV4。如果該共處宏塊是1MV宏塊,則MV1、MV2、MV3和MV4都相等。如果該共處宏塊是2半幀MV宏塊,則MV1和MV2等于一個(gè)值,而MV3和MV4等于另一個(gè)值。如果該錨幀的共處宏塊是4半幀MV或4幀MV宏塊,則MV1、MV2、MV3和MV4可能都是不同的值。然而,即使MV1、MV2、MV3和MV4都可用,解碼器仍然僅緩存MV1和MV3。在圖43所示示例中,解碼器緩存MV1和MV3。如果當(dāng)前宏塊使用1MV模式,則解碼器選擇MV1來(lái)計(jì)算當(dāng)前宏塊的正向和反向直接模式運(yùn)動(dòng)向量,并略去MV3。如果當(dāng)前宏塊使用2半幀MV模式,則解碼器使用MV1和MV3來(lái)計(jì)算4個(gè)直接模式運(yùn)動(dòng)向量。該運(yùn)算產(chǎn)生當(dāng)前宏塊的上下半幀的運(yùn)動(dòng)的良好表示。在已選擇來(lái)自錨幀中共處宏塊的運(yùn)動(dòng)向量時(shí),解碼器應(yīng)用縮放邏輯來(lái)導(dǎo)出相應(yīng)的正向和反向指示運(yùn)動(dòng)向量,用于B幀宏塊的直接模式預(yù)測(cè)。例如,解碼器可應(yīng)用圖19中的函數(shù)Sca、Direct—MV。或者,解碼器應(yīng)用不同的縮放函數(shù)?;蛘?,編碼器/解碼器可緩存每個(gè)錨幀宏塊的4個(gè)運(yùn)動(dòng)向量。例如,如果當(dāng)前宏塊是1MV編碼的,則編碼器/解碼器可取錨幀中共處宏塊的左上運(yùn)動(dòng)向量,并產(chǎn)生一對(duì)直接運(yùn)動(dòng)向量,或者可取錨幀宏塊的4個(gè)運(yùn)動(dòng)向量的均值。如果當(dāng)前宏塊是半幀編碼的,則編碼器/解碼器可取左上和左下運(yùn)動(dòng)向量,并產(chǎn)生兩對(duì)(一個(gè)半幀一對(duì)),或者可取錨幀宏塊的上運(yùn)動(dòng)向量的均值和下運(yùn)動(dòng)向量的均值。當(dāng)錨幀中的共處宏塊為幀內(nèi)、或當(dāng)錨幀為I-幀時(shí),直接模式運(yùn)動(dòng)向量被視為(0,0)。VIII.隔行掃描B-半幀和隔行掃描B-幀中的4MV編碼在一些實(shí)現(xiàn)中,編碼器使用4運(yùn)動(dòng)向量(4MV)編碼模式編碼隔行掃描的B-半幀和隔行掃描的B-幀。4MV編碼可允許復(fù)雜運(yùn)動(dòng)軌跡的表示比1運(yùn)動(dòng)向量(1MV)編碼更準(zhǔn)確(例如,通過(guò)允許宏塊中的4個(gè)亮度塊獨(dú)立地進(jìn)行預(yù)測(cè)和運(yùn)動(dòng)補(bǔ)償)。使用4MV可受限于某些預(yù)測(cè)模式。例如,在一些實(shí)現(xiàn)中,編碼器將4MV用于正向和反向模式(包括半幀和幀變化兩者),而不用于直接或插值模式。當(dāng)4MV不用于逐行掃描B-幀時(shí),這不同于逐行掃描編碼模式。直接和插值模式涉及計(jì)算經(jīng)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)時(shí)的像素平均,它用于平滑細(xì)微細(xì)節(jié)。如果這種平滑是可接受的,則可能可使用1MV模式而不是4MV模式,因?yàn)榫幋a1MV較容易,且1MV可用來(lái)準(zhǔn)確地描述平滑運(yùn)動(dòng)軌跡。實(shí)驗(yàn)已顯示,在隔行掃描B-半幀和隔行掃描B-幀的宏塊中使用4MV模式,而將4MV模式限于正向和反向預(yù)測(cè)宏塊中是有利的。有利于將4MV限于正向和反向模式中的另一個(gè)因素是組合4MV與直接或插值模式將導(dǎo)致每種情形中一共有8個(gè)運(yùn)動(dòng)向量。信號(hào)表示開(kāi)銷(用于插值模式)和實(shí)現(xiàn)以及關(guān)聯(lián)于8個(gè)運(yùn)動(dòng)向量的解碼復(fù)雜性通常抵銷了準(zhǔn)確性優(yōu)點(diǎn)。此外,當(dāng)通常在較高質(zhì)量設(shè)置上編碼的(即較不強(qiáng)烈量化的)P-圖片通??蓛H將一個(gè)或四個(gè)運(yùn)動(dòng)向量用于運(yùn)動(dòng)補(bǔ)償時(shí),用8個(gè)運(yùn)動(dòng)向量來(lái)編碼隔行掃描B-圖片通常是不實(shí)用的。將4MV限于某些預(yù)測(cè)模式還具有其它優(yōu)點(diǎn)。例如,如果4MV僅限于正向和反向預(yù)測(cè)模式,并且如果正向/非正向模式?jīng)Q定已用信號(hào)表示(例如用諸如在以下XI節(jié)所述的位平面編碼技術(shù)),編碼器無(wú)需發(fā)送任何附加比特來(lái)用信號(hào)表示4MV宏塊的預(yù)測(cè)模式。以下偽碼可應(yīng)用于隔行掃描B-半幀的宏塊,其中正向/非正向決定是位平面編碼的,并在任何宏塊級(jí)別信息之前發(fā)送(例如在圖片級(jí)別上發(fā)送)IfMB是4MV編碼的AND預(yù)測(cè)模式是非正向的then預(yù)測(cè)模式=反向(不發(fā)送任何更多比特來(lái)用信號(hào)表示模式)在一些實(shí)現(xiàn)中,直接/非直接預(yù)測(cè)模式?jīng)Q定在任何宏塊級(jí)別信息之前發(fā)送(例如在圖片級(jí)別上的經(jīng)壓縮位平面中)。(對(duì)于有關(guān)編碼直接/非直接信息的更多信息,參見(jiàn)序列號(hào)為10/622,378的題為"AdvancedBi-DirectionalPredictiveCodingofVideoFrames"(視頻幀的高級(jí)雙向預(yù)測(cè)編碼)并于2003年7月18日提交的美國(guó)專利申請(qǐng)。)以下偽碼可應(yīng)用于隔行掃描B-幀的宏塊,其中4MV在這些實(shí)現(xiàn)中受限于正向和反向模式IfMB是4MV編碼的AND預(yù)測(cè)模式是非正向的then發(fā)送一附加比特來(lái)用信號(hào)表示預(yù)測(cè)模式(正向或反向)或者,4MV用于不同于或除正向或反向模式之外的預(yù)測(cè)模式、不用于正向模式、不用于反向模式、或不用于任何預(yù)測(cè)模式。例如,在一些實(shí)現(xiàn)中,4MV用于隔行掃描B-半幀,但不用于隔行掃描B-幀。在其它可選實(shí)現(xiàn)中,其它代碼或代碼長(zhǎng)度可用于用信號(hào)表示結(jié)合4MV編碼的預(yù)測(cè)模式。IX.使用分開(kāi)的正向和反向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)隔行掃描B-圖片中的運(yùn)動(dòng)隔行掃描B-圖片的運(yùn)動(dòng)向量使用分開(kāi)的正向和反向運(yùn)動(dòng)向量上下文來(lái)預(yù)測(cè)。一般而言,正向運(yùn)動(dòng)向量使用存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)中的運(yùn)動(dòng)向量來(lái)預(yù)測(cè),而反向運(yùn)動(dòng)向量使用存儲(chǔ)在反向運(yùn)動(dòng)向量緩沖區(qū)中的運(yùn)動(dòng)向量來(lái)預(yù)測(cè)。然后當(dāng)前宏塊的結(jié)果運(yùn)動(dòng)向量存儲(chǔ)在適當(dāng)?shù)木彌_區(qū)中,并可用于其它宏塊的后續(xù)運(yùn)動(dòng)向量預(yù)測(cè)值中。通常,正向和反向運(yùn)動(dòng)向量緩沖區(qū)中的相應(yīng)空間都為每個(gè)宏塊填充,即使給定宏塊僅用正向運(yùn)動(dòng)向量(在正向預(yù)測(cè)宏塊的情形中)或僅用反向運(yùn)動(dòng)向量(在反向預(yù)測(cè)宏塊的情形中)預(yù)測(cè)。以下各節(jié)描述用于預(yù)測(cè)隔行掃描B-圖片(如,隔行掃描B-半幀,隔行掃描B-幀)中的運(yùn)動(dòng)向量,以及用于為"遺漏"的正向或反向運(yùn)動(dòng)向量"填充"運(yùn)動(dòng)向量緩沖區(qū)中的相應(yīng)空間的技術(shù)。A.正向和反向緩沖區(qū)當(dāng)預(yù)測(cè)隔行掃描B-圖片的運(yùn)動(dòng)向量時(shí),編碼器/解碼器使用正向運(yùn)動(dòng)向量緩沖區(qū)和/或反向運(yùn)動(dòng)向量緩沖區(qū)中的先前重構(gòu)的運(yùn)動(dòng)向量。在正向模式中,編碼器/解碼器使用來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的經(jīng)重構(gòu)正向運(yùn)動(dòng)向量,來(lái)預(yù)測(cè)用于正向運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前運(yùn)動(dòng)向量。在反向模式中,編碼器/解碼器使用來(lái)自反向運(yùn)動(dòng)向量緩沖區(qū)的經(jīng)重構(gòu)反向運(yùn)動(dòng)向量,來(lái)預(yù)測(cè)用于反向運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前運(yùn)動(dòng)向量。對(duì)于直接模式或插值模式宏塊,編碼器/解碼器使用正向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)正向運(yùn)動(dòng)向量分量(或可能多個(gè)正向運(yùn)動(dòng)分量),并使用反向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)反向運(yùn)動(dòng)向量分量(或可能多個(gè)反向運(yùn)動(dòng)分量)。在重構(gòu)隔行掃描B-圖片的運(yùn)動(dòng)向量之后,編碼器/解碼器將重構(gòu)后的正向運(yùn)動(dòng)向量緩存在正向運(yùn)動(dòng)向量緩沖區(qū)中,并將重構(gòu)后的反向運(yùn)動(dòng)向量緩存在反向運(yùn)動(dòng)向量緩沖區(qū)中。在正向模式中,編碼器/解碼器將重構(gòu)后的正向運(yùn)動(dòng)向量存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)中。在反向模式中,編碼器/解碼器將重構(gòu)后的反向運(yùn)動(dòng)向量存儲(chǔ)在反向運(yùn)動(dòng)向量緩沖區(qū)中。對(duì)于使用直接或插值預(yù)測(cè)模式的宏塊,編碼器/解碼器將(各)正向運(yùn)動(dòng)向量分量存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)中,并將(各)反向運(yùn)動(dòng)向量分量存儲(chǔ)在反向運(yùn)動(dòng)向量緩沖區(qū)中。例如,如果編碼器在隔行掃描B-圖片中的宏塊坐標(biāo)位置(12,13)上編碼正向預(yù)測(cè)宏塊時(shí),則編碼器計(jì)算正向運(yùn)動(dòng)向量預(yù)測(cè)值并在比特流中發(fā)送該正向運(yùn)動(dòng)向量的殘差(假設(shè)該宏塊未被"跳過(guò)")。解碼器解碼該殘差(即差值),并重構(gòu)運(yùn)動(dòng)向量。編碼器/解碼器將重構(gòu)后的運(yùn)動(dòng)向量插入正向運(yùn)動(dòng)向量緩沖區(qū)。然后編碼器/解碼器使用運(yùn)動(dòng)向量預(yù)測(cè)邏輯來(lái)計(jì)算要填充反向運(yùn)動(dòng)向量的反向運(yùn)動(dòng)向量預(yù)測(cè)值,并將反向運(yùn)動(dòng)向量置于反向運(yùn)動(dòng)向量緩沖區(qū)中的位置(12,13)上。例如,在三者中值的預(yù)測(cè)情形中,編碼器/解碼器可取位置(11,13)、(12,12)和(13,12)上的緩存反向運(yùn)動(dòng)向量的中值(當(dāng)前正向預(yù)測(cè)宏塊的左、上、右上鄰居),來(lái)填充(12,13)的反向運(yùn)動(dòng)向量。圖44示出使用正向和/或反向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)隔行掃描B-圖片中當(dāng)前宏塊的運(yùn)動(dòng)向量的一種技術(shù)4400。在4410,取決于要預(yù)測(cè)的運(yùn)動(dòng)向量是正向還是反向運(yùn)動(dòng)向量,編碼器/解碼器選擇使用正向還是反向運(yùn)動(dòng)向量緩沖區(qū)。如果當(dāng)前運(yùn)動(dòng)向量是正向運(yùn)動(dòng)向量,則編碼器/解碼器在4420從正向運(yùn)動(dòng)向量緩沖區(qū)選擇一個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值集。如果當(dāng)前運(yùn)動(dòng)向量是反向運(yùn)動(dòng)向量,則編碼器/解碼器在4430從反向運(yùn)動(dòng)向量緩沖區(qū)選擇一個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值集。在4440,編碼器/解碼器基于候選運(yùn)動(dòng)向量預(yù)測(cè)值集計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值。例如,編碼器/解碼器計(jì)算候選運(yùn)動(dòng)向量預(yù)測(cè)值集的中值。在簡(jiǎn)單情形中,編碼器/解碼器基于都是1MV宏塊的預(yù)測(cè)值計(jì)算1MV當(dāng)前宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值。更復(fù)雜的變化描述如下,其中當(dāng)前宏塊和/或鄰居宏塊具有不同模式。圖45示出正向運(yùn)動(dòng)向量緩沖區(qū)4510和反向運(yùn)動(dòng)向量緩沖區(qū)4520中的運(yùn)動(dòng)向量。在圖45所示示例中,對(duì)于重構(gòu)宏塊4530-4570,編碼器/解碼器將正向運(yùn)動(dòng)向量存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)4510中,并將反向運(yùn)動(dòng)向量存儲(chǔ)在反向運(yùn)動(dòng)向量緩沖區(qū)4520中。為了預(yù)測(cè)當(dāng)前宏塊4580的運(yùn)動(dòng)向量,編碼器/解碼器使用來(lái)自相鄰宏塊的候選預(yù)測(cè)值。例如,如果當(dāng)前宏塊4580用正向模式預(yù)測(cè),則編碼器使用正向運(yùn)動(dòng)向量緩沖區(qū)中的相鄰正向運(yùn)動(dòng)向量來(lái)預(yù)測(cè)正向運(yùn)動(dòng)向量(例如使用三者中值預(yù)測(cè)),隨后用重構(gòu)后的運(yùn)動(dòng)向量值填充正向運(yùn)動(dòng)向量緩沖區(qū)中的當(dāng)前宏塊位置。為了填充反向運(yùn)動(dòng)向量緩沖區(qū)4520中的相應(yīng)當(dāng)前宏塊位置,編碼器/解碼器可使用反向運(yùn)動(dòng)向量緩沖區(qū)中的相鄰反向運(yùn)動(dòng)向量來(lái)預(yù)測(cè)反向運(yùn)動(dòng)向量,并將該預(yù)測(cè)值置于反向運(yùn)動(dòng)向量緩沖區(qū)的當(dāng)前宏塊的位置中。B.隔行掃描B-幀中的運(yùn)動(dòng)向量預(yù)測(cè)在一些實(shí)現(xiàn)中,編碼器/解碼器采用以下方案來(lái)預(yù)測(cè)隔行掃描B-幀中宏塊(包括其不同半幀)的運(yùn)動(dòng)向量,它使用分開(kāi)的正向和反向運(yùn)動(dòng)向量上下文。圖40A-40B示出從中收集候選運(yùn)動(dòng)向量的相鄰宏塊。如果1MV宏塊是正向預(yù)測(cè)的,則編碼器/解碼器從正向運(yùn)動(dòng)向量緩沖區(qū)的候選運(yùn)動(dòng)向量中預(yù)測(cè)其正向運(yùn)動(dòng)向量(例如使用諸如圖40A和40B中或別處示出的三者中值預(yù)測(cè)和預(yù)測(cè)模式)。編碼器/解碼器(在添加運(yùn)動(dòng)向量預(yù)測(cè)誤差后)將該正向運(yùn)動(dòng)向量存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)中。編碼器/解碼器通過(guò)從反向運(yùn)動(dòng)向量緩沖區(qū)的候選運(yùn)動(dòng)向量中預(yù)測(cè)反向運(yùn)動(dòng)向量來(lái)填充"空穴"(例如與正向預(yù)測(cè)情形中一樣),并將該反向運(yùn)動(dòng)向量(在此為預(yù)測(cè)值)存儲(chǔ)在反向運(yùn)動(dòng)向量緩沖區(qū)中。如果1MV宏塊是反向預(yù)測(cè)的,則編碼器/解碼器從反向運(yùn)動(dòng)向量緩沖區(qū)的候選運(yùn)動(dòng)向量中預(yù)測(cè)其反向運(yùn)動(dòng)向量(例如與正向預(yù)測(cè)情形中一樣)。編碼器/解碼器(在添加預(yù)測(cè)誤差后)將該反向運(yùn)動(dòng)向量存儲(chǔ)在反向運(yùn)動(dòng)向量緩沖區(qū)中。編碼器/解碼器通過(guò)從正向運(yùn)動(dòng)向量緩沖區(qū)的候選運(yùn)動(dòng)向量中預(yù)測(cè)正向運(yùn)動(dòng)向量來(lái)填充"空穴",并將該正向運(yùn)動(dòng)向量(在此為預(yù)測(cè)值)存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)中。在正向和反向運(yùn)動(dòng)向量緩沖區(qū)中略去作為幀內(nèi)編碼宏塊的鄰居。各種特定情形確定隔行掃描b-幀中1mv和半幀編碼2mv宏塊的組合。如果當(dāng)前1mv宏塊的位置a、b或c中的相鄰宏塊是半幀編碼的2mv宏塊,則編碼器/解碼器取2mv宏塊的半幀運(yùn)動(dòng)向量的均值作為該位置的運(yùn)動(dòng)向量預(yù)測(cè)值。對(duì)于正向預(yù)測(cè)的當(dāng)前2半幀mv宏塊,例如對(duì)于兩個(gè)正向預(yù)測(cè)半幀運(yùn)動(dòng)向量的每一個(gè),來(lái)自鄰居的候選運(yùn)動(dòng)向量從正向運(yùn)動(dòng)向量緩沖區(qū)中收集。編碼器/解碼器基于相鄰宏塊的編碼模式(例如幀內(nèi)、1mv、2半幀mv)選擇一個(gè)候選運(yùn)動(dòng)向量集,這些相鄰宏塊存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)中。如果相鄰宏塊存在且不是幀內(nèi)編碼的,則編碼器/解碼器注意該宏塊的運(yùn)動(dòng)向量以添加到候選集中去。在一些實(shí)施例中,編碼器/解碼器繼續(xù)如下動(dòng)作。對(duì)于上半幀正向運(yùn)動(dòng)向量,如果位置a、b或c中的相鄰宏塊是1mv宏塊,則編碼器將來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的相應(yīng)位置的宏塊的運(yùn)動(dòng)向量添加到候選集中。對(duì)于是2半幀mv宏塊的位置a、b或c中的相鄰宏塊,編碼器/解碼器將來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的相應(yīng)位置的上半幀mv添加到該集中。對(duì)于下半幀正向運(yùn)動(dòng)向量,如果位置a、b或c中的相鄰宏塊是1mv宏塊,則編碼器將來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的相應(yīng)位置的宏塊的運(yùn)動(dòng)向量添加到候選集中。對(duì)于是2半幀mv宏塊的位置a、b或c中的相鄰宏塊,編碼器/解碼器將來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的相應(yīng)位置的下半幀mv添加到該集中。為了計(jì)算2半幀mv宏塊的半幀運(yùn)動(dòng)向量的預(yù)測(cè)值,編碼器/解碼器然后計(jì)算候選集的中值。為了計(jì)算2半幀mv宏塊的反向預(yù)測(cè)運(yùn)動(dòng)向量,邏輯與正向預(yù)測(cè)情形相同,但來(lái)自鄰居的候選運(yùn)動(dòng)向量是從反向運(yùn)動(dòng)向量緩沖區(qū)中收集的。再一次,對(duì)于運(yùn)動(dòng)向量預(yù)測(cè),略去位置a、b或c中幀內(nèi)編碼的鄰居。在重構(gòu)2半幀mv宏塊的運(yùn)動(dòng)向量之后(例如通過(guò)添加運(yùn)動(dòng)向量差值信息),重構(gòu)后的實(shí)際運(yùn)動(dòng)向量按適合重構(gòu)后運(yùn)動(dòng)向量的預(yù)測(cè)方向,被置入正向運(yùn)動(dòng)向量緩沖區(qū)或反向運(yùn)動(dòng)向量緩沖區(qū)。運(yùn)動(dòng)向量緩沖區(qū)的用于缺少方向的相應(yīng)空槽通過(guò)計(jì)算缺少方向的運(yùn)動(dòng)向量預(yù)測(cè)值并將該運(yùn)動(dòng)向量預(yù)測(cè)值存儲(chǔ)在空槽中來(lái)填充。如果使用預(yù)測(cè)模式切換(參見(jiàn)以上vi節(jié)),一例外牽涉到隔行掃描b-幀內(nèi)半幀編碼宏塊的空穴填充。在該情形中,給定半幀編碼的2mv宏塊具有一個(gè)正向運(yùn)動(dòng)向量和一個(gè)反向運(yùn)動(dòng)向量。在重構(gòu)隔行掃描b-幀的半幀編碼宏塊之后,在半幀編碼宏塊在上半幀和下半幀之間切換預(yù)測(cè)方向時(shí),編碼器/解碼器用正向運(yùn)動(dòng)向量填充正向運(yùn)動(dòng)向量緩沖區(qū)的上下運(yùn)動(dòng)向量"槽",并用反向運(yùn)動(dòng)向量填充反向緩沖區(qū)的上下運(yùn)動(dòng)向量槽。盡管正向運(yùn)動(dòng)向量?jī)H對(duì)一個(gè)半幀(例如上半幀)發(fā)送,編碼器將同一運(yùn)動(dòng)向量置入正向運(yùn)動(dòng)向量緩沖區(qū)的上下半幀運(yùn)動(dòng)向量槽。類似地,盡管反向運(yùn)動(dòng)向量?jī)H對(duì)下半幀發(fā)送,編碼器將它置入反向運(yùn)動(dòng)向量緩沖區(qū)的上下半幀槽。例如,圖46示出正向運(yùn)動(dòng)向量緩沖區(qū)4610和反向運(yùn)動(dòng)向量緩沖區(qū)4620中重構(gòu)宏塊4680的上下半幀的運(yùn)動(dòng)向量。在圖46所示示例中,對(duì)于重構(gòu)宏塊4630-4670,編碼器/解碼器將正向運(yùn)動(dòng)向量存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)4610中,并將反向運(yùn)動(dòng)向量存儲(chǔ)在反向緩沖區(qū)4620中。重構(gòu)宏塊4680是用預(yù)測(cè)切換進(jìn)行半幀編碼的,且其上半幀運(yùn)動(dòng)向量被存儲(chǔ)在正向或反向運(yùn)動(dòng)向量緩沖區(qū)中(取決于上半幀運(yùn)動(dòng)向量的預(yù)測(cè)方向)的上下位置。宏塊4680的下半幀運(yùn)動(dòng)向量被存儲(chǔ)在其它運(yùn)動(dòng)向量緩沖區(qū)的上下位置中。在該示例中,重構(gòu)宏塊4680使用預(yù)測(cè)模式切換。盡管正向運(yùn)動(dòng)向量和方向運(yùn)動(dòng)向量都僅對(duì)一個(gè)半幀發(fā)送,但編碼器將同一運(yùn)動(dòng)向量置入相應(yīng)正向和反向運(yùn)動(dòng)向量緩沖區(qū)的上下半幀運(yùn)動(dòng)向量槽中。如果當(dāng)前宏塊被插值,則編碼器/解碼器使用正向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)正向運(yùn)動(dòng)向量(或2半幀MV宏塊的正向運(yùn)動(dòng)向量),使用反向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)反向運(yùn)動(dòng)向量(或2半幀MV宏塊的反向運(yùn)動(dòng)向量),并(在添加了一計(jì)算好就添加的預(yù)測(cè)誤差之后)將該正向和反向運(yùn)動(dòng)向量分別存儲(chǔ)在正向和反向運(yùn)動(dòng)向量緩沖區(qū)中。如果宏塊是在隔行掃描B-幀中直接預(yù)測(cè)的,則編碼器/解碼器可使用以上VII節(jié)描述的技術(shù)。在一些實(shí)現(xiàn)中,1MV宏塊、2半幀MV宏塊和幀內(nèi)宏塊被允許用于隔行掃描B-幀(但不是其它MV宏塊類型),因?yàn)橹恍枰_定較少的當(dāng)前/鄰居模式組合而簡(jiǎn)化了用于預(yù)測(cè)運(yùn)動(dòng)向量的邏輯。或者,允許其它和/或附加MV模式,諸如4幀MV宏塊和4半幀MV宏塊。例如,圖64、69和70中示出的偽碼的一部分可用來(lái)確定隔行掃描B-幀的這種其它組合。C.隔行掃描B-半幀的運(yùn)動(dòng)向量預(yù)測(cè)一般而言,對(duì)于隔行掃描B-半幀,先前重構(gòu)(或?qū)С?的正向半幀運(yùn)動(dòng)向量被用作當(dāng)前正向半幀運(yùn)動(dòng)向量的預(yù)測(cè)值,且先前重構(gòu)(或?qū)С?的反向半幀運(yùn)動(dòng)向量被用作當(dāng)前反向半幀運(yùn)動(dòng)向量的預(yù)測(cè)值。在正向或反向模式中,當(dāng)前正向或反向半幀的運(yùn)動(dòng)向量被添加到適當(dāng)?shù)倪\(yùn)動(dòng)向量緩沖區(qū)中,且另一(缺少)方向的運(yùn)動(dòng)向量(例如正向模式中的反向方向,或反向模式中的正向方向)被導(dǎo)出用作將來(lái)使用的預(yù)測(cè)值。在一些實(shí)現(xiàn)中,半幀運(yùn)動(dòng)向量預(yù)測(cè)選擇根據(jù)以上III.A.2節(jié)的詳細(xì)描述和以下XIV.B.3節(jié)描述的雙參考半幀運(yùn)動(dòng)向量預(yù)測(cè)邏輯進(jìn)行。例如,圖33A-33F中示出的偽碼用來(lái)計(jì)算隔行掃描B-半幀的宏塊的兩個(gè)半幀的正向運(yùn)動(dòng)向量預(yù)測(cè)值,且一個(gè)運(yùn)動(dòng)向量預(yù)測(cè)值被選擇用于重構(gòu)正向半幀的運(yùn)動(dòng)向量。然后將重構(gòu)的運(yùn)動(dòng)向量置于正向運(yùn)動(dòng)向量緩沖區(qū)中。該偽碼也用來(lái)計(jì)算該宏塊的兩個(gè)半幀的反向運(yùn)動(dòng)向量預(yù)測(cè)值,且一個(gè)預(yù)測(cè)值被選擇用作反向運(yùn)動(dòng)向量緩沖區(qū)的填充值。對(duì)于隔行掃描B-半幀,為了填充缺少方向的運(yùn)動(dòng)向量緩沖區(qū)中的"空穴",編碼器/解碼器在相同極性和相反極性的運(yùn)動(dòng)向量預(yù)測(cè)值之間選擇。這種極性之間的選擇因?yàn)閮蓚€(gè)預(yù)測(cè)值在給定缺少方向中產(chǎn)生一一個(gè)與當(dāng)前半幀極性相同,另一個(gè)與當(dāng)前半幀極性相反。因此,在一些實(shí)現(xiàn)中,編碼器/解碼器選擇用于缺少方向運(yùn)動(dòng)向量的主要或"主"極性預(yù)測(cè)值。這樣,正向和方向運(yùn)動(dòng)向量的完整集就被提供用于運(yùn)動(dòng)向量預(yù)測(cè)?;蛘撸_定主極性、首先進(jìn)行預(yù)測(cè)值選擇、并只計(jì)算選定運(yùn)動(dòng)向量預(yù)測(cè)值。在一實(shí)現(xiàn)中通過(guò)從不同極性的半幀運(yùn)動(dòng)向量預(yù)測(cè)值中選擇來(lái)進(jìn)行實(shí)際值緩存和空穴填充的過(guò)程如圖47中的偽碼4700所示。偽碼4700示出,在空穴填充預(yù)測(cè)期間,沒(méi)有實(shí)際運(yùn)動(dòng)向量被提供為缺少方向,因此具有主極性的經(jīng)預(yù)測(cè)的缺少方向運(yùn)動(dòng)向量由編碼器/解碼器來(lái)選擇。在一些實(shí)現(xiàn)中,隔行掃描B-半幀的運(yùn)動(dòng)向量預(yù)測(cè)的整個(gè)方案如下所述。如果宏塊是正向預(yù)測(cè)的,則編碼器/解碼器從正向運(yùn)動(dòng)向量緩沖區(qū)的候選相同和/或相反極性運(yùn)動(dòng)向量(例如大多數(shù)情形中使用來(lái)自左、上和右上鄰居的三者中值預(yù)測(cè))或從緩存運(yùn)動(dòng)向量中導(dǎo)出的運(yùn)動(dòng)向量中預(yù)測(cè)其正向運(yùn)動(dòng)向量。編碼器/解碼器將重構(gòu)后的正向運(yùn)動(dòng)向量存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)中,計(jì)算主反向運(yùn)動(dòng)向量預(yù)測(cè)值(類似于用來(lái)自反向運(yùn)動(dòng)向量緩沖區(qū)的空間鄰域的三者中值預(yù)測(cè)的),并將其存儲(chǔ)在反向運(yùn)動(dòng)向量緩沖區(qū)中的相應(yīng)位置。如果宏塊是反向預(yù)測(cè)的,則編碼器/解碼器從反向運(yùn)動(dòng)向量緩沖區(qū)的候選相同和/或相反極性運(yùn)動(dòng)向量(例如大多數(shù)情形中使用來(lái)自左、上和右上鄰居的三者中值預(yù)測(cè))或從緩存運(yùn)動(dòng)向量中導(dǎo)出的運(yùn)動(dòng)向量中預(yù)測(cè)其反向運(yùn)動(dòng)向量。編碼器/解碼器將重構(gòu)后的反向運(yùn)動(dòng)向量存儲(chǔ)在反向運(yùn)動(dòng)向量緩沖區(qū)中,計(jì)算主正向運(yùn)動(dòng)向量預(yù)測(cè)值(類似于用來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的空間鄰域的三者中值預(yù)測(cè)的),并將其存儲(chǔ)在正向運(yùn)動(dòng)向量緩沖區(qū)中的相應(yīng)位置。如果該宏塊是插值的,則編碼器/解碼器使用正向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)正向運(yùn)動(dòng)向量分量,使用反向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)反向運(yùn)動(dòng)向量分量,并(在添加了一計(jì)算好就添加的預(yù)測(cè)誤差之后)將重構(gòu)后的正向和反向運(yùn)動(dòng)向量分別存儲(chǔ)在正向和反向運(yùn)動(dòng)向量緩沖區(qū)中。如果宏塊是直接預(yù)測(cè)的,則編碼器/解碼器計(jì)算當(dāng)前半幀的直接模式運(yùn)動(dòng)向量,并將正向和反向運(yùn)動(dòng)向量分量存儲(chǔ)在相應(yīng)的運(yùn)動(dòng)向量緩沖區(qū)中。在運(yùn)動(dòng)向量預(yù)測(cè)中,略去位置A、B或C中幀內(nèi)編碼的鄰居。各種特定情形確定隔行掃描B-半幀中1MV和4MV宏塊的組合。圖6A-10示出用于逐行掃描P-幀的運(yùn)動(dòng)向量預(yù)測(cè)的預(yù)測(cè)值模式。這些相同模式示出被視為用于混合MV的隔行掃描B-半幀的1MV或4MV宏塊的運(yùn)動(dòng)向量的運(yùn)動(dòng)向量預(yù)測(cè)的候選運(yùn)動(dòng)向量的塊或宏塊的位置。對(duì)于幀是一個(gè)宏塊寬的特定情形,預(yù)測(cè)值總是PredicatorA(頂部預(yù)測(cè)值)。各種其它規(guī)則解決其它特定情形,諸如首行4MV宏塊、首行1MV宏塊、和幀內(nèi)編碼預(yù)測(cè)值。圖6A-10中所示的預(yù)測(cè)值模式用來(lái)使用來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)中各位置的候選值進(jìn)行正向預(yù)測(cè),并使用來(lái)自反向運(yùn)動(dòng)向量緩沖區(qū)中位置的候選值進(jìn)行反向預(yù)測(cè)。此外,圖6A-10中所示的預(yù)測(cè)值模式結(jié)合以上所述的對(duì)隔行掃描B-半幀的雙參考半幀運(yùn)動(dòng)向量預(yù)測(cè)邏輯來(lái)使用。圖6A和6B示出被視作用于混合MV的隔行掃描B-半幀中的1MV當(dāng)前宏塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置。相鄰的各個(gè)宏塊可以是1MV或4MV宏塊。圖6A和6B示出假設(shè)鄰居是4MV的候選運(yùn)動(dòng)向量的位置(即預(yù)測(cè)值A(chǔ)是當(dāng)前宏塊上面的宏塊中塊2的運(yùn)動(dòng)向量,而預(yù)測(cè)值C是當(dāng)前宏塊左側(cè)緊鄰的宏塊中塊1的運(yùn)動(dòng)向量)。如果鄰居的任一個(gè)是1MV宏塊,則圖5A和5B中示出的運(yùn)動(dòng)向量預(yù)測(cè)值被視為整個(gè)宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值。如圖6B所示,如果宏塊是該行中的最后一個(gè)宏塊,則預(yù)測(cè)值B來(lái)自左上方宏塊的塊3而不像其它情形一樣來(lái)自右上方宏塊的塊2。圖7A-10示出被視作用于混合MV的隔行掃描B-半幀的4MV宏塊中4個(gè)亮度塊的每一個(gè)的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置。圖7A和7B是示出被視作用于位置0上一個(gè)塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖;圖8A和8B是示出被視作用于位置1上一個(gè)塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖;圖9是示出被視作用于位置2上一個(gè)塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖;而圖10是示出被視作用于位置3上一個(gè)塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的塊的位置的示圖。再一次,如果鄰居是1MV宏塊,則該宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值用于該宏塊的各個(gè)塊。對(duì)于宏塊是行中第一宏塊的情形,塊0的預(yù)測(cè)值B與該行中剩余宏塊的塊0進(jìn)行不同的處理(參見(jiàn)圖7A和7B)。在該情形中,預(yù)測(cè)值B從當(dāng)前宏塊上面緊鄰宏塊的塊3中取得,而不像其它情形一樣從當(dāng)前宏塊左上方的宏塊的塊3中取得。類似地,對(duì)于宏塊是行中最后一個(gè)宏塊的情形,塊1的預(yù)測(cè)值B進(jìn)行不同的處理(參見(jiàn)圖8A和8B)。在該情形中,預(yù)測(cè)值從當(dāng)前宏塊上面緊鄰宏塊的塊2中取得,而不像其它情形一樣從當(dāng)前宏塊右上方的宏塊的塊2中取得。一般而言,如果該宏塊在第一宏塊列中,則塊0和2的預(yù)測(cè)值C被設(shè)置為等于0。再一次,對(duì)于運(yùn)動(dòng)向量預(yù)測(cè),略去位置A、B或C中幀內(nèi)編碼的鄰居。在重構(gòu)4MV宏塊的運(yùn)動(dòng)向量之后(例如通過(guò)添加運(yùn)動(dòng)向量差值信息),重構(gòu)后的實(shí)際運(yùn)動(dòng)向量按適合重構(gòu)后運(yùn)動(dòng)向量的預(yù)測(cè)方向,被置入正向運(yùn)動(dòng)向量緩沖區(qū)或反向運(yùn)動(dòng)向量緩沖區(qū)。運(yùn)動(dòng)向量緩沖區(qū)的用于缺少方向的相應(yīng)空槽通過(guò)計(jì)算缺少方向的相同和相反極性的運(yùn)動(dòng)向量預(yù)測(cè)值、在不同極性運(yùn)動(dòng)向量預(yù)測(cè)值之間選擇、并將該運(yùn)動(dòng)向量預(yù)測(cè)值存儲(chǔ)在空槽中來(lái)填充。再參看圖34A和34B,對(duì)于運(yùn)動(dòng)向量預(yù)測(cè),編碼器/解碼器使用偽碼3400中所示的縮放運(yùn)算,將一個(gè)半幀運(yùn)動(dòng)向量預(yù)測(cè)值從另一個(gè)半幀運(yùn)動(dòng)向量預(yù)測(cè)值導(dǎo)出。示出兩個(gè)可能的值集,其中當(dāng)前半幀是隔行掃描視頻幀中的第一半幀的情形在圖35的表格3500中示出,而當(dāng)前半幀是隔行掃描視頻幀中的第二半幀的情形在圖36的表格3600中示出。在表格3500和3600中,SCALEOPP、SCALESAME1、SCALESAME2、SCALEZONE1—X、SCALEZONEl一Y、ZONE10FFSET一X和ZO畫OFFSET_Y取決于參考幀距離。在一些實(shí)現(xiàn)中,使用分?jǐn)?shù)編碼來(lái)計(jì)算用于隔行掃描B-半幀中的正向和反向參考的參考幀距離。BFRACTION語(yǔ)法元素(它用信號(hào)表示隔行掃描B-半幀的正向或反向預(yù)測(cè)模式宏塊,而不只是隔行掃描B-幀的直接模式宏塊)用來(lái)導(dǎo)出正向和反向參考圖片距離,如以下偽碼所示正向參考幀距離(FRFD)=NINT((BFRACTION分子)/(BFRACTION分母)*參考幀距離-1If(FRFDO)thenFRFD=0反向參考幀距離(BRFD)=參考幀距離-FRFD-l(其中NINT是最近整數(shù)操作符)BFRACTION分子和分母從BFRACTION語(yǔ)法元素中解碼。元素BFRACTION可用來(lái)表示可在比特流中發(fā)送的不同分?jǐn)?shù)(例如在隔行掃描B-半幀的幀級(jí)別上)。該分?jǐn)?shù)在0和1之間的有限離散值集中取值,并在通過(guò)其錨形成的間隔內(nèi)標(biāo)示B-圖片的相對(duì)時(shí)間位置。對(duì)于具有隔行掃描B-半幀的幀中的第二半幀的正向預(yù)測(cè)和反向預(yù)測(cè),編碼器/解碼器根據(jù)圖34A和34B中的偽碼3400執(zhí)行運(yùn)動(dòng)向量縮放。然而,在一些實(shí)現(xiàn)中,執(zhí)行第一半幀的反向運(yùn)動(dòng)向量預(yù)測(cè)的編碼器/解碼器使用如在圖48中所示偽碼4800中定義的函數(shù)scaleforopposite—x、scaleforopposite—y、scaleforsame—x、scaleforsame—y。在一實(shí)現(xiàn)中用于第一隔行掃描B-半幀的SCALESAME、SCALE0PP1、SCALEOPP2、SCALEZ0NE1一X、SCALEZONE1—Y、ZONE1OFFSET—X和ZONElOFFSET_Y在圖49的表格4900中示出。在表格4900中,變量N和運(yùn)動(dòng)向量范圍之間的關(guān)系與以上參考圖35和36和表格1所述的關(guān)系相同?;蛘?,參考幀距離用另一種方法計(jì)算,或者縮放根據(jù)不同算法執(zhí)行。例如,縮放與N的值無(wú)關(guān)地執(zhí)行(即N取為1)。X.具有隔行掃描B-半幀的"自參考"幀具有隔行掃描B-半幀的幀被編碼為兩個(gè)獨(dú)立(且某種程度上獨(dú)立編碼的)的半幀。上半幀由幀的偶光柵行(從行0開(kāi)始)組成,而下半幀由幀的奇光柵行組成。因?yàn)?半幀圖片"中的半幀可獨(dú)立解碼,所以它們不需要以任何預(yù)先設(shè)置順序發(fā)送。例如,編碼器可先發(fā)送下半幀再發(fā)送上半幀,或反之。在有些實(shí)現(xiàn)中,兩個(gè)半幀的順序由"先上半幀"的語(yǔ)法元素表示,該語(yǔ)法元素取決于解碼幀的兩個(gè)半幀的準(zhǔn)確時(shí)間順序而為真或假?,F(xiàn)有的編碼器和解碼器己將前后錨幀(例如I-或P-幀)或前后錨幀中的半幀用作"參考"圖片,以執(zhí)行對(duì)當(dāng)前B-圖片的運(yùn)動(dòng)補(bǔ)償?,F(xiàn)有的編碼器和解碼器還限制B-圖片或其任何部分用作任何圖片的運(yùn)動(dòng)補(bǔ)償參考。然而,在所述技術(shù)和工具的一些實(shí)現(xiàn)中,一種或多種這些"規(guī)則"被放松。例如,在一些實(shí)現(xiàn)中,第一隔行掃描B-半幀參考來(lái)自前后錨圖片的第一和第二半幀。第二隔行掃描B-半幀參考作為"相反極性"半幀的來(lái)自當(dāng)前圖片的第一隔行掃描B-半幀和作為"相同極性"半幀的前一錨幀的相同極性半幀,以及來(lái)自下一錨圖片的第一和第二半幀。圖50B是示出隔行掃描視頻幀B2中兩個(gè)隔行掃描B-半幀的每一個(gè)的參考半幀的示圖。在圖50B所示示例中,要解碼的第一B-半幀(在此為上半幀)被允許參考正向(時(shí)間上過(guò)去)錨P1中的兩個(gè)參考半幀和來(lái)自反向(時(shí)間上將來(lái))錨P3中的兩個(gè)參考半幀,總共為4個(gè)參考半幀。B2的要解碼的第二隔行掃描B-半幀被允許參考來(lái)自同一隔行掃描視頻幀(因而打破了不允許B-圖片的各部分用作參考的慣例)的第一半幀和來(lái)自前一錨P1的一個(gè)參考半幀,以及來(lái)自將來(lái)錨P3的兩個(gè)半幀。為作比較,圖50A示出隔行掃描視頻幀的隔行掃描P-半幀遵守的慣例。實(shí)現(xiàn)這些隔行掃描B-半幀參考規(guī)則的技術(shù)和工具可提供更好的壓縮。隔行掃描視頻的半幀編碼對(duì)于編碼高運(yùn)動(dòng)是最為有效的,高運(yùn)動(dòng)即為在上半幀和下半幀之間有相當(dāng)運(yùn)動(dòng)時(shí)。例如,在該情形中,幀的上(且首先編碼的)半幀對(duì)于同一幀下半幀中的像素將是比從前一幀中(來(lái)自較遠(yuǎn)的時(shí)間距離)取得的上半幀好得多的預(yù)測(cè)值。由于它們之間較大的時(shí)間距離,當(dāng)運(yùn)動(dòng)較高時(shí)這些時(shí)間上將來(lái)的預(yù)測(cè)值提供弱得多的預(yù)測(cè)。此外,對(duì)于時(shí)間上更遠(yuǎn)的預(yù)測(cè)值來(lái)說(shuō)閉塞的可能性放大,這導(dǎo)致更多編碼昂貴的幀內(nèi)編碼宏塊。特別地,實(shí)驗(yàn)證實(shí)允許幀的第二個(gè)時(shí)間隔行掃描B-半幀參考同一幀的第一時(shí)間隔行掃描B-半幀可產(chǎn)生顯著的壓縮增益。XI.隔行掃描B-半幀中正向模式的位平面編碼如以上X節(jié)所述,在一些實(shí)現(xiàn)中,當(dāng)前幀的第二已編碼隔行掃描B-半幀可參考當(dāng)前幀的第一已編碼隔行掃描B-半幀。該"自參考"技術(shù)在具有高運(yùn)動(dòng)的幀的隔行掃描B-半幀中是有效的,因?yàn)楫?dāng)前幀的時(shí)間上較近的B-半幀常常是比時(shí)間上較遠(yuǎn)的錨半幀更好的預(yù)測(cè)值。當(dāng)具有隔行掃描B-半幀的幀具有較高運(yùn)動(dòng),且時(shí)間上第二隔行掃描B-半幀首選時(shí)間上第一隔行掃描B-半幀作為預(yù)測(cè)參考時(shí),第二隔行掃描B-半幀中宏塊的更有效預(yù)測(cè)模式將常常是"正向"模式。因?yàn)楦粜袙呙鐱-半幀中的正向模式預(yù)測(cè)是用于降低比特率的有效工具,所以特別是在低比特率情形中,減少信號(hào)表示開(kāi)銷以降低用信號(hào)表示正向模式預(yù)測(cè)的整體成本是有利的。因此,在一些實(shí)施例中,編碼器使用統(tǒng)一的位平面編碼技術(shù)來(lái)編碼正向模式預(yù)測(cè)信息。例如,編碼器編碼壓縮位平面中的正向模式預(yù)測(cè)信息,其中位平面中的每個(gè)比特關(guān)聯(lián)于一宏塊,且每個(gè)比特的值用信號(hào)表示該宏塊是用正向模式還是用非正向預(yù)測(cè)模式編碼。經(jīng)壓縮位平面可在幀級(jí)別、半幀級(jí)別或在一些其它級(jí)別上發(fā)送。與用于隔行掃描B-半幀的其它預(yù)測(cè)模式相比,位平面編碼技術(shù)偏向于利用正向模式。例如,如果隔行掃描B-半幀上的大多數(shù)宏塊使用正向預(yù)測(cè),則編碼器通過(guò)位平面編碼正向/非正向決定,可將信號(hào)表示開(kāi)銷降為每個(gè)宏塊小于一個(gè)比特。圖51示出在具有一個(gè)或多個(gè)位平面編碼模式的視頻編碼器中用于編碼隔行掃描B-半幀的宏塊的正向/非正向預(yù)測(cè)模式?jīng)Q定信息的一種技術(shù)5100。圖52示出用于解碼由具有一個(gè)或多個(gè)位平面編碼模式的視頻編碼器編碼的正向/非正向預(yù)測(cè)模式?jīng)Q定信息的相應(yīng)技術(shù)5200。。參照?qǐng)D51,編碼器選擇用于編碼正向/非正向預(yù)測(cè)模式?jīng)Q定信息的位平面編碼模式(5110)。在選擇編碼模式之后,編碼器用所選模式來(lái)編碼正向/非正向預(yù)測(cè)模式?jīng)Q定信息(5120)。該編碼器在逐個(gè)半幀基礎(chǔ)上選擇位平面編碼模式?;蛘?,編碼器在一些其它基礎(chǔ)上(例如在序列級(jí)別)選擇位平面編碼模式?;蛘?,如果只使用一種位平面編碼模式,則不進(jìn)行位平面編碼模式的選擇。當(dāng)編碼器完成編碼正向/非正向預(yù)測(cè)模式?jīng)Q定信息時(shí)(5130),正向/非正向預(yù)測(cè)模式?jīng)Q定信息的編碼結(jié)束。參照?qǐng)D52,解碼器確定編碼器使用(并用信號(hào)表示)的編碼正向/非正向預(yù)測(cè)模式?jīng)Q定信息的位平面編碼模式(5210)。然后該解碼器用選定模式解碼正向/非正向預(yù)測(cè)模式?jīng)Q定信息。該解碼器在逐個(gè)半幀基礎(chǔ)上確定位平面編碼模式。或者,解碼器在一些其它基礎(chǔ)上(例如在序列級(jí)別)確定位平面編碼模式?;蛘?,如果只有一種位平面編碼模式可用,則不進(jìn)行位平面編碼模式的選擇。當(dāng)解碼器完成解碼正向/非正向預(yù)測(cè)模式?jīng)Q定信息時(shí)(5230),正向/非正向預(yù)測(cè)模式?jīng)Q定信息的解碼結(jié)束。對(duì)于有關(guān)根據(jù)若干組合實(shí)現(xiàn)來(lái)用信號(hào)表示和解碼各種位平面編碼模式的其它細(xì)節(jié),參見(jiàn)以下XIV節(jié)。對(duì)于有關(guān)一般位平面編碼的更多細(xì)節(jié),參見(jiàn)序列號(hào)為10/321,415題為"SkipMacroblockCoding"(跳過(guò)宏塊編碼)并于2002年12月16日提交的美國(guó)專利申請(qǐng),其公開(kāi)內(nèi)容通過(guò)引用結(jié)合在此?;蛘?,表示正向/非正向模式信息的比特可未經(jīng)壓縮地和/或在一些其它級(jí)別(例如宏塊級(jí)別)上發(fā)送。如果指示的是非正向預(yù)測(cè),則編碼器指定該宏塊的非正向預(yù)測(cè)模式(例如反向模式、直接模式、插值模式、或幀內(nèi)模式)。在一些實(shí)現(xiàn)中,編碼器在宏塊級(jí)別參照VLC表格編碼非正向預(yù)測(cè)模式,如以下表格2所示。<table>tableseeoriginaldocumentpage63</column></row><table>表格2.運(yùn)動(dòng)預(yù)測(cè)模式VLC表格在表格2所示示例中,反向模式是較佳的非正向預(yù)測(cè)模式。編碼器用1-比特信號(hào)表示反向模式,并用2-比特信號(hào)表示直接和插值模式?;蛘撸幋a器使用不同代碼來(lái)表示不同的預(yù)測(cè)模式和/或首選一種不同的非正向預(yù)測(cè)模式。在一些實(shí)現(xiàn)中,幀內(nèi)模式由特定運(yùn)動(dòng)向量差值來(lái)作信號(hào)表示,該值用預(yù)測(cè)模式是幀內(nèi)模式的編碼方式來(lái)表示。運(yùn)動(dòng)向量差值因此用來(lái)推斷該宏塊是幀內(nèi)編碼的,但是按照慣例編碼器將預(yù)測(cè)類型設(shè)置為反向,以便于不會(huì)具有任何未定義預(yù)測(cè)類型。XII.在隔行掃描B-半幀中選擇用于直接模式的共處運(yùn)動(dòng)向量在一些實(shí)現(xiàn)中,半幀編碼B-圖片中宏塊的直接模式運(yùn)動(dòng)向量使用特殊邏輯來(lái)選擇。對(duì)于隔行掃描B-半幀中的當(dāng)前宏塊,如果下一錨圖片的相應(yīng)半幀的共處宏塊使用4個(gè)運(yùn)動(dòng)向量進(jìn)行編碼,則該邏輯在該共處宏塊的最多達(dá)四個(gè)運(yùn)動(dòng)向量中偏向更主要的極性(例如相同或相反)。一旦選擇了用于當(dāng)前宏塊的運(yùn)動(dòng)向量,編碼器/解碼器就可應(yīng)用縮放運(yùn)算以給出直接模式運(yùn)動(dòng)向量。在一些實(shí)現(xiàn)中,對(duì)于隔行掃描B-半幀的直接模式1MV宏塊,編碼器/解碼器基于具有相同極性的參考半幀(例如時(shí)間上的下一P-半幀)內(nèi)共處宏塊的一個(gè)或多個(gè)運(yùn)動(dòng)向量,計(jì)算用于直接模式縮放的運(yùn)動(dòng)向量。如果參考半幀中的共處宏塊是1MV宏塊,則編碼器/解碼器使用單個(gè)運(yùn)動(dòng)向量來(lái)導(dǎo)出隔行掃描B-半幀中宏塊的直接模式運(yùn)動(dòng)向量。另一方面,如果參考半幀中的共處宏塊是4MV宏塊,則編碼器/解碼器在選擇用于導(dǎo)出隔行掃描B-半幀中宏塊的直接模式運(yùn)動(dòng)向量的運(yùn)動(dòng)向量時(shí)考慮該4個(gè)運(yùn)動(dòng)向量的極性(偏向主要極性)。在解碼隔行掃描B-半幀期間編碼器/解碼器在需要時(shí)可將該選擇邏輯應(yīng)用于參考半幀中的4MV宏塊?;蛘?,編碼器/解碼器可在解碼參考半幀之后應(yīng)用該選擇邏輯,然后僅緩存要在后來(lái)隔行掃描B-半幀解碼中使用的值。例如,對(duì)于參考半幀中的共處4MV宏塊,如果(4者中)來(lái)自相同極性半幀的運(yùn)動(dòng)向量數(shù)量超過(guò)來(lái)自相反極性半幀的運(yùn)動(dòng)向量數(shù)量,則如果相同極性運(yùn)動(dòng)向量的數(shù)量分別為4、3、2或1,編碼器/解碼器可使用四者中值、三者中值、二者中值或相同極性半幀運(yùn)動(dòng)向量的值來(lái)計(jì)算在直接模式隔行掃描B-半幀解碼中使用的運(yùn)動(dòng)向量。否則,如果來(lái)自相反極性半幀的運(yùn)動(dòng)向量數(shù)量超過(guò)來(lái)自相同極性半幀的運(yùn)動(dòng)向量,則編碼器/解碼器可使用類似運(yùn)算來(lái)從相反極性半幀的運(yùn)動(dòng)向量中得到代表性的運(yùn)動(dòng)向量,以用于直接模式的隔行掃描B-半幀解碼。如果共處宏塊的四個(gè)運(yùn)動(dòng)向量的原始集中(不管極性)兩個(gè)以上運(yùn)動(dòng)向量是幀內(nèi)編碼的,則編碼器/解碼器可將共處代表性運(yùn)動(dòng)向量簡(jiǎn)單地視為是幀內(nèi)編碼的(即(0,0))。然而,在一些實(shí)現(xiàn)中,隔行掃描B-半幀中的所有幀內(nèi)MB都被編碼為1MV,所以原始的4個(gè)運(yùn)動(dòng)向量中的兩個(gè)以上為幀內(nèi)編碼的情形導(dǎo)致共處代表性運(yùn)動(dòng)向量被視為是幀內(nèi)編碼在實(shí)際上不可能。圖53中的偽碼5300示出對(duì)用作隔行掃描B-半幀中直接模式運(yùn)動(dòng)向量的基礎(chǔ)的運(yùn)動(dòng)向量的選擇過(guò)程。在一些實(shí)現(xiàn)中,該選擇過(guò)程是產(chǎn)生正向和反向指示直接模式運(yùn)動(dòng)向量的縮放運(yùn)算的前身。XIII.隔行掃描視頻幀中的幀內(nèi)編碼B-半幀隔行掃描BI-半幀(或"幀內(nèi)B-半幀")是與其參考圖片獨(dú)立編碼的半幀。在隔行掃描BI-半幀不可用作預(yù)測(cè)其它圖片的錨的意義上,它們不同于其它幀內(nèi)半幀(例如隔行掃描I-半幀)。沒(méi)有對(duì)隔行掃描BI-半幀的圖片間依賴性,且它在比特流中的出現(xiàn)不表示可獨(dú)立解碼分段或圖片組的開(kāi)始。然而,隔行掃描視頻幀中的第一半幀如果被編碼為BI-半幀,則可用來(lái)預(yù)測(cè)該幀中可被編碼為隔行掃描B-半幀的第二個(gè)半幀。這種革新還通過(guò)在許多情形中僅對(duì)幀的一半(第一編碼半幀)使用幀內(nèi)編碼而不將整個(gè)幀編碼為內(nèi)幀或?qū)蓚€(gè)半幀編碼為幀內(nèi)半幀,來(lái)改進(jìn)整體壓縮。在一些實(shí)現(xiàn)中,幀可包括兩個(gè)B-半幀、兩個(gè)BI-半幀、或一個(gè)B-或一個(gè)BI-半幀。使用隔行掃描BI-半幀而不使用隔行掃描I-半幀是有理由的。一個(gè)理由是避免犧牲時(shí)間可縮放性。例如,當(dāng)解碼器提交數(shù)字視頻且需要立即丟棄一些圖片以跟上處理需求時(shí),它可尋找它可能丟棄的半幀序列。如果序列中的幀內(nèi)半幀變成關(guān)鍵半幀,則解碼器將被迫解碼它們以用作其它半幀的參考,并且不能丟棄它們。然而,如果序列中的幀內(nèi)半幀被編碼為BI-半幀,則解碼器將仍然有丟棄它們的選擇,而不損害后續(xù)運(yùn)動(dòng)補(bǔ)償。在隔行掃描BI-半幀更有效地用信號(hào)表示用于幀內(nèi)編碼和解碼的語(yǔ)法元素的意義上,隔行掃描BI-半幀不同于具有幀內(nèi)宏塊的隔行掃描B-半幀,因?yàn)锽I-半幀內(nèi)運(yùn)動(dòng)補(bǔ)償相關(guān)元素(或信號(hào)表示其缺失的元素)可被消除。換言之,當(dāng)在視頻序列中的幀間半幀預(yù)測(cè)中斷點(diǎn)上(例如因?yàn)閳?chǎng)景變化或復(fù)雜運(yùn)動(dòng))編碼隔行掃描B-半幀時(shí),使用隔行掃描BI-半幀(而不是常規(guī)B-半幀)的理由產(chǎn)生。常常這種半幀中的大多數(shù)宏塊將需要編碼為幀內(nèi)宏塊。在該情形中,根據(jù)比特率來(lái)看,要將整個(gè)B-半幀編碼為一個(gè)BI-半幀常常比發(fā)送該半幀中每個(gè)宏塊的預(yù)測(cè)模式信息要容易。當(dāng)對(duì)隔行掃描B-半幀的較好預(yù)測(cè)或運(yùn)動(dòng)補(bǔ)償不可能時(shí),它可被編碼為BI-半幀。在一些實(shí)現(xiàn)中,編碼器可用信號(hào)表示比特流中作為圖片類型的可能值之一的BI-半幀的出現(xiàn)?;蛘撸珺I-半幀的出現(xiàn)可用一些其它方法來(lái)指示。XIV.組合實(shí)現(xiàn)現(xiàn)在描述對(duì)比特流語(yǔ)法、語(yǔ)義和解碼器的詳細(xì)組合實(shí)現(xiàn),以及與主要組合實(shí)現(xiàn)有細(xì)微差異的另一組合實(shí)現(xiàn)。A.比特流語(yǔ)法在各種組合實(shí)現(xiàn)中,用于隔行掃描B-圖片的數(shù)據(jù)以具有多個(gè)層(例如,序列、幀、半幀、宏塊、塊和/或子塊層)的比特流形式呈現(xiàn)。對(duì)于具有隔行掃描B-半幀和/或BI-半幀的隔行掃描視頻幀,幀級(jí)別比特流元素如圖54所示。每個(gè)幀的數(shù)據(jù)包括幀頭,隨后是半幀層的數(shù)據(jù)(示為每個(gè)半幀的重復(fù)"FieldPicLayer"元素)。組成隔行掃描B-半幀和BI-半幀的半幀頭的比特流元素分別如圖55和56所示。組成隔行掃描B-半幀(幀內(nèi)、1MV、或4MV宏塊)和BI-半幀的宏塊層的比特流元素分別如圖57和58所示。對(duì)于隔行掃描B-幀,幀級(jí)別比特流元素如圖59所示。每個(gè)幀的數(shù)據(jù)包括幀頭,隨后是宏塊層的數(shù)據(jù)。組成隔行掃描B-幀的宏塊層的比特流元素(幀內(nèi)或各種幀間類型宏塊)如圖60所示。以下小節(jié)描述幀、半幀和宏塊層中的選定比特流元素,它們與相關(guān)于雙向預(yù)測(cè)隔行掃描圖片的信號(hào)表示相關(guān)。盡管選定比特流元素在特定層的上下文中描述,但一些比特流元素可在一個(gè)以上層中使用。1.選定幀層元素圖54是示出包含隔行掃描B-半幀或BI-半幀(或可能其它類隔行掃描半幀)的幀的幀級(jí)別比特流語(yǔ)法的示圖。圖59是示出隔行掃描B-幀的幀級(jí)別比特流語(yǔ)法的示圖。特定的比特流元素如下所述。幀編碼模式(FCM)(可變大小)FCM是用來(lái)表示圖片編碼類型的可變長(zhǎng)度代碼字["VLC"]。FCM具有如以下表格3所示的幀編碼模式的值。表格3.幀編碼模式VLC<table>tableseeoriginaldocumentpage66</column></row><table>半幀圖片類型(FPTYPE)(3個(gè)比特)FPTYPE是包括隔行掃描P-半幀、隔行掃描I-半幀、隔行掃描B-半幀和/或隔行掃描BI半幀的幀的幀頭中提供的3-比特語(yǔ)法元素。FPTYPE具有隔行掃描視頻幀中半幀類型的不同組合的值,如下表4所示。<table>tableseeoriginaldocumentpage67</column></row><table>表格5中的最后一行表示用來(lái)表示大于2的參考幀距離的代碼字。這些被編碼為(二進(jìn)制)11,隨后是N-3ls,其中N是參考幀距離。代碼字中最后一個(gè)比特為O。例如N=3,VLC代碼字410,VLC大小=3N=4,VLC代碼字-1110,VLC大小=4N=5,VLC代碼字-11110,VLC大小=5圖片類型(PTYPE)(可變大小)PTYPE是隔行掃描B-幀(或其它類型的隔行掃描幀,諸如隔行掃描I-幀、或隔行掃描P-幀)的幀頭中提供的可變大小的語(yǔ)法元素。PTYPE具有不同幀類型的值,如以下表格6所示。表格6.圖片類型VLC<table>tableseeoriginaldocumentpage67</column></row><table>如果PTYPE指示該幀被跳過(guò),則該幀被視為與其參考幀等同的P幀。被跳過(guò)幀的重構(gòu)在概念上等同于復(fù)制該參考幀。被跳過(guò)幀意思是沒(méi)有該幀的其它數(shù)據(jù)被傳送。B-幀直接模式MB比特語(yǔ)法元素(DIRECTMB)(可變大小)DIRECTMB語(yǔ)法元素使用位平面編碼來(lái)表示B圖片(在此為隔行掃描B-幀)中以直接模式編碼的宏塊。DIRECTMB語(yǔ)法元素還可用信號(hào)表示該直接模式是用原始模式來(lái)作信號(hào)表示的,在該情形中直接模式在隔行掃描B-幀的宏塊的宏塊級(jí)別上作信號(hào)表示。經(jīng)擴(kuò)展的MV范圍標(biāo)記(MVRANGE)(可變大小)MVRANGE是在序列層EXTENDED一MV比特被設(shè)置為1時(shí)提供的可變大小的語(yǔ)法元素。MVRANGEVLC表示運(yùn)動(dòng)向量范圍。經(jīng)擴(kuò)展的差值MV范圍標(biāo)記(DMVRANGE)(可變大小)DMVRANGE是如果序列層語(yǔ)法元素EXTENDED_DMV=1時(shí)提供的可變大小的語(yǔ)法元素,該DMVRANGEVLC表示運(yùn)動(dòng)向量差值范圍。宏塊模式表格(MBMODETAB)(2或3個(gè)比特)MBMODETAB語(yǔ)法元素是固定長(zhǎng)度的字段。對(duì)于隔行掃描P-半幀,MBMODETAB是3比特值,表示8個(gè)哈夫曼表格的哪一個(gè)用來(lái)解碼宏塊層中的宏塊模式語(yǔ)法元素(MBMODE)。運(yùn)動(dòng)向量表格(MVTAB)(2或3個(gè)比特)MVTAB語(yǔ)法元素是2或3個(gè)比特的值。對(duì)于NUMREF=1的隔行掃描P-半幀,MVTAB是表示8個(gè)隔行掃描哈夫曼表格的哪一個(gè)用來(lái)解碼運(yùn)動(dòng)向量的數(shù)據(jù)的3比特語(yǔ)法元素。2MV塊模式表格(2MVBPTAB)(2個(gè)比特)2MVBPTAB語(yǔ)法元素是2個(gè)比特的值,它表示4個(gè)哈夫曼表格的哪一個(gè)用來(lái)解碼2MV半幀宏塊中2MV塊模式(2MVBP)語(yǔ)法元素。4MV塊模式表格(4MVBPTAB)(2個(gè)比特)4MVBPTAB語(yǔ)法元素是2個(gè)比特的值,它表示4個(gè)哈夫曼表格的哪一個(gè)用來(lái)解碼4MV半幀宏塊中4MV塊模式(4MVBP)語(yǔ)法元素。在另一組合實(shí)現(xiàn)中,圖片類型信息在隔行掃描B-半幀的半幀級(jí)別的開(kāi)始處,而不是在包括隔行掃描B-半幀的隔行掃描視頻幀的幀級(jí)別上用信號(hào)表示,并可略去參考距離。2.選定半幀層元素圖55是示出組合實(shí)現(xiàn)中隔行掃描B-半幀的半幀級(jí)別比特流語(yǔ)法的示圖。特定比特流元素如下所述。運(yùn)動(dòng)向量模式(MVMODE)(可變大小或l比特)MVMODE語(yǔ)法元素用信號(hào)表示4種運(yùn)動(dòng)向量編碼模式之一,或一種亮度補(bǔ)償模式(還有某些圖片類型的較少可能)。若干后續(xù)元素提供附加運(yùn)動(dòng)向量模式和/或亮度補(bǔ)償信息。B-半幀正向模式MB比特語(yǔ)法元素(FORWARDMB)(可變大小)FORWARDMB語(yǔ)法元素將位平面編碼用來(lái)表示用正向模式編碼的B-半幀中宏塊。FORWARDMB語(yǔ)法元素還用信號(hào)表示,正向模式用原始模式來(lái)作信號(hào)表示,在該情形中正向/非正向模式?jīng)Q定在宏塊級(jí)別上作信號(hào)表示。圖56是示出組合實(shí)現(xiàn)中隔行掃描B-半幀的半幀級(jí)別比特流語(yǔ)法的示圖。在該組合實(shí)現(xiàn)中,隔行掃描BI-半幀的半幀級(jí)別比特流語(yǔ)法使用與隔行掃描I-半幀一樣的語(yǔ)法元素。3.選定宏塊層元素圖57是示出組合實(shí)現(xiàn)中隔行掃描B-半幀的宏塊的宏塊級(jí)別比特流語(yǔ)法的示圖。圖60是示出組合實(shí)現(xiàn)中隔行掃描B-幀的宏塊的宏塊級(jí)別比特流語(yǔ)法的示圖。特定比特流元素如下所述。宏塊的數(shù)據(jù)包括宏塊頭,隨后是塊層數(shù)據(jù)。宏塊模式(MBMODE)(可變大小)MBMODE語(yǔ)法元素指示宏塊類型(例如隔行掃描B-半幀的1MV、4MV或幀內(nèi)),以及CBP標(biāo)記和運(yùn)動(dòng)向量數(shù)據(jù)的出現(xiàn)。正向B半幀編碼模式(FORWARDBIT)(1比特)FORWARDBIT是如果半幀級(jí)別語(yǔ)法元素FORWARDMB表示使用了原始模式時(shí)在隔行掃描B-半幀宏塊中提供的1-比特語(yǔ)法元素。如果FORWARDBIT=l,則宏塊使用正向模式編碼。B宏塊運(yùn)動(dòng)預(yù)測(cè)類型(BMVTYPE)(可變大小)BMVTYPE是隔行掃描B-幀宏塊和隔行掃描B-半幀宏塊中提供的可變大小語(yǔ)法元素,它表示該宏塊使用正向、反向還是插值預(yù)測(cè)。如表格7所示,對(duì)于隔行掃描B-幀的宏塊,BFRACTION以及BMVTYPE的值確定使用哪一種類型。表格7.BMVTYPEVLCBMVTYPE運(yùn)動(dòng)預(yù)測(cè)類型BFRACTIONS1/2BFRACTION〉1/20反向正向10正向反向11插值插值在隔行掃描B-半幀中,如果宏塊模式不是正向(由FORWARDMB或FORWARDBIT語(yǔ)法元素所示)且不使用4MV,則發(fā)送BMVTYPE。在該情形中,BMVTYPE用于用信號(hào)表示該B宏塊是反向、直接、還是插值的。這是簡(jiǎn)單的VLC,其中反向=0,直接=10,插值=11。在宏塊模式不是正向且使用4MV的情形中,BMVTYPE是反向的,因?yàn)橹挥姓蚝头聪蚰J奖辉试S用于4MV。插值MV提供(INTERPMVP)(1比特)INTERPMVP是如果半幀級(jí)別語(yǔ)法元素BMVTYPE表示該宏塊類型為插值時(shí)在B-半幀中提供的1-比特語(yǔ)法元素。如果INTERPMVP-1,則插值MV出現(xiàn),否則它不出現(xiàn)。B宏塊運(yùn)動(dòng)向量l(BMV1)(可變大小)BMV1是差分編碼宏塊的第一運(yùn)動(dòng)向量的可變大小的語(yǔ)法元素。B宏塊運(yùn)動(dòng)向量2(BMV2)(可變大小)BMV2是如果使用插值模式時(shí)隔行掃描B-幀宏塊和隔行掃描B-半幀宏塊中提供的可變大小的語(yǔ)法元素。該語(yǔ)法元素差分地編碼宏塊的第二運(yùn)動(dòng)向量。4MV塊模式(4MVBP)(4個(gè)比特)該4MVBP語(yǔ)法元素指示4個(gè)亮度塊的哪一個(gè)包含非零運(yùn)動(dòng)向量差值,它的使用在下面詳細(xì)描述。塊級(jí)別運(yùn)動(dòng)向量數(shù)據(jù)(BLKMVDATA)(可變大小)BLKMVDATA是包含該塊的運(yùn)動(dòng)信息并在4MV宏塊中提供的可變大小的語(yǔ)法元素。半幀變換標(biāo)記(FIELDTX)(1比特)FIELDTX是在隔行掃描B-幀的幀內(nèi)編碼宏塊中提供的1比特語(yǔ)法。該語(yǔ)法元素指示宏塊是幀編碼還是半幀編碼(基本上是宏塊的內(nèi)部組織)。FIELDTX=1指示該宏塊是半幀編碼的。否則,宏塊是幀編碼的。在幀間編碼宏塊中,該語(yǔ)法元素可從MBMODE推斷。直接B幀編碼模式(DIRECTBBIT)(1比特)DIRECTBBIT是如果幀級(jí)別語(yǔ)法元素DIRECTMB表示使用原始模式時(shí)在隔行掃描B-幀宏塊中提供的1-比特語(yǔ)法元素。如果DIRECTBBIT-1,則宏塊使用直接模式編碼。B幀MV切換(MVSW)(1比特)MVSW是如果MB為半幀模式以及如果BMVTYPE為正向或反向時(shí)在隔行掃描B-幀宏塊中提供的1-比特語(yǔ)法元素。如果MVSW-1,則MV類型和預(yù)測(cè)類型在從上半幀去到下半幀時(shí)從正向變成反向(或者從反向變成正向)。兩運(yùn)動(dòng)向量塊模式(2MVBP)(可變大小)2MVBP是在隔行掃描B-幀宏塊中提供的可變大小語(yǔ)法元素。如果MBMODE語(yǔ)法元素指示該宏塊包含一個(gè)運(yùn)動(dòng)向量,并且如果該宏塊是插值宏塊,則提供該語(yǔ)法元素。在該情形中,2MVBP指示提供兩個(gè)運(yùn)動(dòng)向量(正向和反向運(yùn)動(dòng)向量)的運(yùn)動(dòng)向量數(shù)據(jù)(MVDATA)(可變大小)MVDATA是編碼宏塊的運(yùn)動(dòng)向量差值的可變大小語(yǔ)法元素,它的解碼在下面詳細(xì)描述。圖58是示出組合實(shí)現(xiàn)中隔行掃描BI-半幀的宏塊級(jí)別比特流語(yǔ)法的示圖。在組合實(shí)現(xiàn)中,隔行掃描BI-半幀的宏塊級(jí)別比特流語(yǔ)法使用與隔行掃描I-半幀的相同語(yǔ)法元素。B.解碼隔行掃描的B-半幀以下各節(jié)描述用于解碼組合實(shí)現(xiàn)中隔行掃描B-半幀的過(guò)程。1.幀/半幀層解碼隔行掃描B-半幀可以是兩種類型之一1MV或混合MV。在lMV隔行掃描B-半幀中,取決于宏塊的預(yù)測(cè)類型(BMVTYPE),用0、1或2個(gè)運(yùn)動(dòng)向量來(lái)表示各預(yù)測(cè)塊的位移。當(dāng)BMVTYPE等于DIRECT(直接)時(shí),推斷出正向和反向運(yùn)動(dòng)向量,并且不顯式地用信號(hào)表示其它的運(yùn)動(dòng)向量。當(dāng)BMVTYPE是INTERPOLATED(插值)時(shí),解碼兩個(gè)運(yùn)動(dòng)向量正向和反向。在正向和反向情形中,只解碼一個(gè)運(yùn)動(dòng)向量。1MV模式通過(guò)MVM0DE圖片層語(yǔ)法元素來(lái)用信號(hào)表示。在混合MV隔行掃描B-半幀中,每個(gè)宏塊可被編碼為1MV或4MV宏塊。在4MV宏塊中,4個(gè)亮度塊的每一個(gè)都具有與之相關(guān)聯(lián)的運(yùn)動(dòng)向量。此外,4MV宏塊只可關(guān)聯(lián)于隔行掃描B-半幀中的正向或反向預(yù)測(cè)類型(BMVTYPE)。每個(gè)宏塊的1MV或4MV模式通過(guò)每個(gè)宏塊上的MBMODE語(yǔ)法元素來(lái)指示。混合MV模式通過(guò)MVMODE圖片層語(yǔ)法元素來(lái)用信號(hào)表示。2.宏塊層解碼隔行掃描B-半幀中的宏塊可以是三種可能類型之一1MV、4MV和幀內(nèi)。此夕卜,宏塊可以是四種預(yù)測(cè)類型(BMVTYPE)之一正向、反向、直接或插值。宏塊類型通過(guò)宏塊層中的MBMODE語(yǔ)法元素用信號(hào)表示。預(yù)測(cè)類型通過(guò)幀級(jí)別位平面FORWARDMB和宏塊級(jí)別BMVTYPE語(yǔ)法元素的組合用信號(hào)表示,其中幀級(jí)別位平面FORWARDMB用信號(hào)表示每個(gè)宏塊的正向/非正向,而宏塊級(jí)別BMVTYPE語(yǔ)法元素則在預(yù)測(cè)類型為非正向的情形中用信號(hào)表示。以下各節(jié)描述1MV和4MV類型、以及如何用信號(hào)表示它們。隔行掃描B-半幀中的1MV宏塊1MV宏塊可出現(xiàn)在1MV和混合MV隔行掃描B-半幀中。在1MV宏塊中,單個(gè)運(yùn)動(dòng)向量表示宏塊中全部6個(gè)塊的當(dāng)前和參考圖片之間的位移。對(duì)于1MV宏塊,宏塊層中的MBMODE語(yǔ)法元素表示三點(diǎn)1)該宏塊類型為1MV2)是否出現(xiàn)CBPCY語(yǔ)法元素3)是否出現(xiàn)BMV1語(yǔ)法元素如果MBMODE語(yǔ)法元素表示BMV1語(yǔ)法元素出現(xiàn),則BMV1語(yǔ)法元素出現(xiàn)在相應(yīng)位置的宏塊層中。BMV1語(yǔ)法元素編碼運(yùn)動(dòng)向量差值。運(yùn)動(dòng)向量差值與運(yùn)動(dòng)向量預(yù)測(cè)值相組合,以重構(gòu)運(yùn)動(dòng)向量。如果MBMODE語(yǔ)法元素表示BMV1語(yǔ)法元素未出現(xiàn),則運(yùn)動(dòng)向量差值被取為O且因此運(yùn)動(dòng)向量等于運(yùn)動(dòng)向量預(yù)測(cè)值。如果MBMODE語(yǔ)法元素表示CBCPY語(yǔ)法元素出現(xiàn),則CBCPY語(yǔ)法元素出現(xiàn)在相應(yīng)位置的宏塊層中。CBCPY語(yǔ)法元素表示6個(gè)塊的哪一個(gè)在塊層上編碼。如果MBMODE語(yǔ)法元素表示CBCPY語(yǔ)法元素未出現(xiàn),則CBCPY被取為等于0且對(duì)宏塊中6個(gè)塊的任一個(gè)都不出現(xiàn)塊數(shù)據(jù)。此外,如果宏塊類型為1MV且宏塊的預(yù)測(cè)類型是插值,則編碼器使用INTERPMVP語(yǔ)法元素來(lái)用信號(hào)表示是否出現(xiàn)第二個(gè)運(yùn)動(dòng)向量差值BMV2。如果出現(xiàn),則解碼器在BMV1之后立即解碼BMV2。否則,BMV2的運(yùn)動(dòng)向量差值被取為0,而第二個(gè)運(yùn)動(dòng)向量等于運(yùn)動(dòng)向量預(yù)測(cè)值。當(dāng)預(yù)測(cè)類型是插值時(shí),BMV1對(duì)應(yīng)于正向運(yùn)動(dòng)向量而B(niǎo)MV2對(duì)應(yīng)于反向運(yùn)動(dòng)向量。隔行掃描B-半幀中的4MV宏塊4MV宏塊僅可出現(xiàn)在混合MVB-半幀圖片中,且限于正向和反向預(yù)測(cè)類型。在4MV宏塊中,4個(gè)亮度塊的每一個(gè)都具有關(guān)聯(lián)運(yùn)動(dòng)向量。色度塊的位移從4個(gè)亮度運(yùn)動(dòng)向量中導(dǎo)出。在混合MV隔行掃描B-半幀中,4MV宏塊僅可關(guān)聯(lián)于正向和反向預(yù)測(cè)類型。對(duì)于4MV宏塊,宏塊層中的MBMODE語(yǔ)法元素表示三點(diǎn)1)該宏塊類型為4MV2)是否出現(xiàn)CBPCY語(yǔ)法元素3)是否出現(xiàn)4MVBP語(yǔ)法元素4MVBP語(yǔ)法元素表示4個(gè)亮度塊的哪一個(gè)包含非零運(yùn)動(dòng)向量差值。該4MVBP語(yǔ)法元素解碼到0到15的值。對(duì)于4MVBP中4個(gè)比特位置的每一個(gè),值0表示未出現(xiàn)該塊的運(yùn)動(dòng)向量差值(BLKMVDATA)且運(yùn)動(dòng)向量差值取為0。值1表示該塊的運(yùn)動(dòng)向量差值(BLKMVDATA)出現(xiàn)在相應(yīng)位置中。例如,如果4MVBP解碼為值100(二進(jìn)制),則比特流包含塊0和1的BLKMVDATA并且未出現(xiàn)塊2和3的BLKMVDATA。如果MBMODE語(yǔ)法元素表示4MVBP語(yǔ)法元素未出現(xiàn),則假設(shè)出現(xiàn)全部4個(gè)亮度塊的運(yùn)動(dòng)向量差值數(shù)據(jù)(BLKMVDATA)。取決于MVMODE語(yǔ)法元素是表示混合MV還是全-lMV,MBMODE如下用信號(hào)表示信息。以下表格8示出MBMODE元素如何用信號(hào)表示有關(guān)全-lMV圖片中宏塊的信息。表格8.全-lMV圖片中的宏塊模式<table>tableseeoriginaldocumentpage73</column></row><table>以下表格9示出MBMODE元素如何用信號(hào)表示有關(guān)混合MV圖片中宏塊的信息。表格9.混合1MV圖片中的宏塊模式<table>tableseeoriginaldocumentpage73</column></row><table>8個(gè)編碼表格之一用于用信號(hào)表示MBMODE。所用特定表格通過(guò)MBMODETAB語(yǔ)法元素用信號(hào)表示。以下各節(jié)描述預(yù)測(cè)類型解碼和直接模式運(yùn)動(dòng)向量的解碼。隔行掃描B-半幀中的預(yù)測(cè)類型解碼(BMVTYPE)預(yù)測(cè)類型根據(jù)以下規(guī)則進(jìn)行解碼。如果圖片級(jí)別位平面FORWARDMB表示宏塊是正向類型,則該宏塊的預(yù)測(cè)類型被設(shè)置為正向。如果FORWARDMB元素被編碼為原始,則編碼器/解碼器在宏塊級(jí)別上使用一附加比特FORWARDBIT,來(lái)判定預(yù)測(cè)類型是否為正向。如果預(yù)測(cè)類型為非正向,且如MBMODE語(yǔ)法元素用信號(hào)表示的該宏塊使用4MV(僅在混合MVB圖片中可能),則解碼器可直接推斷預(yù)測(cè)類型為反向,因?yàn)橹挥姓蚝头聪蝾愋涂膳c4MV模式相關(guān)聯(lián)。否則,解碼器顯式地解碼BMVTYPE語(yǔ)法元素。解碼隔行掃描B-半幀中的直接模式運(yùn)動(dòng)向量為了解碼隔行掃描B-半幀中的直接模式運(yùn)動(dòng)向量,解碼器首先緩存來(lái)自先前解碼(即時(shí)間上在將來(lái))的錨(I或P)圖片的運(yùn)動(dòng)向量。這樣,解碼器將所緩存的對(duì)應(yīng)于上半幀的運(yùn)動(dòng)向量用作預(yù)測(cè)值,以便于計(jì)算上部B-半幀的直接模式運(yùn)動(dòng)向量,并使用對(duì)應(yīng)于下半幀的運(yùn)動(dòng)向量計(jì)算下部B-半幀的運(yùn)動(dòng)向量。例如,半幀z(2=上/下)中的宏塊(x,y)將參考從先前解碼I或P半幀z(即與當(dāng)前半幀相同極性的錨半幀中的共處宏塊)的宏塊(x,y)中緩存的運(yùn)動(dòng)向量。如果所緩存的來(lái)自錨圖片的運(yùn)動(dòng)向量為幀內(nèi)運(yùn)動(dòng)向量(諸如當(dāng)先前解碼半幀z是I-半幀時(shí)),或者如果錨圖片是P-半幀但宏塊(x,y)是幀內(nèi)編碼的,則解碼器將經(jīng)緩存的運(yùn)動(dòng)向量視為(O,O)。如果共處宏塊為1MV,則解碼器使用該運(yùn)動(dòng)向量。如果共處宏塊為4MV,則解碼器將圖53中偽碼5300所述的邏輯用來(lái)計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值。在偽碼5300中,SelectDirectModeMVFromColocatedMB導(dǎo)出在直接模式計(jì)算中使用的運(yùn)動(dòng)向量預(yù)測(cè)值。解碼器可緩存來(lái)自先前解碼的錨圖片的所有運(yùn)動(dòng)向量,并在解碼B-半幀期間應(yīng)用以上直接模式,或者解碼器在解碼錨半幀的同時(shí)可應(yīng)用以上直接模式規(guī)則,并緩存用于B-半幀的結(jié)果運(yùn)動(dòng)向量。使用以上獲得的運(yùn)動(dòng)向量,解碼器應(yīng)用縮放邏輯(圖19中的Scale—Direct—MV)。Scale—Direct—MV獲得正向和反向指示運(yùn)動(dòng)向量。Scale—Direct—MV可導(dǎo)致指向上下半幀的正向和反向運(yùn)動(dòng)向量。這是有效的,因?yàn)橹苯舆\(yùn)動(dòng)向量由編碼器評(píng)估并僅在它們給出好預(yù)測(cè)時(shí)選擇,還因?yàn)楦粜袙呙鐱-半幀在正向和反向方向上都使用兩個(gè)參考半幀。在另一實(shí)現(xiàn)中,可使用產(chǎn)生以直接模式縮放的運(yùn)動(dòng)向量的任何其它過(guò)程,包括不涉及任何緩存的過(guò)程,它在存儲(chǔ)器受限設(shè)備中會(huì)有用(例如使用隨機(jī)數(shù)發(fā)生器來(lái)模擬偏零拉普拉斯分布)。這種過(guò)程仍將起作用,因?yàn)楹玫木幋a器將丟棄對(duì)直接模式運(yùn)動(dòng)向量的較差推測(cè),而在比特流中保留更為準(zhǔn)確的推測(cè)。3.運(yùn)動(dòng)向量解碼過(guò)程以下各節(jié)描述組合實(shí)現(xiàn)中隔行掃描B-半幀的塊和宏塊的運(yùn)動(dòng)向量解碼過(guò)程。填充正向和反向預(yù)測(cè)上下文正向和反向運(yùn)動(dòng)向量被分開(kāi)緩存,并分別用來(lái)預(yù)測(cè)正向和反向運(yùn)動(dòng)向量。例如在以上X節(jié)描述了單獨(dú)緩沖區(qū)在正向和反向上下文中的使用。用于選擇運(yùn)動(dòng)向量預(yù)測(cè)值的技術(shù)在III節(jié)
背景技術(shù):
、III節(jié)詳細(xì)說(shuō)明、以及說(shuō)明書的其它部分中描述。在解碼正向運(yùn)動(dòng)向量期間用預(yù)測(cè)運(yùn)動(dòng)向量填充反向緩沖區(qū)("缺少方向"緩沖區(qū))時(shí)(或在解碼反向運(yùn)動(dòng)向量期間填充正向緩沖區(qū)時(shí)),要添加另外兩個(gè)細(xì)節(jié)。通常,編碼器/解碼器可使用運(yùn)動(dòng)向量類型信息(例如1MV等)、以及先前解碼的運(yùn)動(dòng)向量的極性來(lái)形成預(yù)測(cè)。然而,在"空穴填充"情形中,因?yàn)榫幋a器/解碼器實(shí)際上并不解碼缺少方向類型的運(yùn)動(dòng)向量,編碼器/解碼器并不具有運(yùn)動(dòng)向量類型信息或極性信息(例如相同極性或相反極性)。在該組合實(shí)現(xiàn)中,編碼器/解碼器將運(yùn)動(dòng)向量類型設(shè)置為1MV,并將主半幀運(yùn)動(dòng)向量選為預(yù)測(cè)值。圖47中的偽碼4700描述該組合實(shí)現(xiàn)中的極性選擇過(guò)程。對(duì)于幀內(nèi)編碼宏塊,"幀內(nèi)運(yùn)動(dòng)向量"用來(lái)填充正向和反向運(yùn)動(dòng)預(yù)測(cè)平面。"幀內(nèi)運(yùn)動(dòng)向量"的任何一致表示可由解碼器實(shí)現(xiàn)來(lái)選擇。例如,如果運(yùn)動(dòng)向量被存儲(chǔ)在2-字節(jié)短數(shù)組中,則"幀內(nèi)運(yùn)動(dòng)向量"可被表示為唯一的大常數(shù),它被填充到運(yùn)動(dòng)向量數(shù)組中來(lái)表示該宏塊被編碼為幀內(nèi)宏塊。B-半幀中的正向運(yùn)動(dòng)向量預(yù)測(cè)正向參考幀距離從BFRACTION語(yǔ)法元素和REFDIST語(yǔ)法元素中計(jì)算。正向運(yùn)動(dòng)向量預(yù)測(cè)如以上X節(jié)所述地進(jìn)行。B-半幀中的反向運(yùn)動(dòng)向量預(yù)測(cè)正向參考幀距離從BFRACTION語(yǔ)法元素和REFDIST語(yǔ)法元素中計(jì)算。正向運(yùn)動(dòng)向量預(yù)測(cè)如以上X節(jié)所述地進(jìn)行。解碼運(yùn)動(dòng)向量差值BMV1、BMV2或BLKMVDATA語(yǔ)法元素編碼宏塊或宏塊中各塊的運(yùn)動(dòng)信息。1MV宏塊具有BMV1和BMV2語(yǔ)法元素,且4MV宏塊可具有0到4個(gè)之間的BLKMVDATA元素。當(dāng)預(yù)測(cè)類型(BMVTYPE)為插值時(shí),BMV1對(duì)應(yīng)于正向而B(niǎo)MV2對(duì)應(yīng)于反向運(yùn)動(dòng)向量殘差。以下各節(jié)描述對(duì)于應(yīng)用于B-圖片的雙參考情形如何計(jì)算運(yùn)動(dòng)向量差值。雙參考半幀圖片中的運(yùn)動(dòng)向量差值雙參考半幀圖片在使用半幀圖片對(duì)隔行掃描幀的編碼中出現(xiàn)。序列的每個(gè)幀都被分成兩個(gè)半幀,且每個(gè)半幀使用實(shí)際上逐行掃描代碼路徑來(lái)編碼。在具有兩個(gè)參考半幀的半幀圖片中(諸如具有隔行掃描B-半幀的圖片),宏塊層中的每個(gè)MVDATA或BLKMVDATA語(yǔ)法元素聯(lián)合編碼三種信息1)水平運(yùn)動(dòng)向量差值分量,2)垂直運(yùn)動(dòng)向量差值分量,3)使用主還是非主預(yù)測(cè)值,即兩個(gè)半幀的哪一個(gè)被運(yùn)動(dòng)向量參考。MVDATA或BLKMVDATA語(yǔ)法元素是可變長(zhǎng)度的哈夫曼代碼字,然后是一固定長(zhǎng)度代碼字。哈夫曼代碼字的值確定固定長(zhǎng)度代碼字的大小。圖片層中的MVTAB語(yǔ)法元素指定用來(lái)解碼可變大小代碼字的哈夫曼表格。圖61A中的偽碼6100示出如何解碼運(yùn)動(dòng)向量差值和主/非主預(yù)測(cè)值信息。值predictor_flag、dmv—x和dmv—y在圖61A中的偽碼6100中計(jì)算。偽碼6100中的各個(gè)值定義如下dmv_x:運(yùn)動(dòng)向量水平差值分量,dmv_y:運(yùn)動(dòng)向量垂直差值分量,k—x,k_y:長(zhǎng)運(yùn)動(dòng)向量的固定長(zhǎng)度,k一x和k_y取決于由MVRANGE符號(hào)定義的運(yùn)動(dòng)向量范圍。表格10.由MVRANGE指定的k—x和k—y<table>tableseeoriginaldocumentpage76</column></row><table>extend—x:水平運(yùn)動(dòng)向量差值的擴(kuò)展范圍,extend一y:垂直運(yùn)動(dòng)向量差值的擴(kuò)展范圍,extend_x和extend_y從DMVRANGE圖片半幀語(yǔ)法元素中導(dǎo)出。如果DMVRANGE表示使用水平分量的擴(kuò)展范圍,則extend一x^。否則,extend—x=0。類似地,如果DMVRANGE表示使用垂直分量的擴(kuò)展范圍,則extend_y=l。否則,extend_y=0。變量predictor—flag是表示使用主還是非主運(yùn)動(dòng)向量預(yù)測(cè)值的二進(jìn)制標(biāo)記(0=使用主預(yù)測(cè)值,1=使用非主預(yù)測(cè)值)。offset_table和size—table數(shù)組被定義為如圖61A所示。圖61B中的偽碼6110示出在另一組合實(shí)現(xiàn)中如何解碼雙參考半幀的運(yùn)動(dòng)向量差值。偽碼6110用不同方法解碼運(yùn)動(dòng)向量差值。例如,偽碼6110略去經(jīng)擴(kuò)展運(yùn)動(dòng)向量差值范圍的處理。運(yùn)動(dòng)向量預(yù)測(cè)值運(yùn)動(dòng)向量通過(guò)將前面部分中計(jì)算的運(yùn)動(dòng)向量差值添加到運(yùn)動(dòng)向量預(yù)測(cè)值中來(lái)計(jì)算。以下各節(jié)描述在該組合實(shí)現(xiàn)中如何計(jì)算1MV-和混合MV隔行掃描B-半幀中宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值。1MV隔行掃描B-半幀中的運(yùn)動(dòng)向量預(yù)測(cè)值圖5A和5B是示出被視作用于1MV宏塊的候選運(yùn)動(dòng)向量預(yù)測(cè)值的宏塊的位置的示圖。候選預(yù)測(cè)值從左邊、上方和右上方宏塊中取得,除了宏塊是行中最后一個(gè)宏塊的情形。在該情形中,預(yù)測(cè)值B從左上方宏塊而不是從右上方中取得。對(duì)于幀為一個(gè)宏塊寬的特定情形,預(yù)測(cè)值總是預(yù)測(cè)值A(chǔ)(頂部預(yù)測(cè)值)。當(dāng)前宏塊在首行中的特定情形(沒(méi)有A或B預(yù)測(cè)值、或者根本沒(méi)有預(yù)測(cè)值)在以上參照?qǐng)D33A-33F以及在以下參照?qǐng)D62A-62F解決?;旌螹V隔行掃描B-半幀中的運(yùn)動(dòng)向量預(yù)測(cè)值圖6A-10示出被視作用于混合MV隔行掃描B-半幀中的1MV或4MV宏塊的運(yùn)動(dòng)向量的候選運(yùn)動(dòng)向量的塊或宏塊的位置。隔行掃描B-半幀中的主和非主MV預(yù)測(cè)值對(duì)于每個(gè)幀間編碼的宏塊,導(dǎo)出兩個(gè)運(yùn)動(dòng)向量預(yù)測(cè)值。一個(gè)來(lái)自主半幀而另一個(gè)來(lái)自非主半幀。主半幀被視為包含鄰域中候選運(yùn)動(dòng)向量預(yù)測(cè)值的大部分實(shí)際值的半幀。在不分上下的情形中,相反半幀的運(yùn)動(dòng)向量預(yù)測(cè)值被視為是主預(yù)測(cè)值(因?yàn)樗跁r(shí)間上較為接近)。幀內(nèi)編碼宏塊在主/非主預(yù)測(cè)值的計(jì)算中不作考慮。如果全部候選預(yù)測(cè)值宏塊都是幀內(nèi)編碼的,則主和非主運(yùn)動(dòng)向量預(yù)測(cè)值都被設(shè)置為0且主預(yù)測(cè)值被視為來(lái)自相反半幀。計(jì)算隔行掃描B-半幀中的運(yùn)動(dòng)向量預(yù)測(cè)值對(duì)塊或宏塊的每個(gè)運(yùn)動(dòng)向量計(jì)算兩個(gè)運(yùn)動(dòng)向量預(yù)測(cè)值一每個(gè)參考一個(gè)。圖62A-62F中的偽碼6200描述在組合實(shí)現(xiàn)中如何對(duì)雙參考情形計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值。(圖33A-33F中的偽碼3300描述在另一實(shí)現(xiàn)中如何對(duì)雙參考情形計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值。)在雙參考圖片中,當(dāng)前半幀可參考兩個(gè)最新半幀。一個(gè)預(yù)測(cè)值用于相同極性的參考半幀,而另一個(gè)用于相反極性的參考半幀。重構(gòu)隔行掃描B-半幀中的運(yùn)動(dòng)向量以下各節(jié)描述如何重構(gòu)1MV和4MV宏塊的亮度和色度運(yùn)動(dòng)向量。在重構(gòu)運(yùn)動(dòng)向量之后,它隨后可用作鄰域運(yùn)動(dòng)向量以預(yù)測(cè)相鄰宏塊的運(yùn)動(dòng)向量。該運(yùn)動(dòng)向量將具有"相同"或"相反"的關(guān)聯(lián)極性,并可用來(lái)導(dǎo)出另一半幀極性的運(yùn)動(dòng)向量預(yù)測(cè)值,用于運(yùn)動(dòng)向量預(yù)測(cè)。隔行掃描B-半幀中的亮度運(yùn)動(dòng)向量重構(gòu)在所有情形(1MV和4MV宏塊)中,亮度運(yùn)動(dòng)向量通過(guò)如下將差值添加到預(yù)測(cè)值來(lái)重構(gòu)mv—x=(dmv—x+predictor—x)smodrange_xmv—y=(dmv_y+predictor_y)smodrange_y+#::-掛"_____j"曰e\、/4tnnriV!Ttr效且憤Asmodb=((A+b)%(2*b))-b這確保重構(gòu)向量是有效的。(Asmodb)位于-b和b-l之間。range—x和range—y取決于MVRANGE。因?yàn)楦粜袙呙鐱-半幀圖片使用兩個(gè)參考圖片,在解碼運(yùn)動(dòng)向量差值之后導(dǎo)出的predictor—flag與從運(yùn)動(dòng)向量預(yù)測(cè)導(dǎo)出的dominantpredictor值相組合,以確定哪個(gè)半幀被用作參考。圖63中的偽碼6300描述如何確定參考半幀。在1MV宏塊中,對(duì)于組成宏塊的亮度分量的4個(gè)塊將有單個(gè)運(yùn)動(dòng)向量。如果MBMODE語(yǔ)法元素表示沒(méi)有MV數(shù)據(jù)在宏塊層中出現(xiàn),則dmv_x=0且dmv_y=0(mv—x=predictor—x禾Bmv—y=predictor—y)。在4MV宏塊中,宏塊中每個(gè)幀間編碼亮度塊將具有它自己的運(yùn)動(dòng)向量。因此在每個(gè)4MV宏塊中將有0到4個(gè)亮度運(yùn)動(dòng)向量。如果4MVBP語(yǔ)法元素表示未出現(xiàn)塊的運(yùn)動(dòng)向量信息,則該塊的dmv_x=0且dmv—y=0(mv—x=predictor_x和mv_y=predictor一y)。色度運(yùn)動(dòng)向量重構(gòu)色度運(yùn)動(dòng)向量從亮度運(yùn)動(dòng)向量中導(dǎo)出。此外,對(duì)于4MV宏塊,對(duì)要將色度塊編碼為幀間塊還是幀內(nèi)塊的決定是基于亮度塊或半幀的狀態(tài)作出的。C.解碼隔行掃描P-幀在描述組合實(shí)現(xiàn)中用于解碼隔行掃描B-幀的過(guò)程之前,描述用于解碼隔行掃描P-幀的過(guò)程。描述用于解碼隔行掃描B-幀的過(guò)程的小節(jié)將參照本節(jié)中討論的各個(gè)概念進(jìn)行。1.隔行掃描P-幀的宏塊層解碼在隔行掃描P-幀中,每個(gè)宏塊可用使用一個(gè)或四個(gè)運(yùn)動(dòng)向量的幀模式、或使用兩個(gè)或四個(gè)運(yùn)動(dòng)向量的半幀模式作運(yùn)動(dòng)補(bǔ)償。幀間編碼的宏塊不包含任何幀內(nèi)塊。此外,運(yùn)動(dòng)補(bǔ)償之后的殘差可用幀變換模式或半幀變換模式來(lái)編碼。更具體地,如果用半幀變換模式編碼殘差,則殘差的亮度分量根據(jù)各個(gè)半幀來(lái)重新排列,而在幀變換模式中當(dāng)色度分量保持不變時(shí)殘差保持不變。宏塊也可被編碼為幀內(nèi)宏塊。運(yùn)動(dòng)補(bǔ)償可被限制為不包括四個(gè)運(yùn)動(dòng)向量(半幀/幀),并且它通過(guò)4MVSWITCH用信號(hào)表示。每個(gè)宏塊的運(yùn)動(dòng)補(bǔ)償和殘差編碼的類型通過(guò)MBMODE和SKIPMB聯(lián)合表示。MBMODE根據(jù)4MVSWITCH采用不同的表格集。隔行掃描P-幀中的各個(gè)宏塊被分成5種類型1MV、2半幀MV、4幀MV、4半幀MV和幀內(nèi)。前四類宏塊是幀間編碼的,而最后一類表示該宏塊是幀內(nèi)編碼的。宏塊類型由宏塊層中的MBMODE語(yǔ)法元素以及跳過(guò)比特用信號(hào)表示。MBMODE對(duì)不同類型的宏塊共同編碼宏塊類型以及有關(guān)該宏塊的各條信息。用信號(hào)表示跳過(guò)的宏塊SKIPMB字段表示宏塊的跳過(guò)條件。如果SKIPMB字段為1,則表示要跳過(guò)當(dāng)前宏塊,并且在SKIPMB字段之后沒(méi)有發(fā)送其它信息。該跳過(guò)條件暗示當(dāng)前宏塊是具有0差值運(yùn)動(dòng)向量的1MV(B卩,該宏塊是使用其1MV運(yùn)動(dòng)預(yù)測(cè)值做運(yùn)動(dòng)補(bǔ)償?shù)?,并且沒(méi)有經(jīng)編碼的塊(CBP-O)。另一方面,如果SKIPMB字段不是1,則MBMODE半幀被解碼為表示宏塊的類型和有關(guān)當(dāng)前宏塊的其它信息,諸如以下小節(jié)中描述的信息。用信號(hào)表示宏塊模式有15種通過(guò)MBMODE表示的可能事件;MBMODE共同指定宏塊的類型(1MV、4幀MV、2半幀MV、4半幀MV、或幀內(nèi))、幀間編碼宏塊的變換類型(即半幀或幀或未編碼的塊)、以及是否有1MV宏塊的運(yùn)動(dòng)向量差值。設(shè)〈MVP〉表示用信號(hào)表示是否有非零1MV運(yùn)動(dòng)向量差值的二進(jìn)制事件。設(shè)<Field/Frametransform>(<半幀順變換〉)表示用信號(hào)表示宏塊的殘差是幀變換編碼、半幀變換編碼、還是零編碼塊(即CBP-0)的三元事件。MBMODE共同用信號(hào)表示以下事件集MBM0DE={<1MV,MVP,半幀/幀變換>,<2半幀MV,半幀/幀變換〉,<4幀MV,半幀/幀變換>,<4半幀MV,半幀/幀變換>,<幀內(nèi)>};<1MV,MVP=0,CBP=0>的事件除外,它通過(guò)跳過(guò)條件用信號(hào)表示。對(duì)于幀間編碼宏塊,當(dāng)MBMODE中的半幀/幀變換事件表示無(wú)編碼塊時(shí),不解碼CBPCY語(yǔ)法元素。另一方面,如果MBMODE中的半幀/幀變換事件表示半幀或幀變換時(shí),則解碼CBPCY。所解碼事件<半幀/幀變換>被用來(lái)設(shè)置標(biāo)記FIELDTX。如果該事件表示宏塊是半幀變換編碼的,則FIELDTX被設(shè)置為1。如果該事件表示宏塊是幀變換編碼的,則FIELDTX被設(shè)置為0。如果該事件表示O編碼塊,則FIELDTX被設(shè)置為與運(yùn)動(dòng)向量相同的類型,即如果它是FIELDMV則FIELDTX被設(shè)置為1,且如果它是FRAMEMV則被設(shè)置為0。對(duì)于非1MV的幀間編碼宏塊,發(fā)送表示零差值運(yùn)動(dòng)向量事件的另一字段。在2半幀MV宏塊的情形中,發(fā)送表示兩個(gè)運(yùn)動(dòng)向量的哪一個(gè)包含非零運(yùn)動(dòng)向量差值的2MVBP字段。類似地,發(fā)送表示四個(gè)運(yùn)動(dòng)向量的哪一個(gè)包含非零運(yùn)動(dòng)向量差值的4MVBP字段。對(duì)于幀內(nèi)編碼宏塊,半幀/幀變換和零編碼塊在各個(gè)字段中編碼。2.對(duì)隔行掃描P-幀的運(yùn)動(dòng)向量解碼隔行掃描P-幀的運(yùn)動(dòng)向量預(yù)測(cè)值計(jì)算當(dāng)前宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值的過(guò)程包括兩個(gè)步驟。首先,當(dāng)前宏塊的三個(gè)候選運(yùn)動(dòng)向量從其相鄰宏塊中收集。其次,當(dāng)前宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值從候選運(yùn)動(dòng)向量集中計(jì)算。圖40A-40B示出從中收集候選運(yùn)動(dòng)向量的相鄰宏塊。候選運(yùn)動(dòng)向量的收集順序是重要的。在該組合實(shí)現(xiàn)中,收集順序總是從A開(kāi)始、繼續(xù)到B、并在C結(jié)束。注意,如果相應(yīng)塊在幀邊界之外或者相應(yīng)塊是不同片的一部分,則候選預(yù)測(cè)值被視為不存在。因而,不跨片邊界執(zhí)行運(yùn)動(dòng)向量預(yù)測(cè)。以下各節(jié)描述是否收集不同類型宏塊的候選運(yùn)動(dòng)向量,以及如何計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值。1MV候選運(yùn)動(dòng)向量在該組合實(shí)現(xiàn)中,圖64中的偽碼6400被用來(lái)收集該運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。4幀MV候選運(yùn)動(dòng)向量對(duì)于4幀MV宏塊,對(duì)于當(dāng)前宏塊中四個(gè)幀塊運(yùn)動(dòng)向量的每一個(gè),收集來(lái)自相鄰塊的候選運(yùn)動(dòng)向量。在該組合實(shí)現(xiàn)中,圖65中的偽碼6500用來(lái)收集左上幀塊運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。圖66中的偽碼6600用來(lái)收集右上幀塊運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。圖67中的偽碼6700用來(lái)收集左下幀塊運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。圖68中的偽碼6800用來(lái)收集右下幀塊運(yùn)動(dòng)向量的最多三個(gè)運(yùn)動(dòng)向量。2半幀MV候選運(yùn)動(dòng)向量的導(dǎo)出對(duì)于2半幀MV宏塊,對(duì)于當(dāng)前宏塊中兩個(gè)幀運(yùn)動(dòng)向量的每一個(gè),收集來(lái)自相鄰塊的候選運(yùn)動(dòng)向量。圖69中的偽碼6900用來(lái)收集上半幀運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。圖70中的偽碼7000用來(lái)收集下半幀運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)4半幀MV候選運(yùn)動(dòng)向量的導(dǎo)出對(duì)于4半幀MV宏塊,對(duì)于當(dāng)前宏塊中四個(gè)半幀塊的每一個(gè),收集來(lái)自相鄰塊的候選運(yùn)動(dòng)向量。圖71中的偽碼7100用來(lái)收集左上半幀塊運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。圖72中的偽碼7200用來(lái)收集右上半幀塊運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。圖73中的偽碼7300用來(lái)收集左下半幀塊運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。圖74中的偽碼7400用來(lái)收集右下半幀塊運(yùn)動(dòng)向量的最多三個(gè)候選運(yùn)動(dòng)向量。平均半幀運(yùn)動(dòng)向量給定兩個(gè)半幀運(yùn)動(dòng)向量(MVX!,MVY》和(MVX2,MVY2),用來(lái)形成候選運(yùn)動(dòng)向量(MVXa,MVYa)的平均運(yùn)算是MVXA=(MVX丄十MVX2+1)》1;MVXA=(MVYt十MVY2+1)》1;從候選運(yùn)動(dòng)向量中計(jì)算幀的MV預(yù)測(cè)值本節(jié)描述給定一個(gè)候選運(yùn)動(dòng)向量集如何計(jì)算幀運(yùn)動(dòng)向量的運(yùn)動(dòng)向量預(yù)測(cè)值。在該組合實(shí)現(xiàn)中,運(yùn)算對(duì)計(jì)算4幀MV宏塊中4幀塊運(yùn)動(dòng)向量的每一個(gè)的預(yù)測(cè)值相同。圖75中的偽碼7500描述如何計(jì)算幀運(yùn)動(dòng)向量的運(yùn)動(dòng)向量預(yù)測(cè)值(PMVX,PMVy)。在偽碼7500中,TotalValidMV表示候選運(yùn)動(dòng)向量集中運(yùn)動(dòng)向量的總數(shù)(TotalValidMV-O,1,2或3),且ValidMV數(shù)組表示候選運(yùn)動(dòng)向量集中的運(yùn)動(dòng)向量。從候選運(yùn)動(dòng)向量中計(jì)算半幀的MV預(yù)測(cè)值本節(jié)描述給定一個(gè)候選運(yùn)動(dòng)向量集如何計(jì)算半幀運(yùn)動(dòng)向量的運(yùn)動(dòng)向量預(yù)測(cè)值。運(yùn)算對(duì)計(jì)算2半幀MV宏塊中2個(gè)半幀運(yùn)動(dòng)向量的每一個(gè)、或4半幀MV宏塊中4個(gè)半幀塊運(yùn)動(dòng)向量的每一個(gè)的預(yù)測(cè)值相同。首先,候選運(yùn)動(dòng)向量被分成兩個(gè)集,其中一個(gè)集只包含指向與當(dāng)前半幀相同的半幀的候選運(yùn)動(dòng)向量,而另一個(gè)集包含指向相反半幀的候選運(yùn)動(dòng)向量。假設(shè)候選運(yùn)動(dòng)向量在1/4像素單元中表示,編碼器或解碼器可通過(guò)對(duì)其y-分量的以下檢查,來(lái)檢查候選運(yùn)動(dòng)向量是否指向相同半幀if(ValidMVy&4){ValidMV指向相反半幀。}else{ValidMV指向相同半幀。圖76中的偽碼7600描述如何計(jì)算半幀運(yùn)動(dòng)向量的運(yùn)動(dòng)向量預(yù)測(cè)值(PMVX,PMVy)。在偽碼7600中,SameFieldMV和OppFieldMV表示兩個(gè)候選運(yùn)動(dòng)向量集,而NumSameFieldMV和NumOppFieldMV表示屬于每個(gè)集的候選運(yùn)動(dòng)向量的數(shù)量。每個(gè)集中的候選運(yùn)動(dòng)向量的順序從候選A(如果它存在)開(kāi)始,然后是候選B(如果它存在),再后是候選C(如果它存在)。例如,如果SameFieldMV候選運(yùn)動(dòng)向量集只包含候選B和候選C,則SameFieldMV[O]是候選B。解碼運(yùn)動(dòng)向量差值MVDATA語(yǔ)法元素包含宏塊的運(yùn)動(dòng)向量差值信息。取決于運(yùn)動(dòng)補(bǔ)償?shù)念愋秃兔總€(gè)宏塊上用信號(hào)表示的運(yùn)動(dòng)向量塊模式,每個(gè)宏塊最多可有四個(gè)MVDATA語(yǔ)法元素。更具體地,對(duì)于1MV宏塊,取決于MBMODE中的MVP字段可出現(xiàn)0或1個(gè)MVDATA語(yǔ)法元素。對(duì)于2半幀MV宏塊,取決于2MVBP可出現(xiàn)0、1、或2個(gè)MVDATA語(yǔ)法元素。對(duì)于4幀/半幀MV宏塊,取決于4MVBP可出現(xiàn)0、1、2、3或4個(gè)MVDATA語(yǔ)法元素。在該組合實(shí)現(xiàn)中,運(yùn)動(dòng)向量差值用與隔行掃描P-半幀的單參考半幀運(yùn)動(dòng)向量差值相同的方法來(lái)解碼。(圖77A中的偽碼7700示出如何解碼單參考半幀的運(yùn)動(dòng)向量差值。圖77B中的偽碼7710示出在另一組合實(shí)現(xiàn)中如何解碼單參考半幀的運(yùn)動(dòng)向量差值。偽碼7710用一種不同方法解碼運(yùn)動(dòng)向量差值。例如,偽碼7710略去對(duì)經(jīng)擴(kuò)展的運(yùn)動(dòng)向量差值范圍的處理。)重構(gòu)運(yùn)動(dòng)向量給出運(yùn)動(dòng)向量差值dmv,亮度運(yùn)動(dòng)向量通過(guò)如以上XV.B.3節(jié)中所述的將差值添加到預(yù)測(cè)值中來(lái)重構(gòu)。給定亮度幀或半幀運(yùn)動(dòng)向量,導(dǎo)出相應(yīng)的色度幀或半幀運(yùn)動(dòng)向量來(lái)補(bǔ)償Cb/Cr塊的一部分或全部。圖78中的偽碼7800描述色度運(yùn)動(dòng)向量CMV如何從隔行掃描P-幀中的亮度運(yùn)動(dòng)向量LMV中導(dǎo)出。D.解碼隔行掃描B-幀本節(jié)參照前一節(jié)中討論的概念描述組合實(shí)現(xiàn)中用于解碼隔行掃描B-幀的過(guò)程。1.隔行掃描B-幀的宏塊級(jí)別解碼在宏塊級(jí)別上,隔行掃描B-幀語(yǔ)法類似于上述隔行掃描P-幀。隔行掃描B-幀中的宏塊被分成三種類型1MV、2半幀MV、和幀內(nèi)。在本組合實(shí)現(xiàn)中4幀MV和4半幀MV模式不被允許用于隔行掃描B-幀。這三種模式像在隔行掃描P-幀中一樣,與MBMODE語(yǔ)法元素共同編碼。每個(gè)宏塊也被預(yù)測(cè)為正向、反向、直接或插值(使用DIRECTMB和BMVTYPE語(yǔ)法元素)如果1MV宏塊是正向或反向,則它使用單個(gè)運(yùn)動(dòng)向量。如果它是1MV但是直接或插值的,則它使用兩個(gè)運(yùn)動(dòng)向量。如果它是2半幀MV類型并是正向或反向預(yù)測(cè)的,則它使用兩個(gè)運(yùn)動(dòng)向量。如果它是2半幀MV類型并是直接或插值的,則它使用四個(gè)運(yùn)動(dòng)向量。以下各節(jié)描述隔行掃描B-幀中不同幀間編碼的宏塊類型的特征。隔行掃描B-幀中的1MV宏塊在隔行掃描B-幀中的1MV宏塊中,亮度塊的位移在預(yù)測(cè)類型是正向或反向時(shí)由單個(gè)運(yùn)動(dòng)向量表示,而在類型是直接或插值時(shí)由兩個(gè)運(yùn)動(dòng)向量表示。在每一情形中導(dǎo)出相應(yīng)的色度向量。在插值和直接預(yù)測(cè)的情形中,平均來(lái)自正向和反向參考圖片的運(yùn)動(dòng)補(bǔ)償像素以形成最終預(yù)測(cè)。隔行掃描B-幀中的2半幀MV宏塊在隔行掃描B-幀中的2半幀MV宏塊中,亮度塊的每個(gè)半幀的位移由一不同運(yùn)動(dòng)向量描述,如圖37所示。此外,在從上半幀去到下半幀時(shí)該預(yù)測(cè)類型被允許從正向切換到反向,或反之,從而使上半幀從一參考圖片中得到運(yùn)動(dòng)補(bǔ)償,而下半幀從另一參考圖片中得到運(yùn)動(dòng)補(bǔ)償,如在以上VII節(jié)中所述的。隔行掃描B-幀中的2MVBP、4MVBP的解釋和運(yùn)動(dòng)向量順序在1MV宏塊中,編碼器用插值模式使用2MVBP語(yǔ)法元素,以表示出現(xiàn)兩個(gè)運(yùn)動(dòng)向量的哪一個(gè)。比特l對(duì)應(yīng)于正向運(yùn)動(dòng)向量,而比特O對(duì)應(yīng)于反向運(yùn)動(dòng)向量。在2半幀MV宏塊中,編碼器用正向和反向模式使用2MVBP語(yǔ)法元素,來(lái)表示出現(xiàn)兩個(gè)半幀的運(yùn)動(dòng)向量的哪一個(gè)。比特1對(duì)應(yīng)于上半幀運(yùn)動(dòng)向量而比特0對(duì)應(yīng)于下半幀運(yùn)動(dòng)向量。當(dāng)MVSW語(yǔ)法元素用來(lái)從用于上半幀的正向預(yù)測(cè)切換到用于下半幀的反向預(yù)測(cè)或反之時(shí),編碼器使用相同的上/下信號(hào)表示。編碼器用插值模式使用4MVBP語(yǔ)法元素,來(lái)表示出現(xiàn)四個(gè)運(yùn)動(dòng)向量的哪一個(gè)。比特3對(duì)應(yīng)于上半幀正向運(yùn)動(dòng)向量,比特2對(duì)應(yīng)于上半幀反向運(yùn)動(dòng)向量,比特l對(duì)應(yīng)于下半幀正向運(yùn)動(dòng)向量,而比特O對(duì)應(yīng)于下半幀反向運(yùn)動(dòng)向量。設(shè)置為的2MVBP和4MVBP的比特表示出現(xiàn)相應(yīng)運(yùn)動(dòng)向量差值,同時(shí)設(shè)置為'0'的比特表示相應(yīng)運(yùn)動(dòng)向量等于所預(yù)測(cè)的運(yùn)動(dòng)向量,即未出現(xiàn)相應(yīng)的運(yùn)動(dòng)向量差值。經(jīng)實(shí)際解碼的運(yùn)動(dòng)向量用與2MVBP或4MVBP中各比特相同的順序發(fā)送。例如,在使用差值模式的2半幀MV宏塊中,要由解碼器接收的第一運(yùn)動(dòng)向量是上半幀正向運(yùn)動(dòng)向量,而要接收的最后(即第四)運(yùn)動(dòng)向量是下半幀反向運(yùn)動(dòng)向量。用信號(hào)表示跳過(guò)的宏塊被跳過(guò)的宏塊以與P幀相同的方式用信號(hào)表示。然而,隔行掃描B-幀中的被跳過(guò)宏塊限于1MV幀類型,即不允許半幀類型。運(yùn)動(dòng)向量用零差值運(yùn)動(dòng)向量編碼(即宏塊是使用其1MV運(yùn)動(dòng)補(bǔ)償值進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)?且沒(méi)有已編碼塊(CBP=0)。如果宏塊被跳過(guò),則編碼器僅發(fā)送該宏塊的BMVTYPE信息,從而運(yùn)動(dòng)向量可被準(zhǔn)確預(yù)測(cè)為正向、反向、直接或插值。用信號(hào)表示宏塊模式用信號(hào)表示宏塊模式用與隔行掃描P-幀相同的方法執(zhí)行,如以上XV.C.節(jié)中所述。預(yù)測(cè)類型解碼(BMVTYPE和MVSW)隔行掃描B-幀的預(yù)測(cè)類型根據(jù)以下規(guī)則解碼。如果圖片層位平面DIRECTMB表示宏塊是直接類型,則該宏塊的預(yù)測(cè)類型被設(shè)置成直接。如果直接/非直接決定用原始模式編碼,則編碼器使用宏塊級(jí)別上的附加比特DIRECTBBIT,來(lái)表示預(yù)測(cè)類型是否是直接。如果預(yù)測(cè)類型是非直接的,則解碼器解碼BMVTYPE語(yǔ)法元素。如果宏塊模式是"2MV半幀編碼",且如果BMVTYPE是正向或反向的,則解碼器還解碼MVSW比特來(lái)判定從該宏塊的上半幀去到下半幀時(shí)預(yù)測(cè)類型是否將改變(即,從正向變?yōu)榉聪?,或反?。解碼直接模式運(yùn)動(dòng)向量為了解碼直接模式運(yùn)動(dòng)向量,解碼器首先緩存來(lái)自先前解碼錨幀的運(yùn)動(dòng)向量。具體地,對(duì)于先前解碼的將來(lái)P-幀,解碼器緩存來(lái)自將來(lái)P-幀的經(jīng)解碼亮度運(yùn)動(dòng)向量的最大可能數(shù)量的一半(即(2*NumberOfMB)個(gè)運(yùn)動(dòng)向量)。選擇要緩存的來(lái)自錨幀的這些運(yùn)動(dòng)向量的方法在以上XIII節(jié)中描述。使用以上所獲得的運(yùn)動(dòng)向量,解碼器應(yīng)用圖19中偽碼1900示出的Scale—Direct一MV中的縮放邏輯,來(lái)獲得正向和反向指示運(yùn)動(dòng)向量,而無(wú)需回拉運(yùn)動(dòng)向量。在本組合實(shí)現(xiàn)中,不計(jì)算其中不使用諸如正向和反向預(yù)測(cè)宏塊的直接模式預(yù)測(cè)的宏塊的直接模式運(yùn)動(dòng)向量。相反,非直接宏塊的運(yùn)動(dòng)向量基于正向或反向運(yùn)動(dòng)向量緩沖區(qū)來(lái)預(yù)測(cè)。2.對(duì)隔行掃描B-幀的運(yùn)動(dòng)向量解碼隔行掃描B-幀的運(yùn)動(dòng)向量預(yù)測(cè)值與隔行掃描P-幀一樣,計(jì)算隔行掃描B-幀的當(dāng)前宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值的過(guò)程包括,從當(dāng)前宏塊的相鄰宏塊中收集其候選運(yùn)動(dòng)向量,并且從候選運(yùn)動(dòng)向量集中計(jì)算當(dāng)前宏塊的運(yùn)動(dòng)向量預(yù)測(cè)值。圖40A-40B示出從中收集候選運(yùn)動(dòng)向量的相鄰宏塊。在該組合實(shí)現(xiàn)中,隔行掃描B-幀的運(yùn)動(dòng)向量預(yù)測(cè)值根據(jù)以上XV.C.節(jié)所述的用于隔行掃描P-幀的規(guī)則來(lái)從候選集中選擇。不同的預(yù)測(cè)上下文被用于正向和反向模式運(yùn)動(dòng)向量。解碼器使用正向預(yù)測(cè)上下文來(lái)預(yù)測(cè)正向運(yùn)動(dòng)向量,并使用反向預(yù)測(cè)上下文來(lái)預(yù)測(cè)反向運(yùn)動(dòng)向量。填充隔行掃描B-幀中的正向和反向預(yù)測(cè)上下文解碼器分開(kāi)緩存正向和反向運(yùn)動(dòng)向量,并分別用它們來(lái)預(yù)測(cè)正向和反向運(yùn)動(dòng)向量。對(duì)于插值宏塊,解碼器使用正向預(yù)測(cè)緩沖區(qū)來(lái)預(yù)測(cè)正向運(yùn)動(dòng)向量(第一個(gè)經(jīng)解碼的MVDATA元素),并使用反向緩沖區(qū)來(lái)預(yù)測(cè)反向運(yùn)動(dòng)向量(第二個(gè)經(jīng)解碼的MVDATA元素)。當(dāng)宏塊是直接或插值,則解碼器將正向MV分量緩存在正向緩沖區(qū)中,并將反向MV分量緩存在反向緩沖區(qū)中。每種情形中(例如1MV宏塊、2半幀MV宏塊等)用于從一個(gè)候選集中選擇運(yùn)動(dòng)向量預(yù)測(cè)值的實(shí)際預(yù)測(cè)邏輯如以上XV.C.節(jié)中所述。用于填充正向和反向運(yùn)動(dòng)向量緩沖區(qū)、并從這些緩沖區(qū)的運(yùn)動(dòng)向量中預(yù)測(cè)運(yùn)動(dòng)向量的方案如以上X.C.節(jié)中所述。解碼隔行掃描B-幀中的運(yùn)動(dòng)向量差值隔行掃描B-幀中的運(yùn)動(dòng)向量差值根據(jù)圖77A和77B中的偽碼7700和7710解碼,如以上XV.C.2節(jié)中所述。重構(gòu)隔行掃描B-幀中的運(yùn)動(dòng)向量隔行掃描B-幀中的運(yùn)動(dòng)向量根據(jù)圖78中的偽碼7800并如以上XV.B.3和XV.C.2節(jié)中所述地解碼。E.位平面編碼宏塊特定的二進(jìn)制信息可用每個(gè)宏塊一個(gè)二進(jìn)制符號(hào)來(lái)編碼,這些二進(jìn)制信息諸如(l)隔行掃描B-半幀的宏塊的正向/非正向決定(即FORWARDMB標(biāo)記),以及(2)隔行掃描B-半幀的宏塊的直接/非直接決定(即DIRECTMB標(biāo)記)。例如,隔行掃描B-半幀的宏塊是否用正向模式(與諸如反向、直接或插值的另一模式相對(duì))作運(yùn)動(dòng)補(bǔ)償可用1個(gè)比特作信號(hào)表示。在這些情形中,半幀或幀中全部宏塊的狀態(tài)可被編碼為位平面并在半幀或幀頭中傳送。該規(guī)則的一個(gè)例外是如果位平面編碼模式被設(shè)置成原始模式時(shí),在該情形中每個(gè)宏塊的狀態(tài)被編碼為每個(gè)符號(hào)1個(gè)比特,并在宏塊級(jí)別上與其它宏塊級(jí)別語(yǔ)法元素一起傳送。半幀/幀級(jí)別位平面編碼被用來(lái)編碼兩維二進(jìn)制數(shù)組。每個(gè)數(shù)組的大小是rowMBxcolMB,其中rowMB和colMB分別是討論中半幀或幀中宏塊行和列的數(shù)量。在比特流內(nèi),每個(gè)數(shù)組被編碼為一個(gè)連續(xù)比特集。七種模式之一被用來(lái)編碼每個(gè)數(shù)組。該七種模式是1.原始模式一編碼為每個(gè)符號(hào)1個(gè)比特并作為MB級(jí)別語(yǔ)法的一部分傳送的信息;2.正常-2(Norm-2)模式一共同編碼的兩個(gè)符號(hào);3.差值-2(Diff-2)模式一位平面的差值編碼,隨后是共同編碼兩個(gè)殘差符號(hào);4.正常-6(Norm-6)模式一共同編碼的六個(gè)符號(hào);5.差值-6(Diff-6)模式一位平面的差值編碼,隨后是共同編碼六個(gè)殘差符號(hào);6.rowskip(跳行)模式一用信號(hào)表示跳過(guò)沒(méi)有設(shè)置比特的行的一個(gè)比特;以及7.columnskip(跳列)模式一用信號(hào)表示跳過(guò)沒(méi)有設(shè)置比特的列的一個(gè)比特。半幀或幀級(jí)別上位平面的語(yǔ)法元素順序如下INVERT、IMODE和DATABITS。逆轉(zhuǎn)標(biāo)記(INVERT)INVERT語(yǔ)法元素是l-比特值,如果設(shè)置則表示該位平面具有比0比特更多的設(shè)置比特。取決于INVERT和模式,解碼器將逆轉(zhuǎn)所解釋的位平面以重新創(chuàng)建原始位平面。注意,當(dāng)使用原始模式時(shí),將忽略該比特的值。以下提供對(duì)解碼位平面時(shí)如何使用INVERT值的描述。編碼模式(IMODE)IMODE語(yǔ)法元素是指示用來(lái)編碼位平面的編碼模式的可變長(zhǎng)度值。表格11示出用來(lái)編碼IMODE語(yǔ)法元素的代碼表。以下提供對(duì)解碼位平面時(shí)如何使用IMODE值的描述。表格11.IMODEVLC代碼表<table>tableseeoriginaldocumentpage87</column></row><table>位平面編碼比特(DATABITS)DATABITS語(yǔ)法元素是編碼位平面的符號(hào)流的可變大小語(yǔ)法元素。用來(lái)編碼位平面的方法根據(jù)IMODE的值來(lái)確定。七種編碼模式在以下各節(jié)中描述。原始模式在該模式中,位平面被編碼為每個(gè)以宏塊的光柵掃描順序掃描的符號(hào)1個(gè)比特,并作為宏塊層的一部分發(fā)送?;蛘撸撔畔⒃诎霂驇?jí)別上以原始模式編碼,且DATABITS在長(zhǎng)度上為rowMBxcolMB比特。Norm-2模式如果rowMBxcolMB為奇數(shù),則第一個(gè)符號(hào)被編碼為原始。后續(xù)符號(hào)成對(duì)地用自然掃描順序編碼。表格12中的二進(jìn)制VLC表格被用來(lái)編碼符號(hào)對(duì)。表格1.Norm-2/Diff-2代碼表<table>tableseeoriginaldocumentpage87</column></row><table>Diff-2模式Norm-2模式用來(lái)如上所述地產(chǎn)生位平面,然后Diff1運(yùn)算如下所述地應(yīng)用于位平面。Norm-6模式在Norm-6和Diff-6模式中,位平面分6個(gè)像素的組進(jìn)行編碼。這些像素被分成2x3或3x2的塊。位平面使用一系列規(guī)則來(lái)最大程度地平鋪,且剩余像素使用跳行和跳列模式的變體進(jìn)行編碼。如果且僅當(dāng)rowMB是3的倍數(shù)而colMB不是,則使用2x3"豎直"塊。否則,使用3x2"水平"塊。圖79A示出2x3"豎直"塊的簡(jiǎn)化示例。圖79B和79C示出3x2"水平"塊,對(duì)這些塊細(xì)長(zhǎng)的黑色矩形為1個(gè)像素寬并使用跳行和跳列編碼進(jìn)行編碼。對(duì)于如圖79C所示平鋪的平面,在圖片的上邊緣和左邊緣使用線性塊,這些塊的編碼順序符合以下模式。先編碼6-元素塊,然后是跳列和跳行編碼的線性塊。如果數(shù)組大小是2x3或3x2的倍數(shù),則后面的線性塊不存在,且位平面被完美平鋪。該6-元素矩形塊使用不完整的哈夫曼代碼編碼,即不將所有端點(diǎn)用于編碼的哈夫曼代碼。設(shè)N是塊中設(shè)置比特的數(shù)量,即0《NS6。對(duì)于N〈3,使用VLC來(lái)編碼該塊。對(duì)于N-3,固定長(zhǎng)度的轉(zhuǎn)義碼之后為5比特固定長(zhǎng)度代碼,對(duì)于N〉3,固定長(zhǎng)度轉(zhuǎn)義碼之后為該塊的補(bǔ)碼。該矩形塊包含6個(gè)比特的信息。設(shè)k為關(guān)聯(lián)于塊的代碼,其中*=6,.2',6,.為該塊內(nèi)自然掃描順序中第i個(gè)比特的二進(jìn)制值。因此,(Kk<64。VLC、轉(zhuǎn)義碼、加上固定長(zhǎng)度代碼被用來(lái)用信號(hào)表示k。Diff-6模式Norm-6模式用來(lái)如上所述地產(chǎn)生位平面,然后Diff1運(yùn)算如下所述地應(yīng)用于位平面。跳行模式在跳行編碼模式中,用1個(gè)比特的開(kāi)銷跳過(guò)所有零行。語(yǔ)法如下對(duì)于每一行,單個(gè)ROWSKIP比特表示是否跳過(guò)該行;如果跳過(guò)該行,則接著是下一行的ROWSKIP比特;否則(未跳過(guò)該行),則接著是ROWBITS比特(該行中每個(gè)宏塊的比特)。因而,如果整行為零,則零比特被發(fā)送為ROWSKIP符號(hào),并跳過(guò)ROWBITS。如果在該行中有一設(shè)置比特,ROWSKIP被設(shè)置為1,且整個(gè)行被發(fā)送為原始(ROWBITS)。各行從半幀或幀的頂部掃描到底部。跳列模式跳列是跳行的轉(zhuǎn)置。各列從半幀或幀的頂部掃描到底部。Diff1:逆向差值解碼在使用任一差值模式(Diff-2或Diff-6)時(shí),"差值比特"的位平面首先使用相應(yīng)的正常模式(Norm-2或Norm-6)解碼。差值比特被用來(lái)重新產(chǎn)生原始位平面。重新產(chǎn)生過(guò)程是二進(jìn)制字母表上的2-DDPCM。為了在位置(i,j)上重新產(chǎn)生比特,預(yù)測(cè)值^(/,力如下產(chǎn)生(從位置(i,j)上的比特6(/,力)<formula>formulaseeoriginaldocumentpage89</formula>否則對(duì)于差值編碼模式,不執(zhí)行基于INVERT的逐個(gè)比特逆轉(zhuǎn)過(guò)程。然而,INVERT標(biāo)記以不同容量用來(lái)表示符號(hào)A的值,用于導(dǎo)出所示預(yù)測(cè)值。更具體地,如果INVERT等于0則A等于0,且如果INVERT等于1則A等于1。位平面的實(shí)際值通過(guò)異或預(yù)測(cè)值和經(jīng)解碼的差值比特值來(lái)獲取。在以上公式中,b(i,j)是在最終解碼之后(即進(jìn)行Norm-2或Norm-6,然后是與其預(yù)測(cè)值的差值異或之后)第(i,j)位置上的比特。已經(jīng)參照各個(gè)實(shí)施例描述和示出了本發(fā)明的各個(gè)原理,可以理解各個(gè)實(shí)施例可在排列和細(xì)節(jié)中進(jìn)行更改而不背離這些原理。應(yīng)當(dāng)理解,在此所述的程序、過(guò)程或方法并不相關(guān)于或限于任何特定類型的計(jì)算環(huán)境,除非另有所示。各種類型的通用或?qū)S糜?jì)算環(huán)境可根據(jù)在此所述的教授內(nèi)容使用或執(zhí)行操作。在軟件中示出的各個(gè)實(shí)施例的元素可用硬件實(shí)現(xiàn),反之亦然。根據(jù)本發(fā)明各原理可應(yīng)用其中的許多可能實(shí)施例,我們將本發(fā)明解釋為可在以下權(quán)利要求及其等效方案的范圍和精神內(nèi)的所有這些實(shí)施例。權(quán)利要求1.一種方法,包括對(duì)于隔行掃描的雙向預(yù)測(cè)圖片的當(dāng)前宏塊,具有第一預(yù)測(cè)方向的第一運(yùn)動(dòng)向量的所述當(dāng)前宏塊選擇所述第一運(yùn)動(dòng)向量的第一組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值;以及至少部分地基于所述第一組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值中的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,計(jì)算所述第一運(yùn)動(dòng)向量的第一運(yùn)動(dòng)向量預(yù)測(cè)值;其中所述第一組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值是從用于所述第一預(yù)測(cè)方向的第一運(yùn)動(dòng)向量緩沖區(qū)中選擇的。2.如權(quán)利要求1所述的方法,還包括至少部分地基于所述第一運(yùn)動(dòng)向量預(yù)測(cè)值和運(yùn)動(dòng)向量差值信息重構(gòu)所述第一運(yùn)動(dòng)向量。3.如權(quán)利要求2所述的方法,其特征在于,所述運(yùn)動(dòng)向量差值信息表示對(duì)所述第一運(yùn)動(dòng)向量不存在運(yùn)動(dòng)向量差值。4.如權(quán)利要求2所述的方法,還包括將所述重構(gòu)后的第一運(yùn)動(dòng)向量存儲(chǔ)在所述第一運(yùn)動(dòng)向量緩沖區(qū)中,用于預(yù)測(cè)所述隔行掃描的雙向預(yù)測(cè)圖片的后續(xù)宏塊的運(yùn)動(dòng)向量。5.如權(quán)利要求1所述的方法,其特征在于,計(jì)算所述第一運(yùn)動(dòng)向量預(yù)測(cè)值包括計(jì)算所述第一組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值中多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值的中值。6.如權(quán)利要求l所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)檎?,且所述第一運(yùn)動(dòng)向量緩沖區(qū)是正向運(yùn)動(dòng)向量緩沖區(qū)。7.如權(quán)利要求l所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)榉聪颍宜龅谝贿\(yùn)動(dòng)向量緩沖區(qū)是反向運(yùn)動(dòng)向量緩沖區(qū)。8.如權(quán)利要求1所述的方法,還包括,對(duì)于隔行掃描的雙向預(yù)測(cè)圖片的當(dāng)前宏塊的第二運(yùn)動(dòng)向量-從第二運(yùn)動(dòng)向量緩沖區(qū)中選擇第二組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,其中所述第二運(yùn)動(dòng)向量緩沖區(qū)用于與所述第一預(yù)測(cè)方向相反的第二預(yù)測(cè)方向;以及至少部分地基于所述第二組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值中的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,計(jì)算第二運(yùn)動(dòng)向量預(yù)測(cè)值。9.如權(quán)利要求8所述的方法,還包括將第二運(yùn)動(dòng)向量預(yù)測(cè)值存儲(chǔ)在所述第二運(yùn)動(dòng)向量緩沖區(qū)中,用于預(yù)測(cè)所述隔行掃描的雙向預(yù)測(cè)圖片的后續(xù)宏塊的運(yùn)動(dòng)向量。10.如權(quán)利要求8所述的方法,還包括至少部分地基于所述第二運(yùn)動(dòng)向量預(yù)測(cè)值和運(yùn)動(dòng)向量差值信息重構(gòu)所述第二運(yùn)動(dòng)向量;將所述重構(gòu)后的第二運(yùn)動(dòng)向量存儲(chǔ)在所述第二運(yùn)動(dòng)向量緩沖區(qū)中,用于預(yù)測(cè)所述隔行掃描的雙向預(yù)測(cè)圖片的后續(xù)宏塊的運(yùn)動(dòng)向量。11.如權(quán)利要求l所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-半幀,且其中所述第一運(yùn)動(dòng)向量用于整個(gè)當(dāng)前宏塊的正向或反向預(yù)測(cè)。12.如權(quán)利要求l所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-半幀,且其中所述第一運(yùn)動(dòng)向量用于當(dāng)前宏塊中單個(gè)塊的正向或反向預(yù)測(cè)。13.如權(quán)利要求l所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-幀,且其中所述第一運(yùn)動(dòng)向量用于整個(gè)當(dāng)前宏塊的正向或反向預(yù)測(cè)。14.如權(quán)利要求l所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-幀,且其中所述第一運(yùn)動(dòng)向量用于當(dāng)前宏塊中一個(gè)半幀的正向或反向預(yù)測(cè)。15.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行如權(quán)利要求1所述的方法。16.—種方法,包括選擇用于隔行掃描的雙向預(yù)測(cè)圖片的宏塊的第一預(yù)測(cè)方向中的第一運(yùn)動(dòng)向量的第一組一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,其中所述第一組一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值是從用于第一預(yù)測(cè)方向的第一運(yùn)動(dòng)向量緩沖區(qū)中選擇的;至少部分地基于所述第一組一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值中的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,計(jì)算所述第一運(yùn)動(dòng)向量的第一運(yùn)動(dòng)向量預(yù)測(cè)值;至少部分地基于所述第一運(yùn)動(dòng)向量預(yù)測(cè)值重構(gòu)所述第一運(yùn)動(dòng)向量;將所述重構(gòu)后的第一運(yùn)動(dòng)向量添加到所述第一運(yùn)動(dòng)向量緩沖區(qū);選擇用于隔行掃描的雙向預(yù)測(cè)圖片的宏塊的第二組一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,其中所述第二組一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值是從第二運(yùn)動(dòng)向量緩沖區(qū)中選擇的,所述第二運(yùn)動(dòng)向量緩沖區(qū)用于不同于第一預(yù)測(cè)方向的第二預(yù)測(cè)方向;至少部分地基于所述第二組一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值中的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,計(jì)算所述宏塊的第二運(yùn)動(dòng)向量預(yù)測(cè)值;以及將所述第二運(yùn)動(dòng)向量預(yù)測(cè)值添加到所述第二運(yùn)動(dòng)向量緩沖區(qū)。17.如權(quán)利要求16所述的方法,其特征在于,重構(gòu)所述第一運(yùn)動(dòng)向量還基于運(yùn)動(dòng)向量差值信息。18.如權(quán)利要求17所述的方法,其特征在于,所述運(yùn)動(dòng)向量差值信息表示對(duì)所述第一運(yùn)動(dòng)向量不存在運(yùn)動(dòng)向量差值。19.如權(quán)利要求16所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)檎?,其中所述第一運(yùn)動(dòng)向量緩沖區(qū)是正向運(yùn)動(dòng)向量緩沖區(qū),且所述第二預(yù)測(cè)方向?yàn)榉聪颍渲兴龅诙\(yùn)動(dòng)向量緩沖區(qū)是反向運(yùn)動(dòng)向量緩沖區(qū)。20.如權(quán)利要求19所述的方法,其特征在于,所述宏塊具有預(yù)測(cè)模式,且其中所述預(yù)測(cè)模式為正向。21.如權(quán)利要求16所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)榉聪?,其中所述第一運(yùn)動(dòng)向量緩沖區(qū)是反向運(yùn)動(dòng)向量緩沖區(qū),且所述第二預(yù)測(cè)方向?yàn)檎?,其中所述第二運(yùn)動(dòng)向量緩沖區(qū)是正向運(yùn)動(dòng)向量緩沖區(qū)。22.如權(quán)利要求21所述的方法,其特征在于,所述宏塊具有預(yù)測(cè)模式,且其中所述預(yù)測(cè)模式為反向。23.如權(quán)利要求16所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-幀。24.如權(quán)利要求16所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-半幀。25.如權(quán)利要求16所述的方法,其特征在于,第一運(yùn)動(dòng)向量用于整個(gè)宏塊。26.如權(quán)利要求16所述的方法,其特征在于,計(jì)算所述第一運(yùn)動(dòng)向量預(yù)測(cè)值包括計(jì)算所述第一組中多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值的中值,且其中計(jì)算所述第二運(yùn)動(dòng)向量預(yù)測(cè)值包括計(jì)算所述第二組中多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值的中值。27.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求16所述的方法。28.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求16所述的方法。29.—種方法,包括選擇用于隔行掃描的雙向預(yù)測(cè)圖片的宏塊的第一預(yù)測(cè)方向中的第一運(yùn)動(dòng)向量的第一組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,其中所述多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值是從用于第一預(yù)測(cè)方向的第一運(yùn)動(dòng)向量緩沖區(qū)中選擇的;以及至少部分地基于所述多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值中的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,計(jì)算所述第一運(yùn)動(dòng)向量的第一運(yùn)動(dòng)向量預(yù)測(cè)值。30.如權(quán)利要求29所述的方法,其特征在于,計(jì)算所述第一運(yùn)動(dòng)向量預(yù)測(cè)值包括計(jì)算多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值的中值。31.如權(quán)利要求29所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)檎颍宜龅谝贿\(yùn)動(dòng)向量緩沖區(qū)是正向運(yùn)動(dòng)向量緩沖區(qū)。32.如權(quán)利要求29所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)榉聪?,且所述第一運(yùn)動(dòng)向量緩沖區(qū)是反向運(yùn)動(dòng)向量緩沖區(qū)。33.如權(quán)利要求29所述的方法,還包括從第二運(yùn)動(dòng)向量緩沖區(qū)中選擇用于宏塊的第二組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值;至少部分地基于所述多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值的一個(gè)或多個(gè),計(jì)算所述宏塊的第二運(yùn)動(dòng)向量預(yù)測(cè)值;以及將所述第二運(yùn)動(dòng)向量預(yù)測(cè)值存儲(chǔ)在所述第二運(yùn)動(dòng)向量緩沖區(qū)中。34.如權(quán)利要求29所述的方法,還包括從第二運(yùn)動(dòng)向量緩沖區(qū)中選擇用于宏塊的第二組多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值;至少部分地基于所述多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值的一個(gè)或多個(gè),計(jì)算所述宏塊的第二運(yùn)動(dòng)向量預(yù)測(cè)值;至少部分地基于所述第二運(yùn)動(dòng)向量預(yù)測(cè)值重構(gòu)所述宏塊的第二運(yùn)動(dòng)向量;以及將所述第二運(yùn)動(dòng)向量存儲(chǔ)在所述第二運(yùn)動(dòng)向量緩沖區(qū)中。35.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求29所述的方法。36.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求29所述的方法。37.—種方法,包括使用第一預(yù)測(cè)模式預(yù)測(cè)隔行掃描的雙向預(yù)測(cè)圖片的半幀編碼宏塊中第一半幀的第一運(yùn)動(dòng)向量;以及使用第二預(yù)測(cè)模式預(yù)測(cè)隔行掃描的雙向預(yù)測(cè)圖片的半幀編碼宏塊中第二半幀的第二運(yùn)動(dòng)向量,其中所述第二預(yù)測(cè)模式不同于所述第一預(yù)測(cè)模式。38.如權(quán)利要求37所述的方法,其特征在于,所述半幀編碼宏塊的運(yùn)動(dòng)補(bǔ)償一共使用兩個(gè)運(yùn)動(dòng)向量,包括所述第一和第二運(yùn)動(dòng)向量。39.如權(quán)利要求37所述的方法,其特征在于,所述第一半幀是上半幀而所述第二半幀是下半幀。40.如權(quán)利要求37所述的方法,其特征在于,所述第一半幀是下半幀而所述第二半幀是上半幀。41.如權(quán)利要求37所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-幀,且其中所述第一模式為正向而所述第一模式為反向。42.如權(quán)利要求41所述的方法,其特征在于,所述第一半幀的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值至少部分地基于正向運(yùn)動(dòng)向量緩沖區(qū)中的運(yùn)動(dòng)向量確定。43.如權(quán)利要求41所述的方法,其特征在于,所述第二半幀的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值至少部分地基于反向運(yùn)動(dòng)向量緩沖區(qū)中的運(yùn)動(dòng)向量確定。44.如權(quán)利要求37所述的方法,其特征在于,所述第一預(yù)測(cè)模式為反向而所述第二預(yù)測(cè)模式為正向。45.如權(quán)利要求37所述的方法,還包括至少部分地基于所預(yù)測(cè)的第一運(yùn)動(dòng)向量重構(gòu)所述第一運(yùn)動(dòng)向量;以及將所述重構(gòu)后的第一運(yùn)動(dòng)向量存儲(chǔ)在用于第一預(yù)測(cè)模式的所述第一運(yùn)動(dòng)向量緩沖區(qū)中。46.如權(quán)利要求45所述的方法,還包括至少部分地基于所預(yù)測(cè)的第二運(yùn)動(dòng)向量重構(gòu)所述第二運(yùn)動(dòng)向量;以及將所述重構(gòu)后的第二運(yùn)動(dòng)向量存儲(chǔ)在用于第二預(yù)測(cè)模式的所述第二運(yùn)動(dòng)向量緩沖區(qū)中。47.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求37所述的方法。48.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求37所述的方法。49.一種方法,包括使用正向預(yù)測(cè)模式預(yù)測(cè)隔行掃描B-幀的半幀編碼宏塊中第一半幀的第一運(yùn)動(dòng)向量;以及使用反向預(yù)測(cè)模式預(yù)測(cè)隔行掃描B-幀的半幀編碼宏塊中第二半幀的第二運(yùn)動(dòng)向量。50.如權(quán)利要求49所述的方法,其特征在于,所述第一半幀是隔行掃描B-幀的半幀編碼宏塊中的上半幀而所述第二半幀是下半幀。51.如權(quán)利要求49所述的方法,其特征在于,所述第一半幀是隔行掃描B-幀的半幀編碼宏塊中的下半幀而所述第二半幀是上半幀。52.如權(quán)利要求49所述的方法,其特征在于,所述半幀編碼宏塊的運(yùn)動(dòng)補(bǔ)償僅使用所述第一和第二運(yùn)動(dòng)向量。53.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求49所述的方法。54.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求49所述的方法。55.—種方法,包括用信號(hào)表示隔行掃描B-幀的當(dāng)前半幀編碼宏塊的第一預(yù)測(cè)模式;以及用信號(hào)表示所述當(dāng)前半幀編碼宏塊的預(yù)測(cè)模式切換,從而指定對(duì)所述當(dāng)前半幀編碼宏塊的第一半幀使用所述第一預(yù)測(cè)模式,并對(duì)所述當(dāng)前半幀編碼宏塊的第二半幀使用與所述第一預(yù)測(cè)模式相反的第二預(yù)測(cè)模式。56.如權(quán)利要求55所述的方法,其特征在于,所述第一預(yù)測(cè)模式為正向而所述第二預(yù)測(cè)模式為反向。57.如權(quán)利要求55所述的方法,其特征在于,所述第一預(yù)測(cè)模式為反向而所述第二預(yù)測(cè)模式為正向。58.如權(quán)利要求55所述的方法,其特征在于,僅在所述第一預(yù)測(cè)模式為正向或反向時(shí)才用信號(hào)表示所述預(yù)測(cè)模式切換。59.—種方法,包括接收表示隔行掃描B-幀的當(dāng)前半幀編碼宏塊的第一預(yù)測(cè)模式的預(yù)測(cè)模式信號(hào);接收表示預(yù)測(cè)模式切換是否應(yīng)用于所述當(dāng)前半幀編碼宏塊的切換模式信號(hào);以及在應(yīng)用預(yù)測(cè)模式切換時(shí),對(duì)所述當(dāng)前半幀編碼宏塊的第一半幀使用所述第一預(yù)測(cè)模式,并對(duì)所述當(dāng)前半幀編碼宏塊的第二半幀使用與所述第一預(yù)測(cè)模式相反的第二預(yù)測(cè)模式。60.如權(quán)利要求59所述的方法,其特征在于,所述第一預(yù)測(cè)模式為正向而所述第二預(yù)測(cè)模式為反向。61.如權(quán)利要求59所述的方法,其特征在于,所述第一預(yù)測(cè)模式為反向而所述第二預(yù)測(cè)模式為正向。62.如權(quán)利要求59所述的方法,其特征在于,僅在所述第一預(yù)測(cè)模式為正向或反向時(shí)才接收所述切換模式信號(hào)。63.—種方法,包括計(jì)算隔行掃描的雙向預(yù)測(cè)圖片的宏塊中的四個(gè)塊的每一個(gè)的運(yùn)動(dòng)向量;以及在處理隔行掃描的雙向預(yù)測(cè)圖片中,使用所計(jì)算運(yùn)動(dòng)向量的一個(gè)或多個(gè)。64.如權(quán)利要求63所述的方法,其特征在于,計(jì)算所述宏塊中四個(gè)塊的每一個(gè)的運(yùn)動(dòng)向量包括確定所述宏塊中四個(gè)塊的每一個(gè)的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值;至少部分地基于所述塊的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值中的一個(gè)或多個(gè),計(jì)算所述四個(gè)塊的每一個(gè)的運(yùn)動(dòng)向量預(yù)測(cè)值;以及至少部分地基于所述塊的運(yùn)動(dòng)向量預(yù)測(cè)值,重構(gòu)所述四個(gè)塊的每一個(gè)的運(yùn)動(dòng)向量。65.如權(quán)利要求64所述的方法,其特征在于,重構(gòu)所述四個(gè)塊的每一個(gè)的運(yùn)動(dòng)向量包括組合所述塊的運(yùn)動(dòng)向量預(yù)測(cè)值與所述塊的運(yùn)動(dòng)向量差值信息。66.如權(quán)利要求63所述的方法,其特征在于,所述宏塊是正向預(yù)測(cè)的宏塊。67.如權(quán)利要求63所述的方法,其特征在于,所述宏塊是反向預(yù)測(cè)的宏塊。68.如權(quán)利要求63所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-幀,且其中所述宏塊是所述隔行掃描B-幀中的幀編碼宏塊。69.如權(quán)利要求63所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-半幀。70.如權(quán)利要求63所述的方法,還包括對(duì)所述隔行掃描的雙向預(yù)測(cè)圖片中多個(gè)其它宏塊的每一個(gè)重復(fù)所述計(jì)算和重構(gòu),其中四個(gè)運(yùn)動(dòng)向量宏塊可能用于正向和反向預(yù)測(cè)模式,但不用于其它可用預(yù)測(cè)模式。71.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求63所述的方法。72.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求63所述的方法。73.—種方法,包括在經(jīng)編碼比特流的宏塊級(jí)別上用信號(hào)表示用于所述隔行掃描的雙向預(yù)測(cè)圖片的當(dāng)前宏塊的預(yù)測(cè)模式;以及當(dāng)所述用信號(hào)表示的預(yù)測(cè)模式允許每個(gè)宏塊有四個(gè)運(yùn)動(dòng)向量時(shí),用信號(hào)表示用于重構(gòu)所述當(dāng)前宏塊的最多達(dá)四個(gè)塊的每一個(gè)的運(yùn)動(dòng)向量的信息。74.如權(quán)利要求73所述的方法,其特征在于,如果所述用信號(hào)表示的預(yù)測(cè)模式是正向或反向,則所述用信號(hào)表示的預(yù)測(cè)模式允許每個(gè)宏塊有四個(gè)運(yùn)動(dòng)向量,但是如果用信號(hào)表示的預(yù)測(cè)模式是另一可用模式,則不允許。75.如權(quán)利要求73所述的方法,其特征在于,所述當(dāng)前宏塊的預(yù)測(cè)模式至少部分地也在所述經(jīng)編碼比特流的幀或半幀級(jí)別上用信號(hào)表示。76.如權(quán)利要求75所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-半幀,且其中對(duì)所述預(yù)測(cè)模式的半幀級(jí)別信號(hào)表示包括位平面中的正向/非正向預(yù)測(cè)模式?jīng)Q定。77.如權(quán)利要求75所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-幀,且其中對(duì)所述預(yù)測(cè)模式?jīng)Q定的幀級(jí)別信號(hào)表示包括位平面中的直接/非直接預(yù)測(cè)模式?jīng)Q定。78.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行如權(quán)利要求73所述的方法。79.—種方法,包括在經(jīng)編碼比特流的宏塊級(jí)別上接收并處理對(duì)用于所述隔行掃描的雙向預(yù)測(cè)圖片的當(dāng)前宏塊的預(yù)測(cè)模式的預(yù)測(cè)模式信息;以及當(dāng)所述預(yù)測(cè)模式允許每個(gè)宏塊有四個(gè)運(yùn)動(dòng)向量時(shí),接收并處理用于重構(gòu)所述當(dāng)前宏塊的最多達(dá)四個(gè)塊的每一個(gè)的運(yùn)動(dòng)向量的運(yùn)動(dòng)向量重構(gòu)信息。80.如權(quán)利要求79所述的方法,其特征在于,如果所述預(yù)測(cè)模式是正向或反向,則所述預(yù)測(cè)模式允許每個(gè)宏塊有四個(gè)運(yùn)動(dòng)向量,但是如果所述預(yù)測(cè)模式是另一可用模式,則不然。81.如權(quán)利要求79所述的方法,其特征在于,所述當(dāng)前宏塊的預(yù)測(cè)模式至少部分地也在所述經(jīng)編碼比特流的幀或半幀級(jí)別上用信號(hào)表示。82.如權(quán)利要求81所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-半幀,且其中對(duì)所述預(yù)測(cè)模式的半幀級(jí)別信號(hào)表示包括位平面中的正向/非正向預(yù)測(cè)模式?jīng)Q定。83.如權(quán)利要求81所述的方法,其特征在于,所述隔行掃描的雙向預(yù)測(cè)圖片是隔行掃描B-幀,且其中對(duì)所述預(yù)測(cè)模式?jīng)Q定的幀級(jí)別信號(hào)表示包括位平面中的直接/非直接預(yù)測(cè)模式?jīng)Q定。84.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行如權(quán)利要求79所述的方法。85.—種方法,包括-對(duì)于隔行掃描B-半幀中的宏塊,具有第一預(yù)測(cè)方向的重構(gòu)后第一運(yùn)動(dòng)向量的所述宏塊將所述重構(gòu)后第一運(yùn)動(dòng)向量存儲(chǔ)在用于所述第一預(yù)測(cè)方向的第一運(yùn)動(dòng)向量緩沖區(qū)中;計(jì)算用于不同于所述第一預(yù)測(cè)方向的第二預(yù)測(cè)方向的運(yùn)動(dòng)向量預(yù)測(cè)值,其中所述運(yùn)動(dòng)向量預(yù)測(cè)值至少部分地基于來(lái)自用于所述第二預(yù)測(cè)方向的第二運(yùn)動(dòng)向量緩沖區(qū)的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值;以及將所述運(yùn)動(dòng)向量預(yù)測(cè)值存儲(chǔ)在所述第二運(yùn)動(dòng)向量緩沖區(qū)中。86.如權(quán)利要求85所述的方法,其特征在于,計(jì)算用于所述第二預(yù)測(cè)方向的運(yùn)動(dòng)向量預(yù)測(cè)值至少部分地基于來(lái)自所述第二運(yùn)動(dòng)向量緩沖區(qū)的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值的極性信息。87.如權(quán)利要求86所述的方法,其特征在于,所述極性信息包括主極性的指示,且其中計(jì)算用于所述第二預(yù)測(cè)方向的運(yùn)動(dòng)向量預(yù)測(cè)值包括選擇一候選主極性預(yù)測(cè)值。88.如權(quán)利要求85所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)檎蚨龅诙A(yù)測(cè)方向?yàn)榉聪颉?9.如權(quán)利要求85所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)榉聪蚨龅诙A(yù)測(cè)方向?yàn)檎颉?0.如權(quán)利要求85所述的方法,其特征在于,重構(gòu)所述第一運(yùn)動(dòng)向量包括至少部分地基于來(lái)自第一運(yùn)動(dòng)向量緩沖區(qū)的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值,計(jì)算用于所述第一預(yù)測(cè)方向的運(yùn)動(dòng)向量預(yù)測(cè)值;以及組合用于所述第一預(yù)測(cè)方向的運(yùn)動(dòng)向量預(yù)測(cè)值與運(yùn)動(dòng)向量差值信息。91.如權(quán)利要求85所述的方法,其特征在于,所述隔行掃描B-半幀中的宏塊是1MV宏塊,且其中具有所述第一和第二運(yùn)動(dòng)向量緩沖區(qū)中的運(yùn)動(dòng)向量的至少一個(gè)宏塊是4MV宏塊。92.如權(quán)利要求85所述的方法,其特征在于,所述隔行掃描B-半幀中的宏塊是4MV宏塊,且其中具有所述第一和第二運(yùn)動(dòng)向量緩沖區(qū)中的運(yùn)動(dòng)向量的至少一個(gè)宏塊是1MV宏塊。93.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求85所述的方法。94.一種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求85所述的方法。95.—種方法,包括將第一運(yùn)動(dòng)向量存儲(chǔ)在用于第一預(yù)測(cè)方向的第一運(yùn)動(dòng)向量緩沖區(qū)中,其中所述第一運(yùn)動(dòng)向量用于隔行掃描B-半幀中的宏塊;計(jì)算用于不同于所述第一預(yù)測(cè)方向的第二預(yù)測(cè)方向的主極性運(yùn)動(dòng)向量預(yù)測(cè)值,其中所述主極性運(yùn)動(dòng)向量預(yù)測(cè)值至少部分地基于極性信息以及來(lái)自用于所述第二預(yù)測(cè)方向的第二運(yùn)動(dòng)向量緩沖區(qū)的一個(gè)或多個(gè)候選運(yùn)動(dòng)向量預(yù)測(cè)值;以及將所述主極性運(yùn)動(dòng)向量預(yù)測(cè)值存儲(chǔ)在所述第二運(yùn)動(dòng)向量緩沖區(qū)中。96.如權(quán)利要求95所述的方法,其特征在于,所述第一預(yù)測(cè)方向?yàn)檎蚨龅诙A(yù)測(cè)方向?yàn)榉聪?,或者所述第一預(yù)測(cè)方向?yàn)榉聪蚨龅诙A(yù)測(cè)方向?yàn)檎颉?7.如權(quán)利要求95所述的方法,其特征在于,所述隔行掃描B-半幀中的宏塊是1MV或4MV宏塊。98.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行如權(quán)利要求95所述的方法。99.一種方法,包括確定當(dāng)前隔行掃描的雙向預(yù)測(cè)圖片在視頻序列中的分?jǐn)?shù),其中所述分?jǐn)?shù)表示當(dāng)前隔行掃描的雙向預(yù)測(cè)圖片在第一參考圖片和第二參考圖片之間的間隔中的位置;以及對(duì)于當(dāng)前隔行掃描的雙向預(yù)測(cè)圖片中的宏塊,至少部分地基于所述分?jǐn)?shù)計(jì)算運(yùn)動(dòng)向量預(yù)測(cè)值。100.如權(quán)利要求99所述的方法,其特征在于,所述分?jǐn)?shù)影響來(lái)自運(yùn)動(dòng)向量緩沖區(qū)的第一半幀運(yùn)動(dòng)向量的縮放,以導(dǎo)出第二半幀運(yùn)動(dòng)向量。101.如權(quán)利要求99所述的方法,其特征在于,所述運(yùn)動(dòng)向量預(yù)測(cè)值被計(jì)算,用于重構(gòu)所述宏塊的運(yùn)動(dòng)向量。102.如權(quán)利要求101所述的方法,其特征在于,所述運(yùn)動(dòng)向量的預(yù)測(cè)模式為反向。103.如權(quán)利要求101所述的方法,其特征在于,所述運(yùn)動(dòng)向量的預(yù)測(cè)模式為正向。104.如權(quán)利要求101所述的方法,其特征在于,所述運(yùn)動(dòng)向量的預(yù)測(cè)模式為插值。105.如權(quán)利要求99所述的方法,其特征在于,所述運(yùn)動(dòng)向量預(yù)測(cè)值被計(jì)算,用于運(yùn)動(dòng)向量緩沖區(qū)的空穴填充。106.如權(quán)利要求99所述的方法,其特征在于,所述當(dāng)前隔行掃描的雙向圖片是隔行掃描B-半幀。107.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行如權(quán)利要求99所述的方法。108.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行如權(quán)利要求99所述的方法。109.—種處理雙向預(yù)測(cè)視頻圖片的方法,所述方法包括對(duì)當(dāng)前雙向預(yù)測(cè)圖片的當(dāng)前隔行掃描宏塊確定所述當(dāng)前圖片的分?jǐn)?shù),其中所述當(dāng)前圖片具有先前參考圖片和將來(lái)參考圖片,且其中所述分?jǐn)?shù)表示所述當(dāng)前圖片相對(duì)于其參考圖片的時(shí)間位置;尋找所述將來(lái)參考圖片中的共處宏塊的運(yùn)動(dòng)向量;使用所述分?jǐn)?shù)縮放所述共處宏塊的運(yùn)動(dòng)向量;以及使用所述縮放后的運(yùn)動(dòng)向量來(lái)估計(jì)所述當(dāng)前宏塊中的運(yùn)動(dòng)。110.如權(quán)利要求109所述的方法,其特征在于,縮放所述共處宏塊的運(yùn)動(dòng)向量包括縮放所述共處宏塊的運(yùn)動(dòng)向量的垂直分量和水平分量。111.一種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行如權(quán)利要求109所述的方法。112.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行如權(quán)利要求109所述的方法。113.—種方法,包括至少部分地基于當(dāng)前隔行掃描幀的第一雙向預(yù)測(cè)半幀的多個(gè)參考半幀處理所述第一半幀;以及至少部分地基于當(dāng)前隔行掃描幀的第二雙向預(yù)測(cè)半幀的多個(gè)參考半幀處理所述第二半幀,其中所述當(dāng)前隔行掃描幀的第一半幀是用于所述當(dāng)前隔行掃描幀的第二半幀的多個(gè)參考半幀之一。114.如權(quán)利要求113所述的方法,其特征在于,所述第一半幀是當(dāng)前隔行掃描幀的上半幀,而所述第二半幀是當(dāng)前隔行掃描幀的下半幀。115.如權(quán)利要求113所述的方法,其特征在于,所述第一半幀的多個(gè)參考半幀的每一個(gè)在當(dāng)前隔行掃描幀之外,且其中所述第二半幀的多個(gè)參考半幀的每一個(gè),除了所述第一半幀之外都在所述當(dāng)前隔行掃描幀之外。116.如權(quán)利要求113所述的方法,其特征在于,所述第一半幀的多個(gè)參考半幀還包括前一隔行掃描幀中的上下半幀;以及后一隔行掃描幀中的上下半幀。117.如權(quán)利要求113所述的方法,其特征在于,所述第二半幀的多個(gè)參考半幀還包括前一隔行掃描幀中的相同極性半幀;以及后一隔行掃描幀中的上下半幀。118.如權(quán)利要求113所述的方法,其特征在于,處理所述第一半幀包括用參考所述第一半幀可用的多個(gè)參考半幀的一個(gè)或多個(gè)的運(yùn)動(dòng)向量執(zhí)行運(yùn)動(dòng)補(bǔ)償,且其中處理所述第二半幀包括用參考所述第二半幀可用的多個(gè)參考半幀的一個(gè)或多個(gè)的運(yùn)動(dòng)向量執(zhí)行運(yùn)動(dòng)補(bǔ)償。119.一種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求113所述的方法。120.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求113所述的方法。121.—種方法,包括至少部分地基于當(dāng)前隔行掃描幀的第一雙向預(yù)測(cè)半幀的多個(gè)參考半幀處理所述第一半幀;以及至少部分地基于當(dāng)前隔行掃描幀的第二雙向預(yù)測(cè)半幀的多個(gè)參考半幀處理所述第二半幀;其中所述第一半幀的多個(gè)參考半幀包括前一隔行掃描幀中的上下半幀以及后一隔行掃描幀中的上下半幀,且其中所述第二半幀的多個(gè)參考半幀包括當(dāng)前隔行掃描幀的第一半幀、前一隔行掃描幀中的相同極性半幀、以及后一隔行掃描幀中的上下半幀。122.如權(quán)利要求121所述的方法,其特征在于,所述第一半幀是當(dāng)前隔行掃描幀的上半幀,而所述第二半幀是當(dāng)前隔行掃描幀的下半幀。123.如權(quán)利要求121所述的方法,其特征在于,處理所述第一半幀包括用參考所述第一半幀可用的多個(gè)參考半幀的一個(gè)或多個(gè)的運(yùn)動(dòng)向量執(zhí)行運(yùn)動(dòng)補(bǔ)償,且其中處理所述第二半幀包括用參考所述第二半幀可用的多個(gè)參考半幀的一個(gè)或多個(gè)的運(yùn)動(dòng)向量執(zhí)行運(yùn)動(dòng)補(bǔ)償。124.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求121所述的方法。125.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求121所述的方法。126.—種方法,包括處理當(dāng)前隔行掃描幀的第一半幀;以及至少部分地基于當(dāng)前隔行掃描幀的第二半幀的多個(gè)參考半幀處理所述第二半幀,其中所述第二半幀是隔行掃描B-半幀,且其中所述第二半幀的多個(gè)參考半幀包括所述第一半幀。127.如權(quán)利要求126所述的方法,其特征在于,所述第一半幀是當(dāng)前隔行掃描幀的上半幀,而所述第二半幀是當(dāng)前隔行掃描幀的下半幀。128.如權(quán)利要求126所述的方法,其特征在于,所述第一半幀是當(dāng)前隔行掃描幀的下半幀,而所述第二半幀是當(dāng)前隔行掃描幀的上半幀。129.如權(quán)利要求126所述的方法,其特征在于,所述第一半幀是隔行掃描B-半幀。130.如權(quán)利要求129所述的方法,其特征在于,所述第一半幀的多個(gè)參考半幀包括前一隔行掃描幀中的上下半幀以及后一隔行掃描幀中的上下半幀。131.如權(quán)利要求126所述的方法,其特征在于,所述第二半幀的多個(gè)參考半幀還包括前一隔行掃描幀中的相同極性半幀;以及后一隔行掃描幀中的上下半幀。132.如權(quán)利要求126所述的方法,其特征在于,處理所述第二半幀包括用參考所述第二半幀可用的多個(gè)參考半幀的一個(gè)或多個(gè)的運(yùn)動(dòng)向量執(zhí)行運(yùn)動(dòng)補(bǔ)償。133.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求126所述的方法。134.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求126所述的方法。135.—種方法,包括處理用于包括多個(gè)宏塊的雙向預(yù)測(cè)圖片的位平面,其中所述位平面表示二進(jìn)制決定信息,它表示雙向預(yù)測(cè)圖片中的多個(gè)宏塊是使用正向模式預(yù)測(cè)還是使用非正向模式預(yù)測(cè)進(jìn)行運(yùn)動(dòng)補(bǔ)償。136.如權(quán)利要求135所述的方法,其特征在于,所述雙向預(yù)測(cè)圖片是隔行掃描B-半幀。137.如權(quán)利要求135所述的方法,還包括從用于處理所述位平面的多個(gè)可用編碼模式中選擇一編碼模式。138.如權(quán)利要求135所述的方法,其特征在于,所述位平面是半幀頭級(jí)別位平面。139.如權(quán)利要求135所述的方法,還包括,當(dāng)所述二進(jìn)制決定信息表示運(yùn)動(dòng)補(bǔ)償將非正向預(yù)測(cè)模式用于所述多個(gè)宏塊之一時(shí),處理來(lái)自可變長(zhǎng)度代碼表的一可變長(zhǎng)度代碼,其中所述可變長(zhǎng)度代碼表示用于所述宏塊的不同于正向模式的預(yù)測(cè)模式。140.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行如權(quán)利要求135所述的方法。141.一種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行如權(quán)利要求B5所述的方法。142.—種方法,包括從一組多個(gè)可用編碼模式中選擇一編碼模式;以及根據(jù)所述選定編碼模式處理隔行掃描B-半幀的位平面,其中所述位平面表示二進(jìn)制決定信息,它表示隔行掃描B-半幀中的多個(gè)宏塊是使用正向模式預(yù)測(cè)還是使用非正向模式預(yù)測(cè)進(jìn)行運(yùn)動(dòng)補(bǔ)償。143.如權(quán)利要求142所述的方法,其特征在于,所述多個(gè)可用編碼模式的至少兩個(gè)包括降低關(guān)聯(lián)于所述二進(jìn)制決定信息的比特率。144.如權(quán)利要求142所述的方法,其特征在于,所述多個(gè)可用編碼模式包括行預(yù)測(cè)編碼模式、列預(yù)測(cè)編碼模式、一個(gè)或多個(gè)向量可變長(zhǎng)度編碼模式、以及一個(gè)或多個(gè)差值編碼模式。145.如權(quán)利要求142所述的方法,其特征在于,所述位平面在半幀級(jí)別上用信號(hào)表示。146.如權(quán)利要求142所述的方法,還包括,當(dāng)所述二進(jìn)制決定信息表示運(yùn)動(dòng)補(bǔ)償將非正向預(yù)測(cè)模式用于所述多個(gè)宏塊之一時(shí),處理來(lái)自可變長(zhǎng)度代碼表的一可變長(zhǎng)度代碼,其中所述可變長(zhǎng)度代碼表示用于所述宏塊的不同于正向模式的預(yù)測(cè)模式。147.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行如權(quán)利要求142所述的方法,其中處理所述位平面包括編碼所述位平面。148.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行如權(quán)利要求142所述的方法,其中處理所述位平面包括解碼所述位平面。149.一種方法,包括從多個(gè)可用編碼模式中選擇一編碼模式,其中所述多個(gè)可用編碼模式包括一原始模式;以及如果所選定的編碼模式為所述原始模式,則在宏塊級(jí)別上處理二進(jìn)制決定信息,它表示雙向預(yù)測(cè)圖片中的多個(gè)宏塊是使用正向模式預(yù)測(cè)還是使用非正向模式預(yù)測(cè)進(jìn)行運(yùn)動(dòng)補(bǔ)償,否則,根據(jù)所選定的編碼模式,將二進(jìn)制決定信息處理為位平面。150.如權(quán)利要求149所述的方法,其特征在于,所述雙向預(yù)測(cè)圖片是隔行掃描B-半幀。151.如權(quán)利要求149所述的方法,其特征在于,所述位平面是半幀頭級(jí)別位平面。152.如權(quán)利要求149所述的方法,還包括,當(dāng)所述二進(jìn)制決定信息表示運(yùn)動(dòng)補(bǔ)償將非正向預(yù)測(cè)模式用于所述多個(gè)宏塊之一時(shí),處理來(lái)自可變長(zhǎng)度代碼表的一可變長(zhǎng)度代碼,其中所述可變長(zhǎng)度代碼表示用于所述宏塊的不同于正向模式的預(yù)測(cè)模式。153.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行如權(quán)利要求149所述的方法。154.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行如權(quán)利要求149所述的方法。155.—種方法,包括計(jì)算要在對(duì)隔行掃描B-半幀中的當(dāng)前宏塊進(jìn)行直接模式縮放時(shí)使用的運(yùn)動(dòng)向量,包括當(dāng)參考半幀的共處宏塊是1MV宏塊時(shí),將所述共處宏塊的單個(gè)運(yùn)動(dòng)向量選擇為要在直接模式縮放中使用的運(yùn)動(dòng)向量,以及當(dāng)參考半幀的共處宏塊是4MV宏塊時(shí),將來(lái)自所述共處宏塊的最多達(dá)4個(gè)運(yùn)動(dòng)向量的主極性運(yùn)動(dòng)向量選擇為要在直接模式縮放中使用的運(yùn)動(dòng)向量。156.如權(quán)利要求155所述的方法,其特征在于,計(jì)算所述主極性運(yùn)動(dòng)向量包括在最多達(dá)4個(gè)的運(yùn)動(dòng)向量中,計(jì)數(shù)相同極性運(yùn)動(dòng)向量并計(jì)數(shù)相反極性運(yùn)動(dòng)向量;以及如果相反極性運(yùn)動(dòng)向量的計(jì)數(shù)值超過(guò)相同極性運(yùn)動(dòng)向量的計(jì)數(shù)值,則基于所述相反極性運(yùn)動(dòng)向量計(jì)算所述主極性運(yùn)動(dòng)向量,否則基于所述相同極性運(yùn)動(dòng)向量計(jì)算所述主極性運(yùn)動(dòng)向量。157.如權(quán)利要求155所述的方法,其特征在于,計(jì)算所述主極性運(yùn)動(dòng)向量包括平均兩個(gè)運(yùn)動(dòng)向量。158.如權(quán)利要求155所述的方法,其特征在于,計(jì)算所述主極性運(yùn)動(dòng)向量包括計(jì)算三個(gè)或四個(gè)運(yùn)動(dòng)向量的中值。159.如權(quán)利要求155所述的方法,其特征在于,計(jì)算所述主極性運(yùn)動(dòng)向量包括從最多達(dá)四個(gè)的運(yùn)動(dòng)向量中選擇單個(gè)可用運(yùn)動(dòng)向量。160.如權(quán)利要求155所述的方法,包括在處理隔行掃描B-半幀中的當(dāng)前宏塊期間執(zhí)行所述計(jì)算。161.如權(quán)利要求155所述的方法,包括在開(kāi)始處理隔行掃描B-半幀中的當(dāng)前宏塊之前處理所述共處宏塊期間執(zhí)行所述計(jì)算。162.如權(quán)利要求155所述的方法,所述參考半幀具有與隔行掃描B-半幀相同的極性。163.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行如權(quán)利要求155.所述的方法。164.—種存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于使計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行如權(quán)利要求155所述的方法。165.—種方法,包括緩存隔行掃描錨幀中多個(gè)宏塊的多個(gè)運(yùn)動(dòng)向量,包括對(duì)所述多個(gè)宏塊的至少之一緩存所述宏塊中不同半幀的不同運(yùn)動(dòng)向量;對(duì)于當(dāng)前隔行掃描雙向預(yù)測(cè)幀中的直接模式宏塊,在所述隔行掃描錨幀的多個(gè)宏塊中選擇對(duì)應(yīng)于共處宏塊的一個(gè)或多個(gè)緩存運(yùn)動(dòng)向量;以及至少部分地基于所選定的一個(gè)或多個(gè)運(yùn)動(dòng)向量,計(jì)算直接模式宏塊的多個(gè)直接模式運(yùn)動(dòng)向量。166.如權(quán)利要求165所述的方法,其特征在于,選擇一個(gè)或多個(gè)緩存運(yùn)動(dòng)向量至少部分地基于直接模式宏塊的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)模式。167.如權(quán)利要求166所述的方法,其特征在于,所述直接模式宏塊的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)模式為1MV。168.如權(quán)利要求167所述的方法,其特征在于,所選定的一個(gè)或多個(gè)運(yùn)動(dòng)向量包括一個(gè)選定運(yùn)動(dòng)向量。169.如權(quán)利要求167所述的方法,其特征在于,所述共處宏塊是半幀編碼的,且其中所選定的一個(gè)或多個(gè)運(yùn)動(dòng)向量包括從所述共處宏塊的上半幀選定的運(yùn)動(dòng)向170.如權(quán)利要求166所述的方法,其特征在于,所述直接模式宏塊的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)模式為2半幀MV。171.如權(quán)利要求170所述的方法,其特征在于,所選定的一個(gè)或多個(gè)運(yùn)動(dòng)向量包括兩個(gè)選定運(yùn)動(dòng)向量。172.如權(quán)利要求170所述的方法,其特征在于,所述共處宏塊是半幀編碼的,且其中所選定的一個(gè)或多個(gè)運(yùn)動(dòng)向量包括所述共處宏塊的上半幀運(yùn)動(dòng)向量和下半幀運(yùn)動(dòng)向量。173.如權(quán)利要求165所述的方法,其特征在于,緩存多個(gè)運(yùn)動(dòng)向量包括對(duì)所述多個(gè)宏塊的每一個(gè)緩存不超過(guò)兩個(gè)運(yùn)動(dòng)向量。174.如權(quán)利要求165所述的方法,其特征在于,所述多個(gè)直接模式運(yùn)動(dòng)向量包括一對(duì)正向和反向直接模式運(yùn)動(dòng)向量,且其中所述直接模式宏塊是1MV宏塊。175.如權(quán)利要求165所述的方法,其特征在于,所述多個(gè)直接模式運(yùn)動(dòng)向量包括兩對(duì)正向和反向直接模式運(yùn)動(dòng)向量,且其中所述直接模式宏塊是2半幀MV宏塊。176.如權(quán)利要求175所述的方法,其特征在于,所述兩對(duì)正向和后向直接模式運(yùn)動(dòng)向量的每一對(duì)用于所述直接模式宏塊的不同半幀。177.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求165所述的方法。178.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求165所述的方法。179.—種方法,包括計(jì)算要在對(duì)隔行掃描B-半幀中的當(dāng)前宏塊進(jìn)行直接模式縮放時(shí)使用的一個(gè)或多個(gè)運(yùn)動(dòng)向量,其中所述計(jì)算至少部分地依賴于隔行掃描參考幀中當(dāng)前宏塊的運(yùn)動(dòng)補(bǔ)償模式和共處宏塊的運(yùn)動(dòng)補(bǔ)償模式而變化;以及使用所述一個(gè)或多個(gè)運(yùn)動(dòng)向量執(zhí)行所述直接模式縮放。180.如權(quán)利要求179所述的方法,其特征在于,所述計(jì)算包括,當(dāng)所述共處宏塊是具有單個(gè)運(yùn)動(dòng)向量的1MV宏塊時(shí)當(dāng)當(dāng)前宏塊是1MV宏塊時(shí),選擇要在所述當(dāng)前宏塊的直接模式縮放中使用的共處宏塊的單個(gè)運(yùn)動(dòng)向量;以及當(dāng)當(dāng)前宏塊是具有上下半幀的半幀編碼的2MV宏塊時(shí),選擇要在所述當(dāng)前宏塊的上下半幀的每一個(gè)的直接模式縮放中使用的共處宏塊的單個(gè)運(yùn)動(dòng)向量。181.如權(quán)利要求179所述的方法,其特征在于,所述計(jì)算包括當(dāng)所述共處宏塊是具有上半幀運(yùn)動(dòng)向量和下半幀運(yùn)動(dòng)向量的半幀編碼的2MV宏塊時(shí)當(dāng)當(dāng)前宏塊是1MV宏塊時(shí),選擇要在所述當(dāng)前宏塊的直接模式縮放中使用的共處宏塊的上半幀運(yùn)動(dòng)向量;以及當(dāng)當(dāng)前宏塊是半幀編碼的2MV宏塊時(shí),選擇要在所述當(dāng)前宏塊的上半幀的直接模式縮放中使用的共處宏塊的上半幀運(yùn)動(dòng)向量,并選擇要在所述當(dāng)前宏塊的下半幀的直接模式縮放中使用的共處宏塊的下半幀運(yùn)動(dòng)向量。182.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻編碼器中執(zhí)行如權(quán)利要求179所述的方法。183.—種具有存儲(chǔ)其上的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令用于在視頻解碼器中執(zhí)行如權(quán)利要求179所述的方法。全文摘要對(duì)于隔行掃描B-半幀或隔行掃描B-幀,正向運(yùn)動(dòng)向量使用來(lái)自正向運(yùn)動(dòng)向量緩沖區(qū)的正向運(yùn)動(dòng)向量由編碼器/解碼器預(yù)測(cè),而反向運(yùn)動(dòng)向量使用來(lái)自反向運(yùn)動(dòng)向量緩沖區(qū)的反向運(yùn)動(dòng)向量由編碼器/解碼器預(yù)測(cè)。結(jié)果的運(yùn)動(dòng)向量被添加到相應(yīng)的緩沖區(qū)中。運(yùn)動(dòng)向量緩沖區(qū)中的空穴可用所估計(jì)的運(yùn)動(dòng)向量值填充。編碼器/解碼器在隔行掃描B-幀的半幀編碼宏塊中的半幀之間切換預(yù)測(cè)模式。對(duì)于隔行掃描B-半幀或隔行掃描B-幀,編碼器/解碼器計(jì)算直接模式運(yùn)動(dòng)向量。對(duì)于隔行掃描B-半幀或隔行掃描B-幀,編碼器/解碼器使用4MV編碼。編碼器/解碼器使用“自參考”B-幀。編碼器發(fā)送二進(jìn)制信息,表示對(duì)隔行掃描B-半幀的一個(gè)或多個(gè)宏塊的預(yù)測(cè)模式是正向還是非正向的。編碼器/解碼器使用幀內(nèi)編碼的B-半幀[“BI-半幀”]。文檔編號(hào)H04N7/12GK101416525SQ200480024621公開(kāi)日2009年4月22日申請(qǐng)日期2004年9月3日優(yōu)先權(quán)日2003年9月7日發(fā)明者K·慕克吉,T·W·赫爾科比申請(qǐng)人:微軟公司