我正在寻找一个具有公共描述和参考源代码的库(或算法)(在任何语言中都有针对32位嵌入式CPU(如Cortex-M0)的主流编译器),进行无损数据压缩(从大多数到最不关键)。
DeflaterOutputStream是理想的。有什么建议吗?
注:这个问题最初是这样问的,移民在这里强烈要求。
发布于 2021-05-27 20:04:01
看来zlib适合您的需求。真正的关键是解压缩的10 KB内存。这将限制您的回溯解压,这将限制您的压缩比。现代压缩方法,如xz,依赖于许多兆字节的回顾,以实现它们的压缩比。
您可以请求一个8 KB的滑动窗口(回首)以实现zlib的泄气,在这种情况下,解压缩程序只需要8KB,加上一些小表即可解压缩。
您可以使用puff,它位于zlib cont肋骨目录中,用于非常小的占用空间解压缩器。puff所用的解压缩时间是zlib的膨胀的2.3倍,并且大约有6KB的代码,为速度进行了优化。对空间进行了优化,它是4KB的代码,速度因子高达2.6。
即使zlib的膨胀代码(约为24‘s)也能满足您的要求。
您还可以查看zstd,它使用ANS。我没有检查是否可以指定那么小的窗口大小,也没有检查是否有可用的小内存空间解压缩器。由于不允许使用更大的窗口,所以zlib的压缩不会有大幅度的增加。
https://softwarerecs.stackexchange.com/questions/79425
复制相似问题