gFPC v1.0

This page is an approximate mirror of

gFPC is a self-tuning compressor/decompressor written in C for binary IEEE 754 64-bit double-precision floating-point data.

Click on gFPC.c to download the source code. A description of gFPC is available here. Sample little-endian datasets are available here (in FPC format, not gFPC format). Note that gFPC is protected by this BSD License and that by downloading gFPC you agree to the terms and conditions set forth in this license.

The source code in file gFPC.c can be compiled into an executable called gFPC as follows:

gcc -O3 -std=c99 gFPC.c -o gFPC

The executable compresses/decompresses data with level x and a population size of y from the standard input and writes the result to the standard output. x is a positive integer that specifies the internal table size (2x bytes). y specifies the number of configurations tested. Larger x and larger y typically result in better compression ratios but slower processing.

To compress the file with level 14 using 4 configurations and store the result in a file called file.gfpc, enter:

./gFPC 14 4 < > file.gfpc

To decompress the file file.gfpc and store the result in file file.out, enter:

./gFPC < file.gfpc > file.out

Note that the raw data file has to be a multiple of 8 bytes long and should contain nothing but binary double-precision values. Only little-endian systems are currently supported.


M. Burtscher and P. Ratanaworabhan. "gFPC: A Self-Tuning Compression Algorithm." 2010 Data Compression Conference. March 2010. [pdf] [pptx]

M. Burtscher and P. Ratanaworabhan. "pFPC: A Parallel Compressor for Floating-Point Data." 2009 Data Compression Conference, pp. 43-52. March 2009. [pdf] [pptx]

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]

M. Burtscher and P. Ratanaworabhan. "High Throughput Compression of Double-Precision Floating-Point Data." 2007 Data Compression Conference, pp. 293-302. March 2007. [pdf] [pptx]