【摘要】 對(duì)幾種無(wú)損圖像壓縮的方法進(jìn)行了介紹、比較和分析、比較基于不同類型的圖像數(shù)據(jù),比較結(jié)果顯示一種基于分片的無(wú)損編碼(SLIC)方法(它屬于一種區(qū)域擴(kuò)散算法)在對(duì)醫(yī)療圖像的壓縮效果上比其它方法優(yōu)越,但是它對(duì)一般通用圖像的壓縮效果并不是最好,這說(shuō)明不同類型的圖像體現(xiàn)不同類型的特征,針對(duì)不同類型的圖像而采用相應(yīng)的算法可以達(dá)到降低傳輸帶寬和減少存儲(chǔ)空間的效果。 而D為A和B的均方差 在圖像壓縮中,信噪比(SNR)通常為峰值對(duì)峰值(Peak-to-peak)信噪比(SNRp) 由于采用上述兩種評(píng)定方法所得到的結(jié)果與人眼評(píng)定結(jié)果并不總是一致,主觀評(píng)定也就成為不可缺少的方法。圖像呈現(xiàn)給評(píng)定者,并讓他們?cè)?~5基礎(chǔ)上打分。 診斷精確性評(píng)定在醫(yī)療圖像中作用很重要,尤其應(yīng)用在醫(yī)院外科仿真如屏幕診斷等。在一系列外科診斷方法中,最常見的是ROC(Receiver Operating Characteristic),這是一種統(tǒng)計(jì)分析,針對(duì)不同的任務(wù)決定哪些圖像壓縮效果更好或更差。 除了上述提到的四種評(píng)定方法外,還可以采用另外兩種方法來(lái)評(píng)價(jià)壓縮方法:壓縮效率和復(fù)雜度。壓縮效率也經(jīng)常被稱為壓縮比,它指的是原始圖像數(shù)據(jù)與壓縮圖像數(shù)據(jù)的大小比率。復(fù)雜度反映了一種壓縮方法的代價(jià),它可以通過(guò)數(shù)據(jù)操作的數(shù)目來(lái)度量、如加、減,乘運(yùn)算等。 對(duì)于有損壓縮方法的判定,上述六種方法都可以使用,但對(duì)于有損壓縮而言,比較也就只能基于壓縮效率和復(fù)雜度。 本文旨在通過(guò)一組不同類型的圖像(多為醫(yī)療圖像)進(jìn)行壓縮,來(lái)比較哪一種效果更好些。文章的結(jié)構(gòu)如下:第2節(jié)介紹一些圖像壓縮的背景知識(shí);第3節(jié)提供一組無(wú)損圖像方法:哈夫曼編碼壓縮,游長(zhǎng)編碼壓縮,游長(zhǎng)+哈夫曼編碼壓縮(R+H),算術(shù)編碼壓縮,LZW編碼壓縮,JPEG無(wú)損壓縮以及SLIC壓縮方法;第4節(jié)介紹了實(shí)驗(yàn)結(jié)果,并進(jìn)行了一些闡述;第5節(jié)總結(jié)全文。 2 圖像壓縮的原理 對(duì)圖像進(jìn)行壓縮可以不損失過(guò)多的視覺信息,這里主要有三個(gè)原因。首先,由于相鄰像素之間的相關(guān)性,圖像包含相當(dāng)高的空間冗余度。其次,由于圖像中不同色彩組成部分的相關(guān)性,它也包含一定程度的色譜冗余度。第三,人類視覺系統(tǒng)也造成了某種程度的心理視覺冗余度,從理論的角度來(lái)看,應(yīng)針對(duì)圖像數(shù)據(jù)中的冗余信息獲得盡可能高的壓縮度。 空間(統(tǒng)計(jì))冗余度的存在主要在于:當(dāng)所接觸的圖像中的像素值并非完全是隨機(jī)的,它們體現(xiàn)了一定程度的漸進(jìn)變化,人的心理視覺冗余度主要是由于人類視覺系統(tǒng)對(duì)某些空間頻率并不敏感。典型的圖像壓縮系統(tǒng)主要由三部分組成:變換部分(Transformer)、量化部分(Quatizer)、和編碼部分(Coder)。 變換部分 它體現(xiàn)了輸入原始圖像和經(jīng)過(guò)變換的圖像之間的一一對(duì)應(yīng)關(guān)系。變換也稱為去除相關(guān),它減少了圖像中的冗余信息,與輸入原始圖像數(shù)據(jù)相比,變換后的圖像數(shù)據(jù)提供了一種更易于壓縮的圖像數(shù)據(jù)表示形式。 量化部分 量化部分把經(jīng)過(guò)變換的圖像數(shù)據(jù)作為輸入進(jìn)行處理后,會(huì)得到有限數(shù)目的一些符號(hào)。一般而言,這一步會(huì)帶來(lái)信息的損失,而這也恰是有損壓縮方法和無(wú)損壓縮方法之間主要的區(qū)別。在無(wú)損壓縮方法中,這一步驟并不存在,這是一個(gè)不可逆的過(guò)程,原因就在于這是多到一映射,存在有兩種量化類型:標(biāo)量量化與矢量量化,前者是在一個(gè)像素、一個(gè)像素的基礎(chǔ)上量化,而后者對(duì)像素向量進(jìn)行量化。 編碼部分 這是壓縮過(guò)程中最后一個(gè)步驟。這個(gè)部分將經(jīng)過(guò)變換的系數(shù)(量化或未量化)編碼為二進(jìn)制位流,這個(gè)部分可以采用固定長(zhǎng)編碼,或變動(dòng)長(zhǎng)度編碼,前者對(duì)所有符號(hào)賦予等長(zhǎng)的編碼,而后者則對(duì)出現(xiàn)頻率較高的符號(hào)分配較短的編碼,變動(dòng)長(zhǎng)度編碼也叫熵(Entropy)編碼,它能把經(jīng)過(guò)變換得到的圖像系數(shù)(Coefficients)數(shù)據(jù)以較短的信息總長(zhǎng)度來(lái)表示,因而在實(shí)際應(yīng)用中,多采用此類編碼方式,得到的圖像系數(shù)(Coefficients)數(shù)據(jù)可以一個(gè)離散隨機(jī)過(guò)程S來(lái)表示。不同的系數(shù)(Coefficients)值形成一個(gè)字母表A={Ai| i=0,1,…N-1},Ai稱為字母表中的一個(gè)字符,每個(gè)Ai出現(xiàn)的概率記為p(Ai),那么此過(guò)程的熵H(S)可以用下列公式來(lái)表示。 哈夫曼編碼和算術(shù)編碼為兩種熵(Entropy)編碼方式,雖然它們只代表上述三個(gè)步驟中的最后一個(gè)但由于這種編碼方式比定長(zhǎng)編碼能達(dá)到壓縮數(shù)據(jù)的方式它們當(dāng)然也可以認(rèn)為是無(wú)損壓縮的方法。 3 算法與實(shí)現(xiàn) 哈夫曼編碼 仙農(nóng)的論文指出,存在一種對(duì)信息源編碼方法,可以使編碼長(zhǎng)度與熵編碼長(zhǎng)度接近。仙農(nóng)只是說(shuō)明存在這樣的一種算法:即對(duì)信息的編碼有極限值——熵,他并未說(shuō)明如何才能接近這個(gè)極限值。這個(gè)工作是由哈夫曼完成的。哈夫曼編碼對(duì)由較高出現(xiàn)概率的符號(hào)使用較短編碼,較低出現(xiàn)概率的符號(hào)使用較長(zhǎng)的編碼。 游長(zhǎng)編碼 游長(zhǎng)編碼利用了圖像中的重復(fù)像素值,例如,一圖像中往往包含許多連續(xù)的相同像素。這個(gè)方法的主要思想就在于:使用一個(gè)起始像素代表具有相同值的一連續(xù)像素串,用一整數(shù)代表這個(gè)串的長(zhǎng)度。在實(shí)際應(yīng)用中,這種方法并非總能壓縮數(shù)據(jù)。對(duì)于那些具有足夠多的連續(xù)像素串的圖像而言。這種方法可以壓縮,然而對(duì)那些在圖像局部區(qū)域像素值經(jīng)常發(fā)生變化的圖像,這種方法會(huì)增大圖像。 游長(zhǎng)編碼+哈夫曼編碼 這意味著先對(duì)原始圖像進(jìn)行游長(zhǎng)編碼壓縮,然后再對(duì)該壓縮圖像施用哈夫曼編碼再壓縮。有人認(rèn)為這樣一定會(huì)得到更高的壓縮比率,實(shí)驗(yàn)結(jié)果顯示在一些情況下,這種方法得到的壓縮比并不如直接使用哈夫曼編碼進(jìn)行壓縮。 算術(shù)編碼 算術(shù)編碼實(shí)際上是對(duì)具有變化長(zhǎng)度的符號(hào)塊分配變化長(zhǎng)度的編碼。在算術(shù)編碼中有兩個(gè)主要元素:每個(gè)符號(hào)的出現(xiàn)概率及區(qū)間0,1)。通過(guò)例子進(jìn)行描述假設(shè)有4個(gè)符號(hào)00,01,10,11,相應(yīng)的出現(xiàn)概率分別為0.1,0.3,0.4,0.2。對(duì)每個(gè)符號(hào)分配一概率區(qū)間結(jié)果為 假設(shè)有一條信息:01 11 00,在處理每個(gè)符號(hào)時(shí)與這條信息相關(guān)的區(qū)間縮小為分配給該字符的那部分區(qū)間,隨著處理的進(jìn)行區(qū)間變得越來(lái)越小??梢酝ㄟ^(guò)下述例子進(jìn)行說(shuō)明。 [0,0.1)[0.1,0.4)[0.40.8)[0.81.0) 01->區(qū)間 =[0.1,0.4) 11->區(qū)間 =[0.1+(0.4-0.1)×0.8,0.1+(0.4-0.1)×1.0) =[0.1+0.24,0.1+0.3) =[0.34,0.4) 00->區(qū)間 = [0.34+(0.4-0.34)×0,0.34+ (0.4-0.34)×0.1) =[0.340.34+0.006) = [0.34,0.346) 然后這條信息可以編碼為區(qū)間[0.34,0.346),是在0.34,0.346)中的任何數(shù)。 LZW編碼 LZW是一種基于字典算法的壓縮方法。雖然這種方法到70年代后期才出現(xiàn),它主要與日常生活中的很多事物類似,如在一本字典中,一個(gè)單詞唯一由該單詞所在的頁(yè)號(hào)以及本頁(yè)中的次序號(hào)決定,這樣假若一個(gè)人向他人介紹所指的單詞時(shí),他只需指明頁(yè)碼號(hào)及次序號(hào)即可。實(shí)際上這就是一種用地址來(lái)指代信息的方法。在圖像壓縮中,可以采用同樣的方法。一個(gè)像素序列若經(jīng)常出現(xiàn)的話,就可以表示為一個(gè)索引信息。 JPEG無(wú)損壓縮模式 JPEG標(biāo)準(zhǔn)(ISO/IEC IS 10918)定義了基于DCT的操作模式,這種模式是有損圖像壓縮。JPEG無(wú)損編碼模式中定義了一個(gè)無(wú)損處理模式,它將一個(gè)預(yù)測(cè)過(guò)程與哈夫曼編碼或算術(shù)編碼相結(jié)合了。假設(shè)在一幅圖像中,像素x的相鄰像素a,b,c已經(jīng)已知。問(wèn)題就變成了如何預(yù)測(cè)x的像素值。預(yù)測(cè)可由下式給出,x的值用Px表示,可以用JPEG標(biāo)準(zhǔn)中所采用的8個(gè)方程式來(lái)進(jìn)行預(yù)測(cè)。 選擇值 預(yù)測(cè) 0 No prediction 1 Px=a 2 Px=b 3 Px=c 4 Px=a+b-c 5 Px=a+b-c?。? 6 Px=b+a-c?。? 7 Px=a+b /2 將像素的預(yù)測(cè)值與實(shí)際輸入值的差距進(jìn)行哈夫曼編碼或算術(shù)編碼就達(dá)到了壓縮圖像的目的。 SLIC算法 最近在IEEE期刊上有人提出了一種方法SLIC,這也是一種無(wú)損壓縮的方法。其主要思想就 是先將輸入的圖像分解為幾個(gè)不同的部分,然后再用JBIG壓縮這些部分,它是一種基于康拓結(jié)構(gòu)的方法(1982,Kocher and Kunt[1]),但是SLIC克服了原先存在于此類方法中的一些缺點(diǎn),它引出了一種區(qū)域擴(kuò)散的概念。(1)通過(guò)這個(gè)方法得到了一個(gè)不連續(xù)性圖,而不是以往的產(chǎn)生一個(gè)康拓集;(2)基于相鄰的像素差,產(chǎn)生一個(gè)差錯(cuò)圖像;(3)用JBIG來(lái)對(duì)上述兩個(gè)數(shù)據(jù)集合進(jìn)行壓縮比較有效;(4)變換處理不僅出現(xiàn)在區(qū)域擴(kuò)散過(guò)程中,也出現(xiàn)在JBIG算法中。 圖像在經(jīng)過(guò)處理后分為三部分:差錯(cuò)圖像數(shù)據(jù)部分,不連續(xù)索引圖像數(shù)據(jù)部分和高位種子數(shù)據(jù)部分。前兩個(gè)采用JBIG標(biāo)準(zhǔn)編碼,第三部分不經(jīng)壓縮直接存儲(chǔ)。 4 試驗(yàn)結(jié)果及分析 本小節(jié)的主要目的在于評(píng)價(jià)上述幾種無(wú)損圖像壓縮算法的性能。它們被應(yīng)用于16幅圖像上,這組圖像包含生活照片、超聲波圖像及醫(yī)療圖像,醫(yī)療圖像取自一個(gè)3D人頭圖像,所有圖像的大小為256×256/512×512,8位像素。 總的來(lái)說(shuō),SLIC方法的圖像壓縮比最好,JPEG,算術(shù),哈夫曼,游長(zhǎng)+哈夫曼,LZW編碼逐次遞減。 在對(duì)三幅圖的處理上,LZW實(shí)際上沒有壓縮圖像,反而增大了圖像,主要原因就在于這些圖像數(shù)據(jù)由于缺少足夠的重復(fù)像素值,因?yàn)長(zhǎng)ZW使用12位的索引來(lái)代替圖像的8位像素值。 SLIC在對(duì)醫(yī)療圖像的壓縮方面,超過(guò)JPEG而稱為最佳選擇,但在圖像Lenna(512×512)上,它的壓縮比(4.9342)不如JPEG(4.6947)的好,這說(shuō)明SLIC更適用于醫(yī)療圖像,而并非一般圖像。 對(duì)于游長(zhǎng)+哈夫曼編碼,有一點(diǎn)需要說(shuō)明,盡管它對(duì)Lenna,Peper和超聲波圖像壓縮效果比較好,它對(duì)于實(shí)驗(yàn)中采用的醫(yī)療圖像壓縮效果比僅采用哈夫曼編碼效果差,這說(shuō)明采用哈夫曼編碼也可以得到很好的壓縮效果,而采用將游長(zhǎng)和哈夫曼編碼結(jié)合起來(lái)的方法并不能得到較高的壓縮比。
|
|