关于某些数字组的可压缩性的问题

时间:2011-04-07 02:37:29

标签: compression data-compression

假设我们有一堆数字从较大的偏移量中以小值递增

例如offset = 123456789

我们的数字是: 123456790 123456791 123456793 123456796 123456799 123456804

如果我们从这些数字中减去偏差,我们得到 1 2 4 7 10 15

数字将与8个字节的其他数据一起存储,共计12个其他字节,然后一组10000个将被压缩在一个块中

所以如果我们将这些数字存储为32位整数并压缩它们,如果我们使用第二组数字它们会压缩得更好吗?或者因为它们包含相同数量的熵,它们将完全相同地压缩?

因为我的工作伙伴立即响应是第二组会压缩得更好,因为第二组中的32位数会有很多零,但熵是相同的(我认为)所以一般压缩算法无论如何都没有计算出来并产生类似的压缩比?

最终,我认为我必须对此进行试验以了解结果是什么,但我很想知道要事先弄明白。

1 个答案:

答案 0 :(得分:3)

这称为delta encoding。根据数据的具体情况,这可能会为您提供更好的压缩效果。也可以获得更直接的节省:例如,如果您确定相邻元素之间的差异永远不会超出0-255范围,则可以将增量存储为单个字节而不是32位整数