游程编码

维基百科,自由的百科全书
跳转至: 导航搜索

游程編碼RLErun-length encoding),又译行程長度編碼,又称變動長度編碼法run coding),在控制论中对于二值图像而言是一种编码方法,对连续的黑、白像素数(游程)以不同的码字进行编码。游程编码是一种簡單的非破壞性資料壓縮法,其好處是加壓縮和解壓縮都非常快。其方法是計算連續出現的資料長度壓縮之,其缺點是對於不重覆的資料反而加大容量。

例如有一張圖片,以W表示白色,B表示黑色:

 WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW

使用這個壓縮法便可得到

 12W1B12W3B24W1B14W

更先進的演算法如DEFLATE都是基於將重覆出現的資料「壓縮」的想法。

常見的遊程編碼格式包括TGAPackbitsPCX以及ILBM

遊程長度編碼是一種無損數據壓縮,非常適合基於調色板的圖標圖像。但是它並不適用於連續色調圖像的壓縮,例如日常生活中的照片;JPEG格式是一個反例,JPEG在對圖像進行轉換和離散化後有效地使用了遊程長度壓縮。

遊程長度編碼還用於傳真機(並和其他技巧一起組成了修改過的huffman編碼)。相對而言,遊程長度編碼是比較有效的,因為傳真的文檔主要是黑白的(二值文檔)。

參見[编辑]