專利名稱:可逆子波變換和嵌入代碼流處理的制作方法
技術領域:
本發明涉及數據壓縮和解壓系統領域,更詳細地說,本發明涉及用來在壓縮/解壓系統中數據的無損耗和有損耗編碼和解碼的方法和裝置。
背景技術:
數據壓縮是用于大量數據的存貯和傳送的一種極為有效的方法。例如,當壓縮被用來降低還原諸如一文件傳真傳送之類的圖象所需的比特數時,傳送一圖象所需的時間急劇的減少。
在現有技術中存在有許多不同的數據壓縮技術。壓縮技術可分成二類主要的類型,有損耗編碼和無損耗編碼。有損耗編碼包含導致信息損耗的編碼,這就不能保證原始數據的理想的再現。有損耗壓縮的目的是以這樣一種方式來改變原始數據以使得它們不會不適宜或不會易被察覺。在無損耗壓縮中,所有信息均被保留并且數據以一種能夠理想再現的方式被壓縮。
在無損耗壓縮中,輸入符號或亮度數據被變換成輸出代碼字。該輸入可以包括圖象、聲頻、一維(即,數據空間地或時間地變化的數據)、二維(即,在二個空間方向由(或一空間和一時間量綱)上數據變化)、或多維/多頻譜數據。如果壓縮成功,則該代碼字由比未編碼的輸入符號(或亮度數據)所需的比特數要少的比特來表示。無損耗編碼方法包括編碼(即,Lempel-Ziv)、行程編碼、枚舉編碼和熵編碼的字典方法。在無損耗圖象壓縮中,壓縮是基于預測或上下文、插值編碼。用于傳真通信的JBIG標準和用于連續色調圖象的DPCM(差動脈沖編碼調制—在JPEG標準中的一種選擇)是用于圖象的無損耗壓縮的例子。在有損耗壓縮中,輸入符號或亮度數據在變換成輸出代碼字之前被量化。量化的意思是指保存數據的相關特征同時消除不重要的特征。在量化之前,有損耗壓縮系統通常使用一變換以提供能量壓縮。JPEG是用于圖象數據的有損耗編碼的例子。
近來圖象信號處理的發展集中趨向于發展高效率和精確的數據壓縮編碼形式。提出了各種變換或角錐信號處理的方式,包括多分辨(multiresolution)角錐處理和子波角錐處理。這些方式還稱之為副頻帶處理和分層處理。圖象數據的子波角錐處理是多分辨角錐處理的一特定形式,它可使用正交鏡象濾波器(QMFS)以產生一原始圖象的副頻帶分解。應注意的是存在有非QMF的其它類型。對于子波處理的信息,請見Antonint,M.,等“Image Coding UsingWavelet Transform”,IEEE Transaction on Image Processing,Vol.1,No.2,1992.4.4;Shapiro,J.,“An Embedded Hierarchical ImageCoder Using Zerotrees of Wavelet Coefficients”,Proc.IEEE DateCompression Conference,pgs 214-223,1993。
與現有技術子波處理極為相關的一個問題是在進行處理時需要一個存貯所有數據的大存貯器。換句話說,在執行子波處理中,在該數據執行編碼之前所有的數據必須被檢驗。在這種情況中,直至最少一個充分的通過全部數據為止沒有數據輸出。事實上,子波處理典型地包含多重數據傳送。由于這個原因,通常需要一大存貯器。最好是利用子波處理,同時避免大存儲器的要求。另外,還期望執行子波處理時僅一次通過該數據。
許多子波或副頻帶變換處理過程需要特殊范圍形式的濾波器。例如,低通和高通濾波器必須具有相同的長度、該系數的平方和必須為1、高通濾波器的時間和頻率必須與低通濾波相反等(見1991年5月公布的Lawton等人的美國專利No 5,014,134)。最好是允許濾波器的種類要寬一些。也就是,期望能提供使用的低通和高通濾波器不要求有相同的長度、其系數的平方和不需要為1、高通濾波器不要求是低通濾波器相反的時間和頻率的子波或副頻帶變換處理過程。
發明內容
本發明是提供使用一種提供了良好能量壓縮變換的有損耗和無損耗壓縮。
描述了一種壓縮和減壓系統。該壓縮系統包括一將輸入數據編碼成一被壓縮的數據流的編碼器。該熵編碼器、即所說編碼器包括一可逆子波濾波器、一排序和造型機構和一二進制熵編碼器、可逆子波濾波器將輸入數據變換為使用角錐介壓的系數。該排序和造型機構從通過在該系數內對該系數和二進制值排序的系數中產生一嵌入式代碼流。該二進制熵編碼器可使該嵌入式代碼流二進制熵編碼以產生被壓縮的數據流。
通過下面結合附圖對本發明的各種不同實施例的詳細說明將對本發明有更為全面的了解,但本發明并不局限于這些特定的實施例,這些實施例僅供解釋和理解而已。
圖1是本發明的編碼系統的編碼部分的一實施例的方框圖。
圖2是本發明系數數據排序和造型的一實施例的方框圖。
圖3A是一子波分解合成系統的方框圖。
圖3B是對于具有非重疊最小限度長度可逆濾波器濾波的情況下變換系統的前向和反向表達。
圖4是一2D可逆濾波器的另一可供選擇的實施例的方框圖。
圖5A、5B、5C和5D示出了一四級分解的結果。
圖6示出了在二個連續級之間的母體關系。
圖7是一三級角錐變換的方框圖。
圖8是一二維、二級變換的方框圖。
圖9是表示執行一多分辨解壓的一維濾波器的方框圖。
圖10是一使用本發明的可逆子波的一系統的方框圖。
圖11是使用本發明的可逆子波的放大和分析系統的方框圖。
圖12A示出了在本發明中的系數尺寸。
圖12B是用于使用本發明的系數對準的頻段的乘法器的一實施例。
圖13是本發明的編碼過程的一實施例的流程圖。
圖14是本發明的詳碼過程的一實施例的流程圖。
圖15是本發明的造型過程的一流程圖。
圖16是本發明的前向子波濾波器的一實施例。
圖17是本發明的一反向子波濾波器的一實施例的方框圖。
圖18示出了不同變換的系數范圍。
圖19A和19B示出了使用查詢表的上下文模式的兩個實施例。
圖20示出子波分解級的一個實施例。
圖21示出了一編碼單元。
圖22示出了在TS-變換時的垂直通路。
圖23示出了緩沖和系數計算。
圖24A示出了一代碼流結構的一個實施例。
圖24B示出了用于低分辨目標的一代碼流結構的一個實施例。
圖25示出了在各系數(或象素)之間的相鄰關系。
圖26A-D示出了上下文模式的實施例。
圖27是本發明的上下文模式的一實施例的方框圖。
圖28是本發明的符號/數量單元的一實施例的方框圖。
圖29示出了用于一通過操作的被編碼數據存貯器的動態分配。
圖30示出一通道管理器的一個實施例。
圖31示出了在本發明中存貯器的利用。
圖32示出了在本發明中的一比特流。
圖33示出了一程序段的結構。
圖34示出了目標器件相對一參量空間的關系曲線。
圖35A和35B示出了本發明的分析程序的不同的實施例。
具體實施例方式
現在介紹一種用來壓縮和解壓的方法和裝置。為了提供對本發明的徹底的了解,而陳述了諸如編碼器的類型、比特數、信號名稱等大量特殊的細節。但是,本技術領域的普通技術人員很清楚的是沒有這些特殊的細節也可以實施本發明。在另外的例子中,為了避免使本發明模糊不清,已知的結構和裝置足以方框圖形式表示而不詳細說明。
被詳細說明的某些部分在下面是以在一計算機存貯器中的數據比特的操作的算法和符號表達式的形式來表示。數據處理技術領域中的某些技術人員利用這些算法說明和表達式作為手段來將他們的工作內容最有效地傳送給該技術領域中的另外的技術人員。這里的一算法一般來說是想象為導致一所希望結果的步驟的一自相容順序。這些步驟是實際參量所需的實際的操作。通常,雖然并非是必然的,這些電或磁信號形式的參量可以被存貯、轉移、組合、比較以及其它的方式操作。主要為了共同使用的原因,有時將這些信號作為比特、數值、要素、符號、字符、術語、數等被證明是方便的。
但是,應記住,所有這些以及類似的項是與適當的實際量相關的并且僅僅是向這些量提供方便的標記而已、除非從下面的討論中另有明顯的特別地說明,在整個本發明中可了解到相對于計算機系統或類似的電子計算裝置的動作和處理的討論所利用的諸如“處理”或“估算”或“計算”或“測定”或“顯示”等等,是將在計算機系統的寄存器或存貯器內表示為物理(電)量的數據操作和轉換成在計算機的存貯器或寄存器內或其它的這種信息存貯、傳輸或顯示裝置內的其它類似地表示為物理量的數據。
本發明還涉及用來在其內執行該操作的裝置。這種裝置可針對特定目的而構成,或者它可以包括由在該計算機內存貯的計算機程序來選擇地激活或重新組合的一通用的計算機。在其內所呈現的算法和顯示并不固有地涉及任何特定的計算機或其它的裝置。可以使用具有根據其內所教導的程序的各種一般用途的機器,還可以證實為執行所需的方法步驟構成更為專業化的裝置則更為方便。在下面的說明中將會出現用于這些機器的各種所需的構型。另外,本發明對涉及的任何特定程序語言不作描述。將會了解到各種程序語言可用作在其中描述本發明的教導的工具。
如下的術語被用于下面的說明中。對于這些不同的術語包括有一個定義。但是所提供的定義并不認為限于在該技術領域中已知術語的范圍。這些所提供的定久有助于對本發明的理解。
比特有效位一種數表示,類似于符號數值,如果有的話具有標題比特、跟著有符號比特,跟著有尾部比特。相應于這種表示以比特平面順序嵌入編碼。
編碼單元 可按任意順序被共同編碼的系數單元。在一實施例中,一編碼單元包括有一個或多個以一矩形安排的樹。一編碼單元可包含有一完整圖象、一組圖象或另外的數據集。該編碼單元具有在緩沖器尺寸上為了計算一變換所必須的有效壓縮。另外,在一實施例中,在與前編碼單元的系數外側可以沒有任何內容。但是,在一編碼單元之中或許多編碼單元之后熵代碼可被復位。該編碼單元不必隨機地可尋址。
上下文模式相對于被編碼的與前比特的可利用信息給出有關與前比特的歷史地學習信息。這使得可以對熵編碼條件概率進行估算。
樹該系數和象素是涉及在最高級子波分解的LL中的一單一系數。該系數量是若干級數的量。
帶對于二維數據該系數和象素是涉及在最高級子波解壓的LL中系數的單一行或線。帶的規定類似于其它量綱數據的規定。
分解級在該子波分解角錐中的一位置。
嵌入量化 該量化被代碼流所蘊層。例如,如果重要級是按序安置,從最重要到最不重要,則通過該代碼流的簡單舍位來執行量化。同樣的函數性可利用標記、標志、指針或其它的信號來獲得。
熵編碼器 基于它的上下文來對當前比特編碼的一種裝置。對于當前比特(或多個比特)的最佳表達式該上下文允許概率估算。
固定速率 保持一定的象素速率并具有有限的帶寬通路的一應用或系統。這需要獲得局部的平均壓縮而不是全局的平均壓縮。例如MPEC。
固定尺寸 具有一有限尺寸緩沖器的一應用或系統。在這種情況中,獲得一全局的平均壓縮,即,一打印緩沖器。(一應用可為固定速率和固定尺寸或二者之一)。
固定長度 將數據的特定信息塊轉換為被壓縮數據的特定信息塊的一系統,即,BTC。固定長度代碼適用于固定速率和固定尺寸應用,但是,與可變速率系統比較其速率失真性能通常是低劣的。
水平線上下文模式一種用于嵌入編碼器(在一實施中)的上下文模式,將其規定為本發明的一部分。
標題 在比特有效位表達式中,該標題比特是自該最高有效位向上的數量比特并且包括第一非零比特。
重疊變換 一種將單源取樣點分配給相同頻率的多個系數的變換。例如包括許多子波和重疊正交變換。
累進 一種被排序的代碼流,使得來自可由多個數據提煉的被編碼數據的部分的相關被壓縮結果是可利用的。在某些實施例中,一代碼流由數據加深比特平面來排序,在這種情況中,它通常稱之為子波系數數據。
角錐 分辨的順序性,每個較低的分辨是二個較大的一線性因素(在一面積中四個較大的因素)。
可逆變換 用整數運算所實施的有效變換,能實現精確的重建。
S變換 帶有2抽頭的低通和2抽頭高通濾波器的一特殊可逆子波濾波器部分。
尾部 在比特有效位表達式中,尾部比特是帶有比最高有效非零比特低的有效位的幅值比特。
尾部信息 在一實施例中,對于在比特有效位表達式中所表示的一系數有四種可能狀態。它是系數和當前比特平面的函數,并被用于水平線上下文模式。
尾部連接 在一實施例中,取決于該尾部信息是否為零或非零的兩種狀態。
它被用于水平線上下文模式。
TS-變換 二—六變換,帶有2抽頭低通和6抽頭高通濾波器的一特殊子波濾波器部分。
接合無損耗/有損耗 相同壓縮系統提供一可無損耗或有損耗重建的一編碼數據流。如在以下所述的本發明的情況中,這種代碼流可以無須對該編碼器置位或指示。
視覺重要級通過規定一個特定系統,輸入數據(象素數據、系數、誤差信號等)被邏輯地分成具有相同視覺壓縮的組。例如,最高有效比特平面或若干比特平面可比較低平面更為視覺重要。低頻信息通常比高頻更為重要。本發明如下所述包括的“視覺有效位”的多數操作定義是相同于某些誤差量度而言的。但是,在視覺重要的系統定義中可插入較好的視覺量度。另外的數據類型具有另外的重要級,例如,音頻數據具有音頻重要級。
子波濾波器在子波變換中使用的高通和低通合成和分析濾波器。
子波變換 利用“頻率”和“時間(或空間)”約束的變換。在所介紹的實施例中,是一包含一高通濾波器和一低通濾波器的變換。其結果系數是+中取=(臨界地濾除)并且該濾波器被利用于低通系數。
本發明提供了一種具有一編碼部分和一譯碼部分的壓縮/解壓系統。該編碼部分負責時輸入數據編碼以產生壓縮數據,同時譯碼部分負責對被編碼的數據譯碼以產生原始輸入數據的重建的文本。該輸入數據可包括各種數據類型,諸如圖象(靜止的或視頻的)、音頻等。在一實施例中,該數據是數字信號數據;但數字化的模擬數據文本數據格式和其它格式也是可以的。對于編碼部分和/或譯碼部分來說,該數據源可以是一存儲器或通道。
在本發明中,編碼部分和/或譯碼部分的部件可由諸如在一計算機系統中被使用硬件或軟件來實施,本發明提供了一種無損耗壓縮/解壓系統。本發明還可被構成能執行有損耗壓縮/解壓的構型。
圖1是該系統的編碼部分的一實施例的方框圖。應注意的是該系統的譯碼部分以和該數據流動的相反順序工作。參見圖1,由子波變換部分102接收輸入圖象數據101。子波變換部分102的輸出被送到系數數據排序和造型部分103。響應于自子波變換部分102的輸出,該排序/造型部分103產生至少一個由一熵編碼器104所接收的比特流。響應于自排序/造型部分103的輸出,熵編碼器104產生代碼流107。
在一實施例中,該排序/造型部分103包括一符號/量值格式化學單元201和一接合空間/頻率上下文模式202,如圖2所示。在一實施例中,該接合空間/頻率上下文模式202包括一水平線上下文模式,如下所述。符號/量值單元201的輸入被送到子波變換代碼部分102的輸出。符號/量值單元201的輸出被送到接合空間/頻率上下文模式202。JSF上下文模式202的輸出被送到熵編碼器104的輸入以產生輸出代碼流107。
再參見圖1,在本發明中,如像下面所解釋的,接收圖象數據101和在子波變換部分102中利用可逆子波的變換編碼以產生表示該圖象的多分辨壓縮的一系列系數。本發明的可逆子波變換并不是復雜的計算。該變換可以用不帶有系統的誤差的軟件或硬件來完成。另外,對于能量壓縮和壓縮特性來說本發明的子波是極好的。這些系數由排序/造型部分103所接收。
該排序/造型部分103提供對系數的排序和造型。該系數排序提供一嵌入數據流。在編碼時間、傳送時間或譯碼時間該被嵌入的數據流允許一結果代碼流被量化。在一實施例中,排序/造型部分103將該系數排序并變換成符號一量值格式,并基于它的有效位(如下面將要說明的)使該格式化的系數服從于一嵌入造型方法。在一實施例中,該格式化系數服從于接合空間/頻率造型。
排序和造型的結果包括由熵編碼器所編碼的決定(或符號)。在一實施例中,所有決定均被送至一單一編碼器。在另一實施例中,通過有效位來標明這些決定,并且對于每個有效位電平的決定通過不同的(實際的或虛擬的)多個編碼器來處理。
參見圖2,來自JSF上下文模式202結果的比特流以利用熵編碼104的有效位的順序被編碼。在一實施例中,熵編碼器104包括一個或多個二進制熵編碼器。
子波分解本發明利用可逆子波來開始執行一圖象(以圖象數據方式)或另外的數據信的分解。在本發明中,一可逆子波變換包括一精確重建系統以整數算法進行的實施過程,這樣一具有整數系數的信號可被無損耗地復原。通過使用可逆子波,本發明能夠提供具有有限精度算法的無損耗壓縮。通過對圖象數據利用可逆子波變換的結果是一系列的系數。
本發明的可逆子波變換可使用一組濾波器來實施。在一實施例中,這些濾波器是二抽頭低通濾波器和六抽頭高通濾波器。在一實施例中,這些濾波器是僅使用加和減操作(加以硬件的比特位移)來實施的。另外,在本發明的一實施例中,利用該低通濾波器的結果高通濾波器產生它的輸出。所得結果的高通系數僅是大于象素深度的少數比特并且該低通系數與該象素深度相同。由于在一角錐分解中僅低通系數反復地被濾除,可以在多級分解中系數分辨力沒有增加。
在另外的實施例中,低通濾波器輸出系數的尺寸可增加,而不是高通濾波器輸出系數的尺寸增加。
一子波變換系統是由一對FIR分析濾波器h0(n),h1(n)和一對FIR綜合濾波器g0(n),g1(n)所規定。在本發明中,h0和g0是低通濾波器而g1和h1是高通濾波器。在圖3A中示出了該子波系統的方框圖。參見圖3A,一輸入信號X(n)被提供給分析濾波器h0和h1并且其輸出被+中取=(臨界地二次抽樣)以產生被變換的信號y0(n)和y1(n),分別作為低通(平滑)和高通(細節)系數。該分析濾波器和它的相應的抽選、或二次抽樣、字組構成該子波變換系統的分析部分。該編碼器/譯碼器包括所有處理邏輯和在被變換范圍中的常規變換(即,斷定、量化、編碼等)。如圖3A所示的子波系統還包括一綜合部分,在該綜合部分中該被變換信號被由2向上取樣(即每一項之后插入一個零)并且隨后通過綜合濾波器g0(n)和g1(n)。該紙通(平滑)系數y0(n)通過低通綜合濾波器g0和該高通(細節)系數y1(n)通過高通濾波器g1。濾波器g0(n)和g1(n)的輸出被組合以產生x(n)。
在某些實施例中執行向下取樣和向上取樣,在另外的實施例中,由于不執行向下取樣和向上取樣所以無需計算所使用的濾波器。
該子波系統可由Z變換項來描述,其中的X(Z)、X(Z)分別表示輸入和輸出信號,Y0(Z)、Y1(Z)是被低通和高通變換的信號,H0(Z)、H1(Z)是低通和高通分析濾波器和G0(Z)、G1(Z)是低通和高通綜合濾波器。如果在該變換范圍內不存變更和量化,則在圖3中的輸出X(Z)由下式給出X^(z)=12[Ho(Z)Go(Z)+H1(Z)G1(Z)]X(Z)+]]>12[Ho(-Z)Go(Z)+H1(-Z)G1(Z)]X(-Z)]]>在本發明中,稱之為“混疊”項的 的第二項被取消,這是因為該綜合濾波器是被分析濾波器的正交鏡所規定,也就是, 在該濾波器系數的項中,
因此,對于一正交鏡濾波器對,在變換之后,該輸出為X^(z)=12[Ho(Z)H1(-Z)-H1(Z)Ho(-Z)]X(Z)]]>因此,在本發明的正交鏡系統中,該輸出僅由分析濾波器的項來決定。該子波變換是將在由用作輸入的濾波器所產生的輸出中遞舊地變換的信號被直接或非直接地被提供給該濾波器中。在所述的實施例中,僅僅低通變換分量y0(n)被遞舊地變換使得該系統是角錐形的。在圖6中示出了這樣一種角錐系統的例子。
Z變換是用來表示數據的硬件和/或軟件操作的一種簡便表示法。乘以Z-m模式則在硬件中延遲m時鐘周期,而在軟件中對第m5前面元件進行陣列存取。這種硬件的實施包括存貯器、管道級、移相器、寄存器等。
在本發明中,在乘以一常數一延遲項之后信號X(n)和X(n)是相同的,即Z變換的項中,X^(Z)=cZ-mX(Z)]]>這稱之為一精確重建系統。因此,在本發明的一實施例中,最初應用于輸入數據的子波變換是可精確地重建的。
使用哈達瑪(Hadamard)變換的本發明的一實施例是一精確重建系統,它的標準形式如下面以Z范圍的表達式
在置換后,該輸出為X(Z)=Z-1X(Z),這是很清楚地一精確重建。對于哈達瑪變換的更詳細的情況請見Anil K.Jain,Fundamentals of Image Processing,pg.155。
哈達瑪變換的可逆變型這里稱之為S變換。對于S變換的更詳細的情況,請參見A.and Pearlman,W.“Reversible Image Compressionvia Multiresolution Representation and Predictive Coding,”Dept.of Electrical,Computer and Systems Engineering,RenssealaerPolytechnic Institute,Troy,NY 1993。因為哈達瑪變換是一精確重建變換,下面的非標準變型(不同于利用固定系數的哈達瑪變換)也是一精確重建變換 給定的輸入信號的取樣為X0,X1,則這個系統S變換是實施一可逆變換,如像, 該S變換可由具有一普通標志n的輸出來定義,如下所示
應注意的是在該變換系數尋址中的兩個系數是通過二次子取樣的結果。可逆變換和變型為 符號 表示下舍入或截尾并且有時稱之為底面函數。類似地,天棚函數 對最接近整數上舍入。
可以證實以下面方式實施可逆實際上僅是在近似于X(0)+X(1)的最低有效位中丟失信息。但由于X(0)+X(1)和X(0)-X(-1)的最低有效位是相同的,所以可從該高通輸出y1(0)復原。換句話說,
該S變換是使用最小長度可逆濾波器的非重疊變換。最小長度濾波器包括有一對濾波器,這兩個濾波器具有二個抽頭。最小長度變換不提供良好的能量壓縮。由于該濾波器的長度等于濾波器數所以最小長度濾波器實施一非重疊變換。重疊變換使用至少一個其長度大于濾波器數的濾波器。使用較長(不是最小長度)濾波器的重疊變換可提供較好的能量壓縮。本發明提供允許一重疊變換的非最小長度可逆濾波器。
精確重建系統的另一例子包括具有Z范圍定義的二/六(TS)變換, 在置換之后,該輸出為X^(Z)=2Z-3X(Z),]]>這是一精確重建變換。
該TS變換的合理的非標準變型包括 如果該信號的六個取樣為x(0)、x(1)、…、x(5),則由下式給出前三個低通系數y0(0)、y0(1)、y0(2)和第一個高通系數y1(0) 但是,該TS變換的有理非標準變型的直接的實施是不可逆的。下面的例子表示該實施是局部地非可逆的。作為用于全向情況的一個例子可建立一較長的數列。由于完成對y0(0)和y0(2)的計算因為-(X(0)+X(1))+(X(4)+X(5)≠-yo(0)+yo(2),這種使用局部信息的變換是不可逆的。
例如,如果x(0)=1,x(1)=1,x(2)=3,x(3)=1,x(4)=1,x(5)=1,則
和,如果x(0)=1,x(1)=2,x(2)=4,x(3)=1,x(4)=1,x(5)=1,則 因為對于輸入x(0)…x(5)的兩種不同設置y0(0)、y0(1)、y0(2)和y1(0)是相同的,因為從輸入的兩種設置的局部信息中不可能確定給出的y0(0),…y1(0),所以該變換是不可逆的(應注意的是使用來自所有系數的全局信息所提供的變換是不可逆的。)現在來考慮稱之為RTS變換的一可逆TS變換,它提供了一種不同的高通濾波操作。
如果x(0)、x(1)、x(2)、x(3)、x(4)、x(5)是該信號的六個取樣,則由下式給出前三個低通系數y0(0)、y0(1)、y0(2)和第一個高通系數y1(0),
因為 所以x(2)-x(3)是完全已知的。隨著 和x(2)-x(3)如上所規定,由于x(0)+x(1)和x(0)-x(1)的最低有效位是相同的所以x(2)和x(3)可被復原。明確地說,讓 在該RTS變換的一實施例,以及該S變換的一實施例中,為了提供準確的加法,一被實施的除以8的操作變為先除以2然后除以4。應注意數學式18(-1-Z-1+8Z-2-8Z-3+Z-4+Z-5+4)]]>和數學式
14(12(-1-Z-1)+4(Z-2-Z-3)+12(Z-4+Z-5)+2)]]>當執行無限精確運算時是相同的。理由是當用整數運算實際實施時第二等式明顯表示一可逆濾波器。結合圖16和17描述了低通濾波器和高通濾波器的硬件實施的例子。
應注意的是S變換和RTS變換中該低通濾波器被實施以使輸入信號x(n)的范圍與輸出信號yo(n)是相同的。例如,如果該信號是-8比特圖象,則低通濾波器的輸出也是8比特的。由于在現有技術系統中輸出信號的范圍是大于輸入信號范圍的,所以對于低通濾波器被相繼應用的一角錐系統來說是一重要的特性,從而使該濾波器難以連續應用。另外,該低通濾波器僅具有兩個抽頭,使得它為一非重疊濾波器。如像后面所述,這個特性對于硬件實施是重要的。
在一更普通的格式中,該可逆TS變換是由一低通和一高通的兩個輸出的表達式來確定的
對于d(n)的表達式可以簡化并利用S(n)來寫出(由4的整除可通過向分子增加一個2來完成)其結果為 該可逆TS變換和反量為 其中P(n)必須首先被計算為
來自該低通濾波器的結果在高通濾波器中可被使用二次(在第一和第三項中)。因此,僅僅必須執行二次其它的加法以得到該高通濾波器的結果。
除了可逆變換之外,該TS變換還是有效的變換。該TS變換(類似S變換)具有不增長的平滑輸出,即,如果該輸入信號是b比特深度,則為平滑輸出。這對于在下面部分中所定義的角維系統是有用的,在那里該平滑輸出被進一步分解。由于該變換的實施足以整數完成的因而不存在系統誤差,所以在一有損耗系統中所有誤差均可通過量化來控制。
在參與一子波變換的四個濾波器中,由于該低通綜合濾波器兼有被量化的系數并且還平滑人為因素所以該低通綜合濾波器是最重要的。實際上在本發明中引導去選擇用于低通綜合濾波器的相對長(六抽共)和特別好特性的濾波器。應注意的是在-QMF系統中,僅存在有兩個獨立的濾波器。
在本發明本可使用許多被重疊的、非最小長度可逆濾波器。圖3B示出了用于具有非重疊的最小長度可逆濾波器的變換系統的前向和反向的表示。例如,在本發明中可以使用下面的濾波器的類型。對于整數L≥Z, 和
和 該高通濾波器的長度為2L。如果L為奇數,則該濾波器可接近于一對稱濾波器。如果ai、b、ci和k為整數并且K≤b時,則該濾波器是可逆的。如果ai、b、ci和K是2的冪(或2的冪的負數或計數)時,則該濾波器的實施可被簡化。如果K=b(不管ai和ci的值),則該高通濾波器y1的輸出范圍最小。對于每個ai,如果精確地存在一個cj,這里ai=-cj,則該高通濾波器將不響應于一固定輸入。如果ai=-cj,當j-(L-1)=i時,則該濾波器可接近于一對稱濾波器。
另外的有用的特性為 當m=1時該高通濾波器不響于一線性地變化的輸入而當m=2時不響應于二次方變化的輸入,其中m為力矩條件。這個特性是RTS變換具有比S變換更好的能量壓縮的基本原因。
當濾波器必須滿足用于可逆性的最小約束時,對于不同的應用,濾波器可被用于不滿足,滿足某些或全部滿足其它的特性。在某些實施例中,使用以下例子高通濾波器中的一個,這些濾波器以符號列于表中,表中列出了該濾波器合理變型的整數系數,以避免使本發明難以理解。
1 1 -4 -4 16 -16 4 4 -1 -11 1 -3 -3 8 -8 3 3 -1 -1-1 -1 0 0 16 -16 0 0 1 1-1 -1 4 4 -16 -16 256 -256 16 16 - 4-4 1 13 3 -22 -22 128 -128 22 22 -3 -3最后的濾波器稱之為TT濾波器,它具有不響應于三次方增長函數的特性。應注意的是因為22=16+2×3和3=2+1,所以這個濾波器可以用總共7次相加和相減來實施。
在一實施例中,這些濾波器可被組合并應用于一組,這樣以一種操作執行水平和垂直通過。圖4示出了執行該組合操作的濾波器。配置(a)示出了兩個分離的1-D可逆慮波器的使用,對于每個通過的1-D可逆濾波器包括有一個1-D濾波器和1-D舍入(rounding)。配置(b)示出了一個1-D濾波器401,后面跟著另一個1-D濾波器402,末尾帶有一舍入操作403。這種配置產生允許更好的舍入的更為精確的結果。
對于濾波器的所需要的精確的可逆要求可通過下面的表明加以緩解。高通系數以某種順序被編碼和譯碼。相應于前面的被譯碼的高通系數的象素值是精確地已知,這樣它們可利用在當前的高通濾波器中。例如,當一光柵順序被使用時可利用下面的濾波器。
不需使用一單一固定高通濾波器。可使用自適應濾波器或可使用多級濾波器。在多級濾波器之中采用或選擇的所使用數據必須是限于在特殊的反向濾波器操作之前在該譯碼器中是可用的數據。
使用多級濾波器的一種方式是漸進地處理該高通系數。另外的高通濾波操作(Y1(0),Y1(2),Y1(4),…)可用一諸如RTS高通濾波器之類的一可逆濾波器首先被處理。因為輸入到該濾波器的重疊部分的精確值是已知的,所以剩余處理(Y1(1),Y1(3),Y1(5),…)可以使用高達六抽頭的非可逆濾波器。例如,任何如下的濾波器都可被使用。
-1 3 -3 1-1 4 -4 1-3 8 -8 31 -5 10 -10 5 -11 -4 8 -8 4 -1應注意的是在某些實施例中不使用QMF濾波器。
在某些實施例中,高通濾波器可由一預測/插入操作來替代。一預測器/插入器可預言在一特定的預測/插入操作之前使用在譯碼器中的任何有用數據的一對輸入之間的差異。將該被預言的差異從輸入的實際差異中減去并輸出其結果。在一實施例中,現有技術預言方法被使用在DPCM中,漸進編碼或空間范圍編碼被使用。
在一實施例中可使用諸如形態學的濾波器(即,中點濾波器)之類的非線性濾波器。在一實施例中,該1,1濾用來連接一用于高通的不同的濾波器。這樣一種濾波器系統必須能夠傳送兩個象素之間的差異。基于任何數據該譯碼器具有可預測出其差異是什么的預言。一非線性形態學濾波器可用作估測。本發明計算在該窗口的因果例(Causal Side)所使用的實際象素的一象素的周圍的中點,并將其入該濾波器中。在該濾波器的非因果側,低通系數被用來代替象素值。
二維的子波分解利用本發明的低通和高通濾波器,執行多分辨分解。分解的級數是變量并且可為任何數,但當前的分解級數為從2至5級。
在諸如圖象的二維數據上執行變換的最普通方式是分別地應用一維濾波器來實現的,即,沿行然后沿列來變換。該分解的第一級導致系數的四個不同區域,稱之為LL、HL、LH和HH。代表相應于應用平滑和細節濾波器的底(L)和高(H)的字母分別由以上規定。因此,LL區包括在行和列兩個方向上來自該平滑濾波器的系數。以如圖5A-5D的格式來安置子波系數是普通常事。
在子波分解中的每個子組可被進一步被分解。最普通的方式是僅僅進一步分解該LL子組,但這可進行若干次。這樣一種多次分解被稱之為角錐分解(圖5A-5D)。名稱LL、LH、HL、HH和分解電平數表示每一分解。應注意的是本發明的任一濾波器(S或TS)進行的角錐分解不增加該系數尺寸。
例如,如果可逆子波變換被遞歸地應用于一圖象,則分解操作的第一級將使圖象有最良好的細節,或分辨度。在第一分解級,該圖象被分解成四個子圖象(或子區)。每個子區表示一空間頻率的區域。第一級子區標為LLO、LHO、HLO和HHO。分解該原始圖象的處理包括在水平和垂直方向上的二次子取樣,這就如象該輸入具有該圖象的象素(或系數)的許多系數一樣,如圖5A所示那樣第一組子區LLO、LHO、HLO和HHO的每一個具有四分之一。
子區LLO包括同時發生的低頻水平和低頻垂直信息。在這個子區中典型地集中有該圖象能量的一大的部分。子區LHO包括低頻水平和高頻垂直信息(即,水平邊緣信息)。子區HLO包括高頻水平信息和低頻垂直信息(即,垂直邊緣信息)。子區HHO包括高頻水平信息和高頻垂直信息(即,結構或對角線邊緣信息)。
由分解前述級的低頻LL子區而產生隨后的第二、第三和第四較低分解級的每一個。如圖5B所示,第一級的子區LLO被分解以產生適中細節第二級的子區LL1、LH1、HL1和HH1。類似地,如圖5C所示,子區LL1被分解以產生第三級的粗的細節的子區LL2、LH2、HL2和HH2。另外,如圖5D所示,子區LL2被分解以產生第四級的較粗的細節的子區LL3、LH3、HL3和HH3。由于是二次子取樣,所示每個第二子區是原始圖象尺寸的十六分之一。在這個級上的每一子樣(即,象素)表示在相同位置上的原始圖象中的適中細節。類似地,每個第三電平子區是原始圖象尺寸的1/64。在這個電平上的每一象素相應于在相同位置上在該原始圖象中相對地粗的細節。另外,每個第四電平子區是該原始圖象的尺寸的1/256。
由于子取樣而使被分解的圖象實際上小于原始圖象,因而用來存貯原始圖象的相同存貯器可被用來存貯所有被分解的子區。換句話說,原始圖象和被分解子區LLO和LL1被拋棄并且在一第三電平分解中不被存貯。
雖然只示出了四個子區域分解級,但可根據一實際系統的需要而發展出更多的級。另外,也可以定義諸如DCT之類的其它變換或線性被隔開的子區、不同的母體關系。
在一角錐分解中存在有一固有的和有用的用于子波系數的樹結構。應注意的是相應于最后的分解級存在有一單一的LL子信息組。另一方面,隨著級數存在有一許多LH、HL和HH區。樹結構規定了在較低分辨力上在一頻段上的一系數對在相同頻段上一系數的母體,涉及相同空間位置。圖6示出了兩個連續級之間的母體關系。
參見圖6,在A上的系數直接與B、C和D有母體關系,而且還與B、C和D有母體關系的系數也有母體關系。詳細地說,B與圍繞E的四個系數有母體關系和圍繞H的16個系數有母體關系等等。
多分辨力分解的過程可利用如圖7中所示的一濾波系統來執行。一表示具有長度L的一維信號的輸入信號在通過單元703和705進行二次取樣之前由濾波器單元701和702進行低通和高通濾除。來自單元703的被子取樣的輸出信號在分別通過單元707和708被二次子取樣之前由單元705和706低通和高通濾除。在單元707和708的各自輸出端上呈現子區分量L和H。類似地,來自單元705的輸出信號在分別由單元711和712子取樣之前由單元709和710低通和高通濾除。在單元711和712各自的輸出端上呈現子區分量L和H。如上所述,使用于子區分解的本發明的一實施例的該濾器是用來將水平和垂直頻段分離成低頻和高頻段的數字正交鏡濾波器。
圖8示出二維、二級變換。圖9還示出了使用諸如在圖16和17中所示的一維濾波器來實施的二維、二級變換。該一維濾波器用于各種其它的場合以避免由于子取樣所必須進行的計算。在一實施例中,一維濾波器共享低通和高通之間計算的計算結果。
因此,本發明提供了一種用于壓縮和解壓的系統,在該系統中使用了非最小長度、重疊的可逆濾波器。圖10是這樣一種系統的一實施例的方框圖。參見圖10,開始就執行分層分解。該分層分解的結果被送到用于壓縮的壓縮器。所執行的壓縮包括向量量化、標量量化、零運行長度編碼、哈夫曼(Huffman)編碼、Tunstall等。該壓縮器壓縮數據的輸出表示該原始輸入數據的一被壓縮的文本。一解壓器可在未來的某時接收該數據并解壓該數據。本發明利用非最小類型、重疊可逆濾波器執行一僅向分解以產生該原始數據的重建文本。應注意的是該非最小長度、重疊可逆濾波器包括有非S變換濾波器。
本發明的可逆子波濾波器還可用于如圖11所示例子的分析和增強系統。參見圖11,在使用非最小長度、重疊可逆子波濾波器的輸出數據上執行分層分解。該分析單元接收由該濾波器產生的系數并將它們分類到決定之中,即,僅提取相關的信息而不是編碼所有的系數。例如,在一文件歸檔系統中,可能僅利用最粗的低通子區來識別空白頁。另一個例子是僅使用來自一特定子區的高通信息在文本圖象和自然景色圖象之間進行識別。該分層分解可用于寄存多個圖象,這樣首先由粗的子區來進行粗的寄存。在另一實施例中,隨著反向分解該系數經受放大或濾除。利用分層分解可執行削尖、邊緣增溫、噪聲控制等。因此,本發明提供一種用于連接時間/空間和頻頻范圍和濾除/增強系統的子波變換。
系數和比特平面的排序和造型在本發明中,作為子波分解的結果所產生的系數是熵編碼。在本發明中,該系數最初地經受嵌入編碼,在嵌入編碼中該系數按視覺地有效順序排序,更為一般地,相應于某誤差度量(即,失真度量)來排序。誤差或失真度量包括峰值誤差、和均方誤差(MSE)。另外,相對于數據庫查詢和定向(垂直、水平、對角線等),可被執行的排序優先給出比特有效位的空間位置。
執行該數據的排序的產生代碼流的嵌入量化。在本發明中,所使用的二個排序系統是第一個用于對系數排序,第二個用于對在一系數之中的二進制值排序。本發明的排序產生一在由一二進制熵編碼器編碼之后的比特流。
在一實施例中,該系數排序和造型包括M-ary編碼。在另一實施例中,它可僅由區域嵌入而替代由比特嵌入。另外,對于無損耗編碼或單一品質有損耗編碼(即,在該編碼器中被特定的量化),在該系數排序和造型中可使用非嵌入編碼。
編碼單元在本發明中,以樹型設置為矩型的編碼單元對圖象等進行獨自地編碼。該編碼單元表示被編碼數據的最小單元(雖然存在有允許被譯碼的局部編碼單元的量化選擇)。在一編碼單元中的曾經在存儲器中被緩沖的所有數據對該編碼器是可用的。
編碼單元的選擇是依從的實施的。該編碼單元可作為整個圖象(或其它數據組)或發明的單一樹或在它們之間的任何矩形而被規定。在一實施例中,一編碼單元的選擇可需在壓縮效能和存貯器使用之間取折衷的方案。
在一實施例中,在一編碼單元內的所有系數在隨機存取存貯器中是可用的。因為在一編碼單元內的所有系數在隨機存取存貯器中是可用的,所以在一編碼單元中在該系數之間的嵌入順序可以是任何任意的順序。這個順序對編碼器和譯碼器來說是已知的。但由于熵編碼器是相對于這個順序,在壓縮中該順序有一有效的碰撞,因而應慎重選擇。下面描述了一特定排序的實施例。
造型在本發明中,接合空間/頻率造型壓縮和嵌入編碼系統用來對由本發明的子波變換所產生的系數編碼。該接合空間/頻率造型具有已知頻率頻段和鄰接象素(或數據)二者的優點。該接合空間/頻率造型的一實施例這里稱之為水平線造型。
該數據開始以符號數值格式被格式化,然后該數據基于有效位而被存貯。在另一實施例中,為了進一步減小存貯器工作空間,該系數可以數量/假數方式而不足以符號/數量方式被存貯。
在以相對于給出的有效度量存貯該數據之后,對該數據編碼。
假設一數字信號X(n),對于每個X(n)用精度R比特表示,然后本發明的嵌入編碼對該信號的每個X(n)的最高有效位比特(或比特)編碼,然后再對下一個有效位比特(或比特)編碼等等。例如,在可視的規定順序的情況中,一需要更好品質的象素比在沿拐角或接近該邊緣(諸如某些醫學圖象)的中心處可受到編碼,這樣在該邊界象素的高階比特之前該中心象素的低階比特可被編碼。
比特有效位表示在一實施例中,用于在一系數內的二進制值的嵌入順序是利用比特平面。該系數以比特有效位表示來表達。比特有效位是一記號數量表示,其中該記號比特而不是最高有效位比特(MSB)是由第一非零數量比特編碼。
在以比特有效位形式表示的一數中存在有三種比特類型標題、尾部和記號。標題比特是從MSB到第一非零數量比特加第一非零比特的所有零比特。在比特平面出現的第一非零數量比特規定該系數的有效位。在第一非零數量比特到LSB之后是尾部比特。該記號比特簡單表示該記號。帶有作為MSB的非零比特的數僅有一個標題比特。零系數沒有尾部或記號比特。
在該值為非負整數的情況中,例如相對于象素的亮度所呈現的值的情況中,該順序可被用作為比特平面順序(即,從最高有效位到最低有效位比特平面)。在允許兩個解碼負整數的實施例中該記號比特的嵌入順序是與該整數的絕對值的第一非零比特相同的。因此,直至一非零比特被編碼為止不考慮該記號比較。例如,利用記號數量標記法,數-7的16比特為1000000000000111在一比特平面基底上,前十二個決策為“無意義”或零。第1個1比特出現在該第十三個決策上。接著,記號比特(“頁”)將被編碼。在該記號被編碼之后,尾部比特被處理。第十五和第十六個決策均為“1”。
字數校直類似于FFT或DCT在不同子組中的系數表示不同的頻率。在該比特平面編碼之前相對于相互之間通過校直系數來執行該量化。少量密集量化系數將朝向較近的比特平面(即向左位移)校直。因此,如果該流被舍住,則這些系數將具有比更多密集量化系數更多的比特來規定它們。
在一實施例中,為了在SNR或MSE項中的最佳比率失真特性而校直該系數。另外,該較直可允許該系數數據的-physchovisual量化。在該圖象品質的演變上(或換句話是在速率-失真曲線上)該校直具有有效的碰撞,而在無損耗系統的最后壓縮比上具有可忽略不計的碰撞。
在二級TS變換分解中來自每個象素具有b比特的輸入圖象的各種系數的比特澤度由圖12示出。為了校直該系數,將1HH系數尺寸用作參考,并且移位是相對這個尺寸給出的。表1示出了這種校直過程的一個例子。
表1系數校正的例子,b=8
1-HH參考
x-HL或x-LH左3x-HL或x-LH左2x-HL或x-LH左1x-HL或x-LH無x-HL或x-LH右1應注意的是符號比不是MSB并且由第1尾部比特編碼。重要的是校直簡單地控制該順序,該比特被送至熵編碼器。不執行實際的填充、移位、存貯或額外的零比特的編碼。
上下文模式下面介紹本發明所使用的水平線上下文模式的一實施例。該模式基于該系數的空間和頻譜的相關性而使用在一編碼單元內的比特。該相鄰系數的可用的二進制數值和母體系數可用于建立上下文。但是該上下文是用來可譯碼的原因并且為了適應系數是很小的數量。
熵編碼在一實施例中,由本發明執行的熵編碼是由二進制熵編碼器執行的。在一實施例中,熵編碼器104包括一Q編碼器、一有限狀態機器編碼器、一高速并行編碼器等。一單一編碼器可用來產生一單一輸出代碼流。另外,多個(實際的或虛擬的)代碼器可用于產生多個(實際的或虛擬的)數據流。
在一實際例中,本發明的該二進制熵編碼器包括-Q編碼器。對于該Q編碼器的更多的情況請見Pennebaker,W.B.,et al“An Overview of the BasicPrinciples of the Q-Coder Adaptive Binary Arithmetie”,IBMJournal of Research and Dvelopment,Vol.32,pg.717-26,1988。在另一個實施例中,一二進制熵編碼器使用一QM編碼器(這種編碼器是公知的)和高效二進制熵編碼器。在具有很高概率變形的比特中它是特別有效的。該QM編碼器是用于JPEG和JBIG標準中。
該二進制熵編碼器包括一有限狀態機器(FSM)編碼器。這樣一種編碼器提供來自一概率的轉換和提供一輸出到被壓縮的比特流。在一實施例中,一有限狀態機器編碼器利用表實施對譯碼器和編碼器的查找。各種概率估算方法都可用于這種有限狀態機器編碼器。對于概率接近于0.5來說壓縮是極好的。對于高地變形的概率的壓縮取決于所使用的查找表的尺寸。如像該QM編碼器,因為該決策是以出現的順序編碼的,所以與被嵌入的比特流一起它是有用的。因為該輸出是由一查找表規定的,所以不會存在用于“轉移”問題的可能性。實際上,與Q和QM編碼器不同,在被壓縮的輸出比特的編碼和形成之間存在有一最大的延遲。在一實施例中,本發明的有限狀態機器編碼器包括有一在美國專利NO.5,272,478(名稱為“用于熵編碼的方法和裝置”
公開日為1993年12月21日)中所指出的B編碼器。
在一實施例中,本發明的該二進制熵編碼器包括一高速并行編碼器。QM編碼器和FSM編碼器一次需要被編碼或被譯碼的1比特。該高速并行編碼器并行處理幾個比特。在一實施例中,該高速并行編碼器以VLSI硬件或多處理器計算機實施而不會犧牲壓縮特性。在本發明中可被使用的高速并行編碼器的一個實施例在美國專利NO 5,381,145(名稱為“用于數據的并行譯碼和編碼的方法和裝置”,
公開日為1995年1月10日)中被披露。
大多數的高效二進制熵編碼器通過基本的反饋環路來限制速率。該編碼器的輸出是多重可變長度編碼數據流。具有這種處理類型的一個問題是如何在一單一通道上傳送該數據。在美國專利NO.5,381,145中所披露的該高速并行編碼器與交叉存取這些編碼數據的方法一起解決這個問題。
在本發明中使用的上下文的大多數是固定概率的,構成一有限狀態機器編碼器,例如B編碼器特別地有用。當一系統使用的概率接近0.5時,上述的高速并行編碼器和有限狀態機器編碼器具有比Q編碼的更高的效率。因此,它們在用本發明的上下文模式時具有潛在壓縮優點。
本發明的編碼和譯碼處理下面結合圖13-15的流程圖說明本發明的編碼和譯碼的一實施例。這些過程可由硬件或所帶軟件來完成。在任一種情況中,參照所制作的處理邏輯可表示另一種情況。
圖13示出了本發明的編碼過程的一實施例。參見圖13,通過所具有的處理邏輯對于一編碼單元獲取一摻入數據開始編碼處理(處理框1301)。接著,處理邏輯將可逆濾波器加到該編碼單元的輸入數據單元(處理框1302)。
判斷是否另一分解級是所希望的(處理框1303)。如果是,則處理邏輯將該可逆濾波器加到LL系數上(處理框1304),并且該處理環返回并在處理框1303中繼續進行處理。如果另一個分解級不是所希望的,則處理在處理框1305中繼續進行處理,在那里處理邏輯變換該系數為符號/數量形式。
在變換該系數為符號/數量形式之后,一比特平面變量S被設置為最高有效位比特平面(處理框1306)。然后,該處理邏輯隨意地初始化該熵編碼器(處理框1307)。
一旦該熵編碼器被初始化,處理邏輯用該上下文模式和熵編碼的該比特模擬每一系數的每一比特(處理框1308)。在熵編碼該比特之后,該數據被傳送或存貯(處理框1309)。
之后,判斷在該圖象中是否還存在有編碼單元(處理框1310)。如果還有編碼單元,則處理繼續到處理框1301。另一方面,如果沒有更多的處理單元,則處理結束。
圖14示出了本發有譯碼處理的一實施例。參見圖14,通過處理邏輯對于一編碼單元復原編碼數據而開始處理(處理框1401)。接著可逆S被置為最高有效位比特平面(處理框1402)。在設置該比特平面可逆S為最高有效位比特平面之后,處理邏輯隨著地初始化該熵編碼器(處理框1403)。
在該熵編碼器被初始化后,處理邏輯將每一系數的初始值設置為零(處理框1404)。然后處理邏輯用上下文模式和熵譯碼器模擬每一系數的每一比特(處理框1405)并且將系數轉換成用于濾除的適當形式(處理框1406)。該轉換可以從比特有效位轉換為2的補碼形式。之后,處理邏輯從分解的最高級將一反向濾波器加到該系數啟始(處理框1407)。
判斷是否所有的級被反向濾除(處理框1408)。如果所有的級未被反向濾波,則處理邏輯從下一個分解的最高級將反向濾波器加到該系數(處理框1409),并且在處理框1408繼續處理。如果所有的級均被反向濾除,則在處理框1410上繼續處理,在那里重建數據被存貯或被傳送。在存貯該被傳送的重建數據之后,判斷是否存在有更多的編碼單元(處理框1411)。如果存在有更多的編碼單元,處理環路返回并在處理框1401上繼續處理,在那里處理被反復進行。如果不存在更多的編碼單元,則處理結束。
圖15示出了根據本發明用于造型的處理的一實施例。參見圖15,通過向第一系數設置一系數變量而開始對于造型比特的處理(處理框1501)。然后判斷是否1C1>2s。如果是,處理繼續在處理框1503上進行,在那里利用對于尾部比特的該模式,處理邏輯編碼系數C的比特S并且繼續在處理框1508處理。用于尾部比特的模式可以是一固定的(非自適應的)模式。如果C不大于2s,則處理繼續在處理框1504進行處理,在那里處理邏輯提供一用于標題比特的樣板(即,初始為0和第1為“1”比特)。在提供該樣板之后,處理邏輯編碼系數C的比特S(處理框1505)。可能的樣板如圖26A-C所示。如圖19A和19B中所示,樣板可用LUTs來實施。
接著,判斷是否系數C的比特S是通(on)(處理框1506)。如果系數C的比特S沒有on,則處理繼續在處理框1508進行處理。另一方面,如果系數C的比特X是on,則處理繼續在處理框1507進行處理,在那里處理邏輯編碼該符號比特。此后,處理繼續在處理框1508進行。
在處理框1508,判斷是否系數C是最后的系數。如果系數C不是最后的系數,則處理繼續在處理框1509進行,在那里系數變量C被置為下一個系數并且處理繼續在處理框1502進行。另一方面,如果系數是最后系數,則處理在處理框1510進行處理,在那里判斷是否S是最后比特平面如果S不是最后比特平面,則比特平面變量S被遞減1(處理框1511),并且處理繼續在處理框1501進行。如果S是最后比特平面,則處理結束。
本發明另外的實施例本發明可以由硬件和/或軟件來實施。本發明的一硬件實施需要子波濾波器,存貯器/數據流管理以提供用于該濾波器的數據,一上下文模式以控制本發明的嵌入編碼,存貯器/數據流管理以提供用于該上下文模式的數據,和一二進制熵編碼器。
子波濾波器圖16示出了本發明的前向子波濾波器的一實施例。圖16中所示的子波濾波器容納有4個16比特2的補碼輸入象素,以x(2)-x(5)表示。
參看圖16,兩抽頭“11”低通濾波器使用一個16比特加法器1601。其輸出被分別稱之為S和D。使同移位一個比特方框1603使加法器的輸出(S)被舍位成16比特。通過將其17比特輸入向右移位一個比特,移位一個比特方框1603執行除2功能。
6抽頭高通濾波器需要對-S0+4D1+S2進行計算。利用接收移位一個比特方框1603的輸出和Y0(0)的減法器1605計算函數S2-S0。利用減法器1602、移位2個比特方框1604和加法器1608計算4D1項。利用稱位兩個比特方框1604使由16比特減法器1602產生的輸出向左移位兩個位置,借此以使它的輸出被乘以4。方框1604的輸出由加法器1608加到2。注意,由于移位了兩個比特,所以,加法器1608可以通過布線加以替換。把加法器的4D1輸出加到減法器1605輸出端上的工作是由20比特加法器1606執行的。使用移位2個比特方框1607將加法器1606的輸出舍位為18比特,通過將其20比特輸入向右移位兩個比特,移位兩個比特方框1607執行除4的功能。
因此,(用于存貯暫時結果的非計數寄存器)所需的總的計算硬件是·1@16比特加法器,·2@16比特減法器,·3@19比特加法器。
注意,移位(和加法器1608)是利用諸如不需要任何邏輯關系的布線執行的。
在另一個實施例中,對于輸入尺寸N來講,可以使用一個N比特加法器,兩個N比特減法器和一個(N+3)比特加法器。
由于這些加法器和減法器的硬件成本極低,因此如果需要的話,還可以同時使用一個濾波器。
注意,取代減去x(3)和x(2),可以計算x(4)-x(5)并保留其結果直到以后作為用于下一次移位或濾波器應用的x(2)-x(3)需要時為止。兩個正向濾波器(或下面將要描述的反相濾波器)可以形成流水線配置,以實現較高的吞吐量。
反相子波濾波器示于圖17。利用減法器1701減去Y0(0)和Y0(2)的輸入。利用加法器1709將2加到減法器1701的輸出上。并利用移位兩個比特方框1702將相加的結果向右移位兩個比特。這就使減法器的輸出被除以4。減法是在移位2個比特方框1704的輸出和Y1(6)輸入之間進行的。輸入Y0(1)被移位一個比特方框1703向左移位一個比特,借此使該輸入乘以2。在Y0(1)被移位了一個比特(被乘以2)以后,移位值的LSB是取自減法器1704輸出的LSB并與來自移位一個比特方框1703的16比特輸出相組合以形成加法器1705和減法器1706的輸入。加法器1705和減法器1706的其它輸入是減法器1704的輸出。加法器1705和減法器1706的輸出。加法器1705和減法器1706的輸出接著被進行箝位。
可以選擇兩種箝位操作。在這兩種情況下,20比特值被移位一個比特(9除以2)成為一個19比特值。對于僅執行無損耗壓縮的系統來講,可以輸出最低有效16比特(其余3比特被忽略掉)。在有損耗(或有損耗/無損耗)系統中,如果19比特值是負的,那么它被置為零,如果它大于216-1,則將被設置成216-1,否則可以輸出最低有效16比特。
對于尺寸為N個比特的輸入而言,可以使用一個N比特減法器,一個(N+1)比特加法器、一個(N+2)比特加法器、一個(N+3)比特加法器和一個(N+3)比特減法器,且箝位單元輸出N個比特。
在子波變換的一個實施例中,在變換中使用了Monte Carlo除法,其中使用了偽隨機發生器,并根據它的輸出結果,變換操作的結果或上或下來回滾動。只要譯碼器意識到這種滾動一直在執行(即使用相同的隨機發生器,在相同的點開始),就可以使用這種工具。
用于與子波濾波器相關的數據流管理的存儲器就用于本發明子波濾波器的存貯器和數據流管理而言,對于滿幀可以裝入存貯器的圖象存貯器/數據流管理不是一件困難的事情。即使是1024×1024的16比特醫學圖象(例如24兆字節規模),對于許多應用來講,要求滿幀緩沖器也是合理的。對于較大的圖象(例如A4,400DPI4-彩色圖象的規模大約是50兆字節),也希望使用有限量行緩沖存貯器的子波變換。
注意,對于本發明的執行一通過系統來講,滿幀緩沖器是不需要的。由于這一點,所需存貯器可以被減少100倍(和使用與大圖象相關的滿幀緩沖器相比)下面將描述本發明的一通過系統。
存儲在濾波緩沖器中的數據是一系列將被進行嵌入編碼和二進制熵編碼的系數。嵌入編碼使用上下文模型去配合水平(norizon)編碼的使用并提供適當序列的數據。所述上下文模型和存貯的管理模式一起工作。對于使用滿幀緩沖器的系統來講,以適當的序列提供數據是不困難的。
對于使用有限量工作區存貯器的系統來講,使用不同高度的變換以減少用于存貯所需的存貯器工作區行的數量。因此,如果遇到較寬的圖象,它就會被有效地壓縮在所分配的工作區存貯器內。例如,可以垂直地使用S變換以減少行數。
存貯器需要對光柵(vaster)數據進行緩沖,從而能夠執行子波變換。在某些應用中,使這個存貯器最小化對于減少成本來講是非常重要的。下面來描述實現這一點的技術。
這里所描述的子波2-D變換的一個實施例是為一通執行和受限存貯器應用而設計的。在一個實施例中,為實現熵解壓而使用的子波變換僅僅是TS和S變換。在這個實施例中,具有4級相互獨立的熵解壓。在一個實施例中,使用S和TS變換執行4級解壓。在一個實施例中,在水平(行方向)解壓過程中,完全使用TS變換,即形成TS-TS-TS-TS的水平解壓。在垂直(列方向)解壓過程中,以TS-TS-S-S形式執行S變換和TS變換。除對存貯器應用方面有重要影響以外,都使用低成本的S變換來取代兩個TS變換。為通常情況一樣,水平和垂直變換被交替使用(圖20)。
注意,S和TS變換的任意組合都可被用于執行水平和垂直變換。注意,雖然變換的順序可以是混合的,但解碼器必須意識到這個順序并必須以全可逆的反相順序執行相反的操作。
系數樹在熵系統中,可以使用樹結構將系數分成多個組。每個樹的根是一個純的低通系數。圖6示出了變換后圖象一個純低通系數的樹結構。對于諸如一個圖象的兩維信號來講,樹根具有3個“孩子”,其余節點中的每一個具有4個“孩子”。該樹不被分層地限定為兩維信號。例如,對于一維信號來講,樹根具有一個“孩子”,而非樹根的節點中的每一個具有兩個“孩子”。較高的維是由一維和二維情況得出的。
從示于圖7-9的濾波器的工作情況來看,其樹結構是很明顯的。利用子取樣的一對濾波器的工作使得在前所描述的系數被涉及。
在一個實施例中,系數是在一個比特有效或比特平面嵌入系統中被編碼。由于該系數是從最高比特平面向最低比特平面進行編碼的,所以必須確定在數據中比特平面的數量。在本發明中,這是通過獲得根據數據計算的系數值的幅值上限或得自圖象深度或濾波器系數的幅值上限而實現的。例如,如果上限是149,那么就有8個有效比特和8個比特平面。由于軟件中的速度問題,可以不使用比特平面編碼。在另外一個實施例中,只有當系數變得和二進制數一樣有效時,才使用比特平面編碼。
在一個實施例中,本發明的水平上下文模型包括被饋入給二進制熵編碼器的子波系數比特有效嵌入編碼。
上下文模型的替換一旦解壓被完成且數據系數被排序,本發明的上下文模型被用于對這些系數進行編碼。有各種各樣可以被使用的上下文模型,其決定以空間位置、級和/或比特位置為條件。該決定還可以在空間位置、級和/或比特位置方向與當前數據接近的先前譯碼的數據為條件。
下面是某些例子。最高有效尾部比特(和因此是最容易予側的)不同于尾部比特其余位的上下文。標題比特可以由與在同一變換級中空間接近在前系數有拳同一比特決定。類似地,用于有效系數的符號可以由在同一級中空間接近在前系數的符號或本源系數的符號來決定。
當對具有空間或多個分解結構的圖象進行壓縮時,上下文模型的改進可能是非常重要的行繪圖或文本的灰度圖象是具有這兩種結構的圖象的例子。對于使用規定峰值誤差去壓縮那些已經被壓縮和解壓的文件來講,這種改進也是非常重要的。
當利用軟件執行本發明時,由于所述比特需要決定狀態(例如每個首位),所以需要大量的時間去獲得與上下文相關的比特。在本發明的一個實施例中,通過使用查詢表(LUT)可以加速軟件的執行。這避免了與用作上下文的北(N)西北(NW)、西(W)和西南(SW)等象素相關的單獨比特的提取操作。
圖19A和19B示出了本發明的與標題比特狀態相關的狀態機構。參看圖19A,用于新母體的LUT1901被耦合到編碼/解碼方框1902。LUT1901被耦合以接收表示母體的比特、表示以上(NE)系數,當前系數(E)和表示以下(S)系數的比特,在一個實施例中,本源輸入的當前輸入各自包括兩個比特。到LUT1901的其它輸入包括作為反饋的來自LUT1901所有或部份的上下文輸出和編碼/解碼方框1902的輸出。在一個實施例中,作為LUT1901上下文的10個比特輸出中的8個被反饋到LUT1901的輸入端上。
由于NE、E和S代表包括有與各種比特平面相關的信息的樣板信息的前沿,所以它們要被使用。注意,除了南(S)系數以外,西南(SE)系數也可以使用。
在一個實施例中,如果樣板位于編碼單元以外,那么可以利用來自當前象素的比特代替外部狀態比特。
圖19B示出了使用與同一母體相關的LUT的狀態機構的狀態。在這種情況下,全部上下文被作為輸入反饋給LUT1903。
在利用光柵順序對數據進行處理的地方由于被用于產生最后上下文的同一個存貯器不再被重新裝載,所以,使用LUT減少了存貯器存取的數量。
為了減少LUT存貯器的規模,還可以利用僅處理其它條件的LUT的輸出通過ORing分別處理母體狀態。
可以用一個稍大的LUT表來最大程度地提供與下一個比特平面相關的狀態。另外一個較小的表用來提供來自當前上下文LUT的狀態信息并使之與來自下一個比特平面的新得到的數據相結合。如果在此時對一個樹進行編碼的話,這將是非常有用的。
如上面就本發現所述,“系數”可以被規定成表示決定因素為1的變換。在這種情況下,通過當低概率是零時保留用于對低概率事件進行編碼所使用的空間使得代碼空間不會被浪費。但是,8比特系數仍被輸入并且產生一個8比特系數一個9比特系數。因此仍可以改善效率。所增加的低效率是由于可通過系數空間的旋轉而致。
應當注意,變換操作的某些結果唯一的識別在計算中以使用的量,這發生在這些結果接近這些可能結果的范圍的邊界時。這樣的一個例子示于圖18,其中,μ代表低通而v代表高通。由于u和v的值不是獨立的,所以,在考慮到連接信息的情況下很容易對這些易進行熵編碼。為圖18所示,對于大多數低通值來講,這是由于用于高通的某些代碼空間未被使用的緣故。在很多應用中,由于指定給這些不可能對的概率極低,所以,這也有一點優異。但是,在某些應用中,這可能有相當大的好處。為了加速操作,在LH,HL和HH系數之前應當傳送更多的LL系數。這可以使得劃界更容易。
在某些實施例中,在每個編碼單元被編碼以后,一切都復位,當時第二個單元進行編碼時,統計量和概率被復位。在一個實施例中,某些或所有的統計量都被保留。然后這些統計量被作為一個后邊編碼單元開始編碼時的最初統計量在一個實施例中,該統計量可以被保留在第一或先前編碼單元編碼過程中的某一預定點處。例如,在第三比特平面編碼之后,對當前編碼單元進行編碼的所使用的統計量被保留并且用作對下一個編碼單元或以后的編碼單元開始編碼時的統計量。在另一個實施例中,評價所有圖象的分類并確定統計量的硬編碼組。然后,使用這些硬編碼統計量作為缺席規劃執行編碼。在另外一個實施例中統計量被保留以用于每一個比特平面,從而當對處于另一個之中的類似比特平面進行編碼時使用這些統計量。
在一個實施例中,在第一個一比特之前沒有編碼。在系數中發生第一個一比特時,對符號進行編碼。雖然首位是一個從屬的圖象/區域,但對于不同的圖象和區域來講,尾部比特是更加唯一的。根據尾部比特距離最初一個比特(右標題比特內)有多遠,可以使用某些概率分類對尾部內的比特進行編碼。在一個實施例中,利用包括0.7在內的概率分類對系數內的第一個尾部比特進行編碼,利用包括0.6在內的概率分類對第二和第三尾部比特編碼,最后,利用包括0.5在內的概率分類對第四和以后的尾部比特進行編碼。
A執行子波變換在一通過系統中,以執行的子波變換是壓縮參數和所使用存貯器數量之間的拆衷方案。選擇編碼單元尺寸以用于具有最少解緩沖器的最少存貯器(假定以光柵順序傳送圖象)。子波變換的中間系數被存貯在同一個存貯器之內,以在適當時取代輸入。
子波變換濾波器的選擇這里所描述的子波2-D變換被設計來用于一通完成和有限存貯器。共有四級單獨解壓。在水平解壓過程中,僅使用TS變換,即使形成TS-TS-TS-TS水平解壓。在垂直解壓中,使用S和TS兩種變換。且垂直解壓形成為TS-TS-S-S解壓。水平和垂直解壓交替使用。圖20示出了水平和垂直解壓。
除了在存貯器應用方面的有效壓縮以外,在無損耗壓縮過程中使用低成本的S變換代替兩個TS變換。在最后兩次垂直通過中選擇使用S變換僅用于少量的存貯器。S變換的使用大約保留了系數緩沖器的32行(例如來自48行的16行以下)。注意,對所有的解壓使用TS變換并不是提供更好的壓縮性能。
編碼單元的規定在一個實施例中,編碼單元是由樹的一行(LL系數或所有它們的下節點的一行)規定的。利用四級介壓,這意味著在空間域中,編碼單元是16行乘以圖象寬度。圖21示出了一個編碼單元。注意,圖21并沒有按比例去畫。級1方框是一個2-D介壓之后的圖象。為了重復,名稱LL(低-低)、LH(低-高)、HL(高-低)和HH(高-高)被用于對子方框尋址并被提供給所有的級1-4方框。級2方框是在級1方框中子方框LL 2-D介壓的結果。類似的,方框3和4分別是在級2方框和級3方框中子方框LL 2-D介壓的結果。
編碼單元在級1中對于HH、HL和LH系數是8行高、在第二級中是4行高,在第三級中是2行高,而在第4級和LL子方框中則是一行,注意,當分解在每個步驟減少時,行的數量以及長度減半。在級4方框LL中的每個系數是一個樹的最高母體。
緩沖和系數計算為了產生一個在圖21中所述的編碼單元,可以使用其尺寸為2.w.m的工作區緩沖器,其中,w是圖象的寬度,m是一個比特內的最大系數尺寸。由于為垂直變換(即行方向上)通過所選擇的子波濾波器的特性,工作區存貯器的要求大約是18-20行。每次一行的計算所有的都是TS變換的每一個水平變換(即行方向上)的通過并用新的系數取代老的系數或象素。
頭兩遍垂直變換使用TS變換濾波器。由于是6抽頭高通濾波器,所以,在垂直通過中的每個高通系數取決于任一象素系數數據的6行。所產生的高通TS系數涉及到其下面4行用于重疊的頂部兩行。這示于圖22。參看圖22,該圖示出了一個編碼單元的垂直圖象段。該編碼單元的垂直圖象段是正在利用TS變換的水平通過進行變換的原始圖象的結果。這里示出了一個編碼單元垂直級1段并且是該圖象的第一個級2-D變換。通過利用TS變換執行水平通過獲得垂直級1段。還示出了一個編碼單元的垂直級2段,該段是通過在兩維上對級1方框的LL子方框執行TS變換而產生的。
應當注意,由于TS變換是被4個象素(或系數覆蓋的,所以4行數據在編碼單元的末端處被保留下來,以備對下一個編碼單元的系數進行計算時加以使用。換言之,為了建立級1系數,在頂部和底部需要兩個額外的象素行或左底部需要4個額外行。為了建立級2系數,在頂部或底部需要2個額外的級1系數行或在底部需要4個。為了建立這些額外的級1系數,在頂部和底部需要另外的兩個象素行或在底部需要4個。因此,每個編碼單元要跨躍28個垂直行。
但是重要的是,由于這些“額外”的級1系數將被用于當前編碼單元之下或之下的編碼單元,所以不需要額外的計算去產生它們。另外還應當注意,由于只存貯級2系數,所以只需要存貯器的20行。
最后兩個垂直通過是S變換,它在低通情況下沒有重疊,因此不需要額外的行。
用于變換計算的存貯器有關尺寸方向給出的象素值或系數值是b比特(在-2b-1,...,0,...2b-1-1的范圍之內),s變換和TS變換的平滑輸出S(.)也是b比特。換言之,它們與輸入具有相同范圍。但是,S變換和TS變換的一組細節輸出d(.)將利用b+1,b+2分別加以表示。
圖23示出了除編碼單元以外所需的某個行緩沖。灰色區域和箭頭是部份當前編碼單元的系數,它們需要被保存在存貯器中以用于當前編輯。虛線箭頭是在編碼單元中計算系數所需的暫時系數。這此系數將被新的系數所改寫、實線箭頭表示這樣的系數,即它們是當前編碼單元系數計算的付產品并被保留以作為下一個編碼單元的一部份。
這些系數的最后一級(級4)是所有4個子方框(LL.LH.HL.HH)中的單一一行。僅參看垂直變換,從級3到計算級4僅使用了S變換,所以,所有子方框在級3中僅需要系數的兩行。類似地,從級2到計算級3在計算級2中需要4行。所有的這些系數都是當前編碼單元的一部份。
為了計算級2和級1的垂直通過,使用TS變換。由于6抽頭高通重疊濾波器的重疊特性,這些級需要來自下一個編碼單元的數據。這些數據被用于計算當前編碼單元中的系數并被存貯起來以用于下一個編碼單元。
為了計算級2(LH.HH)中來自級1的高通子方框,需要12行(8行到4行來自下取樣,和4個額外行用于重疊)。這些行在圖23的級1(LL.HL)低通子方框中示出,其中8行是當前編碼單元的一部份,4行是下一個的一部分。
為了計算在級1(LL.LH)的低通子方框中的12行,需要從級0開始的24行,0在級0處的這24行能夠建立在級1的高通子方框中的10行(16行到8行來自下取樣,4個額外行用于重疊)。即使僅有8行需要用于當前編碼單元,但計算這所有10行并在級1處存貯它們是非常重要的。因此,只有4個用于重疊的額外行在級0處被保留下來。
對于可分離2-D變換來講,從象素深度b的圖象開始,在行和列二者的情況下,變換是TS,對于LL,HL,LH和HH子方框來講,系數范圍分別是b,b+2和b+4。在可分離2-D變換包括水平TS和垂直S變換的情況下,對于LL,HL,LH和HH來講,系數范圍分別是b,b+1,b+2和b+3。表2,3,4,5和6示出了與每個方框所需存貯器的計算。注意,該計算是根據與寬度為W的圖象相關的比特的尺寸而進行的,每個方框中的一個是表2一用于級0的存儲器成本
表3一用于級1的存貯器成本
表4一用于級2的存貯器成本
表5一用于級3的存貯器成本
表6一用于級4的存貯器成本
把上述所有的量相加等于(26b+5578)·W]]>比特,約等于(26b+56)·W比特。大尺寸的兩行計算緩沖器,即b+4比特加上2·(b+4)·W比特導致了(28b+64)·W比特。例如,對于一個8比特512象素寬的圖象來講,需要147.456比特或約18K字節。
在一個實施例中,變換的規模是根據圖象的寬度和可以得到的存貯器的固定尺寸進行選擇的。換言之,一個特殊圖象可以被輸入到本發明的系統中,并且由于可獲得的變換存貯器的數量有限,所以解壓級的數量減少。如果可以獲得更多的存貯器,那么,解壓縮級的數量可以增加。注意,當系統正在接收圖象時,這種情況可能不斷發生。如果可以得到足夠的存貯器,則可以通過子波濾波器饋入LL系數,以執行附加級的解壓。注意,減少或增加級的數量這樣一個事實意味著分別減少或增加可以實現的壓縮的數量。
B.本發明的嵌入順序代碼流的排序圖24A示出了代碼流的排序以及在編碼單元內的排序。參看圖24A,在標題2401之后跟隨有從頂部到底部的編碼單元2402。在編碼單元內,LL系數2403不以光柵(行)順序進行編碼。在LL系數之后是從最高有效比特平面到最低有效比特平面的一次一個比特平面進行熵編碼的數據。然后在第二比特平面之前,來自每個系數的第一比特平面被進行編碼,等。
系數的排列在本發明的一個實施例中,上下文模型使用一個非規格化的1+Z-1低通濾波器。但是,該上下文模型可以使用諸如1+Z-12]]>的規格化濾波器。
為了使用規格化濾波器,可以在正向子波濾波器1600和上下文模型105之間使用一個排列單元以對來自非規格化濾波器的增加(或損失)的能量進行補償,這改善了壓縮。由于這種排列對于有損耗操作來講允許不均勻量化,所以,這種排列可以增強有損耗圖象重建的可視質量。在一維情況下,來自該樹每一級的系數都將具有不同的排列( 2、 4, 2、 1)。在兩維情況下,除數將是2、4、8、16,乘數將是8、4、2、1。
由于該排列僅用于類似于與編碼相關的二進制判定的分組,所以使用精確格式化的值不是很關鍵的。在解碼期間,排列必須被反相,所以需要乘法和除法,使用被平方的乘數/除數允許硬件更有效地執行操作。當系數被平方時,所增加的減少有效零比特不必進行編碼。
系數排列可被用于調節和用于更好的非均勻量化。在(兩維信號)圖象的情況下,RTS變換的一個實施例通過把頻帶乘以圖28所示的數來排列系數。乘以這些數導致RTS變換非常接近TS變換的精確重建的子波。
該一通過實施例僅使用了就與濾波器配對有關的MSE而言是最佳的一個排列。表7示出了排列號。利用有效位對系數進行編碼,其中,第一比特平面是所有系數左邊最高量級的比特。在所述系數具有非零量級比特以前,用于每個系數的符號比特不被編碼。換言之,在第一個非零比特被編碼之后,立即對符號比特進行編碼。它的優點在于對于任一具有零量級的系數而言,可以不必對符號比特編碼,并且在嵌入代碼流內的符號比特的相關點前不必對符號比特進行編碼。對于一個象素深度為b的圖象而言,最大可能的系數幅值為2b+3-1,即數量為b+3比特。因此,每個系數都以b+3二進制判定進行編碼,并在需要時加上一個用于符號比特的附加的一個。
表7一系數排列
不同尺寸系數的排列被通知給編碼器和解碼器,并不在熵編碼器上進行有效壓縮。
還應當注意,編碼單元每個方框的每個子方框都可能具有它自己可能的最大幅值范圍,這個范圍都要被通知給編碼器和解碼器。對于大多數子方框來講,具有一系列完整的決定性的二進制零值,為提高效率起見,這些零值都被熵編碼器忽略。
在每個比特平面期間的系數的處理順序是從低分辨率到高分辨率,從低頻到高頻。每個比特平面內的系數編碼器是從高級(低分辨率,低頻)到低級)(高分辨率,高頻率),如下4-LL、4-HL、4-LH、4-HH、3-HL、3-LH、3-HH、2-HL、2-LH、2-HH、1-HL、1-LH、1-HH。
在每個子方框內,編碼按照光柵掃描順序。
注意,同一數據組的編碼單元可以具有不同的排列。在一個實施例中,排列可以被規定在諸如圖24A所示的標題2401中的標題內。
水平上下文模型圖25示出了與編碼單元每一系數相關的相系數。參看圖25,該圖利用非常明顯的圖表說明諸如N=北,NE=東北等注釋了相鄰系數。
由于給定了諸如圖25中的P這樣一個系數和一個當前比特平面,所以,在給定位平面之前,上下文模型可以使用來自所有編碼單元的任一信息。該信息的母體系數也被用于這個上下文模型。
不使用相鄰的或母體的系數值去確定與該系數的該比特相關的上下文,信一息被減少到這里被稱之為尾部信息的兩個比特。這個信息可以被存貯在存貯器中或根據鄰近的或母體系數不斷地進行計算。尾部信息涉及到第一個非零幅值比特是否被觀測到(即第一個“on-bit”是否被觀察到)以及在此之后大約有多少比特平面。表8描述了尾部信息比特表8-尾部信息的規定
根據2-比特尾部信息,尾部接通比特指出尾部信息是否為零。在一個實施例中,在2系數編碼之后,立即更新尾部信息和尾部接通比特。在另一個實施例中,較晚發生更新,以允許并行上下文產生。
作為一個例子,表9示出了尾部接通比特。作為比特平面的函數,用于具有用二進制為下表示的幅值的系數(“*”的意思是無論它是0還是1”
表9-是否是與所舉例上下文系數相關的尾部信息的表
第三種上下文信息是符號比特。由于符號比特是在第一個on-bit(非零比特)之后立即編碼的。所以,該尾部信息表示所述符號信息是否是已知的。因此,除非該尾部信息不是零(符號重新調用有三種可能即正、負或未知),否則該符號比特不是信息上下文。
系統的上下文模型使用高達11個比特去描述上下文。這個數量并沒有完全被規定,實際上只使用了包括符號比特上下文在內的1030或1031個上下文。每一個比特位置的意義取決于在前的二進制值。一個實施例遵循下述規則如果該系數的尾部接通比特是零(用于首比特),那么來自母體和W系數的尾部信息比特的1024個上下文分別是NW、N、NE、E、SW和S系數的尾部非零比特。在一個實施例中,適當的編碼被用于首比特。在某些實施例中,一個單一的上下文被用于提供首經特的“運行編碼”。如果緊接著將被編碼的16個比特全都是首比特并且它們的N、S、E和W相鄰和所有的母體的尾部信息為零,那么將對一個單一的判定進行編碼。這個判定表明將被編碼的16個比特中的任一個是否有一個比特位于當前比特平面處。如果沒有這樣一個比特,那么可以忽略被一般編碼的16個判定。如果下一個16個系數中的任一個包含有它們的第一個有效比特,則對于每個比特使用一次16個判定。這種“向前看”導致了較少調用二進制熵編碼器,從而導致了較高的速度和較高的壓縮。
如果該系數的尾部接通比特是1(用于尾部比特),那么,三個上下文來自該系數的尾部信息比特)。如在前面的討論的,可以使用固定概率編碼。
如果該系數的該位是第一個非零幅值比特,那么該系數的符號比特在此后被立即編碼。與符號比特相關的上下文是來自N尾部比特和N符號比特的3個上下文,其中,如果N尾部比特是零,則N符號比特是未知的。如果N符號比特是未知的,利用概率0.5對符號進行編碼,否則該符號被自適應編碼。
總之,建立了11個比特量以表示來自從同一編碼單元中的當前,相鄰和本源系數中可以獲得的信息的上下文。
圖26A-D示出了可以用于決定系數P狀態的因果和非因果系數。所以標準框中的每一個包括尾部比特和尾部信息的使用。當每個系數的尾部比特提供一個比特時,每個系數的尾部信息包括2個比特。在圖26A中,由標準框提供的比特總數是8。在圖26B和26C中,由標準框提供的比特總數是10。
附加比特可被用于決定系數P首比特的狀態。在一個實施例中,兩個附加的比特可以規定比特位置如下00 第一比特(MSB)和第二比特01 第三比特和第四比特10 第五比特和第六比特11 其它比特應當注意,可以根據相鄰和母體系數來設計其它的標準框。另外,在一個實施例中,如果不是由比特平面定位的,那么用于決定系數P的系數是因果系數。
在一個實施例中,使用S變換母體而不是使用TS變換母體去決定狀態。這減少了通過在繼續為下一個編碼之前保留低通行去決定狀態所需的緩沖,它的缺點在于熵編碼的編碼器是重要的,而編碼器存貯器是不重要的。
注意,作為在上下文內減少數據的結果,在具有更多的上下文去建立更多錯位數據和自適應效率之間存在著拆衷。
在一個實施例中,那些不需要決定狀態的尾部比特不被進行(用于決定狀態的)緩沖。它們可以在被得到之后立即進行編碼。在這種情況下,通道管理器可以直接將所述比特傳送給通道。
在一個實施例中,不以和其它系數相同的方式對處于最低解壓級的系數進行編碼或根本不對它們進行編碼,這些系數可以使用諸如DPCM的預測編碼進行編碼。
對于尾部編碼比特來講,可以使用一次固定概率或自適應。
就狀態決定而言,最后一個比特可以部份地根據第二到最后比特來決定狀態。另外,在第一個非零比特之后的比特可以根據它們距離第一個非零比特有多遠來決定狀態。
在一個實施例中,某些尾部比特被自適應編碼。例如,當在系數9例如T=2、T=3)中的尾部比特少于T尾部比特時,就使用自適應編碼。與這些比特相關的上下文包括在當前系數中的比特位置和任一先前編碼的尾部比特。這類似于Langdon就DPCM數據以教導的M進制的中心編碼(the M-ary coding ofcenter)。
在另一個實施例中,某些或全部數據都利用M進制的熵編碼器而不使用二進制熵編碼器進行編碼。M進制的編碼器包括Tunstall編碼器、固定霍夫曼編碼器和自適應霍夫曼編碼器等。例如,一個霍夫曼編碼可被用于首比特。在另外一個不是同時對首比特和一個比特進行編碼的實施例中,使用優先級編碼器來確定第一個非零比特的位置,然后利用二進制熵編碼器對用二進制表示位置的比特進行編碼。
水平上下文模型。
本發明的上下文模型以方框圖的形式示于圖27。上下文模型2700包含有一個符號/幅值單元109(圖2)和三個用于對系數中的不同比特進行處理的單元。根據正在被編碼的比特,選擇上述三個單元之一。可以包括一個開關以便于在硬件結構單元中的轉換。這些單元包括首比特方框2701,符號比特方框2702和尾部比特方框2703。如上所述,首比特方框2701,符號比特方框2702和尾部比特方框2703分別構型首比特、符號和尾部比特。這三個單元的輸出被傳送給熵編碼器104(圖4)。
編碼器包括可選擇控制,用于保留狀態(可選擇的)、提供最初狀態和復位編碼器(例如,在編碼單元結束處)。
除少數例外,上面以規定的上下文使用自適應二進制角熵碼器。當N-tail-on=1時的首比特(該系數的尾部比特=0)和符號比特允許修改。
但是,taril-on=1之后的比特和N-tail-on=0時的符號比特是由一個固定源來構型的。在這種情況下,不需要熵編碼器的自適應特性。事實上,該自適應特性可能是一個效率很差的壓縮源。對于下面的上下文,使用根據Q-編碼器狀態所描述的固定(無自適應)狀態。
統計模型當N-taril-on=0(N系數的符號是未知的)時,上下文被用于對符號比特進行編碼,并且在固定Q-編碼器狀態0-概率近似為0.5處對上下文進行編碼。
在固定Q-編碼器狀態4-概率近似0.7處對第一非零(位P信息=1)比特編碼之后,上下文被用于對第一個二進制值進行編碼。
在固定Q-編碼器狀態3-概率近似為0.6處對第一個非零比特(尾部信息=2)進行編碼之后,上下文被有于對第二和第三個二進值進行編碼。
在固定Q-編碼器狀態0-概率近似為0.5處對第一個非零比特(尾部信息=3)進行編碼之后,上下文被用于對第四和以后的二進值進行編碼。
在某些實施例中,在每個編碼單元之后,熵編碼被復位,所以與允許去修改(例如用于對第一個on-bit之前的二進值進行編碼的)上下文有關的修改容量是非常重要的。為了保持這個最低容量,可以計算一組初始狀態,以用于來自例如某個數據串的這些上下文。
下面的敘述假設該系數是18個比特,且數入數據必需經過4級解壓。
符號/幅值單元109的一個實施例示于圖28,它被用于將輸入系數轉換成一個符號/幅值格式。符號/幅值單元109被耦合以接收該系數的18個比特,它包括反相器2801和多路轉換器(MUX)2802。符號/幅值單元109輸出(例如是5比特值的)有效指示、(例如是17個比特的)輸入系數的假設、輸入系數1的符號和例如是7個比特的來自計數器2804的索引。
MUX2802被耦合,以接收直接輸入給符號/幅值單元109的系數的17個比特和來自兩個反相器2801的17個比特的反相比特。根據在MUX2802選擇輸入端接收到的符號比特(系數比特17),兩個輸入端的正值被輸出以作為一個假數)。
編碼取舍二進制角錐編碼器被用于上下文和將要被編碼的比特。
對于利用比特平面編碼的比特平面,本發明使用了(以通用計算機為基礎的)保留進位形式計算,從而使得計算能夠以適于由比特平面快速編碼的數據格式進行。例如,在這樣一個執行過程中,32個比特處理器可以同時計算在同一個比特平面內的32個系數中每一個的一個比特,而不是全部系數中的一個。當利用比特平面進行編碼時,使用這樣一個實施例導致速度增加。
由于一個編碼單元同時被編碼且所有編碼單元內的系數都駐留在存貯器內,所以,除了需要修改二進制熵編碼器以外,就不再需要利用存貯器去存貯上下文信息。例如,Q-編碼器需要保持與以有上下文有關的LPS(最低有效符號)二進制值以及用于被允許進行修改的每個上下文的當前狀態。由于Q-編碼器需要30種狀態,所以,對于每個上下文來講需要6個比特(一個比特用于LSB,5個比特用于狀態)。因此存貯器的存貯容量是1024×5=6150個比特。
注意,對于上述一通嵌入實施例來講不需要特殊的信號信息。如果壓縮級數是可變的,那么就需要至少標題信息的3個比特。沒有被計算在壓縮比特之內的用于該實施例的標題如下·寬度,2字節·高度,2字節·輸入圖象每個象素的比特,1字節存貯器管理對于在存貯器中存貯所有數據的系統或左通道中發送數據的系統來講,存在有關于在一通系統中編碼數據的存貯器管理問題。在一通系統中,編碼數據必需被存貯以使其能夠以嵌入因果方式被訪問,從而使得可以在不損失較高有效數據的情況下丟掉一些較低有效數據。由于編碼數據的長度是可變的,所以可以使用動態存貯器分配。
在本發明的一個實施例中,嵌入編碼方式使用18個比特平面,由此給數據指定18個有效級。一通系統中的順序是“嵌入因果關系”,即,對與一個比特平面相對應的事件進行介碼不需要來自低順序比特平面的信息。在一個實施例中,在下一個樹的任一比特被編碼之前,來自該樹的所有比特被進行編碼,所以,不同有效級的比特不會被分開。對于那些不使用內部狀態的編碼器而言,與霍夫曼編碼器類似,這不是問題。但是許多具有更好壓縮的復雜壓縮使用內部狀態。
解決與這些編碼器相關的這個問題的途徑之一是使用18種不同的編碼器、設想是18個Q-編碼器芯片。在1992年3月17日授權的、發明名稱為“用于在記錄媒體上進行記錄的數據壓縮”的美國專利5,097,261(langdon)中描述了一種允許使用9個Q-編輯器芯片的技術。一種校好的方式是使用流水線編碼器利用諸如在1995年1月10日援權的、發明名稱為“用于數據并行介碼和編碼的方法和裝置”的美國專利5,381,145中描述的那種單一的實際編碼器執行不同的虛擬編碼。在這種編碼器中,與每一個概率相關的多個比特產生器狀態中的每一個被指定給一部份數據。例如,18個狀態中的每一個被指定給與18個比特數據相關的特殊比特平面。在該編碼器中移位器內的寄存器也被指定給每一部份數據。在該編碼器中,不執行重疊,每一部份數據被簡單地構成一個比特信息包。
在多個實際或虛擬編碼器中任一種的實施例中,存貯器被分配給每一部份數據。當壓縮完成時,得到一個表示所分配的存貯器以及所分配存貯內容的一個鍵接表。
如果存貯器過溢,則存貯器分配程序安排使得比較重要的數據去重寫不太重要的數據。例如,一個數字數據的最低有效位可能被首先重寫。除了編碼數據以外,描述有多少存貯器波分配的信息也必須被存貯起來。
圖29示出了與三種有效級相關的動態存貯器分配單元的例子。為了避免使本發明難于理解,僅描述了三級,通過使用較大數量的級,諸如8,16或18級。寄存器文件(或其它存貯器)保持一個與第一有效級相關的指針,并保持一個用于指示下一自由存貯區分配的指針。該存貯器被分成固定尺寸的頁。
最初,指定給有效級的每一指針指示存貯器一頁的開始,而自由指針指示可以獲得的下一個存貯器頁。利用有效級識別的編碼數據被存貯在由相應指針尋址的存貯器單元內。然后指針增加到下一個存貯單元。
當指針到達與當前頁相關的最大值時,作為一個鍵接利用當前頁存貯在自由指針內的下一個自由頁的起始地址。在一個實施例中,為此目的使用了一部份編碼數據存貯器或隔離存貯器或寄存器文件。當前指針被置于下一個自由頁。增加自由指針。這些步驟使得一個新的存貯器頁被分配給一個特定的有效級并提供對含有與公共有效級相關的數據的存貯器頁的鍵接,從而使得可以在解碼期間確定分配順序。
當存貯器內的所有頁都處于使用之中,且存在有比存貯器內最低有效數據更加有效的數據時,執行存貯器的重新賦值。描述了三種這樣的賦值技術。在所有這三種情況下,指定給最低有效數據的存貯器被重新指定給較多有效數據,并不再存貯更低的有效數據。
首先,最低有效數據當前正在使用的頁被簡單地指定給較高有效位的數據。由于最典型的熵編碼器使用初始狀態信息,所以在那一頁事先存貯的所有最低有效數據都被丟失了。
其次,最低有效數據當前正在使用的頁被指定給較高有效數據,和先前情況不同,指針被置于該頁的末端,并且當較高有效數據被寫入該頁時,相應的指針被減少。這有一個優點,就是如果較高有效數據并不需要整個頁的話,那么就在該頁的開始處預先保留了最低有效數據。
第三,代替正在被重新指定最低有效數據的當前頁,可以重新指定最低有效數據的任一頁。這需要對與所有頁相關的編碼數據獨立編碼,這可以減少所實現的壓縮。它還需要識別與所有頁的起點相對應的未編碼數據。由于最低有效數據的任一頁都可以被丟掉,所以可以在量化過程中獲得較大的靈活性。
在整個圖象區域內實現固定壓縮速率的系統中,第三種方法可能是最具吸引力的。規定數量的存貯器頁可以被分配給圖象的一個區域。較低有效數據是否保留取決于在一個特定區域內實現的壓縮。注意,如果無損耗壓縮需要的存貯數量少于指定的存貯數量,那么指定給一個區域的存貯器不可能全部被利用。在圖象區域上實現固定速率的壓縮能夠支持對圖象區的隨機存取。
當壓縮完成時,如果需要的話,可以按照有效的順序將數據傳送給一個通道或存貯器設備。各種鍵接和指針都得將不再需要,并且執行多通譯碼。另外,對于一通譯碼來講,可以保持到與每個有效級相關的數據的指針。
在某些應用中,不可能使用某些有效級。例如,一個16比特的壓縮器可以被用于一個12比特的醫學圖象,這樣,與比特平面15…12相對應的有效級將不被使用。在具有大頁和很多未使用有效級的情況下,由于不必將存貯器分配給它們,所以(當該系統事先不知道某些級未被使用時)將造成存貯器的浪費。另外一種解決這個存貯器浪費的方法是使用一個小的存貯器(或寄存器)去保持與每個有效級相關的計數。該計數將對在任何其它判定發生以前發生的“無效”判定的數量進行跟蹤。相對于由未被使用有效級所使用的存貯器,存貯這些計數所需的存貯器必須被折衷選擇。
把數據從兩端寫入到每一頁的能力可被用于更好地利用在系統中可以獲得的存貯器總量。當所有的頁都被進行了分配時,在末端處具有足夠自由空間的任一頁被可以被分配以從其末端開始加以應用。對于保持跟蹤能夠滿足兩頁數據的存貯單元的容量來講,使用一頁兩未端的能力必須平衡。注意,這不同于數據類型之一是無效的并應簡單地加以重寫的情況。
改進在一個實施例中,本發明提供了一種使用較小存貯緩沖器的無損耗壓縮。本發明能夠保留很多不同的應用和設備環境。下面描述的技術所完成的各種特性可以使本發明的系統對于不同的應用和目標設備變得更加靈活。注意,對于本發明來講,不必在編碼時對分解率、象素深度、隨機存取和量化等作出選擇。
數據排列關于數據排列,就利用本發明的系統對圖象和系數數據進行排列方面可有一定數量的選擇。如在下面將要詳細描述的,這種選擇包括(不作為對本發明的限制)編碼單元的拼接、解壓級的數量、子波變換濾波器的選擇以及系數的校準。照此,這些中的每一個都應當是用戶或系統設計者控制的參數。
如上所述,一個參數可以是編碼單元的拼裝。根據本發明的樹來規定所述編碼單元的高度和寬度。對于隨機存取而言,與每個編碼單元有關的編碼數據的起點可由代碼流中的指針或標記符或標題中的指針來指定。這將允許對不是圖象寬度的方框進行存取。
另外一個可以被控制的參數是解壓級的數量。根據較多的解壓級數可以導致較好壓縮這樣一個事實,改變解壓級的數量就是改變了壓縮性能。注意,當較多的級需要較多的行緩沖器時,解壓級數的變化也會影響存貯器的要求。對于企圖達到低于全分辨率的分辨率來講,可能需要較多的級。例如,如果原始圖象是2000dpi,那么就需要5級解壓去實現的62dpi。這允許在沒有解壓和子取樣的情況下在一個監視器上進行接近實際尺寸的將被顯示的高分辨率掃描。
用于在每一級中水平和垂直通過的子波變換濾波器的類型也是不同的。這允許不同的存貯器要求和壓縮性能。注意,系數的尺寸不隨級數的增加而增加。另外,由于子波變換是一個順序N變換,并且當級數增加時只有少量的數據被變換,所以,多于較多級來講只有少量的計算量。
用于嵌入代碼流的目標設備對于一個特定的壓縮代碼流來講,可能有很多應用目標。可以指望有這樣一個代碼流,它可以利用較低的分辨率和全象素深度被傳送給監視器,還可以指望有這樣一個指針,它具有全分辨率和較低的象素深度,另外,可以指望一個具有有限通道的固定速率實時設備或固定尺寸的有限存貯器設備。可能需要相同的代碼流以保留以有這些需要。圖34概括地示出了一個單一應用可以服務的相關設備特性。
變換成譯碼代碼流分析程序編碼和解碼器具有足夠速度并具有足夠帶寬的本發明的系統能夠從解壓后的圖象中提取所需的數據。另外,編碼器可以建立一個供上述設備中一個設備使用的代碼流。在編碼器處,一個圖象可被以傳統方式進行量化或下取樣。
但是,本發明的優點在于對于上述在一設備來講,不必解壓就可以在變換和解碼之前建立起一個可被分析的代碼流。這種分析程序示于圖35A和B。參看圖35A,分析程度方框3501接收無損耗比特流量并產生有損耗比特流。參看圖35B,分析程序方框3502接收有損耗比特流,并產生另一個有損耗比特流。但是,圖35B所示輸出和輸入之間的關系表明本發明具有等冪關系,這在后面祥要祥述。注意,在分析程序方框3501和3502的情況下,作為輸入所接收的數據比特速率大于正在被輸出的數據比特速率。
低分辨率、高象素深度的嵌入目標如果一個目標是一個低分辨率、高象素深度的嵌入目標,那么這種應用假設該目標設備所具有的空間分辨率低于可以獲得但需要全象素深度的目標設備。監視器是低分辨率、高象素深度嵌入目標的例子。使用圖24A所示的代碼流,在需要時一比特平面被譯碼以用作較高級系數。這要求分析程序樣每一個比特平面截短。為協助該分析程序,每個編碼單元的每個比特平面都具有表明可以發生截短的位置的標記符或指針。在這種實施例中,如果需要一個以上的目標分辨率,那么就需要多個標記符或指針。比特平面被進行單獨編碼,所以,熵編碼器可以被復位以用于下一個比特平面。
另一種途徑是嵌入諸如圖24B所示的不同數據。參看圖24B,每個編碼單元內的目標分辨率系數在剩余高分辨率系數之前被首先編碼。在這種情況下,每個編碼單元僅需要一個截斷且熵編碼器不再需復位。標記符或指針可以表示所希望的截斷點。
高分辨率、低象素深度嵌入目標如果一個目標是一個高分辨率、低象素深度的嵌入目標,那么這個應用假定該目標設備需要可以獲得的全部分辨率,特別是它不能使用全象素深度。高分辨率、低象素深度嵌入目標的例子包括低檔打印機和標準的監視器(當圖象是高于每個平面8比特時)。圖24A所示的代碼流是按著這個順序嵌入的、每個編碼單元在正確數量比特平面的一個點處被截斷,并根據量化系數執行變換。在系數深度和象素深度之間具有直接的關系。標記符或指針可以表示所希望的截斷點。
另外,如果代碼流被如圖24B所示的嵌入,那么就要使用兩個標記符或指針去表示截斷,一個用于表示低分辨率比特平面,一個用于表示高分辨率比特平面。兩組比特平面被獨立編碼的允許熵編碼器被復位。
另一種辦法就是為根據低分辨率、高象素深度嵌入目標所述的對部份或所有低分辨率系數進行解碼和對來自高分辨率系數的某些可能的數據進行介碼。然后如下所述地執行插值子波變換。
固定速率嵌入目標如果該目標是一個固定速率嵌入目標,這個應用假設在使用約束通道的同時,必需保持實時恒定象素輸出。在這種情況下,在適當的時刻(最小壓縮速率)就會局部地具有某個最大代碼流數據速率。為了實現這個目的,首先根據在目標設備中可以得到的緩沖器的數量選擇編碼單元。這規定了一個局部區域,在此區域上可以實現平均壓縮速率。然后具有多于允許數據的每一編碼單元被截斷。
注意,如果代碼流數據速率不超過最大通道代寬,那么圖象被無損耗的復原。這并不適用于任一其它固定速率系統。
固定尺寸嵌入目標如果該目標是一個固定尺寸嵌入目標,那么這個應用假設壓縮圖象數據可以獲得固定尺寸的幀緩沖器。與固定速率應用不同,這需要在整個圖象上、而不是局部上平均的最小壓縮速率。當然,這是可以使用固定速率方法,但所使用的平均這個概念是整體而不是局部的,由此可以得到更好的比特分配和圖象質量。
在含有整個圖象的編碼單元中,截斷緩沖器的過溢數據是不重要的。如果編碼單元少于整個圖象并且所有的編碼單元都被截短成相同數量的比特,那么就不能保證這個截斷唯一地刪除了最不重要的級。一個簡單的方法就是在記錄時間(或后邊的分析時間)處記錄下編碼比特的數量,每一個重要的級都將這些數量分配給與每一編碼單元、全局編址首部或二者有關的代碼流。該記錄可使用一簡單的計數器進行。這些數量被記錄在標題段并能被用于決定在變換或存貯時如何去截斷每一個編碼單元。標題含有一個重要級和它的相應比特數量。標題還可以包含與每個包含在所述代碼流中的編碼單元相關的這個信息。當決定在什么地方截斷時,在每個編碼單元上執行的效果是相同的。例如,如果由于存貯器限制,它決定丟棄一個或1/2個重要級,那么來自每個編碼單元的一個或1/2重要級將被丟棄。這就允許以唯一的方式在編碼單元的兩端執行截斷。
在編碼時間實現固定尺寸壓縮的圖象。存貯器被合成用于多個重要級的多個段。如果存貯器將要過溢,那么利用較重要的數據重寫不必太重要的數據。
注意,如果壓縮數據沒有溢出存貯緩沖器,那么將無損耗地復原所述圖象。這不同于其它任何固定尺寸系統。
利用子波變換插入子波可被用于將圖象插入到較高的分辨率中。和雙三次樣條提術(bi-Cubic Speie)相比較其結果是相當明顯的。如果壓縮數據已處于子波系數的形式,那么,與插入相關的有效附加計算少于雙三次樣條。
可以獲得N級所有系數都被解壓的圖象。通過填入零或某些其它的方法建立一個新的最低有效級,然后執行N+1級子波重新,可以獲得原始圖象2∶1插入方案的一個新圖象。
這種方法也可被該系統所使用,在該系統中,有多個目標設備,用于嵌入代碼流,特別是用于高分辨率,低象素深度的目標設備。編碼單元被截短,因此僅具有低分辨率系數(或僅具有低分辨率系數或少數幾個比特的某些或全部高分辨率系數)。該系數被裝入較高分辨率并執行重建。
使用通道在一個數據在通道內傳送而不是存貯在存貯器中并且使用存貯器固定尺寸頁(但每個有效級僅需要一頁)的系統中,當存貯器的頁是滿的時,數據在通道內被傳送,并且數據一旦被傳送,存貯器單元就可被重新使用。在某些應用中,存貯器的頁尺寸可以是通道中使用的數據信息包的尺寸,也可以是信息包的尺寸的倍數。
在某些通信系統中,例如在ATM(異步傳輸模式)的通信系統中,可以將優先權指定給信息包。ATM具有兩個優先級主要和次要。如果可以獲得足夠的帶寬,僅傳送次要信息包。一個閥值可被用于確定哪一個有效級是主要的,哪個是次要的。另外一種方法是使用一個位于解碼器內的閾值不去傳送其有效級低于該閾值的有效級。
由此,本發明存貯管理器的一個實施例控制在固定尺寸存貯器內壓縮數據的存貯。即存貯管理器將壓縮數據分成不重要程度的級。當存貯器被充滿時,利用比較重要的數據去覆蓋不太重要的數據。
為了管理使用有限量緩沖存貯器(例如,固定速率)的通道,在本發明的一個實施例中,如果可以獲得足夠的帶寬,所有的數據都將被傳送,否則丟掉不太重要的數據并僅傳送比較重要的數據。
圖30示出了一個使用通道管理器的系統。參看圖30,子波變換3001產生多個系數。這些系數承受上下文模型3002的處理。上下文模型3002被耦合到包括緩沖存儲器的通道管理器3003。通道管理器3003被耦合到有限帶寬通道3004。
通道管理器3003控制數據向通道3004輸出的速度。當其緩沖存貯器接收到數據時,通道管理器3003確定數據量是否大于通道3004的帶寬。如果該數據量不大于所述帶寬,則通道管理器3003輸出所有的數據。另一方面,若緩沖存貯器接收的數據量大于所述通道帶寬,那么通道管理器3003丟掉其緩沖存貯器內的信息,從而與通道3004的帶寬相匹配。
通道3004將它的帶寬表示給通道管理器3003。在另一個實施例中,通道管理器3003可以根據通過通道3004傳送預定數據單元(例如信息包)時占據通道3004的時間量來動態地確定通道3004的帶寬。即,如果需要,該帶寬可作動態處理。
在一個實施例中,通道管理器3003基于被分成多個塊(taile)(或頻帶)的一個圖進行工作。即和其中分塊(tiling)和重要性稍微相互有些獨立的固定尺寸存貯管理器相比較,這是一個“在重要程度上塊優先”的方案。每個塊被單獨編碼,并被分成重要級和固定尺寸頁。因此,與每個塊相關的所有編碼數據都被一起分組。每個塊中的編碼數據都被加有重要級的標記。
在一個實施例中,通道管理器3403中的緩沖存貯器是通道信息包尺寸的至少兩倍(或約三倍)并且對于一個塊來講,該倍數(可能是4倍)大于所期望壓縮數據的尺寸。
緩沖存儲器的固定的最大量被指定給一個塊。該最大量與該通道的帶寬相匹配。緩沖存貯器被分成固定尺寸段,并在需要時加以分配。若存貯器占用達到了能夠允許的最大值,這些段如在固定尺寸存貯器系統中的管理一樣被重新指定。
圖31示出了緩沖存儲器占用的一個例子。參看圖31,環形緩沖存儲器具有多個被分成用于通道輸入/輸出的多個固定尺寸信息包3102的固定尺寸段3101。如所示,不同的數據塊可以占用存貯器的相同數據色。在一個實施例中,不同的塊表示不同的重要級。當使用緩沖器空間的信息包尺寸量時,通道管理器3103將輸出數據的上下文模型指示給通道3104(圖30)。如所示,塊N-2和塊N-1的一部份將作為當前信息包而被輸出。由此,存貯器的信息包尺寸量被分配和保存,以和通道的帶寬相匹配。
若緩沖器沒有被充滿,多余的存貯器可被用于未來的塊、在一個實施例中,為了在對于一個與下一信息組相對的壓縮區域來講是很困難的起點處避免明顯的塊邊界,下一個塊僅使用了剩余存貯器的某些部份(1/2,1/3等)。
在數據只能在某個時間周期內進行傳送的場合可以使用本發明的通道管理器。使用這種通道管理器,由于數據是在其重要性的基礎上被嵌入的,數據傳送是在考慮到復雜性的時間周期內發生的。
通道管理器的另一實施例本發明通道管理器的一個目的就是要使用最小存貯器。在一個實施例中,通道管理器不包含緩沖存儲器,下述內容可被使用與每個編碼單元相關的,與每個比特平面相關的,與每個頻率相關的,與每個空間單元相關的。
在一個實施例中,在每個頻帶的起點,編碼器被復位(或被置成公知狀態)。在一個實施例中,如果需要減少頻帶存貯器,那么該頻帶包括與四級介壓相關的16行。
圖32示出了使用上述方法的比特流。參看圖32,比特流被分成作為通道信息包的固定尺寸段,盤扇區等是用于該通道的緩沖器的適當量。注意,該判定可以不多于編碼期間的邏輯判定。如果需要,編碼器可以不使用緩沖而輸出。每個固定尺寸段包括該段中最重要數據的一個指示。
圖33示出了一個段的結構。參看圖33,與每個段相關的比特位包括,編碼數據3301,運行指針或ID3302以及該段中最重要數據3303。在一個實施例中,比特段3303包括2到5個比特。如果最重要級為0(最重要的一個),那么,緊跟在該段最后M比特的一個指針,它告訴級0的數據在該段的哪個位置開始。注意,數據的第一段可能都是編碼數據,因而就不再需要額外的開銷。
類似于在JPEG標準中所使用的,可以利用再開始標記來識別與每個頻帶相關的起點。但是,所使用的標記是那些在編碼期間最不經常發生的符號。
現在再來考慮圖31。假設僅對那些重要級(恐怕僅是最重要級)進行介壓。介壓從第一段開始。對于第二段,檢查“在段中最重要數據的級”并且恐怕在該段中包括的最重要級低于正在被介壓的級的整個段都可以被跳過。對于第三段,指針被用于獲得頻帶2的起點,并可以開始對頻帶2進行介壓。
注意,為了保證能夠獲得該段中所有的最有效數據,可以要求對整個段進行介壓。特別是當一個以上的頻帶落入在該段之中的時候。
通過有選擇地僅對預定數量的有效頻帶進行介壓,可以獲得一個予展圖象。當數據處于嵌入形式并需要無損耗數據的有損耗版本時,這可能是個優點。
根據所要求的存取和量化可能性以及對整個頻帶解壓所需時間是否是重要的,在該段末端處可選指針或ID包含·用于固定尺寸存貯器管理的下一段指針。
·與該段有關的一個ID或被包含頻帶的ID(支持通道量化,例如用于表示段2是否被忽略)。
·與該段包含數據相關的不同頻帶的數量(或者用于表示含有多于兩個段的頻帶的至少一個比特1。
與512×16象素的頻帶相關的附加開銷的例子是具有2∶1無損耗壓縮的8比特圖象以及512個字節的段尺寸。注意,一個頻帶通常被壓縮成8個段。對于重要級來講,使用5個比特特征。假設指針處于字節邊界上,則使用9比特指針。因此,共有占總數0.15%的49個加比特時(32K壓縮位+49)。
近似無損耗近似無損耗的一個概念就是在重建象素值的過程中以絕對誤差為基礎。因此,在具有絕對誤差為1的近似無損耗壓縮圖象中,可以保證在該介壓圖象中的象素值與原始值的差異不會多于象素值的一個單元。這是一個與圖象的象素深度和動態范圍無關的絕對限定。在某些適當的假設之下,對這樣一個系統明顯的和最佳的是保持壓縮/介壓部份的無損耗并使用一個預處理和后處理方案去實現近似無損耗在這個執行方案中采取了這種方法。
通過把每個2e+1連續整數變換成它們的中值整數這樣一種量化方法來實現具有絕對誤差為e的近似無損耗圖象。假如,誤差等于3,象素值被量化,0到6被變換成3,7到13被變換到10等等。量化圖象本身不適宜以變換為基礎的系統。因此,它被逐一地(無損耗)變換成被稱之為淺圖象的較低動態范圍或深度的圖象、這是通過把所述中值(代表值)變換成保持所述順序的連續整數進行的。數學上給出的象素值X被量化成 把代表值逐一變換成淺圖象值是 把線圖象值變換成代表值的相反逐一變換是P-1(x)=e·(x+1)
在所淺圖象值(p(x))進行變換之前的量化(q(x))是預處理操作,這個操作進行無損耗壓縮。從淺圖象值到代表值的變換形成了后處理操作,該操作遵循無損耗解壓。
可以使用變換域量化。通過多級變換,很多系數會受到峰值誤差擴散的影響,很容易確定峰值誤差對于那些沒有“孩子”的高通濾波系數的影響。
下面來考慮一個將要利用最大峰值誤差±2E進行編碼的一維信號。它可以通過把最細微的高通系數量化成±2E來實現。對于兩維信號來講,由于應用于兩個高通濾波器,所以,最細微的HH系數可以被量化成±4E。
使用輸入圖象量化的另一方面是控制對熵編碼器的判定。一個例子如下對于每個系數來講,如果把該系數設置為零不會使在受那個系數影響的任一象素中的誤差超過最大誤差,則該系數被設置為零。在某些執行過程中,只有一些特定的系數,恐怕只有那些沒有“子”的AC系數才會被進行測試。系數可以被認為具有其中每次只考慮一個的渴望(greedy)策略。另外一些策略考慮把系數分成多個小組且將該組最大可能的子集選擇為零。
如上所述,通過嵌入功能實現量化并使其最佳化,從而使其能根據諸如RMSE的量化量度標準使其性能最佳。在一個實施例中,執行各種系數的量化,以根據人類可視系統改進其結果。在這種情況下,需要對嵌入方案作少量改動。例如,通過乘以因數2使系數移位從而改變他們之間的關系的(或表示在諸如灰度碼的不同類型計數系統中的數量。
本發明的壓縮子波系統在圖象編輯期間是非常有用的。在現有技術中,針對全分辨率打印圖象的應用圖象處理功能是非常耗時的并使交互處理非常困難。
在一個實施例中,如果一個圖象編輯系統保存了一些被壓縮的塊,那么它將非常迅速地對標度表示執行一個操作(非常低通)以使用戶進行評價。由于只需要根據所顯示的象素進行操作,所以這可以很迅速地加以執行。由于實際上的全分辨率象素影響輸出,所以這只是一個近似的最后結果。因此,用戶應迅速將攝像機移到該圖象的各個部份(恐怕是某些電文)。如果用戶這樣作了,那么圖象編輯系統將施加一個操作給圖象的那一部份。為便于此,要存貯一個樹,該樹包含有壓縮系數和信息,將對該信息進行處理操作且該信息還將被使用。
在一個實施例中,重新規定重要級以允許在規定的窗口內執行無損耗壓縮,而有損耗壓縮用于其余的圖象。所述窗口是由用戶固定或選擇的。應當有不同重要程度的多個窗口。在一個實施例中,盡管即使是對于兩象素級也可能具有更好的具體值,但所述窗口只有48×48個字區那么大。
有關該點的可能用途是衛星成象。其中,衛星使用數據方面的無損耗窗口,所以利用JPEG人工制品不會使統計研究陷入困難,但有損耗壓縮允許比利用無損耗壓縮所能達到的更寬的領域。
在一個實施例中,用戶在一個圖象上給出一個任意的邏輯框,并規定在該邏輯框內數據的相對重要程度,一旦這個邏輯框被繪出,軟件就增加該邏輯框的尺寸,使其增大到滿足所需約束的最小尺寸,且該最小尺寸包含用戶邏輯框。文件標題將包含有關所使用邏輯框的信息和重復程度的信息。當開始進行編碼和譯碼時,編碼器和譯碼器將對重要邏輯框中的系數提供更多的分辨率。對于衛星成像的情況,重要窗口可能要被預先規定。
冪等運算對于無損耗壓縮器來講,通常一個重要的運算是DCDCI=DCI,其中I是圖象,C是壓縮運算指令,D是介壓運算指令。在本發明中,當數據被壓縮成X比特而后被介壓時,它們將能夠被重新壓縮成X比特并且有原來的X比特。對于嵌入系統存在有一個非常好的冪等方案。在一個實施例中,一個被壓縮成X比特而后被介壓再被重新壓縮成Y比特(Y<X)的圖象和該原始圖象被壓縮成Y比特相同。
由于壓縮和處理使圖象從原始圖象漂移,可以這一點是非常重要的。如果壓縮器是冪等的,那么,多個有損耗壓縮的介壓周期就不會影響數據。在本發明中,有多少次數據以相同的速率被壓縮和介壓是無關緊要的。另外,對需要進一步量化的分析程序的有損耗輸入所產生的結果與使用無損耗輸入的結果相同。因此本發明包括以變換為基礎的等冪系統,該系統包括一個子波變換,一個上下文模型、一個熵編碼器,所以,系數被按順序描述和存貯,因此,刪除信息不能改變與當前系數有關的描述。
應用本發明具有一定數量的用途,其中的一些作為例子在下面描述。特別是一些具有高分辨率和深象素的尖端應用和某些人工所不能及的應用使用本發明。本發明可以在具有更加有限的帶寬、數據存貯和顯示能力的應用也可以使用相同壓縮數據的同時,使尖端應用保持高質量環境中的最高質量。這是一種獨立存在、通常為諸如粗略瀏覽(web browser)等現代成像應用所需的設備。
對于醫學成象來講,本發明在深象素圖象(每象素10個比特到16個比特)方面的優良的無損耗壓縮性能是很理想的。除無損耗壓縮以外,本發明是一個純的有損耗壓縮器,沒有如以信息組為基礎的壓縮器那樣很多的人工仿真。使用本發明得到的有損耗人工仿真往往沿著形狀的緣,在這里,它們經常被人關于視系統的可視掩膜現象掩蔽起來。
本發明可以被用于予壓(pre-press)生產中,在這種生產中,圖象往往具有非常高的分辨率和很高的象素深度。利用本發明的角錐解壓,一個予壓操作員很容易根據圖象的較低分辨率有損耗方案(在監視器上)執行圖象的處理操作。當滿足某些條件時一可以根據無損耗方案執行某些操作。
本發明還應用于電報傳真中,其中沒有壓縮情況下需要的變換時間太長。本發明允許利用不同的空間和象素分辨率從傳真機中輸出非常好的圖象。由于在這種情況下傳送時間是非常重要的,所以,本發明的插入特性是很有用的。
本發明可以用于需要壓縮的圖象檔案系統中,以特別用于增加存貯容量。由于該系統可以被在帶寬、存貯及顯示方面具有不同資源的系統所訪問,所以本發明的設備單獨輸出是很有用的。另外,本發明的順序傳送能力對于瀏覽是很有用的。最后,利用本發明可以提供圖象擋案系統中輸出設備所需的無損耗壓縮。
本發明無損耗或高質量有損耗數據流中分級順序特性使其能夠很理想地用于worl wide web/特別是用于設備獨立性、順序傳送、高質量和公開標準必不可少的場合。
本發明可用于衛星圖象,特別是那些深象素高分辨率的圖象。另外,衛星成像具有有限帶寬的通道。本發明允許靈活性,并且當利用它的順序傳送質量時,它可以允許人去瀏覽和預先觀看。
如果該有用頻帶溢出則諸如ATM網絡的“固定速率”的被限的帶寬應用需要減少數據的方式。但是,如果存在有足夠的帶寬(或壓縮是足夠地高)時則不存在質量惡化。反之,如果該存貯器已裝滿則在計算機和其它成象裝置中所存貯的如象有限存貯器幀所應用的“固定尺寸”需要減少數據的方式。再一次,對于可無損耗地被壓縮進入正確存貯器數的圖象將沒有惡化。
本發明的被嵌入的代碼流適用于這種應用。對于一有損耗圖象的傳送或存貯來說,該嵌入含蓄的允許該代碼流被調整或被舍位。如果無需調整或舍位,則該圖象達到無損耗。
總之,本發明提供了一種單一的連續色調圖象壓縮系統。本發明的系統是具有相同代碼流的無損耗和有損耗的系統并且使用的量化被嵌入(不言而諭是通過代碼流)。該系統還被角錐化、被累加、提供一用于內插的裝置、和被簡化的實施。因而,本發明提供了一種多方面均適應的“獨立裝置”壓縮系統。
被統一的有損耗和無損耗的系統是非常有用的系統。不僅是相同系統能夠具有目前技術水平的有損耗和無損耗的壓縮性能,而且相同的代碼也同樣如此。在編碼、代碼流的存貯或傳送期間、或譯碼時,該應用可判定保持一圖象無損耗代碼或將它舍位成為一有損耗文本。
通過本發明所提供的有損耗壓縮是通過嵌入量化來實現的。也就是該代碼流包括了該量化。該實際的量化(或視覺的重要)水平可以是該譯碼器或該傳送通道的函數而未必是該編碼器的函數。如果該帶寬、存貯、和顯示手段允許時,該圖象被無損耗地復原。反之,該圖象僅需要和由更多限制手段一樣的量化。
在本發明中所使用的子波被角錐化,其中通過該圖象的兩個系數來執行分解而不需不同的圖象來執行。這比分層分解更為特殊。對于用于在低分辨裝置瀏覽或顯示圖象的必須略圖的應用來說,本發明的角錐本質是理想的。
在本發明中使用的嵌入是累進的,特別是通過比特平面,即跟隨出徂人比特的MSB累進。該空間和子波范圍二者均可被累加地壓縮,雖然本發明的累加上具體為在子波范圍內。對于諸如打印之類的具有空間分辨但較低象素分辨的應用來說,在本發明中該比特的累加排序是理想的。具有相同代碼流的這些特征是有用的。
本發明的該結構的一個優點是它提供了一用于插入的計算地有效模式。如果要求較高的分辨,則來自該有用子波系數的高通過系數可被插入并可執行本發明的反向子波。這種方法與雙重立方仿樣(bi-cubic spline)可直觀的競爭但這小于在本發明的變換情況下的計算的強度。
本發明等冪的意思是一圖象可以一有損耗形式被解壓并重新壓縮為相同的代碼流。這個優點允許在具有瀏覽、濾除、或編輯的應用中多次壓縮和解壓循環。
本發明涉及在軟件和硬件二方面的簡單實施。該子波變換可用四種加/減操作計算機和用于每個高通、低通系數對的某些位移。用一簡單的“上下文模式”和一二進制“熵編碼器”執行該嵌入和編碼。該熵編碼器可用有限狀態機構或并行編碼器來實施。
雖然在閱讀了前面的說明之后對于本領域的技術人員來說對本發明的許多變化和變型毫不懷疑地是顯而易見的,但也很清楚的是由實例所表示和描述的特定實施例并不意味著僅區限于這種方式。因此,最佳實施例的詳細說明并不意味著對該權利要求范圍的限定,權利要求中所述的僅是有關本發明所必需的特征。
權利要求
1.一種使用一嵌入代碼流的方法,其特征在于,包括識別一目標裝置去接收在一嵌入代碼流中的數據;對每個比特平面分析以給該目標裝置提供數據,所述分析步驟包括為了維持該目標裝置數據而在該嵌入代碼流中舍位每一比特平面的步驟。
2.如權利要求1的方法,其特征在于,每個比特平面基于在每個編碼單元中表示舍位可能出現的位置的一指示而被舍位。
3.如權利要求2的方法,其特征在于,該指示包括一標識符。
4.如權利要求2的方法,其特征在于,該指示包括一指針。
5.如權利要求1的方法,其特征在于,基于指明的每個編碼單元中指明舍位可能出現的位置的多個指示中的一個來對每個比特平面舍位,所述舍位步驟進一步包括基于該目標裝置選擇多個指示中的一個的步驟。
6.如權利要求1的方法,其特征在于,舍位步驟包括對來自嵌入代碼流的在每個編碼單元中被單獨地編碼的目標分辨力系數舍位。
7.如權利要求1的方法,其特征在于,該目標裝置包括一低分辨、高象素深度嵌入目標以便在需要實現該目標裝置的全象素深度和低空間分辨時作為若干較高級系數的譯碼的評碼步驟。
8.如權利要求1的方法,其特征在于,該目標裝置包括一高分辨力、低象素深度嵌入目標和在一比特平面數時舍位每個編碼單元并且逆子波變換每個編碼單元的未舍位數據以完成該目標裝置的低象素深度和高空間分辨。
9.如權利要求1的方法,其特征在于,進一步包括步驟基于在該目標裝置中的有用緩沖的數而選擇編碼單元;和用多于有用緩沖的數據舍位每個編碼單元。
10.如權利要求1的方法,其特征在于,舍位步驟進一步包括有步驟檢測舍位每個編碼單元的均勻總數;舍位每個編碼單元中的至少一最重要級的一部分。
11.一種裝置,其特征在于,包括一個子波變換器,用于產生子波系數;一個模塊,用于將來自所述變換器的子波系數模擬為產生編碼數據過程的一部分;和一個通道管理器,用于控制將編碼數據傳輸到一個有限帶寬通道的傳輸速度,所述編碼數據根據重要性而被分類。
12.如權利要求11所述的裝置,其特征在于,所述子波變換器包括一個可逆子波變換器。
13.如權利要求11所述的裝置,其特征在于,所述通道管理器根據重要性而將所述編碼數據分類。
14.如權利要求13所述的裝置,其特征在于,所述通道管理器采用一個閾值來決定所述編碼數據各部分的重要性。
15.如權利要求14所述的裝置,其特征在于,所述通道管理器包括一個存儲器,用于存儲編碼數據,并在該存儲器存滿時重寫重要性較低的數據。
16.如權利要求14所述的裝置,其特征在于,所述通道管理器防止被分類為重要性較低的數據的傳送,所述重要性根據一個閾值而被決定。
17.如權利要求14所述的裝置,其特征在于,所述通道管理器在帶寬可利用時將全部編碼數據傳輸到有限帶寬通道上,并在帶寬不可利用時放棄重要性較低的數據,從而使重要性較高的數據可被傳輸。
18.如權利要求11所述的裝置,其特征在于,所述有限帶寬通道對所述通道管理器指出其帶寬。
19.如權利要求11所述的裝置,其特征在于,所述通道管理器根據通過通道而傳輸一個預定數據包所消耗的時間量來決定所述有限帶寬通道的帶寬。
20.如權利要求11所述的裝置,其特征在于,所述編碼數據中的數據塊根據重要性而被分類。
21.一種方法,其特征在于,包括使用子波變換器產生子波系數;將來自所述子波變換器的子波系數分為模塊作為產生編碼數據過程的一部分;和控制將編碼數據傳輸到一個有限帶寬通道的傳輸速度,所述編碼數據根據重要性而被分類。
22.如權利要求21所述的方法,其特征在于,所述子波變換器包括一個可逆子波變換器。
23.如權利要求21所述的方法,其特征在于,所述通道管理器根據重要性而將所述編碼數據分類。
24.如權利要求23所述的方法,其特征在于,還包括采用一個閾值來決定所述編碼數據各部分的重要性。
25.如權利要求24所述的方法,其特征在于,還包括將編碼數據存儲在一個存儲器中,并在該存儲器存滿時重寫重要性較低的數據。
26.如權利要求24所述的方法,其特征在于,所述控制將編碼數據傳輸到一個有限帶寬通道的傳輸速度的步驟包括防止被分類為重要性較低的數據的傳送,所述重要性根據一個閾值而被決定。
27.如權利要求24所述的方法,其特征在于,所述控制將編碼數據傳輸到一個有限帶寬通道的傳輸速度的步驟包括在帶寬可利用時將全部編碼數據傳輸到有限帶寬通道上,并在帶寬不可利用時放棄重要性較低的數據,從而使重要性較高的數據可被傳輸。
28.如權利要求21所述的方法,其特征在于,所述有限帶寬通道對通道管理器指出其帶寬。
29.如權利要求21所述的方法,其特征在于,還包括根據通過通道而傳輸一個預定數據包所消耗的時間量來動態地決定所述有限帶寬通道的帶寬。
30.如權利要求21所述的方法,其特征在于,所述編碼數據中的數據塊根據重要性而被分類。
全文摘要
一種以用于在一通道上傳送的壓縮數據流對輸入數據進行編碼的編碼器,其特征在于,所述熵編碼器包括一用來將輸入數據變換為多個系數的可逆子波濾波器;連接到該可逆子波濾波器用來在諸如所產生的一比特流之類的多個系數上執行嵌入編碼的一嵌入編碼器;連接到該嵌入編碼器用來在該比特流上執行熵編碼以產生編碼數據的一熵編碼器;一用來控制在一固定尺寸存貯器中存貯的被壓縮數據的通道管理器,該存貯器管理器將被壓縮數據分成多個重要級,并且進一步其中該通道管理器傳送的所有充分的帶寬里的數據是有用數據,否則較少或重要數據被丟棄并且僅傳送較重要的數據。
文檔編號H04N7/24GK1620142SQ20041007898
公開日2005年5月25日 申請日期1996年7月2日 優先權日1995年6月30日
發明者A·贊迪, E·L·許瓦茲, M·J·戈米什, M·波利克 申請人:株式會社理光