| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1902 人关注过本帖
标题:压缩法新理念,最低2倍最高N倍压缩率,(算法)
只看楼主 加入收藏
夜话子
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-10-10
收藏
 问题点数:0 回复次数:1 
压缩法新理念,最低2倍最高N倍压缩率,(算法)
压缩法
首先建立一个64位的二进制组合表,共4096组并为每组加上编号
二进制表的编号是用16位二进制数表示。如:0001就是(0000、0000、0000、0001)
然后将压缩文件的数据(二进制形式),从第一位开始向后每64位一组,进行分组,直到将压缩文件的数据全部分组。并将每组数据对照二进制组合表,找到每组对应的编号。
如果最后的一组数据不足64位将其取出进行尾数处理。
尾数处理:
将不足64位的数据,记录该数据为多少位,然后将不足的位数补充为0,并找到补充后的数据在建立好的二进制组合表内对应的编号。
如:12(不足64位数据的位数)3140(不足数据补齐后对应的编号)01(第一次处理)
将分好的数据从第一组开始每4组合并为一组,如果最后一组不足64位进行尾数处理。
将合并好的每组数据再次进行对照,找出在组合表内对应的编号。
如:1172 3437 2243 3244 2257 3314 1145 2235 1110
1172343722433244  2257331411452235  (这是编号没有转成二进制形式)
1110(将不足的进行尾数处理)
重复处理,直到得出最后数组不满64位无法转换,记录最后的一组数对应的编号。最终压缩法得出一组数
如:
12(不足64位数组的数位)3140(不足数组补齐后对应的编号)01(第一次转换)、、、、、、(省略号为每次转换时处理尾数得到的数据,如果不需要进行尾数处理则得出00(无尾数)0N(第N次转换))、、、、、、2333(这是最后一组数)

解压法反过来就可以了

搜索更多相关主题的帖子: 压缩文件 二进制 记录 
2016-10-10 10:21
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
任何压缩算法都不可能将无规律乱码无损压缩到一半大小,赫夫曼压缩算法有时会让压缩后的长度大于压缩前的长度(该算法会有一个编码表,大概和你的思路类似)。
行动大于空想,等你实践出来了再宣布你的伟大成果吧
2016-10-12 09:22
快速回复:压缩法新理念,最低2倍最高N倍压缩率,(算法)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029819 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved