You are on page 1of 25

A PROJECT REPORT ON

A VLSI PROGRESSIVE CODING FOR WAVELET-BASED


IMAGE COMPRESSION

www.studentseminars.in

DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING


This paper describes the hardware design flow of lifting based 2-D
Discrete Wavelet Transform (DWT) processor for JPEG 2000.
In order to build high quality image of JPEG 2000 codec, an effective
2-D DWT algorithm has been performed on input image file to get the
decomposed image coefficients.
The Lifting Scheme reduces the number of operations execution steps
to almost one-half of those needed with a conventional convolution
approach. Initially, the lifting based 2-D DWT algorithm has been
developed . The DWT modules were simulated using XPS(8.1i) design
tools.
A majority of today’s Internet bandwidth is estimated to be used for
images and video. Wavelet based techniques such as JPEG2000 for
image compression has a lot more to offer than conventional methods
in terms of compression ratio. The main aim of the project is to
implement and verify the image compression technique and to
investigate the possibility of hardware acceleration of DWT for signal
processing applications. A hardware design has to be provided to
achieve high performance, in comparison to the software
implementation of DWT. EDK Tool (XPS 8.1i), Matlab 7, Visual Basic
6.0, Xilinx Spartan-3E FPGA Kit
Languages Used: System C., JPEG2000 (SPHIT), FDWT
Fig : Block Diagram of image compression
Wavelet Transform
Application of WT
Discrete Wavelet Transform

1 t b
 a,b (t )  a   a ;a, b  R and a>0
1
Function of DWT

w
m ,n
 x(t ), (t )
m ,n ; m, n €Z
Fig: 1D WAVELET TRANSFORM
c(i, j )  DWT { p(i, j )}
.
Where c (i, j) is the wavelet
coefficients.
To illustrate how the SPIHT Coding works lets look at the following example

Fig: 2.4.4 a 4x4 matrix showing the pixel values of a digital image.
The first step in SPIHT coding is the initialization of the sets LSP, LIS, LIP which is done as shown below
LIP LSP LIS
(0, 0) = 26 EMPTY (0, 1)= {13, 10, 6, 4}
(0, 1) = 6 (1, 0)= {4,-4, 2,- 2}
(1, 0) = -7 (1, 1)= {4,-3,-2, 0}
(1, 1) = 7

n = log2 (MAX COEFF)


n=log2(26) =4
After First Sorting Pass
Threshold To= 2n=24=16
•Process LIP

•S(0,0)=26>To, we transmit 1, since 26 is +ve ,we transmit 0; then move (0,0) to LSPT
(Temporary), then
•S(0,1)=6, S(1,0)= -7, S(1,1)=7 are all <To hence they are insignificant , therefore transmit
three 0,
Process LIS
•DS(0,0)=13, DS(0,1)=10, DS(1,0)=4 ,DS(1,1) are all less than To hence we transmit 0 for the
complete set S(0,1) similarly the sets S(1,0) and S(1,1) are insignificant hence transmit two
0’s
We need not process LSP since it is null
•Update LSPT to LSP
•The transmitted bit stream is 10000000(8 bits)
•LIP={(0,1),(1,0),(1,1)}
•LIS={D(0,1),D(1,0),D(1,1)}
Fig: 2.4.6 BLOCK DIAGRAM AFTER
FIRST SORTING PASS
n=4-1=3, Threshold T1= 2n=23=8
Process LIP
S(0,1)=6, S(1,0)=-7, S(1,1),=7, are insignificant ,hence we transmit 3 0’S,
Process LIS
DS (0, 0) =13, DS (0, 1) =10, these two are > T1 hence we transmit 1 for the set
then we transmit 10 for 1 and again we transmit 10 for 10, then move (0, 2) and (0, 3)
to LSPT
DS(1,0)=6 and DS(1,1)=4 < T1 we transmit two O’S ,then move (1,2) and(1,3)
to LIP
The sets D (1, 0) and D (1, 1) are insignificant hence we transmit two 0’S
Process LSP
C (0, 0) =26= (11010)2 ---- TRANSMIT NTH MSB =1
•Update LSPT to LSP
•The transmitted bit stream is 0001101000001(13 bits)
•LIP={(0,1),(1,0),(1,1),(1,2),(1,3)}
•LIS={D(1,0),D(1,1)}
•LSP={ (0,0),(0,2),(0,3) }
pˆ (i, j )  IDWT {c(i, j )}
called as “progressive
transmission”
DECODER
An example of decoding the above transmitted bit is as shown below
First Receive
Get n=4, To=2n = 16
LIP = {(0, 0), (0, 1), (1, 0), (1, 1)}
LIS ={ D(0,0),D(0,1),D(1,0),D(1,1)}
LSP = { }
The transmitted bit stream is 10000000(8 bits)
Process LIP
Get 1=S(0,0) is significant, next is zero hence +ve value; move S(0,0) to LSP,
Then construct C(0,0)=(3/2)TO=(3/2)16 =24
Get three 0 = S (0, 1), S (1, 0), S (1, 1) are insignificant
Process LIS
Get three 0 = DS (0, 1), DS (1, 0), DS (1, 1) are insignificant
LIP = {(0, 1), (1, 0), (1, 1)}
LIS ={ D(0,1),D(1,0),D(1,1)}
LSP = {(0, 0)}
24 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

PIXELS AFTER FIRST RECIEVE


Second receive
Get n=4-1=3, T1=2n = 8
LIP = {(0, 1), (1, 0), (1, 1)}
LIS ={ D(0,1),D(1,0),D(1,1)}
LSP = {(0, 0)}
The transmitted bit stream is 0001101000001(13 bits)
Process LIP
Get 000 =S (0, 1), S (1, 0), S (1, 1) are insignificant
Process LIS
Get 1 = DS (0, 1) is significant
Get 10 = C (0, 2) is a positive significance
Move (0, 2) to LSP, then reconstruct C (0, 2) = + (3/2) T1 = (3/2)8 = 12
Get 10 = C (0, 3) is a positive significance
Move (0, 3) to LSP then reconstruct C (0, 3) = + (3/2) T1 = (3/2)8 =12
Get 00 = C (1, 2), C (1, 3) are insignificant move to LIP
Get 00 = DS (1, 0), DS (1, 1) are insignificant
Process LSP
Get 1, then add 2 n-1 to C (0, 0) = 24+2 n-1=24+2 2 =24+4 =28
28 0 12 12

0 0 0 0

0 0 0 0

0 0 0 0

PIXELS AFTER SECOND RECIEVE


inverse DWT is given as: x(t )  Wm,n m,n (t )
m n
EDK Tool (XPS 8.1i),
 Matlab 7,
Visual Basic 6.0

You might also like