Computer Graphics and Imaging UC Berkeley CS184/284A, Spring 2017 Lecture 3

Computer Graphics and Imaging UC Berkeley CS184/284A, Spring 2017 Lecture 3

Lecture 3: Intro to Signal Processing: Sampling, Aliasing, Antialiasing Computer Graphics and Imaging UC Berkeley CS184/284A, Spring 2017 Pre-Lecture Discussion: What Value Should a Pixel Have? Potential topics for your pair discussion: • Ideas for “higher quality” pixel formula? • What are all the relevant factors? • What’s right/wrong about point sampling? • Why do jaggies look “wrong”? CS184/284A Ren Ng Pre-Lecture Discussion: What Value Should a Pixel Have? Group discussion notes Higher-quality ideas: Right/wrong about point • Supersampling with sampling: weighting? - Binary only Opacity as area • - Fast is good coverage • Use adjacent pixel values Relevant factors: • Resolution • Run time speed CS184/284A Ren Ng Announcements • Assignment 1 launching today • Conflicts on exams, lecture, etc. message staff ASAP, deadline Friday • Sections begin tomorrow • Please bring laptops to section • Attend your assigned section for this week CS184/284A Ren Ng Sampling is Ubiquitous in Computer Graphics and Imaging Video = Sample Time Harold Edgerton Archive, MIT CS184/284A Ren Ng Photograph = Sample Image Sensor Plane CS184/284A Ren Ng Rasterization = Sample 2D Positions CS184/284A Ren Ng Ray Tracing = Sample Rays Viewing Viewing ray Viewingwindowviewing viewingPixel ray windowwindow PixelPixelpixelPixelPixel Pixelposition Viewpoint viewpointViewpoint Jensen CS184/284A Ren Ng Lighting Integrals: Sample Incident Angles Sampling Artifacts in Graphics and Imaging Wagon Wheel Illusion (False Motion) Created by Jesse Mason, https://www.youtube.com/watch?v=QOwzkND_ooU Moiré Patterns in Imaging lystit.com Read every sensor pixel Skip odd rows and columns CS184/284A Ren Ng Jaggies (Staircase Pattern) This is also an example of “aliasing” – a sampling error CS184/284A Ren Ng Jaggies (Staircase Pattern) Retort by Don Mitchell CS184/284A Ren Ng Sampling Artifacts in Computer Graphics Artifacts due to sampling - “Aliasing” • Jaggies – sampling in space • Wagon wheel effect – sampling in time • Moire – undersampling images (and texture maps) • [Many more] … We notice this in fast-changing signals (high frequency), when we sample too slowly CS184/284A Ren Ng Antialiasing Idea: Filter Out High Frequencies Before Sampling Video: Point vs Antialiased Sampling Point in Time Motion Blurred CS184/284A Ren Ng Video: Point Sampling in Time https://youtu.be/NoWwxTktoFs Credit: Aris & cams youtube, Credit: 30 fps video. 1/800 second exposure is sharp in time, causes time aliasing. CS184/284A Ren Ng Video: Motion-Blurred Sampling https://youtu.be/NoWwxTktoFs Credit: Aris & cams youtube, Credit: 30 fps video. 1/30 second exposure is motion-blurred in time, reduces aliasing. CS184/284A Ren Ng Rasterization: Point Sampling in Space Sample Note jaggies in rasterized triangle where pixel values are pure red or white CS184/284A Ren Ng Rasterization: Antialiased Sampling Pre-Filter Sample (remove frequencies above Nyquist) Note antialiased edges in rasterized triangle where pixel values take intermediate values CS184/284A Ren Ng Point Sampling One sample per pixel Antialiasing Point Sampling vs Antialiasing Jaggies Pre-Filtered CS184/284A Ren Ng Antialiasing vs Blurred Aliasing Blurred Jaggies Pre-Filtered (Sample then filter) (Filter then sample) CS184/284A Ren Ng This Lecture Let’s dig into fundamental reasons why this works And look at how to implement antialiased rasterization CS184/284A Ren Ng Frequency Space Sines and Cosines cos 2⇡x sin 2⇡x CS184/284A Ren Ng Frequencies cos 2⇡fx 1 f = f =1 T cos 2⇡x f =2 cos 4⇡x CS184/284A Ren Ng Fourier Transform Represent a function as a weighted sum of sines and cosines Joseph Fourier 1768 - 1830 A 2A cos(t⇥) 2A cos(3t⇥) 2A cos(5t⇥) 2A cos(7t⇥) f(x) = + + + 2 π − 3π 5π − 7π · · · CS184/284A Ren Ng Fourier Transform Decomposes Signal Into Frequencies ⇥ ⇥ iωx 1 2⇡i!x iωx F (ω) = f(x)e− F (!dx)= f(x)e− dx F (ω) = f(x)e− dx Z1 Fourier transform ⇥ spatial frequency ⇥ domain domain Inverse transform 1 f(x)= F (!)e2⇡i!xd! Z1 ix Recall e = cos x + i sin x CS184/284A Ren Ng Under-Sampling Causes “Aliasing” Errors Low-frequency signal: f1(x) sampled adequately for reasonable f2(x) reconstruction f3(x) f4(x) High-frequency signal is insufficiently f5(x) sampled: reconstruction incorrectly appears to be from a low x frequency signal Undersampling Creates Frequency Aliases High-frequency signal is insufficiently sampled: samples erroneously appear to be from a low-frequency signal Two frequencies that are indistinguishable at a given sampling rate are called “aliases” Visualization of Frequency Space 2D Frequency Space Spatial Domain Frequency Domain Note: Frequency domain also known as frequency space, Fourier domain, spectrum, … CS184/284A Ren Ng Constant (0,0) Spatial Domain Frequency Domain CS184/284A Ren Ng sin(2 ⇡ / 32) x — frequency 1/32; 32 pixels per cycle Max signal freq =1/32 (0,0) Spatial Domain Frequency Domain CS184/284A Ren Ng sin(2 ⇡ / 16) x — frequency 1/16; 16 pixels per cycle Max signal freq =1/16 (0,0) Spatial Domain Frequency Domain CS184/284A Ren Ng sin(2⇡/16)y Spatial Domain Frequency Domain CS184/284A Ren Ng sin(2⇡/32)x sin(2⇡/16)y ⇥ Spatial Domain Frequency Domain CS184/284A Ren Ng exp( r2/162) − Spatial Domain Frequency Domain CS184/284A Ren Ng exp( r2/322) − Spatial Domain Frequency Domain CS184/284A Ren Ng exp( x2/322) exp( y2/162) − ⇥ − Spatial Domain Frequency Domain CS184/284A Ren Ng 2 2 2 2 Rotate 45 exp( x /32 ) exp( y /16 ) − ⇥ − Spatial Domain Frequency Domain CS184/284A Ren Ng Filtering Visualizing Image Frequency Content Spatial Domain Frequency Domain CS184/284A Ren Ng Filter Out Low Frequencies Only (Edges) Spatial Domain Frequency Domain CS184/284A Ren Ng Filter Out High Frequencies (Blur) Spatial Domain Frequency Domain CS184/284A Ren Ng Filter Out Low and High Frequencies Spatial Domain Frequency Domain CS184/284A Ren Ng Filter Out Low and High Frequencies Spatial Domain Frequency Domain CS184/284A Ren Ng Filtering = Convolution Convolution Signal 1 3 5 3 7 1 3 8 6 4 Filter 1 2 1 CS184/284A Ren Ng Convolution Signal 1 3 5 3 7 1 3 8 6 4 Filter 1 2 1 1x1 + 3x2 + 5x1 = 12 Result 12 CS184/284A Ren Ng Convolution Signal 1 3 5 3 7 1 3 8 6 4 Filter 1 2 1 3x1 + 5x2 + 3x1 = 16 Result 12 16 CS184/284A Ren Ng Convolution Signal 1 3 5 3 7 1 3 8 6 4 Filter 1 2 1 5x1 + 3x2 + 7x1 = 18 Result 12 16 18 CS184/284A Ren Ng Convolution Theorem Convolution in the spatial domain is equal to multiplication in the frequency domain, and vice versa Option 1: • Filter by convolution in the spatial domain Option 2: • Transform to frequency domain (Fourier transform) • Multiply by Fourier transform of convolution kernel • Transform back to spatial domain (inverse Fourier) CS184/284A Ren Ng Convolution Theorem Spatial Domain * = Fourier Inv. Fourier Transform Transform Frequency Domain x = CS184/284A Ren Ng Box Filter 1 1 1 1 1 1 1 9 1 1 1 Example: 3x3 box filter CS184/284A Ren Ng Box Function = “Low Pass” Filter Spatial Domain Frequency Domain CS184/284A Ren Ng Wider Filter Kernel = Lower Frequencies Spatial Domain Frequency Domain CS184/284A Ren Ng Wider Filter Kernel = Lower Frequencies As a filter is localized in the spatial domain, it spreads out in frequency domain. Conversely, as a filter is localized in frequency domain, it spreads out in the spatial domain CS184/284A Ren Ng Efficiency? When is it faster to implement a filter by convolution in the spatial domain? When is it faster to implement a filter by multiplication in the frequency domain? CS184/284A Ren Ng Nyquist Frequency & Antialiasing Nyquist Theorem Theorem: We get no aliasing from frequencies in the signal that are less than the Nyquist frequency (which is defined as half the sampling frequency) * * Won’t cover proof in course, see Shannon sampling theorem CS184/284A Ren Ng Signal vs Nyquist Frequency: Example sin(2 ⇡ / 32) x — frequency 1/32; 32 pixels per cycle Max signal freq =1/32 Nyquist freq. of sampling = 1/2 * 1/16 = 1/32 sampling = every 16 pixels Spatial Domain Frequency Domain CS184/284A No Aliasing! Ren Ng Signal vs Nyquist Frequency: Example sin(2 ⇡ / 16) x — frequency 1/16; 16 pixels per cycle Max signal freq =1/16 Nyquist freq. of sampling = 1/2 * 1/16 = 1/32 sampling = every 16 pixels Spatial Domain Frequency Domain CS184/284A Aliasing! Ren Ng Signal vs Nyquist Frequency: Example sin(2 ⇡ / 16) x — frequency 1/16; 16 pixels per cycle Max signal freq =1/16 Nyquist freq. of sampling = 1/2 * 1/8 = 1/16 sampling = every 8 pixels Spatial Domain Frequency Domain CS184/284A No Aliasing! Ren Ng Visual Example: Image Frequencies & Nyquist Frequency Image Frequency: Visual Example In the following image sequence: • Image is 512x512 pixels • We will progressively blur the image, see how the frequency spectrum shrinks, and see what the maximum frequency is CS184/284A Ren Ng Image Frequency: Visual Example Spatial Domain Frequency Domain CS184/284A Ren Ng Image Frequency: Visual Example Max signal freq ≈1/2 (Why 1/2 ?) Spatial Domain Frequency Domain CS184/284A Ren Ng Image Frequency: Visual Example Max signal freq ≈1/4 Spatial Domain Frequency Domain CS184/284A Ren Ng Image Frequency: Visual Example Max signal freq ≈1/8 Spatial Domain Frequency Domain CS184/284A Ren Ng Image Frequency: Visual Example Max signal freq ≈1/16 Spatial Domain Frequency Domain CS184/284A Ren Ng Image Frequency: Visual Example Max signal freq ≈1/32 Spatial Domain Frequency Domain CS184/284A Ren Ng Image Frequency: Visual Example Max signal freq ≈1/64 Spatial Domain Frequency Domain CS184/284A Ren Ng Nyquist Frequency: Visual Example In next sequence: • Visualize sampling an image every 16 pixels • Visualize when image is blurred enough that image frequencies match Nyquist frequency (no aliasing) CS184/284A Ren Ng Nyquist Frequency: Visual Example Max signal freq ≈1/2 Spatial Domain Frequency Domain CS184/284A Ren Ng Nyquist Frequency: Visual Example Max signal freq ≈1/2 Nyq.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    119 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us