zlib inflate CHUNK大小必须与通货紧缩中使用的大小相同?

时间:2013-06-11 18:43:45

标签: zlib inflate

我按照http://zlib.net/zlib_how.html中的zlib inflate示例来解压缩压缩文件。即使我将CHUNK大小定义为256KB,我看到每个inflate()函数调用的输出数据只有8KB。我知道使用8K的CHUNK大小来压缩压缩文件,这是否意味着zlib inflate的CHUNK大小必须与通货紧缩中使用的大小相同?

如果是,在不更改源文件的情况下,无论如何都要加速解压缩?使用8K的CHUNK大小进行解压缩是很慢的。

1 个答案:

答案 0 :(得分:0)

不,块大小不必相同。可以使用任何块大小通过膨胀来解码有效的deflate流。

  

即使我将CHUNK大小定义为256KB,我也看到了输出数据   每个inflate()函数调用只有8KB。

根据评论中的讨论,您没有单个的deflate流,而是一系列小的deflate流的串联。请进行充气,每次完成流时都需要重新启动充气过程,Z_STREAM_END返回inflate()表示该流。使用inflateReset()代替inflateEnd()后跟inflateInit(),因为这可以节省时间并避免不必要的释放和内存分配。

除此之外,没有办法加速减压。