You will be required to submit a written report on your project as well
as make a presentation. Most people opt to use Power Point for their
presentations. I am also going to require that you save your presentation
in HTML format. We can then post your presentation on the CAM Website.
If you do your presentation in Power Point, you can easily save it as
HTML.
Project assignments will be announced on Monday, May 3, 2004.
Once you or your group has selected a project, we will set up meeting
times to further outline the work for the project.
- Wavelet Packets and Audio/Image
Compression
- Wavelet Packets is a variation on the wavelet decomposition method.
Consider applying a wavelet transform on a one dimensional signal. Then
the data is transformed into a lowpass and a highpass portion. We can
iterate then by transforming the lowpass portion again. Wavelet packets
simply allow you to apply the wavelet transform on the highpass portion
(at any iterative level) you so desire. Thus you have several options
for decomposing a signal. Coifman and Wickerhauser devised an entropy
based method for determining the best decomposition. In the first
part of this project, you will learn the mathematics behind wavelet
packets and the best basis selection method of Coifman and Wickerhauser.
You will then apply wavelet packets to the problem of audio/image
compression.
For the application portion of this project, you will take several test
images/sounds and apply a wavelet packet decomposition to them. You will
then compute the cumulative energy of this transform to determine the
compression rate of the transform. You will compare this to Daubechies
4,6 term wavelets as well as a couple of biorthogonal wavelet
transformations.
Your report/presentation should discuss the mathematics behind
wavelet packets as well as a discussion of the best-basis selection
process. You should also then create Mathematica code to do the
audio/image compression and then run it on 3-4 test images/sounds.
- The Cascade Algorithm
- Attached to each set of filter coefficients is a scaling function.
In this project you will investigate a method for generating these
functions called the Cascade Algorithm. The algorithm works by
taking an initial guess to the scaling function and processing it
through the dilation equation. This produces the next guess and
then you iterate. Of course, we must first know if the process
will converge to the scaling function before we implement it. To
successfully complete this project, you would need to:
- Familiarize yourself with the Cascade Algorithm and then
understand conditions that guarantee its convergence.
- Write software that, given a filter h and a number
of iterations i, produces an approximate of the
scaling function.
- Demonstrate your algorithm on several filters.
- BootStrapping and Edge Detection
- A key application of wavelet transformations is boundary or edge
detection. In this application, it is your task to find boundaries or
edges in images. You start by taking the wavelet transform of an image
and then you consider only the details of the transform. Large values
in the detail portion of the detail sections often indicate boundaries
in the original image. After deciding which large detail values to keep,
the remaining detail values are converted to zero and the detail portions
of the transformation are combined to produce a picture of the edges in
the original image.
Bootstrapping is a statistical method that you will apply to determine
which detail coefficients you will keep. You will learn the mathematics
behind bootstrapping and then apply it to 3-4 test images. For
comparison purposes, you will use the Daubechies 4-term transform on all
of your test images. You will then reconstruct the image of edges and
see how bootstrapping did. You will compare your results to those obtained
by using elementary statistical methods for determining which detail
coefficients to keep.
Your report/presentation should discuss the mathematics behind
bootstrapping. You should also then create Mathematica code to do
bootstrapping and use it to edge detect 3-4 test images.
- Biorthogonal Wavelets - Mathematical
Derivation
- Other than the Haar filter, none of the filters in the Daubechies
family are symmetric. Symmetric filters are often desirable in image
processing applications. It is possible to alter the construction to
obtain symmetry, but it turns out that you must sacrifice orthogonality.
In this project, you will derive a class of biorthogonal filters.
The idea here is to develop a symmetric lowpass filter that satisfies the
derivative conditions (and it's corresponding highpass filter) AND a
dual pair of lowpass/highpass filters that we can use for the inversion
process.
The mathematical derivation is done exclusively in the Fourier domain.
Students who took Math 315 last fall might enjoy this project.
Your final report will be a detailed discussion of the derivation of the
so-called spline biorthogonal filters.
- Biorthogonal Wavelets - Implementation
- The Wavelet Transform for a biorthogonal filter pair is a bit different
than the one for an orthogonal filter. This transform uses two filters
to process/invert the input. In this project, you will develop a
Mathematica module that takes a biorthogonal filter pair, computes the
corresponding highpass filter pair, and then processes either a matrix
or vector of input. You need to also develop the inverse transform and
iterated versions of both the transform and its inverse.
This project is primarily programming. It main difficuly lies with how
to implement two filters in the transformation scheme instead of the one
filter we used when developing modules to implement Daubechies family
or Coiflets.
Your report/presentation should be the Mathematica modules you have
developed to do the iterated versions of the wavelet transform with a
biorthogonal filter and its inverse. You should also compare several
biorthogonal filters (provided by me or the student doing the preceding
project!) by processing 2-3 images with them and measuring the entropy
of the transform.
- Factoring the Daubechies 4-Term Transform Matrix
- This project is quite theoretical in design but has applications
in data compression. Consider the Discrete Daubechies Wavelet Transform
built from the 4 term filter. Writing this matrix in an alternative form
leads to a factorization that is very insightful geometrically. This
factorization also allows us to see a way to modify this transform so
that we can make integers to integers.
In this project you will learn about the Singular Value Decomposition
(maybe you've seen it in Math310) and how to use it to factor the
Daubechies transform.
You will then show how to use this factorization to modify the transformation
so that it can successfully be used to map integers to integers (integers
are much easier to quantize for compression routines than the normally
noninteger values returned by transform).
- Image Identification (experimental!)
- Suppose you have a library of digital images and wish to match it
with a new image. Can we use wavelets to do it? If so, how? In this
project, you will create a library of images and then use wavelets to take
a test image and determine if it matches any image in your library.
Your report/presentation should be the mathematics behind your method for
determining the image match. You should also then
create Mathematica code for image identification and then
run your code on 3-4 test images.
- Entropy Encoding
- This project involves wavelets indirectly. We've talked a lot about
compressing transformed data. That is, for values below a certain
tolerance, we simply convert them to 0. But how do we actually encode the
data to make the filesize smaller? In this project, you will learn about
one such method. Entropy encoding is a straightforward process of
replacing characters or strings of characters by other characters so as
to make the resulting file smaller.
You will learn how entropy encoding works and then write a mathematica
module to encode a data set. You will write the original data, the
transformed data, and the encoded data to disk and see the savings in
file size. You will perform this test on 5-6 test files to determine the
efficiency of the algorithm.