Pages

Thursday, May 9, 2013

Validation And Implementation Of Spiht For Image Compression (Set Partitioning In Hierarchical Trees ) part 1

Validation And Implementation Of Spiht For Image Compression(Set Partitioning In Hierarchical Trees )  Part 1


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. How­ever, 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 coeffi­cients 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 lo­cation (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 coordi­nates 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 Fig­ure 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]
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.
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 coordi­nate 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 trans­mit 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