使用 LZMA 编码信息流

Use LZMA to codificate a stream of information

教授给了我一篇研究论文,展示了一种有效压缩某种数据的方法。 不值得解释完整的算法,因为问题不是关于那个,我只是介绍一个小例子,应该让你理解真正的问题是什么。

我们的压缩算法有自己的字典,是一个table(不管怎么算,假设compressor和decompressor都有),每table行有一个字符串。 为了压缩消息,压缩器将打开它并从头开始,它将在字典中搜索匹配项并最终发送带有行 ID 的 MATCH 消息,如果没有找到,则带有要设置的消息的 SET 消息是发送。 请注意,MATCH 不必真正完全匹配,它们后面可以跟许多 MISSMATCH 消息,每个消息包含字节偏移错误和正确字节。

例如,压缩器可能想要编码:

现在,他们在论文中说他们使用 LZMA 对 "stream" 数据进行熵编码,他们认为这是一件微不足道的事情,没有提供更多细节。

我在网上搜索过,但没有找到任何答案。您知道如何完成最后一步吗?有参考资料吗?

作为这个开源项目的一部分,有一个使用 LZMA 的预设字典的流压缩算法:Zip-Ada。预设词典在那里被调用 "training data".