Anda di halaman 1dari 38

Filtering

Robert Lin
April 29, 2004
Outline
Why filter?
Filtering for Graphics
Sampling and Reconstruction
Convolution
The Fourier Transform
Overview of common filters

Why Filter?
Anti-aliasing
Signal reconstruction
Remove frequencies
Remove which frequencies?
Low-pass filter: removes high frequencies (blurring)
High-pass filter: removes low frequencies (sharpens,
enhance edges)
Graphics: usually want low pass filtering to remove
aliasing
Image Filtering
Modify pixels of an image based on a function of local
nearby pixels

Filter determines weight of a pixel
Filtering for Sampling
Filtering can be used to determine which rays to cast
for a particular pixel (e.g., cast more rays near the
center)

Filtering can also be used to assign weights to the
rays that determine how much they contribute to the
pixel color
Photon Filtering
We can filter the radiance estimate

Weight closer photons more when calculating radiance
estimate

Can reduce blur at sharp edges when photon count is
low good for stuff like caustics
Sampling and Reconstruction
Given a signal such as a sine wave with
frequency 1 Hz:
Sampling and Reconstruction
We can sample the points at a uniform rate of 3
Hz and reconstruct the signal:
Sampling and Reconstruction
We can also sample the signal at a slower rate of
2 Hz and still accurately reconstruct the signal:
Sampling and Reconstruction
However, if we sample below 2 Hz, we dont have
enough information to reconstruct the signal, and
in fact we may construct a different signal:
Nyquist Frequency
To reconstruct a signal with frequency f, we need to
sample the signal at a rate of at least 2*f, which is the
Nyquist Frequency

Example
CD : SR = 44,100 Hz
Nyquist Frequency = SR/2 = 22,050
Nyquist Frequency
Sampling below the Nyquist frequency can cause
aliasing the reconstructed signal is a false
representation of the original signal.

We can reduce aliasing by sampling more, or
sampling intelligently (last lecture).

We can also use filtering to reduce aliasing.
How do you filter?
To filter a function f(x), we use a filter function g(x) and
convolute f(x) with g(x).

This is the same for filtering 2D images, and the
functions become functions of x and y.

Convolution

The convolution of a function f(x) and a function g(x) (usually a filter
function), is defined to be:




The value of h(x) at each point is the integral of the product of f(x) with
the filter function g(x) flipped about the y axis and shifted so that its
origin is at that point

This is taking a weighted average of points near f(x), where g(x)
defines what the weights are.
h x = f g =
+

f u g x u du

Convolution

Green curve is the convolution of the Red curve,
f(x), and the Blue curve, g(x).
The grey region indicates the product g(u) f(t u)
The convolution Is thus the area of the grey region

The Fourier Transform
A signal can be
expressed as a sum of
different sine curves

The Fourier Transform
determines which sine
waves represent the
original signal
The Fourier Transform
The Fourier Transform F(k) of a function f(x) in
spatial domain is defined to be:




F(k) is now in frequency domain, usually plotted
with the x-axis as frequency, and the y-axis as
magnitude.
The Fourier Transform
A signal composed of two
sine waves with frequency 2 Hz
and 50 Hz

The Fourier Transform of the
signal shows these two
frequencies

The domain of the graph of
the Fourier transform is
frequency; the range is
magnitude





The Fourier Transform


The Fourier Transform

Space Frequency

The Fourier Transform

The convolution of f and g is the same as multiplying
the Fourier transforms of f and g:



This lets us look at the frequency domain of a filter
function to figure out what the filter does.
Frequency Domain

=

=
Low-pass
High-pass
In the frequency domain, multiplying by a filter
function removes particular frequencies
Low Pass Filter in Frequency Domain
Low Pass Filter
High Pass Filter
The Sinc Filter
Spatial: sinc Frequency: box
The Sinc Filter
Perfect low-pass filter
Cuts off all frequencies above a threshold
Oscillates to infinity: need too many samples
We use other functions similar to a sinc to filter

The Box Filter
Spatial: Box Frequency: sinc
The Box Filter
Smooths out function by
averaging neighbors

Keeps low frequencies and
reduces high frequencies
(low-pass filter)

Equally weights all samples

In frequency domain,
contains sidelobes to infinity,
which can cause rings on
sharp edges
The Tent Filter
Spatial: Tent Frequency: sinc squared
The Tent Filter
Reduces high
frequencies more
Weights center sample
more
Other samples weighted
linearly

The Gaussian Filter
Spatial: Gaussian Frequency: Gaussian
The Gaussian Filter
Reduces high
frequences even more
No sharp edges like in
box, tent
Generally
The B-Spline Filter
Each row and column of the image is represented by a
B-Spline curve
Each pixel is a control point
The B-Spline Filter
original
L(x,y) = 0.5 + (1 + sin( 0.01*(x*x + y*y)))
order 3
order 1
order 2
order 0
The B-Spline Filter
Bilinear Bspline
Conclusion
Filtering is good
Reduces aliasing
Makes the picture pretty
Very similar to sampling
We filter an image by convoluting it with the filter
The FT gives information about the filter
Try different filters, use the one that looks good

References
Books:
Andrew Glassner. Principles of Digital Image Synthesis.
James D. Foley, Andries van Dam, Steven K. Feiner, John F.
Hughes. Computer Graphics: Principles and Practice.
Peter Shirley, R. Keith Morley. Realistic Ray Tracing.
Henrik Wann Jensen. Realistic Image Synthesis Using Photon
Mapping.
Websites:
http://rise.sourceforge.net/cgi-bin/makepage.cgi?Filtering
http://www.hinjang.com/gfx/gfx01.html
http://www.relisoft.com/Science/Graphics/filter.html
http://www.cg.tuwien.ac.at/courses/CG2/SS2002/SamplingAndR
econstruction-new.pdf
http://w3.impa.br/~ipcg/c06/slides/main.pdf
http://redwood.ucdavis.edu/bruno/npb261/aliasing.pdf