龔正 沈建新
摘 要:DICOM圖像文件的儲存和傳輸一直是近代醫(yī)學圖像處理中一個比較熱門的研究話題,其中較好的解決方案就是對DICOM圖像進行壓縮處理。文中通過對DICOM文件的數(shù)據(jù)結構進行分析,將DICOM文件拆分成圖像數(shù)據(jù)部分和文本信息部分,然后采用9/7提升小波變換對拆分出來的DICOM圖像數(shù)據(jù)進行圖像變換,最后對變換后的小波系數(shù)進行SPIHT編碼完成DICOM圖像壓縮。主客觀對圖像的評價表明SPIHT算法在高壓縮比時仍能保證圖像較好的質量。該方法能夠對DICOM圖像的存儲和傳輸帶來便利也將產(chǎn)生一定的影響。
關鍵詞:醫(yī)學數(shù)字圖像通信協(xié)議標準;圖像壓縮;9/7提升小波變換;多級樹集合分裂排序
中圖分類號:TP391 文獻標識碼:A
1 引 言
影像儲存和通信系統(tǒng)(PACS,全稱Picture Archiving and Communication System)廣泛應用于我國醫(yī)院影像管理事業(yè)中[1]。PACS主要用來解決CT(計算機斷層掃描)、MRI(核磁共振)、US(超聲成像)等成像設備產(chǎn)生的圖像數(shù)據(jù)傳輸和儲存的問題。1985年ACR和NEMA聯(lián)合建立了醫(yī)學數(shù)字成像的DICOM(Digital Imaging and Communications in Medicine)標準[2]。DICOM文件的一個特點就是數(shù)據(jù)量巨大,其中圖像數(shù)據(jù)占90%以上并且圖像的數(shù)據(jù)量要比普通圖像要大得多[3]。文中對DICOM文件的數(shù)據(jù)結構進行了分析并結合現(xiàn)代圖像壓縮技術,在確保一定圖像質量的情況下,完成大壓縮比的DICOM圖像壓縮工作。
2 DICOM圖像壓縮原理
DICOM標準的數(shù)據(jù)結構部分中定義了DICOM如圖1所示的文件結構。DICOM圖像文件是由文件序言、首綴組成的頭文件部分和由多個數(shù)據(jù)元素組成的數(shù)據(jù)集部分構成[4],每個數(shù)據(jù)元素由標識符(Tag)、數(shù)據(jù)類型(VR)、數(shù)據(jù)長度(VL)和數(shù)據(jù)組成。DICOM圖像文件包含了許多圖像的附加信息,如設備信息、圖像所屬患者信息、圖像的窗位窗寬大小等,這些信息和圖像數(shù)據(jù)一起存放在各個數(shù)據(jù)元素中。DICOM數(shù)據(jù)字典對每個數(shù)據(jù)元素都分配了一個唯一的Tag,其中圖像數(shù)據(jù)的Tag為(7FE0,0010)[5]。對DICOM圖像壓縮的本質是將DICOM圖像文件中的文本數(shù)據(jù)和圖像數(shù)據(jù)分離出來并對DICOM文件中的圖像數(shù)據(jù)進行壓縮。在對DICOM圖像文件解碼的過程中,通過對圖像數(shù)據(jù)Tag的定位可以將DICOM文件中的圖像數(shù)據(jù)分離出來并轉換成適合圖像壓縮的BMP文件。
圖1 DICOM圖像文件結構
此時,DICOM文件的壓縮就變成了針對從DICOM文件中分離的出來的BMP文件進行壓縮處理,經(jīng)典圖像壓縮技術的一般步驟如圖2中所示。首先是對原始圖像進行變換,然后對變換系數(shù)進行量化編碼得到壓縮圖片文件,這時就可以方便快捷的對壓縮文件進行存儲或者傳輸。解碼器和編碼器是一個互逆的過程,通過解碼、去量化、反變換可得到壓縮重構的圖像文件。JPEG標準中使用的是DCT(離散余弦變換)變換,但由于DCT不能很好的處理它自身引起的方塊效應和在保證圖像質量的前提下不能達到更高的壓縮比等原因而逐漸被舍棄[6]。因離散小波變換具有優(yōu)良的時頻特性(能夠將低頻和高頻的信息進行分離)被JPEG2000標準所采納[7]。
3 圖像變換與編碼方法
3.1 9/7提升小波變換
小波理論的思想來自伸縮與平移變換,將滿足一定條件的小波基本函數(shù)Ψ(x)構造成形如(1)公式的構造函數(shù)。用尺度因子a將Ψ(x)做伸縮處理,小波函數(shù)圖像會隨a的變小而縮短,隨著a的變大而伸長;用b控制Ψ(x)水平移動。
小波變換(Wavelet Transform,簡寫WT)與FT(Fourier Transform)在某種程度上類似,其定義如公式(2)中所示。小波變換可以看成把一個信號(信號也可以看作一種函數(shù))表示為由多個或者無窮個經(jīng)過伸縮平移變換而得到的小波信號的疊加。信號作小波分解實際上相當于用具有選擇性的濾波器對信號進行濾波處理,它的要點就是對于平穩(wěn)變化的信息(對應于信號低頻部分)可以在大區(qū)域上查看;對于快速變化的信息(對應于信號的高頻部分)可以在小區(qū)域上放大查看。
對于圖像信號,可以抽象成二維離散函數(shù)F(x,y),二維離散函數(shù)的WT就可以通過一維離散行WT和一維離散列WT來實現(xiàn)二維離散一級WT,如圖3所示。圖像通過一維行WT就可以獲得行低頻(L)和行高頻(H)的小波系數(shù),再經(jīng)過一次一維列WT就可以將圖像的最低頻系數(shù)集中在左上角LL1處,最高頻系數(shù)集中在右下角HH1處,此時也就完成了圖像信號的一級WT。二級WT就是在原來變換的基礎上單獨對LL1處的信息進行一次一級WT,多級WT則以此類推就可得到。WT都必須用到了小波函數(shù),而對于二維離散函數(shù)的WT則是由小波基來完成。但由于這些小波構造多依賴于FT,構造過程繁雜且算法復雜占用較大內存。因此,1995年,Sweldens W.博士創(chuàng)造性地提出了在時域中采用lifting scheme方法構造小波函數(shù)的方法即第二代小波(second generation wavelet)構造方法[8]。這種構造小波方式與第一代小波不同,它不需要通過FT或者基于FT尺度伸縮,而是快速便捷的利用Split,Predict和Update等方法來完成對數(shù)字離散信號的小波變換。JEPG2000標準中采用了9/7提升小波和5/3小波提升小波來完成對圖像的變換[9]。在確保圖片質量的前提下,9/7提升小波變換獲得時頻特性更好的小波系數(shù),所以這里選用雙正交9/7提升小波。
9/7提升小波正變換也是分別通過小波行變換和小波列變換來完成小波變換的,小波行變換和小波列變換的公式相同都是分別通過四步提升步驟(預測1,更新1,預測2,更新2)和一個尺度變換來完成的。具體步驟如下:endprint
①分裂(split):For[-1≤n≤(N/2)+1] do: { s_0(2n±1)=x(2n±1); d_0(2n)=x(2n)};
②預測1(predict1):For[-1≤n≤(N/2)+1] do: d_1(2n)=d_0(2n)+[α(s_0(2n+1)+s_0(2n-1))];
③更新1(update1): For[0≤n≤(N/2)+1] do: s_1(2n-1)=s_0(2n-1)-[β(d_1(2n-2)+d_1(2n))];
④預測2(predict2): For[0≤n≤(N/2)] do: d_2(2n)=d_1(2n)-[γ(s_1(2n-1)+ s_1(2n+1))];
⑤更新2(update2): For[1≤n≤(N/2)] do: s_2(2n-1)=s_1(2n-1)-[δ(d_2(2n-2)+d_2(2n))];
⑥尺度變換: For[1≤n≤(N/2)] do:
L(2n-1)= ε s_2(2n-1);H(2n)=(1/ε) d_2(2n)
表中的相關系數(shù)α=-1.58613432, β=-0.05298011854,γ=0.8829110762,δ=0.443506822,ε=1.149604398,s_0和d_0表示原始像素值中的奇數(shù)部分與偶數(shù)部分。通過一級提升WT后得到了如圖1中LL1、LH1、HL1、HH1頻率高低不同的子帶。圖4所示,(a)為經(jīng)典Lena圖片,作為9/7提升小波變換的實驗圖片;(b)為Lena圖片經(jīng)過一級9/7提升小波變換而得到的分解圖。
3.2 SPIHT編碼算法
圖像經(jīng)WT后得到的的小波系數(shù)在各級子帶中存在樹狀構架,如圖5中所示。在這些小波樹中,相同空間位置和相同方向上的小波系數(shù)有很強的相似性,HH3中的小方格里的的小波系數(shù)可以看成是HH2在相應位置小方格里的小波系數(shù)的父系。零樹編碼思想就是將量化后為0的小波系數(shù)的所有子孫小波系數(shù)都歸為0,進而簡化小波編碼的過程。但是這種算法存在很大缺陷,因為并不
是父系小波系數(shù)為0的小波系數(shù)其子孫的小波系數(shù)都為0,僅僅通過零數(shù)編碼可能會導致圖像的失真比較嚴重。一種改進的方法是EWZ(嵌入零樹編碼)算法,它提出將每層小波變換設置一個閾值T(i),如果第i層的小波系數(shù)的絕對值大于該閾值,則認為這個小波系數(shù)的重要的,相反則認為該小波系數(shù)不重要。如果父系的小波系數(shù)為非重點小波系數(shù),而且它的全部子孫小波系數(shù)都相應的被判為非重點小波系數(shù),故此命名該父系小波系數(shù)是關于閾值T的零樹根,進而將該父系小波系數(shù)的全部子孫小波系數(shù)不不列入小波編碼的范圍。
由于EWZ編碼需要設置每層小波的閾值并且要搜索掃描每層小波系數(shù)絕對值小于閾值的所有后代,這樣就導致了計算量很大,編碼速度慢的后果。因此EWZ編碼還需要進一步的改進,在目前所有改進的算法中,多級樹集合分裂排序(Set Partitioning in Hierarchical Tree,簡寫SPIHT)算法是較為成功的一種[10]。
SPIHT算法的零樹構架中則認定LLN沒有子帶。SPIHT算法中劃分了兩種零樹,第一種零樹有根系數(shù)構成,并且該根系數(shù)在給定位平面中它的全部子孫都為0;第二種零樹與第一種零樹相似,不同之處在于它排除了根系數(shù)的四個子帶。SPIHT算法將這兩種零樹類型分別標記為類型A和B不重要集合,SPIHT算法還規(guī)定了三個有序表用來存放重要信息,分別是LSP(顯著系數(shù)表)、LIP(不顯著系數(shù)表)、LIS(不顯著子集表)。三個表中的元素都采用(x,y)坐標來標記,C(x,y)表示(x,y)坐標處的小波系數(shù)值,H表示所有樹根的集合。
具體算法的流程如下:
①初始化:設閾值T=2n,其中
n=log2(max|C(x,y)|)、LSP為空、LIP={(x,y)|(x,y)∈H}、LIS={(x,y)A|(x,y)∈H且都具有孩子};
②依次對LIP表和LIS表中元素進行排序掃描并編碼。對LIP編碼只要判斷其中的每個元素是否為顯著系數(shù),若是則輸出1及其符號碼、將該系數(shù)從LIP表中剪切到LSP表的尾部,否則輸出0;對LIS編碼的流程比對LIP編碼復雜,在判斷表中元素屬于類型A還是類型B之后還要對其子孫系數(shù)進行編碼,具體見圖6的流程結構圖。
③當LIS集合中的最后一個編碼完成后,對上一級的得到的LSP表進行精細掃描:對表中每項對應的小波系數(shù)進行二進制轉換、將該二進制數(shù)的第N個重要的位輸送到精細位流中。
④完成后將T除以2,重新進入第二步并進行下一級的編碼,直到T為某一設定值為止。
4 DICOM圖像壓縮實現(xiàn)與分析
文中選用了一個DICOM文件Ankle.dcm作為實驗文件進行說明。如圖7所示,通過VC++語言,根據(jù)DICOM文件的數(shù)據(jù)元素中的標識符、數(shù)據(jù)類型、數(shù)據(jù)長度、數(shù)據(jù)值,來對DICOM文件進行讀取,并將DICOM圖像文件中的圖像數(shù)據(jù)和文本數(shù)據(jù)分離出來。圖7的左邊為DICOM文件Ankle.dcm中分離出來的部分文本信息,圖7的右邊為DICOM文件Ankle.dcm中的分離出來的格式為.bmp的圖像文件。
將分離出來的BMP圖像進行雙正交9/7提升小波變換,并將小波分解后的系數(shù)取整量化、SPIHT編碼。表1是在同為三級小波變換,壓縮比不同情況下,壓縮后圖像的PSNR(峰值信噪比)的值。圖8為壓縮比率為30:1時候的Ankle壓縮圖像。
圖像客觀評價的標準有很多種,比較常見的有MSE(Mean square error)、NMSE(Normalized mean squared error)、SNR(Signal Noise Ratio)、PSNR(Peak Signal Noise Ratio)。它們之間有一定的轉換關系,這里采用PSNR這個參數(shù)作為對圖像客觀評價的一個標準。如表2中所示,隨著壓縮比率的增加圖像的PSNR值也逐漸降低,事實上,人眼很難觀察出PSNR超過30dB的解碼圖像與原圖像的差異[11],由圖8亦可觀察出壓縮比在30:1時仍能保證圖像的清晰度。endprint
5 結 論
文中通過采用了雙正交9/7提升小波變換得到較好時頻特性的小波系數(shù)再結合更為先進的SPHIT算法對小波系數(shù)進行了編碼進而完成了對從DICOM文件中分離出來的圖像信息的壓縮,并最終實現(xiàn)了DICOM圖像的壓縮工作。實驗表明這種方法實現(xiàn)了在較高圖像質量的條件下可以獲得較大壓縮比的圖像文件,這也在一定程度上提高PACS系統(tǒng)中對圖像數(shù)據(jù)儲存和傳輸?shù)男省?/p>
參考文獻
[1] 曹奕雯, 陶薔. PACS關鍵技術及國內應用[J]. 醫(yī)療衛(wèi)生裝備, 2011,32(1):77-80.
[2] 梁存升, 馮驥. DICOM標準分析及其應用[J]. 中國醫(yī)學裝備, 2006,3(2):18-20.
[3] 趙越, 韓瀅, 王之瓊. DICOM技術在PACS系統(tǒng)中的應用綜述[J]. 中國數(shù)字醫(yī)學, 2009,4(2):57-60.
[4] BIDGOOD W D J, HORII S C,PRIOR F W, et al. Understanding and using DICOM, the data interchange standard for biomedical imaging.[J]. Journal of the American Medical Informatics Association : JAMIA, 1997,4(3):199-212.
[5] 李自勝, 肖曉萍, 龔偉. 基于.NET框架的DICOM協(xié)議設計與實現(xiàn)[J]. 計算機應用與軟件, 2009,26(10):19-23.
[6] 王海松, 趙杰. 數(shù)字圖像壓縮技術的現(xiàn)狀及前景分析[J]. 科技信息, 2010(3):53-54.
[7] 胡高軍, 吳芝路, 高真真, 等. 自適應小波變換及其在JPEG 2000中的應用[J]. 光電子·;激光, 2006,17(9):1114-1118.
[8] HUI F,LANYING G,JINSHENG X. The Lifting Scheme Based on the Second Generation Wavelets[J]. Wuhan University Journal of Natural Sciences, 2006,11(3):503-506.
[9] CHEN T,LIN S,LIN Y, et al. JPEG2000 Still Image Coding Quality[J]. Journal of Digital Imaging, 2013,26(5):866-874.
[10]SAID A,PEARLMAN W A. A new, fast, and efficient image codec based on set partitioning in hierarchical trees[J]. IEEE Transactions on Circuits and Systems for Video Technology, 1996,6(3):243-250.
[11]SUNG M, KIM H, YOO S K. Clinical Evaluation of Compression Ratios Using JPEG2000 on Computed Radio graphy Chest Images[J]. Journal of Digital Imaging, 2002,12(2):78-83.endprint