Sampling Theorem & Antialiasing

Slides:



Advertisements
Similar presentations
Sampling, Aliasing.
Advertisements

Sampling and Reconstruction
Technische Universität München Fakultät für Informatik Computer Graphics SS 2014 Sampling Rüdiger Westermann Lehrstuhl für Computer Graphik und Visualisierung.
CSE 781 Anti-aliasing for Texture Mapping. Quality considerations So far we just mapped one point – results in bad aliasing (resampling problems) We really.
David Luebke1/19/99 CS 551/651: Antialiasing David Luebke
MIT EECS 6.837, Durand and Cutler Sampling, Aliasing, & Mipmaps.
Anti-Aliasing Jian Huang, CS594, Fall 2008 This set of slides references our text book and the slides used at Ohio State by Prof. Roger Crawfis.
CS 551 / CS 645 Antialiasing. What is a pixel? A pixel is not… –A box –A disk –A teeny tiny little light A pixel is a point –It has no dimension –It occupies.
School of Computing Science Simon Fraser University
Sampling, Aliasing, & Mipmaps
CSCE 641 Computer Graphics: Image Sampling and Reconstruction Jinxiang Chai.
General Functions A non-periodic function can be represented as a sum of sin’s and cos’s of (possibly) all frequencies: F(  ) is the spectrum of the function.
CSCE 641 Computer Graphics: Image Sampling and Reconstruction Jinxiang Chai.
Immagini e filtri lineari. Image Filtering Modifying the pixels in an image based on some function of a local neighborhood of the pixels
Advanced Computer Graphics (Spring 2006) COMS 4162, Lecture 3: Sampling and Reconstruction Ravi Ramamoorthi
CS5520 Image-Based Rendering © Chun-Fa Chang, Spring 2003 Sampling Theorem & Antialiasing April 15, 2003.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 7: Review, Reconstruction Ravi Ramamoorthi
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Sampling Week 7, Fri 17 Oct 2003 p1 demos sampling.
1 Images and Transformations Images by Pawan SinhaPawan Sinha.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 3: Sampling and Reconstruction Ravi Ramamoorthi
CIS 681 Distributed Ray Tracing. CIS 681 Anti-Aliasing Graphics as signal processing –Scene description: continuous signal –Sample –digital representation.
Basic Image Processing January 26, 30 and February 1.
CSC418 Computer Graphics n Aliasing n Texture mapping.
Sampling and Antialiasing CMSC 491/635. Abstract Vector Spaces Addition –C = A + B = B + A –(A + B) + C = A + (B + C) –given A, B, A + X = B for only.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 3 Ravi Ramamoorthi
G52IIP, School of Computer Science, University of Nottingham 1 Image Transforms Fourier Transform Basic idea.
© Chun-Fa Chang Sampling Theorem & Antialiasing. © Chun-Fa Chang Motivations “ My ray traced images have a lot more pixels than the TV screen. Why do.
Antialiasing CptS 548 Advanced Computer Graphics John C. Hart.
David Luebke 1 9/4/2015 CS 551/651: Advanced Computer Graphics Antialiasing Continued: Prefiltering and Supersampling.
Computer Graphics Inf4/MSc Computer Graphics Lecture 9 Antialiasing, Texture Mapping.
Antialiasing CAP4730: Computational Structures in Computer Graphics.
Filtering Robert Lin April 29, Outline Why filter? Filtering for Graphics Sampling and Reconstruction Convolution The Fourier Transform Overview.
CS 450: COMPUTER GRAPHICS ANTIALIASING SPRING 2015 DR. MICHAEL J. REALE.
09/19/2002 (C) University of Wisconsin 2002, CS 559 Last Time Color Quantization Dithering.
Image Processing Basics. What are images? An image is a 2-d rectilinear array of pixels.
CMSC 635 Sampling and Antialiasing. Aliasing in images.
CS 556 – Computer Vision Image Basics & Review. What is an Image? Image: a representation, resemblance, or likeness An image is a signal: a function carrying.
MIT EECS Sampling, Aliasing, & Mipmaps. MIT EECS Last Time? Global illumination “physically accurate light transport” The rendering equation.
Lecture 6 Rasterisation, Antialiasing, Texture Mapping,
Sampling Pixel is an area!! – Square, Rectangular, or Circular? How do we approximate the area? – Why bother? Color of one pixel Image Plane Areas represented.
2D Sampling Goal: Represent a 2D function by a finite set of points.
Sampling Theorem & Antialiasing
Fourier Transform.
1 Dr. Scott Schaefer Antialiasing. 2/70 What is aliasing?
David Luebke 3/17/2016 Advanced Computer Graphics Antialiasing David Luebke
CIS 681 Distributed Ray Tracing. CIS 681 Anti-Aliasing Graphics as signal processing –Scene description: continuous signal –Sample –digital representation.
Fourier Transform (Chapter 4) CS474/674 – Prof. Bebis.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Sampling and Reconstruction.
Antialiasing. What is alias? Alias - A false signal in telecommunication links from beats between signal frequency and sampling frequency (from dictionary.com)
Sampling Week 7, Fri 17 Oct 2003 p1 demos sampling.
Advanced Computer Graphics
… Sampling … … Filtering … … Reconstruction …
Distributed Ray Tracing
(C) 2002 University of Wisconsin, CS 559
Sampling and Antialiasing
Antialiasing Dr. Scott Schaefer.
General Functions A non-periodic function can be represented as a sum of sin’s and cos’s of (possibly) all frequencies: F() is the spectrum of the function.
All about convolution.
Sampling Theorem told us …
Joshua Barczak CMSC435 UMBC
Computer Vision Lecture 16: Texture II
Sampling and Reconstruction
© University of Wisconsin, CS559 Spring 2004
Distributed Ray Tracing
Basic Image Processing
Digital Image Processing Week IV
Fourier Transforms.
Intensity Transformation
CSC418 Computer Graphics Aliasing Texture mapping.
Distributed Ray Tracing
Presentation transcript:

Sampling Theorem & Antialiasing © Chun-Fa Chang

Motivations “My images have a lot more pixels than the TV screen. Why do they look like @#$%?” How to compute the pixel colors for the following pattern? Antialiasing with Line Samples Rendering Techniques '00 (Proceedings of the 11th Eurographics Workshop on Rendering), pp. 197-205 Thouis R. Jones, Ronald N. Perry © Chun-Fa Chang

Part I: Sampling Theorem © Chun-Fa Chang

Example of Aliasing in Computer Graphics © Chun-Fa Chang

Examples of Aliasing in 1D See Figure 14.2 (p.394) of Watt’s book for other examples. © Chun-Fa Chang

An Intuition – Using a Single Frequency It’s easy to figure out for a sin wave. What about any signal (usually a mixture of multiple frequencies)? Enter Fourier Transform… © Chun-Fa Chang

Sampling 1D Signal: x  f(x) becomes i  f(i) 2D Image: x, y  f(x, y) For grayscale image, f(x, y) is the intensity of pixel at (x, y). © Chun-Fa Chang

Reconstruction If the samples are “dense” enough, then we can recover the original signal. Question is: How dense is enough? © Chun-Fa Chang

Fourier Transform Can we separate signal into a set of signals of single frequencies? t w w © Chun-Fa Chang

Square Wave Even a square-shape wave can be represented by the sum of a series of sin or cos functions See https://bl.ocks.org/jinroh/7524988 https://youtu.be/LznjC4Lo7lE http://blog.xuite.net/lapuda.chen/PaulBlog/221866406 © Chun-Fa Chang

Basis Functions An example: X=[x1, x2, …, xn] U=[u1, u2, …, un] V=[v1, v2, …, vn] Let X = a*U + b*V, how to find a and b? If U and V are orthogonal, then a and b are the projection of X onto U and V. © Chun-Fa Chang

Compared to Fourier Transform Consider a continuous signal as a infinite-dimensional vector [ f(e), f(2e), f(3e),….. ] Consider each frequency w a basis, then F(w) is the projection of f(x) onto that basis. t © Chun-Fa Chang

Sampling Spatial domain: multiply with a pulse train. Frequency domain: convolution! © Chun-Fa Chang

Convolution To start with, image that f(x) is nonzero only in the range of [-a, a]. Then we only need to consider g(x) in the range of [x-a, x+a] Multiplication in spatial domain results in convolution in frequency domain (and vice versa). © Chun-Fa Chang

An Intuition for Convolution Does it make sense to you that multiplication in one domain becomes convolution in the other domain? Look at this example: What are the coefficients of P1*P2? © Chun-Fa Chang

Consider xn, …, x2, x1, x 0 as basis. Projections of P1 and P2 to the basis are (a1, b1, c1, d1) and (a2, b2, c2, d2) P1(x)*P2(x) results in: (a1, b1, c1, d1)  (a2, b2, c2, d2) in the transformed space. © Chun-Fa Chang

The fact is: you have been doing convolution since elementary school! Example: 222*111 is computed as (2,2,2)  (1,1,1) © Chun-Fa Chang

Reconstruction Frequency domain: Spatial domain: convolve with Sinc function © Chun-Fa Chang

Reconstruction Kernel For perfect reconstruction, we need to convolve with the sinc function. It’s the Fourier transform of the box function. It has infinite “support” May be approximated by Gaussian, cubic, or even triangle “tent” function. © Chun-Fa Chang

Nyquist Limit Nyquist Limit = 2 * max_frequency Undersampling: sampling below the Nyquist Limit. © Chun-Fa Chang

Part II: Antialiasing © Chun-Fa Chang

Changes within a Pixel A lot can change within a pixel: Shading Edge Texture Point sampling at the center often produces undesirable result. © Chun-Fa Chang

Pixel Coverage What should be the pixel colors for these? Can we simply use the covered areas of blue and white? (Hint: convolve with box filter.) Do we have enough data to compute the coverage? © Chun-Fa Chang

Antialiasing Consider a ray tracer. Is it often impossible to find the partial coverage of an edge. Each ray is a point sample. We may use many samples for each pixel  slower performance. © Chun-Fa Chang

Antialiasing – Uniform Sampling Also called supersampling Wasteful if not much changes within a pixel. © Chun-Fa Chang

Filtering How do we reduce NxN supersamples into a pixel? Average? More weight near the center? Let’s resort to the sampling theorem. © Chun-Fa Chang

Reconstruction Frequency domain: Spatial domain: © Chun-Fa Chang

A Few Observations In theory, a sample influences not only its pixel, but also every pixels in the image. What does it mean by removing high frequencies? © Chun-Fa Chang

Other Than Uniform Sampling? So far, the extra samples are taken uniformly in screen space. Other ways to take extra samples: Adaptive sampling Stochastic (or randomized) sampling © Chun-Fa Chang

Antialiasing – Adaptive Sampling Feasible in software, but difficult to implement in hardware. Increase samples only if necessary. But how do we know when is “necessary”? Check the neighbors. © Chun-Fa Chang

Antialiasing – Stochastic Sampling Keep the same number of samples per pixel. Replace the aliasing effects with noise that is easier to ignore. © Chun-Fa Chang

Mipmap – Antialiasing for Texture Mapping When we reduce a 2Nx2N texture into a NxN texture for the next level of mipmapping, we are doing the filtering (usually by bilinear filtering). Trilinear filtering: If the most suitable texture is between NxN and 2Nx2N, then access texels from both levels, and then interpolate. Note that the filtering is isotropic (vs. anisotropic), meaning the filtering is done on a square (or a circle). From: http://commons.wikimedia.org/wiki/File:MipMap_Example_STS101.jpg

Anisotropic Mipmap From: http://commons.wikimedia.org/wiki/File:MipMap_Example_STS101_Anisotropic.png