Week 8 Help Center Learn more.

Welcome to Week 8 of Digital Signal Processing.

This week we'll move up one dimension, so to speak, and cover the basics of Image Processing. Images, and in particular digital images, are arguably the most ubiquitous example of "consumer-grade" digital signals after music. As opposed to music, however, one is much more likely to manipulate an image at home, as attested by the success of photo editing programs such as Photoshop (and its simpler, open source equivalents).

Digital images, considered as signals, are two-dimensional sequences of image samples, called pixels. Images are extremely "easy to digest" since they are signals designed to perfectly fit their intended receiver, the human visual system. At the same time, images are extraordinarily complex entities semantically speaking, if nothing else because they are two-dimensional representations of a three-dimensional reality. The fact that we can look at an image and infer the 3D real-world scenery behind it is nothing short of sheer magic from the computational point of view.

In module 8 we will look at the basics of image processing and mostly at the way in which the concepts that we learned in the previous modules (i.e. in the one-dimensional case) translate, or fail to do so, to the two-dimensional case. You will see that image processing is a rather specialized branch of signal processing and that we will not be able to derive theoretical results of very large import. Nonetheless, images represent a great set of signals on which the results of processing algorithms can be evaluated in the most direct of ways, namely by taking a look!

Finally, we will talk a bit about image compression and, in particular, about the extremely popular JPEG compression standard. Images, and especially high resolution images, occupy a lot of space in digital storage devices as everyone with a digital camera can attest; at the same time, images contain a lot of redundancy and compression algorithms exploit this fact to reduce the memory footprint of an image without sacrificing its quality. JPEG is a particularly successful way to encode images and we will look at its main ingredients in some detail.


Day 14

Video lectures:

Lecture slides for Module 8: full version .

Signal of the day:

Numerical example:

Homework (due December 21, 5:00pm CET):

Programming Assignment (due December 28, 5:00pm CET):


Day 15

Video lectures:

Homework (due December 21, 5:00pm CET):


Notes and external resources

The textbook does not contain a chapter on Image Processing but here you can download the draft of a future Chapter 13.

If you get serious about image and video processing, you will soon realize that computational issues quickly become the biggest headache in most implementations. The first problem is CPU requirements: the number of pixels in an image grows quadratically with the resolution and even for small images, if you want to process a significant number of images per second (as in real-time video processing) you will need a powerful computer. The second issue is data structures: color images are encoded as multidimensional arrays and, in order to be efficient in computations, the alignment of the arrays should be well managed. Luckily, there exist some exceptionally good open-source software libraries that you can use as your starting point in an image processing project. A very popular such package is OpenCV, whose extensive documentation is in and of itself a fabulous compendium of the most commonly used image processing algorithms!
Created Sat 13 Apr 2013 12:27 PM CEST
Last Modified Wed 2 Dec 2015 3:59 PM CET