c++ - 仅在 zlib c++ 库中强制动态编码
问题描述
我想知道是否可以强制 zlib 库(c++)仅在动态 huffman 中编码压缩文件(没有文字或固定)。我正在查看 zlib 手册中的 Advance Functions,在deflateInit2,
它下面有以下参数可供选择:
- 196 #define Z_FILTERED 1
- 197 #define Z_HUFFMAN_ONLY 2
- 198 #define Z_RLE 3
- 199 #define Z_FIXED 4
- 200 #define Z_DEFAULT_STRATEGY 0
我正在使用默认策略,但在达到一定的文件大小时,它会开始生成静态霍夫曼编码。将其更改为 huffman_only 会确保所需的行为吗?是否有可能只保证动态编码?我正在使用它来测试我的自建解压器。谢谢你。
解决方案
zlib 没有强制仅动态块的选项。Huffman-only 不能保证这一点,因为存储的块对于随机数据会更小。
推荐阅读
- eclipse - 从 Java servlet 通过 JDBC 连接到 MySQL 时,尽管添加到构建路径,但 Eclipse 无法找到 JDBC 驱动程序
- ios - 如何为ios模拟器设置代理?
- python - Spyder中的Ipython控制台不使用环境定义的Python版本
- c - 在 C 中测量经过的时间?
- javascript - 如何避免“无效的配置对象。Webpack 已使用与 API 模式不匹配的配置对象进行初始化。”
- r - R:列表到数据框映射功能
- java - 即使指定的模式是点,DecimalFormat 也使用逗号分隔符
- javascript - 如何使用 Angular 9 将多个图像文件和 PDF 文件合并为单个 PDF
- qt - 一次取消选中/选中所有复选框
- java - 如何在 Java 中制作 Material Exposed Drop Down List 必填字段