HDF5 requires you to use chunking to create a compressed dataset. (To use chunking efficiently, be sure to see the advanced topic, Chunking in HDF5.)
The following operations are required in order to create a compressed dataset:
For more information on compression, see the FAQ question on Using Compression in HDF5.
The H5Pset_chunk / h5pset_chunk_f call modifies a Dataset Creation Property List instance to store a chunked layout dataset and sets the size of the chunks used.
The H5Pset_deflate call modifies the Dataset Creation Property List instance to use ZLIB or DEFLATE compression. The H5Pset_szip call modifies it to use SZIP compression. There are different compression parameters required for each compression method.
SZIP compression can only be used with atomic datatypes that are integer, float, or char. It cannot be applied to compound, array, variable-length, enumerations, or other user-defined datatypes. The call to H5Dcreate will fail if attempting to create an SZIP compressed dataset with a non-allowed datatype. The conflict can only be detected when the property list is used.
There are restrictions for use of SZIP by commercial users. See the documents at SZIP Compression in HDF5 for further information on SZIP, including the SZIP copyright notice.