王 平
[摘 要]通常所說的圖象文件即位圖(Bitmap),又稱光柵圖(Raster graphics),是使用像素陣列來表示的圖像,每個像素的色彩信息由RGB組合或者灰度值表示。根據(jù)顏色信息所需的數(shù)據(jù)位分為1、4、8、16、24及32位等,位數(shù)越高顏色越豐富,相應的數(shù)據(jù)量越大。通常使用24位RGB組合數(shù)據(jù)位表示的的位圖稱為真彩色位圖。圖像壓縮是數(shù)據(jù)壓縮技術(shù)在數(shù)字圖像上的應用,它的目的是減少圖像數(shù)據(jù)中的冗余信息從而用更加高效的格式存儲和傳輸數(shù)據(jù)。圖像壓縮可以是有損數(shù)據(jù)壓縮也可以是無損數(shù)據(jù)壓縮。
[關(guān)鍵詞]圖像文件(Image File) 壓縮(compression) 算法(Algorithm)
作者簡介:王平,男,河南經(jīng)貿(mào)職業(yè)學院,工藝美術(shù)系,研究方向:電腦藝術(shù)。
電腦中的圖片類型大致分為兩類,位圖圖像和矢量圖形。矢量圖主要用于電腦創(chuàng)作的卡通圖及數(shù)學上的規(guī)則圖形等,而通常生活中接觸較多的,如數(shù)碼照片,掃描進電腦的圖片都是位圖。
對于矢量圖來說,壓縮是沒有必要的,因為矢量圖是通過命令來實現(xiàn)的,并不是以點陣的形式表現(xiàn),所以無論你把他放多大,縮多小,它的命令還是那幾條,根本就沒有改變,而且格式也是沒法改變的,如果改變格式的話將會失去矢量圖的各種功能,所以本文就不討論矢量圖,主要談談位圖的壓縮技術(shù)。
對于位圖的壓縮,從根本上來說有兩種方法:
第一種方法,格式類型轉(zhuǎn)換壓縮
這種途徑就是利用一些技術(shù),對圖象重新編碼。對于圖片文件,擴展名有很多,如bmp、jpeg(jpg)、gif等等很多很多,每一種方件格式都對應一種圖像的編碼,在這么多編碼中,jpeg技術(shù)可以達到少損(不能說無損)壓縮圖片,如果圖片的文件擴展名是。BMP,那么就應該先用這種方式可以直接轉(zhuǎn)換為擴展名是。JPG的壓縮圖片,壓縮后的圖片大小甚至不到原來的十分之一。操作方法很簡單,用windowXP自帶的畫圖板將圖片打開,然后另存為的時候,把格式選擇成jpg或jpeg就可以了。如果是windows2000操作系統(tǒng),無法用畫圖板保存為jpg文件,可以在開始菜單選擇程序-〉附件-〉圖象處理來完成上述操作,操作方法一樣。也可以用QQ的自動轉(zhuǎn)換功能來轉(zhuǎn)換圖片格式,方法是將一幅圖片發(fā)給別人,然后“右單擊”QQ上顯示的圖片,選擇另存為。那么保存后的圖片便是被壓縮后的圖片。當然也有很多的軟件都會帶有這種功能,特別是需要批量處理的時候建議最好使用軟件的幫助,如PhotoShop,ACDSEE。
現(xiàn)在最流行的技術(shù)就是采用jpeg編碼壓縮圖片:壓縮文件的基本原理是查找文件內(nèi)的重復字節(jié),并建立一個相同字節(jié)的“詞典”文件,并用一個代碼表示,比如在文件里有幾處有一個相同的詞"中華人民共和國"用一個代碼表示并寫入“詞典”文件,這樣就可以達到縮小文件的目的。
由于計算機處理的信息是以二進制數(shù)的形式表示的,因此壓縮軟件就是把二進制信息中相同的字符串以特殊字符標記來達到壓縮的目的。為了有助于理解文件壓縮,請在腦海里想象一幅藍天白云的圖片。對于成千上萬單調(diào)重復的藍色像點而言,與其一個一個定義“藍、藍、藍……”長長的一串顏色,還不如告訴電腦:“從這個位置開始存儲1117個藍色像點”來得簡潔,而且還能大大節(jié)約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結(jié)底都是以“1”和“0”的形式存儲的,和藍色像點一樣,只要通過合理的數(shù)學計算公式,文件的體積都能夠被大大壓縮以達到“數(shù)據(jù)無損稠密”的效果??偟膩碚f,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數(shù)據(jù)不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用于動畫、聲音和圖像文件中,典型的代表就是影碟文件格式mpeg、音樂文件格式mp3和圖像文件格式jpg。但是更多情況下壓縮數(shù)據(jù)必須準確無誤,人們便設(shè)計出了無損壓縮格式,比如常見的zip、rar等。壓縮軟件(compression software)自然就是利用壓縮原理壓縮數(shù)據(jù)的工具,壓縮后所生成的文件稱為壓縮包(archive),體積只有原來的幾分之一甚至更小。當然,壓縮包已經(jīng)是另一種文件格式了,如果想使用其中的數(shù)據(jù),首先得用壓縮軟件把數(shù)據(jù)還原,這個過程稱作解壓縮。常見的壓縮軟件有winzip、winrar等。
有兩種形式的重復存在于計算機數(shù)據(jù)中,zip就是對這兩種重復進行了壓縮。
一種是短語形式的重復,即三個字節(jié)以上的重復,對于這種重復,zip用兩個數(shù)字:1。重復位置距當前壓縮位置的距離;2。重復的長度,來表示這個重復,假設(shè)這兩個數(shù)字各占一個字節(jié),于是數(shù)據(jù)便得到了壓縮,這很容易理解。
一個字節(jié)有 0 - 255 共 256 種可能的取值,三個字節(jié)有 256 * 256 * 256 共一千六百多萬種可能的情況,更長的短語取值的可能情況以指數(shù)方式增長,出現(xiàn)重復的概率似乎極低,實則不然,各種類型的數(shù)據(jù)都有出現(xiàn)重復的傾向,一篇論文中,為數(shù)不多的術(shù)語傾向于重復出現(xiàn);一篇小說,人名和地名會重復出現(xiàn);一張上下漸變的背景圖片,水平方向上的像素會重復出現(xiàn);程序的源文件中,語法關(guān)鍵字會重復出現(xiàn),以幾十 K 為單位的非壓縮格式的數(shù)據(jù)中,傾向于大量出現(xiàn)短語式的重復。經(jīng)過上面提到的方式進行壓縮后,短語式重復的傾向被完全破壞,所以在壓縮的結(jié)果上進行第二次短語式壓縮一般是沒有效果的。
第二種重復為單字節(jié)的重復,一個字節(jié)只有256種可能的取值,所以這種重復是必然的。其中,某些字節(jié)出現(xiàn)次數(shù)可能較多,另一些則較少,在統(tǒng)計上有分布不均勻的傾向,這是容易理解的,比如一個 ASCII 文本文件中,某些符號可能很少用到,而字母和數(shù)字則使用較多,各字母的使用頻率也是不一樣的,據(jù)說字母 e 的使用概率最高;許多圖片呈現(xiàn)深色調(diào)或淺色調(diào),深色(或淺色)的像素使用較多(png 圖片格式是一種無損壓縮,其核心算法就是 zip 算法,它和 zip 格式的文件的主要區(qū)別在于:作為一種圖片格式,它在文件頭處存放了圖片的大小、使用的顏色數(shù)等信息);上面提到的短語式壓縮的結(jié)果也有這種傾向:重復傾向于出現(xiàn)在離當前壓縮位置較近的地方,重復長度傾向于比較短(20字節(jié)以內(nèi))。這樣,就有了壓縮的可能:給 256 種字節(jié)取值重新編碼,使出現(xiàn)較多的字節(jié)使用較短的編碼,出現(xiàn)較少的字節(jié)使用較長的編碼,這樣一來,變短的字節(jié)相對于變長的字節(jié)更多,文件的總長度就會減少,并且,字節(jié)使用比例越不均勻,壓縮比例就越大。
第二種方法:圖片大小的調(diào)節(jié)或者叫做是分辨率的調(diào)節(jié)
這種方法其實就是改變圖片的尺寸大小,一張3000*2000的照片,將其大小調(diào)整為600*400 它的大小將變?yōu)樵瓉淼?25分之1。當然就位圖表示的原理還可以考慮減少圖象的顏色數(shù),但一般不這樣處理。windowsXP操作系統(tǒng)的用戶可以用系統(tǒng)自帶的畫圖板進行修改,操作方法很簡單,將圖片用畫圖板打開后,在“圖像”菜單里面選擇“拉伸/扭曲”(或者用快捷見ctrl+w),輸入要縮小的比例,最后保存圖片。
目前互聯(lián)網(wǎng)上還出了不少個人開發(fā)的專用于圖片體積壓縮的專門軟件,如MyPhotoZip、JpegImager、ImageOptimizer等,使用它們還可以對圖片進行更加精準的體積壓縮,不過這些軟件的使用相對會比較麻煩一點。但是采用的原理無非就是上面所說的兩種方法。
圖象的數(shù)字化表示使得圖象信號可以高質(zhì)量地傳輸,并便于圖像的檢索、分析、處理和存儲。但是數(shù)字圖像的表示需要大量的數(shù)據(jù),必須進行數(shù)據(jù)的壓縮。即使采用多種方法對數(shù)據(jù)進行了壓縮,其數(shù)據(jù)量仍然巨大,對傳輸介質(zhì)、傳輸方法和存儲介質(zhì)的要求較高。因此圖象壓縮編碼技術(shù)的研究顯得特別有意義,也正是由于圖象壓縮編碼技術(shù)及傳輸技術(shù)的不斷發(fā)展、更新,推動了現(xiàn)代多媒體技術(shù)應用的迅速發(fā)展。
參考文獻
[1]鄧魯華,《數(shù)字圖像處理》,機械工業(yè)出版社,2005
[2]DavidAForsyth,《計算機視覺 一種現(xiàn)代的方法》,清華大學出版社,2004