專(zhuān)利名稱(chēng)::隔行掃描視頻的編碼與解碼的制作方法
技術(shù)領(lǐng)域:
:描述了隔行掃描視頻編碼與解碼的技術(shù)和工具。
背景技術(shù):
:數(shù)字視頻消耗大量存儲(chǔ)和傳輸能力。典型的原始數(shù)字視頻序列每秒鐘包括15或30幀。每幀可以包括成千上萬(wàn)個(gè)象素(也稱(chēng)為pel),其中每個(gè)象素代表圖像的一個(gè)微小元素。在原始格式中,計(jì)算機(jī)通常將一個(gè)象素表示為一組三個(gè)樣本,總共24個(gè)比特。例如,一個(gè)象素可包括八位亮度樣本(也稱(chēng)為luma樣本,因?yàn)樾g(shù)語(yǔ)“l(fā)uminance(亮度)”和“l(fā)uma”在這里可交換使用),它定義了象素的灰度級(jí)分量,并包括兩個(gè)八位色度樣本(也稱(chēng)為chroma樣本,因?yàn)樾g(shù)語(yǔ)“chrominance(色度)”和“chroma”在這里可交換使用),它們定義了象素的色彩分量。因而,典型的原始數(shù)字視頻序列每秒鐘的比特?cái)?shù),即比特率可以是每秒5百萬(wàn)個(gè)比特或更多。許多計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)缺乏處理原始數(shù)字視頻的資源。因此,工程師使用壓縮(也稱(chēng)為編碼或譯碼)來(lái)降低數(shù)字視頻的比特率。壓縮通過(guò)將視頻轉(zhuǎn)換成較低比特率形式來(lái)降低存儲(chǔ)和傳輸視頻的成本。解壓(也稱(chēng)為解碼)從壓縮格式重構(gòu)原始視頻的版本?!熬幗獯a器”是編碼器/解碼器系統(tǒng)。壓縮可以是無(wú)損的,其中視頻質(zhì)量不受損害,但在比特率方面的降低受到視頻數(shù)據(jù)的可變性的固有量(有時(shí)稱(chēng)為熵)限制?;蛘?,壓縮可以是有損的,其中視頻質(zhì)量受到損害,但在比特率方面可達(dá)到的降低是相當(dāng)顯著的。有損壓縮經(jīng)常結(jié)合無(wú)損壓縮使用_有損壓縮建立信息的近似值,而應(yīng)用無(wú)損壓縮來(lái)表示該近似值。通常,視頻壓縮技術(shù)包括“圖像內(nèi)”壓縮和“圖像間”壓縮,其中圖像是例如逐行掃描的視頻幀、隔行掃描視頻幀(具有視頻半幀的交替行)或隔行掃描視頻半幀。對(duì)于逐行掃描幀,圖像內(nèi)壓縮技術(shù)壓縮獨(dú)立的幀(一般稱(chēng)為I幀或關(guān)鍵幀),而圖像間壓縮技術(shù)參考前導(dǎo)和/或后續(xù)幀(一般稱(chēng)為參考或錨幀)或多個(gè)前導(dǎo)和/或后續(xù)幀(用于B幀)來(lái)壓縮幀(一般稱(chēng)為預(yù)測(cè)幀,P幀,或B幀)。圖像間壓縮技術(shù)經(jīng)常使用運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償。對(duì)于運(yùn)動(dòng)估計(jì),例如,編碼器將當(dāng)前的預(yù)測(cè)幀劃分成8x8或16x16個(gè)象素單元。對(duì)于當(dāng)前幀的一個(gè)單元,找出參考幀中的相似單元用作預(yù)測(cè)值。運(yùn)動(dòng)矢量指示該預(yù)測(cè)值在參考幀中的位置。換言之,當(dāng)前幀的一個(gè)單元的運(yùn)動(dòng)矢量指示在當(dāng)前幀中該單元的空間位置與在參考幀中預(yù)測(cè)值的空間位置之間的位移。編碼器計(jì)算當(dāng)前單元與預(yù)測(cè)值之間的逐樣本差,以確定殘差(也稱(chēng)為誤差信號(hào))。如果當(dāng)前單元大小是16x16,則將殘差分成四個(gè)8x8塊。對(duì)于每個(gè)8x8的殘差,編碼器應(yīng)用一個(gè)可逆的頻率變換運(yùn)算,它產(chǎn)生一組頻域(即頻譜)系數(shù)。離散余弦變換[“DCT”]是一種類(lèi)型的頻率變換。對(duì)所得到的頻譜系數(shù)塊進(jìn)行量化并且熵編碼。如果將預(yù)測(cè)幀用作后續(xù)運(yùn)動(dòng)補(bǔ)償?shù)膮⒖迹瑒t編碼器重構(gòu)預(yù)測(cè)幀。當(dāng)重構(gòu)殘差時(shí),編碼器重構(gòu)量化過(guò)的變換系數(shù)(例如,DCT系數(shù)),并且執(zhí)行反頻率變換,如反DCT[“IDCT”]。編碼器執(zhí)行運(yùn)動(dòng)補(bǔ)償以計(jì)算預(yù)測(cè)值,并且將這些預(yù)測(cè)值與殘差組合起來(lái)。在解碼時(shí),解碼器一般對(duì)信息進(jìn)行熵編碼并且執(zhí)行模擬運(yùn)算來(lái)重構(gòu)殘差,執(zhí)行運(yùn)動(dòng)補(bǔ)償,并且將預(yù)測(cè)值與殘差組合起來(lái)。I.在WindowsMediaVideo版本8和9中的幀間壓縮微軟公司的WindowsMediaVideo(Windows媒體視頻)版本8["WMV8"]包括視頻編碼器和視頻解碼器。WMV8編碼器使用幀內(nèi)和幀間壓縮,而WMV8解碼器使用幀內(nèi)和幀間解壓。WindowsMediaVideo版本9[“WMV9”]對(duì)許多操作使用類(lèi)似的體系結(jié)構(gòu)。WMV8編碼器中的幀間壓縮使用基于塊的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)編碼,之后是殘留誤差的變換編碼。圖1和2示出了用于WMV8編碼器中的預(yù)測(cè)幀的基于塊的幀間壓縮。具體地,圖1示出了用于預(yù)測(cè)幀(110)的運(yùn)動(dòng)估計(jì),圖2示出了用于預(yù)測(cè)幀的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)膲K的預(yù)測(cè)殘差的壓縮。例如,在圖1中,WMV8編碼器為預(yù)測(cè)幀(110)中的宏塊(115)計(jì)算運(yùn)動(dòng)矢量。為計(jì)算運(yùn)動(dòng)矢量,編碼器在參考幀(130)的搜索區(qū)域(135)中進(jìn)行搜索。在搜索區(qū)域(135)中,編碼器將來(lái)自預(yù)測(cè)幀(110)的宏塊(115)與各種候選宏塊進(jìn)行比較,以找出作為良好匹配的候選宏塊。編碼器輸出指定匹配宏塊的運(yùn)動(dòng)矢量(熵編碼的)的信息。由于運(yùn)動(dòng)矢量值經(jīng)常與空間圍繞的運(yùn)動(dòng)矢量的值相關(guān),因此用于發(fā)送運(yùn)動(dòng)矢量信息的數(shù)據(jù)的壓縮可以通過(guò)從相鄰宏塊中確定或選擇一個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值并且使用該運(yùn)動(dòng)矢量預(yù)測(cè)值預(yù)測(cè)當(dāng)前宏塊的運(yùn)動(dòng)矢量來(lái)完成。編碼器可以編碼運(yùn)動(dòng)矢量與運(yùn)動(dòng)矢量預(yù)測(cè)值之間的差分。例如,編碼器計(jì)算運(yùn)動(dòng)矢量的水平分量與運(yùn)動(dòng)矢量預(yù)測(cè)值的水平分量之間的差,計(jì)算運(yùn)動(dòng)矢量的垂直分量與運(yùn)動(dòng)矢量預(yù)測(cè)值的垂直分量之間的差,以及編碼這些差。在通過(guò)將差分加到預(yù)測(cè)值重構(gòu)運(yùn)動(dòng)矢量之后,解碼器使用運(yùn)動(dòng)矢量,利用來(lái)自參考幀(130)的信息來(lái)為宏塊(115)計(jì)算預(yù)測(cè)宏塊,參考幀(130)是在編碼器和解碼器處可用的先前重構(gòu)的幀。預(yù)測(cè)很少是完美的,因此編碼器通常對(duì)預(yù)測(cè)宏塊和宏塊(115)本身之間的像素差塊(也稱(chēng)為誤差或殘差塊)進(jìn)行編碼。圖2示出了WMV8編碼器中的誤差塊(235)的計(jì)算和編碼的示例。誤差塊(235)是預(yù)測(cè)的塊(215)和原始的當(dāng)前塊(225)之差。編碼器向誤差塊(235)應(yīng)用離散余弦變換[“DCT”](240),得到8X8的系數(shù)塊(245)。編碼器然后量化(250)該DCT系數(shù),得到8X8的經(jīng)量化的DCT系數(shù)塊(255)。編碼器將8X8的塊255掃描(260)成一維數(shù)組(265),使得系數(shù)一般從最低頻率到最高頻率排序。編碼器使用行程長(zhǎng)度編碼(270)的變更對(duì)掃描的系數(shù)進(jìn)行熵編碼。編碼器從一個(gè)或多個(gè)“行程/等級(jí)/最后”表(275)中選擇熵碼,并輸出該熵碼。圖3示出了用于幀間編碼塊的對(duì)應(yīng)解碼過(guò)程(300)的示例。在圖3的概述中,解碼器使用可變長(zhǎng)度解碼(310),利用一個(gè)或多個(gè)“行程/級(jí)別/最后”表315和行程長(zhǎng)度解碼(320),對(duì)表示預(yù)測(cè)殘差的熵編碼的信息進(jìn)行解碼(310、320)。解碼器將儲(chǔ)存熵編碼的信息的一維數(shù)組325反掃描(330)成二維塊(335)。解碼器對(duì)該數(shù)據(jù)進(jìn)行反量化和離散反余弦變換(共同在340處),得到重構(gòu)的誤差塊(345)。在獨(dú)立的運(yùn)動(dòng)補(bǔ)償路徑中,解碼器對(duì)從參考幀的偏移使用運(yùn)動(dòng)矢量信息(355)計(jì)算預(yù)測(cè)塊(365)。解碼器將預(yù)測(cè)塊(365)與重構(gòu)的誤差塊(345)組合(370),以形成重構(gòu)塊(375)。II.隔行掃描視頻和逐行掃描視頻視頻幀包含視頻信號(hào)的空間信息的行。對(duì)于逐行掃描視頻,這些行包含從一個(gè)時(shí)刻開(kāi)始繼續(xù)以光柵掃描的方式通過(guò)連續(xù)的行直到幀底部的樣值。逐行掃描的I幀是幀內(nèi)編碼的逐行掃描視頻幀。逐行掃描的P幀是使用前向預(yù)測(cè)編碼的逐行掃描視頻幀,而逐行掃描的B幀是使用雙向預(yù)測(cè)編碼的逐行掃描視頻幀。隔行掃描視頻的主要方面是整個(gè)視頻幀的光柵掃描是通過(guò)兩遍完成的,其中每遍掃描交替的行。例如,第一掃描是由幀的偶數(shù)行構(gòu)成,而第二掃描是由掃描的奇數(shù)行構(gòu)成。這導(dǎo)致每個(gè)幀包含兩個(gè)半幀,它們表示兩個(gè)不同的時(shí)間點(diǎn)。圖4示出包括上半幀(410)和下半幀(420)的隔行掃描的視頻幀(400)。在幀(400)中,偶數(shù)號(hào)的行(上半幀)是從一個(gè)時(shí)刻(例如,時(shí)刻t)開(kāi)始掃描的,而奇數(shù)號(hào)的行(下半幀)是從一個(gè)不同(通常稍晚)的時(shí)刻(例如,時(shí)刻t+1)開(kāi)始掃描的。當(dāng)兩個(gè)半幀在不同的時(shí)刻開(kāi)始掃描時(shí),這一時(shí)序可創(chuàng)建隔行掃描視頻幀的存在運(yùn)動(dòng)的區(qū)域中看似鋸齒狀的特征。為此,可依照半幀結(jié)構(gòu)對(duì)隔行掃描視頻幀重新排列,使得奇數(shù)行被組合在一起成為一個(gè)半幀,而偶數(shù)行被組合在一起成為另一半幀。這一排列被稱(chēng)為半幀編碼,它在高運(yùn)動(dòng)圖像中對(duì)于降低這一鋸齒狀邊緣的人為因素是非常有用的。另一方面,在靜止區(qū)域中,隔行掃描視頻幀中的圖像細(xì)節(jié)可被更有效地保存,而無(wú)需這樣的重新排列。因此,通常在靜止或低運(yùn)動(dòng)的隔行掃描視頻幀中使用幀編碼,在這樣的視頻幀中,保存了原始的交錯(cuò)半幀行排列。典型的逐行掃描視頻幀由具有非交錯(cuò)行的內(nèi)容的一幀構(gòu)成。與隔行掃描視頻相反,逐行掃描視頻不將視頻幀劃分成獨(dú)立的半幀,且從單個(gè)時(shí)刻開(kāi)始,從左到右、從上到下掃描整個(gè)幀。III.在WMV編碼器和解碼器中先前的編碼與解碼以可執(zhí)行形式發(fā)布的用于WMV編碼器和解碼器的早先的軟件已經(jīng)使用了逐行掃描和隔行掃描P幀的編碼與解碼。盡管編碼器和解碼器對(duì)于許多不同的編碼/解碼情形和內(nèi)容類(lèi)型是有效的,但是在若干地方還有改進(jìn)空間。A.運(yùn)動(dòng)補(bǔ)償?shù)膮⒖紙D像編碼器和解碼器使用運(yùn)動(dòng)補(bǔ)償用于逐行掃描和隔行掃描前向預(yù)測(cè)幀。對(duì)于逐行掃描P幀,運(yùn)動(dòng)補(bǔ)償是相對(duì)于單個(gè)參考幀的,后者是先前重構(gòu)的I幀或P幀,當(dāng)前P幀緊跟在該幀之后。由于當(dāng)前P幀的參考幀是已知的,并且只有一個(gè)參考幀是可能的,因此不需要用于在多個(gè)參考幀之間選擇的信息。隔行掃描P幀的宏塊可以是半幀編碼的,或者是幀編碼的。在半幀編碼的宏塊中,最多兩個(gè)運(yùn)動(dòng)矢量與該宏塊相關(guān)聯(lián),一個(gè)用于上半幀而一個(gè)用于下半幀。在幀編碼的宏塊中,最多一個(gè)運(yùn)動(dòng)矢量與該宏塊相關(guān)聯(lián)。對(duì)于在隔行掃描P幀中的幀編碼宏塊,運(yùn)動(dòng)補(bǔ)償是相對(duì)于單個(gè)參考幀的,后者是先前重構(gòu)的I幀或P幀,當(dāng)前P幀緊跟在該幀之后。對(duì)于在隔行掃描P幀中的半幀編碼宏塊,運(yùn)動(dòng)補(bǔ)償仍是相對(duì)于單個(gè)參考幀的,但對(duì)于半幀編碼宏塊的上半幀的運(yùn)動(dòng)矢量只考慮參考幀的上半幀行,并且對(duì)于半幀編碼宏塊的下半幀的運(yùn)動(dòng)矢量只考慮參考幀的下半幀行。再一次,由于參考幀是已知的并且只有一個(gè)參考幀是可能的,因此不需要用于在多個(gè)參考幀之間選擇的信息。在某些編碼/解碼情形(例如,帶有許多運(yùn)動(dòng)的高比特率隔行掃描視頻)中,限制對(duì)前向預(yù)測(cè)的運(yùn)動(dòng)補(bǔ)償相對(duì)于單個(gè)參考可能會(huì)損害整個(gè)壓縮效率。B.用信號(hào)表示宏塊信息編碼器和解碼器使用用于逐行掃描或隔行掃描P幀的宏塊信息的信號(hào)表示。1.用信號(hào)表示用于逐行掃描P幀的宏塊信息逐行掃描P幀可以是1MV或混合MV幀。1MVP逐行掃描幀包括1MV宏塊。1MV宏塊具有一個(gè)運(yùn)動(dòng)矢量,它指示在該宏塊中所有六個(gè)塊的預(yù)測(cè)塊位移。混合MV逐行掃描P幀包括1MV和/或4MV宏塊。4MV宏塊具有從0到4個(gè)運(yùn)動(dòng)矢量,其中每個(gè)運(yùn)動(dòng)矢量用于該宏塊的最多四個(gè)亮度塊之一。在逐行掃描P幀中的宏塊可以是三種可能類(lèi)型之一1MV,4MV和跳過(guò)。另外,1MV和4MV宏塊可以是幀內(nèi)編碼的。宏塊類(lèi)型是由圖像與宏塊層元素的組合來(lái)指示的。因而,1MV宏塊可以在1MV和混合MV逐行掃描幀中出現(xiàn)。單個(gè)運(yùn)動(dòng)矢量數(shù)據(jù)MVDATA元素與1MV宏塊中的所有塊相關(guān)聯(lián)。MVDATA用信號(hào)表示這些塊被編碼為幀內(nèi)編碼類(lèi)型還是被編碼為幀間編碼類(lèi)型。如果它們被編碼為幀間編碼,則MVDATA還指示運(yùn)動(dòng)矢量差分。如果逐行掃描P幀是1MV,則在該幀中的所有運(yùn)動(dòng)矢量是1MV宏塊,因此沒(méi)有必要單獨(dú)地用信號(hào)表示宏塊類(lèi)型。如果逐行掃描P幀是混合MV,則在該幀中的宏塊可以是1MV或4MV。在這種情況下,通過(guò)比特流中圖像層處的位平面,為幀中的每個(gè)宏塊用信號(hào)表示宏塊類(lèi)型(1MV或4MV)。經(jīng)解碼的位平面將宏塊的1MV/4MV狀態(tài)以上左至下右的光柵掃描順序表示為1比特值的平面。值0指示相應(yīng)的宏塊是以1MV模式編碼的。值1指示相應(yīng)的宏塊是以4MV模式編碼的。在一個(gè)編碼模式中,在比特流的宏塊層處的每個(gè)宏塊用信號(hào)表示1MV/4MV狀態(tài)信息(而非表示為逐行掃描P幀的平面)。4MV宏塊出現(xiàn)在混合MV逐行掃描幀中。在4MV宏塊內(nèi)的各個(gè)塊可以被編碼為幀內(nèi)編碼塊。對(duì)于4MV宏塊的四個(gè)亮度塊中的每一個(gè),幀內(nèi)編碼/幀間編碼狀態(tài)是由與該塊相關(guān)聯(lián)的塊運(yùn)動(dòng)矢量數(shù)據(jù)BLKMVDATA元素用信號(hào)表示的。對(duì)于4MV宏塊,已編碼塊模式CBPCY元素指示哪些塊在比特流中存在BLKMVDATA元素。色度塊的幀間編碼/幀內(nèi)編碼狀態(tài)是從亮度幀間編碼/幀內(nèi)編碼狀態(tài)導(dǎo)出的。如果兩個(gè)或多個(gè)亮度塊被編碼為幀內(nèi)編碼,則色度塊也被編碼為幀內(nèi)編碼。另外,幀中每個(gè)宏塊的跳過(guò)/非跳過(guò)狀態(tài)也是由逐行掃描幀的位平面用信號(hào)表示的。跳過(guò)的宏塊仍可具有混合運(yùn)動(dòng)矢量預(yù)測(cè)的相關(guān)信息。CBCPY是可變長(zhǎng)度代碼[“VLC”],它被解碼為一個(gè)6比特字段。CBPCY出現(xiàn)在1MV和4MV宏塊的比特流中的不同位置,并且對(duì)于1MV和4MV宏塊具有不同的語(yǔ)義。如果(l)MVDATA指示該宏塊是幀間編碼的,以及(2)MVDATA指示1MV宏塊的至少一個(gè)塊包含系數(shù)信息(由從MVDATA解碼的“最后一個(gè)”值指示的),則CBPCY存在于1MV宏塊層中。如果CBPCY存在,則它被解碼為一個(gè)6比特字段,它指示相應(yīng)的六個(gè)塊中的哪一些包含至少一個(gè)非零的系數(shù)。CBCPY始終在4MV宏塊層中存在。亮度塊的CBPCY比特位置(位0_3)與色度塊的比特位置(位4與5)相比,有輕微不同的意義。對(duì)于亮度塊的一個(gè)比特位置,0指示相應(yīng)塊不包含運(yùn)動(dòng)矢量信息或任何非零系數(shù)。對(duì)于這樣一個(gè)塊,BLKMVDATA不存在,預(yù)測(cè)運(yùn)動(dòng)矢量用作運(yùn)動(dòng)矢量,并且沒(méi)有殘差數(shù)據(jù)。如果運(yùn)動(dòng)矢量預(yù)測(cè)值指示使用混合運(yùn)動(dòng)矢量預(yù)測(cè),則存在一個(gè)單一比特,它指示要使用的候選運(yùn)動(dòng)矢量預(yù)測(cè)值。在亮度塊的一個(gè)比特位置中的1指示該塊存在BLKMVDATA。BLKMVDATA指示該塊是幀間編碼還是幀內(nèi)編碼,并且如果是幀間編碼,則指示運(yùn)動(dòng)矢量差分。BLKMVDATA還指示是否存在該塊的系數(shù)數(shù)據(jù)(用從BLKMVDATA解碼的“最后一個(gè)”值)。對(duì)于色度塊的一個(gè)比特位置,0或1指示相應(yīng)塊是否包含非零系數(shù)信息。編碼器和解碼器使用VLC表的代碼表,分別用于MVDATA、BLKMVDATA和CBCPY。2.用信號(hào)表示用于隔行掃描P幀的宏塊信息隔行掃描P幀可具有幀編碼與半幀編碼宏塊的混合。在半幀編碼宏塊中,最多兩個(gè)運(yùn)動(dòng)矢量與該宏塊相關(guān)聯(lián)。在幀編碼宏塊中,最多一個(gè)運(yùn)動(dòng)矢量與該宏塊相關(guān)聯(lián)。如果序列層元素INTERLACE是1,則圖像層元素INTRLCF存在于比特流中。INTRLCF是1比特的元素,它指示用于在該幀中編碼宏塊的模式。如果INTRLCF=0,則在幀中的所有宏塊以幀模式編碼。如果INTRLCF=1,則宏塊可以用半幀或幀模式編碼,并且在圖像層中存在的位平面INTRLCMB指示隔行掃描P幀中每個(gè)宏塊的半幀/幀編碼狀態(tài)。在隔行掃描P幀中的宏塊可以是三種可能類(lèi)型之一幀編碼,半幀編碼和跳過(guò)。宏塊類(lèi)型是由圖像與宏塊層元素的組合指示的。單個(gè)MVDATA與幀編碼宏塊中的所有塊相關(guān)聯(lián)。MVDATA用信號(hào)表示將塊編碼為幀內(nèi)編碼還是幀間編碼類(lèi)型。如果它們被編碼為幀間編碼,則MVDATA還指示運(yùn)動(dòng)矢量差分。在半幀編碼宏塊中,上半幀運(yùn)動(dòng)矢量數(shù)據(jù)T0PMVDATA元素與上半幀塊相關(guān)聯(lián),而下半幀運(yùn)動(dòng)矢量數(shù)據(jù)B0TMVDATA元素與下半幀塊相關(guān)聯(lián)。在每個(gè)半幀的第一塊處用信號(hào)表示這些元素。更明確地說(shuō),T0PMVDATA連同左上半幀塊一起用信號(hào)表示,而B(niǎo)0TMVDATA連同左下半幀塊一起用信號(hào)表示。T0PMVDATA指示上半幀塊是幀內(nèi)編碼還是幀間編碼。如果它們是幀間編碼,則T0PMVDATA還指示上半幀塊的運(yùn)動(dòng)矢量差分。同樣,B0TMVDATA用信號(hào)表示下半幀塊的幀間編碼/幀內(nèi)編碼狀態(tài),以及可能的下半幀塊的運(yùn)動(dòng)矢量差分信息。CBPCY指示哪些半幀具有在比特流中存在的運(yùn)動(dòng)矢量數(shù)據(jù)元素。跳過(guò)的宏塊是由圖像層中的SKIPMB位平面用信號(hào)表示的。CBPCY和運(yùn)動(dòng)矢量數(shù)據(jù)元素用于指定塊是否具有AC系數(shù)。如果從MVDATA解碼的“最后一個(gè)”值指示在運(yùn)動(dòng)矢量之后有數(shù)據(jù)要解碼,則對(duì)隔行掃描幀的幀編碼宏塊存在CBPCY。如果CBPCY存在,則它被解碼為一個(gè)6比特字段,一個(gè)比特用于四個(gè)Y塊中的每一個(gè),一個(gè)比特用于兩個(gè)U塊(上半幀和下半幀),以及一個(gè)比特用于兩個(gè)V塊(上半幀和下半幀)。對(duì)半幀編碼宏塊始終存在CBPCY。CBPCY和兩個(gè)半幀運(yùn)動(dòng)矢量數(shù)據(jù)元素用于確定宏塊的塊中存在AC系數(shù)。CBPCY的意義與幀編碼宏塊的比特1、3、4和5相同。S卩,它們指示AC系數(shù)在右上半幀Y塊、右下半幀Y塊、上/下U塊和上/下V塊中的存在和不存在。對(duì)于比特位置0和2,意義輕微不同。在比特位置0中的0指示T0PMVDATA不存在,并且運(yùn)動(dòng)矢量預(yù)測(cè)值用作上半幀塊的運(yùn)動(dòng)矢量。它還指示左上半幀塊不包含任何非零系數(shù)。在比特位置0中的1指示T0PMVDATA存在。T0PMVDATA指示上半幀塊是幀間編碼還是幀內(nèi)編碼,并且如果它們是幀間編碼,還指示運(yùn)動(dòng)矢量差分。如果從T0PMVDATA解碼的“最后一個(gè)”值解碼為1,則對(duì)左上半幀塊不存在AC系數(shù),否則,不存在左上半幀塊的非零AC系數(shù)。同樣,上述規(guī)則應(yīng)用于B0TMVDATA的比特位置2和左下半幀塊。編碼器和解碼器使用VLC表的代碼表選擇,分別用于MVDATA、T0PMVDATA、B0TMVDATA和CBPCY。3.與早先的宏塊信息信號(hào)表示有關(guān)的問(wèn)題總之,逐行掃描幀和隔行掃描幀的宏塊的各種信息是用在幀和宏塊層處的獨(dú)立代碼(或者代碼的組合)來(lái)用信號(hào)表示的。該獨(dú)立地用信號(hào)表示的信息包括運(yùn)動(dòng)矢量的數(shù)量、宏塊幀內(nèi)編碼/幀間編碼狀態(tài)、CBPCY存在或不存在(例如,通過(guò)用于1MV和幀編碼宏塊的“最后一個(gè)”值)以及運(yùn)動(dòng)矢量數(shù)據(jù)存在或不存在(例如,通過(guò)用于4MV和半幀編碼宏塊的CBPCY)。盡管該信號(hào)表示在許多情況下提供良好的總體性能,但是它沒(méi)有充分地利用各種普通情況下不同的用信號(hào)表示的信息之間的統(tǒng)計(jì)相關(guān)性。而且,它不允許和不處理各種有用的配置,諸如用于4MV宏塊的CBPCY的存在/不存在,或者用于1MV宏塊的運(yùn)動(dòng)矢量數(shù)據(jù)的存在/不存在。而且,就用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)的存在/不存在(例如,通過(guò)用于4MV和半幀編碼宏塊的CBPCY)而言,它要求CBPCY元素的常規(guī)角色的混亂的重新定義。這進(jìn)而要求通過(guò)不同的元素(例如BLKMVDATA、TOPMVDATA、BOTMVDATA)(它們按照慣例不用于該目的)來(lái)用信號(hào)表示常規(guī)的CBCPY信息。并且,信號(hào)表示不允許和不處理各種有用的配置,諸如當(dāng)運(yùn)動(dòng)矢量數(shù)據(jù)不存在時(shí)系數(shù)信息的存在。C.運(yùn)動(dòng)矢量預(yù)測(cè)對(duì)于在隔行掃描或逐行掃描P幀中的宏塊(或者塊,或者宏塊的半幀等)的運(yùn)動(dòng)矢量,編碼器通過(guò)基于相鄰的運(yùn)動(dòng)矢量計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值、計(jì)算運(yùn)動(dòng)矢量與運(yùn)動(dòng)矢量預(yù)測(cè)值之間的差分和編碼該差分來(lái)編碼運(yùn)動(dòng)矢量。解碼器通過(guò)計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值(再次基于相鄰的運(yùn)動(dòng)矢量)、解碼運(yùn)動(dòng)矢量差分和將運(yùn)動(dòng)矢量差分加到運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)重構(gòu)運(yùn)動(dòng)矢量。圖5A和5B示出了對(duì)1MV逐行掃描P幀中的1MV宏塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值考慮的宏塊的位置。候選預(yù)測(cè)值取自左側(cè)、頂部和右上角的宏塊,除了在宏塊是行中的最后一個(gè)宏塊的情況之外。在這一情況下,預(yù)測(cè)值B取自左上角的宏塊,而非右上角。對(duì)于其中該幀是一個(gè)宏塊寬的特殊情況,預(yù)測(cè)值總是為預(yù)測(cè)值A(chǔ)(頂部預(yù)測(cè)值)。當(dāng)由于宏塊在頂行中而使預(yù)測(cè)值A(chǔ)位于帶外時(shí),預(yù)測(cè)值為預(yù)測(cè)值C。各種其它規(guī)則解決諸如幀內(nèi)編碼預(yù)測(cè)值等其它特殊情況。圖6A-10示出了為混合MV逐行掃描P幀中的1MV或4MV宏塊的運(yùn)動(dòng)矢量的多達(dá)三個(gè)候選運(yùn)動(dòng)矢量考慮的塊或宏塊的位置。在附圖中,較大的方塊是宏塊邊界,而較小的方塊是塊邊界。對(duì)于其中幀是一個(gè)宏塊寬的特殊情況,預(yù)測(cè)值總是預(yù)測(cè)值A(chǔ)(頂部預(yù)測(cè)值)。各種其它規(guī)則解決諸如對(duì)頂行的4MV宏塊的頂行塊、頂行的1MV宏塊以及幀內(nèi)編碼預(yù)測(cè)值等其它特殊情況。具體地,圖6A和6B示出了為混合MV逐行掃描P幀中的1MV當(dāng)前宏塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值考慮的塊位置。相鄰宏塊可以是1MV或4MV宏塊。圖6A和6B示出了假定鄰塊是4MV時(shí)候選運(yùn)動(dòng)矢量的位置(即,預(yù)測(cè)值A(chǔ)是對(duì)于在當(dāng)前宏塊上方的宏塊中的塊2的運(yùn)動(dòng)矢量,而預(yù)測(cè)值C是直接在當(dāng)前宏塊左邊的宏塊中的塊1的運(yùn)動(dòng)矢量)。如果鄰塊中的任一塊是1MV宏塊,則圖5A和5B所示的運(yùn)動(dòng)矢量預(yù)測(cè)值被帶到整個(gè)宏塊的運(yùn)動(dòng)矢量預(yù)測(cè)值。10如圖6B所示,如果宏塊是行中的最后一個(gè)宏塊,則預(yù)測(cè)值B來(lái)自左上角的宏塊的塊3,而非其它情況下的右上角宏塊中的塊2。圖7A-10示出了為混合MV逐行掃描P幀的4MV宏塊中的4個(gè)亮度塊的每一個(gè)的候選運(yùn)動(dòng)矢量預(yù)測(cè)值考慮的塊位置。圖7A和7B示出了為位置0處的塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值考慮的塊位置;圖8A和8B示出了為位置1處的塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值考慮的塊位置的圖示;圖9示出了為位置2處的塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值考慮的塊位置;圖10示出了為位置3處的塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值考慮的塊位置。再一次,如果鄰塊是1MV宏塊,則該宏塊的運(yùn)動(dòng)矢量預(yù)測(cè)值用于該宏塊的各塊。對(duì)于其中宏塊是行中的第一個(gè)宏塊的情況,塊0的預(yù)測(cè)值B與該行中其余宏塊的塊0不同地處理(見(jiàn)圖7A和7B)。在這一情況下,預(yù)測(cè)值B取自直接在當(dāng)前宏塊上方的宏塊中的塊3,而非如其它情況下取自在當(dāng)前宏塊左上方的宏塊中的塊3。類(lèi)似地,對(duì)于其中宏塊是行中的最后一個(gè)宏塊的情況,塊1的預(yù)測(cè)值B加以不同的處理(圖8A和8B)。在這一情況下,預(yù)測(cè)值取自直接在當(dāng)前宏塊上方的宏塊中的塊2,而非如其它情況下取自當(dāng)前宏塊右上方的宏塊中的塊2。一般而言,如果宏塊是在第一個(gè)宏塊列中,塊0和2的預(yù)測(cè)值C被設(shè)為等于0。如果逐行掃描幀的宏塊被編碼為跳過(guò)的,則它的運(yùn)動(dòng)矢量預(yù)測(cè)值用作該宏塊的運(yùn)動(dòng)矢量(或者它的塊的預(yù)測(cè)值用于這些塊,等等)。仍存在單個(gè)比特,以指示在混合運(yùn)動(dòng)矢量預(yù)測(cè)中要使用哪個(gè)預(yù)測(cè)值。圖11和12A-B示出了隔行掃描P幀中,分別用于幀編碼的宏塊和半幀編碼的宏塊的運(yùn)動(dòng)矢量預(yù)測(cè)的候選預(yù)測(cè)值的示例。圖11示出了在隔行掃描的P幀中用于內(nèi)部位置的當(dāng)前幀編碼的宏塊(不是宏塊行中的第一個(gè)或最后一個(gè)宏塊,不在頂行中)的候選預(yù)測(cè)值A(chǔ)、B和C。預(yù)測(cè)值可以從除標(biāo)記為A、B和C之外的不同候選方向上獲得(例如,在諸如當(dāng)前宏塊是行中的第一個(gè)宏塊或最后一個(gè)宏塊,或在頂行中的特殊情況下,由于某些預(yù)測(cè)值對(duì)于這些情況是不可用的)。對(duì)于當(dāng)前幀編碼的宏塊,候選預(yù)測(cè)值是根據(jù)相鄰的宏塊是半幀編碼還是幀編碼的來(lái)不同地計(jì)算的。對(duì)于相鄰的幀編碼的宏塊,僅僅取其運(yùn)動(dòng)矢量作為候選預(yù)測(cè)值。對(duì)于相鄰的半幀編碼的宏塊,通過(guò)對(duì)上半幀和下半幀運(yùn)動(dòng)矢量求平均值來(lái)確定候選運(yùn)動(dòng)矢量。圖12A-B示出了用于半幀中的內(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)前半幀編碼的宏塊中的每一半幀,每一半幀的運(yùn)動(dòng)矢量候選預(yù)測(cè)值的數(shù)目最多是3,其中每一候選預(yù)測(cè)值來(lái)自與當(dāng)前半幀相同的半幀類(lèi)型(例如,上半幀或下半幀)。如果相鄰宏塊是幀編碼的,則其運(yùn)動(dòng)矢量用作上半幀預(yù)測(cè)值和下半幀預(yù)測(cè)值。再一次,當(dāng)當(dāng)前宏塊是行中的第一個(gè)宏塊或最后一個(gè)宏塊,或在頂行中時(shí),由于某些預(yù)測(cè)值對(duì)于這些情況是不可用的,因此應(yīng)用各種特殊情況(未示出)。如果幀是一個(gè)宏塊寬,則運(yùn)動(dòng)矢量預(yù)測(cè)值是預(yù)測(cè)值A(chǔ)。如果相鄰宏塊是幀內(nèi)編碼的,則它的運(yùn)動(dòng)矢量預(yù)測(cè)值是0。圖13A和13B示出在給出一組預(yù)測(cè)值A(chǔ)、B和C時(shí)計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值的偽代碼。要從一組候選預(yù)測(cè)值中選擇一個(gè)預(yù)測(cè)值,編碼器和解碼器使用一選擇算法,諸如圖13C中所示的求三個(gè)數(shù)的中值(median-of-three)算法。D.逐行掃描P-幀的混合運(yùn)動(dòng)矢量預(yù)測(cè)允許混合運(yùn)動(dòng)矢量預(yù)測(cè)用于逐行掃描P幀的運(yùn)動(dòng)矢量。對(duì)于宏塊或塊的運(yùn)動(dòng)矢量,無(wú)論逐行掃描P幀是1MV還是混合MV,相對(duì)于A和C預(yù)測(cè)值測(cè)試在前面章節(jié)中計(jì)算的運(yùn)動(dòng)矢量預(yù)測(cè)值,以確定預(yù)測(cè)值選擇是否顯式地在比特流中編碼。如果是,則解碼一個(gè)比特,它指示使用預(yù)測(cè)值A(chǔ)還是預(yù)測(cè)值C作為運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)值(而非使用在上面章節(jié)C中計(jì)算的運(yùn)動(dòng)矢量預(yù)測(cè)值)。混合運(yùn)動(dòng)矢量預(yù)測(cè)不在隔行掃描P幀或者隔行掃描視頻的任何表示的運(yùn)動(dòng)矢量預(yù)測(cè)中使用。圖14A與14B中的偽代碼示出逐行掃描P幀的運(yùn)動(dòng)矢量的混合運(yùn)動(dòng)矢量預(yù)測(cè)。在該偽代碼中,變量predictor_pre_x和predictor_pre_y分別是水平和垂直運(yùn)動(dòng)矢量預(yù)測(cè)值,如在前面章節(jié)中計(jì)算的。變量predictor_post_x和predictor_post_y分別是在檢查混合運(yùn)動(dòng)矢量預(yù)測(cè)之后的水平和垂直運(yùn)動(dòng)矢量預(yù)測(cè)值。E.解碼運(yùn)動(dòng)矢量差分對(duì)于逐行掃描P幀的宏塊或塊,MVDATA或BLKMVDATA元素用信號(hào)表示運(yùn)動(dòng)矢量差分信息。1MV宏塊具有單個(gè)MVDATA。4MV宏塊具有零與四個(gè)之間的BLKMVDATA元素(其存在由CBPCY指示)。MVDATA或BLKMVDATA對(duì)以下三項(xiàng)聯(lián)合編碼(1)水平運(yùn)動(dòng)矢量差分分量;(2)垂直運(yùn)動(dòng)矢量差分分量;以及(3)二進(jìn)制的“最后”標(biāo)志,它一般指示變換系數(shù)是否存在。將宏塊(或塊,對(duì)于4MV)是幀內(nèi)編碼還是幀間編碼用信號(hào)表示為運(yùn)動(dòng)矢量差分可能性之一。在圖15A與15B中的偽代碼示出如何為MVDATA或BLKMVDATA解碼運(yùn)動(dòng)矢量差分信息、幀間編碼/幀內(nèi)編碼類(lèi)型和最后標(biāo)志信息。在該偽代碼中,變量last_flag是一個(gè)二進(jìn)制標(biāo)志,其用途在關(guān)于用信號(hào)表示宏塊信息的章節(jié)中描述。變量infra_flag是一個(gè)二進(jìn)制標(biāo)志,它指示塊或宏塊是否為幀內(nèi)編碼的。變量dmv_X和dmv_y分別是差分水平與垂直運(yùn)動(dòng)矢量分量。變量k_x和k_y對(duì)于擴(kuò)展范圍運(yùn)動(dòng)矢量是定長(zhǎng)的,它們的值如圖15C的表格所示地變化。變量halfpel_flag是一個(gè)二進(jìn)制值,它指示用于運(yùn)動(dòng)矢量的是二分之一象素還是四分之一象素,并且其值是基于圖像層句法元素設(shè)置的。最后,表sizejable和offsetjable是如下定義的數(shù)組size_table[6]={0,2,3,4,5,8},以及offset_table[6]={0,1,3,7,15,31}.對(duì)于隔行掃描P幀的幀編碼或半幀編碼宏塊,以相同的方法解碼MVDATA、T0PMVDATA和BLTMVDATA。F.重構(gòu)和導(dǎo)出運(yùn)動(dòng)矢量亮度運(yùn)動(dòng)矢量是從經(jīng)編碼的運(yùn)動(dòng)矢量差分信息和運(yùn)動(dòng)矢量預(yù)測(cè)值重構(gòu)的,而色度運(yùn)動(dòng)矢量是從重構(gòu)的亮度運(yùn)動(dòng)矢量中導(dǎo)出的。對(duì)于逐行掃描P幀的1MV和4MV宏塊,亮度運(yùn)動(dòng)矢量是通過(guò)將差分加到運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)重構(gòu)的,如下mv_x=(dmv_x+predictor_x)smodrange_x,mv_y=(dmv_y+predictor_y)smodrange_y,其中smod是如下定義的有符號(hào)模運(yùn)算Asmodb=((A+b)%2b)-b,它保證重構(gòu)的矢量是有效的。在1MV宏塊中,對(duì)于構(gòu)成宏塊的亮度分量的四個(gè)塊,有單個(gè)運(yùn)動(dòng)矢量。如果宏塊是幀內(nèi)編碼的,則沒(méi)有運(yùn)動(dòng)矢量與該宏塊相關(guān)聯(lián)。如果宏塊是跳過(guò)的,則dmv_X=0且dmv_y=0,因此mv_x=predictor_x且mv_y=predictor_y。在4MV宏塊中的每個(gè)幀間編碼亮度塊具有它自己的運(yùn)動(dòng)矢量。因此,在一個(gè)4MV宏塊中,將存在0到4個(gè)亮度運(yùn)動(dòng)矢量。如果4MV宏塊是跳過(guò)的或者如果4MV宏塊的CBPCY指示塊是非編碼的,則4MV宏塊中非編碼的塊可以出現(xiàn)。如果塊不是編碼的,則dmv_X=0且dmv_y=0,因此mv_x=predictor_x且mv_y=predictor_y。對(duì)于逐行掃描幀,色度運(yùn)動(dòng)矢量是從亮度運(yùn)動(dòng)矢量中導(dǎo)出的。而且,對(duì)于4MV宏塊,基于亮度塊的狀態(tài)作出將色度塊編碼為幀間編碼還是幀內(nèi)編碼的決定。色度矢量是在兩個(gè)步驟中重構(gòu)的。在第一個(gè)步驟中,名義上的色度運(yùn)動(dòng)矢量是通過(guò)適當(dāng)?shù)亟M合與比例縮放亮度運(yùn)動(dòng)矢量來(lái)獲得的。比例縮放是以這樣一種方法執(zhí)行的,即二分之一象素偏移比四分之一偏移更優(yōu)選。圖16A示出偽代碼,用于在從1MV宏塊的亮度運(yùn)動(dòng)矢量中導(dǎo)出色度運(yùn)動(dòng)矢量時(shí)進(jìn)行比例縮放。圖16B示出偽代碼,用于在導(dǎo)出4MV宏塊的色度運(yùn)動(dòng)矢量時(shí)組合至多四個(gè)亮度運(yùn)動(dòng)矢量和比例縮放。圖13C示出median3()函數(shù)的偽代碼,以及圖16C示出用于mediaM()函數(shù)的偽代碼。在第二個(gè)步驟中,使用序列級(jí)的1比特元素來(lái)確定是否需要色度運(yùn)動(dòng)矢量的進(jìn)一步舍入。如果需要,則將四分之一象素偏移處的色度運(yùn)動(dòng)矢量舍入到最近的整象素位置。對(duì)于隔行掃描幀的幀編碼和半幀編碼宏塊,如對(duì)逐行掃描P幀所做的一樣來(lái)重構(gòu)亮度運(yùn)動(dòng)矢量。在幀編碼宏塊中,對(duì)于構(gòu)成宏塊的亮度分量的四個(gè)塊,有單個(gè)運(yùn)動(dòng)矢量。如果宏塊是幀內(nèi)編碼的,則沒(méi)有運(yùn)動(dòng)矢量與該宏塊相關(guān)聯(lián)。如果宏塊是跳過(guò)的,則dmv_X=0且dmv_y=0,因此mv_x=predictorx且mv_y=predictor_y。在中貞編碼宏塊中,每個(gè)半幀可具有它自己的運(yùn)動(dòng)矢量。因此,在一個(gè)幀編碼宏塊中將有0到2個(gè)亮度運(yùn)動(dòng)矢量。如果半幀編碼宏塊是跳過(guò)的或者如果半幀編碼宏塊的CBPCY指示半幀是非編碼的,則半幀編碼宏塊中的非編碼半幀可以出現(xiàn)。如果半幀是非編碼的,則dmv_X=0且dmv_y=0,因此mv_x=predictor_x且mv_y=predictor_y。對(duì)于隔行掃描P幀,色度運(yùn)動(dòng)矢量是從亮度運(yùn)動(dòng)矢量導(dǎo)出的。對(duì)于幀編碼宏塊,有一個(gè)對(duì)應(yīng)于單個(gè)亮度運(yùn)動(dòng)矢量的色度運(yùn)動(dòng)矢量。對(duì)于半幀編碼宏塊,有兩個(gè)色度運(yùn)動(dòng)矢量。一個(gè)是上半幀的,而一個(gè)是下半幀的,分別對(duì)應(yīng)于上半幀與下半幀亮度運(yùn)動(dòng)矢量。導(dǎo)出色度運(yùn)動(dòng)矢量的規(guī)則對(duì)于半幀編碼和幀編碼宏塊是相同的。它們?nèi)Q于亮度運(yùn)動(dòng)矢量,而不是宏塊的類(lèi)型。圖17示出偽代碼,用于從隔行掃描P幀的幀編碼或半幀編碼宏塊的亮度運(yùn)動(dòng)矢量中導(dǎo)出色度運(yùn)動(dòng)矢量?;旧?,色度運(yùn)動(dòng)矢量的x分量被放大4倍,而色度運(yùn)動(dòng)矢量的y分量保持不變(由于4:1:1宏塊色度二次采樣)。色度運(yùn)動(dòng)矢量的放大的x分量還舍入到相鄰的四分之一象素位置。如果cmv_X或cmv_y在邊界外,則將它拉回到有效范圍。G.強(qiáng)度補(bǔ)償對(duì)于逐行掃描P幀,圖像層包含句法元素,它控制該幀的運(yùn)動(dòng)補(bǔ)償模式和強(qiáng)度補(bǔ)償。如果用信號(hào)表示強(qiáng)度補(bǔ)償,則在圖像層中跟隨著LUMSCALE和LUMSHIFT元素。LUMSCALE和LUMSHIFT是6比特值,它指定在強(qiáng)度補(bǔ)償過(guò)程中使用的參數(shù)。當(dāng)強(qiáng)度補(bǔ)償用于逐行掃描P幀時(shí),在參考幀中的象素在它們用于P幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)之前被重新映射。圖18中的偽代碼示出LUMSCALE和LUMSHIFT元素用于構(gòu)造查找表,該查找表用于重新映射參考幀象素。使用LUTY[]表重新映射參考幀的Y分量,并且使用LUTUV口表重新映射U和V分量,如下Fy=LUTY[pY],且Puv=LUTUV[puv]其中pY是參考幀中的原始亮度象素值,&是參考幀中重新映射的亮度象素值,PUV是參考幀中原始的U或V象素值,而^iv是參考幀中重新映射的U或V象素值。對(duì)于隔行掃描P巾貞,一個(gè)1比特圖像層INTC0MP值用信號(hào)表示是否對(duì)幀使用強(qiáng)度補(bǔ)償。如果使用強(qiáng)度補(bǔ)償,則在圖像層中跟隨著LUMSCALE和LUMSHIFT元素,其中LUMSCALE和LUMSHIFT是6比特值,它們指定在強(qiáng)度補(bǔ)償過(guò)程中為整個(gè)隔行掃描P幀使用的參數(shù)。強(qiáng)度補(bǔ)償本身與用于逐行掃描P幀的相同。VI.視頻壓縮與解壓的標(biāo)準(zhǔn)除早先的WMV編碼器和解碼器以外,若干國(guó)際標(biāo)準(zhǔn)與視頻壓縮和解壓有關(guān)。這些標(biāo)準(zhǔn)包括運(yùn)動(dòng)圖像專(zhuān)家組[“MPEG”]1,2和4標(biāo)準(zhǔn)以及來(lái)自國(guó)際電信聯(lián)盟[“ITU”]的H.261、H.262(MPEG2的另一個(gè)名字)、H.263和H.264標(biāo)準(zhǔn)。遵循這些標(biāo)準(zhǔn)之一的編碼器和解碼器一般使用運(yùn)動(dòng)估計(jì)和補(bǔ)償來(lái)減少圖像之間的時(shí)間冗余。A.運(yùn)動(dòng)補(bǔ)償?shù)膮⒖紙D像對(duì)于若干標(biāo)準(zhǔn),前向預(yù)測(cè)幀的運(yùn)動(dòng)補(bǔ)償是相對(duì)于單個(gè)參考幀的,后者是先前重構(gòu)的I或P幀,當(dāng)前前向預(yù)測(cè)幀緊跟該幀之后。由于當(dāng)前前向預(yù)測(cè)幀的參考幀是已知的,并且只有一個(gè)參考幀是可能的,因此不需要用于在多個(gè)參考幀之間選擇的信息。例如,見(jiàn)H.261和MPEG1標(biāo)準(zhǔn)。在某些編碼/解碼情形(例如,帶有許多運(yùn)動(dòng)的高比特率隔行掃描視頻)中,將對(duì)前向預(yù)測(cè)的運(yùn)動(dòng)補(bǔ)償限制為相對(duì)于單個(gè)參考會(huì)損害總體壓縮效率。H.262標(biāo)準(zhǔn)允許將隔行掃描視頻幀編碼為單個(gè)幀或兩個(gè)半幀,其中幀編碼或半幀編碼可以在逐幀的基礎(chǔ)上自適應(yīng)地選擇。對(duì)于當(dāng)前半幀的基于半幀的預(yù)測(cè),運(yùn)動(dòng)補(bǔ)償使用先前重構(gòu)的上半幀或下半幀。[H.262標(biāo)準(zhǔn),章節(jié)7.6.1和7.6.2.1。]H.262標(biāo)準(zhǔn)描述在兩個(gè)參考半幀之間選擇以用于對(duì)當(dāng)前半幀的運(yùn)動(dòng)矢量的運(yùn)動(dòng)補(bǔ)償。[H.262標(biāo)準(zhǔn),章節(jié)6.2.5.2,6.3.17.2和7.6.4。]對(duì)于16x16宏塊(或者宏塊的上半部分16x8,或者宏塊的下半部分16x8)的給定運(yùn)動(dòng)矢量,用信號(hào)表示單個(gè)比特來(lái)指示要將該運(yùn)動(dòng)矢量應(yīng)用于上參考半幀還是應(yīng)用于下參考半幀。[同前]對(duì)于其它細(xì)節(jié),見(jiàn)H.262標(biāo)準(zhǔn)。盡管這樣的參考半幀選擇在某些情況下提供某種靈活性和預(yù)測(cè)改進(jìn),但它有若干與比特率有關(guān)的缺點(diǎn)。運(yùn)動(dòng)矢量的參考半幀選擇信號(hào)可以消耗許多比特。例如,對(duì)于具有810個(gè)宏塊的單個(gè)720x288半幀,每個(gè)宏塊具有0、1或2個(gè)運(yùn)動(dòng)矢量,運(yùn)動(dòng)矢量的參考半幀選擇比特消耗多達(dá)1620個(gè)比特。沒(méi)有作出通過(guò)預(yù)測(cè)將為相應(yīng)的運(yùn)動(dòng)矢量選擇哪些參考半幀來(lái)減少參考半幀選擇信息的比特率的嘗試。參考半幀選擇信息的信號(hào)表示在純編碼效率方面是沒(méi)有效率的。而且,對(duì)于某些情況,盡管編碼了信息,但參考半幀選擇信息可消耗如此多的比特,超過(guò)了在運(yùn)動(dòng)補(bǔ)償中具有多個(gè)可用參考而得到的預(yù)測(cè)改進(jìn)的好處。沒(méi)有給出選項(xiàng)來(lái)禁止參考半幀選擇以處理這類(lèi)情況。H.262標(biāo)準(zhǔn)還描述雙主(dual-prime)預(yù)測(cè),這是一種預(yù)測(cè)模式,其中對(duì)兩個(gè)基于前向半幀的預(yù)測(cè)求平均值,用于一個(gè)隔行掃描P圖像中的16x16塊。[H.262標(biāo)準(zhǔn),章節(jié)7.6.3.6ο]MPEG-4標(biāo)準(zhǔn)允許隔行掃描視頻幀的宏塊是幀編碼或半幀編碼的。[MPEG-4標(biāo)準(zhǔn),章節(jié)6.1.3.8。]對(duì)于半幀編碼的宏塊的上半幀或下半幀的基于半幀的預(yù)測(cè),運(yùn)動(dòng)補(bǔ)償使用先前重構(gòu)的上半幀或下半幀。[MPEG-4標(biāo)準(zhǔn),章節(jié)6.3.7.3和7.6.2。]MPEG_4標(biāo)準(zhǔn)描述在兩個(gè)參考半幀之間的選擇以用于運(yùn)動(dòng)補(bǔ)償。[MPEG-4標(biāo)準(zhǔn),章節(jié)6.3.7.3。]對(duì)于宏塊的上半幀行或下半幀行的給定運(yùn)動(dòng)矢量,用信號(hào)表示單個(gè)比特以指示要將該運(yùn)動(dòng)矢量應(yīng)用于上參考半幀還是應(yīng)用于下參考半幀。[同前]對(duì)于其它細(xì)節(jié),見(jiàn)MPEG-4標(biāo)準(zhǔn)。這樣的參考半幀選擇信息的信號(hào)表示具有與上面對(duì)于H.262描述的相似的問(wèn)題。H.263標(biāo)準(zhǔn)描述逐行掃描幀的運(yùn)動(dòng)補(bǔ)償,包括可任選的參考圖像選擇模式。[H.263標(biāo)準(zhǔn),章節(jié)3.4.12,附錄N。]通常,時(shí)間上最近的先前的定位圖像用于運(yùn)動(dòng)補(bǔ)償。然而,當(dāng)使用參考圖像選擇模式時(shí),允許來(lái)自除最近參考圖像以外的圖像的時(shí)間預(yù)測(cè)。[同前]通過(guò)允許編碼器優(yōu)化它對(duì)信道條件的視頻編碼(例如,由于在幀間編碼中參考所需要的信息損耗而停止錯(cuò)誤傳播),這可以改進(jìn)通過(guò)易于出錯(cuò)的信道的實(shí)時(shí)視頻通信的性能。[同前]當(dāng)使用時(shí),對(duì)于一個(gè)圖像內(nèi)給定的一組塊或片,一個(gè)10比特值指示用于該組塊或片的預(yù)測(cè)的參考。[同前]在H.263中描述的參考圖像選擇機(jī)制用于逐行掃描視頻并且適合于處理在易于錯(cuò)誤的信道中的錯(cuò)誤傳播問(wèn)題,本質(zhì)上沒(méi)有提高壓縮效率。在H.264標(biāo)準(zhǔn)的草案JVT-D157中,塊的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的幀間預(yù)測(cè)過(guò)程可以包括從許多存儲(chǔ)的、先前解碼的圖像中選擇參考圖像。[11^)157,章節(jié)0.4.3。]在圖像級(jí)上,一個(gè)或多個(gè)參數(shù)指定用于解碼圖像的參考圖像數(shù)量。[11^)157,章節(jié)7.3.2.2和7.4.2.2。]在片級(jí),可用參考圖像的數(shù)量可改變,并且可接收附加的參數(shù)以重新排序和管理哪些參考圖像在列表中。[11^)157,章節(jié)7.3.3和7.4.3。]對(duì)于一個(gè)給定的運(yùn)動(dòng)矢量(用于宏塊或者子宏塊部分),參考索引(當(dāng)存在時(shí))指示要用于預(yù)測(cè)的參考圖像。[JVT-D157,章節(jié)7.3.5.1和7.4.5.1。]參考索引指示列表中的第一、第二、第三幀或半幀等。[同前]如果在列表中只有一個(gè)活動(dòng)的參考圖像,則參考索引不存在。[同前]如果列表中只有兩個(gè)活動(dòng)參考圖像,則使用單個(gè)經(jīng)編碼的比特來(lái)表示參考索引。[同前]對(duì)于其它細(xì)節(jié),見(jiàn)H.264標(biāo)準(zhǔn)的草案JVT-D157。JVT-D157的參考圖像選擇提供了靈活性,并且因而可以改進(jìn)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)。然而,管理參考圖像列表和用信號(hào)表示參考圖像選擇的過(guò)程是復(fù)雜的,并且在某些情況下消耗許多沒(méi)有效率的比特。B.用信號(hào)表示宏塊模式各種標(biāo)準(zhǔn)使用不同的機(jī)制來(lái)用信號(hào)表示宏塊信息。例如,在H.261標(biāo)準(zhǔn)中,宏塊的宏塊頭部包括宏塊類(lèi)型MTYPE元素,它用信號(hào)表示為VLC。[H.261標(biāo)準(zhǔn),章節(jié)4.2.3。]MTYPE元素指示預(yù)測(cè)模式(幀內(nèi)編碼、幀間編碼、幀間編碼+MC、幀間編碼+MC+循環(huán)濾波),對(duì)該宏塊是否存在量化器MQUANT元素,對(duì)該宏塊是否存在運(yùn)動(dòng)矢量數(shù)據(jù)MVD元素,對(duì)該宏塊是否存在已編碼塊模式CBP元素,以及對(duì)該宏塊的塊是否存在變換系數(shù)TCOEFF元素。[同前]對(duì)于每個(gè)經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)暮陦K,都存在MVD元素。[同前]在MPEG-I標(biāo)準(zhǔn)中,宏塊具有macroblockjype(宏塊類(lèi)型)元素,它被用信號(hào)表示%VLC0[MPEG-1標(biāo)準(zhǔn),章節(jié)2.4.3.6,表B.2a至B.2d,D.6.4.2。]對(duì)于在前向預(yù)測(cè)圖像中的宏塊,macroblockjype元素指示對(duì)該宏塊是否存在量化器比例元素,對(duì)該宏塊是否存在前向運(yùn)動(dòng)矢量數(shù)據(jù),對(duì)該宏塊是否存在已編碼塊模式元素,以及該宏塊是否為幀內(nèi)編碼的。[同前]如果宏塊使用前向運(yùn)動(dòng)補(bǔ)償,則前向運(yùn)動(dòng)矢量數(shù)據(jù)總是存在的。[同前]在H.262標(biāo)準(zhǔn)中,宏塊具有macroblock_type元素,它用信號(hào)表示為VLC。[H.261標(biāo)準(zhǔn),章節(jié)6.2.5.1,6.3.17.1,以及表B.2至B.B。]對(duì)于在前向預(yù)測(cè)圖像中的宏塊,macroblock_type元素指示對(duì)該宏塊是否存在quantizer_scale_code(量化器比例代碼)元素,對(duì)該宏塊是否存在前向運(yùn)動(dòng)矢量數(shù)據(jù),對(duì)該宏塊是否存在已編碼塊模式元素,該宏塊是否為幀內(nèi)編碼的,以及該宏塊的可縮放性選項(xiàng)。[同前]如果宏塊使用前向運(yùn)動(dòng)補(bǔ)償,則前向運(yùn)動(dòng)矢量數(shù)據(jù)總是存在的。[同前]獨(dú)立的代碼(framejiiotiorutype(幀運(yùn)動(dòng)類(lèi)型)或者field_motion_type(半幀運(yùn)動(dòng)類(lèi)型))可進(jìn)一步指示宏塊預(yù)測(cè)類(lèi)型,包括運(yùn)動(dòng)矢量的計(jì)數(shù)和宏塊的運(yùn)動(dòng)矢量格式。[同前]在H.263標(biāo)準(zhǔn)中,宏塊具有用于色度MCBPC元素的宏塊類(lèi)型和已編碼塊模式,它用信號(hào)表示為VLC。[H.263標(biāo)準(zhǔn),章節(jié)5.3.2,表8和9以及F.2。]宏塊類(lèi)型給出有關(guān)該宏塊的信息(例如,幀間編碼、幀間4V、幀內(nèi)編碼)。[同前]對(duì)于幀間編碼的圖像中經(jīng)編碼的宏塊,用于亮度的MCBPC和已編碼塊模式總是存在的,并且宏塊類(lèi)型指示對(duì)該宏塊是否存在量化器信息元素。前向運(yùn)動(dòng)補(bǔ)償?shù)暮陦K總是有宏塊(或者幀間4V類(lèi)型的塊)的運(yùn)動(dòng)矢量數(shù)據(jù)存在。[同前]MPEG-4標(biāo)準(zhǔn)相似地指定MCBPC元素,它用信號(hào)表示為VLC的。[MPEG-4標(biāo)準(zhǔn),章節(jié)6.2.7,6.3.7,11.1.1。]在JVT-D157中,mb_type(宏塊類(lèi)型)元素是宏塊層的一部分。[JVT-D157,章節(jié)7.3.5和7.4.5。]mb_type指示宏塊類(lèi)型和各種相關(guān)聯(lián)的信息。[同前]例如,對(duì)于P片,mb_type元素指示預(yù)測(cè)的類(lèi)型(幀內(nèi)編碼或者前向),當(dāng)宏塊是幀內(nèi)編碼時(shí)指示各種幀內(nèi)模式編碼參數(shù),當(dāng)宏塊是前向預(yù)測(cè)時(shí)指示宏塊分區(qū)(例如,16x16、16x8、8xl6、或者8x8)并且因此指示運(yùn)動(dòng)矢量的數(shù)量,以及指示參考圖像選擇信息是否存在(如果分區(qū)是8x8)。[同前]預(yù)測(cè)的類(lèi)型和mb_type還合在一起指示宏塊是否存在已編碼塊模式元素。[同前]對(duì)于前向運(yùn)動(dòng)補(bǔ)償?shù)暮陦K中的每個(gè)16xl6、16x8或8x16分區(qū),用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)。[同前]對(duì)于具有8x8分區(qū)的前向預(yù)測(cè)宏塊,每8x8分區(qū)一個(gè)sub_mb_type(子宏塊類(lèi)型)元素指示其預(yù)測(cè)類(lèi)型(幀內(nèi)編碼或者前向)。[同前]如果8x8分區(qū)是前向預(yù)測(cè)的,則sub_mb_type指示子分區(qū)(例如,8x8、8x4、4x8或者4x4),并且因此指示該8x8分區(qū)的運(yùn)動(dòng)矢量數(shù)量。[同前]對(duì)于在前向運(yùn)動(dòng)補(bǔ)償?shù)?x8分區(qū)中的每個(gè)子分區(qū),用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)。[同前]各種標(biāo)準(zhǔn)使用多種多樣的信號(hào)表示機(jī)制用于宏塊信息。無(wú)論這些信號(hào)表示機(jī)制有什么優(yōu)點(diǎn),它們也都具有下列缺點(diǎn)。首先,它們有時(shí)沒(méi)有有效地用信號(hào)表示宏塊類(lèi)型、已編碼塊模式信息的存在/不存在以及運(yùn)動(dòng)補(bǔ)償宏塊的運(yùn)動(dòng)矢量差分信息的存在/不存在。實(shí)際上,這些標(biāo)準(zhǔn)一般根本沒(méi)有用信號(hào)表示經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)暮陦K(或者其塊或半幀)的運(yùn)動(dòng)矢量差分信息的存在/不存在,代之以假定如果使用運(yùn)動(dòng)補(bǔ)償則用信號(hào)表示運(yùn)動(dòng)矢量差分信息。最后,這些標(biāo)準(zhǔn)在它們決定要為宏塊模式信息使用哪些代碼表方面是不靈活的。C.運(yùn)動(dòng)矢量預(yù)測(cè)H.261、H.262、H.263、MPEG-1、MPEG-4和JVT-D157的每一個(gè)指定某種形式的運(yùn)動(dòng)矢量預(yù)測(cè),盡管運(yùn)動(dòng)矢量預(yù)測(cè)的細(xì)節(jié)在這些標(biāo)準(zhǔn)之間變化很大。例如,在H.261標(biāo)準(zhǔn)中運(yùn)動(dòng)矢量預(yù)測(cè)是最簡(jiǎn)單的,其中當(dāng)前宏塊的運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)值是先前編碼/解碼的宏塊的運(yùn)動(dòng)矢量。[H.261標(biāo)準(zhǔn),章節(jié)4.2.3.4。]對(duì)于各種特殊情況(例如,當(dāng)前宏塊是行中的第一個(gè)),運(yùn)動(dòng)矢量預(yù)測(cè)值是0。運(yùn)動(dòng)矢量預(yù)測(cè)與在MPEG-I標(biāo)準(zhǔn)中的相似。[MPEG-1標(biāo)準(zhǔn),章節(jié)2.4.4.2和D.6.2.3。]其它標(biāo)準(zhǔn)(諸如H.262)指定更復(fù)雜的運(yùn)動(dòng)矢量預(yù)測(cè),但一般仍從單個(gè)相鄰幀來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值。[H.262標(biāo)準(zhǔn),章節(jié)7.6.3。]在運(yùn)動(dòng)是一致的時(shí)候從單個(gè)相鄰幀確定運(yùn)動(dòng)矢量預(yù)測(cè)值足夠了,但在許多其它情況下是無(wú)效的。因此,還有其它標(biāo)準(zhǔn)(諸如H.263、MPEG-4、JVT-D157)從具有不同候選運(yùn)動(dòng)矢量預(yù)測(cè)值的多個(gè)不同的相鄰幀來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值。[H.263標(biāo)準(zhǔn),章節(jié)6.1.1;MPEG-4標(biāo)準(zhǔn),章節(jié)7.5.5和7.6.2;以及F.2JVT-D157,章節(jié)8.4.1。]這些對(duì)多種運(yùn)動(dòng)是有效的,但仍不足以處理這樣的情況,其中在不同的候選運(yùn)動(dòng)矢量預(yù)測(cè)值之間有高度的不同,指示在運(yùn)動(dòng)模式方面的不連續(xù)性。對(duì)于其它細(xì)節(jié),見(jiàn)相應(yīng)的標(biāo)準(zhǔn)。D.解碼運(yùn)動(dòng)矢量差分H.261、H.262、H.263、MPEG-1、MPEG-4和JVT-D157的每一個(gè)指定某種形式的差分運(yùn)動(dòng)矢量編碼和解碼,盡管編碼和解碼的細(xì)節(jié)在這些標(biāo)準(zhǔn)之間變化很大。例如,在H.261標(biāo)準(zhǔn)中運(yùn)動(dòng)矢量編碼與解碼是最簡(jiǎn)單的,其中一個(gè)VLC表示水平差分分量,而另一個(gè)VLC表示垂直差分分量。[H.261標(biāo)準(zhǔn),章節(jié)4.2.3.4。]其它標(biāo)準(zhǔn)為運(yùn)動(dòng)矢量差分信息指定更復(fù)雜的編碼與解碼。對(duì)于其它細(xì)節(jié),見(jiàn)相應(yīng)的標(biāo)準(zhǔn)。E.重構(gòu)與導(dǎo)出運(yùn)動(dòng)矢量通常,在H.261、H.262、H.263、MPEG-1,MPEG-4或JVT-D157中的運(yùn)動(dòng)矢量是通過(guò)組合運(yùn)動(dòng)矢量預(yù)測(cè)值與運(yùn)動(dòng)矢量差分來(lái)重構(gòu)的。再一次,重構(gòu)的細(xì)節(jié)在標(biāo)準(zhǔn)之間變化。色度運(yùn)動(dòng)矢量(它們未用信號(hào)表示)一般是從亮度運(yùn)動(dòng)矢量(它們用信號(hào)表示)導(dǎo)出的。例如,在H.261標(biāo)準(zhǔn)中,二等分亮度運(yùn)動(dòng)矢量朝向零截?cái)嘁詫?dǎo)出色度運(yùn)動(dòng)矢量。[H.261標(biāo)準(zhǔn),章節(jié)3.2.2。]同樣,在MPEG-I標(biāo)準(zhǔn)和JVT-D157中,二等分亮度運(yùn)動(dòng)矢量以導(dǎo)出色度運(yùn)動(dòng)矢量。[MPEG-1標(biāo)準(zhǔn),章節(jié)2.4.4.2;JVT-D157,章節(jié)8.4.1.4。]在H.262標(biāo)準(zhǔn)中,按照取決于色度二次采樣模式的因子將亮度運(yùn)動(dòng)矢量比例縮小至色度運(yùn)動(dòng)矢量(例如,4:2:0、4:2:2或4:4:4)。[H.262標(biāo)準(zhǔn),章節(jié)7.6.3.7。]在H.263標(biāo)準(zhǔn)中,對(duì)于將單個(gè)亮度運(yùn)動(dòng)矢量用于全部四個(gè)亮度塊的宏塊,色度運(yùn)動(dòng)矢量是通過(guò)將亮度運(yùn)動(dòng)矢量除以二并舍入到二分之一象素位置來(lái)導(dǎo)出的。[H.263標(biāo)準(zhǔn),章節(jié)6.1.1。]對(duì)于具有四個(gè)亮度運(yùn)動(dòng)矢量(每塊一個(gè))的宏塊,色度運(yùn)動(dòng)矢量是通過(guò)累加這四個(gè)亮度運(yùn)動(dòng)矢量,除以八,并且舍入到二分之一象素位置來(lái)導(dǎo)出的。[H.263標(biāo)準(zhǔn),章節(jié)F.2。]在MPEG-4標(biāo)準(zhǔn)中相似地導(dǎo)出色度運(yùn)動(dòng)矢量。[MPEG-標(biāo)準(zhǔn),章節(jié)7.5.5和7.6.2。]F.加權(quán)的預(yù)測(cè)H.264標(biāo)準(zhǔn)的草案JVT-D157描述加權(quán)的預(yù)測(cè)。圖像的加權(quán)預(yù)測(cè)標(biāo)志指示該圖像中的預(yù)測(cè)片是否使用加權(quán)的預(yù)測(cè)。[JVT-D157,章節(jié)7.3.2.2和7.4.2.2。]如果一個(gè)圖像使用加權(quán)的預(yù)測(cè),則該圖像中的每個(gè)預(yù)測(cè)片具有一個(gè)預(yù)測(cè)權(quán)重表。[JVT-D157,章節(jié)7.3.3,7.3.3.2和10.4.I0]對(duì)于該表,用信號(hào)表示亮度權(quán)重參數(shù)的分母和色度權(quán)重參數(shù)的分母。[同前]然后,對(duì)于可用于該片的每個(gè)參考圖像,亮度權(quán)重標(biāo)志指示是否為該圖像用信號(hào)表示亮度參數(shù)和亮度偏移分子參數(shù)(在用信號(hào)表示時(shí),跟隨在后面的是這些參數(shù)),而色度權(quán)重標(biāo)志指示是否為該圖像用信號(hào)表示色度權(quán)重和色度偏移分子參數(shù)(當(dāng)用信號(hào)表示時(shí),跟隨在后面的是這些參數(shù))。[同前]將與用信號(hào)表示的分子值有關(guān)的默認(rèn)值給予未用信號(hào)表示的分子權(quán)重參數(shù)。[同前]盡管JVT-D157在用信號(hào)表示加權(quán)的預(yù)測(cè)參數(shù)時(shí)提供某種靈活性,但這種信號(hào)表示機(jī)制在各種情況下是無(wú)效的。給出了數(shù)字視頻的視頻壓縮與解壓的關(guān)鍵重要性,就不奇怪視頻壓縮與解壓是被大力開(kāi)發(fā)的領(lǐng)域。然而,無(wú)論以前的視頻壓縮與解壓技術(shù)有什么好處,它們都沒(méi)有下面的技術(shù)與工具的優(yōu)點(diǎn)。
發(fā)明內(nèi)容概言之,詳細(xì)描述針對(duì)的是用于編碼與解碼隔行掃描視頻的各種技術(shù)與工具。所述的各種技術(shù)與工具可以組合地或者獨(dú)立地使用。詳細(xì)描述的一些部分針對(duì)的是用于隔行掃描前向預(yù)測(cè)半幀的混合運(yùn)動(dòng)矢量預(yù)測(cè)的各種技術(shù)和工具。所述的技術(shù)和工具包括但不限于下列諸如視頻編碼器或解碼器等工具至少部分地基于可應(yīng)用于運(yùn)動(dòng)矢量預(yù)測(cè)值的預(yù)測(cè)值極性,來(lái)檢查混合運(yùn)動(dòng)矢量預(yù)測(cè)條件。例如,預(yù)測(cè)值極性信號(hào)是用于選擇運(yùn)動(dòng)矢量預(yù)測(cè)值的主極性或非主極性。該工具隨后確定運(yùn)動(dòng)矢量預(yù)測(cè)值?;蛘?,諸如視頻編碼器或解碼器等工具為隔行掃描前向預(yù)測(cè)半幀的運(yùn)動(dòng)矢量確定初始的、導(dǎo)出的運(yùn)動(dòng)矢量預(yù)測(cè)值。該工具隨后至少部分地基于該初始的、導(dǎo)出的運(yùn)動(dòng)矢量預(yù)測(cè)值以及一個(gè)或多個(gè)相鄰的運(yùn)動(dòng)矢量來(lái)檢查變化條件。如果滿足變化條件,則該工具使用一個(gè)或多個(gè)相鄰運(yùn)動(dòng)矢量之一作為運(yùn)動(dòng)矢量的最終運(yùn)動(dòng)矢量預(yù)測(cè)值。否則,該工具使用初始的、導(dǎo)出的運(yùn)動(dòng)矢量預(yù)測(cè)值作為最終的運(yùn)動(dòng)矢量預(yù)測(cè)值。詳細(xì)描述的一些部分針對(duì)的是用于使用運(yùn)動(dòng)矢量塊模式的各種技術(shù)與工具,所述運(yùn)動(dòng)矢量塊模式用信號(hào)表示具有多個(gè)運(yùn)動(dòng)矢量的宏塊的運(yùn)動(dòng)矢量數(shù)據(jù)的存在或不存在。所述的技術(shù)與工具包括但不限于下列諸如視頻編碼器或解碼器等工具處理第一可變長(zhǎng)度代碼,它表示具有多個(gè)亮度運(yùn)動(dòng)矢量的宏塊的第一信息。第一信息包括宏塊的每亮度運(yùn)動(dòng)矢量的一個(gè)運(yùn)動(dòng)矢量數(shù)據(jù)存在指示符。該工具還處理第二可變長(zhǎng)度代碼,它表示宏塊的第二信息。第二信息包括宏塊的多個(gè)塊的多個(gè)變換系數(shù)數(shù)據(jù)存在指示符?;蛘?,諸如視頻編碼器或解碼器等工具對(duì)于具有第一數(shù)量的亮度運(yùn)動(dòng)矢量的宏塊(其中第一數(shù)量大于1)處理運(yùn)動(dòng)矢量塊模式,它由第二數(shù)量的比特組成(其中第二數(shù)量=第一數(shù)量)。這些比特的每一個(gè)指示亮度運(yùn)動(dòng)矢量中相應(yīng)的一個(gè)是否已經(jīng)關(guān)聯(lián)于比特流中用信號(hào)表示的運(yùn)動(dòng)矢量數(shù)據(jù)。該工具還對(duì)亮度運(yùn)動(dòng)矢量的每一個(gè)處理相關(guān)聯(lián)的運(yùn)動(dòng)矢量數(shù)據(jù),對(duì)這些亮度運(yùn)動(dòng)矢量,指示要在比特流中用信號(hào)表示相關(guān)聯(lián)運(yùn)動(dòng)矢量數(shù)據(jù)。詳細(xì)描述的一些部分針對(duì)的是用于在運(yùn)動(dòng)矢量預(yù)測(cè)值的主極性與非主極性之間選擇的各種技術(shù)與工具。所述技術(shù)與工具包括但不限于下列諸如視頻編碼器或解碼器等工具確定運(yùn)動(dòng)矢量預(yù)測(cè)值的主極性。該工具至少部分地基于主極性處理運(yùn)動(dòng)矢量預(yù)測(cè)值,并且至少部分地基于運(yùn)動(dòng)矢量預(yù)測(cè)值處理運(yùn)動(dòng)矢量。例如,運(yùn)動(dòng)矢量是隔行掃描前向預(yù)測(cè)半幀的當(dāng)前塊或宏塊的,并且主極性至少部分地基于相鄰塊或宏塊的多個(gè)先前的運(yùn)動(dòng)矢量的每一個(gè)的極性?;蛘?,諸如視頻編碼器或解碼器等工具處理指示在運(yùn)動(dòng)矢量預(yù)測(cè)值的主極性與非主極性之間選擇的信息,并且至少部分地基于運(yùn)動(dòng)矢量預(yù)測(cè)值處理運(yùn)動(dòng)矢量。例如,解碼器確定主極性和非主極性,隨后至少部分地基于主極性和非主極性和指示在它們之間的選擇的信息來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值。詳細(xì)描述的一些部分針對(duì)的是用于對(duì)參考半幀選擇信息與差分運(yùn)動(dòng)矢量信息進(jìn)行聯(lián)合編碼和解碼的各種技術(shù)與工具。所述的技術(shù)與工具包括但不限于下列諸如視頻解碼器等工具解碼可變長(zhǎng)度代碼,它聯(lián)合地表示運(yùn)動(dòng)矢量的差分運(yùn)動(dòng)矢量信息與運(yùn)動(dòng)矢量預(yù)測(cè)值選擇。解碼器隨后至少部分地基于差分運(yùn)動(dòng)矢量信息與運(yùn)動(dòng)矢量預(yù)測(cè)值選擇來(lái)重構(gòu)運(yùn)動(dòng)矢量?;蛘?,諸如視頻編碼器等工具確定運(yùn)動(dòng)矢量的主/非主預(yù)測(cè)值選擇。編碼器確定運(yùn)動(dòng)矢量的差分運(yùn)動(dòng)矢量信息,并且主/非主極性選擇與差分運(yùn)動(dòng)矢量信息一起進(jìn)行聯(lián)合編碼。詳細(xì)描述的一些部分針對(duì)的是用于代碼表選擇和隔行掃描前向預(yù)測(cè)半幀的宏塊的宏塊模式信息的聯(lián)合編碼/解碼的各種技術(shù)與工具。所述的技術(shù)與工具包括但不限于下列諸如視頻編碼器或解碼器等工具處理可變長(zhǎng)度代碼,它聯(lián)合地用信號(hào)表示宏塊的宏塊模式信息。宏塊是經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)模⑶衣?lián)合地用信號(hào)表示的宏塊模式信息包括(1)宏塊類(lèi)型,(2)已編碼塊模式存在還是不存在,以及(3)經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)暮陦K的運(yùn)動(dòng)矢量數(shù)據(jù)存在還是不存在。或者,諸如視頻編碼器或解碼器等工具從隔行掃描前向預(yù)測(cè)半幀的宏塊模式信息的多個(gè)可用代碼表中選擇一個(gè)代碼表。該工具使用所選擇的代碼表來(lái)處理可變長(zhǎng)度代碼,它指示宏塊的宏塊模式信息。宏塊模式信息包括(1)宏塊類(lèi)型,(2)已編碼塊模式存在還是不存在,以及(3)當(dāng)可應(yīng)用于宏塊類(lèi)型時(shí),運(yùn)動(dòng)矢量數(shù)據(jù)存在還是不存在。詳細(xì)描述的一些部分針對(duì)的是用于使用可用于隔行掃描前向預(yù)測(cè)半幀的參考半幀數(shù)量的信號(hào)的各種技術(shù)與工具。所述的技術(shù)與工具包括但不限于下列諸如視頻編碼器或解碼器等工具處理第一信號(hào),它指示隔行掃描前向預(yù)測(cè)半幀是具有一個(gè)參考半幀還是兩個(gè)可能的參考半幀用于運(yùn)動(dòng)補(bǔ)償。如果第一信號(hào)指示隔行掃描前向預(yù)測(cè)半幀具有一個(gè)參考半幀,則該工具處理第二信號(hào),它從兩個(gè)可能的參考半幀中標(biāo)識(shí)一個(gè)參考半幀。另一方面,如果第一信號(hào)指示隔行掃描前向預(yù)測(cè)半幀具有兩個(gè)可能的參考半幀,則對(duì)于隔行掃描前向預(yù)測(cè)半幀的塊和/或宏塊的多個(gè)運(yùn)動(dòng)矢量的每一個(gè),該工具可處理用于在兩個(gè)可能的參考半幀之間選擇的第三信號(hào)。該工具隨后執(zhí)行對(duì)隔行掃描前向預(yù)測(cè)半幀的運(yùn)動(dòng)補(bǔ)償?;蛘?,諸如視頻編碼器或解碼器等工具處理指示隔行掃描前向預(yù)測(cè)半幀具有一個(gè)參考半幀還是兩個(gè)可能的參考半幀用于運(yùn)動(dòng)補(bǔ)償?shù)男盘?hào)。該工具執(zhí)行隔行掃描前向預(yù)測(cè)半幀的運(yùn)動(dòng)補(bǔ)償。該工具還更新參考半幀緩沖器用于后續(xù)運(yùn)動(dòng)補(bǔ)償,而不處理用于管理參考半幀緩沖器的附加信號(hào)。詳細(xì)描述的一些部分針對(duì)的是用于導(dǎo)出隔行掃描前向預(yù)測(cè)半幀的宏塊的色度運(yùn)動(dòng)矢量的各種技術(shù)與工具。所述技術(shù)與工具包括但不限于下列19諸如視頻編碼器或解碼器等工具對(duì)于具有一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量的宏塊,至少部分地基于一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量的極性估計(jì)來(lái)導(dǎo)出色度運(yùn)動(dòng)矢量。例如,一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量的每一個(gè)是奇或偶極性,并且極性估計(jì)包括確定哪個(gè)極性在一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中是最共同的?;蛘?,諸如視頻編碼器或解碼器等工具確定宏塊的多個(gè)亮度運(yùn)動(dòng)矢量之中的占優(yōu)勢(shì)極性。該工具隨后至少部分地基于具有占優(yōu)勢(shì)極性的多個(gè)亮度運(yùn)動(dòng)矢量中的一個(gè)或多個(gè)來(lái)導(dǎo)出宏塊的色度運(yùn)動(dòng)矢量。其它特征與優(yōu)點(diǎn)將通過(guò)下列參考附圖進(jìn)行的不同實(shí)施例的詳細(xì)描述而變得明顯。圖1是示出依照現(xiàn)有技術(shù)的視頻編碼器中的運(yùn)動(dòng)估計(jì)的圖示。圖2是示出依照現(xiàn)有技術(shù)的視頻解碼器中的8X8的預(yù)測(cè)殘差塊的基于塊的壓縮的圖示。圖3是示出依照現(xiàn)有技術(shù)的視頻編碼器中的8X8的預(yù)測(cè)殘差塊的基于塊的解壓的圖示。圖4是示出依照現(xiàn)有技術(shù)的隔行掃描幀的圖示。圖5A和5B是示出依照現(xiàn)有技術(shù),用于逐行掃描P幀中的IMV宏塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值的宏塊位置的圖示。圖6A和6B是示出依照現(xiàn)有技術(shù),用于混合的1MV/4MV逐行掃描P幀中的IMV宏塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值的塊位置的圖示。圖7A、7B、8A、8B、9和10是示出依照現(xiàn)有技術(shù),用于混合的1MV/4MV逐行掃描P幀中的4MV宏塊中的各種位置處的塊的候選運(yùn)動(dòng)數(shù)量預(yù)測(cè)值的塊位置的圖示。圖11是示出依照現(xiàn)有技術(shù),用于隔行掃描P幀中的當(dāng)前幀編碼宏塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值的圖示。圖12A-12B是示出依照現(xiàn)有技術(shù),用于隔行掃描P幀中的當(dāng)前半幀編碼宏塊的候選運(yùn)動(dòng)矢量預(yù)測(cè)值的圖示。圖13A-13C是按照現(xiàn)有技術(shù)計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值的偽代碼。圖14A和14B是示出按照現(xiàn)有技術(shù)用于逐行掃描P幀的混合運(yùn)動(dòng)矢量預(yù)測(cè)的偽代碼。圖15A-15C是示出按照現(xiàn)有技術(shù)的運(yùn)動(dòng)矢量差分信息的解碼的偽代碼和表。圖16A-16C和13C是示出按照現(xiàn)有技術(shù)用于逐行掃描P幀的色度運(yùn)動(dòng)矢量的導(dǎo)出的偽代碼。圖17是示出按照現(xiàn)有技術(shù)用于隔行掃描P幀的色度運(yùn)動(dòng)矢量的導(dǎo)出的偽代碼。圖18是示出按照現(xiàn)有技術(shù)用于逐行掃描P幀的強(qiáng)度補(bǔ)償?shù)膫未a。圖19是可結(jié)合其來(lái)實(shí)現(xiàn)若干描述的實(shí)施例的合適計(jì)算環(huán)境的框圖。圖20是結(jié)合其可實(shí)現(xiàn)若干描述的實(shí)施例的廣義視頻編碼器系統(tǒng)的框圖。圖21是結(jié)合其可實(shí)現(xiàn)若干描述的實(shí)施例的廣義視頻解碼器系統(tǒng)的框圖。圖22是在若干描述的實(shí)施例中使用的宏塊格式的圖。圖23A是隔行掃描視頻幀的部分圖,示出上半幀和下半幀的交替行。圖23B是為編碼/解碼為幀而組織的隔行掃描視頻幀的圖,以及圖23C是為編碼/解碼為半幀而組織的隔行掃描視頻幀的圖。圖24A-24F是示出隔行掃描P半幀的參考半幀的示例的圖。圖25A和25B是分別示出用于參考半幀數(shù)量和選擇信息的編碼和解碼的技術(shù)的流程圖。圖26和27是示出MBMODE值的表。圖28A和28B是分別示出隔行掃描P半幀的宏塊的宏塊模式信息的編碼和解碼的技術(shù)的流程圖。圖29是用于確定主和非主參考半幀的偽代碼。圖30是用于用信號(hào)表示使用主還是非主參考半幀用于運(yùn)動(dòng)矢量的偽代碼。圖31A和31B是分別示出用于在編碼和解碼中確定兩個(gè)參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)的主和非主極性的技術(shù)的流程圖。圖32是在解碼期間的混合運(yùn)動(dòng)矢量預(yù)測(cè)的偽代碼。圖33A和33B是分別示出在編碼和解碼期間的混合運(yùn)動(dòng)矢量預(yù)測(cè)的技術(shù)的流程圖。圖34是示出亮度塊與4MVBP元素之間的關(guān)聯(lián)的圖。圖35A和35B是分別示出使用運(yùn)動(dòng)矢量塊模式的編碼和解碼的技術(shù)的流程圖。圖36是用于編碼兩個(gè)參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量差分信息和主/非主預(yù)測(cè)值選擇的偽代碼。圖37A和37B是分別示出兩個(gè)參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量差分信息和主/非主預(yù)測(cè)值選擇的編碼和解碼的技術(shù)的流程圖。圖38是4:2:0宏塊的色度二次采樣模式的圖。圖39是示出垂直運(yùn)動(dòng)矢量分量的當(dāng)前與參考半幀之間的關(guān)系的圖。圖40是用于選擇為隔行掃描P半幀的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)暮陦K的色度運(yùn)動(dòng)矢量作出貢獻(xiàn)的亮度運(yùn)動(dòng)矢量的偽代碼。圖41是示出從隔行掃描P半幀的宏塊的亮度運(yùn)動(dòng)矢量中導(dǎo)出色度運(yùn)動(dòng)矢量的技術(shù)的流程圖。圖42和43分別是編碼器框架和解碼器框架的圖,其中為隔行掃描P半幀執(zhí)行強(qiáng)度補(bǔ)償。圖44是示出用于用信號(hào)表示隔行掃描P半幀的強(qiáng)度補(bǔ)償參考半幀模式的句法元素的表。圖45A和45B是分別示出對(duì)隔行掃描P半幀在編碼中執(zhí)行褪色估計(jì)和在解碼中執(zhí)行褪色補(bǔ)償?shù)募夹g(shù)的流程圖。圖46A-46E是按照第一組合實(shí)現(xiàn)的比特流的層的句法圖。圖47A-47K是在第一組合實(shí)現(xiàn)中的代碼表。圖48是示出在第一組合實(shí)現(xiàn)中的垂直運(yùn)動(dòng)矢量分量的當(dāng)前與參考半幀之間的關(guān)系的圖。圖49A和49B分別是用于第一組合實(shí)現(xiàn)中的1參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量差分解碼的偽代碼和表。圖50是用于解碼第一組合實(shí)現(xiàn)中的2參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量差分信息和主/非主預(yù)測(cè)值選擇的偽代碼。圖51A和51B是用于第一組合實(shí)現(xiàn)中的1參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量預(yù)測(cè)的偽代碼。圖52A-52J是用于第一組合實(shí)現(xiàn)中的2參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量預(yù)測(cè)的偽代碼和表。圖52K至52N是用于比例縮放操作的偽代碼和表,它們是圖52H至52J所示操作的替換操作。圖53是用于第一組合實(shí)現(xiàn)中的隔行掃描P半幀的混合運(yùn)動(dòng)矢量預(yù)測(cè)的偽代碼。圖54是用于第一組合實(shí)現(xiàn)中的2參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量重構(gòu)的偽代碼。圖55A和55B是用于第一組合實(shí)現(xiàn)中的隔行掃描P半幀的色度運(yùn)動(dòng)矢量導(dǎo)出的偽代碼。圖56是用于第一組合實(shí)現(xiàn)中的隔行掃描P半幀的強(qiáng)度補(bǔ)償?shù)膫未a。圖57A-57C是用于按照第二組合實(shí)現(xiàn)的比特流的層的句法圖。圖58A和58B分別是用于第二組合實(shí)現(xiàn)中的1參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量差分解碼的偽代碼和表。圖59是用于解碼第二組合實(shí)現(xiàn)中的2參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量差分信息和主/非主預(yù)測(cè)值選擇的偽代碼。圖60A和60B是用于第二組合實(shí)現(xiàn)中的1參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量預(yù)測(cè)的偽代碼。圖61A-61F是用于第二組合實(shí)現(xiàn)中的2參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量預(yù)測(cè)的偽代碼。具體實(shí)施例方式本申請(qǐng)涉及用于有效地壓縮和解壓隔行掃描視頻的技術(shù)與工具。隔行掃描視頻內(nèi)容的壓縮與解壓隨著各種技術(shù)與工具一起改進(jìn),這些技術(shù)與工具明確地被設(shè)計(jì)成處理隔行掃描視頻表示的特定屬性。在各種描述的實(shí)施例中,視頻編碼器和解碼器結(jié)合了用于編碼和解碼隔行掃描前向預(yù)測(cè)半幀的技術(shù),以及用于包括不同層或級(jí)(例如,序列級(jí)、幀級(jí)、半幀級(jí)、片級(jí)、宏塊級(jí)和/或塊級(jí))的比特流格式或句法的相應(yīng)信號(hào)表示技術(shù)。隔行掃描視頻內(nèi)容一般在通過(guò)電纜、衛(wèi)星或DSL的數(shù)字視頻廣播系統(tǒng)中使用。用于壓縮和解壓隔行掃描視頻內(nèi)容的有效技術(shù)與工具是視頻編解碼器的重要部分。在此描述的實(shí)現(xiàn)的各種替換方案是可能的。例如,參考流程圖描述的技術(shù)可以通過(guò)改變流程圖中所示步驟的順序、通過(guò)重復(fù)或省略某些步驟等來(lái)改變。作為另一個(gè)示例,盡管參考特定的宏塊格式描述了某些實(shí)現(xiàn),但也可以使用其它格式。而且,參考隔行掃描前向預(yù)測(cè)半幀描述的技術(shù)與工具也可應(yīng)用于其它類(lèi)型的圖像。在各種實(shí)施例中,編碼器和解碼器比特流中使用了標(biāo)志和/或信號(hào)。盡管描述了特定的標(biāo)志與信號(hào),但應(yīng)該理解,這種描述方式包括了標(biāo)志與信號(hào)的不同約定(例如,0而非1)。各種技術(shù)與工具可以組合或獨(dú)立使用。不同實(shí)施例實(shí)現(xiàn)所述技術(shù)與工具中的一個(gè)或多個(gè)。在此描述的有些技術(shù)與工具可以在視頻編碼器或解碼器中使用,或者在不是明確限于視頻編碼或解碼的某種其它系統(tǒng)中使用。I.計(jì)算環(huán)境圖19示出了適合在其中實(shí)現(xiàn)所描述的若干實(shí)施例的計(jì)算環(huán)境(1900)的一個(gè)廣義示例。計(jì)算環(huán)境(1900)并非對(duì)使用范圍或功能提出任何局限,因?yàn)檫@些技術(shù)和工具可以在完全不同的通用或?qū)S糜?jì)算環(huán)境中實(shí)現(xiàn)。參考圖19,計(jì)算環(huán)境(1900)包括至少一個(gè)處理單元(1910)和存儲(chǔ)器(1920)。在圖19中,這一最基本配置(1930)包括在虛線內(nèi)。處理單元(1910)執(zhí)行計(jì)算機(jī)可執(zhí)行指令,且可以是真實(shí)或虛擬處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令以提高處理能力。存儲(chǔ)器(1920)可以是易失性存儲(chǔ)器(例如,寄存器、高速緩存、RAM)、非易失性存儲(chǔ)器(例如,R0M、EEPR0M、閃存等)或兩者的某一組合。存儲(chǔ)器(1920)儲(chǔ)存實(shí)現(xiàn)視頻編碼器或解碼器的軟件(1980)。計(jì)算環(huán)境可具有額外的特征。例如,計(jì)算環(huán)境(1900)包括存儲(chǔ)(1940)、一個(gè)或多個(gè)輸入設(shè)備(1950)、一個(gè)或多個(gè)輸出設(shè)備(1960)以及一個(gè)或多個(gè)通信連接(1970)。諸如總線、控制器或網(wǎng)絡(luò)等互連機(jī)制(未示出)將計(jì)算環(huán)境(1900)的組件互連。通常,操作系統(tǒng)軟件(未示出)為在計(jì)算環(huán)境(1900)中執(zhí)行的其它軟件提供了操作環(huán)境,并協(xié)調(diào)計(jì)算環(huán)境(1900)的組件的活動(dòng)。存儲(chǔ)(1940)可以是可移動(dòng)或不可移動(dòng)的,且包括磁盤(pán)、磁帶或磁帶盒、⑶-ROM、DVD或可用于儲(chǔ)存信息并可在計(jì)算環(huán)境(1900)內(nèi)訪問(wèn)的任何其它介質(zhì)。存儲(chǔ)(1940)儲(chǔ)存用于軟件(1980)實(shí)現(xiàn)視頻編碼器或解碼器的指令。輸入設(shè)備(1950)可以是諸如鍵盤(pán)、鼠標(biāo)、筆或跟蹤球等觸摸輸入設(shè)備、語(yǔ)音輸入設(shè)備、掃描設(shè)備或可向計(jì)算環(huán)境(1900)提供輸入的另一設(shè)備。對(duì)于音頻或視頻編碼,輸入設(shè)備(1950)可以是聲卡、顯卡、TV調(diào)諧卡、或接受模擬或數(shù)字格式的音頻或視頻輸入的類(lèi)似的設(shè)備、或?qū)⒁纛l或視頻樣值讀入計(jì)算環(huán)境(1900)的CD-ROM或CD-RW。輸出設(shè)備(1960)可以是顯示器、打印機(jī)、揚(yáng)聲器、CD刻錄機(jī)、或從計(jì)算環(huán)境(1900)提供輸出的另一設(shè)備。通信連接(1970)允許通過(guò)通信介質(zhì)到另一計(jì)算實(shí)體的通信。通信介質(zhì)傳達(dá)諸如計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出、或已調(diào)制數(shù)據(jù)信號(hào)形式的其它數(shù)據(jù)等信息。已調(diào)制數(shù)據(jù)信號(hào)是其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式設(shè)置或改變的信號(hào)。作為示例而非局限,通信介質(zhì)包括以電、光、RF、紅外、聲學(xué)或其它載波實(shí)現(xiàn)的有線或無(wú)線技術(shù)。各種技術(shù)和工具可以在計(jì)算機(jī)可讀介質(zhì)的一般上下文中描述。計(jì)算機(jī)可讀介質(zhì)可以是可在計(jì)算環(huán)境內(nèi)訪問(wèn)的任何可用介質(zhì)。作為示例而非局限,對(duì)于計(jì)算環(huán)境(1900),計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ)器(1920)、存儲(chǔ)(1940)、通信介質(zhì)以及上述任一個(gè)的組合。各種技術(shù)和工具可以在諸如程序模塊中所包括的在計(jì)算環(huán)境中的目標(biāo)真實(shí)或虛擬處理器上執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括例程、程序、庫(kù)、對(duì)象、類(lèi)、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型。程序模塊的功能可以如各實(shí)施例中所需的組合或在程序模塊之間分離。用于程序模塊的計(jì)算機(jī)可執(zhí)行指令可以在本地或分布式計(jì)算環(huán)境中執(zhí)行。為演示起見(jiàn),詳細(xì)描述使用了如“估計(jì)”、“補(bǔ)償”、“預(yù)測(cè)”和“應(yīng)用”等術(shù)語(yǔ),來(lái)描述計(jì)算環(huán)境中的計(jì)算機(jī)操作。這些術(shù)語(yǔ)是由計(jì)算機(jī)執(zhí)行的操作的高級(jí)抽象,且不應(yīng)與人類(lèi)所執(zhí)行的動(dòng)作混淆。對(duì)應(yīng)于這些術(shù)語(yǔ)的實(shí)際的計(jì)算機(jī)操作取決于實(shí)現(xiàn)而不同。II.廣義的視頻編碼器和解碼器圖20是可結(jié)合其實(shí)現(xiàn)所描述的各種實(shí)施例的廣義視頻編碼器系統(tǒng)(2000)的框圖。圖21是可結(jié)合其實(shí)現(xiàn)所描述的各種實(shí)施例的廣義視頻解碼器(2100)的框圖。編碼器(2000)和解碼器(2100)內(nèi)的模塊之間所示的關(guān)系指示了編碼器和解碼器中的主要信息流;為簡(jiǎn)明起見(jiàn),未示出其它關(guān)系。具體地,圖20和21—般不示出指示用于視頻序列、幀、宏塊、塊等的編碼器設(shè)置、模式、表等輔助信息。這一輔助信息通常在該輔助信息的熵編碼之后在輸出比特流中發(fā)送。輸出比特流的格式可以是WindowsMediaVideo版本9或其它格式。編碼器(2000)和解碼器(2100)處理視頻圖像,視頻圖像可以是視頻幀、視頻半幀或幀和半幀的組合。圖像和宏塊級(jí)的比特流句法和語(yǔ)法可取決于使用了幀還是半幀。也可以對(duì)宏塊組織和總體時(shí)序有改變。編碼器(2000)和解碼器(2100)是基于塊的,且對(duì)幀使用4:2:0的宏塊格式,其中每一宏塊包括四個(gè)8X8的亮度塊(有時(shí)候作為一個(gè)16X16的宏塊來(lái)對(duì)待)以及兩個(gè)8X8的色度塊。對(duì)于半幀,可使用相同或不同的宏塊組織和格式。8X8的塊還可在不同的級(jí)細(xì)分,例如在頻率變換和熵編碼級(jí)。示例性視頻幀組織在下一節(jié)中更詳細(xì)描述取決于所需的實(shí)現(xiàn)和壓縮類(lèi)型,編碼器或解碼器的模塊可被添加、省略、分成多個(gè)模塊、與其它模塊組合、和/或用相似的模塊來(lái)替代。在替換實(shí)施例中,具有不同模塊和/或其它模塊配置的編碼器或解碼器執(zhí)行一個(gè)或多個(gè)所描述的技術(shù)。A.視頻幀組織在某些實(shí)現(xiàn)中,編碼器(2000)和解碼器(2100)處理如下組織的視頻幀。幀包含視頻信號(hào)的空間信息行。對(duì)于逐行掃描視頻,這些行包含從一個(gè)時(shí)刻開(kāi)始并繼續(xù)通過(guò)連續(xù)的行直到幀底部的樣值。逐行掃描視頻幀被劃分成諸如圖22所示的宏塊(2200)等宏塊。宏塊(2200)包括四個(gè)8X8的亮度塊(Yl到Y(jié)4)以及兩個(gè)8X8的色度塊,這些色度塊與四個(gè)亮度塊共同定位,但是水平和垂直分辨率都是一半,遵循常規(guī)的4:2:0的宏塊格式。8X8的塊還可以在不同的級(jí)上細(xì)分,例如在頻率變換級(jí)(例如,8X4、4X8或4X4DCT)和熵編碼級(jí)。逐行掃描I幀是幀內(nèi)編碼的逐行掃描視頻幀。逐行掃描P幀是使用前向預(yù)測(cè)編碼的逐行掃描視頻幀,而逐行掃描B幀是使用雙向預(yù)測(cè)編碼的逐行掃描視頻幀。逐行掃描P幀和B幀可包括幀內(nèi)編碼的宏塊以及不同類(lèi)型的預(yù)測(cè)宏塊。隔行掃描視頻幀由一幀的兩次掃描構(gòu)成-一次包括幀的偶數(shù)行(上半幀),另一次包括幀的奇數(shù)行(下半幀)。這兩個(gè)半幀可表示兩個(gè)不同的時(shí)間段,或者它們可以來(lái)自同一時(shí)間段。圖23A示出了隔行掃描視頻幀(2300)的一部分,包括位于隔行掃描視頻幀(2300)的左上部分的上半幀和下半幀的交替行。圖23B示出了為編碼/解碼組織為幀(2330)的圖23A的隔行掃描視頻幀(2300)。隔行掃描視頻幀(2300)被劃分成諸如宏塊(2331)和(2332)等宏塊,它們使用如圖22所示的4:2:0的格式。在亮度平面中,每一宏塊(2331、2332)包括來(lái)自上半幀的8行,這8行與來(lái)自下半幀的8行交替,總共有16行,且每一行是16個(gè)像素長(zhǎng)。(宏塊(2331、2332)內(nèi)亮度塊和色度塊的實(shí)際組織和布置未示出,且實(shí)際上可以對(duì)不同的編碼決策不同。)在給定宏塊內(nèi),上半幀信息和下半幀信息可以聯(lián)合編碼或在各種階段的任一個(gè)單獨(dú)編碼。隔行掃描I幀是隔行掃描視頻幀的兩個(gè)幀內(nèi)編碼的半幀,其中宏塊包括關(guān)于這兩個(gè)半幀的信息。隔行掃描P幀是使用前向預(yù)測(cè)編碼的隔行掃描視頻幀的兩個(gè)半幀,而隔行掃描B幀是使用雙向預(yù)測(cè)編碼的隔行掃描視頻幀的兩個(gè)半幀,其中宏塊包括關(guān)于這兩個(gè)半幀的信息。隔行掃描P幀和B幀可包括幀內(nèi)編碼宏塊以及不同類(lèi)型的預(yù)測(cè)宏塊。圖23C示出了為編碼/解碼被組織成半幀(2360)的圖23A的隔行掃描視頻幀(2300)。隔行掃描視頻幀(2300)的兩個(gè)半幀中的每一個(gè)被劃分成宏塊。上半幀被劃分成諸如宏塊(2361)等宏塊,下半幀被劃分成諸如宏塊(2362)等宏塊。(這些宏塊也使用如圖22所示的4:2:0格式,且宏塊內(nèi)亮度塊和色度塊的組織和布置未示出)。在亮度平面中,宏塊(2361)包括來(lái)自上半幀的16行,且宏塊(2362)包括來(lái)自下半幀的16行,且每一行是16個(gè)像素長(zhǎng)。隔行掃描I半幀是隔行掃描視頻幀的單個(gè)單獨(dú)表示的半幀。隔行掃描P半幀是使用前向預(yù)測(cè)編碼的隔行掃描視頻幀的單個(gè)單獨(dú)表示的半幀,隔行掃描B半幀是使用雙向預(yù)測(cè)編碼的隔行掃描視頻幀的單個(gè)單獨(dú)表示的半幀。隔行掃描P半幀和B半幀可包括幀內(nèi)編碼宏塊以及不同類(lèi)型的預(yù)測(cè)宏塊。術(shù)語(yǔ)圖像一般指的是源、已編碼的或已重構(gòu)的圖像數(shù)據(jù)。對(duì)于逐行掃描視頻,圖像是逐行掃描視頻幀。對(duì)于隔行掃描視頻,圖像可以指的是隔行掃描視頻幀、幀的上半幀、或幀的下半幀,取決于上下文?;蛘?,編碼器(2000)和解碼器(2100)是基于對(duì)象的,使用不同的宏塊或塊格式,或?qū)εc8X8的塊和16X16的宏塊不同大小或配置的像素集執(zhí)行操作。B.視頻編碼器圖20是廣義的視頻編碼器系統(tǒng)(2000)的框圖。編碼器系統(tǒng)(2000)接收包括當(dāng)前圖像(2005)(例如,逐行掃描視頻幀、隔行掃描視頻幀或隔行掃描視頻幀的半幀)的視頻圖像序列,并產(chǎn)生壓縮的視頻信息(2095)作為輸出。視頻編碼器的具體實(shí)施例通常使用廣義編碼器(2000)的變化或補(bǔ)充版本。編碼器系統(tǒng)(2000)壓縮預(yù)測(cè)圖像和關(guān)鍵圖像。為演示起見(jiàn),圖20示出了關(guān)鍵圖像通過(guò)編碼器系統(tǒng)(2000)的路徑以及用于前向預(yù)測(cè)圖像的路徑。編碼器系統(tǒng)(2000)的許多組件用于同時(shí)壓縮關(guān)鍵圖像和預(yù)測(cè)圖像兩者。由這些組件執(zhí)行的確切操作可以取決于所壓縮的信息類(lèi)型而變化。預(yù)測(cè)圖像(對(duì)雙向預(yù)測(cè)也稱(chēng)為P圖像或B圖像,或幀間編碼圖像)按照來(lái)自一個(gè)或多個(gè)其它圖像的預(yù)測(cè)(或差)來(lái)表示。預(yù)測(cè)殘差是所預(yù)測(cè)的和原始圖像之差。相反,關(guān)鍵圖像(也稱(chēng)為I圖像或幀內(nèi)編碼圖像)不參考其它圖像來(lái)壓縮。如果當(dāng)前圖像(2005)是前向預(yù)測(cè)圖像,則運(yùn)動(dòng)估計(jì)器(2010)相對(duì)于參考圖像來(lái)估計(jì)宏塊的運(yùn)動(dòng)或者當(dāng)前圖像(2005)的其它象素集,參考圖像是在圖像存儲(chǔ)器(2020)中緩沖的重構(gòu)的先前圖像(2025)。在一替換實(shí)施例中,參考圖像是后面的圖像或者當(dāng)前圖像是雙向預(yù)測(cè)的。運(yùn)動(dòng)估計(jì)器(2010)可以按象素、1/2象素、1/4象素或其它增量進(jìn)行估計(jì),并且可以在逐個(gè)圖像的基礎(chǔ)上或者在其它基礎(chǔ)上切換運(yùn)動(dòng)估計(jì)的精度。運(yùn)動(dòng)估計(jì)的精度在水平與垂直方向上可以相同或不同。運(yùn)動(dòng)估計(jì)器(2010)輸出運(yùn)動(dòng)信息(2015),如運(yùn)動(dòng)矢量作為輔助信息。運(yùn)動(dòng)補(bǔ)償器(2030)將運(yùn)動(dòng)信息(2015)應(yīng)用于重構(gòu)的先前圖像(2025)以形成經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前圖像(2035)。然而預(yù)測(cè)很少是完美的,并且在經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前圖像(2035)與原始當(dāng)前圖像(2005)之間的差是預(yù)測(cè)殘差(2045)??晒┨鎿Q地,運(yùn)動(dòng)估計(jì)器25和運(yùn)動(dòng)補(bǔ)償器應(yīng)用另一類(lèi)型的運(yùn)動(dòng)估計(jì)/補(bǔ)償。頻率變換器(2060)將空間域視頻信息轉(zhuǎn)換成頻域(即,頻譜)數(shù)據(jù)。對(duì)于基于塊的視頻圖像,頻率變換器(2060)向像素?cái)?shù)據(jù)或預(yù)測(cè)殘差數(shù)據(jù)的塊應(yīng)用DCT、DCT的變體,從而產(chǎn)生DCT換系數(shù)塊?;蛘撸l率變換器(2060)應(yīng)用諸如傅立葉變換等另一常規(guī)頻率變換或使用小波或子帶分析。頻率變換器(2060)向預(yù)測(cè)的圖像的預(yù)測(cè)殘差應(yīng)用8X8、8X4、4X8、4X4或其它大小的頻率變換(例如,DCT)。量化器(2070)然后量化頻譜數(shù)據(jù)系數(shù)塊。量化器向頻譜數(shù)據(jù)應(yīng)用均勻的標(biāo)量量化,其步長(zhǎng)在逐圖像的基礎(chǔ)或其它基礎(chǔ)上變化。或者,量化器向頻譜數(shù)據(jù)系數(shù)應(yīng)用另一類(lèi)型的量化,例如非均勻的、矢量或非自適應(yīng)量化,或直接在不使用頻率變換的編碼器系統(tǒng)中量化空間域數(shù)據(jù)。除自適應(yīng)量化之外,編碼器(2000)可使用幀丟棄、自適應(yīng)濾波或其它技術(shù)用于速率控制。如果預(yù)測(cè)的圖像中的給定宏塊沒(méi)有某些類(lèi)型的信息(例如,沒(méi)有宏塊的運(yùn)動(dòng)信息以及沒(méi)有殘差信息),則編碼器(2000)可將該宏塊編碼為跳過(guò)宏塊。如果這樣,則編碼器在壓縮的視頻信息(2095)的輸出比特流中用信號(hào)表示該跳過(guò)宏塊。當(dāng)需要重構(gòu)的當(dāng)前圖像用于后續(xù)的運(yùn)動(dòng)估計(jì)/補(bǔ)償時(shí),反量化器(2076)在量化的頻譜數(shù)據(jù)系數(shù)上執(zhí)行反量化。反頻率變換器(2066)然后執(zhí)行頻率變換器(2060)的逆運(yùn)算,從而產(chǎn)生重構(gòu)的預(yù)測(cè)殘差(對(duì)于預(yù)測(cè)圖像)或重構(gòu)的樣值(對(duì)幀內(nèi)編碼的圖像)。如果所編碼的圖像(2005)是預(yù)測(cè)的圖像,則重構(gòu)的預(yù)測(cè)殘差被加到經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)(2035)以形成重構(gòu)的當(dāng)前圖像。圖像存儲(chǔ)(2020)緩沖重構(gòu)的當(dāng)前圖像,以預(yù)測(cè)下一圖像中使用。在某些實(shí)施例中,編碼器向重構(gòu)的幀應(yīng)用分塊濾波器,以自適應(yīng)地平滑幀的塊之間的不連續(xù)性。熵編碼器(2080)壓縮量化器(2070)的輸出以及某些輔助信息(例如,運(yùn)動(dòng)信息(2015)、量化步長(zhǎng))。典型的熵編碼技術(shù)包括算術(shù)編碼、差分編碼、哈夫曼編碼、行程長(zhǎng)度編碼、LZ編碼、字典式編碼以及上述的組合。熵編碼器(2080)通常對(duì)不同種類(lèi)的信息(例如,DC系數(shù)、AC系數(shù)、不同種類(lèi)的輔助信息)使用不同的編碼技術(shù),并可從特定編碼技術(shù)內(nèi)的多個(gè)代碼表中進(jìn)行選擇。熵編碼器(2080)將壓縮的視頻信息(2095)置于緩沖器(2090)中。緩沖器級(jí)別指示符被反饋給比特率自適應(yīng)模塊。壓縮的視頻信息(2095)以恒定或相對(duì)恒定的比特率從緩沖器(2090)中消耗完并且存儲(chǔ)用于以該比特率的后續(xù)流傳送。因此,緩沖器(2090)的級(jí)別主要是經(jīng)濾波的、量化的視頻信息的熵的函數(shù),它影響熵編碼的效率??晒┨鎿Q地,編碼器系統(tǒng)(2000)緊接著壓縮流傳送壓縮的視頻信息,并且緩沖器(2090)的級(jí)別還依賴于哪些信息從緩沖器(2090)消耗完用于傳輸。在緩沖器(2090)之前或之后,壓縮的視頻信息(2095)可被信道編碼用于通過(guò)網(wǎng)絡(luò)發(fā)送。信道編碼可向壓縮的視頻信息(2095)應(yīng)用檢錯(cuò)和糾錯(cuò)數(shù)據(jù)。C.視頻解碼器圖21是通用視頻解碼器系統(tǒng)(2100)的框圖。解碼器系統(tǒng)(2100)接收關(guān)于壓縮的視頻圖像序列的信息(2205),并產(chǎn)生包括重構(gòu)的圖像(2105)(例如,逐行掃描視頻幀、隔行掃描視頻幀或隔行掃描視頻幀的半幀)的輸出。視頻解碼器的具體實(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í)行的確切操作可以取決于所解壓的信息類(lèi)型而變化。緩沖器(2190)接收關(guān)于壓縮的視頻序列的信息(2195),并使得所接收的信息對(duì)熵解碼器(2180)可用。緩沖器(2190)通常以隨時(shí)間相對(duì)恒定的速率接收該信息,并包括抖動(dòng)緩沖器以平滑帶寬或傳輸中的短期變化。緩沖器(2190)也可包括回放緩沖器。或者,緩沖器(2190)以變化的速率接收信息。在緩沖器(2190)之前或之后,壓縮的視頻信息可以被信道解碼,并被處理用于檢錯(cuò)和糾錯(cuò)。熵解碼器(2180)對(duì)熵編碼的量化數(shù)據(jù)以及熵編碼的輔助信息(例如,運(yùn)動(dòng)信息(2115)、量化步長(zhǎng))進(jìn)行解碼,通常應(yīng)用編碼器中執(zhí)行的熵編碼的逆運(yùn)算。熵解碼技術(shù)包括算術(shù)解碼、差分解碼、哈夫曼解碼、行程長(zhǎng)度解碼、LZ解碼、字典式解碼以及上述的組合。熵解碼器(2180)通常對(duì)不同種類(lèi)的信息(例如,DC系數(shù)、AC系數(shù)、不同種類(lèi)的輔助信息)使用不同的解碼技術(shù),并可從特定的解碼技術(shù)中的多個(gè)代碼表之中進(jìn)行選擇。如果要重構(gòu)的圖像(2105)是前向預(yù)測(cè)圖像,則運(yùn)動(dòng)補(bǔ)償器(2130)向參考圖像(2125)應(yīng)用運(yùn)動(dòng)信息(2115),以形成所重構(gòu)的圖像(2105)的預(yù)測(cè)(2135)。例如,運(yùn)動(dòng)補(bǔ)償器(2130)使用宏塊運(yùn)動(dòng)矢量以找出參考圖像(2125)中的宏塊。圖像緩沖器(2120)儲(chǔ)存先前重構(gòu)的圖像以用作參考圖像。運(yùn)動(dòng)補(bǔ)償器(2130)可以按像素、1/2像素、1/4像素或其它增量來(lái)補(bǔ)償運(yùn)動(dòng),并可在逐圖像的基礎(chǔ)或其它基礎(chǔ)上切換運(yùn)動(dòng)補(bǔ)償?shù)木?。運(yùn)動(dòng)補(bǔ)償?shù)木瓤梢栽谒胶痛怪鄙舷嗤虿煌??;蛘撸\(yùn)動(dòng)補(bǔ)償器應(yīng)用另一類(lèi)型的運(yùn)動(dòng)補(bǔ)償。運(yùn)動(dòng)補(bǔ)償器的預(yù)測(cè)很少是完美的,因此解碼器(2100)也重構(gòu)預(yù)測(cè)殘差。當(dāng)解碼器需要重構(gòu)的圖像用戶隨后的運(yùn)動(dòng)補(bǔ)償時(shí),圖像存儲(chǔ)(2120)緩沖重構(gòu)的圖像以在預(yù)測(cè)下一圖像時(shí)使用。在某些實(shí)施例中,編碼器向重構(gòu)的幀應(yīng)用分塊濾波器以自適應(yīng)地平滑幀的塊之間的不連續(xù)性。反量化器(2170)對(duì)熵解碼的數(shù)據(jù)進(jìn)行反量化。一般而言,反量化器向熵解碼的數(shù)據(jù)應(yīng)用均勻的標(biāo)量反量化,其中步長(zhǎng)在逐圖像的基礎(chǔ)或其它基礎(chǔ)上變化。或者,反量化器向數(shù)據(jù)應(yīng)用另一類(lèi)型的反量化,例如非均勻矢量量化或非自適應(yīng)反量化,或直接在不使用反頻率變換的解碼器系統(tǒng)中對(duì)空間域數(shù)據(jù)進(jìn)行反量化。反頻率變換器(2160)將量化的頻域數(shù)據(jù)轉(zhuǎn)換成空間域視頻信息。對(duì)于基于塊的視頻圖像,反頻率變換器(2160)向DCT系數(shù)塊應(yīng)用IDCT或IDCT的變體,從而分別對(duì)關(guān)鍵圖像或預(yù)測(cè)圖像產(chǎn)生像素?cái)?shù)據(jù)或預(yù)測(cè)殘差數(shù)據(jù)?;蛘?,反頻率變換器(2160)應(yīng)用另一常規(guī)的反頻率變換,諸如傅立葉反變換或使用小波或子帶合成。反頻率變換器(2160)向預(yù)測(cè)的圖像的預(yù)測(cè)殘差應(yīng)用8X8、8X4、4X8、4X4或其它大小的反頻率變換(例如,IDCT)。III.隔行掃描P幀典型的隔行掃描視頻幀由在不同的時(shí)刻掃描的兩個(gè)半幀(例如,上半幀和下半幀)構(gòu)成。一般而言,通過(guò)將兩個(gè)半幀一起編碼(“幀模式”編碼)來(lái)對(duì)隔行掃描視頻幀的靜止區(qū)域進(jìn)行編碼是更有效的。另一方面,通過(guò)單獨(dú)對(duì)各半幀編碼(“半幀模式”編碼)來(lái)對(duì)隔行掃描視頻幀的運(yùn)動(dòng)區(qū)域進(jìn)行編碼通常是更有效的,因?yàn)閮蓚€(gè)半幀往往具有不同的運(yùn)動(dòng)。前向預(yù)測(cè)的隔行掃描視頻幀可以被編碼為兩個(gè)單獨(dú)的前向預(yù)測(cè)的半幀-隔行掃描P半幀。對(duì)前向預(yù)測(cè)的隔行掃描視頻幀單獨(dú)地編碼半幀在例如貫穿該隔行掃描視頻幀中有高運(yùn)動(dòng),且因此在半幀之間有較多差異時(shí)可能是有效的?;蛘?,前向預(yù)測(cè)的隔行掃描視頻幀可使用半幀編碼和幀編碼的混合來(lái)編碼,作為隔行掃描的P幀。對(duì)于隔行掃描P幀的宏塊,宏塊包括上半幀和下半幀的像素行,且這些行可以在幀編碼模式中共同編碼或者在半幀編碼模式中單獨(dú)編碼。隔行掃描P-半幀參考一個(gè)或多個(gè)先前解碼的半幀。例如,在一些實(shí)現(xiàn)中,隔行掃描P半幀參考一個(gè)或兩個(gè)先前解碼的半幀,然而隔行掃描B半幀參考至多兩個(gè)先前和兩個(gè)將來(lái)的參考半幀(即,最多總共四個(gè)參考半幀)。(隔行掃描P半幀的編碼和解碼技術(shù)在下面詳細(xì)描述。)或者,按照一些實(shí)施例,尤其對(duì)于有關(guān)隔行掃描P半幀和2參考隔行掃描P半幀的更多信息,見(jiàn)2004年5月27日提交的美國(guó)專(zhuān)利申請(qǐng)第10/857,473號(hào),其標(biāo)題為“PredictingMotionVectorsforFieldsofForward-predictedInterlacedVideoFrames(為前向預(yù)測(cè)的隔行掃描視頻幀的半幀預(yù)測(cè)運(yùn)動(dòng)矢量)”。IV.隔行掃描P半幀中的參考半幀的數(shù)量在一些實(shí)施例中,當(dāng)執(zhí)行單個(gè)當(dāng)前隔行掃描P半幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)時(shí),兩個(gè)先前編碼/解碼的半幀可以用作參考半幀。通常,使用兩個(gè)參考半幀的能力產(chǎn)生比當(dāng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)限于一個(gè)參考半幀時(shí)更好的壓縮效率。然而,當(dāng)兩個(gè)參考半幀可用時(shí),信號(hào)表示開(kāi)銷(xiāo)較高,因?yàn)榘l(fā)送額外的信息以指示兩個(gè)半幀中的哪一個(gè)為具有運(yùn)動(dòng)矢量的每個(gè)宏塊或塊提供參考。在某些情況下,每運(yùn)動(dòng)矢量具有更多可能的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)值(兩個(gè)參考半幀與一個(gè)參考半幀相比)的好處不會(huì)超出用信號(hào)表示參考半幀選擇所需要的開(kāi)銷(xiāo)。例如,當(dāng)最佳的參考全部來(lái)自兩個(gè)可能的參考半幀之一時(shí),選擇使用單個(gè)參考半幀代替兩個(gè)可以是有利的。這通常是由于只引起兩個(gè)參考半幀之一來(lái)自與當(dāng)前半幀相同的場(chǎng)景的場(chǎng)景變化。或者,只有一個(gè)參考半幀可用,諸如在序列的開(kāi)始處。在這些情況下,在當(dāng)前P半幀的半幀級(jí)上用信號(hào)表示只使用一個(gè)參考半幀并且這一個(gè)參考半幀是什么,以及讓這個(gè)決定應(yīng)用于當(dāng)前P半幀內(nèi)的宏塊和塊是更有效的。參考半幀選擇信息隨后不再需要與每個(gè)具有運(yùn)動(dòng)矢量的宏塊或塊一起發(fā)送。A.在不同方案中參考半幀的數(shù)量一種方案允許兩個(gè)先前編碼/解碼的半幀用作當(dāng)前P半幀的參考半幀。對(duì)運(yùn)動(dòng)矢量用信號(hào)表示該運(yùn)動(dòng)矢量(用于宏塊或塊)使用的參考半幀,如同該運(yùn)動(dòng)矢量的其它信息一樣。例如,對(duì)于運(yùn)動(dòng)矢量,用信號(hào)表示的信息指示(1)參考半幀;以及(2)在與該運(yùn)動(dòng)矢量相關(guān)聯(lián)的當(dāng)前塊或宏塊的塊或宏塊預(yù)測(cè)值的參考半幀中位置。或者,參考半幀信息和運(yùn)動(dòng)矢量信息如在章節(jié)XII的組合實(shí)現(xiàn)之一中描述的那樣用信號(hào)表示。在另一個(gè)方案中,只有一個(gè)先前編碼/解碼的半幀用作當(dāng)前P半幀的參考半幀。對(duì)于運(yùn)動(dòng)矢量,不需要指示該運(yùn)動(dòng)矢量參考的參考半幀。例如,對(duì)于運(yùn)動(dòng)矢量,用信號(hào)表示的信息只指示在與該運(yùn)動(dòng)矢量相關(guān)聯(lián)的當(dāng)前塊或宏塊的預(yù)測(cè)值的參考半幀中的位置?;蛘撸\(yùn)動(dòng)矢量信息如在章節(jié)XII的組合實(shí)現(xiàn)之一中描述的那樣用信號(hào)表示。在一個(gè)參考半幀方案中的運(yùn)動(dòng)矢量一般用比在兩個(gè)參考半幀方案中相同的運(yùn)動(dòng)矢量較少的比特來(lái)編碼。對(duì)于任一方案,用于后續(xù)運(yùn)動(dòng)補(bǔ)償?shù)膮⒖及霂木彌_器和圖像存儲(chǔ)器的更新是簡(jiǎn)單的。當(dāng)前P半幀的一個(gè)或多個(gè)參考半幀是在當(dāng)前P半幀之前的最近和第二最近的I或P半幀之一或兩者。由于候選參考半幀的位置是已知的,編碼器和解碼器可自動(dòng)并且在不緩沖管理信號(hào)的情況下更新下一個(gè)P半幀的運(yùn)動(dòng)補(bǔ)償?shù)膮⒖紙D像緩沖器??晒┨鎿Q地,編碼器和解碼器使用用于隔行掃描P-半幀的多個(gè)參考半幀的一個(gè)或多個(gè)其它方案。B.信號(hào)表示示例在本章節(jié)和在章節(jié)XII的組合實(shí)現(xiàn)中描述的信號(hào)表示的特定示例用信號(hào)表示多少參考半幀用于當(dāng)前P半幀,以及當(dāng)使用一個(gè)參考半幀時(shí),使用哪個(gè)候選參考半幀。例如,在P半幀頭部中的1比特字段(稱(chēng)為NUMREF)指示P半幀使用一個(gè)還是兩個(gè)先前的半幀作為參考。如果NUMREF=0,則只使用一個(gè)參考半幀。如果NUMREF=1,則使用兩個(gè)參考半幀。如果NUMREF=0,則另一個(gè)1比特字段(稱(chēng)為REFFIELD)存在,并且指示使用兩個(gè)半幀中的哪一個(gè)作為參考。如果REFFIELD=0,則使用在時(shí)間上更接近的半幀作為參考半幀。如果REFFIELD=1,則使用兩個(gè)候選參考半幀中在時(shí)間上更遠(yuǎn)的那一個(gè)作為當(dāng)前P半幀的參考半幀??晒┨鎿Q地,編碼器和解碼器使用其它和/或附加信號(hào)用于參考半幀選擇。C.參考半幀的位置圖24A-24F示出可用于在隔行掃描P半幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用的參考半幀的位置。P半幀可以使用一個(gè)或兩個(gè)先前編碼/解碼的半幀作為參考。具體地,圖24A-24F示出NUMREF=0和NUMREF=1的參考半幀的示例。圖24A和24B示出其中對(duì)當(dāng)前P半幀使用兩個(gè)參考半幀的示例。(NUMREF=1。)在圖24A中,當(dāng)前半幀參考在時(shí)間上先前的的上半幀和下半幀。中間的隔行掃描B半幀不用作參考半幀。在圖24B中,當(dāng)前半幀參考隔行掃描視頻幀中的上半幀與下半幀,該隔行掃描視頻幀就在包含當(dāng)前半幀的隔行掃描視頻幀之前。圖24C和24D示出示例,其中對(duì)當(dāng)前P半幀使用一個(gè)參考半幀(NUMREF=0),并且這個(gè)參考半幀是時(shí)間上最近的參考半幀(REFFIELD=0)。參考半幀的極性與當(dāng)前P半幀的極性相反,這意味著,例如,如果當(dāng)前P半幀來(lái)自偶數(shù)行,則參考半幀來(lái)自奇數(shù)行。在圖24C中,當(dāng)前半幀參考時(shí)間上先前的隔行掃描視頻幀中的下半幀,并且不參考在該隔行掃描視頻幀中的不太近的上半幀。再一次,中間的隔行掃描B半幀不允許作為參考半幀。在圖2D中,當(dāng)前半幀參考隔行掃描視頻幀中的下半幀,它就在包含當(dāng)前半幀的隔行掃描視頻幀之前,而不是不太近的上半幀。圖24E和24F示出示例,其中對(duì)當(dāng)前P半幀使用一個(gè)參考半幀(NUMREF=0),并且該一個(gè)參考半幀是時(shí)間上第二最近的參考半幀(REFFIELD=1)。參考半幀的極性與當(dāng)前半幀的極性相同,意味著,例如,如果當(dāng)前半幀來(lái)自偶數(shù)行,則參考半幀也來(lái)自偶數(shù)行。在圖24E中,當(dāng)前半幀參考一個(gè)時(shí)間上先前的隔行掃描視頻幀中的上半幀,但不參考更近的下半幀。再一次,中間的隔行掃描B半幀不允許作為參考半幀。在圖24F中,當(dāng)前半幀參考上半幀而不是更近的下半幀。可供替換地,編碼器和解碼器使用在其它和/或附加位置或定時(shí)的參考半幀,用于隔行掃描P半幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)。例如,允許同一幀內(nèi)的參考半幀作為當(dāng)前P-半幀?;蛘撸瑤纳习霂蛳掳霂梢允紫缺痪幋a/解碼。D.編碼技術(shù)諸如圖20的編碼器(2000)等編碼器用信號(hào)表示多個(gè)參考半幀方案中的哪一個(gè)用于編碼隔行掃描P半幀。例如,編碼器執(zhí)行圖25A中所示的技術(shù)(2500)。對(duì)于給定的隔行掃描P半幀,編碼器用信號(hào)表示(2510)在隔行掃描P半幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用的參考半幀的數(shù)量。例如,編碼器使用單個(gè)比特來(lái)指示使用一個(gè)還是兩個(gè)參考半幀??晒┨鎿Q地,編碼器使用用于參考半幀的數(shù)量的另一信號(hào)表示/編碼機(jī)制。編碼器確定(2520)使用一個(gè)還是兩個(gè)參考半幀。如果使用一個(gè)參考半幀,則編碼器用信號(hào)表示(2530)隔行掃描P半幀的參考半幀選擇。例如,編碼器使用單個(gè)比特來(lái)指示使用時(shí)間上最近還是時(shí)間上第二最近的參考半幀(先前的I或P半幀)。可供替換地,編碼器使用用于P半幀的參考半幀選擇的另一信號(hào)表示/編碼機(jī)制。如果使用兩個(gè)參考半幀,則編碼器用信號(hào)表示(2540)隔行掃描P半幀的塊、宏塊或其它部分的運(yùn)動(dòng)矢量的參考半幀。例如,編碼器對(duì)運(yùn)動(dòng)矢量的參考半幀選擇與差分運(yùn)動(dòng)矢量信息一起進(jìn)行聯(lián)合編碼??晒┨鎿Q地,編碼器使用用于運(yùn)動(dòng)矢量的參考半幀選擇的另一信號(hào)表示/編碼機(jī)制。編碼器重復(fù)(2545,2540)下一運(yùn)動(dòng)矢量的信號(hào)表示,直到P半幀沒(méi)有更多的運(yùn)動(dòng)矢量要用信號(hào)表示。(為了簡(jiǎn)單起見(jiàn),圖25A沒(méi)有示出宏塊與塊編碼和相應(yīng)的信號(hào)表示(2540)的各級(jí),它們可在參考半幀選擇的信號(hào)表示(2540)之后或左右發(fā)生。相反,圖25A集中在P半幀中多個(gè)運(yùn)動(dòng)矢量的參考半幀選擇的重復(fù)信號(hào)表示。)可供替換地,編碼器執(zhí)行另一技術(shù)來(lái)指示使用多個(gè)參考半幀方案中的哪一個(gè)來(lái)編碼隔行掃描P半幀。例如,編碼器具有用于參考半幀的數(shù)量的更多和/或不同選項(xiàng)。為了簡(jiǎn)單起見(jiàn),圖25A沒(méi)有示出可將該技術(shù)(2500)編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述了各種組合實(shí)現(xiàn)。E.解碼技術(shù)諸如圖21的解碼器(2100)等解碼器接收和解碼指示要使用多個(gè)方案中的哪一個(gè)來(lái)解碼隔行掃描P半幀的信號(hào)。例如,解碼器執(zhí)行圖25B中所示的技術(shù)(2550)。對(duì)于給定的隔行掃描P半幀,解碼器接收和解碼(2560)關(guān)于在隔行掃描P半幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用的參考半幀的數(shù)量的信號(hào)。例如,解碼器接收和解碼單個(gè)比特以指示使用一個(gè)還是兩個(gè)參考半幀??晒┨鎿Q地,解碼器使用用于參考半幀的數(shù)量的另一解碼機(jī)制。解碼器確定(2570)使用一個(gè)還是兩個(gè)參考半幀。如果使用一個(gè)參考半幀,則解碼器接收和解碼(2580)關(guān)于隔行掃描P半幀的參考半幀選擇的信號(hào)。例如,解碼器接收和解碼單個(gè)比特以指示使用時(shí)間最近還是時(shí)間上第二最近的參考半幀(先前的I或P半幀)。可供替換地,解碼器使用用于P半幀的參考半幀選擇的另一解碼機(jī)制。如果使用兩個(gè)參考半幀,則解碼器接收和解碼(2590)關(guān)于隔行掃描P半幀的塊、宏塊或其它部分的運(yùn)動(dòng)矢量的參考半幀選擇的信號(hào)。例如,解碼器解碼與運(yùn)動(dòng)矢量的差分運(yùn)動(dòng)矢量信息一起聯(lián)合編碼的參考半幀選擇??晒┨鎿Q地,解碼器使用用于運(yùn)動(dòng)矢量的參考半幀選擇的另一解碼機(jī)制。解碼器重復(fù)(2595,2590)下一運(yùn)動(dòng)矢量的接收與解碼,直到?jīng)]有更多的為P半幀用信號(hào)表示的運(yùn)動(dòng)矢量。(為了簡(jiǎn)單起見(jiàn),圖25B沒(méi)有示出可以在參考半幀選擇的接收與解碼(2590)之后或左右發(fā)生的宏塊和塊解碼的各級(jí)。相反,圖25B集中在P半幀中的多個(gè)運(yùn)動(dòng)矢量的參考半幀選擇的重復(fù)接收/解碼。)可供替換地,解碼器執(zhí)行另一技術(shù)來(lái)確定使用多個(gè)參考半幀方案中的哪一個(gè)來(lái)解碼隔行掃描P半幀。例如,解碼器具有用于參考半幀的數(shù)量的更多和/或不同選項(xiàng)。為了簡(jiǎn)單起見(jiàn),圖25B沒(méi)有示出可將技術(shù)(2550)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述了各種組合實(shí)現(xiàn)。V.用信號(hào)表示隔行掃描P半幀的宏塊模式信息在一些實(shí)施例中,對(duì)隔行掃描P半幀的宏塊的各種宏塊模式信息進(jìn)行聯(lián)合分組以用于信號(hào)表示。隔行掃描P半幀的宏塊可以用許多不同模式通過(guò)若干存在或不存在的不同句法元素中的任何元素來(lái)編碼。具體地,對(duì)運(yùn)動(dòng)補(bǔ)償?shù)念?lèi)型(例如1MV、4MV或幀內(nèi)編碼)、在宏塊的比特流中是否存在已編碼塊模式、以及(對(duì)于IMV情況)宏塊的比特流中是否存在運(yùn)動(dòng)矢量數(shù)據(jù)進(jìn)行聯(lián)合編碼。可使用不同的代碼表用于宏塊模式信息的不同情況,這產(chǎn)生信息的更有效的整體壓縮。在本章節(jié)和在章節(jié)XII的組合實(shí)現(xiàn)中描述的信號(hào)表示的特定示例用可變長(zhǎng)度編碼的MBMODE句法元素來(lái)用信號(hào)表示宏塊模式信息。MBMODE的表選擇是通過(guò)定長(zhǎng)編碼的半幀級(jí)元素MBM0DETAB來(lái)用信號(hào)表示的??晒┨鎿Q地,編碼器和解碼器使用其它和/或附加信號(hào)來(lái)用信號(hào)表示宏塊模式信息。A.不同類(lèi)型的隔行掃描P半幀的宏塊模式通常,宏塊模式指示宏塊類(lèi)型(1MV,4MV或幀內(nèi)編碼)、宏塊的已編碼塊模式的存在/不存在、以及宏塊的運(yùn)動(dòng)矢量數(shù)據(jù)的存在/不存在。由宏塊模式句法元素指示的信息取決于隔行掃描P半幀是被編碼為IMV半幀(具有幀內(nèi)編碼和/或IMV宏塊)還是混合MV半幀(具有幀內(nèi)編碼、IMV和/或4MV宏塊)。在IMV隔行掃描P半幀中,宏塊的宏塊模式元素聯(lián)合地表示宏塊類(lèi)型(幀內(nèi)或1MV)、宏塊的已編碼塊模式元素的存在/不存在以及運(yùn)動(dòng)矢量數(shù)據(jù)的存在/不存在(當(dāng)宏塊類(lèi)型是IMV時(shí),但不是當(dāng)它是幀內(nèi)編碼時(shí))。圖26中的表示出由IMV隔行掃描P半幀中的MBMODE用信號(hào)表示的宏塊信息的完整事件空間。在混合MV隔行掃描P半幀中,宏塊的宏塊模式元素聯(lián)合地表示宏塊類(lèi)型(幀內(nèi)編碼或IMV或4MV)、宏塊的已編碼塊模式的存在/不存在、以及運(yùn)動(dòng)矢量數(shù)據(jù)的存在/不存在(當(dāng)宏塊類(lèi)型是IMV時(shí),但不是當(dāng)它是幀內(nèi)編碼或4MV時(shí))。圖27中的表示出由混合MV隔行掃描P半幀的MBMODE用信號(hào)表示的宏塊信息的完整事件空間。如果宏塊模式指示運(yùn)動(dòng)矢量數(shù)據(jù)存在,則運(yùn)動(dòng)矢量數(shù)據(jù)存在于宏塊層中并且用信號(hào)表示運(yùn)動(dòng)矢量差分,它與運(yùn)動(dòng)矢量預(yù)測(cè)值組合以重構(gòu)運(yùn)動(dòng)矢量。如果宏塊模式元素指示運(yùn)動(dòng)矢量數(shù)據(jù)不存在,則運(yùn)動(dòng)矢量差分假定為零,并且因此運(yùn)動(dòng)矢量等于運(yùn)動(dòng)矢量預(yù)測(cè)值。宏塊模式元素因而有效地用信號(hào)表示何時(shí)要使用只帶有一個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值(未被任何運(yùn)動(dòng)矢量差分修改)的運(yùn)動(dòng)補(bǔ)償。使用多個(gè)不同VLC表之一來(lái)用信號(hào)表示隔行掃描P半幀的宏塊模式元素。例如,在圖47H中示出混合MV隔行掃描P半幀的宏塊的MBMODE的八個(gè)代碼表,并且在圖471中示出IMV隔行掃描P半幀的MBMODE的八個(gè)不同代碼表。表選擇是由在半幀層用信號(hào)表示的MBM0DETAB指示的。可供替換地,編碼器和解碼器使用其它和/或附加代碼來(lái)用信號(hào)表示宏塊模式信息和表選擇。B.編碼技術(shù)諸如圖20的編碼器(2000)等編碼器編碼隔行掃描P半幀的宏塊模式信息。例如,編碼器執(zhí)行圖28A中所示的技術(shù)(2800)。對(duì)于給定的隔行掃描P半幀,編碼器選擇(2810)用于編碼隔行掃描P半幀的宏塊的宏塊模式信息的代碼表。例如,編碼器選擇圖47H或471中所示的VLC表之一。可供替換地,編碼器從其它和/或附加表中選擇。編碼器在比特流中用信號(hào)表示(2820)所選擇的代碼表。例如,編碼器在給定隔行掃描P半幀的類(lèi)型時(shí),用信號(hào)表示指示所選擇的代碼表的FLC??晒┨鎿Q地,編碼器使用用于代碼表選擇的不同信號(hào)表示機(jī)制,例如,使用VLC用于代碼表選擇。編碼器從多個(gè)可用的宏塊模式選擇(2830)宏塊的宏塊模式。例如,編碼器選擇指示宏塊類(lèi)型、已編碼塊模式是否存在、以及(如果可應(yīng)用于宏塊類(lèi)型)運(yùn)動(dòng)矢量數(shù)據(jù)是否存在的宏塊模式。MBMODE的各種選項(xiàng)組合在圖26與27中列出??晒┨鎿Q地,編碼器從其它和/或附加宏塊組合選項(xiàng)的其它和/或附加宏塊模式中選擇。編碼器使用所選擇的代碼表用信號(hào)表示(2840)所選擇的宏塊模式。一般地,編碼器使用選擇的VLC表將宏塊模式用信號(hào)表示為VLC。編碼器重復(fù)(2845,2830,2840)宏塊模式的選擇和信號(hào)表示,直到P半幀沒(méi)有更多的宏塊模式要用信號(hào)表示。(為了簡(jiǎn)單起見(jiàn),圖28A沒(méi)有示出可以在選擇的宏塊模式的信號(hào)表示(2840)之后或左右發(fā)生的宏塊和塊編碼與相應(yīng)信號(hào)表示的各級(jí)。相反,圖28A集中在使用為P半幀選擇的代碼表來(lái)重復(fù)用信號(hào)表示宏塊的宏塊模式。)可供替換地,編碼器執(zhí)行另一技術(shù)來(lái)編碼隔行掃描P半幀的宏塊的宏塊模式信息。例如,盡管圖28A在模式選擇之前示出代碼表選擇,但在許多常見(jiàn)的編碼情況下,編碼器首先為宏塊選擇宏塊模式,然后選擇用于有效地用信號(hào)表示那些選擇的宏塊模式的代碼表,然后用信號(hào)表示代碼表選擇和這些模式。而且,盡管圖28A示出每隔行掃描P半幀發(fā)生的代碼表選擇,但可供替換地,在更頻繁、更不頻繁或者非周期基礎(chǔ)上選擇代碼表,或者編碼器完全跳過(guò)代碼表選擇(總是使用同一代碼表)?;蛘?,編碼器可從上下文信息選擇代碼表(使用信號(hào)表示代碼表選擇沒(méi)有必要)。為了簡(jiǎn)單起見(jiàn),圖28A沒(méi)有示出可將技術(shù)(2800)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述了各種組合實(shí)現(xiàn)。C.解碼技術(shù)諸如圖21的解碼器(2100)等解碼器接收和解碼隔行掃描P半幀的宏塊的宏塊模式信息。例如,解碼器執(zhí)行圖28B所示的技術(shù)(2850)。對(duì)于給定的隔行掃描P半幀,解碼器接收和解碼(2860)對(duì)要用于解碼隔行掃描P半幀的宏塊的宏塊模式信息的代碼表的代碼表選擇。例如,解碼器在給定隔行掃描P半幀的類(lèi)型時(shí),接收和解碼指示選擇的代碼表的FLC??晒┨鎿Q地,解碼器與用于代碼表選擇的不同信號(hào)表示機(jī)制一起工作,例如,為代碼表選擇使用VLC的信號(hào)表示機(jī)制。解碼器基于解碼的代碼表選擇(以及可能的其它信息)來(lái)選擇(2870)代碼表。例如,解碼器選擇圖47H或471中所示的MBMODE的VLC表之一??晒┨鎿Q地,解碼器從其它和或附加表中選擇。解碼器接收和解碼(2880)宏塊的宏塊模式選擇。例如,宏塊模式選擇指示宏塊類(lèi)型、已編碼塊模式是否存在、以及(如果可應(yīng)用于宏塊類(lèi)型)運(yùn)動(dòng)矢量數(shù)據(jù)是否存在。MBMODE的這些選項(xiàng)的各種組合在圖26與27中列出。可供替換地,宏塊模式是其它和/或附加宏塊組合選項(xiàng)的其它和/或附加宏塊模式之一。解碼器重復(fù)(2885,2880)下一宏塊的32宏塊模式的接收與解碼,直到P半幀沒(méi)有更多要接收與解碼的宏塊模式。(為了簡(jiǎn)單起見(jiàn),圖28B沒(méi)有示出可以在宏塊模式選擇的接收與解碼(2880)之后或左右發(fā)生的宏塊與塊解碼的各級(jí)。相反,圖28B集中在使用為P半幀選擇的代碼表來(lái)重復(fù)接收/解碼P半幀中宏塊的宏塊模式選擇。)可供替換地,解碼器執(zhí)行另一技術(shù)來(lái)解碼隔行掃描P半幀的宏塊的宏塊模式信息。例如,盡管圖28B示出每隔行掃描P半幀代碼表選擇發(fā)生,但可供替換地,在更頻繁、更不頻繁或非周期基礎(chǔ)上選擇代碼表,或者解碼器完全跳過(guò)代碼表選擇(總是使用同一代碼表)?;蛘?,解碼器可從上下文信息選擇代碼表(使代碼表選擇的接收與解碼沒(méi)有必要)。為了簡(jiǎn)單起見(jiàn),圖28B沒(méi)有示出可將技術(shù)(2850)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述了各種組合實(shí)現(xiàn)。VI.在兩個(gè)參考半巾郞g行掃描P半巾商中的參考半巾商詵擇在一些實(shí)施例中,當(dāng)為單個(gè)當(dāng)前隔行掃描P半幀執(zhí)行運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)時(shí),使用兩個(gè)先前編碼/解碼的半幀作為參考半幀。(例如,見(jiàn)章節(jié)IV。)用信號(hào)表示的信息指示兩個(gè)半幀中的哪一個(gè)為具有運(yùn)動(dòng)矢量的每個(gè)宏塊(或塊)提供參考。在本節(jié)中,描述了各種技術(shù)與工具,它們用于有效地用信號(hào)表示在編碼或解碼當(dāng)前宏塊或塊時(shí)多個(gè)先前編碼/解碼的參考半幀中的哪一些用于提供運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)信息。例如,編碼器和解碼器隱含地基于隔行掃描P半幀中的先前編碼的運(yùn)動(dòng)矢量來(lái)導(dǎo)出當(dāng)前宏塊或塊的主和非主參考半幀。(或者,相應(yīng)地,編碼器和解碼器導(dǎo)出主和非主運(yùn)動(dòng)矢量預(yù)測(cè)值極性。)用信號(hào)表示的信息隨后指示對(duì)當(dāng)前宏塊或塊的運(yùn)動(dòng)補(bǔ)償使用主或非主參考半幀。A.主和非主參考半幀和預(yù)測(cè)值隔行掃描半幀可以不使用運(yùn)動(dòng)補(bǔ)償(I半幀)、前向運(yùn)動(dòng)補(bǔ)償(P半幀)、或者前向與后向運(yùn)動(dòng)補(bǔ)償(B半幀)來(lái)編碼。隔行掃描P半幀可參考兩個(gè)參考半幀,它們是先前編碼/解碼的I或P半幀。圖24A和24B示出示例,其中對(duì)當(dāng)前P半幀使用兩個(gè)參考半幀。這兩個(gè)參考半幀是相反極性的。一個(gè)參考半幀表示視頻幀的奇數(shù)行,而另一個(gè)參考半幀表示視頻幀(沒(méi)必要是包括奇數(shù)行參考半幀的同一幀)的偶數(shù)行。當(dāng)前正在編碼或解碼的P半幀可以在運(yùn)動(dòng)補(bǔ)償中使用兩個(gè)先前編碼/解碼的半幀之一或兩者作為參考。因而,P半幀的宏塊或塊的運(yùn)動(dòng)矢量數(shù)據(jù)以某種方式指示(1)在運(yùn)動(dòng)補(bǔ)償中要使用哪一個(gè)半幀作為參考半幀;以及(2)在運(yùn)動(dòng)補(bǔ)償中要使用的樣本值的參考半幀所在的位移/位置。用信號(hào)表示參考半幀選擇信息會(huì)消耗低效率的比特?cái)?shù)。然而對(duì)于給定的運(yùn)動(dòng)矢量,通過(guò)預(yù)測(cè)將使用哪一個(gè)參考半幀用于運(yùn)動(dòng)矢量并且隨后用信號(hào)表示實(shí)際上是否使用預(yù)測(cè)參考半幀作為運(yùn)動(dòng)矢量的參考半幀,可減少比特?cái)?shù)。例如,對(duì)于在隔行掃描P-半幀中使用運(yùn)動(dòng)補(bǔ)償?shù)拿總€(gè)宏塊或塊,編碼器或解碼器分析最多三個(gè)來(lái)自相鄰宏塊或塊的先前編碼/解碼的運(yùn)動(dòng)矢量。從它們中,編碼器或解碼器導(dǎo)出主和非主參考半幀。實(shí)際上,編碼器或解碼器確定兩個(gè)可能的參考半幀中的哪一個(gè)是由相鄰宏塊或塊的運(yùn)動(dòng)矢量的大多數(shù)使用的。由相鄰宏塊或塊中較多的運(yùn)動(dòng)矢量參考的半幀是主參考半幀,并且另一個(gè)參考半幀是非主參考半幀。同樣,主參考半幀的極性是主運(yùn)動(dòng)矢量預(yù)測(cè)值極性,而非主參考半幀的極性是非主運(yùn)動(dòng)矢量預(yù)測(cè)值極性。圖29中的偽代碼示出編碼器或解碼器確定主和非主參考半幀的一種技術(shù)。在該偽代碼中,術(shù)語(yǔ)“相同半幀”和“相反半幀”相對(duì)于當(dāng)前隔行掃描P半幀。例如,如果當(dāng)前P半幀是偶數(shù)半幀,則“相同半幀”是偶數(shù)行參考半幀,并且“相反半幀”是奇數(shù)行參考半幀。圖5A至10示出從其中取得預(yù)測(cè)值A(chǔ)、B和C的相鄰宏塊和塊的位置。在圖29的偽代碼中,主半幀是由候選運(yùn)動(dòng)矢量預(yù)測(cè)值中的大多數(shù)參考的半幀。在平分的情況下,從相反半幀導(dǎo)出的運(yùn)動(dòng)矢量視為主運(yùn)動(dòng)矢量預(yù)測(cè)值。幀內(nèi)編碼的宏塊在主/非主預(yù)測(cè)值的計(jì)算中不考慮。如果所有候選預(yù)測(cè)值宏塊是幀內(nèi)編碼的,則主和非主運(yùn)動(dòng)矢量預(yù)測(cè)值設(shè)置為零,并且主預(yù)測(cè)值取自相反半幀??晒┨鎿Q地,編碼器和解碼器分析來(lái)自相鄰宏塊或塊的其它和/或附加運(yùn)動(dòng)矢量,和/或應(yīng)用不同的決策邏輯以確定主和非主參考半幀?;蛘?,編碼器和解碼器使用不同的機(jī)制來(lái)預(yù)測(cè)將為隔行掃描P半幀中的給定運(yùn)動(dòng)矢量選擇哪一個(gè)參考半幀。在某些情況下,指示使用主還是非主半幀的1比特信息與差分運(yùn)動(dòng)矢量信息一起進(jìn)行聯(lián)合編碼。因此,用于該1比特信息的比特/碼元可以更準(zhǔn)確地匹配真正的碼元熵。例如,用信號(hào)表示主/非主選擇器,作為圖30的偽代碼中所示的運(yùn)動(dòng)矢量差分的垂直分量的一部分。其中,MVY是運(yùn)動(dòng)矢量的垂直分量,PMVY是運(yùn)動(dòng)矢量預(yù)測(cè)值的垂直分量。實(shí)際上,垂直運(yùn)動(dòng)矢量差分對(duì)參考半幀選擇器和垂直偏移差分進(jìn)行聯(lián)合編碼,如下DMVY=(MVY-PMVY)*2+p,其中,如果使用主參考半幀則ρ=0,而如果使用非主參考半幀則ρ=1。作為一個(gè)數(shù)字示例假定當(dāng)前塊是偶極性,則運(yùn)動(dòng)矢量的實(shí)際參考半幀是偶極性,并且主預(yù)測(cè)值是相反半幀(換言之,主參考半幀是奇極性參考半幀)。還假定運(yùn)動(dòng)矢量的垂直位移是7單位(MVY=7)并且運(yùn)動(dòng)矢量預(yù)測(cè)值的垂直分量是4單位(PMVY=4)。由于當(dāng)前參考半幀和主預(yù)測(cè)值是相反極性的,DMVY=(7-4)*2+1=7??晒┨鎿Q地,主/非主選擇器以某種其它方式與運(yùn)動(dòng)矢量差分信息一起聯(lián)合編碼?;蛘撸昧硪粰C(jī)制用信號(hào)表示主/非主選擇器。B.編碼技術(shù)諸如圖20的編碼器(2000)等編碼器在兩個(gè)參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量的編碼期間,確定候選運(yùn)動(dòng)矢量預(yù)測(cè)值的主和非主參考半幀。例如,編碼器對(duì)當(dāng)前宏塊或塊的運(yùn)動(dòng)矢量執(zhí)行圖31A所示的技術(shù)(3100)。一般地,編碼器在兩個(gè)參考半幀中執(zhí)行某種形式的運(yùn)動(dòng)估計(jì)以獲得運(yùn)動(dòng)矢量和參考半幀。運(yùn)動(dòng)矢量隨后按照技術(shù)(3100)編碼。編碼器確定(3110)與運(yùn)動(dòng)矢量相同參考半幀極性的運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,編碼器確定在章節(jié)VII中描述運(yùn)動(dòng)矢量預(yù)測(cè)值用于與運(yùn)動(dòng)矢量相關(guān)聯(lián)的參考半幀??晒┨鎿Q地,編碼器用另一種機(jī)制來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值。編碼器確定(3120)運(yùn)動(dòng)矢量的主和非主參考半幀極性。例如,編碼器遵循圖29所示的偽代碼??晒┨鎿Q地,編碼器使用另一種技術(shù)來(lái)確定主和非主極性。編碼器用信號(hào)表示(3125)比特流中的主/非主極性選擇器,它指示應(yīng)該對(duì)與運(yùn)動(dòng)矢量相關(guān)聯(lián)的運(yùn)動(dòng)矢量預(yù)測(cè)值和參考半幀使用主還是非主極性。例如,編碼器使用聯(lián)合VLC對(duì)主/非主極性選擇器與其它信息一起進(jìn)行聯(lián)合編碼。可供替換地,編碼器使用另一種機(jī)制來(lái)用信號(hào)表示選擇器,例如,指示選擇器的一個(gè)比特的算術(shù)編碼。運(yùn)動(dòng)矢量預(yù)測(cè)值的參考半幀極性的預(yù)測(cè)降低了選擇器信息的熵,這允許更有效地編碼選擇器信息。編碼器根據(jù)運(yùn)動(dòng)矢量預(yù)測(cè)值和運(yùn)動(dòng)矢量計(jì)算(3130)運(yùn)動(dòng)矢量差分,并且用信號(hào)表示(3140)運(yùn)動(dòng)矢量差分信息的信息。可供替換地,編碼器執(zhí)行另一種機(jī)制在兩個(gè)參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量的編碼期間確定運(yùn)動(dòng)矢量預(yù)測(cè)的主和非主極性。而且,盡管圖31A示出主和非主選擇器和運(yùn)動(dòng)矢量差分信息的單獨(dú)信號(hào)表示,但在各種實(shí)施例中,這個(gè)精確的信息是聯(lián)合地用信號(hào)表示的。各種其它重新排序是可能的,包括在確定主/非主極性之后確定運(yùn)動(dòng)矢量(以便在運(yùn)動(dòng)矢量選擇過(guò)程中將選擇器信號(hào)表示的開(kāi)銷(xiāo)成本考慮進(jìn)去)。為了簡(jiǎn)單起見(jiàn),圖31A沒(méi)有示出可將技術(shù)(3100)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述了各種組合實(shí)現(xiàn)。C.解碼技術(shù)諸如圖21的解碼器(2100)等解碼器在兩個(gè)參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量的解碼期間確定運(yùn)動(dòng)矢量預(yù)測(cè)值候選的主和非主參考半幀極性。例如,解碼器執(zhí)行圖3B所示的技術(shù)(3150)。解碼器確定(3160)當(dāng)前宏塊或塊的運(yùn)動(dòng)矢量的主和非主參考半幀極性。例如,解碼器遵循圖29所示的偽代碼。可供替換地,解碼器使用另一種技術(shù)來(lái)確定主和非主極性。解碼器接收和解碼(3165)比特流中的主/非主極性選擇器,它指示應(yīng)該對(duì)與運(yùn)動(dòng)矢量相關(guān)聯(lián)的運(yùn)動(dòng)矢量預(yù)測(cè)值和參考半幀使用主還是非主極性。例如,解碼器接收和解碼已經(jīng)使用聯(lián)合VLC與其它信息一起聯(lián)合編碼的主/非主極性選擇器。可供替換地,解碼器接收和解碼使用另一種機(jī)制用信號(hào)表示的選擇器,例如,指示選擇器的一個(gè)比特的算術(shù)解碼。解碼器確定(3170)要與運(yùn)動(dòng)矢量一起使用的參考半幀的運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,解碼器確定在章節(jié)VII中描述的運(yùn)動(dòng)矢量預(yù)測(cè)值用于用信號(hào)表示的極性??晒┨鎿Q地,解碼器用另一種機(jī)制來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值。解碼器接收和解碼(3180)運(yùn)動(dòng)矢量差分的信息,并且從運(yùn)動(dòng)矢量差分和運(yùn)動(dòng)矢量預(yù)測(cè)值中重構(gòu)(3190)運(yùn)動(dòng)矢量??晒┨鎿Q地,解碼器執(zhí)行另一種技術(shù)在兩個(gè)參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量的解碼期間確定運(yùn)動(dòng)矢量預(yù)測(cè)值的主和非主極性。例如,盡管圖31B示出主/非主選擇器和運(yùn)動(dòng)矢量差分信息的單獨(dú)信號(hào)表示,但可供替換地,該信息是聯(lián)合地用信號(hào)表示的。各種其它重新排序也是可能的。為了簡(jiǎn)單起見(jiàn),圖31B沒(méi)有示出可將技術(shù)(3150)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述了各種組合實(shí)現(xiàn)。VII.隔行掃描P半幀的混合運(yùn)動(dòng)矢量預(yù)測(cè)在一些實(shí)施例中,將運(yùn)動(dòng)矢量用信號(hào)表示為相對(duì)于運(yùn)動(dòng)矢量預(yù)測(cè)值的差分,以便減少與用信號(hào)表示運(yùn)動(dòng)矢量相關(guān)聯(lián)的比特率。運(yùn)動(dòng)矢量差分信號(hào)表示的性能部分地取決于運(yùn)動(dòng)矢量預(yù)測(cè)的質(zhì)量,這通常在從當(dāng)前宏塊、塊等周?chē)鷧^(qū)域考慮多個(gè)候選運(yùn)動(dòng)矢量預(yù)測(cè)值時(shí)得到改進(jìn)。然而在有些情況下,多個(gè)候選預(yù)測(cè)值的使用損害了運(yùn)動(dòng)矢量預(yù)測(cè)的質(zhì)量。例如,這是在將運(yùn)動(dòng)矢量預(yù)測(cè)值計(jì)算為一組相異的候選預(yù)測(cè)值的中值時(shí)發(fā)生的(例如,在運(yùn)動(dòng)矢量預(yù)測(cè)值之間具有很大的變化)。因此,在一些實(shí)施例中,編碼器和解碼器對(duì)隔行掃描P半幀的運(yùn)動(dòng)矢量執(zhí)行混合運(yùn)動(dòng)矢量預(yù)測(cè)。當(dāng)構(gòu)成當(dāng)前宏塊或塊的因果相鄰幀的矢量按照某些準(zhǔn)則是相異的時(shí)候,使用混合運(yùn)動(dòng)矢量預(yù)測(cè)模式。在這個(gè)模式中,并非使用候選預(yù)測(cè)值組的中值作為運(yùn)動(dòng)矢量預(yù)測(cè)值,而是由一個(gè)選擇器比特或碼字來(lái)用信號(hào)表示來(lái)自該組的特定運(yùn)動(dòng)矢量(例如,上預(yù)測(cè)值,左預(yù)測(cè)值)。這有助于改進(jìn)在隔行掃描P半幀中運(yùn)動(dòng)不連續(xù)處的運(yùn)動(dòng)矢量預(yù)測(cè)。對(duì)于2參考半幀隔行掃描P半幀,在檢查混合運(yùn)動(dòng)矢量預(yù)測(cè)條件時(shí)也將主極性考慮在內(nèi)。A.隔行掃描P-半幀的運(yùn)動(dòng)矢量預(yù)測(cè)混合運(yùn)動(dòng)矢量預(yù)測(cè)是隔行掃描P半幀的正常運(yùn)動(dòng)矢量預(yù)測(cè)的特殊情況。如前面說(shuō)明的,運(yùn)動(dòng)矢量是通過(guò)將運(yùn)動(dòng)矢量差分(它是在比特流中用信號(hào)表示的)加到運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)重構(gòu)的。預(yù)測(cè)值是從最多三個(gè)相鄰運(yùn)動(dòng)矢量計(jì)算的。圖5A至10示出從其取得運(yùn)動(dòng)矢量預(yù)測(cè)的預(yù)測(cè)值A(chǔ)、B和C的相鄰宏塊和塊的位置。(這些圖示出逐行掃描P半幀的宏塊和塊,但也應(yīng)用于隔行掃描P半幀的宏塊和塊,如在章節(jié)VI中所述。)如果隔行掃描P半幀只參考一個(gè)先前半幀,則為P半幀的每個(gè)運(yùn)動(dòng)矢量計(jì)算單個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,圖51A和51B(或者可供替換地,圖60A和60B)示出如何為1參考半幀隔行掃描P半幀的運(yùn)動(dòng)矢量計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值,如在章節(jié)XH中討論的。如果對(duì)隔行掃描P半幀使用兩個(gè)參考半幀,則兩個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值有可能用于P半幀的每個(gè)運(yùn)動(dòng)矢量??捎?jì)算兩個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值,然后選擇一個(gè),或者可通過(guò)首先確定預(yù)測(cè)值選擇,只計(jì)算一個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,一個(gè)可能的運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)自主參考半幀,而另一個(gè)可能的運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)自非主參考半幀,其中術(shù)語(yǔ)主和非主如在章節(jié)VI中描述的那樣。主和非主參考半幀具有相反極性,因此一個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)自與當(dāng)前P半幀相同極性的參考半幀,而另一個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)自具有相反極性的參考半幀。例如,圖52A至52N中的偽代碼和表示出了為2參考半幀P半幀的運(yùn)動(dòng)矢量計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值的過(guò)程,如在章節(jié)XII中詳細(xì)討論的。變量samefieldpred_x和samefieldpred_y分別表示來(lái)自相同半幀的運(yùn)動(dòng)矢量預(yù)測(cè)值的水平和垂直分量,而變量oppositefieldprecLx和oppositefieldpred_y分別表示來(lái)自相反半幀的運(yùn)動(dòng)矢量預(yù)測(cè)值的水平和垂直分量。變量dominantpredictor指示哪一個(gè)半幀包含主預(yù)測(cè)值。predictor_flag指示使用對(duì)運(yùn)動(dòng)矢量主還是非主預(yù)測(cè)值。可供替換地,使用圖61A至61F中的偽代碼。B.隔行掃描P半幀的混合運(yùn)動(dòng)矢量預(yù)測(cè)對(duì)于運(yùn)動(dòng)矢量的混合運(yùn)動(dòng)矢量預(yù)測(cè),編碼器和解碼器檢查運(yùn)動(dòng)矢量的混合運(yùn)動(dòng)矢量預(yù)測(cè)條件。通常,條件與運(yùn)動(dòng)矢量預(yù)測(cè)值中的變化程度有關(guān)。估計(jì)的預(yù)測(cè)值可以是候選運(yùn)動(dòng)矢量預(yù)測(cè)值和/或使用正常的運(yùn)動(dòng)矢量預(yù)測(cè)計(jì)算的運(yùn)動(dòng)矢量預(yù)測(cè)值。如果滿足條件(例如,變化程度高),則一般使用原始候選運(yùn)動(dòng)矢量預(yù)測(cè)值之一代替正常的運(yùn)動(dòng)矢量預(yù)測(cè)值。編碼器用信號(hào)表示要使用哪一個(gè)混合運(yùn)動(dòng)矢量預(yù)測(cè)值,而解碼器接收和解碼該信號(hào)。當(dāng)預(yù)測(cè)值之間的變化很小時(shí)(這是通常的情況),不使用混合運(yùn)動(dòng)矢量預(yù)測(cè)值。編碼器和解碼器檢查隔行掃描P半幀的每個(gè)運(yùn)動(dòng)矢量的混合運(yùn)動(dòng)矢量條件、運(yùn)動(dòng)矢量是否用于宏塊、塊等。換言之,編碼器和解碼器為每個(gè)運(yùn)動(dòng)矢量確定條件是否被觸發(fā)并且因而預(yù)期一預(yù)測(cè)值選擇信號(hào)??晒┨鎿Q地,編碼器和解碼器只為隔行掃描P半幀的一些運(yùn)動(dòng)矢量檢查混合運(yùn)動(dòng)矢量條件。隔行掃描P半幀的混合運(yùn)動(dòng)矢量預(yù)測(cè)的優(yōu)點(diǎn)是,它使用計(jì)算出的預(yù)測(cè)值和主極性來(lái)選擇良好的運(yùn)動(dòng)矢量預(yù)測(cè)值。大量實(shí)驗(yàn)結(jié)果表明混合運(yùn)動(dòng)矢量如下所述地提供顯著的壓縮/質(zhì)量改進(jìn),這超過(guò)了沒(méi)有它的運(yùn)動(dòng)矢量預(yù)測(cè),并且也超過(guò)了混合運(yùn)動(dòng)矢量預(yù)測(cè)的早期實(shí)現(xiàn)。而且,混合矢量預(yù)測(cè)檢查的附加計(jì)算代價(jià)不是很大。在一些實(shí)施例中,編碼器或解碼器對(duì)照原始候選運(yùn)動(dòng)矢量預(yù)測(cè)值集來(lái)測(cè)試正常的運(yùn)動(dòng)矢量預(yù)測(cè)值(如由在章節(jié)VII.A中描述的技術(shù)所確定的)。正常的運(yùn)動(dòng)矢量預(yù)測(cè)值是預(yù)測(cè)值A(chǔ)、B和/或C的分量級(jí)中值,并且編碼器和解碼器相對(duì)于預(yù)測(cè)值A(chǔ)和預(yù)測(cè)值C來(lái)測(cè)試它。該測(cè)試檢查正常運(yùn)動(dòng)矢量預(yù)測(cè)值與候選之間的差異是否高。如果高,則真正的運(yùn)動(dòng)矢量有可能更接近這些候選預(yù)測(cè)值(A,B或C)之一,而不是更接近從中值運(yùn)算導(dǎo)出的預(yù)測(cè)值。當(dāng)候選預(yù)測(cè)值分開(kāi)很遠(yuǎn)時(shí),它們的分量級(jí)中值不提供良好的預(yù)測(cè),并且發(fā)送一個(gè)指示真正的運(yùn)動(dòng)矢量更接近A還是C的附加信號(hào)更有效。如果預(yù)測(cè)值A(chǔ)是更接近的預(yù)測(cè)值,則使用它作為當(dāng)前運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)值,并且如果預(yù)測(cè)值C是更接近的預(yù)測(cè)值,則使用它作為當(dāng)前運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)值。圖32中的偽代碼示出在解碼期間這樣的混合運(yùn)動(dòng)矢量預(yù)測(cè)。變量prediCtor_pre_x和prediCt0r_pre_y分別是水平和垂直運(yùn)動(dòng)矢量預(yù)測(cè)值,如使用正常的混合運(yùn)動(dòng)矢量預(yù)測(cè)來(lái)計(jì)算的。變量predictor_post_x和predictor_post_y分別是在混合運(yùn)動(dòng)矢量預(yù)測(cè)之后水平和垂直運(yùn)動(dòng)矢量預(yù)測(cè)值。在偽代碼中,相對(duì)于預(yù)測(cè)值A(chǔ)和C測(cè)試正常的運(yùn)動(dòng)矢量預(yù)測(cè)值,以查看運(yùn)動(dòng)矢量預(yù)測(cè)值選擇是否明確地編碼在比特流中。如果是,則在比特流中存在指示使用預(yù)測(cè)值A(chǔ)還是預(yù)測(cè)值C作為運(yùn)動(dòng)矢量預(yù)測(cè)值的單個(gè)比特。否則,使用正常的運(yùn)動(dòng)矢量預(yù)測(cè)值。也可檢查各種其它條件(例如,如果A或C是幀內(nèi)編碼的,則檢查正常運(yùn)動(dòng)矢量的量值)。當(dāng)A或C是幀內(nèi)編碼時(shí),分別對(duì)應(yīng)于A或C的運(yùn)動(dòng)被視為零。對(duì)于兩個(gè)參考半幀P半幀的運(yùn)動(dòng)矢量,所有預(yù)測(cè)值是相同極性的。在一些實(shí)施例中,由在差分運(yùn)動(dòng)矢量解碼過(guò)程中獲得的主/非主預(yù)測(cè)值極性和選擇器信號(hào)來(lái)確定參考半幀極性。例如,如果使用相反半幀預(yù)測(cè)值,則predictor_pre_x=oppositefieldpred_χ,predictor_pre_x=oppositefieldpred_y,predictorA_x=oppositefieldpredA_x,predictorA_y=oppositefieldpredA_y,predictorC_x=oppositefieldpredC_x,以及predictorC_y=oppositefieldpredC_y。如果使用相同半幀極性則:predictor_pre_x=samefieldpred_x,predictoryre_x=samefieldpred_y,predictorA_χ=samefieldpredA_x,predictorA_y=samefieldpredA_y,predictorC_x=samefieldpredC_x,以及predictorC_y=samefieldpredC_y。例如,oppositefieldpred和samefieldpred的值如在圖52A至52J或者61A至61F的偽代碼中那樣計(jì)算。圖53示出在組合實(shí)現(xiàn)(見(jiàn)章節(jié)XII)中的混合運(yùn)動(dòng)矢量預(yù)測(cè)的替換偽代碼??晒┨鎿Q地,編碼器和解碼器測(cè)試不同的混合運(yùn)動(dòng)矢量預(yù)測(cè)條件,例如,考慮其它和/或附加預(yù)測(cè)值的條件,使用不同的決策邏輯來(lái)檢測(cè)運(yùn)動(dòng)不連續(xù)性的條件,和/或?qū)ψ兓褂貌煌拈撝?除了32以外)的條件。在兩個(gè)候選預(yù)測(cè)值(例如A與C)之間選擇的簡(jiǎn)單信號(hào)是每運(yùn)動(dòng)矢量單個(gè)比特??晒┨鎿Q地,編碼器和解碼器使用不同的信號(hào)表示機(jī)制,例如,與諸如運(yùn)動(dòng)矢量數(shù)據(jù)等其它信息一起聯(lián)合地用信號(hào)表示選擇器比特。C.編碼技術(shù)諸如圖20的編碼器(2000)等編碼器在隔行掃描P半幀的運(yùn)動(dòng)矢量的編碼期間執(zhí)行混合運(yùn)動(dòng)矢量預(yù)測(cè)。例如,編碼器對(duì)當(dāng)前宏塊或塊的運(yùn)動(dòng)矢量執(zhí)行圖33A所示的技術(shù)(3300)。編碼器確定(3310)運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,編碼器使用章節(jié)VII.A中描述的技術(shù)來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值??晒┨鎿Q地,編碼器用另一種技術(shù)來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值。編碼器隨后檢查(3320)運(yùn)動(dòng)矢量預(yù)測(cè)值的混合運(yùn)動(dòng)矢量預(yù)測(cè)條件。例如,編碼器使用反映圖32中所示的解碼器側(cè)的偽代碼的技術(shù)??晒┨鎿Q地,編碼器檢查不同的混合運(yùn)動(dòng)矢量預(yù)測(cè)條件。(相應(yīng)的解碼器象編碼器一樣檢查混合運(yùn)動(dòng)矢量預(yù)測(cè)條件,而無(wú)論條件是什么,因?yàn)轭A(yù)測(cè)值信號(hào)信息的存在/不存在是隱含地由編碼器和相應(yīng)的解碼器導(dǎo)出的。)如果沒(méi)有觸發(fā)混合運(yùn)動(dòng)矢量條件(從判定3325出來(lái)的“否”路徑),編碼器使用最初確定的運(yùn)動(dòng)矢量預(yù)測(cè)值。另一方面,如果觸發(fā)混合運(yùn)動(dòng)矢量條件(判定3325出來(lái)的“是”路徑),則編碼器選擇(3330)要使用的混合運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,編碼器在上候選預(yù)測(cè)值與左候選預(yù)測(cè)值之間選擇,它們是相鄰的運(yùn)動(dòng)矢量??晒┨鎿Q地,編碼器在其它和/或附加預(yù)測(cè)值之間選擇。編碼器隨后用信號(hào)表示(3340)所選擇的混合運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,編碼器傳輸單個(gè)比特,它指示要使用上候選預(yù)測(cè)值還是左候選預(yù)測(cè)值作為運(yùn)動(dòng)矢量預(yù)測(cè)值??晒┨鎿Q地,編碼器使用另一個(gè)信號(hào)表示機(jī)制。編碼器對(duì)隔行掃描P半幀的每個(gè)運(yùn)動(dòng)矢量,或者只對(duì)隔行掃描P半幀的某些運(yùn)動(dòng)矢量(例如,取決于宏塊類(lèi)型)執(zhí)行技術(shù)(3300)。為了簡(jiǎn)單起見(jiàn),圖33A沒(méi)有顯示可將技術(shù)(3300)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述了各種組合實(shí)現(xiàn)。D.解碼技術(shù)諸如圖21的解碼器(2100)等解碼器在隔行掃描P半幀的運(yùn)動(dòng)矢量的解碼期間執(zhí)行混合運(yùn)動(dòng)矢量預(yù)測(cè)。例如,解碼器對(duì)當(dāng)前宏塊或塊的運(yùn)動(dòng)矢量執(zhí)行圖33B所示的技術(shù)(3350)。解碼器確定(3360)運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,解碼器使用章節(jié)VII.A中描述的技術(shù)來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值??晒┨鎿Q地,解碼器用另一種技術(shù)來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值。解碼器隨后檢查(3370)運(yùn)動(dòng)矢量預(yù)測(cè)值的混合運(yùn)動(dòng)矢量預(yù)測(cè)條件。例如,解碼器遵循圖32所示的偽代碼??晒┨鎿Q地,解碼器檢查不同的混合運(yùn)動(dòng)矢量預(yù)測(cè)條件。(解碼器檢查與相應(yīng)的編碼器相同的運(yùn)動(dòng)矢量預(yù)測(cè)條件,而無(wú)論條件是什么。)如果沒(méi)有觸發(fā)混合運(yùn)動(dòng)矢量條件(判定3375出來(lái)的“否”路徑),則解碼器使用最初確定的運(yùn)動(dòng)矢量預(yù)測(cè)值。另一方面,如果觸發(fā)混合運(yùn)動(dòng)矢量條件(判定3375出來(lái)的“是”路徑),則解碼器接收和解碼(3380)指示所選擇的混合運(yùn)動(dòng)矢量預(yù)測(cè)值的信號(hào)。例如,解碼器取得單個(gè)比特,它指示要使用上候選預(yù)測(cè)值還是左候選預(yù)測(cè)值作為運(yùn)動(dòng)矢量預(yù)測(cè)值。可供替換地,解碼器結(jié)合另一種信號(hào)表示機(jī)制操作。解碼器隨后選擇要使用的混合運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,解碼器在上候選預(yù)測(cè)值與左候選預(yù)測(cè)值之間選擇,它們是相鄰的運(yùn)動(dòng)矢量??晒┨鎿Q地,解碼器在其它和/或附加預(yù)測(cè)值之間選擇。解碼器對(duì)隔行掃描P半幀的每個(gè)運(yùn)動(dòng)矢量,或者只對(duì)隔行掃描P半幀的某些運(yùn)動(dòng)矢量(例如,取決于宏塊類(lèi)型)執(zhí)行技術(shù)(3350)。為了簡(jiǎn)單起見(jiàn),圖33B沒(méi)有示出可將技術(shù)(3350)與編碼和解碼器的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)地描述各種組合實(shí)現(xiàn)。VII.運(yùn)動(dòng)矢量塊樽式在一些實(shí)施例中,宏塊可具有多個(gè)運(yùn)動(dòng)矢量。例如,混合MV隔行掃描P半幀的宏塊可具有一個(gè)運(yùn)動(dòng)矢量、四個(gè)運(yùn)動(dòng)矢量(宏塊的每個(gè)亮度塊一個(gè))或者是幀內(nèi)編碼的(無(wú)運(yùn)動(dòng)矢量)。同樣,隔行掃描P半幀的半幀編碼宏塊可具有兩個(gè)運(yùn)動(dòng)矢量(每半幀一個(gè))或者四個(gè)運(yùn)動(dòng)矢量(每半幀兩個(gè)),并且隔行掃描P半幀的幀編碼宏塊可具有一個(gè)運(yùn)動(dòng)矢量或四個(gè)運(yùn)動(dòng)矢量(每亮度塊一個(gè))。如果宏塊沒(méi)有相關(guān)聯(lián)的運(yùn)動(dòng)矢量數(shù)據(jù)(例如差分)要用信號(hào)表示,2MV或4MV宏塊可用信號(hào)表示為“跳過(guò)”。如果這樣,則運(yùn)動(dòng)矢量預(yù)測(cè)值一般用作宏塊的運(yùn)動(dòng)矢量?;蛘?,宏塊可具有非零的運(yùn)動(dòng)矢量數(shù)據(jù)要為一個(gè)運(yùn)動(dòng)矢量用信號(hào)表示,但不是為另一個(gè)運(yùn)動(dòng)矢量(它具有(0,0)運(yùn)動(dòng)矢量差分)。對(duì)于至少一個(gè)但非全部運(yùn)動(dòng)矢量具有(0,0)差分的2MV或4MV宏塊,用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)會(huì)消耗低效率的比特?cái)?shù)。因此,在一些實(shí)施例中,編碼器和解碼器使用一種信號(hào)表示機(jī)制,它有效地用信號(hào)表示具有多個(gè)運(yùn)動(dòng)矢量的宏塊的運(yùn)動(dòng)矢量數(shù)據(jù)存在或不存在。宏塊的運(yùn)動(dòng)矢量已編碼塊模式(或者簡(jiǎn)稱(chēng)“運(yùn)動(dòng)矢量塊模式”)在逐個(gè)運(yùn)動(dòng)矢量的基礎(chǔ)上指示,哪些塊、半幀、二分之一半幀等具有在比特流中用信號(hào)表示的運(yùn)動(dòng)矢量數(shù)據(jù),以及哪些沒(méi)有。運(yùn)動(dòng)矢量塊模式聯(lián)合地用信號(hào)表示宏塊的運(yùn)動(dòng)矢量數(shù)據(jù)的模式,它允許編碼器和解碼器利用塊之間存在的空間相關(guān)性。而且,用運(yùn)動(dòng)矢量塊模式用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)的存在/不存在提供一個(gè)簡(jiǎn)單的方法,以一種與用信號(hào)表示有關(guān)變換系數(shù)數(shù)據(jù)的存在/不存在(諸如通過(guò)CBCPY元素)分離的方式用信號(hào)表示該信息。在本章節(jié)和在章節(jié)XII的組合實(shí)現(xiàn)中描述的信號(hào)表示的特定示例用可變長(zhǎng)度編碼的2MVBP和4MVBP句法元素用信號(hào)表示運(yùn)動(dòng)矢量塊模式。2MVBP和4MVBP的表選擇分別通過(guò)定長(zhǎng)編碼的2MVBPTAB和4MVBPTAB來(lái)用信號(hào)表示??晒┨鎿Q地,編碼器和解碼器使用其它和/或附加信號(hào)來(lái)用信號(hào)表示運(yùn)動(dòng)矢量塊模式。A.運(yùn)動(dòng)矢量塊模式運(yùn)動(dòng)矢量塊模式指示對(duì)具有多個(gè)運(yùn)動(dòng)矢量的宏塊,哪些運(yùn)動(dòng)矢量被“編碼”和哪些沒(méi)有被“編碼”。如果運(yùn)動(dòng)矢量的差分運(yùn)動(dòng)矢量非零(即,要用信號(hào)表示的運(yùn)動(dòng)矢量不同于它的運(yùn)動(dòng)矢量預(yù)測(cè)值),則編碼該運(yùn)動(dòng)矢量。否則,不編碼該運(yùn)動(dòng)矢量。如果宏塊具有四個(gè)運(yùn)動(dòng)矢量,則運(yùn)動(dòng)矢量塊模式具有4個(gè)比特,每一個(gè)比特分別用于四個(gè)運(yùn)動(dòng)矢量的每一個(gè)。在運(yùn)動(dòng)矢量塊模式中的比特的順序遵循圖34中為隔行掃描P半幀的4MV宏塊或者隔行掃描幀的4MV幀編碼宏塊所示的塊順序。對(duì)于隔行掃描幀的4MV半幀編碼宏塊,運(yùn)動(dòng)矢量塊模式的比特順序是左上半幀運(yùn)動(dòng)矢量、右上半幀運(yùn)動(dòng)矢量、左下半幀運(yùn)動(dòng)矢量和右下半幀運(yùn)動(dòng)矢量。如果宏塊具有兩個(gè)運(yùn)動(dòng)矢量,則運(yùn)動(dòng)矢量塊模式有2個(gè)比特,每個(gè)比特用于兩個(gè)運(yùn)動(dòng)矢量的每一個(gè)。對(duì)于隔行掃描P幀的2MV半幀編碼宏塊,運(yùn)動(dòng)矢量塊模式的比特順序簡(jiǎn)單地為上半幀運(yùn)動(dòng)矢量然后下半幀運(yùn)動(dòng)矢量??墒褂枚鄠€(gè)不同VLC表之一來(lái)用信號(hào)表示運(yùn)動(dòng)矢量塊模式元素。例如,在圖47J中示出4MVBP的四個(gè)不同代碼表,并且在圖47K中示出2MVBP的四個(gè)不同的代碼表。表選擇由在圖像層用信號(hào)表示的4MVBPTAB或2MVBPTAB指示??晒┨鎿Q地,編碼器和解碼器使用其它和/或附加代碼用于用信號(hào)表示運(yùn)動(dòng)矢量塊模式信息和表選擇。應(yīng)用附加的規(guī)則,以確定為2參考半幀隔行掃描P半幀的宏塊編碼哪些運(yùn)動(dòng)矢量。“未編碼”的運(yùn)動(dòng)矢量具有主預(yù)測(cè)值,如在章節(jié)VI中所述?!熬幋a”的運(yùn)動(dòng)矢量可具有零值運(yùn)動(dòng)矢量差分,但用信號(hào)表示非主預(yù)測(cè)值?;蛘?,“編碼”的運(yùn)動(dòng)矢量可具有非零差分運(yùn)動(dòng)矢量并且用信號(hào)表示主或非主預(yù)測(cè)值??晒┨鎿Q地,編碼器和解碼器使用運(yùn)動(dòng)矢量塊模式用于其它和/或附加種類(lèi)的圖像、用于其它和/或附加種類(lèi)的宏塊、用于其它和/或附加數(shù)量的運(yùn)動(dòng)矢量,和/或具有不同的比特位置。B.編碼技術(shù)諸如圖20的編碼器(2000)等編碼器使用運(yùn)動(dòng)矢量塊模式編碼宏塊的運(yùn)動(dòng)矢量數(shù)據(jù)。例如,編碼器執(zhí)行圖35A所示的技術(shù)(3500)。對(duì)于給定的具有多個(gè)運(yùn)動(dòng)矢量的宏塊,編碼器確定(3510)宏塊的運(yùn)動(dòng)矢量塊模式。例如,編碼器為隔行掃描P半幀中4MV宏塊或者為隔行掃描P幀中4MV半幀編碼或幀編碼宏塊確定四個(gè)塊模式?;蛘?,編碼器為隔行掃描P幀中2MV半幀編碼宏塊確定兩個(gè)運(yùn)動(dòng)矢量塊模式。可供替換地,編碼器為其它種類(lèi)的宏塊和/或其它數(shù)量的運(yùn)動(dòng)矢量確定運(yùn)動(dòng)矢量塊模式。然后編碼器用信號(hào)表示(3520)運(yùn)動(dòng)矢量塊模式。通常,編碼器使用諸如圖47J和47K所示的代碼表用信號(hào)表示運(yùn)動(dòng)矢量塊模式的VLC??晒┨鎿Q地,編碼器使用另一種機(jī)制來(lái)用信號(hào)表示運(yùn)動(dòng)矢量塊模式。如果有要為其用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)的至少一個(gè)運(yùn)動(dòng)矢量(判定3525出來(lái)的“是”路徑),則編碼器用信號(hào)表示(3530)運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量數(shù)據(jù)。例如,編碼器使用章節(jié)IX中描述的技術(shù)將運(yùn)動(dòng)矢量數(shù)據(jù)編碼為BLKMVDATA、T0PMVDATA或B0TMVDATA元素。可供替換地,編碼器使用不同的信號(hào)表示技術(shù)。編碼器重復(fù)(3525,3530)運(yùn)動(dòng)矢量數(shù)據(jù)的編碼,直到?jīng)]有要為其用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)的更多運(yùn)動(dòng)矢量(判定3525出來(lái)的“否”路徑)。編碼器可在多個(gè)代碼表之間選擇以編碼運(yùn)動(dòng)矢量塊模式(未在圖35A中示出)。例如,編碼器為隔行掃描P半幀或P幀選擇一個(gè)代碼表,然后使用該表來(lái)編碼圖像中宏塊的運(yùn)動(dòng)矢量塊模式??晒┨鎿Q地,編碼器在更頻繁、較不頻繁或非周期的基礎(chǔ)上選擇代碼表,或者編碼器完全跳過(guò)代碼表選擇(總是使用同一代碼表)。或者,編碼器可從上下文信息中選擇代碼表(使得用信號(hào)表示代碼表選擇沒(méi)有必要)。代碼表可以是圖47J和47K中所示的表、其它表和/或附加表。例如,編碼器用指示所選擇的代碼表的FLC,用指示所選擇的代碼表的VLC,或者用一種不同的信號(hào)表示機(jī)制,在比特流中用信號(hào)表示所選擇的代碼表。可供替換地,編碼器執(zhí)行另一種技術(shù)來(lái)使用運(yùn)動(dòng)矢量塊模式編碼宏塊的運(yùn)動(dòng)矢量數(shù)據(jù)。為了簡(jiǎn)單,圖35A沒(méi)有示出可將技術(shù)(3500)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述各種組合實(shí)現(xiàn)。C.解碼技術(shù)諸如圖21的解碼器(2100)等解碼器接收和解碼使用運(yùn)動(dòng)矢量塊模式的隔行掃描P半幀或隔行掃描P幀的運(yùn)動(dòng)矢量數(shù)據(jù)。例如,解碼器執(zhí)行圖3B所示的技術(shù)(3550)。對(duì)于具有多個(gè)運(yùn)動(dòng)矢量的給定宏塊,解碼器接收和解碼(3560)宏塊的運(yùn)動(dòng)矢量塊模式。例如,解碼器接收和解碼4運(yùn)動(dòng)矢量塊模式,或者在前面章節(jié)中描述的其它運(yùn)動(dòng)矢量塊模式。通常,解碼器接收運(yùn)動(dòng)矢量塊模式的VLC并且使用圖47J和471所示的代碼表來(lái)對(duì)它進(jìn)行解碼??晒┨鎿Q地,解碼器結(jié)合另一種信號(hào)表示機(jī)制接收和解碼運(yùn)動(dòng)矢量塊模式。如果有要為其用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)(判定3565出來(lái)的“是”路徑)的至少一個(gè)運(yùn)動(dòng)矢量,則解碼器接收和解碼(3570)該運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量數(shù)據(jù)。例如,解碼器接收和解碼使用在章節(jié)IX中描述的技術(shù)編碼為BLTMVDATA、T0PMVDATA或B0TMVDATA元素的運(yùn)動(dòng)矢量數(shù)據(jù)??晒┨鎿Q地,解碼器使用不同的解碼技術(shù)。解碼器重復(fù)(3565,3570)運(yùn)動(dòng)矢量數(shù)據(jù)的接收和解碼,直到?jīng)]有要為其用信號(hào)表示運(yùn)動(dòng)矢量數(shù)據(jù)的更多運(yùn)動(dòng)矢量(判定3565出來(lái)的“否”路徑)。解碼器可在多個(gè)代碼表之間選擇以解碼運(yùn)動(dòng)矢量塊模式(未在圖3513中示出)。例如,表選擇和表選擇信號(hào)表示選項(xiàng)反映出在前面章節(jié)中為編碼器描述的那些技術(shù)??晒┨鎿Q地,解碼器執(zhí)行另一種技術(shù)來(lái)使用運(yùn)動(dòng)矢量塊模式解碼宏塊的運(yùn)動(dòng)矢量數(shù)據(jù)。為了簡(jiǎn)單起見(jiàn),圖35B沒(méi)有示出可將技術(shù)(3550)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述各種組合實(shí)現(xiàn)。IX.隔行掃描P-半幀中的運(yùn)動(dòng)矢量差分在一些實(shí)施例中,當(dāng)為單個(gè)當(dāng)前隔行掃描P半幀執(zhí)行運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)時(shí),使用兩個(gè)先前編碼/解碼的半幀作為參考半幀。(例如,見(jiàn)章節(jié)IV,VI和VII。)在P半幀中為運(yùn)動(dòng)矢量用信號(hào)表示的信息指示(1)兩個(gè)半幀中的哪一個(gè)為運(yùn)動(dòng)矢量提供參考;以及(2)運(yùn)動(dòng)矢量值。運(yùn)動(dòng)矢量值一般用信號(hào)表示為相對(duì)于運(yùn)動(dòng)矢量預(yù)測(cè)值的差分。在兩個(gè)可能的參考半幀之間的選擇可用單個(gè)附加比特來(lái)為運(yùn)動(dòng)矢量用信號(hào)表示,但在許多情況下這種信號(hào)表示方式是低效率的。通常,兩個(gè)參考半幀對(duì)于一個(gè)給定的運(yùn)動(dòng)矢量不是相等可能的,并且運(yùn)動(dòng)矢量的選擇并不是與其它(例如相鄰)運(yùn)動(dòng)矢量的選擇無(wú)關(guān)的。因而,實(shí)際上,用每選擇單個(gè)比特來(lái)用信號(hào)表示參考半幀選擇通常是低效率的。因此,在一些實(shí)施例中,編碼器對(duì)運(yùn)動(dòng)矢量差分信息和參考半幀選擇信息進(jìn)行聯(lián)合編碼。解碼器執(zhí)行聯(lián)合編碼信息的相應(yīng)解碼。A.理論與實(shí)驗(yàn)結(jié)果對(duì)于2參考半幀隔行掃描P半幀,兩個(gè)參考半幀具有與P-半幀的下列空間和時(shí)間關(guān)系。在時(shí)間上最接近的參考半幀的極性與當(dāng)前P半幀的極性相反。例如,如果當(dāng)前P半幀是偶半幀(由隔行掃描幀的偶數(shù)行構(gòu)成),則在時(shí)間順序上最接近的參考半幀是奇半幀,而另一參考半幀(在時(shí)間順序上較遠(yuǎn)的)是偶半幀。編碼器和解碼器使用因果信息來(lái)預(yù)測(cè)當(dāng)前運(yùn)動(dòng)矢量的參考半幀選擇。例如,來(lái)自相鄰的先前編碼的運(yùn)動(dòng)矢量的參考半幀選擇信息用于預(yù)測(cè)用于當(dāng)前運(yùn)動(dòng)矢量的參考半幀。然后,一二進(jìn)制值指示是否使用該預(yù)測(cè)的參考半幀。一個(gè)值指示當(dāng)前運(yùn)動(dòng)矢量的實(shí)際參考半幀是預(yù)測(cè)的參考半幀,而另一個(gè)值指示當(dāng)前運(yùn)動(dòng)矢量的實(shí)際參考半幀是另一參考半幀。在一些實(shí)現(xiàn)中,參考半幀預(yù)測(cè)是按照先前使用的參考半幀和當(dāng)前運(yùn)動(dòng)矢量的預(yù)期參考半幀的極性來(lái)表示的(例如,如主或非主極性,見(jiàn)章節(jié)VI)。在大多數(shù)情況下,通過(guò)這樣的預(yù)測(cè),二進(jìn)制值參考半幀選擇器的概率分布是一致的,并且朝向預(yù)測(cè)的參考半幀偏斜。在實(shí)驗(yàn)中,預(yù)測(cè)的參考半幀用于大約70%的運(yùn)動(dòng)矢量,而大約30%的運(yùn)動(dòng)矢量使用另一參考半幀。傳輸單個(gè)比特以用信號(hào)表示具有這樣一種概率分布的參考半幀選擇信息是低效率的。更有效的方法是將參考半幀選擇信息與差分運(yùn)動(dòng)矢量信息一起聯(lián)合編碼。B.信號(hào)表示機(jī)制的示例提供了用于運(yùn)動(dòng)矢量差分信息和參考半幀選擇信息進(jìn)行聯(lián)合編碼和解碼的信號(hào)表示機(jī)制的各種示例??晒┨鎿Q地,編碼器和解碼器結(jié)合另一種機(jī)制來(lái)對(duì)信息進(jìn)行聯(lián)合編碼和解碼。圖36中的偽代碼示出按照一般的信號(hào)表示機(jī)制對(duì)運(yùn)動(dòng)矢量差分信息和參考半幀選擇信息進(jìn)行聯(lián)合編碼。在該偽代碼中,變量DMVX和DMVY分別是水平和垂直差分運(yùn)動(dòng)矢量分量。變量AX和AY是差分分量的絕對(duì)值,而變量SX和SY是差分分量的符號(hào)。水平運(yùn)動(dòng)矢量范圍從-RX到RX+1,而垂直運(yùn)動(dòng)矢量范圍從-RY到RY+1。RX和RY是二的冪,分別具有指數(shù)MX和MY。變量ESCX和ESCY(它們分別是指數(shù)為KX和KY的二的冪)指示了閾值,超過(guò)該閾值則使用轉(zhuǎn)義碼。變量R是參考半幀選擇的二進(jìn)制值。當(dāng)觸發(fā)轉(zhuǎn)義條件時(shí)(AX>ESCX或AY>ESCY),編碼器發(fā)送聯(lián)合地表示轉(zhuǎn)義模式信號(hào)和R的VLC。編碼器隨后發(fā)送DMVX和DMVY,分別作為長(zhǎng)度MX+1和MY+1的定長(zhǎng)代碼。因而,使用VLC表中的兩個(gè)元素來(lái)用信號(hào)表示(1)合在一起使用(MX+MY+2)個(gè)比特來(lái)編碼DMVX和DMVY,以及(2)相關(guān)聯(lián)的R值。換言之,兩個(gè)元素是對(duì)應(yīng)于R=0和R=1的轉(zhuǎn)義碼。對(duì)于其它事件,變更NX和NY指示要使用多少比特來(lái)分別用信號(hào)表示AX和AY的不同值。AX在時(shí)間間隔(2NX<=AX<2NX+1)中,其中NX=0,1,2,···KX-1,而當(dāng)NX=-1時(shí)AX=0。AXY在時(shí)間間隔(2NY<=AY<2NY+1)中,其中NY=0,1,2,...KY-1,而在NY=-1時(shí)AY=0。用于編碼大小信息NX和NY以及半幀參考信息R的VLC表是具有(KX+1)*(KY+1)*2+1個(gè)元素的表,其中每個(gè)元素是一個(gè)(碼字,代碼大小)對(duì)。在表的元素中,除了兩個(gè)之外全部用于聯(lián)合地用信號(hào)表示ΝΧ、ΝΥ和R的值。這其它兩個(gè)元素是轉(zhuǎn)義碼。對(duì)于與NX和NY—起用信號(hào)表示的事件,編碼器發(fā)送VLC來(lái)指示NX、NY和R值的組合。編碼器隨后發(fā)送AX為NX個(gè)比特,發(fā)送SX為一個(gè)比特,發(fā)送AY為NY個(gè)比特,并且發(fā)送SY為一個(gè)比特。如果NX為0或-1,則AX不需要發(fā)送,并且對(duì)于NY和AY也是如此,因?yàn)锳X或AY的值在這些情況下可直接從NX或NY中導(dǎo)出。在AX=0、AY=0和R=0的事件是由另一種機(jī)制用信號(hào)表示的,諸如跳過(guò)宏塊機(jī)制或運(yùn)動(dòng)矢量塊模式(見(jiàn)章節(jié)VIII)。圖36中偽代碼的VLC表不存在元素,或者在該偽代碼中不處理。相應(yīng)的解碼器執(zhí)行聯(lián)合解碼,它反映出圖36所示的編碼。例如,解碼接收比特代替發(fā)送比特,執(zhí)行可變長(zhǎng)度解碼代替可變長(zhǎng)度編碼等等。圖50中的偽代碼示出運(yùn)動(dòng)矢量差分信息和參考半幀選擇信息的解碼,它們已經(jīng)按照一個(gè)組合實(shí)現(xiàn)中的信號(hào)表示機(jī)制聯(lián)合編碼。圖59中的偽代碼示出運(yùn)動(dòng)矢量差分信息和參考半幀選擇信息的解碼,它們已經(jīng)按照另一個(gè)組合實(shí)現(xiàn)的信號(hào)表示機(jī)制聯(lián)合編碼。圖50和59中的偽代碼在章節(jié)XII中詳細(xì)地說(shuō)明。具體地,該偽代碼示出具有垂直差分值或者具有垂直和水平差分值的大小的預(yù)測(cè)選擇器的聯(lián)合編碼與解碼。相應(yīng)的編碼器執(zhí)行聯(lián)合編碼,它反映出圖50或59中所示的解碼。例如,編碼器發(fā)送比特代替接收比特,執(zhí)行可變長(zhǎng)度編碼代替可變長(zhǎng)度解碼等等。C.編碼技術(shù)諸如圖20的編碼器(2000)等編碼器對(duì)參考半幀預(yù)測(cè)選擇器信息和差分運(yùn)動(dòng)矢量信息進(jìn)行聯(lián)合編碼。例如,編碼器執(zhí)行圖37A所示的技術(shù)(3700)來(lái)對(duì)該信息進(jìn)行聯(lián)合編碼。通常,編碼器在兩個(gè)參考半幀中執(zhí)行某種形式的運(yùn)動(dòng)估計(jì)以獲得運(yùn)動(dòng)矢量和參考半幀。運(yùn)動(dòng)矢量隨后按照技術(shù)(3700)編碼,在該點(diǎn)處通過(guò)對(duì)選擇器信息進(jìn)行聯(lián)合編碼,例如與垂直運(yùn)動(dòng)矢量差分一起聯(lián)合編碼,將兩個(gè)可能的參考半幀之一與運(yùn)動(dòng)矢量相關(guān)聯(lián)。編碼器確定(3710)運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,編碼器如章節(jié)VII中所述地確定運(yùn)動(dòng)矢量預(yù)測(cè)值??晒┨鎿Q地,編碼器用另一種機(jī)制確定運(yùn)動(dòng)矢量預(yù)測(cè)值。編碼器為運(yùn)動(dòng)矢量確定(3720)相對(duì)于運(yùn)動(dòng)矢量預(yù)測(cè)值的運(yùn)動(dòng)矢量差分。通常,差分是運(yùn)動(dòng)矢量與運(yùn)動(dòng)矢量預(yù)測(cè)值之間的分量級(jí)差。編碼器還確定(3730)參考半幀預(yù)測(cè)選擇器信息。例如,編碼器確定運(yùn)動(dòng)矢量的主和非主極性(并且因此確定運(yùn)動(dòng)矢量預(yù)測(cè)值的主參考半幀、主極性等,見(jiàn)章節(jié)IV),在這種情況下選擇器指示是否使用主極性??晒┨鎿Q地,編碼器使用不同的技術(shù)來(lái)確定參考半幀預(yù)測(cè)選擇器信息。例如,編碼器使用不同類(lèi)型的參考半幀預(yù)測(cè)。編碼器隨后隨運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量差分信息和參考半幀預(yù)測(cè)選擇器信息進(jìn)行聯(lián)合編碼(3740)。例如,編碼器使用在前面章節(jié)中描述的機(jī)制來(lái)編碼該信息??晒┨鎿Q地,編碼器使用另一種機(jī)制。為了簡(jiǎn)單起見(jiàn),圖37A沒(méi)有示出可將技術(shù)(3700)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述各種組合實(shí)現(xiàn)。D.解碼技術(shù)諸如圖21的解碼器(2100)等解碼聯(lián)合編碼的參考半幀預(yù)測(cè)選擇器信息和差分運(yùn)動(dòng)矢量信息。例如,解碼器執(zhí)行圖37B中所示的技術(shù)(3750)來(lái)解碼這樣的聯(lián)合編碼的信息。解碼器解碼(3760)對(duì)運(yùn)動(dòng)矢量進(jìn)行聯(lián)合編碼的運(yùn)動(dòng)矢量差分信息和參考半幀預(yù)測(cè)選擇器信息。例如,解碼器解碼使用在章節(jié)IX.B中描述的機(jī)制之一用信號(hào)表示的信息??晒┨鎿Q地,解碼器解碼使用另一種機(jī)制用信號(hào)表示的信息。解碼器隨后確定(3770)運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,解碼器確定運(yùn)動(dòng)矢量的主和非主極性(見(jiàn)章節(jié)VI),應(yīng)用選擇器信息,并且如在章節(jié)VII中所述確定所選擇極性的運(yùn)動(dòng)矢量預(yù)測(cè)值??晒┨鎿Q地,解碼器使用不同的機(jī)制來(lái)確定運(yùn)動(dòng)矢量預(yù)測(cè)值。例如,解碼器使用不同類(lèi)型的參考半幀預(yù)測(cè)。最后,解碼器通過(guò)將運(yùn)動(dòng)矢量差分與運(yùn)動(dòng)矢量預(yù)測(cè)值組合來(lái)重構(gòu)(3750)運(yùn)動(dòng)矢量。為了簡(jiǎn)單起見(jiàn),圖37B沒(méi)有示出可將技術(shù)(3750)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述各種組合實(shí)現(xiàn)。X.行掃描P-半巾貞中導(dǎo)出代鹿運(yùn)云力矢量在一些實(shí)施例中,編碼器和解碼器從為隔行掃描P半幀的宏塊用信號(hào)表示的亮度運(yùn)動(dòng)矢量中導(dǎo)出色度運(yùn)動(dòng)矢量。色度運(yùn)動(dòng)矢量沒(méi)有在比特流中明確地用信號(hào)表示。相反,它們是從宏塊的亮度運(yùn)動(dòng)矢量確定的。編碼器和解碼器可使用適用于逐行掃描P幀或隔行掃描P幀的色度運(yùn)動(dòng)矢量導(dǎo)出,但這一般不能為隔行掃描P半幀提供足夠的性能。因此,編43碼器和解碼器使用適合于隔行掃描P半幀的參考半幀組織的色度運(yùn)動(dòng)矢量導(dǎo)出。色度運(yùn)動(dòng)矢量導(dǎo)出有兩個(gè)階段(1)選擇,和(2)二次采樣和色度舍入。這些階段中,選擇階段特別適合于隔行掃描P半幀中的色度運(yùn)動(dòng)矢量導(dǎo)出。選擇階段的輸出是初始的色度運(yùn)動(dòng)矢量,它取決于宏塊的亮度運(yùn)動(dòng)矢量的數(shù)量(并且有可能極性)。如果沒(méi)有亮度運(yùn)動(dòng)用于宏塊(幀內(nèi)編碼宏塊),則沒(méi)有色度運(yùn)動(dòng)矢量導(dǎo)出。如果單個(gè)亮度運(yùn)動(dòng)矢量用于宏塊(1MV宏塊),則選擇單個(gè)亮度運(yùn)動(dòng)矢量用于第二和第三階段。如果四個(gè)亮度運(yùn)動(dòng)矢量用于宏塊(4MV宏塊),則使用支持四個(gè)亮度運(yùn)動(dòng)矢量中最共同極性的邏輯來(lái)選擇初始色度運(yùn)動(dòng)矢量。A.色度二次采樣和運(yùn)動(dòng)矢量表示隔行掃描P半幀的宏塊的色度運(yùn)動(dòng)矢量導(dǎo)出取決于用于宏塊的色度二次采樣類(lèi)型,并且還取決于運(yùn)動(dòng)矢量表示。一些共同的色度二次采樣格式是4:2:0和4:1:1。圖38示出YUV4:2:0宏塊的采樣網(wǎng)格,按照它相對(duì)于亮度樣本以規(guī)則的4:1模式對(duì)色度樣本進(jìn)行二次采樣。圖38示出16x16宏塊的亮度與色度樣本之間的空間關(guān)系,其中有四個(gè)8x8亮度塊,一個(gè)8x8色度“U”塊,和一個(gè)8x8色度“V”塊(諸如在圖22中所示)??偟膩?lái)講,色度網(wǎng)格的分辨率在χ和y兩個(gè)方向都是亮度網(wǎng)格分辨率的一半,這是在色度運(yùn)動(dòng)矢量導(dǎo)出中下采樣的基礎(chǔ)。為了將亮度網(wǎng)格的運(yùn)動(dòng)矢量距離比例縮放到色度網(wǎng)格的相應(yīng)距離,運(yùn)動(dòng)矢量值除以系數(shù)2。在此描述的選擇階段技術(shù)可應(yīng)用于YUV4:2:0宏塊或者應(yīng)用于具有另一種色度二次采樣格式的宏塊。隔行掃描P半幀的亮度和色度運(yùn)動(dòng)矢量的表示部分地取決于運(yùn)動(dòng)矢量和運(yùn)動(dòng)補(bǔ)償?shù)木?。典型的運(yùn)動(dòng)矢量精度是1/2象素和1/4象素,它們分別與運(yùn)動(dòng)補(bǔ)償中的1/2象素和1/4象素內(nèi)插一起工作。在一些實(shí)施例中,隔行掃描P半幀的運(yùn)動(dòng)矢量可參考上或下參考半幀,它們或者是相同或者是相反極性。由運(yùn)動(dòng)矢量值指定的垂直位移取決于當(dāng)前P半幀和參考半幀的極性。運(yùn)動(dòng)矢量單位一般用半幀圖像單位來(lái)表示。例如,如果運(yùn)動(dòng)矢量的垂直分量是+6(以1/4象素為單位),這通常指示1/2半幀圖像行的垂直位移(在為當(dāng)前P半幀或參考半幀的不同極性調(diào)整之前,如果必要的話)。對(duì)于各種運(yùn)動(dòng)矢量分量值和半幀極性組合,圖39示出按照第一種約定的當(dāng)前和參考半幀中相應(yīng)的空間位置。半幀極性的每種組合具有一對(duì)列,一個(gè)(左列)用于當(dāng)前半幀中行的象素(編號(hào)的行N=0,1,2,等等),而另一個(gè)(右列)用于參考半幀中行的象素(也是編號(hào)的行N=0,1,2,等等)。圓圈表示在整數(shù)象素位置處的樣本,而X表示在子象素位置處的內(nèi)插樣本。在這種約定下,為0的垂直運(yùn)動(dòng)矢量分量值參考參考半幀中的整數(shù)象素位置(即,在實(shí)際行上的樣本)。如果當(dāng)前半幀和參考半幀具有相同極性,則來(lái)自當(dāng)前半幀的行N的為0的垂直分量值參考參考半幀中的行N,它在一個(gè)幀的同一實(shí)際偏移處。如果當(dāng)前半幀和參考半幀具有相反極性,則來(lái)自當(dāng)前半幀中行N的為0的垂直分量值仍參考參考幀中的行N,但參考位置在幀的1/2象素實(shí)際偏移處,這是由于奇數(shù)與偶數(shù)行的交替。圖48示出按照第二種約定的當(dāng)前和參考半幀的相應(yīng)空間位置。在這種約定下,為0的垂直運(yùn)動(dòng)矢量分量值參考在隔行掃描幀中同一實(shí)際偏移處的樣本。參考的樣本在相同極性參考半幀中的整數(shù)象素位置處,或者在相反參考半幀中的1/2象素位置處??晒┨鎿Q地,隔行掃描P半幀的運(yùn)動(dòng)矢量使用另一種表示和/或遵循用于處理極性的垂直位移的另一種約定。B.選擇階段示例在一些實(shí)施例中,色度運(yùn)動(dòng)矢量導(dǎo)出的選擇階段適合于在具有一個(gè)或兩個(gè)參考半幀的隔行掃描P半幀的運(yùn)動(dòng)矢量中使用的參考半幀模式。例如,宏塊的選擇階段的結(jié)果取決于宏塊的亮度運(yùn)動(dòng)矢量的數(shù)量和極性。最簡(jiǎn)單的情況是當(dāng)整個(gè)宏塊是幀內(nèi)編碼的。在這種情況下,沒(méi)有色度運(yùn)動(dòng)矢量,并且跳過(guò)色度運(yùn)動(dòng)矢量導(dǎo)出的第二和第三階段。宏塊的色度塊是幀內(nèi)編碼/解碼的,沒(méi)有運(yùn)動(dòng)補(bǔ)償。下一個(gè)最簡(jiǎn)單的情況是當(dāng)宏塊具有單個(gè)亮度運(yùn)動(dòng)矢量用于所有四個(gè)亮度塊。無(wú)論當(dāng)前P半幀具有一個(gè)參考半幀還是兩個(gè)參考半幀,本質(zhì)上沒(méi)有選擇操作,因?yàn)楹?jiǎn)單地向前傳送單個(gè)亮度運(yùn)動(dòng)矢量以進(jìn)行舍入和二次采樣。當(dāng)宏塊具有多達(dá)四個(gè)亮度運(yùn)動(dòng)矢量時(shí),選擇階段更復(fù)雜??偟膩?lái)說(shuō),選擇階段支持宏塊的亮度運(yùn)動(dòng)矢量中的主極性。如果P半幀只有一個(gè)參考半幀,則極性與宏塊的所有亮度運(yùn)動(dòng)矢量的相同。然而如果P半幀具有兩個(gè)參考半幀,則宏塊的不同亮度運(yùn)動(dòng)矢量可指向不同的參考半幀。例如,如果當(dāng)前P半幀的極性是奇,則宏塊可具有兩個(gè)相反極性的亮度運(yùn)動(dòng)矢量(參考偶極性參考半幀)和兩個(gè)相同極性的亮度運(yùn)動(dòng)矢量(參考奇極性參考半幀)。編碼器或解碼器確定宏塊的亮度運(yùn)動(dòng)矢量的主極性,并且根據(jù)主極性的亮度運(yùn)動(dòng)矢量確定初始色度運(yùn)動(dòng)矢量。在一些實(shí)施例中,4MV宏塊具有零至四個(gè)運(yùn)動(dòng)矢量。這樣一個(gè)4MV宏塊的亮度塊是幀內(nèi)編碼的,或者具有相關(guān)聯(lián)的相同極性亮度運(yùn)動(dòng)矢量,或者具有相關(guān)聯(lián)的相反極性亮度運(yùn)動(dòng)矢量。在其它實(shí)現(xiàn)中,4MV宏塊總是具有四個(gè)亮度運(yùn)動(dòng)矢量,即使沒(méi)有用信號(hào)表示它們中的一些(例如因?yàn)樗鼈兙哂?0,0)差分)。這樣一個(gè)4MV宏塊的亮度塊具有相反極性運(yùn)動(dòng)矢量或者具有相同極性運(yùn)動(dòng)矢量。選擇階段邏輯對(duì)于這些不同實(shí)現(xiàn)略有不同。1.具有0至4個(gè)亮度運(yùn)動(dòng)矢量的4MV宏塊圖40中的偽代碼示出選擇階段邏輯的一個(gè)示例,它應(yīng)用于具有0和4個(gè)亮度運(yùn)動(dòng)矢量的4MV宏塊。亮度運(yùn)動(dòng)矢量中,如果參考相同極性參考半幀的亮度運(yùn)動(dòng)矢量數(shù)量大于參考相反極性參考半幀的數(shù)量,則編碼器/解碼器從參考相同極性參考半幀的亮度運(yùn)動(dòng)矢量導(dǎo)出初始色度運(yùn)動(dòng)矢量。否則編碼器/解碼器從參考相反極性參考半幀的亮度運(yùn)動(dòng)矢量導(dǎo)出初始色度運(yùn)動(dòng)矢量。如果四個(gè)亮度運(yùn)動(dòng)矢量具有主極性(例如全部奇參考半幀或者全部偶參考半幀),編碼器/解碼器計(jì)算四個(gè)亮度運(yùn)動(dòng)矢量的中值。如果只有三個(gè)亮度運(yùn)動(dòng)矢量具有主極性(例如,因?yàn)橐粋€(gè)亮度塊是幀內(nèi)編碼的或者具有非主極性運(yùn)動(dòng)矢量),則編碼器/解碼器計(jì)算三個(gè)亮度運(yùn)動(dòng)矢量的中值。如果兩個(gè)亮度運(yùn)動(dòng)矢量具有主極性,則編碼器/解碼器計(jì)算兩個(gè)亮度運(yùn)動(dòng)矢量的平均值。(在相同和相反極性計(jì)數(shù)平分的情況下,支持(與當(dāng)前P半幀)相同的極性。)最后,如果只一個(gè)主極性的亮度運(yùn)動(dòng)矢量(例如,因?yàn)槿齻€(gè)亮度塊是幀內(nèi)編碼的),取這個(gè)亮度運(yùn)動(dòng)矢量作為選擇階段的輸出。如果所有亮度塊是幀內(nèi)編碼的,則宏塊是幀內(nèi)編碼的,并且不應(yīng)用圖40中的偽代碼。2.具有4個(gè)亮度運(yùn)動(dòng)矢量的4MV宏塊圖55A和55B中的偽代碼示出選擇階段邏輯的另一個(gè)示例,它應(yīng)用于總是有4個(gè)亮度運(yùn)動(dòng)矢量的4MV宏塊(例如,因?yàn)椴辉试S幀內(nèi)編碼的亮度塊。)圖55A為1參考半幀隔行掃描P半幀中這樣的4MV宏塊處理色度運(yùn)動(dòng)矢量導(dǎo)出,并且圖55B為2參考半幀隔行掃描P半幀中這樣的4MV宏塊處理色度運(yùn)動(dòng)矢量導(dǎo)出。參考圖55B,編碼器/解碼器確定在4MV宏塊的四個(gè)亮度運(yùn)動(dòng)矢量中哪個(gè)極性占優(yōu)勢(shì)(例如奇或偶)。如果所有四個(gè)亮度運(yùn)動(dòng)矢量都來(lái)自相同的半幀(例如,全部奇或全部偶),則確定四個(gè)亮度運(yùn)動(dòng)矢量的中值。如果四個(gè)中的三個(gè)來(lái)自相同的半幀,則確定三個(gè)亮度運(yùn)動(dòng)矢量的中值。最后,如果每種極性有兩個(gè)亮度運(yùn)動(dòng)矢量,則支持具有與當(dāng)前P半幀相同極性的兩個(gè)亮度運(yùn)動(dòng)矢量,并且確定它們的平均值。(如果4MV宏塊總是有四個(gè)亮度運(yùn)動(dòng)矢量,只一個(gè)亮度運(yùn)動(dòng)矢量和沒(méi)有亮度運(yùn)動(dòng)矢量具有主極性的情況是不可能的。)可供替換地,編碼器或解碼器在從隔行掃描P半幀的宏塊的多個(gè)亮度運(yùn)動(dòng)矢量中導(dǎo)出色度運(yùn)動(dòng)矢量時(shí)使用不同的選擇邏輯。或者,編碼器或解碼器在另一類(lèi)型的宏塊的色度運(yùn)動(dòng)矢量導(dǎo)出中考慮亮度運(yùn)動(dòng)矢量極性(例如,具有不同數(shù)量的亮度運(yùn)動(dòng)矢量和/或在不同于隔行掃描P半幀的圖像類(lèi)型中的宏塊)。C.二次采樣/舍入階段對(duì)于色度運(yùn)動(dòng)矢量導(dǎo)出的第二階段,編碼器和解碼器一般應(yīng)用舍入邏輯從初始色度運(yùn)動(dòng)矢量中消除某些象素位置(例如,要舍入到3/4象素位置,因此這樣的色度運(yùn)動(dòng)矢量在下采樣之后不指示1/4象素位移)??烧{(diào)整舍入的使用以在預(yù)測(cè)質(zhì)量與內(nèi)插復(fù)雜性之間折衷。在更主動(dòng)的舍入的情況下,例如,編碼器或解碼器消除得到的色度運(yùn)動(dòng)矢量中的所有1/4象素色度位移,因此只允許整數(shù)象素和1/2象素位移,這簡(jiǎn)化了在色度塊的運(yùn)動(dòng)補(bǔ)償中的內(nèi)插。在第二階段,編碼器和解碼器還對(duì)初始色度運(yùn)動(dòng)矢量進(jìn)行下采樣,來(lái)以適合于色度分辨率的比例獲得色度運(yùn)動(dòng)矢量。例如,如果色度分辨率在水平和垂直方向上都是亮度分辨率的1/2,則水平和垂直運(yùn)動(dòng)矢量分量按照因子2下采樣??晒┨鎿Q地,編碼器或解碼器應(yīng)用其它和/或附加機(jī)制用于色度運(yùn)動(dòng)矢量的舍入、二次采樣、回拉(pullback)或其它調(diào)整。D.導(dǎo)出技術(shù)諸如圖20的編碼器(2000)等編碼器導(dǎo)出隔行掃描P半幀的宏塊的色度運(yùn)動(dòng)矢量?;蛘咧T如圖21的解碼器(2100)等解碼器導(dǎo)出隔行掃描P半幀的宏塊的色度運(yùn)動(dòng)矢量。例如,編碼器/解碼器執(zhí)行圖41所示的技術(shù)(4100)來(lái)導(dǎo)出色度運(yùn)動(dòng)矢量。編碼器/解碼器確定(4110)當(dāng)前宏塊是否為幀內(nèi)編碼宏塊。如果是,則編碼器/解碼器跳過(guò)運(yùn)動(dòng)矢量導(dǎo)出,改為對(duì)該宏塊使用運(yùn)動(dòng)補(bǔ)償、幀內(nèi)編碼/解碼。如果宏塊不是幀內(nèi)宏塊,則編碼器/解碼器確定(4120)宏塊是否為IMV宏塊。如果是,則編碼器/解碼器使用宏塊的單個(gè)亮度運(yùn)動(dòng)矢量作為傳遞給技術(shù)(4100)后面的調(diào)整階段(4150)的初始色度運(yùn)動(dòng)矢量。如果宏塊不是IMV宏塊,則編碼器/解碼器確定(4130)宏塊的亮度運(yùn)動(dòng)矢量中的主極性。例如,編碼器/解碼器確定宏塊的一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中的占優(yōu)勢(shì)極性,如圖40或55A和55B所述。可供替換地,編碼器/解碼器應(yīng)用其它和/或附加判定邏輯來(lái)確定占優(yōu)勢(shì)極性。如果包括宏塊的P半幀只有一個(gè)參考半幀,則亮度運(yùn)動(dòng)矢量中的主極性簡(jiǎn)單地為該參考半幀的極性。編碼器/解碼器隨后根據(jù)具有主極性的宏塊的那些亮度運(yùn)動(dòng)矢量確定(4140)初始色度運(yùn)動(dòng)矢量。例如,編碼器/解碼器確定初始色度運(yùn)動(dòng)矢量,如圖40或55A和55B所示。可供替換地,編碼器/解碼器使用其它和/或附加邏輯確定初始色度運(yùn)動(dòng)矢量為主極性運(yùn)動(dòng)矢量的中值、平均值或其它組合。最后,編碼器/解碼器調(diào)整(4150)由前面階段之一產(chǎn)生的初始色度運(yùn)動(dòng)矢量。例如,編碼器/解碼器執(zhí)行如上所述的舍入和二次采樣??晒┨鎿Q地,編碼器/解碼器執(zhí)行其它和/或附加調(diào)整??晒┨鎿Q地,編碼器/解碼器以不同的順序檢查各種宏塊類(lèi)型和極性條件。或者,編碼器/解碼器為隔行掃描P半幀或其它類(lèi)型圖像的其它和/或附加類(lèi)型的宏塊導(dǎo)出色度運(yùn)動(dòng)矢量。為了簡(jiǎn)單起見(jiàn),圖41沒(méi)有示出可將技術(shù)(4100)與編碼和解碼器的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述了各種組合實(shí)現(xiàn)。XI.隔行掃描P半幀的強(qiáng)度補(bǔ)償褪色、變形和混色在視頻內(nèi)容的創(chuàng)建和編輯中廣泛使用。這些技術(shù)平滑視頻在經(jīng)過(guò)內(nèi)容過(guò)渡時(shí)的視覺(jué)演變。另外,某些視頻序列包括因照明而改變的自然褪色。對(duì)于受到褪色、變形、混色等影響的預(yù)測(cè)圖像,在亮度方面的全局改變與參考圖像相比減少了常規(guī)的運(yùn)動(dòng)估計(jì)和補(bǔ)償?shù)男Ч?。結(jié)果,運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)很糟糕,并且預(yù)測(cè)的圖像需要更多的比特來(lái)表示它。這個(gè)問(wèn)題對(duì)于具有一個(gè)參考半幀或者具有多個(gè)參考半幀的隔行掃描P半幀更復(fù)雜。在某些實(shí)施例中,編碼器和解碼器對(duì)隔行掃描P半幀的參考半幀執(zhí)行褪色補(bǔ)償(也稱(chēng)為強(qiáng)度補(bǔ)償)。編碼器執(zhí)行相應(yīng)的褪色估計(jì)。褪色估計(jì)和補(bǔ)償,以及用于褪色補(bǔ)償參數(shù)的信號(hào)表示機(jī)制適合于隔行掃描P半幀的參考半幀組織。例如,對(duì)于具有一個(gè)參考半幀或具有兩個(gè)參考半幀的隔行掃描P半幀,分別為每個(gè)參考半幀作出執(zhí)行褪色補(bǔ)償?shù)呐卸?。使用褪色補(bǔ)償?shù)拿總€(gè)參考半幀可具有它自己的褪色補(bǔ)償參數(shù)。用于褪色補(bǔ)償判定的信號(hào)表示機(jī)制和參數(shù)有效地表示該信息。結(jié)果,隔行掃描視頻的質(zhì)量改進(jìn)和/或減少了比特率。A.對(duì)于參考半幀的褪色估計(jì)和補(bǔ)償褪色補(bǔ)償涉及對(duì)一個(gè)或多個(gè)參考半幀執(zhí)行改變以補(bǔ)償褪色、混色、變形等等。通常,褪色補(bǔ)償包括任何用于褪色(即向黑色褪色或從黑色褪色)、混色、變形或其它影響象素值強(qiáng)度的自然或綜合燈光效果的補(bǔ)償。例如,全局亮度改變可表示為在場(chǎng)景的明亮度和/或?qū)Ρ榷确矫娴母淖儭Mǔ8淖兪蔷€性的,但也可以被定義為包括在同一框架內(nèi)的任何平滑的、非線性的映射。當(dāng)前P半幀隨后由根據(jù)經(jīng)調(diào)整的一個(gè)或多個(gè)參考半幀的運(yùn)動(dòng)估計(jì)/補(bǔ)償來(lái)預(yù)測(cè)。對(duì)于YUV色彩空間中的參考半幀,調(diào)整通過(guò)調(diào)整亮度和色度通道中的樣本而發(fā)生。調(diào)整可包括比例縮放與平移亮度值和比例縮放與平移色度值??晒┨鎿Q地,色彩空間是不同的(例如YIQ或RGB),和/或補(bǔ)償使用其它調(diào)整技術(shù)。編碼器/解碼器在逐個(gè)半幀的基礎(chǔ)上執(zhí)行褪色估計(jì)/補(bǔ)償??晒┨鎿Q地,編碼器/解碼器在某種其它基礎(chǔ)上執(zhí)行褪色估計(jì)/補(bǔ)償。因此,褪色補(bǔ)償調(diào)整影響定義的區(qū)域,它可以是半幀或者半幀的一部分(例如,單獨(dú)的塊或宏塊,或者一組宏塊),并且褪色補(bǔ)償參數(shù)用于該定義的區(qū)域?;蛘撸噬a(bǔ)償參數(shù)用于整個(gè)半幀,但可選擇地應(yīng)用以及在半幀內(nèi)區(qū)47域需要的時(shí)候應(yīng)用。B.隔行掃描P半幀的參考半幀組織在一些實(shí)施例中,隔行掃描P半幀具有一個(gè)或兩個(gè)參考半幀用于運(yùn)動(dòng)補(bǔ)償。(例如,見(jiàn)章節(jié)IV。)圖24A-24F示出可用于在隔行掃描P半幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用的參考半幀的位置。編碼器和解碼器可對(duì)P半幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)使用在其它和/或附加位置或定時(shí)的參考半幀。例如,允許在與當(dāng)前P半幀相同幀內(nèi)的參考半幀?;蛘?,幀的上半幀或下半幀可以首先被編碼/解碼。對(duì)于具有一個(gè)或兩個(gè)參考半幀用于運(yùn)動(dòng)補(bǔ)償?shù)母粜袙呙鑀半幀,P半幀只有一個(gè)參考半幀。或者,P半幀可具有兩個(gè)參考半幀,并且在兩個(gè)參考半幀之間切換用于不同的運(yùn)動(dòng)矢量或者在某種其它基礎(chǔ)上切換??晒┨鎿Q地,P半幀具有更多的參考半幀和/或在不同位置的參考半幀。C.編碼器和解碼器圖42示出一個(gè)示例性編碼器框架(4200),用于為具有一個(gè)或兩個(gè)參考半幀的隔行掃描P半幀執(zhí)行強(qiáng)度估計(jì)和補(bǔ)償。在這個(gè)框架(4200)中,編碼器有條件地使用通過(guò)褪色估計(jì)獲得的參數(shù)來(lái)重新映射參考半幀。當(dāng)編碼器檢測(cè)到在半幀上具有良好程度的確定性與一致性的褪色時(shí),編碼器執(zhí)行重新映射或者褪色補(bǔ)償。否則,褪色補(bǔ)償是完全相同的操作(即輸出=輸入)。參考圖42,編碼器使用褪色檢測(cè)模塊(4230)將當(dāng)前P半幀(4210)與第一參考半幀(4220)比較,以確定半幀(4220,4210)之間是否發(fā)生褪色。編碼器使用褪色檢測(cè)模塊(4230)獨(dú)立地將當(dāng)前P半幀(4210)與第二參考半幀(4225)比較以確定那些半幀(4225,4210)之間是否發(fā)生褪色。編碼器基于褪色檢測(cè)的結(jié)果生成一個(gè)或多個(gè)“褪色開(kāi)”或“褪色關(guān)”信號(hào)(4240)。信號(hào)指示是否要使用褪色補(bǔ)償,并且如果是,是僅在參考半幀(4220,4225)的第一、僅在第二還是在兩個(gè)上使用褪色補(bǔ)償。如果要對(duì)第一參考半幀(4220)進(jìn)行褪色補(bǔ)償,則褪色估計(jì)模塊(4250)估計(jì)第一參考半幀(4220)的褪色參數(shù)(4260)。(褪色估計(jì)細(xì)節(jié)在下面討論。)同樣,如果要對(duì)第二參考半幀(4225)進(jìn)行褪色補(bǔ)償,則褪色估計(jì)模塊(4250)獨(dú)立地估計(jì)第二參考半幀的褪色參數(shù)。褪色補(bǔ)償模塊(4270,4275)使用褪色參數(shù)(4260)來(lái)重新映射一個(gè)或兩個(gè)參考半幀(4220)。盡管圖42示出兩個(gè)褪色補(bǔ)償模塊(4270,4275)(每參考半幀一個(gè)),但可供替換地,編碼器框架(4200)包括單個(gè)褪色補(bǔ)償模塊,它在任一參考半幀(4220,4225)上操作。其它編碼器模塊(4280)(例如,運(yùn)動(dòng)估計(jì)和補(bǔ)償,頻率變換器和量化模塊)壓縮當(dāng)前P半幀(4210)。編碼器輸出運(yùn)動(dòng)矢量、殘差和其它信息(4290),它們定義編碼的P半幀(4210)。除了具有移位運(yùn)動(dòng)矢量的運(yùn)動(dòng)估計(jì)/補(bǔ)償之外,框架(4200)可在多種多樣的基于運(yùn)動(dòng)補(bǔ)償?shù)囊曨l編解碼器中應(yīng)用。圖43示出執(zhí)行強(qiáng)度補(bǔ)償?shù)氖纠越獯a器框架(4300)。解碼器產(chǎn)生解碼的P半幀(4310)。要解碼經(jīng)編碼的褪色補(bǔ)償P半幀,解碼器使用褪色補(bǔ)償模塊(4370,4375)在一個(gè)或兩個(gè)先前解碼的參考半幀(4320,4325)上執(zhí)行褪色補(bǔ)償??晒┨鎿Q地,解碼器框架(4300)包括單個(gè)褪色補(bǔ)償模塊,它在任一參考半幀(4320,4325)上操作。如果褪色開(kāi)/關(guān)信號(hào)(4340)指示為第一參考半幀(4320)和P半幀(4310)使用CN101902635A說(shuō)明書(shū)45/67頁(yè)褪色補(bǔ)償,則解碼器在第一參考半幀(4320)上執(zhí)行褪色補(bǔ)償。同樣,如果褪色開(kāi)/關(guān)信號(hào)(4340)指示要為第二參考半幀(4325)和P半幀(4310)使用褪色補(bǔ)償,則解碼器在第二參考半幀(4325)上執(zhí)行褪色補(bǔ)償。解碼器使用在第一和第二參考半幀(4320,4325)的褪色估計(jì)期間獲得的相應(yīng)褪色參數(shù)集來(lái)執(zhí)行褪色補(bǔ)償(如在編碼器中所做的)。如果褪色補(bǔ)償是關(guān),則褪色補(bǔ)償是完全相同的操作(即輸出=輸入)。其它解碼器模塊(4360)(例如,運(yùn)動(dòng)補(bǔ)償、反頻率變換器和反量化模塊)使用由編碼器提供的運(yùn)動(dòng)矢量、殘差和其它信息(4390)來(lái)解壓縮經(jīng)編碼的P半幀(4310)。D.參數(shù)化和補(bǔ)償在P-半幀與第一參考半幀之間和/或在P-半幀與第二參考半幀之間,參數(shù)表示褪色、混色、變形或其它改變。隨后在褪色補(bǔ)償中應(yīng)用這些參數(shù)。在視頻編輯中,合成褪色有時(shí)是通過(guò)應(yīng)用簡(jiǎn)單的象素級(jí)線性變換于亮度和色度通道來(lái)實(shí)現(xiàn)的。同樣,交叉褪色有時(shí)作為兩個(gè)視頻序列的線性和來(lái)實(shí)現(xiàn),其中分量隨著時(shí)間過(guò)去而改變。因此,在一些實(shí)施例中,褪色或其它強(qiáng)度補(bǔ)償調(diào)整是作為象素級(jí)線性變換來(lái)參數(shù)化的,而交叉褪色是作為線性和來(lái)參數(shù)化的。假定I(η)是P半幀η,而I(n-l)是一個(gè)參考半幀。在運(yùn)動(dòng)小的地方,通過(guò)下列方程中的一階關(guān)系來(lái)模擬簡(jiǎn)單的褪色。由于視頻序列中可能的運(yùn)動(dòng),在該方程中的關(guān)系是近似的。I(n)^Cll(n-l)+Bi,其中褪色參數(shù)Bl和Cl分別對(duì)應(yīng)于參考半幀的明亮度與對(duì)比度變化。(參數(shù)B2和C2分別對(duì)應(yīng)于其它參考半幀的明亮度和對(duì)比度變化。)當(dāng)非線性褪色發(fā)生時(shí),一階分量一般是大部分變化的主要原因。從圖象序列U(n)到圖象序列V(n)的交叉褪色可以由下列方程中的關(guān)系來(lái)模擬。再一次,由于序列中可能的運(yùn)動(dòng),在該方程中的關(guān)系是近似的。其中η0表示交叉褪色的開(kāi)始,而η1/α表示交叉褪色的結(jié)束。對(duì)于跨若干半幀的交叉褪色,α小。在交叉褪色的開(kāi)始處,第η個(gè)半幀接近第η-1個(gè)半幀的衰減(對(duì)比度<1)版本。到結(jié)束時(shí),第η個(gè)半幀是第η-1個(gè)半幀的放大(對(duì)比度>1)版本。編碼器通過(guò)重新映射參考半幀來(lái)完成強(qiáng)度補(bǔ)償。編碼器在逐個(gè)象素的基礎(chǔ)上或者在某種其它基礎(chǔ)上重新映射參考半幀。原始的未重新映射的參考半幀實(shí)際上被丟棄(盡管在某些實(shí)現(xiàn)中,未重新映射的參考半幀仍可用于運(yùn)動(dòng)補(bǔ)償)。下面的線性規(guī)則按照兩個(gè)參數(shù)Bl和Cl將參考半幀R的亮度值重新映射到經(jīng)重新映射的參考半幀及參考半幀的亮度值是按對(duì)比度值比例縮放(或“加權(quán)”)的,并且按照明亮度值平移(即通過(guò)加一個(gè)偏移)。對(duì)于色度,重新映射遵循以下規(guī)則R≈C1{R-μ)+μ,其中μ是色度值的平均值。在一個(gè)實(shí)施例中,假定128是色度值的無(wú)符號(hào)八比特的平均值表示。這個(gè)用于色度重新映射的規(guī)則不使用明亮度分量。在一些實(shí)施例中,兩個(gè)參考的線性重新映射擴(kuò)展到較高階項(xiàng)。例如,將R的亮度值重新映射到及的二次方程是^≈Cl1T2+Cl2T+51.其它實(shí)施例使用其它重新映射規(guī)則。在這樣的重新映射規(guī)則的一個(gè)類(lèi)別中,對(duì)于非線性褪色,用非線性映射代替線性映射。褪色補(bǔ)償可在運(yùn)動(dòng)補(bǔ)償之前應(yīng)用于參考半幀。或者,可在運(yùn)動(dòng)補(bǔ)償期間需要的時(shí)候應(yīng)用于參考半幀,例如,僅應(yīng)用于運(yùn)動(dòng)矢量實(shí)際參考的參考半幀的那些區(qū)域。Ε.參數(shù)的估計(jì)估計(jì)是在編碼過(guò)程中的計(jì)算補(bǔ)償參數(shù)的過(guò)程。諸如圖42的框架(4200)中的編碼器等編碼器在編碼期間計(jì)算明亮度(Bi,Β2)和對(duì)比度(Cl,C2)。可供替換地,這樣一個(gè)編碼器計(jì)算其它補(bǔ)償參數(shù)。為加快估計(jì),編碼器獨(dú)立地為每個(gè)殘留誤差考慮和估計(jì)參數(shù)。而且,編碼器只分析亮度通道。可供替換地,當(dāng)更多的計(jì)算資源可用時(shí),編碼器在分析中包括色度。例如,編碼器求解第一參考半幀的亮度和色度重新映射方程中的Cl(或C2),不只是亮度,以使Cl(或C2)更健壯。在褪色估計(jì)期間忽略場(chǎng)景中的運(yùn)動(dòng)。這基于以下觀察結(jié)果(a)褪色和交叉褪色一般在靜止或低運(yùn)動(dòng)場(chǎng)景中發(fā)生,以及(b)在高運(yùn)動(dòng)場(chǎng)景中的強(qiáng)度補(bǔ)償?shù)男в梅浅5?。可供替換地,編碼器聯(lián)合地求解褪色補(bǔ)償參數(shù)和運(yùn)動(dòng)信息。運(yùn)動(dòng)信息隨后用于在該技術(shù)的后面階段或在某個(gè)其它時(shí)間進(jìn)一步提高褪色補(bǔ)償參數(shù)的準(zhǔn)確性。使用運(yùn)動(dòng)信息的一種方法是從褪色估計(jì)計(jì)算中省略檢測(cè)到移動(dòng)的參考幀的那些部分。Σabs(Kn)-R)或Σ^(八…_灼的絕對(duì)誤差和用作確定褪色的存在和參數(shù)的度量??晒┨鎿Q地,編碼器使用其它或附加度量,諸如相同誤差項(xiàng)上的均方誤差或平均均方誤差和,或者編碼器使用不同的誤差項(xiàng)。編碼器可在滿足退出條件,諸如下面描述的條件時(shí)結(jié)束估計(jì)。對(duì)于另一個(gè)退出條件,編碼器檢查對(duì)比度參數(shù)Cl(或C2)在開(kāi)始時(shí)或者在估計(jì)的中間階段是否接近1.0(在一個(gè)實(shí)現(xiàn)中,.99<C<1.02),并且如果是,則結(jié)束該技術(shù)。編碼器通過(guò)下采樣當(dāng)前半幀和所選擇的參考半幀(第一或第二)來(lái)開(kāi)始估計(jì)。在一個(gè)實(shí)現(xiàn)中,編碼器在水平和垂直方向按照因子4進(jìn)行下采樣。可供替換地,編碼器按照另一個(gè)因子進(jìn)行下取樣,或者根本就不進(jìn)行下采樣。編碼器隨后計(jì)算Σabs(Id(n)-Rd)在當(dāng)前和參考半幀的較低分辨率版本Id(n)和Rd上的絕對(duì)誤差和。絕對(duì)誤差和測(cè)量下采樣的當(dāng)前半幀與下采樣的參考半幀之間在值方面的差異。如果絕對(duì)誤差和比某個(gè)閾值(例如預(yù)定的差異測(cè)量)小,則編碼器推定沒(méi)有褪色發(fā)生過(guò)并且不使用褪色補(bǔ)償。否則,編碼器估計(jì)明亮度Bl(或B2)和對(duì)比度Cl(或C2)參數(shù)。第一截除估計(jì)(cutestimates)是通過(guò)按照不同參數(shù)值的Rd模擬Id(n)而獲得的。例如,明亮度和對(duì)比度參數(shù)是通過(guò)在整個(gè)下采樣的半幀上的線性回歸獲得的?;蛘?,編碼器使用其它形式的統(tǒng)計(jì)分析,諸如總最小二乘方、最小平方中值等,用于更健壯的分析。例如,編碼器最小化誤差項(xiàng)Id(n)-Rd的MSE或SSE。在有些環(huán)境下,MSE和SSE不是健壯的,因此編碼器還測(cè)試誤差項(xiàng)的絕對(duì)誤差和。編碼器丟棄特定點(diǎn)的高誤差值(這可能是由于運(yùn)動(dòng)而不是褪色)。量化和反量化第一截除參數(shù)以保證它們位于許可范圍內(nèi)并且測(cè)試順應(yīng)性。在一些實(shí)施例中,對(duì)于典型的八比特深度成象,這些參數(shù)各自量化為6比特。Bl(或Β2)取從-32到31的整數(shù)值(表示為有符號(hào)的六比特整數(shù))。Cl(或C2)從0.5到1.484375變化,以均勻的步長(zhǎng)0.015625(1/64),對(duì)應(yīng)于Cl(或C2)的0至63量化值。量化是通過(guò)舍入Bl(或Β2)和Cl(或C2)到最接收的有效反量化值并且選取合適的二進(jìn)制索引來(lái)執(zhí)行的。編碼器計(jì)算原始的有界的絕對(duì)誤差和(SOrgBnd)和重新映射的有界的絕對(duì)誤差和(SRmpBnd)。在一些實(shí)施例中,編碼器使用適合度分析來(lái)計(jì)算這些和。對(duì)于原始分辨率的隨機(jī)或偽隨機(jī)象素集,編碼器計(jì)算重新映射的有界的絕對(duì)誤差和Σbabs(I(n)-CfR-Bf),其中babs(x)=min(abs(x),M)用于某個(gè)界限M,諸如正在編碼的半幀的量化參數(shù)的倍數(shù)。界限M在量化參數(shù)粗略時(shí)較高,而在量化參數(shù)精細(xì)時(shí)較低。編碼器還累計(jì)原始的有界的絕對(duì)誤差和ΣbabS(I(n)-R)。如果計(jì)算資源可用,則編碼器可計(jì)算整個(gè)半幀上的有界的誤差和?;谠己椭匦掠成涞挠薪绲慕^對(duì)誤差和的相對(duì)值,編碼器確定是否使用褪色補(bǔ)償。例如,在一些實(shí)施例中,編碼器不執(zhí)行褪色補(bǔ)償,除非重新映射的有界的絕對(duì)誤差和小于或等于原始的有界的絕對(duì)誤差和的某個(gè)閾值百分比ο。在一個(gè)實(shí)現(xiàn)中,ο=.95。如果使用褪色補(bǔ)償,則編碼器重新計(jì)算褪色參數(shù),這次基于I(η)和R之間的線性回歸但在全分辨率上。為節(jié)省計(jì)算時(shí)間,編碼器可以執(zhí)行在半幀的隨機(jī)或偽隨機(jī)采樣上的重復(fù)的線性回歸。再一次,可供替換地,編碼器可以使用其它形式的統(tǒng)計(jì)分析(例如,總最小二乘方、最小平方中值等)用于更健壯的分析。在一些實(shí)現(xiàn)中,編碼器允許一種特殊情況,其中Cl(或C2)的重構(gòu)值是-1。該特殊情況是由等于0的Cl(或2)的句法元素來(lái)用信號(hào)表示的。在這個(gè)“倒置”模式中,在按Bl(或Β2)平移之間先倒置參考半幀,并且Bl(或Β2)的范圍是以均勻步長(zhǎng)2的193到319??晒┨鎿Q地,部分或全部褪色補(bǔ)償參數(shù)使用另一種表示,或者使用其它和/或附加參數(shù)。F.信號(hào)表示在高層上,用信號(hào)表示的褪色補(bǔ)償信息包括⑴補(bǔ)償開(kāi)/關(guān)信息和(2)補(bǔ)償參數(shù)。開(kāi)/關(guān)信息可進(jìn)一步包括(a)整體允許還是不允許褪色補(bǔ)償(例如,對(duì)于整個(gè)序列);(b)如果允許褪色補(bǔ)償,褪色補(bǔ)償是否用于一個(gè)特定的P半幀;以及(c)如果褪色補(bǔ)償用于一個(gè)特定的P半幀,則應(yīng)該由褪色補(bǔ)償調(diào)整哪些參考半幀。當(dāng)褪色補(bǔ)償用于參考半幀時(shí),要應(yīng)用的褪色補(bǔ)償參數(shù)如下。1.整體開(kāi)/關(guān)信號(hào)表示在序列級(jí)上,一個(gè)比特指示是否對(duì)序列允許褪色補(bǔ)償。如果允許褪色補(bǔ)償,則后面的元素指示何時(shí)和如何執(zhí)行它??晒┨鎿Q地,在某個(gè)其它句法級(jí)上允許/禁止褪色補(bǔ)償。或者,總是允許褪色補(bǔ)償和跳過(guò)整體開(kāi)/關(guān)信號(hào)表示。2.P半幀開(kāi)/關(guān)信號(hào)表示如果允許褪色補(bǔ)償,則一個(gè)或多個(gè)附加信號(hào)指示何時(shí)使用褪色補(bǔ)償。在典型的隔行掃描視頻序列的半幀中,強(qiáng)度補(bǔ)償?shù)陌l(fā)生是很少的。有可能通過(guò)每半幀加一個(gè)比特來(lái)用信號(hào)表示P半幀的褪色補(bǔ)償?shù)氖褂?例如在半幀級(jí)上用信號(hào)表示的一個(gè)比特)。然而,更經(jīng)濟(jì)的是與其它信息一起聯(lián)合地用信號(hào)表示褪色補(bǔ)償?shù)氖褂?。一個(gè)選項(xiàng)是與運(yùn)動(dòng)矢量模式(例如,運(yùn)動(dòng)矢量的數(shù)量和配置、子象素內(nèi)插方案等)一起聯(lián)合地用信號(hào)表示P半幀的褪色補(bǔ)償?shù)氖褂?。例如,VLC聯(lián)合地指示最不常用的運(yùn)動(dòng)矢量模式和P半幀的褪色補(bǔ)償?shù)募せ睢?duì)于其它細(xì)節(jié),見(jiàn)美國(guó)專(zhuān)利申請(qǐng)公開(kāi)號(hào)2003-0206593-A1,標(biāo)題為“FadingEstimation/Compensation(褪色估計(jì)/補(bǔ)償)”?;蛘撸琍半幀的褪色補(bǔ)償?shù)氖褂?不使用與運(yùn)動(dòng)矢量模式信息一起用信號(hào)表示,如在下面的若干組合實(shí)現(xiàn)中描述的。見(jiàn)章節(jié)XII,MVMODE和MVM0DE2元素??晒┨鎿Q地,使用用于用信號(hào)表示P半幀褪色補(bǔ)償開(kāi)/關(guān)信息的另一種機(jī)制。3.參考半幀開(kāi)/關(guān)信號(hào)表示如果褪色補(bǔ)償用于P半幀,則可以有若干選項(xiàng)讓參考半幀用于經(jīng)受褪色補(bǔ)償。當(dāng)P半幀使用褪色補(bǔ)償并且具有兩個(gè)參考半幀時(shí),有三種情況。執(zhí)行褪色補(bǔ)償用于(1)兩個(gè)參考半幀;(2)僅第一參考半幀(例如,時(shí)間上第二最近的參考半幀);或者(3)僅第二參考半幀(例如,時(shí)間上最近的參考半幀)。褪色補(bǔ)償參考半幀模式信息可對(duì)每P半幀用信號(hào)表示為一個(gè)FLC或VLC。圖44中的表顯示一組用于元素INTC0MPFIELD的模式信息的VLC,這在P半幀頭部中用信號(hào)表示??晒┨鎿Q地,圖47G中的表或其它表在半幀級(jí)或另一句法級(jí)上使用。在一些實(shí)現(xiàn)中,褪色補(bǔ)償?shù)膮⒖及霂J绞菫槿縋半幀用信號(hào)表示的。可供替換地,對(duì)于使用褪色補(bǔ)償?shù)?參考半幀P半幀,跳過(guò)參考半幀模式的信號(hào)表示,因?yàn)橥噬a(bǔ)償自動(dòng)地應(yīng)用于單個(gè)參考半幀。4.褪色補(bǔ)償參數(shù)信號(hào)表示如果褪色補(bǔ)償用于參考半幀,則用信號(hào)表示參考半幀的褪色補(bǔ)償參數(shù)。例如,第一組褪色補(bǔ)償參數(shù)存在于P半幀的頭部中。如果褪色補(bǔ)償只用于一個(gè)參考半幀,則第一組參數(shù)用于那個(gè)參考半幀。然而如果褪色補(bǔ)償用于P半幀的兩個(gè)參考半幀,則第一組參數(shù)用于一個(gè)參考半幀,而第二組褪色補(bǔ)償參數(shù)存在于其它參考半幀的褪色補(bǔ)償?shù)念^部中。例如,每組褪色補(bǔ)償參數(shù)包括對(duì)比度參數(shù)和明亮度參數(shù)。在一個(gè)組合實(shí)現(xiàn)中,第一組參數(shù)包括LUMSCALE1和LUMSHIFT1元素,當(dāng)為P半幀用信號(hào)表示強(qiáng)度補(bǔ)償時(shí),它們存在于P半幀頭部中。如果INTC0MPFIELD指示兩個(gè)參考半幀或者只有第二最近的參考半幀使用褪色補(bǔ)償,則LUMSCALE1和LUMSHIFT1應(yīng)用于第二最近參考半幀。否則(INTC0MPFIELD指示只有最近的參考半幀使用褪色補(bǔ)償),LUMSCALE1和LUMSHIFT1應(yīng)用于最近參考半幀。當(dāng)為P半幀用信號(hào)表示強(qiáng)度補(bǔ)償并且INTC0MPFIELD指示兩個(gè)參考半幀使用褪色補(bǔ)償時(shí),包括LUMSCALE2和LUMSHIFT2元素的第二組參數(shù)存在于P半幀頭部。LUMSCALE2和LUMSHIFT2應(yīng)用于較近的參考半幀。LUMSHIFT1、LUMSCALE1、LUMSHIFT2和LUMSCALE2對(duì)應(yīng)于參數(shù)Bi、Cl、B2和C2。LUMSCALE1,LUMSCALE2,LUMSHIFT1和LUMSHIFT2各自使用一個(gè)6比特FLC來(lái)用信號(hào)表示??晒┨鎿Q地,這些參數(shù)是使用VLC用信號(hào)表示的。圖56示出用于基于LUMSHIFT1和LUMSCALE1在第一參考半幀上執(zhí)行褪色補(bǔ)償?shù)膫未a。為基于LUMSHIFT2和LUMSCALE2在第二參考半幀上的褪色補(bǔ)償執(zhí)行類(lèi)似的過(guò)程。可供替換地,褪色補(bǔ)償參數(shù)具有不同表示和/或用不同的信號(hào)表示機(jī)制來(lái)用信號(hào)表不。G.估計(jì)和信號(hào)表示技術(shù)諸如圖20的編碼器(2000)或圖42的框架(4200)中的編碼器等編碼器執(zhí)行具有兩個(gè)參考半幀的隔行掃描P半幀的褪色估計(jì)和相應(yīng)的信號(hào)表示。例如,編碼器執(zhí)行圖45A中所示的技術(shù)(4500)。編碼器在P半幀的兩個(gè)參考半幀的第一個(gè)上執(zhí)行褪色檢測(cè)(4510)。如果檢測(cè)到褪色(判定4512出來(lái)的“是”路徑),則編碼器相對(duì)于第一參考半幀執(zhí)行P半幀的褪色估計(jì)(4514),這產(chǎn)生第一參考半幀的褪色補(bǔ)償參數(shù)。編碼器還在P半幀的兩個(gè)參考半幀的第二個(gè)上執(zhí)行褪色檢測(cè)(4520)。如果檢測(cè)到褪色(判定4522出來(lái)的“是”路徑),則編碼器相對(duì)于第二參考半幀執(zhí)行P半幀的褪色估計(jì)(4524),這產(chǎn)生第二參考半幀的褪色補(bǔ)償參數(shù)。例如,編碼器執(zhí)行褪色檢測(cè)和估計(jì),如在標(biāo)題為“褪色參數(shù)的估計(jì)”一節(jié)中描述的??晒┨鎿Q地,編碼器使用不同的技術(shù)來(lái)檢測(cè)褪色和/或獲得褪色補(bǔ)償參數(shù)。如果當(dāng)前P半幀只有一個(gè)參考半幀,則第二參考半幀的操作可被跳過(guò)。編碼器用信號(hào)表示(4530)褪色補(bǔ)償對(duì)于P半幀是開(kāi)還是關(guān)。例如,編碼器將信息與P半幀的運(yùn)動(dòng)矢量模式信息一起聯(lián)合編碼??晒┨鎿Q地,編碼器使用其它和/或附加信號(hào)來(lái)指示褪色補(bǔ)償對(duì)于P半幀是開(kāi)還是關(guān)。如果褪色補(bǔ)償對(duì)于當(dāng)前P半幀不是開(kāi)(判定4532出來(lái)的“否”路徑),則技術(shù)(4500)結(jié)束。否則(判定4532出來(lái)的“是”路徑),編碼器用信號(hào)表示(4540)褪色補(bǔ)償?shù)膮⒖及霂J?。例如,編碼器用信號(hào)表示一個(gè)VLC,它指示褪色補(bǔ)償用于兩個(gè)參考半幀、僅第一參考半幀或僅第二參考半幀。可供替換地,編碼器使用另一種信號(hào)表示機(jī)制(例如FLC)來(lái)指示參考半幀模式。在這個(gè)路徑中,編碼器還用信號(hào)表示(4542)在褪色估計(jì)中計(jì)算的第一組和/或第二組褪色補(bǔ)償參數(shù)。例如,編碼器使用如在章節(jié)XI.F中描述的信號(hào)表示??晒┨鎿Q地,編碼器使用其它信號(hào)表示。盡管編碼器一般還執(zhí)行褪色補(bǔ)償、運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,但為了簡(jiǎn)單起見(jiàn),圖45A沒(méi)有示出這些操作。而且,褪色估計(jì)可在運(yùn)動(dòng)估計(jì)之前或同時(shí)執(zhí)行。圖45A沒(méi)有示出可將技術(shù)(4500)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)描述各種組合實(shí)現(xiàn)。H.解碼和補(bǔ)償技術(shù)諸如圖21的解碼器(2100)或者圖43的框架(4300)中的解碼器等解碼器為具有兩個(gè)參考半幀的隔行掃描P半幀執(zhí)行解碼和褪色補(bǔ)償。例如,解碼器執(zhí)行圖45B中所示的技術(shù)(4550)。解碼器接收和解碼(4560)指示褪色補(bǔ)償對(duì)于P半幀是開(kāi)還是關(guān)的一個(gè)或多個(gè)信號(hào)。例如,將信息與P半幀的運(yùn)動(dòng)矢量模式信息一起聯(lián)合編碼??晒┨鎿Q地,解碼器接收和解碼指示褪色補(bǔ)償對(duì)于P半幀是開(kāi)還是關(guān)的其它和/或附加的信號(hào)。如果褪色補(bǔ)償對(duì)于P半幀不是開(kāi)(判定4562出來(lái)的“否”路徑),則技術(shù)(4550)結(jié)束。否則(判定4562出來(lái)的“是”路徑),解碼器接收和解碼(4570)褪色補(bǔ)償?shù)膮⒖及霂J?。例如,解碼器接收和解碼指示褪色補(bǔ)償用于兩個(gè)參考半幀、僅第一參考半幀還是僅第二參考半幀的VLC。可供替換地,解碼器結(jié)合另一種信號(hào)表示機(jī)制(例如FLC)操作以53確定參考半幀模式。在這個(gè)路徑中,解碼器還接收和解碼(4572)第一組褪色補(bǔ)償參數(shù)。例如,解碼器與如章節(jié)XI.F中描述的信號(hào)表示一起工作??晒┨鎿Q地,解碼器與其它信號(hào)表示一起工作。如果褪色補(bǔ)償是僅為兩個(gè)參考半幀之一執(zhí)行的(判定4575出來(lái)的“否”路徑),則第一組參數(shù)用于第一或第二參考半幀,如由參考半幀模式指示。解碼器用第一組褪色補(bǔ)償參數(shù)在所指示的參考半幀上執(zhí)行褪色補(bǔ)償(4592),并且技術(shù)(4500)結(jié)束。否則,褪色補(bǔ)償是為全部?jī)蓚€(gè)參考半幀執(zhí)行的(判定4575出來(lái)的“是”路徑),并且解碼器接收和解碼(4580)第二組褪色補(bǔ)償參數(shù)。例如,解碼器與如在章節(jié)XI.F中描述的信號(hào)表示一起工作??晒┨鎿Q地,解碼器與其它信號(hào)表示一起工作。在這種情況下,第一組參數(shù)用于兩個(gè)參考半幀之一,并且第二組參數(shù)用于另一個(gè)。解碼器用第一組參數(shù)在一個(gè)參考半幀上執(zhí)行褪色補(bǔ)償(4592),并且用第二組參數(shù)在另一參考半幀上執(zhí)行褪色補(bǔ)償(4582)。為了簡(jiǎn)單起見(jiàn),圖45B沒(méi)有示出可將技術(shù)(4550)與編碼和解碼的其它方面集成的各種方法。在章節(jié)XII中詳細(xì)地描述了各種組合實(shí)現(xiàn)。XIL組合實(shí)現(xiàn)現(xiàn)在描述比特流句法的詳細(xì)組合實(shí)現(xiàn),其中重點(diǎn)在于隔行掃描P半幀。下面的描述包括第一組合實(shí)現(xiàn)和一個(gè)替換的第二組合實(shí)現(xiàn)。另外,于2004年五月27日提交的美國(guó)專(zhuān)利申請(qǐng)序列號(hào)10/857,473揭示了第三組合實(shí)現(xiàn)的諸方面。盡管重點(diǎn)在于隔行掃描P半幀,但在本節(jié)的各種位置中,著眼于句法元素、語(yǔ)義和解碼對(duì)于其它圖像類(lèi)型(例如,隔行掃描P和B幀、隔行掃描I、Bi、PI和B半幀)的適用性。A.第一組合實(shí)現(xiàn)中的序列和語(yǔ)義在第一組合實(shí)現(xiàn)中,壓縮的視頻序列是由結(jié)構(gòu)化成分等級(jí)的層中的數(shù)據(jù)構(gòu)成的圖像層,宏塊層和塊層。序列層先于序列,并且入口點(diǎn)層可散布在序列中。圖46A至46E示出構(gòu)成各種層的比特流元素。1.序列層句法和語(yǔ)義序列級(jí)頭部包含序列級(jí)參數(shù),用于解碼壓縮圖像的序列。在有些簡(jiǎn)檔(profile)中,與序列有關(guān)的元數(shù)據(jù)通過(guò)傳輸層或其它手段傳送到解碼器。然而對(duì)于具有隔行掃描P半幀的簡(jiǎn)檔(高級(jí)簡(jiǎn)檔),這個(gè)頭部句法是視頻數(shù)據(jù)比特流的一部分。圖46A示出構(gòu)成高級(jí)簡(jiǎn)檔的序列頭部的句法元素。PROFILE(4601)和LEVEL(4602)元素分別指定用于編碼序列的簡(jiǎn)檔和簡(jiǎn)檔中的編碼等級(jí)。特別感興趣的隔行掃描P半幀的INTERLACE(4603)元素是1比特的句法元素,它用信號(hào)表示源內(nèi)容是逐行掃描(INTERLACE=0)還是隔行掃描(INTERLACE=1)。獨(dú)立的幀在INTERLACE=1時(shí)仍可使用逐行掃描或隔行掃描句法來(lái)編碼。2.入口點(diǎn)層句法和語(yǔ)義入口點(diǎn)頭部存在于高級(jí)簡(jiǎn)檔中。入口點(diǎn)有兩個(gè)目的。首先,它用于用信號(hào)表示比特流內(nèi)的隨機(jī)訪問(wèn)點(diǎn)?;?,它用于用信號(hào)表示在編碼控制參數(shù)方面的變化。圖46B示出構(gòu)成入口點(diǎn)層的句法元素。特別感興趣的隔行掃描P半幀的參考幀距離標(biāo)志REFDIST_FLAG(4611)元素是1比特的句法元素。REFDIST_FLAG=1指示REFDIST(4624)元素存在于I/I、I/P、P/I或P/P半幀圖像頭部中。REFDIST_FLAG=0指示REFDIST(4624)元素不存在于1/1、Ι/Ρ、P/I或P/P半幀圖像頭部。擴(kuò)展的運(yùn)動(dòng)矢量標(biāo)志EXTENDED_MV(4612)元素是1比特的元素,它指示擴(kuò)展的運(yùn)動(dòng)矢量能力是開(kāi)(EXTENDED_MV=1)還是關(guān)(EXTENDED_MV=0)。擴(kuò)展的差分運(yùn)動(dòng)矢量范圍標(biāo)志EXTENDED_DMV(4613)元素是1比特元素,如果EXTENDED_MV=1則它存在。如果EXTENDED_DMV=1,則在擴(kuò)展差分運(yùn)動(dòng)矢量范圍內(nèi)的運(yùn)動(dòng)矢量差分是在入口點(diǎn)段內(nèi)的圖像級(jí)上用信號(hào)表示的。如果EXTENDED_DMV=0,則不用信號(hào)表示在擴(kuò)展的差分運(yùn)動(dòng)矢量范圍內(nèi)的運(yùn)動(dòng)矢量差分。擴(kuò)展的差分運(yùn)動(dòng)矢量范圍是用于隔行掃描P和B圖像的選項(xiàng),包括隔行掃描P半幀和P幀以及隔行掃描B半幀和B幀。3.圖像級(jí)句法和語(yǔ)義圖像的數(shù)據(jù)由圖像頭部和跟隨其后的宏塊層數(shù)據(jù)組成。圖46C示出構(gòu)成隔行掃描半幀圖像的幀頭部的比特流元素。在下列描述中,重點(diǎn)放在與隔行掃描P半幀一起使用的元素上,但圖46C所示的頭部可應(yīng)用于隔行掃描I、P、B和BI半幀的各種組合。幀編碼模式FCM(4621)元素只存在于高級(jí)簡(jiǎn)檔中,并且僅當(dāng)序列層INTERLACE(4603)具有值1時(shí)存在。FCM(4621)指示圖像是被編碼為逐行掃描、隔行掃描半幀還是隔行掃描幀。圖47A中的表包括用于指示圖像編碼類(lèi)型與FCM的VLC。半幀圖像類(lèi)型FPTYPE(4622)元素是3比特句法元素,它存在于隔行掃描半幀圖像的圖像頭部中。FPTYPE是按照?qǐng)D47B中的表解碼的。如表所示,隔行掃描幀可包括兩個(gè)隔行掃描I半幀、一個(gè)隔行掃描I半幀和一個(gè)隔行掃描P半幀、兩個(gè)隔行掃描P半幀、兩個(gè)隔行掃描B半幀、一個(gè)隔行掃描B半幀和一個(gè)隔行掃描BI半幀或者兩個(gè)隔行掃描BI半幀。上半幀第一TFF(4623)元素是1比特元素,如果序列頭部元素PULLDOWN=1并且序列頭部元素INTERLACE=1,則存在于高級(jí)簡(jiǎn)檔圖像頭部中。TFF=1指上半幀是第一解碼的半幀。如果TFF=0,則下半幀是第一解碼的半幀。P參考距離REFDIST(4624)元素是可變大小句法元素,如果入口級(jí)標(biāo)志REFDIST_FLAG=1并且如果圖像類(lèi)型不是BB、BBI、BI/B、BI/BI,則存在于隔行掃描半幀圖像頭部中。如果REFDIST_FLAG=0,REFDIST(4624)設(shè)置為默認(rèn)值0。REFDIST(4624)指示當(dāng)前幀與參考幀之間的幀數(shù)。圖47C中的表包括用于REFDIST(4624)值的VLC。表中最后一行指示用于表示大于2的參考幀距離的碼字。這些編碼為(二進(jìn)制)11,后面是N-3個(gè)1,其中N是參考幀距離。碼字中的最后一個(gè)比特是0。REFDIST(4624)的值小于或等于16。例如N=3,VLC碼字=110,VLC大小=3,N=4,VLC碼字=1110,VLC大小=4,以及N=5,VLC碼字=11110,VLC大小=5。半幀圖像層FIELDPICLAYER(4625)元素是用于隔行掃描幀的各個(gè)隔行掃描半幀之一的數(shù)據(jù)。如果隔行掃描幀是P/P幀(FPTYPE=011),則比特流包括兩個(gè)FIELDPICLAYER(4625)元素用于兩個(gè)隔行掃描P半幀。圖46D示出構(gòu)成隔行掃描P半幀圖像的半幀圖像頭部的比特流元素。參考圖像數(shù)量NUMREF(4631)元素是存在于隔行掃描P半幀頭部中的1比特句法元素。它指示隔行掃描P半幀具有1(NUMREF=0)或2(NUMREF=1)個(gè)參考圖像。參考半幀圖像指示符REFFIELD(4632)是如果NUMREF=0則存在于隔行掃描P半幀中的1比特句法元素。它指示兩個(gè)可能的參考圖像中的哪一個(gè)由隔行掃描P半幀使用。擴(kuò)展的MV范圍標(biāo)志MVRANGE(4633)是可變大小句法元素,它通常指示運(yùn)動(dòng)矢量的擴(kuò)展范圍(即,運(yùn)動(dòng)矢量的較長(zhǎng)的可能水平和/或垂直位移)。擴(kuò)展的差分MV范圍標(biāo)志DMVRANGE(4634)是可變大小句法元素,如果EXTENDED_DMV=1則存在。圖47D中的表用于DMVRANGE(4634)元素。兩個(gè)MVRANGE(4633)和DMVRANGE(4634)用于解碼運(yùn)動(dòng)矢量差分,而且擴(kuò)展的差分運(yùn)動(dòng)矢量范圍是隔行掃描P半幀、隔行掃描幀、隔行掃描B半幀和隔行掃描B幀的選項(xiàng)。運(yùn)動(dòng)矢量模式MVMODE(4635)元素是可變大小句法元素,它用信號(hào)表示四個(gè)運(yùn)動(dòng)矢量編碼模式之一或者一個(gè)強(qiáng)度補(bǔ)償模式。運(yùn)動(dòng)矢量編碼模式包括具有運(yùn)動(dòng)補(bǔ)償?shù)牟煌酉笏貎?nèi)插規(guī)則的三個(gè)“1MV”模式。IMV表示圖像中每個(gè)宏塊具有至少一個(gè)運(yùn)動(dòng)矢量。在“混合MV”模式中,圖像中的每個(gè)宏塊可具有一個(gè)或四個(gè)運(yùn)動(dòng)矢量,或者跳過(guò)。取決于PQUANT(圖像的量化系數(shù))的值,圖47E中所示的表之一用于MVMODE(4635)元素。運(yùn)動(dòng)矢量模式2MVM0DE2(4636)元素是可變大小句法元素,如果MVMODE(4635)用信號(hào)表示強(qiáng)度補(bǔ)償則存在于隔行掃描P半幀頭部中。取決于PQUANT的值,圖47F中所示的任一表用于MVMODE(4635)元素。強(qiáng)度補(bǔ)償半幀INTC0MPFIELD(4637)是存儲(chǔ)于隔行掃描P半幀圖像頭部中的可變大小句法元素。如圖47G的表中所示,INTC0MPFIELD(4637)用于指示哪個(gè)(些)參考半幀受到強(qiáng)度補(bǔ)償。即使NUMREF=0,INTC0MPFIELD(4637)也存在。半幀圖像亮度比例1LUMSCALE1(4638)、半幀圖像亮度平移1LUMSHIFT1(4639)、半幀圖像亮度比例2LUMSCALE2(4640)和半幀圖像亮度平移2LUMSHIFT2(4641)元素各自是在強(qiáng)度補(bǔ)償中的6比特值。如果MVMODE(4635)用信號(hào)表示強(qiáng)度補(bǔ)償,則LUMSCALE1(4638)和LUMSHIFT1(4639)元素存在。如果INTC0MPFIELD(4637)元素是“1”或“00”,則LUMSCALE1(4638)和LUMSHIFT1(4639)應(yīng)用于上半幀。否則,LUMSCALE1(4638)和LUMSHIFT1(4639)應(yīng)用于下半幀。如果MVMODE(4635)用信號(hào)表示強(qiáng)度補(bǔ)償并且INTC0MPFILED(4637)元素是“1”,則LUMSCALE2(4640)和LUMSHIFT2(4641)元素存在。LUMSCALE2(4640)和LUMSHIFT2(4641)應(yīng)用于下半幀。宏塊模式表MBM0DETAB(4642)元素是固定長(zhǎng)度域,其中3比特值用于隔行掃描P半幀頭部。MBM0DETAB(4642)指示八個(gè)代碼表中的哪一個(gè)(如用3比特值指定的表0至7)用于在宏塊層中編碼/解碼宏塊模式MBM0DE(4661)句法元素。有兩組八個(gè)代碼表,并且使用的組取決于4MV宏塊在圖像中是否可能。圖47H示出可用于混合MV模式的隔行掃描P半幀中MBMODE(4661)的八個(gè)表。圖471示出可用于IMV模式的隔行掃描P半幀中的MBMODE(4661)的八個(gè)表。運(yùn)動(dòng)矢量表MVTAB(4643)元素是固定長(zhǎng)度域。對(duì)于其中NUMREF=0的隔行掃描P半幀,MVTAB(4643)是2比特句法元素,它指示四個(gè)代碼表中哪一個(gè)(如用2比特值指定的表0至3)用于解碼運(yùn)動(dòng)矢量數(shù)據(jù)。對(duì)于其中NUMREF=1的隔行掃描P半幀,MVTAB(4643)是3比特句法元素,它指示八個(gè)代碼表中的哪一個(gè)(如用三比特值指定的表0至7)用于編碼/解碼運(yùn)動(dòng)矢量數(shù)據(jù)。在隔行掃描P半幀頭部中,如果MVMODE(4635)(或者M(jìn)VM0DE2(4636),如果MVM0DE(4635)設(shè)置為強(qiáng)度補(bǔ)償)指示圖像是混合MV類(lèi)型的,則4MV塊模式表4MVBPTAB(4644)元素是2比特值。4MVBPTAB(4644)句法元素用信號(hào)表示四個(gè)表中哪一個(gè)(如用2比特值指定的表0至3)用于4MV宏塊中的4MV塊模式4MVBP(4664)句法元素。圖47J示出可用于4MVBP(4664)的四個(gè)表。隔行掃描P幀頭部(未示出)具有許多與圖46C所示的半幀編碼的隔行掃描幀頭部以及圖46D所示的隔行掃描P半幀頭部相同的元素。這些包括FCM(4621)、MVRANGE(4633)、DMVRANGE(4634)、MBM0DETAB(4642)和MVTAB(4643),盡管隔行掃描P幀的精確句法和語(yǔ)義可不同于隔行掃描P半幀。隔行掃描幀頭部還包括圖像類(lèi)型的不同元素、在IMV和4MV模式之間切換和強(qiáng)度補(bǔ)償信號(hào)表示。由于隔行掃描P幀可包括具有每宏塊兩個(gè)運(yùn)動(dòng)矢量的半幀編碼宏塊,隔行掃描幀頭部包括2運(yùn)動(dòng)矢量塊模式表2MVBPTAB元素。2MVBPTAB是存在于隔行掃描P幀中的兩個(gè)2比特值。這個(gè)句法元素用信號(hào)表示四個(gè)表中哪一個(gè)(用兩比特值指定的表0至3)用于解碼2MV半幀編碼宏塊中的2MV塊模式(2MVBP)元素。圖47K示出可用于2MVBP的四個(gè)表。隔行掃描B半幀和隔行掃描B幀具有許多隔行掃描P半幀與隔行掃描幀的相同元素。具體地,隔行掃描B半幀可包括4MVBPTAB(4644)句法元素。隔行掃描B幀包括2MVBPTAB和4MVBPTAB(4644)兩個(gè)句法元素,盡管這些元素的語(yǔ)義可以不同。4.宏塊層句法和語(yǔ)義宏塊的數(shù)據(jù)由宏塊頭部和跟隨其后的塊層組成。圖46E示出隔行掃描P半幀的宏塊層結(jié)構(gòu)。宏塊模式MBMODE(4661)元素是可變大小元素。它聯(lián)合地指示信息,諸如宏塊(1MV、4MV或幀內(nèi)編碼)的運(yùn)動(dòng)矢量的數(shù)量、對(duì)該宏塊是否存在已編碼塊模式CBPCY(4662)元素以及(在有些情況下)對(duì)該宏塊是否存在運(yùn)動(dòng)矢量差分?jǐn)?shù)據(jù)。圖47H和471示出可用于隔行掃描P半幀的MBMODE(4661)的表。運(yùn)動(dòng)矢量數(shù)據(jù)MVDATA(4663)元素是可變大小元素,它編碼運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量信息(例如水平和垂直差分)。對(duì)于具有兩個(gè)參考半幀的隔行掃描P半幀,MVDATA(4663)還編碼用于在運(yùn)動(dòng)矢量的多個(gè)可能運(yùn)動(dòng)矢量預(yù)測(cè)值之間選擇的信息。四個(gè)運(yùn)動(dòng)矢量塊模式4MVBP(4664)元素是可變大小句法元素,它可存在于隔行掃描P半幀、B半幀、幀和B幀的宏塊中。在隔行掃描P半幀、B半幀和P幀的宏塊中,如果MBMODE(4661)指示該宏塊具有4個(gè)運(yùn)動(dòng)矢量,則4MVBP(4664)元素存在。在這種情況下,4MVBP(4664)指示4個(gè)亮度塊中哪一個(gè)包含非零運(yùn)動(dòng)矢量差分。在隔行掃描B幀的宏塊中,如果MBMODE(4661)指示宏塊包含2個(gè)半幀運(yùn)動(dòng)矢量并且如果宏塊是內(nèi)插的宏塊,則4MVBP(4664)存在。在這種情況下,4MVBP(4664)指示四個(gè)運(yùn)動(dòng)矢量(上和下半幀前向運(yùn)動(dòng)矢量和上和下半幀后向運(yùn)動(dòng)矢量)中哪一個(gè)存在。兩個(gè)運(yùn)動(dòng)矢量塊模式2MVBP元素(未示出)是可變大小句法元素,它存在于隔行掃描P幀和B幀中。在隔行掃描P幀宏塊中,如果MBMODE(4661)指示宏塊具有2個(gè)半幀運(yùn)動(dòng)矢量,則2MVBP存在。在這種情況下,2MVBP指示2個(gè)半幀(上和下)中哪一個(gè)包含非零運(yùn)動(dòng)矢量差分。在隔行掃描B幀宏塊中,如果宏塊包含1個(gè)運(yùn)動(dòng)矢量并且宏塊是內(nèi)插的宏塊,則2MVBP存在。在這種情況下,2MVBP指示兩個(gè)運(yùn)動(dòng)矢量(前向和后向運(yùn)動(dòng)矢量)中哪一個(gè)存在。塊級(jí)運(yùn)動(dòng)矢量數(shù)據(jù)BLKMVDATA(4665)元素是在某些情況下存在的可變大小元素。它包含宏塊的塊的運(yùn)動(dòng)信息?;旌线\(yùn)動(dòng)矢量預(yù)測(cè)HYBRIDPRED(4666)元素是每運(yùn)動(dòng)矢量1比特句法元素,它可存在于隔行掃描P半幀的宏塊中。當(dāng)使用混合運(yùn)動(dòng)矢量預(yù)測(cè)時(shí),HYBRIDPRED(4666)指示兩個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值中哪一個(gè)要使用。5.塊層句法和語(yǔ)義隔行掃描圖像的塊層遵循逐行掃描圖像的塊層的句法和語(yǔ)義。通常,塊或子塊的DC和AC系數(shù)的信息是在塊層上用信號(hào)表示的。B.第一組合實(shí)現(xiàn)中的解碼當(dāng)視頻序列由隔行掃描視頻幀組成或者包括隔行掃描和逐行掃描幀的混合時(shí),F(xiàn)CM(4621)元素指示給定的圖像編碼為逐行掃描幀、隔行掃描半幀還是隔行掃描幀。對(duì)于編碼為隔行掃描半幀的幀,F(xiàn)PTYPE(4622)指示幀包括兩個(gè)隔行掃描I半幀、一個(gè)隔行掃描I半幀和一個(gè)隔行掃描P半幀、兩個(gè)隔行掃描P半幀、兩個(gè)隔行掃描B半幀、一個(gè)隔行掃描B半幀和一個(gè)隔行掃描BI半幀或者兩隔行掃描BI半幀。隔行掃描半幀的解碼如下。下面的章節(jié)集中于隔行掃描P半幀的解碼過(guò)程。1.隔行掃描P半幀解碼的參考隔行掃描P半幀可在運(yùn)動(dòng)補(bǔ)償中參考一個(gè)或兩個(gè)先前解碼的半幀。NUMREF(4631)元素指示當(dāng)前P半幀可參考一個(gè)還是兩個(gè)先前的參考半幀。如果NUMREF=0,則當(dāng)前P半幀只可參考一個(gè)半幀。在這種情況下,REFFIELD(4632)元素在比特流中跟隨其后。REFFIELD(4632)指示哪一個(gè)解碼的半幀用作參考。如果REFFIELD=0,則時(shí)間上最近(在顯示順序中)的I半幀或P-半幀用作參考。如果REFFIELD=1,則第二時(shí)間上最近的I半幀或P半幀用作參考。如果NUMREF=1,則當(dāng)前P半幀使用兩個(gè)時(shí)間上最近(在顯示順序中)的I半幀或P半幀作為參考。如上所述示于圖24A-24F的NUMREF=0和NUMREF=1的參考半幀圖像的示例應(yīng)用于第一組合實(shí)現(xiàn)。2.圖像類(lèi)型隔行掃描P半幀可以是兩種類(lèi)型之一1MV或混合MV。在IMVP半幀中,每個(gè)宏塊是IMV宏塊。在混合MVP半幀中,每個(gè)宏塊可被編碼為IMV或4MV宏塊,如由在每個(gè)宏塊上的MBMODE(4661)指示的。IMV或混合MV模式是由MVMODE(4635)或MVM0DE2(4636)元素為隔行掃描P半幀用信號(hào)表示的。3.宏塊模式在隔行掃描P半幀中的宏塊可以是3種可能類(lèi)型之一1MV、4MV和幀內(nèi)。MBMODE(4661)元素指示宏塊類(lèi)型(1MV、4MV或幀內(nèi)),并且還指示CBP和MV數(shù)據(jù)的存在。取決于MVMODE(4635)/MVM0DE2(4636)句法元素指示隔行掃描P半幀是混合MV還是全部1MV,MBMODE(4661)如下用信號(hào)表示信息。圖26中的表顯示MBMODE(4661)如何用信號(hào)表示有關(guān)在全部IMVP半幀中的宏塊的信息。如在圖471中所示,8個(gè)表之一用于編碼/解碼IMVP半幀的MBMODE(4661)。圖27中的表顯示MBM0DE(4661)用信號(hào)表示有關(guān)混合MVP半幀中宏塊的信息。如圖47H所示,8個(gè)表之一用于編碼/解碼混合MVP半幀的MBMODE(4661)。因而,IMV宏塊可在IMV和混合MV隔行掃描P半幀中出現(xiàn)。在IMV宏塊中,單個(gè)運(yùn)動(dòng)矢量表示宏塊中全部6個(gè)塊的當(dāng)前和參考圖像之間的位移。對(duì)于IMV宏塊,MBM0DE(4661)元素指示以下三項(xiàng)(1)宏塊類(lèi)型是IMV;(2)對(duì)該宏塊是否存在CBPCY(4662)元素;以及(3)對(duì)該宏塊是否存在MVDAI1A(4663)元素。如果MBMODE(4661)元素指示CBPCY(4662)元素存在,則CBPCY(4662)元素存在于相應(yīng)位置的宏塊層中。CBPCY(4662)指示6個(gè)塊中哪一個(gè)在塊層中編碼。如果MBMODE(4661)元素指示CBPCY(4662)不存在,則CBPCY(4662)假定等于0并且對(duì)于宏塊中6個(gè)塊的任何一個(gè)不存在塊數(shù)據(jù)。如果MBMODE(4661)元素指示MVDATA(4663)元素存在,則MVDATA(4663)元素存在于相應(yīng)位置的宏塊層中。MVDATA(4663)元素編碼運(yùn)動(dòng)矢量差分,它與運(yùn)動(dòng)矢量預(yù)測(cè)值組合起來(lái)重構(gòu)運(yùn)動(dòng)矢量。如果MBMODE(4661)元素指示MVDATA(4663)元素不存在,則運(yùn)動(dòng)矢量差分假定為零并且因此運(yùn)動(dòng)矢量等于運(yùn)動(dòng)矢量預(yù)測(cè)值。4MV宏塊出現(xiàn)在混合MVP半幀中。在4MV宏塊中,宏塊中的4個(gè)亮度塊的每一個(gè)可具有相關(guān)聯(lián)的運(yùn)動(dòng)矢量,它指示該塊的當(dāng)前和參考圖像之間的位移。色度塊的位移是從4個(gè)亮度運(yùn)動(dòng)矢量導(dǎo)出的。當(dāng)前和參考?jí)K之間的差在塊層中編碼。對(duì)于4MV宏塊,MBMODE(4661)元素指示以下兩項(xiàng)(1)宏塊類(lèi)型是4MV;以及(2)CBPCY(4662)元素是否存在。幀內(nèi)編碼宏塊可出現(xiàn)在IMV或混合MVP半幀中。在幀內(nèi)編碼宏塊中,在不參考任何先前的圖像數(shù)據(jù)的情況下編碼全部六個(gè)塊。對(duì)于幀內(nèi)編碼宏塊,MBM0DE(4661)元素指示以下兩項(xiàng)(1)宏塊類(lèi)型是幀內(nèi)編碼;以及(2)CBPCY(4662)元素是否存在。對(duì)于幀內(nèi)編碼宏塊,當(dāng)CBPCY(4662)元素存在時(shí),指示6個(gè)塊中哪一個(gè)具有在塊層中編碼的AC系數(shù)數(shù)據(jù)。在所有情況下,DC系數(shù)對(duì)于每個(gè)塊仍存在。4.運(yùn)動(dòng)矢量塊模式4MVBP(4664)元素指示4個(gè)亮度塊中哪一個(gè)包含非零運(yùn)動(dòng)矢量差分。4MVBP(4664)被解碼為0與15之間的值,它在表示為二進(jìn)制值時(shí)表示1比特句法元素,它指示相應(yīng)亮度塊的運(yùn)動(dòng)矢量是否存在。圖34中的表顯示亮度塊與4MVBP(4664)中比特的關(guān)聯(lián)。如在圖47J中所示,4個(gè)表之一用于編碼/解碼4MVBP(4664)。對(duì)于4MVBP(4664)中4個(gè)比特位置的每一個(gè),值0指示對(duì)相應(yīng)位置中的塊不存在運(yùn)動(dòng)矢量差分(在BLKMVDATA中),并且運(yùn)動(dòng)矢量差分假定為0。值1指示對(duì)相應(yīng)位置中的塊存在運(yùn)動(dòng)矢量差分(在BLKMVDATA中)。例如,如果4MVBP(4664)解碼為二進(jìn)制值1100,則比特流包含塊0和1的BLKMVDATA(4665),并且塊2和3沒(méi)有BLKMVDATA(4665)。4MVBP(4664)相似地用于指示隔行掃描B半幀和隔行掃描P幀中4MV宏塊的運(yùn)動(dòng)矢量差分信息的存在/不存在。在隔行掃描P幀或隔行掃描B中的半幀編碼的宏塊可包括2個(gè)運(yùn)動(dòng)矢量。在2個(gè)半幀MV宏塊的情況下,2MVBP元素指示兩個(gè)半幀中哪一個(gè)具有非零的差分運(yùn)動(dòng)矢量。如圖47K所示,4個(gè)表之一用于編碼/解碼2MVBP。5.半幀圖像坐標(biāo)系統(tǒng)在下列章節(jié)中,運(yùn)動(dòng)矢量單位是以半幀圖像單位表示的。例如,如果運(yùn)動(dòng)矢量指示位移為+6(以四分之一象素為單位)的垂直分量,則這指示1/2的半幀圖像行的位移。圖48示出當(dāng)前和參考半幀極性(相反和相同)的兩個(gè)組合的運(yùn)動(dòng)矢量的垂直分量與空間位置之間的關(guān)系。圖48示出當(dāng)前和參考半幀中一個(gè)垂直象素列。圓圈表示整數(shù)象素位置并且X表示四分之一象素位置。值0指示當(dāng)前和參考半幀位置之間沒(méi)有垂直位移。如果當(dāng)前和參考半幀是相反極性的,則0垂直矢量指向參考半幀中半幀行之間中間的位置(1/2象素平移)。如果當(dāng)前和參考半幀是相同極性的,則0垂直矢量指向參考半幀中相應(yīng)的半幀行。6.解碼運(yùn)動(dòng)矢量差分MVDATA(4663)和BLKMVDATA(4665)元素編碼宏塊中宏塊或塊的運(yùn)動(dòng)信息。IMV宏塊具有單個(gè)MVDATA(4663)元素,而4MV宏塊可具有零到四個(gè)BLMMVDATA(4665)。根據(jù)MVDATA(4663)或BLKMVDATA(4665)計(jì)算運(yùn)動(dòng)矢量差分的過(guò)程對(duì)于一個(gè)參考(NUMREF=0)情況和兩個(gè)參考(NUMREF=1)情況不同。在具有一個(gè)參考半幀的半幀圖像中,每個(gè)MVDATA(4663)或BLKMVDATA(4665)句法元素聯(lián)合地編碼以下兩項(xiàng)(1)水平運(yùn)動(dòng)矢量差分分量;和(2)垂直運(yùn)動(dòng)矢量差分分量。MVDATA(4663)或BLKMVDATA(4665)元素是一個(gè)VLC,之后跟隨一個(gè)FLC。VLC的值確定FLC的尺寸。MVTAB(4643)句法元素指定用于解碼VLC的表。圖49A示出偽代碼,它示出對(duì)具有一個(gè)參考半幀的半幀圖像中塊或宏塊的運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量差分解碼。在該偽代碼中,計(jì)算值dmv_X和dmv_y,其中dmv_X是差分水平運(yùn)動(dòng)矢量分量而dmv_y是差分垂直運(yùn)動(dòng)矢量分量。變量k_x和k_y是固定長(zhǎng)度值,它們?nèi)Q于如由MVRANGE(4633)按照?qǐng)D49B所示的表定義的運(yùn)動(dòng)矢量范圍。變量extencLx用于擴(kuò)展的范圍水平運(yùn)動(dòng)矢量差分,并且變量extencLy用于擴(kuò)展的范圍垂直運(yùn)動(dòng)矢量差分。變量extend_x和extend_y是從DMVRANGE(4634)句法元素導(dǎo)出的。如果DMVRANGE(4634)指示使用水平分量的擴(kuò)展的范圍,則extend_x=1。否則extend_x=0o同樣,如果DMVRANGE(4634)指示使用垂直分量的擴(kuò)展的范圍,則eXtend_y=1。否則,extencLy=0。偏移表是如下定義的數(shù)組offset_tablel[9]={0,1,2,4,8,16,32,64,128},以及offset_table2[9]={0,1,3,7,15,31,63,127,255},其中當(dāng)為水平或垂直分量擴(kuò)展差分范圍時(shí),offSet_table[]用于該水平或垂直分量。盡管圖49A和49B示出隔行掃描P半幀的擴(kuò)展的差分運(yùn)動(dòng)矢量解碼,但擴(kuò)展的差分運(yùn)動(dòng)矢量解碼還用于第一組合實(shí)現(xiàn)中的隔行掃描B半幀、隔行掃描P幀和隔行掃描B幀。在具有兩個(gè)參考半幀的半幀圖像中,每個(gè)MVDATA(4663)或BLKMVDATA(4665)句法元素聯(lián)合地編碼以下三項(xiàng)(1)水平運(yùn)動(dòng)矢量差分分量;(2)垂直運(yùn)動(dòng)矢量差分分量;以及(3)使用主還是非主預(yù)測(cè)值,即兩個(gè)半幀中哪一個(gè)是由運(yùn)動(dòng)矢量參考的。如在一個(gè)參考半幀情況中,MVDATA(4663)或BLKMVDATA(4665)元素是一個(gè)VLC,其后跟著一個(gè)FLC,并且MVTAB(4643)句法元素指定用于解碼VLC的表。圖50示出偽代碼,它示出對(duì)具有兩個(gè)參考半幀的半幀圖像中塊或宏塊的運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量差分和主/非主預(yù)測(cè)值解碼。在該偽代碼中,值預(yù)測(cè)值標(biāo)志是一個(gè)二進(jìn)制標(biāo)志,它指示使用主還是非主運(yùn)動(dòng)矢量預(yù)測(cè)值。如果prediCtor_flag=0,則使用主預(yù)測(cè)值,并且如果predictoLflag=1,則使用非主預(yù)測(cè)值。各種其它變量(包括dmv_X,dmv_y,k_χ,k_y,extend_x,extend_y,offset_table[]和offset_table2[])是為一個(gè)參考半幀情況描述的。表Sizejable是如下定義的數(shù)組size-table[16]={0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7}·7.運(yùn)動(dòng)矢量預(yù)測(cè)值運(yùn)動(dòng)矢量是通過(guò)將在前面章節(jié)中計(jì)算的運(yùn)動(dòng)矢量差分加到運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)計(jì)算的。預(yù)測(cè)值是根據(jù)最多三個(gè)相鄰運(yùn)動(dòng)矢量計(jì)算的。運(yùn)動(dòng)矢量預(yù)測(cè)值的計(jì)算是以1/4象素單位完成的,即使運(yùn)動(dòng)矢量模式是半象素。在IMV隔行掃描P半幀中,最多三個(gè)相鄰運(yùn)動(dòng)矢量用于計(jì)算當(dāng)前宏塊的預(yù)測(cè)值。具有考慮的運(yùn)動(dòng)矢量的相鄰宏塊的位置在圖5A和5B中所示,并且是為IMV逐行掃描P幀描述的。在混合運(yùn)動(dòng)矢量隔行掃描P半幀中,最多三個(gè)相鄰運(yùn)動(dòng)矢量用于計(jì)算當(dāng)前塊或宏塊的預(yù)測(cè)值。具有考慮的運(yùn)動(dòng)矢量的相鄰塊和/或宏塊的位置在圖6A-10中所示,并且是為混合MV逐行掃描P幀描述的。如果圖像頭部中的NUMREF(4631)句法元素為0,則當(dāng)前隔行掃描P半幀可只參考一個(gè)先前編碼的半幀。如果NUMREF=1,則當(dāng)前隔行掃描P半幀可參考兩個(gè)最近的參考半幀圖像。在前一情況中,為每個(gè)運(yùn)動(dòng)矢量計(jì)算單個(gè)預(yù)測(cè)值。在后一種情況下,計(jì)算兩個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值。圖51A和51B中的偽代碼描述如何為一個(gè)參考半幀情況計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值。偽代碼中的變量fieldpred_X和fieldpred_y表示運(yùn)動(dòng)矢量預(yù)測(cè)值的水平和垂直分量。在兩個(gè)參考半幀隔行掃描P半幀(NUMREF=1)中,當(dāng)前半幀可參考兩個(gè)最近的參考半幀。在這種情況下,為每個(gè)幀間編碼的宏塊計(jì)算兩個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值。一個(gè)預(yù)測(cè)值來(lái)自相同極性的參考半幀,而另一個(gè)來(lái)自相反極性的參考半幀。相同極性半幀與相反極性半幀中,一個(gè)是主半幀而另一個(gè)是非主半幀。主半幀是包含大多數(shù)候選運(yùn)動(dòng)矢量預(yù)測(cè)值的半幀。在平分的情況下,從相反半幀導(dǎo)出的運(yùn)動(dòng)矢量視為主預(yù)測(cè)值。幀內(nèi)編碼的宏塊在主/非主預(yù)測(cè)值的計(jì)算中不考慮。如果所有候選預(yù)測(cè)值宏塊是幀內(nèi)編碼的,則主和非主運(yùn)動(dòng)矢量預(yù)測(cè)值設(shè)置為零,并且從相反半幀中取得主預(yù)測(cè)值。圖52A-52F中的偽代碼描述在給出3個(gè)候選運(yùn)動(dòng)矢量預(yù)測(cè)值時(shí)如何為兩個(gè)參考半幀情況計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值。變量samefieldprecLx和samefieldprecLy表示來(lái)自相同半幀的運(yùn)動(dòng)矢量預(yù)測(cè)值的水平和垂直分量,并且變量oppositefieldprecLx和oppositefieldprecLy表示來(lái)自相反半幀的運(yùn)動(dòng)矢量預(yù)測(cè)值的水平和垂直分量。變量samecount和oppositecount被初始化為0。變量dominatpredictor指示哪一個(gè)半中貞包含主預(yù)測(cè)值。值prediCtor_flag(從運(yùn)動(dòng)矢量差分解碼的)指示使用主還是非主預(yù)測(cè)值。圖52G和52H中的偽代碼示出圖52A-52F中偽代碼引用的比例縮放操作,它們用于從一個(gè)半幀的預(yù)測(cè)值導(dǎo)出另一個(gè)半幀的預(yù)測(cè)值。SCALE0PP、SCALESAME1、SCALESAME2、SCALEZONE1_X,SCALEZONE1_Y>ZONE10FFSET_X和Z0NE10FFSET_Y的值對(duì)當(dāng)前半幀是第一半幀的情況在圖521的表中示出,而對(duì)當(dāng)前半幀是第二半幀的情況在圖52J的表中示出。參考幀距離是在圖像頭部的REFDIST(4624)中編碼的。參考幀距離是REFDIST+1。圖52K至52N是偽代碼和表,用于可替換圖52H至52J中所示的比例縮放操作。代替圖52H至52J中的比例縮放偽代碼和表(但仍使用圖52A至52G中的偽代碼),使用圖52K至52N中的比例縮放偽代碼和表。從半幀層頭部的元素獲得參考幀距離。N值取決于運(yùn)動(dòng)矢量范圍,如在圖52N的表中所示。8.混合運(yùn)動(dòng)矢量預(yù)測(cè)相對(duì)于A(上)和C(左)預(yù)測(cè)值測(cè)試在前面章節(jié)中計(jì)算的運(yùn)動(dòng)預(yù)測(cè)值,以確定參考圖像是否明確地編碼在比特流中。如果是,則存在指示使用預(yù)測(cè)值A(chǔ)還預(yù)測(cè)值C作為運(yùn)動(dòng)矢量預(yù)測(cè)值的一個(gè)比特。圖53中的偽代碼示出混合運(yùn)動(dòng)矢量預(yù)測(cè)解碼。在該偽代碼中,變量predictor_pre_x和predictor_pre_y分別是如在前面章節(jié)中計(jì)算的水平和垂直運(yùn)動(dòng)矢量預(yù)測(cè)值。變量predictor_post_x和predictor_post_y分別是在檢查混合運(yùn)動(dòng)矢量預(yù)測(cè)之后的水平和垂直運(yùn)動(dòng)矢量預(yù)測(cè)值。變量predictor_pre、predictor_post、predictorA、predictorB和predictorC全部表示由預(yù)測(cè)值標(biāo)志的值指示的極性的半幀。例如,如果predictor_flag指示使用相反半幀預(yù)測(cè)值,則predictor_pre_x=oppositefieldpred_xpredictor_pre_x=oppositefieldpred_ypredictorA_x=oppositefieldpredA_xpredictorA_y=oppositefieldpredA_ypredictorB_x=oppositefieldpredB_xpredictorB_y=oppositefieldpredB_ypredictorC_x=oppositefieldpredC_xpredictorC_y=oppositefieldpredC_y同樣,如果prediCt0r_flag指示使用相同半幀預(yù)測(cè)值,則predictor_pre_x=samefieldpred_xpredictor_pre_x=samefieldpred_ypredictorA_x=samefieldpredA_xpredictorA_y=samefieldpredA_ypredictorB_x=samefieldpredB_xpredictorB_y=sainefieldpredB_ypredictorC_x=samefieldpredC_xpredictorC_y=samefieldpredC_y算的。其中oppositefieldpred和samefieldpred的值是如在前面章節(jié)中描述的那樣計(jì)9.重構(gòu)亮度運(yùn)動(dòng)矢量對(duì)于IMV和4MV宏塊兩者,通過(guò)如下那樣將差分加到預(yù)測(cè)值來(lái)重構(gòu)亮度運(yùn)動(dòng)矢量,其中變量range_x和range_y取決于MVRANGE(4633)并且在圖49B所示的表中指定。對(duì)于NUMREF=0(1參考半幀隔行掃描P半幀)my_x=(dmv_x+predictor_x)smodrange_x,以及my_y=(dmv_y+predictor_y)smod(range_y).對(duì)于NUMREF=1(2參考半幀隔行掃描P半幀)my_x=(dmv_x+predictor_x)smodrange_x,以及mv_y=(dmv_y+predictor_y)smod(range_y/2).如果隔行掃描P半幀使用兩個(gè)參考圖像(NUMREF=1),則prediCtor_flag(在解碼運(yùn)動(dòng)矢量差分中導(dǎo)出的)與dominantpredictor(在運(yùn)動(dòng)矢量預(yù)測(cè)中導(dǎo)出的)的值相組合以確定使用哪些半幀作為參考,如圖54所示。在IMV宏塊中,對(duì)用于構(gòu)成宏塊的亮度分量的4個(gè)塊存在單個(gè)運(yùn)動(dòng)矢量。如果MBMODE(4661)句法元素指示在宏塊層中不存在MV數(shù)據(jù),則dmv_x=0且dmv_y=0(mv_x=predictor_x且mv_y=predictor_y)。在4MV宏塊中,宏塊中的幀間編碼的亮度塊的每一個(gè)具有它自己的運(yùn)動(dòng)矢量。因此,在每個(gè)4MV宏塊中有4個(gè)亮度運(yùn)動(dòng)矢量。如果4MVBP(4664)句法元素指示一個(gè)塊沒(méi)有運(yùn)動(dòng)矢量信息,則該塊的dmv_x=0且dmv_y(mv_x=predictor_x且mv_y=predicotr_y)。10.導(dǎo)出色度運(yùn)動(dòng)矢量色度運(yùn)動(dòng)矢量是從亮度運(yùn)動(dòng)矢量導(dǎo)出的。色度運(yùn)動(dòng)矢量在兩個(gè)步驟中重構(gòu)。作為第一步驟,通過(guò)適當(dāng)?shù)亟M合和比例縮放亮度運(yùn)動(dòng)矢量獲得名義的色度運(yùn)動(dòng)矢量。比例縮放是以這樣一種方法進(jìn)行的,即與四分之一象素偏移相比,二分之一偏移是較佳的。在第二步驟中,使用1比特FASTUVMC句法元素來(lái)確定色度運(yùn)動(dòng)矢量的進(jìn)一步舍入是否必要。如果FASTUVMC=0,則在第二步驟中不進(jìn)行舍入。如果FASTUVMC=1,則在四分之一象素偏移處的色度運(yùn)動(dòng)矢量將舍入到最接近的二分之一和整象素位置。只有雙線性濾波用于全部色度內(nèi)插。變量cmv_x和cmv_y分別表示色度運(yùn)動(dòng)矢量分量,而lmv_x和lmv_y分別表示亮度運(yùn)動(dòng)矢量分量。在IMV宏塊中,色度運(yùn)動(dòng)矢量是從亮度運(yùn)動(dòng)矢量導(dǎo)出的,如下cmv_x=(lmv_x+round[lmv_x&3])>>1,以及cmv_y=(lmv_y+round[lmv_y&31)>>1,其中round=0,round[1]=0,round[2]=0,round[3]=1。圖55A和55B中的偽代碼示出色度運(yùn)動(dòng)矢量是如何從4MV宏塊的四個(gè)亮度塊中的運(yùn)動(dòng)信息導(dǎo)出的第一階段。在該偽代碼中,ix和iy是臨時(shí)變量。圖55A是用于1參考半幀隔行掃描P半幀的色度運(yùn)動(dòng)矢量導(dǎo)出的偽代碼,而圖55B是用于2參考半幀隔行掃描P半幀的色度運(yùn)動(dòng)矢量導(dǎo)出的偽代碼。11.強(qiáng)度補(bǔ)償如果MVMODE(4635)指示對(duì)隔行掃描P半幀使用強(qiáng)度補(bǔ)償,則參考半幀之一或兩個(gè)中的象素在使用它們作為當(dāng)前P半幀的預(yù)測(cè)值之前被重新映射。當(dāng)使用強(qiáng)度補(bǔ)償時(shí),LUMSCALE1(4638)和LUMSHIFT1(4639)句法元素存在于第一參考半幀的比特流中,而LUMSCALE2(4640)和LUMSHIFT2(4641)元素也可存在于第二參考半幀的比特流中。圖56中的偽代碼示出如何使用LUMSCALE1(4698)和LUMSHIFT1(4639)值來(lái)建立用于重新映射第一參考半幀的參考半幀象素的查找表。(該偽代碼可相似地應(yīng)用于第二參考半幀的LUMSCALE2(4640)和LUMSHIFT2(4641)。)參考半幀的Y分量是使用LUTY[]表重新映射的,而Cb/Cr分量是使用LUTUV[]表重新映射的,如下=LUTY[pY],以及Fuv=LUTUV[puv],其中ργ是參考半幀中的原始亮度象素值,是參考半幀中重新映射的亮度象素值,Pot是參考半幀中原始的Cb或Cr象素值,而^iv是參考半幀中重新映射的Cb或Cr象素值。12.剩余的解碼當(dāng)CBPCY(4662)元素存在時(shí),解碼器解碼宏塊的該元素,其中CBPCY(4662)元素指示系數(shù)數(shù)據(jù)的存在/不存在。在塊層上,解碼器解碼幀間編碼的塊和幀內(nèi)編碼的塊(除了4MV宏塊)的系數(shù)數(shù)據(jù)。為重構(gòu)幀間編碼的塊,解碼器(1)選擇一個(gè)變換類(lèi)型(8x8,4x4,4x8,或者4x4),(2)解碼子塊模式,(3)解碼系數(shù),(4)執(zhí)行反變換,(5)執(zhí)行反量化,(6)獲得塊的預(yù)測(cè),以及(7)將預(yù)測(cè)和誤差塊相加。C.第二組合實(shí)現(xiàn)中的序列和語(yǔ)義在第二組合實(shí)現(xiàn)中,壓縮的視頻序列是由結(jié)構(gòu)化成分等級(jí)的層中的數(shù)據(jù)構(gòu)成的。從上到下的層是圖像層,宏塊層和塊層。序列層先于序列。圖57A至57C示出構(gòu)成各種層的比特流元素。1.序列層句法和語(yǔ)義序列級(jí)頭部包含序列級(jí)參數(shù),用于解碼壓縮圖像的序列。使這個(gè)頭部可用于解碼器,或者作為外部傳送的解碼器配置信息,或者作為視頻數(shù)據(jù)比特流的一部分。圖57A是序列層比特流的句法圖,它示出構(gòu)成序列層的元素。剪輯簡(jiǎn)檔PROFILE(5701)元素指定用于產(chǎn)生剪輯的編碼簡(jiǎn)檔。如果PROFILE是“高級(jí)”簡(jiǎn)檔,則剪輯級(jí)LEVEL(5702)元素指定剪輯的編碼等級(jí)??晒┨鎿Q地(例如,對(duì)于其它簡(jiǎn)檔),通過(guò)外部手段將剪輯等級(jí)發(fā)送到解碼器。INTERLACE(5703)元素是1比特字段,如果PROFILE是高級(jí)簡(jiǎn)檔,則它存在。INTERFACE(5703)指定在逐行掃描還是在隔行掃描模式中編碼視頻。如果INTERLACE=0,則視頻幀是在逐行掃描模式中編碼的。如果INTERLACE=1,則視頻幀是在隔行掃描模式中編碼的。如果PROFILE(5701)不是高級(jí)簡(jiǎn)檔,則視頻是在逐行掃描模式中編碼的。擴(kuò)展的運(yùn)動(dòng)矢量EXTENDED_MV(5704)元素是1比特字段,它指示擴(kuò)展的運(yùn)動(dòng)矢量能力是開(kāi)還是關(guān)。如果EXTENDED_MV=1,則運(yùn)動(dòng)矢量具有擴(kuò)展的范圍。如果EXTENDED_MV=0,則運(yùn)動(dòng)矢量沒(méi)有擴(kuò)展的范圍。2.圖像層句法和語(yǔ)義圖像的數(shù)據(jù)由圖像頭部和跟隨其后的宏塊層數(shù)據(jù)構(gòu)成。圖57B是圖像層比特流的句法圖,它示出構(gòu)成隔行掃描P半幀的圖像層的元素。圖像類(lèi)型PTYPE(5722)元素是1比特字段,或者是可變大小字段。如果沒(méi)有B圖像,則在序列中只有I和P圖像,并且PTYPE是用單個(gè)比特編碼的。如果PTYPE=0,則圖像類(lèi)型是I。如果PTYPE=1,則圖像類(lèi)型是P。如果B圖像的數(shù)量大于0,則PTYPE(5722)是可變大小字段,指示幀的圖像類(lèi)型。如果PTYPE=1,則圖像類(lèi)型是P。如果PTYPE=01(二進(jìn)制),則圖像類(lèi)型是I。而且,如果PTYPE=00(二進(jìn)制),則圖像類(lèi)型是B。參考圖像的數(shù)量NUMREF(5731)元素是存在于隔行掃描P半幀頭部中的1比特句法元素。它指示隔行掃描P半幀具有1個(gè)(NUMREF=0)還是具有2個(gè)(NUMREF=1)參考圖像。參考半幀圖像指示符REFFIELD(5732)是如果NUMREF=0則存在于隔行掃描P半幀頭部中的1比特句法元素。它指示兩個(gè)可能的參考圖像中哪一個(gè)是隔行掃描P半幀使用的。外部MV范圍標(biāo)志MVRANGE(5733)是可變大小句法元素,它存在于使用特定簡(jiǎn)檔(“主”簡(jiǎn)檔)編碼的序列的P圖像中,并且其BROADCAST元素設(shè)置為1。通常,MVRANGE(5733)指示運(yùn)動(dòng)矢量的擴(kuò)展的范圍(即,運(yùn)動(dòng)矢量的較長(zhǎng)的可能水平和/或垂直位移)。MVRANGE(5733)用于解碼運(yùn)動(dòng)矢量差分。運(yùn)動(dòng)矢量模式MVMODE(5735)元素是可變大小句法元素,它用信號(hào)表示四個(gè)運(yùn)動(dòng)矢量編碼模式之一或者一個(gè)強(qiáng)度補(bǔ)償模式。運(yùn)動(dòng)矢量編碼模式包括三個(gè)具有用于運(yùn)動(dòng)補(bǔ)償?shù)牟煌酉笏貎?nèi)插規(guī)則的“1MV”模式。IMV表示圖像中每個(gè)宏塊具有至少一個(gè)運(yùn)動(dòng)矢量。在“混合MV”模式中,在圖像中的每個(gè)宏塊可具有一個(gè)或四個(gè)運(yùn)動(dòng)矢量,或者可被跳過(guò)。取決于PQUANT(圖像的量化系數(shù))的值,圖47E中所示的任意一個(gè)表用于MVMODE(5735)元素。運(yùn)動(dòng)矢量模式2MVM0DE2(5736)元素是可變大小句法元素,如果MVMODE(5735)用信號(hào)表示強(qiáng)度補(bǔ)償,則它存在于隔行掃描P半幀頭部中。前面的表(減去強(qiáng)度補(bǔ)償?shù)拇a)可用于MVM0DE2(5736)。亮度比例LUMSCALE(5738)和亮度平移LUMSHIFT(5739)元素各自是在強(qiáng)度補(bǔ)償中使用的6比特值。如果MVMODE(5735)用信號(hào)表示強(qiáng)度補(bǔ)償,則LUMSCALE(5738)和LUMSHIFT(5739)存在于隔行掃描P半幀頭部中。宏塊模式表MBM0DETAB(5742)元素是隔行掃描P半幀頭部的2比特字段。MBM0DETAB(5742)指示四個(gè)代碼表中哪一個(gè)(用2比特值指定的表0至3)用于編碼/解碼宏塊層中的宏塊模式MBMODE(5761)句法元素。運(yùn)動(dòng)矢量表MVTAB(5743)元素是隔行掃描P半幀的2比特字段。MVTAB(5743)指示四個(gè)代碼表中哪一個(gè)(用兩比特值指定的表0至3)用于編碼/解碼運(yùn)動(dòng)矢量數(shù)據(jù)。4MV塊模式表4MVBPTAB(5744)元素是2比特值,如果MVMODE(5735)(或者M(jìn)VM0DE2(5736),如果MVMODE(5735)設(shè)置為強(qiáng)度補(bǔ)償)指示圖像是混合MV類(lèi)型的,則它存在于隔行掃描P半幀中。4MVBPTAB(5744)用信號(hào)表示四個(gè)代碼表中哪一個(gè)(用兩比特值指定的表0至3)用于編碼/解碼4MV宏塊中的4MV塊模式4MVBP(5764)字段。隔行掃描幀頭部(未示出)具有許多與圖57B所示的隔行掃描P半幀頭部相同的元素。這些包括PTYPE(5722)、MBM0DETAB(5742),MVTAB(5743)和4MVBPTAB(5744),盡管隔行掃描幀的精確句法和語(yǔ)義可不同于隔行掃描P半幀。例如,4MVBPTAB也是一個(gè)2比特字段,它指示四個(gè)代碼表中哪一個(gè)(兩比特值指定的表0至3)用于編碼/解碼4MV宏塊中的4MV塊模式4MVBP元素。隔行掃描幀頭部還包括不同的元素,用于在IMV與4MV模式之間切換和用于強(qiáng)度補(bǔ)償信號(hào)表示。由于隔行掃描幀可包括具有每宏塊兩個(gè)運(yùn)動(dòng)矢量的半幀編碼宏塊,因此隔行掃描幀頭部包括兩個(gè)運(yùn)動(dòng)矢量塊模式表2MVBPTAB元素。2MVBPTAB是隔行掃描P幀中存在的2比特字段。該句法元素用信號(hào)表示四個(gè)表之一(用兩比特值指定的表0至3)用于2MV半幀編碼宏塊中的編碼/解碼2MV塊模式(2MVBP)元素。圖47K示出可用于2MVBP的四個(gè)表。隔行掃描B半幀和隔行掃描B幀具有許多與隔行掃描P半幀和隔行掃描P幀相同的元素。具體地,隔行掃描B幀包括2MVBPTAB和4MVBPTAB(5721)句法元素,盡管元素的語(yǔ)義可以與隔行掃描P半幀和幀不同。3.宏塊層句法和語(yǔ)義宏塊的數(shù)據(jù)由宏塊頭部和跟隨其后的塊層組成。圖57C是宏塊層比特流的句法圖,它示出構(gòu)成隔行掃描P半幀的宏塊的宏塊層的元素。宏塊模式MBMODE(5761)元素是可變大小元素。它聯(lián)合地指示信息,諸如宏塊(1MV、4MV或幀內(nèi)編碼)的運(yùn)動(dòng)矢量數(shù)量、對(duì)該宏塊是否存在已編碼塊模式CBPCY(5762)以及(在某些情況下)對(duì)該宏塊是否存在運(yùn)動(dòng)矢量差分?jǐn)?shù)據(jù)。運(yùn)動(dòng)矢量數(shù)據(jù)MVDATA(5763)元素是可變大小元素,它編碼宏塊的運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量信息(例如,水平和垂直差分)。對(duì)于具有兩個(gè)參考半幀的隔行掃描P半幀,MVDATA(5763)還編碼用于在運(yùn)動(dòng)矢量的主和非主運(yùn)動(dòng)矢量預(yù)測(cè)值之間進(jìn)行選擇的信息。如果MBMODE(5761)指示宏塊具有四個(gè)運(yùn)動(dòng)矢量,則四個(gè)運(yùn)動(dòng)矢量塊模式4MVBP(5764)元素存在。4MVBP(5764)元素指示四個(gè)亮度塊中哪些包含非零運(yùn)動(dòng)矢量差分。使用一個(gè)代碼表將4MVBP(5764)元素解碼成0與14之間的值。當(dāng)表示為二進(jìn)制值時(shí),這個(gè)解碼的值表示指示相應(yīng)亮度塊的運(yùn)動(dòng)矢量是否存在的1比特字段,如圖34所示。兩個(gè)運(yùn)動(dòng)矢量塊模式2MVBP元素(未示出)是存在于隔行掃描P幀的宏塊中的可變大小句法元素。在隔行掃描幀宏塊中,如果MBMODE(5761)指示宏塊具有2個(gè)半幀運(yùn)動(dòng)矢量,則2MVBP存在。在這種情況下,2MVBP指示2個(gè)半幀(上和下)中哪一個(gè)包含非零運(yùn)動(dòng)矢量差分。塊級(jí)運(yùn)動(dòng)矢量數(shù)據(jù)BLKMVDATA(5765)元素是在某些情況下存在的可變大小元素。它包含宏塊的塊的運(yùn)動(dòng)信息?;旌线\(yùn)動(dòng)矢量預(yù)測(cè)HYBRIDPRED(5766)元素是每運(yùn)動(dòng)矢量1比特句法元素,它可存在于隔行掃描P半幀的宏塊中。當(dāng)使用混合運(yùn)動(dòng)矢量預(yù)測(cè)時(shí),HYBRIDPRED(5766)指示要使用兩個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值中的哪一個(gè)。4.塊層句法和語(yǔ)義隔行掃描圖像的塊層遵循逐行掃描圖像的塊層的句法和語(yǔ)義。通常,塊和子塊的DC和AC系數(shù)的信息是在塊層上用信號(hào)表示的。D.在第二組合實(shí)現(xiàn)中解碼下面的章節(jié)集中于隔行掃描P半幀的解碼過(guò)程。1.隔行掃描P半幀解碼的參考隔行掃描P半幀可以在運(yùn)動(dòng)補(bǔ)償中參考一個(gè)或兩個(gè)先前解碼的半幀。在圖像層中的NUMREF(5731)半幀指示當(dāng)前半幀可以參考一個(gè)還是兩個(gè)先前的參考半幀圖像。如果NUMREF=0,則當(dāng)前隔行掃描P半幀可以只參考一個(gè)半幀。在這種情況下,REFFIELD(5732)元素跟隨在圖像層比特流中并且指示哪一個(gè)半幀用作參考。如果REFFIELD=0,則時(shí)間上最近(在顯示順序中)的I或P半幀用作參考。如果REFFIELD=1,則時(shí)間上第二最近的I或P半幀圖像用作參考。如果NUMREF=1,則當(dāng)前隔行掃描P半幀圖像使用兩個(gè)時(shí)間上最近(在顯示順序中)的I或P半幀圖像作為參考。如上所述,圖24A-24F所示的NUMREF=0和NUMREF=1的參考半幀圖像的示例應(yīng)用于第二組合實(shí)現(xiàn)。2.圖像類(lèi)型和圖像層表選擇隔行掃描P半幀可以是兩種類(lèi)型之一1MV或混合MV。在IMVP半幀中,對(duì)于IMV宏塊,使用單個(gè)運(yùn)動(dòng)矢量來(lái)指示宏塊中全部6個(gè)塊的預(yù)測(cè)塊的位移。在混合MVP半幀中,宏塊可以被編碼為IMV或4MV宏塊。對(duì)于4MV宏塊,四個(gè)亮度塊的每一個(gè)可具有與它相關(guān)聯(lián)的運(yùn)動(dòng)矢量。IMV模式或混合MV模式是由MVMODE(5735)和MVM0DE2(5736)圖像層塊用信號(hào)表示的。對(duì)于隔行掃描P半幀,圖像層包含控制半幀的運(yùn)動(dòng)補(bǔ)償模式和強(qiáng)度補(bǔ)償?shù)木浞ㄔ?。MVM0DE(5735)用信號(hào)表示下面任一個(gè)1)半幀的四個(gè)運(yùn)動(dòng)矢量模式之一,或者2)在半幀中使用強(qiáng)度補(bǔ)償。如果用信號(hào)表示強(qiáng)度補(bǔ)償,則在圖像層中接著有MVM0DE2(5736)、LUMSCALE(5738)和LUMSHIFT(5739)字段。圖47E中的兩個(gè)表之一用于解碼MVMODE(5735)66和MVM0DE2(5736)字段,取決于PQUANT是否大于12。如果運(yùn)動(dòng)矢量模式是混合MV模式,則MBM0DETAB(5742)用信號(hào)表示四個(gè)混合MVMBMODE表中哪一個(gè)用于用信號(hào)表示半幀中每個(gè)宏塊的模式。如果運(yùn)動(dòng)矢量模式不是混合MV(在這種情況下全部幀間編碼的宏塊使用1個(gè)運(yùn)動(dòng)矢量),則MBM0DETAB(5742)用信號(hào)表示四個(gè)IMVMBMODE表中哪一個(gè)用于用信號(hào)表示半幀中每個(gè)宏塊的模式。MVTAB(5742)指示用于解碼隔行掃描P半幀中宏塊的運(yùn)動(dòng)矢量差分的代碼表。4MVBPTAB(5744)指示用于解碼隔行掃描P半幀中4MV宏塊的4MVBP(5764)的代碼表。3.宏塊模式和運(yùn)動(dòng)矢量塊模式在隔行掃描P-半幀中的宏塊可以是3種可能類(lèi)型之一1MV,4MV和幀內(nèi)編碼。宏塊類(lèi)型是由宏塊層中的MBM0DE(5761)用信號(hào)表示的。IMV宏塊可以在IMV和混合MVP半幀中出現(xiàn)。在IMV宏塊中,單個(gè)運(yùn)動(dòng)矢量表示宏塊的全部6個(gè)塊的當(dāng)前與參考圖像之間的位移。當(dāng)前與參考?jí)K之間的差異在塊層中編碼。對(duì)于IMV宏塊,MBMODE(5761)指示以下三項(xiàng)(1)宏塊類(lèi)型是IMV;(2)CBPCY(5762)是否存在;以及(3)MVDATA(5763)是否存在。如果MBMODE(5761)指示CBPCY(5762)存在,則CBPCY(5762)存在于宏塊層并且指示6個(gè)塊中哪些編碼在塊層中。如果MBMODE(5761)指示CBPCY(5762)不存在,則CBPCY(5762)假定等于0,并且宏塊中的6個(gè)塊中任何一個(gè)都不存在塊數(shù)據(jù)。如果MBMODE(5761)指示MVDATA(5763)存在,則MVDATA(5763)存在于宏塊層中并且編碼運(yùn)動(dòng)矢量差分,它與運(yùn)動(dòng)矢量預(yù)測(cè)值組合來(lái)重構(gòu)運(yùn)動(dòng)矢量。如果MBMODE(5761)指示MVDATA(5763)不存在,則運(yùn)動(dòng)矢量差分假定為零,并且因此運(yùn)動(dòng)矢量等于運(yùn)動(dòng)矢量預(yù)測(cè)值。4MV宏塊只出現(xiàn)在混合MVP半幀中。在4MV宏塊中,宏塊中四個(gè)亮度塊的每一個(gè)可具有一個(gè)相關(guān)聯(lián)的運(yùn)動(dòng)矢量,它指示該塊的當(dāng)前與參考圖像之間的位移。色度塊的位移是從四個(gè)亮度運(yùn)動(dòng)矢量導(dǎo)出的。當(dāng)前與參考?jí)K之間的差異在塊層中編碼。對(duì)于4MV宏塊,MBMODE(5761)指示以下三項(xiàng)(1)宏塊類(lèi)型是4MV;(2)CBPCY(5762)是否存在;以及(3)4MVBP(5764)是否存在。如果MBMODE(5761)指示4MVBP(5764)存在,則4MVBP(5764)存在于宏塊層中并且指示四個(gè)亮度塊中的哪些包含非零運(yùn)動(dòng)矢量差分。4MVBP(5764)被解碼成0與14之間的值,它在表示為二進(jìn)制值時(shí)表示1比特字段,它指示相應(yīng)亮度塊的運(yùn)動(dòng)矢量數(shù)據(jù)是否存在,如圖27所示。對(duì)于4MVBP(5764)中4比特位置的每一個(gè),值0指示該塊不存在運(yùn)動(dòng)矢量差分(BLKMVDATA(5765)),并且運(yùn)動(dòng)矢量差分假定為0。值1指示該塊存在運(yùn)動(dòng)矢量差分(BLKMVDATA(5765))。如果MBMODE(5761)指示4MVBP(5764)不存在,則假定全部四個(gè)亮度塊存在運(yùn)動(dòng)矢量差分?jǐn)?shù)據(jù)(BLKMVDATA(5765))。在隔行掃描幀中的半幀編碼宏塊可包括2個(gè)運(yùn)動(dòng)矢量。在2個(gè)半幀MV宏塊的情況下,2MVBP元素指示兩個(gè)半幀中哪些具有非零差分運(yùn)動(dòng)矢量。幀內(nèi)編碼宏塊可以出現(xiàn)在IMV或混合MVP半幀中。在幀內(nèi)宏塊中,在不參考任何先前圖像數(shù)據(jù)的情況下,編碼全部六個(gè)塊。當(dāng)前塊象素與常數(shù)值128之間的差異在塊層中編碼。對(duì)于幀內(nèi)編碼宏塊,MBMODE(5761)指示以下兩項(xiàng)⑴宏塊類(lèi)型是幀內(nèi)編碼;以及(2)CBPCY(5762)是否存在。對(duì)于幀內(nèi)編碼宏塊,CBPCY(5762)當(dāng)存在時(shí),指示六個(gè)塊中的哪一個(gè)具有在塊層中編碼的AC系數(shù)數(shù)據(jù)。4.解碼運(yùn)動(dòng)矢量差分MVDATA(5763)和BLKDATA(5765)字段編碼宏塊或宏塊中的塊的運(yùn)動(dòng)信息。IMV宏塊具有單個(gè)MVDATA(5763)字段,而4MV宏塊可以具有零到四個(gè)BLKMVDATA(5765)。計(jì)算運(yùn)動(dòng)矢量差分對(duì)于一個(gè)參考(NUMREF=0)情況和兩個(gè)參考(NUMREF=1)情況是不同地進(jìn)行的。在只有一個(gè)參考半幀的半幀圖像中,宏塊層中的每個(gè)MVDATA(5763)或BLKMVDATA(5765)字段聯(lián)合地編碼以下兩項(xiàng)(1)水平運(yùn)動(dòng)矢量差分分量;以及(2)垂直運(yùn)動(dòng)矢量差分分量。MVDATA(5763)或BLKMVDATA(5765)字段是一個(gè)哈夫曼VLC,后面跟著一個(gè)FLC。VLC的值確定FLC的大小。圖像層中的MVTAB(5743)字段指定用于解碼該VLC的表。圖58A示出偽代碼,它示出具有一個(gè)參考半幀的半幀圖像中的塊或宏塊的運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量差分解碼。在該偽代碼中,計(jì)算值dmv_x*dmv_y。值dmv_X是差分水平運(yùn)動(dòng)矢量分量,而值dmv_y是差分垂直運(yùn)動(dòng)矢量分量。變量k_x和k_y是用于長(zhǎng)運(yùn)動(dòng)矢量的固定長(zhǎng)度值,并且取決于如由MVRANGE(5733)定義的運(yùn)動(dòng)矢量范圍,如在圖58B的表中所示。值halfpel_flag是二進(jìn)制值,指示使用二分之一象素還是四分之一象素精度用于圖像的運(yùn)動(dòng)補(bǔ)償。halfpelflag的值是由運(yùn)動(dòng)矢量模式確定的。如果模式是IMV或混合MV,則halfpel_flag=0和四分之一象素精度用于運(yùn)動(dòng)補(bǔ)償。如果模式是IMV象素或IMV二分之一象素雙線性,則halfpelflag=1并且使用二分之一象素精度。offsetjable是如下定義的數(shù)組offset_table[9]={0,1,2,4,8,16,32,64,128}.在具有兩個(gè)參考半幀的半幀圖像中,宏塊層中的每個(gè)MVDATA(5763)或BLKMVDATA(5765)字段聯(lián)合地編碼以下三項(xiàng)(1)水平運(yùn)動(dòng)矢量差分分量;(2)垂直運(yùn)動(dòng)矢量差分分量;以及(3)使用主還是非主運(yùn)動(dòng)矢量預(yù)測(cè)值。MVDATA(5763)或BLKMVDATA(5765)字段是一個(gè)哈夫曼VLC,后面跟著一個(gè)FLC,并且VLC的值確定FLC的大小。MVTAB(5743)字段指定用于解碼VLC的表。圖59示出偽代碼,它示出具有兩個(gè)參考半幀的半幀圖像中塊或宏塊的運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量差分和主/非主預(yù)測(cè)值解碼。在該偽代碼中,值predict0r_flag是二進(jìn)制標(biāo)志,它指示使用主還是非主運(yùn)動(dòng)矢量預(yù)測(cè)值(0=使用主預(yù)測(cè)值,1=使用非主預(yù)測(cè)值)。各種其它變量(包括dmv_x,dmv_y,k_x,k_y,halfpel_flag和offset_table[]如對(duì)一個(gè)參考半幀情況一樣地描述。表Sizejable是如下定義的數(shù)組size-table[14]={10,0,1,1,2,2,3,3,4,4,5,5,6,6}.5.運(yùn)動(dòng)矢量預(yù)測(cè)值運(yùn)動(dòng)矢量是通過(guò)將在前面章節(jié)中計(jì)算出的運(yùn)動(dòng)矢量差分加到運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)計(jì)算的。預(yù)測(cè)值是從最多三個(gè)相鄰運(yùn)動(dòng)矢量計(jì)算出的。在IMV隔行掃描P半幀中,最多三個(gè)運(yùn)動(dòng)矢量用于計(jì)算當(dāng)前宏塊的預(yù)測(cè)值。相鄰預(yù)測(cè)值A(chǔ)、B和C的位置在圖5A和5B中示出。如對(duì)逐行掃描P幀所述,相鄰預(yù)測(cè)值是從左、上和右上宏塊取得的,除了在當(dāng)前宏塊是行中最后一個(gè)宏塊的情況下。在這種情況下,預(yù)測(cè)值B是從左上(代替右上)宏塊取得的。對(duì)于幀是一個(gè)宏塊寬的特殊情況,則預(yù)測(cè)值總是預(yù)測(cè)值A(chǔ)(上預(yù)測(cè)值)。68在混合MV隔行掃描P半幀中,最多三個(gè)運(yùn)動(dòng)矢量用于計(jì)算當(dāng)前塊或宏塊的預(yù)測(cè)值。圖6A-10示出混合MVP半幀中IMV和4MV宏塊的三個(gè)候選運(yùn)動(dòng)矢量,如對(duì)逐行掃描P幀描述的。對(duì)于幀是一個(gè)宏塊寬的特殊情況,則預(yù)測(cè)值總是預(yù)測(cè)值A(chǔ)(上預(yù)測(cè)值)。如果圖像頭部中的NUMREF(5731)字段是0,則當(dāng)前隔行掃描P半幀可以只參考一個(gè)先前編碼的圖像。如果NUMREF=1,則當(dāng)前隔行掃描P半幀可以參考兩個(gè)最近的參考半幀圖像。在前一情況下,為每個(gè)運(yùn)動(dòng)矢量計(jì)算單個(gè)預(yù)測(cè)值。在后一種情況下,計(jì)算兩個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值。圖60A和60B中的偽代碼示出如何為一個(gè)參考半幀情況計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值。變量fieldpred_X和fieldpred_y表示運(yùn)動(dòng)矢量預(yù)測(cè)值的水平和垂直分量。在2參考半幀隔行掃描P半幀(NUMREF=1)中,當(dāng)前半幀可以參考兩個(gè)最近的參考半幀。在這種情況下,為每個(gè)幀間編碼宏塊計(jì)算兩個(gè)運(yùn)動(dòng)矢量預(yù)測(cè)值。一個(gè)預(yù)測(cè)值來(lái)自相同極性的參考半幀,而另一個(gè)來(lái)自相反極性的參考半幀。圖61A-61F中的偽代碼描述如何在給出3個(gè)候選運(yùn)動(dòng)矢量預(yù)測(cè)值的情況下為兩個(gè)參考半幀情況計(jì)算運(yùn)動(dòng)矢量預(yù)測(cè)值。變量samefiledpred_x和samefieldpred_y表示來(lái)自相同半幀的運(yùn)動(dòng)矢量預(yù)測(cè)值的水平和垂直分量,而變量oppositefieldprecLx和oppositefieldprecLy表示來(lái)自相反半幀的運(yùn)動(dòng)矢量預(yù)測(cè)值的水平和垂直分量。變量dominantpredictor指示哪一個(gè)半幀包含主預(yù)測(cè)值。值predictor_flag(從運(yùn)動(dòng)矢量差分解碼的)指示使用主還是非主預(yù)測(cè)值。6.混合運(yùn)動(dòng)矢量預(yù)測(cè)如果隔行掃描P半幀是IMV或混合MV,則相對(duì)于A(上)和C(左)預(yù)測(cè)值測(cè)試在前面章節(jié)中計(jì)算的運(yùn)動(dòng)矢量預(yù)測(cè)值來(lái)確定在比特流中是否明確編碼了預(yù)測(cè)值。如果是,則存在指示是使用預(yù)測(cè)值A(chǔ)還是預(yù)測(cè)值C作為運(yùn)動(dòng)矢量預(yù)測(cè)值的一個(gè)比特。圖14A和14B中的偽代碼示出混合運(yùn)動(dòng)矢量預(yù)測(cè)解碼,使用如下變量變量prediCt0r_pre_X和prediCtor_pre_y和候選預(yù)測(cè)值A(chǔ)、B和C是如在前面章節(jié)中計(jì)算的(即,它們是相反半幀預(yù)測(cè)值或者它們是相同的半幀預(yù)測(cè)值,如由predictor_flag指示的)。變量predictor_post_x和predict0r_p0St_y分別是在檢查混合運(yùn)動(dòng)矢量預(yù)測(cè)之后的水平和垂直運(yùn)動(dòng)矢量預(yù)測(cè)值。7.重構(gòu)運(yùn)動(dòng)矢量對(duì)于IMV和4MV宏塊兩者,亮度運(yùn)動(dòng)矢量是通過(guò)將差分加到預(yù)測(cè)值來(lái)重構(gòu)的,如下my_x=(dmv_x+predictor_x)-smodrange_x,以及mv_y=(dmv_y+predictor_y)smodrange_y,其中變量range_x和range_y取決于MVRANGE(5733),并且在圖58B所示的表中指定的,并且其中運(yùn)算“smod”是如下定義的有符號(hào)模。Asmodb=((A+b)%2b)_b,其中保證重構(gòu)的矢量是有效的。(Asmodb)位于b與b_l內(nèi).在IMV宏塊中,對(duì)用于構(gòu)成宏塊的亮度分量的四個(gè)塊將存在單個(gè)運(yùn)動(dòng)矢量。如果dmv_x指示宏塊是幀內(nèi)編碼的,則沒(méi)有運(yùn)動(dòng)矢量與宏塊相關(guān)聯(lián)。如果宏塊是跳過(guò)的,則dmv_χ=0且dmv_y=0,因此mv_x=predictor_x且mv_y=predictor_y。在4MV宏塊中,宏塊中幀間編碼的亮度塊的每一個(gè)具有它自己的運(yùn)動(dòng)矢量。因此,將有0至4個(gè)亮度運(yùn)動(dòng)矢量用于每個(gè)4MV宏塊。4MV宏塊中未編碼的塊可以用下面兩種方法之一出現(xiàn)(1)如果宏塊是跳過(guò)的并且宏塊是4MV(在這種情況下宏塊中的全部塊是跳過(guò)的);或者(2)如果宏塊的CBPCY(5762)指示該塊是未編碼的。如果塊沒(méi)有被編碼,則dmv_χ=0且dmv_y=0,因此mv_x=predictor_x且mv_y=predicotr_y。8.導(dǎo)出色度運(yùn)動(dòng)矢量色度運(yùn)動(dòng)矢量是從亮度運(yùn)動(dòng)矢量導(dǎo)出的。而且,對(duì)于4MV宏塊,將色度塊編碼為幀間編碼還是幀內(nèi)編碼的判定是基于亮度塊的狀態(tài)作出的。色度運(yùn)動(dòng)矢量是在兩個(gè)步驟中重構(gòu)的。作為第一步驟,通過(guò)適當(dāng)?shù)亟M合和比例縮放亮度運(yùn)動(dòng)矢量獲得名義的色度運(yùn)動(dòng)矢量。比例縮放是以這樣一種方法進(jìn)行的,即與四分之一象素偏移相比,二分之一象素是較佳的。在第二階段中,序列級(jí)1比特字段FASTUVMC字段用于確定色度運(yùn)動(dòng)矢量的進(jìn)一步舍入是否必須。如果FASTUVMC=0,在第二階段中不進(jìn)行舍入。如果FASTUVMC=1,在四分之一象素偏移處的色度運(yùn)動(dòng)矢量將舍入到最接近的整象素位置。另外,當(dāng)FASTUVMC=1時(shí),將只使用雙線性濾波用于全部色度內(nèi)插。在IMV宏塊中,色度運(yùn)動(dòng)矢量是從亮度運(yùn)動(dòng)矢量中導(dǎo)出的,如下//s_RndTbl=0,s_RndTbl[l]=0,s_RndTbl[2]=0,s_RndTbl[3]=1cmv_x=(lmv_x+sRndTbl[lmv_x&3])>>1cmv_y=(lmv_y+s_RndTbl[lmv_y&3])>>1圖16B中的偽代碼出第一階段,即使用如下的變量,色度運(yùn)動(dòng)矢量是如何從4MV宏塊中四個(gè)亮度塊的運(yùn)動(dòng)信息中導(dǎo)出的。確定4MV宏塊的最多四個(gè)亮度運(yùn)動(dòng)矢量中的主極性,并且色度運(yùn)動(dòng)矢量是從具有主極性的亮度運(yùn)動(dòng)矢量確定的,(但不是從其它極性的亮度運(yùn)動(dòng)矢量)。9.強(qiáng)度補(bǔ)償如果強(qiáng)度補(bǔ)償用于參考半幀,則在使用參考幀中的象素作為預(yù)測(cè)值之前重新映射它們。當(dāng)使用強(qiáng)度補(bǔ)償時(shí),LUMSCALE(5738)和LUMSHIFT(5739)存在于圖像比特流中。圖18或56中的偽代碼示出LUMSCALE(5738)和LUMSHIFT(5739)用于重新映射參考半幀象素。使用LUTY[]表重新映射參考的Y分量,并且使用LUTUV[]表重新映射U和V分量,如下Fy=LUTY[pY],以及Puv=LUTUV[puv],其中ργ是參考半幀中的原始亮度象素值,是參考半幀中重新映射的亮度象素值,Pw是參考半幀中原始的U或V象素值,并且是參考半幀中重新映射的U或V象素值。10.剩余的解碼當(dāng)CBPCY(5762)元素存在時(shí),解碼器解碼宏塊的CBPCY(5762),其中CBPCY(5762)元素指示系數(shù)數(shù)據(jù)的存在/不存在。在塊層上,解碼器解碼幀間編碼的塊和幀內(nèi)編碼的塊的系數(shù)數(shù)據(jù)。為重構(gòu)幀間編碼的塊,解碼器⑴選擇變換類(lèi)型(8x8,8x4,4x8或4x4),⑵解碼子塊模式,(3)解碼系數(shù),(4)執(zhí)行反變換,(5)執(zhí)行反量化,(6)獲得塊的預(yù)測(cè),和(7)將預(yù)測(cè)和誤差塊相加。已經(jīng)參考各種實(shí)施例描述和示出了本發(fā)明的原理,將認(rèn)識(shí)到各種實(shí)施例可以在不脫離這樣的原理的情況下在排列和細(xì)節(jié)方面進(jìn)行修改。應(yīng)該理解,在此描述的程序、過(guò)程或方法與任何特定類(lèi)型的計(jì)算環(huán)境相關(guān)或受限于它,除非另外指示??稍诟鞣N類(lèi)型的通用或?qū)S玫挠?jì)算環(huán)境下使用或者按照在此描述的教導(dǎo)執(zhí)行操作。在軟件中所示的實(shí)施例元素可用硬件實(shí)現(xiàn),反之亦然。鑒于許多可應(yīng)用本發(fā)明原理的可能實(shí)施例,因此要求保護(hù)落在所附的權(quán)利要求書(shū)及其等價(jià)技術(shù)方案的范圍和精神內(nèi)的所有這樣的實(shí)施例作為本發(fā)明。權(quán)利要求一種方法,包括對(duì)于具有一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量的宏塊,至少部分地基于所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量的極性估計(jì),導(dǎo)出色度運(yùn)動(dòng)矢量;以及執(zhí)行運(yùn)動(dòng)補(bǔ)償。2.如權(quán)利要求1所述的方法,其特征在于,所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量的每一個(gè)是奇或偶極性,并且其中,所述極性估計(jì)包括確定哪一極性在所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中是更共同的。3.如權(quán)利要求1所述的方法,其特征在于,所述導(dǎo)出色度運(yùn)動(dòng)矢量包括確定所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量的主極性,并且其中,只有具有主極性的那些亮度運(yùn)動(dòng)矢量才用于所述色度運(yùn)動(dòng)矢量導(dǎo)出。4.如權(quán)利要求3所述的方法,其特征在于,所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中的四個(gè)具有主極性,并且所述色度運(yùn)動(dòng)矢量是從具有主極性的四個(gè)亮度運(yùn)動(dòng)矢量的分量級(jí)中值導(dǎo)出的。5.如權(quán)利要求4所述的方法,其特征在于,所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中只有三個(gè)具有主極性,并且所述色度運(yùn)動(dòng)矢量是從三個(gè)具有主極性的亮度運(yùn)動(dòng)矢量的分量級(jí)中值導(dǎo)出的。6.如權(quán)利要求3所述的方法,其特征在于,所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中只有兩個(gè)具有主極性,并且所述色度運(yùn)動(dòng)矢量是從兩個(gè)具有主極性的亮度運(yùn)動(dòng)矢量的分量級(jí)平均值導(dǎo)出的。7.如權(quán)利要求3所述的方法,其特征在于,所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中只有一個(gè)具有主極性,并且其中,所述色度運(yùn)動(dòng)矢量是從具有主極性的亮度運(yùn)動(dòng)矢量導(dǎo)出的。8.如權(quán)利要求1所述的方法,其特征在于,2參考半幀隔行掃描P半幀包括所述宏塊,并且其中,所述極性估計(jì)包括確定所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中的哪一些具有與所述P半幀相同的極性,以及所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中的哪一些具有與所述P半幀相反的極性。9.如權(quán)利要求8所述的方法,其特征在于,如果所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中相等數(shù)量的亮度運(yùn)動(dòng)矢量具有相同極性和相反極性,則所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中具有相同極性的每一亮度運(yùn)動(dòng)矢量為所述色度運(yùn)動(dòng)矢量導(dǎo)出作貢獻(xiàn)。10.如權(quán)利要求1所述的方法,其特征在于,所述宏塊具有四個(gè)亮度塊,并且其中,所述四個(gè)亮度塊中的每一個(gè)(1)具有所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中的奇參考半幀亮度運(yùn)動(dòng)矢量,或者(2)具有所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中的偶參考半幀亮度運(yùn)動(dòng)矢量。11.如權(quán)利要求1所述的方法,其特征在于,所述宏塊具有四個(gè)亮度塊,并且其中,所述四個(gè)亮度塊中的每一個(gè)(1)是幀內(nèi)編碼的,(2)具有所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中的奇參考半幀亮度運(yùn)動(dòng)矢量,或者(3)具有所述一個(gè)或多個(gè)亮度運(yùn)動(dòng)矢量中的偶參考半幀亮度運(yùn)動(dòng)矢量。12.如權(quán)利要求1所述的方法,其特征在于,視頻編碼器導(dǎo)出所述色度運(yùn)動(dòng)矢量和執(zhí)行所述運(yùn)動(dòng)補(bǔ)償。13.如權(quán)利要求1所述的方法,其特征在于,視頻解碼器導(dǎo)出所述色度運(yùn)動(dòng)矢量和執(zhí)行所述運(yùn)動(dòng)補(bǔ)償。14.一種方法,其特征在于,包括確定宏塊的多個(gè)亮度運(yùn)動(dòng)矢量中的占優(yōu)勢(shì)極性;以及至少部分地基于具有所述占優(yōu)勢(shì)極性的多個(gè)亮度運(yùn)動(dòng)矢量中的一個(gè)或多個(gè)導(dǎo)出所述宏塊的色度運(yùn)動(dòng)矢量。15.如權(quán)利要求14所述的方法,其特征在于如果在所述多個(gè)亮度運(yùn)動(dòng)矢量中奇極性比偶極性更共同,則所述占優(yōu)勢(shì)極性是奇極性;以及如果在所述多個(gè)亮度運(yùn)動(dòng)矢量中偶極性比奇極性更共同,則所述占優(yōu)勢(shì)極性是偶極性。16.如權(quán)利要求15所述的方法,其特征在于如果在所述多個(gè)亮度運(yùn)動(dòng)矢量中奇極性和偶極性是相等共同的,則所述占優(yōu)勢(shì)極性與包括所述宏塊的隔行掃描P半幀的極性相同。17.如權(quán)利要求14所述的方法,其特征在于,所述多個(gè)亮度運(yùn)動(dòng)矢量中的四個(gè)具有占優(yōu)勢(shì)極性,并且所述色度運(yùn)動(dòng)矢量是從具有占優(yōu)勢(shì)極性的四個(gè)亮度運(yùn)動(dòng)矢量的分量級(jí)中值導(dǎo)出的。18.如權(quán)利要求14所述的方法,其特征在于,所述多個(gè)亮度運(yùn)動(dòng)矢量中只有三個(gè)具有占優(yōu)勢(shì)極性,并且所述色度運(yùn)動(dòng)矢量是從具有占優(yōu)勢(shì)極性的三個(gè)亮度運(yùn)動(dòng)矢量的分量級(jí)中值導(dǎo)出的。19.如權(quán)利要求14所述的方法,其特征在于,所述多個(gè)亮度運(yùn)動(dòng)矢量中只有二個(gè)具有占優(yōu)勢(shì)極性,并且所述色度運(yùn)動(dòng)矢量是從具有占優(yōu)勢(shì)極性的二個(gè)亮度運(yùn)動(dòng)矢量的分量級(jí)平均值導(dǎo)出的。20.如權(quán)利要求14所述的方法,其特征在于,所述宏塊具有四個(gè)亮度塊,并且其中,所述四個(gè)亮度運(yùn)動(dòng)矢量的每一個(gè)具有所述多個(gè)亮度運(yùn)動(dòng)矢量中的奇或偶參考半幀亮度運(yùn)動(dòng)矢量。21.如權(quán)利要求14所述的方法,其特征在于,所述宏塊具有四個(gè)亮度塊,并且其中,所述四個(gè)亮度塊的每一個(gè)是幀內(nèi)編碼的或者具有所述多個(gè)亮度運(yùn)動(dòng)矢量中的奇或偶參考半幀亮度運(yùn)動(dòng)矢量。22.—種解碼器,包括用于導(dǎo)出隔行掃描P半幀中宏塊的色度運(yùn)動(dòng)矢量的裝置,包括,對(duì)于所述多個(gè)宏塊中的至少一個(gè),至少部分地基于所述宏塊的多個(gè)亮度運(yùn)動(dòng)矢量的極性估計(jì),導(dǎo)出所述色度運(yùn)動(dòng)矢量;以及用于執(zhí)行運(yùn)動(dòng)估計(jì)的裝置。23.如權(quán)利要求22所述的解碼器,其特征在于,對(duì)于給定隔行掃描P半幀的給定宏塊,所述用于導(dǎo)出色度運(yùn)動(dòng)矢量的裝置如果所述宏塊是幀內(nèi)編碼的,則跳過(guò)色度運(yùn)動(dòng)矢量導(dǎo)出;否則,如果所述宏塊具有單個(gè)亮度運(yùn)動(dòng)矢量,則從所述單個(gè)亮度運(yùn)動(dòng)矢量中導(dǎo)出所述色度運(yùn)動(dòng)矢量;否則,如果所述隔行掃描P半幀具有一個(gè)參考幀,則從所述宏塊的多個(gè)亮度運(yùn)動(dòng)矢量中導(dǎo)出所述色度運(yùn)動(dòng)矢量;以及否則,從具有占優(yōu)勢(shì)極性的宏塊的多個(gè)亮度運(yùn)動(dòng)矢量中的一個(gè)或多個(gè)中導(dǎo)出所述色度運(yùn)動(dòng)矢量。全文摘要描述了編碼和解碼隔行掃描視頻的各種技術(shù)和工具,包括(1)隔行掃描前向預(yù)測(cè)半幀的混合運(yùn)動(dòng)矢量預(yù)測(cè),(2)使用運(yùn)動(dòng)矢量塊模式,(3)在運(yùn)動(dòng)矢量預(yù)測(cè)值的主和非主極性之間選擇,(4)參考半幀選擇信息和差分運(yùn)動(dòng)矢量信息的聯(lián)合編碼和解碼,(5)隔行掃描前向預(yù)測(cè)半幀的宏塊的聯(lián)合編碼/解碼,(6)使用可用于隔行掃描前向預(yù)測(cè)半幀的參考半幀數(shù)量的信號(hào),以及(7)導(dǎo)出隔行掃描前向預(yù)測(cè)半幀的宏塊的色度運(yùn)動(dòng)矢量。各種技術(shù)與工具可以組合或者獨(dú)立地使用。文檔編號(hào)H03M7/36GK101902635SQ20101011015公開(kāi)日2010年12月1日申請(qǐng)日期2004年9月3日優(yōu)先權(quán)日2003年9月7日發(fā)明者T·W·赫爾科比申請(qǐng)人:微軟公司