[发明专利]一种数据压缩、解压方法及装置有效
| 申请号: | 201910196114.0 | 申请日: | 2019-03-15 | 
| 公开(公告)号: | CN109947776B | 公开(公告)日: | 2021-05-28 | 
| 发明(设计)人: | 郭磊;黄何 | 申请(专利权)人: | 海南火链科技有限公司 | 
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;H03M7/30 | 
| 代理公司: | 北京弘权知识产权代理有限公司 11363 | 代理人: | 郭放;许伟群 | 
| 地址: | 571924 海南省海口市澄迈县老城*** | 国省代码: | 海南;46 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 数据压缩 解压 方法 装置 | ||
本申请公开了一种数据压缩、解压方法及装置,在数据压缩方法中,通过对第一数据数据分割得到若干数据块,对数据块压缩得到压缩后数据和标记位,同时对数据块转化后做hash操作最终得到hashtable。在数据解压的方法中,对压缩后数据解压的同时,对数据块进行校验。这样在平衡速度与压缩率的同时,通过数据块与hashtable中hash值进行对比,确认最后数据的准确无误,实现数据的完整性与不可篡改性。
技术领域
本申请涉及数据处理领域,尤其涉及一种数据压缩、解压方法及装置。
背景技术
区块链的概念早已深入人心,其本质是一个去中心化的交易支付系统。在区块链中,存储数据的数据库是重要的组成部分。而随着时间的积累,用户在区块链上持续不断的交易必将导致数据量的不断增大。
一般来说,采用两种方法来处理数据量暴涨的问题,一种是增加公司硬盘的容量,另一种租赁云服务器。然而,不管采用哪种方法都将带来成本的持续增加,所以要想从根本上解决该问题,需要优化数据压缩和解压算法。
目前,最常用的数据压缩算法主要有GZIP,LZO和Snappy算法。三者比较而言,GZIP算法的优势在于其压缩率是三者中最高的,但是由于压缩算法是压缩密集型的,所面临的问题是对消耗CPU极大,随之而来的就是压缩和解压速度比较缓慢。LZO算法的压缩和解压速度比GZIP算法快很多,但是其压缩率比GZIP算法要低一些,Snappy算法的压缩和解压速度是三者中最快的但同时压缩率又是三者中最低的。综上所述,以上三种算法均有较大的缺陷。
所以,如何能快速的对数据进行压缩和解压成为本领域技术人员亟待解决的问题。
发明内容
本申请提供了一种数据压缩、解压方法及装置,以解决现有技术中不能对数据快速的压缩和解压的问题。
第一方面,本申请提供一种数据压缩方法,所述方法包括:
获取第一输入数据,分割成预设规格的所述第一输入数据,得到若干数据块;
将每个所述数据块压缩,得到若干压缩后数据和标记位,同时对每个所述数据块进行unit64转化后做hash操作,得到hash值和对应的偏移量;
将所述hash值和对应的偏移量存入hashtable中,并在所述hashtable中的最后一行对所有所述数据块对应的hash值进行拼接。
结合第一方面,在第一方面的第一种可实现方式中,所述将每个数据块进行压缩,得到压缩后的数据和标记位采用的方法为霍夫曼编码方法。
结合第一方面,在第一方面的第二种可实现方式中,所述在hashtable中的最后一行对所有所述数据块对应的hash值进行拼接的方法包括:
对所有所述数据块对应的hash值进行hash操作,偏移量设置为-1。
第二方面,本申请提供一种数据解压方法,所述方法包括:
获取第二输入数据,所述第二输入数据包括若干压缩后数据、标记位和hashtable;
获取一个压缩后数据,根据所述标记位,将所述压缩后数据还原,得到数据块;
统计数据块的数量;
判断所述数据块的数量是否大于预设数据块数量;
如果所述数据块的数量不大于预设数据块数量,则获取下一个压缩后数据,重复执行根据标记位,将所述压缩后数据还原,得到数据块的步骤;
如果所述数据块的数量大于预设数据块数量,则将按照还原顺序得到的所述数据块,与在所述hashtable中的hash值比较,判断hashtable中是否存在与所述数据块对应的hash值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于海南火链科技有限公司,未经海南火链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910196114.0/2.html,转载请声明来源钻瓜专利网。





