gpt4 book ai didi

embedded - 对于这种情况,什么是好的(解)压缩例程

转载 作者:行者123 更新时间:2023-12-02 06:29:26 28 4
gpt4 key购买 nike

我需要一个针对受限资源环境(例如具有以下特征的二进制(十六进制数据)嵌入式系统)进行优化的快速解压缩例程:

  1. 数据面向 8 位(字节)(数据总线为 8 位宽)。
  2. 字节值的范围并不统一为 0 - 0xFF,而是在每个数据集中具有泊松分布(钟形曲线)。
  3. 数据集预先固定(烧录到Flash中),每组很少> 1 - 2MB

压缩可能需要尽可能多的时间,但在最坏的情况下,一个字节的解压应该花费 23uS,内存占用最小,因为它将在像嵌入式系统(3Mhz - 12Mhz 核心,2k字节 RAM)。

什么是好的减压程序?

基本的运行长度编码似乎太浪费了 - 我可以立即看到,向压缩数据添加 header 部分以使用未使用的字节值来表示经常重复的模式将带来惊人的性能!

对于我来说,只投入了几分钟,肯定已经有来自热爱这个东西的人的更好的算法了?

我想要一些“随时可用”的示例在 PC 上进行尝试,以便我可以比较基本 RLE 的性能。

最佳答案

当性能是唯一关心的问题时,我使用的两种解决方案:

  • LZO拥有 GPL 许可证。
  • liblzf拥有 BSD 许可证。
  • miniLZO.tar.gz这是LZO,只是重新打包成更适合嵌入式开发的“缩小”版本。

两者在解压时都非常快。我发现在大多数情况下,LZO 将创建比 liblzf 稍小的压缩数据。您需要制定自己的速度基准,但我认为它们“基本上相同”。两者都比 zlib 快光年,但压缩效果都不好(正如您所期望的那样)。

LZO,特别是 miniLZOliblzf 都非常适合嵌入式目标。

关于embedded - 对于这种情况,什么是好的(解)压缩例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348479/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com