Advanced Image Coding
Advanced Image Coding (AIC) is an experimental still image compression system
that combines algorithms from the H.264 and JPEG standards. More specifically,
it combines intra frame block prediction from H.264 with a JPEG-style discrete
cosine transform, followed by context adaptive binary arithmetic coding sas used
The result is a compression scheme that performs much better than JPEG and close to JPEG-2000. For a quick comparison, look at the famous Lena image, compressed at about 0.95 bit per pixel (25:1 compression ratio) using JPEG, JPEG-2000 and AIC:
|Original image*, 24 bpp||JPEG: 0.94 bpp
PSNR: 29.36 db
|JPEG-2000*: 0.95 bpp
PSNR: 31.17 db
|AIC*: 0.93 bpp
PSNR: 31.30 db
|*Due to limitations of web browsers, all images except the JPEG image are recompressed with JPEG at the highest quality for display in the browser. However, since the highest quality level is used, this has very little effect on the perceived quality of the images above, so the comparison remains valid.|
The JPEG-2000 image has the best perceptual quality, although it tends to smooth and blur the image quite a bit, resulting in loss of detail. The JPEG image is clearly the worst, and AIC is somewhere in between. The objective quality of the AIC image, expressed as the Peak Signal to Noise Ratio (PSNR), is even higher than the JPEG-2000 image. This is because AIC preserves the details better, as you can clearly see in the hat and the feathers on the hat.
AIC is however much less complex than JPEG-2000. The AIC source code is optimized for clarity and readability, and not for speed. But the current version is already faster than most JPEG-2000 codecs around, and much faster than the JPEG-2000 reference software.
AIC in a nut shell:
- For photographic images, AIC performs much better than JPEG and close to JPEG-2000. For typical bit rates, AIC sometimes even outperforms JPEG-2000.
- For graphic images, the gap between JPEG-2000 and AIC grows, in the favor of JPEG-2000.
- For small images, the gap between JPEG-2000 and AIC also grows, however this time in the favor of AIC. For image sizes up to 100x100 (or 10,000 pixels), AIC performs much better for typical bit rates. This would make an AIC-like codec ideal for images on web pages.
- AIC is somewhat slower than JPEG, but faster than JPEG-2000, even without speed optimizations in the software.
By the way, not only some of the algorithms, but also the name Advanced Image Coding is borrowed from the H.264 standard, which is also known as Advanced Video Coding.
What you will find on these pages
- Algorithm details.
An explanation of the algorithms involved.
Compression and quality comparison of the AIC, JPEG and JPEG-2000 codecs.
Download the software for converting image files to AIC, JPEG and JPEG-2000 and comparing these codecs.
- Source code.
Download the source code so you can build the software yourself with Embarcadero Delphi.
- Future work.
Possible improvements and work in progress.
- Resources and links.
Various links and resources on image and video compression algorithms.