Validation And Implementation Of Spiht For Image
Compression(Set Partitioning In Hierarchical Trees ) Part 1
where Cmax is the maximum magnitude of
the coefficients to be encoded. The LIP list is initialized with the set 'H.
Those elements of 'H that have descendants are also placed in LIS as
type D entries. The LSP list is initially empty.
Validation And Implementation Of Spiht For Image Compression(Set Partitioning In Hierarchical Trees ) Part 2
Abstract:
Embedded zerotree wavelet coding introduced by
J.M.Shapiro[1] is a very effective and computationally simple technique for
image compression and is the basic of all image compression techniques.SPIHT is
a new and different image compression technique whose implementation is based
on set partitioning in hierarchical trees which provides better performance
than previously reported EZW and suppress the performance of the original EZW
and offers fast execution. In addition, coding and decoding procedures are
extremely fast ad they can be made even faster, with only small loss in
performance.
Need of compression: In many different fields,
digitized images are replacing conventional analog images as photographs or
X-rays .The volume of data required to describe such images greatly slow
transmission and make storage prohibitively costly. A fundamental goal of data compression is to
reduce the bit rate for transmission or storage while maintaining acceptable
image quality. Compression can be achieved by transforming the data by using a
suitable transform (mainly wavelet
transform ) [2] and then encoding this
transformed data.
Introduction:
Set Partitioning In Hierarchicl Trees(SPIHT) is a
generalization of EZW[1] developed by Amir Said and William Pearlman.In this
algorithm the partitioning of trees is done in a manner so as to group
insignificant coefficients together and thus be able to send more information at a low cost. By applying
the wavelet transform[4] ,image gets divided into four parts namely;LL,LH,HL
and HH. All the pixel coefficients after wavelet transform are called as
transformed coefficients..These coefficients are divided into the number of
sets.A significant test,
MAX{|ci ,j|}>= 2n?is applied to the
set.If the set is found to be significant it is again divided into the no of
subsets and again the significant test is applied.This procedure is repeated
unless and untill we get each and every single significant coefficient.
Wavelet transform:
Wavelet transform is mainly used in data compression.
Wavelet overview:Wavelets provide a way to break signal into its constituents parts in
multiresolution decomposition .Their main advantage is that they provide both
time (space)and scale (frequency) localization of the signal and hence provide
a time and scale- map of the signal enbling the extraction of the features that
vary in time.Finding the DWT of an image is of utmost importance to us;hence
that is explained next.
Discrete Wavelet
Transform(DWT) of an image
A 2D-DWT of an image is obtained by using a
low-pass and high-pass filters successively. In Figure we show how an image can
be decomposed using sub band decomposition. We begin with an N x M image. We
filter each row and then down sample to obtain two N x (M/2) images. We then
filter each column and sub sample the filter output to obtain four N/2 X M/2
images. Of the four sub images, the one obtained by low-pass filtering the rows
and columns is referred to as the LL image; the one obtained by low-pass
filtering the rows and
high-pass filtering the columns is referred to as the LH
image; the one obtained by high-pass filtering the rows and low-pass filtering
the columns is called the HL image; and the sub image obtained by high-pass
filtering the rows and columns is referred to as the HH image. Each of the sub
images obtained in
this fashion can then be filtered and sub sampled to obtain
four more sub images. This process can be continued until the desired sub band
structure is obtained. Three popular structures are shown in Figure., the LL
sub image has been decomposed after each decomposition into four more sub
images, resulting in a total of 10 sub images. This is one of the more popular
decompositions.The forward transform filters are called analysis filters and
the inverse transform filters are called synthesis filters.
Once the DWT of the image is taken,different algorithms are
used to encode and compress the transformed
coefficients.
SPIHT
Set Partitioning In Hierarchical Trees (SPIHT)is a
generalization of EZW developed by Amir Said and William Pearlman.In this
algorithm, the partitioning of trees (spatial orientation of trees )is done in
a manner so as to group insignificant coefficients together and thus be able to
send more information at a low cost.Instead of sending symbols for each element
of a treee,a symbol may be sent for the entire tree resulting in a better
compression.
The partitioning decisions are binary decisions that
are transmitted to the decoder, providing a significance map encoding that is
more efficient than EZW.
Let's briefly describe the
algorithm and then look at some examples of its operation. However, before we
do that we need to get familiar with some notation. The data structure used by the SPIHT
algorithm is similar to that used by the EZW algorithm
although not the same. The wavelet coefficients are again divided into trees[5]
originating from the lowest resolution band (band I in our case). The coefficients
are grouped into 2 x 2 arrays that, except for the coefficients in band I, are
offsprings of a coefficient of a lower resolution band. The coefficients in
the lowest resolution band are also divided into 2x2 arrays. However, unlike
the EZW case, all but one of them are root nodes. The coefficient in the
top-left corner of the array does not have any offsprings. The data structure
is shown pictorially in Figure for a seven-band decomposition.
The trees are further
partitioned into four types of sets, which are sets of coordinates of the
coefficients:
0(i,j) This is the set of coordinates of the
offsprings of the wavelet coefficient at location (i,j). As each node can either
have four offsprings or none the size of 0(i,j) is either zero or four. For
example, in Figure the set 0(0,1) consists of the coordinates of the
coefficients b1, b2, b3, and b4.
D(i,j) This is the set of all descendants of the
coefficient at location (i,j). Descendants include the offsprings, the
offsprings of the offsprings, and so on. For example, in Figure the set D(0,1)
consists of the coordinates of the coefficients b1,... ,b4,b11,
..., b14,..., b44 Because the number of offsprings can
either be zero or four, the size of D(i,j) is either zero or a sum of powers of
four.
H This is the set of all root nodes—essentially band
I in the case of Figure
£(i, j) This is the set of coordinates of all the
descendants of the coefficient at location
(i, j) except for the immediate offsprings of the
coefficient at location (i, j). In other words,
£ (i, j)= D(i, j) – 0(i, j).
In Figure the set £ (0,1) consists of the
coordinates of the coefficients b11, ..., b14,..., b44.
A set D(i,j) or £(i, j) is
said to be significant if any coefficient in the set has a magnitude greater
than the threshold. Finally, thresholds used for checking significance are
powers of two, so in essence the SPIHT algorithm sends the binary
representation of the integer value of the wavelet coefficients. The bits are
numbered with the least significant bit being the zeroth bit, the
next bit being the first significant bit, and the kth bit being
referred to as the k - 1 most significant bit.
With these definitions under
our belt, let us now describe the algorithm. The algorithm makes use of three
lists: the list of insignificant pixels (LIP), the list of 'significant pixels
(LSP), and the list of insignificant sets (LIS). The LSP and US lists will
contain the coordinates of coefficients, while the LIS will contain the
coordinates of the roots of sets of type D or £. We start by determining the
initial value of the threshold. We do this by calculating
n = [log2 Cmax]

In each pass, we will first
process the members of LIP, then the members of LIS. This is essentially the
significance map-encoding step. We then process the elements of LSP in the
refinement step.
We begin by examining each
coordinate contained in LIP. If the coefficient at that coordinate is
significant (that is, it is greater than 2"), we transmit a 1 followed by
a bit representing the sign of the coefficient (we will assume 1 for positive,
0 for negative). We then move that coefficient to the LSP list. If the
coefficient at that coordinate is not significant, we transmit a 0.
After examining each coordinate
in LIP, we begin examining the sets in LIS. If the set at coordinate (i,j)
is not significant, we transmit a 0. If the set is significant, we transmit
a 1. What we do after that depends on whether the set is of type D or £.
If the set is of type D, we check each of
the offsprings of the coefficient at that coordinate. In other words, we check
the four coefficients whose coordinates are in 0(i,j). For each coefficient
that is significant, we transmit a 1, the sign of the coefficient, and then
move the coefficient to the LSP. For the rest we transmit a 0 and add their
coordinates to the LIP. Now that we have removed the coordinates of 0(i,
j) from the set, what is left is simply the set £(i, j). If this set is
not empty, we move it to the end of the US and mark it to be of type £. Note
that this new entry into the LIS has to be examined during this pass- if
the set is empty; we remove the coordinate (i j) from the list.
No comments:
Post a Comment