1

我正在为以下任务寻找一种快速/无损/固定间隔压缩算法。

我有一个嵌入式系统。内存/闪存资源不足。

我想为它生成一个核心转储并将结果存储在闪存中和/或通过慢速串行线路将其吸出。

我需要的只是堆、堆栈、.data 和 .bss 段以及一些内存映射寄存器。

该设备是 Leon Sparc Softcore。

现在,这些数据作为几个奇怪的数据表明

  1. 通常的 LZW / Zlib / ... 压缩库不会那么好。(不是自然语言语料库)。
  2. Sparcs 对对齐非常着迷。IE。我可以保证.bss 和 .data 段中的每个项目都是(有效地)在 8、16、32、64 位地址边界处相应对齐的 8、16、32 或 64 位 int。
  3. 我必须为压缩代码保留一个小的固定空间。
  4. 这是一台 32 位机器,其 bss 和数据段的大小远小于 4gb。
  5. 系统中的大多数 32 位值是符号的地址。IE。4 gig 可能值的一个非常小的子集。

我目前的计划是……扫描整个 .bss / .data 段并计算 16 位值的完整直方图。

由此我可以得到一个完美的霍夫曼编码。但我怀疑考虑到 32 位/64 位值的内部结构,我可以做得更好。(例如,最高有效位的可变性远小于最低有效位的可变性。)

和指针/建议/现有的工作?

4

0 回答 0