一种数据压缩方法、数据解压方法及装置制造方法及图纸

技术编号:37763880 阅读:11 留言:0更新日期:2023-06-06 13:21
本说明书实施例提供了一种数据压缩方法、数据解压方法及装置,获取数据集合,并基于获取的数据集合和预设值设置规则,确定所述数据集合中每个数据对应的预设值;针对数据集合中每个未编码数据,执行:将该未编码数据与该未编码数据对应的预设值进行异或,得到该未编码数据对应的异或值,并确定该异或值中预设格式数值的数量;生成索引字节和有效负载字节;所述索引字节包括:用于表征预设格式数值的数量的数据;所述有效负载字节为该未编码数据去除预设格式数值后剩余的数据;将生成的索引字节和有效负载字节作为该未编码数据对应的编码数据;针对数据集合对应的所有编码数据,通过删除重复字节的方式进行压缩,得到压缩后的数据。据。据。

【技术实现步骤摘要】
一种数据压缩方法、数据解压方法及装置


[0001]本说明书一个或多个实施例涉及计算机
,尤其涉及一种数据压缩方法、数据解压方法及装置。

技术介绍

[0002]计算机中存储的数据较多,为了更好的节约存储资源和传输带宽,需要对数据进行压缩。而相关技术中,数据的压缩方法的压缩率仍不满足预期。

技术实现思路

[0003]有鉴于此,本说明书一个或多个实施例提供一种数据压缩方法、数据解压方法及装置。
[0004]根据本说明书一个或多个实施例的第一方面,提出了一种数据压缩方法,包括:
[0005]获取数据集合,并基于获取的数据集合和预设值设置规则,确定所述数据集合中每个数据对应的预设值;所述数据集合包括至少两个数据;
[0006]针对数据集合中每个未编码数据,执行:
[0007]将该未编码数据与该未编码数据对应的预设值进行异或,得到该未编码数据对应的异或值,并确定该异或值中预设格式数值的数量;
[0008]生成索引字节和有效负载字节;所述索引字节包括:用于表征预设格式数值的数量的数据;所述有效负载字节为该未编码数据去除预设格式数值后剩余的数据;
[0009]将生成的索引字节和有效负载字节作为该未编码数据对应的编码数据;
[0010]针对数据集合对应的所有编码数据,通过删除重复字节的方式进行压缩,得到压缩后的数据。
[0011]根据本说明书一个或多个实施例的第二方面,提出了一种数据解压方法,包括:
[0012]恢复压缩数据集合中的重复字节,得到编码数据集合;所述压缩数据集合是通过上述的数据压缩方法对数据集合进行压缩得到的数据集合;
[0013]针对编码数据集合中每个编码数据,获取该编码数据对应的索引字节,并基于所述索引字节确定该编码数据对应的有效负载字节的字节数量;
[0014]基于确定的所述字节数量,从所述编码数据集合中读取该编码数据对应的有效负载字节;
[0015]基于获取的有效负载字节和所述索引字节,还原得到所述编码数据对应的异或值;
[0016]将该编码数据对应的预设值与该异或值进行异或处理,得到该编码数据对应的原始数据;
[0017]将所有原始数据进行组合,得到所述压缩数据集合对应的解压结果。
[0018]根据本说明书实施例的第三方面,提供一种数据压缩装置,包括:
[0019]数据集合获取模块,用于获取数据集合,并基于获取的数据集合和预设值设置规
则,确定所述数据集合中每个数据对应的预设值;所述数据集合包括至少两个数据;
[0020]数据编码模块,用于针对数据集合中每个未编码数据,执行:将该未编码数据与该未编码数据对应的预设值进行异或,得到该未编码数据对应的异或值,并确定该异或值中预设格式数值的数量;生成索引字节和有效负载字节;所述索引字节包括:用于表征预设格式数值的数量的数据;所述有效负载字节为该未编码数据去除预设格式数值后剩余的数据;将生成的索引字节和有效负载字节作为该未编码数据对应的编码数据;
[0021]数据压缩模块,用于针对数据集合对应的所有编码数据,通过删除重复字节的方式进行压缩,得到压缩后的数据。
[0022]根据本说明书实施例的第四方面,提供一种数据解压装置,包括:
[0023]编码数据集合获取模块,用于恢复压缩数据集合中的重复字节,得到编码数据集合;所述压缩数据集合是通过上述的数据压缩方法对数据集合进行压缩得到的数据集合;
[0024]编码数据解码模块,用于针对编码数据集合中每个编码数据,获取该编码数据对应的索引字节,并基于所述索引字节确定该编码数据对应的有效负载字节的字节数量;基于确定的所述字节数量,从所述编码数据集合中读取该编码数据对应的有效负载字节;基于获取的有效负载字节和所述索引字节,还原得到所述编码数据对应的异或值;将该编码数据对应的预设值与该异或值进行异或处理,得到该编码数据对应的原始数据;
[0025]原始数据组合模块,用于将所有原始数据进行组合,得到所述压缩数据集合对应的解压结果。
[0026]根据本说明书实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述的数据压缩方法或数据解压方法。
[0027]根据本说明书实施例的六方面,提供一种计算机设备,所述计算机设备包括:
[0028]处理器;
[0029]用于存储处理器可执行指令的存储器;
[0030]所述处理器通过运行所述可执行指令以实现上述的数据压缩方法或数据解压方法。
[0031]根据本说明书实施例的七方面,提供一种计算机程序,所述计算机程序被处理器执行时实现上述的数据压缩方法或数据解压方法。
[0032]本说明书实施例提供了一种数据压缩方法、数据解压方法及装置,获取数据集合,并基于获取的数据集合和预设值设置规则,确定所述数据集合中每个数据对应的预设值;所述数据集合包括至少两个数据;针对数据集合中每个未编码数据,执行:将该未编码数据与该未编码数据对应的预设值进行异或,得到该未编码数据对应的异或值,并确定该异或值中预设格式数值的数量;生成索引字节和有效负载字节;所述索引字节包括:用于表征预设格式数值的数量的数据;所述有效负载字节为该未编码数据去除预设格式数值后剩余的数据;将生成的索引字节和有效负载字节作为该未编码数据对应的编码数据;针对数据集合对应的所有编码数据,通过删除重复字节的方式进行压缩,得到压缩后的数据。
[0033]通过将预设格式数值的数量存储在索引字节中,并将有效负载以字节为单位进行存储,使得有效负载和预设格式数值的数量不会混合在一个字节中,从而使得数据集合中不同数据对应的编码后的数据重复率上升,使得编码后的数据的压缩率能得到提升。虽然稍微降低了通过编码方法进行压缩(即计算异或值、记录预设格式数值的数量和有效负载
字节的过程)的压缩率,但是使得编码后的数据能更适合字节流压缩器处理,从而提高了两步整体的压缩率。
[0034]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0035]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0036]图1是本说明书根据一示例性实施例示出的一种数据压缩方法的流程图。
[0037]图2是本说明书根据一示例性实施例示出的一种编码数据存储方式的示意图。
[0038]图3是本说明书根据一示例性实施例示出的一种数据解压方法的流程图。
[0039]图4A是本说明书根据一具体实施例示出的一种数据压缩方法的示意图。
[0040]图4B是本说明书根据一具体实施例示出的一种数据解压方法的示意图。
[0041]图5是本说明书根据一示例性实施例示出的一种数据压缩装置的框图。
[0042]图6是本说明书根据一示例性实施例示出的一种数据解本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据压缩方法,包括:获取数据集合,并基于获取的数据集合和预设值设置规则,确定所述数据集合中每个数据对应的预设值;所述数据集合包括至少两个数据;针对数据集合中每个未编码数据,执行:将该未编码数据与该未编码数据对应的预设值进行异或,得到该未编码数据对应的异或值,并确定该异或值中预设格式数值的数量;生成索引字节和有效负载字节;所述索引字节包括:用于表征预设格式数值的数量的数据;所述有效负载字节为该未编码数据去除预设格式数值后剩余的数据;将生成的索引字节和有效负载字节作为该未编码数据对应的编码数据;针对数据集合对应的所有编码数据,通过删除重复字节的方式进行压缩,得到压缩后的数据。2.根据权利要求1所述的方法,所述基于获取的数据集合和预设值设置规则,确定所述数据集合中每个数据对应的预设值,包括:基于预设值获取规则和获取的数据集合,获取预设的固定值;将预设的固定值作为所述数据集合中每个数据对应的预设值,并存储所述预设的固定值。3.根据权利要求2所述的方法,所述基于预设的固定值获取规则,基于获取的数据集合获取预设的固定值,包括:将所述数据集合中的第N个值作为预设的固定值;所述N为预设正整数。4.根据权利要求1所述的方法,所述预设格式数值为前导零和尾随零;所述确定该异或值中预设格式数值的数量,包括:确定该异或值中的前导零字节的数量和尾随零字节的数量,所述前导零字节用于表征字节中所有比特都为前导零的字节,所述尾随零字节用于表征字节中所有比特都为尾随零的字节;所述生成索引字节,包括:将所述前导零字节的数量和尾随零字节的数量编码到同一个字节中,作为索引字节。5.根据权利要求1所述的方法,所述针对数据集合对应的所有编码数据,通过删除重复字节的方式进行压缩,得到压缩后的数据,包括:将所述数据集合中所有的数据对应的索引字节组成索引字节集合,并将所述数据集合中所有的数据对应的有效负载字节组成有效负载字节集合;将所述索引字节集合和所述有效负载字节集合输入字节流压缩器,得到压缩后的数据。6.根据权利要求1所述的方法,所述通过删除重复字节的方式进行压缩,包括:通过以下任意一种字节流压缩器进行压缩:Zlib压缩器、lzo压缩器、snappy压缩器、zstd压缩器。7.根据权利要求1所述的方法,所述数据集合包括的数据为时间序列数据。8.一种数据解压方法,包括:恢复压缩数据集合中的重复字节,得到编码数据集合;所述压缩数据集合是通过权利要求1

7任一项的方法对数据集合进行压缩得到的数据集合;
针对编码数据集合中每个...

【专利技术属性】
技术研发人员:张峥
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1