While FAPEC is designed for the lossless compression of any kind of data, its DWT and HPA stages are designed for the lossless or lossy image compression. Most common image compressors are based on a pre-processing stage which uses wavelets or applies some kind of transformation of the image, then followed by an entropy coder. In the case of image compression for space, where very tight requirements exist, the current standard is the CCSDS 122.0 recommendation which is composed of a Discrete Wavelet Transform stage (DWT) followed by a Bit Plane Encoder (BPE). Our DWT-FAPEC combination is inspired in the same concept, but using FAPEC instead of the BPE. The result is a more efficient image compressor configurable for lossless or lossy operation (with different quality levels). As an example, the following greyscale image shows a satellite view of Barcelona compressed with DWT-FAPEC, with ratios of 1.2, 1.5, 3.8, 4.9 and 13.0.
We have conceived HPA (Hierarchical Pixel Averaging), an image pre-processing algorithm which, when combined with FAPEC, provides excellent compression ratios with a very quick operation. It can be used for either lossless or lossy compression with different quality levels. Besides, HPA reduces the annoying 'image artifacts' that can be seen with other compressors when reducing the image quality too much. One of the most typical approaches in image data compression is to transform the image by means of some kind of mathematical formulation, such as the discrete wavelet transform (DWT) or the cosine transform - which is used in the JPEG standard, for example.HPA, on the other hand, avoids such complex transformations and just applies simple operations on the space, brightness and color domains of the image. By remaining in the space domain (not moving to a transformed domain) we avoid the artifacts seen in other compressors such as JPEG when reducing too much the quality in lossy compression. An additional benefit of HPA is that it works in small image blocks, which allows a progressive, efficient and resilient compression. This feature is extremely useful when streaming large images, specially when transmitting 'image strips' such as those generated by 'pushbroom' sensors in satellites. If HPA is used in complete image frames, it can provide a progressive loading of the image on the decoding side, allowing the user to decide the final quality of the image without requiring the loading of the complete file. This feature can be very useful in mobile communications for example, allowing to load only thumbnails of images and, at wish, select an image for its higher-quality viewing - all with a single image file in the server side.