CN105007083A - 一种lz77压缩算法输出结果的存储方法 - Google Patents
一种lz77压缩算法输出结果的存储方法 Download PDFInfo
- Publication number
- CN105007083A CN105007083A CN201510495574.5A CN201510495574A CN105007083A CN 105007083 A CN105007083 A CN 105007083A CN 201510495574 A CN201510495574 A CN 201510495574A CN 105007083 A CN105007083 A CN 105007083A
- Authority
- CN
- China
- Prior art keywords
- compression algorithm
- information
- stored
- character
- output rusults
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开的一种LZ77压缩算法输出结果的存储方法,将LZ77压缩算法的输出结果拆分成两部分进行存储,分别为索引部分和数据部分;通过索引部分的信息,来说明数据部分的内容,针对LZ77压缩算法硬件实现方式,可以配合编码模块或者解压缩模块来调整数据部分的存储位宽,有效提升编码效率或解压缩效率。
Description
技术领域
本发明涉及数据压缩技术,尤其涉及一种LZ77压缩算法输出结果的存储方法。
背景技术
随着数据处理的规模越来越大,对数据进行压缩和解压缩处理是一种有效节省存储空间资源和网络通信中带宽资源的方法。
无损数据压缩技术主要分为基于字典的压缩算法和基于统计的压缩算法,其中LZ77压缩算法作为基于字典的压缩算法的代表,不仅有着适中的压缩率,而且有着较快的压缩速度,同时有着丰富的衍生版本。
当前,数据压缩一般使用软件来实现,但是大量占用CPU资源是软件实现方式的重大缺点;而使用硬件实现数据压缩有着巨大的优势,同软件相比,不仅有着高速的压缩解压缩速率,同时能够极大减少CPU资源的占用。
由于LZ77压缩算法没有统一的输出方法,所以更多时候LZ77压缩作为整个压缩过程的第一级,将LZ77压缩的结果再次进行一级压缩或编码形成一个具有统一格式的压缩文件,如Gzip、LZMA等。
因此,如何针对硬件实现数据压缩的方式,设计一种LZ77压缩算法输出结果的存储方法,能够有效地提升后续编码工作的处理效率或者数据解压缩时的处理效率是亟待解决的技术问题。
发明内容
本发明要解决的一个技术问题是如何针对硬件实现数据压缩的方式,设计一种LZ77压缩算法输出结果的存储方法,能够有效地提升后续编码工作的处理效率或者数据解压缩时的处理效率。
为了实现上述目的,本发明设计了一种LZ77压缩算法输出结果的存储方法,包括以下步骤:
(1)设置用于存储索引部分的索引存储器和用于存储数据部分的数据存储器;所述索引部分包含匹配长度信息和未匹配字符个数信息;所述数据部分包括具体的匹配距离和未匹配字符;
(2)接收LZ77压缩算法的输出结果,并判断其是否为匹配信息;若是匹配信息,则在匹配长度前添加标志位1,并存入索引存储器,同时将匹配距离存入数据存储器;若不是匹配信息,则将字符暂存并统计未匹配字符个数,至未匹配字符接收完成统计未匹配字符个数,在未匹配字符个数前添加标志位0并存入索引存储器,同时将所有未匹配字符存入数据存储器;
(3)判断LZ77压缩是否结束;若结束,则标志位与信息位全部置1存入索引存储器;若未结束,则返回步骤(2)。
所述索引存储器为宽度为8个字节的先入先出存储器。
所述索引存储器和所述数据存储器的位宽根据需要进行设定。
本发明提供了一种LZ77压缩算法输出结果的存储方法,将LZ77压缩算法输出结果拆分成两部分,针对硬件实现数据压缩的方式,可以根据不同的应用场景,设计不同的存储器宽度用来存放数据部分信息,进而有效提升对应应用场景下的处理效率;该存储方法同样适用于软件实现方式。
附图说明
图1示出本发明提供的一种LZ77压缩算法输出结果的存储方法的结构示意图;
图2示出本发明提供的一种LZ77压缩算法输出结果的存储方法索引部分的结构示意图;
图3示出本发明提供的一种LZ77压缩算法输出结果的存储方法数据部分的结构示意图;
图4示出本发明提供的一种LZ77压缩算法输出结果的存储方法的流程示意图;
图5示出本发明提供的一种LZ77压缩算法输出结果的存储方法的存储示例图。
具体实施方式
下面参照附图用本发明的示例性实施例对本发明进行更全面的描述和说明。参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
图1示出本发明提供的一种LZ77压缩算法输出结果的存储方法的结构示意图。
如图1所示,本发明的一种LZ77压缩算法输出结果的存储方法将LZ77压缩算法的输出结果拆分成索引部分以及数据部分,并分别设置用于存储索引部分的索引存储器和用于存储数据部分的数据存储器。
其中,索引部分,用于区别匹配信息和未匹配信息,同时包含匹配长度信息和未匹配字符个数信息;数据部分,用于存储具体的匹配信息和未匹配字符信息,包括具体的匹配距离和未匹配字符。例如,存储一个匹配信息,在索引部分设置相应的标志位,再将匹配长度存入索引部分,将匹配距离存入数据部分;匹配距离指的是本次出现的字符串距离上次在字典中出现的位置有多远,匹配长度指的是有多少字符是重复的。存储未匹配信息时,在索引部分设置相应的标志位,再将未匹配字符个数存入索引部分,将具体的未匹配字符数据存入数据部分。
本发明提供一种LZ77压缩算法输出结果的存储方法,针对硬件实现数据压缩的方式,将LZ77结果拆分成索引部分和数据部分分别进行存储,可以根据后续编码模块或者解压缩模块等具体实现需求,设计合适的存储数据部分信息的存储器宽度,从而有效地提升后续编码效率或解压缩处理效率。
图2示出本发明提供的一种LZ77压缩算法输出结果的存储方法索引部分的结构示意图。
如图2所示,索引部分包括标志位以及信息位。索引部分的信息存入宽度为8个字节的先入先出存储器(FIFO)中,该FIFO的具体深度可以根据资源余量的大小进行调整。
其中,标志位,共1位,用于区别存入的是匹配信息还是未匹配信息,若存储的是匹配信息,则标志位为1,若存储的为未匹配信息,则标志位为0;信息位,共7位,当存储匹配信息中的匹配长度时,该方法最大支持匹配长度为129,因为匹配长度最小为3,则在存储时先将匹配长度减3,这样存入匹配长度为129的数据时,存入的值为126,因为7位数据覆盖范围为0~127,那么最后的127留给EOB标志位使用,即存储EOB时,标志位为1,信息位也为7个1;当存储的是未匹配字符时,信息位存储的是未匹配字符的个数,最大支持存储127个未匹配字符。
考虑到LZ77压缩算法硬件实现的方式,本发明的索引存储器和数据存储器的位宽可以根据需要进行设定。在本发明具体实施例中,索引部分的信息位可以扩展至8位,这样便可存储最大匹配长度为257的匹配信息,同时一次性存入的未匹配字符也增至255个;之所以信息位初始设定为7位,一方面考虑到匹配长度大于127的匹配字符串出现的概率较少,另一方面整字节存储对于软件应用该存储方法也较为方便。
图3示出本发明提供的一种LZ77压缩算法输出结果的存储方法数据部分的结构示意图。
如图3所示,数据部分信息根据不用的应用场景,存储器的宽度也不同。
其中,存储未匹配信息时,根据索引部分的未匹配字符个数,存入若干字节的未匹配字符数据;存储匹配信息时,使用两个字节存储匹配信息中的匹配距离,因为LZ77压缩算法中的字典为一般为32K,匹配距离为15位,之所以使用16位(2个字节)来存储,一方面整字节存储易于处理,另一方面如果人为地改变字典大小,如64K或者16K,16位(2个字节)依然可以覆盖整个字典范围。
图4示出本发明提供的一种LZ77压缩算法输出结果的存储方法的流程图。
如图4所示,流程包括:接收LZ77压缩结果,判断是匹配信息还是未匹配信息,若为匹配信息,则将标志位1与匹配长度一并写入索引存储器,将匹配距离写入数据存储器;若为未匹配信息,将未匹配字符暂存并统计未匹配字符个数,直到未匹配字符接收完成为止,将标志位0与未匹配字符个数一并写入索引存储器,将所有未匹配字符写入数据存储器;在LZ77压缩完成后,将标志位与信息位全部置1写入索引存储器,代表EOB标志位。
图5示出本发明提供的一种LZ77压缩算法输出结果的存储方法的存储示例图。
如图5所示,索引部分的信息对应着数据部分相应的内容,通过索引部分还可提前判断出接下来需要处理的数据类别。
根据不用的应用场景设定存储器宽度时,例如若后续进行Huffman编码,则可将存储器宽度根据Huffman编码模块的并行编码个数进行设定,这样LZ77压缩部分在输出压缩结果时,会对存储数据部分的存储器进行连续的输出,此时后续的Huffman编码模块根据索引部分的内容,连续从存储数据部分的存储器进行读取工作,每个周期对获取的数据进行编码,以流水线方式进行工作,使得LZ77的压缩工作处理完成时,Huffman编码工作基本上也完成了;若将LZ77的压缩数据进行解压缩时,可以将存储器宽度设定为16字节或32字节(较宽位宽),这样在进行LZ77解压缩时,每次获取的信息量大大增加,可以有效加快匹配信息处理和未匹配字符的输出。
参考前述本发明示例性的描述,本领域技术人员可以清楚的知晓本发明具有以下优点:
本发明提供一种LZ77压缩算法输出结果的存储方法,针对硬件实现数据压缩的方式,将LZ77结果拆分成索引部分和数据部分分别进行存储,其中索引部分用于区别匹配信息和未匹配信息,同时包含匹配长度信息和未匹配字符串个数信息;数据部分用于存储具体的匹配信息和未匹配字符信息,根据不同应用场景的具体实现需求(如将LZ77输出结果进行Huffman编码或者进行LZ77解压缩处理),设计合适的存储数据部分信息的存储器宽度,从而有效地提升在该应用场景下的处理效率;同时该存储方法同样适应于LZ77压缩算法的软件实现方式。
Claims (3)
1.一种LZ77压缩算法输出结果的存储方法,其特征在于,包括以下步骤:
(1)设置用于存储索引部分的索引存储器和用于存储数据部分的数据存储器;所述索引部分包含匹配长度信息和未匹配字符个数信息;所述数据部分包括具体的匹配距离和未匹配字符;
(2)接收LZ77压缩算法的输出结果,并判断其是否为匹配信息;若是匹配信息,则在匹配长度前添加标志位1,并存入索引存储器,同时将匹配距离存入数据存储器;若不是匹配信息,则将字符暂存并统计未匹配字符个数,至未匹配字符接收完成统计未匹配字符个数,在未匹配字符个数前添加标志位0并存入索引存储器,同时将所有未匹配字符存入数据存储器;
(3)判断LZ77压缩是否结束;若结束,则标志位与信息位全部置1存入索引存储器;若未结束,则返回步骤(2)。
2.根据权利要求1所述的LZ77压缩算法输出结果的存储方法,其特征在于,所述索引存储器为宽度为8个字节的先入先出存储器。
3.根据权利要求1所述的LZ77压缩算法输出结果的存储方法,其特征在于,所述索引存储器和所述数据存储器的位宽根据需要进行设定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510495574.5A CN105007083A (zh) | 2015-08-13 | 2015-08-13 | 一种lz77压缩算法输出结果的存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510495574.5A CN105007083A (zh) | 2015-08-13 | 2015-08-13 | 一种lz77压缩算法输出结果的存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105007083A true CN105007083A (zh) | 2015-10-28 |
Family
ID=54379624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510495574.5A Pending CN105007083A (zh) | 2015-08-13 | 2015-08-13 | 一种lz77压缩算法输出结果的存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105007083A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105811994A (zh) * | 2016-03-03 | 2016-07-27 | 云南大学 | 一种计算机数据压缩处理系统 |
CN111384968A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据解压方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023509A (zh) * | 2012-11-14 | 2013-04-03 | 无锡芯响电子科技有限公司 | 一种硬件lz77压缩实现系统及其实现方法 |
CN103248369A (zh) * | 2013-05-21 | 2013-08-14 | 南京畅洋科技有限公司 | 基于fpga的压缩系统及其方法 |
CN104202054A (zh) * | 2014-09-16 | 2014-12-10 | 东南大学 | 一种硬件lzma压缩实现系统及方法 |
-
2015
- 2015-08-13 CN CN201510495574.5A patent/CN105007083A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023509A (zh) * | 2012-11-14 | 2013-04-03 | 无锡芯响电子科技有限公司 | 一种硬件lz77压缩实现系统及其实现方法 |
CN103248369A (zh) * | 2013-05-21 | 2013-08-14 | 南京畅洋科技有限公司 | 基于fpga的压缩系统及其方法 |
CN104202054A (zh) * | 2014-09-16 | 2014-12-10 | 东南大学 | 一种硬件lzma压缩实现系统及方法 |
Non-Patent Citations (1)
Title |
---|
田园: ""基于FPGA的压缩算法研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105811994A (zh) * | 2016-03-03 | 2016-07-27 | 云南大学 | 一种计算机数据压缩处理系统 |
CN105811994B (zh) * | 2016-03-03 | 2019-12-13 | 云南大学 | 一种计算机数据压缩处理系统 |
CN111384968A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据解压方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106407285B (zh) | 一种基于rle和lzw的优化比特文件压缩与解压缩方法 | |
CN103458460B (zh) | 对信号数据进行压缩和解压缩的方法和装置 | |
CN105207678B (zh) | 一种改进型lz4压缩算法的硬件实现系统 | |
CN104168085B (zh) | 一种基于冗余熵变换的数据压缩方法 | |
CN102970043B (zh) | 一种基于gzip的压缩硬件系统及其加速方法 | |
CN110518917B (zh) | 基于Huffman编码的LZW数据压缩方法及系统 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
CN104202054A (zh) | 一种硬件lzma压缩实现系统及方法 | |
WO2010044100A1 (en) | Lossless compression | |
CN110958022A (zh) | 连续性曲线的数据压缩方法、装置及其相关设备 | |
CN102880703B (zh) | 中文网页数据编码、解码方法及系统 | |
CN112003814B (zh) | 行情数据处理方法、装置、终端设备及存储介质 | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
CN108880559B (zh) | 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备 | |
CN115189696A (zh) | 一种基于Huffman解码表的硬件压缩解压方法 | |
CN105007083A (zh) | 一种lz77压缩算法输出结果的存储方法 | |
CN107911570B (zh) | 一种对图片特征进行压缩及解压的方法 | |
CN116915873B (zh) | 基于物联网技术的高速电梯运行数据快速传输方法 | |
CN103731154A (zh) | 一种基于语义分析的数据压缩算法 | |
US8228216B2 (en) | Systems and methods for data compression | |
CN202931290U (zh) | 一种基于gzip的压缩硬件系统 | |
CN108932315A (zh) | 一种数据解压的方法以及相关装置 | |
CN115865099A (zh) | 基于霍夫曼编码的多类型数据分段压缩方法及系统 | |
CN109302187A (zh) | 一种针对潜标温盐深数据的数据压缩方法 | |
CN102891730B (zh) | 基于bcd码卫星短报文的编码方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151028 |
|
WD01 | Invention patent application deemed withdrawn after publication |