[发明专利]一种硬件LZ77的压缩实现系统及方法无效
申请号: | 201310003145.2 | 申请日: | 2013-01-06 |
公开(公告)号: | CN103095305A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 张林;隋秀峰;狄永清;李冰 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | H03M7/30 | 分类号: | H03M7/30 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 硬件 lz77 压缩 实现 系统 方法 | ||
技术领域
本发明涉及数据压缩技术,特别是涉及以一种硬件LZ77的压缩系统及方法。
背景技术
随着信息和通信技术的迅猛发展,数据交换量日益增大,大规模的数据处理也变的更加的繁杂。对于如此庞大的数据必须进行有效的压缩,才能够有效的减少数据的存储量,最大限度的合理利用有限的数据传输带宽。除此之外,压缩后的数据在一定程度上是对原始数据的加密,能够更好的保护数据。
数据压缩可分成两种类型,一种叫做无损压缩,另一种叫做有损压缩。
无损压缩是指使用压缩后的数据进行重构(或者叫做还原,解压缩),重构后的数据与原来的数据完全相同;无损压缩用于要求重构的信号与原始信号完全一致的场合。一个很常见的例子是磁盘文件的压缩。根据目前的技术水平,无损压缩算法一般可以把普通文件的数据压缩到原来的1/2~1/4。大多数压缩程序使用基于自适应字典的LZ算法来缩小文件。“LZ”指的是此算法的发明者Lempel和Ziv,“字典”指的是对数据块进行归类的方法。
目前,绝大部分的压缩还是有软件实现,对数据的压缩处理操作仍然是由中央处理器(CPU)来完成的,当面对海量数据处理时,必然会占用大量的CPU资源,使得在进行数据压缩的同时进行其他操作变成了难题。除此之外,软件压缩是一种顺序进行的操作,无法取得高效率的并行运算。
因此,如何有效的提高压缩算法的效率,减轻海量数据压缩给CPU带来的压力成为了现有的软件压缩解压缩技术的主要问题。
发明内容
本发明的发明目的是提供一种硬件LZ77的压缩实现系统及方法,以能够有效的提高LZ77压缩算法的效率,将CPU从海量数据压缩中解脱出来。
为实现上述目的,本发明提供了一种硬件LZ77的压缩实现系统,该系统包括:
数据写入缓存模块,缓存待压缩的数据;
压缩处理模块,利用乒乓操作提取所述待压缩的数据,并交替使用哈希表和字典链表对其进行压缩编码;
拼接处理模块,对压缩编码后的数据中的非定长数据进行拼接处理;
数据读出缓存模块,缓存压缩后的数据和拼接处理后的数据。
进一步的,所述数据写入缓存模块包括:
使用多路选择器将待压缩的数据,存储到两个数据存储装置中。
进一步的,所述压缩处理模块包括:
交替压缩模块,取部分数据进行哈希变换,在哈希表中查找,若未找到,则所述部分数据是新字符,以新字符编码输出非定长数据,若找到,则所述部分数据是重复字符,结合字典链表以此为数据头寻找最大的匹配长度,以重复字符编码输出非定长数据;
数据更新模块,压缩过程中,根据哈希表和字典链表反馈的信号,对待压缩的数据进行相应的读取操作,对哈希表和字典链表中的数据进行相应的更新。
进一步的,所述拼接处理模块包括:
转换处理模块,利用移位寄存器将所述非定长数据拼接成定长数据;
计算处理模块,计算压缩后的数据个数,与压缩前数据个数比较,若压缩后的数据个数多于压缩前的数据个数,选取直接存储的方式,若压缩后的数据个数少于压缩前的数据个数,选取压缩存储的方式;
对齐处理模块,添加压缩后的数据块头,并对压缩后的数据尾部进行字节对齐处理。
进一步的,所述数据读出缓存模块中:
若一个数据块未完成压缩,则使用写入数据多路选择器,选择将压缩后的数据写入数据存储装置;
若一个数据块完成压缩,则利用读出数据多路选择器,选择读出对应的数据存储装置中的数据。
为实现上述目的,本发明还提供一种硬件LZ77的压缩实现方法,该方法包括:
步骤1,缓存待压缩的数据;
步骤2,利用乒乓操作提取所述待压缩的数据,并交替使用哈希表和字典链表对其进行压缩编码;
步骤3,对压缩编码后的数据中的非定长数据进行拼接处理;
步骤4,缓存压缩后的数据和拼接处理后的数据。
进一步的,所述步骤1包括:
使用多路选择器将待压缩的数据,存储到两个数据存储装置中。
进一步的,所述步骤2包括:
步骤21,取部分数据进行哈希变换,在哈希表中查找,若未找到,则所述部分数据是新字符,以新字符编码输出非定长数据,若找到,则所述部分数据是重复字符,结合字典链表以此为数据头寻找最大的匹配长度,以重复字符编码输出非定长数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310003145.2/2.html,转载请声明来源钻瓜专利网。