SPDP v1.1

SPDP is a compression/decompression algorithm that is tailored towards binary IEEE 754 32-bit single-precision (float) and 64-bit double-precision (double) floating-point data but also works on other data. A compression filter for HDF5 that is based on the SPDP algorithm is available here.

Click on SPDP_11.c to download the source code. A description of the SPDP algorithm is available here. Sample little-endian double-precision datasets are available here. Sample little-endian single-precision datasets are available here. Note that SPDP is protected by the license included in the beginning of the code.

The source code can be compiled as follows:

gcc -O3 SPDP_11.c -o spdp

To compress the file floating_point.bin with a compression level of 5 and store the compressed output in the file floating_point.spdp, enter:

./spdp 5 < floating_point.bin > floating_point.spdp

The supported compression levels go from 0 (faster with a lower compression ratio) to 9 (slower with a higher compression ratio).

To decompress the file floating_point.spdp and store the decompressed output in the file floating_point.org, enter:

./spdp < floating_point.spdp > floating_point.org

This work has been supported in part by the National Science Foundation under Grant No. 1217231.

Official Texas State University Disclaimer