【技术实现步骤摘要】
灵活的压缩头部和代码生成
[0001]本公开总体上涉及数据压缩技术,以及硬件压缩技术。
技术介绍
[0002]DEFLATE压缩算法是一种通用的压缩算法(例如,在ZLIB、GZIP等等中实现)。DEFLATE基于LZ77算法来寻找数据匹配,并且DEFLATE用霍夫曼编码的符号对LZ77输出进行编码。压缩流由一系列的块组成,其中块头部定义了在该块中要使用的霍夫曼表。在大多数情况下,霍夫曼码是针对块的内容进行优化的。这意味着需要通过数据两遍:一遍是计算该块的数据的统计信息,另一遍是进行实际压缩。在这两遍之间,要进行计算,以基于来自第一遍的统计信息来计算一组霍夫曼码。
技术实现思路
[0003]根据本公开的第一方面,提供了一种集成电路,包括:衬底;以及耦合到所述衬底的硬件压缩器,用于对数据进行压缩,所述硬件压缩器包括电路,所述电路用于:将输入数据存储在历史缓冲器中,基于所述输入数据计算一个或多个码表,并且基于计算出的一个或多个码表来计算压缩流头部。
[0004]根据本公开的第二方面,提供了一种方法,包括:将输入数据存储在硬件压缩器的历史缓冲器中;由所述硬件压缩器基于所述输入数据计算一个或多个码表;以及由所述硬件压缩器基于计算出的一个或多个码表来计算压缩流头部。
[0005]根据本公开的第三方面,提供了一种装置,包括:两个或更多个硬件加速器引擎;存储器,与所述两个或更多个硬件加速器引擎通信耦合,所述存储器用于为所述两个或更多个硬件加速器引擎存储一个或多个作业;以及控制器,与所述存储器和所述两个 ...
【技术保护点】
【技术特征摘要】
1.一种集成电路,包括:衬底;以及耦合到所述衬底的硬件压缩器,用于对数据进行压缩,所述硬件压缩器包括电路,所述电路用于:将输入数据存储在历史缓冲器中,基于所述输入数据计算一个或多个码表,并且基于计算出的一个或多个码表来计算压缩流头部。2.根据权利要求1所述的集成电路,其中,所述电路还用于:为所述硬件压缩器提供多种操作模式。3.根据权利要求2所述的集成电路,其中,在一种操作模式中,所述电路还用于:响应于所述硬件压缩器的单个作业而将整个作业数据集合存储在所述历史缓冲器中,其中,所述作业数据的大小小于或等于所述历史缓冲器的大小;响应于所述单个作业,针对所述作业数据计算所述一个或多个码表;响应于所述单个作业,基于计算出的所述作业数据的一个或多个码表来计算所述压缩流头部;并且响应于所述单个作业,基于计算出的一个或多个码表和计算出的压缩流头部,为存储在所述历史缓冲器中的所述作业数据生成压缩输出数据。4.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:响应于具有超过所述历史缓冲器的大小的作业数据的所述硬件压缩器的第一作业,将计算出的一个或多个码表和计算出的压缩流头部存储到存储器;并且响应于所述硬件压缩器的第二作业,基于存储的一个或多个码表和存储的压缩流头部来为所述作业数据生成压缩输出数据。5.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:从所述输入数据读取统计信息;并且基于读取的统计信息来计算所述一个或多个码表和所述压缩流头部。6.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:在没有所述压缩流头部的情况下输出计算出的一个或多个码表。7.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:用非零值来替换可能存在的令牌的零计数值。8.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:在第一遍之后为预制代码和动态代码两者计算预期压缩大小;并且基于各个计算出的预期压缩大小中的较低结果,为第二遍加载与动态代码或预制代码相对应的一组码表和压缩流头部。9.根据权利要求2至3中任一项所述的集成电路,其中,所述电路还用于:
基于用户可配置的参数来设置最大代码长度限制。10.一种方法,包括:将输入数据存储在硬件压缩器的历史缓冲器中;由所述硬件压缩器基于所述输入数据计算一个或多个码表;以及由所述硬件压缩器基于计算出的一个或多个码表来计算压缩流头部。11.根据权利要求10所述的方法,还包括:为所述硬件压缩器提供多种操作模式。12.根据权利要求11所述的方法,其中,在一种操作模式中,所述方法还包括:响应于所述硬件压缩器的单个作业,将整个作业数据集合存储在所述历史缓冲器中,其中,所述作业数据的大小小于或等于所述历史缓冲器的大小;响应于所述单个作业,针对所述作业数据计算所述一个或多个码表;响应于所述单个作业,基于计算出的所述作业数据的一个或多个码表来计算所述压缩流头部;以及响应于所述单个作业,基于计算出的一个或多个码表和计算出的压缩流头部,为存储在所述历史缓冲器中的所述作业数据生成压缩输出数据。13.根据权利要求11至12中任一项所述的方法,其中,在一种操作模式中,所述方法还包括:响应于具有超过所述历史缓冲器的大小的作业数据的所述硬件压缩器的第一作业,将计算出的一个或多个码表和计算出的压缩流头部存...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。