JPEG 2000
![]() Comparison of JPEG 2000 with the original JPEG format. | |
Filename extension |
.jp2, .j2k |
---|---|
Internet media type |
image/jp2 |
Developed by | Joint Photographic Experts Group |
Type of format | graphics file format |
JPEG 2000 is a wavelet-based image compression standard. It was created by the Joint Photographic Experts Group committee in the year 2000 with the intention of superseding their original discrete cosine transform-based JPEG standard (created about 1991). The standardized filename extension is .jp2 for ISO/IEC 15444-1 conforming files and .jpx for the extended part-2 specifications, published as ISO/IEC 15444-2, while the MIME type is image/jp2.
JPEG 2000 requires far greater decompression time than JPEG and allows more sophisticated progressive downloads, yet averages similar compression rates. JPEG 2000 becomes increasingly blurred with higher compression ratios rather than generating JPEG's "blocking and ringing" artifacts, complicating direct comparison of their respective compression rates. Images machine-judged to be of equivalent quality for both compression schemes often look better to humans in JPEG 2000 at low bitrates.
Part of JPEG 2000 has been published as an ISO standard, ISO/IEC 15444-1:2000. As of 2007, JPEG 2000 is not widely supported in web browsers, and hence is not generally used on the World Wide Web. Even though provisions have been made to integrate all kinds of external meta-data, there is currently no accepted way to embed Exif data (although a JPEG 2000 "JpgTiffExif->JP2" UUID box to store EXIF information has been proposed, and is implemented by ExifTool version 6.92 or later).
Advantages
There are several claimed advantages of JPEG2000:
- Superior compression performance: At high bit rates, where artifacts become nearly imperceptible, JPEG 2000 has a small machine-measured fidelity advantage over JPEG. At lower bit rates (e.g., less than 0.25 bits/pixel for gray-scale images), JPEG 2000 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 and a more sophisticated entropy encoding scheme.
- Multiple resolution representation: JPEG2000 decomposes the image into a multiple resolution representation in the course of its compression process. This representation can be put to use for other image presentation purposes beyond compression as such.
- Progressive transmission by pixel and resolution accuracy, commonly referred to as progressive decoding and signal-to-noise ratio (SNR) scalability: JPEG2000 provides efficient codestream organizations which are progressive by pixel accuracy and by image resolution (or by image size). This way, after a smaller part of the whole file has been received, the viewer can see a lower quality version of the final picture. The quality then improves progressively through downloading more data bits from the source. The 1991 JPEG standard also has a progressive transmission feature but it's rarely used.
- Lossless and lossy compression: Like JPEG 1991, the JPEG2000 standard provides both lossless and lossy compression in a single compression architecture. Lossless compression is provided by the use of a reversible integer wavelet transform in JPEG 2000.
- Random codestream access and processing, also referred as Region Of Interest (ROI): JPEG2000 codestreams offer several mechanisms to support spatial random access or region of interest access at varying degrees of granularity. This way it is possible to store different part of the same picture using different quality.
- Error resilience: Like JPEG 1991, JPEG2000 is robust to bit errors introduced by noisy communication channels, due to the coding of data in relatively small independent blocks.
- Flexible file format: The JP2 and JPX file formats allow for handling of color-space information, metadata, and for interactivity in networked applications as developed in the JPEG Part 9 JPIP protocol.
- Side channel spatial information: it fully supports transparency and alpha planes.
More advantages associated with JPEG 2000 can be referred to from the Official JPEG 2000 page.
Technical discussion
The aim of JPEG 2000 is not only improved compression performance over JPEG but also adding (or improving) features such as scalability and editability. In fact, JPEG 2000's improvement in compression performance relative to the original JPEG standard is actually rather modest and should not ordinarily be the primary consideration for evaluating the design. Very low and very high compression rates are supported in JPEG 2000. In fact, the graceful ability of the design to handle a very large range of effective bit rates is one of the strengths of JPEG 2000. 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. That's unnecessary when using JPEG 2000 because JPEG 2000 already does it automatically through its multiresolution decomposition structure. The following sections describe the algorithm of JPEG 2000.
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. There are two possible choices:
- Irreversible Color Transform (ICT) uses the well known YCbCr color space. It is called "irreversible" because of the quantization errors it introduces.
- Reversible Color Transform (RCT) uses a modified YUV color space that does not introduce quantization errors, so it is fully reversible. The transformation matrices are:
The chrominance components can be, but do not necessarily have to be, down-scaled in resolution; in fact, since the wavelet transformation already separates images into scales, downsampling is more effectively handled by dropping the finest wavelet scale. This step is called multiple component transformation in the JPEG 2000 language since its usage is not restricted to the RGB color model.
Tiling
After color transformation, the image is split into so-called tiles, rectangular regions of the image that are transformed and encoded separately. Tiles can have any size, it is also possible to consider the whole image as one single tile but, once the size is chosen, all the tiles will have the same size (except optionally those on the right and bottom borders). Dividing the image in tiles has the good point that the decoder will need less memory to decode the image and it can decode only some parts of the whole picture, ignoring the others. The bad point is that the quality of the picture decreases (lower PSNR). Using many tiles can create a blocking effect similar to the older JPEG 1992 standard.
Wavelet transform
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Jpeg2000_2-level_wavelet_transform-lichtenstein.png/256px-Jpeg2000_2-level_wavelet_transform-lichtenstein.png)
These tiles are then wavelet transformed to an arbitrary depth, in contrast to JPEG 1992 which uses an 8×8 block-size discrete cosine transform. JPEG 2000 uses two different wavelet transforms:
- irreversible: the CDF 9/7 wavelet transform. It is said to be "irreversible" because it introduces quantization noise that depends on the precision of the decoder.
- reversible: a rounded version of the biorthogonal CDF 5/3 wavelet transform . It uses only integer coefficients, so the output does not require rounding (quantization) and so it does not introduce any quantization noise. It is used in lossless coding.
Quantization
After the wavelet transform, the coefficients are scalar-quantized 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 bit-by-bit. 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).
Coding
The result of the previous process is a collection of sub-bands which represent several approximation scales. A sub-band is a set of coefficients — real numbers which represent aspects of the image associated with a certain frequency range as well as a spatial area of the image.
The quantized sub-bands are split further into precincts, rectangular regions in the wavelet domain. They are typically selected in a way that the coefficients within them across the sub-bands form approximately spatial blocks in the (reconstructed) image domain, though this is not a requirement.
Precincts are split further into code-blocks. Code-blocks are located in a single sub-band and have equal sizes — except those located at the edges of the image. The encoder has to encode the bits of all quantized coefficients of a code-block, starting with the most significant bits and progressing to less significant bits by a process called the EBCOT scheme. EBCOT here stands for Embedded Block Coding with Optimal Truncation. In this encoding process, each bit-plane of the codeblock gets encoded in three so-called coding passes, first encoding bits (and signs) of insignificant coefficients with significant neighbors (i.e., with 1-bits in higher bit-planes), then refinement bits of significant coefficients and finally coefficients without significant neighbors. The three passes are called Significance Propagation, Magnitude Refinement and Cleanup Pass, respectively.
Clearly, in lossless mode all bit-planes have to be encoded by the EBCOT, and no bit-planes can be dropped.
The bits selected by these coding passes then get encoded by a context-driven binary arithmetic coder, namely the binary MQ-coder. The context of a coefficient is formed by the state of its nine neighbors in the codeblock.
The result is a bit-stream that is split into packets where a packet groups selected passes of all codeblocks from a precinct into one indivisible unit. Packets are the key to quality scalability (i.e., packets containing less significant bits can be discarded to achieve lower bit-rates and higher distortion).
Packets from all sub-bands are then collected in so-called layers. The way the packets are built up from the code-block coding passes, and thus which packets a layer will contain, is not defined by the JPEG 2000 standard, but in general a codec will try to build layers in such a way that the image quality will increase monotonically with each layer, and the image distortion will shrink from layer to layer. Thus, layers define the progression by image quality within the codestream.
The problem is now to find the optimal packet length for all code-blocks which minimizes the overall distortion in a way that the generated target bitrate equals the demanded bit-rate.
While the standard does not define a procedure as to how to perform this form of rate-distortion optimization, the general outline is given in one of its many appendices: For each bit encoded by the EBCOT coder, the improvement in image quality, defined as mean square error, gets measured; this can be implemented by an easy table-lookup algorithm. Furthermore, the length of the resulting codestream gets measured. This forms for each codeblock a graph in the rate-distortion plane, giving image quality over bitstream length. The optimal selection for the truncation points, thus for the packet-build-up points is then given by defining critical slopes of these curves, and picking all those coding passes whose curve in the rate-distortion graph is steeper than the given critical slope. This method can be seen as a special application of the method of Lagrange multiplier which is used for optimization problems under constraints. The Lagrange multiplier, typically denoted by λ, turns out to be the critical slope, the constraint is the demanded target bitrate, and the value to optimize is the overall distortion.
Packets can be reordered almost arbitrarily in the JPEG 2000 bit-stream; this gives the encoder as well as image servers a high degree of freedom.
Already encoded images can be sent over networks with arbitrary bit-rates by using a layer-progressive encoding order. On the other hand, color components can be moved back in the bit-stream; lower resolutions (corresponding to low-frequency sub-bands) could be sent first for image previewing. Finally, spatial browsing of large images is possible through appropriate tile and/or partition selection. All these operations do not require any re-encoding but only byte-wise copy operations.
Performance
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Lichtenstein_jpeg2000_difference.png/256px-Lichtenstein_jpeg2000_difference.png)
JPEG 2000 gains up to about 20% compression performance for medium compression rates in comparison to the first JPEG standard. For lower or higher compression rates, the improvement can be somewhat greater (especially if altering the input resolution to the codec is not considered as a technique for effective use of the older JPEG standard). Good applications for JPEG 2000 are large images, images with low-contrast edges — e.g., medical images.
It has, however, notably higher computational and memory demands.
File format and Codestream
Similar to JPEG-1, JPEG2000 defines both a file format and a code-stream. Whereas the latter entirely describes the image samples, the former includes additional meta-information as the resolution of the image or the color space that has been used to encode the image. JPEG2000 images should — if stored as files — be boxed in the JPEG2000 file format, where they get the .jp2 extender. The part-2 extension to JPEG2000, i.e., ISO/IEC 15444-2, also enriches this file format by including mechanisms for animation or composition of several codestreams into one single image. Images in this extended file-format use the .jpx extender.
There is no standardized extender for code-stream data because codestream-data is not to be considered to be stored in files in first place, though when done for testing purposes, the extender .jpc or .j2k appear frequently.
Applications of JPEG 2000
The markets and applications better served by this standard are listed below:
- Consumer applications such as multimedia devices (e.g., digital cameras, personal digital assistants, 3G mobile phones, color facsimile, printers, scanners, etc.)
- Client/server communication (e.g., the Internet, Image database, Video streaming, video server, etc.)
- Military/surveillance (e.g., HD satellite images, Motion detection, network distribution and storage, etc.)
- Medical imagery, esp. the DICOM specifications for medical data interchange.
- Remote sensing
- High-quality frame-based video recording, editing and storage.
- JPEG 2000 has many design commonalities with the ICER image compression format that is used to send images back from the Mars rovers.
Motion JPEG 2000
Motion JPEG 2000 (often referenced as MJ2 or MJP2) is the leading digital film standard currently supported by Digital Cinema Initiatives (a consortium of most major studios and vendors) for the storage, distribution and exhibition of motion pictures. It also is under consideration as a digital archival format by the Library of Congress. It is an open ISO standard and an advanced update to MJPEG (or MJ), which was based on the legacy JPEG format. Unlike common video codecs, such as MPEG-4, WMV, and DivX, MJ2 is does not employ temporal or inter-frame compression. Instead, each frame is an independent entity encoded by either a lossy or lossless variant of JPEG 2000. Its physical structure does not depend on time ordering, but it does employ a separate profile to complement the data. For audio, it supports LPCM encoding, as well as various MPEG-4 variants, as "raw" or complement data.[1][2]
Compression artifacts
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/78/JPEG_2000_Artifacts_Demonstration.png/96px-JPEG_2000_Artifacts_Demonstration.png)
The artifacts of JPEG 2000 look different from those of JPEG, have a slighter effect on the image and take higher compression levels to be visible. Often a photographic image can be compressed to 1/20 of its original (uncompressed bitmap) size without incurring visible artifacts. When the artifacts do appear, they can be seen as smoothing rather than squares or mosquito noise. The image to the right demonstrates the effects of JPEG 2000 compression in various ratios (the top image is the lossless original).
Comparison with PNG
Although JPEG 2000 format supports lossless encoding, it is not intended to completely supersede today's dominant lossless image file formats.
The PNG (Portable Network Graphics) format is still more space-efficient in the case of images with many pixels of the same color, and supports special compression features that JPEG 2000 does not.
It can be expected that PNG will be more heavily used for compressing diagram-type images and JPEG 2000 for photograph-type images, assuming no further changes to either standard.
Legal issues
JPEG 2000 is by itself licensed, but the contributing companies and organizations agreed that licenses for its first part — the core coding system — can be obtained free of charge from all contributors.
The JPEG committee has stated:
- It has always been a strong goal of the JPEG committee that its standards should be implementable in their baseline form without payment of royalty and license fees … The up and coming JPEG 2000 standard has been prepared along these lines, and agreement reached with over 20 large organizations holding many patents in this area to allow use of their intellectual property in connection with the standard without payment of license fees or royalties.[3]
However, the JPEG committee has also noted that undeclared and obscure submarine patents may still present a hazard:
- It is of course still possible that other organizations or individuals may claim intellectual property rights that affect implementation of the standard, and any implementers are urged to carry out their own searches and investigations in this area.[4]
Because of this statement, controversy remains in the software community concerning the legal status of the JPEG2000 standard.
JPEG 2000 is included in most Linux distributions. JPEG 2000 (see package JasPer) is even part of the Debian GNU/Linux distribution. It complies with the Debian Free Software Guidelines (the acid test of software freedom).
Related standards
Several additional parts of the JPEG 2000 standard exist; Amongst them are ISO/IEC 15444-2:2000, JPEG 2000 extensions defining the .jpx file format, featuring for example Trellis quantization, an extended file format and additional color transformations, ISO/IEC 15444-4:2000, the reference testing and ISO/IEC 15444-6:2000, the compound image file format, allowing compression of compound text/image graphics.
Recently, a JPEG2000 based image browsing protocol, called JPIP has been published as ISO/IEC 15444-9. Within this framework, only selected regions of potentially huge images have to be transmitted from an image server on the request of a client, thus reducing the required bandwidth.
Extensions for secure image transfer, JPSEC, enhanced error-correction schemes for wireless applications, JPWL, and extensions for encoding of volumetric images, JP3D are currently under discussion by the ISO.
See also
- Comparison of graphics file formats
- ECW — a wavelet compression format that compares well to JPEG 2000.
- QuickTime — a multimedia framework, application and web browser plugin developed by Apple Computer, capable of encoding, decoding and playing various multimedia files (including JPEG2000 images by default).
- eFotoXpress — Image viewer and converter with support for JPEG 2000 with highest compression
- Konvertor — Image viewer and converter with support for JPEG 2000.
- IrfanView — Image viewer with read and limited write support for JPEG 2000.
- XnView — Image viewer with support for JPEG 2000.
- JasPer — A compression/decompression library, C language.
- Pixel image editor — Image editor with internal support for JPEG 2000.
- OpenJPEG — An open source (BSD) compression/decompression library written in C language.
- JPIP — The JPEG Internet Protocol, used for streamlining images using the JPEG 2000 format.
- MrSID — a wavelet compression format that compares well to JPEG 2000
- PGF — a fast wavelet compression format that compares well to JPEG 2000
- PAR GV — a multipurpose Java based Image and Video Viewer
References
- ^ Motion JPEG 2000 (Part 3)
- ^ Motion JPEG 2000 mj2 File Format. Sustainability of Digital Formats Planning for Library of Congress Collections.
- ^ JPEG 2000 Concerning recent patent claims
- ^ JPEG 2000 Committee Drafts
- Official JPEG 2000 page
- Final Committee Drafts of JPEG 2000 standard (as the official JPEG 2000 standard is not freely available, the final drafts are the most accurate freely available documentation about this standard)
- Gormish Notes on JPEG 2000
- Technical overview of JPEG 2000 (PDF)
- Efficient HW/SW Implementation of JPEG2000 (PDF)
External links
![]() | This August 2007's use of external links may not follow Wikipedia's policies or guidelines. |
- JJ2000 Public Homepage
- J2K-Codec — An easy-to-use JPEG2000 decoder.
- Java ImageIO Tools 1.0_01 and 1.1 supports JPEG 2000
- Apple's ImageIO — How any Mac OS X 10.4+ app can read and write JPEG2000.
- PICTools — Low-level C libraries
- Fnord — Free Photoshop plug-in
- Apple Quicktime — Capable of reading; payment for registration code enables ability to write.
- LizardTech GeoExpress — Capable of reading and writing JPEG 2000 and MrSID imagery
- JPEG 2000 Compressor / Decompressor — Capable of reading and writing JPEG 2000 / NITF JPEG 2000 and a multitude of other Department of Defense Files
- BOI software — Coder/decoder and interactive viewer of JPEG2000, developed in JAVA under a free license.
- intoPIX — JPEG2000 codecs on FPGA for Broadcast and Digital Cinema markets (including a DCI JPEG2000 decoder).
- Kakadu Software — A JPEG2000 codec implementation by Dr. Taubman of University of New South Wales.
- BroadMotion — JPEG2000 & Motion JPEG2000 codecs for embedded implementations, DSP and FPGA versions
- Compressphoto.com — Batch image compressor, JPEG2000 codec with PDF wrapping
- LuraWave JP2 — JPEG2000 Image Compression Software for Developers and Professionals by LuraTech.
- Barco Silex - Real-time hardware JPEG2000 encoders and decoders (including broadcast and DCI digital cinema FPGA cores)
JPEG 2000 comparisons: