两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

處理視頻圖像的方法

文檔序號:7521786閱讀:162來源:國知局
專利名稱:處理視頻圖像的方法
技術(shù)領(lǐng)域
描述了用于在視頻編碼/解碼應(yīng)用中對二進(jìn)制信息進(jìn)行編碼/解碼的技術(shù)和工具。例如,視頻編碼器對跳過宏塊信息進(jìn)行編碼。
背景技術(shù)
數(shù)字視頻消耗大量的存儲和傳輸容量。典型的原始數(shù)字視頻序列每秒包括15或 30幀。每一幀能夠包括幾萬或幾十萬個(gè)像素(也稱為pel)。每一像素表示圖像的一個(gè)微小元素。在原始的形式中,計(jì)算機(jī)通常用M比特來表示一個(gè)像素。由此,典型的原始數(shù)字視頻序列的每秒的比特?cái)?shù),或比特率可以是500萬比特/秒或更高。大多數(shù)計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)缺乏處理原始數(shù)字視頻的資源。鑒于此原因,工程師使用壓縮(也稱為譯碼或編碼)來降低數(shù)字視頻的比特率。在視頻的質(zhì)量不受損害但比特率的降低受視頻的復(fù)雜性限制的情況下,壓縮是無損的?;蛘?,在視頻的質(zhì)量受損害但比特率的降低更顯著的情況下,壓縮是有損的。解壓縮倒轉(zhuǎn)了壓縮。一般來說,視頻壓縮技術(shù)包括幀內(nèi)壓縮和幀間壓縮。幀內(nèi)壓縮技術(shù)壓縮單個(gè)的幀, 通常稱為I幀或主幀。幀間壓縮技術(shù)在壓縮幀時(shí)參考前幀和/或后幀,通常稱為預(yù)測幀、P 幀或B幀。微軟公司的Windows Media Video,版本7 [ “WMV7”]包括視頻編碼器和視頻解碼器。WMV7編碼器使用幀內(nèi)和幀間壓縮,WMV7解碼器使用幀內(nèi)和幀間解壓。A. WMV7的幀內(nèi)壓縮

圖1說明了 WMV7編碼器中對主幀中像素的塊(105)的基于塊的幀內(nèi)壓縮(100)。 塊是一組像素,例如,像素的8 X 8排列。WMV7編碼器將主視頻幀拆分為8 X 8的像素塊,并對各單個(gè)塊,如塊(105)應(yīng)用8X8的離散余弦變換["DCT"] (110)。DCT是一種頻率變換, 將8X8的像素(空間信息)塊轉(zhuǎn)換為8X8的DCT系數(shù)塊(115),即頻率信息。DCT操作本身是無損或接近無損的。然而,與原始像素值相比較,DCT系數(shù)對編碼器來說能更有效地用來壓縮,因?yàn)榇蠖鄶?shù)重要信息集中在低頻系數(shù)(常規(guī)地位于塊(115)的左上角)中,并且許多高頻系數(shù)(常規(guī)地位于塊(11 的右下角)的值為零或接近零。編碼器然后將DCT系數(shù)量化(120),得到一個(gè)8X8的量化DCT系數(shù)(125)塊。例如,編碼器對每一系數(shù)應(yīng)用統(tǒng)一標(biāo)量量化步長,類似于將每一系數(shù)除以同一值并舍入成整數(shù)。例如,如果一個(gè)DCT系數(shù)值是163并且步長為10,則量化DCT系數(shù)值為16。量化是有損的。重建的DCT系數(shù)值將是160,而非163。由于低頻DCT系數(shù)往往具有較大的值,量化會導(dǎo)致精度損耗,但不會完全丟失系數(shù)的信息。另一方面,由于高頻DCT系數(shù)的值往往為零或接近零,對高頻系數(shù)的量化通常導(dǎo)致零值的鄰接區(qū)域。此外,在某些情況下,高頻DCT系數(shù)比低頻DCT系數(shù)更粗糙地量化,導(dǎo)致高頻DCT系數(shù)的精度/信息的大量損耗。編碼器然后準(zhǔn)備8X8的量化DCT系數(shù)(12 塊來進(jìn)行熵編碼,這是一種無損壓縮的形式。確切的熵編碼類型根據(jù)系數(shù)是否是DC系數(shù)(最低頻率)、頂行或左列中的AC系數(shù) (其它頻率)或另一 AC系數(shù)而不同。編碼器將DC系數(shù)(126)編碼為對相鄰的8X8塊的DC系數(shù)的差分,該相鄰塊是正在編碼的塊的相鄰的(如,上方或左邊)先前已編碼的塊。(圖1示出了幀內(nèi)相鄰塊(135) 位于正在編碼的塊的左邊。)編碼器對該差分進(jìn)行熵編碼(140)。熵編碼器能夠?qū)C系數(shù)的左列或頂行編碼為對相鄰的8 X 8的塊的相應(yīng)列或行的差分。圖1示出將AC系數(shù)的左列(127)編碼為對相鄰(左邊)塊135的左列(137)的差分。差分編碼提高了差分系數(shù)具有零值的機(jī)率。剩余的AC系數(shù)來自量化DCT系數(shù)塊(125)。編碼器將8X8的預(yù)測的量化AC DCT系數(shù)塊(145)掃描(150)為一維數(shù)組(155), 然后使用行程編碼(160)的一種變異來對掃描的AC系數(shù)進(jìn)行熵編碼。編碼器從一個(gè)或多個(gè)游程/級/最后(rim/level/last)表(165)中選擇熵碼并輸出該熵碼。主幀對比特率比預(yù)測幀起到更大的作用。在低或者中比特率應(yīng)用中,主幀經(jīng)常是性能的關(guān)鍵瓶頸,因此主幀的有效壓縮是關(guān)鍵的。圖2說明了如圖1所示的幀內(nèi)壓縮的缺點(diǎn)。特別地,對主幀的塊之間的冗余的充分利用被限制在對來自塊Ο ο)的左邊鄰塊(220)或上方鄰塊Q30)的頻率系數(shù)的子集(例如,DC系數(shù)和AC系數(shù)的左列(或頂行))的預(yù)測上。DC系數(shù)表示塊的平均值,AC系數(shù)的左列表示塊的行平均值,頂行表示列平均值。事實(shí)上,如WMV7中的對DC和AC系數(shù)的預(yù)測限制了向左面(或上方)鄰塊的行范圍(或列范圍)平均信號的外插。對于左塊O20)的一個(gè)特定的行021),左塊Q20)的左DCT系數(shù)列中的AC系數(shù)用來預(yù)測塊O10)的整個(gè)相應(yīng)行 011)。B. WMV7中的幀間壓縮WMV7編碼器中的幀間壓縮使用基于塊的運(yùn)動(dòng)補(bǔ)償預(yù)測編碼,隨后為剩余誤差的變換編碼。圖3和4說明了 WMV7編碼器中對預(yù)測幀的基于塊的幀間壓縮。特別地,圖3說明了對預(yù)測幀(310)的運(yùn)動(dòng)估計(jì),圖4說明了對預(yù)測幀的已估計(jì)運(yùn)動(dòng)的塊的預(yù)測剩余的壓縮。WMV7編碼器將一個(gè)預(yù)測幀拆分為8X8的像素塊。一組4個(gè)8X8的塊組成宏塊。 對每一宏塊,執(zhí)行運(yùn)動(dòng)估計(jì)進(jìn)程。運(yùn)動(dòng)估計(jì)近似與參考幀,如先前被編碼的預(yù)測幀相關(guān)的像素宏塊的運(yùn)動(dòng)。在圖3中,WMV7編碼器計(jì)算預(yù)測幀(310)中的宏塊(315)的運(yùn)動(dòng)矢量。為計(jì)算該運(yùn)動(dòng)矢量,編碼器在參考幀(330)的搜索范圍(33 中進(jìn)行搜索。在搜索范圍(335) 內(nèi),編碼器將來自預(yù)測幀(310)的宏塊(31 與不同候選宏塊進(jìn)行比較,來找出較佳匹配的候選宏塊。編碼器能夠在搜索范圍(33 中對候選塊每一像素或每1/2像素進(jìn)行檢查,取決于編碼器的所期望的運(yùn)動(dòng)估計(jì)分辨率。其它視頻編碼器以其它增量進(jìn)行檢查,如每1/4 像素。對于一個(gè)候選宏塊,編碼器檢查預(yù)測幀(310)的宏塊(31 和候選宏塊之間的差異以及對該宏塊進(jìn)行運(yùn)動(dòng)矢量編碼的成本。當(dāng)編碼器找到較佳匹配的宏塊之后,塊匹配進(jìn)程結(jié)束。編碼器輸出匹配宏塊的運(yùn)動(dòng)矢量(已被熵編碼),使得解碼器能夠在解碼過程中找到匹配的宏塊。當(dāng)對預(yù)測幀(310)進(jìn)行解碼時(shí),解碼器使用運(yùn)動(dòng)矢量,利用來自參考幀(330) 的信息來計(jì)算宏塊(315)的預(yù)測宏塊。對宏塊(315)的預(yù)測很少是理想的,因此編碼器通常對預(yù)測宏塊和宏塊(31 其本身之間8X8的像素差異塊(也稱為誤差或剩余塊)來進(jìn)行編碼。圖4說明了 WMV7編碼器中對已進(jìn)行運(yùn)動(dòng)估計(jì)的塊進(jìn)行誤差塊035)的計(jì)算和編碼。誤差塊(43 是預(yù)測塊(41 和原始當(dāng)前塊(42 之間的差異。編碼器對誤差塊(435) 應(yīng)用DCT(440),得到8X8的系數(shù)塊045)。與像素值的DCT系數(shù)的情況相比,誤差塊(435) 的重要信息更顯著得多地集中在低頻系數(shù)(常規(guī)地位于塊G45)的左上角)中,許多高頻系數(shù)的值為零或接近零(常規(guī)地位于塊G45)的右下角)。編碼器然后量化(450) DCT系數(shù),得到8 X 8的量化DCT系數(shù)塊(45 。量化步長是可調(diào)節(jié)的。再一次,由于低頻DCT系數(shù)往往具有較大的值,量化導(dǎo)致精度的損耗,但未完全損耗系數(shù)的信息。另一方面,由于高頻DCT系數(shù)的值往往為零或接近零,高頻系數(shù)的量化導(dǎo)致零值的鄰接區(qū)域。另外,在某些情況下,高頻DCT系數(shù)比低頻DCT系數(shù)更粗糙地量化,導(dǎo)致高頻DCT系數(shù)的精度/信息的更大損耗。編碼器然后準(zhǔn)備8X8的量化DCT系數(shù)塊(455)用于熵編碼。編碼器將8X8的塊 (455)掃描(460)為具有64個(gè)元素的一維數(shù)組065),使得系數(shù)一般從低頻到高頻地排列, 這通常令零值位于最后。編碼器使用行程編碼(470)的一個(gè)變異對掃描的系數(shù)進(jìn)行熵編碼。編碼器從一個(gè)或多個(gè)游程/級/最后表G75)中選擇熵碼并輸出該熵碼。當(dāng)宏塊的運(yùn)動(dòng)矢量為零(即沒有運(yùn)動(dòng)),并且對該宏塊沒有發(fā)送剩余塊信息,編碼器對該宏塊使用1比特的跳過宏塊標(biāo)志。對多種視頻內(nèi)容(如,低運(yùn)動(dòng)和/或低比特率視頻)來說,這通過避免運(yùn)動(dòng)矢量和剩余塊信息的發(fā)送降低了比特率。編碼器將宏塊的跳過宏塊標(biāo)志與該宏塊的其它信息一起放置在輸出比特流的宏塊層。圖5示出了幀間編碼塊的解碼進(jìn)程(500)。由于DCT系數(shù)的量化,重建的塊(575) 與相應(yīng)的原始塊不相同。該壓縮是有損的。在圖5的概述中,解碼器使用可變長度解碼和一個(gè)或多個(gè)游程/級/最后表(515) 對已經(jīng)過熵編碼的表示預(yù)測剩余的信息進(jìn)行解碼(510,520)。解碼器將儲存已進(jìn)行熵解碼的信息的一維數(shù)組(525)逆掃描為二維塊(535)。解碼器對數(shù)據(jù)進(jìn)行反量化和反離散余弦變換(同時(shí)進(jìn)行,540),得到重建的誤差塊( 。在一單獨(dú)的路徑中,解碼器使用對參考幀的位移的運(yùn)動(dòng)矢量信息(55 來計(jì)算預(yù)測塊(565)。解碼器將預(yù)測塊(56 和重建的誤差塊(545)組合(570)來組成重建塊(575)。當(dāng)解碼器接收到宏塊的跳過宏塊標(biāo)志時(shí),解碼器跳過對該宏塊的預(yù)測計(jì)算和剩余塊信息解碼。取而代之的是,解碼器使用參考幀中宏塊位置的相應(yīng)像素?cái)?shù)據(jù)。原始和重建幀之間的變化量被稱為失真,對幀進(jìn)行編碼所需要的比特?cái)?shù)被稱為率。失真量一般說來與率成反比。換言之,用較少的比特來對幀進(jìn)行編碼(較大壓縮)將導(dǎo)致較大的失真,反之亦然。視頻壓縮模式的目的之一是試圖改進(jìn)率-失真-換言之,試圖采用較少的比特來達(dá)到同樣的失真(或使用相同的比特來達(dá)到較低的失真)。盡管WMV7中使用的跳過宏塊標(biāo)志對多種視頻內(nèi)容來說通常能夠降低比特率,然而在某些情況下卻遠(yuǎn)非最佳。在許多情況下,未能充分利用從宏塊到宏塊的跳過宏塊標(biāo)志中的冗余,例如,當(dāng)跳過宏塊成群地出現(xiàn)在圖像中時(shí)。同樣,WMV7在跳過宏塊時(shí)忽略了對預(yù)測幀中宏塊的運(yùn)動(dòng)預(yù)測,在某些情況下會損傷預(yù)測幀的壓縮的效率。C.視頻壓縮和解壓的標(biāo)準(zhǔn)
7
除WMV7之外,若干種國際標(biāo)準(zhǔn)與視頻壓縮和解壓相關(guān)。這些標(biāo)準(zhǔn)包括運(yùn)動(dòng)圖像專家組[“MPEG” ]1、2和4標(biāo)準(zhǔn)以及國際電信聯(lián)盟〔“ITU”〕的H. 261、H. 262和H. 263標(biāo)準(zhǔn)。 與WMV7類似,這些標(biāo)準(zhǔn)使用幀內(nèi)和幀間壓縮的組合,盡管這些標(biāo)準(zhǔn)通常在所使用的壓縮技術(shù)細(xì)節(jié)上與WMV7不同。一些國際標(biāo)準(zhǔn)認(rèn)可將宏塊的跳過編碼作為一種工具在視頻壓縮和解壓中使用。欲知這些標(biāo)準(zhǔn)中有關(guān)跳過宏塊編碼的另外的細(xì)節(jié),參見該標(biāo)準(zhǔn)的說明書本身。上述標(biāo)準(zhǔn)中的跳過宏塊編碼通常降低了多種視頻內(nèi)容的比特率,但是在某些情況下遠(yuǎn)非最佳。在許多情況下,未能充分利用從宏塊到宏塊的跳過宏塊標(biāo)志中的冗余,例如, 當(dāng)跳過宏塊成群地出現(xiàn)在圖像中時(shí)。同樣,當(dāng)跳過宏塊時(shí),它忽略了對預(yù)測宏塊/圖像中的宏塊的運(yùn)動(dòng)預(yù)測,從而在某些情況下會損傷預(yù)測宏塊/圖像的壓縮效率。鑒于對數(shù)字視頻的視頻壓縮和解壓的關(guān)鍵重要性,視頻壓縮和解壓是充分開發(fā)的領(lǐng)域并不令人驚訝。然而,不論先前的視頻壓縮和解壓技術(shù)的好處如何,它們都沒有以下技術(shù)和工具的優(yōu)點(diǎn)。發(fā)明_既述總的來說,詳細(xì)描述針對用于對二進(jìn)制信息進(jìn)行編碼和解碼(如,在視頻編碼器/ 解碼器中)的各類技術(shù)和工具。二進(jìn)制信息可能包括指示視頻編碼器或解碼器在視頻幀中是否跳過了某一宏塊的位?;蛘?,二進(jìn)制信息可能包括指示對宏塊的運(yùn)動(dòng)矢量分辨率(如 I-MV或4-MV)、隔行掃描方式(如半幀或幀)或一些其它信息的位。二進(jìn)制信息可能在逐幀的基礎(chǔ)上或者在一些其它基礎(chǔ)上編碼。在一些實(shí)施例中,二進(jìn)制信息在位平面上排列。例如,位平面在圖像/幀層被編碼??蛇x地,二進(jìn)制信息以其它方法排列和/或在不同的層編碼。編碼器和解碼器處理二進(jìn)制信息。二進(jìn)制信息可能包括宏塊級信息。可選地,編碼器和解碼器處理塊級、子塊級或像素級信息的位平面。在一些實(shí)施例中,編碼器和解碼器切換編碼模式。例如,編碼器和解碼器使用普通、行跳過或列跳過模式。不同的模式使得編碼器和解碼器可以充分利用二進(jìn)制信息中的冗余??蛇x地,編碼器和解碼器使用其它和/或另外的模式,如差分模式。為提高效率,編碼器和解碼器可能在某些模式中使用位平面倒置技術(shù)。在一些實(shí)施例中,編碼器和解碼器將跳過宏塊定義為運(yùn)動(dòng)等于其因果預(yù)測運(yùn)動(dòng)并具有零剩余誤差的預(yù)測宏塊??蛇x地,編碼器和解碼器將跳過宏塊定義為具有零運(yùn)動(dòng)和零剩余誤差的預(yù)測宏塊。在一些實(shí)施例中,編碼器和解碼器使用原始編碼模式來允許低等待時(shí)間應(yīng)用。例如,在原始編碼模式中,已編碼的宏塊能夠立即發(fā)送到解碼器,而不需要等到幀/圖像中的所有宏塊都被編碼。編碼器和解碼器能夠在原始編碼模式和其它模式之間切換。各類技術(shù)和工具可以組合使用或單獨(dú)使用。特別地,該應(yīng)用連同相應(yīng)的比特流語法一起描述了跳過宏塊編碼和解碼的兩種實(shí)現(xiàn)。不同的實(shí)施例實(shí)現(xiàn)了一種或多種所描述的技術(shù)和工具。參考附圖閱讀以下對不同實(shí)施例的詳細(xì)描述,可以更清楚其它特點(diǎn)和優(yōu)點(diǎn)。附圖的簡要描述圖1所示是依照現(xiàn)有技術(shù)的對一個(gè)8X8的像素塊的基于塊的幀內(nèi)壓縮的圖。
圖2所示是依照現(xiàn)有技術(shù)的頻率系數(shù)的預(yù)測的圖。圖3所示是依照現(xiàn)有技術(shù)的視頻編碼器中的運(yùn)動(dòng)估計(jì)的圖。圖4所示是依照現(xiàn)有技術(shù)的視頻編碼器中對一個(gè)8X8的預(yù)測剩余塊的基于塊的幀間壓縮的圖。圖5所示是依照現(xiàn)有技術(shù)的對一個(gè)8X8的預(yù)測剩余塊的基于塊的幀內(nèi)解壓的圖。圖6是適于在其中實(shí)現(xiàn)若干所描述的實(shí)施例的計(jì)算環(huán)境的結(jié)構(gòu)圖。圖7是若干所描述的實(shí)施例中使用的一般化的視頻編碼器系統(tǒng)的結(jié)構(gòu)圖。圖8是若干所描述的實(shí)施例中使用的一般化的視頻解碼器系統(tǒng)的結(jié)構(gòu)圖。圖9所示是依照第一實(shí)現(xiàn)的組成P圖像層的比特流元素的圖。圖10所示是用于在具有多個(gè)跳過宏塊編碼模式的視頻編碼器中對跳過宏塊的信息進(jìn)行編碼的技術(shù)的流程圖。圖11所示是用于對由具有多個(gè)跳過宏塊編碼模式的視頻編碼器編碼的跳過宏塊的信息進(jìn)行解碼的技術(shù)的流程圖。圖12所示是跳過宏塊編碼幀的一個(gè)示例。圖13所示是用于在普通跳過宏塊編碼模式中進(jìn)行編碼的技術(shù)的流程圖。圖14所示是用于在行預(yù)測跳過宏塊編碼模式中進(jìn)行編碼的技術(shù)的流程圖。圖15所示是用于對跳過宏塊的信息進(jìn)行行預(yù)測解碼的偽代碼的代碼列表。圖16所示是用于在列預(yù)測跳過宏塊編碼模式中進(jìn)行編碼的技術(shù)的流程圖。圖17所示是用于對跳過宏塊的信息進(jìn)行列預(yù)測解碼的偽代碼的代碼列表。圖18所示是用于確定在視頻編碼器中是否跳過特定宏塊的編碼的技術(shù)的流程圖。圖19所示是用于以行跳過編碼模式在位平面中對二進(jìn)制信息進(jìn)行編碼的技術(shù)的流程圖。圖20所示是用于以列跳過編碼模式在位平面中對二進(jìn)制信息進(jìn)行編碼的技術(shù)的流程圖。圖21所示是用于以普通-2編碼模式在位平面中對二進(jìn)制信息進(jìn)行編碼的技術(shù)的流程圖。圖22、23和M所示是以普通_6模式平鋪的二進(jìn)制信息的幀的示例。圖25所示是用于以普通-6模式在位平面中對二進(jìn)制信息進(jìn)行編碼的技術(shù)的流程圖。圖沈所示是用于以差分編碼模式對二進(jìn)制信息進(jìn)行編碼的技術(shù)的流程圖。圖27所示是用于以差分編碼模式對二進(jìn)制信息進(jìn)行解碼的技術(shù)的流程圖。圖觀所示是用于對低等待時(shí)間應(yīng)用以原始編碼模式選擇性地對二進(jìn)制信息進(jìn)行編碼的技術(shù)的流程圖。詳細(xì)描述所描述的實(shí)施例與用于對二進(jìn)制信息進(jìn)行編碼和解碼(如,在視頻編碼器/解碼器中)的技術(shù)和工具相關(guān)。二進(jìn)制信息可能包括指示視頻編碼器或解碼器是否跳過了視頻幀中的特定宏塊的位?;蛘撸M(jìn)制信息可包括指示宏塊的運(yùn)動(dòng)矢量分辨率(如I-MV或 4-MV)、隔行掃描模式(如半幀或幀)或其它信息的位。二進(jìn)制信息可能在逐幀的基礎(chǔ)上或在一些其它基礎(chǔ)上進(jìn)行編碼。在一些實(shí)施例中,二進(jìn)制信息在位平面中排列。位平面在圖像/幀層被編碼。可選地,二進(jìn)制信息以一些其它方式排列和/或在不同的層編碼。在一些實(shí)施例中,編碼器和解碼器切換編碼模式。例如,編碼器和解碼器使用普通、行跳過或列跳過模式。不同的模式使得編碼器和解碼器可以充分利用二進(jìn)制信息中的冗余??蛇x地,編碼器和解碼器使用其它和/或另外的模式。在一些實(shí)施例中,編碼器和解碼器將跳過宏塊定義為運(yùn)動(dòng)等于其因果預(yù)測的運(yùn)動(dòng)并具有零剩余誤差的預(yù)測宏塊??蛇x地,編碼器和解碼器將跳過宏塊定義為具有零運(yùn)動(dòng)和零剩余誤差的預(yù)測宏塊。在一些實(shí)施例中,作為對有效幀/圖像級編碼的替代,準(zhǔn)許使用原始編碼模式來允許低等待時(shí)間應(yīng)用。在原始編碼模式中,已編碼的宏塊能夠立即發(fā)送到解碼器,而不需要等待直到幀/圖像中的所有宏塊都編碼完成。在一些實(shí)施例中,編碼器和解碼器處理宏塊級信息的位平面??蛇x地,編碼器和解碼器處理塊、子塊或像素級信息的位平面。各類技術(shù)和工具可以組合使用或單獨(dú)使用。具體而言,本申請連同相應(yīng)的比特流語法一起描述了跳過宏塊編碼和解碼的兩種實(shí)現(xiàn)。不同的實(shí)施例實(shí)現(xiàn)一種或多種所描述的技術(shù)和工具。在所描述的實(shí)施例中,視頻編碼器和解碼器執(zhí)行各類技術(shù)。盡管這些技術(shù)的操作通常為演示目的,以特定順序來描述,應(yīng)當(dāng)理解,這一描述方式包含操作順序中較小的重排列,除非需要特定的順序。例如,順序地描述的操作在某些情況下可以重新排列或并發(fā)執(zhí)行。此外,為簡化的目的,流程圖通常不顯示特定技術(shù)可以與其它技術(shù)結(jié)合使用的不同方法。在所描述的實(shí)施例中,視頻編碼器和解碼器在比特流中使用不同的標(biāo)志和信號。 盡管描述了特定的標(biāo)志和信號,應(yīng)當(dāng)理解,這一描述方式包含了對標(biāo)志和信號的不同約定 (如0的約定而不是1的約定)。I.計(jì)算環(huán)境圖6說明了適于在其中實(shí)現(xiàn)若干所描述的實(shí)施例的計(jì)算環(huán)境(600)的一般化示例。該計(jì)算環(huán)境(600)并不意味著對使用或功能的范圍的限制,這些技術(shù)和工具可以在不同的通用或?qū)S糜?jì)算系統(tǒng)中實(shí)現(xiàn)。參考圖6,計(jì)算環(huán)境(600)包括至少一個(gè)處理單元(610)和存儲器(620)。在圖6 中,這一最基本的配置(630)包括在虛線框中。處理單元(610)執(zhí)行計(jì)算機(jī)可執(zhí)行指令并可以是真實(shí)或虛擬的處理器。在多處理系統(tǒng)中,多處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令來提高處理能力。存儲器(620)可以是易失存儲器(如,寄存器、高速緩存、RAM)、非易失存儲器 (如,R0M、EEPR0M、閃存等等)或兩者的某一組合。存儲器(620)儲存實(shí)現(xiàn)編碼器或解碼器, 如視頻編碼器或解碼器的軟件(680)。計(jì)算環(huán)境可以具有其它特性。例如,計(jì)算系統(tǒng)(600)包括存儲(640)、一個(gè)或多個(gè)輸入設(shè)備(650)、一個(gè)或多個(gè)輸出設(shè)備(660)以及一個(gè)或多個(gè)通信連接(670)?;ミB機(jī)制 (未示出)如總線、控制器或網(wǎng)絡(luò)將計(jì)算環(huán)境(600)的組件互連。通常,操作系統(tǒng)軟件(未示出)為其它在計(jì)算環(huán)境(600)中執(zhí)行的軟件提供了操作環(huán)境,并協(xié)調(diào)計(jì)算環(huán)境(600)的組件的活動(dòng)。存儲(640)可以是可移動(dòng)或不可移動(dòng)的,包括磁盤、磁帶或盒式磁帶、⑶-ROM、DVD 或其它任一可以用來儲存信息并在計(jì)算環(huán)境(600)內(nèi)可訪問的媒質(zhì)。存儲(640)儲存軟件 (680)用來實(shí)現(xiàn)編碼器或解碼器的指令。(多個(gè))輸入設(shè)備(650)可以是觸摸輸入設(shè)備,如鍵盤、鼠標(biāo)、筆、或軌跡球、語音輸入設(shè)備、掃描設(shè)備或另一提供向計(jì)算環(huán)境(600)的輸入的設(shè)備。對音頻或視頻編碼來說, (多個(gè))輸入設(shè)備(650)可以是聲卡、視頻卡、電視調(diào)諧卡或以模擬或數(shù)字形式接受音頻或視頻輸入的類似設(shè)備、或?qū)⒁纛l或視頻樣本讀入計(jì)算環(huán)境(600)的CD-ROM或CD-RW。(多個(gè))輸出設(shè)備(660)可以是顯示器、打印機(jī)、揚(yáng)聲器、CD記錄器或從計(jì)算環(huán)境(600)提供輸出的另一設(shè)備。(多個(gè))通信連接(670)啟用通過通信媒質(zhì)向另一計(jì)算實(shí)體的通信。通信媒質(zhì)傳送信息如計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出或其它已調(diào)制數(shù)據(jù)信號中的數(shù)據(jù)。已調(diào)制數(shù)據(jù)信號是以某一方式設(shè)定或改變其一個(gè)或多個(gè)特征來對信號中的信息進(jìn)行編碼的信號。作為示例而非限制,通信媒質(zhì)包括用電子、光學(xué)、RF、紅外、聲學(xué)或其它載體實(shí)現(xiàn)的有線或無線技術(shù)。本技術(shù)和工具可以在計(jì)算機(jī)可讀媒質(zhì)的一般語境中描述。計(jì)算機(jī)可讀媒質(zhì)是任一在計(jì)算環(huán)境中可訪問的可用媒質(zhì)。作為示例而非局限,在計(jì)算環(huán)境(600)中,計(jì)算機(jī)可讀媒質(zhì)包括存儲器(620)、存儲(640)、通信媒質(zhì)以及上述任一件的組合。本技術(shù)和工具可以在計(jì)算機(jī)可執(zhí)行指令的一般語境下描述,如包括在程序模塊中、在目標(biāo)真實(shí)或虛擬處理器上的計(jì)算環(huán)境中執(zhí)行的計(jì)算機(jī)可執(zhí)行指令。通常,程序模塊包括例程、程序、庫、對象、類、組件、數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。如不同實(shí)施例的期望,程序模塊的功能可以在程序模塊之間組合或分離。程序模塊的計(jì)算機(jī)可執(zhí)行指令可以在本地或分布式計(jì)算環(huán)境中執(zhí)行。為演示目的,詳細(xì)描述使用術(shù)語如“確定”、“選擇”、“重建”及“通知”,來描述計(jì)算環(huán)境中的計(jì)算機(jī)操作。這些術(shù)語是對計(jì)算機(jī)執(zhí)行的操作的高級抽象,不應(yīng)與人類執(zhí)行的行動(dòng)混淆。與這些術(shù)語相應(yīng)的實(shí)際計(jì)算機(jī)操作可根據(jù)實(shí)現(xiàn)的不同而不同。II. 一般化的視頻編碼器和解碼器圖7是一般化的視頻編碼器(700)的結(jié)構(gòu)圖,圖8是一般化的視頻解碼器(800) 的結(jié)構(gòu)圖。編碼器和解碼器內(nèi)的模塊之間示出的關(guān)系指示了編碼器和解碼器內(nèi)的信息的主流程;為簡化目的,未示出其它關(guān)系。特別地,圖7和8通常未示出指示用于視頻序列、幀、 宏塊、塊等等的編碼器設(shè)置、模式、表等等的側(cè)面信息。這類側(cè)面信息在輸出比特流中發(fā)送, 通常在對側(cè)面信息的熵編碼之后。輸出比特流的格式可以是Windows Media Video版本8 的格式或另一格式。編碼器(700)和解碼器(800)是基于塊的,并使用4:2:0的宏塊格式,每一宏塊包括4個(gè)8 X 8的亮度塊(有時(shí)也作為一個(gè)16 X 16的宏塊來看待)以及兩個(gè)8 X 8的色度塊。 可選地,編碼器(700)和解碼器(800)可以是基于對象的,使用不同的宏塊或塊格式,或在尺寸和構(gòu)造不同于8X8的塊和16X16的宏塊的像素集的基礎(chǔ)上執(zhí)行操作。根據(jù)所期望的實(shí)現(xiàn)和壓縮類型,編碼器或解碼器的模塊可以被添加、省略、拆分成多個(gè)模塊、與其它模塊組合和/或用相似模塊代替。在替代實(shí)施例中,使用不同模塊和/或其它模塊構(gòu)造的編碼器或解碼器執(zhí)行所描述的技術(shù)的一個(gè)或多個(gè)。A.視頻編碼器圖7是一般視頻編碼器系統(tǒng)(700)的結(jié)構(gòu)圖。編碼器系統(tǒng)(700)接收包括當(dāng)前幀 (705)的一系列視頻幀并生成壓縮的視頻信息(795)作為輸出。視頻編碼器的具體實(shí)施例通常使用一般化的編碼器(700)的變異或補(bǔ)充版本。編碼器系統(tǒng)(700)壓縮預(yù)測幀和主幀。為了演示,圖7示出了主幀通過編碼系器統(tǒng)(700)的路徑以及前向預(yù)測幀的路徑。編碼器系統(tǒng)(700)的許多組件既用來壓縮主幀也用來壓縮預(yù)測幀。這些組件所執(zhí)行的確切操作可根據(jù)壓縮的信息類型的不同而不同。預(yù)測幀〔也稱為雙向預(yù)測中的ρ幀、b幀或幀間編碼幀(inter-coded frame)〕按照從一個(gè)或多個(gè)其它幀的預(yù)測(或差異)來表示。預(yù)測剩余是所預(yù)測的和原始幀之間的差異。相反,主幀〔也稱為i幀或幀內(nèi)編碼幀(intra-coded frame)〕不參考其它幀而壓縮。如果當(dāng)前幀(70 是前向預(yù)測幀,運(yùn)動(dòng)估計(jì)器(710)估計(jì)當(dāng)前幀的像素宏塊或其它像素集對于參考幀的運(yùn)動(dòng),參考幀是緩存在幀存儲(720)中的重建的前一幀(725)。在替代實(shí)施例中,參考幀是后一幀,或者當(dāng)前幀是雙向預(yù)測的。運(yùn)動(dòng)估計(jì)器(710)能夠根據(jù)像素、1/2像素、1/4像素或其它增量來估計(jì)運(yùn)動(dòng),并在逐幀或其它基礎(chǔ)上切換運(yùn)動(dòng)估計(jì)的分辨率。運(yùn)動(dòng)估計(jì)的分辨率可以在水平上和垂直上相同或不同。運(yùn)動(dòng)估計(jì)器(710)將運(yùn)動(dòng)信息(715),如運(yùn)動(dòng)矢量作為側(cè)面信息輸出。運(yùn)動(dòng)補(bǔ)償器(730)將運(yùn)動(dòng)信息(715)應(yīng)用到重建的前一幀(72 來組成已經(jīng)過運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前幀(735)。然而,預(yù)測很少是完美的,已經(jīng)過運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前幀(73 和原始當(dāng)前幀(70 之間的差異為預(yù)測剩余(74 。可選地,運(yùn)動(dòng)估計(jì)器和運(yùn)動(dòng)補(bǔ)償器應(yīng)用另一類型的運(yùn)動(dòng)估計(jì)/補(bǔ)償。頻率轉(zhuǎn)換器(760)將空間域視頻信息轉(zhuǎn)換為頻域(即,頻譜的)數(shù)據(jù)。對于基于塊的視頻幀,頻率轉(zhuǎn)換器(760)對像素?cái)?shù)據(jù)或預(yù)測剩余數(shù)據(jù)的塊應(yīng)用離散余弦變換[“DCT”] 或DCT的變異,生成DCT系數(shù)塊??蛇x地,頻率變換器(760)應(yīng)用另一常規(guī)頻率變換,如傅立葉變換或使用小波或子帶分析。在編碼器使用空間外插(圖7未示出)來對主幀的塊進(jìn)行編碼的實(shí)施例中,頻率轉(zhuǎn)換器(760)可以對主幀的預(yù)測剩余的塊應(yīng)用重定向的頻率變換,如偏斜DCT。在其它實(shí)施例中,頻率變換器(760)對預(yù)測幀的預(yù)測剩余應(yīng)用8X8、8X4、 4X8或其它尺寸的頻率變換(如DCT)。量化器(770)然后量化空間數(shù)據(jù)系數(shù)塊。量化器對空間數(shù)據(jù)應(yīng)用統(tǒng)一的標(biāo)量量化,其步長在逐幀或其它基礎(chǔ)上變化??蛇x地,量化器對空間數(shù)據(jù)系數(shù)應(yīng)用另一種量化,例如,非統(tǒng)一、矢量或非自適應(yīng)量化,或直接在不使用頻率變換的編碼器系統(tǒng)內(nèi)量化空間域數(shù)據(jù)。除自適應(yīng)量化之外,編碼器(700)可以使用幀丟棄、自適應(yīng)濾波或其它技術(shù)來進(jìn)行率控制。如果預(yù)測幀中一個(gè)給定的宏塊沒有特定類型的信息(如,沒有宏塊的運(yùn)動(dòng)信息并且沒有剩余信息),則編碼器(700)將該宏塊編碼為跳過宏塊。如果是這樣,編碼器在壓縮的視頻信息(795)的輸出比特流中發(fā)信號通知該跳過宏塊。當(dāng)需要重建的當(dāng)前幀用于隨后的運(yùn)動(dòng)估計(jì)/補(bǔ)償時(shí),反量化器(776)在量化的空間數(shù)據(jù)系數(shù)上執(zhí)行反量化。反頻率變換器(766)然后執(zhí)行頻率變換器(760)的反操作,生成重建的預(yù)測剩余(對預(yù)測幀)或重建的主幀。如果當(dāng)前幀(70 是主幀,則重建的主幀
12被用作重建的當(dāng)前幀(未示出)。如果當(dāng)前幀(705)是預(yù)測幀,則將重建的預(yù)測剩余添加到已經(jīng)過運(yùn)動(dòng)補(bǔ)償?shù)漠?dāng)前幀(73 來組成重建的當(dāng)前幀。幀存儲(720)緩存重建的當(dāng)前幀用于預(yù)測下一幀。在一些實(shí)施例中,編碼器對重建的幀應(yīng)用數(shù)據(jù)分塊濾波器來自適應(yīng)地平滑幀的塊中的不連續(xù)。熵編碼器(780)壓縮量化器(770)的輸出以及某些側(cè)面信息(例如,運(yùn)動(dòng)信息 (715)、空間外插模式、量化步長)。典型的熵編碼技術(shù)包括算術(shù)編碼、差分編碼、哈夫曼 (Huffman)編碼、行程編碼、LZ編碼、字典編碼以及上述的組合。熵編碼器(780)通常對不同種類的信息(例如,DC系數(shù)、AC系數(shù)、不同種類的側(cè)面信息)使用不同的編碼技術(shù),并能夠從特定編碼技術(shù)之內(nèi)的多個(gè)代碼表中進(jìn)行選擇。熵編碼器(780)將壓縮的視頻信息(7%)放置在緩存(790)中。緩存級別指示符反饋至比特率自適應(yīng)模塊。壓縮的視頻信息(7%)從緩存(790)中以恒定或相對恒定的比特率排出,并被儲存用于該比特率的隨后的流中。因此,緩存(790)的級別主要是已濾波的量化視頻信息的熵的函數(shù),它影響熵編碼的效率??蛇x地,編碼器系統(tǒng)(700)在壓縮之后立即將壓縮的視頻信息形成流,并且緩存(790)的級別也取決于信息從緩存(790)中排出進(jìn)行發(fā)送的率。在緩存(790)之前或之后,可以對壓縮的視頻信息(7%)進(jìn)行信道編碼用于通過網(wǎng)絡(luò)來發(fā)送。信道編碼可以將誤差檢測和糾正數(shù)據(jù)應(yīng)用到壓縮視頻信息(795)中。B.視頻解碼器圖8是一般視頻解碼器系統(tǒng)(800)的結(jié)構(gòu)圖。解碼器系統(tǒng)(800)接收視頻幀的已壓縮序列的信息(895),并生成包括重建幀(80 的輸出。視頻解碼器的特定實(shí)施例通常使用一般化的解碼器(800)的變異或補(bǔ)充版本。解碼器系統(tǒng)(800)對預(yù)測幀和主幀進(jìn)行解壓。為了演示,圖8示出了主幀通過解碼器系統(tǒng)(800)的路徑以及前向預(yù)測幀的路徑。解碼器系統(tǒng)(800)的許多組件既用來對主幀進(jìn)行解壓也用來對預(yù)測幀進(jìn)行解壓。這些組件的確切操作可以根據(jù)所要解壓的信息類型的不同而不同。緩存(890)接收壓縮視頻序列的信息(895)并使接收的信息對熵解碼器(880)可用。緩存(890)通常以隨時(shí)間變化相當(dāng)恒定的率接收信息,并包括抖動(dòng)緩存來平滑帶寬或傳輸中的短期變化。緩存(890)可以包括回放緩存以及其它緩存。可選地,緩存(890)以變化的率來接收信息。在緩存(890)之前或之后,可以對壓縮的視頻信息進(jìn)行信道解碼和誤差檢測和糾正的處理。熵解碼器(880)對熵編碼的量化數(shù)據(jù)和熵編碼的側(cè)面信息(例如,運(yùn)動(dòng)信息 (815)、空間外插模式、量化步長)進(jìn)行熵解碼,通常應(yīng)用編碼器中執(zhí)行的熵編碼的反操作。 熵解碼技術(shù)包括算術(shù)解碼、差分解碼、哈夫曼解碼、行程解碼、LZ解碼、字典解碼以及上述的組合。熵解碼器(880)經(jīng)常對不同的信息種類(如DC系數(shù)、AC系數(shù)、不同的側(cè)面信息種類) 使用不同的解碼技術(shù),并能夠在特定的解碼技術(shù)中從多個(gè)代碼表中作出選擇。如果要重建的幀(805)是前向預(yù)測幀,則運(yùn)動(dòng)補(bǔ)償器(830)對參考幀(825)應(yīng)用運(yùn)動(dòng)信息(815)來組成要重建的幀(805)的預(yù)測(835)。例如,運(yùn)動(dòng)補(bǔ)償器(830)使用宏塊運(yùn)動(dòng)矢量來找出參考幀(82 中的宏塊。幀緩存(820)儲存前一重建的幀用作參考幀。運(yùn)動(dòng)補(bǔ)償器(830)能夠按照像素、1/2像素、1/4像素或其它增量來補(bǔ)償運(yùn)動(dòng),并能夠在逐幀或者其它基礎(chǔ)上切換運(yùn)動(dòng)補(bǔ)償?shù)姆直媛?。運(yùn)動(dòng)補(bǔ)償?shù)姆直媛士梢栽谒缴虾痛怪鄙舷嗤虿煌?蛇x地,運(yùn)動(dòng)補(bǔ)償器應(yīng)用另一類型的運(yùn)動(dòng)補(bǔ)償。運(yùn)動(dòng)補(bǔ)償器的預(yù)測很少是完美的,因此解碼器(800)也重建預(yù)測剩余。當(dāng)解碼器需要重建幀用于隨后的運(yùn)動(dòng)補(bǔ)償時(shí),幀存儲(820)緩存重建幀用于預(yù)測下一幀。在一些實(shí)施例中,編碼器對重建幀應(yīng)用數(shù)據(jù)分塊濾波器來自適應(yīng)地平滑幀的塊中的不連續(xù)。
反量化器(870)反量化熵解碼的數(shù)據(jù)。一般來說,反量化器對熵解碼的數(shù)據(jù)應(yīng)用統(tǒng)一標(biāo)量反量化,其步長在逐幀或者其它基礎(chǔ)上變化??蛇x地,反量化器對數(shù)據(jù)應(yīng)用另一類型的反量化,如非統(tǒng)一、矢量或非自適應(yīng)量化,或直接在不使用反頻率變換的解碼器系統(tǒng)中反量化空間域。反頻率轉(zhuǎn)換器(860)將量化的頻域數(shù)據(jù)轉(zhuǎn)換為空間域視頻信息。對于基于塊的視頻幀,反頻率轉(zhuǎn)換器(860)對DCT系數(shù)塊應(yīng)用反DCT[“IDCT”]或IDCT的變異,生成分別用于主幀或預(yù)測幀的像素?cái)?shù)據(jù)或預(yù)測剩余數(shù)據(jù)??蛇x地,頻率轉(zhuǎn)換器(860)應(yīng)用另一常規(guī)反頻率變換,如傅立葉變換或使用小波或子帶合成。在解碼器使用空間外插(圖8未示出) 來對主幀的塊進(jìn)行解碼的實(shí)施例中,反頻率轉(zhuǎn)換器(860)能夠?qū)χ鲙念A(yù)測剩余塊應(yīng)用重定向的反頻率轉(zhuǎn)換,如偏斜IDCT。在其它實(shí)施例中,反頻率轉(zhuǎn)換器(860)對預(yù)測幀的預(yù)測剩余應(yīng)用8X8、8X4、4X8或其它尺寸的反頻率轉(zhuǎn)換(如IDCT)。當(dāng)在壓縮的視頻幀序列的信息(895)的比特流中發(fā)信號通知跳過宏塊時(shí),解碼器 (800)重建跳過宏塊,而不使用通常包含在非跳過宏塊的比特流中的信息(例如,運(yùn)動(dòng)信息和/或剩余信息)。III.第一實(shí)現(xiàn)在第一實(shí)現(xiàn)中,視頻編碼器和解碼器分別以提高的效率對跳過宏塊的信息進(jìn)行編碼和解碼。在視頻比特流中的圖像層上發(fā)信號通知跳過宏塊的信息,使得編碼器能夠充分利用跳過宏塊的信息中的冗余。同樣,編碼器和解碼器在多個(gè)編碼模式之間進(jìn)行選擇以對跳過宏塊的信息進(jìn)行編碼和解碼。A.跳過宏塊的信息的圖像層編碼在第一實(shí)現(xiàn)中,壓縮視頻序列由構(gòu)造成四個(gè)分級層的數(shù)據(jù)組成。從上到下層分別為1)序列層;2)圖像層;3)宏塊層;以及4)塊層。在圖像層,每一圖像的數(shù)據(jù)包括圖像頭,隨后是宏塊層的數(shù)據(jù)。(類似地,在宏塊層,每一宏塊的數(shù)據(jù)包括宏塊頭,隨后是塊層的數(shù)據(jù)。)當(dāng)I圖像和P圖像的一些比特流元素相同時(shí),其它元素僅出現(xiàn)在P圖像,反之亦然。圖9示出了組成P圖像層(900)的比特流元素。表1簡要地描述了 P圖像層(900) 的比特流元素。
權(quán)利要求
1.在計(jì)算機(jī)系統(tǒng)中,一種處理一個(gè)或多個(gè)視頻圖像的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于, 所述方法包括從一組多個(gè)可用的編碼模式中選擇一編碼模式;以及對于一個(gè)或多個(gè)視頻圖像中P圖像的多個(gè)預(yù)測宏塊根據(jù)所選擇的編碼模式處理跳過信息,其中跳過信息指示P圖像的多個(gè)預(yù)測宏塊是被跳過還是不被跳過,并且如果滿足以下條件,P圖像的多個(gè)預(yù)測宏塊中的一個(gè)預(yù)測宏塊被跳過所述預(yù)測宏塊使用基于P圖像中一個(gè)或多個(gè)其它宏塊的運(yùn)動(dòng)的預(yù)測運(yùn)動(dòng); 以及所述預(yù)測宏塊沒有剩余信息。
2.在實(shí)現(xiàn)一種視頻解碼器的計(jì)算機(jī)系統(tǒng)中,一種對包含多個(gè)預(yù)測宏塊的視頻圖像進(jìn)行解碼的方法,其中所述多個(gè)預(yù)測宏塊的每個(gè)塊根據(jù)不多于一個(gè)參考視頻圖像來預(yù)測,其特征在于,所述方法包括從比特流中接收編碼數(shù)據(jù);以及對視頻圖像進(jìn)行解碼,解碼包括 從多個(gè)可用編碼模式中選擇一種編碼模式;對于多個(gè)預(yù)測宏塊中的一個(gè)或多個(gè)跳過的宏塊,對跳過的宏塊信息進(jìn)行解碼,所述跳過的宏塊信息已根據(jù)從多個(gè)可用編碼模式中所選擇的編碼模式進(jìn)行了編碼,其中所述跳過的宏塊信息指示跳過/非跳過狀態(tài);以及處理所述一個(gè)或多個(gè)跳過的宏塊,其中所述一個(gè)或多個(gè)跳過的宏塊中的每一個(gè) 使用基于所述跳過的宏塊周圍的一個(gè)或多個(gè)其它的預(yù)測宏塊的運(yùn)動(dòng)的預(yù)測運(yùn)動(dòng);以及缺少剩余信息。
3.如權(quán)利要求2所述的方法,其特征在于,所述處理所述一個(gè)或多個(gè)跳過的宏塊包括 對于視頻圖像的當(dāng)前宏塊,使用與從所述一個(gè)或多個(gè)其它的預(yù)測宏塊中獲取的預(yù)測器運(yùn)動(dòng)矢量相等的運(yùn)動(dòng)矢量來重建當(dāng)前宏塊,并且其中所述一個(gè)或多個(gè)其它的預(yù)測宏塊與所述視頻圖像中的當(dāng)前宏塊相鄰。
4.如權(quán)利要求2所述的方法,其特征在于,所述比特流語法包括多個(gè)分級層,其中所述多個(gè)分級層至少包括圖像層和宏塊層,并且其中所述跳過的宏塊信息在所述圖像層傳輸信號。
5.在實(shí)現(xiàn)一種視頻編碼器的計(jì)算機(jī)系統(tǒng)中,一種對包含多個(gè)預(yù)測宏塊的視頻圖像進(jìn)行編碼的方法,其中所述多個(gè)預(yù)測宏塊的每個(gè)塊根據(jù)不多于一個(gè)參考視頻圖像來預(yù)測,其特征在于,所述方法包括對視頻圖像進(jìn)行編碼以生成編碼數(shù)據(jù),編碼包括 從多個(gè)可用編碼模式中選擇一種編碼模式;處理多個(gè)預(yù)測宏塊中的一個(gè)或多個(gè)跳過的宏塊,其中所述一個(gè)或多個(gè)跳過的宏塊中的每一個(gè)使用基于所述跳過的宏塊周圍的一個(gè)或多個(gè)其它的預(yù)測宏塊的運(yùn)動(dòng)的預(yù)測運(yùn)動(dòng);以及缺少剩余信息;對一個(gè)或多個(gè)跳過的宏塊的跳過的宏塊信息進(jìn)行編碼,其中所述跳過的宏塊信息指示跳過/非跳過狀態(tài),并且其中所述編碼包括根據(jù)從所述多個(gè)可用編碼模式中選擇的編碼模式來對所述跳過的宏塊信息進(jìn)行編碼;以及在比特流中輸出編碼數(shù)據(jù)。
6.如權(quán)利要求5所述的方法,其特征在于,所述處理所述一個(gè)或多個(gè)跳過的宏塊包括 對于視頻圖像的當(dāng)前宏塊,使用與從所述一個(gè)或多個(gè)其它的預(yù)測宏塊中獲取的預(yù)測器運(yùn)動(dòng)矢量相等的運(yùn)動(dòng)矢量來預(yù)測當(dāng)前宏塊,并且其中所述一個(gè)或多個(gè)其它的預(yù)測宏塊與所述視頻圖像中的當(dāng)前宏塊相鄰。
7.如權(quán)利要求6所述的方法,其特征在于,所述處理所述一個(gè)或多個(gè)跳過的宏塊包括 確定所述跳過的宏塊的預(yù)測的運(yùn)動(dòng)是否等于從與所述跳過的宏塊相鄰一個(gè)或多個(gè)其它的預(yù)測宏塊的運(yùn)動(dòng)矢量中獲取的預(yù)測器運(yùn)動(dòng)矢量;以及確定所述跳過的宏塊缺少剩余信息。
8.如權(quán)利要求5所述的方法,其特征在于,所述比特流語法包括多個(gè)分級層,其中所述多個(gè)分級層至少包括圖像層和宏塊層,并且其中所述跳過的宏塊信息在所述圖像層傳輸信號。
9.一種視頻解碼器的計(jì)算設(shè)備,所述計(jì)算設(shè)備包括 處理單元;存儲器; 顯不器;無線通信連接;以及一個(gè)或多個(gè)存儲計(jì)算機(jī)可執(zhí)行指令的存儲介質(zhì),所述指令在由所述處理單元執(zhí)行時(shí)使所述計(jì)算設(shè)備執(zhí)行一種對包含多個(gè)預(yù)測宏塊的視頻圖像進(jìn)行解碼的方法,其中所述多個(gè)預(yù)測宏塊的每個(gè)塊根據(jù)不多于一個(gè)參考視頻圖像來預(yù)測,其特征在于,所述方法包括 從比特流中接收編碼數(shù)據(jù);以及對視頻圖像進(jìn)行解碼,解碼包括 從多個(gè)可用編碼模式中選擇一種編碼模式;對于多個(gè)預(yù)測宏塊中的一個(gè)或多個(gè)跳過的宏塊,對跳過的宏塊信息進(jìn)行解碼,所述跳過的宏塊信息已根據(jù)從多個(gè)可用編碼模式中所選擇的編碼模式進(jìn)行了編碼,其中所述跳過的宏塊信息指示跳過/非跳過狀態(tài);以及處理所述一個(gè)或多個(gè)跳過的宏塊,其中所述一個(gè)或多個(gè)跳過的宏塊中的每一個(gè)使用基于所述跳過的宏塊周圍的一個(gè)或多個(gè)其它的預(yù)測宏塊的運(yùn)動(dòng)的預(yù)測運(yùn)動(dòng),以及缺少剩余信息;以及通過顯示器輸出視頻圖像。
10.如權(quán)利要求9所述的計(jì)算設(shè)備,其特征在于,所述處理所述一個(gè)或多個(gè)跳過的宏塊包括對于視頻圖像的當(dāng)前宏塊,使用與從所述一個(gè)或多個(gè)其它的預(yù)測宏塊中獲取的預(yù)測器運(yùn)動(dòng)矢量相等的運(yùn)動(dòng)矢量來重建當(dāng)前宏塊,并且其中所述一個(gè)或多個(gè)其它的預(yù)測宏塊與所述視頻圖像中的當(dāng)前宏塊相鄰。
11.如權(quán)利要求9所述的計(jì)算設(shè)備,其特征在于,所述比特流語法包括多個(gè)分級層,其中所述多個(gè)分級層至少包括圖像層和宏塊層,并且其中所述跳過的宏塊信息在所述圖像層傳輸信號。
12.一種視頻編碼器的計(jì)算設(shè)備,所述計(jì)算設(shè)備包括 處理單元;存儲器;顯不器;無線通信連接;以及一個(gè)或多個(gè)存儲計(jì)算機(jī)可執(zhí)行指令的存儲介質(zhì),所述指令在由所述處理單元執(zhí)行時(shí)使所述計(jì)算設(shè)備執(zhí)行一種對包含多個(gè)預(yù)測宏塊的視頻圖像進(jìn)行編碼的方法,其中所述多個(gè)預(yù)測宏塊的每個(gè)塊根據(jù)不多于一個(gè)參考視頻圖像來預(yù)測,其特征在于,所述方法包括對視頻圖像進(jìn)行編碼以生成編碼數(shù)據(jù),編碼包括從多個(gè)可用編碼模式中選擇一種編碼模式;處理多個(gè)預(yù)測宏塊中的一個(gè)或多個(gè)跳過的宏塊,其中所述一個(gè)或多個(gè)跳過的宏塊中的每一個(gè)使用基于所述跳過的宏塊周圍的一個(gè)或多個(gè)其它的預(yù)測宏塊的運(yùn)動(dòng)的預(yù)測運(yùn)動(dòng),以及缺少剩余信息;對一個(gè)或多個(gè)跳過的宏塊的跳過的宏塊信息進(jìn)行編碼,其中所述跳過的宏塊信息指示跳過/非跳過狀態(tài),并且其中所述編碼包括根據(jù)從所述多個(gè)可用編碼模式中選擇的編碼模式來對所述跳過的宏塊信息進(jìn)行編碼;以及通過所述無線通信連接在比特流中輸出編碼數(shù)據(jù)。
13.如權(quán)利要求12所述的計(jì)算設(shè)備,其特征在于,所述處理所述一個(gè)或多個(gè)跳過的宏塊包括對于視頻圖像的當(dāng)前宏塊,使用與從所述一個(gè)或多個(gè)其它的預(yù)測宏塊中獲取的預(yù)測器運(yùn)動(dòng)矢量相等的運(yùn)動(dòng)矢量來預(yù)測當(dāng)前宏塊,并且其中所述一個(gè)或多個(gè)其它的預(yù)測宏塊與所述視頻圖像中的當(dāng)前宏塊相鄰。
14.如權(quán)利要求13所述的計(jì)算設(shè)備,其特征在于,所述處理所述一個(gè)或多個(gè)跳過的宏塊包括確定所述跳過的宏塊的預(yù)測的運(yùn)動(dòng)是否等于從與所述跳過的宏塊相鄰一個(gè)或多個(gè)其它的預(yù)測宏塊的運(yùn)動(dòng)矢量中獲取的預(yù)測器運(yùn)動(dòng)矢量;以及確定所述跳過的宏塊缺少剩余信息。
15.如權(quán)利要求12所述的計(jì)算設(shè)備,其特征在于,所述比特流語法包括多個(gè)分級層,其中所述多個(gè)分級層至少包括圖像層和宏塊層,并且其中所述跳過的宏塊信息在所述圖像層傳輸信號。
全文摘要
描述了各種用于對二進(jìn)制信息(如跳過宏塊信息)進(jìn)行編碼和解碼(如在視頻編碼器/解碼器中)的技術(shù)和工具。在一些實(shí)施例中,二進(jìn)制信息在位平面上排列,并且該位平面在圖像/幀層上編碼。編碼器和解碼器處理二進(jìn)制信息,并且在一些實(shí)施例中,切換編碼模式。例如,編碼器和解碼器使用普通、行跳過、列跳過或差分模式,或其它和/或另外的模式。在一些實(shí)施例中,編碼器和解碼器將跳過宏塊定義為其運(yùn)動(dòng)等于其因果預(yù)測的運(yùn)動(dòng)并且具有零剩余誤差的預(yù)測宏塊。在一些實(shí)施例中,編碼器和解碼器使用原始編碼模式來允許低等待時(shí)間應(yīng)用。
文檔編號H03M7/40GK102316320SQ20111015966
公開日2012年1月11日 申請日期2002年12月16日 優(yōu)先權(quán)日2001年12月17日
發(fā)明者P·蘇, S·斯里尼瓦杉 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
盐城市| 乐亭县| 册亨县| 扶绥县| 日照市| 双流县| 望谟县| 静安区| 大足县| 西吉县| 咸阳市| 兴业县| 兴海县| 巴彦县| 永年县| 汝阳县| 巴林左旗| 泾源县| 和田市| 宝应县| 鹤壁市| 兴化市| 章丘市| 绥江县| 石屏县| 监利县| 白山市| 曲沃县| 庄浪县| 新津县| 玉龙| 清丰县| 论坛| 临邑县| 棋牌| 慈溪市| 博白县| 九龙县| 清河县| 华安县| 金堂县|