zfp is a compressed format for representing multidimensional floating-point and integer arrays. zfp provides compressed-array classes that support high throughput read and write random access to individual array elements. zfp also supports serial and parallel (OpenMP and CUDA) compression of whole arrays, e.g., for applications that read and write large data sets to and from disk.
zfp uses lossy but optionally error-bounded compression to achieve high compression ratios. Bit-for-bit lossless compression is also possible through one of zfp's compression modes. zfp works best for 2D, 3D, and 4D arrays that exhibit spatial correlation, such as continuous fields from physics simulations, natural images, regularly sampled terrain surfaces, etc. zfp compression of 1D arrays is possible but generally discouraged.
zfp is freely available as open source and is distributed under a BSD license. zfp is primarily written in C and C++ but also includes Python and Fortran bindings. zfp conforms to various language standards, including C89, C99, C11, C++98, C++11, and C++14, and is supported on Linux, macOS, and Windows.
To download zfp, type:
git clone https://github.com/LLNL/zfp.git
cd zfp mkdir build cd build cmake .. cmake --build . --config Release ctest
This builds the zfp library in the
build/lib directory and the zfp
command-line executable in the
build/bin directory. It then runs
the regression tests.
zfp may also be built using GNU make:
cd zfp make make test
Note: GNU builds are less flexible and do not support all available features, e.g., CUDA support.
For further configuration and build instructions, please consult the documentation.
The zfp project uses the
development model. Contributions should be made as pull requests on the
develop branch. Although this branch is under continuous development,
it should be robust enough to pass all regression tests.
master branch is updated with each release and reflects the most
recent official release of zfp. See the
Releases Page for a history
If you use zfp for scholarly research, please cite this paper:
For more information on zfp, please see the zfp website. For bug reports and feature requests, please consult the GitHub issue tracker. For questions and comments not answered here or in the documentation, please send e-mail to [email protected].