Image (and Video) Coding and
Processing
Lecture 1: Class Overview
Wade Trappe
Course Basics
ECE 332:529 (Image and Video Processing) is a graduate
course that builds upon basic digital signal processing (e.g. the
Rutgers DSF course).
Prerequisites:
– An introductory graduate course in signal processing (DSF)
– Stochastic Signals and Systems is highly recommended
– Notes:
The course description webpage states 332:550 is a
prerequisite. No one has seen 550 in eons…
The course description also says that 332:535
(multidimensional signal processing) is recommended. This is
not true. 535 is rarely offered and will be contained in this
class.
Course Basics, pg. 2
A core graduate DSP curriculum consists of:
– An advanced course on digital signal filters
– A class on multirate signals and systems
– A class on image and video signal processing
– A class on adaptive and optimal signal processing
At Rutgers, the DSF course is required
The other 3 classes are essential to being able to say you “know signal
processing” by the time you graduate.
Students interested in DSP are encouraged to take as many of these “core”
courses as possible.
Additionally, there are several other advanced signal processing classes that
are worth looking into:
– E.g.: Computer Vision, Speech Processing, Signal Recovery
So, what is this class?
Image and Video Coding and Processing will cover:
– Multidimensional sampling and filtering
– Models for the Human Visual System
– Color Modeling and Representation of Images
– Denoising
– Pattern recognition
– Image and Video Compression
– Watermarking
Course Resources
Required Textbook:
– Y. Wang, J. Ostermann, Y-Q. Zhang: Digital Video Processing and
Communications, Prentice-Hall, 2001.
Reference Textbook:
– A.Bovik & J.Gibson: Handbook Of Image & Video Processing,
Academic Press, 2000.
The textbook will not be sufficient for this class (especially
early on).
– I will assign paper readings to supplement the text
– More often than not, these papers will come from IEEE or ACM
– Most likely, I will make the papers available on the course website
Other useful resource: MATLAB’s Image Processing Toolbox
– Goto www.mathworks.com
The Dirty Work…
This class is not a “cake-walk” graduate course:
– It should not be assumed that I will give out automatic A’s.
– In fact, just like other “Core” courses, there could be C’s in this
class.
Image and Video Processing requires a lot of work to
understand:
– Programming in MATLAB is a must
– Programming in C/C++ is highly desirable (Matlab is just too slow
for the massive optimizations you will need later)
– Seeing is believing in Image and Video Processing…
Telling me that the MSE/PSNR is good is nice, but I still want to see
the image!
Seeing images and videos play is half the fun!
Introduction to Image and Video
Processing
Thanks to Min Wu (UMD) for providing many of the slides that follow.
Images and Videos are Efficient and Effective
Sonar Image Signature of Joseph Brahms
A doctored political ad
http://marsrovers.jpl.nasa.gov/gallery/press/opportunity/20040125a.html
JPL Mars’ Panorama captured by the Opportunity
Visual representations are often the most efficient way to represent information
Images are used in many scenarios:
– Politics, advertisements, scientific research, military, etc…
Video signals can effectively tell a temporally evolving story
– Arise in cinema (motion pictures)
– Arise in surveillance
– Arise in medical applications
Why Do We Process Images?
Enhancement and restoration
– Remove artifacts and scratches from an old photo/movie
– Improve contrast and correct blurred images
Transmission and storage
– Images and Video can be more effectively transmitted and stored
Information analysis and automated recognition
– Recognizing terrorists
Evidence
– Careful image manipulation can reveal information not present
– Detect image tampering
Security and rights protection
– Encryption and watermarking preventing illegal content manipulation
Compression
Color image of 600x800 pixels
– Without compression
600*800 * 24 bits/pixel
= 11.52K bits = 1.44M bytes
– After JPEG compression (popularly
used on web)
only 89K bytes
compression ratio ~ 16:1
Movie
– 720x480 per frame, 30 frames/sec,
24 bits/pixel
– Raw video ~ 243M bits/sec
– DVD ~ about 5M bits/sec
– Compression ratio ~ 48:1
“Library of Congress” by M.Wu (600x800)
Denoising
From X.Li http://www.ee.princeton.edu/~lixin/denoising.htm
Deblurring
From Mathworks
Visual Mosaicing
– Stitch photos together without thread or scotch tape
R.Radke – IEEE PRMI journal paper draft 5/01
Visible Digital Watermarks
from IBM Watson web page
“Vatican Digital Library”
Invisible Watermark
– 1st & 30th Mpeg4.5Mbps frame of original, marked, and their luminance difference
– human visual model for imperceptibility: protect smooth areas and sharp edges
Error Concealment
(a) original lenna image (b) corrupted lenna image (c) concealed lenna
image
25% blocks in a checkerboard corrupted blocks are concealed
pattern are corrupted via edge-directed interpolation
Examples were generated using the source codes provided by W.Zeng.
What is An Image?
y
Grayscale image
– A grayscale image is a function
I(x,y) of the two spatial coordinates
of the image plane.
– I(x,y) is the intensity of the image at the x
point (x,y) on the image plane.
I(x,y) takes non-negative values 250
assume the image is bounded by a 200
rectangle [0,a][0,b] 150
intensity
I: [0, a] [0, b] [0, inf ) 100
I(x,y)
50
Color image 0
100
80
– Can be represented by three functions, 50 60
R(x,y) for red, G(x,y) for green, and B(x,y) y 40
x
20
for blue. rows 0 0 columns
Sampling and Quantization
Computer handles “discrete” data.
Sampling
– Sample the value of the image at the nodes of a
regular grid on the image plane.
– A pixel (picture element) at (i, j) is the image
intensity value at grid point indexed by the integer
coordinate (i, j).
255 (white)
Quantization
– Is a process of transforming a real valued sampled
image to one taking only a finite number of
distinct values.
– Each sampled value in a 256-level grayscale
image is represented by 8 bits. 0 (black)
Examples of Sampling
256x256
64x64
16x16
Examples of Quantizaion
8 bits / pixel
4 bits / pixel
2 bits / pixel