PCIF classes and executables

Here the program implementing the PCIF algorithm can be downloaded. This is actually realized in Java, so you will need a Java Virtual Machine to execute it, available at java.sun.com. If you have problems in executing the code, I suggest to refer to the Java documentation and tutorials. The program has been developed for the 1.4.2 JRE, and will work for this and all of the following versions, and hopefully for some of the previous ones.

The code can be run on images in the BMP format in true color. It will not run on greyscale images or paletted images; you can make it work for this type of data converting it to a 24-bit BMP with an image editor, but since the algorithm is developed for true color then results may be worst, expecially for the palette case. You can also use the algorithm for images in other formats (like PNG) but you will have to tranform them previously into BMP files with some other software.

Finally, note that even if the pcif format will maintain all the information in the original BMP file, it will not be able to store extra data supported by other formats, as an alpha channel or image meta data. Consequently if you want to compare the compressed sizes of the resulting files, you should be sure that images in other formats do not contain these extra informations.

Before downloading any of the files available on this site you must have read and accepted in all its terms the agreement about the PCIF software.

In the implemented program, often the pcif files and algorithms are referred as pcf, that is their former name.

Executable jars for win32 (Windows 95 and following)

Download: pcfJarWin32.zip
Download: pcfViewerJarWin32.zip

These archives contains an executable jar file for the pcf encoder for Windows. The jar files have been wrapped into an exe file thanks to JSmooth, a GPL jar to exe converter. When you execute the pcf program it will search for the JVM on your system and use it to execute the embedded Java code. Running this file is equivalent to calling Java on the pcf class, but it is probably a bit more confortable. Even being an exe, this file will not allow you to execute the program without a JVM.

For the usage of the program and a complete list of options refer to the documentation section. Some basic examples may be the following:

  pcf image.bmp image.pcf
Compression of an image in pcf; operation to do is automatically detected by file extension and order.
  pcf image.pcf
Decompression of image 'image.pcf', for default to file image.bmp, overwritten if already existing.
  pcfViewer image.pcf
For the visualization of an image

Since the wrapped viewer actually suppresses textual output, if you use it for a corrupted pcf file it will not open it but it will neither give an error; in this case try calling the pcf program for that file with the -view option to individuate the problem

You can also open automatically pcf (or pcif) files setting to open them automatically with the pcf viewer. To do this do the following steps:

  1. Open My Computer or Windows Explorer, right-click on a pc(i)f file and select open with
  2. Click Choose Program from the popped-up menu
  3. Select the 'Always use the selected program to open this kind of file' check box, if not already selected.
  4. Click Browse, and locate and chose the pcfViewer.exe file.
  5. Ok

It would also be nice to create some exe wrappers for Linux or other operating systems, but no free tools for this purpose have been actually found. If you know one of them I'll be grateful if you drop me a line.

PCIF classes

Download: pcfClasses.zip

A zip file containing the classes realizing compression and decompression for the pcif algorithm. Two classes represent the interface for the user:

  1. pcf.pcf.class is the class for compression and decompression.
  2. pcf.pcfViewer.class is an elementar demonstrative viewer to visualize files in the pcif format.

The sintax of the pcf and pcfViewer command is identical to that described above. The only difference is that java must be invoked to run the class file, as in the following example:

 java pcf.pcf image.bmp

The path and classpath variables must be set for the command to run; if you have problems with this you can find help on java.sun.com

PCIF classes: jar file

Download: pcf.jar

The Java Archive File containing the classes necessary to the program. They can be run exactly as described above, but adding this jar file to the classpath (again, you can eventually visit java.sun.com for help). An example of usage:

 java -classpath pcf.jar pcf.pcf image.bmp
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.