整数序列压缩的方法简记
(2011-06-11 11:01:42)
标签:
杂谈 |
假定有如下整数序列:
1 2 3 2 3 4 5 4 5 6 7 8 9 8 9 10
如果每个数字看做一个symbol,那么
P(1)=P(6)=P(7)=P(10)=1/16
P(2)=P(3)=P(4)=P(5)=P(8)=P(9)=2/16
则需要H = -ΣP(i)*log(P(i)) = 3.25bit。表示每个整形极限压缩为3.25bit
我们用Xn = Xn-1
序列则有
1 1 1 -1 1 1 1 -1 1 1 1 1 1
P(1) = 13/16
P(-1) = 3/16
这样计算下来是0.7bit每个整数。
通过求差的方法人为制造了更少的symbol,更多的重复,有些情况可能Xn = 2*Xn-1 + Rn会更好。
在Rn上还可以做一些文章,如果后面我看到前人已有类似工作,我就写出来,否则就写到自己的论文中。
此外就是上次提到的字典法,把{2 3},{4,5},{8,9}看做是一个symbol,在字典中插入一个这样的common requentely occurred string。解码时通过查表得到解压后的符号。
在数据库中,整数序列压缩是特别重要,key是整数序列,location(pointers)也是整数序列。
后一篇:[转载]青海行

加载中…