为什么即使所有数据集都压缩在文件中,压缩 HDF5 文件仍能获得大量压缩?
Why zipping HDF5 file is still getting a good amount of compression even if all datasets are compressed inside the file?
我在桌面应用程序中使用 HDF5 文件系统。我对文件中的所有数据集使用了 GZIP 5 级压缩。
但仍然当我使用 7zip 压缩 HDF5 文件时,文件大小变得更小了大约一半到三分之一!!!
我遵循的过程是:
- 正在生成 HDF5 文件。
- 正在导入文件中的数据。
- 使用 h5repack 实用程序释放下落不明的 space,如果有的话。
- 我使用 7zip 将文件压缩为 .zip
怎么可能?
压缩的范围在哪里?
如何生成更小的HDF5文件?关于使用 属性(H5P).
的任何建议
我认为 7zip 可能会使用 GZIP 级别 9 无情地压缩我的文件,但我尝试在我的 HDF5 文件中使用 GZIP 级别 9。新文件大小仍然是原来的一半。
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
那么你第一次压缩的压缩比是多少?
您仅对 HDF5 文件中的数据集元素应用压缩。 HDF5 文件的其他组件(内部元数据和组等对象)未压缩。因此,当您压缩整个文件时,其他组件也会压缩,并且已经压缩的数据集元素也可以压缩更多。
我在桌面应用程序中使用 HDF5 文件系统。我对文件中的所有数据集使用了 GZIP 5 级压缩。
但仍然当我使用 7zip 压缩 HDF5 文件时,文件大小变得更小了大约一半到三分之一!!!
我遵循的过程是:
- 正在生成 HDF5 文件。
- 正在导入文件中的数据。
- 使用 h5repack 实用程序释放下落不明的 space,如果有的话。
- 我使用 7zip 将文件压缩为 .zip
怎么可能?
压缩的范围在哪里?
如何生成更小的HDF5文件?关于使用 属性(H5P).
的任何建议我认为 7zip 可能会使用 GZIP 级别 9 无情地压缩我的文件,但我尝试在我的 HDF5 文件中使用 GZIP 级别 9。新文件大小仍然是原来的一半。
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
那么你第一次压缩的压缩比是多少?
您仅对 HDF5 文件中的数据集元素应用压缩。 HDF5 文件的其他组件(内部元数据和组等对象)未压缩。因此,当您压缩整个文件时,其他组件也会压缩,并且已经压缩的数据集元素也可以压缩更多。