CN110233627A - 一种基于流水式的硬件压缩的系统及方法 - Google Patents

一种基于流水式的硬件压缩的系统及方法 Download PDF

Info

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
Application number
CN201910431513.0A
Other languages
English (en)
Other versions
CN110233627B (zh
Inventor
蔡晔
罗浩鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen University
Original Assignee
Shenzhen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen University filed Critical Shenzhen University
Priority to CN201910431513.0A priority Critical patent/CN110233627B/zh
Publication of CN110233627A publication Critical patent/CN110233627A/zh
Application granted granted Critical
Publication of CN110233627B publication Critical patent/CN110233627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6029Pipelining

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所述的方法,其特征在于,还包括:
所述原始待压缩数据压缩完成后,通过所述直接存储器访问模块将已压缩数据传输到内存。
CN201910431513.0A 2019-05-22 2019-05-22 一种基于流水式的硬件压缩的系统及方法 Active CN110233627B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095037A (zh) * 2022-01-17 2022-02-25 浙江地芯引力科技有限公司 应用程序的更新方法、更新数据的压缩方法、装置及设备

Citations (7)

* Cited by examiner, † Cited by third party
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硬件实现文本压缩方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
陈国良 等: "高性能计算及其相关新兴技术", 《深圳大学学报理工版》 *

Cited By (1)

* Cited by examiner, † Cited by third party
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
CN102970043B (zh) 一种基于gzip的压缩硬件系统及其加速方法
US11431351B2 (en) Selection of data compression technique based on input characteristics
CN104904123B (zh) 压缩多字节帧的方法、装置和计算机可读介质
CN102176750B (zh) 高性能自适应二进制算术编码器
CN1193294C (zh) 一种多通道多位并行计算crc码的方法
CN101848311B (zh) 基于Avalon总线JPEG2000的EBCOT编码器
CA2472952A1 (en) Interleaving apparatus and method for a communication system
CN109428602A (zh) 一种数据编码方法、装置以及存储介质
CN110868223B (zh) 一种哈夫曼编码的数值运算实现方法及电路
CN109428603A (zh) 一种数据编码方法、装置以及存储介质
CN116051156B (zh) 一种基于数字孪生的新能源动态电价数据管理系统
CN110233627A (zh) 一种基于流水式的硬件压缩的系统及方法
CN102724505B (zh) Jpeg_ls游程编码fpga实现方法
CN114157305B (zh) 一种基于硬件快速实现gzip压缩的方法及其应用
CN103200407B (zh) 一种自适应熵编码器
CN105337617A (zh) 一种fsn文件高效压缩方法
CN106790550A (zh) 一种适用于配电网监测数据压缩的系统
CN107017962A (zh) 动态功耗控制的编码方法及编解码器
CN103152567A (zh) 一种任意阶数指数哥伦布编码器及其方法
CN202995712U (zh) 基于预先解码分析的配置信息缓存管理系统
CN102751994B (zh) 一种基于两个有限群符号的短码长分组码译码器装置
CN101741646B (zh) 基于数组链表的大流量网络地址前缀检测方法
CN108566210A (zh) 兼容IEEE802.11n标准的LDPC编码系统及方法、LDPC编码器
CN101500164B (zh) 算术编码的打包输出的方法和装置
CN116896769B (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