预设字典是否仅对前 32 K 字节的数据有用?
Is preset dictionary is only useful for first 32 K bytes of data ?
我只是想在我的压缩器和解压缩器中使用预设字典。我读到 here 预设字典仅对前 32K 字节的数据有帮助,之后最新的 32K 数据用作字典。是真的吗?我在这里错过了什么吗?
是的,预设字典用作在实际压缩输入之前处理的解压缩程序的虚拟输入,因此它可以使用压缩代码复制其中的一部分。
zlib 的 deflate 算法使用最大 32 KB 大小的 window 来引用之前解压缩的字节 - 这个 window 的部分内容和字节文字都是它可以用于解压缩的。预置字典只是初始化了这个window,但是真正解压出来的数据会有"shifted out",所以只有前32K字节的数据可以使用预置字典的递减部分。
我只是想在我的压缩器和解压缩器中使用预设字典。我读到 here 预设字典仅对前 32K 字节的数据有帮助,之后最新的 32K 数据用作字典。是真的吗?我在这里错过了什么吗?
是的,预设字典用作在实际压缩输入之前处理的解压缩程序的虚拟输入,因此它可以使用压缩代码复制其中的一部分。
zlib 的 deflate 算法使用最大 32 KB 大小的 window 来引用之前解压缩的字节 - 这个 window 的部分内容和字节文字都是它可以用于解压缩的。预置字典只是初始化了这个window,但是真正解压出来的数据会有"shifted out",所以只有前32K字节的数据可以使用预置字典的递减部分。