專(zhuān)利名稱(chēng):對(duì)小波變換系數(shù)進(jìn)行編碼的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像壓縮和/或解壓縮。
眾所周知,在圖像和視頻的壓縮和解壓縮方面,已經(jīng)使用了離散小波變換(DWT)方法。這些方法的一個(gè)方面頻繁地使用通常稱(chēng)為嵌入式零樹(shù)(EZT)編碼或解碼的處理?,F(xiàn)有的嵌入式零樹(shù)編碼處理的一些缺點(diǎn)包括用于編碼每一級(jí)的兩條路徑,即,主要路徑和次要路徑,以及不適合交互式視頻壓縮的高計(jì)算復(fù)雜度。因此,需要用于解決這些問(wèn)題的EZT編碼方法。
在說(shuō)明書(shū)所包括的部分中,具體地指出并且清楚地要求了主題。然而,結(jié)合附圖,參考下面詳細(xì)的描述,可以更好地理解關(guān)于操作結(jié)構(gòu)和方法的所要求主題及其目標(biāo)、特征和優(yōu)點(diǎn),其中圖1是圖示了對(duì)變換圖像的系數(shù)進(jìn)行掃描的次序的示意圖;圖2是圖示了在變換圖像中形成的子帶的示意圖;圖3是圖示了一個(gè)實(shí)施例中對(duì)變換圖像的系數(shù)進(jìn)行掃描的次序的示意圖;圖4是圖示了在變換圖像中子帶的典型父子關(guān)系的示意圖;圖5是圖示了用于編碼小波變換系數(shù)的一個(gè)實(shí)施例的流程圖;圖6是所要編碼的變換圖像的樣本部分;圖7是在應(yīng)用圖5實(shí)施例的過(guò)程中一點(diǎn)上的圖6的樣本部分;圖8是在應(yīng)用圖5實(shí)施例的過(guò)程中一點(diǎn)上的圖6的樣本部分;圖9是在應(yīng)用圖5實(shí)施例的過(guò)程中一點(diǎn)上的圖6的樣本部分;圖10是在應(yīng)用圖5實(shí)施例的過(guò)程中一點(diǎn)上的圖6的樣本部分;圖11是在應(yīng)用圖5實(shí)施例的過(guò)程中一點(diǎn)上的圖6的樣本部分;圖12是在應(yīng)用一個(gè)實(shí)施例對(duì)已編碼的樣本部分進(jìn)行解碼的過(guò)程中一點(diǎn)上的圖11的已編碼樣本部分;圖13是在應(yīng)用一個(gè)實(shí)施例對(duì)已編碼的樣本部分進(jìn)行解碼的過(guò)程中一點(diǎn)上的圖11的已編碼樣本部分;圖14是在應(yīng)用一個(gè)實(shí)施例對(duì)已編碼的樣本部分進(jìn)行解碼的過(guò)程中一點(diǎn)上的圖11的已編碼樣本部分;圖15是在應(yīng)用一個(gè)實(shí)施例對(duì)已編碼的樣本部分進(jìn)行解碼的過(guò)程中一點(diǎn)上的圖11的已編碼樣本部分;圖16是在應(yīng)用一個(gè)實(shí)施例對(duì)已編碼的樣本部分進(jìn)行解碼的過(guò)程中一點(diǎn)上的圖11的已編碼樣本部分;圖17是在應(yīng)用一個(gè)實(shí)施例對(duì)已編碼的樣本部分進(jìn)行解碼的過(guò)程中一點(diǎn)上的圖11的已編碼樣本部分;以及圖18是在應(yīng)用一個(gè)實(shí)施例對(duì)已編碼的樣本部分進(jìn)行解碼的過(guò)程中一點(diǎn)上的圖11的已編碼樣本部分。
具體實(shí)施例方式
在下面的詳細(xì)描述中,為了提供對(duì)所要求主題的全面理解,闡述了很多具體的細(xì)節(jié)。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在沒(méi)有這些具體細(xì)節(jié)的情況下也可以實(shí)施本發(fā)明。在其它實(shí)例中,沒(méi)有對(duì)公知的方法、過(guò)程、組件和電路進(jìn)行詳細(xì)的描述,以免混淆所要求的主題。
本發(fā)明提供了用于編碼小波變換系數(shù)的方法和裝置的一個(gè)實(shí)施例,其在計(jì)算復(fù)雜度和壓縮性能方面對(duì)現(xiàn)有的EZT編碼方法做出了改進(jìn)。正如下文所詳細(xì)描述的那樣,對(duì)本具體實(shí)施例的改進(jìn)的一個(gè)方面是通過(guò)簡(jiǎn)化在EZT編碼過(guò)程期間所執(zhí)行的掃描數(shù)量來(lái)降低計(jì)算復(fù)雜度,當(dāng)然所要求的主題并不局限于該具體實(shí)施例。
正如下文所詳細(xì)描述的那樣,對(duì)于本實(shí)施例,將基于位的條件編碼應(yīng)用于DWT系數(shù)。例如,在編碼期間使用了一個(gè)或多個(gè)二進(jìn)制值變量,例如一位,其中變量的值是根據(jù)應(yīng)用于正被編碼的系數(shù)的一個(gè)或多個(gè)條件是真還是假而確定的。只是作為一個(gè)示例,條件可以涉及系數(shù)相對(duì)于閾值的大小。同樣,DWT系數(shù)一般有多級(jí)。在本具體實(shí)施例中,DWT系數(shù)一個(gè)特定級(jí)的下一順序增加級(jí)的閾值等于所述特定級(jí)的閾值與一乘法因子(multiplicative factor)相乘,所述乘法因子大于1。例如,下文所描述的實(shí)施例使用了乘法因子2,當(dāng)然所要求的主題并不局限于此范圍。典型地,盡管不是必需,當(dāng)應(yīng)用于低能量的DWT系數(shù),即其中一些系數(shù)為零或接近為零時(shí),這樣的實(shí)施例提供了改善的結(jié)果。
在本實(shí)施例中,離散小波變換(DWT)將圖像分解為四個(gè)子帶,一個(gè)低頻子帶(LL)和三個(gè)高頻子帶(LH,HL,HH)。如圖1所示,LL子帶具有原始圖像的特性并且被分解為多級(jí)。
還是對(duì)于本具體實(shí)施例,當(dāng)應(yīng)用小波系數(shù)的嵌入式編碼時(shí),使用了特定的掃描次序。按照如圖1中的箭頭示出的順序來(lái)掃描系數(shù),使得在掃描孩子系數(shù)的雙親系數(shù)之前,不掃描該孩子系數(shù)。掃描從最低頻子帶(LL3)開(kāi)始,并且直到掃描完了當(dāng)前子帶的系數(shù)后,才移到另一子帶。一旦對(duì)一級(jí)變換的子帶的掃描完成,掃描移到子帶的下一級(jí)。在本具體實(shí)施例中,在子帶內(nèi)部的掃描是按行進(jìn)行的(row-wise)。
在本實(shí)施例中,可以由下面的方法產(chǎn)生改善的效率。如果系數(shù)(c)的大小與某一閾值(T0)相比并不重要,即,|c|≤T0,則對(duì)于其余的級(jí),它也不重要。在本實(shí)施例中,后續(xù)路徑的閾值在數(shù)值上大于T0。
如圖2所示,DWT矩陣是具有圖示形式的合成子帶的離散小波變換(DWT)。標(biāo)號(hào)(1,2,3)表示子帶的級(jí)數(shù)。
在本實(shí)施例中,起始閾值取1,當(dāng)然所要求的主題并不局限于具體的起始閾值。在每一接續(xù)的路徑上閾值加倍,當(dāng)然如前所示,該閾值并不局限于加倍。在本實(shí)施例中,這樣的路徑的總數(shù)是 其中還是對(duì)本具體實(shí)施例,“max”表示在所要編碼系數(shù)的數(shù)值中的最大值。在圖3中示出了在本實(shí)施例中所使用的系數(shù)的掃描模式。
在圖4中示出了用于DWT編碼框架的親子關(guān)系。在第2級(jí)處的四個(gè)象素是在第l級(jí)中標(biāo)記的象素的孩子。在第3級(jí)處的十六個(gè)象素也是在第1級(jí)中所標(biāo)記的象素的后代。如前所述,在本實(shí)施例中,對(duì)系數(shù)的掃描是以如圖4所示的方式進(jìn)行的,從而在掃描較粗(coarser)級(jí)系數(shù)之前,不對(duì)較細(xì)(finer)級(jí)系數(shù)進(jìn)行掃描。
如前所示,這里使用了基于位的條件編碼方法。在標(biāo)準(zhǔn)EZT編碼過(guò)程中,對(duì)于每一條件,產(chǎn)生每個(gè)都取2位來(lái)編碼的符號(hào),例如,P、N、R、IZ。然而在本具體實(shí)施例中,根據(jù)具體條件是真還是假,可以編碼一位1或0。
這里,LL子帶并不包括在位平面編碼(bit-plane coding)中。相反,LL子帶被直接存儲(chǔ)或傳輸。因此,可以使用任一編碼技術(shù)來(lái)獨(dú)立地編碼在LL子帶中的小波系數(shù),例如包括了諸如算術(shù)編碼、霍夫曼編碼和Lempel-Ziv編碼等的無(wú)損變長(zhǎng)編碼(lossless variable-length encoding)技術(shù)。
在圖5中示出了圖示一個(gè)實(shí)施例的流程圖。
下面的示例將有助于理解編碼方案,當(dāng)然本示例也決不是要限制所要求的主題的范圍。本示例只是示意性的。例如,盡管本示例應(yīng)用于二維(2D)中具有低能量?jī)?nèi)容的小波系數(shù),但是本方法能夠擴(kuò)展到三維(3D)小波變換。
在圖6中示出的系數(shù)以二進(jìn)制來(lái)表示。系數(shù)的最大值是max=4(100),因此,應(yīng)用前面實(shí)施例的路徑的總數(shù)是3,因而路徑_索引(pass_index)在1到3之間變化。
下面,使用符號(hào)來(lái)指定表示方法,其中,在圖6的矩陣中對(duì)位進(jìn)行編碼。在本示例中,提供了在第1級(jí)(子帶#1)處的一個(gè)2×2大小的矩陣和在第0級(jí)(子帶#2)處的一個(gè)4×4大小的矩陣。路徑索引從1到3變化。這里,以逆序進(jìn)行計(jì)數(shù),即,對(duì)于系數(shù)001,如果路徑索引是3,則我們對(duì)該系數(shù)的最重要位(MSB)進(jìn)行編碼,當(dāng)然,或者可以使用其它的約定。
這里,正在進(jìn)行編碼的系數(shù)被表示為CLi(x,y)?!癓i”表示在其中對(duì)系數(shù)進(jìn)行編碼的級(jí)。其中“i”在0到級(jí)的數(shù)量之間變化。在本示例中,“i”取0和1。同樣地,“x,y”表示陣列位置。已編碼的位由BPjLi(x,y)表示,其中“Li”表示在其中進(jìn)行編碼的級(jí),并且“Pj”表示路徑索引。這種符號(hào)的示例性例子如下CL0(4,4)表示第0級(jí)(子帶#2)中的系數(shù),其位于第4行、第4列。
BP2L1(2,2)表示在第1級(jí)(子帶#1)中并且在第2行、第2列的第二路徑(中間的位)中的位“1”。
對(duì)于編碼上面提到的例子,使用了被指定為p1、p2和p3的三條路徑,并且路徑索引將決定用于確定系數(shù)重要性的閾值。在這里,“系數(shù)的重要性”就是指將系數(shù)的整個(gè)值與適當(dāng)?shù)拈撝颠M(jìn)行比較,并且在這里,“位的重要性”指的是比較在那一平面內(nèi)的位的值。
下面,本具體實(shí)施例被應(yīng)用于圖6的示例中。最初,路徑索引是1并且閾值(T0)是1,當(dāng)然所要求的主題并不局限于本示例。對(duì)于這些值,評(píng)價(jià)在下面左手列中所表示的條件。如果條件為真,產(chǎn)生“1”位。如果條件為假,產(chǎn)生“0”位。
對(duì)于路_徑索引=1,T0(閾值)=1;子帶#1產(chǎn)生的位對(duì)于系數(shù)CL1(1,1)的位BP1L1(1,1)位重要嗎?是 1記錄符號(hào)位了嗎?否符號(hào)是+ve?是 1|CL1(1,1)|>T0?否0位在第0級(jí)嗎?否|CL1(1,1)|孩子>=T0?是 1位形式是ZTR嗎?否 0對(duì)于系數(shù)CL1(1,2)的位BP1L1(1,2)位重要嗎?是 1記錄符號(hào)位了嗎?否符號(hào)是+ve?是 1|CL1(1,2)|>T0?否 0位在第0級(jí)嗎?否|CL1(1,2)|孩子>=T0?是 1位形式是ZTR嗎?否 0對(duì)于系數(shù)CL1(2,1)的位BP1L1(2,1)位重要嗎?否 0|CL1(2,1)|>T0?否 0位在第0級(jí)嗎?否|CL1(2,1)|孩子>=T0?是 1位形式是ZTR嗎?是 1對(duì)于系數(shù)CL1(2,2)的位BP1L1(2,2)位重要嗎?否 0|CL1(2,2)|>T0?是 1位在第0級(jí)嗎?否
|CL1(2,2)|孩子>=T0?是 1位形式是ZTR嗎?否 0因此,在應(yīng)用一個(gè)可能的實(shí)施例的示例中,對(duì)于子帶#1,產(chǎn)生下面的18位1,1,0,1,0;1,1,0,1,0;0,0,1,1;0,1,1,0。在圖7中圖示了在該處理階段之后的已標(biāo)記矩陣。在本示例中,在后面的路徑中將不遍歷或編碼用下劃線標(biāo)記的位。
子帶#2產(chǎn)生的位對(duì)于系數(shù)CL0(1,1)的位BP1L0(1,1)位重要嗎?否 0|CL0(1,1)|>T0?是 1位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(1,2)的位BP1L0(1,2)位重要嗎?是 1記錄符號(hào)位了嗎?否符號(hào)是+ve?是 1|CL0(1,2)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(2,1)的位BP1L0(2,1)位重要嗎?是 1記錄符號(hào)位了嗎?否符號(hào)是+ve?否 0|CL0(2,1)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(2,2)的位BP1L0(2,2)位重要嗎?否0|CL0(2,2)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(1,3)的位BP1L0(1,3)位重要嗎?否0|CL0(1,3)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(1,4)的位BP1L0(1,4)位重要嗎?否0|CL0(1,4)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(2,3)的位BP1L0(2,3)位重要嗎?否0|CL0(2,3)|>T0?是 1位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(2,4)的位BP1L0(2,4)位重要嗎?是1記錄符號(hào)位了嗎?否符號(hào)是+ve?是 1|CL0(2,4)|>T0?是 1位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(3,3)的位BP1L0(3,3)位重要嗎?否0
|CL0(3,3)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(3,4)的位BP1L0(3,4)位重要嗎?是 1記錄符號(hào)位了嗎?否符號(hào)是+ve?否 0|CL0(3,4)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(4,3)的位BP1L0(4,3)位重要嗎?是 1記錄符號(hào)位了嗎?否符號(hào)是+ve?是 1|CL0(4,3)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(4,4)的位BP1L0(4,4)位重要嗎?否 0|CL0(4,4)|>T0?否 0位在第0級(jí)嗎?是因此,在應(yīng)用一個(gè)可能的實(shí)施例的示例中,對(duì)于子帶#2,產(chǎn)生下面的29位0,1;1,1,0;1,0,0;0,0;0,0;0,0;0,1;1,1,1;0,0;1,0,0;1,1,0;0,0。在圖8中圖示了在該處理階段之后的已標(biāo)記矩陣。
對(duì)于路徑_索引=2,T0(閾值)=1*2=2;
子帶#1產(chǎn)生的位對(duì)于系數(shù)CL1(2,2)的位BP2L1(2,2)位重要嗎?是 1記錄符號(hào)位了嗎?是符號(hào)是+ve?否 0|CL1(2,2)|>T0?否 0位在第0級(jí)嗎?否|CL1(2,2)|孩子>=T0?否0為子帶#1產(chǎn)生下面的4位1,1,0,0。在圖9中示出了已標(biāo)記矩陣。
子帶#2對(duì)于系數(shù)CL0(1,1)的位BP2L0(1,1)位重要嗎?否0|CL0(1,1)|>T0?是 1位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(2,3)的位BP2L0(2,3)位重要嗎?否0|CL0(2,3)|>T0?是 1位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(2,4)的位BP2L0(2,4)位重要嗎?是1記錄符號(hào)位了嗎?是|CL0(2,4)|>T0?否 0
位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(3,1)的位BP2L0(3,1)位重要嗎?否0|CL0(3,1)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(3,2)的位BP2L0(3,2)位重要嗎?是1記錄符號(hào)位了嗎?否符號(hào)是+ve?是 1|CL0(3,2)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(4,1)的位BP2L0(4,1)位重要嗎?否0|CL0(4,1)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(4,2)的位BP2L0(4,2)位重要嗎?否0|CL0(4,2)|>T0?否 0位在第0級(jí)嗎?是為子帶#2產(chǎn)生下面的15位0,1;0,1;1,0;0,0;1,1,0;0,0;0,0。在圖10中示出了已標(biāo)記矩陣。
對(duì)于路徑_索引=3,T0(閾值)=2*2=4。
子帶#1對(duì)于子帶#1,沒(méi)有產(chǎn)生任何位。
子帶#2對(duì)于系數(shù)CL0(1,1)的位BP3L0(1,1)位重要嗎?是1記錄符號(hào)位了嗎?否符號(hào)是+ve?是 1|CL0(1,1)|>T0?否 0位在第0級(jí)嗎?是對(duì)于系數(shù)CL0(2,3)的位BP3L0(2,3)位重要嗎?是1記錄符號(hào)位了嗎?否符號(hào)是+ve?是 1|CL0(2,3)|>T0?否 0位在第0級(jí)嗎?是對(duì)于子帶#2產(chǎn)生下面的6位1,1,0;1,1,0。在圖11中示出了已標(biāo)記矩陣。在本示例中,對(duì)于編碼的最后平面,所提議的方案是很有效的,以致于不需要編碼剩下的位,因?yàn)閷⒁M(jìn)行編碼的剩余位是那一平面內(nèi)最重要的位,所以取而代之,可以記錄系數(shù)為正還是為負(fù)。在上面的示例中,如果使用了后面的方法,在最后階段需要編碼的符號(hào)數(shù)是2位,而不是6位。
那么在本示例中,用于編碼上面的矩陣的位的總數(shù)是68位。
盡管所要求的主題并不局限于這種情況下的范圍,但是可以隨后編碼該符號(hào)流??梢允褂萌我痪幋a方案,例如熵編碼(entropy-coding)方案,象霍夫曼編碼、算數(shù)編碼(AC)等。可以將頭部塊放在這個(gè)流之前,該頭部塊可以包含已編碼的平面的數(shù)目,例如在本例中為3,還可以包含變換的信息,例如,圖像大小、所應(yīng)用的變換的級(jí)數(shù)等。再者,這只是可能的實(shí)現(xiàn)中的一個(gè)示例,并且所要求的主題并不局限于本示例的范圍。
下面描述了用于解碼位或符號(hào)流的過(guò)程的實(shí)施例,當(dāng)然所要求的主題并不局限于本示例的范圍。這只是一個(gè)可能的實(shí)施例以用于圖示說(shuō)明。
諸如嵌入式零樹(shù)解碼已經(jīng)編碼的離散小波變換(DWT)系數(shù)的方法的實(shí)施例可以包括將基于位的條件解碼應(yīng)用于已編碼的DWT系數(shù)。例如,這可以包括通過(guò)使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行編碼,所述二進(jìn)制值的變量是根據(jù)在編碼期間應(yīng)用于正被解碼的系數(shù)時(shí),一個(gè)或多個(gè)條件是真還是假而確定的值。所述一個(gè)或多個(gè)條件中的至少一個(gè)可以涉及正被解碼的系數(shù)在編碼期間相對(duì)于閾值的大小。此外,如前面有關(guān)編碼的描述,盡管本發(fā)明的主題并不局限于這種情況下的范圍,但是將基于位的條件解碼應(yīng)用于已編碼的具有相對(duì)較低能量的DWT系數(shù)可以產(chǎn)生良好的結(jié)果。
在本實(shí)施例中,用于接收由應(yīng)用前述方法的編碼器而產(chǎn)生的位流的解碼器重建系數(shù)矩陣。圖12中示出的狀態(tài)示了用于解碼的具體方法。
初始狀態(tài)是S0。解碼器開(kāi)始解碼系數(shù)的第n位,對(duì)于本具體實(shí)施例,遵循前述的系數(shù)的編碼順序。在本實(shí)施例中,解碼從最不重要位(LSB)平面開(kāi)始,并且向著最重要位(MSB)平面進(jìn)行,盡管在不同的實(shí)施例中可以使用諸如從MSB到LSB的其它方法。
隨著在輸入位流中的位,過(guò)程從一個(gè)狀態(tài)轉(zhuǎn)移到另一狀態(tài)。根據(jù)在過(guò)程中那一點(diǎn)上的部分解碼結(jié)果,解碼器產(chǎn)生在圖12中標(biāo)有星號(hào)(*)的符號(hào)。通過(guò)解碼上面產(chǎn)生的位流,進(jìn)一步來(lái)解釋解碼器的操作。再者,本示例并不是限制性的并且只是做舉例說(shuō)明之用。
在本具體實(shí)施例中,可以從頭部中解碼出下面的信息,盡管所要求的主題并不局限于這種情況下的范圍路徑的最大數(shù)量;矩陣的維度;變換的級(jí)數(shù)。
考慮前面的示例,以下舉例說(shuō)明解碼方案。如前所述,對(duì)于本具體實(shí)施例,對(duì)于第n條路徑,對(duì)系數(shù)的第n位進(jìn)行解碼。
對(duì)于路徑_索引=1;子帶#1(解碼)輸入流 隱含的條件 系數(shù)(C)值1系數(shù)是重要的 (1,1)11系數(shù)是正的 (1,1)+10C<T0(系數(shù)失去了它的重要性) (1,1)+0011某些C|孩子|>T00B沒(méi)有形成ZTR1系數(shù)是重要的 (1,2)11系數(shù)是正的 (1,2)+10C<T0(系數(shù)失去了它的重要性) (1,2)+0011某些C|孩子|>T00B沒(méi)有形成ZTR0系數(shù)不是重要的 (2,1)00C<T0(系數(shù)失去了它的重要性) (2,1)
0001某些C|孩子|>T01B形成ZTR0系數(shù)不是重要的(2,2)01C>T0(2,2)01某些C|孩子|>T00B沒(méi)有形成ZTR在圖13中圖示了在這一點(diǎn)上的已解碼矩陣。
對(duì)于路徑_索引=1;子帶#2(解碼)輸入流 隱含的條件系數(shù)(C) 值0系數(shù)不是重要的(1,1)01C<T0(系數(shù)沒(méi)有失去它的重要性)(1,1)01系數(shù)是重要的 (1,2)11系數(shù)是正的(1,2)+10C<T0(系數(shù)失去它的重要性)(1,2)
+0011系數(shù)是重要的 (2,1)10系數(shù)是負(fù)的 (2,1)-10C<T0(系數(shù)失去它的重要性) (2,1)-0010系數(shù)不是重要的 (2,2)00C<T0(系數(shù)失去它的重要性) (2,2)0000系數(shù)不是重要的 (1,3)00C<T0(系數(shù)失去它的重要性) (1,3)0000系數(shù)不是重要的 (1,4)00C<T0(系數(shù)失去它的重要性) (1,4)0000系數(shù)不是重要的 (2,3)01C<T0(系數(shù)沒(méi)有失去它的重要性) (2,3)0
1系數(shù)是重要的 (2,4)11系數(shù)是正的 (2,4)+11C<T0(系數(shù)沒(méi)有失去它的重要性) (2,4)+10系數(shù)不是重要的 (3,3)00C<T0(系數(shù)失去它的重要性) (3,3)0001系數(shù)是重要的 (3,4)10系數(shù)是負(fù)的 (3,4)-10C<T0(系數(shù)失去它的重要性) (3,4)-0011系數(shù)是重要的 (4,3)11系數(shù)是正的 (4,3)+10C<T0(系數(shù)失去它的重要性) (4,3)+0010系數(shù)不是重要的 (4,4)00C<T0(系數(shù)失去它的重要性) (4,4)
000在圖14中圖示了在這一過(guò)程的這一點(diǎn)上的已解碼矩陣。
對(duì)于路徑_索引=2,T0(閾值)=1*2=2;子帶#1(解碼)1系數(shù)是重要的 (2,2)10系數(shù)是正的(2,2)+10C<T0(系數(shù)失去它的重要性)(2,2)+0010C|孩子|<T0對(duì)于路徑_索引=2;在子帶#1解碼之后,在圖15中圖示了作為結(jié)果的已解碼矩陣。
子帶#20系數(shù)不是重要的 (1,1)001C<T0(系數(shù)沒(méi)有失去它的重要性) (1,1)000系數(shù)不是重要的 (2,3)001C<T0(系數(shù)沒(méi)有失去它的重要性) (2,3)
001系數(shù)是重要的 (2,4)+110C<T0(系數(shù)失去它的重要性)(2,4)+0110系數(shù)不是重要的(3,1)000C<T0(系數(shù)失去它的重要性)(3,1)0001系數(shù)是重要的 (3,2)101系數(shù)是正的(3,2)+100C<T0(系數(shù)失去它的重要性)(3,2)+0100系數(shù)不是重要的(4,1)000C<T0(系數(shù)失去它的重要性)(4,1)0000系數(shù)不是重要的(4,2)000C<T0(系數(shù)失去它的重要性)(4,2)000
在圖16中圖示了在這一點(diǎn)上的已解碼矩陣。
對(duì)于路徑_索引=3,T0(閾值)=2*2=4。
子帶#1當(dāng)所有的系數(shù)被編碼時(shí),不讀取任何輸入位。
對(duì)于路徑索引=3;在子帶#1解碼之后,在圖17中圖示了已解碼矩陣。
子帶#21系數(shù)是重要的 (1,1)1001系數(shù)是正的(1,1)+1000C<T0(系數(shù)失去它的重要性)(1,1)+1001系數(shù)是重要的 (2,3)1001系數(shù)是正的(2,3)+1000C<T0(系數(shù)失去它的重要性)(2,3)+100在圖18中圖示了已解碼矩陣。
所要求的主題,例如前述的實(shí)施例,提供了幾個(gè)潛在的優(yōu)點(diǎn)。例如,這樣的方法可以在使用更少的位的情況下編碼小波系數(shù),并且可以在計(jì)算上更快。例如,在某些實(shí)施例中,不重要的位不被編碼。同樣地,對(duì)于Shapiro嵌入式零樹(shù)小波編碼方法,只有位不重要時(shí)才檢查ZTR(零樹(shù)根)。因此,至少在所要求的主題的某些實(shí)施例中,通過(guò)檢查更多的系數(shù),在子帶分解中可以使用更多的ZTR。此外,并不在每條路徑上都忽略較小或不重要的系數(shù)。例如,在某些實(shí)施例中,這些系數(shù)在初始路徑的過(guò)程中就被編碼。同樣地,經(jīng)典方案的兩條路徑已經(jīng)被減少為單個(gè)路徑,例如前述的實(shí)施例。此外,當(dāng)系數(shù)的重要性失去時(shí)希望停止編碼。在前述的實(shí)施例中舉例說(shuō)明了這樣的方法。另外,在某些實(shí)施例中可以使用并行執(zhí)行的編碼操作,這至少部分由于應(yīng)用了編碼位平面這樣的方法,例如前面圖示的內(nèi)容,盡管主題并不局限于本實(shí)施例或本實(shí)施例的這個(gè)方面。
當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,盡管已經(jīng)描述了具體的實(shí)施例,但是所要求的主題并不局限于具體實(shí)施例或?qū)崿F(xiàn)的范圍。例如,一個(gè)實(shí)施例可以是硬件,而另一實(shí)施例可以是軟件。同樣地,實(shí)施例可以是固件(firmware)或是硬件、軟件或固件的任意組合,例如,同樣地,盡管所要求的主題并不局限于這方面的范圍,一個(gè)實(shí)施例可以包括諸如存儲(chǔ)介質(zhì)的制品。諸如CD-ROM或磁盤(pán)的這樣的存儲(chǔ)介質(zhì)可以在其上存儲(chǔ)指令,當(dāng)這些指令由諸如計(jì)算機(jī)系統(tǒng)或平臺(tái)、或者成像或視頻系統(tǒng)的系統(tǒng)執(zhí)行時(shí),例如,其可以產(chǎn)生根據(jù)正在執(zhí)行的所要求主題的方法的實(shí)施例,例如,如前所述的用于編碼或解碼小波變換系數(shù)的方法的實(shí)施例。例如,圖像處理平臺(tái)或圖像處理系統(tǒng)可以包括圖像或視頻處理單元、圖像或視頻輸入/輸出設(shè)備和/或存儲(chǔ)器。
雖然這里已經(jīng)圖示和描述了所要求的主題的某些特征,但是對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),可以對(duì)其進(jìn)行多種修改、替換、變化和等同替換。因此,應(yīng)當(dāng)理解,所附的權(quán)利要求是要覆蓋那些落入所要求主題的實(shí)際精神內(nèi)的所有修改和變化。
權(quán)利要求
1.一種對(duì)離散小波變換系數(shù)進(jìn)行嵌入式零樹(shù)編碼的方法,包括將基于位的條件編碼應(yīng)用于離散小波變換系數(shù)。
2.如權(quán)利要求1所述的方法,其中,應(yīng)用基于位的條件編碼包括使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行編碼,所述二進(jìn)制值的變量是根據(jù)應(yīng)用于正被編碼的系數(shù)的一個(gè)或多個(gè)條件是真還是假而確定的值。
3.如權(quán)利要求2所述的方法,其中,一個(gè)或多個(gè)條件中的至少一個(gè)涉及正被編碼的系數(shù)相對(duì)于閾值的大小。
4.如權(quán)利要求1所述的方法,其中,使用多條路徑編碼所述離散小波變換系數(shù),并且,其中,某一特定路徑的下一接續(xù)路徑的閾值等于所述特定路徑的閾值與一乘法因子相乘,所述乘法因子大于1。
5.如權(quán)利要求4所述的方法,其中,所述乘法因子是2。
6.如權(quán)利要求1所述的方法,其中,應(yīng)用基于位的條件編碼包括將基于位的條件編碼應(yīng)用于具有相對(duì)較低能量的離散小波變換系數(shù)。
7.一種集成電路,包括一種體系結(jié)構(gòu),其將基于位的條件嵌入式零樹(shù)編碼應(yīng)用于離散小波變換系數(shù)。
8.如權(quán)利要求7所述的集成電路,其中,所述體系結(jié)構(gòu)至少包括下述之一硬件、軟件、固件和它們的任意組合。
9.如權(quán)利要求7所述的集成電路,其中,所述體系結(jié)構(gòu)適于應(yīng)用基于位的條件編碼,所述基于位的條件編碼包括使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行編碼,所述二進(jìn)制值的變量是根據(jù)應(yīng)用于正被編碼的系數(shù)的一個(gè)或多個(gè)條件是真還是假而確定的值。
10.如權(quán)利要求9所述的集成電路,其中,所述體系結(jié)構(gòu)適于應(yīng)用的一個(gè)或多個(gè)條件中的至少一個(gè)涉及正被編碼的系數(shù)相對(duì)于閾值的大小。
11.如權(quán)利要求7所述的集成電路,其中,所述體系結(jié)構(gòu)適于在多條路徑中編碼離散小波變換系數(shù),并且,其中,某一特定路徑的下一接續(xù)路徑的閾值等于所述特定路徑的閾值與一乘法因子相乘,所述乘法因子大于1。
12.如權(quán)利要求11所述的集成電路,其中,所述乘法因子是2。
13.一種對(duì)已編碼的離散小波變換系數(shù)進(jìn)行嵌入式零樹(shù)解碼的方法,所述方法包括將基于位的條件解碼應(yīng)用于已編碼的離散小波變換系數(shù)。
14.如權(quán)利要求13所述的方法,其中,應(yīng)用基于位的條件解碼包括使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行解碼,所述二進(jìn)制值的變量是根據(jù)在編碼期間應(yīng)用于正被解碼的系數(shù)時(shí),一個(gè)或多個(gè)條件是真還是假而確定的值。
15.如權(quán)利要求14所述的方法,其中,一個(gè)或多個(gè)條件中的至少一個(gè)涉及正被解碼的系數(shù)在編碼期間相對(duì)于閾值的大小。
16.如權(quán)利要求13所述的方法,其中,應(yīng)用基于位的條件解碼包括將基于位的條件解碼應(yīng)用于具有相對(duì)較低能量的已編碼的離散小波變換系數(shù)。
17.一種集成電路,包括一種體系結(jié)構(gòu),將基于位的條件嵌入式零樹(shù)解碼應(yīng)用于已編碼的離散小波變換系數(shù)。
18.如權(quán)利要求17所述的集成電路,其中,所述體系結(jié)構(gòu)至少包括下述之一硬件、軟件、固件和它們的任意組合。
19.如權(quán)利要求17所述的集成電路,其中,所述體系結(jié)構(gòu)適于應(yīng)用基于位的條件解碼,所述基于位的條件解碼包括使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行解碼,所述二進(jìn)制值的變量是根據(jù)在編碼期間應(yīng)用于正被解碼的系數(shù)時(shí),一個(gè)或多個(gè)條件是真還是假而確定的值。
20.如權(quán)利要求19所述的集成電路,其中,一個(gè)或多個(gè)條件中的至少一個(gè)涉及正被解碼的系數(shù)在編碼期間相對(duì)于閾值的大小。
21.一種制品,包括存儲(chǔ)介質(zhì),具有存儲(chǔ)于其上的指令,當(dāng)由計(jì)算平臺(tái)執(zhí)行所述指令時(shí),產(chǎn)生對(duì)離散小波變換系數(shù)進(jìn)行嵌入式零樹(shù)編碼的方法,該方法如下執(zhí)行將基于位的條件編碼應(yīng)用于離散小波變換系數(shù)。
22.如權(quán)利要求21所述的制品,其中,當(dāng)執(zhí)行時(shí),所述指令還導(dǎo)致應(yīng)用基于位的條件編碼,所述基于位的條件編碼包括使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行編碼,所述二進(jìn)制值的變量是根據(jù)應(yīng)用于正被編碼的系數(shù)的一個(gè)或多個(gè)條件是真還是假而確定的值。
23.如權(quán)利要求22所述的制品,其中,當(dāng)執(zhí)行時(shí),所述指令還導(dǎo)致一個(gè)或多個(gè)條件中的至少一個(gè)涉及正被編碼的系數(shù)相對(duì)于閾值的大小。
24.一種制品,包括存儲(chǔ)介質(zhì),具有存儲(chǔ)于其上的指令,當(dāng)由計(jì)算平臺(tái)執(zhí)行所述指令時(shí),產(chǎn)生對(duì)已編碼的離散小波變換系數(shù)進(jìn)行嵌入式零樹(shù)解碼的方法,該方法如下執(zhí)行將基于位的條件解碼應(yīng)用于已編碼的離散小波變換系數(shù)。
25.如權(quán)利要求24所述的制品,其中,當(dāng)執(zhí)行時(shí),所述指令還導(dǎo)致應(yīng)用基于位的條件解碼,所述基于位的條件解碼包括使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行解碼,所述二進(jìn)制值的變量是根據(jù)在編碼期間應(yīng)用于正被解碼的系數(shù)時(shí),一個(gè)或多個(gè)條件是真還是假而確定的值。
26.如權(quán)利要求25所述的制品,其中,當(dāng)執(zhí)行時(shí),所述指令還導(dǎo)致一個(gè)或多個(gè)條件中的至少一個(gè)涉及正被解碼的系數(shù)在編碼期間相對(duì)于閾值的大小。
27.一種系統(tǒng),包括計(jì)算平臺(tái);所述計(jì)算平臺(tái)包括處理器、存儲(chǔ)器和用于在所述處理器和所述存儲(chǔ)器之間通信的總線;所述計(jì)算平臺(tái)包括一種體系結(jié)構(gòu),在操作期間,所述體系結(jié)構(gòu)適于通過(guò)將基于位的條件編碼應(yīng)用于離散小波變換系數(shù)來(lái)執(zhí)行對(duì)離散小波變換系數(shù)進(jìn)行嵌入式零樹(shù)編碼的方法。
28.如權(quán)利要求27所述的系統(tǒng),其中,所述體系結(jié)構(gòu)至少包括下述之一硬件、軟件、固件和它們的任意組合。
29.如權(quán)利要求27所述的系統(tǒng),其中,在操作期間,所述體系結(jié)構(gòu)適于應(yīng)用基于位的條件編碼,所述基于位的條件編碼包括使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行編碼,所述二進(jìn)制值的變量是根據(jù)應(yīng)用于正被編碼的系數(shù)的一個(gè)或多個(gè)條件是真還是假而確定的值。
30.一種系統(tǒng)計(jì)算平臺(tái);所述計(jì)算平臺(tái)包括處理器、存儲(chǔ)器和用于在所述處理器和所述存儲(chǔ)器之間通信的總線;所述計(jì)算平臺(tái)包括一種體系結(jié)構(gòu),在操作期間,所述體系結(jié)構(gòu)適于通過(guò)將基于位的條件解碼應(yīng)用于已編碼的離散小波變換系數(shù)來(lái)執(zhí)行對(duì)已編碼的離散小波變換系數(shù)進(jìn)行嵌入式零樹(shù)解碼的方法。
31.如權(quán)利要求30所述的系統(tǒng),其中,所述體系結(jié)構(gòu)至少包括下述之一硬件、軟件、固件和它們的任意組合。
32.如權(quán)利要求30所述的系統(tǒng),其中,在操作期間,所述體系結(jié)構(gòu)適于應(yīng)用基于位的條件解碼,所述基于位的條件解碼包括使用一個(gè)或多個(gè)二進(jìn)制值的變量進(jìn)行解碼,所述二進(jìn)制值的變量是根據(jù)在編碼期間應(yīng)用于正被解碼的系數(shù)時(shí),一個(gè)或多個(gè)條件是真還是假而確定的值。
全文摘要
本發(fā)明描述了用于編碼小波變換系數(shù)和解碼小波變換系數(shù)的方法和設(shè)備的實(shí)施例。
文檔編號(hào)H04N1/41GK1640142SQ02811027
公開(kāi)日2005年7月13日 申請(qǐng)日期2002年5月23日 優(yōu)先權(quán)日2001年5月29日
發(fā)明者廷庫(kù)·阿查里雅, 科科·拉古, 普拉比爾·比斯瓦斯 申請(qǐng)人:英特爾公司