可以在没有 RAM 的情况下虚拟工作的解压缩算法(LZ 如果可能的话)

decompression algorithms that can work virtually without RAM (LZ like if possible)

编辑:我试着重新措辞,以便尽我所能使它更清楚:)

我需要找到一种合适的方法/选择一种合适的压缩方式来在 ROM 中存储大量数据(比如大约 900KB),而可用的可用空间 space 只有大约 700KB。如果我使用一些现代压缩工具(例如 WinZIP/WinRAR)压缩 blob,我可以轻松实现所需的压缩。

这里的问题是解压缩将在非常非常 有限的硬件上进行,我无法承受超过几个字节的可用 RAM(说不超过 100 个字节,为了它)。

我已经尝试过对数据进行 RLE 处理...数据几乎没有压缩。

虽然我正在尝试更改数据 blob 格式,以便它可能具有更多冗余并实现更好的压缩率,但同时我也在寻找一种压缩方法,使我能够解压缩我的硬件有限。我对压缩算法的了解有限,所以我正在寻求 suggestions/pointers 继续我的搜索。

谢谢!

原问题是"I need info/pointers on decompression algorithms that can work without using the uncompressed data, as this will be unavailable right after decompression. LZ like approaches would still be preferred."

恐怕这是题外话,因为太宽泛了。

LZW 使用了一个相当大的状态,这与保留一片未压缩数据没有太大区别。即使状态是恒定的并从 ROM 中读取,仅用寄存器处理它似乎也很困难。有许多不同的算法可以使用恒定状态,但如果你真的没有内存,那么只能使用最基本的算法。

查找 RLE,运行 长度编码。

编辑: 好的,没有滑动 window,但是如果你可以访问 ROM,100 字节的 RAM 会给你相当多的可能性。你想在汇编中实现它,所以坚持使用非常简单的算法。 RLE 加字典。根据您的要求,算法的选择应基于您需要解压缩的数据类型。