JPEG-2000 Overview

Nov 28, 2002 ... (collected from the exercise answers) .... the lossless compression efficiency of
lossless JPEG (L-JPEG), JPEG-LS, PNG and JPEG 2000 for all the test images.
.... Part 5, Reference software (Java and C implementations are available) ... http
://www.dsp.toronto.edu/~dsp/JPEG2000/JPEG2000_1to50.pdf.

Part of the document


Overview of JPEG-2000

(collected from the exercise answers)

28.11.2002


1. Background


1.1 Why JPEG 2000?

Work on the JPEG-2000 standard commenced with an initial call for
contributions in March 1997. The purpose of having a new standard was
twofold. First, it would address a number of weaknesses in the existing
JPEG standard. Second, it would provide a number of new features not
available in the JPEG standard. The preceding points led to several key
objectives for the new standard, namely that it should:

1. allow efficient lossy and lossless compression within a single unified
coding framework,
2. provide superior image quality, both objectively and subjectively, at
low bit rates,
3. support additional features such as region of interest coding, and a
more flexible file format,
4. avoid excessive computational and memory complexity.

Undoubtedly, much of the success of the original JPEG standard can be
attributed to its royalty-free nature. Consequently, considerable effort
has been made to ensure that minimally-compliant JPEG-2000 codec can be
implemented free of royalties.

1.2 JPEG-2000 advantages

JPEG-2000 has the following advantages:

. Better image quality that JPEG at the same file size; or alternatively
25-35% smaller file sizes with the same quality.
. Good image quality at low bit rates (even with compression ratios over
80:1)
. Low complexity option for devices with limited resources.
. Scalable image files -- no decompression needed for reformatting. With
JPEG 2000, the image that best matches the target device can be
extracted from a single compressed file on a server. Options include:
1. Image sizes from thumbnail to full size
2. Grayscale to full 3 channel color
3. Low quality image to lossless (identical to original image)

. JPEG 2000 is more suitable to web-graphics than baseline JPEG because
it supports Alpha-channel (transparency component).
. Region of interest (ROI): one can define some more interesting parts
of image, which are coded with more bits than surrounding areas.

1.3 History of JPEG

Jpeg's are best suited to displaying natural, complex images such as
photographs and are actually files created by the JPEG Image compression
algorithm which in turn was "created" or invented by the Joint Photographic
Expert Group in the late 1980's. The Joint photographic expert group (JPEG)
is nominated by national standards bodies and major companies and the
official title of the Group is ISO/IEC JTCI SC29 Working group 1 and it is
responsible for both JPEG and JBIG (joint bi-level Image Expert Group)
standards .The JPEG and JBIG both report to the ISO and ITU and this
arrangement ensures that Image standards produced by the two groups are
compatible.
The compression method invented by this committee is widely used today. The
goal of this committee was to reduce the file size of natural, photographic-
like true-color images as much as possible without affecting the quality of
the Image as experienced by the human sensory engine. Clearly, they've
achieved that goal with honors. Nowadays TIFF files can be reduced to as
little 1/40th of the original size with little or no loss of perceived
Image quality. It seems that the target of the format was quite specific.
The subject matter best suited for JPEG compression are the types of images
found in nature. The file suffix for JPEGS on the internet is 'jps' Actual
file formats supported since Jpeg's were invented include Still Picture
Interchange File Format (SPIFF) and the earlier JPEG File Interchange
format. The best known standard from JPEG is IS 10918-1(ITU-TT.81),which is
the first of the multi part set of standards for still Image compression.

But what can be done about the file size of graphics? If you want visitors
to your website to see a high quality image, they have to wait. Many
viewers would rather go somewhere else. Yet if you compress the image, it
reduces the quality. It seems like a catch-22.


1.4 Standard development of JPEG-2000

Standard developing was started at 1996.

JPEG2000 is the new JPEG standard which was finally approved in August
2000.


It was offered by Boliec and later modified by Taubmnan. This modification
has become a foundation of standard. The standard consists of the following
parts:

1) Core coding system: specifies the core (minimal functionality) codec
for the JPEG-2000 family of standards.
2) Extensions: specifies additional functionality that is useful in some
applications but needn't support by all codecs.
3) Motion JPEG-2000: specifies extensions to JPEG-2000 for intra frame-
style video compression.
4) Conformance testing: specifies the procedure to be employed for
compliance testing.
5) Reference software: provides sample software implementations of the
standard to serve as a guide for implement.


2. Main structure


The main idea of the JPEG-2000 is Tiling, Wavelet transform, ROI (region-of-
interest) mask (may be or may be not), Quantization of wavelet transform
coefficients, Coefficient outside of the ROI are downscaled by specific
scaling value, The resulting coefficients are progressively entropy coded.

In the last part of the encoding process the arithmetic coding is used. The
MQ coder is adapted in JPEG-2000. It uses no more than 9 contexts for any
given type of bits. The context models are always reinitialized at the
beginning of each code-block and the arithmetic coder is always terminated
of the end of each block.

So, the models that JPEG2000 uses are adapted during the hole process of
modeling, so we can think that it is adaptive modeling, but for the one
block the model will be the same, so I think it will be better to call it
semi-adaptive modeling.

1. DC level shift
2. Transform from the RGB to YUV
3. DWT
4. Quantization
5. Arithmetic encoding

Processing ( Forward Intercomponent Transform ( Forwart Intracomponent
Tranform (
( Quentization (Tier-1 Encoder ( Tier-2 Encoder ( (coded image) ( Tier-2
Decoder ( Tier-1

Decoder ( Dequantization ( Inverse Intracomponent Transform ( Inverse
Intercomponent
Transform ( Postprocessing ( (Reconstructed Image).

Preprocessing/Postprocessing: The codec expects its input sample data to
have a nominal dynamic range that is approximately centered about zero.
The preprocessing stage of the encoder simply ensures that this expectation
is met.

Intercomponent Transform: Such a transform operates on all of the
components together, and serves to reduce te correlation between
components, leading to improved coding effeciency.

Intracomponent Transform: In this stage, transforms that operate on
individual components can be applied. The particular type of operator
employed for this purpose is the wavelet transform.

Quantization/Dequantization: Quantization allows greater compression to be
achived.

Tier-1 coding: Takes plase after quantization. This is the first of two
coding stages.

Tier-2 Coding: In tear-2 encoding, the coding passes generated referred to
as packetization. A Packet is nothing more then a collection of coding pass
data.

A rate control communicates with quantization, tier-1 and tier-2. It uses
two mechanisms: (1) the choice of quantizer step size, (2) the selection of
thesubset of coding passes to include in the code sream.


3. Embedded block coding


- Gives excellent compression performance
- algorith utilizes same low complexity execution binary arithmetic coding
engine as JBIG2
- two broad classes of embedded block coding techniques:
. context adaptive codin
. quad-tree coding principle


4. Other features


4.1. Tiling

JPEG-2000 partitions the image into blocks in process called tiling. Each
of these tiles are then compressed (including component mixing, wavelet
transform, quantization, and entropy coding) independently like they were
independent images. The dimension of each tile, except those on the
boundaries, is power of two. The tiling is used to reduce memory
requirements and to decode, not whole image (if not needed), but specific
parts of the image. Chance to decode only some parts of the image can be
huge save of resources.

Each tile can be thought of as an array of integers. This array is then
described in a number of bit planes. These bit planes are a sequence of
binary arrays with one bit from each coefficient of the integer array. The
first bit plane contains the most significant bit (MSB) of all the
magnitudes. The second array contains the next MSB of all the magnitudes,
continuing in the fashion until the final array, which consists of the
least significant bits of all the magnitudes. After this all the image
tiles are DC level shifted by subtracting the same wuantity, such as the
component depth, from each sample. Then DWT is applied to each tile.


4.2. Tiling (again)

In some situations, an image may be quite large in comparison to the amount
of memory available to the codec. Consequently, it is not always feasible
to code the entire image as a single atomic unit. To solve this problem,
the codec allows an image to be broken into smaller pieces, each of which
is independently coded. More specifically, an image is partitioned into one
or more disjoint rectangular regions called tiles.
Tiles have some chosen nominal size, but those bordering on the edges of
the image area may have a size which differs from the nominal size. The
tiles are numbered in raster sc