李新利 宋哲 黃從智 楊國(guó)田 劉禾
摘? 要 在圖像處理與分析教學(xué)過(guò)程中,針對(duì)圖像壓縮算法和效果進(jìn)行研究,提出基于主觀評(píng)判和客觀評(píng)判的評(píng)價(jià)參數(shù),構(gòu)建能直觀表示壓縮效果的壓縮綜合指數(shù)。基于GUI圖形界面,設(shè)計(jì)開發(fā)圖像壓縮算法軟件,實(shí)現(xiàn)無(wú)損壓縮和有損壓縮的經(jīng)典算法,包括RLE編碼、Huffman編碼、算術(shù)編碼、DCT壓縮算法和小波變換壓縮算法,直觀展示不同壓縮算法的壓縮效果,并分析不同壓縮算法的區(qū)別。
關(guān)鍵詞 圖像處理與分析;圖像壓縮;壓縮綜合指數(shù);GUI圖形界面;圖像處理
中圖分類號(hào):G642? ? 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1671-489X(2019)04-0046-03
Application of Image Compression Software based on Compre-hensive Evaluation in Teaching of Image Processing and Analy-sis//LI Xinli, SONG Zhe, HUANG Congzhi, YANG Guotian, LIU HeAbstract In the process of Image Processing and Analysis teaching, the algorithm and effect of image compression is studied, and the evaluation index is proposed which based on subjective evaluation and objective evaluation, and a compression index is used to expressvisually the compression effect. Based on GUI graphical interface, the image compression algorithm software is designed and developedto realize lossless compression and lossy compression. The classical algorithms include RLE coding, Huffman coding, arithmetic coding, DCT compression algorithm and wavelet transform compression algorithm. The compression effects of different algorithms are visually displayed and the differences between different compressionalgorithms are analyzed.
Key words image processing and analysis; image compression; com-pression comprehensive index; GUI graphical interface; image pro-cessing
1 引言
圖像處理與分析課程是模式識(shí)別與智能系統(tǒng)學(xué)科核心專業(yè)課,圖像處理、圖像分析和圖像識(shí)別是人工智能的基礎(chǔ),也是認(rèn)知科學(xué)與計(jì)算機(jī)科學(xué)中的研究熱點(diǎn)。目前人工智能勢(shì)頭正盛,有關(guān)的人才需求呈明顯上升趨勢(shì)。圖像處理與分析課程涉及多領(lǐng)域的交叉,包括計(jì)算機(jī)圖形學(xué)、計(jì)算機(jī)視覺(jué)和模式識(shí)別等,具有較深的理論性和較強(qiáng)的實(shí)踐性。因此,培養(yǎng)具有理論與實(shí)踐并重的高素質(zhì)人才成為教學(xué)的重要任務(wù),要求所培養(yǎng)的研究生具有實(shí)踐和創(chuàng)新的能力。圖像壓縮在圖像傳輸和存儲(chǔ)過(guò)程中至關(guān)重要,其研究受到人們?cè)絹?lái)越多的關(guān)注。
圖像壓縮是圖像處理中的一個(gè)重要組成部分。隨著計(jì)算機(jī)網(wǎng)絡(luò)、通信技術(shù)的發(fā)展,圖像已成為重要的信息載體,而圖像數(shù)據(jù)遠(yuǎn)比文本更占空間,如何才能高質(zhì)、快速地傳輸并存儲(chǔ)圖像?圖像壓縮算法成為重要技術(shù)。本文基于不同的圖像壓縮算法,設(shè)計(jì)圖像壓縮算法軟件,并提出基于主觀和客觀的綜合評(píng)判方法,構(gòu)建評(píng)判壓縮效果的壓縮綜合指數(shù),讓學(xué)生直觀感受不同圖像壓縮算法的特點(diǎn)與效果,同時(shí)啟發(fā)學(xué)生的科研創(chuàng)新思維。
2 圖像壓縮算法
圖像壓縮原理? 圖像壓縮的本質(zhì)是去除多余數(shù)據(jù),盡量?jī)H使用能夠表征一幅圖像必需的相關(guān)參數(shù)。能夠壓縮圖像的根本原因是在圖像的相關(guān)數(shù)據(jù)之中有一定量的可消除的冗余信息。表示圖像的相關(guān)冗余數(shù)據(jù)較多地存在于[1-2]:圖像中兩個(gè)相鄰像素之間存在相關(guān)性,從而造成空間上的冗余;圖像的序列中不同幀之間有著相關(guān)性,從而造成時(shí)間冗余;彩色層之間或頻譜帶之間的相關(guān)性產(chǎn)生的頻譜冗余。而數(shù)據(jù)壓縮的目的,就是消去這些冗余數(shù)據(jù),從而盡可能地只保留能夠表示圖像的必要數(shù)據(jù)。
根據(jù)壓縮過(guò)程有無(wú)損失,分為有損編碼和無(wú)損編碼[3]。無(wú)損編碼是指對(duì)圖像數(shù)據(jù)進(jìn)行了無(wú)損壓縮,解碼后重新構(gòu)造的圖像和原始圖像之間完全相同。有損編碼是指對(duì)圖像數(shù)據(jù)進(jìn)行了有損壓縮,解碼后重新構(gòu)造的圖像和原始圖像之間存在一定的誤差。
無(wú)損壓縮? 無(wú)損編碼的經(jīng)典算法主要包括行程編碼、Huffman編碼、LZW編碼和熵編碼。行程編碼也稱RLE算法,基本原理是把圖像數(shù)據(jù)看成一個(gè)線性序列,用一個(gè)字節(jié)表示該數(shù)據(jù)塊重復(fù)的次數(shù),然后在這個(gè)數(shù)據(jù)重復(fù)次數(shù)的后面放置對(duì)應(yīng)的數(shù)據(jù)字節(jié)本身。Huffman編碼是利用加長(zhǎng)的編碼表對(duì)圖像數(shù)據(jù)中的每一個(gè)進(jìn)行編碼,其中加長(zhǎng)的編碼表是通過(guò)對(duì)圖像元素出現(xiàn)的頻率進(jìn)行統(tǒng)計(jì)的方法得到的。出現(xiàn)頻率高的字母使用較短的編碼;反之,出現(xiàn)頻率低的則使用較長(zhǎng)的編碼。LZW編碼算法原理是構(gòu)建一個(gè)字符串表,視為字典,以字典的規(guī)則,用較短的代碼表示較長(zhǎng)的字符串,從而實(shí)現(xiàn)壓縮的效果。算術(shù)編碼算法是一種熵編碼,先將所有數(shù)據(jù)進(jìn)行概率統(tǒng)計(jì),并記錄它們相對(duì)于統(tǒng)計(jì)前的位置信息,然后根據(jù)概率將[0,1]的區(qū)間進(jìn)行分割[4]。
有損壓縮? 有損編碼包括離散余弦變換DCT(Discrete Cosine Transform)編碼和小波變換WT( Wavelet Trans-form)。DCT編碼基本思路是將圖像分解為8×8的子塊或16×16的子塊[5],對(duì)每一個(gè)子塊進(jìn)行DCT變換,然后對(duì)變換結(jié)果進(jìn)行量化、編碼。小波變換算法原理是通過(guò)小波矩陣對(duì)圖像數(shù)據(jù)進(jìn)行多級(jí)小波分解,然后對(duì)每層小波系數(shù)進(jìn)行量化、編碼。
3 圖像壓縮算法的綜合評(píng)判指標(biāo)
壓縮比? 圖像壓縮算法的好壞,對(duì)評(píng)價(jià)指標(biāo)至關(guān)重要。壓縮比和失真性是常用來(lái)衡量圖像壓縮的重要指標(biāo)。其中壓縮比是圖像壓縮前后的信息量之比,信息量可包括數(shù)據(jù)量和信息熵。失真性對(duì)有損編碼而言,是指圖像經(jīng)過(guò)有損壓縮,然后其解碼的圖像與原圖像之間的誤差。本文以壓縮前后數(shù)據(jù)量之比為例進(jìn)行研究,相較于信息熵而言,數(shù)據(jù)量之比展示結(jié)果更具有直觀性,更加貼合用戶體驗(yàn)。
壓縮時(shí)間? 壓縮時(shí)間嚴(yán)格來(lái)說(shuō),是從開始進(jìn)行壓縮到壓縮停止之間的時(shí)間間隔。對(duì)用戶而言,不僅關(guān)注壓縮開始到完成的時(shí)間,同時(shí)關(guān)注解壓縮所用時(shí)間,如果壓縮時(shí)間很短但解壓縮時(shí)間很長(zhǎng),同樣不會(huì)被用戶廣泛接受。因此,本文將壓縮時(shí)間定義為從開始進(jìn)行壓縮的時(shí)間點(diǎn)到完整顯示解壓縮后圖像時(shí)的時(shí)間點(diǎn),將壓縮和解壓縮兩個(gè)時(shí)間段融合在一起,考察、評(píng)價(jià)不同壓縮算法。
圖像壓縮的綜合評(píng)價(jià)指數(shù)? 圖像壓縮和解壓縮后效果如何,人的主觀感受也很重要,因此,本文提出基于主觀和客觀的綜合評(píng)價(jià)指數(shù)。主觀評(píng)判標(biāo)準(zhǔn),即解壓縮之后將得到的圖像與原圖像進(jìn)行主觀比較,并設(shè)定主觀感受度進(jìn)行效果評(píng)價(jià)。客觀評(píng)判標(biāo)準(zhǔn)以壓縮比和壓縮時(shí)間為主。
在用戶主觀評(píng)判依據(jù)中,本文設(shè)定五級(jí)主觀感受度作為評(píng)定標(biāo)準(zhǔn),分別為0、0.25、0.5、0.75和1:0表示完全沒(méi)有圖像或從復(fù)原圖像中看不出原圖像的樣子;0.25表示顏色嚴(yán)重失真,本文是利用彩色圖像進(jìn)行壓縮實(shí)驗(yàn),將實(shí)驗(yàn)結(jié)果二值圖像設(shè)定為0.25;而0.5表示解壓縮圖像為灰度圖像,即保留了一部分的顏色,但缺失彩色;0.75表示解壓縮圖像為彩色,但存在一定的數(shù)據(jù)損壞或丟失,直觀來(lái)說(shuō),就是圖像跟原圖像相比有可見缺損,但不影響圖像辨識(shí);1表示基本復(fù)現(xiàn),人眼看不出圖像缺損和顏色偏差。
在客觀評(píng)判標(biāo)準(zhǔn)中,算法對(duì)應(yīng)的壓縮比越大,壓縮時(shí)間越少,表示該算法的壓縮效果越好。
基于上述主觀和客觀評(píng)判標(biāo)準(zhǔn),構(gòu)建壓縮綜合指數(shù)作為評(píng)價(jià)圖像壓縮的指標(biāo),如式(1)所示:
式中CR為壓縮比,T為壓縮時(shí)間,A為主觀感受度。壓縮比與主觀感受度的乘積除以壓縮時(shí)間,表示單位時(shí)間內(nèi)對(duì)圖像壓縮的客觀與主觀綜合壓縮程度。該數(shù)值越大,表示壓縮效果越好。
4 基于綜合評(píng)價(jià)指數(shù)的圖像壓縮軟件
GUI界面是圖形用戶界面,相對(duì)于命令行界面更便于人機(jī)交互[6]。本文基于GUI,編程實(shí)現(xiàn)圖像無(wú)損壓縮和有損壓縮的六種經(jīng)典壓縮算法,同時(shí)顯示壓縮前和壓縮后圖像,以及不同壓縮算法的壓縮時(shí)間、壓縮比和綜合評(píng)價(jià)指數(shù)。
搭建GUI界面? 為了方便教學(xué),設(shè)計(jì)軟件的輸出數(shù)據(jù)為輸出壓縮前的原圖像、對(duì)解壓后得到的圖像、壓縮比、壓縮時(shí)間以及壓縮綜合指數(shù)。在GUI界面上需要三個(gè)edit框輸出數(shù)據(jù),兩個(gè)axes部件輸出圖像。本文是根據(jù)它們各自的Tag分別對(duì)它們編寫輸出語(yǔ)句,從而達(dá)到輸出的目的。GUI可編輯界面如圖1所示。
右上側(cè)彈出菜單里含有六種壓縮算法可供選擇,其中包括有損壓縮的兩種經(jīng)典算法以及無(wú)損壓縮的四種經(jīng)典算法。通過(guò)選擇不同的算法,可以對(duì)應(yīng)得到壓縮時(shí)間、壓縮比和圖像主觀復(fù)現(xiàn)程度等參數(shù),更加直觀和方便進(jìn)行橫向與縱向比較。對(duì)于學(xué)生而言,對(duì)于壓縮過(guò)程的理解也會(huì)有所加深。
一些壓縮算法中涉及參數(shù)設(shè)置,如LZW算法的壓縮步長(zhǎng),一般選擇為2的n次方,即每次壓縮2n×2n個(gè)數(shù)據(jù),將原圖像進(jìn)行分塊壓縮??赏ㄟ^(guò)軟件界面進(jìn)行參數(shù)設(shè)置。
對(duì)于學(xué)生教學(xué)而言,這種界面布置更加簡(jiǎn)潔清晰,將壓縮前后圖像差別以及相關(guān)參數(shù)放置在一個(gè)界面中,學(xué)生可明顯看出壓縮前后的區(qū)別,可以更加深刻地了解有損壓縮對(duì)于圖像數(shù)據(jù)的損失程度,以及無(wú)損壓縮壓縮時(shí)間上的缺陷。
GUI界面運(yùn)行? 運(yùn)行GUI的步驟:打開GUI的可編輯界面,點(diǎn)擊運(yùn)行按鈕,即可運(yùn)行GUI界面,如圖2所示。通過(guò)GUI進(jìn)行仿真的步驟:打開GUI界面點(diǎn)擊運(yùn)行,選擇好算法,點(diǎn)擊確認(rèn)按鈕,等待圖像和數(shù)據(jù)的顯示??稍俅芜x擇其他算法進(jìn)行多組不同實(shí)驗(yàn),也可多次實(shí)驗(yàn)同一種算法,促使學(xué)生思考每次運(yùn)行結(jié)果產(chǎn)生微小差異的原因。
5 結(jié)語(yǔ)
通過(guò)圖像壓縮算法的研究,提出基于客觀和主觀的綜合評(píng)價(jià)指數(shù),對(duì)圖像壓縮效果進(jìn)行評(píng)價(jià);基于GUI圖形界面,設(shè)計(jì)實(shí)現(xiàn)無(wú)損壓縮和有損壓縮的六種算法,包括RLE算法、Huffman編碼、LZW編碼、算術(shù)編碼、DCT算法和小波變換。通過(guò)圖像壓縮軟件,可以讓學(xué)生直觀比較不同壓縮算法的運(yùn)行效果和特點(diǎn)。所設(shè)計(jì)的綜合評(píng)價(jià)指數(shù),不僅可以讓學(xué)生通過(guò)實(shí)驗(yàn)分析有損壓縮和無(wú)損壓縮的區(qū)別、不同壓縮算法的壓縮效果和最佳參數(shù)設(shè)置,而且可以啟發(fā)學(xué)生進(jìn)行更多的科研探索,結(jié)合所處理的圖像類型,設(shè)計(jì)更好的編碼和評(píng)價(jià)指標(biāo)。
參考文獻(xiàn)
[1]張春田,蘇育挺,等.數(shù)字圖像壓縮編碼[M].北京:清華大學(xué)出版社,2006.
[2]薩洛蒙.數(shù)據(jù)壓縮原理與應(yīng)用[M].北京:電子工業(yè)出版社,2008.
[3]岡薩雷斯,伍茲.數(shù)字圖像處理[M].3版.北京:電子工業(yè)出版社,2011.
[4]吳曉云.算術(shù)編碼算法在圖像壓縮中的研究[J].計(jì)算機(jī)與數(shù)字工程,2017,45(9):1863-1865.
[5]馮飛,劉培學(xué),李曉燕,等.離散余弦變換在圖像壓縮算法中的研究[J].計(jì)算機(jī)科學(xué),2016(S2):240-241,255.
[6]宗節(jié)保,段柳云,王瑩,等.基于MATLAB GUI軟件制作方法的研究與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2010,18(7):54-56.