sampling, aliasing & antialiasing - computer...

49
Sampling, Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat Hanrahan

Upload: others

Post on 23-May-2020

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling, Aliasing & Antialiasing

Slides courtesy: Durand, Cutler and Pat Hanrahan

Page 2: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Today What is a Pixel? Examples of aliasing Sampling & Reconstruction Filters in Computer Graphics

Page 3: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

What is a Pixel? A pixel is not: a box a disk a teeny tiny little light

A pixel “looks different” ondifferent display devices

A pixel is a sample it has no dimension it occupies no area it cannot be seen it has a coordinate it has a value

Page 4: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

More on Samples Most things in the real world are continuous,

yet everything in a computer is discrete The process of mapping a continuous function to a discrete

one is called sampling The process of mapping a continuous variable to a discrete

one is called quantization To represent or render an image using a computer,

we must both sample and quantize

discrete position

discretevalue

Page 5: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

An Image is a 2D Function An ideal image is a continuous function I(x,y) of intensities. It can be plotted as a height field. In general an image

cannot be represented as a continuous, analytic function.

Instead we represent images as tabulated functions.

How do we fill this table?

Page 6: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Dirac Function Defined by its behavior when integrated

Zero almost everywhere Except at zero, where its infinite

)()()( 00 xfdxxxxf

x

(x)

0

Page 7: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling Grid We can generate the table values by multiplying the

continuous image function by a sampling grid of Kroneckerdelta functions.

Page 8: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling an Image The result is a set of point samples, or pixels.

Page 9: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Today What is a Pixel? Examples of Aliasing Sampling & Reconstruction Filters in Computer Graphics

Page 10: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Examples of Aliasing

Aliasing occurs because of sampling and reconstruction

Page 11: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Examples of Aliasing

Page 12: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Examples of Aliasing

Page 13: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Examples of Aliasing

Page 14: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Examples of AliasingTexture Errors

point sampling

Page 15: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Examples of Aliasing

Image courtesy: http://www.siggraph.org/education/materials/HyperGraph/aliasing/alias2a.htm

Page 16: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Today What is a Pixel? Examples of Aliasing Sampling & Reconstruction Sampling Density Fourier Analysis & Convolution

Filters in Computer Graphics

Page 17: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling Density How densely must we sample an image in order to

capture its essence?

If we under-sample the signal, we won't be able to accurately reconstruct it...

Page 18: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling Density If we insufficiently sample the signal, it may be

mistaken for something simpler during reconstruction (that's aliasing!)

Image from Robert L. Cook, "Stochastic Sampling and Distributed Ray Tracing",

An Introduction to Ray Tracing, Andrew Glassner, ed.,

Academic Press Limited, 1989.

Page 19: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling Theorem When sampling a signal at discrete intervals, the sampling

frequency must be greater than twice the highest frequency of the input signal in order to be able to reconstruct the original perfectly from the sampled version (Shannon, Nyquist)

Page 20: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling Applet http://www.jhu.edu/~signals/sampling/index.html Amazing Sampling and Reconstruction Applet:

http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/nyquist/nyquist_limit_java_browser.html

Page 21: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling Density

Aliasing in 2D because of insufficient sampling density

Page 22: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Images from http://axion.physics.ubc.ca/341-02/fourier/fourier.html

Remember Fourier Analysis? All periodic signals

can be represented as a summation of sinusoidal waves.

Page 23: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Fourier Analysis Applet http://www.jhu.edu/~signals/fourier2/index.html

Page 24: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Remember Fourier Analysis? Every periodic signal in the spatial domain has a dual in the

frequency domain.

This particular signal is band-limited, meaning it has no frequencies above some threshold

frequency domainspatial domain

Page 25: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Remember Fourier Analysis? We can transform from one domain to the other using

the Fourier Transform.

spatial domainfrequency domain

Fourier Transform

Inverse Fourier

Transform

Page 26: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Fourier Transform of an Image

Page 27: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Fourier Transform pairs

Page 28: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Convolution

Example:

Page 29: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Convolution

Page 30: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Convolution Some operations that are difficult to compute in the

spatial domain can be simplified by transforming to its dual representation in the frequency domain.

For example, convolution in the spatial domain is the same as multiplication in the frequency domain.

And, convolution in the frequency domain is the same as multiplication in the spatial domain

Page 31: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling in the Frequency Domain

(convolution)(multiplication)

originalsignal

samplinggrid

sampledsignal

Fourier Transform

Fourier Transform

Fourier Transform

Page 32: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Reconstruction If we can extract a copy of the original signal from the

frequency domain of the sampled signal, we can reconstruct the original signal!

But there may be overlap between the copies.

Page 33: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Guaranteeing Proper Reconstruction Separate by removing high

frequencies from the original signal (low pass pre-filtering)

Separate by increasing the sampling density

If we can't separate the copies, we will have overlapping frequency spectrum during reconstruction → aliasing.

Page 34: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Sampling Theorem When sampling a signal at discrete intervals, the sampling

frequency must be greater than twice the highest frequency of the input signal in order to be able to reconstruct the original perfectly from the sampled version (Shannon, Nyquist)

Page 35: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Today What is a Pixel? Examples of Aliasing Sampling & Reconstruction Filters in Computer Graphics Pre-Filtering, Post-Filtering Ideal, Gaussian, Box, Bilinear, Bicubic

Page 36: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Filters Weighting function or a

convolution kernel Area of influence often

bigger than "pixel" Sum of weights = 1 Each sample contributes

the same total to image Constant brightness as object

moves across the screen.

No negative weights/colors (optional)

Page 37: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Filters Filters are used to reconstruct a continuous signal from a sampled signal

(reconstruction filters) band-limit continuous signals to avoid aliasing during sampling

(low-pass filters)

Desired frequency domain properties are the same for both types of filters

Often, the same filters are used as reconstruction and low-pass filters

Page 38: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Low-Pass Filters

Page 39: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

High-Pass Filter

Page 40: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Pre-Filtering Filter continuous primitives Treat a pixel as an area Compute weighted

amount of object overlap What weighting function

should we use?

Page 41: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Post-Filtering Filter samples Compute the weighted average of many samples Regular or jittered sampling (better)

Page 42: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

The Ideal Filter Unfortunately it has

infinite spatial extent Every sample contributes

to every interpolated point

Expensive/impossible to compute

spatial

frequency

Page 43: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Problems with Practical Filters Many visible artifacts in re-sampled images are caused

by poor reconstruction filters Excessive pass-band attenuation results in blurry

images Excessive high-frequency leakage

causes "ringing" and can accentuate the sampling grid (anisotropy)

frequency

Page 44: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Gaussian Filter This is what a CRT

does for free!

spatial

frequency

Page 45: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Box Filter / Nearest Neighbor Pretending pixels

are little squares.

spatial

frequency

Page 46: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Tent Filter / Bi-Linear Interpolation Simple to implement Reasonably smooth

spatial

frequency

Page 47: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Bi-Cubic Interpolation Begins to approximate

the ideal spatial filter, the sinc function

spatial

frequency

Page 48: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Why is the Box filter bad? (Why is it bad to think of pixels as squares)

Down-sampled with a 5x5 box filter

(uniform weights)

Original high-resolution image

Down-sampled with a 5x5 Gaussian filter

(non-uniform weights)

notice the ugly horizontal banding

Page 49: Sampling, Aliasing & Antialiasing - Computer Sciencecs.boisestate.edu/~alark/cs464/lectures/AntiAliasing.pdfSampling,Aliasing & Antialiasing Slides courtesy: Durand, Cutler and Pat

Trivia Real Time Antialiasing Techniques Sample the scene more than once and average the value

(supersampling) AntiAliasing in the GeForce 6800 (NV40) has changed from

that used in previous Nvidia cards. The method has changed from ordered grid multi- sampling to

rotated grid multi sampling. Only performed at the edge pixels – GPU has more

intelligence (the main difference from supersampling)

ATI SmoothVisionTM uses a jittered sampling patternOGSS

RGSS