[发明专利]一种哈夫曼编码方法、系统、装置及可读存储介质在审
| 申请号: | 202110919366.9 | 申请日: | 2021-08-11 |
| 公开(公告)号: | CN113708772A | 公开(公告)日: | 2021-11-26 |
| 发明(设计)人: | 张永兴;刘宇豪;王江;孙华锦 | 申请(专利权)人: | 山东云海国创云计算装备产业创新中心有限公司 |
| 主分类号: | H03M7/40 | 分类号: | H03M7/40 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘翠香 |
| 地址: | 250001 山东省济南市自由贸易试验*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 哈夫曼 编码 方法 系统 装置 可读 存储 介质 | ||
本申请公开了一种哈夫曼编码方法、系统、装置及可读存储介质,该方法包括:获取目标文件中的目标数据块;对目标数据块进行频率分布统计,得到第一频率分布结果;利用第一频率分布结果和目标文件中的预设数据块的频率分布结果,得到第二频率分布结果;利用第一频率分布结果构建第一哈夫曼树;判断第一哈夫曼树的深度是否超出预设值;若否,则利用第一哈夫曼树对目标数据块编码;若是,利用第二频率分布结果构建第二哈夫曼树,并利用第二哈夫曼树对目标数据块编码。本申请在第一哈夫曼树深度超出预设值时,选择生成第二频率分布结果进行后续表征和编码,这一过程中没有对第一哈夫曼树进行遍历,同样达到了矫正超长码的效果,且效率明显提升。
技术领域
本发明涉及数据压缩领域,特别涉及一种哈夫曼编码方法、系统、装置及可读存储介质。
背景技术
随着信息科学领域数据爆发式的增长,服务器对如何存储海量数据有较大压力,数据压缩成为减轻服务器存储负担、降低存储成本的有效手段。常见的数据压缩标准,如Gzip、zip、zlib等,会将数据块压缩封装为一种deflate格式的数据,deflate是一种无损数据压缩算法,其中采用LZ77算法查找数据中的重复数据,采用哈夫曼编码对重复数据进行表征和编码。
由于哈夫曼编码时经过排序生成的哈夫曼树可能存在过深、编码出现超长码的情况,在超过deflate协议规定的最大深度时,必须对超过最大深度的哈夫曼树进行校正。目前常用的超长码校正方法基于软件算法,需要遍历搜索二叉树,在其中找到超长节点的位置和超长节点的嫁接点。这种方法能够得到保证最优压缩率的哈夫曼树,但是遍历搜索耗时极高,特殊情况下不能并行遍历,极端情形下,校正哈夫曼树的时间消耗可能会数倍于构建哈夫曼树的时间消耗。
因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种快速校正的哈夫曼编码方法、系统、装置及可读存储介质。其具体方案如下:
一种哈夫曼编码方法,包括:
获取目标文件中的目标数据块;
对所述目标数据块进行频率分布统计,得到第一频率分布结果;
利用所述第一频率分布结果和所述目标文件中的预设数据块的频率分布结果,得到第二频率分布结果;
利用所述第一频率分布结果构建第一哈夫曼树;
判断所述第一哈夫曼树的深度是否超出预设值;
若否,则利用所述第一哈夫曼树对所述目标数据块编码;
若是,利用所述第二频率分布结果构建第二哈夫曼树,并利用所述第二哈夫曼树对所述目标数据块编码。
优选的,所述利用所述第一频率分布结果和所述目标文件中的预设数据块的频率分布结果,得到第二频率分布结果的过程,具体包括:
对所述第一频率分布结果和所述目标文件中的预设数据块的频率分布结果进行加权处理,得到第二频率分布结果。
优选的,所述对所述第一频率分布结果和所述目标文件中的预设数据块的频率分布结果进行加权处理,得到第二频率分布结果的过程,具体包括:
根据所述第一频率分布结果的第一权重和所述预设数据块的频率分布结果的第二权重,对所述第一频率分布结果和所述目标文件中的预设数据块的频率分布结果进行加权处理,得到第二频率分布结果;
其中所述第一权重大于所述第二权重。
优选的,所述预设数据块为所述目标文件中非所述目标数据块的一个或多个数据块。
优选的,所述预设数据块具体为所述目标文件中已完成编码的数据块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东云海国创云计算装备产业创新中心有限公司,未经山东云海国创云计算装备产业创新中心有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110919366.9/2.html,转载请声明来源钻瓜专利网。





