ELEC 486/586: Multiresolution Signal and Geometry Processing (With C++)
NOTE: Please be sure to use the "refresh" button in your web browser to ensure that you are viewing the most recent version of this web document.
Table of Contents
- What Is The Course About?
- Demonstrations
- Accessing Course Materials
- Instructor
- Course Outline
- Office Hours
- Important Dates (Assignment Submission Deadlines)
- Coursepack
- Signal Processing Library (SPL)
- Datasets
- Exercises
- Assignments
- Project
- Final Exam
- Feedback on Course
- Additional References
- Other Fun Stuff
What is the Course About?
The course consists of four main components:
- multirate signal processing and applications (signal processing involving multiple sampling rates)
- subdivision surfaces, subdivision wavelets, and applications (multirate signal processing generalized to geometric objects)
- wavelet systems and applications (another perspective on multirate systems)
- C++ programming (classes, templates, generic programming), including industry-standard libraries such as the Open Graphics Library (OpenGL) and Computational Geometry Algorithms Library (CGAL)
The material covered in this course has applications in many diverse areas, including (but not limited to):
- signal processing
- communication systems
- biomedical systems
- computer graphics, animation, gaming, geometric modelling
- audio/image/video processing
- data compression
Subdivision surfaces are essentially multirate signal processing concepts
generalized to geometric objects.
If you want some basic idea of what subdivision surfaces are and how
they can be used, the videos below might prove enlightening.
Demonstrations
Are you wondering what application programs you will be able to write after having taken the course? This section shows some demonstrations of programs that students need to write for assignments in the course.
The following video gives a brief demonstration of the triMeshView
application program:
The following video gives a brief demonstration of the simple3
application program:
Accessing Course Materials
Some of the downloadable course materials associated with this web page may be stored in a private (i.e., secure/protected) area. Two levels of security are imposed on this area:
- First, this area is password protected.
- Second, this area is only accessible from machines on the university campus network.
In order to access the private area, you will need to know the appropriate username and password to use (for the web server). If you are taking this course, you should know the correct username and password (which were announced during the first lecture). Note that this username and password are not the ones for your Netlink/faculty/departmental account. If you would like to access the private area from outside the university campus network, this can be accomplished by using a proxy server.
Instructor
Michael Adams
E-Mail: mdadams (append "@ece.uvic.ca" for the complete address)
Office: EOW 311
For more sordid details about the instructor look here.
Course Outline
The course outline is distributed in hardcopy form during the first lecture. The course outline is also available via the following link:
Office Hours
My office hours will be posted here as determined sometime during the first few lectures.
Since I also teach ELEC 260 this term, I can often be found in my office either just after or just before my ELEC 260 office hours if you would like to try to meet with me then. My current office hours for ELEC 260 can be found here.
Important Dates (Submission Deadlines)
The following submission deadlines have been announced for (regular and programming) assignments and the project:
- Assignment P1: Due Tue May 15 at 14:30 pm
- Assignment P2: Due Tue May 22 at 14:30 pm
- Assignment R1: Due Fri Jun 1 at 12:00 pm (noon) in my mailbox in the ECE Office (EOW 448)
Coursepack
The coursepack is a required reference for the course and consists of two documents:
- the textbook for the course (referred to as the "coursepack textbook")
- the lecture slides for the course
The following documents relate to the coursepack:
- Coursepack Errata (which is updated throughout the term as bug reports are received)
- Coursepack Bug-Bounty Program Handout
Signal Processing Library (SPL)
The following documents relate to the Signal Processing Library (SPL):
Datasets
Several images, audio signals, and polygon meshes are provided below for use in the course. Some of these are needed for assignments, while others are not used in any assignments, but may be useful for the course project.
The following images are available:
The following audio signals are available:
The following polygon meshes are available:
Exercises
The exercises in this section are simply for extra practice. They are not to be submitted for marking.
The following programming exercises are available:
- Tutorial Exercises 1 (in PDF format)
- Tutorial Exercises 2 (in PDF format) ; myTest.cpp; myTest2.cpp; myTest3.cpp
- Tutorial Exercises 3 (in PDF format) ; myTest1.cpp; myTest2.cpp; qdn.cpp
- Tutorial Exercises 4 (in PDF format)
Assignments
Note: The "R" series of assignments (e.g., R1, R2, R3, and so on) are regular (i.e., non-programming) assignments, while the "P" series of assignments (e.g., P1, P2, P3, and so on) are programming assignments.
Regular Assignments (i.e., "R" Series Assignments)
The following downloads are available for regular assignments:
- Assignment R1 (Multirate Systems):
The following solutions are available for regular assignments:
Programming Assignments (i.e., "P" Series Assignments)
The following downloads are available for programming assignments:
- Assignment P1 (C++ Compiler, Build Tools, Debugger):
- Assignment P2 (Basic C++):
Since there is no one correct solution to the programming assignment problems, solutions to the programming assignments are not posted.
Course Feedback Questionnaire
The following download is available for the course feedback questionnaire:
Project
The project is a component of the course only for students who are registered in ELEC 586. Students who are registered in ELEC 486 do not do a project!
The following handouts are available for the project:
Final Exam
Information about the final exam will be made available here later in the term. Stay tuned.
Feedback on Course: Concerns, Complaints, and Compliments
Feedback on the course and teaching is always most welcome! The instructor will never hold any of your comments against you, but please be constructive in your criticism.
Several options are available for providing feedback. You can provide feedback through:
- class representative (if applicable). Your class rep will be happy to pass on any concerns/complaints to me.
- normal e-mail.
- in person.
- anonymous e-mail (e.g., through a Hotmail or Yahoo account).
Additional References
C++ Programming Language
- P. Deitel and H. Deitel, C++ How to Program, Eighth Edition, Prentice Hall, 2011. Link to e-book accessible from UVic Network only. Link to e-book accessible via UVic Library.
- M. Gregoire, N. A. Solter, S. J. Kleper, Professional C++, Second Edition, Wrox, 2011. Link to e-book accessible from UVic Network only. Link to e-book accessible via UVic Library.
- S. Prata. C++ Primer Plus, Sixth Edition, Addison-Wesley Professional, 2011. Link to e-book accessible from UVic Network only. Link to e-book accessible from UVic Library.
- The cplusplus.com website.
- C. Morano. An Introduction to the Standard Template Library (STL), Part 1.
- C. Morano. An Introduction to the Standard Template Library (STL), Part 2.
Computational Geometry Algorithms Library (CGAL)
- CGAL Home Page
- CGAL User and Reference Manual: All Parts, Release 3.6.1, 2010-06-29. This document is for the reading assignment on CGAL.
- CGAL User and Reference Manual: All Parts, Release 3.7, 2010-10-14.
- A Tutorial on CGAL Polyhedron for Subdivision Algorithms.
Open Graphics Library (OpenGL)
- OpenGL Home Page
- The OpenGL Graphics System, A Specification, Version 4.1
- The OpenGL Utility Toolkit (GLUT) Programming Interface, Version 3
- OpenGL 4.1 API Quick Reference Card.
- D. Shreiner, E. Angel, and V. Shreiner. An Interactive Introduction To OpenGL Programming, SIGGRAPH, 2004.
- OpenGL Transformation Demonstrations (from here). matrixModelView.zip, matrixModelView.exe, matrixProjection.zip, and matrixProjection.exe
Boost Library
Wavelets
Some good books related to wavelets include:
- M. Vetterli and J. Kovacevic, Wavelets and Subband Coding, Prentice Hall, Upper Saddle River, NJ, USA, 1995
- S. Mallat, A Wavelet Tour of Signal Processing, Academic Press, San Diego, CA, USA, 1999.
- G. Strang and T. Nguyen, Wavelets and Filter Banks, Wellesley-Cambridge Press, Wellesley, MA, USA, 1996.
- C. S. Burrus, R. A. Gopinath, and H. Guo, Introduction to Wavelets and Wavelet Transforms: A Primer, Prentice Hall, Upper Saddle River, NJ, USA, 1998.
- P. P. Vaidyanathan, Multirate Systems and Filter Banks, Prentice Hall, Upper Saddle River, NJ, USA, 1993.
- I. Daubechies, Ten Lectures on Wavelets, SIAM, Philadelphia, PA, USA, 1992.
- E. J. Stollnitz, T. D. DeRose, and D. H. Salesin, Wavelets for Computer Graphics, Morgan Kaufmann, San Francisco, CA, USA, 1996.
- Amara's Wavelet Page.
- Wavelet Digest
- Wavelet Resources (Department of Mathematics, Salzburg University)
- Wavelet NetCare (Washington University)
- The Mathworks (Developer of MATLAB)
- PlanetMath
- MathWorld
- Wikipedia
- Integrals. Need to compute an integral?
- JPEG-2000 Image Compression Software.
Other Fun Stuff
- Wavelets Course Page (GMU).
- RateMyProfessors Web Site. Find out who are (allegedly) the good and bad instructors at the University of Victoria and other schools. Or submit an evaluation for a professor.
- My Most Recent Ratings on the RateMyProfessors Web Site.
- Mesh Compression using Wavelets on a Discrete Grid.
- UIUC Wavelets Course Page
- Multidimensional Signal Processing
