專利名稱:將信號(hào)編碼成位流的方法
發(fā)明領(lǐng)域本發(fā)明涉及一種將信號(hào)編碼成位流的方法,所述信號(hào)包含值塊(blocks of values)。本發(fā)明也涉及一種使用這樣一個(gè)編碼方法的視頻編碼器。本發(fā)明也涉及對(duì)這樣一個(gè)位流的解碼的方法。本發(fā)明也涉及一種實(shí)現(xiàn)這樣的解碼方法的視頻解碼器。本發(fā)明最后涉及一種用于將一個(gè)第一位流轉(zhuǎn)碼(transcoding)成這樣一個(gè)位流的視頻轉(zhuǎn)碼器。
本發(fā)明在用于多媒體系統(tǒng)的視頻的壓縮、傳輸和存儲(chǔ)領(lǐng)域中是特別有關(guān)的。
背景技術(shù):
公開號(hào)為WO01/17268A1的國(guó)際專利申請(qǐng)公開了一種方法和裝置,用于將一個(gè)信號(hào)編碼,例如將一個(gè)圖像序列編碼,以獲得一個(gè)可縮放的(scalable)位流。該信號(hào)包含值塊。每個(gè)塊表現(xiàn)為一個(gè)位平面(bit planes)序列,這些值被按照遞減的位平面重要性而掃描和傳輸。對(duì)于每個(gè)位平面,掃描和傳輸是在一個(gè)矩形掃描區(qū)域中從該塊的一角開始進(jìn)行的。通過在一個(gè)所需位置處簡(jiǎn)單地截?cái)辔涣?,生成的位流被量化到一個(gè)所需的比特率。
這個(gè)方法的一個(gè)缺點(diǎn)是,位平面不能用像游程長(zhǎng)度碼(Run-LengthCodes)和可變長(zhǎng)度碼那樣的熵碼(entropy codes)被高效地壓縮,因?yàn)樗鼈儧]有足夠的相關(guān)性。因此,通過首先傳輸塊的最重要的值以及通過引入各個(gè)值之間的分層從屬關(guān)系,來獲得壓縮效率。這意味著,接收位流的解碼器必須考慮所述的分層從屬關(guān)系,這就增加了編碼和解碼的延遲。此外,由于位平面內(nèi)的1和0的統(tǒng)計(jì)是隨機(jī)的,熵編碼不提供有效的壓縮,因此需要大的查找表(LUT)。因此,需要大存儲(chǔ)容量來存儲(chǔ)所述查找表。另一點(diǎn)是,由于值之間的分層從屬關(guān)系,接收位流的解碼器事先不再知道塊值的掃描次序,因此不能容易地實(shí)現(xiàn)并行處理。
因此,解碼過程既復(fù)雜又昂貴,不能容易地加速。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是提供一種方法,該方法將一個(gè)信號(hào)編碼,以獲得一個(gè)位流,該位流能以更簡(jiǎn)單、更快速、更便宜的方式被解碼。
這是用一種把一個(gè)信號(hào)編碼成位流的方法實(shí)現(xiàn)的,所述信號(hào)包含值塊,所述方法包含以下步驟對(duì)一個(gè)值塊施加一個(gè)變換,以便得到一個(gè)經(jīng)變換的塊,所述經(jīng)變換的塊包含一定數(shù)目的系數(shù),所述數(shù)目大于1;按照一個(gè)系數(shù)掃描次序掃描所述經(jīng)變換的塊的系數(shù);將一個(gè)被掃描的系數(shù)劃分成編號(hào)為1到K的K個(gè)位組,使得至少一個(gè)位組包含至少2個(gè)位,并使得所述被掃描的系數(shù)是這K個(gè)位組的串聯(lián);用熵碼把第k個(gè)位組熵編碼成第k個(gè)熵編碼的位組;由經(jīng)變換的塊的被掃描的系數(shù)的K個(gè)熵編碼的位組,形成一個(gè)塊位流,所述輸出位流包含所述塊位流。
把一個(gè)被掃描的系數(shù)劃分為一定數(shù)目的位組,所述位組一般包含2或3個(gè)位,且互相獨(dú)立地對(duì)所述位組的進(jìn)行熵編碼,這種做法的一個(gè)優(yōu)點(diǎn)是,需要短的熵碼。另一個(gè)優(yōu)點(diǎn)是,使用的熵碼較少。因此,不但減少了熵碼查找表(LUT)所需的存儲(chǔ)容量,而且減少對(duì)存儲(chǔ)器的訪問次數(shù)。
與孤立的位平面相比,形成位組或位平面組的一個(gè)優(yōu)點(diǎn)是,在位組內(nèi)存在一個(gè)相關(guān)性。因此,熵編碼可得到良好的壓縮效率,而且不需要位組的重新排序。因此,編碼和解碼操作是簡(jiǎn)單地按照掃描次序完成的,而掃描次序是任何編碼器和解碼器事先都知道的。
此外,K個(gè)位組是互相獨(dú)立的,因此能并行地完成熵編碼,這就能加快編碼過程。
因此,按照本發(fā)明的方法更簡(jiǎn)單、更便宜、更快速。
本發(fā)明也涉及一種對(duì)這樣一個(gè)輸出位流解碼的方法。
在本發(fā)明的第一實(shí)施例中,將被掃描的系數(shù)的K個(gè)熵編碼的位組組合在一起以形成一個(gè)熵編碼的系數(shù),所述塊位流包含所述熵編碼的系數(shù)的串聯(lián)。所述本發(fā)明第一實(shí)施例的一個(gè)優(yōu)點(diǎn)是非常簡(jiǎn)單。
在本發(fā)明的第二實(shí)施例中,所述塊位流包含K個(gè)熵編碼的塊層,其中第k個(gè)熵編碼的塊層包含經(jīng)變換的塊的I個(gè)被掃描的系數(shù)的第k個(gè)熵編碼的位組。將塊位流劃分成K個(gè)熵編碼的塊層,這些熵編碼的塊層可以互相獨(dú)立地被熵解碼。也有可能不把所有的熵編碼的塊層解碼,如果沒有被解碼的熵編碼的塊層是由較低有效位組成的話。因此,所述第二實(shí)施例的一個(gè)優(yōu)點(diǎn)是提供具有K個(gè)質(zhì)量水平的信噪比(SNR)可縮放性。不獲得細(xì)粒度可縮放性,而用位平面壓縮方法則獲得細(xì)粒度可縮放性。本發(fā)明第二實(shí)施例的一個(gè)優(yōu)點(diǎn),是提供細(xì)粒度可縮放性與實(shí)現(xiàn)成本之間的平衡。
本發(fā)明也涉及一種視頻編碼器、視頻解碼器和視頻轉(zhuǎn)碼器。
本發(fā)明特別適用于低成本、硬件視頻壓縮的領(lǐng)域。
將參照各附圖進(jìn)一步說明本發(fā)明。
圖1a表示按照本發(fā)明第一實(shí)施例的把一個(gè)信號(hào)編碼的方法的流程圖;圖1b描述按照本發(fā)明第一實(shí)施例的輸出位流的一個(gè)可能的結(jié)構(gòu);圖2表示按照本發(fā)明的將一個(gè)經(jīng)轉(zhuǎn)換的塊的系數(shù)劃分成多個(gè)位組的步驟;圖3表示按照本發(fā)明第一實(shí)施例的解碼方法的流程圖;圖4a表示按照本發(fā)明第二實(shí)施例的把一個(gè)信號(hào)編碼的方法的流程圖;圖4b描述按照本發(fā)明第二實(shí)施例的輸出位流的一個(gè)可能的結(jié)構(gòu);圖5表示按照本發(fā)明第二實(shí)施例的解碼方法的流程圖;圖6以功能方式表示按照本發(fā)明第二實(shí)施例的視頻編碼器;圖7以功能方式表示按照本發(fā)明第二實(shí)施例的視頻解碼器;圖8以功能方式表示按照本發(fā)明第二實(shí)施例的視頻轉(zhuǎn)碼器。
具體實(shí)施方式
以下將按照本發(fā)明的方法應(yīng)用到一個(gè)包含一個(gè)圖像系列的視頻信號(hào)并執(zhí)行一個(gè)MPEG類型的(MPEG-like)視頻壓縮方案。
圖1a表示按照本發(fā)明方法的流程圖。用一種變換1,例如用熟知的離散余弦變換(DCT),對(duì)一個(gè)信號(hào)IS的一個(gè)值塊進(jìn)行變換,所述值塊包含8×8像素值。獲得一個(gè)變換的塊TB。所述經(jīng)變換的塊包含I個(gè)系數(shù)Ci,其中,I是大于1的整數(shù),i是包含在區(qū)間[1,I]中的整數(shù)。所述系數(shù)Ci由一個(gè)掃描步驟2掃描。步驟2例如對(duì)經(jīng)變換的塊的系數(shù)Ci完成之字形掃描,這對(duì)于所屬領(lǐng)域的熟練人員來說是熟知的。
按照本發(fā)明的方法進(jìn)一步包含一個(gè)把一個(gè)系數(shù)Ci分解成K個(gè)位組的步驟3,其中K是大于1的整數(shù)。所述K個(gè)位組這樣來選擇得以使至少一個(gè)位組包含至少2個(gè)位,并且使得通過串聯(lián)這K個(gè)位組而獲得系數(shù)Ci。換言之,在系數(shù)Ci內(nèi)形成了K個(gè)由連續(xù)位構(gòu)成的組。
對(duì)于具體的如類似于MPEG的視頻壓縮方案而言,系數(shù)Ci包含11個(gè)位,步驟3把系數(shù)Ci分解為4個(gè)位組,這些位組例如是包含3個(gè)最高有效位的第一組Ci,1、包含3個(gè)位的第二組Ci,2、包含3個(gè)位的第三組Ci,3和包含2個(gè)較低有效位的第四組Ci,4。
按照本發(fā)明的方法進(jìn)一步包含一個(gè)用熵碼把這K個(gè)位組編碼的步驟4。所述K個(gè)位組互相獨(dú)立地被熵編碼。所述熵碼例如是可變長(zhǎng)度碼。獲得K個(gè)熵編碼的位組ECi,1至ECi,K。步驟4完成對(duì)系數(shù)C1至CI的分層的熵編碼。
由一個(gè)形成步驟5將所述K個(gè)熵編碼的位組放入一個(gè)塊位流BBS中。
最后,由包含在輸入信號(hào)中的各值塊的塊位流形成一個(gè)輸出位流BS。
圖2表示按照本發(fā)明第一實(shí)施例將一個(gè)DCT塊10分解為一個(gè)分塊11的分解步驟3。所述DCT塊10被表示成一個(gè)矩形的平行六面體,寬度BW為8個(gè)系數(shù),長(zhǎng)度BL為8個(gè)系數(shù),深度D為11個(gè)位平面BP1至BP11。第一個(gè)系數(shù)C1也叫直接成分(Direct Component)系數(shù),代表信號(hào)的平均值。其它系數(shù)C2至C64是信號(hào)的頻率成分。步驟3把一個(gè)系數(shù)Ci分解成4個(gè)位組Ci,1、Ci,2、Ci,3、Ci,4。參看圖2,對(duì)于系數(shù)C64來說,第一位組C64,1包含3個(gè)位,它們是三個(gè)最高有效位(MSB),第二位組C64,2包含3個(gè)位,第三位組C64,3包含3個(gè)位,第四位組C64,4包含2個(gè)最低有效位(LSB)。
步驟4用象可變長(zhǎng)度碼那樣的熵碼把一個(gè)第k位組Ci,k編碼成熵編碼的位組ECi,k。使用一個(gè)查找表(LUT),查找表考慮到對(duì)各塊所來自的塊位流BBS的某種統(tǒng)計(jì),例如有關(guān)塊的類型或幀的類型的統(tǒng)計(jì)。
應(yīng)當(dāng)指出,可以使用傳統(tǒng)的MPEG類型的編碼器的VLC LUT。
可以通過一個(gè)使用至少包含高度字(height words)的LUT的霍夫曼(Huffman)可變長(zhǎng)度編碼器,把一個(gè)由三個(gè)位平面組成的第k位組進(jìn)行編碼,其中k是包含在范圍[1,K]內(nèi)的整數(shù)。事實(shí)上,3位的長(zhǎng)度有23=8個(gè)可能的字。因此,用VLC查找表對(duì)全部11位系數(shù)Ci的無損編碼,總共需要8+8+8+4=28個(gè)字。
應(yīng)當(dāng)指出的是,傳統(tǒng)的11位DCT系數(shù)的霍夫曼可變長(zhǎng)度編碼,需要一個(gè)包含211=2048個(gè)字的LUT。因此,標(biāo)準(zhǔn)VLC LUT只有一小部分被有效使用。按照本發(fā)明的方法的一個(gè)優(yōu)點(diǎn)因此是允許使用、存儲(chǔ)和訪問短得多的查找表。
也應(yīng)指出的是,11位長(zhǎng)度DCT系數(shù)的霍夫曼編碼提供最大長(zhǎng)度為211-1=2047的字。在本發(fā)明的第一實(shí)施例中,使用3個(gè)位平面的塊位流的系數(shù)的最大長(zhǎng)度是23-1=7位。使用2個(gè)位平面的塊位流的系數(shù)的最大長(zhǎng)度,是22-1=3位。因此,只用7+7+7+3=24位,就可以對(duì)11位長(zhǎng)度DCT系數(shù)編碼。
變換了的系數(shù)可能有正值或負(fù)值。因此,MSB位組通常包括一個(gè)符號(hào)位。在這種情況下,所述符號(hào)位與數(shù)量(magnitude)位以相同的方式被編碼。然而,應(yīng)當(dāng)指出,符號(hào)位也可以獨(dú)立于數(shù)量位而編碼。
在傳統(tǒng)的MPEG類型的編碼器中,在位流中緊接在最后的非零系數(shù)之后插入一個(gè)塊結(jié)尾(EoB)符號(hào)以便表明在掃描次序中以后所有的系數(shù)都是零。在本發(fā)明中,將一個(gè)DCT塊劃分成多個(gè)塊層,也稱作位平面層。因此,MSB層有數(shù)量較少的非零系數(shù),這樣,與若是把全部原始DCT系數(shù)都掃描時(shí)的情況相比,這個(gè)層的EOB符號(hào)被更早地插入位流中。因此,被傳輸?shù)牧阆禂?shù)較少,壓縮效率得到改善。
上文提到,按照本發(fā)明的對(duì)信號(hào)編碼的方法可只使用傳統(tǒng)編碼器的LUT的一個(gè)部分。應(yīng)當(dāng)指出,也可以設(shè)計(jì)專門的縮減規(guī)模的LUT。這樣一個(gè)LUT可包括在先已編碼的值塊的統(tǒng)計(jì)。例如,如果一個(gè)相鄰DCT塊只包含具有較小值的DCT系數(shù),則當(dāng)前塊也包含較小值的概率就高。這個(gè)信息可以下述方式運(yùn)用-將具有最高有效位的層的大小從3位增加到4或5位。在這種情況下,這個(gè)層中的較長(zhǎng)的一連串零將被更高效地編碼。
-通過向數(shù)量較小的值(它們有較高的概率)分配短的碼字,而向數(shù)量大的值分配較長(zhǎng)的碼字(因?yàn)閿?shù)量大的值概率低)來重新構(gòu)造LUT。
可以專門設(shè)計(jì)另一種LUT,該LUT與屬于相同的DCT塊的在先編碼的較高重要性的層的統(tǒng)計(jì)有關(guān)。如果較高重要性的層含有許多零,則較低重要性的層也包含長(zhǎng)串的零的概率就高。
不需要對(duì)系數(shù)進(jìn)行量化,而對(duì)傳統(tǒng)的MPEG類型的編碼器來說,則需要。在簡(jiǎn)化編碼過程方面,這是一個(gè)優(yōu)點(diǎn)。此外,不需要在位流中包括量化參數(shù)。然而,可以在按照本發(fā)明的方法中添加一個(gè)量化步驟,以便減少要被編碼的位平面的數(shù)目。
有可能不需引入一個(gè)對(duì)經(jīng)變換的塊的系數(shù)的量化步驟,而是根據(jù)系數(shù)在DCT塊中的位置把某些系數(shù)進(jìn)行位偏移(bit shift)。例如,將被認(rèn)為對(duì)解碼的信號(hào)的可感知質(zhì)量起重要作用的系數(shù)進(jìn)行位偏移,以便將非零值偏移到它們的MSB位組。這樣,即使只有第一個(gè)熵編碼的塊位流被解碼,這些系數(shù)也將對(duì)被解碼的信號(hào)器起作用。
在本發(fā)明第一實(shí)施例中,構(gòu)造塊位流BBS的步驟5,包括將被掃描系數(shù)Ci的K個(gè)熵編碼的位組組合在一起以成為一個(gè)熵編碼的系數(shù)ECi,并包括把所述塊位流形成所述熵編碼的系數(shù)的串聯(lián)形式。圖1b表示所獲得的塊位流BBS的可能結(jié)構(gòu)。一個(gè)經(jīng)編碼的系數(shù)ECi是通過串聯(lián)K個(gè)熵編碼的位組ECi,1至ECi,K而形成的。輸出位流BS與常規(guī)的位流非常相似。
圖3表示按照本發(fā)明第一實(shí)施例的解碼方法的流程圖。一個(gè)位流BS被接收,它包含一個(gè)塊位流BBS。所述塊位流被一個(gè)分層熵解碼步驟12所熵解碼,該步驟包含多個(gè)并行的熵解碼子步驟。事實(shí)上,按照本發(fā)明第一實(shí)施例的塊位流BBS包含熵編碼的位組ECi,1至ECi,K,它們能被獨(dú)立地、并行地解碼。被熵解碼的位組DCi,1至DCi,K被輸出后,由一個(gè)組合步驟13組合成一個(gè)解碼后的系數(shù)DCi。然后,一個(gè)逆掃描步驟14允許由I個(gè)解碼后的系數(shù)DC1至DCI形成一個(gè)經(jīng)變換的塊DTB。所述經(jīng)變換的塊DTB進(jìn)一步被一個(gè)逆變換步驟15逆變換成一個(gè)解碼后的值塊DBV。對(duì)構(gòu)成被接收的位流BS的所有位組,重復(fù)分層熵解碼、組合、逆掃描和逆變換步驟,以便提供一個(gè)包含解碼后的值塊DBV的解碼的信號(hào)DS,例如一個(gè)解碼的圖像。
本發(fā)明這個(gè)第一實(shí)施例的一個(gè)優(yōu)點(diǎn),是簡(jiǎn)化編碼和解碼過程。事實(shí)上,分層熵編碼和分層熵解碼步驟4和12使用縮減規(guī)模的查找表,這使得能夠限制存儲(chǔ)的數(shù)據(jù)的數(shù)量以及存儲(chǔ)訪問的次數(shù)。此外,分層熵編碼和分層熵解碼可以容易地并行化。由于只有一個(gè)熵編碼的塊位流被發(fā)出,這個(gè)第二實(shí)施例旨在用于不可縮放的應(yīng)用,如便攜式低成本的應(yīng)用,這些應(yīng)用中,節(jié)省內(nèi)存和時(shí)間是關(guān)鍵點(diǎn)。
圖4a表示按照本發(fā)明第二實(shí)施例的熵編碼方法的流程圖。與本發(fā)明第一實(shí)施例相比,步驟5被步驟6取代,后者形成一個(gè)塊位流BBS,該塊位流BBS由K個(gè)熵編碼的塊層EBL1至EBLK組成,第k個(gè)熵編碼的塊層EBLk包含經(jīng)變換的塊(TB)的I個(gè)被掃描的系數(shù)的第k個(gè)熵編碼的位組EC1,k至ECI,k。圖4b表示形成塊位流BBS的熵編碼的塊層EBL1至EBLK的一種可能結(jié)構(gòu)。第一個(gè)熵編碼的塊層EBL1包含經(jīng)變換的塊TB的I個(gè)系數(shù)的熵編碼的MSB位組。所述第一個(gè)塊層EBL1構(gòu)成一個(gè)基礎(chǔ)塊層,它能獨(dú)立于其它塊層而被解碼,并且提供輸入信號(hào)的第1質(zhì)量水平(level of quality)。第k個(gè)熵編碼的塊層EBLk包含經(jīng)變換的塊TB的I個(gè)系數(shù)的第k個(gè)熵編碼的位組。所述第k個(gè)塊層EBLk構(gòu)成輸入信號(hào)的第k質(zhì)量水平。因此,按照本發(fā)明的第二實(shí)施例為一個(gè)輸入信號(hào)的一個(gè)值塊提供一個(gè)信噪比的可縮放性。
應(yīng)當(dāng)指出,由塊位流BBS建立輸出位流BS有幾種方式。在圖4b所示的本發(fā)明第三實(shí)施例中,輸出塊位流BS包含多個(gè)(K個(gè))編碼的層L1至LK。這樣一個(gè)編碼的層LK是通過把對(duì)應(yīng)于輸入信號(hào)IS的連續(xù)的值塊的熵編碼的塊層EBLk串聯(lián)而構(gòu)造的。因此,第1個(gè)編碼的層L1包含輸入信號(hào)的值塊的第1個(gè)編碼的位組。所述第1個(gè)編碼的層L1,可以獨(dú)立于其它編碼的層L2至LK被解碼,它構(gòu)成一個(gè)基礎(chǔ)層,并為解碼的信號(hào)DS提供第1質(zhì)量水平或基本質(zhì)量水平。LK編碼的層被預(yù)定用來改善從k-1個(gè)第1層L1至Lk-1獲得的解碼的信號(hào)的SNR質(zhì)量水平。
建立輸出位流BS的一種可選擇的方式,是通過把值塊BV的熵編碼的塊層EBL1至EBLk串聯(lián)以形成塊位流BBS,并將這些塊位流BBS串聯(lián)。
圖5表示按照本發(fā)明第二實(shí)施例的解碼方法的流程圖。多個(gè)熵編碼的塊層EBL1至EBLM,被一個(gè)分層熵解碼步驟12接收,其中,M是小于K的整數(shù)。熵編碼的位組DC1,m至DCI,m被輸出,用于一個(gè)塊層EBLm,其中m是包含在區(qū)間[1,M]內(nèi)的整數(shù)。然后通過一個(gè)組合步驟16形成一個(gè)解碼的系數(shù),該步驟將對(duì)應(yīng)于一個(gè)解碼后的系數(shù)ECi的M個(gè)解碼后的位組DCi,1至DCi,M組合。逆掃描步驟14對(duì)I個(gè)解碼的系數(shù)重新定序,以構(gòu)成一個(gè)經(jīng)解碼和變換的塊DTB。所述經(jīng)解碼和變換的塊進(jìn)一步被逆變換步驟15逆變換成一個(gè)解碼的值塊BV。對(duì)所接收的熵編碼的塊層的所有的熵編碼的位組,重復(fù)進(jìn)行分層熵解碼的步驟12、組合熵編碼的位組步驟16、逆掃描步驟14和逆變換步驟15。輸出解碼后的值塊,它們形成一個(gè)解碼后的信號(hào)。所述解碼后的信號(hào)具有一個(gè)SNR質(zhì)量水平,它與所接收的熵編碼的塊層的數(shù)量M有關(guān)。
本發(fā)明第二實(shí)施例的一個(gè)優(yōu)點(diǎn)是,提供分層SNR可縮放性,同時(shí)簡(jiǎn)化編碼和解碼過程。
圖6表示按照本發(fā)明第二實(shí)施例的SNR可縮放的視頻編碼器的示意框圖。這樣一個(gè)可縮放的視頻編碼器的目標(biāo)是把一個(gè)包含一個(gè)幀序列的輸入視頻信號(hào)編碼,并輸出一個(gè)輸出位流BS,其中一個(gè)幀包含值塊BV。塊值BV被例如施加DCT變換的變換裝置21變換成一個(gè)經(jīng)變換的塊TB。所述經(jīng)變換的塊TB包含I個(gè)系數(shù)C1至CI,它們被掃描裝置22掃描,并被分解裝置23分解成K個(gè)位組。所述K個(gè)位組進(jìn)一步被VLC編碼裝置24VLC編碼成K個(gè)經(jīng)VLC編碼的位組ECi,1至ECi,K。通過形成裝置25由所述K個(gè)VLC編碼的位組ECi,1至ECi,K形成一個(gè)分層的塊位流。所述塊位流包含K個(gè)編碼的塊層EBL1至EBLK。對(duì)每個(gè)值塊BV重復(fù)這樣一個(gè)編碼過程,連續(xù)的塊位流起著形成輸出位流BS的作用。
圖6的視頻編碼器包含一個(gè)運(yùn)動(dòng)估計(jì)和補(bǔ)償模塊26,如MPEG類型的編碼器通常所包含的。運(yùn)動(dòng)估計(jì)和補(bǔ)償(ME/MC)模塊26首先按照相似性標(biāo)準(zhǔn),將屬于輸入視頻序列的一個(gè)當(dāng)前幀的值塊BV,與一個(gè)塊相比,該塊被稱作在先幀或下一個(gè)幀的最佳匹配幀,而該在先幀或下一個(gè)幀則被稱作參考幀。然后ME/MC模塊26計(jì)算當(dāng)前值塊與最佳匹配塊之間的位移(displacement)。獲得一個(gè)運(yùn)動(dòng)矢量,該運(yùn)動(dòng)矢量必須被插入各塊層中的一層(最好是EBL1)中。通過使用一個(gè)減法運(yùn)算裝置(operator)20把最佳匹配塊BMB與當(dāng)前值塊BV相減而計(jì)算出一個(gè)匹配誤差塊MEB。所述匹配誤差塊MEB取代輸入值塊BV由變換模塊21處理。這樣一個(gè)編碼方案,被稱作幀間編碼方案,它包括相對(duì)于在先編碼的幀有差別地把當(dāng)前的幀編碼。所述幀間編碼方案與幀內(nèi)編碼方案相比,已經(jīng)證明能得到更高的壓縮效率,因?yàn)閹瑑?nèi)編碼方案獨(dú)立地編碼每個(gè)幀,而不利用視頻信號(hào)的后繼幀之間的冗余。應(yīng)當(dāng)指出,本發(fā)明并不限于運(yùn)動(dòng)補(bǔ)償?shù)囊曨l編碼器,而是與任何基于塊的視頻編碼器有關(guān)。
由于所述最佳匹配塊已經(jīng)被視頻編碼器處理,它不再可用作一個(gè)值塊。因此它由逆變換模塊27提供,后者從在存儲(chǔ)器28中存儲(chǔ)的參考幀的DCT系數(shù)中的它的LSB系數(shù)Ci,1至CI,1重構(gòu)最佳匹配塊。應(yīng)當(dāng)指出,只有MSB系數(shù)被用來重構(gòu)最佳匹配塊,因?yàn)樵赟NR可縮放的方案中,不可能事先知道解碼器將有效地接收哪些層。因此,為了避免在解碼器中引起偏移誤差,只用第一熵編碼的塊層EBL1進(jìn)行運(yùn)動(dòng)補(bǔ)償,第一熵編碼的塊層EBL1也叫基礎(chǔ)熵編碼的塊層EBL1,它對(duì)應(yīng)于解碼器至少會(huì)接收的那部分的SNR可縮放的位流。
應(yīng)當(dāng)指出,與一個(gè)值塊有關(guān)的運(yùn)動(dòng)矢量是包括在對(duì)應(yīng)的第一塊層EBL1中的。
圖7表示按照本發(fā)明第二實(shí)施例的SNR可縮放的視頻解碼器的示意框圖。一些熵編碼的塊層EBL1至EBLM,在解碼器端被接收,其中M是不大于K的整數(shù)。所述熵編碼的塊層首先被VLD裝置30進(jìn)行可變長(zhǎng)度解碼(VLD),以便提供M個(gè)解碼的塊層DBL1至DBLM。如上文描述圖3時(shí)所指出的那樣,所述VLD裝置30包含K個(gè)VLDk子裝置,它們可用并行的處理器實(shí)現(xiàn)。
解碼的塊層DBLm包含第m個(gè)位組的串聯(lián),其中m包含在區(qū)間[1,M]中,每個(gè)第m個(gè)位組屬于經(jīng)變換的塊TB的解碼后的系數(shù)DCm。解碼器包含組合裝置31,用于把對(duì)應(yīng)于一個(gè)系數(shù)DCi的位組DCi,1至DCi,M組合在一起。逆掃描裝置32把DC1至DCI重新定序,以便構(gòu)造一個(gè)解碼后和變換的塊。所述經(jīng)解碼和變換的塊DTB是一種先驗(yàn)(priori)的塊,這與在編碼器端所獲得的經(jīng)變換的塊TB不相似,這是因?yàn)?,由視頻編碼器所輸出的SNR可縮放的位流BBS的所有的熵編碼的塊層,可能還沒有全部被傳送到視頻解碼器。
經(jīng)解碼的變換的塊DTB的系數(shù)DCi被逆變換裝置33逆變換,以便提供一個(gè)解碼的誤差塊DEB。解碼的運(yùn)動(dòng)矢量DMV被運(yùn)動(dòng)補(bǔ)償裝置34用來根據(jù)解碼的誤差塊DEB和在存儲(chǔ)器35中存儲(chǔ)的一個(gè)在先已解碼的參考?jí)KDRB重構(gòu)一個(gè)解碼的值塊DBV。
獲得的解碼的視頻信號(hào)DVS具有與已經(jīng)被解碼的SNR可縮放的位流的量成比例的視覺質(zhì)量。
圖8表示按照本發(fā)明第二實(shí)施例的SNR可縮放的視頻轉(zhuǎn)碼器的示意框圖。這樣一個(gè)轉(zhuǎn)碼器,旨在對(duì)一個(gè)輸入的不可縮放的塊位流BBS進(jìn)行解碼,并把所述輸入的不可縮放的塊位流NSBBS轉(zhuǎn)換成多個(gè)熵編碼的塊層EBL1至EBLk。所述轉(zhuǎn)碼器包含用于把輸入塊位流BBS1解碼的VLC碼的VLD裝置40。獲得解碼的系數(shù)后,被逆掃描裝置41逆掃描,以形成一個(gè)經(jīng)解碼和變換的塊DTB′。所述經(jīng)解碼和變換的塊被逆變換裝置42逆變換成一個(gè)解碼的誤差塊DEB′。所述解碼的誤差塊和一個(gè)使用解碼的運(yùn)動(dòng)矢量DMV′的在先已解碼的參考?jí)KDRB′相加。獲得一個(gè)解碼的值塊DBV′,它進(jìn)一步用一個(gè)與圖7中所示的相似的SNR可縮放的編碼器進(jìn)行編碼。獲得K個(gè)熵編碼的塊層EBL1至EBLk。
應(yīng)當(dāng)注意的是,上述實(shí)施例解釋而不是限制本發(fā)明,所述技術(shù)領(lǐng)域:
的熟練人員在不偏離隨附的權(quán)利要求
書的范圍的情況下將能夠設(shè)計(jì)出許多替代性實(shí)施方案。在權(quán)利要求
書中,任何位于括號(hào)之間的標(biāo)注符號(hào)都不應(yīng)被解釋為對(duì)權(quán)利要求
的限制。詞語“包含”并不排除權(quán)利要求
中所列舉的以外的組件或步驟的存在。組件的前導(dǎo)詞“一個(gè)”并不排除多個(gè)這種組件的存在。如果某些措施是在互相不同的從屬權(quán)利要求
中被陳述的,那并不表明不能有效地利用這些措施的某種組合。
權(quán)利要求
1.一種把輸入信號(hào)編碼成一個(gè)輸出位流(BS)的方法,所述輸入信號(hào)包含值塊,所述方法包含以下步驟對(duì)一個(gè)值塊(BV)施加一個(gè)變換(1),以便得到一個(gè)經(jīng)變換的塊(TB),所述經(jīng)變換的塊包含一定數(shù)目(I)的系數(shù),所述數(shù)目大于1;按照一個(gè)系數(shù)掃描次序,掃描(2)經(jīng)變換的塊(TB)的系數(shù)(C1-CI);將一個(gè)被掃描的系數(shù)(Ci)劃分(3)成編號(hào)為1到K的K個(gè)位組(Ci,1-Ci,k),使得至少一個(gè)位組包含至少2個(gè)位,并使得所述被掃描的系數(shù)(Ci)是這K個(gè)位組的串聯(lián);用熵碼把第k個(gè)位組(Ci,k)熵編碼(4)成第k個(gè)熵編碼的位組(ECi,k);由經(jīng)變換的塊的被掃描的系數(shù)的K個(gè)熵編碼的位組,形成(5)一個(gè)塊位流(BBS),所述輸出位流(BS)包含所述塊位流(BBS)。
2.如權(quán)利要求
1中所要求的對(duì)一個(gè)信號(hào)編碼的方法,其中,所述熵碼是可變長(zhǎng)度碼。
3.如權(quán)利要求
1中所要求的對(duì)信號(hào)編碼的方法,其中,被掃描的系數(shù)(Ci)的K個(gè)熵編碼的位組(ECi,1-ECi,k)被組合在一起,以形成一個(gè)熵編碼的系數(shù)(ECi),并且所述塊位流(BBS)包含所述熵編碼的系數(shù)的串聯(lián)。
4.如權(quán)利要求
1中所要求的對(duì)信號(hào)編碼的方法,其中,所述塊位流(BBS)包含K個(gè)熵編碼的塊層(EBL1-EBLK),第k個(gè)熵編碼的塊層(EBLk)包含經(jīng)變換的塊(TB)的I個(gè)被掃描的系數(shù)的第k個(gè)位組的熵碼。
5.如權(quán)利要求
4中所要求的對(duì)信號(hào)編碼的方法,其中,所述輸出位流(BS)包含K個(gè)層(L1-LK),層(Lk)包含對(duì)應(yīng)于輸入信號(hào)的被連續(xù)掃描的值塊的第k個(gè)熵編碼的塊層(EBLk)。
6.一種把一個(gè)包含塊位流的位流(BS)解碼成一個(gè)解碼后的信號(hào)的方法,一個(gè)塊位流(BBS)包含熵編碼的系數(shù)(ECi),所述熵編碼的系數(shù)包含熵編碼的位組(ECi,1-ECi,K),所述方法包含以下步驟將所述熵編碼的位組(ECi,1-ECi,K)熵解碼(12)成熵解碼的位組(DCi,1-DCi,K);將所述熵解碼的位組(DCi,1-DCi,K)組合(13)成一個(gè)解碼的系數(shù)(DCi);逆掃描(14)所述解碼的系數(shù)(DC1-DCI),以形成一個(gè)經(jīng)解碼的變換的塊(DTB);向所述經(jīng)解碼的變換的塊(DTB)施加(15)一個(gè)逆變換,以便獲得一個(gè)解碼的塊(DB),所述解碼的信號(hào)包含解碼的塊。
7.一種將多個(gè)熵編碼的塊層(EBL1-EBLK)解碼成一個(gè)解碼后的信號(hào)的方法,所述方法包含以下步驟將一個(gè)第k熵編碼的塊層(EBLK)熵解碼成第k個(gè)熵解碼的塊層(DBLK),所述第k個(gè)熵解碼的塊層包含第k個(gè)解碼的位組(DCi,k);組合第一到第K解碼的位組,以形成解碼的系數(shù)(DCi);逆掃描(14)所述解碼的系數(shù)(DC1-DCI),以形成一個(gè)經(jīng)解碼的變換的塊(DTB);向所述經(jīng)解碼的變換的塊(DTB)施加一個(gè)逆變換,以便獲得一個(gè)解碼的塊(DB),所述解碼的信號(hào)包含解碼的塊。
8.一種用于編碼一個(gè)圖像序列的編碼器,所述圖像包含塊,所述視頻編碼器包含具有執(zhí)行以下功能的裝置對(duì)一個(gè)值塊(BV)施加一個(gè)變換,以便得到一個(gè)變換過的塊(TB),所述變換過的塊包含一定數(shù)目(I)的系數(shù),所述數(shù)目(I)大于1;按照一個(gè)系數(shù)掃描次序掃描一個(gè)變換過的塊(TB)的系數(shù)(C1-CI),一個(gè)被掃描的系數(shù)(Ci)包含一定數(shù)目(N)的位,所述數(shù)目(N)大于1;將一個(gè)被掃描的系數(shù)(Ci)劃分成編號(hào)為1到K的一定數(shù)目(K)的位組(Ci,1-Ci,k),使得至少一個(gè)位組包含至少2個(gè)位,并使得所述被掃描的系數(shù)(Ci)是這K個(gè)位組的串聯(lián),所述數(shù)目(K)大于1;利用熵碼把所述第k位組熵編碼成第k個(gè)熵編碼的位組(ECi,1-ECi,k);由熵碼形成一個(gè)塊位流(BBS),所述位流(BS)包含所述塊位流(BBS)。
9.一種通過解碼一個(gè)包含塊位流的位流(BS)而提供一個(gè)解碼圖像序列的視頻解碼器,所述塊位流(BBS)包括含有一定數(shù)目(K)的熵編碼的位組(ECi,1-ECi,k)的熵編碼的系數(shù)(ECi),所述方法包含以下步驟將所述熵編碼的位組(ECi,1-ECi,k)熵解碼(30)成熵解碼的位組(DCi,1-DCi,k),所述熵解碼的位組形成解碼后的系數(shù)(DCi);組合(31)第一到第K個(gè)經(jīng)解碼的位組,以形成解碼的系數(shù)(DCi);逆掃描(32)所述解碼的系數(shù)(DC1-DCI),以形成一個(gè)經(jīng)解碼和變換的塊(DTB);向所述經(jīng)解碼和變換的塊(DTB)施加(33)一個(gè)逆變換,以便獲得一個(gè)解碼的塊(DB),所述解碼的圖像包含所述解碼的塊。
10.如權(quán)利要求
9中所要求的視頻解碼器,其中,所述K個(gè)被接收的熵編碼的位組(ECi,1-ECi,k)被K個(gè)并行的解碼裝置解碼。
11.用于將第1位流(BS1)轉(zhuǎn)碼成第2位流(BS2)的視頻轉(zhuǎn)碼器,所述第1位流(BS1)包含第一塊位流,一個(gè)第一塊位流(BBS1)包含熵編碼的第一變換系數(shù)(T1Ci),所述視頻轉(zhuǎn)碼器包含執(zhí)行以下功能的裝置將所述熵編碼的第一變換系數(shù)解碼(40)成熵解碼的第一變換系數(shù)(DCi);逆掃描(41)所述解碼的系數(shù)(DC1-DCI),以形成一個(gè)經(jīng)解碼的變換的塊(DTB′);向熵解碼的第一變換系數(shù)施加(42)一個(gè)逆第一變換,以便得到一個(gè)解碼的塊(DB″);向所述解碼的塊(DTB)施加(43)一個(gè)第二變換,以便得到第二變換系數(shù)(Ci),一個(gè)第二變換系數(shù)包含N個(gè)位;將所述第二變換系數(shù)(Ci)分解(44)成編號(hào)為1到K的K個(gè)位組,使得至少一個(gè)位組包含至少2個(gè)位,并使得所述第二變換系數(shù)通過這K個(gè)位組的串聯(lián)而獲得;利用熵碼對(duì)所述第k位組熵編碼(45);由熵碼構(gòu)造所述第二塊位流(BBS2),所述第二位流(BS2)包含所述第二塊位流(BBS2)。
12.一個(gè)計(jì)算機(jī)程序,包含一個(gè)指令集,當(dāng)該指令集被裝入處理器或計(jì)算機(jī)時(shí),使處理器或計(jì)算機(jī)執(zhí)行如權(quán)利要求
1所要求的方法。
13.一個(gè)承載如權(quán)利要求
12中所要求的程序的信號(hào)。
專利摘要
本發(fā)明涉及一種把一個(gè)輸入信號(hào)編碼成一個(gè)輸出位流(BS)的方法。所述方法包含以下步驟對(duì)一個(gè)值塊(BV)施加一個(gè)變換(1),以便得到一個(gè)經(jīng)變換的塊(TB);按照一個(gè)系數(shù)掃描次序掃描(2)一個(gè)變換的塊(TB)的系數(shù)(C
文檔編號(hào)G06T9/00GKCN1816828SQ200480018551
公開日2006年8月9日 申請(qǐng)日期2004年6月28日
發(fā)明者I·基倫科 申請(qǐng)人:皇家飛利浦電子股份有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan