SPIHT算法在醫(yī)學(xué)圖像無失真壓縮中的應(yīng)用
1 引言
隨著社會的發(fā)展和醫(yī)療技術(shù)的進步,人們對身體健康的關(guān)心程度越來越高。醫(yī)學(xué)影像已經(jīng)不再是僅供醫(yī)生參考的信息而成為診斷疾病的重要依據(jù)。在網(wǎng)絡(luò)傳輸條件下的圖像壓縮編碼成為建立數(shù)字化醫(yī)院的關(guān)鍵技術(shù)。目前,二維圖像的壓縮標準有JPEG、GIF及采用了小波變換的JPEG2000等。醫(yī)學(xué)圖像具有特殊性,它一般不允許丟失有用的細節(jié)信息。傳統(tǒng)的DCT(Discrete Cosine Transform,離散余弦變換)和第一代小波在圖像變換后會產(chǎn)生浮點數(shù),因而必須對變換后的數(shù)據(jù)進行量化處理,這樣就會產(chǎn)生不同程度的失真??梢?,量化器的設(shè)計是決定圖像保真度的關(guān)鍵環(huán)節(jié)。由于第二代小波采用提升方法能夠?qū)崿F(xiàn)整數(shù)變換,因而能夠?qū)崿F(xiàn)圖像的無損壓縮,顯然,它是一種很適于醫(yī)學(xué)圖像的壓縮方法。
基于分層樹的集合劃分算法(Set Partitioning inHierarchical Trees,SPIHT)改進了內(nèi)嵌零樹編碼算法(EZW)。在對圖像進行小波變換后,它更有效地利用了不同尺度子帶重要系數(shù)間的相似性。它呈現(xiàn)出良好的特性:不依賴傅立葉變換而在空間域中構(gòu)造小波;較高的PSNR(Peak Signal Noise Ratio,峰值信噪比)保證了良好的重現(xiàn)圖像質(zhì)量;整數(shù)運算利于實現(xiàn)實時快速編解碼和網(wǎng)絡(luò)傳輸;圖像碼流的逐漸呈現(xiàn)便于用戶上網(wǎng)檢索感興趣的圖像。
SPIHT算法對圖像信息采用如下的編碼步驟。
首先,定義三個隊列:不顯著性系數(shù)隊列LIP,顯著性系數(shù)隊列LSP和不顯著性集合隊列LIS。
設(shè),O(i,j)表示節(jié)點(i,j)的直接節(jié)點的集合;D(i,j)表示節(jié)點(i,j)的子節(jié)點集合;L(i,j)表示子節(jié)點中排除直接節(jié)點后的集合。
在隊列中,每個元素由一個坐標唯一識別,它在LIP和LSP中代表孤立系數(shù)(無子節(jié)點的根節(jié)點),在LIS中代表第一類元素的D(i,j)或者第二類元素的L(i,j)。
對某個閾值T進行顯著性測試。將大于T的元素移入LSP,并在LIP隊列中移除該元素。對LIS也進行同樣的測試,將顯著的元素移入LSP,其他的再進行樹的分裂。
用類C++語言描述的SPIHT算法如下:
第一步,閾值T和三個隊列(LSP、LIS和LIP)初始化。
(2)if(x,y)是第二類元素,對L(i,j)進行顯著性測試
if(L(i,j))==1 all(k,l)∈O(i,j)作為第一類元素移入LIS,從LIS出隊。
第三步,比特傳輸/存儲。將LSP中的每個系數(shù)轉(zhuǎn)化成二進制傳輸/存儲。
第四步,閾值更新并轉(zhuǎn)至第二步:T/=2;gotostep2。
3 提升方案與第二代小波
提升方法構(gòu)造小波分為分裂、預(yù)測和更新三個步驟。
3.1 分裂(split)
將一原始信號序列Sj按偶數(shù)和奇數(shù)序號分成兩個較小的、互不相交的小波子集Sj-1和dj-1:
3.2 預(yù)測(predict)
由于數(shù)據(jù)間存在相關(guān)性,因而可以定義一個預(yù)測算子P,使dj-1=P(Sj-1),這樣可用相鄰的偶數(shù)序列來預(yù)測奇數(shù)序列。若用dj-1與P(Sj-1)的差值代替dj-1,則其數(shù)據(jù)量要比原始dj-1小得多。
最簡單的情況下,取兩個相鄰偶數(shù)序號所在數(shù)據(jù)的均值作為它們間奇數(shù)序號所在數(shù)據(jù)的預(yù)測值。即,
3.3 更新(update)
由于上述兩個過程一般不能保持原圖像中的某些整體性質(zhì)(如亮度),為此,我們要構(gòu)造一個U算子去更新Sj-1,使之保持原有數(shù)據(jù)集的某些特性。
4 編/解碼方案
本文中前端采用第二代小波(lifting wavelet),接著對小波系數(shù)采用SPIHT算法,然后,采用Amir Said的自適應(yīng)算術(shù)編碼。解碼是編碼的逆過程,包括與正向SPIHT對應(yīng)的三個步驟:恢復(fù)更新、恢復(fù)預(yù)測和合并(merge)。編/解碼方案如圖1所示。
如果前端利用第一代小波進行有損壓縮,可以取得更高的壓縮比。顯然,第二代小波變換對數(shù)據(jù)壓縮的高保真性與高壓縮比的要求是矛盾的。
5 實驗結(jié)果及結(jié)論
對上一編碼方案,我們分別對醫(yī)學(xué)圖像和Lena圖像進行了測試,碼率bbp采用bit/pixel。由于采用了無損壓縮方案,所以,表1中的三種不同編碼方法均有PSNR=∞。
從表1可以看出,在對標準測試圖像Lena進行編碼時性能差別不是很大,但由于一般的醫(yī)學(xué)圖像的邊緣存在大量的“零像素”,因此,在用SPIHT編碼時可以產(chǎn)生大量的“零樹”,大大減少了數(shù)據(jù)量。所以,在對醫(yī)學(xué)圖像進行壓縮時,更適合采用本文的方法。
進一步的分析表明,與目前廣為使用的JPEG相比較,本壓縮方案占用內(nèi)存小、編碼效率高且無馬賽克現(xiàn)象。在低碼率時,兩者間的差距更為明顯。如果該方案采用并行快速算法和硬件實現(xiàn),其實時性會進一步提高,所以,該醫(yī)學(xué)圖像壓縮方案有較好的應(yīng)用前景。
評論