專利名稱:用于在視頻序列中對運動進行編碼的方法
技術領域:
本發(fā)明通常涉及一種通信系統(tǒng),特別是涉及視頻編碼中的運動補償。
背景技術:
和膠片上記錄的普通運動圖像一樣,數(shù)字視頻序列包括一系列的靜止圖像,通過以相對較快的速率,通常每秒15-30幀的速率一個接一個的顯示該序列中的連續(xù)圖像,可以創(chuàng)建出運動的錯覺。由于相對較快的幀顯示速率,在連續(xù)幀中的圖像很可能非常類似,從而包含相當多的冗余信息。例如,普通的場景可能包括一些靜止單元,例如背景景物,而形狀可能各不相同的一些移動區(qū)域,例如新聞播音員的臉,可能會快速運動。可替換地或附加地,例如由于記錄場景的攝像機的平移,搖攝或變焦,在視頻序列中可能會出現(xiàn)所謂“全局運動”。然而,在許多情況下,在一個視頻幀和下一視頻幀之間的總體變化還是較小的。
未壓縮的數(shù)字視頻序列的每個幀都包括一個圖像像素的陣列。例如,在通常使用的數(shù)字視頻格式中,例如已知的四分之一公用交換格式(QCIF)中,一個幀包括176×144個像素,其中每個幀都有25,344個像素。每個像素進而又由一定數(shù)目的比特來表示,這些比特攜帶有關于該像素對應的圖像區(qū)域的亮度和/或色度內(nèi)容的信息。通常,使用所謂的YUV顏色模型來表示圖像的亮度和色度內(nèi)容。亮度分量,或Y分量,表示圖像的強度(明亮度),而圖像的色度內(nèi)容由兩個色度或色差分量U和V來表示。
基于圖像內(nèi)容的亮度/色度表示的顏色模型,相對于基于基色(即紅,綠,藍,RGB)表示的顏色模型更為有利。因為人的視覺系統(tǒng)對亮度變化比對顏色變化更為敏感,而YUV顏色模型通過對色度分量(U,V)使用比亮度分量(Y)更低的空間分辨率,來利用這種特性。這樣,在可以接受降低一定圖像質(zhì)量的前提下,可以減少圖像中的彩色信息編碼所需的信息量。
色度分量的較低空間分辨率通常是通過空間子取樣來獲得的。典型的,視頻序列的每個幀都被劃分為所謂“宏塊”,這些宏塊包括亮度(Y)信息和相關的(空間子取樣后的)色度(U,V)信息。圖3示出了形成宏塊的一種方法。圖3a表示利用YUV顏色模型來表示的視頻序列的一個幀,每個分量都具有相同的空間分辨率。宏塊是這樣形成的將原始圖像(圖3b)中的一個16×16圖像像素的區(qū)域表示為四個亮度信息塊,每個亮度塊包括一個8×8陣列的亮度(Y)值,以及兩個空間對應的色度分量(U和V),這兩個色度分量在水平和垂直方向上被系數(shù)2二次取樣,從而產(chǎn)生對應的8×8色度(U,V)值的陣列(參見圖3c)。
一個QCIF圖像包括11×9個宏塊。若亮度塊和色度塊以8比特分辨率(即,由0到255范圍內(nèi)的數(shù)字)來表示,每個宏塊所需比特的總數(shù)為(16×16×8)+2×(8×8×8)=3072比特。因此表示一個QCIF格式的視頻幀所需的比特數(shù)為99×3072=304,128比特。這意味著以每秒30幀的速率,用YUV顏色模型來表示的,QCIF格式的一個未壓縮視頻序列的傳輸/記錄/顯示所需的數(shù)據(jù)量要大于9Mbps(兆比特每秒)。這是非常大的數(shù)據(jù)率,并且在視頻記錄,傳輸和顯示應用中是不現(xiàn)實的,因為這需要非常大的存儲容量,傳輸信道能力和硬件性能。
若視頻數(shù)據(jù)將要在例如ISDN(綜合業(yè)務數(shù)字網(wǎng))或傳統(tǒng)PSTN(公共開關電話網(wǎng)絡)這樣的固定線網(wǎng)上實時傳輸,則可用數(shù)據(jù)傳輸帶寬一般為64kbits/s的數(shù)量級。在移動視頻電話中,至少一部分傳輸是在無線通信鏈路上進行的,則可用帶寬最低可以是20kbits/s。這意味著表示視頻數(shù)據(jù)所用的信息量必須顯著減少,才能在低帶寬通信網(wǎng)絡上傳輸數(shù)字視頻序列。為此,已研制出在保持可接受圖像質(zhì)量的同時減少傳輸?shù)男畔⒘康囊曨l壓縮技術。
視頻壓縮方法的基礎是減少視頻序列中冗余的和與感覺不相關的部分。視頻序列中的冗余度可被歸類為空間,時間和頻譜冗余度?!翱臻g冗余度”是用來描述一個幀內(nèi)相鄰像素之間的相關性(相似性)的術語。術語“時間冗余度”表示在序列的一個幀中出現(xiàn)的目標很可能在隨后的幀中也出現(xiàn),而“光譜冗余度”是指在相同圖像的不同彩色分量之間的相關性。
僅僅減少給定圖像序列中各種形式的冗余度并不能充分有效地實現(xiàn)壓縮。因此,目前大多視頻編碼器還減少視頻序列中主觀上最不重要的部分的質(zhì)量。另外,通過有效的丟失不重要部分(loss-less)的編碼方法,可以減少壓縮后視頻比特流本身的冗余度。通常,這是利用熵編碼技術來實現(xiàn)的。
在構成數(shù)字視頻序列每個幀的像素之間通常都有大量的空間冗余度。也就是說,在該序列的一個幀內(nèi)任何像素的值基本上都與其鄰近的其他像素的值相同。典型地,視頻編碼系統(tǒng)利用已知的“基于塊的變換編碼”來減少空間冗余度,其中對圖像像素塊應用數(shù)學變換,例如二維離散余弦變換(DCT)??蓪D像數(shù)據(jù)從包含像素值的表示方式變換為包含一組表示空間頻率分量的系數(shù)值的形式,顯著減少了空間冗余度,從而可產(chǎn)生更為簡潔的圖像數(shù)據(jù)的表示形式。
利用基于塊的變換編碼來壓縮、并不參考視頻序列中任何其他幀的視頻序列中的幀,被稱為幀內(nèi)編碼的幀或I-幀。另外,可能的是,幀內(nèi)編碼幀的塊可根據(jù)相同幀內(nèi)預先編碼過的塊來預測。這種技術,被稱為幀內(nèi)預測,能夠進一步減少表示幀內(nèi)編碼幀所需的數(shù)據(jù)量。
通常,視頻編碼系統(tǒng)不僅減少視頻序列中各個幀內(nèi)的空間冗余,還利用已知的“運動補償預測”技術來減少序列中的時間冗余。利用運動補償預測,數(shù)字視頻序列中的某些(往往很多)幀的圖像內(nèi)容可根據(jù)該序列中的一個或多個稱為“參考”幀的其它幀來預測。圖像內(nèi)容的預測是通過在將要編碼(壓縮)的幀和參考幀之間利用“運動矢量”來追蹤目標或圖像區(qū)域的運動而實現(xiàn)的。通常,參考幀在視頻序列中可以在將要編碼的幀之前或之后。在幀內(nèi)編碼的情況下,視頻幀的運動補償預測通常是一個宏塊一個宏塊地執(zhí)行的。
利用運動補償預測來壓縮的視頻序列幀通常稱為幀間編碼的幀或P-幀。僅僅是運動補償預測還不能對視頻幀的圖像內(nèi)容提供足夠精確的表示,因此還需要對每個幀間編碼幀提供一種所謂“預測誤差”(PE)幀。該預測誤差幀表示幀間編碼幀的解碼后版本和將要編碼幀的圖像內(nèi)容之間的差異。具體地說,該預測誤差幀包括表示將要編碼幀的像素值和根據(jù)該討論幀的預測版本而形成的對應重建像素值之間的差異的值。因此,預測誤差幀的特性類似于靜止圖像,并可以應用基于塊的變換編碼,來減少其空間冗余,進而減少表示它所需的數(shù)據(jù)量(比特數(shù)量)。
為了更詳細地示出通用視頻編碼系統(tǒng)的操作,下面將參照隨后的附
圖1和2中所示的視頻編碼器和視頻解碼器來說明。圖1的視頻編碼器100使用幀幀內(nèi)編碼和幀間編碼的結合來產(chǎn)生壓縮(編碼)后的視頻比特流,圖2的解碼器100用于接收和解碼編碼器100產(chǎn)生的視頻比特流,從而產(chǎn)生重建的視頻序列。在通篇說明書中都假定一個宏塊的亮度分量包括以四個8×8塊的陣列排列的16×16像素,相關的色度分量都在水平和垂直方向上被系數(shù)2進行空間二次取樣,以形成8×8的塊,如圖3所示。本說明關于其他塊尺寸和其他二次取樣方案的擴展對本領域的普通技術人員來說都是顯而易見的。
視頻編碼器100包括輸入端101,用于從攝像機或其他視頻源(未示出)接收數(shù)字視頻信號。它還包括變換單元104,用于執(zhí)行基于塊的離散余弦變換(DCT),量化器106,和逆量化器108,逆變換單元110,用于執(zhí)行基于塊的離散余弦逆變換(IDCT),合成器112和116,以及幀存儲器120。編碼器還包括運動估計器130,運動場編碼器140,和運動補償預測器150。開關102和114通過控制管理器160而聯(lián)合操作,用于將編碼器在幀內(nèi)模式的視頻編碼和幀間模式的視頻編碼之間切換。編碼器100還包括視頻復用編碼器170,用于根據(jù)編碼器100產(chǎn)生的各種類型的信息而形成單獨比特流,以便傳輸?shù)竭h程接收終端,或者,用于例如計算機硬盤驅(qū)動器(未示出)這樣的大容量存儲介質(zhì)的存儲。
下面說明編碼器100的操作。接收視頻源向輸入端101提供的未壓縮視頻的每個幀,并逐個宏塊地進行處理,最好按照光柵掃描的順序。當開始新的視頻序列的編碼時,將要編碼的第一幀被編碼為幀內(nèi)編碼幀。隨后,將編碼器編程從而將每個幀都以幀間編碼格式進行編碼,除非滿足以下條件之一1)判斷被編碼的當前宏塊與其預測中使用的參考幀的像素值非常不同,以致產(chǎn)生了過多的預測誤差信息,這時該當前宏塊以幀內(nèi)編碼格式進行編碼;2)到了預先定義的內(nèi)幀重復間隔;或3)從接收終端接收到反饋,指示某個幀以幀內(nèi)編碼格式提供的請求。
條件1)的出現(xiàn)可通過監(jiān)視合成器116的輸出來檢測。合成器116形成將要編碼幀的當前宏塊及其預測之間的差異,該預測在運動補償預測塊150中產(chǎn)生。若該差異的測量值(例如像素值的絕對差值的和)超過了預定的閾值,則合成器116通過控制線119通知控制管理器160,控制管理器160通過控制線113操作開關102和114,將編碼器100切換到幀內(nèi)編碼模式。這樣,不以幀間編碼格式編碼的一個幀可能包括幀內(nèi)編碼的宏塊。條件2)的出現(xiàn)通過控制管理器160中實施的計時器或幀計數(shù)器來檢測,這樣若計時器溢出,或幀計數(shù)器到達預定的幀數(shù)目,則控制管理器160通過控制線113操作開關102和114將編碼器切換到幀內(nèi)編碼模式。若控制管理器160通過控制線121從例如接收端接收到反饋信號,指示接收端請求幀內(nèi)幀的更新,則條件3)滿足。若先前傳輸?shù)膸谄鋫鬏斊陂g由于干擾被嚴重損壞,以致不能被接收機解碼,則可能會出現(xiàn)這種條件。在這種情況下,接收解碼器發(fā)出一個請求,請求下一幀以幀內(nèi)編碼格式被編碼,從而重新初始化編碼順序。
下面將說明幀內(nèi)編碼模式中編碼器100的操作。在幀內(nèi)編碼模式中,控制管理器160操作開關102從輸入線118接收視頻輸入。視頻信號輸入通過輸入線118從輸入端101被逐個宏塊的接收。接收到它們后,構成宏塊的亮度和色度值的塊被傳送到DCT變換塊104,對每個數(shù)值塊執(zhí)行二維離散余弦變換,對每個塊都產(chǎn)生一個DCT系數(shù)的二維陣列。DCT變換塊104對每個塊都產(chǎn)生一個系數(shù)值的陣列,該系數(shù)值的數(shù)目對應于構成宏塊的塊的維數(shù)(該例子中是8×8)。每個塊的DCT系數(shù)被傳送到量化器106,利用量化參數(shù)QP進行量化。量化參數(shù)QP的選擇由控制管理器160通過控制線115來控制。
然后將每個塊的量化后DCT系數(shù)的陣列從量化器106傳送到視頻復用編碼器170,如圖1的線路125所示。視頻復用編碼器170利用Z字形掃描程序?qū)γ總€塊的量化后變換系數(shù)進行排序,從而將量化后變換系數(shù)的二維陣列轉換為一維陣列。然后將該一維陣列中每個非零值的量化系數(shù)表示為一對值,稱為level和run,其中l(wèi)evel是量化系數(shù)的值,run是在當前系數(shù)之前的連續(xù)零值系數(shù)的數(shù)目。Run和level的值進一步利用熵編碼在視頻復用編碼器170中被壓縮,該熵編碼例如是,可變長度編碼(VLC),或運算編碼。
在利用適當方法對run和level的值進行熵編碼后,視頻復用編碼器170還將它們與控制信息相結合,以形成單獨的編碼圖像信息的壓縮后比特流135,其中該控制信息也利用適于該信息類型的適當方法進行了熵編碼。應當注意雖然熵編碼是結合視頻復用編碼器170的操作來說明的,但可以使用其它實施形式的獨立熵編碼單元。
在編碼器100中還形成宏塊的本地解碼版本。這是通過經(jīng)逆量化器108傳送量化器106輸出的每個塊的量化后變換系數(shù),和在逆變換塊110中應用DCT逆變換來完成的。這樣就對該宏塊的每個塊創(chuàng)建了重建后的像素值陣列。將得到的解碼后圖像數(shù)據(jù)輸入到合成器112。在幀內(nèi)編碼模式中,設定開關114使得通過開關114對合成器112的輸入為零。這樣,合成器112的操作等效于傳送未改變的解碼后圖像數(shù)據(jù)。
在接收到當前幀的隨后宏塊并進行了前述在塊104,106,108,110,112中進行的編碼和本地解碼步驟后,在幀存儲器120中建立起幀內(nèi)編碼的幀的解碼后版本。在當前幀的最后一個宏塊已被幀內(nèi)編碼和隨后解碼之后,幀存儲器120存儲一個完全解碼的幀,用于在對隨后接收的幀間編碼格式的視頻幀編碼時作為運動預測參考幀。
下面將說明編碼器100的幀間編碼模式。在幀間編碼模式中,控制管理器160操作開關102從線路117接收其輸入,該輸入包括合成器116的輸出。合成器116從輸入端101逐個宏塊地接收視頻輸入信號。在合成器116接收到構成宏塊的亮度和色度值的塊之后,可形成對應的預測誤差信息的塊。該預測誤差信息表示當前塊及其預測之間的差異,該預測是在運動補償預測塊150中產(chǎn)生的。更具體地,該宏塊的每個塊的預測誤差信息包括一個數(shù)值二維陣列,每個數(shù)值都表示被編碼的亮度或色度信息的塊中的像素值和解碼的像素值之間的差異,該解碼的像素值是根據(jù)下述步驟對該塊形成的運動補償預測而獲得的。因此,在本例子的視頻編碼系統(tǒng)中,每個宏塊包括,例如8×8塊的集合,所述塊包含有亮度和色度值,該宏塊的每個塊的預測誤差信息也類似地包括一個預測誤差值的8×8陣列。
將該宏塊的每個塊的預測誤差信息傳送到DCT變換塊104,對預測誤差值的每個塊執(zhí)行二維離散余弦變換,以便產(chǎn)生每個塊的DCT變換系數(shù)的二維陣列。DCT變換塊104對每個預測誤差塊產(chǎn)生一個系數(shù)值陣列,該系數(shù)值的數(shù)目對應于構成該宏塊的塊的維數(shù)(本例中為8×8)。從每個預測誤差塊得到的變換系數(shù)被傳送到量化器106,利用量化參數(shù)QP,以類似于上述幀內(nèi)編碼模式的編碼器操作的方式進行量化。如前所述,量化參數(shù)QP的選擇由控制管理器160通過控制線115來控制。
表示該宏塊的每個塊的預測誤差信息的量化后DCT系數(shù)從量化器106被傳送到視頻復用編碼器170,如圖1的線路125所示。在幀內(nèi)編碼模式中,視頻復用編碼器170利用一定的Z字形掃描程序?qū)γ總€預測誤差塊的變換系數(shù)進行排序,從而將每個非零值的量化系數(shù)表示為游程-等級(run-level)對。還利用熵編碼將該游程-等級對按照與上述幀內(nèi)編碼模式類似的方式進一步壓縮。視頻復用編碼器170還通過線路126從運動場編碼塊140接收運動矢量信息(以下將說明),從控制管理器160接收控制信息。它對運動矢量信息和控制信息進行熵編碼,并形成單獨的編碼圖像信息的比特流135,它包括熵編碼的運動矢量,預測誤差和控制信息。
表示該宏塊的每個塊的預測誤差信息的量化后DCT系數(shù)還從量化器106傳送到逆量化器108。這里對它們進行逆量化,并將得到的逆量化的DCT系數(shù)塊施加到DCT逆變換塊110,進行DCT逆變換,從而產(chǎn)生本地解碼的預測誤差值的塊。然后將本地解碼的預測誤差值的塊輸入到合成器112。在幀間編碼模式中,設定開關114,使得合成器112還接收運動補償預測塊150產(chǎn)生的該宏塊的每個塊的預測像素值。合成器112將每個本地解碼的預測誤差值的塊與對應的預測像素值的塊結合起來,從而產(chǎn)生重建的圖像塊,并將它們存儲在幀存儲器120中。
在從視頻源接收到視頻信號的隨后宏塊并進行了前述的在塊104,106,108,110,112中進行的編碼和解碼步驟后,在幀存儲器120中建立起該幀的解碼后版本。在該幀的最后一個宏塊已被處理后,幀存儲器120存儲一個完全解碼的幀,用于在對隨后接收的幀間編碼格式的視頻幀編碼時作為運動預測參考幀。
下面將說明視頻編碼器100執(zhí)行的運動補償預測。
以幀間編碼格式編碼的任何幀都需要一個參考幀,用于運動補償預測。這意味著,當編碼視頻序列時,將要編碼的第一幀,不論其是該序列中的第一幀,或是其他幀,都必須以幀內(nèi)編碼格式進行編碼。這反過來意味著,當視頻編碼器100被控制管理器160切換到幀間編碼模式時,已經(jīng)可以使用在編碼器的幀存儲器120中的,通過對先前編碼的幀進行本地解碼而形成的完全參考幀。通常,該參考幀是通過對幀內(nèi)編碼幀或幀間編碼幀進行本地解碼后形成的。
在以下說明中,假定該編碼器在宏塊的基礎上執(zhí)行運動補償預測,即宏塊是與運動信息相關的視頻幀的最小單元。還假定,對給定宏塊的預測是通過識別參考幀的亮度分量中的16×16個值的區(qū)域來形成的,該參考幀表示當前宏塊的16×16個亮度值的最佳對應。下面將說明視頻編碼系統(tǒng)中的運動補償預測,其中運動信息可以與比宏塊更小的單元相關聯(lián)。
形成當前幀的一個宏塊的預測的第一步是由運動估計塊130完成的。運動估計塊130通過線路128接收亮度和色度值的塊,這些塊構成了將要編碼幀的當前宏塊。然后執(zhí)行塊匹配操作,從而識別參考幀中與當前宏塊最佳對應的一個區(qū)域。為了執(zhí)行塊匹配操作,運動估計塊130通過線路127訪問幀存儲器120中存儲的參考幀數(shù)據(jù)。具體地說,運動估計塊130通過計算代表像素值差異的差值(例如,絕對差值的和)而執(zhí)行塊匹配,該像素值差異是指在被估計宏塊和幀存儲器120中存儲的參考幀中備選的最佳匹配像素區(qū)域之間的像素值差異。在該參考幀的預定搜索區(qū)域中產(chǎn)生所有可能偏移量的備選區(qū)域的差值,然后運動估價塊130判斷最小的計算差值。產(chǎn)生該最小差值的備選區(qū)域被選擇為最佳匹配區(qū)域。在當前宏塊和參考幀中識別的最佳匹配區(qū)域之間的偏移量定義了當前宏塊的一個“運動矢量”。該運動矢量通常包括一對數(shù)值,一個表示當前宏塊和參考幀的最佳匹配區(qū)域之間的水平位移(Δx),另一個表示垂直位移(Δy)。
在運動估價塊130產(chǎn)生該宏塊的運動矢量后,它向運動場編碼塊140輸出該運動矢量。該運動場編碼塊140利用包含一組基本函數(shù)和運動系數(shù)的運動模型,對從運動估計塊130接收的運動矢量進行近似。更具體地,運動場編碼塊140將運動矢量表示為一組運動系數(shù)值,當這些運動系數(shù)值與基本函數(shù)相乘時可形成該運動矢量的近似。典型地,變換運動模型只使用兩個運動系數(shù)和基本函數(shù),但也可以使用更復雜的運動模型。
將運動系數(shù)從運動場編碼塊140傳送到運動補償預測塊150。運動補償預測塊150還從幀存儲器120接收運動估計塊130識別的像素值的最佳匹配區(qū)域。利用運動場編碼塊140產(chǎn)生的運動矢量的近似表示,和參考幀中最佳匹配像素區(qū)域的像素值,運動補償預測塊150可對當前宏塊的每個塊產(chǎn)生一個預測像素值的陣列。將每個預測像素值的塊傳送到合成器116,其中將當前宏塊的對應塊中的實際(輸入)像素值減去預測像素值。這樣就得到該宏塊的一組預測誤差塊。
下面將參照圖2說明視頻解碼器200的操作。解碼器200包括視頻復用解碼器270,用于從編碼器100接收編碼后視頻比特流135并將其解復用為各個成分分量,逆量化器210,DCT逆變換器220,運動補償預測塊240,幀存儲器250,合成器230,控制管理器260,和輸出端280。
控制管理器260根據(jù)被解碼的是幀內(nèi)或幀間編碼的幀來控制解碼器200的操作。使解碼器在解碼模式之間切換的幀內(nèi)/幀間觸發(fā)控制信號是從,例如與編碼器發(fā)送的每個壓縮后視頻幀相關的圖像類型信息獲得的。該幀內(nèi)/幀間觸發(fā)控制信號是由視頻復用解碼器270從編碼后視頻比特流提取出的,并通過控制線215傳送到控制管理器260。
在逐個宏塊的基礎上執(zhí)行幀內(nèi)編碼幀的解碼,每個宏塊基本上都在視頻比特流135中接收到與其相關的編碼信息之后立刻被解碼。視頻復用解碼器270從與當前宏塊相關的可能控制信息中分離出該宏塊的塊的編碼信息。幀內(nèi)編碼宏塊的每個塊的編碼信息都包括可變長碼字,這些碼字表示該塊的非零量化的DCT系數(shù)的熵編碼后的level和run值。視頻復用解碼器270利用與編碼器100使用的編碼方法相對應的可變長解碼方法來解碼該可變長碼字,從而恢復出level和run的值。然后重建該宏塊的每個塊的量化后變換系數(shù)值的陣列,并將它們傳送到逆量化器210。與該宏塊相關的任何控制信息都在視頻復用解碼器270中利用適當?shù)慕獯a方法被解碼,并被傳送到控制管理器260。特別地,與施加到變換系數(shù)的量化級別相關的信息是由視頻復用解碼器270從編碼后比特流中提取的,并通過控制線217提供到控制管理器260。控制管理器相應的將該信息通過控制線218傳送到逆量化器210。逆量化器210根據(jù)該控制信息逆量化每個塊的量化DCT系數(shù),并將逆量化的DCT系數(shù)提供到DCT逆變換器220。
DCT逆變換器220對該宏塊的每個塊的逆量化DCT系數(shù)執(zhí)行DCT逆變換,形成包含重建像素值的圖像信息的解碼塊。通過合成器230將該宏塊的每個塊的重建像素值傳送到解碼器的視頻輸出端280,其中可以將它們提供到顯示設備(未示出)。每個塊的重建像素值也被存儲在幀存儲器250中。因為在幀內(nèi)編碼宏塊的編碼/解碼中并未使用運動補償預測,因此控制管理器260控制合成器230將這樣的每個像素值塊傳送到視頻輸出280和幀存儲器250。在幀內(nèi)編碼幀的隨后宏塊被解碼和存儲后,在幀存儲器250中逐步地組拼起一個解碼幀,并成為在隨后接收的幀間編碼幀的解碼中可以使用的運動補償預測的參考幀。
幀間編碼幀也是逐個宏塊地進行解碼,每個幀間編碼宏塊基本上都在視頻比特流135中接收到與其相關的編碼信息之后立刻被解碼。視頻復用解碼器270從編碼后運動矢量信息和與當前宏塊相關的可能控制信息中分離出該幀間編碼宏塊的每個塊的編碼后預測誤差信息。如前所述,該宏塊的每個塊的編碼后預測誤差信息都包括可變長碼字,這些碼字表示當前預測誤差塊的非零量化的變換系數(shù)的熵編碼后的level和run值。視頻復用解碼器270利用與編碼器100使用的編碼方法相對應的可變長解碼方法來解碼該可變長碼字,從而恢復出level和run的值。然后重建每個預測誤差塊的量化后變換系數(shù)值的陣列,并將它們傳送到逆量化器210。與該幀間編碼宏塊相關的控制信息也在視頻復用解碼器270中利用適當?shù)慕獯a方法被解碼,并被傳送到控制管理器260。與施加到預測誤差塊的變換系數(shù)的量化級別相關的信息是從編碼后比特流中提取的,并通過控制線217提供到控制管理器260。控制管理器相應的將該信息通過控制線218傳送到逆量化器210。逆量化器210根據(jù)該控制信息逆量化該量化DCT系數(shù),該量化DCT系數(shù)表示該宏塊的每個塊的預測誤差信息,并將逆量化的DCT系數(shù)提供到DCT逆變換器220。DCT逆變換器220對表示每個塊的預測誤差信息的逆量化DCT系數(shù)執(zhí)行逆變換,產(chǎn)生該宏塊的每個塊的重建預測誤差值的陣列。
視頻復用解碼器270從編碼的視頻比特流135中提取與該宏塊相關的編碼后運動矢量信息,并進行解碼。這樣獲得的解碼后運動矢量信息通過控制線225傳送到運動補償預測塊240,利用與編碼器100中編碼幀間編碼宏塊相同的運動模型,重建該宏塊的運動矢量。重建的運動矢量與編碼器的運動估計塊130初始確定的運動矢量非常近似。解碼器的運動補償預測塊240利用重建的運動矢量來識別幀存儲器250中存儲的預測參考幀中的重建像素區(qū)域的位置。該參考幀可以是,例如先前解碼的幀內(nèi)編碼幀,或先前解碼的幀間編碼幀。無論哪種情況,該重建運動矢量所指示的像素區(qū)域都用于形成當前宏塊的預測。更具體地,運動補償預測塊240通過從運動矢量所識別的像素區(qū)域中復制對應的像素值而形成該宏塊的每個塊的像素值陣列。該預測,即由參考幀得到的像素值的塊,從運動補償預測塊240被傳送到合成器230,并與解碼的預測誤差信息相合成。實際上,每個預測塊的像素值被增加到DCT逆變換器220輸出的對應重建預測誤差值。這樣就得到該宏塊的每個塊的重建像素值的陣列。重建的象素值被傳送到解碼器的視頻輸出280并被存儲到幀存儲器250中。在幀間編碼幀的隨后宏塊被解碼和存儲后,在幀存儲器250中逐步地組拼起一個解碼幀,并成為其它幀間編碼幀的運動補償預測中可以使用的參考幀。
如上所述,在典型的視頻編碼系統(tǒng)中,運動補償預測是在宏塊的基礎上執(zhí)行的,即宏塊是與運動信息相關的視頻幀的最小單元。然而,由ISO/IEC MPEG(運動圖像專家組)和ITU-T VCEG(視頻編碼專家組)的聯(lián)合視頻組JVT所開發(fā)的當前的視頻編碼建議,還允許運動信息與比宏塊更小的單元相關聯(lián)。在本說明書的以下所有描述中,將參照T.Weigland發(fā)表在ISO/IEC MPEG和ITU-T VCEG的聯(lián)合視頻組Doc.JVT-A003,2002年1月的文章“Joint Model Number 1”中所述的視頻編碼標準的版本,本文包含該文章的全部內(nèi)容。為了簡明,該建議的版本將被稱為“JVT編解碼的JM1”。
根據(jù)該JVT編解碼的JM1,視頻圖像被劃分為許多16×16像素的宏塊,并在逐個宏塊的基礎上進行編碼。該編碼是按照圖1和2所示的通用視頻編碼器和解碼器所述的基本原理來執(zhí)行的。然而,根據(jù)JM1,幀間編碼宏塊的運動補償預測是接照與先前描述不同的方式進行的。更具體的,每個宏塊都根據(jù)該宏塊的特性和該視頻序列中的運動而被分配“編碼模式”。將被幀間編碼的宏塊根據(jù)七種編碼模式被劃分為多個子塊,每個子塊包括N×M個像素,和與每個N×M子塊相關而不是僅與整個宏塊相關的運動信息。在附圖4中示出了JVT視頻編解碼標準的JM1提出的將宏塊劃分為N×M子塊的每個可能方法。從圖中可看出,可能的劃分法有16×16,8×16,16×8,8×8,4×8,8×4,4×4。這樣,若特定宏塊被分配的編碼模式是例如16×8模式,則該宏塊被劃分為兩個16×8像素的子塊,每個子塊都具有其自身的運動信息。另外,還提出了第八編碼模式,稱為SKIP(或跳躍)模式。若一個宏塊被分配為該模式,則表示該宏塊是直接從參考視頻幀復制的,而不必使用運動補償預測。
對給定宏塊的編碼模式選擇的判斷通常被作為運動估計處理的一部分。更具體地,在例如圖1的視頻編碼器中,不是允許使用JVT編解
當一個著色劑組包括多于三種顏色時,很可能的是,該組中有一種以上的著色劑配方會匹配出目標色。本發(fā)明人已經(jīng)確定,單獨按照配方成本或異譜同色來選擇配方并不提供著色劑專家的配方選擇技術的好的代表。根據(jù)本發(fā)明的優(yōu)選實施例,把成本和異譜同色組合成單一度量一個″調(diào)整的成本″。參考圖4,下面給出如何計算調(diào)整成本的一個例子,然而,對本領域內(nèi)的普通技術人員來說應當承認的是,調(diào)整的成本目標函數(shù)的確切形式優(yōu)選地是通過與現(xiàn)實生活中的著色劑專家之間的交互反復試驗來預先定義。
圖3是根據(jù)本發(fā)明優(yōu)選實施例的方法流程圖。如上所述,此處講解的方法體現(xiàn)在由計算裝置202(圖1所示)執(zhí)行的例程中。該方法開始于步驟300。在步驟302,獲取用戶輸入。這典型地包括要匹配的顏色的反射數(shù)據(jù);著色劑類別;織物;染色工序和最大異譜同色值(一般稱為DE)。要匹配的顏色可以被在分光光度儀206(圖1中所示)上測量,或作為一個文件由零售商、經(jīng)銷商提供等等。最好是獲得用于三種不同的光源(DE1,DE2,和DE3)的DE值(例如色差的量化)。
JVT編解碼的JM1所采用的方法問題在于,跳躍模式總是最可能的假定不成立。若視頻序列包含全局運動(搖攝,變焦,等等),則實際上并不使用跳躍模式。在這些情況下,由于編解碼被迫使用高開銷的M宏塊編碼模式,因此壓縮效率嚴重降低,特別是較低的比特率。
已知在全局運動中為改進運動補償預測的編碼效率有兩種現(xiàn)有方法。第一種稱為“全局運動補償”,并使用在例如ISO MPEG-4和ITU-TH.263+視頻編碼標準中。第二種方法在Doc.VCEG-O20,ITU-T視頻編碼專家組(VCEG)會議,2001年12月4-7日,泰國,pattaya,Shi junSun和Shawmin Lei的題為“全局運動矢量編碼”的文章中有所描述,這里引用該文章作為參考。下面簡要介紹這兩種方法的基本概念。
在1998年2月的國際電信聯(lián)盟ITU-T的建議H.263“用于低比特率通信的視頻編碼”的附件P“參考圖像再取樣”中,描述了全局運動補償?shù)闹髦季褪牵a(chǎn)生用于運動補償?shù)膮⒖紟瑏淼窒诌\動效應。為此,在解碼器中需要進行復雜的操作,來將參考幀扭曲成更好使用的形式。另外,必須對解碼器發(fā)送附加信息來引導用于全局運動補償?shù)男聟⒖紟慕ⅰL貏e地,在H.263視頻編碼標準中使用的全局運動補償方案使用一個再取樣處理,來產(chǎn)生參考幀的扭曲后版本,用于當前圖像的運動補償預測。該參考幀的扭曲版本包括相對于當前圖像的形狀,大小,位置的改變。再取樣處理是根據(jù)當前圖像的四角和參考幀的對應四角之間的映射而定義的。假定當前圖像的亮度分量具有水平尺寸H和垂直尺寸V,通過定義四個概念性運動矢量V00,VH0,V0V,VHV來執(zhí)行映射,每個概念性運動矢量都描述了如何將當前圖像的四角之一移動,從而將它映射到參考幀的對應角。在圖5中示出了該操作。然后關于該扭曲的參考幀利用塊匹配對當前圖像的宏塊執(zhí)行運動補償預測。這使塊匹配處理變得復雜了,因為塊匹配處理中使用的扭曲后參考幀的每個像素值,都必須通過將原始(未扭曲的)參考幀中的像素值映射到扭曲后參考幀的共用坐標來產(chǎn)生。這是利用作為運算增強操作的雙線性內(nèi)插完成的。讀者可參見H.263視頻編碼標準的附件P中,關于使用雙線性內(nèi)插處理來產(chǎn)生扭曲后參考幀的像素值的詳細說明。
全局運動矢量編碼,正如上述文件VCEG-O20所述,是全局運動補償?shù)囊环N簡化版本。參考幀的使用不變,但傳送附加信息來描述全局運動,并在使用全局運動矢量時利用附加宏塊模式進行指示。這種方法比上述全局運動補償技術較為簡單,但需附加額外的編碼器復雜度。也就是,編碼器必須執(zhí)行額外的運動估計操作,來找到全局運動參數(shù),還需要評價更多的宏塊模式來找到最佳模式。并且,對較小分辨率的視頻來說,需要被傳輸?shù)念~外的全局運動信息量太大了。
由于上述說明,應當認為,在出現(xiàn)全局運動時,例如攝像機平移,搖攝或變焦時,關于數(shù)字視頻序列的編碼仍然存在顯著的未解決的技術問題。具體地說,上述三種現(xiàn)有的視頻編碼方法都有一些技術缺陷。例如JVT編解碼的JM1,對于視頻序列中的全局運動沒有考慮到任何專門規(guī)定。因此,當出現(xiàn)這種運動時,就使視頻編碼器選擇明確模仿該運動的宏塊編碼模式。由于在每個幀間編碼宏塊(或子塊)中都編碼全局運動分量,這導致編碼效率的顯著降低。全局運動補償技術(H.263視頻編碼標準的附件P)考慮到全局運動,將運動補償預測中使用的參考幀進行扭曲,從而相對于沒有使用專門方法來編碼全局運動的系統(tǒng)而提高了編碼效率。然而,該扭曲處理運動復雜,還必須在編碼的視頻比特流中傳送附加信息,來保證視頻序列的正確解碼。雖然全局運動矢量編碼的相關技術比全局運動補償要求的運算較少,但也確實增加了一定的編碼器復雜性,在視頻比特流中也必須傳送附加信息來保證視頻數(shù)據(jù)的正確解碼。
因此本發(fā)明的目的是將本地運動補償?shù)暮唵涡院腿诌\動補償?shù)木幋a效率結合起來,產(chǎn)生一種具有顯著改進的壓縮性能和可忽略的增加復雜性的視頻編碼系統(tǒng)。
發(fā)明概述為了克服,或至少減輕現(xiàn)有視頻編碼系統(tǒng)中全局運動編碼的相關問題的嚴重程度,本發(fā)明是基于對JVT編解碼的JM1中使用的跳躍模式概念進行的重新定義。根據(jù)本發(fā)明的方法不僅在出現(xiàn)全局運動(即影響視頻幀的全部區(qū)域的運動)時提供了編碼效率的改進,還能以有效的方式來表示區(qū)域運動。
根據(jù)本發(fā)明,跳躍模式概念被重新定義,即指定為跳躍模式的宏塊或者與零(無效)運動矢量相關,或者與非零(有效)運動矢量相關,其中在零運動矢量的情況下,按照與傳統(tǒng)跳躍模式宏塊相同的方式來處理,并由參考幀直接復制。關于宏塊應當與零或非零運動矢量相關的判斷,是通過在將要編碼宏塊的周圍區(qū)域中分析其他宏塊或子塊的運動來進行的。若發(fā)現(xiàn)周圍的區(qū)域表現(xiàn)出一定類型的運動,則產(chǎn)生表示該運動的非零運動矢量,并使其與當前宏塊相關聯(lián)。具體地,可以分析在周圍宏塊或子塊中運動的連續(xù)性,速率或偏移。例如,若周圍區(qū)域中的運動表現(xiàn)出一定的連續(xù)性,一定的共同速率,或特定形式的發(fā)散,則可以向該將要編碼的當前宏塊分配一個表示該運動的的運動矢量。另一方面,若當前宏塊周圍的區(qū)域并未表現(xiàn)出這種連續(xù)性,共同速率或發(fā)散性,并具有可忽略的運動,則向?qū)⒁幋a的宏塊分配一個零運動矢量,使其直接從參考幀被復制,就好像傳統(tǒng)SKIP模式的宏塊那樣。這樣,根據(jù)本發(fā)明,SKIP模式的宏塊可以適應周圍區(qū)域中的運動,以有效的方式來考慮全局或區(qū)域運動。
在本發(fā)明的優(yōu)選實施例中,進行運動分析的周圍宏塊或子塊是將要編碼宏塊附近的先前編碼宏塊。這樣可保證,在當前宏塊被編碼時,與宏塊周圍區(qū)域相關的運動信息在編碼器(解碼器)中是可用的,并可用來直接確定將被分配到當前宏塊的運動矢量。該方法使編碼器中執(zhí)行的對周圍區(qū)域的運動分析在解碼器中被準確復制。這樣,反過來意味著,根據(jù)本發(fā)明,不需要對解碼器發(fā)送附加信息來模擬全局或區(qū)域運動。
正如以下將要對本發(fā)明詳細說明的,本發(fā)明所提出的對跳躍模式概念的重新定義相對于先前描述的現(xiàn)有視頻編碼方法具有顯著的技術優(yōu)點。具體地,根據(jù)本發(fā)明的方法以有效的方式來考慮視頻序列中的全局和區(qū)域運動,而不需要對參考幀的復雜扭曲或任何其他苛刻的運算操作。并且,相對于前述的全局運動補償和全局運動矢量編碼方法,不需要在視頻比特流中傳送附加信息以保證視頻數(shù)據(jù)的正確解碼。另外,只需要最小量的修正就可將本發(fā)明的方法結合到現(xiàn)存的使用跳躍模式宏塊概念的視頻編碼系統(tǒng)中。
本發(fā)明實施例的這些和其他特征,方面和優(yōu)點在以下結合附圖的詳細說明中變得明顯。應當理解,該附圖只是為了舉例說明,而不是作為限制本發(fā)明的定義。
附圖簡介圖1是根據(jù)現(xiàn)有技術的通用視頻編碼器的示意方框圖。
圖2是與圖1所示編碼器對應的根據(jù)現(xiàn)有技術的通用視頻解碼器的示意方框圖。
圖3表示根據(jù)現(xiàn)有技術的宏塊形成過程。
圖4表示根據(jù)JVT視頻編解碼的JM1蔣宏塊劃分成塊的7種可能的分法。
圖5表示根據(jù)H.263的附件P的全局運動補償方案中產(chǎn)生概念性運動矢量的過程,該矢量用于將當前圖像的角映射到的參考圖像的角。
圖6是根據(jù)本發(fā)明實施例的視頻編碼器的示意方框圖。
圖7是與圖6所示編碼器對應的根據(jù)本發(fā)明實施例的視頻解碼器的示意方框圖。
圖8表示在根據(jù)本發(fā)明實施例的編碼器或解碼器中用于跳躍模式宏塊的編碼和解碼塊。
圖9表示根據(jù)本發(fā)明的實施例的宏塊劃分,在將要編碼或解碼的宏塊周圍的宏塊中的運動,和對該宏塊(圖中的陰影部分)產(chǎn)生的跳躍模式運動矢量的例子。
圖10是其中可以實現(xiàn)根據(jù)本發(fā)明方法的多媒體通信終端的示意方框圖。
本發(fā)明的最佳實施模式下面將參照圖6到10來具體說明本發(fā)明的實施例。
根據(jù)本發(fā)明,視頻編碼系統(tǒng)中的跳躍(或SKIP)模式宏塊適應于周圍圖像片段的運動。若在將要編碼/解碼的宏塊周圍檢測到有效運動,則產(chǎn)生符合該運動的運動參數(shù),并對該宏塊進行運動補償。這樣,不需要從編碼器向解碼器傳送附加信息。
圖6是根據(jù)本發(fā)明實施例實現(xiàn)的視頻編碼器600的示意方框圖。當對數(shù)字視頻序列的幀編碼時,編碼器600按照與先前結合圖1描述的現(xiàn)有視頻編碼器類似的方式來操作,以產(chǎn)生幀內(nèi)編碼和幀間編碼的壓縮視頻幀。圖6所示視頻編碼器的結構基本上類似于圖1所示的現(xiàn)有視頻編碼器,并對運動估計部分有必要的適當修正,以便實施根據(jù)本發(fā)明的視頻編碼方法。該視頻編碼器中具有與上述現(xiàn)有視頻編碼器相同的功能和操作的所有部分都被表示為相同的參考標號。
因為本發(fā)明涉及幀間編碼格式的視頻幀的編碼,特別涉及作為幀間編碼處理一部分的運動補償預測的細節(jié),因此將省略對幀內(nèi)編碼模式中編碼器600的描述,以下的說明將集中在幀間編碼模式中編碼器執(zhí)行的操作。
在幀間編碼模式中,視頻編碼器的控制管理器160操作開關102從線路117接收其輸入,該輸入包括合成器116的輸出。合成器116從輸入端101逐個宏塊地接收視頻輸入信號。在合成器116接收到構成宏塊的亮度和色度值的塊之后,可形成對應的預測誤差信息的塊。該預測誤差信息表示當前塊及其預測之間的差異,它在運動補償預測塊650中產(chǎn)生。
將該宏塊的每個塊的預測誤差信息傳送到DCT變換塊104,對預測誤差值的每個塊執(zhí)行二維離散余弦變換,以便產(chǎn)生每個塊的DCT變換系數(shù)的二維陣列。它們被傳送到量化器106,利用量化參數(shù)QP被量化。量化參數(shù)QP的選擇由控制管理器160通過控制線115來控制。
然后,表示該宏塊的每個塊的預測誤差信息的量化后DCT系數(shù)從量化器106通過線路125被傳送到視頻復用編碼器170。視頻復用編碼器170利用Z字形掃描過程對每個預測誤差塊的變換系數(shù)進行排序,從而將每個非零值的量化系數(shù)表示為游程-等級對,并利用熵編碼將該游程-等級對進一步壓縮。視頻復用編碼器170還通過線路126從運動場編碼塊640接收運動矢量信息,從控制管理器160接收控制信息。它對運動矢量信息和控制信息進行熵編碼,并形成單獨的編碼圖像信息的比特流135,它包括熵編碼的運動矢量,預測誤差和控制信息。
表示該宏塊的每個塊的預測誤差信息的量化后DCT系數(shù)還從量化器106傳送到逆量化器108。這里對它們進行逆量化,并將得到的逆量化的DCT系數(shù)塊施加到DCT逆變換塊110,進行DCT逆變換,從而產(chǎn)生本地解碼的預測誤差值的塊。然后將本地解碼的預測誤差值的塊輸入到合成器112。在幀間編碼模式中,設定開關114,使得合成器112還接收運動補償預測塊650產(chǎn)生的該宏塊的每個塊的預測像素值。合成器112將每個本地解碼的預測誤差值的塊與對應的預測像素值的塊結合起來,從而產(chǎn)生重建的圖像塊,并將它們存儲在幀存儲器120中。
在從視頻源接收到視頻信號的隨后宏塊并進行了前述的在塊104,106,108,110,112中進行的編碼和解碼步驟后,在幀存儲器120中建立起該幀的解碼后版本。在該幀的最后一個宏塊已被處理后,幀存儲器120存儲一個完全解碼的幀,用于在對隨后接收的幀間編碼格式的視頻幀編碼時用為運動預測參考幀。
下面將詳細說明視頻編碼器600執(zhí)行的運動補償預測。
視頻編碼器600以類似于前述JVT編解碼器的方式進行運動補償預測。換言之,適于根據(jù)所編碼視頻序列中宏塊和運動的特性,對每個幀間編碼宏塊分配一個編碼模式。當檢查將哪個編碼模式分配到特定宏塊時,運動估計塊630依次對每個編碼模式執(zhí)行運動估計操作。運動估計塊630通過線路128接收用于運動估計的,構成將被編碼宏塊的亮度和色度值的塊(見圖6)。然后一個接一個地選擇每種可能的編碼模式,并執(zhí)行運動估計,以便根據(jù)選擇的編碼模式和將要編碼宏塊的像素值,而識別參考幀中對該宏塊的最佳匹配。(最佳匹配根據(jù)編碼模式將包括一個或多個最佳匹配的像素值區(qū)域)。每個最佳匹配都與總體成本價值相關聯(lián),例如,在被檢查宏塊中像素值與參考幀中的最佳匹配區(qū)域之間的絕對差值之和的線性組合,以及編碼該模式和表示運動矢量所需的估計比特數(shù)目。一旦獲得每種編碼模式的最佳匹配,運動估計塊630就選擇產(chǎn)生最小總體成本值的編碼模式作為當前宏塊的編碼模式。
根據(jù)本發(fā)明,除了SKIP模式被重新定義以便允許表示全局和區(qū)域運動,編碼器600使用的編碼模式對應于JVT編解碼器的JM1提供的那些編碼模式(如表格3所示)。更具體地,對SKIP模式進行了修正,使得根據(jù)當前宏塊周圍的圖像片段中的運動的特性,對每個跳躍模式宏塊都關聯(lián)一個零運動(無效)矢量或非零(有效)運動矢量。以下這種類型的運動矢量將被稱為“跳躍模式運動矢量”。
當檢查作為對每種編碼模式依次執(zhí)行的前述運動估計處理一部分的跳躍模式時,編碼器首先判斷應當使用零或非零的跳躍模式運動矢量。為此,編碼器將分析將被編碼宏塊周圍的圖像片段(例如宏塊和/或子塊)的運動。若判斷該周圍區(qū)域表現(xiàn)出某種類型的運動,例如具有指示全局或區(qū)域運動的特性,則產(chǎn)生一個非零值的跳躍模式運動矢量表示該運動。另一方面,若編碼器判斷當前宏塊周圍的區(qū)域并未表現(xiàn)出全局或區(qū)域運動,而是只有可忽略量級的運動,則產(chǎn)生一個零值的跳躍模式運動矢量。換言之,若編碼器判斷當前宏塊的周圍區(qū)域中的運動具有全局特性,則跳躍模式編碼適于考慮這種運動(通過產(chǎn)生相關聯(lián)的非零值跳躍模式運動矢量來表示該運動)?;蛘撸魶]有出現(xiàn)這種運動,則產(chǎn)生零值的運動矢量,使得本發(fā)明修正的該跳躍模式按照傳統(tǒng)方式操作,即零值的跳躍模式運動矢量導致該宏塊直接從參考幀復制。
在對包括根據(jù)本發(fā)明修正的跳躍模式的每種可用編碼模式執(zhí)行了運動估計操作后,編碼器600判斷哪種編碼模式產(chǎn)生了最小總體成本值,并選擇該模式作為當前宏塊的編碼模式。最后選擇的編碼模式的指示,例如從表格3所示的一組碼字中選擇的一個可變長碼字,與該宏塊相關聯(lián),并包含在視頻比特流635中。這使對應的解碼器可識別該宏塊的編碼模式并可利用正確的運動補償預測形式來正確地重建該宏塊。
關于對將被編碼宏塊周圍區(qū)域中的運動進行分析以便確定應當使用零值還是非零值跳躍模式運動矢量,將參照附圖中的圖8進行詳細說明。圖8表示與產(chǎn)生跳躍模式運動矢量相關的運動估計塊630的功能單元。包括運動信息存儲器801,周圍運動分析塊802,有效運動參數(shù)產(chǎn)生塊803和零運動參數(shù)產(chǎn)生塊804。
關于產(chǎn)生零值跳躍模式運動矢量還是非零值跳躍模式運動矢量的判斷是由周圍運動分析塊802做出的。通過利用預定的分析方案對將要編碼宏塊周圍的預定區(qū)域中宏塊或子塊的運動進行分析和歸類,從而做出該判斷。為了執(zhí)行分析,周圍運動分析塊802從運動信息存儲器801中檢索與周圍區(qū)域中宏塊或子塊相關的運動信息。根據(jù)實現(xiàn)的特定情況,周圍運動分析塊可以分析在周圍宏塊或子塊中運動的連續(xù)性,速率或偏移。例如,若周圍區(qū)域中的運動表現(xiàn)出一定級別的連續(xù)性,一定的共同速率(例如圖9所示),或特定形式的發(fā)散,則這可能意味著出現(xiàn)了某種形式的全局或區(qū)域運動。結果周圍運動分析塊認為在周圍區(qū)域中出現(xiàn)了“有效運動”,應當使用非零值跳躍模式運動矢量。另一方面,若當前宏塊的周圍區(qū)域并未表現(xiàn)出這種連續(xù)性,共同速率或發(fā)散性,并具有通??珊雎缘倪\動,則周圍運動分析塊認為在周圍區(qū)域中出現(xiàn)了“無效運動”,因此應當使用零值跳躍模式運動矢量。
如圖8所示,若周圍運動分析塊判斷在周圍區(qū)域中出現(xiàn)了“有效運動”,則它發(fā)送一個對該效應的指示到有效運動參數(shù)產(chǎn)生塊803,形成表示該周圍區(qū)域中運動的非零值跳躍模式運動矢量。為此,有效運動參數(shù)產(chǎn)生塊803從運動信息存儲器801中檢索與周圍宏塊和/或子塊相關的運動信息??商鎿Q地,可將該信息通過周圍運動分析塊802傳送到有效運動參數(shù)產(chǎn)生塊。若周圍運動分析塊判斷在周圍區(qū)域中出現(xiàn)了“無效運動”,則它發(fā)送一個對應的指示到零運動參數(shù)產(chǎn)生塊804,形成一個零值跳躍模式運動矢量。
在本發(fā)明的優(yōu)選實施例中,周圍運動分析塊所分析的宏塊或子塊的周圍區(qū)域包括鄰近將要編碼宏塊的先前編碼的宏塊(圖9)。這時,在編碼器中執(zhí)行的對周圍區(qū)域中運動的分析和歸類可以在解碼器中被準確地復制。這進而又意味著,根據(jù)本發(fā)明,不需要向解碼器發(fā)送附加信息來模擬全局或區(qū)域運動。
在本發(fā)明的可替換實施例中,當確定使用零值還是非零值的跳躍模式運動矢量時,還要考慮已編碼宏塊的編碼模式。例如,若周圍運動分析塊判斷存在一個或多個靜止的鄰近宏塊,則使用零值跳躍模式運動矢量。
在本發(fā)明的第一優(yōu)選實施例中,周圍運動分析塊802根據(jù)以下三個步驟對宏塊周圍區(qū)域中的運動進行歸類。首先,周圍運動分析塊檢索將要編碼宏塊周圍的宏塊或子塊的運動信息(即,將要編碼宏塊周圍的先前編碼的宏塊,如圖9所示),并對該宏塊產(chǎn)生一個中間運動矢量預測。例如,該中間運動矢量預測是按照與JVT編解碼器的JM1的運動矢量預測(參見T.Weigland“Joint Model Number 1”,Doc.JVT-A003,ISO/IEC MPEG和ITU-T VCEG的聯(lián)合視頻組,2002年1月)類似的方式執(zhí)行的。然后周圍運動分析塊判斷,任何得到的運動矢量分量是否具有大于一定閾值(例如像素的一半)的絕對值。若滿足該條件,則該運動被歸類為“有效運動”,否則被歸類為“無效運動”。最后,根據(jù)歸類的結果,周圍運動分析塊802發(fā)送一個指示到有效運動參數(shù)產(chǎn)生塊803或零運動參數(shù)產(chǎn)生塊804,以便產(chǎn)生適當?shù)奶S模式運動參數(shù)。
根據(jù)本發(fā)明第一優(yōu)選實施例的周圍運動分析塊的實現(xiàn)由于以下兩個原因是非常有利的。第一,在典型的視頻編解碼器中,例如JVT編解碼器中,使用中間預測算子來預測圖像方塊的運動矢量。根據(jù)第一優(yōu)選實施例,在周圍運動分析塊和有效運動參數(shù)產(chǎn)生塊中使用了該相同的預測算子,來分析將要編碼宏塊的周圍區(qū)域中的運動,并產(chǎn)生用于SKIP模式宏塊的運動參數(shù)。這樣,本發(fā)明可以通過對視頻編解碼器附加最小程度的總體實現(xiàn)復雜性來實現(xiàn)。第二,因為周圍運動分析塊802通過產(chǎn)生和分析中間運動矢量而歸類周圍區(qū)域中的運動,因此有效運動參數(shù)產(chǎn)生塊803可以向運動補償塊只傳送在周圍運動分析塊中已經(jīng)產(chǎn)生的中間運動參數(shù)。這也可以使實現(xiàn)的復雜性最小,因為不需要產(chǎn)生額外的運動參數(shù)。
在根據(jù)本發(fā)明的第二優(yōu)選實施例中,周圍運動分析塊分析將要編碼的宏塊附近的運動,并將其歸類為“有效運動”或“無效運動”。在“有效運動”的情況下,激活有效運動參數(shù)產(chǎn)生塊,在“無效運動”的情況下,激活零運動參數(shù)產(chǎn)生塊。在本實施例中若滿足以下兩個條件之一或全部,則產(chǎn)生“無效運動”的類別,否則將該運動歸類為“有效運動”,這兩個條件是條件1緊挨在當前宏塊的上面或左面的宏塊不可用(即在圖像之外,或?qū)儆诓煌膱D像條)。
條件2在16×16幀間模式的運動矢量預測中使用的緊挨在上面或左面的宏塊或塊具有零運動矢量,并使用最新的圖像作為運動補償?shù)膮⒖肌?br>
下面將參照圖7來說明根據(jù)本發(fā)明實施例的視頻解碼器700的操作。圖7所示視頻解碼器的結構基本上類似于圖2所示的現(xiàn)有視頻解碼器,并對解碼器中執(zhí)行運動估計操作的部分進行了適當?shù)男拚T撘曨l解碼器中具有與上述現(xiàn)有視頻編碼器相同的功能和操作的所有部分都被表示為相同的參考標號。還假定圖7的視頻解碼器對應于圖6的編碼器,因此能夠接收和解碼編碼器600發(fā)送的比特流635。并且,由于本發(fā)明實施幀間編碼格式的視頻幀的解碼,因此解碼器700執(zhí)行的關于幀內(nèi)編碼幀的解碼的說明將被省略。
幀間編碼幀逐個宏塊地執(zhí)行解碼,每個幀間編碼宏塊基本上都在視頻比特流635中接收到與其相關的編碼信息之后立刻被解碼。根據(jù)編碼模式,幀間編碼宏塊的比特流中包含的壓縮視頻數(shù)據(jù)可能包括每個塊的VLC編碼的預測誤差信息,該宏塊(或子塊)的運動矢量信息,和編碼的控制信息的組合,該編碼控制信息包含編碼當前宏塊所使用的編碼模式的指示。若宏塊以跳躍模式被編碼,則該比特流中不包含與該宏塊相關的預測誤差或運動矢量信息。
視頻復用解碼器270接收視頻比特流635并從任何可能出現(xiàn)的編碼預測誤差和/或運動矢量信息中分離出控制信息,該控制信息包含該宏塊的編碼模式的指示。
如前所述,預測誤差信息被編碼為表示熵編碼后的等級和游程值的可變長度碼字。若對當前宏塊提供預測誤差信息,則視頻復用解碼器270通過利用對應編碼器600所用編碼方法的可變長度解碼方法來解碼該可變長度碼字而恢復出等級和游程值。然后重建每個預測誤差塊的量化后DCT變換系數(shù)值的陣列,并將它們傳送到逆量化器210進行逆量化。逆量化后的DCT系數(shù)在DCT逆變換器220中進行逆變換,產(chǎn)生重建后的該宏塊每個塊的預測誤差值的陣列。
與該宏塊相關的編碼模式指示和編碼后運動矢量信息(若有的話)都在視頻復用解碼器中被解碼,并通過控制線225被傳送到運動補償預測塊740。運動補償預測塊740利用編碼模式指示和運動矢量信息(若有的話)來形成當前宏塊的預測。更具體地,運動補償預測塊740通過從參考幀中的一個像素區(qū)域(或多個區(qū)域)復制對應的像素值,而形成該宏塊的每個塊的像素值的陣列。該預測,即由參考幀導出的像素值塊,從運動補償預測塊740傳送到合成器230,在合成器230中與解碼后的預測誤差信息(若有的話)相結合。這樣,就得到了該宏塊的每個塊的重建后像素值的一個陣列。
重建的像素值被傳送到解碼器的視頻輸出端280,并存儲在幀存儲器250中。從而,在幀間編碼幀的隨后宏塊被解碼和存儲時,在幀存儲器250中逐步地組拼起一個解碼幀,并作為其他幀間編碼幀的運動補償預測中可以使用的參考幀。
根據(jù)本發(fā)明,解碼器700的運動補償預測塊740包括類似于編碼器600中的運動信息存儲塊801,周圍運動分析塊802,有效運動參數(shù)產(chǎn)生塊803和零運動參數(shù)產(chǎn)生塊804。這些功能塊用于確定以跳躍模式編碼的宏塊是應當與零值還是非零值的跳躍模式運動矢量相關聯(lián)。更具體地,當判斷將被解碼的宏塊是以跳躍模式編碼時,周圍運動分析塊802在該將要解碼的宏塊周圍的預定區(qū)域中按照對應于編碼器600使用的方式對先前解碼的宏塊和/或子塊的運動進行分析和歸類。作為分析結果,當前宏塊將與非零值的跳躍模式運動矢量或零值的跳躍模式運動矢量相關聯(lián)。然后使用該運動矢量來形成該宏塊的預測。若該宏塊與零值的跳躍模式運動矢量相關聯(lián),則通過從參考幀的對應位置簡單復制像素值來重建。另一方面,若它與非零值的運動矢量相關聯(lián),則使用該非零值運動矢量所指示的像素值區(qū)域來產(chǎn)生該宏塊的像素值。
應當注意,通過以本發(fā)明提出的方式來修正跳躍模式概念,并在解碼器中執(zhí)行周圍運動分析,從而可以在視頻序列中考慮到全局或區(qū)域運動,而無需在視頻比特流中提供關于這種運動的明確信息。
下面將說明包括適于根據(jù)本發(fā)明操作的編碼和解碼裝置的終端設備。附圖中的圖10示出了根據(jù)ITU-T建議H.324實現(xiàn)的多媒體終端80。該終端可被認為是多媒體收發(fā)設備。它包括捕獲、編碼和復用多媒體數(shù)據(jù)流以便通過通信網(wǎng)絡傳輸?shù)亩鄠€元件,以及接收、解復用、解碼和顯示所接收到的多媒體內(nèi)容的多個元件。ITU-T建議H.324定義了該終端的全部操作并涉及到管理該終端不同構成部分的操作的其它建議。這種多媒體終端可用于實時應用中,例如對話式電視電話,或非實時應用,例如從互聯(lián)網(wǎng)上的多媒體內(nèi)容服務器中對視頻片斷的檢索和/或流播。
在本發(fā)明的上下文中,應當認識到圖10中所示的H.324終端只是可應用本發(fā)明方法的多種可替換多媒體終端設備中的一種。還應當注意多種可替換終端的出現(xiàn)與終端設備的位置和實現(xiàn)有關。如圖10所示,多媒體終端可以位于與諸如模擬PSTN(公共交換電話網(wǎng)絡)之類固定線電話網(wǎng)絡連接的通信設備中。在這種情況下,多媒體終端裝備有調(diào)制解調(diào)器91,它與ITU-T建議V.8,V.34以及可選的V.8bis兼容??商鎿Q地,多媒體終端可以與外部調(diào)制解調(diào)器連接。該調(diào)制解調(diào)器可以將多媒體終端產(chǎn)生的復用后數(shù)字數(shù)據(jù)和控制信號轉換為適于通過PSTN傳輸?shù)哪M形式。它還可以使多媒體終端能夠從PSTN接收模擬的數(shù)據(jù)和控制信號,并將它們轉換為可以由該終端以適當方式解復用和處理的數(shù)字數(shù)據(jù)流。
H.324多媒體終端還可以這種方式實現(xiàn),即它可以與數(shù)字固定線路網(wǎng)絡例如ISDN(綜合業(yè)務數(shù)字網(wǎng))直接連接。在這種情況下,ISDN用戶網(wǎng)絡接口將替換調(diào)制解調(diào)器91。在圖10中,該ISDN用戶網(wǎng)絡接口由可選方框92表示。
H.324多媒體終端可適用于移動通信應用中。如果與無線通信鏈接一起使用,則可用圖10中可選塊93所表示的任何適當?shù)臒o線接口來替換調(diào)制解調(diào)器91。例如,H.324/M多媒體終端可包括無線電收發(fā)器,該無線電收發(fā)器可以與當前第2代GSM移動電話網(wǎng)絡或今后的第3代UMTS(通用移動電話系統(tǒng))連接。
應當注意,多媒體移動終端是設計用于雙向通信的,它用于視頻數(shù)據(jù)的發(fā)送和接收,同時提供根據(jù)本發(fā)明實現(xiàn)的視頻編碼器和視頻解碼器是有利的。這種編碼器和解碼器對通常被實現(xiàn)為一個單獨的組合功能單元,稱為“編解碼器”。
現(xiàn)在將參照圖10來詳細說明典型的H.324多媒體終端。
該多媒體終端80包括稱為“終端裝置”的多種元件。它包括分別由參考數(shù)字81、82和83表示的視頻、音頻和綜合信息設備。該視頻設備81可包括例如用于捕獲視頻圖像的攝像機、用于顯示所接收到的視頻內(nèi)容的監(jiān)視器和可選擇的視頻處理設備。音頻設備82通常包括例如用于捕獲口頭消息的麥克風和用于再現(xiàn)所接收到的音頻內(nèi)容的揚聲器。音頻設備也可以包括附加的音頻處理單元。綜合信息設備83可包括數(shù)據(jù)終端、鍵盤、電子書寫板或靜止圖像收發(fā)器,例如傳真單元。
視頻設備81與視頻編解碼器85耦合。該視頻編解碼器85包括視頻編碼器和對應的視頻解碼器,它們都是根據(jù)本發(fā)明實現(xiàn)的。下面將說明這種編碼器和解碼器。該視頻編解碼器85負責以適當?shù)男问綄λ东@的視頻數(shù)據(jù)編碼以便以便經(jīng)過通信鏈路進行傳輸,以及對從通信網(wǎng)絡接收到的壓縮視頻內(nèi)容進行解碼。在圖10所示的例子中,視頻編解碼器是根據(jù)JVT編解碼器的JM1經(jīng)過適當?shù)男拚鴮崿F(xiàn)的,從而在視頻編解碼器的編碼器和解碼器中實現(xiàn)了根據(jù)本發(fā)明的修正后的SKIP模式概念。
該終端的音頻設備與圖10中由附圖標記86所標示的音頻編解碼器耦合。與視頻編解碼器一樣,音頻編解碼器包括一編碼器/解碼器對。它將終端的音頻設備所捕獲的音頻數(shù)據(jù)轉換為適合于通過通信鏈路傳輸?shù)男问?,并將從網(wǎng)絡中接收到的編碼音頻數(shù)據(jù)轉換為適合于在例如終端的揚聲器中再現(xiàn)的形式。該音頻編解碼器的輸出被傳送到一個延遲塊87。該延遲塊87用于補償視頻編碼處理所引入的延遲,從而確保音頻和視頻內(nèi)容的同步。
多媒體終端的系統(tǒng)控制塊84利用適當?shù)目刂茀f(xié)議(信令塊88)控制終端到網(wǎng)絡的信令,從而建立發(fā)射和接收終端之間的共同操作模式。信令塊88交換關于發(fā)射和接收終端的編碼和解碼能力的信息,并可用于啟動視頻編碼器的各種編碼模式。該系統(tǒng)控制塊84還控制數(shù)據(jù)加密的使用??梢詮募用軌K89向復用器/解復用器(MUX/DMUX單元)90傳輸關于在數(shù)據(jù)傳輸中所用的加密類型的信息。
在多媒體終端的數(shù)據(jù)傳輸期間,MUX/DMUX單元90將編碼和同步后的視頻和音頻流與從綜合信息設備83輸入的數(shù)據(jù)以及可能的控制數(shù)據(jù)合并,從而形成單一的比特流。由加密塊89提供的將要應用于該比特流的關于數(shù)據(jù)加密類型的信息(若有的話)可用于選擇加密模式。因此,當接收到復用后和可能加密后的多媒體比特流時,MUX/DUMU單元90負責對該比特流解密,將其分割為它的構成多媒體分量,并將這些分量傳輸?shù)竭m當?shù)木幗獯a器和/或終端設備中以便解碼和再現(xiàn)。
如果多媒體終端80為移動終端,即,如果它裝備有無線電收發(fā)器93,則本領域技術人員應當理解它可能還包含其它元件。在一個實施例中,它包含具有顯示器和鍵盤的用戶接口,從而可以實現(xiàn)用戶對多媒體終端80的操作;中央處理單元,例如微處理器,它控制負責多媒體終端不同功能的塊;隨機存取存儲器RAM;只讀存儲器ROM和數(shù)字攝像機。在只讀存儲器ROM中存儲微處理器的操作指令,該操作指令為對應多媒體終端80的基本功能的程序代碼,可以在用戶的控制下由微處理器按照需要來執(zhí)行。根據(jù)該程序代碼,微處理器使用無線電收發(fā)器93來形成與移動通信網(wǎng)絡的連接,從而使多媒體終端80能夠經(jīng)過無線電鏈路與移動通信網(wǎng)絡之間發(fā)射信息和接收信息。
微處理器監(jiān)視用戶接口的狀態(tài)并控制數(shù)字攝像機。響應于用戶的命令,微處理器命令攝像機將數(shù)字圖像記錄在RAM中。如前面所述,一旦捕獲到圖像或數(shù)字視頻序列時,或者可替換地在捕獲處理期間,微處理器就將圖像分為圖像片段(例如多個宏塊),并使用編碼器對這些片段執(zhí)行運動補償編碼,從而產(chǎn)生壓縮后的圖像序列。用戶可以命令多媒體終端80在其顯示器上顯示所捕獲的圖像,或利用無線電收發(fā)器93將壓縮后的視頻序列發(fā)送到其它多媒體終端、與固定線路網(wǎng)絡(PSTN)連接的視頻電話或其它電信設備。在優(yōu)選實施例中,第一個片段被編碼后馬上就開始圖像數(shù)據(jù)的傳輸,從而可以使接收方能夠以最小延遲開始對應的解碼處理。
雖然是在特定實施例中進行描述,但是本領域技術人員應當知道還可以對這些教導進行多種變化和修改。因此,雖然在參照一個或多個特定實施例描述本發(fā)明,本領域技術人員應當明白在不脫離本發(fā)明如上所闡述的范圍和精神的情況下還可以實現(xiàn)特定的修改或變化。
特別是,根據(jù)本發(fā)明的可替換實施例,周圍運動分析塊802適于將周圍區(qū)域的運動歸類為兩個以上的運動類型。例如,一種包含三種類別的運動的有意義的分類可以是“連續(xù)運動”、“有效運動”、“無效運動”。這樣,就可以產(chǎn)生對應連續(xù)運動的典型情況的特定運動參數(shù)。
在本發(fā)明的另一個可替換實施例中,可以去掉周圍運動分析塊,并對所有跳躍模式宏塊激活有效運動參數(shù)產(chǎn)生塊。
根據(jù)本發(fā)明的另一可替換實施例,并不使用周圍運動分析塊來指示分類信息,而使用其它方式(例如宏塊、片段、圖像或序列級別中的輔助信息)來指示。
在另一可替換實施例中,可以利用這種方式將周圍運動分析塊臨時禁用或啟用。
在另一可替換實現(xiàn)中,根據(jù)周圍運動分析塊的輸出可以刷新宏塊模式表從而給更可能出現(xiàn)的模式提供更高的優(yōu)先級。在相關實施例中,例如通過取消跳躍,可以根據(jù)周圍運動分析塊的輸出來完全再生宏塊模式表。
應當理解,有效運動參數(shù)產(chǎn)生塊803可以以多種方式來實現(xiàn)。在本發(fā)明的特定實施例中,它適于根據(jù)例如周圍運動的持續(xù)、速率或偏差來產(chǎn)生運動參數(shù)。也可發(fā)送其它輔助信息來引導產(chǎn)生運動參數(shù)。在可替換實施例中,有效運動參數(shù)產(chǎn)生塊適于輸出多個運動矢量,這些運動矢量可用于宏塊的不同部分。
本發(fā)明也可用于為SKIP模式以外或其它的宏塊模式產(chǎn)生運動補償預測。它不受宏塊結構的限制,可用于任何基于分段的視頻編碼系統(tǒng)。
權利要求
1.一種用于數(shù)字視頻序列的編碼的運動補償預測方法,所述數(shù)字視頻序列包括多個幀,所述方法包括以下步驟利用關于序列中第二幀的運動補償預測而給該序列中將要編碼的第一幀的一個片段分配一個編碼模式,所述編碼模式是包含跳躍模式的一組可能編碼模式中的一種,其中當所述跳躍模式被分配到第一幀的所述片段時,它指示i)該片段具有可忽略量級的運動,這種情況下,通過從第二幀的對應區(qū)域進行直接復制而形成對該片段的預測,或者ii)該片段在視頻序列中具有全局或區(qū)域運動的運動特性,這種情況下,利用表示所述全局或區(qū)域運動的運動信息,通過關于第二幀的運動補償預測而形成對該片段的預測。
2.如權利要求1所述的方法,還包括對將要編碼的片段周圍第一幀的區(qū)域中的運動進行分析的步驟,以便確定所述區(qū)域中運動的特性。
3.如權利要求3所述的方法,其中,將要編碼的片段周圍第一幀的所述區(qū)域包括該第一幀的先前編碼過的片段。
4.如權利要求2所述的方法,其中,若判斷將要編碼的片段周圍第一幀的所述區(qū)域中的運動具有可忽略的量級,則將跳躍模式分配為該片段的編碼模式,并且指示零運動的運動信息與該片段相關聯(lián)。
5.如權利要求2所述的方法,其中,若判斷將要編碼的片段周圍第一幀的所述區(qū)域中的運動具有全局或區(qū)域運動的特性,則將跳躍模式分配為該片段的編碼模式,并且指示周圍區(qū)域中的全局或區(qū)域運動的運動信息與該片段相關聯(lián)。
6.如權利要求2所述的方法,其中,所述分析包括檢查將要編碼的所述片段周圍第一幀的所述區(qū)域,以便識別以下的至少一種運動類型連續(xù)運動,具有共同速率的運動,和具有一定偏移量的運動。
7.如權利要求2所述的方法,其中,若第一幀的一個片段在將被編碼的片段周圍第一幀的區(qū)域中沒有運動,則將跳躍模式分配為該片段的編碼模式,并且指示零運動的運動信息與該片段相關聯(lián)。
8.一種用于對編碼后數(shù)字視頻序列進行解碼的運動補償預測方法,所述數(shù)字視頻序列包括多個幀,所述方法包括以下步驟接收編碼模式的指示,該編碼模式是利用關于序列中第二幀的運動補償預測而分配給該解碼序列中第一幀的一個片段的,所述編碼模式是包含跳躍模式的一組可能編碼模式中的一種,和當指示所述跳躍模式作為分配給第一幀的所述片段的編碼模式時,判斷i)所述跳躍模式是否指示該片段具有可忽略量級的運動,這種情況下,通過從第二幀的對應區(qū)域直接進行復制而執(zhí)行對該片段的運動補償預測,或者ii)所述跳躍模式是否指示該片段在視頻序列中具有全局或區(qū)域運動的運動特性,這種情況下,利用表示所述全局或區(qū)域運動的運動信息,關于第二幀來執(zhí)行對該片段的運動補償預測。
9.如權利要求8所述的方法,其中,該判斷步驟包括對將要解碼的片段周圍第一幀的先前解碼區(qū)域中的運動進行分析,以便確定所述區(qū)域中運動的特性。
10.如權利要求9所述的方法,其中,所述分析包括,檢查將要解碼的所述片段周圍第一幀的先前解碼區(qū)域,以便識別以下的至少一種運動類型連續(xù)運動,具有共同速率的運動,和具有一定偏移量的運動,其中,若在所述周圍區(qū)域中識別出至少一種所述類型的運動,則判斷該跳躍模式指示將要解碼的片段在視頻序列中具有全局或區(qū)域運動的運動特性。
11.如權利要求9所述的方法,其中,若第一幀的一個片段在將要編碼的片段周圍第一幀的先前解碼區(qū)域中沒有運動,則判斷該跳躍模式指示將要解碼的片段具有可忽略量級的運動。
12.一種安排為利用運動補償預測來編碼數(shù)字視頻序列的視頻編碼器,所述數(shù)字視頻序列包括多個幀,所述編碼器包括利用關于序列中第二幀的運動補償預測而給將要編碼的該序列中第一幀的一個片段分配一個編碼模式的裝置,其中所述編碼模式是包含跳躍模式的一組可能模式中的一種,和用于對該片段形成預測的裝置,其中當所述跳躍模式被分配給第一幀的所述片段時,指示i)該片段具有可忽略量級的運動,這種情況下,所述形成裝置通過從第二幀的對應區(qū)域進行直接復制而形成對該片段的預測,或者ii)該片段在視頻序列中具有全局或區(qū)域運動的運動特性,這種情況下,所述形成裝置利用表示所述全局或區(qū)域運動的運動信息,關于第二幀而形成對該片段的預測。
13.如權利要求12所述的編碼器,還包括對將要編碼的片段周圍第一幀的區(qū)域中的運動進行分析的裝置,以便確定所述區(qū)域中運動的特性。
14.如權利要求13所述的編碼器,其中,所述分析裝置被安排用于分析第一幀的先前編碼過的片段中的運動。
15.如權利要求13所述的編碼器,其中,若所述分析裝置判斷所述區(qū)域中的運動具有可忽略的量級,則該編碼器被安排用來將跳躍模式分配為該片段的編碼模式,并使指示零運動的運動信息與該將要編碼的片段相關聯(lián)。
16.如權利要求13所述的編碼器,其中,若所述分析裝置判斷將要編碼的片段周圍第一幀的所述區(qū)域中的運動具有全局或區(qū)域運動的特性,則編碼器被安排用來將跳躍模式分配為該片段的編碼模式,并使指示該周圍區(qū)域中的全局或區(qū)域運動的運動信息與該將要編碼的片段相關聯(lián)。
17.如權利要求13所述的編碼器,其中,所述分析裝置包括,用于識別以下至少一種運動類型的裝置,所述運動類型為連續(xù)運動,具有共同速率的運動,和具有一定偏移量的運動。
18.如權利要求13所述的編碼器,其中,若所述分析裝置判斷第一幀的一個片段在將被編碼的片段周圍第一幀的區(qū)域中沒有運動,則編碼器被安排用來將跳躍模式分配為該片段的編碼模式,并使指示零運動的運動信息與該將要編碼的片段相關聯(lián)。
19.一種被安排為利用運動補償預測對編碼后數(shù)字視頻序列進行解碼的視頻解碼器,所述數(shù)字視頻序列包括多個幀,所述解碼器包括用于接收編碼模式的指示的裝置,該編碼模式是利用關于序列中第二幀的運動補償預測而分配給該編碼序列中第一幀的一個片段的,所述編碼模式是包含跳躍模式的一組可能編碼模式中的一種,和用于形成對該片段的預測的裝置,其中當指示所述跳躍模式作為分配給第一幀的所述片段的編碼模式時,該解碼器被安排用來判斷i)所述跳躍模式是否指示該片段具有可忽略量級的運動,這種情況下,所述形成裝置通過從第二幀的對應區(qū)域直接進行復制而形成對該片段的預測,或者ii)所述跳躍模式是否指示該片段在視頻序列中具有全局或區(qū)域運動的運動特性,這種情況下,所述形成裝置利用表示所述全局或區(qū)域運動的運動信息,通過關于第二幀的運動補償預測來形成對該片段的預測。
20.如權利要求19所述的解碼器,還包括對將要解碼的片段周圍第一幀的先前解碼區(qū)域中的運動進行分析的裝置,以便確定所述區(qū)域中運動的特性。
21.如權利要求20所述的解碼器,其中,若所述分析裝置判斷所述區(qū)域中的運動具有可忽略的量級,則該編碼器被安排用來使指示零運動的運動信息與該將要解碼的片段相關聯(lián)。
22.如權利要求20所述的解碼器,其中,若所述分析裝置判斷所述區(qū)域中的運動具有全局或區(qū)域運動的特性,則該解碼器被安排用來使指示周圍區(qū)域中的全局或區(qū)域運動的運動信息與該將要解碼的片段相關聯(lián)。
23.如權利要求20所述的解碼器,其中,所述分析裝置包括用于識別以下至少一種運動類型的裝置,所述運動類型為連續(xù)運動,具有共同速率的運動,和具有一定偏移量的運動。
24.如權利要求20所述的解碼器,其中,若所述分析裝置判斷第一幀的一個先前解碼的片段在所述區(qū)域中沒有運動,則解碼器被安排用來使指示零運動的運動信息與該將要解碼的片段相關聯(lián)。
25.一種多媒體終端,包括用于獲得數(shù)字視頻序列的裝置;和視頻編碼器,被安排用于利用運動補償預測來編碼該數(shù)字視頻序列,所述數(shù)字視頻序列包括多個幀,其中該視頻編碼器包括利用關于序列中第二幀的運動補償預測而對將要編碼的該序列中第一幀的一個片段分配一個編碼模式的裝置,其中所述編碼模式是包含跳躍模式的一組可能模式中的一種,和用于對該片段形成預測的裝置,其中當所述跳躍模式被分配給第一幀的所述片段時,指示i)該片段具有可忽略量級的運動,這種情況下,視頻編碼器被安排為使所述形成裝置通過從第二幀的對應區(qū)域進行直接復制而形成對該片段的預測,或者ii)該片段在視頻序列中具有全局或區(qū)域運動的運動特性,這種情況下,視頻編碼器被安排為使所述形成裝置利用表示所述全局或區(qū)域運動的運動信息,關于第二幀而形成對該片段的預測。
26.一種多媒體終端,包括用于獲得編碼后的數(shù)字視頻序列的裝置;和視頻解碼器,被安排用于利用運動補償預測對編碼后數(shù)字視頻序列進行解碼,所述數(shù)字視頻序列包括多個幀,所述解碼器包括用于接收一個編碼模式的指示的裝置,該編碼模式是利用關于序列中第二幀的運動補償預測而分配給該編碼序列中第一幀的一個片段的,所述編碼模式是包含跳躍模式的一組可能編碼模式中的一種,和用于形成對該片段的預測的裝置,其中當指示所述跳躍模式作為分配給第一幀的所述片段的編碼模式時,解碼器被安排用于判斷i)所述跳躍模式是否指示該片段具有可忽略量級的運動,這種情況下,所述形成裝置通過從第二幀的對應區(qū)域直接進行復制而形成對該片段的預測,或者ii)所述跳躍模式是否指示該片段在視頻序列中具有全局或區(qū)域運動的運動特性,這種情況下,所述形成裝置利用表示所述全局或區(qū)域運動的運動信息,通過關于第二幀的運動補償預測來形成對該片段的預測。
27.一種視頻編解碼器,包括視頻編碼器,被安排用于利用運動補償預測來編碼一個數(shù)字視頻序列,所述數(shù)字視頻序列包括多個幀,所述編碼器包括利用關于序列中第二幀的運動補償預測而對將要編碼的該序列中第一幀的一個片段分配一個編碼模式的裝置,其中所述編碼模式是包含跳躍模式的一組可能模式中的一種,和用于對該片段形成預測的裝置,其中當所述跳躍模式被分配到第一幀的所述片段時,指示i)該片段具有可忽略量級的運動,這種情況下,該視頻編碼器被安排為使所述形成裝置通過從第二幀的對應區(qū)域進行直接復制而形成對該片段的預測,或者ii)該片段在視頻序列中具有全局或區(qū)域運動的運動特性,這種情況下,該視頻編碼器被安排為使所述形成裝置利用表示所述全局或區(qū)域運動的運動信息,關于第二幀而形成對該片段的預測;和視頻解碼器,被安排用于利用運動補償預測對編碼后數(shù)字視頻序列進行解碼,所述數(shù)字視頻序列包括多個幀,所述解碼器包括用于接收一個編碼模式的指示的裝置,該編碼模式是利用關于序列中第二幀的運動補償預測而分配給該編碼序列中第一幀的一個片段的,所述編碼模式是包含跳躍模式的一組可能編碼模式中的一種,和用于形成對該片段的預測的裝置,其中當指示所述跳躍模式作為分配給第一幀的所述片段的編碼模式時,該解碼器被安排用于判斷i)所述跳躍模式是否指示該片段具有可忽略量級的運動,這種情況下,所述形成裝置通過從第二幀的對應區(qū)域直接進行復制而形成對該片段的預測,或者ii)所述跳躍模式是否指示該片段在視頻序列中具有全局或區(qū)域運動的運動特性,這種情況下,所述形成裝置利用表示所述全局或區(qū)域運動的運動信息,通過關于第二幀的運動補償預測來形成對該片段的預測。
全文摘要
一種運動補償?shù)囊曨l編碼方法,可使具有全局運動分量的視頻序列以有效的方式被編碼。視頻編碼器(600)被安排用于給將要編碼的宏塊分配特定的編碼模式,該編碼模式包括跳躍模式,用于指示以下兩種可能的宏塊運動(a)零運動,或(b)全局或區(qū)域運動。在每個宏塊都被編碼時,檢查該宏塊周圍的先前編碼的區(qū)域,并判斷該區(qū)域中的運動特性。通過跳躍模式,若該區(qū)域中的運動具有全局運動或區(qū)域運動的特性,則使該宏塊與將要編碼宏塊和描述全局運動或區(qū)域運動的運動矢量相關聯(lián)。若該區(qū)域表現(xiàn)出可忽略量級的運動,則使該宏塊與零值運動矢量相關聯(lián)。
文檔編號H04N7/26GK1643912SQ03806139
公開日2005年7月20日 申請日期2003年3月14日 優(yōu)先權日2002年3月15日
發(fā)明者J·萊內(nèi)馬 申請人:諾基亞有限公司