Posted on 2006-10-02 21:03
neter 閱讀(619)
評論(0) 編輯 收藏 引用 所屬分類:
數字圖像
一、行程長度壓縮
原理是將一掃描行中的顏色值相同的相鄰像素用一個計數值和那些像素的顏色值來代替。例如:aaabccccccddeee,則可用3a1b6c2d3e來代替。對于擁有大面積,相同顏色區域的圖像,用RLE壓縮方法非常有效。由RLE原理派生出許多具體行程壓縮方法:
1.PCX行程壓縮方法:
該算法實際上是位映射格式到壓縮格式的轉換算法,該算法對于連續出現1次的字節Ch,若Ch>0xc0則壓縮時在該字節前加上0xc1,否則直接輸出Ch,對于連續出現N次的字節Ch,則壓縮成0xc0+N,Ch這兩個字節,因而N最大只能為ff-c0=3fh(十進制為63),當N大于63時,則需分多次壓縮。
2.BI_RLE8壓縮方法:
在WINDOWS3.0、3.1的位圖文件中采用了這種壓縮方法。該壓縮方法編碼也是以兩個字節為基本單位。其中第一個字節規定了用第二個字節指定的顏色重復次數。如編碼0504表示從當前位置開始連續顯示5個顏色值為04的像素。當第二個字節為零時第二個字節有特殊含義:0表示行末;1
表示圖末;2轉義后面2個字節,這兩個字節分別表示下一像素相對于當前位置的水平位移和垂直位移。這種壓縮方法所能壓縮的圖像像素位數最大為8位(256色)圖像。
3.BI_RLE壓縮方法:
該方法也用于WINDOWS3.0/3.1位圖文件中,它與BI_RLE8編碼類似,唯一不同是:BI_RLE4的一個字節包含了兩個像素的顏色,因此,它只能壓縮的顏色數不超過16的圖像。因而這種壓縮應用范圍有限。
4.緊縮位壓縮方法(Packbits):
該方法是用于Apple公司的Macintosh機上的位圖數據壓縮方法,TIFF規范中使用了這種方法,這種壓縮方法與BI_RLE8壓縮方法相似,如1c1c1c1c2132325648壓縮為:831c2181325648,顯而易見,這種壓縮方法最好情況是每連續128個字節相同,這128個字節可壓縮為一個數值7f。這種方法還是非常有效的。
二、霍夫曼編碼壓縮:
也是一種常用的壓縮方法。是1952年為文本文件建立的,其基本原理是頻繁使用的數據用較短的代碼代替,很少使用的數據用較長的代碼代替,每個數據的代碼各不相同。這些代碼都是二進制碼,且碼的長度是可變的。如:有一個原始數據序列,ABACCDAA則編碼為A(0),B(10),C(110),D111),壓縮后為010011011011100。產生霍夫曼編碼需要對原始數據掃描兩遍,第一遍掃描要精確地統計出原始數據中的每個值出現的頻率,第二遍是建立霍夫曼樹并進行編碼,由于需要建立二叉樹并遍歷二叉樹生成編碼,因此數據壓縮和還原速度都較慢,但簡單有效,因而得到廣泛的應用。
三、LZW壓縮方法
LZW壓縮技術比其它大多數壓縮技術都復雜,壓縮效率也較高。其基本原理是把每一個第一次出現的字符串用一個數值來編碼,在還原程序中再將這個數值還成原來的字符串,如用數值0x100代替字符串"abccddeee"這樣每當出現該字符串時,都用0x100代替,起到了壓縮的作用。至于0x100與字符串的對應關系則是在壓縮過程中動態生成的,而且這種對應關系是隱含在壓縮數據中,隨著解壓縮的進行這張編碼表會從壓縮數據中逐步得到恢復,后面的壓縮數據再根據前面數據產生的對應關系產生更多的對應關系。直到壓縮文件結束為止。LZW是可逆的,所有信息全部保留。
四、算術壓縮方法
算術壓縮與霍夫曼編碼壓縮方法類似,只不過它比霍夫曼編碼更加有效。算術壓縮適合于由相同的重復序列組成的文件,算術壓縮接近壓縮的理論極限。這種方法,是將不同的序列映像到0到1之間的區域內,該區域表示成可變精度(位數)的二進制小數,越不常見的數據要的精度越高(更多的位數),這種方法比較復雜,因而不太常用。
五、JPEG(聯合攝影專家組JointPhotographicExprertsGroup)
JPEG標準與其它的標準不同,它定義了不兼容的編碼方法,在它最常用的模式中,它是帶失真的,一個從JPEG文件恢復出來的圖像與原始圖像總是不同的,但有損壓縮重建后的圖像常常比原始圖像的效果更好。JPEG的另一個顯著的特點是它的壓縮比例相當高,原圖像大小與壓縮后的圖像大小相比,比例可以從1%到80~90%不等。這種方法效果也好,適合多媒體系統。