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



编辑:我试着把它重新表述为尽我所能让它更清晰:)

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

这里的问题是,解压缩将在一个非常非常very有限的硬件上进行,在这个硬件上,我负担不起超过几个字节的可用RAM(比如说,不超过100字节)。

我已经试过读取数据了。。。数据很难压缩。

当我试图更改数据blob格式,使其具有更多冗余并实现更好的压缩比时,我同时也在寻找一种压缩方法,使我能够在有限的硬件上进行解压缩。我对压缩算法的了解有限,所以我正在寻求建议/指针来继续我的搜索。

谢谢!

最初的问题是"我需要关于解压缩算法的信息/指针,这些算法可以在不使用未压缩数据的情况下工作,因为这在解压缩后将不可用。类似LZ的方法仍然是首选。"

恐怕这太宽泛了。

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

查找RLE,行程长度编码。

编辑:好的,没有滑动窗口,但如果你可以访问ROM,100字节的RAM会给你一些可能性。你想在汇编中实现这一点,所以坚持使用非常简单的算法。RLE加一本字典。考虑到您的需求,算法的选择应该基于需要解压缩的数据类型。

相关内容

最新更新