System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于硬件加速器的LZW无损压缩管理系统及方法技术方案_技高网
当前位置: 首页 > 专利查询>安康学院专利>正文

一种基于硬件加速器的LZW无损压缩管理系统及方法技术方案

技术编号:40370686 阅读:6 留言:0更新日期:2024-02-20 22:14
本发明专利技术公开了一种基于硬件加速器的LZW无损压缩管理系统及方法,属于哈希字典查找技术领域。本发明专利技术采用哈希字典查找的方式对压缩数据的地址和对应字符串进行查找,使用乘法哈希算法将当前字符串通过计算得到哈希数据,利用FPGA实现乘法运算,在一个时钟周期内完成哈希运算,将哈希数据传输到哈希字典中,哈希字典存储同一哈希Hash数据对应的不同字符串在字符串字典中的地址,在字符串字典中查找匹配哈希字典内存储的地址对应的的字符串,更新字符串字典,最后输出匹配结果。本发明专利技术采用的哈希字典查找相较于CAM芯片查找和CAM存储器查找,RAM深度小,所以FPGA成本和功耗都较小。

【技术实现步骤摘要】

本专利技术涉及哈希字典查找,具体为一种基于硬件加速器的lzw无损压缩管理系统及方法。


技术介绍

1、随着信息化时代的到来,很多的工作越来越趋向于电子化和网络化,很多的文件、资料和信息都成为了电子版,而为了减少网络的使用量、增加传递信息的速度和确保传送文件的完好无损,文件无损压缩就显得格外重要;其中的lzw压缩虽然可以实现这些目的,但是lzw压缩字典深度较低导致lzw压缩率较低,只有512、1024,而本设计采用2048;现有lzw压缩方案有基于cam芯片构建lzw字典串表查找和利用ram构建cam存储器查找两种方案,但这两种方案存在cam芯片成本高、增加硬件设计功耗;并且cam芯片厂商主要在于国外,现在国产化设计并不占优势。不仅如此,利用ram构建cam存储器查找存在地址范围过大,压缩无法完全使用,无法做到精准无用匹配,而为了解决这一问题该方案所采用的每次清空字典内容,严重降低了lzw压缩率。并且现有lzw机制压缩后数据大于原始数据没有解决方案;本专利技术采用数据量比较的方法解决了这些缺陷。


技术实现思路

1、本专利技术的目的在于提供一种基于硬件加速器的lzw无损压缩管理系统及方法,以解决上述
技术介绍
中提出的问题。

2、为了解决上述技术问题,本专利技术提供如下技术方案:

3、一种基于硬件加速器的lzw无损压缩管理系统,lzw无损压缩管理系统包括哈希字典模块、字符串字典模块、匹配决策模块和数据输出模块;

4、所述哈希字典模块用于动态维护哈希地址,接收哈希数据并且存储同一哈希值对应的不同字符串在字符串字典中的地址;

5、所述字符串字典模块用于接收哈希字典所发送的地址,查找接收地址所对应的字符串,再与当前字符串进行匹配,输出匹配结果;

6、所述匹配决策模块用于接收字符串字典发送过来的匹配结果,之后在匹配结果中决策出最终的匹配结果;

7、所述数据输出模块用于将压缩后的数据量与压缩前的数据量进行对比,得到最终的压缩结果。

8、哈希字典模块,接收hash数据,并输出当前字符串string=p+c在字符串字典中存储的地址列表,共n个地址,n个地址分别存储了n个不同的字符串,但n个不同的字符对应的hash值相同。

9、字符串字典模块包括字符串更新单位和字符串匹配单位;

10、所述字符串更新单位用于动态维护字符串字典,字符串字典利用fpga内部存储资源ram,根据lzw压缩算法流程,若当前字符串string=p+c不在字符串字典中,将当前字符串string=p+c添加到字符串字典中;若当前字符串string=p+c在字符串字典中,当前字符串string=p+c不用添加到字符串字典中;

11、所述字符串匹配单位用于查找当前字符串string=p+c是否在字符串字典中,若在字符串字典中,输出匹配结果,若不在字符串字典中,不输出匹配结果。

12、匹配决策模块接收字符串字典进行匹配后的数据,将所有的匹配数据进行决策得到最终的匹配结果。

13、数据输出模块在得到压缩结果后,将压缩后的数据量与压缩前的数据量进行比较,选择数据量小的进行输出。

14、为了解决上述技术问题,一种基于硬件加速器的lzw无损压缩管理方法,该方法包括以下步骤:

15、s1、利用乘法哈希算法将当前字符串通过计算得到哈希数据,利用fpga实现乘法运算,在一个时钟周期内完成哈希运算;

16、s2、动态维护哈希地址,将哈希数据传输到哈希字典中,哈希字典存储同一哈希hash数据对应的不同字符串在字符串字典中的地址;

17、动态维护哈希地址,存储同一哈希hash值对应的不同字符串在字符串字典中的地址,使每一个哈希值hash,可以在哈希字典中读出所有不同字符串在字符串字典中的地址,之后根据不同地址读出所有哈希值一样的字符串,逐个比较,判断当前字符串是否存在于字符串字典中。

18、哈希字典利用fpga内部存储资源ram实现,字典深度2048,字典数据位宽132位二进制数据见表1。由于哈希值hash为11bit数据,因此输入哈希数据hash(字符串string)作为哈希字典ram的地址,数据data(data0或data1)存储哈希数据hash(字符串string)在字符串字典中的不同地址;data数据位宽为132个二进制位,由于字符串在字典中的地址位宽为11位,因此数据data可以存储12个不同字符串对应的地址。同一哈希值hash,可以存储12个不同字符串在哈希字典中的地址,每来一个string=p+c,则会生成一个哈希值hash,哈希值hash作为哈希字典的地址addr=hash,一个时钟周期读出该哈希值hash对应的12个地址ad1-ad12。

19、s3、在字符串字典中查找匹配哈希字典内存储的地址对应的的字符串,并且更新字符串字典,最后输出匹配结果;

20、使用双端口ram搭建字符串字典,一个字符串字典有两个输出口,字符串字典设置六个字符串字典模块,分别为字符串模块a、b、c···f,通过接收哈希字典传输的十二个地址匹配查找对应的字符串;对于字符串字典模块a,查找字符串字典中2个不同字符串string1-string2是否与当前字符串string=p+c相等,其中c为输入数据,共占8位;p为当前字符c或字符串string=p+c在字符串字典中存储的11位地址,比较结果有两种情况,分别为当前字符串string与字符串字典中的字符串string1-string2都不相等和当前字符串string与字符串字典中的字符串string1-string2有且只有一个相等;

21、一个字符串字典的两个端口分别同时进行查找,一个端口查找a地址对应的字符串是否与当前字符串相等,另一个端口查找b地址对应的字符串是否与当前字符串相等,在一个时钟周期内可以查找2个地址对应的字符串是否与当前字符串相等,一个时钟周期完成对十二字符串的查找;

22、查找当前字符串string=p+c是否在字符串字典中,若在字符串字典中,则输出匹配结果,若不在字符串字典中,则不输出匹配结果;

23、在对字符串查找过程中,按照lzw压缩算法流程,如果当前字符串string=p+c不在字符串字典中,将当前字符串string=p+c添加到字符串字典中;如果当前字符串string=p+c在字符串字典中,当前字符串string=p+c不用添加到字符串字典中。

24、s4、对所有的匹配结果进行最后的决策,得到唯一的决策结果;

25、对输出的匹配结果进行决策,得到最终的匹配结果,在接收字符串字典模块a、字符串字典模块b、字符串字典模块c、字符串字典模块d、字符串字典模块e、和接收字符串字典模块f送来的匹配结果match1、match2、match3、match4、match5、match6后,从匹配结果match1-match6中决策出最终的匹配结果;

26、本文档来自技高网...

【技术保护点】

1.一种基于硬件加速器的LZW无损压缩管理系统,其特征在于:所述LZW无损压缩管理系统包括哈希字典模块、字符串字典模块、匹配决策模块和数据输出模块;

2.根据权利要求1所述的一种基于硬件加速器的LZW无损压缩管理系统,其特征在于:所述哈希字典模块,接收Hash数据,并输出当前字符串在字符串字典中存储的地址列表,共n个地址,n个地址分别存储了n个不同的字符串,但n个不同的字符对应的Hash值相同。

3.根据权利要求1所述的一种基于硬件加速器的LZW无损压缩管理系统,其特征在于:所述字符串字典模块包括字符串更新单位和字符串匹配单位;

4.根据权利要求1所述的一种基于硬件加速器的LZW无损压缩管理系统,其特征在于:所述匹配决策模块接收字符串字典模块进行匹配后的数据,将所有的匹配数据进行决策得到最终的匹配结果。

5.根据权利要求1所述的一种基于硬件加速器的LZW无损压缩管理系统,其特征在于:所述数据输出模块在得到压缩结果后,将压缩后的数据量与压缩前的数据量进行比较,选择数据量小的进行输出。

6.一种基于硬件加速器的LZW无损压缩管理方法,其特征在于:该方法包括以下步骤:

7.根据权利要求6所述的一种基于硬件加速器的LZW无损压缩管理方法,其特征在于:在步骤S2中,动态维护哈希地址,存储同一哈希Hash值对应的不同字符串在字符串字典中的地址,使每一个哈希值Hash,可以在哈希字典中读出所有不同字符串在字符串字典中的地址,之后根据不同地址读出所有哈希值一样的字符串,逐个比较,判断当前字符串是否存在于字符串字典中。

8.根据权利要求6所述的一种基于硬件加速器的LZW无损压缩管理方法,其特征在于:在步骤S3中,使用双端口RAM搭建字符串字典,一个字符串字典有两个输出口,字符串字典设置六个字符串字典模块,分别为字符串模块A、B、C···F,通过接收哈希字典传输的十二个地址匹配查找对应的字符串;对于字符串字典模块A,查找字符串字典中2个不同字符串String1-String2是否与当前字符串String=P+C相等,其中C为输入数据,共占8位;P为当前字符C或字符串String=P+C在字符串字典中存储的11位地址,比较结果有两种情况,分别为当前字符串String与字符串字典中的字符串String1-String2都不相等和当前字符串String与字符串字典中的字符串String1-String2有且只有一个相等;

9.根据权利要求6所述的一种基于硬件加速器的LZW无损压缩管理方法,其特征在于:在步骤S4中,对输出的匹配结果进行决策,得到最终的匹配结果,在接收字符串字典模块A、字符串字典模块B、字符串字典模块C、字符串字典模块D、字符串字典模块E、和接收字符串字典模块F送来的匹配结果Match1、Match2、Match3、Match4、Match5、Match6后,从匹配结果Match1-Match6中决策出最终的匹配结果。

10.根据权利要求9所述的一种基于硬件加速器的LZW无损压缩管理方法,其特征在于:在步骤S5中,在得到压缩结果后,对压缩后的数据量和压缩前的数据量进行比较,具体如下:统计压缩前数据量和压缩后数据量,输出选择,若LZW压缩后数据量<LZW压缩前数据量,输出LZW压缩后数据;如果LZW压缩后数据量>=LZW压缩前数据量,输出LZW压缩前数据;保证LZW压缩数据不会出现LZW压缩后数据大于原始数据的情况,得到压缩数据的目的。

...

【技术特征摘要】

1.一种基于硬件加速器的lzw无损压缩管理系统,其特征在于:所述lzw无损压缩管理系统包括哈希字典模块、字符串字典模块、匹配决策模块和数据输出模块;

2.根据权利要求1所述的一种基于硬件加速器的lzw无损压缩管理系统,其特征在于:所述哈希字典模块,接收hash数据,并输出当前字符串在字符串字典中存储的地址列表,共n个地址,n个地址分别存储了n个不同的字符串,但n个不同的字符对应的hash值相同。

3.根据权利要求1所述的一种基于硬件加速器的lzw无损压缩管理系统,其特征在于:所述字符串字典模块包括字符串更新单位和字符串匹配单位;

4.根据权利要求1所述的一种基于硬件加速器的lzw无损压缩管理系统,其特征在于:所述匹配决策模块接收字符串字典模块进行匹配后的数据,将所有的匹配数据进行决策得到最终的匹配结果。

5.根据权利要求1所述的一种基于硬件加速器的lzw无损压缩管理系统,其特征在于:所述数据输出模块在得到压缩结果后,将压缩后的数据量与压缩前的数据量进行比较,选择数据量小的进行输出。

6.一种基于硬件加速器的lzw无损压缩管理方法,其特征在于:该方法包括以下步骤:

7.根据权利要求6所述的一种基于硬件加速器的lzw无损压缩管理方法,其特征在于:在步骤s2中,动态维护哈希地址,存储同一哈希hash值对应的不同字符串在字符串字典中的地址,使每一个哈希值hash,可以在哈希字典中读出所有不同字符串在字符串字典中的地址,之后根据不同地址读出所有哈希值一样的字符串,逐个比较,判断当前字符串是否存在于字符串字典中。

8.根据权利要求6所述的一种基于硬件加速器的lzw无损压缩管理方法,其特征在于:在步骤s3...

【专利技术属性】
技术研发人员:朱燕
申请(专利权)人:安康学院
类型:发明
国别省市:

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

1