闞鈺淇,徐熙平
(長春理工大學 光電工程學院,吉林 長春 130000)
現(xiàn)今社會是一個科技與信息高速發(fā)展的時代,人們廣泛應用圖像來記錄數(shù)據(jù)并存儲信息。隨著互聯(lián)網(wǎng)以及多媒體的飛速發(fā)展,在傳遞圖像信息時不僅希望能提高它的便捷性、高效性與實時性,同時還希望盡可能地保證質(zhì)量,以達到以較小的比特率以及較小的空間傳輸圖像的目的。于是,圖像壓縮這個用最小數(shù)據(jù)傳遞盡可能多的圖像信息的過程成為了重要的研究內(nèi)容[1]。
本文主要依據(jù)的是離散余弦變換(DCT),它是一種有損壓縮編碼技術(shù),由于它是實數(shù)域的余弦變換,所以計算速度較快[2]。而軟件開發(fā)平臺選擇虛擬儀器LabVIEW,這種圖形化編程語言有助于程序設計,而且調(diào)試過程簡單,編程周期短,適合應用在圖像壓縮環(huán)節(jié)中。
離散余弦變換(DCT)與傅里葉變化相關(guān),相當于長度大概兩倍的離散傅里葉變換[3]。之所以稱之為離散余弦變換,是因為它采用圖像邊界褶翻將圖像變換成偶函數(shù)的形式,然后進行二維傅里葉變換,最終結(jié)果僅包含余弦項[4]。二維離散余弦變換的公式為:
反之,二維離散余弦反變換的公式為:
式中,x, y, u, v=0、1、2…N-1.
在DCT圖像壓縮過程中,先將整體圖像分成8×8像素塊,再對每一個像素塊進行DCT變換,導致低頻分量集中在左上角部分,高頻分量集中在右下角部分。其中,低頻分量包含圖像的主要信息,而高頻分量由于較小,系數(shù)經(jīng)常為零,并且人眼對其失真的敏感度較低,因此,經(jīng)常通過量化而舍去。然后,對余下的數(shù)據(jù)量進行進一步減少,最后,使用無失真編碼來壓縮圖像。解壓縮時,除了解碼與逆量化外,先對每一個壓縮塊做DCT反變換,最后拼接重建,得到一幅完整的圖像[5]。圖像壓縮流程結(jié)構(gòu)圖如圖1所示[6]。
圖1 圖像壓縮流程Fig . 1 Image compression flowsheet
本設計采用LabVIEW軟件編程實現(xiàn)圖像壓縮的算法。其程序圖如圖2所示。
圖2 圖像壓縮程序設計Fig. 2 Image compressing programme design
在此程序中,存在一個兩層的層疊式順序結(jié)構(gòu),第一層是程序的主要部分,作用是完成圖像的壓縮與重建。如圖2所示,首先是文件對話框函數(shù),用來打開存儲在任意路徑里的圖像,其中,前面板上有顯示具體路徑及原始圖像的控件。其次是IMAQ Create函數(shù),它為所選圖像開辟一個緩沖區(qū),接著,通過IMAQ ReadFile函數(shù)讀取一幅圖像,再應用IMAQ ImageToArray函數(shù)將該圖像信息轉(zhuǎn)化成相應的數(shù)組,最終將此二維數(shù)組傳遞到While循環(huán)中的事件結(jié)構(gòu)里,進行下一步的操作。對于程序中的事件結(jié)構(gòu),共包括三層:第一層用到了兩個重要函數(shù),分別為image dct. vi以及image idct. vi,它們?yōu)槌绦蚬δ艿暮诵模饔檬菆D像的DCT變換以及DCT反變換,是程序運行的關(guān)鍵。在第二層及第三層事件結(jié)構(gòu)中,運用模式設置的局部變量、clear or set. vi以及布爾常量,控制圖像壓縮的模式,如圖3所示。
圖3 模式設置程序設計Fig. 3 Modes setting programme design
第二層順序結(jié)構(gòu)主要是用于程序的初始化,一旦按下停止鍵,程序立刻恢復到默認狀態(tài),強度控件清屏,一切設置均取消[7]。其程序如圖4所示。
運行該程序,將一名為hat的圖像載入,并隨機設置模式控件,得到了DCT系數(shù)以及恢復的圖像,如圖5所示。從結(jié)果可以看出,壓縮后的圖像略有失真,但是整體良好。如果將模式設置為全部清除,恢復圖像強度圖將變黑且圖像消失,反之,如果按下全部設置按鈕,恢復圖像效果最好。其中,MSE顯示控件起到誤差說明的作用。應用LabVIEW實現(xiàn)DCT圖像壓縮的方法簡單,編程思路清晰,保證較高的壓縮比,又保證了較好的壓縮質(zhì)量[8]。
DCT算法易于實現(xiàn),而LabVIEW軟件編程又簡單易懂,操作靈活,具備個性化設置的優(yōu)勢,因此,該設計可以廣泛應用在工業(yè)、教學以及日常生活中。
圖4 程序初始化設計Fig . 4 Programme initializing design
圖5 實驗結(jié)果Fig. 5 Experiment result
[1] 羅晨. 基于DCT的圖像壓縮及MATLAB實現(xiàn)[J].電子設計工程,2011,19(18):168-170.LUO Chen.The realization of Matlab by image coding compression algorithm on DCT[J].Electronic Design Engineering, 2011,19(18):168-170.
[2] 沈潔,杜宇人,殷玲玲,等. 基于DCT變換的圖像壓縮技術(shù)研究[J].信息技術(shù),2006,(10):133-134.SHEN Jie,DU Yu-ren,YIN Ling-ling,et al. Research on technique of image compression based on DCT[J].Information Technology, 2006,(10):133-134.
[3] 羅建國. 基于DCT算法變換的圖像壓縮技術(shù)研究[J].科技廣場,2008:119-120.LUO Jian-guo.The analysis and implementation of the image compression based on DCT transformation[J].Sience Mosiac,2008:119-120.
[4] 王軍敏,杜豪杰.基于DCT的圖像壓縮算法及快速實現(xiàn)[J].平頂山學院學報,2012,27(2):65-69.WANG Jun-min,DU Hao-jie. Image compression algorithm based on DCT and fast implementation[J].Journal of Pingdingshan University, 2012,27(2):65-69.
[5] 徐小明. 基于DCT變換的彩色的圖像壓縮應用研究[J].宜春學院學報,2010,32(8):15-16.XU Xiao-ming. Research on application of image compression based on DCT[J].Journal of Yichun College,2010,32(8):15-16.
[6] 趙蔚,郭樹旭. DCT壓縮域圖像數(shù)據(jù)處理[J].吉林大學自然科學學報,2001,(4):64-68.ZHAO Wei,GUO Shu-xu.Image processing in DCT compressed domain[J].Acta Scientiarum Naturalium Universitatis Jilinensis,2001,(4):64-68.
[7] 陳樹學,劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[8] 吳術(shù)路. 基于DCT的JPEG圖像壓縮及實現(xiàn)[J].青海師范大學學報,2010(3),39-41.WU Shu-lu.DCT-based JPEG image compression and implementation[J].Journal of Qinghai Normal University:Natural Science,2010(3);39-41.