[发明专利]数据压缩及解压缩方法、电子设备和计算机可读存储介质有效
| 申请号: | 201910704050.0 | 申请日: | 2019-07-31 |
| 公开(公告)号: | CN110442557B | 公开(公告)日: | 2021-09-28 |
| 发明(设计)人: | 谢超;余昆;易小萌;郭人通 | 申请(专利权)人: | 上海赜睿信息科技有限公司 |
| 主分类号: | G06F16/174 | 分类号: | G06F16/174;G06F16/13 |
| 代理公司: | 北京睿派知识产权代理事务所(普通合伙) 11597 | 代理人: | 刘锋 |
| 地址: | 200030 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据压缩 解压缩 方法 电子设备 计算机 可读 存储 介质 | ||
本发明实施例提供了一种数据压缩及解压缩方法、电子设备和计算机可读存储介质,通过获取待压缩数据的多个数据序列分别对应的第一索引数组,并根据第一索引数组中的参考值将各数据序列分为至少一个数据子序列,通过数据子序列中的数据和数据的序号获取该数据子序列的压缩拟合函数,并根据数据子序列中的数据、数据的序号和压缩拟合函数获取第二索引数组,采用预定的编码方式编码压缩所述第二索引数组,以确定所述待压缩数组对应的压缩文件,由此,本实施例可以支持压缩文件的随机访问,并且可以减小压缩文件所占的存储量。
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种数据压缩及解压缩方法、电子设备和计算机可读存储介质。
背景技术
pfordelta倒排索引压缩算法是比较成熟且应用十分广泛的压缩算法,此算法可以对有序数据做压缩,使得有序数据所占用的磁盘空间大大减少。现在需要压缩的数据量越来越大,并且现有的pfordelta算法在访问数据的时候需要解压缩所有的数据,不支持随机访问。由此,更加高效的且可支持随机访问的压缩方法成为了迫切的需求。
发明内容
有鉴于此,本发明实施例提供了一种数据压缩及解压缩方法、电子设备和计算机可读存储介质,以减小压缩文件所占的存储量,并支持压缩文件的随机访问。
第一方面,本发明实施例提供一种数据压缩方法,所述方法包括:
将排序后的待压缩数组分为多个数据序列;
分别计算所述多个数据序列的第一索引数组,所述第一索引数组包括对应的数据序列中的相邻数据的差值;
对于各数据序列,确定对应的所述第一索引数组中的参考值,所述参考值大于或等于预定值;
根据所述参考值的位置将对应的数据序列分为多个数据子序列;
根据所述数据子序列中的数据和所述数据的序号获取对应的压缩拟合函数,所述序号用于表征对应的数据在所述待压缩数组中的位置;
计算所述数据子序列中的数据与对应的拟合数据的差值以获取第二索引数组,所述拟合数据用于表征对应的所述数据子序列中的数据的序号在所述压缩拟合函数上的函数值;
采用预定的编码方式编码压缩所述第二索引数组;
确定所述待压缩数组对应的压缩文件;所述压缩文件包括压缩后的第二索引数组和元数据信息,所述元数据信息包括所述压缩拟合函数的函参数。
可选的,所述方法还包括:
采用预定的编码方式编码压缩所述参考值对应的参考数据,所述压缩文件包括压缩后的所述参考值对应的参考数据。
可选的,所述压缩拟合函数为线性拟合函数,所述压缩拟合函数的函参数包括线性拟合函数的各阶系数以及对应的数据子序列的序号范围。
可选的,所述方法还包括:
获取所述数据子序列中的数据的序号在所述压缩拟合函数上的函数值;
对所述函数值取整以获取所述拟合数据。
可选的,对于数据类型为整数的数据子序列,采用预定的编码方式编码压缩所述第二索引数组包括:
根据所述第二索引数组获取对应的压缩参数;
根据所述压缩参数采用所述预定的编码方式对所述第二索引数组进行编码压缩。
可选的,基于加速处理器的多个线程并行处理所述多个数据序列。
第二方面,本发明实施例提供一种数据解压缩方法,所述方法包括:
获取压缩文件的解压缩请求;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海赜睿信息科技有限公司,未经上海赜睿信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910704050.0/2.html,转载请声明来源钻瓜专利网。





