專利名稱:用于數(shù)字數(shù)據(jù)壓縮的方法
技術領域:
本發(fā)明涉及專用于數(shù)字圖象壓縮的數(shù)字壓縮領域。特別是,本發(fā)明披露了一種利用自適應子波包分解的數(shù)字圖象壓縮方法。
數(shù)字數(shù)據(jù)壓縮領域、特別是數(shù)字圖象壓縮領域在某些時間內(nèi)具有極大的吸引力。
在數(shù)字圖象壓縮領域內(nèi),利用了很多不同的技術。具體地說,一種流行的技術是所述JPEG標準,該標準利用離散余弦變換(DCT)將一個圖象的標準尺寸塊變換成相應的余弦分量。在這方面,高頻余弦分量被斷續(xù)地數(shù)字化,以致促使獲得大量的壓縮因數(shù)。斷續(xù)量化的一個例子是圖象壓縮的“有損耗”技術。所述JPEG標準還提供所述變換系數(shù)的后續(xù)無損耗壓縮。
最近,子波變換領域作為另一種形式的數(shù)據(jù)壓縮引起廣泛的注意。已經(jīng)發(fā)現(xiàn)所述子波變換特別適用于表示具有諸如陡沿的不連續(xù)性的數(shù)據(jù)。這種不連續(xù)性經(jīng)常出現(xiàn)在圖象數(shù)據(jù)等之中。
雖然本發(fā)明的最佳實施例將結(jié)合圖象數(shù)據(jù)的壓縮加以描述,但是很明顯,所述最佳實施例并不局限于此。對于對信號進行子波分析的很多不同例子來講,由Bruce等人于1996年10月在IEEE雜志第26-35頁發(fā)表的題為“子波分析”的文章可以作為參考。為了討論在計算機圖形學中所述子波的應用,可以參考由Morgan Kaufmann Publisher Inc在1996年公開的I.Stollinitz等人發(fā)表的“用于計算機圖形學的子波”。
已經(jīng)知道了一定數(shù)量的圖象編碼技術,這些技術使用輸入圖象的線性變換以減少象素之間的相關性和系數(shù)編碼的額外開銷。這些技術包括JPEG圖象壓縮標準和聯(lián)邦調(diào)查局(FBI)的指紋圖象壓縮標準。如前所述,所述JPEG標準利用圖象數(shù)據(jù)的離散余弦變換(DCT),而FBI標準利用離散子波變換(DWT)。
用于對DWT系數(shù)編碼的現(xiàn)有技術包括嵌入零樹子波(EZW)方法(US專利5412741、5315670、5321776)和在層次樹中的集合劃分(SPIHT)。這些技術首先將傳統(tǒng)的DWT應用于源圖象以產(chǎn)生所述圖象的一個較小的低頻表示(稱之為LL子頻帶)和一定數(shù)量的高頻表示,或子頻帶(稱之為HL、LH和HH子頻帶)。然后,所述技術利用在不同頻率子頻帶之間相同取向的相關性預測所述子波樹上的零系數(shù)。這些方法已經(jīng)被開發(fā)用于假設具有1/f頻譜的自然圖象。它們使用連續(xù)解壓低頻圖象子頻帶的傳統(tǒng)DWT解壓。因此,它們通常不能對不符合1/f模式的諸如指紋圖象的圖象進行有效的處理。
所述FBI圖象壓縮標準特別被指定用于壓縮指紋圖象并因此使用非傳統(tǒng)的DWT和解壓除LL子頻帶以外的子頻帶。但是,被解壓的子頻帶被預先規(guī)定和不能夠適用于具有不同統(tǒng)計資料的指紋和新的圖象類型。
本發(fā)明的一個目的就是要克服現(xiàn)有技術中的一個或多個缺點。
根據(jù)本發(fā)明的第一個方面,提供了一種建立數(shù)據(jù)值集子波分解的方法,包括如下步驟(a)將所述數(shù)據(jù)值初步分解成一系列具有低頻分量、高頻分量和具有高、低頻混合分量的分量;(b)確定具有一個幅值的所述分量中每一個的第一數(shù)量系數(shù)是否超過一個預定的分量閾值;(c)將所述分量中的每一個分解成一系列具有低頻子分量、高頻子分量和具有高、低混合子分量的子分量;(d)確定具有一個幅值的多個子分量中每一個的第二數(shù)量系數(shù)是否超過一個預定的子分量閾值;(e)利用所述第一數(shù)量和第二數(shù)量確定所述的分量是否應當被分解成子分量;和(f)在進行所述分解的過程中,對所述子分量中的每一個應用步驟(a)到(e)直到分解的預定級。
根據(jù)本發(fā)明的第二方面,提供了一種用于建立圖象子波分解的方法,包括如下步驟(a)將所述圖象初步分解成具有低頻分量、高頻分量和具有高、低頻混合分量的一系列分量;(b)確定具有一個幅值的所述分量中的每一個分量系數(shù)的數(shù)目是否超過一個預定閾值;在所述系數(shù)數(shù)目超過一個分量規(guī)定閾值時,將所述分量分解成一定數(shù)量的子分量并依次對所述分量應用所述方法。
根據(jù)本發(fā)明的第三方面,提供了一種用于建立數(shù)據(jù)值集子波分解的裝置,所述裝置包括第一執(zhí)行裝置,用于將所述數(shù)據(jù)值初步分解成一系列具有低頻分量、高頻分量和具有高、低頻混合分量的分量;第一確定裝置,用于確定具有一個幅值的所述分量中每一個的第一數(shù)量系數(shù)是否超過一個預定分量閾值;建立裝置,用于將所述分量中的每一個分解成一系列具有低頻子分量、高頻子分量和具有高、低頻混合子分量的子分量;第二確定裝置,用于確定具有一個幅值的所述子分量中每一個的第二數(shù)量系數(shù)是否超過一個預定子分量閾值;利用裝置,用于利用所述第一數(shù)量和第二數(shù)量確定所述分量是否應當被分解成子分量;和第二執(zhí)行裝置,用于在進行所述分解時,對所述子分量中的每一個執(zhí)行第一執(zhí)行裝置、第一確定裝置、建立裝置、第二確定裝置和利用裝置的操作,直到分解的預定級。
根據(jù)本發(fā)明的第四方面,提供了一種裝置,用于建立一個圖象的子波分解。所述裝置包括執(zhí)行裝置,用于將所述圖象初步分解成一系列具有低頻分量、高頻分量和具有高、低頻混和分量的分量;確定裝置,用于確定具有一個幅值的所述分量中的每一個分量的系數(shù)的數(shù)目是否超過一個預定閾值;分解裝置,用于在所述系數(shù)數(shù)量超過一個分量規(guī)定閾值時將所述分量分解成一定數(shù)量的子分量;和重復裝置,用于對所述子分量重復所述確定和分解裝置的操作。
根據(jù)本發(fā)明的第五方面,提供了一種包括具有其上被記錄有用于建立數(shù)據(jù)值集子波分解的計算機程序的計算機可讀介質(zhì)的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括第一執(zhí)行裝置,用于將所述數(shù)據(jù)值初步分解成一系列具有低頻分量、高頻分量和具有高、低頻混合分量的分量;第一確定裝置,用于確定具有一個幅值的所述分量中的每一個的第一數(shù)量系數(shù)是否超過一個預定分量閾值;建立裝置,用于將所述分量中的每一個分解成一系列具有低頻子分量、高頻子分量和具有高、低頻子分量混合子分量的子分量;第二確定裝置,用于確定具有一個幅值的所述子分量中每一個的第二數(shù)量系數(shù)是否超過一個預定的子分量閾值,利用裝置,用于利用所述第一數(shù)量和第二數(shù)量確定所述分量是否應當被分解成子分量;和第二執(zhí)行裝置,用于在所述解壓過程中對所述子分量中的每一個執(zhí)行第一執(zhí)行裝置、第一確定裝置、建立裝置、第二確定裝置和利用裝置的操作直到分解的預定級。
根據(jù)本發(fā)明的第六方面,提供了一種具有其上記錄有用于建立圖象子波分解的計算機程序的計算機可讀介質(zhì)的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括執(zhí)行裝置,用于將所述圖象初步分解成一系列具有低頻分量、高頻分量和具有高、低頻混合分量的分量;確定裝置,用于確定具有一個幅值的所述分量中的每一個分量的系數(shù)數(shù)目是否超過一個預定閾值;分解裝置,用于在所述系數(shù)數(shù)量超過一個分量規(guī)定閾值時將所述分量分解成一定數(shù)量的子分量;和重復裝置,用于對所述子分量重復所述確定和分解裝置的操作。
下面,僅借助于舉例結(jié)合附圖對本發(fā)明的實施例進行描述,其中
圖1是一個高級框圖,該圖示出了這里所提到的專利申請中所描述的圖象表示技術;圖2示出了這里所提到的專利申請中所描述的分區(qū)結(jié)構(gòu);圖3的流程示出了這里所提到的專利申請中所描述的表示或編碼一個圖象的方法;圖4的詳細流程示出了圖3所示對一個區(qū)進行編碼的步驟;圖5的流程示出了根據(jù)圖3所示方法對所產(chǎn)生的一個圖象編碼表示解碼的方法;圖6的詳細流程示出了在圖5中解碼一個區(qū)的步驟;圖7A到7D示出了根據(jù)圖3到6所示編碼和解碼方法對兩維、八系數(shù)區(qū)的處理;圖8的方框圖示出了一個通用計算機;圖9到12的流程示出了在這里所提到的專利中請中所描述的一個圖象的表示或編碼的另一種方法;圖13-15示出了根據(jù)最佳實施例對子波變換圖象數(shù)據(jù)的處理;
圖16示出了根據(jù)最佳實施例的三級子波包分解和它的相應四樹表示;圖17示出了根據(jù)最佳實施例的同族子頻帶編碼和解碼順序的處理;圖18示出了根據(jù)最佳實施例用于兩例子波分解的子波包子頻帶編碼順序的例子;圖19的流程示出了根據(jù)最佳實施例建立數(shù)據(jù)值集的子波分解。
在任何一個或多個附圖中制定了對所述步驟和/或特性的標號,且不同的附圖中相同的步驟和/或特性具有相同的標號,相同的步驟和/或特性用于描述相同的功能和/或操作,除非另有說明出現(xiàn)。
在描述最佳實施例之前,首先給出在由Canon Information SystemResearch Australia Pty.Ltd在1997年1月22日申請、名稱為“用于數(shù)字圖象壓縮的方法”的澳大利亞專利申請No.PO 4728中披露的圖象壓縮和解壓方法。這個壓縮和解壓方法在下述題為“1.0 SWEET圖象壓縮方法概述”、“1.2第一SWEET圖象壓縮方法的解碼處理”、“1.3兩維例”和“1.4第二SWEET圖象壓縮方法的編碼處理”中加以描述。
1.0SWEET圖象壓縮方法概述圖1示出了一個高級方框圖,用于提供編碼方法的概述。輸入圖象102被提供給最好是一個線性變換器的變換塊110以產(chǎn)生相應的變換系數(shù)112。最好使用離散子波變換(DWT)。
一個圖象的兩維DWT是使用逼近所述圖象的一個低頻和三個高頻細目分量表示所述圖象的變換。通常,這些分量被稱做子頻帶。由所述DWT形成的4個子圖象是原始圖象尺寸的1/4。低頻圖象包含有關原始圖象的大部分信息。這些信息或能量壓縮是用于圖象壓縮所開發(fā)的離散子波變換圖象子頻帶的特性。
單級DWT可以任意次數(shù)地被依次應用于所述低頻圖象或子頻帶。例如,通過應用一次變換然后對通過變換所獲得的低頻帶應用所述DWT可以獲得圖象的三級DWT。由此,導致了9個細目子頻帶和一個(非常)低子頻帶。即使是在所述三級DWT之后,盡管被縮小了64倍(1/4×1/4×1/4),但所生成的低頻子頻帶仍然包含有效數(shù)量的原始圖象信息,借此以執(zhí)行64倍的壓縮。
但是,可以實現(xiàn)其它用于圖象數(shù)據(jù)去相關性的線性變換。例如,可以實現(xiàn)離散余弦變換(DCT)。然后利用重新安置塊120以一種有效方式對變換系數(shù)112或表示它們值的特別多的比特列編碼以提供編碼表示122。
譯碼處理簡單地是這個編碼處理的相反處理。被編碼的系數(shù)被譯碼成所述變換系數(shù)。所述(變換域)圖象然后被逆變換以形成原始圖象,或該原始圖象的逼近。
在進一步描述該實施例的處理之前,簡單回顧此后將要使用的術語。對于一個數(shù)的二進制整數(shù)表示,“比特(二進制位)n”或“比特數(shù)n”表示放置在最低有效比特左側(cè)的二進制數(shù)字n。例如,假設利用8比特二進制數(shù)表示,十進制數(shù)“9”被表示為“00001001”。在這個數(shù)中,比特3等于1,而比特2和1等于零,比特0等于1。另外,該變換可以被表示為一個具有在行和列中安置的系數(shù)的矩陣,從而使每一個系數(shù)都由一個比特列表示。從概念上講,所述矩陣可以被認為是在行方向上具有三維、一維;在列方向上具有第二維和在所述比特列方向上具有第三維。經(jīng)過在相同比特數(shù)通過每個比特列的這個三維空間中的平面被稱之為比特平面。
對于變換編碼應用,表示系數(shù)可能范圍所需的每個系數(shù)的比特數(shù)是由線性變換和輸入圖象中每個象素的分辨率(每個象素中的比特)確定的。用于每個象素的值范圍通常大于大部分變換系數(shù),因此,很多系數(shù)具有大量的前導零。例如,數(shù)9在利用8比特表示的情況下具有4個前導零,在利用16比特表示的情況下具有12個前導零。所述壓縮方法和裝置以有效方式描述(或編碼)這些前導零,以用于系數(shù)塊。所述剩下的比特和符號被直接編碼而不必進行修改。
為簡單敘述起見,下面假設所述變換系數(shù)將以具有單一符號位的無符號的二進制整數(shù)形式表示。即,利用相同的位列、即1001表示十進制的數(shù)-9和9,從而使具有符號位等于0的前者表示負值,具有符號位等于1的后者表示正數(shù)。前導零的數(shù)量由變換系數(shù)的范圍確定。在使用整數(shù)表示的情況下,所述系數(shù)被量化成最接近的一個整數(shù)值,雖然這并不是必須的。另外,為了壓縮的目的,小數(shù)比特中的任一信息通常被忽略。
所述范圍包括一組相連圖象系數(shù)。項系數(shù)此后與象素交換使用,但是,本專業(yè)技術領域的人員很容易理解,前者通常被用于表示一個變換域(例如DWT域)中的象素。
1.1第一SWEET圖象壓縮方法的編碼處理下面參考附圖3和4詳細描述第一圖象壓縮方法。
圖3的流程示出了第一圖象壓縮方法。在步驟302,使用一個圖象開始進行處理。在步驟304,使用最好是離散子波變換的線性變換對輸入圖象進行變換。初步區(qū)域被規(guī)定為整個圖象。例如,在三級DWT輸入圖象的情況下,包括10個子頻帶的生成系數(shù)可以被規(guī)定為所述區(qū)域。其它的每一個子頻帶可以被單獨處理,并按順序為整個子頻帶中的每一個建立初步區(qū)域。
在步驟306,確定變換系數(shù)最大絕對值的最高有效位(msb),并將參數(shù)maxBitNumber設定給這個系數(shù)值。例如,如果所述最大變換系數(shù)是二進制值00001001(十進制數(shù)9),由于msb是比特數(shù)3,所以參數(shù)maxBitNumber被設置成3。另外,參數(shù)maxBitNumber可以被設置成大于所述變換系數(shù)最大絕對值的msb的任一值。
接著,在步驟306,設置編碼參數(shù)minBitNumber以規(guī)定編碼圖象質(zhì)量。具體地說,這個編碼參數(shù)規(guī)定了被變換圖象中每個系數(shù)的精度并能夠根據(jù)需要改變。例如,minBitNumber等于3提供了比該值等于1更加粗糙的原始圖象重現(xiàn)。
所述技術可任選的包括步驟308,該步驟提供了在輸入圖象中被編碼表示的輸出標題。在實際構(gòu)成中,標題信息被作為編碼表示的一部分。例如,輸出標題可以包含關于源圖象的信息,這些信息可以包括所述圖象的高度和寬度、所述DWT級的數(shù)量、所述DC子頻帶的平均值、所述maxBitNumber參數(shù)和min BitNumber參數(shù)。
從步驟310開始,變換圖象的每個子頻帶在步驟310和314被單獨編碼。每個子頻帶被獨立編碼,以形成從低頻到高頻。對于所述DC子頻帶,在步驟308被編碼和譯碼成標題信息之前取消所述平均值。在步驟312,通過將初步區(qū)域設定為整個子頻帶對每個子頻帶編碼。在步驟314,利用maxBitNumber和minBitNumber作為參數(shù)譯碼所述區(qū)域。由于所述圖象的低分辨率版本被編碼成較高分辨率之前的比特流,所以這提供了分級代碼。在步驟316,所述處理結(jié)束。
圖4示出了在提供maxBitNumber作為currentBitNumber的地方用于每個區(qū)域編碼的圖3所示步驟314中“編碼區(qū)域(currentBitNumber,minBitNumber)”的詳細處理過程。在步驟402,處理開始。輸入給圖4所示輸入編碼處理的輸入包括currentBitNumber和minBitNumber參數(shù)。所述方法最好利用遞歸技術,其中,所述處理能夠利用所選擇的區(qū)域或子區(qū)域調(diào)用自己本身。但是,所述處理也可以不利用遞歸技術。
在判斷塊404,執(zhí)行一個檢查以確定currentBitNumber是否小于minBitNumber。如果不是,則判斷塊404返回真(是),并不進行任何工作和處理返回到步驟406的調(diào)用過程。這個狀態(tài)指出在所選擇區(qū)域中的每個系數(shù)都具有小于minBitNumber的msb號。如果判斷塊404返回假(否),在判斷塊408繼續(xù)執(zhí)行處理。
在判斷塊408,執(zhí)行一個檢查以確定所選擇的區(qū)域是否是1×1個象素。如果判斷塊408返回真(是),繼續(xù)執(zhí)行步驟410的處理。在步驟410,對所述1×1個象素編碼。最好,這包括直接輸出以編碼表示的有關minBitNumber的剩余位。在步驟412,處理返回到調(diào)用過程。反之,如果判斷塊408返回假(否),則所述區(qū)域包括一個以上的系數(shù)和繼續(xù)執(zhí)行判斷塊414的處理。
在判斷塊414,檢查被選擇的區(qū)域以確定它是否是有效的。即,測試所述區(qū)域的有效性。如果該區(qū)域中每個系數(shù)的msb數(shù)都小于currentBitNumber參數(shù)的值,那么,該區(qū)域可以被認為是無意義的。為了制定所述區(qū)域有效精度的概念,等式(1)給出了一個算術規(guī)定。如果Cij|<2n,i,j∈R ……(1)
那么,在給定的位數(shù)處,可以說currentBitNumber=n其中,R表示所述區(qū)域,和Cij表示在這個區(qū)域中的系數(shù)(i,j)。
如果判斷塊414返回假(否),繼續(xù)執(zhí)行步驟416的處理。在步驟416,參數(shù)currentBitNumber減1。即,選擇下一個較低位平面進行處理。然后在i判斷塊404繼續(xù)處理,在這里,利用參數(shù)currentBitNumber-1和minBitNumber再次對所述區(qū)域進行處理。反之,如果判斷塊404返回真(是),即,所述區(qū)域是有效的,那么,繼續(xù)執(zhí)行步驟418的處理。
在步驟418,以編碼表示流的方式輸出1(或所取的2)的值。在步驟420,使用預定的劃分算法將所選擇的區(qū)域劃分成預定數(shù)量的子區(qū)(最好是4個子區(qū))。所述劃分算法對于所述譯碼器是已知的。
在這種方法中,使用正方的區(qū)域。一個區(qū)域最好被劃分成4個等尺寸(正方)的子區(qū)。如圖2所示,所選擇的區(qū)域(R)200的尺寸為M×M系數(shù)并被劃分成4個等尺寸的子區(qū)210、212、214和216。這些子區(qū)中的每一個都具有N×N的尺寸,其中,N等于M/2。根據(jù)原始區(qū)域的尺寸和形狀,這并不總是可能的。如果這是不可能的,原始區(qū)域可以被劃分成一定數(shù)量的正方形區(qū)域,其中的每一個都是2的冪,和對這些被劃分的區(qū)域單獨編碼。在任何情況下,如果以智力方式做這項工作,這個初始化對整個結(jié)果具有最小的影響。另外,可以使用以適用于以塊為基礎編碼器的不同的部分。
在步驟422,利用相同的currentBitNumber和minBitNumber參數(shù)對每個子區(qū)編碼。最好借助于對圖4所示過程“代碼區(qū)(currentBitNumber,minBitNumber)”的遞歸調(diào)用實現(xiàn)上述這點。子區(qū)的這個編碼可以并行或串行執(zhí)行。在后者的情況下,所述處理可以依次從低頻子頻帶到高頻子頻帶進行。
在所述編碼表示中,通過簡單地將所述象素比特從currentBitNumber輸出給minBitNumber對變換系數(shù)編碼。最好執(zhí)行一個轉(zhuǎn)換,以便只有在某些系數(shù)比特處于非零狀態(tài)下才輸出符號。例如,如果currentBitNumber=3、minBitNumber=1,那么,-9(00001001)被編碼為符號比特“1”之前的“100”。
1.2第一SWEET圖象壓縮方法的譯碼處理圖5的流程示出了對使用圖3和4所示處理獲得的圖象編碼表示譯碼的方法。在步驟502,使用所述的編碼表示開始處理。在步驟504,從所述編碼表示中讀出標題信息以確定原始圖象的尺寸,并借此確定初步區(qū)域尺寸。另外,輸入諸如maxBitNumber(在編碼處理中等于初步的currentBitNumber)和minBitNumber的信息。其它的信息包括所述DC子頻帶的平均值。
在步驟506,通過依次設置到各子頻帶的區(qū)域開始每個子頻帶的譯碼。在步驟508,使用maxBitNumber和minBitNumber譯碼所選擇的區(qū)域。在步驟510,對譯碼的選擇區(qū)域執(zhí)行逆DWT處理。在步驟512,處理結(jié)束。
圖6的詳細示出了圖5步驟508用于使用其中maxBitNumber被提供為currentBitNumber的過程調(diào)用“譯碼區(qū)(currentBitNumber,minBitNumber)”譯碼每個區(qū)的流程。在步驟602,處理開始。到圖6區(qū)域譯碼處理的輸入是currentBitNumber和minBitNumber參數(shù)。所述方法仍然最好通過遞歸技術執(zhí)行。但是,也可以不用遞歸方法執(zhí)行。
在判斷塊604,執(zhí)行一個檢查以確定所述currentBitNumber是否小于minBitNumber。如果判斷塊604返回真(是),在步驟606繼續(xù)進行處理。反之,如果判斷塊604返回假(否),在判斷塊608繼續(xù)處理。
在判斷塊608,執(zhí)行一個檢查以確定所選擇的區(qū)域是否具有1×1象素的尺寸。如果判斷塊608返回真(是),處理在步驟610繼續(xù)。在步驟610,譯碼1×1區(qū)域。然后,處理返回到步驟612的調(diào)用過程。如果判斷塊608返回假(否),處理在步驟614繼續(xù)。在步驟614,從編碼表示輸入一個比特。
在判斷塊616,執(zhí)行一個檢查以確定所述比特是否等于零,即,檢查所述輸入以確定所述區(qū)域是否有效。如果判斷塊616返回假(否),處理在步驟618繼續(xù)。在步驟618,減小所述currentBitNumber,處理在判斷塊604繼續(xù)。反之,如果判斷塊616返回真(是),處理在步驟620繼續(xù)。在步驟620,所述區(qū)域被劃分成預定數(shù)量(最好是4)的子區(qū)域。在步驟622,使用currentBitNumber和minBitNumber譯碼所述子區(qū)域中的每一個。這是借助于對圖6所述的處理遞歸調(diào)用實現(xiàn)的。
然后,來自編碼器有效判斷的比特輸出指令在其上取算法通路的譯碼器,以模仿所述編碼器。通過簡單地讀入適當數(shù)量的比特(currentBitNumber到minBitNumber和如果它們中的某些具有非零符號比特)譯碼所述象素和可能的符號。
1.3兩維例所述方法有效編碼大多數(shù)變換系數(shù)的前導零,同時對從最高有效比特到預定最低有效比特由參數(shù)minBitNumber和符號本身簡單規(guī)定的比特進行編碼。然后,所述壓縮方法有利地表示所述前導零。這個方法在某些情況下非常有效,即用于編碼離散子波變換圖象系數(shù),這通常表示為大動態(tài)范圍。少量的系數(shù)通常具有非常大的值,而大部分系數(shù)具有非常小的值。
下面結(jié)合圖7A到7D描述對包括4×4系數(shù)的兩維區(qū)域編碼的例子。由于這是所有系數(shù)的最大比特量(位平面)20013-11-8-133-4-381-2-22-1-3-3]]>所以,利用被設置為7的maxBitNumber開始圖7A所示4×4區(qū)域700的處理。
為表示的目的,將minBitNumber設置為3。最好以包含maxBitNumber和minBitNumber的編碼表示輸出標題。然后對區(qū)域700的處理如下。
當currentBitNumber=7時,由于區(qū)域700相對于比特數(shù)7是有效的(見圖4的判斷塊404、408和414以及步驟418),所以,輸出壹(1)。然后區(qū)域700給劃分成4個子區(qū)(見圖4步驟420)即圖7A的左上區(qū)710、右上區(qū)712、左下區(qū)714和右下區(qū)716。這些子區(qū)中的每一個都包括2×2個系數(shù)。
圖7A所示的子區(qū)710、712、714和716按照圖7B所示的規(guī)定處理順序被依次編碼,其中,區(qū)域750包括4個子區(qū)750A到750D。圖中所示三個箭頭指出處理順序,分別是左上子區(qū)750A、右上子區(qū)750B、左下子區(qū)750C和右下子區(qū)750D。
圖7A所示子區(qū)710首先被編碼(見圖4A的步驟422)。對于currentBitNumber等于7的情況,一編碼表示形式輸出壹(1)。然后子區(qū)710被劃分成4個具有十進制值200、13、-13和3的1×1象素。通過將來自currentBitNumber=7的每個系數(shù)的比特輸出給min BitNumber=3(見圖4的判斷塊408和步驟410)對這些寫系數(shù)中的每一個編碼。然后,如果需要,輸出一符號。這樣,十進制值200被編碼為在所述符號比特0之前的11001。系數(shù)值13被編碼為具有符號比特0的00001。系數(shù)值-13被編碼為具有符號比特1的00001。最后,系數(shù)值3被編碼為(沒有符號比特的)00000。每個系數(shù)的編碼表示包括置于currentBitNumber和minBitNumber之間的系數(shù)“200”比特之前的兩個“1”比特。這種狀態(tài)的編碼輸出是符號位
在上述的表示中沒有示出標題信息。
然后編碼右上子區(qū)712(見圖7B)。由于相對于這些比特數(shù)區(qū)域712是有效的,所以,輸出零(0)以用于cnrrentBitNumber等于7、6、5和4的情況。由于這些位平面相對于比特數(shù)3是有效的,所以在currentBitNumber=3的情況下,輸出壹(1)。子區(qū)712被劃分成4個具有值-11、-8、-4和-3的1×1象素。這些十進制值分別被編碼為具有符號比特1的比特值1、具有符號比特1和比特值0和沒有符號比特的0的比特值1。由此,在這種狀態(tài)下,被編碼的表示如下;
然后對左上子區(qū)714編碼。由于區(qū)域714相對于這些比特數(shù)是有效的,所以,對于currentBitNumber等于7、6、5和4的情況輸出零(0)。由于這個位平面相對于比特數(shù)=3是有效的,所以,在currentBitNumber等于3的情況下輸出壹(1)。然后將子區(qū)714劃分成4個具有值8、1、2和-1的1×1象素。這些象素分別被編碼為具有符號比特0的二進制值1、二進制值0和0以及沒有符號比特的值0。
最后,具有值-2、-2、-3和-3的右下子區(qū)被編碼。由于子區(qū)716相對于這些比特數(shù)是有效的,所以,輸出零(0)用于currentBitNumber等于7、6、5、4和3的情況。由此,該編碼表示如下111100100000100000110000000001111100000011000000000。
譯碼器簡單地模仿所述編碼處理,以根據(jù)圖7C所描述的編碼表示重新構(gòu)成所述區(qū)域。
可以利用一定數(shù)量的方式使所述譯碼處理便得很“靈巧”。圖7D描述了這種“靈巧”的方式。在這種情況下,非零系數(shù)的幅值增加2的currentBitNumber次方的一半。這在圖7D中進行了描述。在這種方式下,所述“靈巧”譯碼處理通常減少了在被譯碼和原始系數(shù)之間的平方誤差。另外,所述編碼器可以交替執(zhí)行這個(種)操作,借此,保留所述編碼器使用圖7C所示的最簡單結(jié)構(gòu)。
1.4第二SWEET圖象壓縮方法的編碼處理下面,結(jié)合圖9到12描述本發(fā)明另一種方法的編碼處理。
整個數(shù)字圖象的離散子波變換可以在逐塊的基礎上進行。在對每個塊進行變換基礎上的結(jié)果是一組系數(shù),這些系數(shù)基本上等于一組所述整個圖象離散子波變換的占空系數(shù)。例如,從用于整個圖象的一組予定的DWT系數(shù)可以重現(xiàn)所述數(shù)字圖象的一部分或塊。從基本上用于表示來自所述特定域的一個數(shù)字圖象(塊)的相應部分的頻率域中選擇所述預定一組系數(shù)。通過將一個圖象分解成多個塊和對每個塊進行獨立地變換,執(zhí)行一個數(shù)字圖象的以塊為基礎的DWT,借此以對涉及當前空間位置的這些SWT系數(shù)進行評估。采用以塊為基礎變換逼近的優(yōu)點是利用所述圖象塊的彼此最小相互作用(基本是獨立的)順序編碼一個塊。以塊為基礎的技術是一個所設置的內(nèi)部存儲器,因此當使用計算機系統(tǒng)加以執(zhí)行時通常是非常有效的。
圖9的流程示出了根據(jù)第二種編碼方法的以塊為基礎的編碼處理。在步驟904,輸出一個標題。這個信息最好包括圖象高度和寬度、塊尺寸、DWT的級數(shù)和兩個編碼參數(shù)maxBitNumber和minBitNumber。可以根據(jù)所述應用選擇使用多個或幾個標題信息。
可以以各種方式選擇編碼參數(shù)maxBitNumber。如果只在它們中任一個編碼之前對所有圖象塊執(zhí)行所述塊DWT,maxBitNumber可以被選擇成所有SWT塊最大系數(shù)的MSB數(shù)。例如,如果最大系數(shù)是10000001(十進制值129),由于所述MSB的位數(shù)是7,所以maxBitNumber可以被設置成7。另外,可以使用由所述輸入圖象的變換和分辨率確定的確定性邊界。例如,利用8比特輸入圖象(移位7位加符號)和Haar變換,可以利用j+7界定所述最大MSB,其中,j是所述SWT的級數(shù)。如果所述塊很小,選擇這個參數(shù)可以有效地影響壓縮。在某些例子中,可以使用更加精細的方式選擇所述maxBitNumber。但是,這要取決于特定的應用。
參數(shù)minBitNumber確定相對于質(zhì)量交替使用的壓縮比并可以變化。例如,對于近似正交變換來講,值3提供用于8比特灰度或24比特RGB圖象的適當圖象質(zhì)量。
在步驟906,所述圖象被分解成多個塊(或形成圖象塊)。所述圖象最好被分解成多個塊。但是,也可以使用不重疊塊。所述系數(shù)塊可以和整個原始圖象一樣大,或和一個(用于三級變換的)8×8系數(shù)塊一樣小。對于低存儲器應用,可以使用盡可能小的塊。通常,16系數(shù)的塊尺寸足以用于具有三級或四級DWT的較高級壓縮。在每個塊DC系數(shù)的基礎上使用不同的脈沖碼調(diào)制,具有三級DWT的8×8系數(shù)塊尺寸能夠保持良好的編碼效率。
在步驟908,每個塊都被電平移位和變換。最好使用所述的DWT。圖象值被電平移位(例如移位128以用于8比特圖象)以減少或刪除任一不適當?shù)钠骄忍?,和變換所述圖象的每個空間塊。對于DWT,雖然不是必須的,但通常需要圍繞當前塊的所述塊的某些知識(與用于逆DWT的類似)。
在步驟910,使用maxBitNumber和minBitNumber參數(shù)編碼所述塊,在步驟912,處理結(jié)束。
圖10的流程詳細示出了對一個塊編碼的步驟910。對圖10所示塊編碼處理的輸入包括currentBitNumber和minBitNumber參數(shù)。參看圖10的步驟910,所述minBitNumber參數(shù)是作為currentBitNnmber參數(shù)輸入的。處理在步驟1002開始。在判斷塊1004中,進行一個檢查以確定所述currentBitNumber是否小于minBitNumber。如果判斷塊1004返回真(是),處理在步驟1006繼續(xù)。在步驟1006中,執(zhí)行返回到調(diào)用處理,借此指出在所述塊中的每個系數(shù)具有小于所述minBitNumber的MSB數(shù)。相反,如果判斷塊1004返回假(否),則處理在判斷塊1008繼續(xù)。
在判斷塊1008,執(zhí)行一個檢查以確定當前塊是否是有效的。如果判斷塊1008返回假(否),處理在步驟1010繼續(xù)。在步驟1010,以編碼表示輸出零(0)并確定currentBitNumber,即,選擇下一個較低比特平面。然后處理在判斷塊1004繼續(xù)。相反,如果判斷塊1008返回真(是),處理在步驟1012繼續(xù)。
判斷塊1004和1008與步驟1010一起使所述處理能夠獲得所述塊中最大系數(shù)的MSB數(shù)。如果所述塊中每個系數(shù)的MSB都小于所述currentBitNumber,那么,就currenyBitNumber而言,所述塊是無效的。重復這些,直到所述塊的比特平面有效或所述currenyBitNumber小于所述minBitNumber為止。
在步驟1012,以編碼表示輸出壹(1),以指出所述比特平面是有效的。在步驟1014,對所述DC子頻帶編碼。在步驟1016,使用參數(shù)j、currentBitNumber和minBitNumber編碼所述塊的細目。在步驟1018,執(zhí)行返回到調(diào)用處理。由此,給出所述塊是有效的結(jié)論。執(zhí)行步驟1012、1014和1016以使用(所產(chǎn)生的)四樹程式獲得具有所述BSB大于minBitNumber的所有系數(shù)。如果所述塊是有效的,停止被劃分成兩個“子塊”DC子頻帶系數(shù)和被稱之為“塊細目”并由于它表示與在所有較低級處級j的塊相關的高頻信息而被用于級j的包括剩余系數(shù)的塊。
圖12所示流程詳細示出了用于對所述DC子頻帶編碼的圖10所示步驟1014。即,圖12示出了使用currentBitNumber和munBitNumber參數(shù)對子頻帶或子塊的編碼處理。在判斷塊1204,執(zhí)行一個檢查以確定所述currentBitNumber是否小于minBitNumber。如果判斷塊1204返回真(是)處理在步驟1206繼續(xù)。在步驟1206,執(zhí)行返回到調(diào)用處理。相反,如果判斷塊1204返回假(否),處理在判斷塊1208繼續(xù)。
在判斷塊1208,執(zhí)行一個檢查以確定所述(子頻帶)塊的尺寸是否是1×1象素。如果判斷塊1208返回真(是),處理在步驟1210繼續(xù)。在步驟1210,對1×1象素編碼。這包括輸出在所述currentBitNumber和minBitNumber之間的比特,如果需要的話,在后面跟隨有一個符號比特。然后所述處理在步驟1212返回到調(diào)用處理。相反,如果判斷塊1208返回假(否),處理在判斷塊1214繼續(xù)。
在判斷塊1214,執(zhí)行一個檢查以確定所述(子頻帶)塊是否是有效的。如果判斷塊1214返回假(否),處理在步驟1216繼續(xù)。在步驟1216,以編碼表示輸出零(0)并確定所述currentBitNumber。然后處理在步驟1204繼續(xù)。相反,如果判斷塊1214返回真(是),處理在步驟1218繼續(xù)。
在步驟1218,以編碼表示輸出壹(1)以指出所述(子頻帶)塊是有效的。在步驟1220,所述(子頻帶)塊被劃分成4個子塊。在步驟1222,借助于遞歸調(diào)用執(zhí)行圖12所示的處理,使用參數(shù)currentBitNumber和minBitNumber對每個子編碼。在步驟1224,執(zhí)行返回到調(diào)用處理。
由此,在圖12所示的處理中,對它們的子頻帶或子塊編碼。最大MSB數(shù)如前相同被隔離。如果所述子塊只包括一個象素,它被編碼為一個單一的系數(shù)。相反,確定currentBitNumber和以編碼表示輸出零(0),直到currentBitNumber小于minBitNumber或所述子頻帶有效為止。如果所述子頻帶(子塊)有效,它將被劃分成4個(盡可能接近正方形的)子塊,和依次對它們編碼。例如DC系數(shù)的單一系數(shù)通過從currentBitNumher向minBitNumber輸出所述系數(shù)被編碼。如果某些系數(shù)比特不等于零,最好只輸出符號。
圖11的流程示出了圖10所示用于編碼塊細目的步驟1016。在步驟1102,處理開始。在判斷塊1104,執(zhí)行一個檢查以確定所述currentBitNumber是否小于minBitNumber。如果判斷塊1104返回真(是),在步驟1106執(zhí)行返回到調(diào)用處理。相反,如果判斷塊1104返回假(否),處理在判斷塊1108繼續(xù)。
在判斷塊1108,執(zhí)行一個檢查以確定所述塊(細目)是否是有效的。如果判斷塊1108返回到假(否),處理在步驟1110繼續(xù)。在步驟1110,以編碼表示輸出零(0)并確定currentBitNumber。然后處理在判斷塊1104繼續(xù)。相反,如果判斷塊1108返回到真(是),處理在步驟1112繼續(xù)。
在步驟1112,以編碼表示輸出壹(1)以指出所述塊(細目)是有效的。在步驟1114,對高-低(H-L)、低-高(L-H)和高-高(H-H)子頻帶的每一個編碼。每個分辨率的所述HL、LH和HH子頻帶被共同稱做AC子頻帶。根據(jù)圖12所示的處理對這些子頻帶中的每一個編碼。在步驟1116,使用參數(shù)j-1、currentBitNumber和minBitNumber并借助于遞歸調(diào)用執(zhí)行圖11所示處理對所述塊細目編碼(如果所述塊細目存在)。在步驟1118執(zhí)行返回到調(diào)用處理。
由此,用于級j的塊細目首先被處理成最大系數(shù)的第一隔離MSB數(shù)。這是通過在所述塊有效之前確定所述currentBitNumber和輸出零實現(xiàn)的。然后所述塊被劃分成位于級j的三個高頻子頻帶和用于級j-1(如果j-1大于0)的細目。這個劃分逼近是通過所謂的1/f型頻譜模型實現(xiàn)的。
通過模仿結(jié)合圖9到12所述的編碼處理可以執(zhí)行用于所述第二種方法的譯碼處理。
所述編碼和譯碼方法和裝置以有效和靈活的方式表示了數(shù)字圖象數(shù)據(jù)。,其中,所述表示適用于存儲和/或傳送圖象。所述編碼技術通常被用于表示變換系數(shù)陣列,和借助于表示在離散子波變換域中的圖象提供一個系數(shù)表示。具體地說,所述方法和裝置表示(或編碼)從一個輸入圖象獲得的變換系數(shù)塊的前導零。所述技術在提供具有給定尺寸代碼的原始圖象的良好重現(xiàn)和有效快速譯碼方面是非常有效的。另外,該技術的靈活性在于可以在不使用熵編碼的情況下獨立對從線性變換獲得的系數(shù)編碼。所述方法的優(yōu)點是包括所述編碼的深度優(yōu)先特性。另外,在編碼子頻帶的情況下,該方法的優(yōu)點是包括每個子頻帶單獨的分級編碼。
2.方法的最佳實施例當前實施例提供了一種使用子波包分解并采用DWT解壓每個規(guī)定圖象,從而使無效系數(shù)量最大和因此增加壓縮系數(shù)的方法。所述無效系數(shù)是根據(jù)由人可視系統(tǒng)(HVS)產(chǎn)生的簡單模型確定的。
所述最佳實施例的處理步驟如下1.使用自適應離散子波變換(DWT)解壓開拓每個圖象的規(guī)定圖象象素的相關性。
2.在與和用于編碼這個判定的額外信息中的增加相比較的無效系數(shù)(零)的增加數(shù)量的基礎上執(zhí)行解壓一個子頻帶的判定。
3.所述系數(shù)的有效性以它的幅值和該幅值所處子頻帶為基礎。根據(jù)由人可視系統(tǒng)(HVS)引起一個簡單模型和所希望的再結(jié)構(gòu)質(zhì)量加權每個子頻帶中的系數(shù)。
4.按照對編碼器和譯碼器都已知的規(guī)律確定的順序處理所述子頻帶。這些規(guī)律給出相對于低頻子頻帶的優(yōu)先權和所述壓縮較高等級處的優(yōu)先權,從而保證改進的感知編碼效率。
所述最佳實施例初步借助于圖象數(shù)據(jù)的子波變換進行處理。所述子波變換的描述在很多標準文本中都有描述,特別是,在前述Stollnitz等人的書中已有描述。下面,將結(jié)合附圖對所述標準子波變換處理進行描述。
參看圖13,利用離散子波變換(DWT)將一個原始圖象變換成4個子圖象3-6。所述子圖象或子頻帶通常表示為LL1、HL1、LH1和HH1。所述子頻帶名稱上的后綴1表示級1。LL1子頻帶是原始圖象的低通十進制形式。
所利用的子波變換可以變化和能夠包括例如Haar基本功能和Daubechies基本功能等。然后接著利用LL1子頻帶并應用第二離散子波變換,如圖14所示,該圖給出了子頻帶LL2(8)、HL2(9)、LH2(10)和HH2(11)。這些處理例如如圖15所示繼續(xù),其中,只示出了LL4子頻帶。4個頻帶的解壓處理被稱之為利用被稱之為DC子頻帶的LL4子頻帶的倍頻帶濾波器組合(bank)。很明顯,可以根據(jù)圖象的尺寸提供所述解壓的其它級。
每個單一級的DWT然后可以被逆轉(zhuǎn)以獲得所述原始圖象。由此,j-級DWT能夠被逆轉(zhuǎn)成一系列j-單一級的相反DWT。
通過對DC子頻帶編碼可以進行圖象編碼分級。然后,按照減等級的順序編碼剩余的子頻帶。為了進行4級DWT,在DC子頻帶(LL4)之后對位于級4處的子頻帶編碼。即HL4、LH4和HH4子頻帶。然后對級3處的子頻帶(HL3、LH3和HH3)編碼,其后對級2處的子頻帶(LH2、HL2和HH2)以及在級1處的子頻帶(LH1、HL1和HH1)編碼。
利用標準的圖象,被編碼的子頻帶通常包含圖象中的“細目”信息。因此,它們經(jīng)常包括多個值的備份陣列和能夠通過量化所述子頻帶和它們的備份矩陣形式的有效編碼實現(xiàn)基本壓縮。
除了傳統(tǒng)的DWT分析以外,在最佳實施例中所述LL子頻帶被持續(xù)解壓時,可以對其它HL、LH或HH子頻帶中的任一個解壓以實現(xiàn)有益效果。這已在如子波包分解的著作中公知和在輸入圖象沒有形成1/f頻譜模型,即當通過解壓除LL子頻帶以外的子頻帶獲得附加編碼增益時是有用的。
圖16示出了三級子波包分解20和它的相關四樹21的例子。四樹21被用于描述哪個子頻帶已經(jīng)被分解。當進行子波包分解時,可以在所述編碼器處構(gòu)成四樹21和所述四樹最好連接到所述譯碼器作為附加標題信息。
對四樹信息描述四樹21編碼的有效形式是經(jīng)過所述四樹21的深度優(yōu)先橫向。輸出壹(1)以指出一個轉(zhuǎn)移節(jié)點,即一個子頻帶已經(jīng)被進一步解壓,輸出零(0),以指出一個葉節(jié)點。利用這種方式,圖16所示的四樹21被如下編碼111 0000 000 1 0001 0000 00如果采取所述四樹的第一級且最大深度是已知的,并且所述第一級被予置或連接到所述譯碼器(在圖16所示例中,maxLevel被設置為3,所述四樹21的四樹編碼減少到110001000100根據(jù)最佳實施例,可以以來回方式執(zhí)行所述子波包分解。在完成第一級DWT之后,依次檢查4個子頻帶中的每一個以看一看通過進一步解壓它們是否可以獲得任一編碼增益。構(gòu)成檢查所述子頻帶的順序且該順序?qū)τ谒鲎g碼器來講應當是已知的。用于圖16所示例子的最佳順序示于圖17的25。如果執(zhí)行一個判定以分解一個子頻帶,輸出壹(1)給所述四樹標題信息,反之,則輸出零(0)。如果所述子頻帶被分解,那么,以完全相同的方式遞歸測試4個生成的子頻帶。在達到預定最大四樹深度(macLevel)的基礎上,不需要進一步的動作和遞歸路徑返回以測試位于解壓在前級處的下一個子頻帶。
通過對原始頻帶Z0中的無效系數(shù)計數(shù)和將這個計數(shù)與在下一級Zn處4個子頻帶、即如果進行解壓所建立的子頻帶中的無效系數(shù)的數(shù)量比較執(zhí)行是否分解一個子頻帶的判定。特別建議下述規(guī)定Z0=Σ0Zj(cij)]]>和Zn=ΣθΣijZ(cij)]]>其中,cij表示在感興趣子頻帶中的系數(shù)(ij),θ表示在解壓的下一級處的的4個定向子頻帶(LL、HL、LH、HH),Z(ci,j)是用于指出無效系數(shù)的指示函數(shù)
這里m規(guī)定最小比特數(shù),低于這個數(shù)的系數(shù)被認為無效和由所希望的編碼圖象質(zhì)量和所討論的子頻帶規(guī)定。如果Z0<Zn-Oh,則可以分解所述子頻帶,這里,Oh是與編碼所述子頻帶相關的額外附加信息。這個附加信息最好包括多個用于對所述四樹(4比特)中附加轉(zhuǎn)移節(jié)點編碼所需(在標題中)的位數(shù)計數(shù)的項以及某些其它的考慮。這些考慮應當包括對某些子頻帶有利分解的內(nèi)裝偏置,例如,對于LL子頻帶來講,該偏置應當是0,對于HL和LH子頻帶來講,該偏置應當是5和對于HH子頻帶來講,該偏置應當是10。另外,所述偏置應當與SWT級成正比增加,以便阻止其中編碼增益很小的高等級小子頻帶的分解。標題信息也可以包括1個比特,用于指出使用了子波包分解技術。
當一個圖象被分解成它的DWT系數(shù)子頻帶時,這些系數(shù)經(jīng)常被作為帶有符號的二進制整數(shù)進行處理。但是,在另外的方法中,這些系數(shù)也可以作為浮點數(shù)被存儲起來。
為了給出一個數(shù)的二進制整數(shù)表示,“比特n”或“比特數(shù)n”表示放置在最低有效位左側(cè)的二進制數(shù)字n。例如,假設用8比特表示的話,十進制數(shù)9可以被表示為00001001。在這個數(shù)字中,比特(數(shù))3=1,比特2=0,比特1=0和比特0=1。當對該系數(shù)編碼時,(相對于假設被譯碼器譯碼為零的所有較低比特)被編碼系數(shù)的最小(最低有效)比特數(shù)確定所述編碼表示的精度。另外,如果一個系數(shù)沒有設定關于最小比特數(shù)的比特m,那么,在子頻帶分解過程中,它將被計數(shù)為無效系數(shù)。
通過人為觀察者所做的實驗可以看出在所述DWT的較高級(例如圖13所示的3)處的子波系數(shù)需要增加的精度,即,它需要所述圖象中的最大的空間范圍和涉及到低空間頻率。另外,與垂直或水平系數(shù)相關的子波系數(shù)、即HL6和LH5子頻帶通常需要比傾斜系數(shù)、即HH4子頻帶較高的精度。
當前實施例包括一個簡單的方法,在該方法中,當設定用于每個子頻帶的最小比特數(shù)m時,它將被計數(shù)。利用這種方式,在子波包分解期間內(nèi),所述方法能夠獲得HVS靈敏度的優(yōu)點。
由于向使用者給出了一個規(guī)定的minBitNumber,那么,用于確定所述系數(shù)是否被認為是無效的所述最小比特數(shù)m如下給出m=max(O,S-1)+minBitNumber,其中,1是子波分解的當前級(currentLevel)和S取決于面向與所述DWT第一級相關并載有所述系數(shù)的哪一個子頻帶。下表給出了與S相關的一般值
DWT系數(shù)的編碼一旦利用子波分解對所述圖象進行分解,每個子頻帶都將被依次編碼和所述系數(shù)將被輸出給譯碼器。同族子頻帶、即在相同分解級處的子頻帶被以預先規(guī)定的順序處理,最好是以圖17所示的順序25進行處理。所述編碼從DC子頻帶、即位于最高級處的最低頻率(LL)子頻帶開始和逐步進入到在那些級處的HL、LH和HH子頻帶(利用currentLevel=maxLevel開始)。然后,進行到下一級(currentLevel=currentLevel-1)的編碼處理并前進到那些級的HL、LH和HH子頻帶。在這種方式下,所述7個最低頻率子頻帶永遠是首先被編碼。
然后如下對剩余的子頻帶進行編碼處理1.如果在大于currentLevel的一個級處具有未編碼的子頻帶,以圖17所示順序編碼這些(高達4個)子頻帶。如果在這些較高級處具有一組以上的子頻帶,那么,仍舊根據(jù)圖17所示順序依次對它們編碼。這些子頻帶被標記為已經(jīng)編碼或處理,處理進行到步驟2。
2.如果在大于currentLevel的級處沒有未編碼的子頻帶,那么,編碼處理進行到下一級(currentLevel=currentLevel-1)。然后,在這個新一級處LL1子頻帶內(nèi)的剩余子頻帶被編碼(在所述LL1內(nèi)可能沒有幾個子頻帶,在這種情況下,不做任何事情)。最佳編碼順序如圖17所示。
3.執(zhí)行步驟1和2,直到currentLevel<0為止。
圖18示出了根據(jù)上述方法兩個表示子波包子頻帶編碼順序效果的例子。在從標題信息讀出四樹結(jié)構(gòu)之后,譯碼器能夠遵循上述各組規(guī)則將所述系數(shù)譯碼成正確的子頻帶順序。然后使用諸如在澳大利亞臨時專利No.P04728中披露的SWEET的預定技術和這里所公開的技術量化和編碼每個子頻帶中的系數(shù)。
當然,也可以使用其他的技術編碼所述系數(shù)。但是,在包分解期間使用最小比特數(shù)確定系數(shù)有效的想法包括在前述申請SWEET編碼方法期間的測試系數(shù)有效的想法之中。
圖19的流程示出了根據(jù)最佳實施例一個圖象數(shù)據(jù)值子波分解的建立。所述方法是遞歸處理和為便于解釋稱之為Code(輸入數(shù)據(jù))。在步驟1900,所述遞歸處理開始并輸入圖象數(shù)據(jù)。這個圖象數(shù)據(jù)可以是原始圖象數(shù)據(jù)形式或是這個圖象數(shù)據(jù)子頻帶的形式。在判斷塊1901,執(zhí)行一個檢查以確定所述的子頻帶是否被分解成分解的預定級。如果該判斷塊返回到真(是),那么,處理在步驟1916結(jié)束,反之,處理在步驟1902繼續(xù)。在步驟1902,利用DWT變換將輸入的子頻帶分解成4個子塊S0。在下一個步驟1904,以先前所描述的方式計算與每一個子頻帶S0相關的值Z0。然后處理在步驟1906繼續(xù),在這里,子頻帶S0被進一步分解分解成子頻帶SN。在下一個步驟1908,依次計算用于相關子頻帶S0中每一個的值ZN。然后處理在判斷塊1910繼續(xù),在這里,判斷是否Z0<ZN-O,其中,O是用于第一子頻帶S0的附加項。如果判斷塊1910返回到假(否),處理在步驟1912繼續(xù)。如果該判斷塊返回到真(是),那么,利用被作為輸入數(shù)據(jù)輸入的第一子頻帶S0在步驟1914遞歸調(diào)用處理Code(輸入數(shù)據(jù))。在調(diào)用處理結(jié)束之后,返回到判斷塊1912。在判斷塊1912,執(zhí)行一個檢查以確定由所述判斷塊1910處理的最后一個子頻帶是否是第四個子頻帶。如果判斷塊1912返回到假(否),那么,處理再次繼續(xù)到判斷塊1910,在這里,在下一個S0子頻帶上繼續(xù)處理。如果判斷塊1912返回到真(是),那么,處理在步驟1916結(jié)束。
2.1裝置的最佳實施例最好使用諸如圖8所示傳統(tǒng)通用計算機實現(xiàn)所述編碼方法,其中,圖13到19所示的處理可以利用在計算機上執(zhí)行的軟件執(zhí)行。具體地說,利用在由所述計算機執(zhí)行的軟件中載有的指令執(zhí)行所述編碼方法的步驟。所述軟件可以被劃分成兩個單獨的部分一部分用于執(zhí)行所述編碼方法,另一部分用于管理在后者和使用者之間的用戶接口。所述軟件可以被存儲在包括例如下面將要描述的存儲裝置的一個計算機可讀介質(zhì)中。所述軟件被從所述計算機可讀介質(zhì)中裝載到所述計算機中,然后由該計算機執(zhí)行。具有這種軟件或在上記錄有計算機程序的計算機可讀介質(zhì)是一種計算機程序產(chǎn)品。根據(jù)本發(fā)明的實施例,在計算機中這種計算機程序產(chǎn)品的使用對用于編碼數(shù)字圖象表示的裝置具有最好的效果。
計算機系統(tǒng)800包括計算機802、視頻顯示器816和輸入裝置818、820。另外,計算機系統(tǒng)800可以具有諸如行式打印機、激光打印機、繪圖機和連接到所述計算機802上的其他重現(xiàn)裝置的其他輸出設備中的任一個。計算機系統(tǒng)800可以經(jīng)過通信接口808c使用諸如調(diào)制解調(diào)通信通路、計算機網(wǎng)絡等適當通信信道830連接到一個或多個計算機上。所述計算機網(wǎng)絡可以包括局部區(qū)域網(wǎng)絡(LAN)、廣域網(wǎng)絡(WAN)、Intranet和/或Internet網(wǎng)絡。
計算機802本身包括中央處理單元(此后簡稱處理器)804、可以包括隨機存取存儲器(RAM)和只讀存儲器(ROM)的存儲器806、輸入輸出(I/O)接口808a、808b和808c、以及一般由圖8塊812表示的一個或多個存儲裝置812。所述存儲裝置812可以包括下述本技術領域普通技術人員公知的一個或多個軟盤、硬盤裝置、磁光盤裝置、CD-ROM、磁帶或任何其他非易失存儲裝置。構(gòu)件804到812中的每一個通常經(jīng)過包括數(shù)據(jù)、地址和控制總線的總線814連接到一個或多個其他裝置上。
視頻接口810被連接到視頻顯示器816上并在所述視頻顯示器上提供用于顯示來自所述計算機802的視頻信號。用于操作計算機802的使用者的輸入能夠由一個或多個輸入裝置808b提供。例如,一個操作可以使用鍵盤818和/或諸如鼠標的點入裝置以向計算機802提供輸入。
可以使用為表示和其他構(gòu)成目的而簡單提供的系統(tǒng)800可以被使用而不會脫離本發(fā)明的范圍和精神??梢詫崿F(xiàn)所述實施例的示例性計算機包括IBM-PC/AT,或可兼容的Macintosh(TM)的、SunSparcstation(TM)等PC家族之一。前述主要解釋了能夠?qū)崿F(xiàn)本發(fā)明所述實施例的計算機類型的例子,通常,所述實施例的處理(此后描述)作為軟件或記錄在作為計算機可讀介質(zhì)的硬盤裝置(通常以圖8的塊812表示)上的程序是常駐的,并可以使用處理器804讀出和控制。程序和象素數(shù)據(jù)以及取自網(wǎng)絡的任一數(shù)據(jù)的中間存儲可以使用半導體存儲器806實現(xiàn),這可能涉及硬盤驅(qū)動器812。
在某些例子中,所述程序可以由在CD-ROM或軟盤(通常用塊812表示)編碼的使用者提供,或例如可以由所述使用者經(jīng)過連接到所述計算機上的調(diào)制解調(diào)器從所述網(wǎng)絡中讀出。另外,軟件也可以從包括磁帶、ROM或集成電路、磁-光盤、計算機和其他裝置之間的無線電或紅外傳輸信道、諸如PCMCIA卡的計算機可讀卡和包括郵件傳送和在Website上記錄的信息的Internet和Intranet等其他計算機可讀介質(zhì)裝載到計算機系統(tǒng)800中。上述主要解釋了相關的計算機可讀介質(zhì)。也可以使用其他計算機可讀介質(zhì)而不會脫離本發(fā)明的范圍和精神。
所述編碼方法可以利用專用硬件實現(xiàn),所述專用硬件諸如是一個或多個執(zhí)行所述功能或所述編碼子功能的集成電路。這種專用硬件可以包括圖形處理器、數(shù)字信號處理器、或一個或多個微處理器和相關存儲器。
前面僅僅描述了本發(fā)明的少數(shù)幾個實施例,但是,本技術領域內(nèi)的普通技術人員可以在不脫離本發(fā)明范圍和精神的前提下作出修改和變化。因此,當前實施例將被認為是示出了所有方面但并不作為限制。
權利要求
1.一種用于建立數(shù)據(jù)值集子波分解的方法,包括如下步驟(a)將所述數(shù)據(jù)值初步分解成一系列具有低頻分量、高頻分量和具有高、低頻混合分量的分量;(b)確定所述具有一個幅值的所述分量中每一個的第一數(shù)量系數(shù)超過一個預定分量閾值;(c)將所述分量中的每一個分解成一系列具有低頻子分量、高頻子分量和具有高、低混合頻率子分量的子分量;(d)確定所述具有一個幅值的所述子分量中每一個的第二數(shù)量系數(shù)超過一個預定子分量閾值;(e)利用所述的第一數(shù)量和所述的第二數(shù)量確定所述分量是否應當被分解成子分量;和(f)在進行所述分解時,對所述子分量中的每一個應用所述步驟(a)到(e),直到分解的預定級。
2.根據(jù)權利要求1所述的方法,其特征是所述利用步驟包括將所述第一數(shù)量和與和所述分量相比具有較少與編碼所述子分量相關的附加量的第二數(shù)量相比較。
3.根據(jù)權利要求1或2所述的方法,其特征是所述的利用步驟還包括根據(jù)每個分量的頻率分量加權所述比較。
4.根據(jù)權利要求3所述的方法,其特征是所述低頻分量的分解被最重加權。
5.根據(jù)權利要求4所述的方法,其特征是具有高、低頻混合頻率的分量的分解比具有較高頻率的分量的分解被較重加權。
6.根據(jù)權利要求1所述的方法,其特征是所述系數(shù)閾值基本上是2m,其中,m規(guī)定如下m=max(0,S-1)+minBitNumber其中,1是子波分解的當前級,S取決于子波分解的的頻率分量和minBitNumber是使用者規(guī)定的變量。
7.根據(jù)權利要求6所述的方法,其特征是S取下述值以用于每個分量在所述分量只具有低頻分量的地方,S=2;在所述分量具有高、低混合頻率分量的地方,S=3;和在所述分量只具有高頻分量的地方,S=4。
8.根據(jù)權利要求1所述的方法,其特征是所述預定分量閾值是2的冪。
9.根據(jù)權利要求1所述的方法,其特征是所述數(shù)據(jù)值包括一個圖象。
10.根據(jù)權利要求1所述的方法,其特征是所述分量根據(jù)頻率并和分量的級順序編碼。
11.一種建立圖象子波分解的方法,包括如下步驟(a)將所述圖象初步分解成一系列具有低頻分量、高頻分量和具有高、低頻混合頻率分量的分量;(b)確定具有一個幅值的所述分量中每一個的系數(shù)的數(shù)量超過一個預定閾值;其中,在所述系數(shù)量超過一個分量規(guī)定閾值的地方,將所述分量分解成一定數(shù)量的子分量和對所述子分量遞歸應用所述方法。
12.一種用于建立數(shù)據(jù)值相關性子波分解的裝置,所述裝置包括第一執(zhí)行裝置,用于將所述數(shù)據(jù)值初步分解成一系列具有低頻分量、高頻分量和具有高、低混合頻率分量的分量;第一確定裝置,用于確定具有一個幅值的所述分量中每一個的第一數(shù)量系數(shù)超過一個預定分量閾值;建立裝置,用于將所述分量中的每一個分解成具有低頻子分量、高頻子分量和具有高、低頻混合子分量的一系列子分量;第二確定裝置,用于確定具有一個幅值的所述子分量中的每一個的第二數(shù)量系數(shù)超過一個預定子分量閾值;利用裝置,用于利用所述第一數(shù)量和所述第二數(shù)量確定所述分量是否應當被分解成所述子分量;和第二執(zhí)行裝置,用于在進行所述分解的地方,對所述子分量的每一個執(zhí)行所述第一執(zhí)行裝置、第一確定裝置、建立裝置、第二確定裝置和利用裝置的操作,直到分解的預定級為止。
13.根據(jù)權利要求12所述的裝置,其特征是所述利用裝置包括一個比較裝置,用于將所述第一數(shù)量和與所述分量比較具有較少涉及編碼所述子分量的附加量的第二數(shù)量進行比較。
14.根據(jù)權利要求12或13所述的裝置,其特征是所述利用裝置還包括一個加權裝置,用于根據(jù)每個子分量的頻率分量加權所述的比較。
15.根據(jù)權利要求14所述的裝置,其特征是所述低頻分量的分解被最重加權。
16.根據(jù)權利要求15所述的裝置,其特征是具有高、低混合頻率的分量的分解具有比具有較高頻率分量的分解更重的加權。
17.根據(jù)權利要求12所述的裝置,其特征是所述系數(shù)閾值基本是2m,其中,m如下規(guī)定m=max(0,S-1)+minBitNumber其中,1是子波分解的當前級,S取決于子渡分解的頻率分量和minBitNumber是使用者規(guī)定的變量。
18.根據(jù)權利要求17所述的裝置,其特征是S取下述值以用于每個分量在所述分量只具有低頻分量的地方,S=2;在所述分量具有高、低混合頻率分量的地方,S=3;和在所述分量只具有高頻分量的地方,S=4。
19.根據(jù)權利要求12所述的裝置,其特征是所述預定分量值是2的冪。
20.根據(jù)權利要求12所述的裝置,其特征是所述數(shù)據(jù)值包括一個圖象。
21.根據(jù)權利要求12所述的裝置,其特征是根據(jù)所述分量的頻率和級順序?qū)λ龇至烤幋a。
22.一種用于建立圖象子波分解的裝置,所述裝置包括;執(zhí)行裝置,用于將所述圖象初步分解成一系列具有低頻分量、高頻分量和具有高、低混合頻率分量的分量;確定裝置,用于確定具有一個幅值的所述分量中每一個的系數(shù)量超過一個預定閾值;確定裝置,用于在所述系數(shù)量超過一個分量規(guī)定閾值的地方將所述分量分解成一定數(shù)量的子分量;和重復裝置,用于對每個所述子分量重復確定和分解裝置的操作。
23.一種包括具有在其上記錄有用于建立數(shù)據(jù)值相關性子波分解的計算機程序的計算機可讀介質(zhì)的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括第一執(zhí)行裝置,用于將所述數(shù)據(jù)值初步分解成具有一系列具有低頻分量、高頻分量和具有高、低混合頻率分量的分量;第一確定裝置,用于確定具有一個幅值的所述分量中的每一個的第一數(shù)量系數(shù)超過一個預定分量閾值;建立裝置,用于將所述分量中的每一個分解成一系列具有低頻子分量、高頻子分量和具有高、低混合子分量的子分量;第二確定裝置,用于確定具有一個幅值的所述子分量中的每一個的第二數(shù)量系數(shù)超過一個預定子分量閾值;利用裝置,用于利用所述第一數(shù)量和所述第二數(shù)量確定所述分量是否應當被分解成所述子分量;和第二確定裝置,用于在執(zhí)行所述分解的地方,對所述子分量中的每一個執(zhí)行所述第一執(zhí)行裝置、第一確定裝置、建立裝置、第二確定裝置和利用裝置的操作。
24.根據(jù)權利要求23所述的計算機程序產(chǎn)品,其特征是所述利用裝置包括一個比較裝置,用于將所述第一數(shù)量和與所述分量相比較具有較少涉及編碼所述子分量的附加量的第二數(shù)量相比較。
25.根據(jù)權利要求23或24所述的計算機程序產(chǎn)品,其特征是所述利用裝置還包括一個用于在每個分量的頻率分量的基礎上加權所述比較的加權裝置。
26.根據(jù)權利要求25所述的計算機程序產(chǎn)品,其特征是所述低頻分量的分解被最重加權。
27.根據(jù)權利要求26所述的計算機程序產(chǎn)品,其特征是具有高、低混合頻率的分量的分解比具有較高頻率分量的分量的分解被較重加權。
28.根據(jù)權利要求23所述的計算機程序產(chǎn)品,其特征是所述系數(shù)閾值基本等于2m,其中,m規(guī)定如下m=max(0,S-1)+maxBitNumber其中,1是子波分解的當前級,S取決于所述子波分解的頻率分量,和minBitNumber是使用者規(guī)定的變量。
29.根據(jù)權利要求28所述的計算機程序產(chǎn)品,其特征是S取如下值以用于每個分量在所述分量只具有低頻分量的地方,S=2;在所述分量具有高、低混合頻率分量的地方,S=3;和在所述分量只具有高頻分量的地方,S=4。
30.根據(jù)權利要求23所述的計算機程序產(chǎn)品,其特征是所述預定分量閾值是2的冪。
31.根據(jù)權利要求23所述的計算機程序產(chǎn)品,其特征是所述數(shù)據(jù)值包括一個圖象。
32.根據(jù)權利要求23所述的計算機程序產(chǎn)品,其特征是所述分量被根據(jù)該分量的頻率和級順序編碼。
33.一種包括具有在其上記錄的用于建立一個圖象子波分解的計算機程序的計算機可讀介質(zhì)的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括執(zhí)行裝置,用于將所述圖象初步分解成一系列具有低頻分量、高頻分量和具有高、低頻混合分量的分量;確定裝置,用于確定具有一個幅值的所述分量中的每一個的系數(shù)量超過一個預定閾值;分解裝置,用于在所述系數(shù)量超過一個分量規(guī)定閾值的地方將所述分量分解成一定數(shù)量的子分量;和重復裝置,用于對所述的子分量重復執(zhí)行確定和分解裝置的操作。
34.一種用于建立圖象子波分解的方法,包括如下步驟;(a)將所述圖象初步分解成多個第一子頻帶;和(b)根據(jù)所述多個第一子頻帶的特性,確定所述第一子分量中的至少一個是否將被進一步分解成多個第二子頻帶。
35.一種用于建立圖象子波分解的裝置,所述裝置包括;用于將所述圖象子波分解成多個第一子頻帶的裝置;和用于根據(jù)所述第一子頻帶特性確定所述第一子頻帶中的至少一個是否將被進一步分解成多個第二子頻帶的確定裝置。
全文摘要
一種數(shù)據(jù)值集子波分解方法,包括步驟:將數(shù)據(jù)值分解成一系列具有低頻、高頻和混合頻率分量的分量;確定具有一個幅值的分量中的每一個的第一系數(shù)量超過預定分量閾值;將所述每個分量分解成一系列具有低頻、高頻和混合子分量的子分量;確定具有一個幅值的子分量中的每一個的第二系數(shù)量超過預定子分量閾值;確定所述分量是否應當被分解成所述子分量;和在進行分解時將前述步驟應用于每個所述子分量直到達到所述分解預定級為止。
文檔編號H04N1/41GK1219079SQ9812462
公開日1999年6月9日 申請日期1998年9月29日 優(yōu)先權日1997年9月29日
發(fā)明者安德魯·彼特·布魯?shù)吕? 詹姆斯·菲利普·安德魯 申請人:佳能株式會社, 澳大利亞Pty佳能信息系統(tǒng)研究公司