by Robert Munoz - GUI Computing
First, what is fractal compression? Simply, fractal compression is a method that creates a set of equations that define an image much like shorthand defines a document. Unlike JPEG (industry standard), higher rates of compression and accuracy are achieved since it does not consider 8x8 pixel blocks, but provides a systematic way of breaking up an image into separate smaller regions, and determining the best ‘affine’ map which is stored as a mathematical expression. The real advantage comes from the fact that a fractal image provides true image scalability, meaning it is possible to decompress an image to any specific resolution without pixelation.
Iterated Systems have released their third version of ColorBox Pro which uses fractal transform compression technology. This package contains a bag of goodies which encompass both hardware and software by using a dedicated fractal coprocessor board, software to suit both Windows and DOS users.
Version 3.0 of ColorBox Pro comes with several new features including greater reduction of FIF files via new archiving functions, an Omega correction parameter which increases precision in fractal codes for images, an easy to use Windows SDK compressor, and improved background compression allowing the user to perform other tasks while compressing.
The compressor can handle images from 64x64 to 1280x1024 pixels. Color compression rates can range from 10:1 up to 160:1 for standard modes, and from 40:1 up to a mammoth 600:1 for hi-resolution modes. With grayscale, rates can vary from 5:1 up to 80:1 and from 20:1 up to 300:1 respectively. It supports TGA, RAS, BMP and Windows DIB files.
|Image - "Rose" 192.0 Kbytes|
|Compression Ratio||Time||FIF File Size||Quality|
|10:1||18 Seconds||19.6 Kbytes||Excellent|
|20:1||36 Seconds||9.6 Kbytes||Excellent|
|50:1||48 Seconds||4.4 Kbytes||Ok|
|132:1||45 Seconds||2.5 Kbytes||Average|
You can control the precision, the file size, quality, resolution and compression rate, both programatically and stand alone. Most VGA display modes are supported on 24-bit true color images.
I found the performance impressive regarding quality and speed as I decompressed images through different resolutions. The FIF files where displayed on average 20% faster than the original BMP and TGA images, with rich colors and detail.
Compression results do depend heavily on the image being processed. Certain images are inherently fractal for ideal images very high compression ratios can be achieved. During compression, I found the ability to insert a color table into the FIF file which reduced subsequent decompression times by as much as 50% very effective.
What I really liked was the Fractal Transform Template feature. You can use an FTT to improve the quality of fractal images that have similar features in common. For example, if you are compressing a series of maps, an FTT with a single map will enhance the quality of subsequent maps. On the other hand, it can be used as a key to unlock an image. You can also further compress an FIF, by archiving the file. This usually reduces the file by a further 10%, but will increase decompression time.
ColorBox Pro can be utilised effectively by Windows and DOS users and
can be implemented by both VB and C programmers. Developers need only
include the compression DLL, specify the file, and call the particular
DLL command to compress.
Figure 1: This code decompresses a test file to full scale mode with 8 bit color mapping.
If InitFIFDecompress() <> 0 Then Stop ' Init Decompressor hCodefile = lopen("C:\TEST.FIF", 0) ' Open file OutPutFormat = DIB_COLORMAPPED_8 ' Set the output to 8 bit OutPutRes.Image_Scale = FULL_SCALE ' Set the Scale ' Decompress er% = FIFFileToBuffer(ByVal hCodefile,ByVal -1, hBuffer, ByVal 0&, OutPutRes, ByVal OutPutFormat) hBitmap% = hBuffer ret = Lclose(hCodefile) ' Close FIF If (hBitmap% <> 0) Then ' Create a logical pallette for a colormapped dib er% = CreatePaletteForDIB(ByVal hBitmap%, hPal%) End If If CloseFIFDecompress() <> 0 Then Stop ' Close compression
Developing a VB application that compressed
Targa files was effortless. Example programs with source code are also
included to get you started quickly. ColorBox Pro is a definite "must"
to any developer\user who is considering compression of graphic intensive applications.
Available from Iterated Systems Pty Ltd.
5 Seaview Avenue, Ferny Creek, Victoria 3786. Phone: (03) 9755 1755 / Fax: (03) 9755 2432