一种基于低延时的LZ无损压缩算法的FPGA实现系统技术方案

技术编号:14589154 阅读:53 留言:0更新日期:2017-02-08 18:02
本发明专利技术公开了一种基于低延时的LZ无损压缩算法的FPGA实现系统,包括输入缓存模块、输出缓存模块、移位寄存器、回读控制模块、匹配搜索模块、字符长度计算模块、匹配长度计算模块和输出控制模块;输入缓存模块用于缓存输入的源数据并进行编址;输出缓存模块用于缓存输出的压缩数据;移位寄存器用于将输入的源数据通过移位转变为哈希函数计算所需的4字节数据;回读控制模块用于回读出匹配搜索需要的源数据;匹配搜索模块用于对源数据逐字散列计算进行匹配查找;字符长度计算模块用于计算压缩序列中不可匹配字符的长度;匹配长度计算模块用于计算压缩序列中匹配字符的长度。

A FPGA implementation system of LZ lossless compression algorithm based on low delay

The invention discloses a lossless compression algorithm based on low latency LZ FPGA implementation of the system, including input module, output module, cache cache shift register, read control module, calculation module, matching length calculation module and output control module, search module, character length; the input buffer module is used to cache the input source data and addressing; output buffer module used to compress the data cache output; shift register for source data input through the shift into the hash function to calculate the required 4 bytes of data; read control module is used to retrieve matching search data; matching search module is used for the calculation of the source data by hash matching the search; character length calculation module is used for calculating the matching characters can not be compressed in the sequence length, length for calculation module; The length of the matching character in a compressed sequence.

【技术实现步骤摘要】

本专利技术涉及数据压缩领域,尤其涉及一种基于低延时的LZ无损压缩算法的FPGA实现系统
技术介绍
随着信息时代的到来,人们对数据越来越依赖,数据交换量日益增大,海量数据带来的大规模的数据传输和存储需求。将数据进行有效的压缩能够减少存储所需的空间以及最大限度地利用有限的通信带宽。而且,经过压缩的数据在一定程度上是对原始数据的加密,从而更加地提高数据的安全性。但是,当今很多数据压缩解压方案都是基于软件方式实现的。采用软件方式的压缩解压存在一个致命的弱点,那就是过多地消耗宝贵的CPU资源而且速度慢。另外系统也不稳定,很难满足一些特殊环境下的应用要求。现代VLSI超大规模集成电路(VeryLargeScaleIntegration)技术的发展使得采用硬件方式来实现压缩和解压成为可能。用专用硬件提供压缩解压可以解决上述软件压缩解压所存在的缺点。目前已有基于LZ77,LZ78及LZW等无损压缩算法的FPGA(Field-ProgrammableGateArray,即现场可编程门阵列)实现方法,主要的电路实现方式分为脉动阵列及CAM(ContentAddressableMemory,内容可寻址存储器)存储器两种。但是现有的实现方法的搜索窗口较小,导致压缩率较低,同时速率较低,没有充分发挥硬件的优势。
技术实现思路
本专利技术所要解决的技术问题是针对现有无损压缩硬件实现方法的缺陷,提供一种基于低延时的LZ(Lempel-Ziv,即Ziv和Lempel算法)无损压缩算法的FPGA实现系统,该系统采用哈希函数进行匹配搜索,搜索速度较快,输出延时小且稳定,输入数据大小不受地址限制,步骤更少压缩速度更快。本专利技术所述系统包括输入缓存模块、输出缓存模块、移位寄存器、回读控制模块、匹配搜索模块、字符长度计算模块、匹配长度计算模块和输出控制模块;所述输入缓存模块分别与移位寄存器和回读控制模块相连后与匹配搜索模块相连,匹配搜索模分别与字符长度计算模块和匹配长度计算模块相连后与输出控制模块相连,输出控制模块与输出缓存模块相连;所述输入缓存模块用于缓存输入的源数据并进行编址;所述输出缓存模块用于缓存输出的压缩数据;所述移位寄存器用于将输入的源数据通过移位转变为哈希函数计算所需的4字节数据;所述回读控制模块用于回读出匹配搜索需要的源数据;所述匹配搜索模块用于对源数据逐字散列计算进行匹配查找;所述字符长度计算模块用于计算压缩序列中不可匹配字符的长度;所述匹配长度计算模块用于计算压缩序列中匹配字符的长度;所述输出控制模块用于将压缩后的数据按照序列规定格式通过输出缓存中RAM(randomaccessmemory,随机存取存储器)的两个端口进行输出。本专利技术所述输入缓存模块包括FPGA中的块存储器,所述块存储器是一个宽度为1字节,深度为64k的随机存取存储器RAM。本专利技术所述移位寄存器长度为4个字节。本专利技术所述的回读控制模块通过读取哈希表中的地址,根据该地址实现源数据的回读。本专利技术所述匹配搜索模块包括一个对哈希表的清理逻辑电路,在复位状态时对哈希表及哈希表中地址对应的4字节数据组成的字典进行初始化,在工作状态时,通过读取哈希表中数据进行判断该数据是否失效,若失效则将其置为0,同时将字典中相应数据置为0;若有效,则不进行任何处理,保留原数据。本专利技术所述哈希表是一个宽25位,深32k的一个RAM存储单元,其中最高位为数据有效标志位,低24位为哈希表中存储的对应的地址。本专利技术所述字符长度计算模块和匹配长度计算模块使用计数器进行计算,分别得到压缩序列格式需要的长度值,字符长度计算模块包括一个用于缓存不可匹配字符的块存储器。本专利技术所述输出缓存模块通过对双端口块存储器的两个端口进行切换,实现虚拟的三端口,若其中一个端口写入压缩数据空闲时切换为数据输出,这样就实现了写入压缩数据的同时输出压缩数据。本专利技术所述匹配搜索模块对源数据逐字散列计算进行匹配查找包括以下步骤:步骤1-1,读入未压缩的4字节源数据,进行哈希函数计算,获得哈希值,将4字节源数据存入哈希表中;步骤1-2,通过获得的哈希值,读取哈希表中的地址和字典中的4字节,并且将当前数据存入到字典中,将当前地址存入到哈希表中;步骤1-3,比较未压缩的数据与从字典中读取的4字节是否相同,同时比较当前地址与哈希表中的地址之差是否小于64k,并通过读取哈希表中数据的最高位来判断该数据是否有效,若上述三个条件均满足则代表查找到匹配,进入步骤1-4,否则返回步骤1-1。步骤1-4,找到匹配后,判断不可匹配字节长度大小,若长度超过阀值(一般取值300字节),则不向后查找匹配并返回步骤1-1,若长度小于阀值,则读取后续字节进行比较,查找可匹配字符,若可匹配字符长度大于65536个字节,在第65536个字节处停止向后匹配,返回步骤1-1;若可匹配字符长度小于65536个字节,则查找结束后返回步骤1-1。本专利技术所述输出控制模块执行以下步骤:步骤2-1,若不可匹配字符长度大于15字节,将查找到的不可匹配字符前15个字节通过输出缓存中RAM的端口1输入到输出缓存中,同时通过输出缓存中RAM的端口2在压缩序列的首地址写入F0,进入步骤2-2;若不可匹配字符长度小于15字节,则直接通过端口1输入到输出缓存中,进入步骤2-3;步骤2-2,在不可匹配字符第15字节后添加一个字节用来表示后续不可匹配字符的值,若后续不可匹配字符长度大于128字节,则在其后再添加一个字节用于表示后续不可匹配字符减去128字节后的值,重复该过程直到不可匹配数据结束,其中不可匹配字符用端口1输出,不可匹配字符长度由端口2输出;步骤2-3,在不可匹配字符后写入2字节的偏移量;步骤2-4,若匹配字符长度大于19字节,则在偏移量后面添加2字节用于表示剩下的可匹配字符长度,若小于19字节,则不添加这两个字节;步骤2-5,若不可匹配字符长度超过阀值(一般取值300字节)则不再写入令牌token,若小于阀值,若不可匹配字符长度大于15,则令牌高4位为F,否则令牌高4位为不可匹配字符长度;若匹配字符长度大于19字节,则令牌低4位为F,否则令牌低4位为匹配字符长度减去4,根据上述规则确定令牌值后将步骤2-1中的F0修改为相应值后回到步骤2-1。有益效果:本专利技术通过改变数据格式降低了输出延时,可以快速的将数据压缩并且在数据输入结束后可以快速的启动下一次压缩,改进了原LZ压缩算法输出延时不确定的缺陷,可以更快更高效的实现数据压缩。本专利技术采用hash散列存储地址和字典与原LZ算法仅采用hash散列存储地址相比实现了更加快速的匹配查找与冲突判断。本专利技术相对于原LZ无损压缩算法突破了原LZ压缩算法输入数据大小受地址位宽的限制。本系统输出延时小且稳定,输入数据大小不受地址限制,添加散列字典匹配查找和冲突判断的步骤更少压缩速度更快。附图说明下面结合附图和具体实施方式对本专利技术做更进一步的具体说明,本专利技术的上述或其他方面的优点将会变得更加清楚。图1为本专利技术的整体硬件模块图;图2为本专利技术所采用的压缩序列的格式,出于硬件实现的考虑由官方LZ压缩序列的格式修改得到;图3为本专利技术的压缩流程图;图4为本专利技术的信号端口图。具体实施方式下面结合附图对专利技术的
技术实现思路
进行详细说明:如图1所示,本专利技术公开了一种基于本文档来自技高网
...

【技术保护点】
一种基于低延时的LZ无损压缩算法的FPGA实现系统,其特征在于,包括输入缓存模块、输出缓存模块、移位寄存器、回读控制模块、匹配搜索模块、字符长度计算模块、匹配长度计算模块和输出控制模块;所述输入缓存模块分别与移位寄存器和回读控制模块相连后与匹配搜索模块相连,匹配搜索模分别与字符长度计算模块和匹配长度计算模块相连后与输出控制模块相连,输出控制模块与输出缓存模块相连;所述输入缓存模块用于缓存输入的源数据并进行编址;所述输出缓存模块用于缓存输出的压缩数据;所述移位寄存器用于将输入的源数据通过移位转变为哈希函数计算所需的4字节数据;所述回读控制模块用于回读出匹配搜索需要的源数据;所述匹配搜索模块用于对源数据逐字散列计算进行匹配查找;所述字符长度计算模块用于计算压缩序列中不可匹配字符的长度;所述匹配长度计算模块用于计算压缩序列中匹配字符的长度;所述输出控制模块用于将压缩后的数据按照序列规定格式通过输出缓存中RAM的两个端口进行输出。

【技术特征摘要】
2016.09.28 CN 20161086083491.一种基于低延时的LZ无损压缩算法的FPGA实现系统,其特征在于,包括输入缓存模块、输出缓存模块、移位寄存器、回读控制模块、匹配搜索模块、字符长度计算模块、匹配长度计算模块和输出控制模块;所述输入缓存模块分别与移位寄存器和回读控制模块相连后与匹配搜索模块相连,匹配搜索模分别与字符长度计算模块和匹配长度计算模块相连后与输出控制模块相连,输出控制模块与输出缓存模块相连;所述输入缓存模块用于缓存输入的源数据并进行编址;所述输出缓存模块用于缓存输出的压缩数据;所述移位寄存器用于将输入的源数据通过移位转变为哈希函数计算所需的4字节数据;所述回读控制模块用于回读出匹配搜索需要的源数据;所述匹配搜索模块用于对源数据逐字散列计算进行匹配查找;所述字符长度计算模块用于计算压缩序列中不可匹配字符的长度;所述匹配长度计算模块用于计算压缩序列中匹配字符的长度;所述输出控制模块用于将压缩后的数据按照序列规定格式通过输出缓存中RAM的两个端口进行输出。2.根据权利要求1所述的系统,其特性在于,所述输入缓存模块包括FPGA中的块存储器,所述块存储器是一个宽度为1字节,深度为64k的随机存取存储器RAM。3.根据权利要求3所述的移位寄存器,其特性在于,所述移位寄存器长度为4个字节。4.根据权利要求3所述的系统,其特性在于,所述的回读控制模块通过读取哈希表中的地址,根据该地址实现源数据的回读。5.根据权利要求4所述的系统,其特性在于,所述匹配搜索模块包括一个对哈希表的清理逻辑电路,在复位状态时对哈希表及哈希表表中地址对应的4字节数据组成的字典进行初始化,在工作状态时,通过读取哈希表中数据进行判断该数据是否失效,若失效则将其置为0,同时将字典中相应数据置为0,若有效,则不进行任何处理,保留原数据。6.根据权利要求5所述的系统,其特性在于,所述哈希表是一个宽25位,深32k的一个RAM存储单元,其中最高位为数据有效标志位,低24位为哈希表中存储的对应的地址。7.根据权利要求6所述的系统,所述字符长度计算模块和匹配长度计算模块使用计数器进行计算,分别得到压缩序列格式需要的长度值,字符长度计算模块包括一个用于缓存不可匹配字符的块存储器。8.根据权利要求7所述的系统,其特性在于,所述输出缓存模块通过对双端口块存储器的两个端口进行切换,实现虚拟的三端口,若其中一个端口写入...

【专利技术属性】
技术研发人员:许建峰茅文深刘文松周全宇姚浩
申请(专利权)人:中国电子科技集团公司第二十八研究所
类型:发明
国别省市:江苏;32

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

1