困扰了我很多天的压缩问题,希望有谁能帮我解决一下,谢谢

[复制链接]
查看11 | 回复1 | 2013-1-15 13:19:38 | 显示全部楼层 |阅读模式
像这种总长度比较小的数据,不太容易使用常见的压缩算法得到好的压缩效果,但是根据你的特殊情况,可以考虑一些定制的方法。首先,我把你的数据范围理解为任意个值在[0,16]或[0,32]之间的整型值,那么,设值范围为[0,N],原文长度为M,则以下方法可以达到压缩后长度为ceiling((N+1+M)/8)字节。其中ceiling是向上取整。压缩方法:首先,统计原文中每个数值的出现次数;然后,从最小值开始,按位进行编码。若该未出现,编码段为空,否则编码段与该值出现次数等长的‘1’的序列。这里的‘1’是二进制的1,占1位;每编码完一个值,在输出序列里加入一个‘0’进行分隔。以你举的16{14,7,8,6,4,2,2,7,2,6,10,7...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行