参考材料:数据压缩导论 Sayood(第6章)
——》这是几乎不需要对于信源预先的assumptions about the statistics of the data的压缩算法
**********************************************************
6.2 introduction
——》从chap3,4知道probability more skewed将可以带来更大的压缩;
——》在编码当前字符时不考虑前面的字符(我觉得等价于字符之间相互独立),和考虑前面的字符(context)是不一样的。考虑context会带来more skewed probability distribution;且context也分低阶context如first-order context和高阶context
——》用context-based的方法的困难在于所有可能的context数量是随着context的阶数呈指数增加;有一系列的算法就是解决这个问题,基本思路是“ppm:prediction with partial match”
**********************************************************
6.3 PPM
——》ppm不是“提前”存储所有可能的context,而是在编码过程中不断存储context。这样就不会存储那些所有可能的但是却不会实际出现的context(事实上,实际出现的context只占所有的可能中一小部分)。这样解决了上面context数量随指数增长的问题
——》但不提前计算“所有”的context下发送的字符带来一个问题,有些情况在发送时没有对应的计算结果。解决办法:escape symbol。用来标识现在发送的是不是已经存在于context表中。
1.basic ppm algorithm: 基本方法的编码示例
改进:
2.对escape symbol的改进
3.对于context最大长度的考虑
——》似乎context的长度越大越好,不过事实却是不一定:
第一个原因不太懂;第二是最大context长度越长,可能发出的escape symbol也会越多。
——》ppm*——ppmz