关于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之类的算法。使用的是即时编码的方式,一边编码一边加入字典。

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