專利名稱:圖像壓縮中的嵌入式四叉樹小波的制作方法
技術領域:
本發明一般涉及圖象編碼,更特別地,涉及數字圖象的壓縮與解壓縮。
多媒體計算的出現日益要求有高性能的圖象壓縮系統。在最近的幾年,小波變換已經變為主流的、基本的圖象壓縮技術。小波變換,一般也被稱作分級子帶分解,能夠產生如
圖1中所顯示的、對源圖象的多分辨率的分解分層結構(MDH)表示。通過對在MDH數據乘積中所產生的小波變換系數進行的有效編碼,可以實現比每點1比特更低的比特速率。
變換所產生的小波系數的一個最重要和最有利的特點是大部分系數將具有在進行標量量化后變為零的很小的幅度。對許多圖象處理的目的來說,一個小波變換系數的重要性或者有效性可以通過其絕對值與預定閾值的關系來進行測量。對一個特定閾值來說,一個小波變換系數是重要的或者不重要的,這取決于其幅度值是否超過了這個閾值。一組小波變換系數的重要性可以使用一個“重要性圖”來集中確定。一個“重要性圖”是記錄重要系數的位置的一個比特圖。大部分比特預算將使用在對重要性圖的編碼上。所以,一個圖象編碼系統的壓縮性能主要取決于其對重要性圖進行編碼的效率。
在美國專利5412741 J.M.Shapiro公開了稱作“EZW”的一個嵌入式零階樹小波算法。本發明的一個更有效的實施方式,稱作在分層樹中集合分區或者“SPIHT”,被Said等人在1996年6月3,No.3,Vol.6的IEEE Trans.On Circuits and Systems For VideoTechnology,A.Said and W.Pearlman,“A New Fast,and EfficientImage Codec Based on Set Partitioning in Hierarchy Trees”中所公開。
因為其內在的簡單性,高效率和比大部分其它技術更強的性能,基于EZW的編碼已經被認為是在圖象壓縮研究領域內一個最佳的技術。另外,它已經被選擇作為新一代圖象(JPEG 2000)和視頻(MPEG4)編碼的國際標準的一個候選技術。
基于EZW的編碼技術包括3個基本方法部件。第一方法部件是對MDH數據進行幅度的局部排序。通過在解碼器復制排序信息,以使具有較大幅度的MDH數據被首先傳輸,可以確保在對圖象進行重構時,攜帶較大數量信息的變換系數更有可能被獲得。通常,使用一組8個遞減的閾值來進行局部排序。第二方法部件是對精細比特的比特平面進行順序傳輸,以獲得嵌入式的量化。第三方法部件是利用對MDH數據幅度的交叉,子帶相關來對重要性圖進行編碼。
盡管在對MDH數據進行編碼時,零階樹已經被證明是非常成功的,它不是唯一的、對數據集合內在的規律性進行邏輯利用的技術。當考慮到所產生編碼的緊湊性時,EZW不是最有效的表示,并且零階樹方法的全封閉結構不允許進行獨立的或者并行處理。在一個零階樹編碼的情形下,一個視頻圖象,例如一個MPEG-4對象的多層表示中,僅其基本層可以被獨立解碼。對所有增強層的解碼均必須依賴前面所解碼的層。換句話說,對象的零階樹表示從本質上就禁止進行獨立的解碼性。這個非獨立性也非常容易受到比特錯誤的影響。一單個比特錯誤,在每一個隨后分辨率級中進行解釋后,將可能引起解碼器出軌。最后,零階樹表示的封閉結構使增加新的編碼方法或者特征變得很困難。
本發明是具有一個高壓縮性能的、對灰度數據和彩色圖象數據進行壓縮的一個方法。本發明的一個目的是提供一個在壓縮上是高效率的、快速的方法和系統來對小波變換系數的重要性信息進行編碼。本發明的另一個目的是提供一個方法和系統來產生可以伸縮的、基于區域進行訪問的、抗錯誤性的、并且能夠獨立進行解碼的一個被壓縮比特流。本發明提供了一個邏輯上簡單和快速的編碼方法,這個編碼方法具有能夠用硬件實現的高度并行機制。本發明系統所產生的比特流比現有技術所產生的比特流更能夠抵抗比特錯誤,因為所有子帶塊均是被獨立進行編碼的,并且在一個級上所產生的錯誤將不會導致在其它級上的錯誤。
根據本發明的一個方面,提供了一個對數字靜止圖象進行編碼和解碼的方法,來產生一個可伸縮的、內容可以被訪問的被壓縮比特流,這個編碼和解碼方法包括步驟將原始圖象數據分解和排序為一個分層的多分辨率子圖象;設置一初始重要性閾值并且產生一個重要性指數(index);確定一個初始非重要塊的列表;通過使用一個四叉樹表示對一個重要性圖進行編碼來形成重要性系數列表;循環地減少閾值,并且對每一個閾值重復這個編碼過程;并且然后,將重要性系數的精細比特發送出去。
根據本發明的另一個方面,提供了一個對數字靜止圖象進行編碼和解碼以產生一個可伸縮的、內容可以被訪問的被壓縮比特流的裝置,這個編碼和解碼裝置包括將原始圖象數據分解和排序為一個分層的多分辨率子圖象的裝置;用于設置一初始重要性閾值并且產生一個重要性指數的裝置;用于決定一個初始非重要塊的列表的裝置;用于通過使用一個四叉樹表示對一個重要性圖進行編碼來形成重要性系數列表的裝置;用于循環地減少閾值,并且對每一個閾值重復這個編碼過程的裝置;和用于將重要性系數的精細比特發送出去的裝置。
根據本發明的另一個方面,提供了一個對數字靜止圖象進行解碼以產生一個可伸縮的、內容可以被訪問的被壓縮比特流的方法,這個解碼方法包括步驟對比特流的頭進行解碼;決定初始閾值和初始重要點的陣列,非重要點和小波系數;對這個重要性圖進行解碼;修改重要性列表并且對每一個閾值級別的精細比特進行解碼;重構小波系數陣列;執行反向小波變換;并且重構這個圖象。
圖1是一個3層小波分解的示意圖顯示。
圖1a是對測試圖象“Lena”所執行的一個3層小波分解的一個圖象顯示。
圖2顯示了在被轉換為一個整數形式后,一個小波變換系數的二進制表示。
圖3是本發明的圖象編碼器的一個框圖。
圖4是對LSP和LIB進行初始化的過程。
圖5顯示了決定初始閾值的算法。
圖6是對重要性圖進行四叉樹編碼的一個流圖。
圖7是一個精細過程的一個流圖。
圖8是復用器的一個框圖。
圖9顯示了數據封裝的缺省順序。
圖10是本發明的圖象解碼器的一個框圖。
圖11是對重要性圖進行四叉樹解碼的一個流圖。
當一個優選實施方式的小波變換被用于對一個圖象進行分解時,它產生4個頻率的子帶循環。這些子帶信號是高水平高垂直或者“HH”,高水平低垂直“HL”,低水平高垂直“LH”,和低水平低垂直“LL”的頻率子帶。LL子帶然后被進一步進行小波變換,來產生另外一個HH,HL,LH和LL子帶的集合。這個過程被循環執行來產生對原始圖象的一個多分辨率分解分層結構(MDH)。這被顯示在已經采用了3級變換的圖1中。當然,作為本領域技術人員的讀者將理解,可以采用任意數目的子帶分解。
在圖1中,最低頻率的子帶,即提供最粗分辨率級別的子帶,是在最左上角的、用LL3所表示的塊101。最高頻率的子帶,或者最精細分辨率級別的子帶是HL1 102,LH1 103,和HH1 104。
圖1a是本發明的對測試圖象Lena所進行的3級小波分解的圖象表示。原始圖象la01可以被看作具有被分解圖象la02中的3級分辨率。HH1 104的高頻率數據可以被看作能夠在最右下角的塊la03提供最詳細的細節。
在進行一個小波變換后,每一個象素均用一個小波變換系數來表示。在本發明的一個優選實施方式中,這些系數的每一個均用一個固定小數點(fixed-point)的二進制格式,典型地少于16比特,來表示,并且被認為是一個整數。圖2顯示了一個小波變換系數的一般情形下的二進制表示。在這個系統中,第一比特201被專用于表示其符號-正的或者負的。在符號比特后的第一個非零比特202被稱作開始1比特或者LOB。LOB的位置由這個系數的幅度來決定。即,這個系數的值越大,它就越可能靠近這個符號比特。在LOB 202后面的所有比特均被稱作精細比特203。
在小波變換中產生了系數,并且以二進制格式對它們進行表示后,就對3個列表進行初始化。第一列表被稱作重要象素的列表或者LSP。LSP中的每一個項與MDH平面中的一個單個象素相應,并且用一對坐標(i,j)來標識。LSP被初始化為空列表,因為單個象素的重要性還沒有被確定。第二列表被稱作非重要塊的列表或者LIB。這個列表中的項由一個塊坐標的最左上角象素的坐標(i1,j1)加塊的象素寬和象素高(i2,j2)組成。當i2=j2=1時,LIB中的一個項表示一個塊由一單個象素組成。當第一次進行初始化時,TLIB是空的。在這些列表被初始化時,每一個子帶塊成為LIB中的一個項。在初始LIB中的項的順序是任意排列的,但是其缺省的子帶塊順序是LL3,LH3,HL3,HH3,LH2,HL2,HH2,LH1,HL1,HH1。圖4顯示了產生LSP的判斷樹和LIB中的缺省項。
在形成這些列表后的下一個步驟是計算閾值,來確定系數的重要性。在進行小波變換后,所有變換系數的最大幅度“M”必須被確定。該領域內的技術人員很熟悉,一個有效實現的MDH中的大部分系數將具有較低的值。一旦已經確定了M,就確定滿足條件2N≤M<2N+1的一個值N。初始閾值被設置為2N,并且各種N值的集合被稱作閾值指數。然后,閾值被以2的指數來進行遞減,以便于比特形式的計算。在每一個閾值,通過將系數與這個閾值進行比較來產生一個重要性圖。超過這個閾值的系數被給予值1,并且這樣就進入到重要性系數圖中。比閾值小的系數就在重要性圖中被給予值0。這樣就以二進制圖象的形式為每一個閾值產生了重要性圖。
記得前面所說的,LIB首先由MDH的子塊組成,本發明的優選實施方式開始對重要性數據進行四叉樹編碼。對給定塊,我們計算在這個塊中的重要系數的數目。如果這個數目是0。這個塊的標識坐標就被添加到TLIB中。如果這個塊,“父親塊”,中至少有一個重要系數,這個“父親塊”就被分成4個大小相同的、稱作“兒子塊”的子塊,并且然后被從LIB中刪除。在重要系數的數目是1的情形,并且這個塊的大小是1的情形下,這個項是一單個系數,并且其坐標被移動到LSP中。
有兩個方法可以處理子塊。第一方法,稱作第一深度四叉樹編碼,它將4個子塊插入到緊接在其父親塊的位置后面的LIB中。然后,立即評價4個子塊的重要性,并且循環地使用這個操作直到不需要進行子劃分為止。當這個塊中的所有重要系數被找到并且被移動到LSP時,對本發明項的編碼就被完成了。然后,這個過程就移動到LIB中的下一個塊。
第二方法,或者稱作第一寬帶四叉樹編碼,它將這4個塊添加到LIB的末尾,其中在相同過程結束以前就對它們進行評價。使用這個第一寬帶過程,相同級別的所有父親塊將在下一代的任何塊以前被處理。
在一個重要級別上已經處理了目前LIB中的所有項時,TLIB中的項被根據塊的大小而重新排序。每一個塊必須在放置尺寸更大的塊以前被放置,以使在下一個閾值時,它可以首先被處理。與重要象素相鄰的大多數象素,如果對當前閾值是不重要的,已經被作為象素級別項(pixel level entry)移動到TLIB中。因為相鄰系數的相關性,很可能這些相鄰點在下一個閾值將是重要的。在一個嚴格比特預算的情形下,我們必須首先輸出這些象素級別塊(pixel level block),以確保寶貴的比特沒有被用于從大塊中找出重要的系數,并且冒丟失象素級別重要系數的風險。所以,對TLIB重新排序將有助于使用更少的比特來對更重要的系數進行編碼。雖然不是必需的,實驗顯示使用這個重新排序的方法將能夠獲得高的PSNR。這個四叉樹過程中的最后一個步驟是在下一個重要級別的隨后掃描中用TLIB來替代LIB,并且將TLIB復位為空。但是,在移動到下一個閾值以前,收集關于重要系數的精細數據。
圖7顯示了在圖象數據的四叉樹編碼中,精細的傳遞。對LSP中那些在閾值2N+1(|Ci,j|≥2N+1)時是重要的系數項,就輸出其第N個比特。如圖3所顯示的和上面所討論的,在精細傳遞后,閾值被2除,并且用新的LIB-前面的TLIB-和新的閾值來重新開始上面的過程。
上面過程所產生的比特流的算法編碼不是必需的。在比特流中有兩個類型的數據四叉樹編碼重要性圖編碼比特,和精細比特,它們形成了一個完整的嵌入代碼。有很多方法可以來組織這個比特流。理論上,重要性圖數據和精細比特數據可以被用任何順序融合在一起。這可以被根據用戶所規定的優先級來封裝數據的復用器所處理。數據的缺省封裝順序被顯示在圖9中,并且當追求高PSNR時就可以確保獲得最佳的結果。
在解碼的第一級,必須從頭比特中重構下面的信息開始的閾值指數N,小波級的數目,和圖象的大小。根據上面的信息,我們可以對LIB進行初始化并且填充LIB,而初始的LSP和TLIB被設置為空。所有小波系數的初始值均被設置為0。
進行解碼的關鍵過程被顯示在圖11中,其中,在一給定閾值級別的重要性圖被根據所接收的比特進行解碼。假定本發明的閾值指數是N,這個過程首先從LIB中載入一個項,并且從這個比特流中讀取一個比特。如果這個比特值是0,這個項就被移動到TLIB中。替代地,檢查這個項來確定其大小是否是1。如果這個項是一單個象素,然后將當前位置的小波系數更換為2N+2N-1,并且讀入更多的比特。如果這個比特是1,將當前位置的小波系數更換為-(2N+2N-1)。然后,這個項被移動到LSP中。如果這個項不是在象素級別,這個過程就將其分解為4個大小相等的子塊。如果這個編碼已經使用了第一深度方法(編碼器進行這個判斷,并且這個信息已經被包括在比特流的頭部中),將子塊插入到其父親塊位置的LIB中。如果這個編碼器已經使用了第一寬帶的方法,將子塊添加到LIB的末尾中。在LIB中所有的項已經被處理后,使用TLIB來替代LIB,這將在下一個閾值級別被進行處理。LIB被根據與編碼中相同的規則來進行記錄,并且TLIB被重新設置為空。
在解碼的精細傳遞中,所有系數已經被移動到LSP中,并且被根據下面的規則來進行更新如果其系數是負的,然后如果接收比特是0就增加2N-1,否則如果接收比特是1就減2N-1。相反,如果這個系數是正的,如果接收比特是1就增加2N-1,如果接收比特是0就減2N-1。
在本發明的編碼和解碼過程中任何一點上,將計算所消耗的比特數來判斷是否已經超過了比特預算,并且可以停止這個過程。使用這個方法,如果不對這個比特流進行算法編碼,就可以實現對比特速率的精確控制。使用算法編碼,所產生的比特流通常比所希望的長度短。
權利要求
1.一個用于對數字靜止圖象進行編碼和解碼來產生一個可以伸縮的、其內容可以被訪問的被壓縮比特流的方法,這個方法包括步驟將原始圖象數據分解和排序為一個分層的多分辨率子圖象;設置一初始重要性閾值并且產生一個重要性指數;確定一個初始非重要塊的列表;通過使用一個四叉樹表示對一個重要性圖進行編碼來形成重要性系數列表;循環地減少閾值,并且對每一個閾值重復這個編碼過程;和將重要性系數的精細比特發送出去。
2.如權利要求1所定義的方法,其中根據一個小波變換來組成多分辨率子圖象的分層結構。
3.如權利要求1所定義的方法,其中根據一個傅立葉變換來組成多分辨率子圖象的分層結構。
4.如權利要求1所定義的方法,其中使用原始圖象數據來組成多分辨率子圖象的分層結構。
6.如權利要求1所定義的方法,進一步包括步驟將來自不同區域和分辨率通道的被壓縮數據裝入一個綜合比特流的一個復用協議使編碼器和解碼器選擇性地和交互地控制比特預算和被預算圖象的質量。
7.一個對數字靜止圖象進行編碼和解碼以用于產生一個可伸縮的、內容可以被訪問的被壓縮比特流的裝置,這個編碼和解碼裝置包括將原始圖象數據分解和排序為一個分層的多分辨率子圖象的裝置;用于設置一初始重要性閾值并且產生一個重要性指數的裝置;用于確定一個初始非重要塊的列表的裝置;用于通過使用一個四叉樹表示對一個重要性圖進行編碼來形成重要性系數列表的裝置;用于循環地減少閾值,并且對每一個閾值重復這個編碼過程的裝置;和用于將重要性系數的精細比特發送出去的裝置。
8.如權利要求7所定義的裝置,其中根據一個小波變換來組成多分辨率子圖象的分層結構。
9.如權利要求7所定義的裝置,其中根據一個傅立葉變換來組成多分辨率子圖象的分層結構。
10.如權利要求7所定義的裝置,其中使用原始圖象數據來組成多分辨率子圖象的分層結構。
11.如權利要求7所定義的方法,進一步包括一個復用裝置,用于將來自不同區域和分辨率信道的被壓縮數據裝入一個綜合比特流,并且使編碼器和解碼器選擇性地和交互地控制比特預算和被預算圖象的質量。
12.一個對數字靜止圖象進行解碼以產生一個可伸縮的、內容可以被訪問的被壓縮比特流的方法,這個解碼方法包括步驟對比特流的頭進行解碼;確定初始閾值和初始重要點的陣列,非重要點和小波系數;對這個重要性圖進行解碼;修改重要性列表并且對每一個閾值級別的精細比特進行解碼;重構小波系數陣列;執行反向小波變換;和重構這個圖象。
全文摘要
本發明是一個新的有效的、快速的、對靜止圖象進行壓縮的方法和裝置。本發明使用一個類似于四叉樹的結構實現了一個嵌入式的漸進排序方法。與基于零階樹的、小波編碼方法相比,本發明的嵌入式四叉樹小波(EQW)方法利用了在多分辨率分解分層結構的獨立層內部內在的空間自相似性。這個自相似性提供了在相同分辨率級別上對數據的更高預測性,所以在尋求一個緊湊的代碼時通常能夠提供一個更好的性能。EQW方法中所包括的計算比零階樹小波編碼方法中的更有效,其產生的比特流更能夠抵抗信道噪聲。本發明可以被有效地用于面向對象的形狀編碼或者圖象與視頻壓縮編碼系統中的區域編碼。
文檔編號H04N7/30GK1318178SQ99810894
公開日2001年10月17日 申請日期1999年8月10日 優先權日1998年8月10日
發明者王孟, 熊毅 申請人:數字加速器公司