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