gpt4 book ai didi

gzip - 是否可以使用静态字典创建有效的 gzip?

转载 作者:行者123 更新时间:2023-12-03 09:25:43 31 4
gpt4 key购买 nike

我正在尝试创建有效的 gzip 文件(可以使用标准 Linux gzip 解压缩),其中的数据使用 DEFLATE 算法和静态/预设字典编码。

我已阅读 DEFLATE 的两个规范和 gzip ,而且看起来这是不可能的。据我从 DEFLATE 规范得知,压缩数据 block 有两种编码类型:

  • 使用动态字典(滑动窗口)压缩,此类 block 以 FDICT 标志设置为 0 的 header 开头。
  • 静态压缩(预设字典),FDICT = 1

但是我发现没有办法将这样的字典实际写入文件。是否可以在我的字典中添加一些 header ,或者以其他方式使 gzip 解压缩使用 FDICT = 1 编码的数据?

附注我正在尝试使用 Java 的 Deflate 类来完成它,但对以这种方式压缩的 block 的实际 gzip 支持感兴趣。

最佳答案

您混淆了两个不同的概念,所以我不确定您在谈论哪个。

有一些使用静态霍夫曼代码的 deflate block ,通常在压缩非常少量的数据时使用。通常使用动态霍夫曼代码,其中针对该特定 block 优化的代码在 block 的开头发送。对于少量数据,例如100 字节,该代码描述的开销将主导输出的大小。相反,将使用静态代码,这可以避免以较少压缩为代价的开销。但总体而言,结果较小。所有 deflate 应用程序(gzip、zlib、png 等)都支持所有 deflate block 类型。

另一个概念是预定义字典,它是预加载滑动字典的 32K 数据 block ,在滑动字典中搜索匹配的字符串。只有 zlib 支持。无法为 gzip 流提供预定义的字典。您的“deflate”链接实际上是指向 zlib 格式的链接,这是定义 FDICT 的地方。

关于gzip - 是否可以使用静态字典创建有效的 gzip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21712250/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com