專利名稱:圖像/視頻編碼器和/或解碼器中的編碼變換系數(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于對(duì)數(shù)字視頻進(jìn)行編碼的方法、系統(tǒng)和設(shè)備。更準(zhǔn)確的說(shuō),本發(fā)明涉及的是在使用了可變長(zhǎng)度編碼(VLC)的視頻/圖像編碼器/解碼其中對(duì)基于塊的量化變換系數(shù)進(jìn)行編碼。
背景技術(shù):
對(duì)那些與膠片記錄的常規(guī)電影相類似的數(shù)字視頻序列來(lái)說(shuō),這些序列包含了一系列靜止圖像(通常稱之為“幀”),運(yùn)動(dòng)錯(cuò)覺(jué)是通過(guò)以相對(duì)較快的速率接連顯示圖像而產(chǎn)生的,該速率通常是每秒15到30幀。由于具有相對(duì)較快的速率,因此連續(xù)幀中的圖像往往非常相似,由此包含了相當(dāng)多的冗余信息。例如,在典型的場(chǎng)景中既可以包括某些靜態(tài)元素,例如背景景物,也可以包括一些采用了多種不同形式的運(yùn)動(dòng)區(qū)域,例如新聞廣播員面部、移動(dòng)的交通量等等。作為選擇,記錄場(chǎng)景的攝像機(jī)本身也可以移動(dòng),在這種情況下,圖像中的所有元素具有相同類型的運(yùn)動(dòng)。這在很多情況中都意味著一個(gè)視頻幀與下一個(gè)視頻幀之間的整體變化非常小。
未壓縮數(shù)字視頻序列中的每個(gè)幀都包括一個(gè)圖像像素陣列。例如,在以四分之一通用中間格式(QCIF)著稱的常用數(shù)字圖像格式中,一個(gè)幀包含了一個(gè)176×144像素的陣列,在這種情況下,每個(gè)幀具有25,344個(gè)像素。每個(gè)像素轉(zhuǎn)而由一定數(shù)量的比特表示,這些比特傳送的是與像素相對(duì)應(yīng)的圖像區(qū)域的亮度和/或顏色內(nèi)容方面的信息。一般來(lái)說(shuō),可以使用所謂的YUV顏色模型來(lái)表示圖像的亮度和色度內(nèi)容。其中亮度或Y分量表示圖像光亮度(明亮度),圖像顏色內(nèi)容則兩個(gè)用U和V標(biāo)記的色度或色差分量表示。
與基于包含原色(也就是紅、綠、藍(lán),RGB)的表示的顏色模型相比,基于亮度/色度表示的顏色模型更具有優(yōu)勢(shì)。人類的視覺(jué)系統(tǒng)更易于感受到光亮變化而不是顏色變化,與亮度分量(Y)相比,YUV顏色模型為色度分量(U,V)使用了較低空間分辨率,由此利用到了這種特性。并且這樣一來(lái),可以在可接受地降低圖像質(zhì)量的情況下減少對(duì)圖像顏色信息進(jìn)行編碼所需要的信息量。
一般來(lái)說(shuō),色度分量的較低空間分辨率是通過(guò)二次抽樣實(shí)現(xiàn)的。通常,視頻序列中的每個(gè)幀都分成了包含亮度(Y)信息和在空間上二次抽樣的相關(guān)色度(U,V)信息的所謂“宏塊”。圖3描述了一種宏塊的形成方式。圖3a顯示的是用YUV顏色模型表示的視頻序列幀,其中每一個(gè)分量都具有相同的空間分辨率。所述宏塊是通過(guò)將原始圖像(圖3b)中的16×16的圖像像素區(qū)域表示成四個(gè)亮度信息塊以及在空間上對(duì)應(yīng)的兩個(gè)色度分量(U和V)而形成的,每一個(gè)亮度塊都包括一個(gè)8×8的亮度(Y)值陣列,而在x和y方向上則使用了因數(shù)2來(lái)對(duì)所述色度分量(U和V)進(jìn)行二次抽樣,進(jìn)而產(chǎn)生相應(yīng)的8×8的色度(U,V)值陣列(參見(jiàn)圖3c)。依照某些視頻編碼建議,例如國(guó)際電聯(lián)(ITU-T)建議H.26L,在宏塊內(nèi)部使用的基本塊的大小可以不同于8×8,例如,所述基本塊的大小也可以是4×8或4×4(參見(jiàn)G.Bjontegaard在2001年6月發(fā)表于VCEG-N10第2.3節(jié)的“H.26L Test Model Long Term Number 8(TML-8)draft 0”)。
一個(gè)QCIF圖像包括11×9個(gè)宏塊。如果用8位(也就是介于0到255之間的數(shù)字)分辨率來(lái)表示亮度塊和色度塊,那么,每個(gè)宏塊需要的總比特?cái)?shù)是(16×16×8)+2×(8×8×8)=3072個(gè)比特。這樣一來(lái),用以表示QCIF格式視頻幀所需要的比特?cái)?shù)目是99×3072=304,128個(gè)比特。這意味著對(duì)速率為每秒30幀并用YUV顏色模型表示的QCIF格式的未壓縮視頻序列來(lái)說(shuō),傳送/記錄/顯示該序列所需要的數(shù)據(jù)量大于9Mb/s(百萬(wàn)比特/秒)。這個(gè)速率是一個(gè)極高的數(shù)據(jù)速率,對(duì)視頻記錄、傳輸和顯示中的應(yīng)用而言,所述速率是很不現(xiàn)實(shí)的,因?yàn)檫@其中將會(huì)需要用到很大的存儲(chǔ)容量、傳輸信道容量以及很高的硬件性能。
如果要在ISDN(綜合業(yè)務(wù)數(shù)字網(wǎng))或PSTN(公共交換電話網(wǎng))之類的固定線路上實(shí)時(shí)傳送視頻序列,那么可用數(shù)據(jù)傳輸帶寬通常約為64kbps。在移動(dòng)可視電話中,傳輸至少部分是經(jīng)由無(wú)線電通信鏈路進(jìn)行的,由此可用帶寬可能會(huì)降至20kb/s。這意味著必須顯著減少用于表示視頻數(shù)據(jù)的信息量,以便在低帶寬通信網(wǎng)絡(luò)上傳送數(shù)字視頻序列。為此目的,目前開(kāi)發(fā)了多種在保持可接受圖像質(zhì)量的同時(shí)減少傳送信息量的視頻壓縮技術(shù)。
視頻壓縮方法是以減少視頻序列中的冗余部分以及與感知無(wú)關(guān)的部分為基礎(chǔ)的。視頻序列中的冗余度可以歸類為空間、時(shí)間和頻譜冗余度?!翱臻g冗余度”是用于描述幀內(nèi)相鄰像素之間的相關(guān)性(相似性)的術(shù)語(yǔ)。術(shù)語(yǔ)“時(shí)間冗余度”則表示這樣一個(gè)事實(shí),即序列中出現(xiàn)的某個(gè)幀的對(duì)象很可能會(huì)在后續(xù)幀中出現(xiàn),而“頻譜冗余度”則是指同一個(gè)圖像的不同顏色分量之間的相關(guān)性。
一般來(lái)說(shuō),只減少指定圖像序列中的不同形式的冗余度無(wú)法實(shí)現(xiàn)足夠有效的壓縮。因此,當(dāng)前大多數(shù)視頻編碼器還降低了視頻序列中那些在主觀感覺(jué)上最不重要的部分的質(zhì)量。此外,壓縮視頻比特流自身的冗余度是借助了有效的無(wú)損編碼技術(shù)降低的。通常,這種處理是使用一種名為熵編碼的技術(shù)實(shí)現(xiàn)的。
通常,在構(gòu)成各個(gè)數(shù)字視頻序列幀的像素之間存在著很大冗余度。換句話說(shuō),在某個(gè)序列幀內(nèi)部,任何一個(gè)像素的值與緊挨著它的其他像素的值實(shí)際是相同的。通常,視頻編碼系統(tǒng)是用一種名為“基于塊的變換編碼”的技術(shù)來(lái)減少空間冗余的,在這種編碼技術(shù)中則是逐個(gè)宏塊地將數(shù)學(xué)變換應(yīng)用于圖像像素。變換編碼將源自一個(gè)包含了像素值顯示的圖像數(shù)據(jù)轉(zhuǎn)換成包含一組系數(shù)值的形式,每一個(gè)系數(shù)值都是一個(gè)用于所論述變換的基函數(shù)的因數(shù)(乘數(shù))。通過(guò)使用一些數(shù)學(xué)變換,例如二維離散余弦變換(DCT),可以顯著降低數(shù)字視頻序列幀內(nèi)部的空間冗余度,進(jìn)而產(chǎn)生更簡(jiǎn)潔的圖像數(shù)據(jù)表示。
在沒(méi)有參考序列內(nèi)部其他任何幀的情況下,通過(guò)使用基于塊的變換編碼而被壓縮的視頻序列幀稱為幀內(nèi)編碼或I幀。此外,如果可能,幀內(nèi)編碼幀的塊是從同一個(gè)幀內(nèi)部的先前編碼的塊中預(yù)測(cè)的。這種技術(shù)即為通常所說(shuō)的幀內(nèi)預(yù)測(cè),它具有進(jìn)一步減少表示幀內(nèi)編碼幀所需要的數(shù)據(jù)量的效果。
通常,視頻編碼系統(tǒng)不但降低了視頻序列中個(gè)別幀內(nèi)部的空間冗余度,而且還使用了名為“運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)”的技術(shù)來(lái)降低序列中的時(shí)間冗余度。通過(guò)使用運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)技術(shù),可以從數(shù)字視頻序列中的名為“參考”或“錨點(diǎn)”的一個(gè)或多個(gè)幀中“預(yù)測(cè)”該序列中的某些(通常很多)幀的圖像內(nèi)容。圖像內(nèi)容的預(yù)測(cè)是通過(guò)對(duì)所要編碼(壓縮)的幀與一個(gè)或多個(gè)使用了“運(yùn)動(dòng)矢量”的參考幀之間的對(duì)象運(yùn)動(dòng)或圖像區(qū)域進(jìn)行追蹤來(lái)完成的。一般來(lái)說(shuō),在視頻序列中,一個(gè)或多個(gè)參考幀可以先于所要編碼的幀,但也可以跟隨在這些幀之后。與幀內(nèi)編碼中的情況一樣,對(duì)視頻幀進(jìn)行的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)通常是基于逐個(gè)宏塊來(lái)執(zhí)行的。
使用運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)技術(shù)壓縮的視頻序列幀通常被稱為幀間編碼或P幀。單獨(dú)的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)很少能提供足夠精確的視頻幀的圖像內(nèi)容顯示,因此通常有必要為每一個(gè)幀間編碼幀提供一個(gè)所謂的“預(yù)測(cè)誤差(PE)”幀。所述預(yù)測(cè)誤差幀表示的是幀間編碼幀的解碼版本與所要編碼的幀的圖像內(nèi)容之間的差別。更確切的說(shuō),預(yù)測(cè)誤差幀包含的數(shù)值代表的是將要編碼的幀的像素值與根據(jù)所論述幀的預(yù)測(cè)(幀間編碼)版本而形成的相應(yīng)重建像素值之間的差值。因此,預(yù)測(cè)誤差幀具有與靜止圖像相類似的特性,并且可以通過(guò)應(yīng)用基于塊的變換編碼來(lái)減少表示該幀的空間冗余度,進(jìn)而減少描繪所述幀所需要的數(shù)據(jù)量(比特?cái)?shù)目)。
為了更詳細(xì)地描述視頻編碼系統(tǒng)的操作,現(xiàn)在將對(duì)
圖1和圖2進(jìn)行參考。圖1是使用幀內(nèi)與幀間編碼的組合來(lái)產(chǎn)生一個(gè)壓縮(編碼)視頻比特流的常規(guī)視頻編碼器的示意圖。圖2中則對(duì)相應(yīng)的解碼器進(jìn)行了描述,并且稍后在文中將對(duì)解碼器進(jìn)行描述。
視頻編碼器100包括一個(gè)用于從相機(jī)或其他視頻源(未顯示)接收數(shù)字視頻信號(hào)的輸入端101。它還可以包括一個(gè)被安排為執(zhí)行基于塊的離散余弦變換(DCT)的變換單元104,一個(gè)量化器106,一個(gè)逆量化器108,一個(gè)被安排為執(zhí)行基于塊的反離散余弦變換(IDCT)的逆變換單元130,組合器112和116,以及一個(gè)幀存儲(chǔ)器120。所述編碼器還包括一個(gè)運(yùn)動(dòng)估計(jì)器130,一個(gè)運(yùn)動(dòng)現(xiàn)場(chǎng)編碼器140以及一個(gè)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器150。開(kāi)關(guān)102和114由控制管理器160協(xié)同操作,以便在視頻編碼幀內(nèi)模式與視頻編碼幀間模式之間切換編碼器。編碼器100還包括一個(gè)視頻復(fù)用編碼器170,它從編碼器100生成的各種類型信息中產(chǎn)生一個(gè)單獨(dú)比特流115,以便進(jìn)一步將其傳送到遠(yuǎn)程接收終端,或者舉例來(lái)說(shuō),該編碼器也可以將比特流存入一個(gè)大容量存儲(chǔ)介質(zhì),例如計(jì)算機(jī)硬盤(pán)(未顯示)。
編碼器100如下運(yùn)作。從視頻源提供到輸入端101的每一個(gè)未壓縮視頻幀以逐個(gè)宏塊的方式得到接收和處理,并且在這里最好按照光柵掃描順序來(lái)進(jìn)行處理。當(dāng)開(kāi)始執(zhí)行新的視頻序列編碼時(shí),所編碼的第一個(gè)幀是作為幀內(nèi)編碼幀編碼的。接下來(lái),除非滿足下列條件之一,否則將對(duì)編碼器進(jìn)行編程,以便用幀間編碼格式來(lái)對(duì)每個(gè)幀進(jìn)行編碼1)判定正被編碼的幀的當(dāng)前宏塊不同于預(yù)測(cè)中使用的參考幀的像素值,以至于產(chǎn)生了過(guò)多的預(yù)測(cè)誤差信息,在這種情況下,當(dāng)前宏塊是用幀內(nèi)編碼格式編碼的;2)預(yù)定義的幀內(nèi)幀的重復(fù)間隔已經(jīng)終止;或者3)接收到一個(gè)來(lái)自接收終端的反饋,該反饋表示的是一個(gè)要求以幀內(nèi)編碼格式來(lái)提供幀的請(qǐng)求。
條件1)的出現(xiàn)是通過(guò)對(duì)組合器116的輸出進(jìn)行監(jiān)視來(lái)檢測(cè)的。組合器116在正被編碼幀的當(dāng)前宏塊與運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)部件150產(chǎn)生的預(yù)測(cè)之間形成一個(gè)差值。如果該差值的量度(例如像素值的絕對(duì)差值之和)超出一個(gè)預(yù)定門(mén)限,那么組合器116經(jīng)由控制線119來(lái)向控制管理器160發(fā)出通知,控制管理器160則經(jīng)由控制線113來(lái)操作開(kāi)關(guān)102和114,從而將編碼器100切換到幀內(nèi)編碼模式。這樣一來(lái),以幀內(nèi)編碼格式來(lái)進(jìn)行不同方式的編碼的幀可以包括幀內(nèi)編碼宏塊。條件2)的出現(xiàn)是借助了在控制管理器160實(shí)施中的定時(shí)器或幀計(jì)數(shù)器而以如下方式監(jiān)視的,其中如果定時(shí)器終止或者幀計(jì)數(shù)器達(dá)到預(yù)定數(shù)量的幀,那么控制管理器160經(jīng)由控制線113來(lái)操作開(kāi)關(guān)102和114,進(jìn)而將編碼器切換到幀內(nèi)編碼模式。如果控制管理器160經(jīng)由控制線121而從例如某個(gè)接收終端收到一個(gè)表明所述接收終端需要進(jìn)行幀內(nèi)編碼幀刷新的反饋信號(hào),則觸發(fā)條件3)。舉例來(lái)說(shuō),如果先前發(fā)送的幀在其傳送過(guò)程中因?yàn)楦蓴_而受到嚴(yán)重破壞,以致于不能在接收機(jī)上對(duì)其進(jìn)行解碼,則有可能會(huì)出現(xiàn)上述情況。在這種情況下,接收解碼器發(fā)出一個(gè)要求以幀內(nèi)編碼格式編碼下一個(gè)幀的請(qǐng)求,由此重新初始化編碼序列。
現(xiàn)在將對(duì)幀內(nèi)編碼模式中的編碼器100的操作進(jìn)行描述。在幀內(nèi)編碼模式中,控制管理器160對(duì)開(kāi)關(guān)102進(jìn)行操作,以便接受來(lái)自輸入線118的視頻輸入。視頻信號(hào)輸入是經(jīng)由輸入線118而從輸入端101逐個(gè)宏塊地接收的。在對(duì)其進(jìn)行接收的時(shí)候,構(gòu)成宏塊的亮度和色度值塊傳遞到DCT變換單元104,該單元對(duì)每一個(gè)塊值執(zhí)行二維離散余弦變換,由此為各個(gè)塊產(chǎn)生一個(gè)二維DCT系數(shù)陣列。DCT變換單元104為每一個(gè)塊產(chǎn)生一個(gè)系數(shù)值陣列,所述系數(shù)值的數(shù)目取決于構(gòu)成宏塊的塊的特性。舉例來(lái)說(shuō),如果在宏塊中使用的基本塊的大小是4×4,那么DCT變換單元104會(huì)為每一個(gè)塊產(chǎn)生一個(gè)4×4的DCT系數(shù)陣列。如果塊大小是8×8,則產(chǎn)生一個(gè)8×8的DCT系數(shù)陣列。
每一個(gè)塊的DCT系數(shù)都傳遞到量化器106,在量化器106中則使用量化參數(shù)QP來(lái)對(duì)其進(jìn)行量化。量化參數(shù)QP的選擇由控制管理器160經(jīng)由控制線115來(lái)進(jìn)行控制。與DCT變換塊104初始產(chǎn)生的系數(shù)相比,經(jīng)過(guò)量化的系數(shù)的數(shù)值精度相對(duì)較低,因此所述量化將會(huì)引入某種信息丟失。這樣一來(lái)則提供了另外一種用以減少表示視頻序列中的各個(gè)圖像所需要的數(shù)據(jù)量的機(jī)制。然而,與實(shí)際無(wú)損的DCT變換所不同,量化引入的信息丟失將會(huì)導(dǎo)致不可逆地降低圖像質(zhì)量。應(yīng)用于DCT系數(shù)的量化程度越高,圖像質(zhì)量的損失也就越大。
如圖1的線路125所示,對(duì)每一個(gè)塊來(lái)說(shuō),其經(jīng)過(guò)量化的DCT系數(shù)從量化器106傳遞到視頻復(fù)用編碼器170。視頻復(fù)用編碼器170使用一個(gè)Z形掃描過(guò)程來(lái)對(duì)每個(gè)塊的量化變換系數(shù)進(jìn)行排序。這個(gè)操作是將那些經(jīng)過(guò)量化的變換系數(shù)的二維陣列轉(zhuǎn)換成一個(gè)一維陣列。如圖4所示4×4陣列的典型Z形掃描大致是以空間頻率遞增的順序來(lái)對(duì)系數(shù)進(jìn)行排序的。此外,這種操作往往還根據(jù)系數(shù)值來(lái)對(duì)系數(shù)進(jìn)行排序,由此使得一維陣列中位置較前的系數(shù)的絕對(duì)值更有可能大于陣列中位置靠后的系數(shù)。出現(xiàn)這種情況則是因?yàn)樵趫D像塊內(nèi)部,較低的空間頻率往往具有較大的幅度。因此,在經(jīng)過(guò)量化的變換系數(shù)的一維陣列中,接近末端的值往往為零。
通常,視頻復(fù)用編碼器170是用兩個(gè)名為等級(jí)(level)和游程(run)的值來(lái)表示一維陣列中經(jīng)過(guò)量化的各個(gè)非零系數(shù)的。其中等級(jí)是經(jīng)過(guò)量化的系數(shù)的值,游程是所論述系數(shù)之前的連續(xù)零值系數(shù)的數(shù)目。對(duì)給定系數(shù)來(lái)說(shuō),其游程和等級(jí)值將被排序,以使等級(jí)值先于相關(guān)的游程值。在這里使用了大小為零的等級(jí)值來(lái)表明塊中不再存在非零系數(shù)。這個(gè)0等級(jí)值被稱為EOB(塊結(jié)束)符號(hào)。
作為選擇,一維陣列中的每一個(gè)非零量化系數(shù)都可以由3個(gè)值(游程,等級(jí),末端)表示。等級(jí)和游程的意義與先前方案相同,而末端則表示當(dāng)前系數(shù)之后的一維陣列中是否還有其他非零系數(shù)。這樣一來(lái)則不再需要單獨(dú)的EOB符號(hào)。
游程和等級(jí)值(如果可以應(yīng)用末端的話,也包括末端)是通過(guò)使用熵編碼而被進(jìn)一步編碼的。所述熵編碼是一種無(wú)損操作,它利用的是所要編碼的數(shù)據(jù)集內(nèi)部的符號(hào)通常具有不同出現(xiàn)概率這一事實(shí)。因此,在這里是分配可變數(shù)量的比特而不是使用固定數(shù)量的比特來(lái)表示每一個(gè)符號(hào)的,由此使用比特較少的碼字來(lái)表示較有可能出現(xiàn)的符號(hào)。出于這個(gè)原因,熵編碼通常也稱為可變長(zhǎng)度編碼(VLC)。由于某些等級(jí)和游程值較其它數(shù)值而言更有可能出現(xiàn),因此通常可以有效地使用熵編碼技術(shù)來(lái)減少表示游程和等級(jí)值所需要的比特?cái)?shù)量。
一旦使用恰當(dāng)方法對(duì)游程和等級(jí)值進(jìn)行了熵編碼,則視頻復(fù)用編碼器170進(jìn)一步將其與控制信息結(jié)合,從而形成編碼圖像信息135的單獨(dú)壓縮比特流,其中所述控制信息也是使用適合所論述信息類型的可變長(zhǎng)度編碼方法而被編碼的。由此從編碼器傳送的是包含了表示(游程,等級(jí))對(duì)的可變長(zhǎng)度碼字的比特流。
雖然在這里是結(jié)合視頻復(fù)用編碼器170執(zhí)行的操作來(lái)對(duì)熵編碼進(jìn)行描述的,但是應(yīng)該指出,在替換實(shí)施方式中也可以提供一個(gè)單獨(dú)的熵編碼單元。
宏塊的局部解碼版本也是在編碼器100中形成的。這個(gè)操作是通過(guò)將量化器106輸出的每一個(gè)塊的量化變換系數(shù)經(jīng)由逆量化器108來(lái)進(jìn)行傳遞以及在逆變換單元110中應(yīng)用一種反向DCT變換來(lái)完成的。這樣一來(lái),重建的像素陣列是為宏塊中的各個(gè)塊構(gòu)造的。最終得到的解碼圖像數(shù)據(jù)將會(huì)輸入到組合器112中。在幀內(nèi)編碼模式中則是對(duì)開(kāi)關(guān)114進(jìn)行設(shè)定,以使經(jīng)由開(kāi)關(guān)114到達(dá)組合器112的輸入為零。由此,組合器112執(zhí)行的操作等價(jià)于傳遞那些沒(méi)有發(fā)生變化的解碼圖像數(shù)據(jù)。
在接收到當(dāng)前幀的后續(xù)宏塊并對(duì)其執(zhí)行單元104、106、108、110和112中的前述編碼和解碼步驟時(shí),在幀存儲(chǔ)器120中構(gòu)造了幀內(nèi)編碼幀的解碼版本。在對(duì)當(dāng)前幀的最后一個(gè)宏塊執(zhí)行幀內(nèi)編碼并且隨后對(duì)其進(jìn)行解碼的時(shí)候,幀存儲(chǔ)器120將會(huì)包含一個(gè)完整解碼的幀,而在用幀間編碼格式對(duì)后續(xù)接收的視頻幀進(jìn)行編碼的過(guò)程中,這個(gè)完全解碼的幀可以充當(dāng)一個(gè)預(yù)測(cè)參考幀。
現(xiàn)在將對(duì)幀間編碼模式中的編碼器100的操作進(jìn)行描述。在幀間編碼模式中,控制管理器160通過(guò)操作開(kāi)關(guān)102來(lái)接收源自線路117的輸入,其中所述輸入包含了組合器116的輸出。組合器116以逐個(gè)宏塊的方式接收源自輸入端101的視頻輸入信號(hào)。當(dāng)組合器116接收到構(gòu)成宏塊的亮度和色度值塊時(shí),它會(huì)形成相應(yīng)的預(yù)測(cè)誤差信息塊。該預(yù)測(cè)誤差信息表示所論述的塊與運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元150產(chǎn)生的預(yù)測(cè)值之間的差值。更具體地說(shuō),對(duì)宏塊中的每個(gè)塊來(lái)說(shuō),其預(yù)測(cè)誤差信息包括一個(gè)二維陣列,這個(gè)二維陣列是由代表了所編碼的亮度或色度信息塊的像素值與解碼像素值之間的差值的數(shù)值構(gòu)成的,其中所述解碼像素值的獲取是依照以下描述的過(guò)程而為這些塊形成一個(gè)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)來(lái)完成的。因此舉例來(lái)說(shuō),如果每個(gè)宏塊都包含了由亮度和色度值構(gòu)成的4×4個(gè)塊的組合,那么對(duì)宏塊中的每個(gè)塊而言,其預(yù)測(cè)誤差信息也包括一個(gè)4×4的預(yù)測(cè)誤差值陣列。
宏塊中各個(gè)塊的預(yù)測(cè)誤差信息傳遞到DCT變換單元104,該單元對(duì)每一個(gè)預(yù)測(cè)值塊執(zhí)行二維離散余弦變換,以便為每一個(gè)塊產(chǎn)生一個(gè)二維的DCT變換系數(shù)陣列。DCT變換單元104為每一個(gè)預(yù)測(cè)誤差塊產(chǎn)生一個(gè)系數(shù)值陣列,所述系數(shù)值的數(shù)目取決于構(gòu)成宏塊的塊的特性。舉例來(lái)說(shuō),如果宏塊中使用的基本塊的大小是4×4,那么DCT變換單元104將會(huì)為每一個(gè)預(yù)測(cè)誤差塊產(chǎn)生一個(gè)4×4的DCT系數(shù)陣列。如果塊大小為8×8,則產(chǎn)生一個(gè)8×8的DCT系數(shù)陣列。
每一個(gè)預(yù)測(cè)誤差塊的變換系數(shù)都傳遞到量化器106,在量化器中則使用量化參數(shù)QP并以類似于上文結(jié)合幀內(nèi)模式中的編碼器操作所描述的方式來(lái)對(duì)其進(jìn)行量化。同樣,量化參數(shù)QP的選擇是由控制管理器160經(jīng)由控制線115來(lái)進(jìn)行控制的。
經(jīng)過(guò)量化的DCT系數(shù)表示的是宏塊中的每個(gè)塊的預(yù)測(cè)誤差信息,如圖1的線路125所示,這些系數(shù)從量化器106傳遞到視頻復(fù)用器170。與幀內(nèi)編碼模式一樣,視頻復(fù)用編碼器170使用了前述Z形掃描過(guò)程(參見(jiàn)圖3)來(lái)對(duì)各個(gè)預(yù)測(cè)誤差塊的變換系數(shù)進(jìn)行排序,然后則將每一個(gè)非零量化系數(shù)表示成一個(gè)等級(jí)和一個(gè)游程值。并且它還使用了熵編碼并以一種類似于上文中結(jié)合幀內(nèi)編碼模式所描述的方式來(lái)對(duì)游程和等級(jí)值進(jìn)行壓縮。此外,所述視頻復(fù)用編碼器170還通過(guò)線路126來(lái)接收源自運(yùn)動(dòng)現(xiàn)場(chǎng)編碼塊140的運(yùn)動(dòng)矢量信息(下文中將會(huì)對(duì)此進(jìn)行描述)以及接收來(lái)自控制管理器160的控制信息。所述編碼器對(duì)運(yùn)動(dòng)矢量信息和控制信息進(jìn)行熵編碼,并且形成一個(gè)單獨(dú)的編碼圖像信息比特流135,該比特流包含了經(jīng)過(guò)熵編碼的運(yùn)動(dòng)矢量、預(yù)測(cè)誤差以及控制信息。
經(jīng)過(guò)量化的DCT系數(shù)表示的是宏塊中每一個(gè)塊的預(yù)測(cè)誤差信息,這些系數(shù)同樣從量化器106傳遞到逆量化器108。在這里對(duì)這些系數(shù)進(jìn)行逆量化并且將最終得到的逆量化DCT系數(shù)施加到反向DCT變換單元110,在所述單元中則對(duì)其執(zhí)行反向DCT變換,以便產(chǎn)生局部解碼的預(yù)測(cè)誤差值塊。然后,局部解碼的預(yù)測(cè)誤差值塊輸入到組合器112中。在幀間編碼模式中,通過(guò)對(duì)開(kāi)關(guān)114進(jìn)行設(shè)置,可以使組合器112接收運(yùn)動(dòng)補(bǔ)償單元150為宏塊中每個(gè)塊產(chǎn)生的預(yù)測(cè)像素值。組合器112將每個(gè)局部解碼的預(yù)測(cè)誤差值塊與相應(yīng)的預(yù)測(cè)像素值塊相結(jié)合,以便產(chǎn)生重建圖像塊并將其存入幀存儲(chǔ)器120。
當(dāng)從視頻源接收到視頻信號(hào)的后續(xù)宏塊并對(duì)其執(zhí)行前述單元104、106、108、110和112中的編碼和解碼步驟時(shí),在幀存儲(chǔ)器120中將會(huì)構(gòu)造所述幀的一個(gè)解碼版本。在處理了視頻信號(hào)的最后一個(gè)宏塊之后,幀存儲(chǔ)器120將會(huì)包含一個(gè)完全解碼的幀,在用幀間編碼格式編碼后續(xù)接收的視頻幀的過(guò)程中,這個(gè)完全解碼的幀可以充當(dāng)預(yù)測(cè)參考幀。
現(xiàn)在將要描述的是如何為當(dāng)前幀的宏塊形成一個(gè)預(yù)測(cè)。任何一個(gè)用幀間編碼格式編碼的幀都需要一個(gè)用于運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的參考幀。這意味著在對(duì)視頻序列進(jìn)行編碼的過(guò)程中,無(wú)論所編碼的首個(gè)幀是序列中的第一個(gè)幀還是其他幀,都有必要采用幀間編碼格式來(lái)對(duì)其進(jìn)行編碼。這轉(zhuǎn)而意味著當(dāng)控制管理器160將視頻編碼器100切換成幀間編碼模式時(shí),在編碼器的幀存儲(chǔ)器120中已經(jīng)可以使用通過(guò)對(duì)先前編碼幀進(jìn)行局部解碼所形成的完整參考幀。通常,參考幀是通過(guò)對(duì)幀內(nèi)編碼幀或幀間編碼幀進(jìn)行局部解碼而形成的。
在為當(dāng)前幀的一個(gè)宏塊生成預(yù)測(cè)的過(guò)程中,第一個(gè)步驟由運(yùn)動(dòng)估計(jì)單元130執(zhí)行。運(yùn)動(dòng)估計(jì)單元130經(jīng)由線路128接收那些構(gòu)成所編碼幀的當(dāng)前宏塊的亮度和色度值塊。然后,該單元執(zhí)行一個(gè)塊匹配操作,以便識(shí)別參考幀中實(shí)際對(duì)應(yīng)于當(dāng)前宏塊的某個(gè)區(qū)域。為了執(zhí)行塊匹配操作,運(yùn)動(dòng)估計(jì)單元經(jīng)由線路127來(lái)訪問(wèn)幀存儲(chǔ)器120中保存的參考幀數(shù)據(jù)。更確切的說(shuō),運(yùn)動(dòng)估計(jì)單元130通過(guò)計(jì)算表示被檢宏塊與像素最佳匹配候選區(qū)域之間的像素值差值的不同數(shù)值(例如絕對(duì)差值之和)來(lái)執(zhí)行塊匹配,其中所述像素最佳匹配區(qū)域源自幀存儲(chǔ)器120中保存的參考幀。在這里為處于參考幀的預(yù)定搜索范圍以內(nèi)的所有可能偏移上的候選區(qū)域都計(jì)算一個(gè)差值,并且運(yùn)動(dòng)估計(jì)單元130將會(huì)確定計(jì)算得到的最小差值。當(dāng)前幀的宏塊與產(chǎn)生最小差值的參考幀候選像素值塊之間的偏移則為所論述宏塊定義了運(yùn)動(dòng)矢量。
一旦運(yùn)動(dòng)估計(jì)單元130為宏塊產(chǎn)生運(yùn)動(dòng)矢量,則它會(huì)將運(yùn)動(dòng)矢量輸出到運(yùn)動(dòng)現(xiàn)場(chǎng)編碼單元140。所述運(yùn)動(dòng)現(xiàn)場(chǎng)編碼單元140使用一個(gè)包含一組基函數(shù)和運(yùn)動(dòng)系數(shù)的運(yùn)動(dòng)模型來(lái)近似估計(jì)這個(gè)從運(yùn)動(dòng)估計(jì)單元130接收的運(yùn)動(dòng)矢量。更具體的說(shuō),運(yùn)動(dòng)現(xiàn)場(chǎng)編碼單元140將運(yùn)動(dòng)矢量表示成一組運(yùn)動(dòng)系數(shù)值,在將所述值與基函數(shù)相乘的時(shí)候?qū)?huì)形成運(yùn)動(dòng)矢量的一個(gè)近似值。通常,一個(gè)平移運(yùn)動(dòng)模型只具有兩個(gè)運(yùn)動(dòng)系數(shù),并且在這里所述模型使用的是基函數(shù),然而在這里也可以使用更復(fù)雜的運(yùn)動(dòng)模型。
運(yùn)動(dòng)系數(shù)從運(yùn)動(dòng)現(xiàn)場(chǎng)編碼單元140傳遞到運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元150。所述運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元150還從幀存儲(chǔ)器120中接收運(yùn)動(dòng)估計(jì)單元130識(shí)別的像素值最佳匹配候選區(qū)域。通過(guò)使用運(yùn)動(dòng)現(xiàn)場(chǎng)編碼單元140產(chǎn)生的運(yùn)動(dòng)矢量近似表示以及來(lái)自參考幀的像素最佳匹配候選區(qū)域的像素值,所述運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元150為宏塊中的每個(gè)塊都產(chǎn)生一個(gè)預(yù)測(cè)像素值陣列。每個(gè)預(yù)測(cè)像素值塊都傳遞到組合器116,在所述組合器中則從當(dāng)前宏塊的相應(yīng)塊的實(shí)際(輸入)像素值中減去預(yù)測(cè)像素值。由此可以得到該宏塊的一組預(yù)測(cè)誤差塊。
現(xiàn)在將對(duì)圖2所示的視頻解碼器200的操作進(jìn)行描述。解碼器200包括一個(gè)從編碼器100接收編碼比特流并且將所述比特流135解復(fù)用成其組成部分的視頻復(fù)用解碼器270,一個(gè)逆量化器210,一個(gè)反向DCT變換器220,一個(gè)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元240,一個(gè)幀存儲(chǔ)器250,一個(gè)組合器230,一個(gè)控制管理器260以及一個(gè)輸出端280。
依照所解碼的是幀內(nèi)編碼幀還是幀間編碼幀,控制管理器260相應(yīng)地對(duì)解碼器200的操作進(jìn)行控制。幀內(nèi)/幀間觸發(fā)控制信號(hào)使得解碼器在解碼模式中進(jìn)行切換,其中舉例來(lái)說(shuō),所述信號(hào)可以是從編碼器接收的各個(gè)壓縮視頻幀的報(bào)頭部分提供的圖像類型信息中導(dǎo)出的。幀內(nèi)/幀間觸發(fā)控制信號(hào)是由視頻復(fù)用解碼器270從編碼視頻比特流中提取并經(jīng)由控制線215傳遞到控制管理器260的。
幀內(nèi)編碼幀的解碼是逐個(gè)宏塊地執(zhí)行的,實(shí)際上,每一個(gè)宏塊都是在識(shí)別出接收視頻比特流135中與之相關(guān)的編碼信息的時(shí)候解碼的。視頻復(fù)用解碼器270首先從涉及所論述宏塊的可能控制信息中分離出那些關(guān)于宏塊中的塊的編碼信息。而幀內(nèi)編碼宏塊中的每個(gè)塊的編碼信息則包括可變長(zhǎng)度碼字,這些碼字表示的是關(guān)于塊中非零量化DCT系數(shù)的經(jīng)過(guò)熵編碼的等級(jí)和游程值。視頻復(fù)用解碼器270使用了一種可變長(zhǎng)度解碼方法來(lái)對(duì)可變長(zhǎng)度碼字進(jìn)行解碼,由此恢復(fù)等級(jí)和游程值,其中所述方法對(duì)應(yīng)于編碼器100中使用的編碼方法。然后,解碼器為宏塊中的每個(gè)塊重建量化變換系數(shù)陣列,并且將其傳遞到逆量化器210。此外,在視頻解復(fù)用器中使用了一種恰當(dāng)?shù)目勺冮L(zhǎng)度解碼方法來(lái)對(duì)涉及宏塊的任何控制信息進(jìn)行解碼,并且還將所述信息傳遞到控制管理器260。特別地,與應(yīng)用于變換系數(shù)的量化等級(jí)有關(guān)的信息由視頻復(fù)用解碼器270從編碼比特流中提取并經(jīng)由控制線217提供到控制管理器260。所述控制管理器轉(zhuǎn)而將這個(gè)信息經(jīng)由控制線218傳遞到逆量化器210。逆量化器210則根據(jù)所述控制信息來(lái)反向量化宏塊中的各個(gè)塊的量化DCT系數(shù),以及將當(dāng)前執(zhí)行了逆量化的DCT系數(shù)提供給反向DCT變換器220。
反向DCT變換器220對(duì)宏塊中的各個(gè)塊的反向量化DCT系數(shù)執(zhí)行反向DCT變換,以便構(gòu)成一個(gè)包含重建像素值的解碼圖像信息塊。由于在幀內(nèi)編碼宏塊的編碼/解碼中沒(méi)有使用運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),因此控制管理器260將會(huì)用一種防止在幀內(nèi)編碼宏塊的解碼中使用任何參考信息的方式來(lái)控制組合器230。宏塊中每一個(gè)塊的重建像素值都傳遞到解碼器的視頻輸出端280,其中舉例來(lái)說(shuō),這些值可以提供給一個(gè)顯示設(shè)備(未顯示)。此外,宏塊中每一個(gè)塊的重建像素值還保存在幀存儲(chǔ)器250中。在解碼和保存幀內(nèi)編碼幀的后續(xù)宏塊的時(shí)候,在幀存儲(chǔ)器250中將會(huì)逐漸匯聚出一個(gè)解碼幀,由此可以將所述幀當(dāng)作一個(gè)參考幀,以便在與后續(xù)接收的幀間編碼幀的解碼操作相關(guān)聯(lián)的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中加以使用。
幀間編碼幀也是逐個(gè)宏塊地解碼的,實(shí)際上,每個(gè)幀間編碼宏塊都是在從接收比特流135中識(shí)別出相關(guān)編碼信息的時(shí)候解碼的。視頻復(fù)用解碼器270從編碼運(yùn)動(dòng)矢量信息和涉及所論述宏塊的可能控制信息中分離出幀間編碼宏塊中的各個(gè)塊的編碼預(yù)測(cè)誤差信息。如上所述,宏塊中每個(gè)塊的編碼預(yù)測(cè)誤差信息全都包含了可變長(zhǎng)度碼字,它表示的是用于所述預(yù)測(cè)誤差塊的非零量化變換系數(shù)并且經(jīng)過(guò)了熵編碼的等級(jí)和游程值。視頻復(fù)用解碼器270使用一種與編碼器100中使用的編碼方法相對(duì)應(yīng)的可變長(zhǎng)度解碼方法來(lái)對(duì)可變長(zhǎng)度碼字進(jìn)行解碼,進(jìn)而恢復(fù)等級(jí)和游程值,所述解碼器為宏塊中的每一個(gè)塊重建一個(gè)量化變換系數(shù)陣列,并且將其傳遞到逆量化器210。在視頻復(fù)用解碼器270中同樣使用了一種恰當(dāng)?shù)目勺冮L(zhǎng)度編碼方法來(lái)解碼那些與幀間編碼宏塊有關(guān)的控制信息,并且還將所述信息傳遞到控制管理器260。與應(yīng)用于預(yù)測(cè)誤差塊的變換系數(shù)量化等級(jí)相關(guān)聯(lián)的信息是從編碼比特流中提取并經(jīng)由控制線217提供給控制管理器260的??刂乒芾砥鬓D(zhuǎn)而將這個(gè)信息經(jīng)由控制線218傳遞到逆量化器210。所述逆量化器210根據(jù)這個(gè)控制信息來(lái)逆量化那些表示宏塊中每個(gè)塊的預(yù)測(cè)誤差信息的量化DCT系數(shù),并且還將當(dāng)前這些經(jīng)過(guò)逆量化的DCT系數(shù)提供到逆量化器220。然后,在反向DCT變換器220中對(duì)表示各個(gè)塊的預(yù)測(cè)誤差信息的逆量化DCT系數(shù)進(jìn)行反向變換,以便為宏塊中的每個(gè)塊生成一個(gè)重建的預(yù)測(cè)誤差值陣列。
與宏塊相關(guān)聯(lián)的編碼運(yùn)動(dòng)矢量信息由視頻復(fù)用解碼器270從編碼視頻比特流135中提取并解碼。由此得到的解碼運(yùn)動(dòng)矢量經(jīng)由數(shù)據(jù)線225傳遞到運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元240,該單元使用一個(gè)編碼器100中對(duì)所述幀間編碼宏塊進(jìn)行編碼時(shí)使用的運(yùn)動(dòng)模型相同的運(yùn)動(dòng)模型來(lái)為宏塊重建一個(gè)運(yùn)動(dòng)矢量。重建的運(yùn)動(dòng)矢量類似于編碼器運(yùn)動(dòng)估計(jì)單元130最初確定的運(yùn)動(dòng)矢量。解碼器的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元240使用重建運(yùn)動(dòng)矢量來(lái)識(shí)別重建像素區(qū)域在幀存儲(chǔ)器250保存的預(yù)測(cè)參考幀中的位置。例如,參考幀可以是先前解碼的幀內(nèi)編碼幀,也可以是先前解碼的幀間編碼幀。不論哪種情況,重建運(yùn)動(dòng)矢量表示的像素區(qū)域都被用于構(gòu)成所論述宏塊的預(yù)測(cè)。更具體地說(shuō),運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元240通過(guò)從參考幀中識(shí)別的像素區(qū)域那里拷貝相應(yīng)像素值來(lái)形成宏塊中各個(gè)塊的像素值陣列。所述預(yù)測(cè)則是從參考幀中導(dǎo)出的像素值塊并且從運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元240傳遞到組合器230,在組合器230中它將會(huì)與經(jīng)過(guò)解碼的預(yù)測(cè)誤差信息相結(jié)合。實(shí)踐中則是將每個(gè)預(yù)測(cè)塊的像素值添加到反向DCT變換器220輸出的相應(yīng)的重建預(yù)測(cè)誤差值中。由此可以得到宏塊中各個(gè)塊的重建像素值陣列。重建像素值傳遞到解碼器的視頻輸出端280并保存在幀存儲(chǔ)器250中。當(dāng)解碼和保存幀間編碼幀的宏塊時(shí),在幀存儲(chǔ)器250中將會(huì)逐漸匯聚成一個(gè)解碼幀,由此可以將所述解碼幀作為參考幀,以便在其他幀間編碼幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中加以使用。
現(xiàn)在將對(duì)使用了可變長(zhǎng)度編碼(VLC)技術(shù)的量化變換系數(shù)相關(guān)聯(lián)的游程和等級(jí)值的熵編碼進(jìn)行更詳細(xì)的描述。
通常,游程-等級(jí)對(duì)是作為一個(gè)單獨(dú)符號(hào)編碼的。這個(gè)操作是通過(guò)在每一個(gè)可能的游程-等級(jí)對(duì)與所定義的碼編號(hào)之間定義一個(gè)映射來(lái)實(shí)現(xiàn)的。表3描述了作為查找表的游程-等級(jí)對(duì)與碼編號(hào)之間的映射的一個(gè)實(shí)例。通過(guò)使用查找表中的映射,可以為塊中每一個(gè)(游程,等級(jí))對(duì)分配一個(gè)碼編號(hào),最終得到的碼編號(hào)則通過(guò)VLC編碼而被編碼。例如,在聯(lián)合模型(JM)2.0“Working DraftNumber 2,Doc.JVT-B118,Joint Video Team(JVT)of ISO/IEC MPEG and ITU-TVCFG Pattaya,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002”(H.26L視頻編碼標(biāo)準(zhǔn))中定義了兩種不同的查找表,它們將(游程,等級(jí))對(duì)映射成碼編號(hào)。所用表格的選擇基于QP的值以及塊的編碼模式。更確切的說(shuō),如果編碼模式是幀內(nèi)編碼并且QP小于24,那么在這里將會(huì)使用一個(gè)不同表格而不是使用其他方式。
JVT H.26L的聯(lián)合模型JM2.0使用了名為“UVLC”的所謂的“通用”可變長(zhǎng)度編碼方案。相應(yīng)地,依照H.26L JM2.0實(shí)施的視頻編碼器使用了一個(gè)單獨(dú)的可變長(zhǎng)度碼字集合來(lái)對(duì)所有那些來(lái)自編碼器并在比特流中傳送的信息(語(yǔ)法元素)進(jìn)行熵編碼。雖然使用的碼字是相同的,但是在這里為不同類型的信息編碼定義了預(yù)定數(shù)量的不同的數(shù)據(jù)符號(hào)-碼字映射。舉例來(lái)說(shuō),在這里為包含亮度信息的塊提供了兩種數(shù)據(jù)符號(hào)-碼字映射,其中映射的選擇憑借的是用以對(duì)量化DCT變換系數(shù)進(jìn)行排序的Z形掃描操作的類型(單頻或倍頻掃描)。要了解依照H.26L定義的單頻或倍頻掃描的Z形掃描方案,可以參見(jiàn)Working DraftNumber 2,Doc.JVT-B118,Joint Video Team(JVT)ofISO/IEC MPEG AND ITU-TVCEG Pattaya,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002。此外在這里特別為宏塊類型(MB_Type)的信息、運(yùn)動(dòng)矢量數(shù)據(jù)(MVD)以及幀內(nèi)編碼預(yù)測(cè)模式信息提供了不同的映射(參見(jiàn)下表3)。
在H.26L JM2.0中定義的UVLC碼字可以寫(xiě)成下表1所示的如下壓縮形式,其中Xn項(xiàng)可以采用數(shù)值0或110 1 x00 0 1 x1x00 0 0 1 x2x1x00 0 0 0 1 x3x2x1x0…………………………………表1依照H.26L產(chǎn)生UVLC碼字的方案表2介紹了根據(jù)表1給出的方案所產(chǎn)生的前16個(gè)UVLC碼字,而表3顯示的是根據(jù)H.26L提供的某些不同的數(shù)據(jù)符號(hào)碼字映射。要得到關(guān)于映射的全面描述,讀者可以查閱Working Draft Number2,Doc.JVT-B118,Joint Video Team(JVT)ofISO/IEC MPEG以及ITU-T VCEG Pattaya,2ndJVT Meeting,Geneva,CH,Jan.29-Feb.1,2002。
表2根據(jù)表1給出的方案所產(chǎn)生的H.26L的前16個(gè)UVLC碼字
表3 H.26L TML-5中定義的數(shù)據(jù)符號(hào)到UVLC碼字的映射的實(shí)例在H.26L中采用的通用可變長(zhǎng)度編碼方案提供了很多技術(shù)優(yōu)勢(shì)。特別地,如果使用根據(jù)如表1給出的簡(jiǎn)單規(guī)則所構(gòu)造的VLC碼字的單獨(dú)集合,那么可以逐個(gè)比特地創(chuàng)建碼字。這樣則免除了在編碼器和解碼器中保存碼字表的需要,由此減少了編碼器和解碼器中的存儲(chǔ)器需求。當(dāng)然,應(yīng)該指出的是,在替換的實(shí)時(shí)方式中,在編碼器和解碼器中也可以創(chuàng)建并保存碼字表。不同的數(shù)據(jù)符號(hào)-碼字映射允許至少有限地使UVLC編碼方案適應(yīng)于所要編碼的不同類型的圖像相關(guān)數(shù)據(jù)和控制信息的不同統(tǒng)計(jì)特性。不同的數(shù)據(jù)符號(hào)-碼字映射可以保存在編碼器和解碼器中,由此沒(méi)有必要在比特流中將映射信息從編碼器傳送到解碼器。這有助于保持差錯(cuò)適應(yīng)性。
然而,UVLC熵編碼方案同樣受到某些不利因素影響。特別的,不同數(shù)據(jù)符號(hào)-碼字映射提供的固定碼字和有限適應(yīng)度必然是不及最優(yōu)數(shù)據(jù)壓縮的。這是因?yàn)樵趫D像編碼中,不同變換系數(shù)的出現(xiàn)頻率(也就是概率)以及不同(游程,等級(jí))對(duì)的概率是依照所編碼的圖像內(nèi)容和圖像類型而改變的。因此,如果使用單獨(dú)的可變長(zhǎng)度碼字集合并且在所要編碼/解碼的數(shù)據(jù)符號(hào)與VLC之間只提供一個(gè)單獨(dú)映射,那么通常無(wú)法實(shí)現(xiàn)最優(yōu)編碼效率。
因此,目前已經(jīng)提出對(duì)基本的UVLC編碼方案進(jìn)行修改。更確切的說(shuō),目前建議在所述方案中包含一個(gè)以上的VLC碼字集合。其中一種建議是由GisleBjontegaard于2000年8月在Q.15/SG16“Use of Adaptive Switching Between TwoVLCs for INTRA Luma Coefficients”,Doc.Q15-K-30中提出的。該建議提出使用一個(gè)第二VLC碼字集合來(lái)對(duì)某些類型的信息進(jìn)行熵編碼。根據(jù)文檔Q15-K-30,所建議的名為VLC2的第二VLC碼字集合是根據(jù)以下在表4中顯示的方案構(gòu)造的。特別地,在這里將其用于對(duì)與4×4的幀內(nèi)編碼亮度塊的量化變換系數(shù)相關(guān)聯(lián)的游程和等級(jí)值進(jìn)行編碼,其中所述塊是用根據(jù)H.26L定義的倍頻掃描的Z性掃描方案來(lái)掃描的。表5以顯性方式顯示了VLC2的前16個(gè)碼字。
1 01 1 01 1 10 1 x1x00 0 1 x2x1x00 0 0 1 x3x2x1x0………………………………表4根據(jù)Q.15/SG16文檔Q15-K-30來(lái)產(chǎn)生VLC2碼字的方案
表5根據(jù)表4給出的方案所產(chǎn)生的Q.15/SG16文檔Q15-K-30的前16個(gè)VLC2碼字通過(guò)將表4和5與表1和2進(jìn)行比較可以看出,與分配給初始UVLC碼字集合中的最短碼字的單個(gè)比特相對(duì),VLC2的最短碼字具有兩個(gè)比特。由于通用的可解碼性要求是沒(méi)有一個(gè)VLC碼字是其他任何碼字的前綴,因此這種改變將會(huì)對(duì)其他VLC2碼字的結(jié)構(gòu)產(chǎn)生很大的影響。特別地,通過(guò)為最短碼字分配兩個(gè)比特,則可以用更少的比特來(lái)表示具有更高索引的碼字。舉例來(lái)說(shuō),參考表2可以看出,索引為7的UVLC碼字具有7個(gè)比特,而索引為7的VLC2碼字只具有6個(gè)比特。
在先前描述的VLC編碼方法中,碼字是通過(guò)在一個(gè)以上的碼字集合之間進(jìn)行基于上下文的切換而被選擇的,與使用單個(gè)VLC碼字集合的方法相比,這種方法在數(shù)據(jù)壓縮效率方面提供了改進(jìn)。然而在很多數(shù)據(jù)壓縮應(yīng)用、尤其是涉及視頻編碼的應(yīng)用中,其中還繼續(xù)需要改進(jìn)數(shù)據(jù)壓縮效率。因此,對(duì)那些在保持低計(jì)算復(fù)雜性、低存儲(chǔ)需要和良好的差錯(cuò)適應(yīng)性的同時(shí)提供了對(duì)于所編碼數(shù)據(jù)符號(hào)類型及統(tǒng)計(jì)特性的改進(jìn)適應(yīng)性的新的可變長(zhǎng)度編碼方法而言,目前仍舊相當(dāng)關(guān)注于這些方法的數(shù)據(jù)壓縮效率。在本文中則開(kāi)發(fā)了根據(jù)本發(fā)明的方法。
發(fā)明概述上述問(wèn)題涉及的是在保持低計(jì)算復(fù)雜性和良好差錯(cuò)適應(yīng)性的情況下提高可變長(zhǎng)度編碼方法相對(duì)于所編碼數(shù)據(jù)符號(hào)類型以及統(tǒng)計(jì)特性的適應(yīng)性,根據(jù)本發(fā)明的方法則試圖解決這些問(wèn)題。
概括的說(shuō),本發(fā)明涉及的是對(duì)在視頻編碼器中由基于塊的變換編碼所產(chǎn)生的量化變換系數(shù)進(jìn)行可變長(zhǎng)度編碼。然而應(yīng)該理解的是,根據(jù)本發(fā)明的編碼和解碼方法更普遍地應(yīng)用于將要編碼的其他類型的數(shù)據(jù)。
特別地,本發(fā)明涉及一種VLC編碼方法,其中對(duì)量化變換系數(shù)塊中的非零系數(shù)NC的數(shù)目進(jìn)行識(shí)別并且在傳送到相應(yīng)解碼器的比特流中用信號(hào)顯性表示了所述數(shù)目。如先前所述,NC的顯性表示消除了發(fā)送EOB符號(hào)的需要,并且由此可以在編碼效率方面得到改進(jìn)。更確切的說(shuō),本發(fā)明提出了一種方法,借助于所述方法,表示塊中非零系數(shù)數(shù)目的NC值自身進(jìn)行了VLC編碼。由此在編碼效率方面提供了更大的改進(jìn)。
該方法包括使用至少兩個(gè)VLC碼字集合來(lái)對(duì)NC的值進(jìn)行編碼,并且定義了在碼字集合之間進(jìn)行切換的規(guī)則,這樣則顧及了與NC值將被編碼的塊相鄰的一個(gè)或多個(gè)塊中的非零系數(shù)數(shù)目。此外還對(duì)所述切換規(guī)則進(jìn)行設(shè)計(jì),以便在不需要任何與選擇比特流中所包含碼字有關(guān)的信息的情況下,對(duì)包含了依照本發(fā)明構(gòu)成并表示NC的VLC碼字的比特流進(jìn)行解碼。換句話說(shuō),根據(jù)本發(fā)明,對(duì)選取每一個(gè)表示NC值的碼字所依據(jù)的集合來(lái)說(shuō),在這里沒(méi)有必要提供所述集合的顯性指示。并且這種特性提高了數(shù)據(jù)壓縮效率。
本領(lǐng)域技術(shù)人員將會(huì)了解,依照本發(fā)明的方法通常可以應(yīng)用于由(游程,等級(jí))對(duì)表示的數(shù)據(jù)符號(hào)的VLC編碼或是所編碼數(shù)據(jù)符號(hào)集的任何等價(jià)顯示。
根據(jù)本發(fā)明的第一個(gè)方面,在這里提供了一種對(duì)數(shù)據(jù)符號(hào)集進(jìn)行編碼的方法,其中所述數(shù)據(jù)符號(hào)集包括具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào),并且包括值與所述第一數(shù)值不同的第二數(shù)量的數(shù)據(jù)符號(hào),其中將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集是從所述數(shù)據(jù)符號(hào)集中形成的,并且將可變長(zhǎng)度編碼應(yīng)用于這個(gè)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集。依照本方法,應(yīng)用于將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集的可變長(zhǎng)度編碼的至少一個(gè)特征是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而被適配的,并且在這里還提供了經(jīng)過(guò)可變長(zhǎng)度編碼的符號(hào)的數(shù)目的一個(gè)指示。非常有利的是,所述指示是一個(gè)表示將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,其中所述符號(hào)是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
根據(jù)本發(fā)明的第二個(gè)方面,在這里提供了一種對(duì)表示數(shù)據(jù)符號(hào)集的可變長(zhǎng)度碼字進(jìn)行解碼的方法,其中所述數(shù)據(jù)符號(hào)集包括具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào),以及值不同于所述第一數(shù)值的第二數(shù)量的數(shù)據(jù)符號(hào),并且所述數(shù)據(jù)符號(hào)集是通過(guò)從所述數(shù)據(jù)符號(hào)集中形成一個(gè)將要進(jìn)行可變長(zhǎng)度編碼的數(shù)據(jù)符號(hào)集合來(lái)進(jìn)行編碼的,所述可變長(zhǎng)度碼字是通過(guò)將可變長(zhǎng)度編碼應(yīng)用于那些將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集來(lái)形成的。根據(jù)本發(fā)明,應(yīng)用于可變長(zhǎng)度碼字的解碼的至少一個(gè)特性是根據(jù)執(zhí)行了可變長(zhǎng)度編碼的符號(hào)集中的符號(hào)數(shù)目的指示來(lái)適配的。非常有利的是,所述指示是一個(gè)表示進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,其中所述符號(hào)是根據(jù)進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
根據(jù)本發(fā)明的第三個(gè)方面,在這里提供了一種用于對(duì)數(shù)據(jù)符號(hào)集進(jìn)行編碼的編碼器,其中所述數(shù)據(jù)符號(hào)集包括具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào),并且包括值與所述第一數(shù)值不同的第二數(shù)量的數(shù)據(jù)符號(hào),將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集被安排為從所述數(shù)據(jù)符號(hào)集中形成,并且編碼器包含了用于對(duì)將要進(jìn)行可變長(zhǎng)度編碼的所述符號(hào)集進(jìn)行可變長(zhǎng)度編碼的編碼裝置。根據(jù)本發(fā)明,編碼器被安排為根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)數(shù)目來(lái)對(duì)應(yīng)用于將要進(jìn)行可變長(zhǎng)度編碼的數(shù)據(jù)符號(hào)的可變長(zhǎng)度編碼的至少一個(gè)特性進(jìn)行適配,并且進(jìn)一步被安排為提供一個(gè)關(guān)于進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的指示。非常有利的是,所述指示是一個(gè)表示將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,其中所述符號(hào)是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
根據(jù)本發(fā)明的第四個(gè)方面,在這里提供了一種用于對(duì)表示數(shù)據(jù)符號(hào)集的可變長(zhǎng)度碼字進(jìn)行解碼的解碼器,其中所述數(shù)據(jù)符號(hào)集包括具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào),以及值不同于所述第一數(shù)值的第二數(shù)量的數(shù)據(jù)符號(hào),并且所述數(shù)據(jù)符號(hào)集是通過(guò)從所述數(shù)據(jù)符號(hào)集中形成一個(gè)將要進(jìn)行可變長(zhǎng)度編碼的數(shù)據(jù)符號(hào)集合來(lái)進(jìn)行編碼的,所述可變長(zhǎng)度碼字是通過(guò)將可變長(zhǎng)度編碼應(yīng)用于那些將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集來(lái)形成的。根據(jù)本發(fā)明,所述解碼器被安排為根據(jù)執(zhí)行了可變長(zhǎng)度編碼的符號(hào)集中的符號(hào)數(shù)目的指示來(lái)對(duì)應(yīng)用于可變長(zhǎng)度碼字的解碼的至少一個(gè)特性進(jìn)行適配。非常有利的是,所述指示是一個(gè)表示進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,其中所述符號(hào)是根據(jù)進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
根據(jù)本發(fā)明的第五個(gè)方面,在這里提供了一種多媒體終端,其中包含了根據(jù)本發(fā)明第三個(gè)方面的編碼器。
根據(jù)本發(fā)明的第六個(gè)方面,在這里提供了一種多媒體終端,其中包含了根據(jù)本發(fā)明第四個(gè)方面的解碼器。
優(yōu)選的,根據(jù)本發(fā)明第五和/或第六個(gè)方面的多媒體終端是一個(gè)移動(dòng)多媒體終端,它被安排為借助于無(wú)線電連接來(lái)與移動(dòng)電信網(wǎng)絡(luò)進(jìn)行通信。
更準(zhǔn)確地說(shuō),根據(jù)本發(fā)明的編碼方法的特征主要在于應(yīng)用于將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集合的可變長(zhǎng)度編碼是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)進(jìn)行適配的,并且其中提供了可變長(zhǎng)度編碼符號(hào)數(shù)目的一個(gè)指示,所述指示是一個(gè)表示將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,其中所述符號(hào)是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。根據(jù)本發(fā)明的解碼方法的特征主要在于應(yīng)用于可變長(zhǎng)度碼字的解碼的至少一個(gè)特性是根據(jù)執(zhí)行了可變長(zhǎng)度編碼的所述符號(hào)集中的符號(hào)數(shù)目的指示來(lái)適配的,所述指示是一個(gè)表示進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,其中所述符號(hào)是根據(jù)進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。根據(jù)本發(fā)明的編碼器的特征主要在于編碼器被安排為根據(jù)所編碼符號(hào)的數(shù)目來(lái)適配應(yīng)用于將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集的可變長(zhǎng)度編碼的至少一個(gè)特性,并且還被安排為提供一個(gè)關(guān)于進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的指示,所述指示是一個(gè)表示將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,其中所述符號(hào)是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。根據(jù)本發(fā)明的解碼器的特征主要在于所述解碼器被安排為根據(jù)執(zhí)行了可變長(zhǎng)度編碼的所述數(shù)據(jù)集中的符號(hào)數(shù)目的指示來(lái)適配應(yīng)用于可變長(zhǎng)度碼字的解碼的至少一個(gè)特性,所述指示是一個(gè)表示進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,其中所述符號(hào)是根據(jù)進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
附圖簡(jiǎn)述現(xiàn)在參考附圖并借助實(shí)例來(lái)描述本發(fā)明的實(shí)施例,其中圖1是依照現(xiàn)有技術(shù)的普通視頻編碼器的示意性框圖;圖2是依照現(xiàn)有技術(shù)并與圖1所示的編碼器相對(duì)應(yīng)的普通視頻解碼器的示意性框圖3描述的是依照本發(fā)明的宏塊形成過(guò)程。
圖4描述的是示范性的Z形掃描順序;圖5顯示的是將要編碼的當(dāng)前圖像塊以及緊挨著它的先前編碼的圖像塊;圖6是依照本發(fā)明一個(gè)實(shí)施例的視頻編碼器的示意性框圖;圖7是依照本發(fā)明一個(gè)實(shí)施例并且與圖6所示的編碼器相對(duì)應(yīng)的視頻解碼器的示意性框圖;以及圖8是可以實(shí)施根據(jù)本發(fā)明的方法的多媒體通信終端的示意性框圖。
發(fā)明詳述在以下關(guān)于本發(fā)明的詳細(xì)描述中將會(huì)介紹根據(jù)本發(fā)明的方法的示范性實(shí)施例。該示范性實(shí)施例涉及的是(游程,等級(jí))對(duì)的可變長(zhǎng)度編碼,其中所述對(duì)表示的是由視頻編碼器中的基于塊的變換編碼及其在相應(yīng)視頻解碼器中的后續(xù)解碼產(chǎn)生的非零變換系數(shù)。
圖6是可以應(yīng)用依照本發(fā)明這個(gè)實(shí)施例的方法的視頻編碼器600的示意性框圖。實(shí)際上,圖6所示的視頻編碼器的結(jié)構(gòu)與圖1所示的現(xiàn)有技術(shù)的視頻編碼器的結(jié)構(gòu)是相同的,其中只對(duì)執(zhí)行可變長(zhǎng)度編碼操作的編碼器部分進(jìn)行了適當(dāng)修改。對(duì)視頻編碼器來(lái)說(shuō),其中所有那些與前述現(xiàn)有技術(shù)視頻編碼器按照相同方式執(zhí)行功能和操作的部分都是用相同的參考數(shù)字表示的。而在說(shuō)明書(shū)中則假設(shè)所有可變長(zhǎng)度編碼操作都是在視頻復(fù)用編碼器670中執(zhí)行的。然而應(yīng)該了解,在本發(fā)明的替換實(shí)施例中也可以提供一個(gè)或多個(gè)獨(dú)立的可變長(zhǎng)度編碼單元。此外還應(yīng)該指出,依照本發(fā)明的方法也可以應(yīng)用于某些由視頻編碼器產(chǎn)生的數(shù)據(jù)符號(hào)(例如與非零變換系數(shù)相關(guān)聯(lián)的(游程,等級(jí))對(duì)),并且可以使用其它的VLC編碼方法來(lái)編碼其它數(shù)據(jù)符號(hào)。
現(xiàn)在將對(duì)視頻編碼器600的操作進(jìn)行詳細(xì)考慮。在對(duì)數(shù)字視頻的某個(gè)幀進(jìn)行編碼的時(shí)候,編碼器600以一種類似于先前結(jié)合圖1所描述的方式來(lái)進(jìn)行操作,由此產(chǎn)生了經(jīng)過(guò)幀內(nèi)編碼和幀間編碼的壓縮視頻幀。如本文先前所述,在幀內(nèi)編碼模式中,離散余弦變換(DCT)被應(yīng)用于圖像數(shù)據(jù)的每一個(gè)塊(像素值),由此產(chǎn)生相應(yīng)的二維變換系數(shù)值陣列。DCT操作是在變換塊104中執(zhí)行的,隨后則將由此產(chǎn)生的系數(shù)傳遞到對(duì)其進(jìn)行量化的量化器106。在幀間編碼模式中,在單元104執(zhí)行的DCT變換被應(yīng)用于預(yù)測(cè)誤差值塊。由這個(gè)操作產(chǎn)生的變換系數(shù)還傳遞到量化器106,其中在所述量化器中同樣對(duì)其進(jìn)行了量化。幀間編碼幀可以包括經(jīng)過(guò)幀內(nèi)編碼的圖像塊。某些情況下則并沒(méi)有將變換編碼應(yīng)用于某些圖像塊。舉例來(lái)說(shuō),如果在幀內(nèi)編碼模式中使用幀內(nèi)預(yù)測(cè),那么可以從一個(gè)或多個(gè)先前編碼的圖像塊中預(yù)測(cè)出某些圖像塊。在這種情況下,編碼器為解碼器提供預(yù)測(cè)中使用的先前塊的指示,但是并未輸出任何變換系數(shù)數(shù)據(jù)。在幀內(nèi)編碼模式中,關(guān)于某個(gè)塊的預(yù)測(cè)與塊本身的圖像數(shù)據(jù)之間的差別可能很小,以至于相對(duì)于數(shù)據(jù)壓縮比而言,不傳送任何預(yù)測(cè)差錯(cuò)信息才是有利的。
依照這個(gè)實(shí)施例,根據(jù)本發(fā)明的方法適用于那些經(jīng)歷了變換編碼以及后續(xù)變換系數(shù)量化的圖像塊。
當(dāng)視頻復(fù)用編碼器670接收到一個(gè)量化變換系數(shù)塊(二維陣列)時(shí),它會(huì)確定所述陣列中的非零系數(shù)數(shù)目。根據(jù)本發(fā)明,在這里對(duì)這個(gè)名為NC的數(shù)目進(jìn)行可變長(zhǎng)度編碼,并且在比特流635中將其傳送到解碼器。在這里為NC值的可變長(zhǎng)度編碼提供了至少兩個(gè)可變長(zhǎng)度碼字集合。例如,在本發(fā)明的一個(gè)實(shí)施例中,這些碼字可以是在前文描述的表2和5中分別定義的碼字。更確切的說(shuō),在這里使用一個(gè)碼字來(lái)對(duì)NC進(jìn)行可變長(zhǎng)度編碼,其中所述碼字是從對(duì)應(yīng)于先前編碼的NC符號(hào)的至少兩個(gè)可變長(zhǎng)度碼字集合之中的一個(gè)集合中選出的。非常有利的是,用于分配VLC碼字的先前編碼的NC符號(hào)是從那些與正在編碼的塊所接近的塊中選出的。
圖5描述的是將要進(jìn)行VLC編碼的圖像塊以及與之相鄰的塊。Nc_L、NC_TL、NC_T和NC_TR這些項(xiàng)分別表示的是處于將要編碼的當(dāng)前塊的左邊、左上、上方以及右上的塊中的非零量化系數(shù)數(shù)目。
在這里使用的是源自可用VLC碼字集合之一的碼字來(lái)對(duì)當(dāng)前圖像塊的NC值進(jìn)行可變長(zhǎng)度編碼,其中所述碼字是在顧及了緊鄰的一個(gè)或多個(gè)塊中的一個(gè)或多個(gè)已編碼NC值的情況下選擇的。以下代碼給出了在顧及先前編碼的緊鄰圖像塊的NC值的情況下為NC值分配可變長(zhǎng)度碼的示范性過(guò)程VLC_N=NC_map[fn(NC_L,NC_TL,NC_T,NC_TR)] (1)在表達(dá)式(1)中,fn是一個(gè)函數(shù)(以下在表達(dá)式(2)中對(duì)它的一個(gè)實(shí)例進(jìn)行了定義),NC_map是一個(gè)將整數(shù)值映射成不同的可用VLC碼的陣列,VLC_N則表示所述碼字選自的表格的編號(hào)。Fn的實(shí)例包含“均值”和“中值”。在本發(fā)明的一個(gè)實(shí)施例中使用了Nc_L和NC_T的“均值”,根據(jù)這個(gè)示范性實(shí)施例,在表達(dá)式(1)中給出的分配關(guān)系變成
VLC_N=NC_map[(Nc_NC_T/2] (2)以下實(shí)例進(jìn)一步描述了根據(jù)本發(fā)明的方法而對(duì)NC進(jìn)行的編碼。假設(shè)將要編碼的當(dāng)前NC值是3,相鄰的NC_L和NC_T的值分別由4和2給出,那么NC_map的值由NC_map=[111112222]給出,其中VLC1和VLC2分別與來(lái)自表2和表5的碼字相對(duì)應(yīng)。如果應(yīng)用等式(2),那么VLC_N的值將會(huì)等于1。在這種情況下則使用來(lái)自表2的VLC碼字而將NC=3編碼成00100。
接著,視頻復(fù)用編碼器670將非零系數(shù)表示成(游程,等級(jí))對(duì)。這個(gè)操作可以通過(guò)現(xiàn)有技術(shù)中已知的方式實(shí)施。更為特別的是,在這里首先使用如圖4所示的預(yù)定掃描順序來(lái)對(duì)二維量化變換系數(shù)矩陣進(jìn)行掃描,以便產(chǎn)生一個(gè)有序的一維陣列。然后,有序的一維陣列中的每一個(gè)非零系數(shù)值都是用一個(gè)游程值和一個(gè)等級(jí)值表示的,其中等級(jí)值表示的是系數(shù)值,游程值表示的是非零系數(shù)之前的連續(xù)零值系數(shù)數(shù)目。與先前描述的現(xiàn)有技術(shù)中的游程-長(zhǎng)度編碼方法不同,依照本發(fā)明的方法,這其中沒(méi)有必要傳送EOB符號(hào)。并且根據(jù)本發(fā)明的方法,非零量化變換系數(shù)的值是顯性指示給解碼器的,由此可以不傳送EOB符號(hào)。這樣一來(lái),在解碼指定圖像塊的(游程,等級(jí))對(duì)的時(shí)候,解碼器可以對(duì)經(jīng)過(guò)解碼的對(duì)的數(shù)目進(jìn)行計(jì)數(shù)。當(dāng)經(jīng)過(guò)解碼的對(duì)(對(duì)應(yīng)于非零值系數(shù)的數(shù)目)的數(shù)目達(dá)到指示給解碼器的非零系數(shù)數(shù)目的時(shí)候,則可以停止對(duì)所論述的塊進(jìn)行解碼。
然后,視頻復(fù)用編碼器670以一種為各個(gè)(游程,等級(jí))對(duì)都分配一個(gè)單獨(dú)VLC碼字的方式而將可變長(zhǎng)度編碼應(yīng)用于游程和等級(jí)值。依照本發(fā)明,VLC編碼是通過(guò)選擇編碼器600保存的可變長(zhǎng)度編碼(查找)表集合中的某個(gè)表來(lái)執(zhí)行的。每一個(gè)編碼表不但定義了一個(gè)可變長(zhǎng)度碼字集合,而且還定義了碼字與可能在圖像塊量化變換系數(shù)數(shù)據(jù)中出現(xiàn)的(游程,等級(jí))對(duì)的可能數(shù)值之間的映射。依照本發(fā)明,視頻復(fù)用編碼器670根據(jù)所編碼圖像塊的量化變換系數(shù)陣列中的非零系數(shù)數(shù)目來(lái)選擇一個(gè)編碼表,以便加以使用。通過(guò)使用選定查找表中定義的映射,視頻復(fù)用編碼器為每一個(gè)(游程,等級(jí))對(duì)分配一個(gè)碼字,并且在比特流635中將所述碼字傳送到解碼器。
在本發(fā)明的不同實(shí)施例中,不同VLC編碼表的數(shù)目是可以改變的。本發(fā)明的一個(gè)實(shí)施例中為每一個(gè)可能出現(xiàn)的非零量化變換系數(shù)數(shù)目都提供了一個(gè)單獨(dú)的查找表。在應(yīng)用于從量化變換系數(shù)值陣列中導(dǎo)出的(游程,等級(jí))對(duì)集合的時(shí)候,用于每一個(gè)表格的碼字以及(游程,等級(jí))對(duì)與碼字之間的映射全都設(shè)計(jì)成了提供最優(yōu)數(shù)據(jù)壓縮,其中所述系數(shù)值具有特定數(shù)量的非零值系數(shù)。相對(duì)于非零值量化變換系數(shù)而言,(游程,等級(jí))對(duì)的統(tǒng)計(jì)特性變化的信息可以通過(guò)經(jīng)驗(yàn)獲取,例如通過(guò)預(yù)先對(duì)很多測(cè)試(“訓(xùn)練”)圖像或是視頻序列進(jìn)行編碼來(lái)獲取。然后可以在編碼器中對(duì)VLC碼字和碼字之間的映射進(jìn)行設(shè)計(jì)并將其保存為一個(gè)或多個(gè)查找表。
在一個(gè)優(yōu)選實(shí)施例中只提供了兩個(gè)VLC編碼表,以便在對(duì)源自4×4的圖像塊的(游程,等級(jí))對(duì)進(jìn)行編碼的過(guò)程中加以使用,其中一個(gè)表是在非零量化變換系數(shù)數(shù)目小于或等于8的時(shí)候使用,另一個(gè)則在非零量化變換系數(shù)大于8的時(shí)候使用。表2和3描述了本發(fā)明這個(gè)實(shí)施例中的(游程,等級(jí))對(duì)的不同概率分布。這些統(tǒng)計(jì)信息是通過(guò)使用一個(gè)依照當(dāng)前的ITU-T建議H.26L TestModel 8(TML8)實(shí)施的視頻編碼器來(lái)收集的,并且這些信息涉及碼間編碼圖像塊。在所述表中為最可能出現(xiàn)的對(duì)分配了編號(hào)1,并且為第二可能出現(xiàn)的對(duì)分配了編號(hào)2,而在這里則列舉了前15個(gè)最有可能出現(xiàn)的對(duì)。
表6非零量化系數(shù)的數(shù)目小于或等于8(4×4的碼間編碼塊)時(shí)(游程,等級(jí))對(duì)的概率
表7非零量化系數(shù)的數(shù)目大于8(4×4的碼間編碼塊)時(shí)(游程,等級(jí))對(duì)的概率在本發(fā)明的一個(gè)替換實(shí)施例中,通過(guò)改變所傳送的符號(hào)類型,可以提高編碼效率。這其中使用了(等級(jí),末端)對(duì)來(lái)表示量化變換系數(shù)而不是將其表示成(游程,等級(jí))對(duì),并且在這里為將每一個(gè)(等級(jí),末端)對(duì)都分配了一個(gè)VLC碼字。(等級(jí),末端)對(duì)中的等級(jí)表示的是系數(shù)的值,但與先前描述的(游程,等級(jí))對(duì)所不同,所述值可以采用數(shù)值0。末端參數(shù)則用于指示塊中不再有非零系數(shù)。例如,所述參數(shù)可以用作一個(gè)二進(jìn)制標(biāo)記,這樣一來(lái),如果某個(gè)系數(shù)的等級(jí)值是0并且所有后續(xù)系數(shù)值都是0,則將末端設(shè)定成等于1。量化變換參數(shù)的這種替換顯示可以提供編碼效率(數(shù)據(jù)壓縮)方面的改進(jìn),對(duì)幀內(nèi)編碼塊和使用很小的QP值的情況而言則更是如此。
在本發(fā)明的另一個(gè)替換實(shí)施例中使用了一個(gè)固定的VLC碼字集合,并且只有碼字與所編碼的(游程,等級(jí))對(duì)之間的映射是根據(jù)非零系數(shù)數(shù)目改變的。
在本發(fā)明的另一個(gè)替換實(shí)施例中,也可以根據(jù)某些其他參數(shù)來(lái)為某個(gè)圖像塊選擇VLC編碼表,舉例來(lái)說(shuō),所述參數(shù)可以是用于量化圖像塊變換系數(shù)的量化參數(shù)(QP)值或是幀或圖像塊(幀內(nèi)/幀間)的類型。在這種情況下,為某個(gè)量化變換系數(shù)陣列選擇VLC編碼表的操作將會(huì)依賴于非零系數(shù)數(shù)目和其他參數(shù)值。
在本發(fā)明的另一個(gè)替換實(shí)施例中,可以判定零值量化變換系數(shù)值的數(shù)目并且將其用作一個(gè)參數(shù),根據(jù)所述參數(shù)來(lái)設(shè)計(jì)VLC碼字以及所述碼字與數(shù)據(jù)符號(hào)之間的映射,并且根據(jù)所述參數(shù)來(lái)選擇VLC查找表。
現(xiàn)在參考圖7來(lái)描述根據(jù)本發(fā)明一個(gè)實(shí)施例的視頻解碼器700的操作。實(shí)際上,圖7描述的視頻解碼器的構(gòu)造與圖2所示的現(xiàn)有技術(shù)的視頻編碼器的構(gòu)造是相同的,其中只對(duì)那些執(zhí)行可變長(zhǎng)度解碼操作的解碼器部分進(jìn)行了恰當(dāng)修改。對(duì)視頻解碼器來(lái)說(shuō),所有那些與前述現(xiàn)有技術(shù)視頻解碼器按照相同方式執(zhí)行功能和操作的部分都是用相同的參考數(shù)字標(biāo)識(shí)的。在說(shuō)明書(shū)中假設(shè)所有可變長(zhǎng)度解碼操作都是在視頻復(fù)用解碼器770中執(zhí)行的。然而應(yīng)該了解,在本發(fā)明的替換實(shí)施例中,也可以提供一個(gè)或多個(gè)獨(dú)立的可變長(zhǎng)度解碼單元。
現(xiàn)在將對(duì)視頻解碼器的操作進(jìn)行詳細(xì)描述。在這里假設(shè)圖7的視頻解碼器與結(jié)合圖6所描述的編碼器相對(duì)應(yīng),由此所述視頻解碼器能夠接收并解碼所述編碼器600傳送的比特流635。在解碼器中,視頻復(fù)用解碼器770接收比特流并將其分離成它的組成部分。如結(jié)合先前現(xiàn)有技術(shù)的描述所說(shuō)明的那樣,從比特流中提取的壓縮視頻數(shù)據(jù)是以逐個(gè)宏塊的方式處理的。幀內(nèi)編碼宏塊的壓縮視頻數(shù)據(jù)包含了表示那些經(jīng)過(guò)VLC編碼的NC值以及宏塊中每個(gè)塊的(游程,等級(jí))對(duì)的可變長(zhǎng)度碼字,以及經(jīng)過(guò)編碼的控制信息(例如涉及量化參數(shù)QP)。幀間編碼宏塊的壓縮視頻數(shù)據(jù)則包含了關(guān)于每一個(gè)塊的經(jīng)過(guò)VLC編碼的預(yù)測(cè)誤差信息(包括經(jīng)過(guò)VLC編碼的NC值以及經(jīng)過(guò)VLC編碼的(游程,等級(jí))對(duì))、宏塊的運(yùn)動(dòng)矢量信息以及經(jīng)過(guò)編碼的控制信息。
對(duì)幀內(nèi)編碼宏塊中的每個(gè)塊以及與幀內(nèi)編碼宏塊相關(guān)聯(lián)的每一個(gè)預(yù)測(cè)誤差數(shù)據(jù)塊來(lái)說(shuō),其經(jīng)過(guò)VLC編碼的NC值以及(游程,等級(jí))對(duì)都是以相同方式解碼的。
更確切的說(shuō),在對(duì)幀內(nèi)或幀間編碼圖像塊的VLC編碼(游程,等級(jí))對(duì)進(jìn)行解碼的時(shí)候,視頻復(fù)用解碼器770首先確定塊中非零量化變換系數(shù)的數(shù)目。如先前所述,編碼器600將涉及非零量化變換系數(shù)數(shù)目的信息NC插入比特流635中。解碼器700從接收到的比特流中提取這個(gè)信息。根據(jù)本發(fā)明,NC值自身進(jìn)行了VLC編碼,由此復(fù)用解碼器770將會(huì)執(zhí)行一個(gè)恰當(dāng)?shù)目勺冮L(zhǎng)度解碼操作,以便恢復(fù)涉及NC的信息。如上所述,用于為某個(gè)圖像塊的NC值進(jìn)行編碼的VLC編碼表是基于與先前編碼的一個(gè)或多個(gè)圖像塊相關(guān)聯(lián)的一個(gè)或多個(gè)NC值選擇的。這意味著通常可以在沒(méi)有顯性指示碼字所選自的VLC編碼表的情況下對(duì)表示指定塊的NC值的碼字進(jìn)行解碼。因此,解碼器只需要知道選擇第一個(gè)(少量)編碼圖像塊所源自的VLC編碼表、圖像塊的編碼順序以及用于對(duì)在編碼后續(xù)NC值中所用VLC表進(jìn)行確定的規(guī)則。有必要明確了解到關(guān)于NC的選定VLC編碼表的確切圖像塊數(shù)目則取決于為后續(xù)NC值選擇VLC編碼表所使用的規(guī)則的特性,以及塊的掃描順序。舉例來(lái)說(shuō),如果使用了來(lái)自左邊、左上,上方和右上的塊的的NC值來(lái)選擇用于對(duì)后續(xù)NC值進(jìn)行編碼的VLC表格,并且塊的掃描(編碼)順序是從圖像左上方開(kāi)始逐行進(jìn)行,那么較為有利的是根據(jù)預(yù)定方案而為圖像第一行中的塊加上第二行中的第一個(gè)塊的NC值進(jìn)行編碼。然后則可以根據(jù)由上文中的等式(1)所描述的規(guī)則來(lái)對(duì)所有后續(xù)圖像塊的NC值進(jìn)行編碼,并且在解碼器上可以在沒(méi)有所用VLC編碼表的任何顯性指示的情況下執(zhí)行解碼。
一旦根據(jù)上述過(guò)程確定了圖像塊中非零量化變換系數(shù)的數(shù)目,則視頻復(fù)用解碼器770將會(huì)選擇一個(gè)可變長(zhǎng)度解碼表,并且開(kāi)始對(duì)圖像塊的VLC編碼(游程,等級(jí))對(duì)進(jìn)行解碼。根據(jù)本發(fā)明,VLC解碼表是依據(jù)NC選擇的。所述解碼表是從一組與編碼器中所用查找表相同的查找表中選出的。該解碼表預(yù)先保存在解碼器中,它定義了在比特流635中接收的VLC碼字與可能在圖像塊的量化變換系數(shù)數(shù)據(jù)中出現(xiàn)的(游程,等級(jí))對(duì)的可能值之間的映射。在根據(jù)非零量化變換系數(shù)選擇了表格之后,視頻復(fù)用解碼器770使用選定查找表中定義的映射來(lái)恢復(fù)游程和等級(jí)值。然后,它為所述塊重建量化變換系數(shù)值,并且將其傳送到逆量化器210。視頻解碼過(guò)程的剩余部分則是像結(jié)合現(xiàn)有技術(shù)的視頻解碼器200所描述的那樣繼續(xù)執(zhí)行,由此為每一個(gè)圖像塊形成重建的像素值。
應(yīng)該了解的是,與先前描述的現(xiàn)有技術(shù)的VLC編碼方法相比,依照本發(fā)明的方法提供了非常顯著的優(yōu)點(diǎn)。特別地,它提供了一種可變長(zhǎng)度編碼和解碼方法,該方法自適應(yīng)于將要編碼/解碼的數(shù)據(jù)符號(hào)的統(tǒng)計(jì)特性,同時(shí)還保持了較低的計(jì)算復(fù)雜性以及很高的傳輸差錯(cuò)適應(yīng)性。該方法的適應(yīng)性源于為具有不同數(shù)量的非零量化變換系數(shù)的圖像塊使用不同的可變長(zhǎng)度碼字和/或映射。通過(guò)提供不同碼字和/或映射并目以此作為編碼器和解碼器中的查找表,可以將計(jì)算復(fù)雜性保持在很低的程度。這同樣有助于降低對(duì)于數(shù)據(jù)傳輸差錯(cuò)的敏感度,因?yàn)橛糜谥付▓D像塊的特定查找表是借助一個(gè)表明塊中非零變換系數(shù)數(shù)目的值而被告知解碼器的。
圖8介紹的是包含了適合根據(jù)本發(fā)明操作的視頻編碼和解碼設(shè)備的終端設(shè)備。更確切的說(shuō),該圖描述的是根據(jù)ITU-T建議H.324實(shí)施的多媒體終端80。該終端可以視為是一個(gè)多媒體收發(fā)信機(jī)設(shè)備。它不但包含了捕獲、編碼和復(fù)用多媒體數(shù)據(jù)流,以便經(jīng)由通信網(wǎng)絡(luò)傳送的部件,而且還包含了接收、解復(fù)用、解碼和顯示接收到的多媒體內(nèi)容的部件。ITU-T建議H.324定義了該終端的全部操作并且引用了對(duì)其不同組成部分的操作進(jìn)行控制的其他建議。這種多媒體終端可以在實(shí)時(shí)應(yīng)用中使用,例如常見(jiàn)的可視電話,但也可以在非實(shí)時(shí)應(yīng)用中使用,例如檢索和/或流式傳輸來(lái)自因特網(wǎng)中的多媒體服務(wù)器的視頻剪輯。
就本發(fā)明而言,應(yīng)該了解的是,圖8顯示的H.324終端只是適合所發(fā)明的方法應(yīng)用的眾多多媒體終端的實(shí)施方式之一。此外還應(yīng)該指出,目前存在多種涉及終端設(shè)備位置和實(shí)施方式的替換方案。如圖8所示,多媒體終端可以處于與模擬PSTN(公共交換電話網(wǎng))之類的固定線路的電話網(wǎng)絡(luò)相連的通信設(shè)備中。在這種情況下,多媒體終端配備了一個(gè)符合ITU-T建議V.8、V.34以及可選的V.8bis的調(diào)制解調(diào)器91。作為選擇,多媒體終端也可以連接到一個(gè)外部調(diào)制解調(diào)器。所述調(diào)制解調(diào)器能將多媒體終端產(chǎn)生的復(fù)用數(shù)字?jǐn)?shù)據(jù)和控制信號(hào)轉(zhuǎn)換成適合在PSTN上傳送的模擬形式。此外它還能使多媒體終端接收來(lái)自PSTN的模擬形式的數(shù)據(jù)和控制信號(hào),并且將其轉(zhuǎn)換成可以由終端以恰當(dāng)方式解復(fù)用和處理的數(shù)字?jǐn)?shù)據(jù)流。
H.324多媒體終端還可以采用這樣一種方式實(shí)施,其中所述終端可以直接連接到一個(gè)數(shù)字固定線路網(wǎng)絡(luò),例如ISDN(綜合業(yè)務(wù)數(shù)字網(wǎng))。在這種情況下,調(diào)制解調(diào)器91將會(huì)由ISDN用戶-網(wǎng)絡(luò)接口所取代。在圖8中,這個(gè)ISDN用戶-網(wǎng)絡(luò)接口是用替換單元92表示的。
H.324多媒體終端還適合在移動(dòng)通信應(yīng)用中使用。如果與無(wú)線通信鏈路結(jié)合使用,那么如圖8中的替換單元93所示,調(diào)制解調(diào)器91可以由任何適當(dāng)?shù)臒o(wú)線接口所取代。例如,H.324/M多媒體終端可以包括一個(gè)能夠連接到當(dāng)前的第二代GSM移動(dòng)電話網(wǎng)絡(luò)或是被建議的第三代UMTS(通用移動(dòng)電話系統(tǒng))的無(wú)線電收發(fā)信機(jī)。
應(yīng)該指出的是,在為雙向通信,也就是為了發(fā)送和接收視頻數(shù)據(jù)而設(shè)計(jì)的多媒體終端中,較為有利的是同時(shí)提供根據(jù)本發(fā)明的視頻編碼器和視頻解碼器。這種編碼器和解碼器對(duì)通常是作為單獨(dú)的組合功能單元實(shí)現(xiàn)的,并且通常將其稱為“編解碼器”。
現(xiàn)在將參考圖8來(lái)進(jìn)一步詳細(xì)描述典型的H.324多媒體終端。
多媒體終端80包括多種名為“終端設(shè)備”的部件。這其中包含了視頻/音頻和遠(yuǎn)程信息處理設(shè)備,它們分別是用參考數(shù)字81、82、83表示的。例如,視頻設(shè)備81可以包括一個(gè)用于捕獲視頻圖像的視頻攝像機(jī)、一個(gè)用于顯示接收到的視頻內(nèi)容的監(jiān)視器以及可選的視頻處理設(shè)備。音頻設(shè)備82通常包括一個(gè)用于獲取例如語(yǔ)音消息的麥克風(fēng),以及用于再現(xiàn)接收到的音頻內(nèi)容的揚(yáng)聲器。此外,所述音頻設(shè)備還可以包括附加的音頻處理單元。遠(yuǎn)程信息處理設(shè)備83可以包括數(shù)據(jù)終端、鍵盤(pán)、電子白板或是靜止圖像收發(fā)信機(jī),例如傳真單元。
視頻設(shè)備81與一個(gè)視頻編解碼器85相耦合。視頻編解碼器85包括依照本發(fā)明實(shí)施的視頻編碼器和相應(yīng)的視頻解碼器。在下文中將對(duì)這種編碼器和解碼器進(jìn)行描述。視頻編解碼器85負(fù)責(zé)以恰當(dāng)方式對(duì)捕獲的視頻數(shù)據(jù)進(jìn)行編碼,以便經(jīng)由通信鏈路來(lái)進(jìn)行進(jìn)一步傳送,此外所述解碼器還對(duì)從通信網(wǎng)絡(luò)接收的壓縮視頻內(nèi)容進(jìn)行解碼。在圖8描述的實(shí)例中,視頻編碼解碼器是依照ITU-T建議H.26L實(shí)施的,但是在其中進(jìn)行了恰當(dāng)修改,以便在視頻編解碼器的編碼器和解碼器中實(shí)施依照本發(fā)明的自適應(yīng)可變長(zhǎng)度編碼方法。
終端的音頻設(shè)備耦合到一個(gè)音頻編解碼器,在圖8中,所述音頻編解碼器是用參考數(shù)字86表示的。與視頻編解碼器相似,音頻編解碼器包括一個(gè)編碼器/解碼器對(duì)。它將終端音頻設(shè)備捕獲的音頻數(shù)據(jù)轉(zhuǎn)換成適合經(jīng)由通信鏈路傳送的形式,并且將那些從網(wǎng)絡(luò)接收的編碼音頻數(shù)據(jù)變回到適合在例如終端揚(yáng)聲器上再現(xiàn)的形式。音頻編解碼器的輸出傳遞到延遲單元87。該單元補(bǔ)償視頻編碼處理所引入的延遲,由此確保音頻和視頻內(nèi)容同步。
多媒體終端的系統(tǒng)控制單元84使用了一種恰當(dāng)?shù)目刂茀f(xié)議(信令單元84)來(lái)控制端到網(wǎng)絡(luò)的信號(hào)傳遞,以便在發(fā)射和接收終端之間建立一種常規(guī)操作模式。信令單元88交換的是關(guān)于發(fā)射和接收終端的編碼和解碼能力的信息,所述單元可用于啟用視頻編碼器的不同編碼模式。此外,系統(tǒng)控制單元84還對(duì)數(shù)據(jù)加密的應(yīng)用進(jìn)行控制。關(guān)于數(shù)據(jù)傳送中所用加密類型的信息則被從加密單元89傳遞到復(fù)用器/解復(fù)用器(MUX/DMUX單元)90。
在傳送源自多媒體終端的數(shù)據(jù)的過(guò)程中,MUX/DMUX單元90將經(jīng)過(guò)編碼和同步的視頻和音頻流與遠(yuǎn)程信息處理設(shè)備83輸出的數(shù)據(jù)以及可能出現(xiàn)的控制數(shù)據(jù)組合在一起,由此形成了一個(gè)單獨(dú)的比特流。由加密單元89提供的關(guān)于將要應(yīng)用于比特流的數(shù)據(jù)加密類型的信息則被用于選擇一種加密模式。相應(yīng)地,在接收到經(jīng)過(guò)復(fù)用并且可能經(jīng)過(guò)加密的多媒體比特流時(shí),MUX/DMUX單元90負(fù)責(zé)對(duì)比特流進(jìn)行解密,并且將其分解成它的多媒體組成分量,此外還將這些分量傳遞到一個(gè)或多個(gè)恰當(dāng)?shù)木幗獯a器和/或終端設(shè)備,以便進(jìn)行解碼和再現(xiàn)。
應(yīng)該指出的是,依照本發(fā)明的多媒體終端的功能部件、視頻編碼器/解碼器以及視頻編解碼器可以作為軟件或?qū)S糜布?shí)現(xiàn),此外也可以作為這二者的組合來(lái)加以實(shí)施。依照本發(fā)明的可變長(zhǎng)度編碼和解碼方尤其適合以計(jì)算機(jī)程序的形式實(shí)施,其中所述程序包含了用于執(zhí)行本發(fā)明的功能步驟的機(jī)器可讀指令。同樣,根據(jù)本發(fā)明的可變長(zhǎng)度編碼器和解碼器也可以作為存儲(chǔ)介質(zhì)上保存并在個(gè)人臺(tái)式機(jī)之類的計(jì)算機(jī)上執(zhí)行的軟件代碼來(lái)加以實(shí)現(xiàn)。
如果多媒體終端80是一個(gè)移動(dòng)終端,也就是說(shuō),所述終端配備了無(wú)線電收發(fā)信機(jī)93,那么本領(lǐng)域技術(shù)人員將會(huì)理解,所述終端也可以包括附加部件。在一個(gè)實(shí)施例中,它包含了具有顯示器和鍵盤(pán)的用戶接口,該接口允許用戶對(duì)多媒體終端80進(jìn)行操作,此外,所述終端還包含了諸如微處理器之類的對(duì)負(fù)責(zé)多媒體終端不同功能的單元進(jìn)行控制的中央處理單元,以及一個(gè)隨機(jī)存取存儲(chǔ)器RAM、一個(gè)只讀存儲(chǔ)器ROM和一個(gè)數(shù)碼攝像機(jī)。微處理器的操作指令是對(duì)應(yīng)于多媒體終端80的基本功能的程序代碼,它保存在只讀存儲(chǔ)器ROM中并且可以在需要的時(shí)候由微處理器執(zhí)行,例如在用戶的控制下加以執(zhí)行。根據(jù)所述程序代碼,微處理器使用無(wú)線電收發(fā)信機(jī)93來(lái)與移動(dòng)通信網(wǎng)絡(luò)建立連接,由此能使多媒體終端80經(jīng)由無(wú)線電路徑來(lái)向/從移動(dòng)通信網(wǎng)絡(luò)發(fā)射/接收信息。
微處理器監(jiān)視用戶接口狀態(tài)并對(duì)數(shù)字?jǐn)z像機(jī)進(jìn)行控制。響應(yīng)于用戶指令,微處理器指示攝像機(jī)將數(shù)字圖像記錄到RAM中。一旦捕獲了圖像或者可選地處于捕獲過(guò)程中,那么微處理器會(huì)將圖像分割成圖像分段(例如宏塊),并且使用編碼器來(lái)執(zhí)行所述分段的運(yùn)動(dòng)補(bǔ)償編碼,從而產(chǎn)生一個(gè)先前描述中記載的壓縮圖像序列。用戶可以命令多媒體終端80在其顯示器上顯示捕獲的圖像,也可以使用無(wú)線電收發(fā)信機(jī)93將經(jīng)過(guò)壓縮的圖像序列發(fā)送到另一個(gè)多媒體終端、與固定線路網(wǎng)絡(luò)(PSTN)相連的可視電話或者其它的電信設(shè)備。在一個(gè)優(yōu)選實(shí)施例中,一旦對(duì)第一個(gè)分段進(jìn)行了編碼,則開(kāi)始進(jìn)行圖像數(shù)據(jù)傳輸,由此接收方能在具有最小延遲的情況下開(kāi)始相應(yīng)的解碼處理。
權(quán)利要求
1.一種對(duì)數(shù)據(jù)符號(hào)集進(jìn)行編碼的方法,其中所述數(shù)據(jù)符號(hào)集包括具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào)以及值與所述第一數(shù)值不同的第二數(shù)量的數(shù)據(jù)符號(hào),其中將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集是從所述數(shù)據(jù)符號(hào)集中形成的,并且將可變長(zhǎng)度編碼應(yīng)用于所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集,其特征在于應(yīng)用于將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集的可變長(zhǎng)度編碼的至少一個(gè)特性是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而被適配的,并且還提供了經(jīng)過(guò)可變長(zhǎng)度編碼的符號(hào)的數(shù)目的一個(gè)指示,所述指示是一個(gè)表示將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,它是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)可替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
2.根據(jù)權(quán)利要求1的方法,其特征在于它是在一個(gè)比特流中發(fā)送到解碼設(shè)備的。
3.根據(jù)權(quán)利要求1或2的方法,其特征在于包括根據(jù)在至少一個(gè)先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)選擇一個(gè)可變長(zhǎng)度碼字,以便表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目。
4.根據(jù)權(quán)利要求3的方法,其特征在于包括基于在一個(gè)以上的先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的符號(hào)數(shù)目的均值來(lái)選擇一個(gè)可變長(zhǎng)度碼字,以便表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目。
5.根據(jù)權(quán)利要求1到4中任何一個(gè)權(quán)利要求的方法,其特征在于包括通過(guò)執(zhí)行一個(gè)定義值到碼字的分配關(guān)系的映射操作來(lái)選擇一個(gè)可變長(zhǎng)度碼字,以便表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目。
6.根據(jù)權(quán)利要求5的方法,其特征在于所述映射操作借助于一個(gè)映射表來(lái)執(zhí)行,其中所述映射表是映射表集合中的一個(gè)映射表,并且所述映射表是根據(jù)在至少一個(gè)先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)選擇的。
7.根據(jù)權(quán)利要求1或6中任何一個(gè)權(quán)利要求的方法,其特征在于它包括用一對(duì)數(shù)值來(lái)表示所述所述第二數(shù)量的數(shù)據(jù)符號(hào)中的每一個(gè)符號(hào),其中這對(duì)數(shù)值中包含表示數(shù)據(jù)符號(hào)值的第一數(shù)值以及表示所述數(shù)據(jù)符號(hào)之前或之后的零值數(shù)據(jù)符號(hào)數(shù)目的第二數(shù)值,由此形成了表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的第一和第二數(shù)值對(duì)的一個(gè)集合。
8.根據(jù)權(quán)利要求1到7中任何一個(gè)權(quán)利要求的方法,其特征在于包括執(zhí)行一個(gè)映射操作,在所述操作中為所述每一個(gè)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)都分配了一個(gè)碼字,由此形成表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的編碼值集合,該碼字是從一個(gè)碼字集合中選出的,其中對(duì)所述碼字集合進(jìn)行設(shè)計(jì),以便在所述映射操作中使用的時(shí)候減少表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)所需要的信息量。
9.根據(jù)權(quán)利要求8的方法,其特征在于,所述映射操作取決于數(shù)據(jù)符號(hào)的所述第二數(shù)量。
10.根據(jù)權(quán)利要求9的方法,其特征在于所述映射操作是如下執(zhí)行的選擇可選分配表集合中的一個(gè)分配表,其中所述可選分配表集合中每一個(gè)表都定義了將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)到碼字的分配關(guān)系,并且根據(jù)所述選定分配表定義的分配關(guān)系而將每一個(gè)將要進(jìn)行可變長(zhǎng)度編碼的所述符號(hào)分配給一個(gè)碼字。
11.根據(jù)權(quán)利要求1到10中任何一個(gè)權(quán)利要求的方法,其特征在于所述第一數(shù)量的數(shù)據(jù)符號(hào)是零值數(shù)據(jù)符號(hào),所述第二數(shù)量的數(shù)據(jù)符號(hào)是非零數(shù)據(jù)符號(hào)。
12.根據(jù)權(quán)利要求1到11中任何一個(gè)權(quán)利要求的方法,其特征在于所述數(shù)據(jù)符號(hào)集是一個(gè)量化變換系數(shù)值集合。
13.一種用于對(duì)表示數(shù)據(jù)符號(hào)集的可變長(zhǎng)度碼字進(jìn)行解碼的方法,其中所述數(shù)據(jù)符號(hào)集包括具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào)以及值不同于所述第一數(shù)值的第二數(shù)量的數(shù)據(jù)符號(hào),并且所述數(shù)據(jù)符號(hào)集是通過(guò)從所述數(shù)據(jù)符號(hào)集中形成一個(gè)將要進(jìn)行可變長(zhǎng)度編碼的數(shù)據(jù)符號(hào)集合來(lái)進(jìn)行編碼的,所述可變長(zhǎng)度碼字是通過(guò)將可變長(zhǎng)度編碼應(yīng)用于所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集形成的,其特征在于應(yīng)用于可變長(zhǎng)度碼字的解碼的至少一個(gè)特性是根據(jù)進(jìn)行了可變長(zhǎng)度編碼的符號(hào)集中的符號(hào)數(shù)目的指示來(lái)適配,所述指示是一個(gè)表示進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,它是根據(jù)進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)可替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
14.根據(jù)權(quán)利要求13的方法,其特征在于,所述符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)數(shù)目的指示是從一個(gè)編碼設(shè)備中接收的。
15.根據(jù)權(quán)利要求13或14的方法,其特征在于包括根據(jù)在至少一個(gè)先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)對(duì)表示所述進(jìn)行了可變長(zhǎng)度編碼的符號(hào)數(shù)目的可變長(zhǎng)度碼字進(jìn)行解碼。
16.根據(jù)權(quán)利要求15的方法,其特征在于包括根據(jù)在一個(gè)以上的先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)的數(shù)目的均值來(lái)對(duì)表示所述進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字進(jìn)行解碼。
17.根據(jù)權(quán)利要求13到16中任何一個(gè)權(quán)利要求的方法,其特征在于包括通過(guò)執(zhí)行定義碼字到數(shù)值的分配關(guān)系的反向映射操作來(lái)對(duì)表示所述進(jìn)行了可變長(zhǎng)度編碼的符號(hào)數(shù)目的可變長(zhǎng)度碼字進(jìn)行解碼。
18.根據(jù)權(quán)利要求17的方法,其特征在于,所述反向映射操作是借助于一個(gè)映射表執(zhí)行的,其中所述映射表是映射表集合中的一個(gè)映射表,并且所述映射表是基于在至少一個(gè)先前編碼的數(shù)據(jù)符號(hào)集中執(zhí)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)選擇的。
19.根據(jù)權(quán)利要求13到18中任何一個(gè)權(quán)利要求的方法,其特征在于進(jìn)行了可變長(zhǎng)度編碼的所述數(shù)量的符號(hào)中的每一個(gè)符號(hào)都是由一對(duì)數(shù)值表示的,這對(duì)數(shù)值中包含了表示數(shù)據(jù)符號(hào)值的第一數(shù)值以及表示所述數(shù)據(jù)符號(hào)之前或之后的零值數(shù)據(jù)符號(hào)數(shù)目的第二數(shù)值,所述第一和第二數(shù)值對(duì)表示的是所述進(jìn)行了可變長(zhǎng)度編碼的符號(hào)。
20.根據(jù)權(quán)利要求13到19中任何一個(gè)權(quán)利要求的方法,其特征在于包括執(zhí)行一個(gè)反向映射操作,其中使用了每一個(gè)可變長(zhǎng)度碼字來(lái)識(shí)別進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)集中的一個(gè)特定符號(hào)。
21.根據(jù)權(quán)利要求20的方法,其特征在于,所述反向映射操作依賴于進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)集中的所述數(shù)據(jù)符號(hào)的第二數(shù)量的指示。
22.根據(jù)權(quán)利要求21的方法,其特征在于所述反向映射操作是如下執(zhí)行的選擇可選分配表集合中的一個(gè)分配表,其中所述可選分配表集合中每一個(gè)表都定義了將要被編碼的符號(hào)到碼字的分配關(guān)系,并且根據(jù)所述選定分配表定義的分配關(guān)系來(lái)識(shí)別進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)中的一個(gè)特定符號(hào)。
23.根據(jù)權(quán)利要求13到22中任何一個(gè)權(quán)利要求的方法,其特征在于所述第一數(shù)量的數(shù)據(jù)符號(hào)是零值數(shù)據(jù)符號(hào),所述第二數(shù)量的數(shù)據(jù)符號(hào)是非零數(shù)據(jù)符號(hào)。
24.一種用于對(duì)數(shù)據(jù)符號(hào)集進(jìn)行編碼的編碼器,其中所述數(shù)據(jù)符號(hào)集包括具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào)以及值與所述第一數(shù)值不同的第二數(shù)量的數(shù)據(jù)符號(hào),其中將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集被安排為從所述數(shù)據(jù)符號(hào)集中形成,并且編碼器包含了用于對(duì)將要進(jìn)行可變長(zhǎng)度編碼的所述符號(hào)集進(jìn)行可變長(zhǎng)度編碼的編碼裝置,其特征在于,編碼器被安排為根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)數(shù)目對(duì)應(yīng)用于將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集的可變長(zhǎng)度編碼的至少一個(gè)特性進(jìn)行適配,并且進(jìn)一步被安排為提供一個(gè)關(guān)于進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的指示,所述指示是一個(gè)表示將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,它是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)可替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
25.根據(jù)權(quán)利要求24的編碼器,其特征在于,它被安排為形成一個(gè)比特流,其中包含了將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目的所述指示。
26.根據(jù)權(quán)利要求24或25的編碼器,其特征在于,它被安排為將所述比特流發(fā)送到解碼設(shè)備。
27.根據(jù)權(quán)利要求24、25或26的編碼器,其特征在于,它被安排為根據(jù)在至少一個(gè)先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)選擇一個(gè)可變長(zhǎng)度碼字,以便表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目。
28.根據(jù)權(quán)利要求27的編碼器,其特征在于,它被安排為基于在一個(gè)以上的先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的符號(hào)數(shù)目的均值來(lái)選擇一個(gè)可變長(zhǎng)度碼字,以便表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目。
29.根據(jù)權(quán)利要求24到28中任何一個(gè)權(quán)利要求的編碼器,其特征在于,它被安排為通過(guò)執(zhí)行一個(gè)定義值到碼字的分配關(guān)系的映射操作來(lái)選擇一個(gè)可變長(zhǎng)度碼字,以便表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目。
30.根據(jù)權(quán)利要求29的編碼器,其特征在于它被安排為借助于一個(gè)映射表來(lái)執(zhí)行所述映射操作,其中所述映射表是映射表集合中的一個(gè)映射表,此外它還被安排為根據(jù)在至少一個(gè)先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)選擇所述映射表。
31.根據(jù)權(quán)利要求24到30中任何一個(gè)權(quán)利要求的編碼器,其特征在于它被安排為用一對(duì)數(shù)值來(lái)表示所述所述第二數(shù)量的數(shù)據(jù)符號(hào)中的每一個(gè)符號(hào),其中這對(duì)數(shù)值中包含了表示數(shù)據(jù)符號(hào)值的第一數(shù)值以及表示所述數(shù)據(jù)符號(hào)之前或之后的零值數(shù)據(jù)符號(hào)數(shù)目的第二數(shù)值,由此形成了表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的第一和第二數(shù)值對(duì)的一個(gè)集合。
32.根據(jù)權(quán)利要求24到32中任何一個(gè)權(quán)利要求的編碼器,其特征在于它被安排為執(zhí)行一個(gè)映射操作,其中為所述每一個(gè)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)都分配了一個(gè)碼字,由此形成表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的編碼值的集合,該碼字是從一個(gè)碼字集合中選出的,并且其中對(duì)所述碼字集合進(jìn)行了設(shè)計(jì),以便在所述映射操作中使用的時(shí)候減少表示所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)所需要的信息量。
33.根據(jù)權(quán)利要求32的編碼器,其特征在于所述映射操作被安排為依賴于數(shù)據(jù)符號(hào)的所述第二數(shù)量。
34.根據(jù)權(quán)利要求33的編碼器,其特征在于所述映射操作被安排為如下執(zhí)行選擇可選分配表集合中的一個(gè)分配表,其中所述可選分配表集合中每一個(gè)表都定義了將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)到碼字的分配關(guān)系,并且根據(jù)所述選定分配表定義的分配關(guān)系而將第二數(shù)量數(shù)據(jù)符號(hào)中的每個(gè)符號(hào)分配給一個(gè)碼字。
35.根據(jù)權(quán)利要求24到34中任何一個(gè)權(quán)利要求的編碼器,其特征在于所述第數(shù)量的數(shù)據(jù)符號(hào)是零值數(shù)據(jù)符號(hào),所述第二數(shù)量的數(shù)據(jù)符號(hào)是非零數(shù)據(jù)符號(hào)。
36.根據(jù)權(quán)利要求24到35中任何一個(gè)權(quán)利要求的編碼器,其特征在于所述編碼器是在一個(gè)視頻編碼器中提供的。
37.根據(jù)權(quán)利要求24到36中任何一個(gè)權(quán)利要求的編碼器,其特征在于所述編碼器是作為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上保存的機(jī)器可執(zhí)行代碼來(lái)實(shí)現(xiàn)的。
38.一種用于對(duì)表示數(shù)據(jù)符號(hào)集的可變長(zhǎng)度碼字進(jìn)行解碼的解碼器,所述數(shù)據(jù)符號(hào)集包括具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào)以及值不同于所述第一數(shù)值的第二數(shù)量的數(shù)據(jù)符號(hào),并且所述數(shù)據(jù)符號(hào)集是通過(guò)形成一個(gè)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集合來(lái)進(jìn)行編碼的,所述可變長(zhǎng)度碼字是通過(guò)將可變長(zhǎng)度編碼應(yīng)用于所述將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集來(lái)形成的,其特征在于所述解碼器被安排為根據(jù)進(jìn)行了可變長(zhǎng)度編碼的符號(hào)集中的符號(hào)數(shù)目的指示對(duì)應(yīng)用于可變長(zhǎng)度碼字的解碼的至少一個(gè)特性進(jìn)行適配,所述指示是一個(gè)表示進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,它是根據(jù)進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)可替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。
39.根據(jù)權(quán)利要求38的解碼器,其特征在于所述符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)數(shù)目的指示是從一個(gè)編碼設(shè)備中接收的。
40.根據(jù)權(quán)利要求38或39的解碼器,其特征在于它被安排為根據(jù)在至少一個(gè)先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)對(duì)表示所述進(jìn)行了可變長(zhǎng)度編碼的符號(hào)數(shù)目的可變長(zhǎng)度碼字進(jìn)行解碼。
41.根據(jù)權(quán)利要求40的解碼器,其特征在于它被安排為根據(jù)在一個(gè)以上的先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)的數(shù)目的均值來(lái)對(duì)表示所述進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字進(jìn)行解碼。
42.根據(jù)權(quán)利要求38到41中任何一個(gè)權(quán)利要求的解碼器,其特征在于它被安排為通過(guò)執(zhí)行定義了碼字到數(shù)值的分配關(guān)系的反向映射操作來(lái)對(duì)表示所述進(jìn)行了可變長(zhǎng)度編碼的符號(hào)數(shù)目的可變長(zhǎng)度碼字進(jìn)行解碼。
43.根據(jù)權(quán)利要求42的解碼器,其特征在于,它被安排為借助于一個(gè)映射表來(lái)執(zhí)行所述反向映射操作,其中所述映射表是映射表集合中的一個(gè)映射表,此外它還被安排為基于在至少一個(gè)先前編碼的數(shù)據(jù)符號(hào)集中進(jìn)行了可變長(zhǎng)度編碼的符號(hào)的數(shù)目來(lái)選擇所述映射表。
44.根據(jù)權(quán)利要求38到43中任何一個(gè)權(quán)利要求的解碼器,其特征在于它被安排為對(duì)表示數(shù)據(jù)符號(hào)的可變長(zhǎng)度碼字進(jìn)行解碼,其中所述符號(hào)都包含了一對(duì)數(shù)值,這其中包括表示數(shù)據(jù)符號(hào)值的第一數(shù)值以及表示所述數(shù)據(jù)符號(hào)之前或之后的零值數(shù)據(jù)符號(hào)數(shù)目的第二數(shù)值。
45.根據(jù)權(quán)利要求38到44中任何一個(gè)權(quán)利要求的解碼器,其特征在于它被安排為通過(guò)執(zhí)行一個(gè)反向映射操作來(lái)對(duì)所述可變長(zhǎng)度碼字進(jìn)行解碼,在所述反向映射操作中使用了每一個(gè)可變長(zhǎng)度碼字來(lái)識(shí)別進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)集中的一個(gè)特定符號(hào)。
46.根據(jù)權(quán)利要求45的解碼器,其特征在于它被安排為根據(jù)所述數(shù)據(jù)符號(hào)集中的所述數(shù)據(jù)符號(hào)的第二數(shù)量的指示來(lái)執(zhí)行所述反向映射操作。
47.根據(jù)權(quán)利要求46的解碼器,其特征在于它被安排為如下執(zhí)行所述反向映射操作選擇可選分配表集合中的一個(gè)分配表,其中所述可選分配表集合中每一個(gè)表都定義了已進(jìn)行可變長(zhǎng)度編碼的符號(hào)到碼字的分配關(guān)系,并且根據(jù)所述選定分配表定義的分配關(guān)系來(lái)識(shí)別進(jìn)行了可變長(zhǎng)度編碼的所述符號(hào)中的一個(gè)特定符號(hào)。
48.根據(jù)權(quán)利要求38到47中任何一個(gè)權(quán)利要求的解碼器,其特征在于,所述第一數(shù)量的數(shù)據(jù)符號(hào)是零值數(shù)據(jù)符號(hào),所述第二數(shù)量的數(shù)據(jù)符號(hào)是非零數(shù)據(jù)符號(hào)。
49.根據(jù)權(quán)利要求38到48中任何一個(gè)權(quán)利要求的解碼器,其特征在于所述解碼器是在一個(gè)視頻解碼器中提供的。
50.根據(jù)權(quán)利要求38到48中任何一個(gè)權(quán)利要求的解碼器,其特征在于所述解碼器是作為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上保存的機(jī)器可執(zhí)行代碼實(shí)現(xiàn)的。
51.一種多媒體終端,其中包含了根據(jù)權(quán)利要求24到37中任何一個(gè)權(quán)利要求的編碼器。
52.一種多媒體終端,其中包含了根據(jù)權(quán)利要求38到50中任何一個(gè)權(quán)利要求的解碼器。
53.根據(jù)權(quán)利要求40或41的多媒體終端,其特征在于所述終端是一個(gè)移動(dòng)多媒體終端,它被安排為借助于無(wú)線電連接來(lái)與移動(dòng)電信網(wǎng)絡(luò)進(jìn)行通信。
全文摘要
本發(fā)明涉及一種可變長(zhǎng)度編碼方法,其中數(shù)據(jù)符號(hào)集包含了具有第一數(shù)值的第一數(shù)量的數(shù)據(jù)符號(hào)以及值與第一數(shù)值不同的第二數(shù)量的數(shù)據(jù)符號(hào),其中將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集是從所述數(shù)據(jù)符號(hào)集中形成的,并且將可變長(zhǎng)度編碼應(yīng)用于這個(gè)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集。依照本方法,應(yīng)用于將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)集的可變長(zhǎng)度編碼的至少一個(gè)特性是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而被適配的,并且在這里還提供了經(jīng)過(guò)可變長(zhǎng)度編碼的符號(hào)的數(shù)目的一個(gè)指示。根據(jù)本發(fā)明,所述指示是一個(gè)表示將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目的可變長(zhǎng)度碼字,它是根據(jù)將要進(jìn)行可變長(zhǎng)度編碼的符號(hào)的數(shù)目而從至少兩個(gè)可替換的可變長(zhǎng)度碼字集合中的一個(gè)集合中選出的。本發(fā)明還涉及一種相應(yīng)的可變長(zhǎng)度解碼方法,以及一種實(shí)施根據(jù)本發(fā)明的編碼和解碼方法的編碼器和解碼器。
文檔編號(hào)H04N7/50GK1620816SQ03802549
公開(kāi)日2005年5月25日 申請(qǐng)日期2003年1月22日 優(yōu)先權(quán)日2002年1月22日
發(fā)明者M·卡策維茨, R·庫(kù)爾切倫 申請(qǐng)人:諾基亞有限公司