The students have now seen a variety of theory and applications of one-dimensional signal processing. We conclude the course by having the students learn how to extend their knowledge into two dimensions by way of image processing. We begin with representations of images on the computer (as rasters and matrices) and how to process them. We show that the filtering concepts generalize to images. In the laboratory, they use MATLAB to extract the edges and texture in the image and to remove salt-and-pepper noise. They have to figure out which of a lowpass, highpass, and median filter to use to accomplish these tasks.

Next, we discuss image decompositions. We demonstrate predictive coding and singular-value decomposition. The visualization of singular-value decomposition in two dimensions is a combination of plaids (i.e., weighted sums of products of column and row vectors). As the number of plaids (terms) increases, the decomposed image approaches the original, as shown in Figure 1. (A version of Figure 1 in gif format is available.)

In the laboratory, the students explore predictive coding to implement
one of the JPEG schemes in real-time by processing one *8* *x* *8*
subblock at a time.
We conclude the course with a lecture on image enhancement.

**Figure 1:** Illustrating the tradeoff of compression rate vs. quality
in a data-dependent lossy compression algorithm that sums
up a finite number of plaid patterns generated by the
principal singular-value components of the image treated
as a matrix.

Brian L. Evans, 211-105 Cory Hall, Berkeley, CA 94720-1772