字节压缩数组

时间:2010-06-05 14:52:38

标签: compression

我的问题是: 我想在压缩文件中存储一个字节数组,然后我想以良好的性能读取它。

因此,我创建一个字节数组,然后传递给ZLIB算法,然后将其存储在文件中。 令我惊讶的是,该算法效果不佳,可能是因为该数组是随机样本。 使用这种方法,它将很容易阅读。只需将流复制到内存,解压缩并将其复制到一个字节数组。

但我需要压缩文件。我是否必须使用像RLE这样的算法来压缩字节数组? 我认为我可以像字符串一样存储字节数组然后压缩它。但我认为我在阅读数据时表现不佳。

抱歉我的英语很差。

谢谢

3 个答案:

答案 0 :(得分:1)

目前尚不清楚您是指统计意义上的“随机样本”(随机选择的实际数据样本),还是随机生成的数据。第一个应该压缩好。

然而,真正的随机数据无法压缩(好)。事实上,压缩性是measures of randomness之一。

答案 1 :(得分:1)

如果数据是随机的,则它将具有高entropy。没有可以压缩这些数据的算法取得了很大的成功。也就是说,因为它是随机的,你可能会对特定情况感到幸运,但通常尝试压缩它是没用的。

答案 2 :(得分:0)

您确定需要压缩随机数据吗?如果您知道什么是数据源以及可用于选择和优化压缩算法的其他规范,则可以实现最佳压缩。首先你的阵列有多大?如果这是字符值,则每个字母的频率存在差异。如果此数组已排序或具有唯一值,则还可以使用此数组来优化空间。那么你的数据来源是什么?