Frequent Links
Progressive Graphics File

File:LibPGF.PNG  
Filename extension 
.pgf 

Magic number 
504746 h (ASCII PGF) 
Developed by  xeraina GmbH 
Initial release  2000 
Latest release 
6.14.12 (2014 ) 
Type of format  waveletbased bitmapped image format 
Extended from  JPEG, PNG 
Open format?  LGPLv2^{[1]} 
PGF (Progressive Graphics File) is a waveletbased bitmapped image format that employs lossless and lossy data compression. PGF was created to improve upon and replace the JPEG format. It was developed at the same time as JPEG 2000 but with a focus on speed over compression ratio.^{[citation needed]}
PGF can operate at higher compression ratios without taking more encoding/decoding time and without generating the characteristic "blocky and blurry" artifacts of the original DCTbased JPEG standard.^{[2]} It also allows more sophisticated progressive downloads.^{[citation needed]}
Contents
Color models
PGF supports a wide variety of color models:^{[citation needed]}
 Grayscale with 1, 8, 16, or 31 bits per pixel
 Indexed color with palette size of 256
 RGB color image with 12, 16 (red: 5 bits, green: 6 bits, blue: 5 bits), 24, or 48 bits per pixel
 ARGB color image with 32 bits per pixel
 L*a*b color image with 24 or 48 bits per pixel
 CMYK color image with 32 or 64 bits per pixel
Technical discussion
PGF claims to achieve an improved compression quality over JPEG adding or improving features such as scalability. Its compression performance is similar to the original JPEG standard. Very low and very high compression rates (including lossless compression) are also supported in PGF. The ability of the design to handle a very large range of effective bit rates is one of the strengths of PGF. For example, to reduce the number of bits for a picture below a certain amount, the advisable thing to do with the first JPEG standard is to reduce the resolution of the input image before encoding it — something that is ordinarily not necessary for that purpose when using PGF because of its wavelet scalability properties.
The PGF process chain contains the following four steps:
 Color space transform (in case of color images)
 Discrete Wavelet Transform
 Quantization (in case of lossy data compression)
 Hierarchical bitplane runlength encoding
Color components transformation
Initially, images have to be transformed from the RGB color space to another color space, leading to three components that are handled separately. PGF uses a fully reversible modified YUV color transform. The transformation matrices are:
 <math>
\begin{bmatrix} Y_r \\ U_r \\ V_r \end{bmatrix} = \begin{bmatrix} \frac{1}{4} & \frac{1}{2} & \frac{1}{4} \\ 1 & 1 & 0 \\ 0 & 1 & 1 \end{bmatrix} \begin{bmatrix} R \\ G \\ B \end{bmatrix}; \qquad \qquad \begin{bmatrix} R \\ G \\ B \end{bmatrix} = \begin{bmatrix} 1 & \frac{3}{4} & \frac{1}{4} \\ 1 & \frac{1}{4} & \frac{1}{4} \\ 1 & \frac{1}{4} & \frac{3}{4} \end{bmatrix} \begin{bmatrix} Y_r \\ U_r \\ V_r \end{bmatrix} </math>
The chrominance components can be, but do not necessarily have to be, downscaled in resolution.
Wavelet transform
The color components are then wavelet transformed to an arbitrary depth, in contrast to JPEG 1992 which uses an 8x8 blocksize discrete cosine transform. PGF uses one reversible wavelet transform: a rounded version of the biorthogonal CDF 5/3 wavelet transform. This wavelet filter bank is exactly the same as the reversible wavelet used in JPEG 2000. It uses only integer coefficients, so the output does not require rounding (quantization) and so it does not introduce any quantization noise.
Quantization
After the wavelet transform, the coefficients are scalarquantized to reduce the amount of bits to represent them, at the expense of a loss of quality. The output is a set of integer numbers which have to be encoded bitbybit. The parameter that can be changed to set the final quality is the quantization step: the greater the step, the greater is the compression and the loss of quality. With a quantization step that equals 1, no quantization is performed (it is used in lossless compression). In contrast to JPEG 2000, PGF uses only powers of two, therefore the parameter value i represents a quantization step of 2^{i}. Just using powers of two makes no need of integer multiplication and division operations.
Coding
The result of the previous process is a collection of subbands which represent several approximation scales. A subband is a set of coefficients — integer numbers which represent aspects of the image associated with a certain frequency range as well as a spatial area of the image.
The quantized subbands are split further into blocks, rectangular regions in the wavelet domain. They are typically selected in a way that the coefficients within them across the subbands form approximately spatial blocks in the (reconstructed) image domain and collected in a fixed size macroblock.
The encoder has to encode the bits of all quantized coefficients of a macroblock, starting with the most significant bits and progressing to less significant bits. In this encoding process, each bitplane of the macroblock gets encoded in two socalled coding passes, first encoding bits of significant coefficients, then refinement bits of significant coefficients. Clearly, in lossless mode all bitplanes have to be encoded, and no bitplanes can be dropped.
Only significant coefficients are compressed with an adaptive runlength/Rice (RLR) coder, because they contain long runs of zeros. The RLR coder with parameter k (logarithmic length of a run of zeros) is also known as the elementary Golomb code of order 2^{k}.
Comparison with other file formats
 JPEG 2000 is slightly more spaceefficient in handling natural images. The PSNR for the same compression ratio is on average 3% better than the PSNR of PGF. It has a small advantage in compression ratio but longer encoding and decoding times.^{[2]}
 PNG (Portable Network Graphics) is more spaceefficient in handling images with many pixels of the same color.
There are several selfproclaimed advantages of PGF over the ordinary JPEG standard:^{[2]}
 Superior compression performance: The image quality (measured in PSNR) for the same compression ratio is on average 3% better than the PSNR of JPEG. At lower bit rates (e.g. less than 0.25 bits/pixel for grayscale images), PGF has a much more significant advantage over certain modes of JPEG: artifacts are less visible and there is almost no blocking. The compression gains over JPEG are attributed to the use of DWT.
 Multiple resolution representation: PGF provides seamless compression of multiple image components, with each component carrying from 1 to 31 bits per component sample. With this feature there is no need for separately stored preview images (thumbnails).
 Progressive transmission by resolution accuracy, commonly referred to as progressive decoding: PGF provides efficient codestream organizations which are progressive by resolution. This way, after a smaller part of the whole file has been received, it is possible to see a lower quality of the final picture, the quality can be improved monotonically getting more data from the source.
 Lossless and lossy compression: PGF provides both lossless and lossy compression in a single compression architecture. Both lossy and lossless compression are provided by the use of a reversible (integer) wavelet transform.
 Side channel spatial information: Transparency and alpha planes are fully supported
 ROI extraction: Since version 5, PGF supports extraction of regions of interest (ROI) without decoding the whole image.
Available software
The author published open sources for libPGF developers as SourceForge project libPGF.^{[1]} Xeraina offers a free Photoshop .8bi
file format plugin, a Win32 console encoder and decoder, and PGF viewers based on WIC for 32bit and 64bit Windows platforms. Other WIC applications including Photo Gallery are able to display PGF images after installing this viewer.^{[3]}
See also
 Comparison of graphics file formats
 Related graphics file formats: ECW, JPEG, JPEG 2000, JPEG XR
 Image file formats
 Image compression
File extension
File extension .pgf
and the TLA PGF are also used for unrelated purposes:
 Adobe Illustrator used a Progressive Graphics Format before Encapsulated PostScript.
 PGF/TikZ uses a Portable Graphics Format in SourceForge project PGF.
 XnView and Konvertor associate file extension
.pgf
with Portfolio Graphics.
References
 ^ ^{a} ^{b} Christoph Stamm (2012). "PGF libPGF.org". SourceForge project libpgf. Retrieved 20140314.
 ^ ^{a} ^{b} ^{c} Christoph Stamm. "PGF – A new progressive file format for lossy and lossless image compression" (PDF). Retrieved 20140313.
 ^ "PGF download". xeraina. 2013. Retrieved 20140314.

