例如:一張A4(210mm×297mm) 幅面的照片,若用中等分辨率(300dpi)的掃描儀按真彩色掃描,其數(shù)據(jù)量為多少?共有210*297/25.4/25.4*300=29002個(gè)象素,每個(gè)像素是24位,其數(shù)據(jù)量為29002*24=696Kb。
(補(bǔ)充說(shuō)明dpi代表每平方英寸的點(diǎn)數(shù),1英寸=1000mil=25.4mm)
例如,一幅具有中等分辨率(640*480像素)真彩色圖像(24位/像素),它的數(shù)據(jù)量約為每幀640*480*24=7.37Mb。若要達(dá)到每秒25幀的全動(dòng)態(tài)顯示要求,每秒所需的數(shù)據(jù)量為184Mb,而且要求系統(tǒng)的數(shù)據(jù)傳輸速率必須達(dá)到184Mb/s,這在目前是無(wú)法達(dá)到的。
再例如:對(duì)聲音,用16位/樣值的PCM編碼,采樣速率選為44.1kHz,則雙聲道立體聲聲音每秒將有44.1*16*2=176KB的數(shù)據(jù)量,而1分鐘的數(shù)據(jù)量則為176KB*60=10.56MB,而一首歌通常在3-5分鐘,可想而知如果不進(jìn)行數(shù)據(jù)壓縮存儲(chǔ)量和交換量都相當(dāng)驚人。
總之,大數(shù)據(jù)量的圖象信息會(huì)給存儲(chǔ)器的存儲(chǔ)容量,通信干線信道的帶寬,以及計(jì)算機(jī)的處理速度增加極大的壓力。單純靠增加存儲(chǔ)器容量,提高信道帶寬以及計(jì)算機(jī)的處理速度等方法來(lái)解決這個(gè)問(wèn)題是不現(xiàn)實(shí)的,這時(shí)就要考慮壓縮。
壓縮的理論基礎(chǔ)是信息論。從信息論的角度來(lái)看,壓縮就是去掉信息中的冗余,即保留不確定的信息,去掉確定的信息(可推知的),也就是用一種更接近信息本質(zhì)的描述來(lái)代替原有冗余的描述。這個(gè)本質(zhì)的東西就是信息量(即不確定因素)。
壓縮可分為兩大類:第一類壓縮過(guò)程是可逆的,也就是說(shuō),從壓縮后的圖象能夠完全恢復(fù)出原來(lái)的圖象,信息沒(méi)有任何丟失,稱為無(wú)損壓縮;第二類壓縮過(guò)程是不可逆的,無(wú)法完全恢復(fù)出原圖象,信息有一定的丟失,稱為有損壓縮。選擇哪一類壓縮,要折衷考慮,盡管我們希望能夠無(wú)損壓縮,但是通常有損壓縮的壓縮比(即原圖象占的字節(jié)數(shù)與壓縮后圖象占的字節(jié)數(shù)之比,壓縮比越大,說(shuō)明壓縮效率越高)比無(wú)損壓縮的高。
圖象壓縮一般通過(guò)改變圖象的表示方式來(lái)達(dá)到,因此壓縮和編碼是分不開(kāi)的。圖象壓縮的主要應(yīng)用是圖象信息的傳輸和存儲(chǔ),可廣泛地應(yīng)用于廣播電視、電視會(huì)議、計(jì)算機(jī)通訊、傳真、多媒體系統(tǒng)、醫(yī)學(xué)圖象、衛(wèi)星圖象等領(lǐng)域。
壓縮編碼的方法有很多,主要分成以下四大類:(1)象素編碼;(2)預(yù)測(cè)編碼;(3)變換編碼;(4)其它方法。
所謂象素編碼是指,編碼時(shí)對(duì)每個(gè)象素單獨(dú)處理,不考慮象素之間的相關(guān)性。在象素編碼中常用的幾種方法有:(1)脈沖編碼調(diào)制(Pulse Code Modulation,簡(jiǎn)稱PCM);(2)熵編碼(Entropy Coding);(3)行程編碼(Run Length Coding);(4)位平面編碼(Bit Plane Coding)。其中我們要介紹的是熵編碼中的哈夫曼(Huffman)編碼和行程編碼(以讀取.PCX文件為例)。
所謂預(yù)測(cè)編碼是指,去除相鄰象素之間的相關(guān)性和冗余性,只對(duì)新的信息進(jìn)行編碼。舉個(gè)簡(jiǎn)單的例子,因?yàn)橄笏氐幕叶仁沁B續(xù)的,所以在一片區(qū)域中,相鄰象素之間灰度值的差別可能很小。如果我們只記錄第一個(gè)象素的灰度,其它象素的灰度都用它與前一個(gè)象素灰度之差來(lái)表示,就能起到壓縮的目的。如248,2,1,0,1,3,實(shí)際上這6個(gè)象素的灰度是248,250,251,251,252,255。表示250需要8個(gè)比特,而表示2只需要兩個(gè)比特,這樣就實(shí)現(xiàn)了壓縮。
常用的預(yù)測(cè)編碼有Δ調(diào)制(Delta Modulation,簡(jiǎn)稱DM);微分預(yù)測(cè)編碼(Differential Pulse Code Modulation,DPCM),具體的細(xì)節(jié)在此就不詳述了。
所謂變換編碼是指,將給定的圖象變換到另一個(gè)數(shù)據(jù)域(如頻域)上,使得大量的信息能用較少的數(shù)據(jù)來(lái)表示,從而達(dá)到壓縮的目的。變換編碼有很多,如(1)離散傅立葉變換(Discrete Fourier Transform,簡(jiǎn)稱DFT);(2)離散余弦變換(Discrete Cosine Transform,簡(jiǎn)稱DCT);(3)離散哈達(dá)瑪變換(Discrete Hadamard Transform,簡(jiǎn)稱DHT)。
其它的編碼方法也有很多,如混合編碼(Hybird Coding)、矢量量化(Vector Quantize,VQ) 、LZW算法。在這里,我們只介紹LZW算法的大體思想。