我想问一个关于压缩性能的问题,它与 hdf5 文件的块大小有关。
我手头有 2 个 hdf5 文件,它们具有以下属性。它们都只包含一个数据集,称为“数据”。
文件 A 的“数据”:
- 类型:HDF5 标量数据集
- 尺寸数量:2
- 尺寸尺寸:5094125 x 6
- 最大限度。尺寸大小:无限 x 无限
- 数据类型:64位浮点
- 分块:10000 x 6
- 压缩:GZIP 级别 = 7
文件 B 的“数据”:
- 类型:HDF5 标量数据集
- 尺寸数量:2
- 尺寸尺寸:6720 x 1000
- 最大限度。尺寸大小:无限 x 无限
- 数据类型:64位浮点
- 分块:6000 x 1
- 压缩:GZIP 级别 = 7
文件 A 的大小:HDF5----19 MB CSV-----165 MB
文件 B 的大小:HDF5----60 MB CSV-----165 MB
与 csv 文件相比,它们都显示出对存储数据的极大压缩。但是文件A的压缩率大约是原始csv的10%,而文件B的压缩率只有原始csv的30%左右。
我尝试了不同的块大小以使文件 B 尽可能小,但似乎 30% 是最佳压缩率。我想问为什么文件A可以实现更大的压缩而文件B不能。
如果文件B也能实现,那么块大小应该是多少?
这是为了压缩目的确定 HDF5 的最佳块大小的任何规则吗?
谢谢!