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通过翻找字典的方式快速的定位 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。