嵌入式系统核心转储的.bss和.data的8/16/32/64位无损压缩

时间:2012-10-25 20:10:01

标签: compression alignment coredump sparc lossless

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

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

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

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

该设备是Leon Sparc Softcore。

现在这个数据是几个奇怪的,表明

  1. 通常的LZW / Zlib / ...压缩库也不会这样做。 (不是自然语言语料库)。
  2. Sparcs对于对齐很着迷。即。我可以保证.bss和.data段中的每个项都是(有效地)8,16,32或64位int,相应地对应于8,16,32,64位地址边界。
  3. 我必须为压缩代码预留一个小的固定空间。
  4. 这是一台32位机器,其bss和数据段的大小远小于4GB。
  5. 系统中大多数32位值是符号的地址。即。 4 gig可能值中非常小的一部分。
  6. 我目前的计划是...... 扫描整个.bss / .data段并计算16位值的完整直方图。

    从这里我可以获得完美的霍夫曼编码。但我怀疑我可以更好地考虑32位/ 64位值的内部结构。 (例如,最重要的一半比特的可变性远远低于最低有效比特的可变性。)

    指针/建议/现有工作?

0 个答案:

没有答案