硬件友好的数据压缩方法、系统及装置制造方法及图纸

技术编号:29215087 阅读:14 留言:0更新日期:2021-07-10 00:52
提供了用于压缩数据的系统、装置和方法。一个示例性的方法可以包括将一个或多个字面量长度字段与一个或多个字面量字段交织到输出。字面量字段可以包含逐字复制到输出的第一数据段,并且一个或多个字面量长度字段中的每一个可以包含表示后续字面量字段的长度的值。该方法还可以包括确定与先前逐字复制的数据序列匹配的第二数据段和匹配位置,并且将输出的一个或多个匹配长度字段和包含匹配位置的匹配位置字段写入输出。字面量长度字段可以包含第一数据段的总长度,并且匹配长度字段可以包含第二数据段的总长度。包含第二数据段的总长度。包含第二数据段的总长度。

【技术实现步骤摘要】
硬件友好的数据压缩方法、系统及装置
本申请是一件分案申请,母案申请号:201910972547.0,母案申请日:2019年10月10日,母案名称:硬件友好的数据压缩方法、系统及装置。


[0001]本文的公开内容涉及数据压缩,特别涉及无损压缩。

技术介绍

[0002]数据压缩在通信和计算等数字信号系统中得到了广泛的应用。例如,为了节省存储空间或传输时间,通常将计算机数据压缩为TAR或ZIP文件格式。多年来,基于亚伯拉罕
·
伦佩尔(Abraham Lempel)和雅各布
·
齐夫(Jacob Ziv)最初在1977年和1978年发表的压缩技术,开发了一系列压缩方案,这些压缩技术被称为LZ77和LZ78。LZ系列压缩方案中的一些方案有利于压缩比而不是速度,而另一些则牺牲压缩比以获得更高的速度。然而,这些各种LZ压缩技术是为通用计算系统开发的,该系统通常使用通用中央处理单元(CPU)来执行数据压缩或解压缩操作。因此,需要一种更加硬件友好的压缩技术,例如,适用于现场可编程门阵列(FPGA)或专用集成电路(ASIC)的压缩技术。

技术实现思路

[0003]本公开提供了用于无损压缩的系统和方法。压缩的数据可以包括两种类型的数据:字面量和匹配。字面量可以指可以从输入到输出逐字复制的数据。匹配可以指与先前复制的字面量匹配的数据,因此可以用对先前副本的指示对象替换。在一个实施例中,一个压缩数据块可以包括:与一个或多个字面量字段交织的一个或多个字面量长度字段,在初始匹配长度字段之后插入匹配位置字段的一个或多个匹配长度字段,以及零个或多个重复长度字段。
[0004]一个示例性的压缩过程可以生成与一个或多个字面量字段交织的一个或多个字面量长度字段,使得一旦可以填充一个字面量长度字段和一个字面量字段,就可以输出要逐字复制的数据。一旦找到最小匹配大小的数据片段的匹配,就可以生成一个或多个匹配长度字段,并且可以定位匹配位置并将其插入到初始匹配长度字段之后的匹配位置字段中。该压缩过程可以进一步确定是否重复匹配数据段,并记录匹配数据段重复的次数。因此,重复长度字段可以组合包含表示匹配数据段可以重复多少次的总值。
[0005]在一个示例性实施例中,提供了一种用于生成压缩数据的方法。该方法可以包括:将一个或多个字面量长度字段与一个或多个字面量字段交织到输出,所述一个或多个字面量字段中的每一个包含从输入数据流逐字复制到输出的第一数据段的一部分,所述一个或者多个字面量长度字段的每一个包含表示后续字面量字段的长度的值,所述一个或多个字面量长度字段的组合包含表示所述第一数据段的总长度的第一总值;确定与先前逐字复制的数据序列匹配的所述输入数据流的第二数据段和匹配位置;以及向输出写入一个或多个匹配长度字段和包含表示所述匹配位置的值的匹配位置字段,所述一个或多个匹配长度字
段的组合包含表示所述第二数据段的总长度的第二总值。
[0006]在另一示例性实施例中,提供了一种包括编码器的装置。所述编码器可以包括:数据打包器,用于从输入数据流生成一个或多个数据片段,所述一个或多个数据片段中的每一个具有最小匹配长度的长度;散列值计算器,用于为所述一个或多个数据片段中的每一个生成散列值;散列表,用于使用各自的散列值跟踪所述一个或多个数据片段;匹配位置搜索器,用于基于所述散列表中的条目搜索数据片段是否在已处理的数据中具有匹配;匹配位置合并器,用于合并已在已处理数据中找到匹配的两个或多个数据片段;以及输出汇编器。所述输出汇编器可以被配置为:将一个或多个字面量长度字段与一个或多个字面量字段交织到输出,所述一个或多个字面量字段中的每一个包含从所述输入数据流逐字复制到输出的第一数据段的一部分,所述一个或多个字面量长度字段中的每一个包含表示后续字面量字段长度的值,所述一个或多个字面量长度字段的组合包含表示所述第一数据段的总长度的第一总值;确定与先前逐字复制的数据序列匹配的输入数据流的第二数据段和匹配位置;以及向输出写入一个或多个匹配长度字段和包含表示匹配位置的值的匹配位置字段,所述一个或多个匹配长度字段的组合包含表示所述第二数据段的总长度的第二总值。
[0007]在又一示例性实施例中,本文所公开的还可以包括具有可执行指令的非暂时性机器可读介质,其中所述可执行指令在由计算机系统执行时使得所述计算机系统:将一个或多个字面量长度字段与一个或多个字面量字段交织到输出,所述一个或多个字面量字段中的每一个包含从输入数据流逐字复制到输出的第一数据段的一部分,所述一个或多个字面量长度字段中的每一个包含表示后续字面量字段长度的值,所述一个或多个字面量长度字段的组合包含表示所述第一数据段的总长度的第一总值;确定与先前逐字复制的数据序列匹配的输入数据流的第二数据段和匹配位置;以及向输出写入一个或多个匹配长度字段和包含表示所述匹配位置的值的匹配位置字段,所述一个或多个匹配长度字段的组合包含表示所述第二数据段的总长度的第二总值。附图简述
[0008]图1示意性地示出了根据本公开的实施例的压缩数据块。
[0009]图2示意性地示出了根据本公开的实施例的编码器。
[0010]图3示意性地示出了根据本公开的实施例的解码器。
[0011]图4示意性地示出了根据本公开的实施例的计算系统。
[0012]图5是根据本公开的实施例的压缩数据流的流程图。
[0013]图6是根据本公开的实施例的解压缩压缩数据流的流程图。
具体实施方式
[0014]现在将参考附图详细描述根据本申请的具体实施例。为了一致性,各个附图中的相同元件由相同的附图标记表示。
[0015]本公开提供了一种用于无损压缩的系统和方法。压缩的数据可以包括两种类型的数据:字面量和匹配。字面量可以指可以从输入中逐字复制的数据。匹配可以指与先前复制的字面量匹配的数据,因此可以用对先前副本的指示对象替换。在一个实施例中,压缩数据块可以包括:与一个或多个字面量字段交织的一个或多个字面量长度字段,在初始匹配长度字段之后插入匹配位置字段的一个或多个匹配长度字段,以及零个或多个重复长度字
段。
[0016]一个示例性压缩过程可以生成与一个或多个字面量字段交织的一个或多个字面量长度字段,使得一旦一个字面量长度字段达到其最大值并且相应的字面量字段填满,就可以输出要逐字复制的数据。一旦找到最小匹配大小的数据片段的匹配项,就可以生成一个或多个匹配长度字段,并且可以定位匹配位置并将其插入到初始匹配长度字段之后的匹配位置字段中。该压缩过程可以进一步确定是否重复匹配数据段并记录匹配数据段重复的次数。因此,重复长度字段可以组合包含表示匹配数据段重复次数的总值。
[0017]图1示意性地示出了根据本公开的实施例的压缩格式。该压缩格式可以在压缩数据块100中表示,压缩数据块100可以是由压缩过程生成的压缩数据单元。压缩数据块100可以包括第一段120和第二段126,第一段120用于从输入数据流中逐字复制的数据片段,第二段126用于匹配的数据片段。第一段本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种方法,其特征在于,包括:将输入数据流打包为多个数据片段,每个数据片段具有最小匹配长度的长度,所述多个数据片段的第一个数据片段从所述输入数据流的起始数据单元处开始,所述第一个数据片段之后的每个数据片段从先前数据片段的第二个数据单元开始;计算所述多个数据片段中的每一个的散列值;分别基于各自的散列值,确定所述多个数据片段中的两个数据片段是与两个先前处理的数据片段的两个连续匹配;将所述两个数据片段合并到匹配序列;输出包含匹配段的压缩数据流,所述匹配段包括一个或多个匹配长度字段和一个匹配位置字段,其中所述一个或多个匹配长度字段的组合包含所述匹配序列的总长度,而所述匹配位置字段包含表示所述匹配序列的匹配位置的值。2.根据权利要求1所述的方法,其特征在于,所述两个数据片段包含两个连续的数据序列。3.根据权利要求1所述的方法,其特征在于,所述两个数据片段由等于所述两个先前处理的数据片段的匹配位置的位置差值的索引差值分开,并且所述索引差值小于或等于所述最小匹配长度。4.根据权利要求1所述的方法,其特征在于,所述匹配序列是通过合并三个或更多个匹配数据片段而获得的,任何一对连续匹配数据片段都包含连续的数据序列,或被等于一对先前处理的数据片段的匹配位置的位置差值的索引差值分开,并且所述索引差值小于或等于所述最小匹配长度。5.根据权利要求1所述的方法,其特征在于,所述匹配位置是合并到所述匹配序列中的所有匹配数据片段中的第一个匹配数据片段的位置。6.根据权利要求5所述的方法,其特征在于,所述匹配位置是从所述输入数据流的起始起的绝对索引。7.根据权利要求5所述的方法,其特征在于,所述匹配位置是相对于正在处理的数据片段的当前位置的偏移量。8.根据权利要求1所述的方法,其特征在于,还包括在散列表中保持跟踪已处理的数据的散列值。9.根据权利要求8所述的方法,其特征在于,所述散列表是以已处理的数据的散列值作为索引的字典,并且索引指向的每个条目存储与所述散列值对应的数据片段和所述数据片段在所述输入数据流中的位置。10.根据权利要求1所述的方法,其特征在于,还包括确定存在重复模式;和在所述压缩数据流中生成一个或多个重复长度字段。11.根据权利要求1所述的方法,其特征在于,所述压缩数据流还包括字面量段,其中所述字面量段包括一个或多个字面量长度字段,每个字面量长度字段之后是相应的后续字面量字段,所述一个或多个字面量长度字段的每一个包含表示所述相应的后续字面量字段的长度的值,其中,所述一个或多个字面量字段的组合包括从所述多个数据片段的一个数据片段复制的数据,所述一个数据片段在已处理的数据中不存在匹配,或者从所述多个数据
片段的连续的一系列数据片段复制的数据,所述一系列数据片段在已处理的数据中不存在匹配。12.一种装置,其特征在于,包括:编码器,包括:数据打包器,被配置为从输入数据流生成多个数据片段,每个数据片段...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:英韧科技上海有限公司
类型:发明
国别省市:

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

1