Discrete Wavelets

Final Projects

Helmut  Knaust - Department of Mathematical Sciences, University of Texas at El Paso, hknaust@utep.edu
11/03/2016

Final Project presentations will take place during final exam time on Tuesday, December 6, 17:00-18:45.

Each student group will give a 20 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 preparation and the presentation. Include references if you are using resources other than the ones listed below.

All electronic material  presented has to be turned in to the instructor by Sunday, December 11.

Final project selection will take place on Thursday, November 10, during class time.

Project 1: Alejandro, Mayra
Lossless JPEG2000 with Lifting

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

1. Implement  the grayscale algorithm as described in our textbook, Sections 12.2 and 12.3.
2. Implement the corresponding color algorithm using Reversible Component Transformation (RCT).

Reversible Color Transform (RCT) uses a modified YUV color space that does not introduce quantization errors, so it is fully reversible. Proper implementation of the RCT requires that numbers are rounded as specified that cannot be expressed exactly in matrix form. The transformation is:

Y =⌊((R+2G+B)/4)⌋; (Subscript[C, B])=B-G; (Subscript[C, R])=R-G
and

G = Y - ⌊(((Subscript[C, B])+(Subscript[C, R]))/4)⌋; R=(Subscript[C, R])+G; B=(Subscript[C, B])+G, respectively. 
Here ⌊.⌋ denotes the floor function.

In both cases the image reconstructed by the receiver will be identical to the one seen by the sender.

Project 2
Cascade Algorithms

Cascade Algorithms 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 and van Fleet’s book for the scaling and wavelet functions for D6 and D8. 
(A copy of the book is available for your perusal.)
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 D6 and D8. 

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

Project 3
Matrix Completion

1. Explain the procedure outlined in Problem 7.19 in the textbook, then use Mathematica to present the solution.
2. Write commands similar to “D4” (see DW.m) for the Matrix Completion of the Daubechies-4 Filter developed in Problem 7.19.
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 4: Alberto, Gerardo, Jasmine
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 (This command will not run on your computer since you don't have 'DW1.m'):

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

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

The basic command to plot trees is 'TreePlot' :

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

Project 5: Agatha, Brenda
JPEG Algorithm

Explain and implement the JPEG algorithm for grayscale images (see Section 12.1 in the textbook). Research whether there are other normalization matrices - what is the rationale for the choice of the coefficients?