Discrete Wavelets

Final Projects

Helmut  Knaust - Department of Mathematical Sciences, University of Texas at El Paso, hknaust@utep.edu
04/16/2025

Final Project presentations will take place during the final exam period (Tuesday, May 13, at 13:00).
Each student group will give a 15 minute presentation.  The presentation needs to include a Mathematica notebook. You will be graded on the mathematical correctness of the presentation,  the quality and completeness of  the notebook and other material you prepare, and the quality of your oral presentation. All group members must participate equally in the presentation. Give references to sources you use other than the ones listed below.

All electronic material to be presented has to be turned in to the instructor by May 15.

Final project selection will take place on Thursday, April 24, during class time.

Project 1
Lossless JPEG2000 with Lifting

There is a lossless version of the JPEG2000 algorithm designed for archiving. 

Implement  the grayscale algorithm as described in our textbook, pp. 461-471 and Example 12.4. What is the entropy of the transformed image? Check that the original image seen by the sender will be identical to the one reconstructed by the receiver.

Project 2
Fusing Grayscale and Color Images

In remote sensing, the transmission channel can be very "narrow". To conserve bandwidth, the sender may transmit a detailed grayscale image and a small color image of the same scene. It is then up to the sender to fuse the image to obtain a detailed color image. One such fusing procedure is described in Shutao Li, James T. Kwok, Yaonan Wang: Using the discrete wavelet frame transform to merge Landsat TM and SPOT panchromatic images.
The images can be downloaded here.

+=?

Project 3
Cascade Algorithm

The Cascade Algorithm can be used to construct approximations to the scaling and wavelet functions using the coefficients of the discrete wavelet algorithm.

1. Implement the continuous algorithm described in Ruch & van Fleet's book for the scaling functions and the wavelet functions for D4 and D8.
2. Implement the algorithm “Construction 3” described in Gilbert Strang: Wavelets and Dilation Equations. SIAM Review, Vol. 31, No. 4. (1989), pp. 614-627, on pages 0-3 and 0-4. Again, do this for D4 and D8. 

Below are pictures of the scaling function (blue) and wavelet function (red) for D6.

Project 4 
Matrix Completion

1. Explain the procedure outlined in Problem 5.15 in the textbook, then use Mathematica to present the solution.
2. Write commands similar to “D4” (see DW.wl) for the Matrix Completion of the Daubechies-4 Filter developed in Problem 5.15.
3. Check that the matrix generated by your commands in Step 2 is orthogonal.
4. Take a grayscale picture of your choice, apply your transform once (and twice) to the image, and check on artifacts at the edges of the blur portion of the transformed image. 
5. Implement a similar procedure for the D6 filter. The instructions in D6c may be helpful.

Project 5 
Huffman Trees

Write a program to display a Huffman Coding Tree for a given vector of symbols.

The output should look something remotely similar to the tree below.

HuffmanTree[{t,w,o,t,w,o,s,t,o,t,o,u,l,o,u,s,e}]

An intermediate solution is to display the information step - by - step :

HuffmanTreeStep[{t,w,o,t,w,o,s,t,o,t,o,u,l,o,u,s,e},1]

HuffmanTreeStep[{t,w,o,t,w,o,s,t,o,t,o,u,l,o,u,s,e},2]

The basic Mathematica command to plot trees is 'TreePlot' :

TreePlot[{1->2,1->3,1->4,3->5,6->7},VertexLabeling->True]