[发明专利]一种压缩和解压缩有序整数数组的方法有效
申请号: | 201710786051.5 | 申请日: | 2017-09-04 |
公开(公告)号: | CN110019184B | 公开(公告)日: | 2021-04-27 |
发明(设计)人: | 雷鹏 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 泰和泰律师事务所 51219 | 代理人: | 祝海燕 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 压缩 和解 有序 整数 数组 方法 | ||
本申请公开了一种数据压缩和解压缩方法,该压缩方法包括:数据提取步骤,即提取预定个数据记为数组并计算数组中相邻两数的差值,以及形成与数组对应的索引和数据块;索引设置步骤,设置索引条目至少包括记录数据块与第一数据块的相对位置的偏移量和记录数组中最小数据的最小值;元数据设置步骤,根据差值设置数据块中的元数据部分,元数据至少包括下阈值和小位宽数据的位宽,以确定数据块的数据压缩规则;数据压缩步骤,即根据元数据压缩数组中各数据以生成压缩数值,并将压缩数值以小位宽数据和大位宽数据形式储存在数据块中数据部分的词中。解压缩方法对应于该压缩方法,以此提供一种存储效率高、访问速度快的压缩算法。
发明领域
本申请涉及计算机机技术领域,尤其涉及数据压缩技术领域。
背景技术
在数据库等应用中,常常需要存储一些整数数组的索引数据。如果直接将这些索引数据存储在数据库中,不仅会占用较多的磁盘空间,而且在读取数据时会占用更多内存,使得读取时间更长,无法满足性能要求。
针对此场景下存储整数数组减少存储空间和提高读取效率的性能要求,目前已开发出多种数据压缩算法。其中,PForDelta算法是目前解压缩速度较快的一种倒排文件索引压缩算法。PForDelta算法的基础思想是:对于待编码的连续k个数值(如128个),找出其中10%比例的较大数,对剩下90%的数值采取一个设定的比特宽度,而10%的大数当做异常数据单独存储。但是这种方法也有缺点:对两个异常数据的间隔有限制,如果间隔过大,则需要加入更多的空间来存储间隔,降低了数据压缩率和访问速度。
因此,需要一种存储效率更高、随机访问速度更快的压缩算法。
发明内容
本申请针对数据压缩率和随机访问的需求,开发了一种存储效率更高、随机访问速度更快的有序整数数组的压缩算法。
本申请的目的在于,提供一种支持高速随机访问的压缩有序整数数组的方案。根据该方案,可以在不损失信息的前提下对数据进行压缩(无损压缩),并且可以直接在压缩的数据上进行高速随机访问。该方案有效提高了存储设备的利用率和随机读取数据的速度。
具体地,根据本申请的一方面,提供一种数据压缩方法,包括:数据提取步骤,用于从待压缩的有序数据中提取预定个数据记为一个数组(array),并且计算所述数组中相邻两个数的差值(diff),以及形成与所述数组对应的索引(index)和数据块(block);索引设置步骤,用于设置所述索引的索引条目,所述索引条目至少包括:用于记录所述数据块与第一数据块的相对位置的偏移量(offset),和用于记录所述数组中的最小数据的最小值(minval);元数据设置步骤,用于根据所述差值设置所述数据块中的元数据部分,所述元数据至少包括:下阈值(lowater)和小位宽数据的位宽(smallbits)以用于确定所述数据块的数据压缩规则;以及数据压缩步骤,用于根据所述元数据来压缩所述数组中的各个数据以生成压缩数值,并将所述压缩数值以小位宽数据和大位宽数据的形式储存在所述数据块中的数据部分的词中。
根据本申请的另一方面,提供一种数据解压缩方法,用于对多个压缩数据中的待提取数据进行解压缩,包括:待提取数据位置确定步骤,用于计算所述待提取数据所在的数据块的位置以及在所述数据块的相应词中的位置,并在所述数据块的数据部分中获取相应的压缩数值;索引条目获取步骤,用于基于所述数据块获取相应的索引条目,其中所述索引条目至少包括:用于记录所述数据块与第一数据块的相对位置的偏移量,和用于记录所述数据块对应的数组中的最小数据的最小值;元数据获取步骤,用于获取所述数据块的元数据部分记录的下阈值和小位宽数据的位宽,以确定所述数据块对应的数据压缩规则;待提取数据恢复步骤,用于基于所述数据块的数据压缩规则、所述偏移量和所述最小值,计算所述压缩数值对应的待提取数据的实际数值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710786051.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种大会投票计票管理系统
- 下一篇:一种基于知识图的智能教学诊断方法