Compression 字节压缩数组

Compression 字节压缩数组,compression,Compression,我的问题是: 我想在压缩文件中存储一个字节数组,然后以良好的性能读取它 所以我创建了一个字节数组,然后传递给ZLIB算法,然后将其存储在文件中。 令我惊讶的是,这个算法不太好用,可能是因为数组是一个随机样本。 使用这种方法,它将易于阅读。只需将流复制到内存中,解压缩并将其复制到字节数组中 但是我需要压缩文件。我是否必须使用诸如RLE之类的算法来压缩字节数组? 我认为我可以像字符串一样存储字节数组,然后压缩它。但我认为我在阅读数据方面的表现会很差 对不起,我的英语很差 谢谢不清楚您是指统计意义上的

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

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

但是我需要压缩文件。我是否必须使用诸如RLE之类的算法来压缩字节数组? 我认为我可以像字符串一样存储字节数组,然后压缩它。但我认为我在阅读数据方面的表现会很差

对不起,我的英语很差


谢谢

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


然而,真正的随机数据不能被压缩(很好)。事实上,压缩性是其中一个重要因素。

如果数据是随机的,它将具有很高的压缩性。没有一种算法能够成功地压缩这样的数据。也就是说,由于它是随机的,所以在特定情况下您可能会很幸运,但通常尝试压缩它是没有用的。

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

我做了一个测试。我创建了一个文件,其中存储了一个包含随机字节的字节数组。然后我试着压缩它,但没有成功。压缩效果很差。它就像一个二进制文件,这就是压缩效果差的原因?@Pedro,所有的压缩算法都是利用输入中的非随机性来工作的。因此,随机数据的压缩效果很差,所以我需要一种算法来压缩我的字节数组。我觉得这很简单。我想将我的字节数组传递给一个算法,然后接收一个新的数组或压缩流。我的文件就像一个二进制文件。我想因为它,我的压缩力很差。我没有创建字节数组的文件,而是创建整数数组的文件。然后他们压缩它。令我惊讶的是,整数数组的文件压缩得非常好!有人知道为什么吗?谢谢,我再调查一下。我使用函数random(255)创建的文件。因此,当我压缩它的大小增加。