NexusCPP  3.5.0
bshuf_h5filter.h
Go to the documentation of this file.
1 /*
2  * Bitshuffle HDF5 filter
3  *
4  * This file is part of Bitshuffle
5  * Author: Kiyoshi Masui <kiyo@physics.ubc.ca>
6  * Website: http://www.github.com/kiyo-masui/bitshuffle
7  * Created: 2014
8  *
9  * See LICENSE file for details about copyright and rights to use.
10  *
11  *
12  * Header File
13  *
14  * Filter Options
15  * --------------
16  * block_size (option slot 0) : interger (optional)
17  * What block size to use (in elements not bytes). Default is 0,
18  * for which bitshuffle will pick a block size with a target of 8kb.
19  * Compression (option slot 1) : 0 or BSHUF_H5_COMPRESS_LZ4
20  * Whether to apply LZ4 compression to the data after bitshuffling.
21  * This is much faster than applying compression as a second filter
22  * because it is done when the small block of data is already in the
23  * L1 cache.
24  *
25  * For LZ4 compression, the compressed format of the data is the same as
26  * for the normal LZ4 filter described in
27  * http://www.hdfgroup.org/services/filters/HDF5_LZ4.pdf.
28  *
29  */
30 
31 
32 #ifndef BSHUF_H5FILTER_H
33 #define BSHUF_H5FILTER_H
34 
35 #define H5Z_class_t_vers 2
36 #include "hdf5.h"
37 
38 
39 #define BSHUF_H5FILTER 32008
40 
41 
42 #define BSHUF_H5_COMPRESS_LZ4 2
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 
49 extern H5Z_class_t bshuf_H5Filter[1];
50 
51 
52 /* ---- bshuf_register_h5filter ----
53  *
54  * Register the bitshuffle HDF5 filter within the HDF5 library.
55  *
56  * Call this before using the bitshuffle HDF5 filter from C unless
57  * using dynamically loaded filters.
58  *
59  */
60 int bshuf_register_h5filter(void);
61 
62 #ifdef __cplusplus
63 } // extern "C"
64 #endif
65 
66 #endif // BSHUF_H5FILTER_H
H5Z_class_t bshuf_H5Filter[1]
int bshuf_register_h5filter(void)