首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持刷新、低资源解压缩、高密度的无损数据压缩库。

支持刷新、低资源解压缩、高密度的无损数据压缩库。
EN

Software Recommendation用户
提问于 2021-05-27 14:50:13
回答 1查看 46关注 0票数 1

我正在寻找一个具有公共描述和参考源代码的库(或算法)(在任何语言中都有针对32位嵌入式CPU(如Cortex-M0)的主流编译器),进行无损数据压缩(从大多数到最不关键)。

  1. 一种定义良好的支持同步刷新的流接口(这意味着在刷新时对已冲洗的压缩流进行解压生成完整的输入流)。在这方面,zlib很好,DeflaterOutputStream是理想的。
  2. 与嵌入式上下文兼容的解压缩。使最大10 no的数据,30 no代码,不超过10倍的速度比泄气慢。为了与解压缩资源的兼容性而限制压缩是可以的。压缩资源是次要的。
  3. 最先进的压缩比,包括JSON、XML等文本有效负载之间的小大小(0.2到20 of )。上述泄气的 朋友开始显示他们在这里的年龄。我对安斯-class算法有一个模糊的印象。
  4. 健壮的解压缩代码。我最不想看到的是,某些精心编制的压缩流会导致未指定的行为,或者是最糟糕的漏洞。兹利布氏变化显示,这并不容易。对无效压缩输入的处理良好的异常是可以的。

有什么建议吗?

注:这个问题最初是这样问的,移民在这里强烈要求。

EN

回答 1

Software Recommendation用户

回答已采纳

发布于 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的压缩不会有大幅度的增加。

票数 2
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/79425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档