[发明专利]一种基于流水线的数据匹配方法和装置有效
申请号: | 201410197834.6 | 申请日: | 2014-05-12 |
公开(公告)号: | CN103997346B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 董乾;刘勇;李冰;赵霞;王刚 | 申请(专利权)人: | 东南大学 |
主分类号: | H03M7/30 | 分类号: | H03M7/30 |
代理公司: | 江苏永衡昭辉律师事务所32250 | 代理人: | 王斌 |
地址: | 214135 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 流水线 数据 匹配 方法 装置 | ||
技术领域
本发明实施例涉及数据压缩技术领域,尤其涉及一种基于流水线的数据匹配方法和装置。
背景技术
目前,为了节省数据存储空间,减少存储介质需求,同时提高数据传输效率,数据压缩技术在物联网、数据库、云存储等领域有着广泛的应用。其中,Gzip压缩算法是目前应用最广泛的一种高效且开源压缩算法,例如,使用Gzip压缩算法在Web服务器上将网页进行压缩,可以提高访问响应速度。
Gzip压缩算法具体包括两部分:LZ77算法和哈夫曼(Huffman)编码。其中哈夫曼编码不在本专利讨论范围之内。LZ77算法通过匹配替换将原始源文件进行去冗余,以达到压缩的目的。LZ77算法的软件实现方法是:先使用哈希算法,将可能匹配的字符串的地址构成链表;然后在匹配范围内(也被称为滑动窗口,大小为32768,32KB),将当前处理字符串与上述链表中字符串,不断迭代寻找最佳匹配;最后将匹配串替换来去冗余。
目前LZ77算法软件实现时,会使用哈希算法构造链表;从文件头开始,为原始源文件中每3个连续字节(3 byte : 24bit)计算得出一个15比特(15bit)哈希值(根据哈希算法,哈希值相同,即有可能存在匹配),然后会用一个链表数据结构保存所有哈希相同的字符索引;对每个进行匹配的字符,首先计算其和其后2个字节(Byte),一共连续3个字节(Byte),的哈希值;然后维护哈希链表的同时,使用哈希链表循环取出匹配范围内可能匹配的字符串地址,根据地址依次将字符串取出进行匹配比较;匹配成功部分字符串也需要通过哈希计算并插入链表,供后面字符匹配查找时使用。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
使用软件对LZ77算法进行顺序串行(哈希计算→链表维护→取值比较(循环迭代取值比较))处理时,处理效率非常低,消耗大量的处理器与存储器资源;目前LZ77算法软件实现哈希计算方法存在缺陷,相邻编码字符串的哈希值之间容易冲突(字符串不同,哈希值相同),造成无效匹配;两者是软件实现LZ77算法的性能瓶颈。
发明内容
本发明提供一种基于流水线的数据匹配方法和装置,以解决现有技术中,软件实现LZ77算法,顺序串行迭代处理的匹配成功率低,效率差、且消耗大量处理器与存储器资源的缺陷,该LZ77算法实施例现通过基于可编程门阵列的硬件来实现。
本发明提供一种基于流水线的数据匹配方法,包括:
字典存储器用于分部存储将要被匹配压缩的文件,根据匹配压缩的进度适时,字典存储器循环从参与匹配压缩原始源文件中顺序逐次分块读入并更新内容,直至整个文件匹配压缩完毕;哈希单元使用改进哈希算法计算当前处理字符及随后2个字节的字符(共3个字节(Byte)的字符,以下简称为:当前处理字符段)的哈希值,并以此哈希值为地址,将当前处理字符在字典存储器中的位置信息为内容,存储到的链头存储器中;根据上述地址中链头随机存储器中内容的情况,对链头存储器、回溯存储器和相关链头匹配先入先出存储器进行维护;匹配比较单元,从链头匹配先入先出存储器和回溯存储器中顺序取得可能匹配的字符串索引,并依次使用改进匹配比较方法取值比较,同时维护回溯存储器,直至匹配比较结束。以上均为并行操作同时进行,流水线操作。由于读入操作和哈希计算速度很快,流水线数据依赖性很小。所述改进匹配比较方法,区别于每次只匹配比较1个字节旧方法,通过从字典存储器取值、拼接,使每次匹配比较8个字节(Byte),匹配比较后输出匹配失败或匹配成功字节数;若匹配成功字节数为8,则继续匹配后8个字节(Byte),直至得到最长匹配长度为止。
本发明实施例还提供一种基于流水线的装置,包括:
字典存储器,用于顺序分块存储参与匹配压缩原始源文件,并且根据匹配压缩情况更新;哈希单元,用于计算当前处理字符段的哈希值,并以哈希值为地址,将当前处理字符在字典存储器中的位置信息存入链头存储器。如果在链头存储器中已经存储有以哈希值为地址的旧位置信息,则使用新位置信息替代所述旧位置信息。哈希单元使用新位置信息替代旧位置信息时,会将新位置信息和旧位置信息拼接后,放入链头匹配先入先出存储器中;匹配比较单元在匹配比较时,再从链头匹配先入先出存储器中取出该信息,用于遍历回溯存储器得到哈希值相同的地址。以上述地址从字典存储器中取值,匹配替代去冗余。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410197834.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置