阚钰淇,徐熙平
(长春理工大学 光电工程学院,吉林 长春 130000)
现今社会是一个科技与信息高速发展的时代,人们广泛应用图像来记录数据并存储信息。随着互联网以及多媒体的飞速发展,在传递图像信息时不仅希望能提高它的便捷性、高效性与实时性,同时还希望尽可能地保证质量,以达到以较小的比特率以及较小的空间传输图像的目的。于是,图像压缩这个用最小数据传递尽可能多的图像信息的过程成为了重要的研究内容[1]。
本文主要依据的是离散余弦变换(DCT),它是一种有损压缩编码技术,由于它是实数域的余弦变换,所以计算速度较快[2]。而软件开发平台选择虚拟仪器LabVIEW,这种图形化编程语言有助于程序设计,而且调试过程简单,编程周期短,适合应用在图像压缩环节中。
离散余弦变换(DCT)与傅里叶变化相关,相当于长度大概两倍的离散傅里叶变换[3]。之所以称之为离散余弦变换,是因为它采用图像边界褶翻将图像变换成偶函数的形式,然后进行二维傅里叶变换,最终结果仅包含余弦项[4]。二维离散余弦变换的公式为:
反之,二维离散余弦反变换的公式为:
式中,x, y, u, v=0、1、2…N-1.
在DCT图像压缩过程中,先将整体图像分成8×8像素块,再对每一个像素块进行DCT变换,导致低频分量集中在左上角部分,高频分量集中在右下角部分。其中,低频分量包含图像的主要信息,而高频分量由于较小,系数经常为零,并且人眼对其失真的敏感度较低,因此,经常通过量化而舍去。然后,对余下的数据量进行进一步减少,最后,使用无失真编码来压缩图像。解压缩时,除了解码与逆量化外,先对每一个压缩块做DCT反变换,最后拼接重建,得到一幅完整的图像[5]。图像压缩流程结构图如图1所示[6]。
图1 图像压缩流程Fig . 1 Image compression flowsheet
本设计采用LabVIEW软件编程实现图像压缩的算法。其程序图如图2所示。
图2 图像压缩程序设计Fig. 2 Image compressing programme design
在此程序中,存在一个两层的层叠式顺序结构,第一层是程序的主要部分,作用是完成图像的压缩与重建。如图2所示,首先是文件对话框函数,用来打开存储在任意路径里的图像,其中,前面板上有显示具体路径及原始图像的控件。其次是IMAQ Create函数,它为所选图像开辟一个缓冲区,接着,通过IMAQ ReadFile函数读取一幅图像,再应用IMAQ ImageToArray函数将该图像信息转化成相应的数组,最终将此二维数组传递到While循环中的事件结构里,进行下一步的操作。对于程序中的事件结构,共包括三层:第一层用到了两个重要函数,分别为image dct. vi以及image idct. vi,它们为程序功能的核心,作用是图像的DCT变换以及DCT反变换,是程序运行的关键。在第二层及第三层事件结构中,运用模式设置的局部变量、clear or set. vi以及布尔常量,控制图像压缩的模式,如图3所示。
图3 模式设置程序设计Fig. 3 Modes setting programme design
第二层顺序结构主要是用于程序的初始化,一旦按下停止键,程序立刻恢复到默认状态,强度控件清屏,一切设置均取消[7]。其程序如图4所示。
运行该程序,将一名为hat的图像载入,并随机设置模式控件,得到了DCT系数以及恢复的图像,如图5所示。从结果可以看出,压缩后的图像略有失真,但是整体良好。如果将模式设置为全部清除,恢复图像强度图将变黑且图像消失,反之,如果按下全部设置按钮,恢复图像效果最好。其中,MSE显示控件起到误差说明的作用。应用LabVIEW实现DCT图像压缩的方法简单,编程思路清晰,保证较高的压缩比,又保证了较好的压缩质量[8]。
DCT算法易于实现,而LabVIEW软件编程又简单易懂,操作灵活,具备个性化设置的优势,因此,该设计可以广泛应用在工业、教学以及日常生活中。
图4 程序初始化设计Fig . 4 Programme initializing design
图5 实验结果Fig. 5 Experiment result
[1] 罗晨. 基于DCT的图像压缩及MATLAB实现[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变换的图像压缩技术研究[J].信息技术,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算法变换的图像压缩技术研究[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的图像压缩算法及快速实现[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压缩域图像数据处理[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].北京:电子工业出版社,2011.
[8] 吴术路. 基于DCT的JPEG图像压缩及实现[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.