Sampling and Aliasing Kurt Akeley CS248 Lecture 3 2 October 2007 http://graphics.stanford.edu/courses/cs248-07/ Aliasing Aliases are low frequencies in a rendered image that are due to higher frequencies in the original image. CS248 Lecture 3 Kurt Akeley, Fall 2007 Jaggies Original: Rendered: Are jaggies due to aliasing? How? CS248 Lecture 3 Kurt Akeley, Fall 2007 Demo CS248 Lecture 3 Kurt Akeley, Fall 2007 What is a point sample (aka sample)? An evaluation At an infinitesimal point (2-D) Or along a ray (3-D) What is evaluated Inclusion (2-D) or intersection (3-D) Attributes such as distance and color CS248 Lecture 3 Kurt Akeley, Fall 2007 Why point samples? Clear and unambiguous semantics Matches theory well (as we’ll see) Supports image assembly in the framebuffer will need to resolve visibility based on distance, and this works well with point samples Anything else just puts the problem off Exchange one large, complex scene for many small, complex scenes CS248 Lecture 3 Kurt Akeley, Fall 2007 Fourier theory “Fourier’s theorem is not only one of the most beautiful results of modern analysis, but it may be said to furnish an indispensable instrument in the treatment of nearly every recondite question in modern physics.” -- Lord Kelvin CS248 Lecture 3 Kurt Akeley, Fall 2007 Reference sources Marc Levoy’s notes Ronald N. Bracewell, The Fourier Transform and its Applications, Second Edition, McGraw-Hill, Inc., 1978. Private conversations with Pat Hanrahan MATLAB CS248 Lecture 3 Kurt Akeley, Fall 2007 Ground rules You don’t have to be an engineer to get this We’re looking to develop instinct / understanding Not to be able to do the mathematics We’ll make minimal use of equations No integral equations No complex numbers Plots will be consistent Tick marks at unit distances Signal on left, Fourier transform on the right CS248 Lecture 3 Kurt Akeley, Fall 2007 Dimensions 1-D Audio signal (time) Generic examples (x) Image (x and y) Animation (x, y, and time) 2-D 3-D All examples in this presentation are 1-D CS248 Lecture 3 Kurt Akeley, Fall 2007 Fourier series Any periodic function can be exactly represented by a (typically infinite) sum of harmonic sine and cosine functions. Harmonics are integer multiples of the fundamental frequency CS248 Lecture 3 Kurt Akeley, Fall 2007 Fourier series example: sawtooth wave 1 … -1 1 ¥ n+ 1 (- 1) 2 f (x)= å p n= 1 n CS248 Lecture 3 … sin (np x) Kurt Akeley, Fall 2007 Sawtooth wave summation 1 2 3 n CS248 Lecture 3 Harmonics Harmonic sums Kurt Akeley, Fall 2007 Sawtooth wave summation (continued) 5 10 50 n CS248 Lecture 3 Harmonics Harmonic sums Kurt Akeley, Fall 2007 Fourier integral Any function (that matters in graphics) can be exactly represented by an integration of sine and cosine functions. Continuous, not harmonic But the notion of harmonics will continue to be useful CS248 Lecture 3 Kurt Akeley, Fall 2007 Basic Fourier transform pairs d (s) 1 cos (p x) f(x) CS248 Lecture 3 II(s) F(s) Kurt Akeley, Fall 2007 Reciprocal property d (s) 1 Swapped left/right from previous slide cos (p x) II(s) f(x) CS248 Lecture 3 F(s) Kurt Akeley, Fall 2007 Scaling theorem æp x ÷ ö ç cos ç ÷ çè 2 ÷ ø II(2s) cos (2p x) f(x) CS248 Lecture 3 II(s/2) F(s) Kurt Akeley, Fall 2007 Band-limited transform pairs sin (p x) sinc(x) Õ (s) sinc2(x) Ù(s ) px f(x) CS248 Lecture 3 F(s) Kurt Akeley, Fall 2007 Finite / infinite extent If one member of the transform pair is finite, the other is infinite Band-limited infinite spatial extent Finite spatial extent infinite spectral extent CS248 Lecture 3 Kurt Akeley, Fall 2007 Convolution ¥ f (x)* g (x) = ò f (u )g (x - u )du - ¥ CS248 Lecture 3 Kurt Akeley, Fall 2007 Convolution example * = CS248 Lecture 3 Kurt Akeley, Fall 2007 Convolution theorem Let f and g be the transforms of f and g. Then f * g = f ×g f * g = f ×g f ×g = f * g f ×g = f * g Something difficult to do in one domain (e.g., convolution) may be easy to do in the other (e.g., multiplication) CS248 Lecture 3 Kurt Akeley, Fall 2007 Sampling theory x CS248 Lecture 3 * = = f(x) F(s) Spectrum is replicated an infinite number of times Kurt Akeley, Fall 2007 Reconstruction theory * CS248 Lecture 3 x sinc = = f(x) F(s) Kurt Akeley, Fall 2007 Sampling at the Nyquist rate CS248 Lecture 3 x * = = f(x) F(s) Kurt Akeley, Fall 2007 Reconstruction at the Nyquist rate CS248 Lecture 3 * x = = f(x) F(s) Kurt Akeley, Fall 2007 Sampling below the Nyquist rate CS248 Lecture 3 x * = = f(x) F(s) Kurt Akeley, Fall 2007 Reconstruction below the Nyquist rate CS248 Lecture 3 * x = = f(x) F(s) Kurt Akeley, Fall 2007 Reconstruction error Original Signal CS248 Lecture 3 Undersampled Reconstruction Kurt Akeley, Fall 2007 Reconstruction with a triangle function CS248 Lecture 3 * x = = f(x) F(s) Kurt Akeley, Fall 2007 Reconstruction error Original Signal CS248 Lecture 3 Triangle Reconstruction Kurt Akeley, Fall 2007 Reconstruction with a rectangle function CS248 Lecture 3 * x = = f(x) F(s) Kurt Akeley, Fall 2007 Reconstruction error Original Signal CS248 Lecture 3 Rectangle Reconstruction Kurt Akeley, Fall 2007 Sampling a rectangle CS248 Lecture 3 x * = = f(x) F(s) Kurt Akeley, Fall 2007 Reconstructing a rectangle (jaggies) CS248 Lecture 3 * x = = f(x) F(s) Kurt Akeley, Fall 2007 Sampling and reconstruction Aliasing is caused by Sampling below the Nyquist rate, Improper reconstruction, or Both We can distinguish between Aliasing of fundamentals (demo) Aliasing of harmonics (jaggies) CS248 Lecture 3 Kurt Akeley, Fall 2007 Summary Jaggies matter Create false cues Violate rule 1 Sampling is done at points (2-D) or along rays (3-D) Sufficient for depth sorting Matches theory Fourier theory explains jaggies as aliasing. For correct reconstruction: Signal must be band-limited Sampling must be at or above Nyquist rate Reconstruction must be done with a sinc function CS248 Lecture 3 Kurt Akeley, Fall 2007 Assignments Before Thursday’s class, read FvD 3.17 Antialiasing Project 1: Breakout: a simple interactive game Demos Wednesday 10 October CS248 Lecture 3 Kurt Akeley, Fall 2007 End CS248 Lecture 3 Kurt Akeley, Fall 2007