【发布时间】:2014-06-27 12:32:17
【问题描述】:
鉴于唯一的 uint32 数组是一个有序的固定宽度的序列,并且它的大小可以从一万到一百万不等,有哪些选项可以将其压缩到最小大小?
【问题讨论】:
-
如果您知道有多少个数字,则可以使用 Golomb 编码,如果数字是随机的(但已排序),这是最佳选择。见stackoverflow.com/questions/12664432/…
标签: algorithm compression
鉴于唯一的 uint32 数组是一个有序的固定宽度的序列,并且它的大小可以从一万到一百万不等,有哪些选项可以将其压缩到最小大小?
【问题讨论】:
标签: algorithm compression
首先用第一个值的注释和连续值之间的差异数组替换它。最简单的做法是在差异数组上运行一些通用压缩算法,例如 zip。如果您想从头开始做某事,您可以尝试将差异编码为 http://en.wikipedia.org/wiki/Elias_omega_coding,然后在结果上使用 http://en.wikipedia.org/wiki/Huffman_coding,将其视为字节流或 16 位值流。
【讨论】: