HDF5 scale-offset filter
The HDF5 scale-offset filter reduces per-chunk numeric storage using an offset and a precision setting whose meaning differs between integer and floating-point data.
Integer precision: the parameter selects retained bits; zero requests an automatically selected lossless bit count. Floating-point zero is not a lossless setting, and decimal-place precision is not a significant-digit count. [1]
Fill boundary: the HDF Group warns that floating-point values near zero can interact with default fill zero. A h5py 3.15.0 / HDF5 1.14.6 fixture returns 0.009 as zero with scaleoffset=2; moving the sentinel changes which neighborhood is affected. This is a version-scoped observation, not a new vulnerability or incidence estimate. [3] [5]
Integrity: the high-level h5py API rejects pairing scale-offset and Fletcher32. A diagnostic low-level pipeline can check already transformed bytes without restoring discarded precision; preserve the API guard. NaN and infinities have no preservation guarantee with scale-offset. [2] [4]
Relations
- related
- HDF5, HDF5 chunked layout, HDF5 fill value, Checksum
Citations
- h5py 3.15.0 create_dataset: scale-offset precision and Fletcher32 restriction
- h5py 3.15.0 filters.py: high-level scale-offset/Fletcher32 guard
- HDF Group dataset guide: scale-offset floating-point suggestions
- h5py 3.15.0 dataset guide: scale-offset, special values and Fletcher32
- Hesela: 26 scale-offset round-trip configurations and limits