Image Processing seminar (2003). JPEG2000 . The next generation still image-compression standard. Presented by: Eddie Zaslavsky. Contents :. 1. Why another standard? 2. JPEG2000 3. Examples 4. Conclusions 5. Add-on: EWZ algorithm. Why another standard?.
2. DC-level shifting:
Inverse reversible component transform
Forward reversible component transform
We filter each row and column with a high pass and low pass filter, followed by downsampling by 2 (to keep the sample rate).
Now we have divided the tile to sub-bands. All info (index, position, precincts, etc.), regarding the single tile, is put together in a contiguous stream of data called a packet.
Lossless 1D DWT
Lossy 1D DWT
P and U stand for Prediction and Update.
Given a quantizer step of 10 and an encoder input value of21.82, the quantizer index is determined as shown:
2. Magnitude Refinement Pass:
3. Clean-up Pass:
The encoding is done by the MQ-coder, a low complexity entropy coder.
Each precinct generates one packet, even if the packet is empty. A packet is composed of a header and the compressed data.
The code-stream is received by the decoder according to the progression order stated in the header. The coefficients in the packets are then decoded and dequantized, and the reverse-ICT is performed:
In the case of irreversible compression, the decompression results in loss of data. The resulting image is not exactly like the original.
In JPEG2000, the compressor decides the maximum resolution and maximum image quality to be used.
It is also possible to perform random access by decompressing only a certain region of the image or a specific component of the image (e.g. the grayscale component of a color image). Both can be performed with varying qualities and resolutions.
In each case it is possible to locate, extract, and decode the bytes required for the desired image product without decoding the entire code-stream.
with ROI Defined
with ROI Intact
Reconstructed images compressed at 0.25 bpp by means of (a) JPEG and (b) JPEG2000
Reconstructed images compressed at 0.125 bpp by means of (a) JPEG and (b) JPEG2000
JPEG 2000 (1.83 KB)
Original (979 KB)
JPEG (6.21 KB)
631 54486 10 -7 29 55 -54
730 655-13 30 -12 44 41 32
19 23 37 17 -4 –13 -13 39
25 -49 32 -4 9 -23 -17 -35
32 -10 56 -22 -7 -25 40 -10
6 34 -44 4 13 -12 21 24
-12 -2 -8 -24 -42 9 -21 45
13 -3 -16 -15 31 -11 -10 -17
typical wavelet coefficients
for a 8*8 block in a real image
Such a coefficient is called a “Zerotree Root”
with ti = t(i-1)/2 and
MAX(): the maximum coefficient value in the image
y(x,y): the coefficient
threshold = initial_threshold;
threshold = threshold/2;
} while (threshold > minimum_threshold);
The wavelet coefficients are scanned in one of the following two orders. The scan order seems to be of some influence of the final compression result.
* Now we check, if the values in the Subordinate list are larger or smaller than the current threshold:
If larger - a 1 is sent to the entropy encoder and the current threshold is subtracted from the coefficient.
If smaller - a 0 is sent to the entropy encoder
* Sort the Subordinate list to place the larger (important) coefficients in the front (also helps the entropy encoder...)
* Repeat with next lower threshold, till the total bit budget is exhausted. Encoded stream is an embedded stream