Beruflich Dokumente
Kultur Dokumente
ABSTRACT:
Since being introduced by Shapiro [4], the zerotree wavelet image coding
subset trees in the sorting order. The three lists become drawbacks for a
to maintain these lists. For color image coding the memory demand
single entry of the list needs 18 bits of memory to store the row and
column coordinates. Given that the total number of list entries of a single
the total memory required is 3.375 MBytes 1 and the required memory
lists are needed during coding and decoding. Instead, a color co-efficient
only needs a 3-bit flag if the coefficient is in the first wavelet transform
sequence of Y tree, V tree, then U tree, and the coding can stop at any
in section 5.
Coding Algorithm
LZC coding algorithm and SPIHT are quite alike. How-ever, since the
usage of lists had been abandoned by LZC, different tree structure and
coding procedure were developed for LZC. The tree symbols of LZC
D (ie. storing temporary zerotree structure) arefd map and fcfC map, re-
the image. Whereas the size of FD map is only a quarter of the image
for a 512x512 color image, the total memory required to store zerotree
structure is only 120KBytes (2) for all bit rates. Comparing to the 3.375
equation.
The pseudo code of LZC main coding procedure which controls the
2^n-2 n .In the first run, LZC codec encodes the magnitude, sign, and
After that, the number is decreased by one giving threshold 2^n and the
coefficient.
Otherwise the codec compares C(i; j) with the current threshold. If C(I,j)
is significant then codec outputs the most significant bit (MSB) and sign
bit of C(i; j) and set the flag map Fc(I,j) to –l. Furthermore, the codec
position (I,j)is set to –l- ie.D(i; j) is significant in previous run, then the
LZC codec codes the tree branches in set D(i; j) directly. On the other
hand, if the descendant set Fd(I,j) ) is not significant in the previous run,
significant, then LZC codec sets the mapFd(I,j) ) to -l- partitions D(I,j)
into different tree branches, and codes the partitioned trees. Otherwise the
Advantages of LZC:
scheme [5] was the first algorithm to demonstrate the use of flag maps to
reduce the memory requirement for DWT image coding, there are still
D(i,j).The root C and the set D are further grouped together to form a
spatial tree T(i,j). This tree structure is good only at a very low bit-rate
redundant. Hence, the bit budget will be wasted in coding the symbol T.
For LZC, the tree only consists of the tree root C and its descendant
rate. In addition, the reduction in the size of the set of tree symbols makes
a LZC codec is simpler than an EZR codec. Secondly, the zero tree
the LL quadrant are considered as isolated tree roots and do not have any
needed for high wavelet transform levels. Also, depending on the image
size, there might be few dyadic wavelet transform levels available with
the result that many coefficients may remain in the LL band, resulting in
By contrast, the LZC algorithm adopts Shapiro’s zero tree relation. That
is, a coefficient in the LL band has one child in each of the high requency
band has four children in the same spatial location of the finer trans-form
level. By using this tree relation in LZC, the image can be wavelet
the coding results can still be good. Hence, LZC is a better algorithm
than ERZ for im-ages that have relatively few dyadic wavelet transform
lev-els.
In addition, for this tree relation, LZC is better than SPIHT because LZC
does not require the dimension of the frequency bands in the highest
circuits are needed by a SPIHT codec for the image size adjustment.
Also, the coding procedure of SPIHT is divided into sort-ing pass and
refinement pass. The control flow of switching between these two passes
were merged into just one single pass which in turns results in a simpler
Procedure Main Encoding
Step 1:
for all Y, U, and V components
output n =|log (max(I,j)|C(I,j)|;
for all (i,j) set
C(i,j) = 0 and D(i,j) = 0;
F F
Step 2:
for all Y, U, and V components
for all C(i,j) R(i,j) do
2
if C(i,j) = 1 then
F
output the nth significant of |C(i,j)|;
else
output n(C(i,j));
S
if n(C(i,j)) = 1 then
S
output the sign of C(i,j)
and set C(i,j) = 1;
F
Step 3:
for all Y, U, and V components
for all D(i,j) E R(i,j) do 2
if D(i,j) = 1 then
F
for each C(k,l) E O(i,j)
EncodeTree(k,l,n,level);
!
else
output n(D(i,j));
S
if n(D(i,j)) = 1 then
S
set D(i,j) = 1;
F
for each C(k,l) E O(i,j)
EncodeTree(k,l,n,level);
!
Step 4:
decrease n by 1;
go back to Step 2;
End
if D(i,j) = 1 then
F
if C(i,j) = 1 then
F
output the nth significant bit
of |C(i,j)|;
else
output n(C(i,j));
S
if n(C(i,j)) = 1 then
S
output the sign of C(i,j) and
set C(i,j) = 1;
F
for each C(k,l) E O(i,j)
!EncodeTree(k,l,n,level1);
else
if C(i,j) = 1 then
F
output the nth significant bit
of |C(i,j)|;
output n(D(i,j));
S
if n(D(i,j)) = 1 then
S
set D(i,j) = 1;
F
for each C(k,l)E O(i,j)
!EncodeTree(k,l,n,level1);
else
output n(C(i,j));
S
if n(C(i,j)) = 1 then
S
output the sign of C(i,j) and
set C(i,j) = 1;
F
for each C(k,l)E O(i,j)
!EncodeTree(k,l,n,level1);
End
Experimental Results
Our test LZC codec was written in ANSI C. The wavelet filter used in the
test is the Daubechies’ 9/7 filter [1]. The color images are transformed to
YUV color space before coding. After LZC, the bit-stream is further
arithmetic coded using Witten, Neal and Cleary’s method [6].The wavelet
per line. The function f and the function ~ f represent the original image
PSNR results are particularly lower than SPIHT’s, but for some images
the differences are getting closer as the bit-rate increasing. At high bit-
rates, in some cases LZC’s results are very close to SPIHT’s or even
better. The average difference of LZC’s results is about 0.7 db lower than
SPIHT’s.
PSNR values from software implementation are only slightly lower than
the SPIHT’s results, and in some case our results are slightly better than
SPIHT’s. Also, the visual quality of the LZC coded images is comparable
to SPIHT’s - that is, rather good for such a simple algorithm. This is the
trade off between slightly better PSNR values of coded images and the