我在桌面应用程序中使用HDF5文件系统。我对文件内的所有数据集使用了GZIP 5级压缩。
但是仍然当我使用7zip压缩HDF5文件时,文件大小甚至减小了一半到三分之一 !!!
我正在遵循的过程是:
怎么可能?
更多压缩的范围在哪里?
如何生成更小的HDF5文件?有关使用属性(H5P)的任何建议。
我认为7zip可能会使用GZIP 9级无情地压缩我的文件,但我尝试在HDF5文件中使用GZIP 9级。新文件的大小仍然是原始文件的一半。
答案 0 :(得分:2)
gzip的最大压缩率约为1000:1。如果数据具有更高的可压缩性,则可以对其进行第二次压缩以获得更多的压缩率(第二次可以再次使用gzip压缩)。您可以对仅包含零的文件进行简单的实验:
% dd ibs=1 count=1000000 < /dev/zero > zeros
% wc -c zeros
1000000
% gzip < zeros | wc -c
1003
% gzip < zeros | gzip | wc -c
64
那么第一次压缩的压缩率是多少?
答案 1 :(得分:0)
您仅将压缩应用于HDF5文件中的数据集元素。 HDF5文件的其他组件(内部元数据和对象,例如组)未压缩。因此,当压缩整个文件时,其他那些组件也会压缩,而已经压缩的数据集元素也可能会压缩更多。