CN110233627A - 一种基于流水式的硬件压缩的系统及方法 - Google Patents
一种基于流水式的硬件压缩的系统及方法 Download PDFInfo
- Publication number
- CN110233627A CN110233627A CN201910431513.0A CN201910431513A CN110233627A CN 110233627 A CN110233627 A CN 110233627A CN 201910431513 A CN201910431513 A CN 201910431513A CN 110233627 A CN110233627 A CN 110233627A
- Authority
- CN
- China
- Prior art keywords
- character
- unit
- data
- match
- compressed
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6029—Pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种基于流水式的硬件压缩的系统及方法。一种基于流水式的硬件压缩的系统包括管理控制单元、流水匹配单元、标准格式转换单元、静态霍夫曼编码单元和数据流生成单元,其中,管理控制单元用于控制协调其它各个单元的数据传输,获取待压缩数据,输出已压缩数据;流水匹配单元用于计算当前输入字符与之前输入字符匹配相同的位置,当前输入字符连续匹配相同的长度;标准格式转换单元用于将输入字符转换成标准数据格式;静态霍夫曼编码单元用于将标准数据格式的数据编码成霍夫曼编码流;数据流生成单元用于将非定长的编码流转换成定长输出。本发明实施例的技术方案,提高了数据压缩的速率,并且减少了占用中央处理器的时间和内存资源。
Description
技术领域
本发明涉及数据压缩技术领域,尤其涉及一种基于流水式的硬件压缩的系统及方法。
背景技术
随着大数据与人工智能的快速发展,服务器端需要存储大量的数据,以支撑大数据与人工智能的平台运算。为了减少数据存储,避免数据占用过多存储资源,通常会对数据进行压缩,再进行存储。
目前对数据进行压缩往往是通过软件实现无损压缩,这样虽然可以有效地减少数据存储,但会占用中央处理器(CPU,Central Processing Unit)大量的时间以及大量的内存资源。
发明内容
本发明实施例提供基于流水式的硬件压缩的系统及方法,以提高数据压缩的速率,并且减少了占用中央处理器的时间和内存资源。
本发明第一方面提供一种基于流水式的硬件压缩的系统,所述系统包括管理控制单元、流水匹配单元、标准格式转换单元、静态霍夫曼编码单元和数据流生成单元;
所述管理控制单元,用于从输入缓存通道获取M比特待压缩数据,其中,M为正整数,将所述M比特待压缩数据分为N个字符,将所述N个字符分为N个周期输入所述流水匹配单元,其中,N为小于M的正整数,每个周期从所述数据流生成单元获取(M/N)比特已压缩数据,获取N个周期后输出M比特已压缩数据;
所述流水匹配单元,用于计算第i个字符与前(i-1)个字符匹配相同的位置以及连续匹配相同的长度,其中,i为不大于N的正整数;
所述标准格式转换单元,用于将所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置、所述第i个字符连续匹配相同的长度转换成标准数据格式的标准数据;
所述静态霍夫曼编码单元,用于对所述标准数据进行编码以得到霍夫曼编码流;
所述数据流生成单元,用于将所述霍夫曼编码流转换成每个周期(M/N)比特的已压缩数据输出。
基于本发明第一方面,在第一种可能的实施方式中,所述管理控制单元具体包括:
输入状态机单元,用于从所述输入缓存通道获取所述M比特待压缩数据,将所述M比特待压缩数据分为所述N个字符,将所述N个字符分为N个周期输入所述流水匹配单元,其中,所述N个字符中每个字符为(M/N)比特;
状态设置单元,用于设置所述M比特待压缩数据和所述M比特已压缩数据的大小端转换;
输出状态机单元,用于每个周期从所述数据流生成单元获取所述(M/N)比特已压缩数据,获取N个周期后输出所述M比特已压缩数据。
基于本发明第一方面或者本发明第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述流水匹配单元具体包括:
匹配位置计算单元,用于计算所述第i个字符与所述前(i-1)个字符匹配相同的位置;
K个字符匹配单元,用于将所述第i个字符与所述K个字符匹配单元保存的字符进行匹配,若匹配相同则输出匹配相同信号,其中,K为正整数,所述K个字符匹配单元呈流水结构,第j个字符匹配单元匹配后,将第j个字符匹配单元保存的字符输出给第(j+1)个字符匹配单元,将所述第j个字符匹配单元保存的字符替换成输入到所述第j个字符匹配单元的字符,j为小于K的正整数;
匹配长度计算单元,用于计算所述第i个字符连续匹配相同的长度。
基于本发明第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述标准格式转换单元具体包括:
第一字符缓存单元,用于存储所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置以及所述第i个字符连续匹配相同的长度;
第二字符缓存单元,用于存储第(i-1)个字符、所述第(i-1)个字符与前(i-2)个字符匹配相同的位置以及所述第(i-1)个字符连续匹配相同的长度;
第三字符缓存单元,用于存储第(i-2)个字符、所述第(i-2)个字符与前(i-3)个字符匹配相同的位置以及所述第(i-2)个字符连续匹配相同的长度;
格式转换状态机单元,用于通过判断所述第一字符缓存单元、所述第二字符缓存单元和所述第三字符缓存单元保存的数据,将所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置、所述第i个字符连续匹配相同的长度转换成所述标准数据;
其中,所述标准数据为单字符,或者所述标准数据包括位置距离、匹配长度和单字符。
基于本发明第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述静态霍夫曼编码单元具体包括:
字符编码单元,用于将所述单字符转换成霍夫曼编码格式,以得到第一霍夫曼编码流;
位置编码单元,用于将所述位置距离转换成霍夫曼编码格式;
长度编码单元,用于将所述匹配长度转换成霍夫曼编码格式;
霍夫曼编码拼接单元,用于将转换成霍夫曼编码格式的位置距离、匹配长度和单字符拼接成第二霍夫曼编码流;
编码流选择单元,用于选择以所述第一霍夫曼编码流输出还是以所述第二霍夫曼编码流输出。
本发明第二方面提供了一种基于流水式的硬件压缩的方法,包括:
从输入缓存通道获取M比特待压缩数据,其中,M为正整数;
将所述M比特待压缩数据分为N个字符,其中,N为小于M的正整数;
计算第i个字符与前(i-1)个字符匹配相同的位置以及连续匹配相同的长度,其中,i为不大于N的正整数;
将所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置、所述第i个字符连续匹配相同的长度转换成标准数据格式的标准数据;
对所述标准数据进行编码以得到霍夫曼编码流;
将所述霍夫曼编码流转换成每个周期(M/N)比特的已压缩数据输出;
每个周期获取(M/N)比特已压缩数据,获取N个周期后输出M比特已压缩数据。
可以看到,通过本发明提供的基于流水式的硬件压缩的系统及方法,通过管理控制单元、流水匹配单元、标准格式转换单元、静态霍夫曼编码单元和数据流生成单元对数据进行压缩,其中,流水匹配单元用于进行流水式的字符匹配,提高了匹配效率,从而提升了数据压缩的速率,同时,整个压缩过程无需中央处理器进行计算,减少了占用中央处理器的时间和内存资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于流水式的硬件压缩的系统的结构示意图;
图2为本发明实施例提供的一种基于流水式的硬件压缩的系统中管理控制单元的结构示意图;
图3为本发明实施例提供的一种基于流水式的硬件压缩的系统中流水匹配单元的结构示意图;
图4为本发明实施例提供的一种基于流水式的硬件压缩的系统中标准格式转换单元的结构示意图;
图5为本发明实施例提供的一种基于流水式的硬件压缩的系统中静态霍夫曼编码单元的结构示意图;
图6为本发明实施例提供的一种基于流水式的硬件压缩的方法的流程图;
图7为本发明实施例提供的另一种基于流水式的硬件压缩的方法的流程图;
图8为本发明实施例提供的一种基于流水式的硬件压缩的系统中数据流生成单元的工作流程图。
具体实施方式
本发明实施例提供基于流水式的硬件压缩的系统及方法,以提高数据压缩的速率,并且减少了占用中央处理器的时间和内存资源。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供的基于流水式的硬件压缩的系统,可实现静态Gzip压缩功能,压缩格式为标准的deflate压缩编码流格式。通过管理控制单元、流水匹配单元、标准格式转换单元、静态霍夫曼编码单元和数据流生成单元对数据进行压缩,其中,流水匹配单元用于进行流水式的字符匹配,提高了匹配效率,从而提升了数据压缩的速率,并且,流水匹配单元中应用的字符匹配单元越多,对数据的压缩率越高,同时,在压缩过程中,中央处理器只需通知直接存储器访问模块(DMA,Direct Memory Access)将待压缩数据传输到输入缓存通道,直到压缩完成,中央处理器再次通知直接存储器访问模块将已压缩数据传输到内存,对数据进行压缩时无需中央处理器进行计算,减少了占用中央处理器的时间和内存资源。
首先参见图1,图1为本发明实施例提供的一种基于流水式的硬件压缩的系统100的结构示意图,本发明实施例提供的一种基于流水式的硬件压缩的系统100可以包括:管理控制单元101、流水匹配单元102、标准格式转换单元103、静态霍夫曼编码单元104和数据流生成单元105;
其中,管理控制单元101,用于从输入缓存通道获取M比特待压缩数据,其中,M为正整数,将M比特待压缩数据分为N个字符,将N个字符分为N个周期输入流水匹配单元102,其中,N为小于M的正整数,同时,每个周期检测数据流生成单元105是否有压缩完成的(M/N)比特数据输出,如果有则从数据流生成单元105获取(M/N)比特已压缩数据,获取N个周期后输出M比特已压缩数据;
流水匹配单元102,用于每周期获取一个管理控制单元101输入的字符,计算第i个字符与前(i-1)个字符匹配相同的位置以及连续匹配相同的长度,将第i个字符、第i个字符与前(i-1)个字符匹配相同的位置、第i个字符连续匹配相同的长度发给标准格式转换单元103,其中,i为不大于N的正整数;
标准格式转换单元103,用于对内部缓存单元中的数据进行逻辑判断,将第i个字符、第i个字符与前(i-1)个字符匹配相同的位置、第i个字符连续匹配相同的长度转换成标准数据格式的标准数据,将标准数据发给静态霍夫曼编码单元104;
静态霍夫曼编码单元104,用于通过内部编码转换单元对标准数据进行编码以得到霍夫曼编码流,将霍夫曼编码流发给数据流生成单元105;
数据流生成单元105,用于将非定长的霍夫曼编码流转换成定长的编码流输出,每周期获取一次霍夫曼编码流,将霍夫曼编码流存储在内部缓存数组,同时每周期向管理控制单元101发送内部缓存数组中的前(M/N)位数据。
参见图2,图2为本发明实施例提供的一种基于流水式的硬件压缩的系统中管理控制单元200的结构示意图,本发明实施例提供的一种管理控制单元200可以包括:输入状态机单元201、状态设置单元202和输出状态机单元203;
其中,输入状态机单元201,用于从输入缓存通道获取M比特待压缩数据,其中,M为正整数,将M比特待压缩数据分为N个字符,以每周期一个字符的格式输出,其中,N为小于M的正整数,N个字符中每个字符为(M/N)比特;
状态设置单元202,用于设置状态机输入数据和输出数据的大小端转换;
输出状态机单元203,用于每个周期获取压缩完成后的(M/N)比特编码流数据,每获取N个周期后输出M比特已压缩数据。
可选的,输入状态机单元201除了每周期输出一个字符外,还输出一个输入有效位,其中,输入有效位用于表示当前周期原始数据是否有效,当输入有效位逻辑上为0时表示当前周期原始数据无效,当输入有效位逻辑上为1时表示当前周期原始数据有效。
其中,大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,地址由小向大增加,而数据从高位往低位放;小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,将地址的高低和数据位权结合起来,高地址部分权值高,低地址部分权值低。
可选的,输出状态机单元203除了每周期获取(M/N)比特编码流数据外,还获取一个编码有效位,其中,编码有效位用于表示当前周期编码流数据是否有效,当编码有效位逻辑上为0时表示当前周期编码流数据无效,当编码有效位逻辑上为1时表示当前周期编码流数据有效。
可选的,当M为128,N为16时,输入状态机单元201每16个周期获取一次128比特待压缩数据,将128比特待压缩数据分为16个字符,以每周期一个字符的格式输出,其中,16个字符中每个字符为8比特;
状态设置单元202设置状态机输入数据和输出数据的大小端转换;
输出状态机单元203将输入的压缩完成后的8比特编码流数据存储起来,每输入16个8比特编码流数据后,拼接成128比特已压缩数据输出。
参见图3,图3为本发明实施例提供的一种基于流水式的硬件压缩的系统中流水匹配单元300的结构示意图,本发明实施例提供的一种流水匹配单元300可以包括:匹配位置计算单元301、K个字符匹配单元302和匹配长度计算单元303;
其中,匹配位置计算单元301,用于计算当前输入字符与之前输入字符匹配相同的位置,通过每个字符匹配单元发送的信号判断,如果当前哪个字符匹配单元匹配成功,则输出该字符匹配单元的位置;
K个字符匹配单元302,其中,K为正整数,K个字符匹配单元呈流水结构,每个字符匹配单元用于将输入字符与保存在该字符匹配单元内的字符进行匹配,若匹配相同则输出匹配相同信号,每个周期结束后,将保存在该字符匹配单元内的字符输出给下一个字符匹配单元,作为下一个字符匹配单元的输入字符,同时将输入该字符匹配单元的字符保存在该字符匹配单元内,等待下一个周期应用;
匹配长度计算单元303,用于计算当前字符连续匹配相同的长度,如果当前字符匹配相同,则计数加一,直到字符匹配不相同,计数清零,重新计数。
可选的,匹配位置计算单元301输出当前输入字符与之前输入字符匹配相同的位置,位置数据为15比特数据,匹配长度计算单元303输出当前字符连续匹配相同的长度,长度数据为8比特数据。
参见图4,图4为本发明实施例提供的一种基于流水式的硬件压缩的系统中标准格式转换单元400的结构示意图,本发明实施例提供的一种标准格式转换单元400可以包括:第一字符缓存单元401、第二字符缓存单元402、第三字符缓存单元403和格式转换状态机单元404;
其中,第一字符缓存单元401,用于存储第i个字符、第i个字符与前(i-1)个字符匹配相同的位置以及第i个字符连续匹配相同的长度,其中,i为不大于N的正整数;
第二字符缓存单元402,用于存储第(i-1)个字符、第(i-1)个字符与前(i-2)个字符匹配相同的位置以及第(i-1)个字符连续匹配相同的长度;
第三字符缓存单元403,用于存储第(i-2)个字符、第(i-2)个字符与前(i-3)个字符匹配相同的位置以及第(i-2)个字符连续匹配相同的长度;
格式转换状态机单元404,用于通过判断第一字符缓存单元401、第二字符缓存单元402和第三字符缓存单元403保存的数据,将第i个字符、第i个字符与前(i-1)个字符匹配相同的位置、第i个字符连续匹配相同的长度转换成标准数据格式的标准数据;
其中,标准数据为单字符,或者标准数据包括位置距离、匹配长度和单字符。
可选的,当标准数据格式为LZ77数据格式时,第一字符缓存单元401存储第i个字符、第i个字符与前(i-1)个字符匹配相同的位置以及第i个字符连续匹配相同的长度,即标准格式转换单元400当前周期输入的字符信息;
第二字符缓存单元402存储第(i-1)个字符、第(i-1)个字符与前(i-2)个字符匹配相同的位置以及第(i-1)个字符连续匹配相同的长度,即标准格式转换单元400上一个周期输入的字符信息;
第三字符缓存单元403存储第(i-2)个字符、第(i-2)个字符与前(i-3)个字符匹配相同的位置以及第(i-2)个字符连续匹配相同的长度,即标准格式转换单元400上上一个周期输入的字符信息;
格式转换状态机单元404,通过判断三个字符缓存单元保存的数据,将第i个字符、第i个字符与前(i-1)个字符匹配相同的位置、第i个字符连续匹配相同的长度转换成LZ77数据格式的标准数据,即如果匹配长度不超过三个值,则以单字符输出,如果匹配长度超过三个值,则以{位置距离、匹配长度、单字符}的格式代替重复字符串输出,例如,连续五个周期匹配到相同的字符,第一个周期到第四个周期都不会有有效数据输出,到第五个周期会以{位置距离、5、下一字符}的数据格式输出。
可选的,格式转换状态机单元404输出位置距离、匹配长度和单字符,其中,位置距离为15比特数据,匹配长度为8比特数据,单字符为8比特数据,格式转换状态机单元404除了输出位置距离、匹配长度和单字符外,还输出一个单字符标志变量,单字符标志变量用于表示是否为单字符输出,如果不是单字符输出,则位置距离和匹配长度的数据有效,如果是单字符输出,则位置距离和匹配长度的数据无效。
参见图5,图5为本发明实施例提供的一种基于流水式的硬件压缩的系统中静态霍夫曼编码单元500的结构示意图,本发明实施例提供的一种静态霍夫曼编码单元500可以包括:字符编码单元501、位置编码单元502、长度编码单元503、霍夫曼编码拼接单元504和编码流选择单元505;
其中,字符编码单元501,用于将单字符转换成霍夫曼编码格式,以得到第一霍夫曼编码流;
位置编码单元502,用于将位置距离转换成霍夫曼编码格式;
长度编码单元503,用于将匹配长度转换成霍夫曼编码格式;
霍夫曼编码拼接单元504,用于将转换成霍夫曼编码格式的位置距离、匹配长度和单字符拼接成第二霍夫曼编码流,其中,第二霍夫曼编码流的长度不大于64比特;
编码流选择单元505,用于选择以第一霍夫曼编码流输出还是以第二霍夫曼编码流输出,即选择以单字符的霍夫曼编码流输出还是以{位置距离、匹配长度、单字符}的霍夫曼编码流输出,如果输入静态霍夫曼编码单元500的数据是单字符,则位置编码单元502和长度编码单元503的输出编码流无效,只以字符编码单元501的编码流输出,如果输入静态霍夫曼编码单元500的数据不是单字符,则输出拼接后的编码流。
可选的,编码流选择单元505除了输出霍夫曼编码流外,还输出霍夫曼编码流中有多少个有效的数据位。
参见图6,图6为本发明实施例提供的一种基于流水式的硬件压缩的方法的流程图。其中,如图6所示,本发明实施例提供的一种基于流水式的硬件压缩的方法可以包括:
601、从输入缓存通道获取M比特待压缩数据,其中,M为正整数。
可选的,从输入缓存通道获取M比特待压缩数据之前,通过直接存储器访问模块将原始待压缩数据传输到该输入缓存通道。
602、将M比特待压缩数据分为N个字符,其中,N为小于M的正整数。
其中,该N个字符中每个字符为(M/N)比特。
603、计算第i个字符与前(i-1)个字符匹配相同的位置以及连续匹配相同的长度,其中,i为不大于N的正整数。
可选的,计算第i个字符与前(i-1)个字符匹配相同的位置以及连续匹配相同的长度的方法可以是:
将第i个字符与K个字符匹配单元保存的字符进行匹配,若匹配相同则输出匹配相同信号,根据匹配相同信号计算第i个字符与前(i-1)个字符匹配相同的位置,计算第i个字符连续匹配相同的长度;
其中,K为正整数,K个字符匹配单元呈流水结构,第j个字符匹配单元匹配后,将第j个字符匹配单元保存的字符输出给第(j+1)个字符匹配单元,将第j个字符匹配单元保存的字符替换成输入到第j个字符匹配单元的字符,j为小于K的正整数。
604、将第i个字符、第i个字符与前(i-1)个字符匹配相同的位置、第i个字符连续匹配相同的长度转换成标准数据格式的标准数据。
可选的,将第i个字符、第i个字符与前(i-1)个字符匹配相同的位置、第i个字符连续匹配相同的长度转换成标准数据格式的标准数据的方法可以是:
通过判断第一缓存数据、第二缓存数据和第三缓存数据,将第i个字符、第i个字符与前(i-1)个字符匹配相同的位置、第i个字符连续匹配相同的长度转换成标准数据;
其中,第一缓存数据包括第i个字符、第i个字符与前(i-1)个字符匹配相同的位置以及第i个字符连续匹配相同的长度,第二缓存数据包括存储第(i-1)个字符、第(i-1)个字符与前(i-2)个字符匹配相同的位置以及第(i-1)个字符连续匹配相同的长度,第三缓存数据包括第(i-2)个字符、第(i-2)个字符与前(i-3)个字符匹配相同的位置以及第(i-2)个字符连续匹配相同的长度;
其中,标准数据为单字符,或者标准数据包括位置距离、匹配长度和单字符。
605、对标准数据进行编码以得到霍夫曼编码流。
可选的,对标准数据进行编码以得到霍夫曼编码流的方法可以是:
当标准数据为单字符时,将单字符转换成霍夫曼编码格式,以得到第一霍夫曼编码流;
当标准数据包括位置距离、匹配长度和单字符时,将单字符转换成霍夫曼编码格式;
将位置距离转换成霍夫曼编码格式;
将匹配长度转换成霍夫曼编码格式;
将转换成霍夫曼编码格式的位置距离、匹配长度和单字符拼接成第二霍夫曼编码流。
606、将霍夫曼编码流转换成每个周期(M/N)比特的已压缩数据输出。
607、每个周期获取(M/N)比特已压缩数据,获取N个周期后输出M比特已压缩数据。
可选的,设置M比特待压缩数据和M比特已压缩数据的大小端转换。
可选的,原始待压缩数据压缩完成后,通过直接存储器访问模块将已压缩数据传输到内存。
参见图7,图7为本发明实施例提供的另一种基于流水式的硬件压缩的方法的流程图。其中,如图7所示,本发明实施例提供的另一种基于流水式的硬件压缩的方法可以包括:
701、管理控制单元获取128比特待压缩数据。
中央处理器通过直接存储器访问模块,将原始待压缩数据传输到硬件压缩系统的输入缓存通道,管理控制单元每16个周期从输入缓存通道获取一次128比特待压缩数据。
702、管理控制单元将128比特待压缩数据分为16个字符。
其中,16个字符中每个字符为8比特。
703、管理控制单元以每周期一个字符的格式输出,按顺序将16个字符发送给流水匹配单元,每输出一个字符,计数加一。
704、流水匹配单元对输入字符进行流水匹配,以得到匹配数据,将匹配数据发给标准格式转换单元。
其中,匹配数据包括当前输入字符、当前输入字符与之前输入字符匹配相同的位置和当前输入字符连续匹配相同的长度。
705、标准格式转换单元将输入的匹配数据转换成LZ77格式的数据,将LZ77格式的数据发给静态霍夫曼编码单元。
706、静态霍夫曼编码单元将LZ77格式的数据转换成霍夫曼编码流,将霍夫曼编码流发给数据流生成单元。
707、数据流生成单元获取非定长的霍夫曼编码流,每周期将8比特编码流数据发给管理控制单元。
708、管理控制单元每获取16个8比特编码流数据后,拼接成128比特编码流数据输出。
709、判断当前输入的128比特数据是否已经全部发送完毕,否,则进入步骤703,是,则进入步骤710。
710、判断输入缓存通道是否还有数据,否,则进入步骤711,是,则进入步骤701,按顺序再次获取下一个128比特数据。
711、输入数据结束。
712、判断编码流数据是否已经全部输出,否,则继续等待,直到压缩完成的编码流数据全部输出,是,则进入结束状态。
参见图8,图8为本发明实施例提供的一种基于流水式的硬件压缩的系统中数据流生成单元的工作流程图。其中,如图8所示,本发明实施例提供的一种数据流生成单元的工作流程可以包括:
801、判断当前输入数据流生成单元的编码流数据是否有效,否,则进入步骤804,是,则进入步骤802。
802、获取当前编码流数据以及当前编码流数据的有效长度数据。
803、将数据流生成单元中的缓存数组左移当前编码流数据的有效长度位后,与当前编码流数据做或运算。
其中,缓存数组用于保存输入数据流生成单元的编码流数据,将缓存数组左移有效长度位后与当前编码流数据做或运算,即把当前编码流数据拼接到缓存数组的尾部。
804、同周期内取出数据流生成单元内缓存数组的前(M/N)位数据输出,进入步骤805。
805、判断输入数据是否已经结束,否,则进入步骤801,是,则进入步骤806。
806、判断缓存数据里是否还有编码流数据没有输出,是,则进入步骤804,否,则进入结束状态。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种基于流水式的硬件压缩的系统,其特征在于,所述系统包括管理控制单元、流水匹配单元、标准格式转换单元、静态霍夫曼编码单元和数据流生成单元;
所述管理控制单元,用于从输入缓存通道获取M比特待压缩数据,其中,M为正整数,将所述M比特待压缩数据分为N个字符,将所述N个字符分为N个周期输入所述流水匹配单元,其中,N为小于M的正整数,每个周期从所述数据流生成单元获取(M/N)比特已压缩数据,获取N个周期后输出M比特已压缩数据;
所述流水匹配单元,用于计算第i个字符与前(i-1)个字符匹配相同的位置以及连续匹配相同的长度,其中,i为不大于N的正整数;
所述标准格式转换单元,用于将所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置、所述第i个字符连续匹配相同的长度转换成标准数据格式的标准数据;
所述静态霍夫曼编码单元,用于对所述标准数据进行编码以得到霍夫曼编码流;
所述数据流生成单元,用于将所述霍夫曼编码流转换成每个周期(M/N)比特的已压缩数据输出。
2.根据权利要求1所述的系统,其特征在于,所述管理控制单元具体包括:
输入状态机单元,用于从所述输入缓存通道获取所述M比特待压缩数据,将所述M比特待压缩数据分为所述N个字符,将所述N个字符分为N个周期输入所述流水匹配单元,其中,所述N个字符中每个字符为(M/N)比特;
状态设置单元,用于设置所述M比特待压缩数据和所述M比特已压缩数据的大小端转换;
输出状态机单元,用于每个周期从所述数据流生成单元获取所述(M/N)比特已压缩数据,获取N个周期后输出所述M比特已压缩数据。
3.根据权利要求1或2所述的系统,其特征在于,所述流水匹配单元具体包括:
匹配位置计算单元,用于计算所述第i个字符与所述前(i-1)个字符匹配相同的位置;
K个字符匹配单元,用于将所述第i个字符与所述K个字符匹配单元保存的字符进行匹配,若匹配相同则输出匹配相同信号,其中,K为正整数,所述K个字符匹配单元呈流水结构,第j个字符匹配单元匹配后,将第j个字符匹配单元保存的字符输出给第(j+1)个字符匹配单元,将所述第j个字符匹配单元保存的字符替换成输入到所述第j个字符匹配单元的字符,j为小于K的正整数;
匹配长度计算单元,用于计算所述第i个字符连续匹配相同的长度。
4.根据权利要求3所述的系统,其特征在于,所述标准格式转换单元具体包括:
第一字符缓存单元,用于存储所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置以及所述第i个字符连续匹配相同的长度;
第二字符缓存单元,用于存储第(i-1)个字符、所述第(i-1)个字符与前(i-2)个字符匹配相同的位置以及所述第(i-1)个字符连续匹配相同的长度;
第三字符缓存单元,用于存储第(i-2)个字符、所述第(i-2)个字符与前(i-3)个字符匹配相同的位置以及所述第(i-2)个字符连续匹配相同的长度;
格式转换状态机单元,用于通过判断所述第一字符缓存单元、所述第二字符缓存单元和所述第三字符缓存单元保存的数据,将所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置、所述第i个字符连续匹配相同的长度转换成所述标准数据;
其中,所述标准数据为单字符,或者所述标准数据包括位置距离、匹配长度和单字符。
5.根据权利要求4所述的系统,其特征在于,所述静态霍夫曼编码单元具体包括:
字符编码单元,用于将所述单字符转换成霍夫曼编码格式,以得到第一霍夫曼编码流;
位置编码单元,用于将所述位置距离转换成霍夫曼编码格式;
长度编码单元,用于将所述匹配长度转换成霍夫曼编码格式;
霍夫曼编码拼接单元,用于将转换成霍夫曼编码格式的位置距离、匹配长度和单字符拼接成第二霍夫曼编码流;
编码流选择单元,用于选择以所述第一霍夫曼编码流输出还是以所述第二霍夫曼编码流输出。
6.一种基于流水式的硬件压缩的方法,其特征在于,包括:
从输入缓存通道获取M比特待压缩数据,其中,M为正整数;
将所述M比特待压缩数据分为N个字符,其中,N为小于M的正整数;
计算第i个字符与前(i-1)个字符匹配相同的位置以及连续匹配相同的长度,其中,i为不大于N的正整数;
将所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置、所述第i个字符连续匹配相同的长度转换成标准数据格式的标准数据;
对所述标准数据进行编码以得到霍夫曼编码流;
将所述霍夫曼编码流转换成每个周期(M/N)比特的已压缩数据输出;
每个周期获取(M/N)比特已压缩数据,获取N个周期后输出M比特已压缩数据。
7.根据权利要求6所述的方法,其特征在于,所述从输入缓存通道获取M比特待压缩数据之前,包括:
通过直接存储器访问模块将原始待压缩数据传输到所述输入缓存通道。
8.根据权利要求6所述的方法,其特征在于,所述N个字符中每个字符为(M/N)比特,所述方法还包括:
设置所述M比特待压缩数据和所述M比特已压缩数据的大小端转换。
9.根据权利要求6至8任一项所述的方法,其特征在于,所述计算第i个字符与前(i-1)个字符匹配相同的位置以及连续匹配相同的长度包括:
将所述第i个字符与K个字符匹配单元保存的字符进行匹配,若匹配相同则输出匹配相同信号,根据所述匹配相同信号计算所述第i个字符与前(i-1)个字符匹配相同的位置,计算所述第i个字符连续匹配相同的长度;
其中,K为正整数,所述K个字符匹配单元呈流水结构,第j个字符匹配单元匹配后,将第j个字符匹配单元保存的字符输出给第(j+1)个字符匹配单元,将所述第j个字符匹配单元保存的字符替换成输入到所述第j个字符匹配单元的字符,j为小于K的正整数。
10.根据权利要求9所述的方法,其特征在于,所述将所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置、所述第i个字符连续匹配相同的长度转换成标准数据格式的标准数据包括:
通过判断第一缓存数据、第二缓存数据和第三缓存数据,将所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置、所述第i个字符连续匹配相同的长度转换成所述标准数据;
其中,所述第一缓存数据包括所述第i个字符、所述第i个字符与所述前(i-1)个字符匹配相同的位置以及所述第i个字符连续匹配相同的长度,第二缓存数据包括存储第(i-1)个字符、所述第(i-1)个字符与前(i-2)个字符匹配相同的位置以及所述第(i-1)个字符连续匹配相同的长度,第三缓存数据包括第(i-2)个字符、所述第(i-2)个字符与前(i-3)个字符匹配相同的位置以及所述第(i-2)个字符连续匹配相同的长度,所述标准数据为单字符,或者所述标准数据包括位置距离、匹配长度和单字符。
11.根据权利要求10所述的方法,其特征在于,所述对所述标准数据进行编码以得到霍夫曼编码流包括:
当所述标准数据为单字符时,将所述单字符转换成霍夫曼编码格式,以得到第一霍夫曼编码流;
当所述标准数据包括位置距离、匹配长度和单字符时,将所述单字符转换成霍夫曼编码格式;
将所述位置距离转换成霍夫曼编码格式;
将所述匹配长度转换成霍夫曼编码格式;
将转换成霍夫曼编码格式的位置距离、匹配长度和单字符拼接成第二霍夫曼编码流。
12.根据权利要求7所述的方法,其特征在于,还包括:
所述原始待压缩数据压缩完成后,通过所述直接存储器访问模块将已压缩数据传输到内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910431513.0A CN110233627B (zh) | 2019-05-22 | 2019-05-22 | 一种基于流水式的硬件压缩的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910431513.0A CN110233627B (zh) | 2019-05-22 | 2019-05-22 | 一种基于流水式的硬件压缩的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110233627A true CN110233627A (zh) | 2019-09-13 |
CN110233627B CN110233627B (zh) | 2023-05-12 |
Family
ID=67861515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910431513.0A Active CN110233627B (zh) | 2019-05-22 | 2019-05-22 | 一种基于流水式的硬件压缩的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110233627B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095037A (zh) * | 2022-01-17 | 2022-02-25 | 浙江地芯引力科技有限公司 | 应用程序的更新方法、更新数据的压缩方法、装置及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0814614A2 (en) * | 1996-06-19 | 1997-12-29 | Hewlett-Packard Company | High bit-rate Huffman decoding |
CN202931289U (zh) * | 2012-11-14 | 2013-05-08 | 无锡芯响电子科技有限公司 | 一种硬件lz77压缩实现系统 |
GB201404719D0 (en) * | 2013-03-15 | 2014-04-30 | Univ Leuven Kath | Parallel apparatus for high-speed,highly compressed LZ77 tokenization and huffman encoding for deflate compression |
CN103997346A (zh) * | 2014-05-12 | 2014-08-20 | 东南大学 | 一种基于流水线的数据匹配方法和装置 |
CN104300990A (zh) * | 2013-03-15 | 2015-01-21 | 英特尔公司 | 用于高速高度压缩lz77令牌化的并行装置和用于紧缩压缩的霍夫曼编码 |
CN105306951A (zh) * | 2015-10-11 | 2016-02-03 | 华南理工大学 | 数据压缩编码的流水线并行加速方法及其系统架构 |
CN107135003A (zh) * | 2017-04-19 | 2017-09-05 | 西安电子科技大学 | 基于Gzip硬件实现文本压缩方法 |
-
2019
- 2019-05-22 CN CN201910431513.0A patent/CN110233627B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0814614A2 (en) * | 1996-06-19 | 1997-12-29 | Hewlett-Packard Company | High bit-rate Huffman decoding |
CN202931289U (zh) * | 2012-11-14 | 2013-05-08 | 无锡芯响电子科技有限公司 | 一种硬件lz77压缩实现系统 |
GB201404719D0 (en) * | 2013-03-15 | 2014-04-30 | Univ Leuven Kath | Parallel apparatus for high-speed,highly compressed LZ77 tokenization and huffman encoding for deflate compression |
CN104300990A (zh) * | 2013-03-15 | 2015-01-21 | 英特尔公司 | 用于高速高度压缩lz77令牌化的并行装置和用于紧缩压缩的霍夫曼编码 |
CN103997346A (zh) * | 2014-05-12 | 2014-08-20 | 东南大学 | 一种基于流水线的数据匹配方法和装置 |
CN105306951A (zh) * | 2015-10-11 | 2016-02-03 | 华南理工大学 | 数据压缩编码的流水线并行加速方法及其系统架构 |
CN107135003A (zh) * | 2017-04-19 | 2017-09-05 | 西安电子科技大学 | 基于Gzip硬件实现文本压缩方法 |
Non-Patent Citations (1)
Title |
---|
陈国良 等: "高性能计算及其相关新兴技术", 《深圳大学学报理工版》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095037A (zh) * | 2022-01-17 | 2022-02-25 | 浙江地芯引力科技有限公司 | 应用程序的更新方法、更新数据的压缩方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110233627B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111091876B (zh) | 一种dna存储方法、系统及电子设备 | |
CN102970043B (zh) | 一种基于gzip的压缩硬件系统及其加速方法 | |
CN109635944A (zh) | 一种稀疏卷积神经网络加速器及实现方法 | |
US11431351B2 (en) | Selection of data compression technique based on input characteristics | |
CN102968390B (zh) | 基于预先解码分析的配置信息缓存管理方法及系统 | |
CN102176750B (zh) | 高性能自适应二进制算术编码器 | |
CN101848311B (zh) | 基于Avalon总线JPEG2000的EBCOT编码器 | |
CN109428602A (zh) | 一种数据编码方法、装置以及存储介质 | |
CN109889205A (zh) | 编码方法及系统、解码方法及系统、编解码方法及系统 | |
CN110868223B (zh) | 一种哈夫曼编码的数值运算实现方法及电路 | |
CN109428603A (zh) | 一种数据编码方法、装置以及存储介质 | |
CN106649217A (zh) | 数据的匹配方法及装置 | |
CN116051156B (zh) | 一种基于数字孪生的新能源动态电价数据管理系统 | |
CN109587483A (zh) | 码流提取模块 | |
CN110233627A (zh) | 一种基于流水式的硬件压缩的系统及方法 | |
CN102724505B (zh) | Jpeg_ls游程编码fpga实现方法 | |
CN103200407B (zh) | 一种自适应熵编码器 | |
CN103222269B (zh) | 用于较高吞吐量的最后位置的二值化 | |
CN105337617A (zh) | 一种fsn文件高效压缩方法 | |
CN116610731A (zh) | 一种大数据分布式存储方法、装置、电子设备及存储介质 | |
CN106790550A (zh) | 一种适用于配电网监测数据压缩的系统 | |
CN108829930B (zh) | 三维数字化工艺设计mbd模型的轻量化方法 | |
CN107017962A (zh) | 动态功耗控制的编码方法及编解码器 | |
CN116664705A (zh) | 一种面向智能无损压缩算法的异构计算加速方法 | |
CN102298782B (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 |