一种硬件LZ77的压缩实现系统及方法技术方案

技术编号:8685185 阅读:232 留言:0更新日期:2013-05-09 04:53
本发明专利技术提供一种硬件LZ77的压缩实现系统及方法,该方法包括:步骤1.缓存待压缩的数据;步骤2.利用乒乓操作提取所述待压缩的数据,并交替使用哈希表和字典链表对其进行压缩编码;步骤3.对压缩编码后的数据中的非定长数据进行拼接处理;步骤4.缓存压缩后的数据和拼接处理后的数据。本发明专利技术采用FPGA实现LZ77压缩功能,通过采用数据写入缓存模块和数据写出缓存模块实现数据的乒乓写入和乒乓读取功能,采用字典模块实现字典的交替更新和使用,从而使得LZ77压缩算法模块达到最高的效率,并且通过压缩算法模块和非定长码元拼接模块的并行操作,提高现有的LZ77压缩算法的处理效率。

【技术实现步骤摘要】

本专利技术涉及数据压缩技术,特别是涉及以一种硬件LZ77的压缩系统及方法。
技术介绍
随着信息和通信技术的迅猛发展,数据交换量日益增大,大规模的数据处理也变的更加的繁杂。对于如此庞大的数据必须进行有效的压缩,才能够有效的减少数据的存储量,最大限度的合理利用有限的数据传输带宽。除此之外,压缩后的数据在一定程度上是对原始数据的加密,能够更好的保护数据。数据压缩可分成两种类型,一种叫做无损压缩,另一种叫做有损压缩。无损压缩是指使用压缩后的数据进行重构(或者叫做还原,解压缩),重构后的数据与原来的数据完全相同;无损压缩用于要求重构的信号与原始信号完全一致的场合。一个很常见的例子是磁盘文件的压缩。根据目前的技术水平,无损压缩算法一般可以把普通文件的数据压缩到原来的1/2 1/4。大多数压缩程序使用基于自适应字典的LZ算法来缩小文件。“LZ”指的是此算法的专利技术者Lempel和Ziv,“字典”指的是对数据块进行归类的方法。目前,绝大部分的压缩还是有软件实现,对数据的压缩处理操作仍然是由中央处理器(CPU)来完成的,当面对海量数据处理时,必然会占用大量的CPU资源,使得在进行数据压缩的同时进行其他操作变成了难题。除此之外,软件压缩是一种顺序进行的操作,无法取得高效率的并行运算。因此,如何有效的提高压缩算法的效率,减轻海量数据压缩给CPU带来的压力成为了现有的软件压缩解压缩技术的主要问题。
技术实现思路
本专利技术的专利技术目的是提供一种硬件LZ77的压缩实现系统及方法,以能够有效的提高LZ77压缩算法的效率,将CPU从海量数据压缩中解脱出来。为实现上述目的,本专利技术提供了一种硬件LZ77的压缩实现系统,该系统包括:数据写入缓存模块,缓存待压缩的数据;压缩处理模块,利用乒乓操作提取所述待压缩的数据,并交替使用哈希表和字典链表对其进行压缩编码;拼接处理模块,对压缩编码后的数据中的非定长数据进行拼接处理;数据读出缓存模块,缓存压缩后的数据和拼接处理后的数据。进一步的,所述数据写入缓存模块包括:使用多路选择器将待压缩的数据,存储到两个数据存储装置中。进一步的,所述压缩处理模块包括:交替压缩模块,取部分数据进行哈希变换,在哈希表中查找,若未找到,则所述部分数据是新字符,以新字符编码输出非定长数据,若找到,则所述部分数据是重复字符,结合字典链表以此为数据头寻找最大的匹配长度,以重复字符编码输出非定长数据;数据更新模块,压缩过程中,根据哈希表和字典链表反馈的信号,对待压缩的数据进行相应的读取操作,对哈希表和字典链表中的数据进行相应的更新。进一步的,所述拼接处理模块包括:转换处理模块,利用移位寄存器将所述非定长数据拼接成定长数据;计算处理模块,计算压缩后的数据个数,与压缩前数据个数比较,若压缩后的数据个数多于压缩前的数据个数,选取直接存储的方式,若压缩后的数据个数少于压缩前的数据个数,选取压缩存储的方式;对齐处理模块,添加压缩后的数据块头,并对压缩后的数据尾部进行字节对齐处理。进一步的,所述数据读出缓存模块中:若一个数据块未完成压缩,则使用写入数据多路选择器,选择将压缩后的数据写入数据存储装置;若一个数据块完成压缩,则利用读出数据多路选择器,选择读出对应的数据存储装置中的数据。为实现上述目的,本专利技术还提供一种硬件LZ77的压缩实现方法,该方法包括:步骤1,缓存待压缩的数据;步骤2,利用乒乓操作提取所述待压缩的数据,并交替使用哈希表和字典链表对其进行压缩编码;步骤3,对压缩编码后的数据中的非定长数据进行拼接处理;步骤4,缓存压缩后的数据和拼接处理后的数据。进一步的,所述步骤I包括: 使用多路选择器将待压缩的数据,存储到两个数据存储装置中。进一步的,所述步骤2包括:步骤21,取部分数据进行哈希变换,在哈希表中查找,若未找到,则所述部分数据是新字符,以新字符编码输出非定长数据,若找到,则所述部分数据是重复字符,结合字典链表以此为数据头寻找最大的匹配长度,以重复字符编码输出非定长数据;步骤22,压缩过程中,根据哈希表和字典链表反馈的信号,对待压缩的数据进行相应的读取操作,对哈希表和字典链表中的数据进行相应的更新。进一步的,所述步骤3包括:步骤31,利用移位寄存器将所述非定长数据拼接成定长数据;步骤32,计算压缩后的数据个数,与压缩前数据个数比较,若压缩后的数据个数多于压缩前的数据个数,选取直接存储的方式,若压缩后的数据个数少于压缩前的数据个数,选取压缩存储的方式;步骤33,添加压缩后的数据块头,并对压缩后的数据尾部进行字节对齐处理。进一步的,所述步骤4中:若一个数据块未完成压缩,则使用写入数据多路选择器,选择将压缩后的数据写入数据存储装置;若一个数据块完成压缩,则利用读出数据多路选择器,选择读出对应的数据存储装置中的数据。本专利技术的有益功效在于:1.采用 FPGA (Field Programmable Gate Arry)实现 LZ77 压缩功能,通过采用数据写入缓存、数据读出缓存的方法实现数去写入和读出的乒乓操作,提高了 LZ77压缩的效率。2.采用交替使用和初始化哈希表和字典链表,实现了字典初始化与压缩的并行操作,从一定程度上提高了 LZ77压缩的效率。3.采用LZ77编码和非定长码元拼接实现了 LZ77压缩编码和非定长码元高速拼接的并行操作,进一步提升了 LZ77压缩的效率。4.采用压缩模式选择和数据直接存储实现了数据直接存储和压缩存储两种模式,保证了 LZ77压缩的压缩比,确保了压缩的性能。以下结合附图和具体实施例对本专利技术进行详细描述,但不作为对本专利技术的限定。附图说明图1A为本专利技术的硬件LZ77的压缩实现系统示意图;图1B为本专利技术的硬件LZ77的压缩实现方法流程图;图1C为本专利技术提供的硬件LZ77压缩实现系统的结构示意图;图2为本专利技术提供的硬件LZ77压缩实现系统的一个具体实施方式的结构示意图;图3为本专利技术提供的硬件LZ77压缩实现系统的一个具体实施实例中数据写入缓存模块的具体实施方式的结构示意图;图4为本专利技术提供的硬件LZ77压缩实现系统的另一个具体实施方式的结构示意图;图5为本专利技术提供的硬件LZ77压缩实现系统的一个具体实施实例中压缩算法模块的具体实施方式的结构示意图;图6为本专利技术提供的硬件LZ77压缩实现系统的另一个具体实施方式的结构示意图;图7为本专利技术提供的硬件LZ77压缩实现系统的一个具体实施实例中字典模块的具体实施方式的结构示意图;图8为本专利技术提供的硬件LZ77压缩实现系统的另一个具体实施方式的结构示意图;图9是本专利技术提供的硬件LZ77压缩实现系统的一个具体实施实例中非定长码元拼接模块的具体实施方式的结构示意图;图10为本专利技术提供的硬件LZ77压缩实现系统的另一个具体实施方式的结构示意图;图11为本专利技术提供的硬件LZ77压缩实现系统的一个具体实施实例中数据读出缓存模块的具体实施方式结构示意图;图12为本专利技术提供的硬件LZ77压缩实现系统的另一个具体实施方式的结构示意图13为本专利技术提供的硬件LZ77压缩实现系统的一个具体实施实例中哈希表模块或者字典链表模块的具体实施方式的结构示意图;图14为本专利技术提供的硬件LZ77压缩实现系统的另一个具体实施方式的结构示意图;图15为本专利技术提供的硬件LZ77压缩实现系统的一个具体实施实例中非本文档来自技高网...

【技术保护点】
一种硬件LZ77的压缩实现系统,其特征在于,所述系统包括:数据写入缓存模块,缓存待压缩的数据;压缩处理模块,利用乒乓操作提取所述待压缩的数据,并交替使用哈希表和字典链表对其进行压缩编码;拼接处理模块,对压缩编码后的数据中的非定长数据进行拼接处理;数据读出缓存模块,缓存压缩后的数据和拼接处理后的数据。

【技术特征摘要】
1.一种硬件LZ77的压缩实现系统,其特征在于,所述系统包括: 数据写入缓存模块,缓存待压缩的数据; 压缩处理模块,利用乒乓操作提取所述待压缩的数据,并交替使用哈希表和字典链表对其进行压缩编码; 拼接处理模块,对压缩编码后的数据中的非定长数据进行拼接处理; 数据读出缓存模块,缓存压缩后的数据和拼接处理后的数据。2.根据权利要求1所述的压缩实现系统,其特征在于,所述数据写入缓存模块包括: 使用多路选择器将待压缩的数据,存储到两个数据存储装置中。3.根据权利要求1所述的压缩实现系统,其特征在于,所述压缩处理模块包括: 交替压缩模块,取部分数据进行哈希变换,在哈希表中查找,若未找到,则所述部分数据是新字符,以新字符编码输出非定长数据,若找到,则所述部分数据是重复字符,结合字典链表以此为数据头寻找最大的匹配长度,以重复字符编码输出非定长数据; 数据更新模块,压缩过程中,根据哈希表和字典链表反馈的信号,对待压缩的数据进行相应的读取操作,对哈希表和字典链表中的数据进行相应的更新。4.根据权利要求1所述的压缩实现系统,其特征在于,所述拼接处理模块包括: 转换处理模块,利用移位寄存器将所述非定长数据拼接成定长数据; 计算处理模块,计算压缩后的数据个数,与压缩前数据个数比较,若压缩后的数据个数多于压缩前的数据个数,选取直接存储的方式,若压缩后的数据个数少于压缩前的数据个数,选取压缩存储 的方式; 对齐处理模块,添加压缩后的数据块头,并对压缩后的数据尾部进行字节对齐处理。5.根据权利要求1所述的压缩实现系统,其特征在于,所述数据读出缓存模块中: 若一个数据块未完成压缩,则使用写入数据多路选择器,选择将压缩后的数据写入数据存储装置; 若一个数据块完成压缩,则利用读出数据多路选择...

【专利技术属性】
技术研发人员:张林隋秀峰狄永清李冰
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1