CN114442954A - 一种lz4编码压缩装置 - Google Patents
一种lz4编码压缩装置 Download PDFInfo
- Publication number
- CN114442954A CN114442954A CN202210096028.4A CN202210096028A CN114442954A CN 114442954 A CN114442954 A CN 114442954A CN 202210096028 A CN202210096028 A CN 202210096028A CN 114442954 A CN114442954 A CN 114442954A
- Authority
- CN
- China
- Prior art keywords
- module
- length
- text
- distance
- bytes
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 200
- 238000012545 processing Methods 0.000 claims abstract description 54
- 230000010354 integration Effects 0.000 claims abstract description 46
- 230000011218 segmentation Effects 0.000 claims abstract description 35
- 238000007906 compression Methods 0.000 claims abstract description 32
- 230000006835 compression Effects 0.000 claims abstract description 30
- 238000001914 filtration Methods 0.000 claims description 32
- 238000001514 detection method Methods 0.000 claims description 4
- 238000013144 data compression Methods 0.000 abstract description 16
- 230000006870 function Effects 0.000 abstract description 5
- 238000000034 method Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种LZ4编码压缩装置,包括匹配搜寻模块、包含第一存储器组和第二存储器组的存储模块、数据切分模块及编码整合模块。本申请设置两个存储器组,且数据切分模块在不同轮接收的待压缩块的数据可交替存储在两个存储器组中,这使得数据切分模块在处理完一个待压缩块发送至下一级的编码整合模块处理时,可同时从匹配搜寻模块接收下一个待压缩块处理,从而使得上一个待压缩块的整合编码处理与下一个待压缩块的接收切分处理同时进行,即在相同时间内,数据切分模块和编码整合模块可以处理不同的待压缩块,实现并行处理功能,从而节约了数据压缩时间,提高了数据压缩效率。
Description
技术领域
本发明涉及数据压缩领域,特别是涉及一种LZ4编码压缩装置。
背景技术
随着第五代通讯技术的普及以及物联网、云计算、大数据等技术的发展,对于海量数据的存储需求越来越高。但是,存储技术发展的相对缓慢,不论是存储容量的增长还是存储速度的加快都不及存储需求的增长速度,这也对现有的存储设备带来了巨大的压力。目前,高效安全快速的数据压缩技术成为降低存储成本、节省相对较为有限的存储资源的有效方法。
现有的数据压缩方式中,综合来看效率最高的是LZ4编码压缩方式。LZ4编码压缩方式侧重于压缩解压缩速度,虽然其压缩比并不是最高的,但是其高速的压缩和解压缩速度在对速度要求较高的场景中往往能够体现出其价值,如在当前的安卓和苹果操作系统中,内存压缩方式就使用的是LZ4编码压缩,可及时压缩手机内存以释放更多的内存空间。
但是,现有的LZ4编码压缩方式的整个压缩流程都采用串行的方式,导致在压缩大量的数据时,会耗费较多的数据压缩时间,从而导致数据压缩效率较低。
因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种LZ4编码压缩装置,在相同时间内,数据切分模块和编码整合模块可以处理不同的待压缩块,实现并行处理功能,从而节约了数据压缩时间,提高了数据压缩效率。
为解决上述技术问题,本发明提供了一种LZ4编码压缩装置,包括:
匹配搜寻模块,用于基于待压缩序列得到若干个预设数据大小的待压缩块,输出一个待压缩块,并在接收到上一个输出的待压缩块的块处理结束标志时,输出下一个待压缩块;
包含第一存储器组和第二存储器组的存储模块;
数据切分模块,用于将本轮接收的待压缩块的数据按照信息类别进行切分,并将不同信息类别的数据一一存储至目标存储器组的不同存储器中;计算本轮接收的待压缩块在LZ4编码时所需的长度信息,并在本轮存储及计算完成后生成块处理结束标志;其中,所述目标存储器组为第一或第二存储器组;不同轮接收的待压缩块的数据交替存储在两个存储器组中;
编码整合模块,用于在自身处于空闲状态时,若接收到所述块处理结束标志,则基于所述长度信息对所述目标存储器组的各存储器的存储信息进行LZ4编码整合,得到LZ4编码压缩数据。
可选地,所述待压缩块包括待压缩码流和指示信息;其中,所述待压缩码流包括文本信息、距离信息、匹配长度信息三类信息;所述指示信息用于表征所述待压缩码流中各字节所属的信息类别;
所述第一存储器组和所述第二存储器组均包括文本存储器、距离存储器和长度信息存储器;
所述数据切分模块具体用于根据本轮接收的指示信息将本轮接收的待压缩码流拆分为文本字节、距离字节和匹配长度字节,并将三种字节相应存储至所述目标存储器组的各存储器中。
可选地,所述数据切分模块包括:
数据过滤模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出文本字节和距离字节,并将两种字节相应存储至所述目标存储器组的文本存储器和距离存储器中;分别对所述文本字节和所述距离字节进行计数,得到文本长度和距离长度;在检测到本轮接收的待压缩码流的块结尾标记时,生成块结束标志;
长度统计模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出匹配长度字节,对所述匹配长度字节进行计数,得到匹配长度,并将所述匹配长度字节和所述文本长度、所述距离长度及所述匹配长度一起存储至所述目标存储器组的长度信息存储器中;统计本轮接收的待压缩块的块长度信息,并将所述块长度信息写入寄存器中;在接收到所述块结束标志且完成本轮存储后生成块处理结束标志。
可选地,所述数据过滤模块包括:
文本过滤模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出文本字节,并将所述文本字节存储至所述目标存储器组的文本存储器中;对所述文本字节进行计数,得到文本长度;
距离过滤模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出距离字节,并将所述距离字节存储至所述目标存储器组的距离存储器中;对所述距离字节进行计数,得到距离长度;
块结尾检测模块,用于在检测到本轮接收的待压缩码流的块结尾标记时,生成块结束标志。
可选地,所述文本存储器为第一RAM;
所述文本过滤模块包括:
文本识别模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流识别出文本字节;
文本拼接模块,用于将识别出的文本字节进行拼接,得到文本数据;
文本计数模块,用于对识别出的文本字节进行计数,得到文本长度;
文本存储控制模块,用于将所述文本数据进行8字节对齐,并将对齐后的文本数据存储至所述目标存储器组的第一RAM中。
可选地,所述距离存储器为第二RAM;
所述距离过滤模块包括:
距离识别模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流识别出距离字节;
距离拼接模块,用于将识别出的距离字节进行拼接,得到距离数据;
距离计数模块,用于对识别出的距离字节进行计数,得到距离长度;
距离存储控制模块,用于将所述距离数据进行8字节对齐,并将对齐后的距离数据存储至所述目标存储器组的第二RAM中。
可选地,所述长度信息存储器为第三RAM;
所述长度统计模块具体用于将所述匹配长度字节、所述文本长度、所述距离长度及所述匹配长度进行拼接,得到长度数据,将所述长度数据进行8字节对齐,并将对齐后的长度数据存储至所述目标存储器组的第三RAM中。
可选地,所述编码整合模块包括:
帧头生成模块,用于基于预设帧配置信息生成帧头信息;
读控制模块,用于在自身处于空闲状态时,若接收到所述块处理结束标志,则基于所述目标存储器组的长度信息存储器内存储的长度信息,分别从所述目标存储器组的三个存储器中读取三类字节信息;
LZ4数据生成模块,用于从所述寄存器中读取所述块长度信息,并基于所述帧头信息、所述块长度信息及所述三类字节信息得到LZ4编码压缩数据。
可选地,所述读控制模块包括:
长度信息读取模块,用于在自身处于空闲状态时,若接收到所述块处理结束标志,则从所述目标存储器组的长度信息存储器中读取文本长度、距离长度及匹配长度,并根据读取的匹配长度从所述目标存储器组的长度信息存储器中读取匹配长度字节;
文本读取模块,用于根据读取的文本长度从所述目标存储器组的文本存储器中读取文本字节;
距离读取模块,用于根据读取的距离长度从所述目标存储器组的距离存储器中读取距离字节。
可选地,所述编码整合模块还包括:
输出控制模块,用于将所述LZ4编码压缩数据进行8字节对齐,得到对齐后的LZ4编码压缩数据。
本发明提供了一种LZ4编码压缩装置,包括匹配搜寻模块、包含第一存储器组和第二存储器组的存储模块、数据切分模块及编码整合模块。本申请设置两个存储器组,且数据切分模块在不同轮接收的待压缩块的数据可交替存储在两个存储器组中,这使得数据切分模块在处理完一个待压缩块发送至下一级的编码整合模块处理时,可同时从匹配搜寻模块接收下一个待压缩块处理,从而使得上一个待压缩块的整合编码处理与下一个待压缩块的接收切分处理同时进行,即在相同时间内,数据切分模块和编码整合模块可以处理不同的待压缩块,实现并行处理功能,从而节约了数据压缩时间,提高了数据压缩效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种LZ4编码压缩装置的结构示意图;
图2为本发明实施例提供的一种传统的LZ4编码压缩方式的流程示意图;
图3为本发明实施例提供的一种改进的LZ4编码压缩方式的流程示意图;
图4为本发明实施例提供的一种LZ4编码压缩方式改进前后的性能对照图;
图5为本发明实施例提供的一种双存储示意图;
图6为本发明实施例提供的一种数据切分模块的结构示意图;
图7为本发明实施例提供的一种文本过滤模块的结构示意图;
图8为本发明实施例提供的一种距离过滤模块的结构示意图;
图9为本发明实施例提供的一种编码整合模块的结构示意图;
图10为本发明实施例提供的一种LZ4数据编码的帧结构图。
具体实施方式
本发明的核心是提供一种LZ4编码压缩装置,在相同时间内,数据切分模块和编码整合模块可以处理不同的待压缩块,实现并行处理功能,从而节约了数据压缩时间,提高了数据压缩效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种LZ4编码压缩装置的结构示意图。
该LZ4编码压缩装置包括:
匹配搜寻模块1,用于基于待压缩序列得到若干个预设数据大小的待压缩块,输出一个待压缩块,并在接收到上一个输出的待压缩块的块处理结束标志时,输出下一个待压缩块;
包含第一存储器组21和第二存储器组22的存储模块2;
数据切分模块3,用于将本轮接收的待压缩块的数据按照信息类别进行切分,并将不同信息类别的数据一一存储至目标存储器组的不同存储器中;计算本轮接收的待压缩块在LZ4编码时所需的长度信息,并在本轮存储及计算完成后生成块处理结束标志;其中,目标存储器组为第一或第二存储器组;不同轮接收的待压缩块的数据交替存储在两个存储器组中;
编码整合模块4,用于在自身处于空闲状态时,若接收到块处理结束标志,则基于长度信息对目标存储器组的各存储器的存储信息进行LZ4编码整合,得到LZ4编码压缩数据。
具体地,本申请的LZ4编码压缩装置包括匹配搜寻模块1、存储模块2(包含第一存储器组21和第二存储器组22)、数据切分模块3及编码整合模块4,其工作原理为:
匹配搜寻模块1输入待压缩序列,匹配搜寻模块1基于待压缩序列可得到若干个预设数据大小的待压缩块,具体可将待压缩序列进行LZ77编码,得到多个预设数据大小的待压缩块。匹配搜寻模块1在得到若干个待压缩块时,输出一个待压缩块(称为第一待压缩块)至数据切分模块3。数据切分模块3一方面将第一待压缩块的数据按照信息类别进行切分,并将不同信息类别的数据一一存储至第一存储器组21的不同存储器中,即第一存储器组21的不同存储器中存储的信息类别不同;另一方面计算第一待压缩块在LZ4编码时所需的长度信息(称为第一长度信息),数据切分模块3在第一待压缩块对应的存储及计算完成后生成块处理结束标志(end),并将第一待压缩块的块处理结束标志同时发送至匹配搜寻模块1和编码整合模块4。
编码整合模块4在自身处于空闲状态时,若接收到第一待压缩块的块处理结束标志,则基于第一长度信息对第一存储器组21的各存储器的存储信息进行LZ4编码整合,得到第一待压缩块对应的LZ4编码压缩数据。与此同时,匹配搜寻模块1在接收到第一待压缩块的块处理结束标志时,输出下一个待压缩块(称为第二待压缩块)至数据切分模块3。数据切分模块3一方面将第二待压缩块的数据按照信息类别进行切分,并将不同信息类别的数据一一存储至第二存储器组22的不同存储器中,即第二存储器组22的不同存储器中存储的信息类别不同;另一方面计算第二待压缩块在LZ4编码时所需的长度信息(称为第二长度信息),数据切分模块3在第二待压缩块对应的存储及计算完成后生成块处理结束标志,并将第二待压缩块的块处理结束标志同时发送至匹配搜寻模块1和编码整合模块4。
编码整合模块4在自身处于空闲状态时,若接收到第二待压缩块的块处理结束标志,则基于第二长度信息对第二存储器组22的各存储器的存储信息进行LZ4编码整合,得到第二待压缩块对应的LZ4编码压缩数据。与此同时,匹配搜寻模块1在接收到第二待压缩块的块处理结束标志时,输出下一个待压缩块(称为第三待压缩块)至数据切分模块3。如此循环(不同轮接收的待压缩块的数据交替存储在两个存储器组中),直至所有待压缩块压缩处理完成。
需要说明的是,第一存储器组21和第二存储器组22在存储新的待压缩块的数据时,上一次存储的待压缩块的数据会被新的待压缩块的数据覆盖掉。
对比传统的LZ4编码压缩方式与改进后的LZ4编码压缩方式:如图2所示,为传统的LZ4编码压缩方式,在编码整合模块处理数据时,数据切分模块是暂时不工作的,这样会白白损失一部分的工作性能和硬件资源。如图3所示,为改进的LZ4编码压缩方式,可以在编码整合模块处理当前待压缩块的同时,数据切分模块接收并处理下一个待压缩块的数据,实现了整个系统的流水处理,提升了系统的数据吞吐率和硬件使用率,用较小的硬件代价大大提升了整个编码系统的处理性能。如图4所示,为LZ4编码压缩方式改进前后的性能对照图,从图4中可以看出,优化后的LZ4编码压缩方式相对于传统的LZ4编码压缩方式所获得的吞吐速率的提升更加明显。
可见,本申请设置两个存储器组,且数据切分模块在不同轮接收的待压缩块的数据可交替存储在两个存储器组中,这使得数据切分模块在处理完一个待压缩块发送至下一级的编码整合模块处理时,可同时从匹配搜寻模块接收下一个待压缩块处理,从而使得上一个待压缩块的整合编码处理与下一个待压缩块的接收切分处理同时进行,即在相同时间内,数据切分模块和编码整合模块可以处理不同的待压缩块,实现并行处理功能,从而节约了数据压缩时间,提高了数据压缩效率。
在上述实施例的基础上:
作为一种可选的实施例,待压缩块包括待压缩码流和指示信息;其中,待压缩码流包括文本信息、距离信息、匹配长度信息三类信息;指示信息用于表征待压缩码流中各字节所属的信息类别;
第一存储器组21和第二存储器组22均包括文本存储器、距离存储器和长度信息存储器;
数据切分模块3具体用于根据本轮接收的指示信息将本轮接收的待压缩码流拆分为文本字节、距离字节和匹配长度字节,并将三种字节相应存储至目标存储器组的各存储器中。
具体地,匹配搜寻模块1向数据切分模块3输出的待压缩块包括待压缩码流和指示信息;其中,待压缩码流包括文本信息(literal)、距离信息(distance)、匹配长度信息(match length)三类信息;指示信息用于表征待压缩码流中各字节所属的信息类别。
数据切分模块3根据本轮接收的指示信息将本轮接收的待压缩码流拆分为文本字节、距离字节和匹配长度字节,并将拆分出的文本字节存储至目标存储器组的文本存储器中、将拆分出的距离字节存储至目标存储器组的距离存储器中、将拆分出的匹配长度字节存储至目标存储器组的长度信息存储器中。
如图5所示,系统电路中包含两套独立的存储器组来存储第一级数据切分模块处理后的数据,使得系统电路在写入1完成之后,两部分存储形成了乒乓的缓存结构,系统电路启动读取1的同时写入2也可以进行,系统电路中原有的第二级编码整合模块处理完成后再启动下一个待压缩块的第一级数据切分模块处理的这部分耦合被切断了,从而可以使得当前待压缩块的整合编码处理与下一个待压缩块的接收切分处理同时进行,这样做的目的是希望每一个时钟周期都可以做到有源数据的输入,并且每个时钟周期都有编码数据的输出,使得两级的处理流水起来,提高数据压缩效率。
请参照图6,图6为本发明实施例提供的一种数据切分模块的结构示意图。
作为一种可选的实施例,数据切分模块3包括:
数据过滤模块31,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出文本字节和距离字节,并将两种字节相应存储至目标存储器组的文本存储器和距离存储器中;分别对文本字节和距离字节进行计数,得到文本长度和距离长度;在检测到本轮接收的待压缩码流的块结尾标记时,生成块结束标志;
长度统计模块32,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出匹配长度字节,对匹配长度字节进行计数,得到匹配长度,并将匹配长度字节和文本长度、距离长度及匹配长度一起存储至目标存储器组的长度信息存储器中;统计本轮接收的待压缩块的块长度信息,并将块长度信息写入寄存器中;在接收到块结束标志且完成本轮存储后生成块处理结束标志。
具体地,本申请的数据切分模块3包括数据过滤模块31和长度统计模块32,其工作原理为:
数据过滤模块31根据本轮接收的指示信息从本轮接收的待压缩码流拆分出文本字节和距离字节,一方面将拆分出的文本字节存储至目标存储器组的文本存储器中、将拆分出的距离字节存储至目标存储器组的距离存储器中;另一方面对拆分出的文本字节进行计数得到文本长度,同时对拆分出的距离字节进行计数得到距离长度,并将计数得到的文本长度和距离长度发送至长度统计模块32。长度统计模块32根据本轮接收的指示信息从本轮接收的待压缩码流拆分出匹配长度字节,并对拆分出的匹配长度字节进行计数,得到匹配长度,然后将拆分出的匹配长度字节和计数得到的文本长度、距离长度及匹配长度一起存储至目标存储器组的长度信息存储器中。
长度统计模块32还统计本轮接收的待压缩块的块长度信息,并将块长度信息写入寄存器(寄存器在存储新的块长度信息时,上一次存储的块长度信息会被新的块长度信息覆盖掉)中。数据过滤模块31还在检测到本轮接收的待压缩码流的块结尾标记时,生成块结束标志至长度统计模块32。长度统计模块32在接收到块结束标志且完成本轮存储后生成块处理结束标志,并将本轮接收的待压缩块的块处理结束标志同时发送至匹配搜寻模块1和编码整合模块4,供匹配搜寻模块1和编码整合模块4处理。
作为一种可选的实施例,数据过滤模块31包括:
文本过滤模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出文本字节,并将文本字节存储至目标存储器组的文本存储器中;对文本字节进行计数,得到文本长度;
距离过滤模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出距离字节,并将距离字节存储至目标存储器组的距离存储器中;对距离字节进行计数,得到距离长度;
块结尾检测模块,用于在检测到本轮接收的待压缩码流的块结尾标记时,生成块结束标志。
具体地,本申请的数据过滤模块31包括文本过滤模块、距离过滤模块及块结尾检测模块,其工作原理为:
文本过滤模块根据本轮接收的指示信息从本轮接收的待压缩码流拆分出文本字节,一方面将拆分出的文本字节存储至目标存储器组的文本存储器中,另一方面对拆分出的文本字节进行计数,得到文本长度,并将计数得到的文本长度发送至长度统计模块32,供长度统计模块32处理。距离过滤模块根据本轮接收的指示信息从本轮接收的待压缩码流拆分出距离字节,一方面将拆分出的距离字节存储至目标存储器组的距离存储器中,另一方面对拆分出的距离字节进行计数,得到距离长度,并将计数得到的距离长度发送至长度统计模块32,供长度统计模块32处理。块结尾检测模块在检测到本轮接收的待压缩码流的块结尾标记时,生成块结束标志至长度统计模块32,供长度统计模块32处理。
请参照图7,图7为本发明实施例提供的一种文本过滤模块的结构示意图。
作为一种可选的实施例,文本存储器为第一RAM;
文本过滤模块包括:
文本识别模块311,用于根据本轮接收的指示信息从本轮接收的待压缩码流识别出文本字节;
文本拼接模块312,用于将识别出的文本字节进行拼接,得到文本数据;
文本计数模块313,用于对识别出的文本字节进行计数,得到文本长度;
文本存储控制模块314,用于将文本数据进行8字节对齐,并将对齐后的文本数据存储至目标存储器组的第一RAM中。
具体地,本申请的第一存储器组21和第二存储器组22中的文本存储器均采用第一RAM(Random Access Memory,随机存取存储器),本申请的文本过滤模块包括文本识别模块311、文本拼接模块312、文本计数模块313及文本存储控制模块314,其工作原理为:
文本识别模块311根据本轮接收的指示信息从本轮接收的待压缩码流识别出文本字节,并将识别出的文本字节发送至文本拼接模块312和文本计数模块313。文本拼接模块312将识别出的文本字节进行拼接,得到文本数据,并将文本数据发送至文本存储控制模块314。文本存储控制模块314将文本数据进行8字节对齐,并将对齐后的文本数据存储至目标存储器组的第一RAM中。文本计数模块313对识别出的文本字节进行计数,得到文本长度,并将计数得到的文本长度发送至长度统计模块32,供长度统计模块32处理。
请参照图8,图8为本发明实施例提供的一种距离过滤模块的结构示意图。
作为一种可选的实施例,距离存储器为第二RAM;
距离过滤模块包括:
距离识别模块315,用于根据本轮接收的指示信息从本轮接收的待压缩码流识别出距离字节;
距离拼接模块316,用于将识别出的距离字节进行拼接,得到距离数据;
距离计数模块317,用于对识别出的距离字节进行计数,得到距离长度;
距离存储控制模块318,用于将距离数据进行8字节对齐,并将对齐后的距离数据存储至目标存储器组的第二RAM中。
具体地,本申请的第一存储器组21和第二存储器组22中的距离存储器均采用第二RAM,本申请的距离过滤模块包括距离识别模块315、距离拼接模块316、距离计数模块317及距离存储控制模块318,其工作原理为:
距离识别模块315根据本轮接收的指示信息从本轮接收的待压缩码流识别出距离字节,并将识别出的距离字节发送至距离拼接模块316和距离计数模块317。距离拼接模块316将识别出的距离字节进行拼接,得到距离数据,并将距离数据发送至距离存储控制模块318。距离存储控制模块318将距离数据进行8字节对齐,并将对齐后的距离数据存储至目标存储器组的第二RAM中。距离计数模块317对识别出的距离字节进行计数,得到距离长度,并将计数得到的距离长度发送至长度统计模块32,供长度统计模块32处理。
作为一种可选的实施例,长度信息存储器为第三RAM;
长度统计模块32具体用于将匹配长度字节、文本长度、距离长度及匹配长度进行拼接,得到长度数据,将长度数据进行8字节对齐,并将对齐后的长度数据存储至目标存储器组的第三RAM中。
具体地,本申请的第一存储器组21和第二存储器组22中的长度信息存储器均采用第三RAM,用于存储8字节对齐的长度数据。
请参照图9,图9为本发明实施例提供的一种编码整合模块的结构示意图。
作为一种可选的实施例,编码整合模块4包括:
帧头生成模块41,用于基于预设帧配置信息生成帧头信息;
读控制模块42,用于在自身处于空闲状态时,若接收到块处理结束标志,则基于目标存储器组的长度信息存储器内存储的长度信息,分别从目标存储器组的三个存储器中读取三类字节信息;
LZ4数据生成模块43,用于从寄存器中读取块长度信息,并基于帧头信息、块长度信息及三类字节信息得到LZ4编码压缩数据。
具体地,本申请的编码整合模块4包括帧头生成模块41、读控制模块42及LZ4数据生成模块43,其工作原理为:
帧头生成模块41基于预设帧配置信息生成帧头信息,并将帧头信息发送至LZ4数据生成模块43。读控制模块42在自身处于空闲状态时,若接收到块处理结束标志,则基于目标存储器组的长度信息存储器内存储的长度信息,分别从目标存储器组的三个存储器中读取三类字节信息,并将读取的三类字节信息发送至LZ4数据生成模块43。LZ4数据生成模块43从寄存器中读取块长度信息,并基于帧头信息、块长度信息及三类字节信息得到LZ4编码压缩数据(如图10所示,为LZ4数据编码的帧结构)。
作为一种可选的实施例,读控制模块42包括:
长度信息读取模块421,用于在自身处于空闲状态时,若接收到块处理结束标志,则从目标存储器组的长度信息存储器中读取文本长度、距离长度及匹配长度,并根据读取的匹配长度从目标存储器组的长度信息存储器中读取匹配长度字节;
文本读取模块422,用于根据读取的文本长度从目标存储器组的文本存储器中读取文本字节;
距离读取模块423,用于根据读取的距离长度从目标存储器组的距离存储器中读取距离字节。
具体地,本申请的读控制模块42包括长度信息读取模块421、文本读取模块422及距离读取模块423,其工作原理为:
长度信息读取模块421在自身处于空闲状态时,若接收到块处理结束标志,则从目标存储器组的长度信息存储器中读取文本长度、距离长度及匹配长度,一方面根据读取的匹配长度从目标存储器组的长度信息存储器中读取匹配长度字节,并将读取的匹配长度字节发送至LZ4数据生成模块43,供LZ4数据生成模块43处理;另一个方面将读取的文本长度发送至文本读取模块422,同时将读取的距离长度发送至距离读取模块423。文本读取模块422根据读取的文本长度从目标存储器组的文本存储器中读取文本字节,并将读取的文本字节发送至LZ4数据生成模块43,供LZ4数据生成模块43处理。距离读取模块423根据读取的距离长度从目标存储器组的距离存储器中读取距离字节,并将读取的距离字节发送至LZ4数据生成模块43,供LZ4数据生成模块43处理。
作为一种可选的实施例,编码整合模块4还包括:
输出控制模块44,用于将LZ4编码压缩数据进行8字节对齐,得到对齐后的LZ4编码压缩数据。
进一步地,本申请的编码整合模块4还包括输出控制模块44,输出控制模块44可将LZ4数据生成模块43得到的LZ4编码压缩数据进行8字节对齐,以最终得到对齐后的LZ4编码压缩数据。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种LZ4编码压缩装置,其特征在于,包括:
匹配搜寻模块,用于基于待压缩序列得到若干个预设数据大小的待压缩块,输出一个待压缩块,并在接收到上一个输出的待压缩块的块处理结束标志时,输出下一个待压缩块;
包含第一存储器组和第二存储器组的存储模块;
数据切分模块,用于将本轮接收的待压缩块的数据按照信息类别进行切分,并将不同信息类别的数据一一存储至目标存储器组的不同存储器中;计算本轮接收的待压缩块在LZ4编码时所需的长度信息,并在本轮存储及计算完成后生成块处理结束标志;其中,所述目标存储器组为第一或第二存储器组;不同轮接收的待压缩块的数据交替存储在两个存储器组中;
编码整合模块,用于在自身处于空闲状态时,若接收到所述块处理结束标志,则基于所述长度信息对所述目标存储器组的各存储器的存储信息进行LZ4编码整合,得到LZ4编码压缩数据。
2.如权利要求1所述的LZ4编码压缩装置,其特征在于,所述待压缩块包括待压缩码流和指示信息;其中,所述待压缩码流包括文本信息、距离信息、匹配长度信息三类信息;所述指示信息用于表征所述待压缩码流中各字节所属的信息类别;
所述第一存储器组和所述第二存储器组均包括文本存储器、距离存储器和长度信息存储器;
所述数据切分模块具体用于根据本轮接收的指示信息将本轮接收的待压缩码流拆分为文本字节、距离字节和匹配长度字节,并将三种字节相应存储至所述目标存储器组的各存储器中。
3.如权利要求2所述的LZ4编码压缩装置,其特征在于,所述数据切分模块包括:
数据过滤模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出文本字节和距离字节,并将两种字节相应存储至所述目标存储器组的文本存储器和距离存储器中;分别对所述文本字节和所述距离字节进行计数,得到文本长度和距离长度;在检测到本轮接收的待压缩码流的块结尾标记时,生成块结束标志;
长度统计模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出匹配长度字节,对所述匹配长度字节进行计数,得到匹配长度,并将所述匹配长度字节和所述文本长度、所述距离长度及所述匹配长度一起存储至所述目标存储器组的长度信息存储器中;统计本轮接收的待压缩块的块长度信息,并将所述块长度信息写入寄存器中;在接收到所述块结束标志且完成本轮存储后生成块处理结束标志。
4.如权利要求3所述的LZ4编码压缩装置,其特征在于,所述数据过滤模块包括:
文本过滤模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出文本字节,并将所述文本字节存储至所述目标存储器组的文本存储器中;对所述文本字节进行计数,得到文本长度;
距离过滤模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流拆分出距离字节,并将所述距离字节存储至所述目标存储器组的距离存储器中;对所述距离字节进行计数,得到距离长度;
块结尾检测模块,用于在检测到本轮接收的待压缩码流的块结尾标记时,生成块结束标志。
5.如权利要求4所述的LZ4编码压缩装置,其特征在于,所述文本存储器为第一RAM;
所述文本过滤模块包括:
文本识别模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流识别出文本字节;
文本拼接模块,用于将识别出的文本字节进行拼接,得到文本数据;
文本计数模块,用于对识别出的文本字节进行计数,得到文本长度;
文本存储控制模块,用于将所述文本数据进行8字节对齐,并将对齐后的文本数据存储至所述目标存储器组的第一RAM中。
6.如权利要求4所述的LZ4编码压缩装置,其特征在于,所述距离存储器为第二RAM;
所述距离过滤模块包括:
距离识别模块,用于根据本轮接收的指示信息从本轮接收的待压缩码流识别出距离字节;
距离拼接模块,用于将识别出的距离字节进行拼接,得到距离数据;
距离计数模块,用于对识别出的距离字节进行计数,得到距离长度;
距离存储控制模块,用于将所述距离数据进行8字节对齐,并将对齐后的距离数据存储至所述目标存储器组的第二RAM中。
7.如权利要求3所述的LZ4编码压缩装置,其特征在于,所述长度信息存储器为第三RAM;
所述长度统计模块具体用于将所述匹配长度字节、所述文本长度、所述距离长度及所述匹配长度进行拼接,得到长度数据,将所述长度数据进行8字节对齐,并将对齐后的长度数据存储至所述目标存储器组的第三RAM中。
8.如权利要求3-7任一项所述的LZ4编码压缩装置,其特征在于,所述编码整合模块包括:
帧头生成模块,用于基于预设帧配置信息生成帧头信息;
读控制模块,用于在自身处于空闲状态时,若接收到所述块处理结束标志,则基于所述目标存储器组的长度信息存储器内存储的长度信息,分别从所述目标存储器组的三个存储器中读取三类字节信息;
LZ4数据生成模块,用于从所述寄存器中读取所述块长度信息,并基于所述帧头信息、所述块长度信息及所述三类字节信息得到LZ4编码压缩数据。
9.如权利要求8所述的LZ4编码压缩装置,其特征在于,所述读控制模块包括:
长度信息读取模块,用于在自身处于空闲状态时,若接收到所述块处理结束标志,则从所述目标存储器组的长度信息存储器中读取文本长度、距离长度及匹配长度,并根据读取的匹配长度从所述目标存储器组的长度信息存储器中读取匹配长度字节;
文本读取模块,用于根据读取的文本长度从所述目标存储器组的文本存储器中读取文本字节;
距离读取模块,用于根据读取的距离长度从所述目标存储器组的距离存储器中读取距离字节。
10.如权利要求8所述的LZ4编码压缩装置,其特征在于,所述编码整合模块还包括:
输出控制模块,用于将所述LZ4编码压缩数据进行8字节对齐,得到对齐后的LZ4编码压缩数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210096028.4A CN114442954B (zh) | 2022-01-26 | 2022-01-26 | 一种lz4编码压缩装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210096028.4A CN114442954B (zh) | 2022-01-26 | 2022-01-26 | 一种lz4编码压缩装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114442954A true CN114442954A (zh) | 2022-05-06 |
CN114442954B CN114442954B (zh) | 2024-05-03 |
Family
ID=81369753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210096028.4A Active CN114442954B (zh) | 2022-01-26 | 2022-01-26 | 一种lz4编码压缩装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114442954B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116597049A (zh) * | 2023-07-17 | 2023-08-15 | 北京奇虎科技有限公司 | 文本生成方法、装置、设备及存储介质 |
CN116633808A (zh) * | 2023-07-19 | 2023-08-22 | 成都成电光信科技股份有限公司 | 一种时间触发光纤通道网络下的数据监控系统及其方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5532694A (en) * | 1989-01-13 | 1996-07-02 | Stac Electronics, Inc. | Data compression apparatus and method using matching string searching and Huffman encoding |
US20060273933A1 (en) * | 2005-06-03 | 2006-12-07 | Quantum Corporation | Data compression with selective encoding of short matches |
US20140172795A1 (en) * | 2012-03-02 | 2014-06-19 | Huawei Technologies Co., Ltd. | Data processing method and data processing device |
CN104202054A (zh) * | 2014-09-16 | 2014-12-10 | 东南大学 | 一种硬件lzma压缩实现系统及方法 |
US20190207624A1 (en) * | 2018-12-14 | 2019-07-04 | Intel Corporation | Selection of data compression technique based on input characteristics |
CN110032432A (zh) * | 2018-12-03 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 实例的压缩方法和装置、实例的解压方法和装置 |
US20190261016A1 (en) * | 2018-02-17 | 2019-08-22 | Google Llc | Video compression through motion warping using learning-based motion segmentation |
CN111382849A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据压缩方法、处理器、数据压缩装置及存储介质 |
CN111723059A (zh) * | 2020-05-25 | 2020-09-29 | 深圳市科楠科技开发有限公司 | 一种数据压缩方法、装置、终端设备及存储介质 |
-
2022
- 2022-01-26 CN CN202210096028.4A patent/CN114442954B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5532694A (en) * | 1989-01-13 | 1996-07-02 | Stac Electronics, Inc. | Data compression apparatus and method using matching string searching and Huffman encoding |
US20060273933A1 (en) * | 2005-06-03 | 2006-12-07 | Quantum Corporation | Data compression with selective encoding of short matches |
US20140172795A1 (en) * | 2012-03-02 | 2014-06-19 | Huawei Technologies Co., Ltd. | Data processing method and data processing device |
CN104202054A (zh) * | 2014-09-16 | 2014-12-10 | 东南大学 | 一种硬件lzma压缩实现系统及方法 |
US20190261016A1 (en) * | 2018-02-17 | 2019-08-22 | Google Llc | Video compression through motion warping using learning-based motion segmentation |
CN110032432A (zh) * | 2018-12-03 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 实例的压缩方法和装置、实例的解压方法和装置 |
US20190207624A1 (en) * | 2018-12-14 | 2019-07-04 | Intel Corporation | Selection of data compression technique based on input characteristics |
CN111382849A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据压缩方法、处理器、数据压缩装置及存储介质 |
CN111723059A (zh) * | 2020-05-25 | 2020-09-29 | 深圳市科楠科技开发有限公司 | 一种数据压缩方法、装置、终端设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王飞;李钊;尹晓华;雷振江;曹智;范赛龙;: "高速数据压缩及加密硬件加速电路研究", 计算机与数字工程, no. 01, 20 January 2020 (2020-01-20) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116597049A (zh) * | 2023-07-17 | 2023-08-15 | 北京奇虎科技有限公司 | 文本生成方法、装置、设备及存储介质 |
CN116597049B (zh) * | 2023-07-17 | 2023-10-31 | 北京奇虎科技有限公司 | 文本生成方法、装置、设备及存储介质 |
CN116633808A (zh) * | 2023-07-19 | 2023-08-22 | 成都成电光信科技股份有限公司 | 一种时间触发光纤通道网络下的数据监控系统及其方法 |
CN116633808B (zh) * | 2023-07-19 | 2023-10-03 | 成都成电光信科技股份有限公司 | 一种时间触发光纤通道网络下的数据监控系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114442954B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114442954B (zh) | 一种lz4编码压缩装置 | |
US7064489B2 (en) | Huffman data compression method | |
US7924183B2 (en) | Method and system for reducing required storage during decompression of a compressed file | |
JP3025301B2 (ja) | データ予備圧縮装置及びデータ予備圧縮システム及びデータ圧縮比改善方法 | |
CN106549673B (zh) | 一种数据压缩方法及装置 | |
CN102510323A (zh) | 一种串口数据的帧识别方法 | |
CN100525450C (zh) | 一种实现霍夫曼译码的方法和装置 | |
CN104393951A (zh) | 一种基于排队的遥感载荷通用数据处理系统 | |
CN101751440A (zh) | 一种数据压缩/解压缩方法及其装置 | |
CN111723059B (zh) | 一种数据压缩方法、装置、终端设备及存储介质 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
US20070098272A1 (en) | Reduced buffer size for JPEG encoding | |
CN103078646B (zh) | 字典查询压缩、解压缩方法及其装置 | |
CN113568587B (zh) | 智慧城市实时数据处理方法、系统及存储介质 | |
CN101469989A (zh) | 一种手机网络导航中导航数据的压缩方法 | |
CN112380196A (zh) | 一种用于数据压缩传输的服务器 | |
CN114785410B (zh) | 一种基于光纤编码的精准识别系统 | |
CN113839678B (zh) | 一种哈夫曼解码系统、方法、设备及计算机可读存储介质 | |
CN112260699B (zh) | 属性通讯编解码方法、编码装置、解码装置及系统 | |
CN114337682A (zh) | 一种Huffman编码压缩装置 | |
CN114124106A (zh) | 一种lz4解压缩方法、系统、存储介质及设备 | |
CN108989813A (zh) | 一种高效率压缩/解压缩方法、计算机装置和存储介质 | |
WO2023082156A1 (zh) | 一种lz77解码电路及其工作方法 | |
CN115331660B (zh) | 神经网络训练方法、语音识别方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |