關於Lempel-Ziv壓縮算法的筆記

關於Lempel-Ziv壓縮算法的筆記

Lempel-Ziv, 簡稱LZ, 擁有LZ77, LZ78, LZW幾種不同的演變算法!LZ是一種典型的字典型壓縮算法, 巧妙的利用字典, 減少信息量。

例子:

原始編碼爲: 1001011011010101011
現在有空字典一個, 首先由第一的bit開始, 索引1對應1,因爲字典中沒有0這個元素, 所以索引2對應0, 第三個bit, 0已經出現在字典中, 我們推後一位01,沒有出現在字典中,因此索引爲3加入字典。 以此類推!

索引最終用二進制方式表示, 我們得到1,0,10,11,01,101,010,1011這8個字典項, 用3位碼可以表示, LZ擴展了一位已表示各個元素間關係。 如下表就是一個完整的字典。

字典
 位置 內容 編碼
 001 10001 
 010 0 0000
 011 10 0010
 100 11 0011
 101 01 0101
 110 101 0111
 111 010 1010
  10111101 

如上所示, 對應的編碼是疊加的內容10, 1的位置爲001, 10爲001+0=0010, 以此類推!

在實際應用中, 使用的是LZ77, LZ78之類的算法。使用的是即時編碼的方式,一邊編碼一邊加入字典。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章