压缩格式:类型块之间的差异

时间:2018-11-10 21:08:50

标签: c deflate

我目前正在尝试编写与RFC Deflate规范相同目的的压缩器和解压缩器。

我无法理解固定表和动态表在压缩中如何构成块之间的区别。该文件由LZ77处理,生成many1

  • 我如何知道块的类型?
  • 我是否必须压缩这些数据?
  • 鉴于我使用固定压缩方式,而不必发送表,那么编码器将如何知道如何对数据进行编码?
  • 此外,在执行实际压缩之前,我是否必须发送数据?

我对固定表和动态模式下发送的表之间的区别以及两个块如何使用它们编码数据感到困惑。

我正在阅读数据压缩:完整参考。任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

由于要压缩,因此请选择两者中较小的一个。 zlib的deflate计算固定块,动态块和存储块的大小,并发出这三个中最小的一个。

如果要对固定块进行编码,则可以使用固定代码对文字/长度和距离进行编码。该代码在RFC中提供。