数据压缩方法、设备与计算设备技术

技术编号:15447612 阅读:103 留言:0更新日期:2017-05-29 21:40
本申请公开了一种数据压缩方法,常用于存储阵列中。该方法通过将参考数据块所在的存储空间的起始逻辑地址的末尾n bit地址设置为0,使得建立该参考数据块对应的哈希表的过程更加简单,提升了数据压缩的效率。

Data compression method, apparatus and computing device

The present application discloses a data compression method, which is commonly used in memory arrays. The initial logical address will be referenced data block where the storage space at the end of the n bit address is set to 0, the establishment of the reference data blocks corresponding to the hash table process easier, improve the efficiency of data compression.

【技术实现步骤摘要】
数据压缩方法、设备与计算设备
本申请涉及计算机
,尤其涉及数据压缩方法,以及该方法对应的数据压缩设备,以及用于执行该方法的计算设备。
技术介绍
压缩技术被广泛使用在数据存储、数据传输等领域,传统压缩技术包括了字典压缩,又称为AbrahamLempelandJacobZiv(简称:LZ)压缩,以及Delta压缩,又称为相似压缩。LZ压缩以字节/字符串的粒度进行数据压缩。以待压缩的数据block为4MByte且窗口大小为4Byte为例,每次压缩均使用当前窗口内的4Byte与该待压缩数据block的历史数据进行匹配,如果该待压缩数据block的历史数据中存在与该4Byte数据相同的数据,那么该4Byte数据对应的编码只需要记录该历史数据的位置信息和长度,这样在解压缩的过程中,根据该4Byte数据对应的编码以及该历史数据,就可以恢复出该4Byte数据。Delta压缩与LZ压缩不同之处在于,与待压缩数据block的当前窗口内的数据相匹配的是参考数据块内的数据。当前的Delta压缩的压缩速度仍有待提高。
技术实现思路
本申请提供了一种数据压缩方法,以提升数据压缩的速度。本申请的第一方面,提供了一种数据压缩方法,该数据压缩方法可以由存储控制器或数据压缩设备执行,以存储控制器执行为例。该方法包括:首先,存储控制器分配存储空间,该存储空间的起始逻辑地址的末尾Nbit为0,N为大于1的整数。随后,存储控制器将参考数据块存入该存储空间,该参考数据块的大小为2nByte,n不大于N。由于该参考数据块的起始逻辑地址的末尾Nbit为0,则该参考数据块的起始逻辑地址的有效部分均为0,该参考数据块的起始逻辑地址的高于nbit的部分均为无效部分,因为参考数据块的每个Byte数据的逻辑地址中高于nbit的部分均相同。随后,存储控制器执行步骤1.1至步骤1.5以建立该参考数据块对应的哈希表,该哈希表的key为该参考数据块中(m+1)Byte数据进行哈希运算生成的哈希值,该哈希表的value包括该参考数据块中(m+1)Byte数据的起始逻辑地址的末尾nbit,m为大于0的整数。执行步骤1.1至步骤1.5以建立该参考数据块对应的哈希表,该哈希表的key为该参考数据块中(m+1)Byte数据进行哈希运算生成的哈希值,该哈希表的value包括该参考数据块中(m+1)Byte数据的起始逻辑地址的末尾nbit,m为大于0的整数。步骤1.1,对该参考数据块中第aByte数据到第a+mByte数据进行哈希运算生成第一哈希值,a为大于0的整数且首次执行步骤1.1时a的取值为1;步骤1.2,判断哈希表中是否存在与该第一哈希值相同的key;步骤1.3,若该哈希表中存在与该第一哈希值相同的key,根据该第aByte数据的逻辑地址的末尾nbit更新该哈希表中该第一哈希值对应的value;步骤1.4,若该哈希表中不存在与该第一哈希值相同的key,将该第一哈希值和该第aByte数据的逻辑地址的末尾nbit加入该哈希表;步骤1.5,判断a是否等于(2n-m),若a等于(2n-m),该哈希表建立完毕,若a小于(n-m),a增加j且再次执行步骤1.1至步骤1.5,j为大于0的正整数。通过循环执行以上步骤,将该参考数据块的窗口从第1Byte右移至最后1Byte,使得参考数据块中每(m+1)Byte数据对应的第一哈希值和该(m+1)Byte数据的相对地址都会记录在该哈希表中,以便后续使用该哈希表。在该哈希表建立完毕后,获取待压缩数据,根据该哈希表确定该参考数据块中与该待压缩数据的窗口内的(m+1)Byte数据相同的数据。根据该哈希表,可以确定待压缩数据的窗口内的数据与参考数据块中的数据是否有重叠的部分,如果有重叠的部分,则可以根据该重叠的部分进行编码。以上提供的数据压缩方法中,通过将存储参考数据块的存储空间的起始逻辑地址的末尾Nbit设置为0,简化了该参考数据块对应的哈希表的生成过程的复杂程度,提升了生成哈希表的效率,也即提升了压缩效率。结合第一方面,在第一方面的第一种实现方式中,该根据该哈希表确定该参考数据块中与该待压缩数据的窗口内的(m+1)Byte数据相同的数据包括多轮匹配处理,每轮匹配处理包括步骤2.1至2.4:步骤2.1,对该待压缩数据中第bByte数据到第b+mByte数据进行哈希运算生成第二哈希值,b为大于0的整数且首轮匹配处理中b的取值为1;步骤2.2,判断该哈希表中是否存在与该第二哈希值相同的key;步骤2.3,若该哈希表中存在与该第二哈希值相同的key,根据该哈希表中该第二哈希值对应的value,获取该参考数据块在本轮匹配处理中的匹配数据,该本轮匹配处理中的匹配数据为该参考数据块中与该待压缩数据中第bByte后的数据相同的数据;步骤2.4,若该哈希表中不存在与该第二哈希值相同的key,b增加stride,stride为大于0整数。步骤2.3和步骤2.4后,如果第b+mByte数据为该待压缩数据的最后1Byte数据,则结束压缩。通过上述步骤,获取了待压缩数据和参考数据块相同的匹配数据,以便生成压缩编码。结合第一方面的第一种实现方式,在第一方面的第二种实现方式中,该每轮匹配处理中stride的取值为:lit_len等于(本轮匹配处理中b的取值-B的取值-1),其中,上一轮匹配处理中的最后1Byte匹配数据为该待压缩数据的第BByte数据,P为大于0的整数。随着匹配不上的数据的长度的增加,增加stride的取值能够加快压缩速度。而由于数据压缩过程中,lit_len这一参数为生成压缩编码本来就必须维护的参数,因此将stride取值为也没有引进新的参数,减轻了存储控制器的工作负担。本申请的第二方面,提供了一种数据压缩设备,该数据压缩设备用于执行第一方面提供的数据压缩方法。该设备包括:通信接口和处理芯片,该通信接口与该处理芯片相连;该处理芯片,用于分配存储空间,该存储空间的起始逻辑地址的末尾Nbit为0,N为大于1的整数;该通信接口,用于接收参考数据块,并将该参考数据块存入该存储空间,该参考数据块的大小为2nByte,n不大于N;该处理芯片,还用于执行步骤1.1至步骤1.5以建立该参考数据块对应的哈希表,该哈希表的key为该参考数据块中(m+1)Byte数据进行哈希运算生成的哈希值,该哈希表的value包括该参考数据块中(m+1)Byte数据的起始逻辑地址的末尾nbit,m为大于0的整数;步骤1.1,对该参考数据块中第aByte数据到第a+mByte数据进行哈希运算生成第一哈希值,a为大于0的整数且首次执行步骤1.1时a的取值为1;步骤1.2,判断哈希表中是否存在与该第一哈希值相同的key;步骤1.3,若该哈希表中存在与该第一哈希值相同的key,根据该第aByte数据的逻辑地址的末尾nbit更新该哈希表中该第一哈希值对应的value;步骤1.4,若该哈希表中不存在与该第一哈希值相同的key,将该第一哈希值和该第aByte数据的逻辑地址的末尾nbit加入该哈希表;步骤1.5,判断a是否等于(2n-m),若a等于(2n-m),该哈希表建立完毕,若a小于(n-m),a增加j且再次执行步骤1.1至步骤1.5,j为大于0的正整数;该处理芯片,还用于在该哈希表建立完本文档来自技高网...
数据压缩方法、设备与计算设备

【技术保护点】
一种数据压缩方法,其特征在于,包括:分配存储空间,所述存储空间的起始逻辑地址的末尾N bit为0,N为大于1的整数;将参考数据块存入所述存储空间,所述参考数据块的大小为2

【技术特征摘要】
1.一种数据压缩方法,其特征在于,包括:分配存储空间,所述存储空间的起始逻辑地址的末尾Nbit为0,N为大于1的整数;将参考数据块存入所述存储空间,所述参考数据块的大小为2nByte,n不大于N;执行步骤1.1至步骤1.5以建立所述参考数据块对应的哈希表,所述哈希表的key为所述参考数据块中(m+1)Byte数据进行哈希运算生成的哈希值,所述哈希表的value包括所述参考数据块中(m+1)Byte数据的起始逻辑地址的末尾nbit,m为大于0的整数;步骤1.1,对所述参考数据块中第aByte数据到第a+mByte数据进行哈希运算生成第一哈希值,a为大于0的整数且首次执行步骤1.1时a的取值为1;步骤1.2,判断哈希表中是否存在与所述第一哈希值相同的key;步骤1.3,若所述哈希表中存在与所述第一哈希值相同的key,根据所述第aByte数据的逻辑地址的末尾nbit更新所述哈希表中所述第一哈希值对应的value;步骤1.4,若所述哈希表中不存在与所述第一哈希值相同的key,将所述第一哈希值和所述第aByte数据的逻辑地址的末尾nbit加入所述哈希表;步骤1.5,判断a是否等于(2n-m),若a等于(2n-m),所述哈希表建立完毕,若a小于(n-m),a增加j且再次执行步骤1.1至步骤1.5,j为大于0的正整数;所述哈希表建立完毕后,获取待压缩数据,根据所述哈希表确定所述参考数据块中与所述待压缩数据的窗口内的(m+1)Byte数据相同的数据。2.如权利要求1所述的数据压缩方法,其特征在于,所述根据所述哈希表确定所述参考数据块中与所述待压缩数据的窗口内的(m+1)Byte数据相同的数据包括多轮匹配处理,每轮匹配处理包括步骤2.1至2.4:步骤2.1,对所述待压缩数据中第bByte数据到第b+mByte数据进行哈希运算生成第二哈希值,b为大于0的整数且首轮匹配处理中b的取值为1;步骤2.2,判断所述哈希表中是否存在与所述第二哈希值相同的key;步骤2.3,若所述哈希表中存在与所述第二哈希值相同的key,根据所述哈希表中所述第二哈希值对应的value,获取所述参考数据块在本轮匹配处理中的匹配数据,所述本轮匹配处理中的匹配数据为所述参考数据块中与所述待压缩数据中第bByte后的数据相同的数据;步骤2.4,若所述哈希表中不存在与所述第二哈希值相同的key,b增加stride,stride为大于0整数。3.如权利要求2所述的数据压缩方法,其特征在于,每轮匹配处理中stride的取值为:lit_len等于(本轮匹配处理中b的取值-B的取值-1),其中,上一轮匹配处理中的最后1Byte匹配数据为所述待压缩数据的第BByte数据,P为大于0的整数。4.一种数据压缩设备,其特征在于,包括:通信接口和处理芯片,所述通信接口与所述处理芯片相连;所述处理芯片,用于分配存储空间,所述存储空间的起始逻辑地址的末尾Nbi...

【专利技术属性】
技术研发人员:张希舟张剑牛进保全绍晖
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1