RMF Based EZW Algorithm - PowerPoint PPT Presentation

About This Presentation
Title:

RMF Based EZW Algorithm

Description:

EZW basic concepts(1) E The EZW encoder is based on ... EZW basic concepts(2) ... The observations give rise to the basic progressive coding idea: ... – PowerPoint PPT presentation

Number of Views:29
Avg rating:3.0/5.0
Slides: 34
Provided by: Ama81
Learn more at: http://www.cs.ucf.edu
Category:
Tags: ezw | rmf | algorithm | based | basic

less

Transcript and Presenter's Notes

Title: RMF Based EZW Algorithm


1
RMF Based EZW Algorithm
  • School of Computer Science,
  • University of Central Florida,
  • VLSI and M-5 Research Group

June 1, 2000
2
Organization
  • The EZW algorithm
  • Basic concept
  • Introduction of the algorithm
  • An example
  • A brief introduction of RMF
  • 1-D RMF example
  • 2-D RMF example
  • The RMF based EZW algorithm
  • Basic Idea
  • Band_max construction algorithm
  • An example
  • Experimental results
  • Conclusions

3
EZW basic concepts(1)
  • E The EZW encoder is based on progressive
    encoding. Progressive encoding is also known as
    embedded encoding
  • Z A data structure called zero-tree is used in
    EZW algorithm to encode the data
  • W The EZW encoder is specially designed to use
    with wavelet transform. It was originally
    designed to operate on images (2-D signals)

4
EZW basic concepts(2)
Lower octave has higher resolution and contains
higher frequency information
A Multi-resolution Analysis Example
5
EZW basic concepts(3)
  • The EZW algorithm is based on two observations
  • Natural images in general have a low pass
    spectrum. When an image is wavelet transformed,
    the energy in the sub-bands decreases with the
    scale goes lower (low scale means high
    resolution), so the wavelet coefficient will, on
    average, be smaller in the lower levels than in
    the higher levels.
  • Large wavelet coefficients are more important
    than small wavelet coefficients.

631 544 86 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 88 block in
a real image
6
EZW basic concepts(4)
  • The observations give rise to the basic
    progressive coding idea
  • We can set a threshold T, if the wavelet
    coefficient is larger than T, then encode it as
    1, otherwise we code it as 0.
  • 1 will be reconstructed as T (or a number
    larger than T) and 0 will be reconstructed as
    0.
  • We then decrease T to a lower value, repeat 1 and
    2. So we get finer and finer reconstructed data.
  • The actual implementation of EZA algorithm should
    consider
  • What should we do to the sign of the
    coefficients. (positive or negative) ? answer
    use POS and NEG
  • Can we code the 0s more efficiently? --
    answer zero-tree
  • How to decide the threshold T and how to
    reconstruct? answer see the algorithm

7
EZW basic concepts(5)
coefficients that are in the same spatial
location consist of a quad-tree.
8
EZW basic concepts(6)
  • The definition of the zero-tree
  • There are coefficients in different subbands
    that represent the same spatial location in the
    image and this spatial relation can be depicted
    by a quad tree except for the root node at top
    left corner representing the DC coeeficient which
    only has three children nodes.
  • Zero-tree Hypothesis
  • If a wavelet coefficient c at a coarse scale is
    insignificant with respect to a given threshold
    T, i.e. cltT then all wavelet coefficients of
    the same orientation at finer scales are also
    likely to be insignificant with respect to T.

9
EZW the algorithm(1)
  • First step The DWT of the entire 2-D image will
    be computed by FWT
  • Second step Progressively EZW encodes the
    coefficients by decreasing the threshold
  • Third step Arithmetic coding is used to entropy
    code the symbols

10
EZW the algorithm(2)
What is inside the second step?
threshold initial_threshold do
dominant_pass(image) subordinate_pass(image)
threshold threshold/2 while
(threshold gt minimum_threshold)
The main loop ends when the threshold reaches a
minimum value, which could be specified to
control the encoding performance, a 0 minimum
value gives the lossless reconstruction of the
image
The initial threshold t0 is decided as
Here MAX() means the maximum coefficient value in
the image and y(x,y) denotes the coefficient.
With this threshold we enter the main coding loop
11
EZW the algorithm(3)
  • In the dominant_pass
  • All the coefficients are scanned in a special
    order
  • If the coefficient is a zero tree root, it will
    be encoded as ZTR. All its descendants dont need
    to be encoded they will be reconstructed as
    zero at this threshold level
  • If the coefficient itself is insignificant but
    one of its descendants is significant, it is
    encoded as IZ (isolated zero).
  • If the coefficient is significant then it is
    encoded as POS (positive) or NEG (negative)
    depends on its sign.

This encoding of the zero tree produces
significant compression because gray level images
resulting from natural sources typically result
in DWTs with many ZTR symbols. Each ZTR indicates
that no more bits are needed for encoding the
descendants of the corresponding coefficient
12
EZW the algorithm(5)
  • At the end of dominant_pass
  • all the coefficients that are in absolute value
    larger than the current threshold are extracted
    and placed without their sign on the subordinate
    list and their positions in the image are filled
    with zeroes. This will prevent them from being
    coded again.
  • In the subordinate_pass
  • All the values in the subordinate list are
    refined. this gives rise to some juggling with
    uncertainty intervals and it outputs next most
    significant bit of all the coefficients in the
    subordinate list.

13
EZW An example(1)
Wavelet coefficients for a 88 block
14
EZW An example(2)
The initial threshold is 32 and the result from
the dominant_pass is shown in the figure
Data without any symbol is a node in the
zero-tree.
15
EZW An example(3)
The result from the dominant_pass is output as
the following
POS, NEG, IZ, ZTR, POS, ZTR, ZTR, ZTR, ZTR, IZ,
ZTR, ZTR, IZ, IZ, IZ, IZ, IZ, POS, IZ, IZ
POS01, NEG11, ZTR00, IZ--10
The significant coefficients are put in a
subordinate list and are refined. A one-bit
symbol is output to the decoder.
Original data 63 34 49 47
Output symbol 1 0 1 0
Reconstructed data 56 40 56 40
For example, the output for 63 is sign 32
16 8 4 2 1 0 1 1
? ? ? ? If T.5T is less than data item
take the average of 2T and 1.5T. So 63 will be
reconstructed as the average of 48 and 64 which
is 56. If it is more, put a 0 in the code and
encode this as t.5T.25T. Thus, 34 is
reconstructed as 40.
16
EZW An example(4)
After dominant_pass, the significant coefficients
will be replaced by or 0 Then the threshold is
divided by 2, so we have 16 as current threshold
17
EZW An example(5)
The result from the second dominant_pass is
output as the following
IZ, ZTR, NEG, POS, IZ,IZ, IZ, IZ, IZ, IZ, IZ, IZ
The significant coefficients are put in the
subordinate list and all data in this list will
be refined as
Original data 63 34 49 47 31 23
Output symbol 1 0 0 1 1 0
Reconstructed data 60 36 52 44 28 20
For example, the output for 63 is sign 32
16 8 4 2 1 0 1 1
1 ? ? ? The computatin is now extended
with respect to the next significant bit. So 63
will be reconstructed as the average of 56 and 64
- 60!
18
EZW An example(6)
The process is going on until threshold 1, the
final output as
D1 pnztpttttztttttttptt S1 1010 D2
ztnptttttttt S2 100110 D3 zzzzzppnppnttnnptptt
nttttttttptttptttttttttptttttttttttt S3
10011101111011011000 D4 zzzzzzztztznzzzzpttptppt
pnptntttttptpnpppptttttptptttpnp S4
11011111011001000001110110100010010101100 D5
zzzzztzzzzztpzzzttpttttnptppttptttnppnttttpnnpttpt
tppttt S5 10111100110100010111110101101100100000
000110110110011000111 D6 zzzttztttztttttnnttt He
re ppos, nneg, ziz, tztr
For example, the output for 63 is sign 32
16 8 4 2 1 0 1 1
1 1 1 1 So 63 will be reconstructed as
3216842163! Note, how progressive
transmission can be done.
19
The Limitations of EZW algorithm
bad
  • It is not possible to encode sub-images because
    the entire image must be transformed before the
    encoding can start.
  • EZW algorithm is computational expensive

20
1-D RMF Example
Complete wavelet coefficients for (x1, x2)
Complete wavelet coefficients for (x1, x2, x3, x4)
S1 D1 d1 d2 S2 D2 d3 d4
filter
input
Wavelet coefficients
The RMF computation maintains the spatial
locality coherence
21
2-D RMF Example
The new HH band is the concatenation of the four
smaller HH bands The new HL band is the
concatenation of the four smaller LH bands
followed by the column-wise 1-D RMF The new LH
band is the concatenation of the four smaller HL
bands followed by the row-wise 1-D RMF The new LL
band is the concatenation of the four smaller LL
bands followed by the 2-D RMF
22
RMF-EZW basic idea (1)
  • The sub-image level coding is possible because
  • we have the complete wavelet coefficients for
    each sub-image.
  • For each of them, we apply the EZW algorithm.

23
RMF-EZW basic idea (2)
  • In the original EZW algorithm, each time when we
    check one coefficient is a ZTR or not, we compare
    all its descendants with the threshold This is
    very time-consuming!
  • However, if we know the maximum absolute value
    among these descendants, we only need to compare
    this maximum absolute value with the threshold.
    If the maximum absolute value is smaller than the
    threshold, we can claim that there is no
    descendant of the current coefficient has an
    absolute value that is larger than the threshold
    and the current node is a zero-tree root
  • Obviously, the maximum value for each sub-band
    should be maintained, we call this maximum value
    band_max value.

24
RMF-EZW basic idea (3)
  • There are two kinds of band_max value.
  • The current_band_max value of each band is the
    maximum absolute value of wavelet coefficients
    for that band and its descendant sub-bands.
  • The previous_band_max value is the value that is
    propagated to the next step of the RMF
    computation in order to efficiently generate the
    current_band_max values for the next step
    band_max construction.
  • The band_max could be constructed as a
    by-product of the RMF computation

25
RMF-EZW band_max construction (1)
The construction of the band_max in HH band
  • current_band_max_HHoctave
  • max(maxWT1WT4(previous_band_max_HHoctave,
    current_band_max_HHoctave-1
  • previous_band_max_HHoctave
  • current_band_max_HHoctave

Because in 2-D RMF computation, the new HH band
is just the concatenation of the four smaller HH
bands, the maximum in the new HH band is simply
the maximum among the the four maximums in the
smaller HH bands.
26
RMF-EZW band_max construction (2)
The construction of the band_max in HL band
  • current_band_max_HLoctave
  • max(maxWT1WT4(previous_band_max_HLoctave),
    max(the first two rows in HL octave)
    current_band_max_HLoctave-1)
  • In the new HL band, only the coefficients in the
    first two rows are new.
  • previous_band_max_HLoctave
  • max(maxWT1WT4(previous_band_max_HLoctave),
  • max(second row in HL octave))
  • The coefficients in the first row will be
    replaced by new data so they shouldnt be
    considered.

27
RMF-EZW band_max construction (3)
The construction of the band_max in LH band
  • current_band_max_LHoctave
  • max(maxWT1WT4(previous_band_max_LHoctave)
    max(the first two columns in the LH octave),
    current_band_max_LHoctave-1)
  • In the new LH band, only the coefficients in the
    first two columns are new.
  • previous_band_max_LHoctave
  • max(maxWT1WT4(previous_band_max_LHoctave,
  • max(the second column in LH octave)
  • The coefficients in the first column will be
    replaced by new data so they shouldnt be
    considered.

28
RMF-EZW an example (1)
29
RMF-EZW an example (2)
ZTR
When we encode 23, instead of comparing all its
descendants with T, we only need to compare
current_band_max_HH2 with T. We save 19
comparisons! Suppose we have a ZTR in the
highest octave of a 512512 image, In the
original EZW algorithm, we need 87380 comparisons
but now we need only ONE!
Current_band_max_HH16
Current_band_max_HH214
30
RMF-EZW The experimental results (1)
The sub-image level coding
31
RMF-EZW The experimental results (2)
Comparison of the Execution Time by EZW algorithm
and RMF-EZW algorithm
32
RMF-EZW The experimental results (3)
Comparison of the Execution Time by EZW algorithm
and RMF-EZW algorithm
33
RMF-EZW conclusions
  • The RMF algorithm makes the sub-image level EZW
    coding possible.
  • The band_max information, which is generated as
    the by-product of RMF computation, could improve
    the speed of the EZW coding by 11 (for 3232
    image) to 50 (for 512512 image) or even higher
    depends on the image size.
Write a Comment
User Comments (0)
About PowerShow.com