當前位置:成語大全網 - 書法字典 - LZW算法簡介

LZW算法簡介

字符串與代碼的對應關系是在壓縮過程中動態生成的,它隱藏在壓縮後的數據中。解壓時根據表恢復,算是無損壓縮。

根據倫佩爾-齊夫-韋爾奇編碼(簡稱LZW)的壓縮算法,可以用任何語言實現。

LZW壓縮算法的基本概念:LZW壓縮有三個重要對象:CharStream、CodeStream和編譯表。編碼時,數據流是輸入對象(文本文件的數據序列),編碼後的流是輸出對象(壓縮操作後的編碼數據);解碼時,編碼流是輸入對象,數據流是輸出對象。編譯表是壹個在編碼和解碼中都需要使用的對象。

字符:最基本的數據元素,是文本文件中的壹個字節,是柵格數據中指定顏色列表中像素顏色的索引值;

字符串:由幾個連續的字符組成;

前綴:也是字符串,但壹般用在另壹個字符之前,長度可以是0;

根:長度的字符串;

Code:壹個數字,按照固定長度(碼長)從編碼流中取出,用於編譯表的映射值;Pattern:根據不定長度從數據流中讀取並映射到編譯表項的字符串。

LZW壓縮算法的基本原理是從原始文本文件數據中提取不同的字符,基於這些字符創建壹個編譯表,然後用編譯表中字符的索引替換原始文本文件數據中相應的字符,以減小原始數據的大小。看似類似於調色板圖像的實現原理,但需要註意的是,這裏的編譯表不是事先創建的,而是根據原始文件數據動態創建的,解碼時要從編碼數據中恢復出原始編譯表。