[发明专利]基于Gzip硬件实现文本压缩方法有效
申请号: | 201710255484.8 | 申请日: | 2017-04-19 |
公开(公告)号: | CN107135003B | 公开(公告)日: | 2019-07-02 |
发明(设计)人: | 雷杰;陈奕彤;李云松;王绍虎;赵静 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H03M7/30 | 分类号: | H03M7/30 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于Gzip硬件实现文本压缩方法,主要解决目前文本压缩处理速度缓慢、压缩比不高的问题。本发明采用流水结构,将待压缩文本在两个缓存器按照交替读取的方式无延时的读入到文本压缩处理器中,将计算单元同时处理,进行字典存储地址的计算和标记有效信息,在字典中查找历史字符串后用待处理字符串更新字典信息,然后进行匹配字符串和修剪匹配处理,对匹配压缩文本,进行哈夫曼编码,最终获得并输出压缩文本的码流。本发明具有处理速度快,压缩比高,占用资源可扩充,易于不同规模FPGA进行实现。 | ||
搜索关键词: | 基于 gzip 硬件 实现 文本 压缩 方法 | ||
【主权项】:
1.一种基于Gzip硬件实现文本压缩方法,包括以下步骤:(1)读入待压缩文本:(1a)依次将待压缩文本中自定义缓存深度大小的文本块,读入到缓存器1中;(1b)依次将未读入的自定义缓存深度大小的文本块,读入到缓存器2中的同时,将缓存器1中的文本块读入到文本压缩处理器中;(1c)用依次读入自定义缓存深度大小的文本块更新缓存器1中存储的文本块,在更新缓存器1的同时,将缓存器2中的文本块读入到文本压缩处理器中;(1d)重复以上三个步骤,直到将待压缩文本中所有文本块读入到文本压缩处理器中;(2)计算字典存储地址:(2a)依次将读入文本块中长度为八字节的自定义个数字符串进行编号,取出每个字符串中的前六个字符作为计算单元,对计算单元中的前六个字符同时进行异或运算,得到字符串存放的索引值;(2b)将索引值按照存放字符串的字典位置数进行取余操作,将得到的余数作为字符串在字典中对应的存储地址标号;(3)标记存储地址标号有效信息:(3a)判断同时处理的自定义个数字符串是否存在一样的存储地址标号,若是,执行步骤(3b),否则,执行步骤(3c);(3b)将存储地址标号一样的字符串中编号最小的字符串对应的存储地址信息标记为有效信息,将其余存储地址信息标记为无效信息;(3c)将所有字符串的存储地址标号标记为有效信息;(4)查找历史字符串:(4a)在字典存储器内查找与有效信息的字典存储地址对应的历史字符串;(4b)将查找到历史字符串作为待匹配字符串;(5)更新字典信息:(5a)将字典存储器内与有效信息的字典存储地址对应的信息更新为读入的文本块中长度为八字节的自定义个数字符串;(5b)将地址存放存储器内与有效信息的字典存储地址对应的信息更新为当前待压缩字符串的位置信息;(6)判断在字典存储器查找中是否存在待匹配字符串,若是,则执行步骤(7),否则,直接执行步骤(9);(7)匹配字符串:(7a)取出步骤(4b)中的待匹配字符串;(7b)将当前待压缩字符串与待匹配字符串两者之间连续相同字符的个数记为匹配长度;(7c)读出步骤(5b)中地址存放存储器内与有效信息的字典存储地址对应的位置信息,作为待匹配位置信息;(7d)对待压缩字符串的位置信息与待匹配位置信息做差,将其值作为匹配距离;(7e)找出所有匹配长度大于或等于三的待压缩字符串作为匹配成功字符串;(8)修剪匹配字符串:(8a)将匹配成功字符串对应编号值与其自身的匹配长度求和,将和值作为匹配延伸距离;(8b)将同时处理自定义个数的计算单元中,匹配延伸距离最长的匹配成功字符串,作为最长匹配字符串;(8c)将匹配成功字符串中的字符与最长匹配字符串中字符相互重叠的个数,作为重叠数;(8d)对重叠数不为零的匹配成功字符串的匹配长度与其重叠数作差,将差值作为修剪匹配长度;(8e)找出修剪匹配长度大于或等于三对应的匹配成功字符串作为压缩字符串;(8f)将压缩字符串对应的修剪匹配长度和匹配距离组成修剪匹配对;(8g)用修剪匹配对替换匹配成功字符串,得到修剪后的匹配字符串;(8h)将修剪后的匹配字符串与待压缩字符串组成匹配压缩文本;(9)将得到的匹配压缩文本输入到哈夫曼编码处理器,进行码流压缩处理;(10)获得长度哈夫曼码流:(10a)对未匹配替换的待压缩字符串中的字符,用信息交换标准代码ASCII转换为对应的数值,将该数值作为静态哈夫曼长度查找表的字符索引值;(10b)对修剪后的匹配字符串,将匹配长度值作为静态哈夫曼长度查找表的长度索引值;(10c)将未匹配替换的待压缩字符串和修剪后的匹配字符串作为待处理字符串;(10d)将静态哈夫曼长度查找表中字符索引值的码字,作为步骤(10c)中待处理字符的字符哈夫曼码字;(10e)将静态哈夫曼长度查找表中长度索引值的码字,作为步骤(10c)中待处理字符的长度哈夫曼码字;(11)获得距离哈夫曼码流:(11a)将未匹配替换的待压缩字符串中的字符的匹配距离设置为零;(11b)将待处理字符串的匹配距离值作为静态哈夫曼距离查找表的距离索引值;(11c)将静态哈夫曼距离查找表中距离索引值对应的码字作为距离哈夫曼码字;(12)输出压缩码流:(12a)将待处理字符串的长度哈夫曼码字和距离哈夫曼码字组成匹配压缩文本的压缩码流;(12b)将压缩码流输出到压缩文件存储器。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710255484.8/,转载请声明来源钻瓜专利网。