S to lz:LZ77:存储格式(lz77)

我开始编写一个小程序,允许使用 LZ77 压缩算法压缩单个文件。它工作正常。现在我正在考虑如何存储数据。在 LZ77 中,压缩数据由一系列三元组组成。每个三元组具有以下格式:
<"start reading at n. positions backwards", "go ahead for n. positions", "next character">
存储这些三元组的正确方法是什么?我想了想:& lt;11,5,8 & gt;位,

向后看的 2048 个位置

匹配字符串的最大长度为 32

下一个字符是 1 个字节。

这种格式在文本压缩中效果很好,但对于我的目的(由二进制图像组成的视频)来说很糟糕,如果与原始文件大小相比,它也会增加大小。

1

我认为你的意思更像是:& lt;返回 n,复制 k,插入文字字节 & gt;。

您需要查看匹配的统计信息。您可能会得到许多零长度匹配的文字字节。对于这种情况,一个好的开始是使用单个位来决定匹配和不匹配。如果位是一,则它后面跟着距离、长度和文字字节。如果是零,则它后面只有一个文字字节。

您可以通过 Huffman 编码文字,长度和距离来做得更好。长度和文字可以像 deflate 一样组合成一个代码,甚至可以删除一个位。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(223)
Ipad第七代:是否有可能仍然开发第一代iPadiOS5.1.1
上一篇
C30混凝土水泥用量多少:Android内存使用量:多少是太多了
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(79条)