FPC is a fast and effective lossless compressor/decompressor for IEEE 754 64-bit double-precision floating-point data.
Click here to obtain the source code. Save it in a file called
fpc.c. A description of FPC is
A line-by-line description of the source code is available here.
Sample little-endian datasets are
available here. Note
that FPC is protected by this license.
The source code in file
fpc.c can be compiled into an executable called
fpc as follows:
gcc -O3 fpc.c -o
The executable compresses/decompresses data with level x from the standard input and writes the result to the standard output. x is a positive integer that specifies the internal table size (2x+4 bytes). Larger x typically result in better compression ratios but slower processing.
To compress the file
file.in with level 20 and store the result in a file
./fpc 20 < file.in
To decompress the file
file.fpc and store the result in file
./fpc < file.fpc
Note that the raw data file has to be a multiple of 8 bytes long and must contain nothing but binary double-precision values. Only little-endian systems are supported. FPC works particularly well on 64-bit machines and on hard-to-compress data.
This work is supported in part by the Department of Energy under Grant No. DE-FG02-06ER25722.
M. Burtscher and P. Ratanaworabhan. “High Throughput Compression of Double-Precision Floating-Point Data.” 2007 Data Compression Conference, pp. 293-302. March 2007. [pdf]
M. Burtscher and P. Ratanaworabhan. “FPC: A High-Speed Compressor for Double-Precision Floating-Point Data.” IEEE Transactions on Computers, Vol. 58, No. 1, pp. 18-31. January 2009. [pdf]
Page maintained by Martin Burtscher
Last update: 20 April 2019