JPEG PRO is a comprehensive, high performance toolkit implementing the ISO IS 10918 specification for the still image compression algorithm, known as JPEG. It is available for application builders as a complete toolkit for easy integration into applications. JPEG PRO is used for compression and decompression of JPEG images in the EasyCopy products.
As an independent toolkit it has been successfully integrated in customer applications covering the full range of JPEG applications:
- Medical imaging
- Image data bases
- PostScript level 2
- Support for all lossy JPEG modes: baseline, sequential, progressive.
- Support for the JPEG lossless mode.
- Lossy compression factors in the range from about 10:1 or lower (prepress quality), up to 200:1 or more (browsing purposes).
- Performance that is comparable with dedicated JPEG hardware solutions: Compression at 6 Megabytes image data per second, and decompression at 8 Megabytes image data per second have, for example, been measured on a SUN UltraSPARC workstation.Note: These figures are for image qualities without subjective loss. For image browsing qualities the performance is even higher!
- Support for both graylevel and full color images.
- Full JPEG support for 8 or 12 bit per color component in lossy modes, and between 2 and 16 bit per color component in lossless mode.
- Full JPEG support for any input image sizes in the range defined by the standard (from 1 x 1 to 65535 x 65535 pixels).
- Support for applications ranging from mass-market imaging to high-end prepress, medical and scientific systems.
- Basic functions give full support for the vast range of functionality.
- High level functions provide easy access to compression and decompression.
- JPEG PRO is available for UNIX Workstations and Microsoft Windows.
The JPEG standard encompasses two very different types of compression: Lossless and Lossy. JPEG PRO supports both types.
Lossless JPEG Mode
With lossless compression all image information is retained allowing for a reconstructed image, which is bit-identical to the original image. The compression factor for typical images, scanned in or digitized from video signals, is only about 2:1. With computer generated images, without noise, the compression factor is somewhat higher, depending on the complexity of the image. Lossless compression is typically used in scientific applications, where no loss of image information can be accepted. In connection with images intended for certain types of image processing, such as drastic contrast manipulation, the lossless compression is recommended.
Lossy JPEG Modes
With lossy compression, substantially higher compression factors are obtainable. This is achieved by allowing for a controlled distortion of the image information. A very wide range of compression factors is possible, depending on the image complexity, the image resolution and the desired quality of the reconstructed image.
Compression factors about 10:1 will normally ensure that the quality of the reconstructed images is sufficient for very critical prepress applications.
Compression factors in the range 20-40:1 result in reconstructed images, which are subjectively identical to the originals when viewed on monitors.
Compression factors in the range 100-200:1 or even higher will give quality sufficient for image browsing purposes. As a rule of thumb for a given image quality, the compression factor increases as the resolution of the images is increased.
Lossy compression can take place in different modes (baseline, sequential, or progressive). The major difference between these modes is the way in which the images are reconstructed during decompression:
With progressive reconstruction you have an overview of the whole image very early. If your browser supports viewing of JPEG files you can view sequential or progressive downloading in real time. (Note: what you see depends on your browser's implementation, and does not reflect neither the performance nor the appearance of the usage of JPEG PRO. Some browsers only support baseline JPEG, and if support for progressive JPEG is available it does not in all cases exploit it for the best presentation).
In baseline mode, which any implementation claiming to conform with the JPEG standard must support, the image is reconstructed from the upper left hand corner to the lower right hand corner in one pass. The resulting image has the final quality which was determined at compression time.
The sequential mode is an extension to the baseline mode, allowing for 12 bit per color components and more Huffman tables.
In progressive mode the image is reconstructed in several passes, each pass adding quality to the image. The user has an extensive freedom in defining the number and types of passes through the images, depending on the application.
With a full three color component image, a typical progressive compression uses four scans: The first, so-called "DC-scan", gives a very quick, full color preview quality. The next three scans add the fine details to each of the three color components. The DC scan, which takes up about 10% of the compressed data stream (and therefore a mere 200'th or so of the original image), contains sufficient information to give an excellent stamp size version of the image.
Progressive mode is therefore very well suited for image databases: Search criteria may have resulted in e.g. 10 hits, which are then displayed simultaneously in stamp size versions. The user may then click on the image of interest, and have it decompressed to the full quality. From a database point of view it is very important that the same compressed file serves both as the source for the preview quality as well as the full quality. Redundant information in the form of several files containing different versions of the same image is thus removed. Whether progressive or sequential (including baseline) mode is used, the final quality of the reconstructed images, as well as the compression factors, is the same.
The JPEG PRO toolkit is a library of functions to be called from within image applications using a C language application programmer interface. The functions in the library are divided into basic functions and utility functions. A set of data structures, communicating image and compression information between the application and the compression/decompression tasks, are defined.
With the high level utility functions, the application may set up compression tasks serving the majority of purposes with a minimum of application programmer effort. Furthermore, there are utility functions to support the display of images on standard displays and windowing systems on the supported hardware platforms.
High performance color space transformations are integral to the toolkit functions, offering the optimal compression factors for user specified image qualities.
Using the basic functions, the full parameter space of the toolkit is accessible to the application, allowing for a precise tuning to any specific compression tasks.
The JPEG PRO product consists of:
- A library of object modules conforming to C-calling conventions. This library contains the basic compression and decompression functions, as well as a number of utility functions for high level access to the functionality and display of images on standard displays.
- Header files containing the definitions of the data structures and function prototypes.
- Sample C-source programs illustrating the usage of the toolkit functions. These programs are readily compiled, linked and executed.
- Sample images
- JPEG PRO Reference Manual (English language) in Adobe Portable Document Format.
JPEG PRO 3.2.1 is availabe for these workstation platforms:
Installation: CD-ROM drive
Application Development: C-language programming environment (C-compiler and linker)
Run time: An X-server must be running, if the display functions are used
Installation: CD-ROM drive
Application Development: Microsoft Visual C++ Version 5.0 compatible Windows Application Programming environment.
Run time: None
Approximately 15 MB disk space is required for a complete installation of toolkit, sample programs, and sample images (exact requirement depends on the platform).
Additional 3 MB disk space is required for the documentation.
The total amount of storage needed during compression/decompression depends on the compression mode, quality and on the image size.
The binary code of the encoder takes up approximately 150 Kbytes, depending on the complexity of the calling application. The size of the decompressor is approximately 350 Kbytes, half of which is used by the display functions. The size of the dynamically allocated tables depend on the specified quality, but are typically in the range of 100-500 KBytes.
For a lossy compression with automatic generation of optimal Huffman codes, sufficient storage to hold about twice the resulting amount of compressed data is needed. This is typically 100 Kbytes for a 1 Megabyte image compressed a factor of 20:1. If the application provides the Huffman codes, no storage of this type is needed.
For a baseline or sequential decompression, only storage holding a few image scanlines is needed.
For a progressive decompression, the whole image must be saved, either in RAM or on disk, due to the fact that the various scans add information to already decompressed version of the image.
There is a distinction between JPEG PRO development toolkit license and JPEG PRO run time license.
The development toolkit is licensed per workstation. This license includes:
The right to install and use the toolkit on one specific computer or workstation.
One years free support and maintenance.
Four (4) run time licenses.
A run time license is required for each copy of your product (or application for internal use) in which JPEG PRO is embedded. Additional run time licenses can be purchased separately. Large volume discount is available.
JPEG PRO is distributed on ISO 9660 CD-ROM.
JPEG PRO Reference Manual (204 pages) is distributed on the JPEG PRO CD-ROM in Portable Document Format.