一种数据压缩系统及方法技术方案

技术编号:30754049 阅读:9 留言:0更新日期:2021-11-10 12:07
本申请实施例公开了一种数据压缩系统及方法,用于提高LZW压缩算法的压缩速率,该系统包括:字典存储器,用于存储第一数量的子字典,每个子字典包括第二数量的存储区域,每个存储区域对应有哈希值;并行计算模块,用于获取待压缩数据;获取待压缩数据对应的当前字符和前缀字符串,对当前字符与前缀字符串按位进行异或计算,得到第一哈希值;将第一哈希值加上偏移量,得到第二哈希值;并行从第一哈希值、第二哈希值对应的存储区域获取索引内容;编码状态机,用于确定当前字符、前缀字符串与索引内容的匹配情况;选择仲裁器,用于根据匹配情况确定待写入的存储区域以及写入待写入的存储区域的内容,或者,根据匹配情况确定输出的内容。根据匹配情况确定输出的内容。根据匹配情况确定输出的内容。

【技术实现步骤摘要】
一种数据压缩系统及方法


[0001]本申请涉及数据处理领域,具体涉及一种数据压缩系统及方法。

技术介绍

[0002]LZW压缩算法是通过建立字典用较短的编码来表示较长的字符串来实现压缩。LZW压缩算法作为字典压缩算法的典型代表,具有性能好、复杂度适中且易于硬件设计等特点。但是,现有技术LZW压缩算法的硬件实现存在压缩速率较低的技术问题。

技术实现思路

[0003]有鉴于此,本申请实施例提供一种数据压缩系统及方法,以解决现有技术中数据压缩速率较低的技术问题。
[0004]为解决上述问题,本申请实施例提供的技术方案如下:
[0005]一种数据压缩系统,所述系统包括:
[0006]字典存储器,用于存储第一数量的子字典,每个所述子字典包括第二数量的存储区域,每个所述存储区域对应有哈希值;
[0007]并行计算模块,用于获取待压缩数据,所述待压缩数据包括多个字符;获取所述待压缩数据对应的当前字符和前缀字符串,对所述当前字符与所述前缀字符串按位进行异或计算,得到第一哈希值;将所述第一哈希值加上偏移量,得到第二哈希值;并行从所述第一哈希值、所述第二哈希值对应的存储区域获取索引内容;
[0008]编码状态机,用于确定所述当前字符、所述前缀字符串与所述索引内容的匹配情况;
[0009]选择仲裁器,用于根据所述匹配情况确定待写入的存储区域以及写入所述待写入的存储区域的内容,或者,根据所述匹配情况确定输出的内容。
[0010]在一种可能的实现方式中,从所述第一哈希值对应的存储区域获取索引内容为第一索引内容,从所述第二哈希值对应的存储区域获取索引内容为第二索引内容,所述编码状态机具体用于:
[0011]读取所述第一索引内容中的第一编码值,如果所述第一编码值为预设值,确定所述第一哈希值对应的存储区域为未存储状态;
[0012]读取所述第一索引内容中的第一字典值,如果所述第一字典值与所述当前字符以及所述前缀字符串不匹配,确定所述第一哈希值对应的存储区域为冲突状态;如果所述第一字典值与所述当前字符以及所述前缀字符串匹配,确定所述第一哈希值对应的存储区域为匹配状态;
[0013]读取所述第二索引内容中的第二编码值,如果所述第二编码值为预设值,确定所述第二哈希值对应的存储区域为未存储状态;
[0014]读取所述第二索引内容中的第二字典值,如果所述第二字典值与所述当前字符以及所述前缀字符串不匹配,确定所述第二哈希值对应的存储区域为冲突状态;如果所述第
二字典值与所述当前字符以及所述前缀字符串匹配,确定所述第二哈希值对应的存储区域为匹配状态。
[0015]在一种可能的实现方式中,所述选择仲裁器,具体用于:
[0016]如果存在未存储状态的存储区域,将所述当前字符、所述前缀字符串以及对应的编码值写入任一该存储区域;
[0017]如果存在匹配状态的存储区域,将该存储区域中的编码值确定为输出的内容。
[0018]在一种可能的实现方式中,所述并行计算模块还用于:
[0019]如果所述第一哈希值对应的存储区域以及所述第二哈希值对应的存储区域均为冲突状态;
[0020]将所述第二哈希值加上所述偏移量,重新得到第一哈希值;
[0021]将重新得到的第一哈希值加上所述偏移量,重新得到第二哈希值;
[0022]重新执行并行从所述第一哈希值、所述第二哈希值对应的存储区域获取索引内容。
[0023]在一种可能的实现方式中,所述字典存储器包括:编码值存储器以及字典值存储器;所述编码值存储器的一个存储区域与所述字典值存储器的一个存储区域对应于一个哈希值。
[0024]在一种可能的实现方式中,所述第一数量为16,所述第二数量为256。
[0025]一种数据压缩方法,存储第一数量的子字典,每个所述子字典包括第二数量的存储区域,每个所述存储区域对应有哈希值;所述方法包括:
[0026]获取待压缩数据,所述待压缩数据包括多个字符;
[0027]获取所述待压缩数据对应的当前字符和前缀字符串,对所述当前字符与所述前缀字符串按位进行异或计算,得到第一哈希值;
[0028]将所述第一哈希值加上偏移量,得到第二哈希值;
[0029]并行从所述第一哈希值、所述第二哈希值对应的存储区域获取索引内容;
[0030]确定所述当前字符、所述前缀字符串与所述索引内容的匹配情况;
[0031]根据所述匹配情况确定待写入的存储区域以及写入所述待写入的存储区域的内容,或者,根据所述匹配情况确定输出的内容。
[0032]在一种可能的实现方式中,从所述第一哈希值对应的存储区域获取索引内容为第一索引内容,从所述第二哈希值对应的存储区域获取索引内容为第二索引内容,所述确定所述当前字符、所述前缀字符串与所述索引内容的匹配情况,包括:
[0033]读取所述第一索引内容中的第一编码值,如果所述第一编码值为预设值,确定所述第一哈希值对应的存储区域为未存储状态;
[0034]读取所述第一索引内容中的第一字典值,如果所述第一字典值与所述当前字符以及所述前缀字符串不匹配,确定所述第一哈希值对应的存储区域为冲突状态;如果所述第一字典值与所述当前字符以及所述前缀字符串匹配,确定所述第一哈希值对应的存储区域为匹配状态;
[0035]读取所述第二索引内容中的第二编码值,如果所述第二编码值为预设值,确定所述第二哈希值对应的存储区域为未存储状态;
[0036]读取所述第二索引内容中的第二字典值,如果所述第二字典值与所述当前字符以
及所述前缀字符串不匹配,确定所述第二哈希值对应的存储区域为冲突状态;如果所述第二字典值与所述当前字符以及所述前缀字符串匹配,确定所述第二哈希值对应的存储区域为匹配状态。
[0037]在一种可能的实现方式中,所述根据所述匹配情况确定待写入的存储区域以及写入所述待写入的存储区域的内容,或者,根据所述匹配情况确定输出的内容,包括:
[0038]如果存在未存储状态的存储区域,将所述当前字符、所述前缀字符串以及对应的编码值写入任一该存储区域;
[0039]如果存在匹配状态的存储区域,将该存储区域中的编码值确定为输出的内容。
[0040]在一种可能的实现方式中,所述方法还包括:
[0041]如果所述第一哈希值对应的存储区域以及所述第二哈希值对应的存储区域均为冲突状态;
[0042]将所述第二哈希值加上所述偏移量,重新得到第一哈希值;
[0043]将重新得到的第一哈希值加上所述偏移量,重新得到第二哈希值;
[0044]重新执行所述并行从所述第一哈希值、所述第二哈希值对应的存储区域获取索引内容以及后续步骤。
[0045]由此可见,本申请实施例具有如下有益效果:
[0046]本申请实施例将LZW字典划分为第一数量的子字典,每个子字典包括第二数量的存储区域,即每个子字典的深度为第二数量,负责存储第二数量个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据压缩系统,其特征在于,所述系统包括:字典存储器,用于存储第一数量的子字典,每个所述子字典包括第二数量的存储区域,每个所述存储区域对应有哈希值;并行计算模块,获取待压缩数据,所述待压缩数据包括多个字符;获取所述待压缩数据对应的当前字符和前缀字符串,对所述当前字符与所述前缀字符串按位进行异或计算,得到第一哈希值;将所述第一哈希值加上偏移量,得到第二哈希值;并行从所述第一哈希值、所述第二哈希值对应的存储区域获取索引内容;编码状态机,用于确定所述当前字符、所述前缀字符串与所述索引内容的匹配情况;选择仲裁器,用于根据所述匹配情况确定待写入的存储区域以及写入所述待写入的存储区域的内容,或者,根据所述匹配情况确定输出的内容。2.根据权利要求1所述的系统,其特征在于,从所述第一哈希值对应的存储区域获取索引内容为第一索引内容,从所述第二哈希值对应的存储区域获取索引内容为第二索引内容,所述编码状态机具体用于:读取所述第一索引内容中的第一编码值,如果所述第一编码值为预设值,确定所述第一哈希值对应的存储区域为未存储状态;读取所述第一索引内容中的第一字典值,如果所述第一字典值与所述当前字符以及所述前缀字符串不匹配,确定所述第一哈希值对应的存储区域为冲突状态;如果所述第一字典值与所述当前字符以及所述前缀字符串匹配,确定所述第一哈希值对应的存储区域为匹配状态;读取所述第二索引内容中的第二编码值,如果所述第二编码值为预设值,确定所述第二哈希值对应的存储区域为未存储状态;读取所述第二索引内容中的第二字典值,如果所述第二字典值与所述当前字符以及所述前缀字符串不匹配,确定所述第二哈希值对应的存储区域为冲突状态;如果所述第二字典值与所述当前字符以及所述前缀字符串匹配,确定所述第二哈希值对应的存储区域为匹配状态。3.根据权利要求2所述的系统,其特征在于,所述选择仲裁器,具体用于:如果存在未存储状态的存储区域,将所述当前字符、所述前缀字符串以及对应的编码值写入任一该存储区域;如果存在匹配状态的存储区域,将该存储区域中的编码值确定为输出的内容。4.根据权利要求2所述的系统,其特征在于,所述并行计算模块还用于:如果所述第一哈希值对应的存储区域以及所述第二哈希值对应的存储区域均为冲突状态;将所述第二哈希值加上所述偏移量,重新得到第一哈希值;将重新得到的第一哈希值加上所述偏移量,重新得到第二哈希值;重新执行并行从所述第一哈希值、所述第二哈希值对应的存储区域获取索引内容。5.根据权利要求1

4任一项所述的系统,其特征在于,所述字典存储器包括:编码值存储器以及字典值存储器;所述编码值存储器的一个存储区域与所述字典值存储器的一个存储区域对应于一个哈希值。6.根据权利...

【专利技术属性】
技术研发人员:刘振军刘同强王贤坤周玉龙张文明刘凯杨萌李拓
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司
类型:发明
国别省市:

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

1