朱貴富,鄧 輝,王 鋒,季凱帆
(昆明理工大學云南省計算機技術應用重點實驗室,云南 昆明 650051)
隨著技術的發展,海量的圖像數據與有限的存儲空間、有限的網絡帶寬之間的矛盾日趨突出。在諸如醫學、遙感、天文圖像的存儲傳輸等應用場合,無損壓縮方法是保證數據無失真且節約存儲空間的唯一方法。經典的無損壓縮方法[1]主要包括霍夫曼編碼、算術編碼、基于字典的LZW、位平面編碼、行程編碼等,它們作為數據壓縮的通用方法,并沒有考慮圖像數據本身的特點,圖像壓縮率很低,難于滿足現在圖像處理的要求。目前對圖像無損壓縮的研究大多集中在如何有效去除像素間相關性上,具體可以分為基于預測的方法、基于整數變換的方法、基于矢量量化的方法,或者多種方法結合使用的綜合方法[2-7]。
小波變換是一種同時兼顧頻率域和空間域定位的變換,近二十年來,小波變換在理論研究和工程應用方面都得到了迅速發展。在第一代小波變換中,由于變換系數是浮點型的,對變換系數進行編碼時需要進行量化取整運算,從而產生精度誤差,因此不能用于圖像的無損壓縮。Sweldens[8]提出的提升方案(Lifting Scheme)是目前構造第二代小波較為有效的方法,利用提升方案經過適當的提升步驟可以實現真正的可逆整數小波變換,Daubeches等人[9]深入闡述了可逆雙正交小波變換理論,給圖像的無損壓縮提供了理論基礎,使得小波變換在圖像無損壓縮領域得到很大發展。新一代靜止圖像壓縮標準JPEG2000采用基于整數的5/3濾波器實現無損壓縮[10];田金文等人[2]利用整數Haar小波結合分塊DPCM實現了圖像無損壓縮,但是由于Haar小波去冗余能力較弱[3],因此其壓縮比不太理想;趙麗紅[4]、吳冬梅[5]等人分別根據醫學圖像和超光譜圖像的特點采用將DPCM與整數小波結合的方法實現無損壓縮,提高了壓縮比,但是他們的方法需要一次性加載整張圖片,對于超大圖片(例如8k×8k或更大)的情況,存在預測誤差擴散和占用系統資源過高的問題。
在實際天文應用中,天文圖像的無損壓縮一般采用現成軟件[6](如WinRar、WinZip、PKZip、tar工具)實現。栗志等人[7]用傳統的數據壓縮方法對天文圖像進行了壓縮性能分析對比;胡新華等人[11],W D Pence等人[12]分別用各種流行的壓縮軟件測試了FITS格式數據的無損壓縮情況,其壓縮比為1~3,效果不甚理想。李龍等人[6]采用嵌入零樹編碼改進方案實現天文圖像的有損和無損壓縮,但是嵌入零樹編碼用于無損壓縮時的運算過于復雜,不利于硬件實現。
綜上所述,無損壓縮方法已經被廣泛地應用于各個領域,但均存在一定的不足。為了有效解決天文圖像無損壓縮問題,解決如麗江2.4 m望遠鏡和澄江紅外太陽塔等數據遠程實時傳輸等要求,本文以夜間可見光觀測圖像為基礎,提出一種無損壓縮方法,希望提高壓縮比與壓縮性能,無疑是有意義的。
差分脈沖調制[1](Differential Pulse Code Modulation,DPCM)預測基本思想是通過對像素實際值和預測值之間的預測誤差進行提取和編碼,來消除在空間上較為接近像素之間的冗余信息。為了實現預測的可逆性,需要對預測結果進行取整。容易得到預測公式:

其中X'(n)是預測器根據預測策略進行預測后取整的結果。顯然,預測還原時遵循:

圖像數據采用二維數組表示,因此對圖像的預測為二維預測。一種常用的圖像預測器為:

(3)式中D、B、C均為n的前像素,n在圖像二維數組中的位置為n(x,y),D、B、C分別為:D(x-1,y)、B(x,y-1)、C(x+1,y-1)。預測的邊界處理為:當缺少B、C時候(即第一行)則變為X'(n)=D;當缺少D時候,變為X'(n)=int[(3B+C)/2];當缺少C時候,變為X'(n)=int[(D+B)/2];B、C、D均缺少則為第一個像素,不預測。
Sweldens等人[8]提出的一種新的小波構造方法,經過適當步驟可以實現可逆整數小波變換(Reversible Integer-To-Integer Wavelet Transform,RITIWT),使得小波變換可以應用于無損壓縮領域。提升方案(Lifting Scheme)繼承了第一代小波變換的多分辨特性,放棄了平移和升縮,對于信號的分解直接通過分裂、預測、更新3個基本運算構成。該提升方案的3個步驟如下:
(1)分裂(Split):將信號Si分裂成為兩個互不相交的子集c2i和c2i+1,即奇偶分開;
(2)預測(Predict):采用某種準則(例如最小均方差),用奇預測偶,或者偶預測奇;
(3)更新(Update):理想狀態是第2步的預測均方差為0,但是實際上不太可能正好為0,因此需要更新,使得均方差盡可能小。
由提升方案可構造出5/3整數小波變換,其正變換和逆變換為:

在構造出完全可逆的變換之后,可以采用熵編碼器對變換系數進行編碼。
經分析,不難得出如下理論推論,由于DPCM對預測結果進行了取整使得其預測結果可逆;而RITIWT實現的是整數到整數的小波變換,亦是可逆的;因此采用DPCM與RITIWT在理論上是可以實現天文圖像無損壓縮的。通過對原始圖像的分塊,不需要加載整張圖像,使得該算法最少只占用一個圖像分塊加一些系統開銷的資源;通過DPCM預測變換,去除了象素間大部分冗余;再經過5/3整數小波變換,分開高頻和低頻分量,使得圖像能量進一步集中,圖像數據形式更加緊湊,最后通過霍夫曼算法對小波變換的系數進行編碼,理論上會比單種壓縮方法效果更好,且其中涉及的DPCM預測、5/3整數小波變換、霍夫曼編碼算法實現均較為簡單,利于硬件實現。

圖1 基于DPCM與RITIWT的天文圖像分塊無損壓縮流程Fig.1 Framework of segmention-based lossless compression of an astronomical image using the DPCM and RITIWT
壓縮的基本框架如圖1,壓縮編碼具體步驟為:
Ⅰ:讀入原始FITS圖像;
Ⅱ:將圖像分成n×n的子塊;
Ⅲ:對每一個子塊,以子塊的第一個像素為基準進行DPCM預測 (第一個像素不預測);
Ⅳ:對每一個子塊的預測結果進行5/3整數小波變換;
Ⅴ:對每一個子塊的變換系數采用霍夫曼編碼;
Ⅵ:順序合并每一個子塊的編碼結果,對每個子塊添加簡單標志位,組成壓縮后的數據。解壓過程為壓縮編碼的逆過程。
DPCM的預測會擴散誤差,有時候對壓縮性能的影響可能是巨大的,圖像越大,擴散誤差越多。天文圖像一般很大,如果不采取某些減小誤差措施,對天文圖像的預測可能效果并不理想。一種有效的解決方案就是對大圖像進行分塊,把原圖像分成較小的若干塊,分別進行預測,從而將誤差控制在一個塊內,有利于遠程傳輸。
另一方面,通過分塊,該算法壓縮時候不需要一次就加載整張圖片到內存中,比不使用分塊的方法大大節省了內存。此外由于采用分塊技術,利于實現并行處理,對于某些實時性要求高的場合,是個較好的解決方案。
分塊太大,分塊的效果不明顯;分塊太小,則造成循環分塊的系統開銷增加。實際應用中,可以做成一個參數的形式,與用戶交互而定。本文中,考慮到FITS格式的特點,采用8×8分塊方法。
壓縮過程中,首先對圖像分塊,然后DPCM預測和整數小波變換,最后編碼。這里涉及DPCM預測策略、整數小波變換的小波基選取和邊界處理等問題,需要選定這些參數。
(1)DPCM的預測策略:DPCM的缺點是當某個像素與同一組像素之間的差異較大時,會擴大預測誤差,同時將擴大的誤差一直擴散,嚴重影響壓縮性能。因此,DPCM的關鍵是預測策略的選擇,預測策略的好壞直接決定壓縮性能的好壞,而這個策略通常和圖像的統計特性有關。本文通過實驗,選擇了公式(3)作為天文圖像的預測策略。
(2)小波基的選取:不同的小波基具有不同的時頻特征,用不同的小波基分析同一張圖像會產生不同的結果,因此必須選取一個合適的小波函數。從公式(4)、(5)可以看出,5/3整數小波只有整數的加法和移位運算,變換過程中不會產生浮點,實現真正的變換無損,且方便硬件實現,本文參考JPEG2000中無損壓縮采用的5/3小波作為小波基,小波變換的邊界延拓采用對稱延拓方式。
根據以上壓縮框架和具體步驟,使用VC++6.0在微機上實現了上述算法原型,對云南天文臺1 m望遠鏡所拍攝到的S1203_V_001_1_0000.FITS~S1203_V_005_1_0000.FITS共5張圖進行了實驗(見圖2)。這些圖像像素均為2048×2048,圖2(a)、(d)對亮度做了適當拉升使得其關鍵數據調整到可顯示的范圍,圖2(b)、(c)圖像數據較為復雜,圖2(e)相對簡單。

圖2 實驗中用到的測試圖像Fig.2 Test images in our experiments
程序中對FITS圖像的讀寫采用官方標準庫函數;圖像分成8×8的子塊;DPCM預測策略采用公式(3)的方法;小波變換采用5/3整數小波變換(即公式(4))對圖像進行3級分解,邊界處理方式為對稱延拓;變換系數熵編碼器采用霍夫曼編碼。
本文算法的關鍵是通過可逆的DPCM預測和整數小波變換,降低變換后圖像的信息熵,從而使得熵編碼理論上可以實現更高的壓縮比,表1給出了測試圖像變換前后的信息熵。

表1 測試圖像變換前后的信息熵Table 1 Information entropies of test images before and after the wavelet transformation
為了驗證算法的有效性,還單獨使用DPCM預測和整數小波變換來結合霍夫曼編碼進行壓縮,同時還與Windows下WinRar、WinZip、PKZip和Linux下tar工具的壓縮結果進行了對比。各種無損壓縮方法的壓縮比參見表2,本文方法與傳統軟件的壓縮比結果參見表3,各種無損壓縮方法的壓縮和解壓時間參見表4,本文方法與傳統軟件壓縮和解壓時間參見表5。

表2 單種方法與組合方法壓縮比Table2 Compression ratios of single methods and combination methods

表3 本文方法與傳統軟件壓縮比Table 3 Compression ratios of our method and commonly used softwares
表2,表3中Cr=壓縮前圖像大小/壓縮后圖像大小,由于采用了無損壓縮方案,表2中4種壓縮方法的均方誤差(MSE)都為0。

表4 單種方法與組合方法平均耗時(壓縮/解壓)Table 4 Average times for encoding/decoding in single methods and combination methods

表5 本文方法與傳統軟件平均耗時(壓縮/解壓)Table 5 Average times for encoding/decoding in our method and commonly used softwares
表4、表5中單位為s,運行平臺為:一個Pentium(R)42.40 GHz CPU,2048 MB內存,Windows Server2003操作系統,其中表5中tar的測試為Linux操作系統。由于操作系統運行多任務的原因,每次壓縮和解壓的實際時間和表4、表5略有誤差,表4和表5給出的是10次測試的平均時間。
無損壓縮的理論極限是信息熵,僅使用熵編碼壓縮不可能有太大的提高,通過對原始圖像進行可逆變換,使得變換后的信息熵小于原圖像信息熵,才能提高壓縮比,從表1可以看出,通過變換后的數據信息熵遠遠小于原圖信息熵,從而理論上可能提高壓縮比。從表2可以看出,僅使用霍夫曼編碼的壓縮比很低;預測編碼通過僅對預測誤差編碼從而可以較明顯地提高壓縮比;基于整數小波變換的方法由于小波變換將高低能量分開也明顯提高了壓縮比;而本文提出的綜合前三種方法應用于天文圖像確有明顯的提高。壓縮速度方面,通過表4可以看出,本文方法比單獨使用DPCM預測編碼和IWT編碼的時間稍多一些,但其壓縮比確有明顯的提高。通過表3和表5表明,本文方法比常用的tar、PKZip、WinZip、WinRar平均壓縮比分別提高了30%、29%、26%、2%左右,同時耗時遠小于WinZip和WinRar,耗時略多于PKZip和tar但大大提高了壓縮比,實驗過程中WinZip和WinRar均選擇最高壓縮比進行的壓縮。
表3中最后一組測試數據本文方法比WinRar效果稍差,由于本文的預測策略,并不一定是最佳預測策略,該結果可能是誤差累積傳遞而導致的,尋找更合理的預測策略是未來可以繼續完善的方向。另外,本文中提到的對超大天文圖像進行分塊,利于并行處理,如果能實現在集群上由各子節點對分塊圖像進行壓縮,將大大降低壓縮時間;或者采用多塊專用芯片并行對各個分塊圖形進行處理,既能節約成本,又能滿足實時性要求。
本文探討了一種將分塊DPCM與可逆整數小波變換相結合應用于天文圖像的無損壓縮方法,并對此方法的原理和實現做了分析與介紹。通過對比實驗驗證,本文的方法比僅用整數小波變換或預測編碼都有明顯的提高;比在天文圖像存儲時常用的tar工具、PKZip、WinZip、WinRar軟件在壓縮比上分別提高了30%、29%、26%、2%左右;壓縮速度遠大于WinZip和WinRar,可以在一定程度上減少海量天文圖像存儲空間和遠端傳送的等待時間。由于對圖像進行了分塊,利于并行處理,對于實時性要求高的應用場合,可以首先采用分塊,然后再進行壓縮處理。對于預測策略的選取,考慮到壓縮速度,本文測試中采用的策略可能并不是最佳的預測,尋找更加合理的預測策略,可以進一步提高壓縮比。
[1]Rafael C Gonzalez,Richard E Woods.岡薩雷斯數字圖像處理(第二版)[M].阮秋琦,阮宇智,譯.北京:電子工業出版社,2003.
[2]田金文,柳斌,柳健.用整數Haar小波變換和分塊DPCM實現靜止圖像數據的信息熵保持型壓縮編碼[J].通信學報,2000,21(11):29-34.Tian Jinwen,Liu Bin,Liu Jian.The Information Entropy Preserved Coder of Still Image by Integer Haar Wavelet Transforms and Subblock DPCM[J].Journal of China Institute of Communications,2000,21(11):29 -34.
[3]肖江,吳成柯,李云松,等.多光譜圖像的3D EBCOT壓縮編碼算法[J].西安電子科技大學學報(自然科學版),2005,32(4):549-554.Xiao Jiang,Wu ChengKe,Li YunSong,Xiang LiBin,Yang JianFeng.Compression of the Multispectral Image by the Three-dimensional EBCOT Coding Algorithm[J].Journal of Xidian University,2005,32(4):549 -554.
[4]趙麗紅,天亞男,沙永剛,等.DPCM與小波變換結合的醫學圖像無損壓縮[J].東北大學學報(自然科學版),2007,28(10):1454-1457.Zhao Lihong,Tian Yanan,Sha Yonggang,et al.Lossless Compression of Medical Images by Combining Integer Wavelet Transform with DPCM[J].Journal of Northeastern University(Natural Science),2007,28(10):1454-1457.
[5]吳東梅,王軍,張海寧.基于譜間DPCM和整數小波變換的超光譜圖像無損壓縮[J].光子學報,2008,37(1):156-159.Wu Dongmei, WangJun, ZhangHaining. Research of Hyper-spectral Image Lossless Compressing Technology Based on DPCM Between Spectra and IWT[J].Acta Photonica Sinica,2008,37(1):156-159.
[6]李龍,代紅兵,許駿.基于小波變換的圖像壓縮在天文遠程觀測中的應用研究[J].天文研究與技術——國家天文臺臺刊,2008,5(4):380-395.Li Long,Dai Hongbing,Xu Jun.The Study of the Application of Image Compression Based on Wavelet Transformation in Astronomical Remote Observation[J].Astronomical Research &Technology——Publications of National Astronomical Observatories of China,2008,5(4):380-385.
[7]栗志,周衛紅.數字圖像壓縮方式在天文上的應用[J].天文學進展,1996,14(3):259-261.Li Zhi, Zhou Weihong.The Application of the Ditigal Image Compression Technique to Astronomy[J].Progress in Astronomy,1996,14(3):259 -261.
[8]Sweldens.The lifting scheme:Acustom—design construction of biorthogonal wavelets[J].Applied and Computational Harmonic Analysis,1996,(3):186 -200.
[9]Daubeches I,Sweldens W.Factoring Wavelet Transforms into Lifting Steps[J].J Fourier Anal Appl,1998,3(4):247 -269.
[10]ISO/IEC.ISOIEC 15444 -1:Information Technology-JPEG2000 Image Coding System-Part 1:Core Coding System[S].
[11]胡新華,鄧元勇,王先平.FITS圖像處理技術薈萃及在太陽觀測中的應用[J].天文研究與技術——國家天文臺臺刊,2008,5(1):55-65.Hu Xinhua,Deng Yuanyong,Wang Xianping.Collection of Techniques on Dealing with Image Files of FITS Format and Applications to the Solar Observation[J].Astronomical Research & Technology——Publications of National Astronomical Observatories of China,2008,5(1):55-65.
[12]W D Pence,R Seaman,R L White.Lossless Astronomical Image Compression and the Effects of Random Noise[J].Publications of the Astronomical Society of the Pacific,2009,121:414-427.