[轉]行程編碼(Run Length Encoding)和算術編碼


行程編碼(Run-Length Encoding)

僅存儲一個像素值以及具有相同顏色的像素數目的圖象數據編碼方式稱為行程編碼,或稱游程編碼,常用RLE(Run-Length Encoding)表示。該壓縮編碼技術相當直觀和經濟,運算也相當簡單,因此解壓縮速度很快。RLE壓縮編碼尤其適用於計算機生成的圖形圖像,對減少存儲容量很有效果。

在此方式下每兩個字節組成一個信息單元。第一個字節給出其后面相連的象素的個數。第二個字節給出這些象素使用的顏色索引表中的索引。例如:信息單元03 04,03表示其后的象素個數是3個,04表示這些象素使用的是顏色索引表中的第五項的值。壓縮數據展開后就是04 04 04 .同理04 05 可以展開為05 05 05 05. 信息單元的第一個字節也可以是00,這種情況下信息單元並不表示數據單元,而是表示一些特殊的含義。這些含義通常由信息單元的第二個字節的值來描述。

 

http://www.cnblogs.com/lookof/archive/2008/07/11/1241125.html

算術編碼、游程編碼都屬於無損壓縮。

算術編碼(Arithmetic coding

算術編碼是一種無損數據壓縮方法,也是一種熵編碼的方法。和其它熵編碼方法不同的地方在於,其他的熵編碼方法通常是把輸入的消息分割為符號,然后對每個符號進行編碼。而算術編碼是直接把整個輸入的消息編碼為一個數,一個滿足(0.0 ≤ n < 1.0)的小數n。

算術編碼用到兩個基本的參數:符號的概率和它的編碼間隔。信源符號的概率決定壓縮編碼的效率,也決定編碼過程中信源符號的間隔,而這些間隔包含在0到1之間。

算術編碼的算法思想如下:
(1)對一組信源符號按照符號的概率從大到小排序,將[0,1)設為當前分析區間。按信源符號的概率序列在當前分析區間划分比例間隔。
(2)檢索“輸入消息序列”,鎖定當前消息符號(初次檢索的話就是第一個消息符號)。找到當前符號在當前分析區間的比例間隔,將此間隔作為新的當前分析區間。並把當前分析區間的起點(即左端點)指示的數“補加”到編碼輸出數里。當前消息符號指針后移。
(3)仍然按照信源符號的概率序列在當前分析區間划分比例間隔。然后重復第二步。直到“輸入消息序列”檢索完畢為止。
(4)最后的編碼輸出數就是編碼好的數據。

clip_image002
在算術編碼中需要注意幾個問題:
(1)由於實際計算機的精度不可能無限長,運算中出現溢出是一個明顯的問題,但多數及其都有16位,32位或者64位的精度,因此這個問題可以使用比例縮放方法解決。
(2)算術編碼器對整個消息只產生一個碼字,這個碼字是在間隔[0,1)中的一個實數,因此譯碼器在接受到表示這個實數的所有位之前不能進行譯碼。
(3)算術編碼是一種對錯誤很敏感的編碼方法,如果有一位發生錯誤就會導致整個消息譯錯。

算術編碼可以是靜態的或者是自適應的。在靜態算術編碼中,信源符號的概率是固定的。在自適應算術編碼中,信源符號的概率根據編碼時符號出現的頻率動態地進行修改,在編碼期間估算信源符號概率的過程叫做建模。需要開發動態算術編碼的原因是因為事前知道精確的信源概率是很難的,而且不切實際。當壓縮消息時,不能期待一個算術編碼器獲得最大的效率,所能做的最有效的方法是在編碼過程中估算概率。因此動態建模就成為確定編碼器壓縮效率的關鍵。

 

游程編碼(RLE編碼——Run Length Encoding

游程編碼又稱“運行長度編碼”或“行程編碼”,是一種統計編碼,該編碼屬於無損壓縮編碼。對於二值圖有效。
行程編碼的基本原理是:用一個符號值或串長代替具有相同值的連續符號(連續符號構成了一段連續的“行程”。行程編碼因此而得名),使符號長度少於原始數據的長度。

例如:5555557777733322221111111

行程編碼為:(5,6)(7,5)(3,3)(2,4)(l,7)。可見,行程編碼的位數遠遠少於原始字符串的位數。

在對圖像數據進行編碼時,沿一定方向排列的具有相同灰度值的像素可看成是連續符號,用字串代替這些連續符號,可大幅度減少數據量。
行程編碼分為定長行程編碼和不定長行程編碼兩種類型。
行程編碼是連續精確的編碼,在傳輸過程中,如果其中一位符號發生錯誤,即可影響整個編碼序列,使行程編碼無法還原回原始數據。

游程編碼所能獲得的壓縮比有多大,主要取決於圖像本身的特點。如果圖像中具有相同顏色的圖像塊越大,圖像塊數目越少,獲得的壓縮比就越高。反之,壓縮比就越小。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM