数据压缩方法和装置与流程

文档序号:34160608发布日期:2023-05-14 19:42阅读:30来源:国知局
数据压缩方法和装置与流程

本说明书涉及数据压缩,具体地,涉及一种数据压缩方法和用于该数据压缩方法的装置。


背景技术:

1、在大数据技术的应用中,大量的数据一般是在大量的服务器上并行处理的,该些服务器之间会存在大量的信息传输,该些信息需要通过压缩和加密进行传输和保存。数据压缩的硬件实现方式可以减少服务器的任务量,以提高数据的压缩速度。

2、然而,当前的数据压缩的硬件实现方式,难以在硬件资源有限的情况下,达到与软件实现同样的压缩率。


技术实现思路

1、本说明书第一方面提供一种数据压缩方法,该数据压缩方法包括:基于不同的预设范围从待压缩数据对象中获取多个待压缩数据;分别基于多个待压缩数据生成多个哈希值;查找每个哈希值对应的哈希表,获取哈希值对应的已压缩数据的位置信息,其中,哈希表用于存储已压缩数据和待压缩数据在待压缩数据对象中的位置信息,位置信息对应于哈希节点;基于待压缩数据和已压缩数据获取与哈希节点对应的数据的匹配长度;基于哈希节点和匹配长度对待压缩数据对象中的数据进行压缩。

2、在上述方案中,通过设置多个哈希表,以使得用于对待压缩数据对象进行压缩的哈希节点可以基于该多个哈希表进行选择,可以降低哈希冲突对压缩率的影响,而且可以使得在后续计算数据的匹配长度的进程中,能够选出使得匹配长度相对更大的哈希节点以对待压缩数据对象的数据进行压缩,以提高压缩速度,并提高数据压缩率。

3、在本说明书第一方面的一实施方式中,关于基于不同的预设范围从待压缩数据对象中获取多个待压缩数据的步骤,可以包括:基于不同的预设范围从待压缩数据对象中获取至少两个待压缩数据,且至少两个待压缩数据的预设范围的长度相同且初始位置不同;和/或,基于不同的预设范围从待压缩数据对象中获取至少两个待压缩数据,且至少两个待压缩数据的预设范围的长度不同且初始位置相同。

4、在本说明书第一方面的一实施方式中,关于基于不同的预设范围从待压缩数据对象中获取至少两个待压缩数据的步骤,可以包括:基于两个不同的预设范围从待压缩数据对象中获取四个待压缩数据。在该实施方式中,两个待压缩数据分别为奇数位置数据块和偶数位置数据块,奇数位置数据块的起始位置对应的字节在待压缩数据对象中的序号为奇数,偶数位置数据块的起始位置对应的字节在待压缩数据对象中的序号为偶数,且奇数位置数据块和偶数位置数据块的起始位置相邻。

5、在上述方案中,在整个待压缩数据对象中,可以同时对奇数位置和偶数位置起始的待压缩数据进行哈希计算,以提高从哈希表中查找到对应的哈希值的几率;此外,与单独对奇数位置或者偶数位置起始的待压缩数据进行哈希计算相比,该方式选择哈希节点可以降低哈希冲突对压缩率的影响,而且该方式选择的哈希节点可能会对应更长的可匹配字符串,以使得在进行数据的匹配长度的进程中,有更大的几率可以选出使得匹配长度相对更大的哈希节点以对待压缩数据对象的数据进行压缩。

6、在本说明书第一方面的一实施方式中,关于基于不同的预设范围从待压缩数据对象中获取至少两个待压缩数据的步骤,还可以包括:基于四个不同的预设范围从待压缩数据对象中获取四个待压缩数据。在该实施方式中,四个待压缩数据分别为奇数位置短数据块、奇数位置长数据块、偶数位置短数据块和偶数位置长数据块,奇数位置短数据块和奇数位置长数据块的起始位置对应的字节在待压缩数据对象中的序号为奇数,偶数位置短数据块和偶数位置长数据块的起始位置对应的字节在待压缩数据对象中的序号为偶数,奇数位置短数据块和偶数位置短数据块的长度相同,奇数位置长数据块和偶数位置长数据块的长度相同,奇数位置短数据块和奇数位置长数据块的起始位置相同,偶数位置短数据块和偶数位置长数据块的起始位置相同,奇数位置短数据块和偶数位置短数据块的起始位置相邻。

7、在本说明书第一方面的一实施方式中,关于基于哈希节点和匹配长度对待压缩数据对象中的数据进行压缩的步骤,可以包括:判断哈希节点对应的待压缩数据是否位于待压缩数据对象的终止位置;如果是,对压缩后的数据进行封装并结束压缩流程;如果否,在待压缩数据对象中,将每个预设范围所限定的窗口后移,并将窗口覆盖的数据作为后续的待压缩数据。在该实施方式中,所有的预设范围所限定的窗口每次移动的距离相同。

8、在本说明书第一方面的一实施方式中,窗口每次移动的距离为两个字节所占的长度。

9、在本说明书第一方面的一实施方式中,数据压缩方法还可以包括:在至少两个哈希表中查到对应的哈希值的情况下,基于预设的节点选择规则,从获得的所有哈希节点中筛选出目标节点。在该实施方式中,关于基于待压缩数据和已压缩数据获取与哈希节点对应的数据的匹配长度的步骤,可以包括:基于待压缩数据和已压缩数据获取与目标节点对应的数据的匹配长度。

10、在上述方案中,从哈希表中查找到的多个哈希节点中选择出一个作为目标节点,之后再进行后续的数据的匹配长度的计算,使得后续的数据的匹配长度的计算量减小,以减少压缩延时。

11、在本说明书第一方面的一实施方式中,节点选择规则可以包括:对于从哈希表中查到哈希值的哈希节点的位置信息,与前一个选择的哈希节点的位置信息进行对比,将与前一个选择的哈希节点的位置信息不一致的哈希节点作为目标节点。

12、在上述方案中,在进行数据的匹配长度的进程中,可以避免基于前后两个哈希节点获取的待压缩数据重复或者有较多的重复而造成压缩率损失。

13、在本说明书第一方面的一实施方式中,哈希节点对应的数据格式的信息包括位置信息和有效标记位,有效标记位的可选标记包括第一标记和第二标记,第一标记用于指示哈希节点无效,第二标记用于指示哈希节点有效。此外,关于分别基于多个待压缩数据生成多个哈希值的步骤,可以包括:如果从哈希表中查找的哈希节点对应的有效标记位为第一标记,以待压缩数据生成哈希节点;如果从哈希表中查找的哈希节点对应的有效标记位为第二标记,将待压缩数据对应的哈希节点作为预选目标节点的哈希节点,其中,如果从至少两个哈希表中查找的哈希节点对应的有效标记位为第二标记,通过节点选择规则筛选出目标节点,如果只有一个哈希表中查找的哈希节点对应的有效标记位为第二标记,以查找到的哈希节点作为目标节点。

14、在本说明书第一方面的一实施方式中,关于基于不同的预设范围从待压缩数据对象中获取多个待压缩数据的步骤,可以包括:初始化哈希表对应的哈希节点,以使得哈希节点对应的数据格式中的有效标记位写为第一标记。

15、在上述方案中,可以避免压缩之前进程的待压缩数据对象时更新的哈希表,对当前的待压缩数据对象的压缩进程造成影响。

16、在本说明书第一方面的一实施方式中,关于查找每个哈希值对应的哈希表,获取哈希值对应的已压缩数据的位置信息的步骤,可以包括:将每个哈希节点对应的第一标记位写为第二标记,并基于每个哈希节点对应的哈希值,将每个哈希节点对应的数据格式中的信息更新至哈希表中。

17、在本说明书第一方面的一实施方式中,数据格式的信息还可以包括第一校验信息,对于同一哈希节点,用于生成第一校验信息和哈希值的数据相同计算规则不同。在该实施方式中,关于分别基于多个待压缩数据生成多个哈希值的步骤,可以包括:在从哈希表中查找的哈希节点对应的有效标记位为第二标记的情况下,将待压缩数据对应的哈希节点所对应的第一校验信息,与从哈希表中查找到的哈希节点所对应的第一校验信息进行对比;如果对比结果为不同,以待压缩数据生成哈希节点;如果对比结果为一致,将待压缩数据对应的哈希节点作为预选目标节点的哈希节点。

18、在上述方案中,通过校验第一校验信息,在从哈希表中查找哈希值时,可以有更大的几率筛选出出现哈希冲突的哈希节点,以提高数据压缩的压缩率。

19、在本说明书第一方面的一实施方式中,数据格式的信息还包括第二校验信息,前一个哈希节点对应的第二校验信息通过后一个哈希节点对应的数据计算生成,且用于生成第二校验信息和哈希值的计算规则不同。在该实施方式中,关于分别基于多个待压缩数据生成多个哈希值的步骤,还可以包括:在从哈希表中查找的哈希节点对应的有效标记位为第二标记的情况下,在通过第一校验信息对哈希节点进行对比之后,如果存在至少两个作为预选目标节点的哈希节点,将待压缩数据对应的哈希节点所对应的第二校验信息,与从哈希表中查找到的哈希节点所对应的第二校验信息进行对比,且将对比结果为一致的情况下的哈希节点作为预选目标节点的哈希节点。

20、在上述方案中,通过校验第二校验信息筛选出的哈希节点所对应的位置,在后续进行数据的匹配长度计算的进程中,可以获取相对更长的字符串,以提高待压缩数据对象的压缩率。

21、本说明书第二方面提供一种数据压缩方法,该数据压缩方法可以包括:从待压缩数据对象中获取预设范围的待压缩数据;基于待压缩数据生成哈希值;基于哈希值查找哈希表,以得到哈希值对应的已压缩数据的位置信息,并生成与待压缩数据对应的哈希节点,其中,哈希表用于存储对应于已压缩数据的哈希节点,哈希节点的在待压缩数据对象中的位置信息和已压缩数据的校验信息,哈希节点对应于位置信息,且用于生成哈希值的计算规则和生成第一校验信息的计算规则不同;基于待压缩数据生成待压缩数据对应的哈希节点的第一校验信息;在第一校验信息与第二校验信息一致的情况下,基于待压缩数据和已压缩数据获取与哈希节点对应的数据的匹配长度;基于哈希节点和匹配长度对待压缩数据对象中的数据进行压缩。

22、在上述方案中,通过校验第一校验信息,在从哈希表中查找哈希值时,可以有更大的几率筛选出出现哈希冲突的哈希节点,以提高数据压缩的压缩率。

23、在本说明书上述第一方面和第二方面的数据压缩方法中,各个执行步骤是由现场可编程门阵列实现的。

24、本说明书第三方面提供一种用于数据压缩方法的装置,该装置包括获取模块、生成模块、查找模块、匹配长度计算模块和封装模块。获取模块用于基于不同的预设范围从待压缩数据对象中获取多个待压缩数据。生成模块用于分别基于多个待压缩数据生成多个哈希值。查找模块用于查找每个哈希值对应的哈希表,获取哈希值对应的已压缩数据的位置信息,其中,哈希表用于存储已压缩数据和待压缩数据在待压缩数据对象中的位置信息,位置信息对应于哈希节点。匹配长度计算模块用于基于待压缩数据和已压缩数据获取与哈希节点对应的数据的匹配长度。封装模块用于基于哈希节点和匹配长度对待压缩数据对象中的数据进行压缩。

25、本说明书第三方面提供一种用于数据压缩方法的装置,该装置包括获取模块、生成模块、查找模块、校验模块、匹配长度计算模块和封装模块。获取模块用于从待压缩数据对象中获取预设范围的待压缩数据。生成模块基于待压缩数据生成哈希值。查找模块基于哈希值查找哈希表,以得到哈希值对应的已压缩数据的位置信息,并生成与待压缩数据对应的哈希节点,其中,哈希表用于存储对应于已压缩数据的哈希节点,哈希节点的在待压缩数据对象中的位置信息和已压缩数据的校验信息,哈希节点对应于位置信息,且用于生成哈希值的计算规则和生成第一校验信息的计算规则不同。校验模块基于待压缩数据生成待压缩数据对应的哈希节点的第一校验信息。匹配长度计算模块在第一校验信息与第二校验信息一致的情况下,基于待压缩数据和已压缩数据获取与哈希节点对应的数据的匹配长度。封装模块基于哈希节点和匹配长度对待压缩数据对象中的数据进行压缩。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1