一种基于FPGA快速实现LZ77压缩的装置及方法制造方法及图纸

技术编号:20947228 阅读:104 留言:0更新日期:2019-04-24 03:33
本发明专利技术涉及一种基于FPGA快速实现LZ77压缩的装置及方法,压缩装置中数据缓存模块存储压缩滑动窗口内的原始数据,采取FPGA内Block RAM资源实现;HASH链表模块实现HASH字典的构建及存储,采取FPGA内Block RAM+逻辑资源实现;LZ77编码模式实现相同字符串的查找及编码。在压缩过程中,构建一等同压缩窗口大小循环缓存存储HASH冲突链表,按照待压缩数据顺序依次存入冲突链表,通过循环覆盖方式替代移出窗口操作;在利用HASH链表查找相同字符串时,利用FPGA并行处理优势,在通过HASH链表查找相同字符串的过程中同时从两个方向进行匹配字符串的查找,同时在压缩编码时采取预处理的方式提前剔除掉HASH特征值相同但字符不同的匹配值,达到快速消除数据冗余实现LZ77数据压缩目的。

A Fast LZ77 Compression Device and Method Based on FPGA

The invention relates to a device and method for fast implementation of LZ77 compression based on FPGA, in which the data buffer module stores the original data in the compressed sliding window and adopts Block RAM resources in the FPGA, the HASH linked list module realizes the construction and storage of the HASH dictionary, the implementation of Block RAM + logical resources in the FPGA, and the LZ77 coding mode realizes the search and coding of the same string. In the compression process, the HASH conflict list is stored in the same compression window size circular cache, which is stored in the conflict list in turn according to the order of data to be compressed, and the operation of moving out window is replaced by circular coverage. When using the HASH chain table to find the same string, using the advantage of parallel processing of FPGA, the HASH chain table can search the same string from two directions at the same time. Line-matched string search, while in compression coding, the same HASH eigenvalues but different characters are removed in advance by preprocessing, so as to quickly eliminate data redundancy and realize LZ77 data compression.

【技术实现步骤摘要】
一种基于FPGA快速实现LZ77压缩的装置及方法
:本专利技术涉及一种基于FPGA快速实现LZ77压缩的装置及方法,应用于FPGA快速实现LZ77数据压缩的领域。
技术介绍
:随着信息化社会的发展,信息的交互越来越频繁,数据量的传输也越来越大,而如此大规模数据量的处理对数据的压缩也提出了更高的要求。一般的数据压缩都是由软件进行,在大规模的数据量进行传输时,不但占用了CPU大量的计算资源,而且其频繁的数据压缩处理也会影响CPU的性能。
技术实现思路
:本专利技术的目的为了克服上述现有技术存在的问题,提供一种基于FPGA快速实现LZ77压缩的装置及方法,本专利技术采用FPGA实现LZ77数据压缩的方法,无需CPU参与,将CPU从繁忙的数据处理中解脱出来,减小其开销。而且利用FPGA并行处理数据及流水线结构的优点,采取相应HASH链表存储方式避免移出链表操作可以提高压缩的速度,通过多次匹配字符串的查找也可以提高压缩率。本专利技术所提出的方法也可以用在GZIP压缩、LZW压缩等FPGA实现过程中。本专利技术的技术方案为:一种基于FPGA快速实现LZ77压缩的装置,包括数据缓存模块、HASH链表模块、LZ77编码模块,其特征在于:LZ77编码模块分别与数据缓存模块、HASH链表模块相连:数据缓存模块用以存储压缩滑动窗口内的原始数据,为LZ77编码模块提供编码的数据源,采取FPGA内的BlockRAM资源实现;HASH链表模块实现HASH字典的构建及存储,以原始待压缩数据3个连续字符的HASH计算值为字典的“页码”构建链表式的字典,以便LZ77通过翻找字典的方式快速的定位相同字符串进行压缩编码,采取FPGA内的BlockRAM+逻辑资源实现;LZ77编码模式实现相同字符串的查找及编码;所述数据缓存模块为一个比压缩移动窗口稍大的循环缓存,包括一大一小两部分:大的循环缓存用于按照原始数据顺序存储匹配窗口内的已压缩数据,大小等同于压缩移动窗口;小的循环缓存用于存储紧邻匹配窗口的待压缩数据,压缩过程中实时的将已压缩数据移入压缩窗口中同时存入新的待压缩数据;所述HASH链表模块对原始压缩数据实现字典的构建和为LZ77编码模块提供与待压缩数据相同字符串匹配地址的功能;在构建字典的过程中,以3个字节数据为一组,选取合适的HASH函数,以其HASH函数值为字典的地址,将HASH函数计算值相同的3个字节的数据以链表的方式连接在一起。这样在LZ77编码过程中,可以快速的将与正编码的3个字节数据相同的字符串查找出来,达到快速压缩编码的目的。为进一步提高压缩的速度,本设计采用等同压缩窗口大小的双端口RAM存储HASH冲突链表,按原始待压缩数据顺序循环利用该存储空间,通过指针的方式将窗口内具有相同HASH特征值的字符串链接在一起形成冲突链表。为加快查找表的速度,可以从前后两个方向同时进行匹配查找。在数据插入链表的过程中,可以通过并行的方式同时处理4个字符串HASH值的插入链表操作。所述LZ77编码模块通过HASH链表模块提供的与待压缩数据相同字符串匹配地址,通过比较找出相同字符串的长度以及与压缩滑动窗口右侧的距离实现编码。由于相同字符串又可能不止一个,为提高压缩率需在这些相同字符串中找出压缩最优的一种。当然在HASH链表比较长的情况下,相同字符串匹配结果也比较多,如果将这些匹配结果都进行LZ77编码,比较其编码结果从中选取最优的编码会比较消耗时间,所以需通过阈值设定的方式规定其查找次数。所述HASH链表模块在构建字典的过程中,以3个字节数据为一组,选取合适的HASH函数,以HASH函数值为字典的地址,将HASH函数计算值相同的3个字节的数据以链表的方式连接在一起;这样在LZ77编码过程中,能快速的将与LZ77正编码的3个字节数据相同的字符串查找出来,达到快速压缩编码的目的。所述HASH链表模块采用等同压缩窗口大小的双端口RAM存储HASH冲突链表,按原始待压缩数据的顺序依次将待压缩数据前后相邻两个具有相同HASH地址的数据位置存入HASH链表模块内的缓存空间内,由于为循环缓存存储的RAM地址即为原始数据在滑动窗内的地址;通过这种指针的方式将窗口内具有相同HASH函数值的字符串链接在一起形成冲突链表,构建一个滑动的“字典”;为加快查找表的速度,从前后两个方向同时进行匹配查找;在数据插入冲突链表的过程中,通过并行的方式同时处理4个字符串HASH函数值的插入操作。一种基于FPGA快速实现LZ77压缩的方法,其特征在于按以下步骤进行:步骤一:将原始压缩数据分别输入数据缓存模块和HASH链表模块中,两个模块并行处理,彼此不会互相干扰影响速度;步骤二:数据缓存模块包括两个循环存储空间,由FPGA内的BlockRAM资源实现,一个与压缩滑动窗口等同大小的双端口RAM用以存储已压缩数据,通过循环写入的方式实现窗口的滑动;另一个循环缓存为256Byte大小的双端口RAM,用以存储压缩窗口右侧的等待压缩数据;在压缩过程中,数据首先存入256Byte的缓存中,当LZ77编码模块编码完成后,将已压缩的数据移入滑动窗口的缓存中,同时将新的等待压缩数据移入该256Byte缓存;步骤三:HASH链表模块用相邻3个BYTE字符的HASH函数值为字典地址,按原始待压缩数据的顺序依次将待压缩数据前后相邻两个具有相同HASH地址的数据位置存入HASH链表模块内的缓存空间内,通过这种指针的方式将HASH函数值相同的字符串链接在一起,构建一个链式字典,该链式字典的大小等同于压缩滑动窗口的大小,由于为循环缓存存储的RAM地址即为原始数据在滑动窗内的地址;链式字典外部有一个缓冲空间,用以存储HASH链表的首尾两个数据的信息,在查找相同字符串的过程中,通过该入口的数据信息能轻易的指向链式字典链表信息的首尾两个位置,快速的实现链式字典信息的查找;步骤四:LZ77编码模块实现压缩的编码功能,通过HASH链表模块提供的相同字符串位置信息,分别向数据缓存模块的滑动窗内缓存和待压缩数据缓存发送读取请求,得到压缩滑动窗内该相同字符串位置处对应的已压缩数据和等待压缩数据,通过比较的方式,得到相同字符串的长度以及距离压缩滑动窗口右侧的位置,用长度+位置信息的方式对相同字符串的压缩编码,达到消除冗余实现数据压缩的目的。本专利技术利用LZ77是基于字典和滑动窗口的无损压缩技术,将滑动窗口内的数据通过HASH链表的方式构建字典,通过字典查找的方法寻找重复出现的字符串,并用较短的编码代替这些重复出现的字符串以达到消除冗余实现压缩的目的。实施本专利技术的优势:1.采用双端口RAM,在进行查找操作时可同时从链表首尾两个方向进行匹配字符串查找,加快压缩速度,提高压缩率;2.采用并行处理方式,充分利用了FPGA并行运行的特性,极大的提高了HASH处理及压缩的速度;3.LZ77压缩查找匹配数据时,在查找表时进行预处理,剔除掉HASH值相同但字符不同的匹配值,提高压缩效率;4.HASH链表存储空间大小等同于压缩窗口(32KB或者16KB),该存储空间按原始待压缩数据顺序循环存入,通过覆盖的方式替代移出窗口数据的删除,无需额外的删除操作,进一步加快压缩的速度;附图说明图1为本专利技术的LZ77压缩装置结构示意图。图2为本专利技术的HASH链表模块结本文档来自技高网...

【技术保护点】
1.一种基于FPGA快速实现LZ77压缩的装置,包括数据缓存模块、HASH链表模块、LZ77编码模块,其特征在于:LZ77编码模块分别与数据缓存模块、HASH链表模块相连:数据缓存模块用以存储压缩滑动窗口内的原始数据,为LZ77编码模块提供编码的数据源,采取FPGA内的Block RAM资源实现;HASH链表模块实现HASH字典的构建及存储,以原始待压缩数据3个连续字符的HASH计算值为字典的“页码”构建链表式的字典,以便LZ77通过翻找字典的方式快速的定位相同字符串进行压缩编码,采取FPGA内的Block RAM+逻辑资源实现;LZ77编码模式实现相同字符串的查找及编码;所述数据缓存模块为一个比压缩移动窗口稍大的循环缓存,包括一大一小两部分:大的循环缓存用于按照原始数据顺序存储匹配窗口内的已压缩数据,大小等同于压缩移动窗口;小的循环缓存用于存储紧邻匹配窗口的待压缩数据,压缩过程中实时的将已压缩数据移入压缩窗口中同时存入新的待压缩数据;所述HASH链表模块对原始压缩数据实现字典的构建和为LZ77编码模块提供与待压缩数据相同字符串匹配地址的功能;所述LZ77编码模块通过HASH链表模块提供的与待压缩数据相同字符串匹配地址,通过比较找出相同字符串的长度以及与压缩滑动窗口右侧的距离实现编码。...

【技术特征摘要】
1.一种基于FPGA快速实现LZ77压缩的装置,包括数据缓存模块、HASH链表模块、LZ77编码模块,其特征在于:LZ77编码模块分别与数据缓存模块、HASH链表模块相连:数据缓存模块用以存储压缩滑动窗口内的原始数据,为LZ77编码模块提供编码的数据源,采取FPGA内的BlockRAM资源实现;HASH链表模块实现HASH字典的构建及存储,以原始待压缩数据3个连续字符的HASH计算值为字典的“页码”构建链表式的字典,以便LZ77通过翻找字典的方式快速的定位相同字符串进行压缩编码,采取FPGA内的BlockRAM+逻辑资源实现;LZ77编码模式实现相同字符串的查找及编码;所述数据缓存模块为一个比压缩移动窗口稍大的循环缓存,包括一大一小两部分:大的循环缓存用于按照原始数据顺序存储匹配窗口内的已压缩数据,大小等同于压缩移动窗口;小的循环缓存用于存储紧邻匹配窗口的待压缩数据,压缩过程中实时的将已压缩数据移入压缩窗口中同时存入新的待压缩数据;所述HASH链表模块对原始压缩数据实现字典的构建和为LZ77编码模块提供与待压缩数据相同字符串匹配地址的功能;所述LZ77编码模块通过HASH链表模块提供的与待压缩数据相同字符串匹配地址,通过比较找出相同字符串的长度以及与压缩滑动窗口右侧的距离实现编码。2.根据权利要求1所述的基于FPGA快速实现LZ77压缩的装置,其特征在于:所述HASH链表模块在构建字典的过程中,以3个字节数据为一组,选取合适的HASH函数,以HASH函数值为字典的地址,将HASH函数计算值相同的3个字节的数据以链表的方式连接在一起;这样在LZ77编码过程中,能快速的将与LZ77正编码的3个字节数据相同的字符串查找出来,达到快速压缩编码的目的。3.根据权利要求2所述的基于FPGA快速实现LZ77压缩的装置,其特征在于:所述HASH链表模块采用等同压缩窗口大小的双端口RAM存储HASH冲突链表,按原始待压缩数据顺序循环利用双端口RAM的存储空间,通过指针的方式将窗口内具有相同HASH函数值的字...

【专利技术属性】
技术研发人员:王晓斌陈伯芳詹万鹏危必波郑蓉
申请(专利权)人:武汉中元华电科技股份有限公司
类型:发明
国别省市:湖北,42

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

1