<html>
<head><title>
HDF5/H5Z API Specification
</title></head>

<body bgcolor="#FFFFFF">


<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the 
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;&nbsp;
<br>
<a href="RM_H5.html">H5</a>&nbsp;&nbsp;
<a href="RM_H5A.html">H5A</a>&nbsp;&nbsp;
<a href="RM_H5D.html">H5D</a>&nbsp;&nbsp;
<a href="RM_H5E.html">H5E</a>&nbsp;&nbsp;
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5I.html">H5I</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<br>
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
H5Z&nbsp;&nbsp;
<a href="Tools.html">Tools</a>&nbsp;&nbsp;
<a href="PredefDTypes.html">Datatypes</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr>


<center>
<h1>H5Z: Compression Interface</h1>
</center>

<h2>Compression API Functions</h2>

This function enable the user to configure a new compression
method for the local environment.

<table border=0>
<tr><td valign=top>
<ul>
    <li><a href="#Compression-Register">H5Zregister</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
    &nbsp;
</ul>
</td></tr>
</table>

<p>
HDF5 supports compression of raw data by compression methods 
built into the library or defined by an application. 
A compression method is associated with a dataset when the dataset is 
created and is applied independently to each storage chunk of the dataset. 
The dataset must use the <code>H5D_CHUNKED</code> storage layout. 
<p>
The HDF5 library does not support compression for contiguous datasets 
because of the difficulty of implementing random access for partial I/O. 
Compact dataset compression is not supported because it would not produce 
significant results.
<p>
See <a href="Datasets.html"><cite>The Dataset Interface (H5D)</cite></a> 
in the <cite>HDF5 User's Guide</cite> for further information regarding 
data compression.

<hr>
<dl>
<dt><strong>Name:</strong> <a name="Compression-Register">H5Zregister</a>
<dt><strong>Signature:</strong>
    <dd><em>herr_t</em> <code>H5Zregister</code>(<em>H5Z_method_t</em> <code>method</code>,
        <em>const char *</em><code>name</code>,
        <em>H5Z_func_t</em><code>cfunc</code>,
        <em>H5Z_func_t</em> <code>ufunc</code>
    )
<dt><strong>Purpose:</strong>
    <dd> Registers new compression and uncompression functions for a 
         method specified by a method number.
<dt><strong>Description:</strong>
    <dd><code>H5Zregister</code> registers new compression and uncompression 
         functions for a method specified by a method number, <code>method</code>.  
         <code>name</code> is used for debugging and may be the null pointer.  
         Either or both of <code>cfunc</code> (the compression function) and 
         <code>ufunc</code> (the uncompression method) may be null pointers.
         <p>
         The statistics associated with a method number are not reset
         by this function; they accumulate over the life of the library.
<dt><strong>Parameters:</strong>
    <dl>
        <dt><em>H5Z_method_t</em> <code>method</code>
            <dd>Number specifying compression method.
        <dt><em>const char *</em><code>name</code>
            <dd>Name associated with the method number.
        <dt><em>H5Z_func_t</em> <code>cfunc</code>
            <dd>Compression method.
        <dt><em>H5Z_func_t</em> <code>ufunc</code>
            <dd>Uncompression method.
    </dl>
<dt><strong>Returns:</strong>
    <dd>Returns a non-negative value if successful;
        otherwise returns a negative value.
</dl>


<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the 
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;&nbsp;
<br>
<a href="RM_H5.html">H5</a>&nbsp;&nbsp;
<a href="RM_H5A.html">H5A</a>&nbsp;&nbsp;
<a href="RM_H5D.html">H5D</a>&nbsp;&nbsp;
<a href="RM_H5E.html">H5E</a>&nbsp;&nbsp;
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5I.html">H5I</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<br>
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
H5Z&nbsp;&nbsp;
<a href="Tools.html">Tools</a>&nbsp;&nbsp;
<a href="PredefDTypes.html">Datatypes</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr>


<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a> 

<br>
Last modified:  8 September 2000
<br>
Describes HDF5 Release 1.5, Unreleased Development Branch


</body>
</html>