[发明专利]基于Deflate的压缩数据块输出方法及装置有效
申请号: | 201710698621.5 | 申请日: | 2017-08-15 |
公开(公告)号: | CN107592117B | 公开(公告)日: | 2019-09-24 |
发明(设计)人: | 张宇弘;王界兵;张伟;董迪马;耿涛;黄嘉乐 | 申请(专利权)人: | 深圳前海信息技术有限公司 |
主分类号: | H03M7/40 | 分类号: | H03M7/40 |
代理公司: | 深圳市精英专利事务所 44242 | 代理人: | 葛勤 |
地址: | 518000 广东省深圳市宝安区海秀路龙光世纪大厦9楼(在宝安*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 deflate 压缩 数据 输出 方法 装置 | ||
本发明公开一种基于Deflate的压缩数据块输出方法及装置,其中,该基于Deflate的压缩数据块输出方法包括:在容器的剩余空间小于设定阈值时,确定原文缓冲计数器及静态Huffman缓冲计算器的上限为剩余空间大小;继续向容器的剩余空间中添加符号数据,在原文缓冲计数器和静态Huffman缓冲计数器都发生溢出的时刻或根据两者中后一个发生溢出的时刻,确定产生新的压缩数据块的时间节点;以及在保证压缩数据块不溢出容器的前提下,选择压缩比最大的编码输出新的压缩数据块。本发明的技术方案能够在容器边界上截断输出时,尽量把更多的内容存在当前容器里,从而尽可能不浪费当前容器的空间,提高容器空间的有效利用率。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于Deflate的压缩数据块输出方法及装置。
背景技术
无损压缩算法是利用数据的统计冗余进行压缩,原始数据可完全恢复而不引起任何失真。由于不同数据的冗余程度不一,压缩后的数据长度是不一样的。目前,很多存储设备一般使用固定长度的存储空间来存储数据。我们统一把固定长度的存储空间称作容器。容器的长度在不同的存储设备中可以是不同,比如有的存储设备选择4K字节,有的选择1M字节。当原始数据压缩后比允许的容器长度更大的时候,能够在当前容器边界上截断输出,把后半部分原始数据存到下一个容器中去。
Deflate压缩算法广泛应用于gzip,zlib文件格式中,是目前应用最广泛的无损压缩算法之一,经其压缩后的文件大小可以变长,如此造成压缩数据块的输出长度与容器的大小和边界不一致,容器的最后一部分可能是空白的,导致容器的空间利用率较低的问题。
有鉴于此,有必要提出对目前的基于Deflate的固定长度压缩数据块输出方法进行进一步的改进。
发明内容
为解决上述至少一技术问题,本发明的主要目的是提供一种基于Deflate的压缩数据块输出方法。
为实现上述目的,本发明采用的一个技术方案为:提供一种基于Deflate的压缩数据块输出方法,包括:
在容器的剩余空间小于设定阈值时,确定当前压缩数据块的上限为剩余空间大小;
继续向容器的剩余空间中添加符号数据,在原文缓冲计数器和静态Huffman缓冲计数器都发生溢出的时刻或根据两者中后一个发生溢出的时刻,确定产生新的压缩数据块的时间节点;以及
在保证压缩数据块不溢出容器的前提下,选择压缩比最大的编码输出新的压缩数据块,所述编码为静态Huffman编码、动态Huffman编码以及原文件编码中任意一种。
在一具体的实施例中,所述确定当前压缩数据块的上限为剩余空间大小的步骤之前还包括:
预先分配一统计容器中符号数据个数的原文缓冲计数器及静态Huffman缓冲计数器,其中,所述原文缓冲计数器及静态Huffman缓冲计数器的上限可调整。
在一具体的实施例中,所述选择压缩比最大的编码输出新的压缩数据块的步骤具体包括:
选择静态Huffman编码与原文件编码中压缩比较大的编码输出新的压缩数据块。
在一具体的实施例中,所述选择压缩比最大的编码输出新的压缩数据块的步骤为:
选择动态Huffman编码作为压缩比最大的编码输出新的压缩数据块,具体包括:
如果动态Huffman编码小于容器的剩余空间,则得到一可继续添加符号数据的填充空间;
如果动态Huffman编码等于容器的剩余空间,则以新的压缩数据块作为输出块;
如果动态Huffman编码大于容器的剩余空间,则选取原文缓冲计数器和静态Huffman缓冲计数器中后溢出的那个所对应的编码作为输出块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海信息技术有限公司,未经深圳前海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710698621.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置