技术分享
【数据压缩】基于字典的压缩算法 DICTIONARY TECHNIQUES
2016-07-06
5.2
1.计算至少在挑选出的字典中出现pattern的概率是多大时才能有压缩效果
2.
5.3 static dictionary:application-specified
5.4 adaptive dictionary
1.LZ77
——》3种在LZ77编码过程中可能出现的情况
——》LZ77解码过程
——》LZ77特点:
1)“似乎”不需要对信源提前有任何知识(不是static,而是在发送过程中不断建立起对于信源知识,即adaptive);
2)(不太理解)“渐进情况下的” 最优性
3)因为用的是recent portions of sequece,所以LZ77有个“隐含的”假设,即pattern最有可能出现在刚刚的sequence中,即pattern往往发生的距离挨得很近——下面的LZ78没有这个假设。
——》LZ77改进:
1)对于triple的更有效编码:使用前面几章的VL编码(变长编码)而不是用固定长度进行编码
2)改进search-buffer中的存储方式,使得搜索起来更快
3)LZSS:增加一个flag bit,用以eliminate triple中的最后一个域
2.LZ78
——》对LZ77最恶劣的情形:重复的地方正好在searchi-window之外。这是由LZ77的假设带来的。而LZ78用明显的字典,因此没有这种假设(实际上,如果字典的更新策略为顺序更新的话,则等价于LZ77)
——》LZ78编码示例
——》LZ78一个serious drawback:字典不断增大。解决办法:一,及时删减字典;二,到了某个时刻转为fixed dictionary scheme
——》LZ78的一个改进:LZW,使得使用发送index即可。(LZW编码过程,译码过程。)
——》LZW译码过程中的一个特殊情形abababab...:译码示例。说明LZWdecoder需要包含一个handler来处理这种情况,实际上,稍作改动就可以不用这个handler了(特殊情形下的译码需要handler,我的改进无需handler,但是输出和原LZW不太一样哦)

- 标签:
-
云计算