29
CMSC 635 Sampling and Antialiasing

CMSC 635 Sampling and Antialiasing. Aliasing in images

Embed Size (px)

Citation preview

Page 1: CMSC 635 Sampling and Antialiasing. Aliasing in images

CMSC 635CMSC 635

Sampling and AntialiasingSampling and Antialiasing

Page 2: CMSC 635 Sampling and Antialiasing. Aliasing in images

Aliasing in imagesAliasing in images

Page 3: CMSC 635 Sampling and Antialiasing. Aliasing in images

QuickTime™ and aBMP decompressorare needed to see this picture.

Aliasing in animationAliasing in animation

Page 4: CMSC 635 Sampling and Antialiasing. Aliasing in images

AliasingAliasing

High frequencies alias as low frequencies

High frequencies alias as low frequencies

Page 5: CMSC 635 Sampling and Antialiasing. Aliasing in images

Abstract Vector SpacesAbstract Vector Spaces

Addition C = A + B = B + A (A + B) + C = A + (B + C) given A, B, A + X = B for only one X

Scalar multiply C = a A a (A + B) = a A + a B (a+b) A = a A + b A

Addition C = A + B = B + A (A + B) + C = A + (B + C) given A, B, A + X = B for only one X

Scalar multiply C = a A a (A + B) = a A + a B (a+b) A = a A + b A

Page 6: CMSC 635 Sampling and Antialiasing. Aliasing in images

Abstract Vector SpacesAbstract Vector Spaces

Inner or Dot Product b = a (A • B) = a A • B = A • a B A • A ≥ 0; A • A = 0 iff A = 0 A • B = (B • A)*

Inner or Dot Product b = a (A • B) = a A • B = A • a B A • A ≥ 0; A • A = 0 iff A = 0 A • B = (B • A)*

Page 7: CMSC 635 Sampling and Antialiasing. Aliasing in images

Vectors and Discrete FunctionsVectors and Discrete Functions

Geometric Vector Discrete Function

Vector V = (1, 2, 4) V[I] = {1, 2, 4}

Interpretation

Linearity a V + b U a V[I] + b U[I]

Dot Product V • U ∑ (V[I] U*[I])

Page 8: CMSC 635 Sampling and Antialiasing. Aliasing in images

Vectors and Discrete FunctionsVectors and Discrete Functions 2t in terms of t0, t1, t2 = [1,.5,.5] 2t in terms of t0, t1, t2 = [1,.5,.5]

2t

1 t t2

Page 9: CMSC 635 Sampling and Antialiasing. Aliasing in images

Vectors and Discrete FunctionsVectors and Discrete Functions 2t in terms of t0, t0.5, t1, t1.5, t2 2t in terms of t0, t0.5, t1, t1.5, t2

2t

1 t0.5 t t1.5 t2

Page 10: CMSC 635 Sampling and Antialiasing. Aliasing in images

Vectors and FunctionsVectors and Functions

Vector Discrete Continuous

V V[I] V(x)

a V + b U a V[I] + b U[I] a V(x) + b U(x)

V • U ∑ V[I] U*[I] ∫ V(x) U*(x) dx

Page 11: CMSC 635 Sampling and Antialiasing. Aliasing in images

Vectors and FunctionsVectors and Functions

2t projected onto 1, t, t2 2t projected onto 1, t, t2

2t

1 t t2

Page 12: CMSC 635 Sampling and Antialiasing. Aliasing in images

Function BasesFunction Bases

Time: Polynomial / Power Series: Discrete Fourier:

integers (where )

Continuous Fourier:

Time: Polynomial / Power Series: Discrete Fourier:

integers (where )

Continuous Fourier:

Page 13: CMSC 635 Sampling and Antialiasing. Aliasing in images

Fourier TransformsFourier Transforms

Discrete Time

ContinuousTime

DiscreteFrequency

Discrete Fourier Transform

Fourier Series

ContinuousFrequency

Discrete-time Fourier Transform

Fourier Transform

Page 14: CMSC 635 Sampling and Antialiasing. Aliasing in images

ConvolutionConvolution

Where

Dot product withshifted kernel

Where

Dot product withshifted kernel

Page 15: CMSC 635 Sampling and Antialiasing. Aliasing in images

FilteringFiltering

Filter in frequency domain FT signal to frequency domain Multiply signal & filter FT signal back to time domain

Filter in time domain FT filter to time domain Convolve signal & filter

Filter in frequency domain FT signal to frequency domain Multiply signal & filter FT signal back to time domain

Filter in time domain FT filter to time domain Convolve signal & filter

Page 16: CMSC 635 Sampling and Antialiasing. Aliasing in images

IdealIdeal

Low pass filter eliminates all high freq box in frequency domain sinc in spatial domain ( ) Possible negative results Infinite kernel

Exact reconstruction to Nyquist limit Sample frequency ≥ 2x highest frequency Exact only if reconstructing with sync

Low pass filter eliminates all high freq box in frequency domain sinc in spatial domain ( ) Possible negative results Infinite kernel

Exact reconstruction to Nyquist limit Sample frequency ≥ 2x highest frequency Exact only if reconstructing with sync

Page 17: CMSC 635 Sampling and Antialiasing. Aliasing in images

SamplingSampling

Multiply signal by pulse train Multiply signal by pulse train

Page 18: CMSC 635 Sampling and Antialiasing. Aliasing in images

ReconstructionReconstruction

Convolve samples & reconstruction filter

Sum weighted kernel functions

Convolve samples & reconstruction filter

Sum weighted kernel functions

Page 19: CMSC 635 Sampling and Antialiasing. Aliasing in images

Filtering, Sampling, ReconstructionFiltering, Sampling, Reconstruction Steps

Ideal continuous image Filter

Filtered continuous image Sample

Sampled image pixels Reconstruction filter

Continuous displayed result

Steps Ideal continuous image

Filter

Filtered continuous image Sample

Sampled image pixels Reconstruction filter

Continuous displayed result

Page 20: CMSC 635 Sampling and Antialiasing. Aliasing in images

Filtering, Sampling, ReconstructionFiltering, Sampling, Reconstruction Combine filter and sample

Ideal continuous image Sampling filter

Sampled image pixels Reconstruction filter

Continuous displayed result

Combine filter and sample Ideal continuous image

Sampling filter

Sampled image pixels Reconstruction filter

Continuous displayed result

Page 21: CMSC 635 Sampling and Antialiasing. Aliasing in images

AntialiasingAntialiasing

Blur away frequencies that would alias Blur preferable to aliasing Can combine filtering and sampling

Evaluate convolution at sample points

Filter kernel size IIR = infinite impulse response FIR = finite impulse response

Blur away frequencies that would alias Blur preferable to aliasing Can combine filtering and sampling

Evaluate convolution at sample points

Filter kernel size IIR = infinite impulse response FIR = finite impulse response

Page 22: CMSC 635 Sampling and Antialiasing. Aliasing in images

Analytic higher order filteringAnalytic higher order filtering Fold better filter into rasterization

Can make rasterization much harder Usually just done for lines

Draw with filter kernel “paintbrush”

Only practical for finite filters

Fold better filter into rasterization Can make rasterization much harder Usually just done for lines

Draw with filter kernel “paintbrush”

Only practical for finite filters

Page 23: CMSC 635 Sampling and Antialiasing. Aliasing in images

Analytic Area SamplingAnalytic Area Sampling

Compute “area” of pixel covered Box in spatial domain

Nice finite kernel easy to compute

sinc in freq domain Plenty of high freq still aliases

Compute “area” of pixel covered Box in spatial domain

Nice finite kernel easy to compute

sinc in freq domain Plenty of high freq still aliases

Page 24: CMSC 635 Sampling and Antialiasing. Aliasing in images

SupersamplingSupersampling

Numeric integration of filter Grid with equal weight = box filter Unequal weights Priority sampling Push up Nyquist frequency

Edges: ∞ frequency, still alias

Numeric integration of filter Grid with equal weight = box filter Unequal weights Priority sampling Push up Nyquist frequency

Edges: ∞ frequency, still alias

Page 25: CMSC 635 Sampling and Antialiasing. Aliasing in images

Adaptive samplingAdaptive sampling

Numerical integration with varying step More samples in high contrast areas Easy with ray tracing, harder for others Possible bias

Numerical integration with varying step More samples in high contrast areas Easy with ray tracing, harder for others Possible bias

Page 26: CMSC 635 Sampling and Antialiasing. Aliasing in images

Stochastic samplingStochastic sampling

Monte-Carlo integration of filter Sample distribution

Poisson disk Jittered grid

Aliasing Noise

Monte-Carlo integration of filter Sample distribution

Poisson disk Jittered grid

Aliasing Noise

Page 27: CMSC 635 Sampling and Antialiasing. Aliasing in images

Which filter kernel?Which filter kernel?

Finite impulse response Finite filter Windowed filter

Positive everywhere? Ringing?

Finite impulse response Finite filter Windowed filter

Positive everywhere? Ringing?

Page 28: CMSC 635 Sampling and Antialiasing. Aliasing in images

Which filter kernel?Which filter kernel?

Windowed sync Windowed Gaussian (~0 @ 6) Box, tent, cubic

Windowed sync Windowed Gaussian (~0 @ 6) Box, tent, cubic

Page 29: CMSC 635 Sampling and Antialiasing. Aliasing in images

ResamplingResampling

Image samples Reconstruction filter

Continuous image Sampling filter

Image samples

Image samples Reconstruction filter

Continuous image Sampling filter

Image samples