The BCIF image compression algorithm


BCIF whitepaper

Imagemagick converter (integrates with the BCIF GUI to convert from other formats than BMP)

Homepage of the author

Other image compression algorithms

The PCIF algorithm

The Jpeg2000 format

Kakadu: a Jpeg2000 implementation

The LOCO (Jpeg-LS) algorithm

Char-LS: a Jpeg-LS implementation

The PNG standard


The Waterloo image set

The Kodak image set

I.C.I. image set

Squeezechart: compression benchmarking

The BCIF compression algorithm is an open source method for lossless image compression, derived in part from the older PCIF algorithm, developed in 2010-2011 by Stefano Brocchi. It can be used to compress and decompress an image any number of times without losing quality, as it would happen in the widespread lossy JPEG format. The algorithm has been designed to be fast, in particular in the decompression phase, in order to obtain a superior compression and to decompress in a very short time the encoded images. BCIF is described in this LNCS whitepaper.

The BCIF algorithm has been compared to the main lossless compression algorithms that have become a standard: the PNG format and the lossless modes of JPEG2000 and JPEG-LS. Test on various image sets can be found in the benchmarks section; the BCIF algorithm greatly outperforms PNG and also beats the compression ratios of the JPEG standards, especially in computer generated and high edged images. For a comparison with other newer research algorithms, the author recommends to check some third party benchmarking charts, of which Squeezechart is an excellent example.

The implementation of the BCIF algorithm is released under the GPL license, and hence it can be downloaded and used for free. As written in the license, the software comes on an 'as is' basis, and the author does not hold any responsibility for its use or misuse.

The implementation of the algorithm has been released as open source, and is available both in Java and C++. Thanks to the Java implementation, the BCIF JAR binaries run on any system with Java installed, and they give the possibility to include BCIF files in a website and to visualize them with an applet. Also available for download, a BCIF image viewer and a GUI for BCIF encoding and decoding. The C++ implementation allows to experiment the potential of BCIF regarding compression and decompression speed. A native executable has been released for Windows; for other platforms, binaries can be obtained by compiling on the spot the source code.

Questions, feature requests, feedback, bug reports ? Write to

BCIF Graphical User Interface - 1.0 beta (Java)

Slow, but cross-platform and with a nice GUI.

This GUI implemented in Java allows to visualize, compress and decompress BCIF image files. Input files must be true color BMPs, but conversion from other formats is possible through imagemagick's convert tool. Requires Java.

BCIF GUI download

BCIF viewer and command line encoder - 1.0 beta (Java)

Use to open BCIF files, or to compress/decompress from command line.

A viewer for BCIF files that can also be used as a command line utility for compression and decompression. Requires Java.

BCIF viewer download

BCIF native command line encoder for Windows - 1.0 beta

Compress and decompress BCIF files at the maximum speed !

An highly optimized implementation of BCIF in C++ created to allow compression and decompression of BCIF files at high speed.

BCIF native command line download

BCIF user manual - 1.0 beta

How to, supported formats and known issues

A brief user for both the Java and native releases of BCIF. Describes the program options, the supported formats and some known issues. Also included in the program downloads.

BCIF documentation download

BCIF source code - 1.0 beta

Compile on the spot the source code.

The source code of the implementation of BCIF, released as open source. Both Java and C++ versions included.

BCIF source code download