libPGF (Open Source)

Progressive Graphics File

Progressive Graphics File (PGF) is an image file format for natural and aerial images, which offers both lossless and lossy compression.

Because of its progressive resolution/quality enhancement, it is best suited for the Internet. Just after a few per cent of data transfer a thumbnail image is displayed. Then the resolution/quality constantly improves up to the maximum.

PGF convinces by its compression and decompression speed. The image quality remains very good thereby and is usually better than with JPEG. The lossless compression of PGF results in shorter time in smaller file sizes compared with PNG and lossless JPEG.

Facts Sheet [PDF]

Facts

The core technology is a discrete wavelet transform and a very fast and efficient compression technique. Some parts of the used technology are similar to JPEG 2000, but other parts are simpler and therefore, much faster. Both technologies, JPEG 2000 and PGF, have been developed at the same time at different places.

Due to the hierarchical structure of wavelet transforms PGF is best suited for progressive enhancing image resolution and quality during loading and visualization. This feature of progressive resolution enhancing cannot be achieved by the old JPEG standard. So, it isn’t necessary anymore to store extra thumbnail images for quick access, because reading only a few bytes of a PGF image allows visualizing such a thumbnail image very quickly. This is also an advantage for visualizing PGF images on a website.

libPGF is completely integer based and written in platform independent C++ source code. This makes a hardware implementation easier. PGF is able to fully support the 12 bit color depth of CCD and CMOS chips.

Examples

The three images show the amazing quality difference between PGF and JPEG. The first and the second image are visual representations of PGF coded images, while the third is a real JPEG image. We have measured the quality of the images with the peak signal to noise ratio (PSNR).

1st (PGF) image: compression ratio = 1:12, quality (PSNR) = 39 dB
2nd (PGF) image: compression ratio = 1:98, quality (PSNR) = 30 dB
3rd (JPEG) image: compression ratio = 1:98, quality (PSNR) = 27 dB

With PGF you obviously get a better image quality at the same compression ratio. While a PSNR of 3 dB more seems not a lot, the visual difference is huge. Check it out!