当使用DEFLATE将文件或目录压缩到zip文件时,什么时候应该形成一个新的压缩块?此外,由于最大代码长度是15位的泄气,当赫夫曼树超过15深度时,是否应该形成一个新的块?谢谢!
发布于 2022-05-14 11:03:37
一旦生成了选定数量的文字+长度/距离对,zlib就会发出一个紧缩块。默认情况下,这个数字是16383。它可以作为内存使用选项的一部分进行更改。最后,最后一块有剩余的东西。
zopfli试图通过制造大块并在压缩比上升的情况下分割它们,在下一次分割会使压缩比下降时停止。
您不希望放气块太小,因为描述在块中使用的代码的动态标头的大小将成为该块大小中的一个重要因素,从而降低压缩比。您不希望块太大,因为在块持续时间内固定的代码将无法适应正在压缩的数据中的本地统计变化。
至于最大深度,zlib和其他平减指数将很高兴地生成代码的深度大于15的块,按照普通的Huffman算法。然后,他们将压缩代码,使深度为15。
https://stackoverflow.com/questions/72242642
复制相似问题