專(zhuān)利名稱(chēng):基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及靜止圖像和視頻序列壓縮,尤其涉及一種基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼方法和系統(tǒng)。
背景技術(shù):
未壓縮形式的數(shù)字圖像包含了一個(gè)圖像像素或圖元的陣列。例如,在一種以四分之一通用中間格式(QCIF)著稱(chēng)的常用數(shù)字圖像格式中,圖像或幀包含了排列在一個(gè)176×144像素的陣列中的25,344個(gè)像素。每個(gè)像素依次由一定數(shù)量的比特表示,它們傳送的是關(guān)于像素明亮度(亮度)和/或顏色(色度)的信息。此外還存在表示數(shù)字圖像中的亮度和/或色度的不同方案。通常使用的則是所謂的YUV顏色模型。其中亮度或Y分量表示像素亮度,并且像素顏色由U和V標(biāo)記的兩個(gè)色度或色差分量來(lái)表示。此外還通常用到那些以表示光的三原色的分量為基礎(chǔ)的其他顏色模型,例如RGB(紅,綠,藍(lán))顏色模型。然而,與基于原色的顏色模型相比,基于亮度/色度表示的顏色模型則更具優(yōu)勢(shì)。這些優(yōu)勢(shì)源自于人類(lèi)視覺(jué)系統(tǒng)更易于感受到光亮變化而不是顏色變化的特性。而YUV顏色模型通常為色度分量(U,V)使用了一個(gè)低于亮度分量(Y)的空間分辨率,由此利用了這種特性。這樣就可以在不顯著降低所察覺(jué)圖像質(zhì)量的情況下減少表示圖像色彩信息所需要的信息量。
色度分量的較低空間分辨率通常是借助于二次抽樣來(lái)實(shí)現(xiàn)的。通常,一個(gè)16×16圖像像素的塊由四個(gè)包含了亮度信息的8×8像素的塊表示,相應(yīng)色度分量分別由一個(gè)8×8像素的塊來(lái)表示,其中所述塊表示一個(gè)與亮度分量中的16×16像素的塊等價(jià)的圖像區(qū)域。因此色度分量在x和y方向上由一個(gè)大小為2的因數(shù)來(lái)進(jìn)行空間二次抽樣。最終得到的四個(gè)8×8像素的亮度塊以及2個(gè)在空間上與之對(duì)應(yīng)的8×8像素的色度塊的組合通常稱(chēng)為一個(gè)YUV宏塊,或者簡(jiǎn)稱(chēng)為宏塊。而QCIF圖像包括11×9個(gè)宏塊。如果用8位(也就是0到255這個(gè)范圍中的數(shù)字)分辨率來(lái)表示亮度塊和色度塊,那么,用于表示與每個(gè)宏塊相關(guān)聯(lián)的亮度和色度信息所需要的總比特?cái)?shù)為6×(8×8×8)=3072比特。因此,用于表示QCIF格式圖像所需要的比特?cái)?shù)為99×3072=304,128比特。
應(yīng)該了解的是,即使是在如上所述使用一個(gè)大小為2的因數(shù)來(lái)對(duì)數(shù)字圖像的兩個(gè)色度分量進(jìn)行二次抽樣的情況下,中等大小(例如174×144像素)的未壓縮圖像也會(huì)需要大量比特來(lái)供顯示所用。這意味著以未壓縮格式保存數(shù)字圖像所需要的存儲(chǔ)器數(shù)量將會(huì)過(guò)度。此外,舉例來(lái)說(shuō),如果經(jīng)由一個(gè)具有中等或較低可用帶寬的數(shù)據(jù)通信網(wǎng)絡(luò)來(lái)傳送靜止圖像,那么傳輸時(shí)間將會(huì)很長(zhǎng)或者網(wǎng)絡(luò)有可能會(huì)發(fā)生阻塞。如果希望實(shí)時(shí)發(fā)送作為數(shù)字視頻序列的一系列圖像,那么帶寬需求甚至?xí)鼮閲?yán)格。例如,以每秒30幀的速率傳送一個(gè)使用了YUV顏色模型表示并包括一系列未壓縮QCIF格式圖像的數(shù)字序列需要用到9Mb/s(百萬(wàn)比特/秒)以上的帶寬。由于需要很大的存儲(chǔ)器容量、傳輸信道容量和硬件性能,因此,在被用于視頻記錄、傳輸和顯示時(shí),這種高數(shù)據(jù)速率通常是不切實(shí)際的。如果要在ISDN(綜合業(yè)務(wù)數(shù)字網(wǎng))或PSTN(公共交換電話網(wǎng))這類(lèi)固定線路上實(shí)時(shí)傳送視頻序列,那么可用數(shù)據(jù)傳輸帶寬通常約為64k/s。在移動(dòng)可視電話中,至少有一部分傳輸是在無(wú)線電通信鏈路上進(jìn)行的,那么可用帶寬有可能會(huì)低到20kb/s。這意味著必須顯著減少用于表示視頻數(shù)據(jù)的信息量,以便能在低帶寬的通信網(wǎng)絡(luò)上傳輸數(shù)字圖像或視頻序列。然而合乎需要的是,這種減少應(yīng)該在不顯著降低圖像/視頻序列質(zhì)量的情況下實(shí)現(xiàn)。
在過(guò)去數(shù)年中已經(jīng)針對(duì)減少表示數(shù)字圖像和視頻序列所需數(shù)據(jù)量而進(jìn)行了大量的研究工作,由此開(kāi)發(fā)了多種不同方案和國(guó)際標(biāo)準(zhǔn)來(lái)對(duì)數(shù)字靜止圖像和數(shù)字視頻進(jìn)行壓縮。在現(xiàn)有的幾乎所有靜止圖像和視頻編碼器中,所使用的基本的圖像壓縮方法都包含了基于塊的變換編碼。通常,變換編碼是將來(lái)自一個(gè)包含像素值的圖示的圖像數(shù)據(jù)轉(zhuǎn)換成一種包含一組系數(shù)值的形式,其中每一個(gè)系數(shù)值都是所論述變換的基函數(shù)的一個(gè)加權(quán)因數(shù)(乘數(shù))。此外還可以顯示,在典型的數(shù)字圖像內(nèi)部存在相當(dāng)大程度的空間冗余。事實(shí)上,這意味著圖像內(nèi)部任何像素值通常與其緊鄰的其他像素值實(shí)際是相同的,也就是說(shuō),在像素值間存在很大程度上的相關(guān)。此外進(jìn)一步已知的是,在對(duì)圖像執(zhí)行某些數(shù)學(xué)變換,例如二維離散余弦變換(DCT)的時(shí)候,這種空間冗余度將會(huì)顯著降低,由此產(chǎn)生一個(gè)更為簡(jiǎn)潔的圖像數(shù)據(jù)顯示。
在JPEG靜止圖像編碼中使用的基于塊的變換編碼例如,在根據(jù)廣泛使用的JPEG標(biāo)準(zhǔn)的基準(zhǔn)模式所執(zhí)行的靜止圖像壓縮中,所要編碼的圖像首先分成互不重疊的方形塊陣列,其中舉例來(lái)說(shuō),每一個(gè)塊都包括一個(gè)8×8的圖像像素陣列。然后,就JPEG基準(zhǔn)而言則是將二維離散余弦變換(DCT)獨(dú)立應(yīng)用于每一個(gè)圖像塊。這樣做具有把來(lái)自像素值域的圖像數(shù)據(jù)轉(zhuǎn)換到空間頻域并產(chǎn)生一組相應(yīng)系數(shù)值的效果,其中每個(gè)系數(shù)值都是一個(gè)關(guān)于二維DCT基函數(shù)的加權(quán)因數(shù)。由此產(chǎn)生的系數(shù)值經(jīng)過(guò)量化,然后使用熵編碼而以一種無(wú)損方式對(duì)其進(jìn)行編碼,從而進(jìn)一步減少供其顯示所需要的數(shù)據(jù)量(也就是比特?cái)?shù))。根據(jù)JPEG基準(zhǔn),熵編碼器只使用了霍夫曼編碼來(lái)產(chǎn)生一個(gè)壓縮比特流,但在其他模式中也可以使用算術(shù)編碼。最終,用于描述圖像和編碼參數(shù)(例如壓縮類(lèi)型、量化和編碼表、圖像大小等等)的數(shù)據(jù)被嵌入熵編碼器產(chǎn)生的比特流中。而由于JPEG標(biāo)準(zhǔn)包括四種備選編碼模式并且只對(duì)可用的量化和編碼表安插了少量約束條件,因而有必要執(zhí)行上述操作,以便能在不同平臺(tái)之間互換JPEG壓縮比特流并且在毫無(wú)歧義的情況下重建圖像。
類(lèi)似膠片上所記錄的常規(guī)電影這樣的數(shù)字視頻序列包括一系列靜止圖像(通常稱(chēng)之為“幀”),而運(yùn)動(dòng)錯(cuò)覺(jué)則是通過(guò)以通常為每秒15到30幀這樣的相對(duì)較快的速率相繼顯示所述幀而產(chǎn)生的。與任何靜止圖像一樣,在一個(gè)數(shù)字視頻序列內(nèi)部,單獨(dú)幀的像素值將會(huì)顯示出相當(dāng)大的空間冗余。因此,與單獨(dú)的靜止圖像一樣,數(shù)字視頻序列的幀也可以由基于塊的變換編碼來(lái)進(jìn)行處理。
同樣,視頻序列相鄰幀的圖像往往是相似的,因此,在某個(gè)視頻幀與下一視頻幀之間,整體上的變化是非常小的。這意味著在典型數(shù)字視頻序列內(nèi)部存在相當(dāng)大的時(shí)間冗余。例如,在一個(gè)場(chǎng)景中可以包括諸如背景景物之類(lèi)的某些靜止元素,也可以包括某些運(yùn)動(dòng)區(qū)域,例如新聞廣播員面部。在序列的相鄰幀中,背景可能保持不變,而場(chǎng)景中的唯一運(yùn)動(dòng)則由新聞廣播員面部表情的變化產(chǎn)生。因此,在形成視頻序列的壓縮表示時(shí),除了減少空間冗余的方法之外,也可以使用那些減少序列中圖像數(shù)據(jù)時(shí)間冗余的技術(shù),由此實(shí)現(xiàn)進(jìn)一步的數(shù)據(jù)壓縮。
混合視頻編碼器/解碼器現(xiàn)有技術(shù)的視頻編碼系統(tǒng)使用了一種以運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)著稱(chēng)的技術(shù)來(lái)減少視頻序列中的時(shí)間冗余。就這種運(yùn)動(dòng)補(bǔ)償技術(shù)而言,在數(shù)字視頻序列中,某些(通常很多)幀的圖像內(nèi)容是從序列中的一個(gè)或多個(gè)其他幀“預(yù)測(cè)”的,其中所述其他幀即為通常所說(shuō)的“參考幀”。圖像內(nèi)容的預(yù)測(cè)是通過(guò)使用“運(yùn)動(dòng)矢量”在將要編碼的幀與一個(gè)或多個(gè)參考幀之間追蹤一個(gè)圖像中的對(duì)象或區(qū)域來(lái)實(shí)現(xiàn)的。一般來(lái)說(shuō),在視頻序列中,一個(gè)或多個(gè)參考幀可以先于將要編碼的幀或是跟隨在所述幀之后。然而,從本文的后續(xù)論述中可以明顯看出,將運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)應(yīng)用于視頻序列的所有幀并由此在現(xiàn)有技術(shù)的視頻編碼系統(tǒng)中使用至少兩種類(lèi)型的編碼,這樣做并不適當(dāng)(或者可能)。
使用運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)而被壓縮的視頻序列幀通常稱(chēng)為幀間編碼或P幀。光是運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)則很難提供足夠清楚的視頻幀圖像內(nèi)容表示,因此通常有必要為各個(gè)幀內(nèi)編碼的幀提供一個(gè)所謂的“預(yù)測(cè)誤差”(PE)幀。如本文稍后更為詳細(xì)描述的那樣,預(yù)測(cè)誤差幀表示的是幀間編碼幀的解碼版本與編碼幀圖像內(nèi)容之間的差別。更具體地說(shuō),預(yù)測(cè)誤差幀包含了表示將要編碼的幀的像素值與基于所論述幀的預(yù)測(cè)(幀間編碼)版本而形成的對(duì)應(yīng)重建像素值之間的差別。因此,預(yù)測(cè)誤差幀具有與靜止圖像相似的特征,并且可以通過(guò)應(yīng)用基于塊的變換編碼來(lái)減少表示該幀所需要的數(shù)據(jù)量(比特?cái)?shù))。
沒(méi)有使用運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)壓縮的視頻序列幀被稱(chēng)為幀內(nèi)(幀內(nèi))編碼或I幀。通常,幀內(nèi)編碼幀是借助了將基于塊的變換編碼應(yīng)用于所要編碼幀的像素值而產(chǎn)生的。另外在可能的情況下,幀內(nèi)編碼幀的塊是從同一幀以內(nèi)的先前編碼塊中預(yù)測(cè)的。這種技術(shù)即為通常所說(shuō)的幀間預(yù)測(cè),它具有進(jìn)一步減少表示幀內(nèi)-編碼幀所需要的數(shù)據(jù)量的效果。
為了更詳細(xì)地描述基于塊的變換編碼和運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的原理,現(xiàn)在將對(duì)
圖1加以參考,該圖是常規(guī)混合視頻編碼器的示意圖,其中使用了幀內(nèi)與幀間編碼的組合來(lái)產(chǎn)生一個(gè)壓縮(編碼)視頻比特流。在圖2中描述了相應(yīng)的解碼器并且稍后將在文中對(duì)其進(jìn)行描述。
視頻編碼器300包括一個(gè)用于從相機(jī)或其他視頻源(未顯示)接收數(shù)字視頻信號(hào)的輸入端301。它還可以包括一個(gè)調(diào)整為執(zhí)行基于塊的離散余弦變換(DCT)的變換單元304,一個(gè)量化器306,一個(gè)反向量化器308,一個(gè)調(diào)整成執(zhí)行基于塊的反離散預(yù)先變換(IDCT)的逆變換單元310,組合器312和316以及一個(gè)幀存儲(chǔ)器320。編碼器還包括運(yùn)動(dòng)估計(jì)器330,運(yùn)動(dòng)場(chǎng)編碼器(motion field encoder)340以及運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)器350。開(kāi)關(guān)302和314則是通過(guò)控制管理器360在視頻編碼的幀內(nèi)模式與視頻編碼的幀間模式之間切換編碼器而以協(xié)同方式進(jìn)行操作的。編碼器300還包括視頻復(fù)用編碼器370,它從編碼器300生成的各種類(lèi)型信息中構(gòu)成單獨(dú)比特流335,以便進(jìn)一步傳輸?shù)竭h(yuǎn)程接收終端,或者舉例來(lái)說(shuō),它也可以將所述比特流保存在一個(gè)大容量存儲(chǔ)介質(zhì)中,例如計(jì)算機(jī)硬盤(pán)(沒(méi)有顯示)。
編碼器300是如下運(yùn)作的。視頻源提供給輸入端301的各個(gè)未壓縮視頻幀都是以逐個(gè)宏塊的方式接收和處理的,其中最好以光柵掃描順序來(lái)對(duì)其進(jìn)行處理。在開(kāi)始編碼新的視頻序列時(shí),所述序列中的第一幀是作為一個(gè)幀內(nèi)編碼幀來(lái)編碼的。接下來(lái),除非滿足下列條件之一,否則將通過(guò)對(duì)編碼器進(jìn)行編程來(lái)以幀間編碼格式編碼各幀1)判定正被編碼的當(dāng)前幀與預(yù)測(cè)中使用的參考幀很不一樣,并由此產(chǎn)生了過(guò)多預(yù)測(cè)誤差信息;2)預(yù)先定義的幀內(nèi)幀的重復(fù)間隔已經(jīng)終止;或者3)從一個(gè)接收終端接收到一個(gè)反饋,該反饋表示的是一個(gè)要求以幀內(nèi)編碼格式來(lái)提供幀的請(qǐng)求。
條件1)的出現(xiàn)是通過(guò)監(jiān)視組合器316的輸出來(lái)檢測(cè)的。組合器316在正被編碼幀的當(dāng)前宏塊與其在運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)部件350中產(chǎn)生的預(yù)測(cè)之間形成一個(gè)差值。如果關(guān)于這個(gè)差值的量度(例如像素值的絕對(duì)差值總和)超出一個(gè)預(yù)定門(mén)限,那么組合器316將經(jīng)由控制線319來(lái)向控制管理器360發(fā)出通知,并且控制管理器360將經(jīng)由控制線313來(lái)操作開(kāi)關(guān)302和314,以便將編碼器300切換到幀內(nèi)編碼模式。條件2)的出現(xiàn)是借助于控制管理器360中的定時(shí)器或幀計(jì)數(shù)器而以如下方式進(jìn)行監(jiān)視,如果定時(shí)器終止或者幀計(jì)數(shù)器達(dá)到預(yù)定數(shù)量的幀,則控制管理器360經(jīng)由控制線313操作開(kāi)關(guān)302和314,以便將編碼器切換到幀內(nèi)編碼模式。如果控制管理器360經(jīng)由控制線321而從一個(gè)接收終端接收到一個(gè)表示接收終端需要對(duì)幀內(nèi)編碼幀進(jìn)行刷新的反饋信號(hào),則觸發(fā)條件3)。例如,如果先前發(fā)送的幀在其傳送過(guò)程中因?yàn)楦蓴_而受到嚴(yán)重破壞,進(jìn)而不可能在接收機(jī)上對(duì)其進(jìn)行解碼,則有可能出現(xiàn)這種情況。在這種條件下,接收解碼器發(fā)出一個(gè)要求以幀內(nèi)編碼格式來(lái)對(duì)下一幀進(jìn)行編碼的請(qǐng)求,由此重新初始化所述編碼序列。
現(xiàn)在對(duì)幀內(nèi)編碼模式中的編碼器300的操作進(jìn)行描述。在幀內(nèi)編碼模式中,控制管理器360對(duì)開(kāi)關(guān)302進(jìn)行操作,以便從輸入線318接收視頻輸入。視頻信號(hào)則是以逐個(gè)宏塊的方式并經(jīng)由輸入線318而從輸入端301接收的。在對(duì)其進(jìn)行接收的時(shí)候,構(gòu)成宏塊的亮度和色度值塊傳遞到DCT變換單元304,所述單元對(duì)每一個(gè)塊值執(zhí)行一個(gè)二維離散余弦變換,由此為各個(gè)塊產(chǎn)生一個(gè)二維DCT系數(shù)陣列。舉例來(lái)說(shuō),在前述情況中,每一個(gè)宏塊都包括4個(gè)8×8的亮度值塊以及兩個(gè)在空間上與之對(duì)應(yīng)的8×8像素的色度值塊,而DCT變換部件304則為每個(gè)塊產(chǎn)生一個(gè)8×8的系數(shù)值陣列。
關(guān)于各個(gè)塊的DCT系數(shù)傳遞到量化器306,在所述量化器306中使用量化參數(shù)QP對(duì)其進(jìn)行量化。關(guān)于量化參數(shù)QP的選擇是經(jīng)由控制線315并由控制管理器360來(lái)控制的。由于經(jīng)過(guò)量化的系數(shù)的數(shù)值精度低于DCT變化單元304初始生成的系數(shù)的數(shù)值精度,因此所述量化會(huì)引入一個(gè)信息損失。這樣就提供了另外一種借以減少表示視頻序列中各個(gè)圖像所需數(shù)據(jù)量的機(jī)制。然而,與實(shí)質(zhì)無(wú)損的DCT變換所不同,通過(guò)量化引入的信息損失會(huì)導(dǎo)致圖像質(zhì)量的不可逆降級(jí)。應(yīng)用于DCT系數(shù)的量化程度越高,圖像質(zhì)量的損失也就越大。
如圖1的線路325所示,對(duì)每一個(gè)塊來(lái)說(shuō),其經(jīng)過(guò)量化的DCT系數(shù)將從量化器306傳遞到視頻復(fù)用編碼器370。視頻復(fù)用編碼器370使用一個(gè)Z字形掃描過(guò)程來(lái)對(duì)各個(gè)塊的變換系數(shù)進(jìn)行排序。這個(gè)操作是將經(jīng)過(guò)量化的變換系數(shù)的二維陣列轉(zhuǎn)換到一個(gè)一維陣列中。如圖3所示的典型的Z字形掃描大致是以空間頻率遞增的順序來(lái)對(duì)系數(shù)進(jìn)行排序的。此外,所述操作往往還根據(jù)系數(shù)值來(lái)對(duì)其進(jìn)行排序,以使一維陣列中位置較早的系數(shù)更有可能比陣列中位置靠后的系數(shù)具有更大絕對(duì)值。這是因?yàn)樵趫D像塊內(nèi)部,較低的空間頻率往往具有較高的幅度。因此,在經(jīng)過(guò)量化的變換系數(shù)的一維陣列中,末尾的那些值通常為零。
DCT變換系數(shù)的游程-等級(jí)(run-level)編碼通常,視頻復(fù)用編碼器370使用了名為等級(jí)(level)和游程(run)的兩個(gè)值來(lái)表示一維陣列中經(jīng)過(guò)量化的各個(gè)非零系數(shù)。等級(jí)是經(jīng)過(guò)量化的系數(shù)的值,而游程則是所論述系數(shù)之前的連續(xù)零值系數(shù)數(shù)目。關(guān)于給定系數(shù)的游程和等級(jí)的值經(jīng)過(guò)排序而使得等級(jí)的值是在相關(guān)的游程值之前。而與零相等的等級(jí)值則用于表示所述塊中沒(méi)有非零系數(shù)。這個(gè)大小為0的等級(jí)值稱(chēng)為EOB(塊結(jié)束)符號(hào)。
熵編碼通過(guò)使用熵編碼,在視頻復(fù)用器370中進(jìn)一步對(duì)游程和等級(jí)的值進(jìn)行了編碼。所述熵編碼是一個(gè)無(wú)損操作,它利用的是所編碼數(shù)據(jù)集內(nèi)部符號(hào)通常具有不同出現(xiàn)概率這一事實(shí)。這樣一來(lái),通過(guò)指派一個(gè)可變數(shù)字,可以用具有更少比特的碼字來(lái)表示更有可能出現(xiàn)的符號(hào),而不是使用固定數(shù)量的比特來(lái)表示每個(gè)符號(hào)。因此,熵編碼通常稱(chēng)為可變長(zhǎng)度編碼(VLC)。由于某些等級(jí)和游程比其他值更有可能出現(xiàn),因此可以有效使用熵編碼技術(shù)來(lái)減少表示游程和等級(jí)的值所需要的比特?cái)?shù)目。在這里可以使用多種不同方法來(lái)實(shí)施熵編碼。例如,游程和等級(jí)參數(shù)的熵編碼可以借助于定義所編碼數(shù)據(jù)集中各個(gè)可能符號(hào)與相應(yīng)可變長(zhǎng)度碼之間映射的查找表實(shí)施。這種查找表通常是通過(guò)對(duì)訓(xùn)練資料進(jìn)行統(tǒng)計(jì)分析而被定義的,其中所述訓(xùn)練資料與所編碼符號(hào)包含相同符號(hào)并具有相似統(tǒng)計(jì)特性。此外還有一種名為算術(shù)編碼的替換技術(shù),它可用于將游程和等級(jí)值轉(zhuǎn)換成可變長(zhǎng)度碼字。例如,在對(duì)一組符號(hào)進(jìn)行算術(shù)編碼時(shí),用于對(duì)轉(zhuǎn)換系數(shù)塊進(jìn)行量化的游程與等級(jí)值是作為一個(gè)浮點(diǎn)型的十進(jìn)制數(shù)來(lái)編碼的。
一旦使用了恰當(dāng)方法來(lái)對(duì)游程和等級(jí)值進(jìn)行熵編碼,則視頻復(fù)用編碼器進(jìn)一步將其與控制信息結(jié)合,此外還使用了一種適于所論述信息類(lèi)型的可變長(zhǎng)度編碼方法來(lái)進(jìn)行熵編碼,從而形成編碼圖像信息335的單獨(dú)壓縮比特流。
宏塊的本地解碼版本也是在編碼器300中形成的。這個(gè)操作是通過(guò)將量化器306輸出的關(guān)于各個(gè)塊的量化變換系數(shù)經(jīng)由反向量化器308以及在逆變換單元310中應(yīng)用一種反向DCT變換來(lái)完成的。這樣一來(lái),重建的像素陣列是為所述宏塊中的各個(gè)塊構(gòu)造的。最終得到的圖像數(shù)據(jù)輸入到組合器312。在幀內(nèi)編碼模式中對(duì)開(kāi)關(guān)314進(jìn)行設(shè)定,以使經(jīng)由開(kāi)關(guān)314到達(dá)組合器312的輸入為零。這樣一來(lái),組合器312執(zhí)行的操作等價(jià)于傳遞那些沒(méi)有發(fā)生變化的解碼圖像數(shù)據(jù)。
在接收到當(dāng)前幀的宏塊并對(duì)宏塊執(zhí)行了單元304、306、308、310和312中的前述編碼和解碼步驟的時(shí)候,在幀存儲(chǔ)器320中構(gòu)造幀內(nèi)編碼幀的解碼版本。在對(duì)當(dāng)前幀的最后一個(gè)宏塊執(zhí)行了幀內(nèi)編碼和后續(xù)解碼之后,幀存儲(chǔ)器320將會(huì)包含一個(gè)完全解碼的幀,在以幀間編碼格式編碼后續(xù)接收的視頻幀的過(guò)程中,所述完全解碼的幀可以用作一個(gè)預(yù)測(cè)參考幀。
現(xiàn)在對(duì)幀間編碼模式中的編碼器300的操作進(jìn)行描述。在幀間編碼模式中,控制管理器360通過(guò)操作開(kāi)關(guān)302來(lái)從線路317接收其輸入,其中包含了組合器316的輸出。組合器316以宏塊方式從輸入端301中接收視頻輸入信號(hào)。在組合器316接收到構(gòu)成宏塊的亮度和色度值的塊的時(shí)候,它會(huì)形成相應(yīng)的預(yù)測(cè)誤差信息塊。所述預(yù)測(cè)誤差信息表示的是所論述的塊與運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元350中產(chǎn)生的其預(yù)測(cè)值之間的差值。更具體地說(shuō),關(guān)于宏塊中各個(gè)塊的預(yù)測(cè)誤差信息包括所述值的二維陣列,其中每一個(gè)值表示的都是所編碼亮度或色度信息塊中一個(gè)像素值與依照下述過(guò)程而為所述塊形成的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)所獲取的解碼像素值之間的差值。因此,在每個(gè)宏塊都包括8×8像素的亮度值塊以及兩個(gè)在空間上與之對(duì)應(yīng)的8×8像素的色度值塊的情況下,關(guān)于宏塊的預(yù)測(cè)誤差信息也包括四個(gè)8×8的亮度預(yù)測(cè)誤差值塊,以及兩個(gè)在空間上與之對(duì)應(yīng)的8×8的色度預(yù)測(cè)誤差值塊。
關(guān)于宏塊中各個(gè)塊的預(yù)測(cè)誤差信息被傳遞到DCT變換單元304,所述單元對(duì)每個(gè)預(yù)測(cè)值塊執(zhí)行一個(gè)二維離散余弦變換,以便為每一個(gè)塊都產(chǎn)生一個(gè)DCT變換系數(shù)的二維陣列。因此,在關(guān)于各個(gè)宏塊的預(yù)測(cè)誤差信息包含四個(gè)8×8的亮度預(yù)測(cè)誤差值塊以及兩個(gè)在空間上與之對(duì)應(yīng)的8×8的色度預(yù)測(cè)誤差值塊的情況下,DCT轉(zhuǎn)換單元304為每個(gè)預(yù)測(cè)誤差塊產(chǎn)生一個(gè)8×8的變換系數(shù)值陣列。關(guān)于各個(gè)預(yù)測(cè)誤差塊的變換系數(shù)則被傳遞到量化器306,其中使用一個(gè)量化參數(shù)QP并以一種與上文中結(jié)合幀內(nèi)模式中的編碼器操作所描述的方式相似的方式來(lái)對(duì)其進(jìn)行量化。同樣,關(guān)于量化參數(shù)QP的選擇是由控制管理器360通過(guò)控制線315來(lái)進(jìn)行控制的。
經(jīng)過(guò)量化的DCT系數(shù)表示的是宏塊中各個(gè)塊的預(yù)測(cè)誤差信息,如圖1中的線路325所示,這些系數(shù)從量化器306傳遞到視頻復(fù)用器370。與幀內(nèi)編碼模式一樣,視頻復(fù)用編碼器370使用了前述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ù)用編碼器370還經(jīng)由線路326從運(yùn)動(dòng)場(chǎng)編碼單元340中接收運(yùn)動(dòng)矢量信息,并且從控制管理器360中接收控制信息。該編碼器對(duì)運(yùn)動(dòng)矢量信息進(jìn)行熵編碼,并且形成一個(gè)單獨(dú)的編碼圖像信息比特流335,所述比特流中包含了經(jīng)過(guò)熵編碼的運(yùn)動(dòng)矢量、預(yù)測(cè)誤差和控制信息。
經(jīng)過(guò)量化的DCT系數(shù)表示的是宏塊中各個(gè)塊的預(yù)測(cè)誤差信息,這些系數(shù)也是從量化器306傳遞到反向量化器308。在這里對(duì)其進(jìn)行反向量化并且將最終得到的反向量化DCT系數(shù)應(yīng)用于反向DCT變換單元310,其中在所述單元中對(duì)其進(jìn)行DCT變換,以便產(chǎn)生局部解碼的預(yù)測(cè)誤差值塊。然后,經(jīng)過(guò)局部解碼的預(yù)測(cè)誤差值塊輸入到組合器312中。在幀間編碼模式中將對(duì)開(kāi)關(guān)314進(jìn)行設(shè)置,以使組合器312還接收關(guān)于運(yùn)動(dòng)補(bǔ)償單元350產(chǎn)生的宏塊中各個(gè)塊的預(yù)測(cè)像素值。組合器312將預(yù)測(cè)誤差值的每一個(gè)局部解碼塊與相應(yīng)的預(yù)測(cè)像素值塊相結(jié)合,以便產(chǎn)生重建圖像塊并將其存入幀存儲(chǔ)器320。
由于視頻信號(hào)的宏塊是從視頻源接收并且經(jīng)過(guò)先前所述的單元304、306、308、310和312中的編碼和解碼步驟,因此幀內(nèi)編碼幀的解碼版本是在幀存儲(chǔ)器320中構(gòu)造的。在對(duì)視頻信號(hào)的最后一個(gè)宏塊執(zhí)行了幀內(nèi)編碼和后續(xù)解碼之后,幀存儲(chǔ)器320包含一個(gè)完全解碼的幀,所述幀可以在用幀間編碼格式解碼后續(xù)接收的視頻幀的過(guò)程中充當(dāng)一個(gè)預(yù)測(cè)參考幀。
現(xiàn)在描述的是為當(dāng)前幀的一個(gè)宏塊產(chǎn)生預(yù)測(cè)。任何一個(gè)以幀間編碼格式編碼的幀都需要一個(gè)用于運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的參考幀。這意味著在對(duì)視頻序列進(jìn)行編碼的過(guò)程中,無(wú)論將要編碼的第一幀是序列中的第一個(gè)幀還是其他幀,都有必要采用幀間編碼格式來(lái)對(duì)其進(jìn)行編碼。而這轉(zhuǎn)而意味著當(dāng)控制管理器36將視頻編碼器300切換到幀間編碼模式時(shí),通過(guò)對(duì)先前形成的編碼幀進(jìn)行解碼,由此形成的完整參考幀已經(jīng)可以在編碼器的幀存儲(chǔ)器320中使用。通常,參考幀是通過(guò)對(duì)幀內(nèi)編碼幀或幀間編碼幀進(jìn)行局部解碼來(lái)形成的。
在為當(dāng)前幀的一個(gè)宏塊生成預(yù)測(cè)的過(guò)程中,第一個(gè)步驟是由運(yùn)動(dòng)估計(jì)單元330執(zhí)行的。運(yùn)動(dòng)估計(jì)單元330經(jīng)由線路328來(lái)接收那些構(gòu)成所編碼的幀的亮度和色度值塊。然后,它執(zhí)行一個(gè)塊匹配操作,以便識(shí)別參考幀中實(shí)質(zhì)對(duì)應(yīng)于當(dāng)前宏塊的一個(gè)區(qū)域。為了執(zhí)行所述塊匹配操作,運(yùn)動(dòng)現(xiàn)場(chǎng)估計(jì)單元經(jīng)由線路327來(lái)訪問(wèn)幀存儲(chǔ)器320中保存的參考幀數(shù)據(jù)。更具體地說(shuō),運(yùn)動(dòng)估計(jì)單元330是通過(guò)對(duì)表示受檢查宏塊與候選最佳像素匹配區(qū)域間像素值差別的不同數(shù)值(例如絕對(duì)差值之和)進(jìn)行計(jì)算來(lái)執(zhí)行塊匹配的,其中所述最佳像素匹配區(qū)域來(lái)源于幀存儲(chǔ)器320中保存的參考幀。在參考幀的預(yù)定搜索范圍以內(nèi),針對(duì)所有可能偏移上的偏移而計(jì)算了一個(gè)差值,并且運(yùn)動(dòng)估計(jì)單元330確定了最小的計(jì)算差值。當(dāng)前幀的宏塊與產(chǎn)生最小差值的參考幀的候選像素值塊之間的偏移則定義了關(guān)于所討論的宏塊的運(yùn)動(dòng)矢量。
一旦運(yùn)動(dòng)估計(jì)單元330為宏塊產(chǎn)生了運(yùn)動(dòng)矢量,則其將運(yùn)動(dòng)矢量輸出到運(yùn)動(dòng)場(chǎng)編碼單元340。所述運(yùn)動(dòng)場(chǎng)編碼單元340使用一個(gè)包含一組基函數(shù)和運(yùn)動(dòng)系數(shù)的運(yùn)動(dòng)模型來(lái)對(duì)從運(yùn)動(dòng)估計(jì)單元330接收的運(yùn)動(dòng)矢量進(jìn)行近似估計(jì)。更具體地說(shuō),運(yùn)動(dòng)場(chǎng)編碼單元340將運(yùn)動(dòng)矢量表示為一組運(yùn)動(dòng)系數(shù)值,其中在將這些值與基函數(shù)相乘的時(shí)候則形成了運(yùn)動(dòng)矢量的一個(gè)近似值。通常,一個(gè)平移運(yùn)動(dòng)模型只具有兩個(gè)運(yùn)動(dòng)系數(shù)并且在這里使用了基函數(shù)。
運(yùn)動(dòng)系數(shù)從運(yùn)動(dòng)場(chǎng)編碼單元340傳遞到運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元350。運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元350還從幀存儲(chǔ)器320中接收運(yùn)動(dòng)估計(jì)單元330識(shí)別的像素值的最佳匹配候選區(qū)域。通過(guò)使用運(yùn)動(dòng)場(chǎng)編碼單元340產(chǎn)生的運(yùn)動(dòng)矢量的近似表示以及來(lái)自參考幀的像素最佳匹配候選區(qū)域的像素值,運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)塊350為宏塊中的每一個(gè)塊都產(chǎn)生一個(gè)預(yù)測(cè)像素值的陣列。每一個(gè)預(yù)測(cè)像素值塊都傳遞到組合器316,在所述組合器中則將對(duì)應(yīng)于當(dāng)前宏塊的塊中的實(shí)際(輸入)像素值與預(yù)測(cè)像素值相減。這樣就得到了一組關(guān)于宏塊的預(yù)測(cè)誤差塊。
現(xiàn)在對(duì)圖2所示的視頻解碼器400的操作進(jìn)行描述。解碼器400包括一個(gè)從編碼器300接收編碼比特流并將其解復(fù)用成其組成部分的視頻復(fù)用解碼器470,一個(gè)反向量化器410,一個(gè)反向DCT變換器420,一個(gè)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元440,一個(gè)幀存儲(chǔ)器450,一個(gè)組合器430,一個(gè)控制管理器460以及一個(gè)輸出端480。
控制管理器460對(duì)所解碼的是幀內(nèi)編碼幀或幀間編碼幀做出響應(yīng),從而對(duì)解碼器400的操作進(jìn)行控制。幀內(nèi)/幀間觸發(fā)控制信號(hào)將導(dǎo)致解碼器在解碼模式中進(jìn)行切換,其中舉例來(lái)說(shuō),所述信號(hào)是在從編碼器接收的各個(gè)壓縮視頻幀的報(bào)頭部分所提供的圖像類(lèi)型信息中導(dǎo)出的。幀內(nèi)/幀間觸發(fā)控制信號(hào)由視頻復(fù)用解碼器470從編碼視頻比特流中提取并且經(jīng)由控制線422傳遞到控制管理器460。
幀內(nèi)編碼幀的解碼是以一個(gè)接一個(gè)的宏塊為基礎(chǔ)來(lái)執(zhí)行的,其中實(shí)際上每一個(gè)宏塊都是在一識(shí)別出接收視頻比特流335中與之相關(guān)的編碼信息的時(shí)候就被解碼的。視頻復(fù)用解碼器470首先從涉及所論述宏塊的可能控制信息中分離那些關(guān)于宏塊中的塊的編碼信息。而關(guān)于幀內(nèi)編碼宏塊中各個(gè)塊的編碼信息包括可變長(zhǎng)度碼字。這些碼字表示的是用于塊中非零量化DCT系數(shù)的熵編碼的等級(jí)和游程值。視頻復(fù)用解碼器410使用一種可變長(zhǎng)度解碼方法來(lái)對(duì)可變長(zhǎng)度碼字進(jìn)行解碼,由此恢復(fù)等級(jí)和游程值,其中所述方法與編碼器300中使用的編碼方法相對(duì)應(yīng)。然后,所述解碼器為宏塊中的各個(gè)塊重建量化變換系數(shù)陣列并且將其傳遞到反向量化器410。此外還在視頻解復(fù)用器中使用了一種恰當(dāng)?shù)目勺冮L(zhǎng)度解碼方法來(lái)對(duì)涉及宏塊的任何控制信息進(jìn)行解碼,并且將其傳遞到控制管理器460。特別地,與應(yīng)用于變換系數(shù)的量化等級(jí)相關(guān)的信息由視頻復(fù)用解碼器470從編碼比特流中提取并且經(jīng)由控制線424提供到控制管理器460??刂乒芾砥鬓D(zhuǎn)而經(jīng)由控制線415將這個(gè)信息傳遞到反向量化器420。反向量化器410根據(jù)控制信息來(lái)為宏塊中的各個(gè)塊反向量化那些量化過(guò)的DCT系數(shù),并且將現(xiàn)在進(jìn)行了反向量化的DCT系數(shù)提供給反向DCT變換器420。
反向DCT變換器420對(duì)用于宏塊中各個(gè)塊的反向量化DCT系數(shù)執(zhí)行反向DCT變換,以便形成一個(gè)包含重建像素值并經(jīng)過(guò)解碼的圖像信息塊。由于在幀內(nèi)編碼宏塊的編碼/解碼中并未使用運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),因此控制管理器460以一種防止在幀內(nèi)編碼宏塊的解碼中使用任何參考信息的方式來(lái)控制組合器430。關(guān)于宏塊中各個(gè)塊的重建像素值則傳遞到解碼器的視頻輸出端480,其中舉例來(lái)說(shuō),可以將所述值提供給一個(gè)顯示設(shè)備(沒(méi)有顯示)。此外,關(guān)于宏塊的各個(gè)塊的重建像素值還保存在幀存儲(chǔ)器450中。由于對(duì)幀內(nèi)編碼幀的后續(xù)宏塊進(jìn)行解碼和保存,因而在幀存儲(chǔ)器450中逐漸匯聚出一個(gè)解碼幀,并且由此可以將所述幀充當(dāng)一個(gè)參考幀,以便在與后續(xù)接收的幀間編碼幀的解碼相關(guān)聯(lián)的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用。
幀間編碼幀也是以逐個(gè)宏塊的方式來(lái)解碼的,實(shí)際上,每一個(gè)幀間編碼宏塊都是在從接收比特流中識(shí)別到與之相關(guān)的編碼信息的時(shí)候就被解碼的。視頻復(fù)用解碼器470從編碼運(yùn)動(dòng)矢量信息和涉及所論述宏塊的可能控制信息中分離出關(guān)于幀間編碼宏塊各個(gè)塊的編碼預(yù)測(cè)誤差信息。如上所述,用于宏塊中各個(gè)塊的編碼預(yù)測(cè)誤差信息包括可變長(zhǎng)度代碼字,它表示的是用于所述預(yù)測(cè)誤差塊的非零量化變換系數(shù)熵編碼的等級(jí)和游程值。視頻復(fù)用解碼器470使用一種可變長(zhǎng)度解碼方法來(lái)對(duì)可變長(zhǎng)度碼字進(jìn)行解碼,由此恢復(fù)等級(jí)和游程值,其中所述方法與編碼器300中使用的編碼方法相對(duì)應(yīng)。然后所述解碼器重建一個(gè)關(guān)于宏塊中各個(gè)塊的量化變換系數(shù)陣列并且將其傳遞到反向量化器410。此外,在視頻復(fù)用解碼器中也使用了一種恰當(dāng)?shù)目勺冮L(zhǎng)度編碼方法來(lái)對(duì)涉及幀間編碼宏塊的控制信息進(jìn)行解碼,并且所述信息則傳遞到控制管理器460。與應(yīng)用于預(yù)測(cè)誤差塊的變換系數(shù)的量化等級(jí)相關(guān)聯(lián)的信息則是從編碼比特流中提取的,并且所述信息是經(jīng)由控制線424提供到控制管理器460的??刂乒芾砥?60轉(zhuǎn)而經(jīng)由控制線415將這個(gè)信息傳遞到反向量化器420。反向量化器420根據(jù)控制信息來(lái)對(duì)這些表示宏塊中各個(gè)塊的量化DCT系數(shù)進(jìn)行反向量化,并且將現(xiàn)在反向量化的DCT系數(shù)提供給反向量化器420。然后則在反向DCT變換器420中對(duì)表示各個(gè)塊的預(yù)測(cè)誤差信息的反向量化DCT系數(shù)進(jìn)行反變換,以便為宏塊中的每一個(gè)塊生成一個(gè)重新建立的預(yù)測(cè)誤差值的陣列。
涉及宏塊的編碼運(yùn)動(dòng)矢量信息由視頻復(fù)用解碼器470從編碼視頻比特流335中提取并且是使用一種恰當(dāng)?shù)目勺冮L(zhǎng)度解碼方法而被解碼的。由此得到的解碼運(yùn)動(dòng)矢量經(jīng)由數(shù)據(jù)線426傳遞到運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元440,其中所述單元使用了一個(gè)與編碼器300中編碼所述幀間編碼宏塊所用運(yùn)動(dòng)模型相同的運(yùn)動(dòng)模型來(lái)為宏塊重建一個(gè)運(yùn)動(dòng)矢量。重建的運(yùn)動(dòng)矢量與編碼器的運(yùn)動(dòng)估計(jì)單元330最初確定的運(yùn)動(dòng)矢量相似。解碼器的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元440則使用重建的運(yùn)動(dòng)矢量而在幀存儲(chǔ)器450保存的預(yù)測(cè)參考幀中識(shí)別重建像素區(qū)域的位置。例如,參考幀可以是一個(gè)先前解碼的幀內(nèi)編碼幀,也可以是一個(gè)先前解碼的幀間編碼幀。但不論出現(xiàn)哪種情況,重建運(yùn)動(dòng)矢量指示的像素區(qū)域都被用于形成一個(gè)所論述宏塊的預(yù)測(cè)。更具體地說(shuō),運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元440通過(guò)從參考幀中識(shí)別的像素區(qū)域拷貝相應(yīng)的像素值來(lái)形成一個(gè)關(guān)于宏塊中各個(gè)塊的像素值陣列。而所述預(yù)測(cè)則是從參考幀中導(dǎo)出的像素值塊,它從運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)單元440傳遞到組合器430,在那里它與經(jīng)過(guò)解碼的預(yù)測(cè)誤差信息相結(jié)合。在實(shí)踐中,每個(gè)預(yù)測(cè)塊的像素值都被添加到反向DCT變換器420輸出的相應(yīng)重建預(yù)測(cè)誤差值中。由此可以得到關(guān)于宏塊中各個(gè)塊的重建像素值陣列。重建的像素值則傳遞到解碼器的視頻輸出端480并且保存在幀存儲(chǔ)器450中。由于解碼和保存了幀間編碼幀的宏塊,因此在幀存儲(chǔ)器450中逐漸匯聚成一個(gè)解碼幀,由此所述解碼幀作為一個(gè)參考幀而在其他幀間編碼幀的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用。
H.26L視頻編碼標(biāo)準(zhǔn)ITU-T建議H.26L是國(guó)際電聯(lián)開(kāi)發(fā)的視頻編碼標(biāo)準(zhǔn)族中的最新標(biāo)準(zhǔn)。特別地,這個(gè)標(biāo)準(zhǔn)旨在以通常小于64kb/s的低比特率來(lái)進(jìn)行視頻編碼,因此所述標(biāo)準(zhǔn)特別適合對(duì)經(jīng)由那些需要優(yōu)先考慮如何最佳使用可用帶寬的無(wú)線通信網(wǎng)或任何固定線路通信網(wǎng)所傳送的數(shù)字視頻進(jìn)行編碼。ITU-T H.26L定義的視頻編碼系統(tǒng)是一個(gè)混合視頻編碼系統(tǒng),它是根據(jù)如上所述與圖1和2所述的通用視頻編碼器300和解碼器400相結(jié)合的一般原則來(lái)運(yùn)作的。特別地,依照H.26L實(shí)現(xiàn)的視頻編碼系統(tǒng)使用的是將基于塊的變換編碼與運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)相結(jié)合,從而減少視頻序列中的空間和時(shí)間冗余。
H.26L建議的最新版本即為通常所說(shuō)的Test Model 8(TML8),在“H.26L Test Model Long Term Number 8(TML-8)draft 0”(ITU-T電信標(biāo)準(zhǔn)化部分,研究組16,視頻編碼專(zhuān)家小組)中對(duì)其進(jìn)行了描述,這個(gè)版本的建議規(guī)定了兩種備選的熵編碼模式。在第一種(缺省)模式中使用了所謂的通用可變長(zhǎng)度編碼(UVLC)方法來(lái)對(duì)所有語(yǔ)法元素進(jìn)行編碼。UVLC編碼模式是一種查找表方法,其中在不考慮所論述信息類(lèi)型的情況下用同一組可變長(zhǎng)度碼字來(lái)表示視頻編碼器產(chǎn)生的所有不同類(lèi)型的信息。而在所謂的“高復(fù)雜度類(lèi)(profile)”中指定使用的備選熵編碼方法是一種以基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)而著稱(chēng)的技術(shù)。這種方法是一種持續(xù)適應(yīng)于編碼信息統(tǒng)計(jì)性質(zhì)的二進(jìn)制算術(shù)編碼形式,并且在現(xiàn)有技術(shù)中作為最有效的熵編碼形式中的一種而聞名(參見(jiàn)H.Witten、R.M.Neal與J.G.Cleary在1987年6月發(fā)表于Commun.ACM第30卷第520~540頁(yè)的“Arithmetic coding for data compression”一文)。
由于UVLC熵編碼使用了同一組可變長(zhǎng)度碼字來(lái)表示視頻編碼器生成的所有類(lèi)型的信息,因此所述碼字的統(tǒng)計(jì)性質(zhì)通常并沒(méi)有最佳匹配于將要編碼的信息特征。例如,用于表示為幀內(nèi)編碼圖像塊的量化DCT系數(shù)的特定游程和等級(jí)值的出現(xiàn)頻率很可能與涉及量化參數(shù)值的控制信息中的值的出現(xiàn)情況不同。在H.26L中引入了CABAC熵編碼方法,以便克服UVLC熵編碼方法所固有的次優(yōu)特性。如本文中先前所述,算術(shù)編碼表示的是一個(gè)將要用單獨(dú)的可變長(zhǎng)度碼(浮點(diǎn)數(shù))來(lái)進(jìn)行編碼的符號(hào)群。與獨(dú)立編碼各個(gè)符號(hào)的熵編碼方法相比,這種方法提供了特有的優(yōu)點(diǎn)。具體地說(shuō),獨(dú)立編碼各個(gè)符號(hào)的熵編碼方法至少需要使用一個(gè)比特來(lái)表示各個(gè)符號(hào)。由于算術(shù)編碼表示的是具有單個(gè)碼字的符號(hào)群,因而有可能實(shí)現(xiàn)小于1比特/秒的數(shù)據(jù)壓縮速率。因此,H.26L中提供的CABAC方法還有可能提高數(shù)據(jù)壓縮。此外,由于所述方法是一種自適應(yīng)方法,因此它能夠考慮到所編碼信息的統(tǒng)計(jì)特征變化,由此確保即使所編碼數(shù)據(jù)性質(zhì)發(fā)生某種程度的變化,也能夠保持?jǐn)?shù)據(jù)壓縮性能。
基于上下文的算術(shù)編碼如上所述,CABAC算術(shù)編碼是一種熵編碼方法,它能適應(yīng)于所編碼信息的變化統(tǒng)計(jì)。這樣一來(lái),與假設(shè)固定統(tǒng)計(jì)特性的熵編碼技術(shù)相比,所述方法能夠提供改善的壓縮效率。圖4描述的是一種示范性的基于上下文的二進(jìn)制算術(shù)編碼器700。CABAC是一種二進(jìn)制算術(shù)編碼方法,因此,所要編碼的具有非二進(jìn)制序列的數(shù)據(jù)符號(hào)首先在二進(jìn)制映射單元710中轉(zhuǎn)換成二進(jìn)制值(“二進(jìn)制化”)。所述二進(jìn)制化處理包括將所要編碼的符號(hào)映射到一個(gè)二進(jìn)制序列(bin),其中每一個(gè)二進(jìn)制序列都具有一個(gè)相應(yīng)的二進(jìn)制序列編號(hào)并且可以賦予一個(gè)值0或1。以下在表1中給出了這種映射的一個(gè)實(shí)例。但是原則上也可以設(shè)想使用其它二進(jìn)制化方案。
在CABAC方法中,每一個(gè)二進(jìn)制序列都指派給一個(gè)所謂的“上下文”(基于上下文的算術(shù)編碼由此得名)。一個(gè)上下文可以視為是集中在一起并具有相似統(tǒng)計(jì)特征的二進(jìn)制序列。換句話說(shuō),在這里假設(shè)對(duì)指派給上下文的每一個(gè)二進(jìn)制序列來(lái)說(shuō),其包含數(shù)值1或0的概率與屬于所述上下文的其他二進(jìn)制序列相似。這樣一來(lái),用于在算術(shù)編碼器中產(chǎn)生碼字的概率估計(jì)是為每一個(gè)上下文而不是將要編碼的每個(gè)
表1可能的二進(jìn)制序列定義的。每個(gè)上下文都是依照一個(gè)“上下文模型”定義的,并且所述上下文是基于將要編碼的數(shù)據(jù)符號(hào)(由此為二進(jìn)制序列)的統(tǒng)計(jì)特征信息而被預(yù)先建立的。通常,如果將0的出現(xiàn)概率與1的出現(xiàn)概率之間的差值增至最大,則會(huì)提高二進(jìn)制算術(shù)編碼器所能實(shí)現(xiàn)的數(shù)據(jù)壓縮比率。同樣,基于上下文的算術(shù)編碼性能還取決于上下文模型的選擇。通常,這意味著應(yīng)該選擇那些能使指派給每個(gè)上下文的二進(jìn)制序列的0和1的出現(xiàn)概率間的差值達(dá)到最大的上下文模型。
在圖4所述的示范性的基于上下文的算術(shù)編碼器中,一旦在二進(jìn)制映射單元719二進(jìn)制化所要編碼的符號(hào),則在上下文指派單元720中將其指派給一個(gè)相應(yīng)的上下文。然后則將指派給相應(yīng)二進(jìn)制序列(也就是1或0)的值傳遞到算術(shù)編碼器730。隨后,算術(shù)編碼器730的編碼引擎750使用一個(gè)指派了二進(jìn)制序列的上下文的概率估計(jì)來(lái)對(duì)二進(jìn)制序列的數(shù)值進(jìn)行編碼。在這里,作為算術(shù)編碼器實(shí)現(xiàn)的數(shù)據(jù)壓縮比的性能依賴于概率估計(jì)的精度。從原則上講,所述估計(jì)可以是固定或自適應(yīng)的。如果使用固定概率估計(jì),則關(guān)于上下文的概率估計(jì)將被指派給預(yù)定值并且在編碼處理中保持不變。固定概率估計(jì)通常是通過(guò)對(duì)與所要編碼的實(shí)際資料具有相似統(tǒng)計(jì)特征的訓(xùn)練資料進(jìn)行分析而被預(yù)先得到的。如果使用了自適應(yīng)概率估計(jì),則使用固定值來(lái)為各個(gè)上下文初始化概率估計(jì),并且根據(jù)那些至此為止經(jīng)過(guò)編碼的數(shù)據(jù)(二進(jìn)制序列)的實(shí)際統(tǒng)計(jì)特征而在整個(gè)編碼處理中更新所述概率。執(zhí)行自適應(yīng)編碼估計(jì)通常會(huì)更好,因?yàn)樗鼈兛梢赃m應(yīng)所要編碼的資料。
圖4所示的示范性的基于上下文的算術(shù)編碼器使用了自適應(yīng)概率估計(jì)并且包括一個(gè)對(duì)經(jīng)過(guò)更新的概率估計(jì)進(jìn)行計(jì)算的概率估計(jì)單元740。每一個(gè)上下文的概率估計(jì)則是通過(guò)記錄指派給各個(gè)上下文的各個(gè)二進(jìn)制序列中1和0的出現(xiàn)次數(shù)來(lái)更新的。例如,對(duì)指派給任意上下文k的二進(jìn)制序列來(lái)說(shuō),如果為其指派了m次值0并且為其指派了n次值1,那么,對(duì)上下文k中的1來(lái)說(shuō),其概率估計(jì)是n/(n(m+1)),對(duì)于0來(lái)說(shuō),其概率估計(jì)則是(m+1)/(n(m+1))。
圖5描述的是與結(jié)合圖4所描述的編碼器相對(duì)應(yīng)的基于上下文的算術(shù)編碼器。在輸入端810,基于上下文的算術(shù)解碼器接收一個(gè)表示經(jīng)過(guò)算術(shù)編碼的數(shù)據(jù)符號(hào)的比特流。一開(kāi)始,根據(jù)先前接收的解碼符號(hào),在上下文指派單元850中計(jì)算一個(gè)上下文并且更新二進(jìn)制序列值的概率估計(jì)。在這里,上下文指派單元850執(zhí)行的上下文指派與概率估計(jì)單元830執(zhí)行的關(guān)于概率估計(jì)的計(jì)算都是使用與編碼器相同的方法來(lái)完成的。然后,接收到的比特饋送到算術(shù)編碼器820的算術(shù)編碼引擎840中,在那里使用計(jì)算得到的上下文以及二進(jìn)制序列值的當(dāng)前概率估計(jì)來(lái)將其轉(zhuǎn)換成解碼的二進(jìn)制序列值。在二進(jìn)制序列-數(shù)值映射單元860中,經(jīng)過(guò)解碼的二進(jìn)制序列映射到游程和等級(jí)的值。
在H.26L中使用的CABAC方法現(xiàn)在將對(duì)ITU-T建議H.26L中選定用于高復(fù)雜度類(lèi)的CABAC算術(shù)編碼方法的細(xì)節(jié)進(jìn)行詳細(xì)描述。根據(jù)H.26L TML 8,游程和等級(jí)值的上下文依賴于所編碼的塊類(lèi)型以及二進(jìn)制化的等級(jí)或游程值的二進(jìn)制序列數(shù)目。不同的塊類(lèi)型是依照對(duì)系數(shù)值進(jìn)行排序的掃描方式(單/雙)、成分類(lèi)型(亮度/色度,AC/DC)或是編碼模式(幀間/幀內(nèi))來(lái)定義的。然而,對(duì)指定類(lèi)型來(lái)說(shuō),上下文只依賴于二進(jìn)制序列數(shù)目。更具體地說(shuō),依照H.26L TML 8,在這里為等級(jí)編碼定義了四個(gè)上下文。第一個(gè)上下文用于第一個(gè)二進(jìn)制序列,第二個(gè)上下文用于第二個(gè)二進(jìn)制序列,第三個(gè)上下文用于那些表示等級(jí)幅度的剩余二進(jìn)制序列。剩余上下文則用于等級(jí)的符號(hào)。此外還使用了相似的方法來(lái)將游程值指派給上下文。對(duì)游程來(lái)說(shuō),存在三個(gè)上下文,第一個(gè)上下文用于第一個(gè)二進(jìn)制序列,第二個(gè)上下文用于第二個(gè)二進(jìn)制序列,第三個(gè)上下文則用于所有剩余的二進(jìn)制序列。由于游程值始終等于或大于零,因此對(duì)附加上下文而言,沒(méi)有必要為其表示符號(hào)信息。這樣一來(lái),對(duì)一個(gè)給定類(lèi)型的塊來(lái)說(shuō),針對(duì)變換系數(shù)的二進(jìn)制序列(等級(jí)和游程編碼)所進(jìn)行的將二進(jìn)制序列指派給上下文的處理可以如下概括If(bin_nr>MAX_BIN_VAL)bin_nr=MAX_BIN_VAL; (1)endcontext=bin_nr其中bin_nr是二進(jìn)制序列數(shù)目,context是上下文編號(hào)。根據(jù)H.26L TML 8,MAX_BIN_VAL的值設(shè)定為3,但是原則上也可以使用不同的MAX_BIN_VAL來(lái)作為替換。
游程-等級(jí)對(duì)是如下編碼的首先根據(jù)塊/系數(shù)類(lèi)型來(lái)對(duì)游程和等級(jí)進(jìn)行分類(lèi),其中所述類(lèi)型包括掃描模式、系數(shù)類(lèi)型(DC/AC)以及編碼模式(幀間/幀內(nèi)或16×16幀內(nèi))。然后通過(guò)將等級(jí)和游程映射到一個(gè)二進(jìn)制序列來(lái)對(duì)其進(jìn)行二進(jìn)制化,并且根據(jù)每一個(gè)二進(jìn)制序列的編號(hào)來(lái)將其指派給一個(gè)上下文。
圖6a~6d通過(guò)參考示范性的4×4量化DCT系數(shù)陣列而對(duì)這個(gè)處理進(jìn)行了詳細(xì)描述。此外它還描述了用于追蹤量化DCT系數(shù)的游程和等級(jí)值的統(tǒng)計(jì)特性的方法,從而論證了CABAC方法的自適應(yīng)特征。在這里,首先對(duì)經(jīng)過(guò)量化的DCT系數(shù)值的二維陣列進(jìn)行Z字形掃描,以便產(chǎn)生一個(gè)圖6a所示的值的一維陣列。然后將一維陣列中的非零系數(shù)值作為游程和等級(jí)值對(duì)來(lái)加以表示。如先前所述,每一個(gè)等級(jí)值都表示一個(gè)非零的量化DCT系數(shù)值,而相關(guān)的游程則對(duì)應(yīng)于所論述系數(shù)之前的零值系數(shù)的數(shù)目。在圖6b中給出了來(lái)源于示范性的量化DCT系數(shù)陣列的游程-等級(jí)對(duì)。在各個(gè)對(duì)中,等級(jí)值處于游程值之前并且將等于零的等級(jí)值用作一個(gè)塊結(jié)束符號(hào),以便指示所述塊中沒(méi)有非零系數(shù)值。
接著,每一個(gè)游程和等級(jí)值都轉(zhuǎn)換成一個(gè)二進(jìn)制值。根據(jù)H.26LTML 8,用于轉(zhuǎn)換量化DCT變換系數(shù)值的游程和等級(jí)的二進(jìn)制化方案與上文中圖1所示方案相同。圖6c顯示的是將表1給出的二進(jìn)制化方案應(yīng)用于示范性陣列中的游程和等級(jí)值的結(jié)果。此外,圖6c還顯示了依照H.26L而將二進(jìn)制序列指派給上下文。如上所述,其中僅僅使用了三個(gè)上下文來(lái)描述游程和等級(jí)值的大小。第一個(gè)上下文對(duì)應(yīng)于二進(jìn)制序列1,第二個(gè)上下文對(duì)應(yīng)于二進(jìn)制序列2,而第三個(gè)上下文則包括了所有剩余的二進(jìn)制序列。在圖6c中,上下文是通過(guò)粗體橫線來(lái)描繪的。通過(guò)檢查圖6c可以看出,大多數(shù)等級(jí)值都映射到指派給上下文3的二進(jìn)制序列,而大多數(shù)游程值則映射到指派給上下文1的二進(jìn)制序列。
每一個(gè)經(jīng)過(guò)指派的上下文的概率估計(jì)是在編碼了二進(jìn)制序列之后才更新的。而游程和等級(jí)的概率估計(jì)則是獨(dú)立更新的。如先前所述,給定上下文的概率估計(jì)表示的是指派給所論述的上下文的二進(jìn)制序列的統(tǒng)計(jì)特征。更具體地說(shuō),所述概率估計(jì)描述的是指派給上下文的二進(jìn)制序列中包含0或1的概率。圖6d以一種示范方式描述了為游程和等級(jí)更新概率估計(jì)的方法。該圖中描述的是在二進(jìn)制化那些代表圖6a所示的4×4量化DCT系數(shù)塊的游程和等級(jí),并且將其指派給上下文,進(jìn)而在算術(shù)編碼器中編碼的前后,在指派到指定游程或等級(jí)的上下文的二進(jìn)制序列中包含0或1的概率。圖6d采用了表格形式,其中記錄了在指派給各個(gè)上下文的二進(jìn)制序列中的1和0的出現(xiàn)情況。因此,一個(gè)指定上下文的概率估計(jì)是如下給出的
0的概率=0的數(shù)目/(0的數(shù)目+1的數(shù)目)1的概率=1的數(shù)目/(0的數(shù)目+1的數(shù)目)在這個(gè)圖中,假設(shè)圖6a所示的量化DCT系數(shù)的4×4塊是最早處理的塊。這意味著在表中沒(méi)有記錄1和0的先前出現(xiàn)情況。為了克服這個(gè)問(wèn)題,在這里假設(shè)在處理所述塊之前,每一個(gè)上下文都具有相等的包含1或0的概率。而這種假設(shè)是通過(guò)在記錄0和1的出現(xiàn)情況的列中輸入相同的值來(lái)表示的。在圖6d中,1被用于初始化概率估計(jì)。作為選擇,也可以使用一個(gè)來(lái)源于訓(xùn)練數(shù)據(jù)分析的概率估計(jì)來(lái)為各個(gè)上下文初始化概率估計(jì)。然后則在二進(jìn)制化關(guān)于量化DCT變換系數(shù)的游程和等級(jí)值并將其指派給上下文的時(shí)候?qū)Ω鱾€(gè)上下文的二進(jìn)制序列中出現(xiàn)的1和0的數(shù)目進(jìn)行計(jì)數(shù),由此更新概率估計(jì)。圖6d的右手列顯示了在處理過(guò)圖6a所示的4×4量化DCT塊之后的情況。
盡管與UVLC熵編碼方法相比,在ITU-T建議H.26L TML 8的高復(fù)雜度類(lèi)中采用的CABAC算術(shù)編碼方法在數(shù)據(jù)壓縮方面提供了改進(jìn),但是就編碼效率來(lái)說(shuō),所述方法仍不是最佳的。因此,本發(fā)明的一個(gè)目的是提供一種能夠進(jìn)一步提高編碼效率的基于上下文的算術(shù)編碼方法和系統(tǒng)。
發(fā)明概述本發(fā)明基于這樣一種認(rèn)識(shí),那就是在使用基于上下文的算術(shù)編碼來(lái)對(duì)指定數(shù)據(jù)符號(hào)進(jìn)行編碼的時(shí)候,通過(guò)使用那些對(duì)指派了其他數(shù)據(jù)符號(hào)的上下文加以考慮的上下文模型,可以在編碼效率方面得到提高。特別地,通過(guò)參考H.26L TML 8的高復(fù)雜度類(lèi)中使用的CABAC方法,本發(fā)明的發(fā)明人已經(jīng)確定,在游程與關(guān)聯(lián)于DCT變換系數(shù)的等級(jí)之間存在某些聯(lián)系。此外發(fā)明人還確定了可以使用這些關(guān)系來(lái)構(gòu)造改進(jìn)的上下文模型,其中所述模型能在將CABAC方法應(yīng)用于游程和等級(jí)值的時(shí)候使之以經(jīng)過(guò)提高的編碼效率來(lái)運(yùn)作。特別地,發(fā)明人已經(jīng)確定,連續(xù)等級(jí)值將會(huì)顯示出極大相似性。更具體地說(shuō),在指定的變換系數(shù)塊內(nèi)部,所編碼系數(shù)的等級(jí)實(shí)質(zhì)上通常具有類(lèi)似于先前編碼系數(shù)等級(jí)的幅度。此外發(fā)明人還確定了等級(jí)與游程值之間的一個(gè)反比關(guān)系。特別地,越大的等級(jí)值越有可能在較小的游程值之前。反過(guò)來(lái)一樣是成立的,也就是說(shuō),較小的等級(jí)值很可能是在較大的游程之后。因此,本發(fā)明提出為DCT變化系數(shù)的編碼創(chuàng)建新的上下文模型,其中所述模型顧及了等級(jí)與游程值之間的這些關(guān)系。
在為了執(zhí)行基于上下文的編碼器而設(shè)計(jì)的第一個(gè)上下文模型中,對(duì)指派給一個(gè)二進(jìn)制化的系數(shù)等級(jí)值的二進(jìn)制序列來(lái)說(shuō),其上下文依賴于先前編碼的系數(shù)等級(jí)。在為了執(zhí)行基于上下文的解碼器而設(shè)計(jì)的第二個(gè)上下文模型中,對(duì)指派給二進(jìn)制化的系數(shù)等級(jí)值的二進(jìn)制序列來(lái)說(shuō),其上下文依賴于先前解碼的系數(shù)等級(jí)。在為了實(shí)施基于上下文的解碼器或是基于上下文的算術(shù)解碼器而設(shè)計(jì)的第三個(gè)上下文模型中,對(duì)指派給二進(jìn)制化的系數(shù)游程值的二進(jìn)制序列來(lái)說(shuō),其上下文依賴于先前解碼的系數(shù)等級(jí)值。
發(fā)明人還進(jìn)一步確定,在與不同圖像塊相關(guān)聯(lián)的變換系數(shù)值之間存在某種相似性。這些相似性在相互靠近的圖像塊間會(huì)變得更大,并且在相互緊鄰的圖像塊之間往往最強(qiáng)。更具體地說(shuō),用于表示特定圖像塊的非零變換系數(shù)值的數(shù)量Nc往往與接近或鄰接所論述圖像塊中的非零變換系數(shù)值的數(shù)目是相同的。因此,本發(fā)明還引入了這樣一個(gè)概念,那就是為變換編碼的圖像塊提供一個(gè)非零變換系數(shù)數(shù)目的指示并且使用熵編碼來(lái)對(duì)這個(gè)值進(jìn)行編碼。此外,如果將基于上下文的算術(shù)編碼用于對(duì)Nc值進(jìn)行編碼,那么發(fā)明人已經(jīng)確定,較為有利的是通過(guò)對(duì)指派給用于至少一個(gè)其他變換編碼圖像塊的上下文加以考慮而將塊的Nc值指派給一個(gè)上下文。這樣一來(lái),在相互靠近的圖像塊之間,Nc值間的相似性可以利用這個(gè)基于上下文的算術(shù)編碼過(guò)程。根據(jù)ITU-T建議H.26L TML 8,并沒(méi)有對(duì)圖像塊中非零變換系數(shù)的數(shù)目進(jìn)行編碼。作為替換并且如先前所示,在這里提供了一個(gè)塊結(jié)束(EOB)指示。EOB指示表示已經(jīng)對(duì)相應(yīng)于非零系數(shù)的最后一個(gè)游程-等級(jí)對(duì)進(jìn)行了編碼。發(fā)明人確定,與當(dāng)前在H.26L TML8中所用的提供EOB指示的方法相比,這里提出的方法將會(huì)導(dǎo)致編碼效率上的提高,其中在本發(fā)明中提供了一個(gè)塊中非零系數(shù)數(shù)目的明確指示,并且使用了基于上下文的算術(shù)編碼來(lái)對(duì)其進(jìn)行編碼。
盡管本發(fā)明背后的動(dòng)機(jī)及其基本概念是在視頻編碼/解碼中給出的,尤其是就H.26L TML 8給出的,但是應(yīng)該理解,本發(fā)明也可以適用于其他視頻編碼系統(tǒng)和靜止圖像編碼。從原則上講,本發(fā)明可以應(yīng)用于任何一個(gè)使用了基于塊的變換編碼與基于上下文的算術(shù)編碼的圖像編碼系統(tǒng)。
根據(jù)本發(fā)明的第一個(gè)方面,提供了一種圖像編碼方法,其中將圖像分成具有多個(gè)像素的多個(gè)塊,每一個(gè)像素具有一個(gè)像素值,并且對(duì)所述像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生相應(yīng)的變換系數(shù)值塊。在一個(gè)給定掃描順序中掃描所述變換系數(shù)值塊,以便產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列,并且使用多個(gè)數(shù)字對(duì)來(lái)表示經(jīng)過(guò)掃描的陣列中的系數(shù)值,所述數(shù)字對(duì)具有一個(gè)第一數(shù)字和一個(gè)第二數(shù)字。將第一數(shù)字和第二數(shù)字指派給表示所述數(shù)字對(duì)的多個(gè)上下文中的一個(gè)。根據(jù)本發(fā)明的第一個(gè)方面,一個(gè)數(shù)字對(duì)的第一值是基于另一個(gè)數(shù)字對(duì)中的第一數(shù)字而被指派給一個(gè)上下文的。
優(yōu)選地,基于一個(gè)數(shù)字對(duì)中的第一數(shù)字而將另一個(gè)數(shù)字對(duì)中的第一數(shù)字指派給一個(gè)上下文的步驟顧及指派了其他數(shù)字對(duì)中的第一數(shù)字的上下文。
較為有利的是,數(shù)字對(duì)中的第一數(shù)字表示的是一個(gè)非零系數(shù)值。優(yōu)選地,數(shù)字對(duì)的第一數(shù)字與非零系數(shù)值的大小是相等的。
優(yōu)選地,數(shù)字對(duì)中的第二數(shù)字表示的是在非零系數(shù)值之前的多個(gè)連續(xù)零系數(shù)值。
優(yōu)選地,所述上下文是一個(gè)基于上下文的算術(shù)編碼器的上下文。
更為優(yōu)選的是,所述上下文是基于上下文的二進(jìn)制運(yùn)算編碼器的上下文。
較為有利的是,第一和第二數(shù)字映射到一組二進(jìn)制序列,其中每一個(gè)二進(jìn)制序列都具有一個(gè)相關(guān)聯(lián)的二進(jìn)制序列編號(hào),并且每一個(gè)二進(jìn)制序列都能采用第一值或第二值中的一個(gè)。
優(yōu)選地,每個(gè)第一和第二數(shù)字都映射到所述一組二進(jìn)制序列中的一個(gè),而將數(shù)字映射到所述一組二進(jìn)制序列中給定的一個(gè)則是通過(guò)將二進(jìn)制序列的值指派給第一值來(lái)指示的。
優(yōu)選地,第一值是1并且第二值是0。
優(yōu)選地,每一組二進(jìn)制序列都被指派給一個(gè)上下文。
非常有利的是,在對(duì)指派了其他數(shù)字對(duì)中第一數(shù)字的上下文加以考慮的情況下,基于另一個(gè)數(shù)字對(duì)中的第一數(shù)字而將一個(gè)數(shù)字對(duì)中的第一數(shù)字指派給一個(gè)上下文的步驟是通過(guò)檢查所述其他數(shù)字對(duì)的第一數(shù)字所映射的二進(jìn)制序列的二進(jìn)制序列編號(hào)來(lái)執(zhí)行的。
較為有利的是,所述方法還包括保持一個(gè)用于描述各個(gè)上下文的統(tǒng)計(jì)特性的概率估計(jì)。
優(yōu)選地,對(duì)各個(gè)上下文來(lái)說(shuō),所述概率估計(jì)表示的是具有指派給上下文的預(yù)定值的數(shù)字的統(tǒng)計(jì)似然性。
優(yōu)選地,對(duì)各個(gè)上下文來(lái)說(shuō),所述概率估計(jì)是通過(guò)記錄指派給所論述上下文的二進(jìn)制序列中的第一值和第二值的出現(xiàn)情況來(lái)保持的。
根據(jù)本發(fā)明的第二個(gè)方面,提供了一種圖像編碼方法,其中將圖像分成具有多個(gè)像素的多個(gè)塊,每一個(gè)像素都具有一個(gè)像素值,并且對(duì)所述像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生相應(yīng)的變換系數(shù)值塊。在一種給定掃描順序中掃描變換系數(shù)值塊,以便產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列,并且使用多個(gè)數(shù)字對(duì)來(lái)表示經(jīng)過(guò)掃描的陣列中的系數(shù)值,其中所述數(shù)字對(duì)具有一個(gè)第一數(shù)字和一個(gè)第二數(shù)字。將第一數(shù)字和第二數(shù)字指派給表示所述數(shù)字對(duì)的多個(gè)上下文中的一個(gè)。根據(jù)本發(fā)明的第二個(gè)方面,數(shù)字對(duì)的第二數(shù)字是基于數(shù)字對(duì)中的第一數(shù)字而被指派給一個(gè)上下文的。
優(yōu)選地,基于一個(gè)數(shù)字對(duì)中的第一數(shù)字而將另一個(gè)數(shù)字對(duì)中的第一數(shù)字指派給一個(gè)上下文的步驟對(duì)指派了其他數(shù)字對(duì)中第一數(shù)字的上下文加以考慮。
較為有利的是,數(shù)字對(duì)中的第一數(shù)字表示的是一個(gè)非零系數(shù)值。優(yōu)選地,數(shù)字對(duì)的第一數(shù)字與非零系數(shù)值的大小是相等的。
優(yōu)選地,數(shù)字對(duì)中的第二數(shù)字表示的是在非零系數(shù)值之前的多個(gè)連續(xù)零系數(shù)值。
優(yōu)選地,所述上下文是一個(gè)基于上下文的算術(shù)編碼器的上下文。
更為優(yōu)選的是,所述上下文是基于上下文的二進(jìn)制運(yùn)算編碼器的上下文。
較為有利的是,第一和第二數(shù)字映射到一組二進(jìn)制序列,其中每一個(gè)二進(jìn)制序列都具有一個(gè)相關(guān)聯(lián)的二進(jìn)制序列編號(hào),并且每一個(gè)二進(jìn)制序列都能采用第一值或第二值中的一個(gè)。
優(yōu)選地,每個(gè)第一和第二數(shù)字都映射到所述一組二進(jìn)制序列中的一個(gè),而將數(shù)字映射到所述一組二進(jìn)制序列中給定的一個(gè)則是通過(guò)將二進(jìn)制序列的值指派給第一值來(lái)指示的。
優(yōu)選地,第一值是1并且第二值是0。
優(yōu)選地,每一組二進(jìn)制序列都被指派給一個(gè)上下文。
非常有利的是,在對(duì)指派了其中一個(gè)數(shù)字對(duì)的第二數(shù)字的上下文加以考慮的情況下,基于數(shù)字對(duì)中第一數(shù)字而將數(shù)字對(duì)中第二數(shù)字指派給一個(gè)上下文的步驟是通過(guò)檢查第二數(shù)字所映射的二進(jìn)制序列的二進(jìn)制序列編號(hào)來(lái)執(zhí)行的。
較為有利的是,所述方法還包括保持一個(gè)用于描述各個(gè)上下文的統(tǒng)計(jì)特性的概率估計(jì)。
優(yōu)選地,對(duì)各個(gè)上下文來(lái)說(shuō),所述概率估計(jì)表示的是具有指派給上下文的預(yù)定值的數(shù)字的統(tǒng)計(jì)似然性。
優(yōu)選地,對(duì)各個(gè)上下文來(lái)說(shuō),所述概率估計(jì)是通過(guò)記錄指派給所論述上下文的二進(jìn)制序列中的第一值和第二值的出現(xiàn)情況來(lái)保持的。
優(yōu)選地,根據(jù)本發(fā)明第一和第二方面的方法全都適用于變換系數(shù)值塊。
根據(jù)本發(fā)明的第三個(gè)方面,提供了一種編碼器,包括用于將圖像分為具有多個(gè)像素的多個(gè)塊的裝置,其中每一個(gè)像素都具有一個(gè)像素值,此外還包括用于對(duì)像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生一個(gè)相應(yīng)的變換系數(shù)值塊的裝置。所述編碼器還包括用于以一個(gè)給定掃描順序來(lái)掃描變換系數(shù)值塊,以便產(chǎn)生經(jīng)過(guò)掃描的系數(shù)值陣列的裝置,用于表示多個(gè)數(shù)字對(duì)所代表的經(jīng)過(guò)掃描的陣列中的系數(shù)值的裝置,所述數(shù)字對(duì)具有一個(gè)第一數(shù)字和一個(gè)第二數(shù)字,以及用于將第一數(shù)字和第二數(shù)字指派給表示數(shù)字對(duì)的多個(gè)上下文之一的裝置。根據(jù)本發(fā)明的第三個(gè)方面,所述編碼器包括用于根據(jù)另一個(gè)數(shù)字對(duì)的第一數(shù)字而將數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的裝置。
根據(jù)本發(fā)明的第四個(gè)方面,提供了一種編碼器,包括用于將圖像分成具有多個(gè)像素的多個(gè)塊的裝置,其中每一個(gè)像素都具有一個(gè)像素值,此外還包括對(duì)像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的裝置。所述編碼器還包括用于以一個(gè)給定掃描順序掃描變換系數(shù)值塊,以便產(chǎn)生經(jīng)過(guò)掃描的系數(shù)值陣列的裝置,用于表示多個(gè)數(shù)字對(duì)所代表的經(jīng)過(guò)掃描的陣列中的系數(shù)值的裝置,其中所述數(shù)字對(duì)具有一個(gè)第一數(shù)字和一個(gè)第二數(shù)字,以及用于將第一數(shù)字和第二數(shù)字指派給表示數(shù)字對(duì)的多個(gè)上下文之一的裝置。根據(jù)本發(fā)明的第四個(gè)方面,所述編碼器包括用于根據(jù)數(shù)字對(duì)中的第一數(shù)字而將數(shù)字對(duì)的第二數(shù)字指派給一個(gè)上下文的裝置。
根據(jù)本發(fā)明的第五個(gè)方面,提供了一種圖像編碼方法,其中將圖像分成具有多個(gè)像素的多個(gè)塊,每一個(gè)像素都具有一個(gè)像素值,并且對(duì)像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生相應(yīng)的變換系數(shù)值塊。根據(jù)本發(fā)明的第五個(gè)方面,所述方法包括如下步驟提供一個(gè)表示變換系數(shù)值塊中非零系數(shù)值數(shù)目的數(shù)字,以及將這個(gè)數(shù)字指派給一個(gè)表示所述數(shù)字的上下文。
非常有利的是,將表示變換系數(shù)值塊中非零變換系數(shù)值數(shù)目的數(shù)字指派給一個(gè)上下文的步驟對(duì)指派了另一個(gè)數(shù)字的上下文加以考慮,其中所述另一個(gè)數(shù)字表示的是另一個(gè)變換系數(shù)塊中的非零系數(shù)值數(shù)目。
非常有利的是,變換值塊是在給定掃描順序中掃描的,由此產(chǎn)生了一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列,并且在所述經(jīng)過(guò)掃描的陣列中,系數(shù)值是由多個(gè)數(shù)字對(duì)來(lái)表示的,其中所述數(shù)字對(duì)具有一個(gè)第一數(shù)字和一個(gè)第二數(shù)字。
較為有利的是,數(shù)字對(duì)中的第一數(shù)字表示的是一個(gè)非零系數(shù)值。
優(yōu)選地,數(shù)字對(duì)的第一數(shù)字與非零系數(shù)值的大小是相等的。
更為優(yōu)選的是,數(shù)字對(duì)的第一數(shù)字與非零系數(shù)值減1的大小是相等的。
優(yōu)選地,數(shù)字對(duì)中的第二數(shù)字表示的是在非零系數(shù)值之前的多個(gè)連續(xù)零系數(shù)值。
優(yōu)選地,在這里沒(méi)有提供一個(gè)指示處于經(jīng)過(guò)掃描的系數(shù)值陣列中的最后一個(gè)非零系數(shù)值的塊結(jié)束指示。
優(yōu)選地,根據(jù)本發(fā)明第一、第二和第五方面的方法每一個(gè)都適用于變換系數(shù)值塊。
根據(jù)本發(fā)明的第六個(gè)方面,提供了一種編碼器,其中包括用于將圖像分成具有多個(gè)像素的多個(gè)塊的裝置,其中每一個(gè)像素都具有一個(gè)像素值,此外還包括用于對(duì)像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的裝置。所述編碼器包括提供一個(gè)用于指示變換系數(shù)值塊中非零系數(shù)值數(shù)目的數(shù)字的裝置,以及用于將所述數(shù)字指派給一個(gè)表示所述數(shù)字的上下文的裝置。
非常有利的是,所述編碼器還包括用于在對(duì)指派了另一個(gè)數(shù)字的上下文加以考慮的情況下指派所述指示變換系數(shù)值塊中非零變換系數(shù)值數(shù)目的數(shù)字的裝置,其中所述另一個(gè)數(shù)字指示的是另一個(gè)變換系數(shù)塊中非零變換系數(shù)的數(shù)目。
根據(jù)本發(fā)明的第七個(gè)方面,提供了一種計(jì)算機(jī)程序,其中包括用于將圖像分成具有多個(gè)像素值的多個(gè)塊的代碼,其中每一個(gè)像素值都具有一個(gè)像素值,此外還包括用于對(duì)像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的代碼。所述計(jì)算機(jī)程序還包括用于以給定掃描順序掃描變換系數(shù)值塊,以便產(chǎn)生經(jīng)過(guò)掃描的系數(shù)值陣列的代碼,用于使用多個(gè)數(shù)字來(lái)表示經(jīng)過(guò)掃描的陣列中的系數(shù)值的代碼,其中所述數(shù)字對(duì)具有一個(gè)第一數(shù)字和一個(gè)第二數(shù)字,以及用于將第一數(shù)字和第二數(shù)字指派給表示數(shù)字對(duì)的多個(gè)上下文之一的代碼。根據(jù)本發(fā)明的第七個(gè)方面,所述計(jì)算機(jī)程序還包括用于根據(jù)另一個(gè)數(shù)字對(duì)中的第一數(shù)字而將其中一個(gè)數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的代碼。
較為有利的是,數(shù)字對(duì)中的第一數(shù)字表示的是一個(gè)非零系數(shù)值。
優(yōu)選地,數(shù)字對(duì)的第一數(shù)字與非零系數(shù)值的大小是相等的。
優(yōu)選地,數(shù)字對(duì)中的第二數(shù)字表示的是在非零系數(shù)值之前的多個(gè)連續(xù)零系數(shù)值。
根據(jù)本發(fā)明的第八個(gè)方面,提供了一種計(jì)算機(jī)程序,其中包括用于將圖像分成具有多個(gè)像素值的多個(gè)塊的代碼,其中每一個(gè)像素值都具有一個(gè)像素值,此外還包括用于對(duì)像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的代碼。所述計(jì)算機(jī)程序還包括用于以給定掃描順序來(lái)掃描變換系數(shù)值塊,以便產(chǎn)生經(jīng)過(guò)掃描的系數(shù)值陣列的代碼,用于使用多個(gè)數(shù)字來(lái)表示經(jīng)過(guò)掃描的陣列中的系數(shù)值的代碼,其中所述數(shù)字對(duì)具有一個(gè)第一數(shù)字和一個(gè)第二數(shù)字,以及用于將第一數(shù)字和第二數(shù)字指派給表示所述數(shù)字對(duì)的多個(gè)上下文之一的代碼。根據(jù)本發(fā)明的第八個(gè)方面,所述計(jì)算機(jī)程序還包括用于根據(jù)數(shù)字對(duì)中第一數(shù)字來(lái)把所述數(shù)字對(duì)的第二數(shù)字指派給一個(gè)上下文的代碼。
較為有利的是,數(shù)字對(duì)中的第一數(shù)字表示一個(gè)非零系數(shù)值。
優(yōu)選地,數(shù)字對(duì)的第一數(shù)字與非零系數(shù)值的大小是相等的。
優(yōu)選地,數(shù)字對(duì)中的第二數(shù)字表示的是非零系數(shù)值之前的多個(gè)連續(xù)零系數(shù)值。
根據(jù)本發(fā)明的第九個(gè)方面,提供了一種計(jì)算機(jī)程序,其中包括用于將圖像分成具有多個(gè)像素值的多個(gè)塊的代碼,其中每一個(gè)像素值都具有一個(gè)像素值,此外還包括用于對(duì)像素值塊執(zhí)行一個(gè)變換編碼操作,以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的代碼。根據(jù)本發(fā)明的第九個(gè)方面,所述計(jì)算機(jī)程序還包括用于提供表示變換系數(shù)值塊中非零系數(shù)值數(shù)目的數(shù)字的代碼,此外還包括用于將這個(gè)數(shù)字指派給一個(gè)表示所述數(shù)字的上下文的代碼。
非常有利的是,所述計(jì)算機(jī)程序還包括用于在對(duì)指派了另一個(gè)數(shù)字的上下文加以考慮的情況下,將指示變換系數(shù)值塊中非零變換系數(shù)值數(shù)目的數(shù)字指派一個(gè)上下文的代碼,其中所述另一個(gè)數(shù)字指示的是另一個(gè)變換系數(shù)塊中的非零系數(shù)值的數(shù)目。
根據(jù)本發(fā)明的第十個(gè)方面,提供了一種依照本發(fā)明第七、第八和第九方面的計(jì)算機(jī)程序。
根據(jù)本發(fā)明的第十一個(gè)方面,提供了一種基于上下文的算術(shù)編碼方法,其中數(shù)據(jù)符號(hào)陣列是用一個(gè)碼字來(lái)表示的。所述陣列中的數(shù)據(jù)符號(hào)是包含了一個(gè)第一數(shù)字和一個(gè)第二數(shù)字的數(shù)字對(duì)。所述數(shù)字對(duì)中的第一數(shù)字指派給一個(gè)從表示第一數(shù)字的多個(gè)上下文中選出的上下文,數(shù)字對(duì)中的第二數(shù)字則指派給一個(gè)從表示第二數(shù)字的多個(gè)上下文中選出的上下文。根據(jù)本發(fā)明的第十一個(gè)方面,數(shù)字對(duì)的第一數(shù)字是基于數(shù)字對(duì)中另一個(gè)數(shù)字對(duì)的第一數(shù)字而被指派給上下文的。
根據(jù)本發(fā)明的第十二個(gè)方面,提供了一種基于上下文的算術(shù)解碼方法,其中數(shù)據(jù)符號(hào)陣列是從一個(gè)表示陣列的碼字中解碼的。所述陣列中的數(shù)據(jù)符號(hào)是包含了一個(gè)第一數(shù)字和一個(gè)第二數(shù)字的數(shù)字對(duì)。所述數(shù)字對(duì)的第一數(shù)字指派給一個(gè)從代表第一數(shù)字的多個(gè)上下文中選出的上下文,而數(shù)字對(duì)的第二數(shù)字則指派給一個(gè)從代表第二數(shù)字的多個(gè)上下文中選出的上下文。根據(jù)本發(fā)明的第十二個(gè)方面,數(shù)字對(duì)的第一數(shù)字是基于數(shù)字對(duì)中的另一個(gè)數(shù)字對(duì)的第一數(shù)字而被指派給上下文的。
根據(jù)本發(fā)明的第十三個(gè)方面,提供了一種基于上下文的算術(shù)編碼方法,其中數(shù)據(jù)符號(hào)陣列是用一個(gè)碼字來(lái)表示的。所述陣列中的數(shù)據(jù)符號(hào)是包括一個(gè)第一數(shù)字和一個(gè)第二數(shù)字的數(shù)字對(duì)。所述數(shù)字對(duì)的第一數(shù)字指派給一個(gè)從表示第一數(shù)字的多個(gè)上下文中選出的一個(gè)上下文,所述數(shù)字對(duì)的第二數(shù)字則指派給一個(gè)從表示第二數(shù)字的多個(gè)上下文中選出的上下文。根據(jù)本發(fā)明的第十三個(gè)方面,數(shù)字對(duì)的第二數(shù)字是基于數(shù)字對(duì)中的第一數(shù)字而被指派給一個(gè)上下文的。
根據(jù)本發(fā)明的第十四個(gè)方面,提供了一種基于上下文的算術(shù)解碼方法,其中數(shù)據(jù)符號(hào)陣列是從一個(gè)表示陣列的碼字中解碼的。所述陣列中的數(shù)據(jù)符號(hào)是包括一個(gè)第一數(shù)字和一個(gè)第二數(shù)字的數(shù)字對(duì)。所述數(shù)字對(duì)的第一數(shù)字指派給一個(gè)從表示第一數(shù)字的多個(gè)上下文中選出的上下文,所述數(shù)字對(duì)的第二數(shù)字則指派給一個(gè)從表示第二數(shù)字的多個(gè)上下文中選出的上下文。根據(jù)本發(fā)明的第十四個(gè)方面,數(shù)字對(duì)的第二數(shù)字是基于數(shù)字對(duì)中的第一個(gè)數(shù)字而被指派給一個(gè)上下文的。
根據(jù)本發(fā)明的第十五個(gè)方面,提供了一種基于上下文的算術(shù)編碼方法,其中數(shù)據(jù)符號(hào)陣列是用一個(gè)碼字來(lái)表示的,此外還提供了表示陣列中非零數(shù)據(jù)符號(hào)數(shù)目的數(shù)字并且將其指派給一個(gè)表示所述數(shù)字的上下文。
根據(jù)本發(fā)明的第十六個(gè)方面,提供了一種基于上下文的算術(shù)編碼器,其中包括用于使用碼字來(lái)表示一個(gè)數(shù)據(jù)符號(hào)陣列的裝置。所述陣列中的數(shù)據(jù)符號(hào)是包括第一數(shù)字和第二數(shù)字的數(shù)字對(duì),所述編碼器還包括用于將數(shù)字對(duì)的第一數(shù)字指派給一個(gè)從代表第一數(shù)字的多個(gè)上下文中選出的一個(gè)上下文的裝置,以及將數(shù)字對(duì)的第二數(shù)字指派給一個(gè)從代表第二數(shù)字的多個(gè)上下文中選出的上下文的裝置。根據(jù)本發(fā)明的第十六個(gè)方面,所述編碼器包括根據(jù)所述數(shù)字對(duì)中一個(gè)數(shù)字對(duì)的第一數(shù)字而將另一個(gè)數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的裝置。
根據(jù)本發(fā)明的第十七個(gè)方面,提供了一種基于上下文的算術(shù)解碼器,其中包括用于從表示數(shù)據(jù)符號(hào)陣列的碼字中解碼出數(shù)據(jù)符號(hào)陣列的裝置。所述陣列中的數(shù)據(jù)符號(hào)是包括第一數(shù)字和第二數(shù)字的數(shù)字對(duì),所述解碼器還包括用于將數(shù)字對(duì)的第一數(shù)字指派給從代表第一數(shù)字的多個(gè)上下文中選出的一個(gè)上下文的裝置,以及將數(shù)字對(duì)的第二數(shù)字指派給一個(gè)從代表第二數(shù)字的多個(gè)上下文中選出的上下文的裝置。根據(jù)本發(fā)明的第十七個(gè)方面,所述解碼器包括根據(jù)所述數(shù)字對(duì)中一個(gè)數(shù)字對(duì)的第一數(shù)字而將另一個(gè)數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的裝置。
根據(jù)本發(fā)明的第十八個(gè)方面,提供了一種基于上下文的算術(shù)編碼器,其中包括使用碼字來(lái)表示一個(gè)數(shù)據(jù)符號(hào)陣列的裝置。所述陣列中的數(shù)據(jù)符號(hào)是包括第一數(shù)字和第二數(shù)字的數(shù)字對(duì),所述編碼器還包括用于將數(shù)字對(duì)的第一數(shù)字指派給從代表第一數(shù)字的多個(gè)上下文中選出的一個(gè)上下文的裝置,以及將數(shù)字對(duì)的第二數(shù)字指派給一個(gè)從代表第二數(shù)字的多個(gè)上下文中選出的上下文的裝置。根據(jù)本發(fā)明的第十八個(gè)方面,所述編碼器包括用于根據(jù)數(shù)字對(duì)中第一數(shù)字而將數(shù)字對(duì)的第二數(shù)字指派給一個(gè)上下文的裝置。
根據(jù)本發(fā)明的第十九個(gè)方面,提供了一種基于上下文的算術(shù)解碼器,其中包括用于從表示數(shù)據(jù)符號(hào)陣列的碼字中解碼出所述陣列的裝置。所述陣列中的數(shù)據(jù)符號(hào)是包括第一數(shù)字和第二數(shù)字的數(shù)字對(duì),所述解碼器還包括用于將數(shù)字對(duì)的第一數(shù)字指派給一個(gè)從代表第一數(shù)字的多個(gè)上下文中選出的上下文的裝置,以及將數(shù)字對(duì)的第二數(shù)字指派給一個(gè)從代表第二數(shù)字的多個(gè)上下文中選出的上下文的裝置。根據(jù)本發(fā)明的第十九個(gè)方面,所述解碼器包括用于根據(jù)數(shù)字對(duì)中第一數(shù)字而將數(shù)字對(duì)的第二數(shù)字指派給一個(gè)上下文的裝置。
根據(jù)本發(fā)明的第二十個(gè)方面,提供了一種基于上下文的編碼器,其中包括使用一個(gè)碼字來(lái)表示一個(gè)數(shù)據(jù)符號(hào)陣列的裝置,此外還包括提供一個(gè)表示陣列中非零數(shù)據(jù)符號(hào)數(shù)目的數(shù)字的裝置,以及將所述數(shù)字指派給一個(gè)表示所述數(shù)字的上下文的裝置。
通過(guò)結(jié)合圖7a到12來(lái)閱讀本說(shuō)明書(shū),本發(fā)明將會(huì)變得清楚。
附圖簡(jiǎn)述圖1是一個(gè)對(duì)使用了基于塊的變換編碼以及運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的示范性視頻編碼器結(jié)構(gòu)進(jìn)行描述的框圖。
圖2是與圖1編碼器相對(duì)應(yīng)的示范性視頻解碼器的框圖。
圖3是一個(gè)顯示示范性的Z字形掃描的圖示。
圖4是顯示現(xiàn)有技術(shù)中基于上下文的算術(shù)編碼方案的編碼器的框圖。
圖5是顯示現(xiàn)有技術(shù)中基于上下文的算術(shù)編碼方案的解碼器的框圖。
圖6a是顯示以Z字形方式掃描的量化DCT系數(shù)值的示范性二維陣列的圖示。
圖6b是一個(gè)顯示那些由圖6a的陣列導(dǎo)出的等級(jí)和游程值的表格。
圖6c是顯示表1的二進(jìn)制化方案應(yīng)用于圖6b的等級(jí)和游程的值所導(dǎo)致的二進(jìn)制化的等級(jí)和游程值的表格。
圖6d是一個(gè)顯示了用以從游程和等級(jí)中更新概率估計(jì)的方法的表格。
圖7a是一個(gè)顯示了根據(jù)等級(jí)值而將上下文指派給二進(jìn)制序列的方法的表格。
圖7b是一個(gè)顯示了根據(jù)本發(fā)明第一實(shí)施例而將上下文指派給等級(jí)值的方法的表格。
圖8a是一個(gè)顯示了基于游程值而將上下文指派給二進(jìn)制序列的方法的表格。
圖8b是一個(gè)顯示了根據(jù)本發(fā)明第二實(shí)施例而將上下文指派給游程值的方法的表格。
圖9是一個(gè)描述了依照本發(fā)明的基于上下文的算術(shù)編碼方案的編碼器的框圖。
圖10是一個(gè)依照本發(fā)明的解碼器的框圖。
圖11是一個(gè)描述了根據(jù)本發(fā)明優(yōu)選實(shí)施例的圖像編碼方法的流程圖。
圖12是一個(gè)描述了根據(jù)本發(fā)明另一個(gè)實(shí)施例的圖像編碼方法的流程圖。
實(shí)施本發(fā)明的最佳方式現(xiàn)在將對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)論述。如上所述,本發(fā)明提供了多種相關(guān)機(jī)制,通過(guò)該機(jī)制可以對(duì)基于上下文的算術(shù)編碼器的編碼效率(數(shù)據(jù)壓縮)加以改進(jìn)。這種改進(jìn)是通過(guò)使用那些對(duì)指派了其他數(shù)據(jù)符號(hào)的上下文加以考慮的上下文模型來(lái)實(shí)現(xiàn)的。
在下文第1.1節(jié)詳細(xì)描述了本發(fā)明的第一實(shí)施例,該實(shí)施例涉及一種基于上下文的二進(jìn)制算術(shù)編碼器,所述編碼器適于在例如ITU-T建議H.26L定義的圖像編碼系統(tǒng)中使用。在這個(gè)實(shí)施例中,通過(guò)對(duì)圖像像素的變換編碼塊的量化編碼系數(shù)進(jìn)行游程-等級(jí)編碼而產(chǎn)生的等級(jí)值是在考慮到了歸屬同一個(gè)塊的另一個(gè)變換系數(shù)等級(jí)的情況下指派給上下文的。
在第1.2節(jié)詳細(xì)描述了本發(fā)明的第二實(shí)施例,該實(shí)施例也涉及一種用于圖像編碼系統(tǒng)的基于上下文的二進(jìn)制算術(shù)編碼器,其中所述系統(tǒng)可以是例如ITU-T建議H.26L中定義的圖像編碼系統(tǒng)。在第二實(shí)施例中,通過(guò)對(duì)圖像像素的變換編碼塊的量化的DCT變換系數(shù)進(jìn)行游程-等級(jí)編碼而產(chǎn)生的游程值是在考慮到了游程值所屬的游程-等級(jí)對(duì)的等級(jí)值的情況下指派給上下文的。
在第1.3節(jié)描述了本發(fā)明第三實(shí)施例,該實(shí)施例同樣涉及一種用于圖像編碼系統(tǒng)的基于上下文的算術(shù)編碼器,其中所述系統(tǒng)可以是例如ITU-T建議H.26L中定義的圖像編碼系統(tǒng)。根據(jù)第三實(shí)施例,變換編碼圖像塊的非零變換系數(shù)的數(shù)目Nc被確定,并且在考慮到指派給用于至少一個(gè)其他變換編碼圖像塊的Nc值的上下文的情況下,將其指派給一個(gè)上下文。
本發(fā)明的優(yōu)選實(shí)施例組合了上述這三個(gè)實(shí)施例的功能。
如本文先前所述,ITU-T建議H.26L TML 8的高復(fù)雜度類(lèi)使用了一種以CABAC著稱(chēng)的基于上下文的算術(shù)編碼形式。在一個(gè)根據(jù)H.26L實(shí)施的視頻編碼器中,CABAC方法被用于對(duì)由編碼器產(chǎn)生的各種不同類(lèi)型的信息進(jìn)行編碼,其中包括圖像像素變換編碼塊所產(chǎn)生的變換系數(shù)(幀內(nèi)編碼模式)或是預(yù)測(cè)誤差(幀間編碼模式)。通過(guò)對(duì)圖像像素塊進(jìn)行變換編碼產(chǎn)生的變換系數(shù)的二維陣列根據(jù)一種特定的掃描模式來(lái)掃描從而產(chǎn)生一維陣列。這兩種掃描模式是在H.26L中定義的。第一種模式稱(chēng)為“單掃描模式”,另一種模式則稱(chēng)為“雙掃描模式”。不管使用哪一種掃描模式,掃描變換系數(shù)都會(huì)將系數(shù)值的二維陣列轉(zhuǎn)換成一個(gè)以預(yù)定方式來(lái)對(duì)系數(shù)進(jìn)行排序的一維陣列。在所述一維陣列中,有序的變換系數(shù)值被轉(zhuǎn)換成游程和等級(jí)值。在經(jīng)過(guò)排序的一維陣列中,最后一個(gè)條目是一個(gè)依照H.26L TML 8的塊結(jié)束符號(hào),該條目采取的是一個(gè)與零相等的等級(jí)值的形式。由此表明在有序陣列中,最后一個(gè)非零系數(shù)值已經(jīng)轉(zhuǎn)換成一個(gè)游程-等級(jí)對(duì)。
游程和等級(jí)值是通過(guò)將其映射到一系列二進(jìn)制序列而被轉(zhuǎn)換成二進(jìn)制數(shù)字的(二進(jìn)制化),其中可以為每一個(gè)二進(jìn)制數(shù)字都可被賦予值0或1(參見(jiàn)表1)。然后,經(jīng)過(guò)二進(jìn)制化的游程和等級(jí)值指派給上下文,也就是一個(gè)為游程和等級(jí)定義的單獨(dú)的上下文集合。根據(jù)H.26L TML 8,對(duì)一個(gè)給定的塊類(lèi)型來(lái)說(shuō),為等級(jí)定義的上下文集合只依賴于指派了等級(jí)的二進(jìn)制序列的編號(hào)。更具體地說(shuō),根據(jù)H.26L TML 8而為等級(jí)編碼定義了四個(gè)上下文。第一個(gè)上下文用于第一個(gè)二進(jìn)制序列,第二個(gè)上下文是用于第二個(gè)二進(jìn)制序列,第三個(gè)上下文用于剩下的表示等級(jí)幅度的二進(jìn)制序列。剩余上下文則用于等級(jí)的符號(hào)。就游程來(lái)說(shuō),存在三個(gè)上下文,其中第一個(gè)上下文用于第一個(gè)二進(jìn)制序列,第二個(gè)上下文用于第二二進(jìn)制序列,第三個(gè)上下文則用于剩余的所有二進(jìn)制序列。由于游程值總是等于或大于零,因此不需要使用一個(gè)附加上下文來(lái)表示符號(hào)信息。
1.1 用于等級(jí)的上下文模型根據(jù)本發(fā)明的第一實(shí)施例,在將一個(gè)二進(jìn)制化的等級(jí)值指派給一個(gè)上下文時(shí),除了考慮等級(jí)自身映射到的二進(jìn)制序列之外,還要考慮到先前游程-等級(jí)對(duì)中的等級(jí)值。在這個(gè)方面,術(shù)語(yǔ)“先前游程-等級(jí)對(duì)”意味著所述游程-等級(jí)對(duì)與有序系數(shù)值的一維陣列中的先前系數(shù)相對(duì)應(yīng)。以下的偽代碼給出了一個(gè)用于將上下文指派給游程-等級(jí)對(duì)的等級(jí)值的示范性過(guò)程,其中考慮到了等級(jí)本身映射到的二進(jìn)制序列以及先前游程-等級(jí)對(duì)中的等級(jí)值If(bin_nr>MAX_BIN_LEVEL);bin_nr=MAX_BIN_LEVEL;endif(prev_level>MAX_LEVEL)(2)prev_level=MAX_LEVEL;endcontext=(bin_nr-1)*MAX_LEVEL+prev_level在表達(dá)式(2)中,prev_level是先前游程-等級(jí)對(duì)的等級(jí)值的大小。在每個(gè)塊的開(kāi)端,prev_level都會(huì)被初始化為零。在雙掃描模式中,在每個(gè)掃描開(kāi)端初始化prev_level,即每塊兩次。參數(shù)MAX_BIN_LEVEL提供了一種用于對(duì)由等級(jí)值映射到的二進(jìn)制序列編號(hào)影響上下文指派的方式加以控制的手段。更具體地說(shuō),以一種與依照H.26L TML 8進(jìn)行的當(dāng)前上下文指派相似的方式,MAX_BIN_LEVEL有效定義了一個(gè)所有大于或等于MAX_BIN_LEVEL的二進(jìn)制序列編號(hào)被指派到的上下文。以一種相似的方式,參數(shù)MAX_LEVEL提供了一種對(duì)先前游程-等級(jí)對(duì)中的等級(jí)值影響上下文指派的方式加以控制的手段。圖7a和圖7b描述了根據(jù)本發(fā)明第一實(shí)施例并通過(guò)應(yīng)用表達(dá)式(2)的偽代碼而將上下文指派給等級(jí)值的方法,其中MAX_BIN_LEVEL=3并且MAX_LEVEL=5。原則上可以使用MAX_BIN_LEVEL與MAX_LEVEL的任何組合來(lái)定義一組適于所要編碼的等級(jí)值統(tǒng)計(jì)特征的上下文。
1.2 用于游程的上下文模型根據(jù)本發(fā)明的第二實(shí)施例,在這里使用了一種與第1.1節(jié)所描述的方法相類(lèi)似的方法來(lái)將游程值指派給上下文。更具體地說(shuō),在將一個(gè)二進(jìn)制化的游程值指派給一個(gè)上下文的時(shí)候,除了考慮游程本身映射到的二進(jìn)制序列之外,還要對(duì)游程值歸屬的游程-等級(jí)對(duì)的等級(jí)加以考慮。下文中的偽代碼給出了一個(gè)用于將上下文指派給游程-等級(jí)對(duì)中的游程值的示范性過(guò)程,在這個(gè)過(guò)程中顧及了游程本身映射到的二進(jìn)制序列以及所述游程值所歸屬的游程-等級(jí)對(duì)的等級(jí)值If(bin_nr>MAX_BIN_RUN);bin_nr=MAX_BIN_RUN;endif(level>MAX_RUNL)(3)level=MAX_RUNL;endcontext=(bin_nr-1)*MAX_RUNL+level在表達(dá)式(3)中,level是游程-等級(jí)對(duì)中的等級(jí)值的大小。參數(shù)MAX_BIN_RUN提供了一個(gè)對(duì)游程值映射到的二進(jìn)制序列編號(hào)影響上下文指派的方式加以控制的手段。更具體地說(shuō),以一種與依照H.26L TML 8進(jìn)行的當(dāng)前上下文指派相類(lèi)似的方式,MAX_BIN_RUN有效定義了一個(gè)指派了大于或等于MAX_BIN_RUN的所有二進(jìn)制序列編號(hào)的上下文。以一種相似的方式,參數(shù)MAX_RUNL提供了一種對(duì)游程-等級(jí)對(duì)中的等級(jí)值影響上下文指派的方式進(jìn)行控制的手段。圖8a和圖8b描述了依照本發(fā)明第二實(shí)施例并通過(guò)應(yīng)用表達(dá)式(3)的偽代碼而將上下文指派給等級(jí)值的方法,其中MAX_BIN_RUN=3并且MAX_RUNL=4。原則上可以使用MAX_BIN_RUN與MAX_RUNL的任何組合來(lái)定義一組適于所要編碼的游程值統(tǒng)計(jì)特征的上下文。
1.3 用于非零系數(shù)數(shù)目的上下文特別地,本發(fā)明的第三實(shí)施例尤其涉及到將變換系數(shù)值的有序陣列轉(zhuǎn)換成游程和等級(jí)值的方法,以及用信號(hào)通知那些與量化變化系數(shù)值的陣列相對(duì)應(yīng)的游程-等級(jí)對(duì)數(shù)目的方法。更具體地說(shuō),在對(duì)一個(gè)圖像像素塊或是預(yù)測(cè)誤差值進(jìn)行變換編碼,從而形成一個(gè)變換系數(shù)值的二維陣列并且對(duì)每一個(gè)系數(shù)值進(jìn)行量化之后,陣列中的非零量化系數(shù)值數(shù)目將被確定。一個(gè)稱(chēng)為Nc的值將被指派給所述數(shù)字并被用于明確地用信號(hào)通知陣列中非零系數(shù)值的數(shù)目。因此,依照本發(fā)明的這個(gè)實(shí)施例,在這里不再需要一個(gè)諸如與零相等的等級(jí)值這樣的EOB符號(hào)。
經(jīng)過(guò)量化的變換系數(shù)進(jìn)一步根據(jù)預(yù)定掃描順序而被掃描,以便產(chǎn)生一個(gè)有序的一維陣列??商鎿Q地,也可以在對(duì)量化系數(shù)值進(jìn)行排序之后再確定Nc。然后,有序陣列中的每一個(gè)非零量化系數(shù)都轉(zhuǎn)換成游程-等級(jí)對(duì)。根據(jù)本發(fā)明的這個(gè)實(shí)施例,游程-等級(jí)對(duì)的等級(jí)值表示的是經(jīng)過(guò)量化的系數(shù)減1得到的值的大小,游程值則與所論述系數(shù)之前的連續(xù)零值量化系數(shù)的數(shù)目相對(duì)應(yīng)。由于不再將與零相等的等級(jí)值用作塊結(jié)束指示符,因此為所述等級(jí)值賦予了量化系數(shù)減1所得到的值的大小。由此可以節(jié)省用于表示等級(jí)信息所需要的數(shù)據(jù)量(例如比特?cái)?shù)目)。
然后,與Nc值一樣,在這里使用了熵編碼來(lái)對(duì)等級(jí)和游程值進(jìn)行編碼。在使用了諸如在H.26L TML 8中實(shí)現(xiàn)的CABAC技術(shù)之類(lèi)的基于上下文的算術(shù)編碼方法的情況下,如上所述,可以根據(jù)本發(fā)明的第一和/或第二實(shí)施例來(lái)對(duì)游程和等級(jí)值進(jìn)行編碼。可替換地,也可以將任何其他適當(dāng)?shù)纳舷挛哪P陀糜谟纬毯偷燃?jí)值。此外還可以為Nc定義一個(gè)單獨(dú)的上下文模型。根據(jù)本發(fā)明的這個(gè)實(shí)施例,首先將表示給定塊中非零量化變換系數(shù)數(shù)目的Nc值映射到一系列的二進(jìn)制序列來(lái)對(duì)對(duì)其進(jìn)行二進(jìn)制化,其中每一個(gè)二進(jìn)制序列都具有一個(gè)相應(yīng)的二進(jìn)制序列編號(hào)。然后則基于Nc所映射到的二進(jìn)制序列編號(hào)以及指派了一個(gè)Nc值的至少一個(gè)其他圖像塊或宏塊的Nc來(lái)確定用于所述Nc的上下文。以下的偽代碼給出了用于將一個(gè)上下文指派給一個(gè)Nc值的示范性過(guò)程,在這個(gè)過(guò)程中考慮到了Nc本身映射到的二進(jìn)制序列以及先前的Nc值If(bin_nr>MAX_BIN_Nc);bin_nr=MAX_BIN_Nc;endif(prev_nc>MAX_Nc)(4)prev_nc=MAX_Nc;endcontext=(bin_nr-1)*MAX_nc+prev_nc在表達(dá)式(4)中,prev_nc即為先前的Nc值。
在從編碼器將經(jīng)過(guò)編碼的給定量化變換系數(shù)塊的等級(jí)和游程值發(fā)送到一個(gè)解碼器的時(shí)候,經(jīng)過(guò)熵編碼的Nc值是在對(duì)游程和等級(jí)值進(jìn)行編碼之前發(fā)送的。在解碼器上對(duì)所述Nc值進(jìn)行解碼,其后則跟隨著與所論述塊的量化變換系數(shù)值相對(duì)應(yīng)的游程-等級(jí)對(duì)。當(dāng)對(duì)等級(jí)值進(jìn)行解碼時(shí),為了補(bǔ)償在編碼器中所作的相應(yīng)減法,將會(huì)把數(shù)值+1加到各個(gè)等級(jí)大小中。
為了展示使用圖像編碼方法而在編碼效率上的改進(jìn),根據(jù)本發(fā)明,平均比特率差值是通過(guò)使用關(guān)于QP=28、24、20、16的結(jié)果來(lái)計(jì)算的。表2顯示了與TML 8相比較的百分比形式的比特率減少,其中MAX_LEVEL=5并且MAX_RUN=4。所有幀都是在CABAC模式中作為I幀來(lái)編碼的。如表2所示,比特率的減少范圍是從0.95到4.74%。當(dāng)QP值很小的時(shí)候,所述改進(jìn)將會(huì)更為顯著。
在表2中,出現(xiàn)在表格第一行的名稱(chēng)是在Gis1e Bjontegaard的“Recommended Simulation Conditions for H.26L”(VCG-M75,ITU-TVideo Coding Experts Group,Austin,Texas,USA,2-4 April,2001)中使用的畫(huà)面。
表2現(xiàn)在參考圖9,根據(jù)本發(fā)明,發(fā)送端的編碼器10包括一個(gè)用于保存先前等級(jí)和游程的單元16。如圖9所示,用于給定塊的游程-等級(jí)對(duì)102被提供到映射單元12,所述映射單元12將所述對(duì)映射到一系列的二進(jìn)制序列,每一個(gè)二進(jìn)制序列都具有值0或1。在表示游程-等級(jí)對(duì)的序列中,二進(jìn)制序列的位置稱(chēng)為二進(jìn)制序列編號(hào)。二進(jìn)制序列編號(hào)由信號(hào)104表示?;谛盘?hào)104和單元16提供的先前編碼的等級(jí)值108,指派單元14將一個(gè)上下文指派給一個(gè)二進(jìn)制序列編號(hào)。信號(hào)106表示的上下文被提供到一個(gè)自適應(yīng)算術(shù)編碼器20。而1的出現(xiàn)概率與0的出現(xiàn)概率則是通過(guò)一個(gè)概率估計(jì)單元22來(lái)估計(jì)的?;谒龈怕使烙?jì)120,算術(shù)編碼單元24對(duì)二進(jìn)制序列進(jìn)行編碼。反饋信號(hào)124則從編碼器24提供到概率估計(jì)模塊22,從而更新概率估計(jì)。經(jīng)過(guò)編碼的信息轉(zhuǎn)變成一個(gè)比特流122。以便傳遞到一個(gè)解碼器或者保存在一個(gè)存儲(chǔ)設(shè)備中以供稍后使用。
優(yōu)選地,編碼器10還包括一個(gè)能在將游程-等級(jí)對(duì)提供給算術(shù)編碼器20之前將塊中非零系數(shù)數(shù)目Nc提供給算術(shù)編碼器20的單元18,因此還對(duì)Nc進(jìn)行編碼并且將其包含在比特流122中。所述Nc則是由信號(hào)110來(lái)表示的。在使用Nc的情況下,沒(méi)有必要向解碼器發(fā)送一個(gè)塊結(jié)束(EOB)符號(hào)。在現(xiàn)有技術(shù)中,大小為0的等級(jí)值將被用于EOB符號(hào)。更具體地說(shuō),Nc是在變換和量化之后才被發(fā)現(xiàn)的并且是使用熵編碼來(lái)對(duì)其進(jìn)行編碼的。需要指出的是,在非零系數(shù)數(shù)目已知的情況下,不再有必要使用0等級(jí)值來(lái)用信號(hào)通知塊結(jié)束。因此,通過(guò)將量化系數(shù)值減1,可以對(duì)等級(jí)值進(jìn)行修改。
如圖10所示,在接收端使用解碼器50來(lái)接收編碼器10提供的比特流122。接收到的比特流表示的是經(jīng)過(guò)算術(shù)編碼的數(shù)據(jù)符號(hào),它是由參考數(shù)字202來(lái)表示的。一開(kāi)始,根據(jù)先前解碼的符號(hào),在上下文指派單元66中計(jì)算一個(gè)上下文,并且在概率估計(jì)單元62中更新二進(jìn)制序列值的概率估計(jì)。更新概率估計(jì)所依據(jù)的先前解碼符號(hào)由參考數(shù)字205示。上下文指派塊66中執(zhí)行的上下文指派以及概率估計(jì)塊62執(zhí)行的概率估計(jì)計(jì)算與編碼器10中執(zhí)行的相類(lèi)似。然后,接收到的比特202被饋送到算術(shù)編碼器60的算術(shù)解碼引擎64,在那里使用計(jì)算得到的上下文以及二進(jìn)制序列值204的當(dāng)前概率估計(jì)來(lái)將其轉(zhuǎn)換成經(jīng)過(guò)解碼的二進(jìn)制序列值206。在塊68中,經(jīng)過(guò)解碼的二進(jìn)制序列208被映射到游程和等級(jí)值。如果在編碼器10中對(duì)塊中非零系數(shù)數(shù)目Nc進(jìn)行編碼并且在接收到的比特流202中提供了所述數(shù)目,則將信號(hào)214提供給二進(jìn)制序列-數(shù)值映射模塊68,由此通過(guò)將等級(jí)值加1來(lái)恢復(fù)經(jīng)過(guò)量化的系數(shù)。
圖11是描述根據(jù)本發(fā)明優(yōu)選實(shí)施例的圖像編碼方法的流程圖。如圖所示,方法500始于編碼器接收一個(gè)圖像的步驟510。在步驟520,將接收到的圖像分成多個(gè)塊。在步驟530對(duì)每一個(gè)塊進(jìn)行掃描,并且在步驟540獲取塊中經(jīng)過(guò)量化的系數(shù)的等級(jí)和游程。與現(xiàn)有技術(shù)的編碼方案相比,在步驟550,本發(fā)明還在上下文的指派過(guò)程中使用了先前等級(jí)。特別地,如第1.1節(jié)所述,將上下文指派到代表量化系數(shù)等級(jí)值的二進(jìn)制序列的處理對(duì)先前編碼的等級(jí)值加以考慮。同樣,如1.2節(jié)所述,將上下文指派到代表量化系數(shù)游程值的二進(jìn)制序列的處理也考慮到了等級(jí)值。已指派的上下文傳送到一個(gè)算術(shù)編碼器,以便在步驟560中進(jìn)行編碼。另外,如第1.3節(jié)所述,Nc或非零量化系數(shù)的數(shù)目是在步驟530中掃描了所述塊的過(guò)程之中或是之后才得到確定的,并且在將Nc與上下文提供到一個(gè)解碼器之前在步驟560中對(duì)Nc進(jìn)行編碼。
可替換地,如圖11所示,在指派上下文時(shí)并未考慮到先前編碼的等級(jí)或游程,在這種情況下,通過(guò)將指示Nc的信號(hào)傳遞到接收端,可以改進(jìn)所述圖像編碼方法。如圖12所示,Nc是在步驟542中獲取和提供的,而不是為了在步驟550中指派上下文而在步驟540中獲取先前編碼的等級(jí)和游程。為了在步驟560中執(zhí)行編碼,Nc是在步驟550中指派上下文之前發(fā)送到算術(shù)編碼器的。借助于發(fā)送Nc,在這里不再有必要將EOB符號(hào)發(fā)送到解碼器。
盡管在這里針對(duì)本發(fā)明的優(yōu)選實(shí)施例而對(duì)其進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員將會(huì)理解,在不脫離本發(fā)明范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)方面的前述和多種其他改變、省略和背離。
權(quán)利要求
1.一種圖像編碼方法,其中,圖像被分成多個(gè)具有多個(gè)像素的塊,每一個(gè)像素都具有一個(gè)像素值,并且變換編碼操作對(duì)像素塊執(zhí)行以便產(chǎn)生一個(gè)相應(yīng)的變換系數(shù)值塊,所述變換系數(shù)值塊被以一種給定的掃描順序掃描,從而產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列,其中經(jīng)過(guò)掃描的陣列中的系數(shù)值是由多個(gè)數(shù)字對(duì)表示的,所述數(shù)字對(duì)具有第一數(shù)字和第二數(shù)字,第一和第二數(shù)字被指派給表示數(shù)字對(duì)的多個(gè)上下文之一,其特征在于數(shù)字對(duì)的第一數(shù)字是根據(jù)另一個(gè)數(shù)字對(duì)的第一數(shù)字而被指派給一個(gè)上下文的。
2.根據(jù)權(quán)利要求1的方法,其特征在于數(shù)字對(duì)的第一數(shù)字是根據(jù)先前指派給一個(gè)上下文的數(shù)字對(duì)的第一數(shù)字而被指派給一個(gè)上下文的。
3.根據(jù)權(quán)利要求1或2的方法,其特征在于所述多個(gè)上下文是基于上下文的算術(shù)編碼器的上下文。
4.根據(jù)權(quán)利要求1或2的方法,其特征在于所述多個(gè)上下文是基于上下文的二進(jìn)制算術(shù)編碼器的上下文。
5.根據(jù)權(quán)利要求4的方法,其特征在于所述數(shù)字對(duì)的第一數(shù)字被映射到一組二進(jìn)制序列,其中所述一組二進(jìn)制序列中的每一個(gè)都具有一個(gè)相關(guān)的二進(jìn)制序列編號(hào),并且能夠取第一值或第二值中的一個(gè)值。
6.根據(jù)權(quán)利要求4的方法,其特征在于所述數(shù)字對(duì)的第二數(shù)字被映射到一組二進(jìn)制序列,其中所述一組二進(jìn)制序列中的每一個(gè)都具有一個(gè)相關(guān)的二進(jìn)制序列編號(hào),并且能夠取第一值或第二值中的一個(gè)。
7.根據(jù)權(quán)利要求5或6的方法,其特征在于將數(shù)字映射到所述一組二進(jìn)制序列中給定的一個(gè)是通過(guò)將二進(jìn)制序列指派到第一值來(lái)指示的。
8.根據(jù)權(quán)利要求5、6或7的方法,其特征在于第一值是1,第二值是零。
9.根據(jù)權(quán)利要求5到8中任何一個(gè)權(quán)利要求的方法,其特征在于對(duì)根據(jù)另一個(gè)數(shù)字對(duì)的第一數(shù)字而將數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的處理來(lái)說(shuō),其中考慮到了該數(shù)字對(duì)中第一數(shù)字所映射到的二進(jìn)制序列編號(hào)。
10.根據(jù)權(quán)利要求1到9中任何一個(gè)權(quán)利要求的方法,其特征在于所述第一數(shù)字指示非零系數(shù)值,以及所述第二數(shù)字指示在所述非零系數(shù)值之前的連續(xù)零系數(shù)值的數(shù)目。
11.一種圖像編碼方法,其中圖像被分成多個(gè)具有多個(gè)像素的塊,每一個(gè)像素都具有一個(gè)像素值,并且變換編碼操作對(duì)像素塊執(zhí)行從而產(chǎn)生一個(gè)相應(yīng)的變換系數(shù)值塊,所述變換系數(shù)值塊是以一種給定的掃描順序掃描的,從而產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列,其中經(jīng)過(guò)掃描的陣列中的系數(shù)值是由多個(gè)數(shù)字對(duì)表示的,所述數(shù)字對(duì)具有第一數(shù)字和第二數(shù)字,所述第一數(shù)字和第二數(shù)字被指派到表示數(shù)字對(duì)的多個(gè)上下文之一,其特征在于數(shù)字對(duì)的第二數(shù)字根據(jù)該數(shù)字對(duì)的第一數(shù)字而被指派給一個(gè)上下文。
12.根據(jù)權(quán)利要求11的方法,其特征在于所述多個(gè)上下文是基于上下文的算術(shù)編碼器的上下文。
13.根據(jù)權(quán)利要求11的方法,其特征在于所述多個(gè)上下文是基于上下文的二進(jìn)制算術(shù)編碼器的上下文。
14.根據(jù)權(quán)利要求13的方法,其特征在于所述數(shù)字對(duì)的第一數(shù)字被映射到一組二進(jìn)制序列,其中所述二進(jìn)制序列中的每一個(gè)都具有一個(gè)相關(guān)的二進(jìn)制序列編號(hào),并且每一個(gè)都能取第一值或第二值之一。
15.根據(jù)權(quán)利要求13的方法,其特征在于所述數(shù)字對(duì)的第二數(shù)字被映射到一組二進(jìn)制序列,其中所述一組二進(jìn)制序列中的每一個(gè)都具有一個(gè)相關(guān)的二進(jìn)制序列編號(hào),并且都能取第一值或第二值之一。
16.根據(jù)權(quán)利要求14或15的方法,其特征在于將數(shù)字映射到所述一組二進(jìn)制序列中給定的一個(gè)是通過(guò)將二進(jìn)制序列的值指派給第一值來(lái)指示的。
17.根據(jù)權(quán)利要求14、15或16的方法,其特征在于第一值是1且第二值是0。
18.根據(jù)權(quán)利要求14到17中任何一個(gè)權(quán)利要求的方法,其特征在于根據(jù)數(shù)字對(duì)中的第一數(shù)字而將數(shù)字對(duì)中的第二數(shù)字指派給一個(gè)上下文的處理考慮到了數(shù)字對(duì)的第二數(shù)字映射到的二進(jìn)制序列編號(hào)。
19.根據(jù)權(quán)利要求11到18中任何一個(gè)權(quán)利要求的方法,其特征在于所述第一數(shù)字指示非零系數(shù)值,以及所述第二數(shù)字指示在所述非零系數(shù)值之前的連續(xù)零系數(shù)值的數(shù)目。
20.一種編碼器,包括用于將圖像分成多個(gè)具有多個(gè)像素的塊的裝置,其中每一個(gè)像素都具有一個(gè)象素值,還包括用于對(duì)像素塊執(zhí)行變換編碼操作從而產(chǎn)生一個(gè)相應(yīng)的變換系數(shù)值塊的裝置;用于以給定的掃描順序掃描變換系數(shù)值塊以便產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值塊的裝置;用于使用多個(gè)數(shù)字對(duì)來(lái)表示所述經(jīng)過(guò)掃描的陣列中的系數(shù)值的裝置,所述數(shù)字對(duì)具有第一數(shù)字和第二數(shù)字;以及用于將第一和第二數(shù)字指派給表示所述數(shù)字對(duì)的多個(gè)上下文之一的裝置,其特征在于所述編碼器包括用于根據(jù)另一個(gè)數(shù)字對(duì)的第一數(shù)字而將一個(gè)數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的裝置。
21.根據(jù)權(quán)利要求20的編碼器,其特征在于另一個(gè)數(shù)字對(duì)是先前指派給一個(gè)上下文的數(shù)字對(duì)。
22.根據(jù)權(quán)利要求20或21的編碼器,其特征在于所述多個(gè)上下文是基于上下文的算術(shù)編碼器的上下文。
23.根據(jù)權(quán)利要求20或21的編碼器,其特征在于所述多個(gè)上下文是基于上下文的二進(jìn)制算術(shù)編碼器的上下文。
24.根據(jù)權(quán)利要求23的編碼器,其特征在于它還包括用于將所述數(shù)字對(duì)的第一數(shù)字映射到一組二進(jìn)制序列的裝置,其中所述一組二進(jìn)制序列中的每一個(gè)都具有一個(gè)相關(guān)聯(lián)的二進(jìn)制序列編號(hào)并且能夠取第一值或第二值之一。
25.根據(jù)權(quán)利要求23的編碼器,其特征在于它還包括用于將所述數(shù)字對(duì)的第二數(shù)字映射到一組二進(jìn)制序列的裝置,其中所述一組二進(jìn)制序列中的每一個(gè)都具有一個(gè)相關(guān)聯(lián)的二進(jìn)制序列編號(hào)并且能夠取第一值或第二值之一。
26.根據(jù)權(quán)利要求24或25的編碼器,其特征在于它還包括用于通過(guò)將所述二進(jìn)制序列指派給第一值而將一個(gè)數(shù)字映射到所述一組二進(jìn)制序列中指定的一個(gè)二進(jìn)制序列的裝置。
27.根據(jù)權(quán)利要求24、25或26的編碼器,其特征在于第一值是1并且第二值是0。
28.根據(jù)權(quán)利要求24到27中任何一個(gè)權(quán)利要求的編碼器,其特征在于所述用于根據(jù)另一個(gè)數(shù)字對(duì)的第一數(shù)字而將一個(gè)數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的裝置被安排為對(duì)該數(shù)字對(duì)中第一數(shù)字所映射到的二進(jìn)制序列編號(hào)加以考慮。
29.根據(jù)權(quán)利要求20到28中任何一個(gè)權(quán)利要求的編碼器,其特征在于所述第一數(shù)字指示非零系數(shù)值,以及所述第二數(shù)字指示在所述非零系數(shù)值之前的連續(xù)零系數(shù)值的數(shù)目。
30.一種編碼器,包括用于將圖像分成多個(gè)具有多個(gè)像素的塊的裝置,其中每一個(gè)像素都具有一個(gè)象素值,此外還包括用于對(duì)像素塊執(zhí)行變換編碼操作以便產(chǎn)生一個(gè)相應(yīng)的變換系數(shù)值塊的裝置;用于以給定掃描順序掃描變換系數(shù)值塊以便產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列的裝置;用于使用多個(gè)數(shù)字對(duì)來(lái)表示所述經(jīng)過(guò)掃描的陣列中的系數(shù)值的裝置,所述數(shù)字對(duì)具有第一數(shù)字和第二數(shù)字的;以及用于將第一和第二數(shù)字指派給表示所述數(shù)字對(duì)的多個(gè)上下文之一的裝置,其特征在于所述編碼器包括用于根據(jù)數(shù)字對(duì)的第一數(shù)字而將該數(shù)字對(duì)的第二數(shù)字指派給一個(gè)上下文的裝置。
31.根據(jù)權(quán)利要求30的編碼器,其特征在于所述多個(gè)上下文是基于上下文的算術(shù)編碼器的上下文。
32.根據(jù)權(quán)利要求30的編碼器,其特征在于所述多個(gè)上下文是基于上下文的二進(jìn)制算術(shù)編碼器的上下文。
33.根據(jù)權(quán)利要求32的編碼器,其特征在于它還包括用于將所述數(shù)字對(duì)的第一數(shù)字映射到一組二進(jìn)制序列的裝置,其中所述二進(jìn)制序列中的每一個(gè)都具有一個(gè)相關(guān)聯(lián)的二進(jìn)制序列編號(hào)并且能夠取第一值或第二值之一。
34.根據(jù)權(quán)利要求32的編碼器,其特征在于它還包括用于將所述數(shù)字對(duì)的第二數(shù)字映射到一組二進(jìn)制序列的裝置,其中所述二進(jìn)制序列中的每一個(gè)都具有一個(gè)相關(guān)聯(lián)的二進(jìn)制序列編號(hào)并且能夠取第一值或第二值之一。
35.根據(jù)權(quán)利要求33或34的編碼器,其特征在于它還包括用于通過(guò)將所述二進(jìn)制序列指派給第一值從而將一個(gè)數(shù)字映射到所述一組二進(jìn)制序列中指定的一個(gè)二進(jìn)制序列的裝置。
36.根據(jù)權(quán)利要求33、34或35的編碼器,其特征在于第一值是1并且第二值是0。
37.根據(jù)權(quán)利要求33到36中任何一個(gè)權(quán)利要求的編碼器,其特征在于所述用于根據(jù)數(shù)字對(duì)中的第一數(shù)字而將該數(shù)字對(duì)中的第二數(shù)字指派給一個(gè)上下文的裝置對(duì)該數(shù)字對(duì)中的第二數(shù)字所映射到的二進(jìn)制序列編號(hào)加以考慮。
38.根據(jù)權(quán)利要求30到37中任何一個(gè)權(quán)利要求的編碼器,其特征在于所述第一數(shù)字指示非零系數(shù)值,以及所述第二數(shù)字指示在所述非零系數(shù)值之前的連續(xù)零系數(shù)值的數(shù)目。
39.一種圖像編碼方法,其中,圖像被分成多個(gè)具有多個(gè)像素的塊,每一個(gè)像素都具有一個(gè)像素值,并且對(duì)像素塊執(zhí)行變換編碼操作以便產(chǎn)生相應(yīng)的變換系數(shù)值塊,所述方法的特征在于提供指示變換系數(shù)值塊中的非零系數(shù)值的數(shù)目的數(shù)字;以及將所述數(shù)字指派給一個(gè)表示所述數(shù)字的上下文。
40.根據(jù)權(quán)利要求39的方法,其特征在于在考慮到另一個(gè)數(shù)字所指派到的上下文的情況下,將指示所述變換系數(shù)值塊中的非零系數(shù)值數(shù)目的數(shù)字指派給一個(gè)上下文,其中所述另一個(gè)數(shù)字指示另一個(gè)變換系數(shù)塊中非零系數(shù)值的數(shù)目。
41.根據(jù)權(quán)利要求39或40的方法,其特征在于以一種給定的掃描順序掃描所述變換系數(shù)值塊,以便產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列,以及使用具有第一數(shù)字和第二數(shù)字的多個(gè)數(shù)字對(duì)來(lái)表示經(jīng)過(guò)掃描的陣列中的系數(shù)值。
42.根據(jù)權(quán)利要求41的方法,其特征在于所述第一數(shù)字指示非零系數(shù)值;以及所述第二數(shù)字指示所述非零系數(shù)值之前的連續(xù)零系數(shù)值的數(shù)目。
43.根據(jù)權(quán)利要求41或42的方法,其特征在于提供所述指示變換系數(shù)值塊中的非零系數(shù)值的數(shù)目的數(shù)字,從而避免發(fā)送一個(gè)塊結(jié)束指示,其中所述塊結(jié)束指示表示經(jīng)過(guò)掃描的系數(shù)值陣列中的最后一個(gè)非零系數(shù)值。
44.根據(jù)權(quán)利要求41、42或43的方法,其特征在于第一數(shù)字與非零系數(shù)值減1的大小相等。
45.一種編碼器,包括用于將圖像分成多個(gè)具有多個(gè)像素的塊的裝置,其中每一個(gè)像素都具有一個(gè)像素值,并且還包括用于對(duì)像素塊執(zhí)行變換編碼操作以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的裝置,其特征在于,所述編碼器包括用于提供一個(gè)指示變換系數(shù)值塊中的非零系數(shù)值數(shù)目的數(shù)字的裝置;以及用于將所述數(shù)字指派給一個(gè)表示所述數(shù)字的上下文的裝置。
46.根據(jù)權(quán)利要求45的編碼器,其特征在于所述用于把指示所述變換系數(shù)值塊中的非零變換系數(shù)值數(shù)目的數(shù)字指派給一個(gè)上下文的裝置被安排為對(duì)另一個(gè)這樣的數(shù)字所指派到的上下文加以考慮,其中所述另一個(gè)這樣的數(shù)字指示另一個(gè)變換系數(shù)塊中的非零變換系數(shù)值數(shù)目。
47.根據(jù)權(quán)利要求45或46的編碼器,其特征在于它還包括用于以給定掃描順序掃描變換系數(shù)值塊以便產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列的裝置,以及用于借助多個(gè)具有第一數(shù)字和第二數(shù)字的數(shù)字對(duì)來(lái)表示經(jīng)過(guò)掃描的陣列中的系數(shù)值的裝置。
48.根據(jù)權(quán)利要求47的方法,其特征在于所述第一數(shù)字指示非零系數(shù)值;以及所述第二數(shù)字指示所述非零系數(shù)值之前的連續(xù)零系數(shù)值的數(shù)目。
49.一種計(jì)算機(jī)程序,包括用于將圖像分成多個(gè)具有多個(gè)像素的塊的代碼,其中每一個(gè)像素都具有一個(gè)像素值,此外還包括用于對(duì)像素值塊執(zhí)行變換編碼操作以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的代碼;用于以給定的掃描順序掃描變換系數(shù)值塊以便產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列的代碼;用于使用多個(gè)數(shù)字來(lái)表示經(jīng)過(guò)掃描的陣列中的系數(shù)值的代碼,其中所述數(shù)字對(duì)具有第一數(shù)字和第二數(shù)字;以及用于將第一數(shù)字和第二數(shù)字指派給表示所述數(shù)字對(duì)的多個(gè)上下文之一的代碼,其特征在于所述計(jì)算機(jī)程序還包括用于根據(jù)另一個(gè)數(shù)字對(duì)中的第一數(shù)字而將其中一個(gè)數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的代碼。
50.一種計(jì)算機(jī)程序,包括用于將圖像分成多個(gè)具有多個(gè)像素的塊的代碼,其中每一個(gè)像素都具有一個(gè)像素值,此外還包括用于對(duì)像素值塊執(zhí)行變換編碼操作以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的代碼;用于以給定的掃描順序掃描變換系數(shù)值塊以便產(chǎn)生經(jīng)過(guò)掃描的系數(shù)值陣列的代碼;用于使用多個(gè)數(shù)字來(lái)表示經(jīng)過(guò)掃描的陣列中的系數(shù)值的代碼,其中所述數(shù)字對(duì)具有第一數(shù)字和第二數(shù)字;以及用于將第一數(shù)字和第二數(shù)字指派給表示所述數(shù)字對(duì)的多個(gè)上下文之一的代碼,其特征在于所述計(jì)算機(jī)程序還包括用于根據(jù)數(shù)字對(duì)中的第一數(shù)字來(lái)把該數(shù)字對(duì)中的第二數(shù)字指派給一個(gè)上下文的代碼。
51.一種計(jì)算機(jī)程序,包括用于將圖像分成多個(gè)具有多個(gè)像素的塊的裝置,其中每一個(gè)像素都具有一個(gè)像素值,此外還包括用于對(duì)像素塊執(zhí)行變換編碼操作以便產(chǎn)生相應(yīng)的變換系數(shù)值塊的代碼,其特征在于所述計(jì)算機(jī)程序包括用于提供一個(gè)指示變換系數(shù)值塊中非零系數(shù)值數(shù)目的數(shù)字的代碼,以及用于將所述數(shù)字指派給表示該數(shù)字的上下文的代碼。
52.一種圖像編碼方法,其中圖像被表示為多個(gè)圖像塊,并且所述圖像塊中的至少一個(gè)被表示為有序的變換系數(shù)陣列,使用基于上下文的算術(shù)編碼來(lái)對(duì)所述有序的變換系數(shù)陣列進(jìn)行編碼,以便產(chǎn)生一個(gè)表示有序系數(shù)陣列的碼字,所述系數(shù)中的每一個(gè)被指派給上下文,其特征在于,第一系數(shù)是參考處于有序陣列中所述第一系數(shù)之前的第二系數(shù)而被指派給一個(gè)上下文的。
53.一種基于上下文的算術(shù)編碼方法,其中數(shù)據(jù)符號(hào)陣列是用一個(gè)碼字來(lái)表示的,所述陣列中的數(shù)據(jù)符號(hào)是包含了一個(gè)第一數(shù)字和一個(gè)第二數(shù)字的數(shù)字對(duì),所述數(shù)字對(duì)中的第一數(shù)字指派給一個(gè)從表示第一數(shù)字的多個(gè)上下文中選出的上下文,所述多個(gè)上下文中的每一個(gè)表示的都是指派給上下文的數(shù)據(jù)符號(hào),其特征在于通過(guò)參考處于有序陣列中處于第一數(shù)據(jù)符號(hào)之前的第二符號(hào)來(lái)將有序陣列中的第一數(shù)據(jù)符號(hào)指派給一個(gè)上下文。
54.一種基于上下文的算術(shù)編碼方法,其中數(shù)據(jù)符號(hào)陣列是用一個(gè)碼字來(lái)表示的,所述陣列中的數(shù)據(jù)符號(hào)是包含了一個(gè)第一數(shù)字和一個(gè)第二數(shù)字的數(shù)字對(duì),所述數(shù)字對(duì)中的第一數(shù)字指派給一個(gè)從表示第一數(shù)字的多個(gè)上下文中選出的上下文,所述數(shù)字對(duì)中的第二數(shù)字則指派給一個(gè)從表示第二數(shù)字的多個(gè)上下文中選出的上下文,其特征在于基于所述數(shù)字對(duì)中的一個(gè)數(shù)字對(duì)的第一數(shù)字而將另一個(gè)數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文。
55.一種基于上下文的算術(shù)解碼方法,其中數(shù)據(jù)符號(hào)陣列是用碼字來(lái)表示的,所述陣列中的數(shù)據(jù)符號(hào)是包含了第一數(shù)字和第二數(shù)字的數(shù)字對(duì),數(shù)字對(duì)中的第一數(shù)字被指派給從代表第一數(shù)字的多個(gè)上下文中選出的上下文,數(shù)字對(duì)中的第二數(shù)字則被指派給從代表第二數(shù)字的多個(gè)上下文中選出的上下文,其特征在于數(shù)字對(duì)的第一數(shù)字是基于所述數(shù)字對(duì)中另一個(gè)數(shù)字對(duì)的第一數(shù)字而被指派給上下文的。
56.一種基于上下文的算術(shù)編碼方法,其中數(shù)據(jù)符號(hào)陣列是用碼字來(lái)表示的,所述陣列中的數(shù)據(jù)符號(hào)是包含了第一數(shù)字和第二數(shù)字的數(shù)字對(duì),數(shù)字對(duì)中的第一數(shù)字被指派給從代表第一數(shù)字的多個(gè)上下文中選出的上下文,數(shù)字對(duì)中的第二數(shù)字則被指派給從代表第二數(shù)字的多個(gè)上下文中選出的上下文,其特征在于數(shù)字對(duì)的第二數(shù)字是基于該數(shù)字對(duì)的第一數(shù)字而被指派給一個(gè)上下文的。
57.一種基于上下文的算術(shù)解碼方法,其中數(shù)據(jù)符號(hào)陣列是從表示所述陣列的碼字中解碼的,所述陣列中的數(shù)據(jù)符號(hào)是包含了第一數(shù)字和第二數(shù)字的數(shù)字對(duì),數(shù)字對(duì)的第一數(shù)字被指派給從代表第一數(shù)字的多個(gè)上下文中選出的上下文,而數(shù)字對(duì)的第二數(shù)字則指派給從代表第二數(shù)字的多個(gè)上下文中選出的上下文,其特征在于數(shù)字對(duì)的第二數(shù)字是基于該數(shù)字對(duì)中的第一數(shù)字而被指派給上下文的。
58.一種基于上下文的算術(shù)編碼方法,其中數(shù)據(jù)符號(hào)陣列是用碼字來(lái)表示的,其特征在于提供一個(gè)指示所述陣列中非零數(shù)據(jù)符號(hào)數(shù)目的數(shù)字,以及將所述數(shù)字指派給一個(gè)表示所述數(shù)字的上下文。
59.一種基于上下文的算術(shù)編碼器,包括用于使用碼字來(lái)表示數(shù)據(jù)符號(hào)陣列的裝置,所述陣列中的數(shù)據(jù)符號(hào)是包括第一數(shù)字和第二數(shù)字的數(shù)字對(duì);用于將數(shù)字對(duì)的第一數(shù)字指派給從代表第一數(shù)字的多個(gè)上下文中選出的一個(gè)上下文的裝置;以及用于將數(shù)字對(duì)的第二數(shù)字指派給從代表第二數(shù)字的多個(gè)上下文中選出的上下文的裝置,其特征在于所述編碼器包括用于根據(jù)所述數(shù)字對(duì)中另一個(gè)數(shù)字對(duì)的第一數(shù)字而將數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的裝置。
60.一種基于上下文的算術(shù)解碼器,包括用于從表示數(shù)據(jù)符號(hào)陣列的碼字中解碼出所述陣列的裝置,所述陣列中的數(shù)據(jù)符號(hào)是包括第一數(shù)字和第二數(shù)字的數(shù)字對(duì);用于將數(shù)字對(duì)的第一數(shù)字指派給從代表第一數(shù)字的多個(gè)上下文中選出的上下文的裝置;以及將數(shù)字對(duì)的第二數(shù)字指派給從代表第二數(shù)字的多個(gè)上下文中選出的上下文的裝置,其特征在于所述解碼器還包括用于根據(jù)所述數(shù)字對(duì)中另一個(gè)數(shù)字對(duì)的第一數(shù)字而將數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文的裝置。
61.一種基于上下文的算術(shù)編碼器,包括使用碼字來(lái)表示數(shù)據(jù)符號(hào)陣列的裝置,所述陣列中的數(shù)據(jù)符號(hào)是包括第一數(shù)字和第二數(shù)字的數(shù)字對(duì);用于將數(shù)字對(duì)的第一數(shù)字指派給從代表第一數(shù)字的多個(gè)上下文中選出的上下文的裝置;以及用于將數(shù)字對(duì)的第二數(shù)字指派給從代表第二數(shù)字的多個(gè)上下文中選出的上下文的裝置,其特征在于所述編碼器還包括用于根據(jù)數(shù)字對(duì)中的第一數(shù)字而將該數(shù)字對(duì)中的第二數(shù)字指派給一個(gè)上下文的裝置。
62.一種基于上下文的算術(shù)解碼器,包括用于從表示數(shù)據(jù)符號(hào)陣列的碼字中解碼出所述陣列的裝置,其中所述陣列中的數(shù)據(jù)符號(hào)是包括第一數(shù)字和第二數(shù)字的數(shù)字對(duì);用于將數(shù)字對(duì)的第一數(shù)字指派給從代表第一數(shù)字的多個(gè)上下文中選出的上下文的裝置;以及將數(shù)字對(duì)的第二數(shù)字指派給從代表第二數(shù)字的多個(gè)上下文中選出的上下文的裝置,其特征在于所述解碼器包括用于根據(jù)數(shù)字對(duì)中的第一數(shù)字而將該數(shù)字對(duì)中的第二數(shù)字指派給一個(gè)上下文的裝置。
63.一種基于上下文的編碼器,包括使用碼字來(lái)表示數(shù)據(jù)符號(hào)陣列的裝置,其特征在于所述編碼器包括用于提供一個(gè)指示所述陣列中非零數(shù)據(jù)符號(hào)數(shù)目的數(shù)字的裝置,以及用于將所述數(shù)字指派給一個(gè)表示該數(shù)字的上下文的裝置。
全文摘要
一種圖像編碼方法,其中圖像被分成了具有多個(gè)像素的塊。對(duì)像素塊執(zhí)行變換編碼操作以便產(chǎn)生相應(yīng)的變換系數(shù)值塊,其中對(duì)所述變換系數(shù)值塊進(jìn)行掃描,以便產(chǎn)生一個(gè)經(jīng)過(guò)掃描的系數(shù)值陣列,所述陣列由具有第一和第二數(shù)字的多個(gè)數(shù)字對(duì)表示。第一和第二數(shù)字指派到了表示所述數(shù)字對(duì)的多個(gè)上下文(14)之一。在這里,根據(jù)一個(gè)數(shù)字對(duì)的第一數(shù)字而將另一個(gè)數(shù)字對(duì)的第一數(shù)字指派給一個(gè)上下文??商鎿Q地,一個(gè)數(shù)字對(duì)中的第二數(shù)字是基于數(shù)字對(duì)(16)中的第一數(shù)字而被指派給一個(gè)上下文的。此外還確定了一個(gè)指示變換系數(shù)值塊中非零系數(shù)值數(shù)目的數(shù)字,并且將其指派給一個(gè)上下文。
文檔編號(hào)G06T9/00GK1585958SQ02822672
公開(kāi)日2005年2月23日 申請(qǐng)日期2002年9月12日 優(yōu)先權(quán)日2001年9月14日
發(fā)明者M·卡策維茨, R·庫(kù)爾切倫 申請(qǐng)人:諾基亞有限公司