Upload
deepa-elango
View
189
Download
0
Tags:
Embed Size (px)
Citation preview
A PROJECT REPORT ON
A VLSI PROGRESSIVE CODING FOR WAVELET-BASED IMAGE COMPRESSION
DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING
www.studentseminars.in
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 TransformWavelet TransformApplication of WT
Discrete Wavelet Transform
a
bt
at
ba 1
)(,
; a, b R1 and a>0
Function of DWTFunction of DWT
Fig: 1D WAVELET TRANSFORM
)(),(,,ttx
nmnmw ; m, n €Z
)},({),( jipDWTjic .
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 (0, 0) = 26 (0, 1) = 6 (1, 0) = -7 (1, 1) = 7
LSPEMPTY
LIS(0, 1)= {13, 10, 6, 4}(1, 0)= {4,-4, 2,- 2}(1, 1)= {4,-3,-2, 0}
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)}
•LSP={ (0,0)}
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’SProcess 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) }
)},({),(ˆ jicIDWTjip
called as “progressive transmission”
DECODERAn example of decoding the above transmitted bit is as shown belowFirst 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 insignificantProcess 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: m n
nmnm tWtx )()( ,,
EDK Tool (XPS 8.1i),
Matlab 7,
Visual Basic 6.0