【技术实现步骤摘要】
一种哈夫曼修正编码方法、系统及相关组件
[0001]本专利技术涉及数据压缩领域,特别涉及一种哈夫曼修正编码方法、系统及相关组件。
技术介绍
[0002]随着信息科学领域数据爆发式的增长,服务器对如何存储海量数据有较大压力,数据压缩成为减轻服务器存储负担、降低存储成本的有效手段。常见的数据压缩标准,如Gzip、zip、zlib等,会将数据块压缩封装为一种deflate格式的数据,deflate是一种无损数据压缩算法,其中采用LZ77算法查找数据中的重复数据,采用哈夫曼编码对重复数据进行表征和编码。
[0003]由于哈夫曼编码时经过排序生成的哈夫曼树可能存在过深、编码出现超长码的情况,在超过deflate协议规定的最大深度时,必须对超过最大深度的哈夫曼树进行校正。目前常用的超长码校正方法基于软件算法,需要遍历搜索二叉树,在其中找到超长节点的位置和超长节点的嫁接点。这种方法能够得到保证最优压缩率的哈夫曼树,但是遍历搜索耗时极高,特殊情况下不能并行遍历,极端情形下,校正哈夫曼树的时间消耗可能会数倍于构建哈夫曼树的时间消耗。< ...
【技术保护点】
【技术特征摘要】
1.一种哈夫曼修正编码方法,其特征在于,包括:获取目标文件中的目标数据块;对所述目标数据块中的所有目标元素进行频率分布统计并排序,得到元素排序结果;利用所述元素排序结果构建第一哈夫曼树;判断所述第一哈夫曼树的深度是否超出预设值;若否,则利用所述第一哈夫曼树生成第一哈夫曼码表,并利用所述第一哈夫曼码表对所述目标数据块编码;若是,则结合所述元素排序结果和备份顺序码长表得到目标顺序码长表,并按照协议规范生成对应所述目标顺序码长表的第二哈夫曼码表,利用所述第二哈夫曼码表对所述目标数据块编码;其中,所述备份顺序码长表中码长最大值不超过所述预设值。2.根据权利要求1所述哈夫曼修正编码方法,其特征在于,所述利用所述第一哈夫曼树生成第一哈夫曼码表,并利用所述第一哈夫曼码表对所述目标数据块编码之后,还包括:当所述第一哈夫曼树的深度未超出所述预设值,根据所述第一哈夫曼树更新所述备份顺序码长表。3.根据权利要求1所述哈夫曼修正编码方法,其特征在于,所述备份顺序码长表具体为所述目标文件中已编码数据块的所述第一哈夫曼树在未超出所述预设值时对应的顺序码长表。4.根据权利要求3所述哈夫曼修正编码方法,其特征在于,所述已编码数据块具体为所述目标文件中与所述目标数据块相邻的已编码数据块。5.根据权利要求1所述哈夫曼修正编码方法,其特征在于,所述预设值为15。6.根据权利要求1至5任一项所述哈夫曼修正编码方...
【专利技术属性】
技术研发人员:张永兴,刘宇豪,
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。