PCIF documentation

On this page the documentation for the algorithm and the program that implements it. For any question regarding the polyomino compressed format you can also contact the author.


PCIF specification

Download: PCIF 1.1 documentation (pdf), version 0.1

The PCIF algorithm documentation, comprehensive of the file specification, referring to version 1.1; the actual document is a development version. The file often refers to the source code of the actual reference implementation available in the site.


The PCIF algorithm and program in detail (in italian)

Download: Un_algoritmo_per_la_compressione_di_immagini_senza_perdita.pdf

The thesis regarding the pcif algorithm, in italian. The translated title would be 'A lossless image compression algorithm'. This includes the following:

  • Chapter 1: Intruduction, description of elementary compression tecniques (RLE, Huffman or arithmetic coding, LZW) and brief description of some tecniques used in other compressed image formats (GIF, PNG, JPeg)
  • Chapter 2: Definition of the algorithm and specification of the pcif file format
  • Chapter 3: Description of the choices for optimality done by the algorithm. Realization of the program: project, class interaction, optimization.
  • Chapter 4: Testing and benchmarking of the algorithm.
  • Appendix: A complete step-by-step example of the application of the algorithm on the famous lenna image.

The PCIF program manual

View: PCF and pcfViewer syntax

This page describes the syntax of the pcf interfaces and how this can be used to manipulate the various options.


Javadocs for the PCIF classes

Download: pcfJavadocs.zip
View online: Pcf Javadocs index

Javadocs for the entire PCF project to allow an easy comprehension of how this works and how classes interact one with another. These have been written quite briefly but should be clear.


Class scheme and interaction PCIF classes

View online: Class interaction scheme

A page where the various class interaction are illustrated and briefly explained. Usefull if you are thinking to interact with the classes in a different way than from the user interface.

The evolution of the PCIF algorithm is now available ! It has a greater compression ratio, it is much faster and the implementation is available in both Java bytecode and native executables. Take a look at the new BCIF algorithm.