ECE 178: Project Description

DUE: Last Day of the Quarter. See target dates for the individual components of the projects.

Note: The following is based on the laboratory projects described on the Text Book's web site at http://www.imageprocessingbook.com/teaching/laboratory_projects.htm. You are encouraged to read through the sections on programming and submitting project reports. It is expected that you will do all the programming in MATLAB.  If you plan to use any other software environment, please contact the instructor well in advance.

This project will explore the idea of wavelets for image coding and compression applications. The project itself will be a series of mini-programming assignments that will lead you the compression application. We will be having discussion sessions on the project during the next couple of weeks.

Examples, Figures and Sections refer to the Text Book.

______________________________________________________________________________________

SUGGESTED FORMAT FOR SUBMITTING PROJECT REPORTS

Because laboratory projects are in addition to course work, it is suggested that project reports be kept short, and be organized in a uniform manner to simplify grading.  The following format achieves these objectives.

Page 1. Cover Page.  Typed or printed neatly.

Page 2. Technical discussion. One to two pages (max).  This section should include the techniques used and the principal equations (if any) implemented.

Page 3 (or 4).  Discussion of results.  One to two pages (max).  A discussion of results should include major findings in terms of the project objectives, and make clear reference to any images generated.

Results.  Includes all the images generated in the project.  Number images individually so they can be referenced in the preceding discussions.

AppendixProgram listings.  Includes listings of all programs written by the student.  Standard routines and other material obtained from other sources should be acknowledged by name, but their listings should not be included.

Layout.  The entire report must be in standard sheet size format (8.5 x 11 inches in the U.S.)  All sheets should be stapled in three locations to form a binding booklet-like support on the left margin.   

__________________________________________________________________________________

NOTE: Try to follow the target dates for the individual sub-projects (but you do not need to submit the project reports on those target dates).. Prepare the reports for each of the projects SEPARATELY as per the above guidelines. Submit them together on or before March 14, 2003, the last day of the quarter.

Step 1 (PROJECT 07-01) One-Dimensional Discrete Wavelet Transforms  (Feb 21)

The purpose of this project is to build a rudimentary wavelet transform package using Haar wavelets that can be used in projects that follow. You will use an "averaging and differencing" approach that is unique to Haar basis functions. As an introduction to the method, consider the function in Example 7.8. The necessary "averaging and differencing" operations are:

Step 1: Compute two-point sums and differences across the function vector and divide the results by the square root of 2. Since f(x) = {1, 4, -3, 0}, we get

{1 + 4, -3 + 0, 1 - 4, -3 - 0} / 1.414

{5, -3, -3, -3} / 1.414

Note that the sums are positioned consecutively at the beginning of the intermediate result and followed by the corresponding differences.

Step 2: Repeat the process over the sums computed in the first step to get

{[5 + (-3)] / 1.414, [5 - (-3)] / 1.414, -3, -3} / 1.414

{2 / 1.414, 8 / 1.414, -3, -3} / 1.414

{1, 4, -2.121, -2.121}

The coefficients of the final vector match those in Example 7.8. The two-step computation generates a two-scale DWT with respect to Haar wavelets. It can be generalized to higher scales and functions with more than 4 points. Moreover, an inverse DWT can be computed by reversing the process.

(a) Write a program to compute j-scale DWTs with respect to Haar wavelets. Let scale be an input parameter and assume a 2M point discrete one-dimensional function. Use the averaging and differencing approach described above.

(b) Write a program to compute the inverse DWT of a j-scale DWT based on Haar wavelets.

(c) Test your programs using the function in Example 7.8.

 

Step 2 (PROJECT 07-02):   Two-dimensional Discrete Wavelet Transforms  (Feb 28)

(a) Use the routines developed in Step 1 (Project 07-01) to write a program that computes j-scale two-dimensional DWTs with Haar wavelets. Base your routine on the discussion of separable wavelets and two-dimensional wavelet transforms in Section 7.5.

(b) Download the image of Fig. 7.1 and use your program to generate the three-scale DWT (or Haar transform) shown in Fig. 7.8(a). Label the various detail and approximation coefficients that make up the transform and indicate their scales.

(c) Write a program to compute the inverse two-dimensional DWT with respect to Haar wavelets and use it to reconstruct the original image from the wavelet decomposition in (b).

(d) Write a program to scale the detail coefficients of the DWT in (b) so that the underlying structure is more visible. The approximation coefficients do not need to be scaled.

 

Step 3 (PROJECT 07-03): Wavelet Transform Modifications  (March 7)

Download the image from Fig. 4.18(a) and pad it with 0s to obtain a 512 x 512 array. Use the two-dimensional DWT program developed in Step 2 (Project 07-02) to compute the transform of the padded image at a variety of scales between 1 and 9.

(a) Zero the approximation coefficients of the generated transforms and record your observations regarding subsequently reconstructed images. That is, compute the inverse transforms of the decompositions after the approximation coefficients have been zeroed and record the impact on the transform modifications.

(b) Repeat the process in (a) but zero the horizontal detail coefficients instead.

(c) Repeat the process in (a) but zero the vertical detail coefficients instead.

(d) Repeat the process in (a) but zero both the horizontal and vertical detail coefficients.

 

Step 4 (PROJECT 08-04) Wavelet Coding  (March 14)

Download and compress the image of Fig. 8.23 using the Haar-based DWT program of Step 2 (Project 07-02). Use various scales while truncating the detail coefficients to achieve compression.

Write a program to compute the root-mean-square error [see Eq. (8.1-8)] and mean-square signal-to-noise ratio [per Eq. (8.1-9)] of a compressed- decompressed image. Quantify the reconstruction error of the wavelet compressed-decompressed image using this program.