Anti-Aliasing Jian Huang, CS594, Fall 2008

advertisement

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.

Aliasing?

QuickTime™ and a

TIFF (Uncompressed) decompressor are needed to see this picture.

Aliasing

• Aliasing comes from in-adequate sampling rates of the continuous signal

• The theoretical foundation of antialiasing has to do with frequency analysis

• It’s always easier to look at 1D cases, so let’s first look at a few of those.

Example of Sampling

Examples of Inadequate

Sampling

Cosine Integrations

• Consider these formulas

 cos( x ) dx

 sin( x )

 cos

2

( x ) dx

 x

2

1

4 sin( 2 x )

 cos( 2 x ) cos( x ) dx

 sin( x )

2

1

6 sin( 3 x )

Improper Cosine Integrals

• Evaluating from (-

,

)

 cos( x ) dx

 cos

2

( x ) dx

0

 

 cos( 2 x ) cos( x ) dx

0

Fourier Transform

• The Fourier Transform represents a periodic function as a continuous summation of sin’s and cos’s.

F ( u )

  f ( x ) e

 j 2

 ux dx

F ( u , v )

  f ( x , y ) e

 j 2

( ux

 vy ) dxdy e jx  cox ( x )

 j sin( x )

F ( u )

Re( u )

 i Im( u )

Fourier Transform

• Note:

F ( 0 )

 f ( x ) dx

• This is also called the direct current or

DC component.

Inverse Fourier Transform

• We can get back our original function f(x) from F(u) using the inverse transform: f ( x )

F ( u ) e j 2

 ux du

OK – Why do this?

• Fourier space is a very good space for analyzing and understanding our signals.

• Rarely ever want to transform to Fourier space.

• There are some great theories developed in terms of sampling and convolution.

Fourier Analysis

• By looking at F(u), we get a feel for the

“frequencies” of the signal.

• We also call this frequency space.

• Intuitively, you can envision, the sharper an edge, the higher the frequencies.

• From a numerical analysis standpoint, the sharper the edge the greater the tangent magnitude, and hence the interpolation errors.

Fourier Analysis

• Bandlimited

– We say a function is bandlimited, if F(u)=0 for all frequencies u>c and u<-c.

• Amplitude Spectrum

– The magnitude, |F(u)|, is called the amplitude spectrum or simply the spectrum.

• Phase Spectrum or Phase

( u )

 tan

1

(

Im( u )

Re( u )

)

Fourier Properties

• Linearity af ( x )

 bg ( x )

 aF ( u )

 bG ( u )

• Scaling f ( ax )

1 a

F u

( a

)

Convolution

• Definition: f ( x )

 h ( x )

 f ( t ) h ( t

 x ) dt

• Pictorially

Convolution f(x) h(x)

Convolution h(t-x) f(t) x

Convolution

• Consider the function (box filter): h ( x )

0

1

0

1

2 x

 x

1

2

 x

1

2

1

2

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This function windows our function f(x ).

f(t)

Convolution

• This particular convolution smooths out some of the high frequencies in f(x) .

f(x)

 g(x) f(t)

Another Look At Convolution

QuickTime™ and a

TIFF (Uncompressed) decompressor are needed to see this picture.

Filtering and Convolution

QuickTime™ and a

TIFF (Uncompressed) decompressor are needed to see this picture.

QuickTime™ and a

TIFF (Uncompressed) decompressor are needed to see this picture.

Different functions achieve different

Results.

Impulse Function

• Consider the special function (called impulse):

( x )

0

 a x

0 x

0

QuickTime™ and a

TIFF (Uncompressed) decompressor are needed to see this picture.

such that,

( x ) dx

1

Impulse and Convolution

• Then, if we take the convolution of f(x) with

(x), we get:

QuickTime™ and a

TIFF (Uncompressed) decompressor are needed to see this picture.

f(x)



(x) = f(x)

Sampling Function

• A Sampling Function or Impulse Train is defined by:

S

T

( x )

 k



( x

 kT ) where T is the sample spacing.

T

Sampling Function

• The Fourier Transform of the Sampling

Function is itself a sampling function.

• The sample spacing is the inverse.

S

T

( x )

S

1

T

( u )

Convolution Theorem

• The convolution theorem states that convolution in the spatial domain is equivalent to multiplication in the frequency domain, and vica versa.

f ( x )

 g ( x )

 f ( s ) g ( x )

F ( u ) G ( u )

F ( u )

G ( u )

Convolution Theorem

• This powerful theorem can illustrate the problems with our point sampling and provide guidance on avoiding aliasing.

• Consider: f(x) S

T

(x) f(t)

T

Convolution Theorem

• What does this look like in the Fourier domain?

S(u) F(u)

1

T

Convolution Theorem

• In Fourier domain we would convolve

S(u) F(u)

S(u)

F(u)

1

T

Aliasing

• What this says, is that any frequencies greater than a certain amount will appear intermixed with other frequencies.

• In particular, the higher frequencies for the copy at 1/T intermix with the low frequencies centered at the origin.

Aliasing and Sampling

• Note, that the sampling process introduces frequencies out to infinity.

• We have also lost the function f(x), and now have only the discrete samples.

• This brings us to our next powerful theory.

Sampling Theorem

• The Shannon Sampling Theorem

A band-limited signal f(x), with a cutoff frequency of l

, that is sampled with a sampling spacing of T may be perfectly reconstructed from the discrete values f[nT] by convolution with the sinc(x) function, provided: l 

1

2 T l is called the Nyquist limit.

Sampling Theory

• Why is this?

• The Nyquist limit will ensure that the copies of F(u) do not overlap in the frequency domain.

• I can completely reconstruct or determine f(x) from F(u) using the

Inverse Fourier Transform.

Sampling Theory

• In order to do this, I need to remove all of the shifted copies of F(u) first.

• This is done by simply multiplying F(u) by a box function of width 2 l

.

S(u) F(u)

l l

1

T

Sampling Theory

• In order to do this, I need to remove all of the shifted copies of F(u) first.

• This is done by simply multiplying F(u) by a box function of width 2 l

.

S(u) F(u)

l l

1

T

General Process

Original function Sampled function

Acquisition

Reconstructed

Function

Resampling

Re-sampled function

How? - Convolution

Spatial Domain: Frequency Domain:

Convolution:

  f

   x

 t

 dt

Mathematically: f(x)*h(x) =

Evaluated at discrete

F

Multiplication: points (sum)

S f[i]

Reconstruction

Mathematically: f(x)*h(x) = ( S f[i])*h(x) h(x)

General Process

- Frequency Domain

Original function Sampled function

Acquisition

Reconstructed

Function

Resampling

Re-sampled function

Sampling

• What we have in computer graphics is a point sampling of our scene, or:

– I( x ) = f(x) • S

T

( x )

• What we would like is more of an integration across the pixel (or larger area):

– I( x ) = f(x)

 h(x)

• What should h(x) be?

Pre-Filtering

Original function Band-limited function

Pre-Filtering

Sampled

Function

Reconstructed function

Reconstruction

0.6

0.4

0.2

0

-0.2

0.8

1

Ideal Reconstruction with

Sinc function

Spatial Domain:

• convolution is exact

Frequency Domain: cut off freq. replica f r

   

0

Sinc

 sin

 

 x

0.95

0.9

0.85

0.8

0.75

0.7

0.65

0 0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

-0.4

-25 -20 -15 -10 -5 0 5 10 15 20 25

1

0.5

0

-0.5

-1

1.5

Reconstructing Derivatives

Spatial Domain:

• convolution is exact f r d

 

 f

  

0

Frequency Domain: cut off freq. replica

Cosc

 

 cos x

 

 sin

 x

 

2 x

Cosc(t)

5 10 15 20

0.95

0.9

0.85

0.8

0.75

0.7

25

0.65

0 0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

-1.5

-25 -20 -15 -10 -5 0

Possible Errors

• Post-aliasing

– reconstruction filter passes frequencies beyond the

Nyquist frequency (of duplicated frequency spectrum) => frequency components of the original signal appear in the reconstructed signal at different frequencies

• Smoothing

– frequencies below the Nyquist frequency are attenuated

• Ringing (overshoot)

– occurs when trying to sample/reconstruct discontinuity

• Anisotropy

– caused by not spherically symmetric filters

How Good? = Error

Spatial Domain:

• local error

• asymptotic error

• numerical error

Frequency Domain: global error visual appearance blurring aliasing smoothing

Approximation

Theory/Analysis Signal Processing

Sources of Aliasing

• Non-bandlimited signal

Low sampling rate (below Nyquist)

Non perfect reconstruction

Reconstruction Kernels

The spatial extent of reconstruction kernels, or interpolation basis functions, depend on the cut-off frequency as well.

pass band filter stop band

Ideal filter

Smoothing error

Postaliasing error

Reconstruction Kernels

• Nearest Neighbor (Box)

Triangular func

Sinc

Gaussian

+ many others

1

0.8

0.6

0.4

0.2

0

-6 -4 -2 0 2 4 6

Spatial d.

1

0.8

0.6

0.4

0.2

0

-6 -4 -2 0 2 4 6

Frequency d.

Higher Dimensions

• An-isotropic Filters

• (radially symmetric) h

 

 h

 x

2  y

2

 separable filters h

     

Interpolation (an example)

• Very important; regardless of algorithm

• expensive => done very often for one image

• Requirements for good reconstruction

– performance

– stability of the numerical algorithm

– accuracy

Nearest neighbor

Linear

Put Things in Perspective

• In graphics, need to use continuous space functions.

But can only work with discrete data. So, let’s reconstruct from discrete data to continuous space

(convolution) and resample

• Interpolation is doing the same thing. Computing one data point in the resulting function, say, at x

1

.

• So, which reconstruction kernel (basis function) does linear/bilinear/tri-linear interpolations use?

A Cosine Example

• Consider the function f(x)=cos(2

 x).

f(x)

F(u) x u

Sampling Theory

• So, given f[nT] and an assumption that f(x) does not have frequencies greater than

1/2T

, we can write the formula: f[nT] = f(x) S

T

(x)

F(u) = (F(u)

S

F(u)

S

T

(u)

T

(u)) Box

1/2T

(u) therefore, f(x) = f[nT]

 sinc(x)

A Cosine Example

• Now sample it at T=½ f(x)

F(u) x u

1

A Cosine Example

• Problem:

– The amplitude is now wrong or undefined.

• Note however, that there is one and only one cosine with a frequency less than or equal to 1 that goes through the sample pts.

F(u) u

1

A Cosine Example

• What if we sample at T=¾?

2

 cos( x

3

) f(x)

F(u) x u

1

Supersampling

• Supersampling increases the sampling rate, and then integrates or convolves with a box filter, which is finally followed by the output sampling function.

f(x) x

Sampling and Anti-aliasing

• If you can not get rid of it, convert it to noise.

Basic checkerboard Checkerboard with noise

Sampling and Anti-aliasing

• The images were calculated as follows:

– A 2Kx2K image was constructed and smoothly rotated into 3D.

– For Uniform Sampling, it was downsampled to a 512x512 image.

– Noise was added to the image, sharpened and then downsampled for the other one.

– Both were converted to B&W.

Sampling and Anti-aliasing

• The problem:

– The signal is not band-limited.

– Uniform sampling can pick-up higher frequency patterns and represent them as low-frequency patterns.

S(u) F(u)

1

T

Sampling and Anti-aliasing

• Turning the high-frequencies into noise.

• Recall, multiplication by the sampling function is equivalent to convolution in the Fourier domain.

• Fourier transform of noise.

Non-uniform Sampling

Quality considerations

• So far we just mapped one point

• results in bad aliasing (resampling problems)

• we really need to integrate over polygon

• super-sampling is not a very good solution (slow!)

• most popular (easiest) - mipmaps

Quality considerations

• Pixel area maps to “ weird ” (warped) shape in texture space y s v pixel x s u

Quality considerations

• We need to:

– Calculate (or approximate) the integral of the texture function under this area

– Approximate:

• Convolve with a wide filter around the center of this area

• Calculate the integral for a similar (but simpler) area.

Quality considerations

• the area is typically approxiated by a rectangular region (found to be good enough for most applications)

• filter is typically a box/averaging filter - other possibilities

• how can we pre-compute this?

Mip-maps

• An image-pyramid is built.

256 pixels 128 64 32 16 8 4 2 1

Mip-maps

• Find level of the mip-map where the area of each mip-map pixel is closest to the area of the mapped pixel.

y s v pixel x s u

2x2 pixels level selected

Mip-maps

• Pros

– Easy to calculate:

• Calculate pixels area in texture space

• Determine mip-map level

• Sample or interpolate to get color

• Cons

– Area not very close – restricted to square shapes (64x64 is far away from 128x128).

– Location of area is not very tight.

Summed Area Table (SAT)

• Use an axis aligned rectangle, rather than a square

• Precompute the sum of all texels to the left and below for each texel location

– For texel (u,v), replace it with: sum (texels( i=0…u,j=0…v ))

Summed Area Table (SAT)

• Determining the rectangle:

– Find bounding box and calculate its aspect ratio y s v pixel x s u

Summed Area Table (SAT)

• Determine the rectangle with the same aspect ratio as the bounding box and the same area as the pixel mapping.

y s v pixel x s u

Summed Area Table (SAT)

• Center this rectangle around the bounding box center.

• Formula:

• Area = aspect_ratio*x*x

• Solve for x – the width of the rectangle

• Other derivations are also possible using the aspects of the diagonals, …

Summed Area Table (SAT)

• Calculating the color

– We want the average of the texel colors within this rectangle

(u4,v4)

(u3,v3) v

+

-

+

(u1,v1)

+ -

(u2,v2)

+ u

Summed Area Table (SAT)

• To get the average, we need to divide by the number of texels falling in the rectangle.

– Color = SAT(u3,v3)-SAT(u4,v4)-SAT(u2,v2)+SAT(u1,v1)

– Color = Color / ( (u3-u1)*(v3-v1) )

• This implies that the values for each texel may be very large:

– For 8-bit colors, we could have a maximum SAT value of

255*nx*ny

– 32-bit pixels would handle a 4kx4k texture with 8-bit values.

– RGB images imply 12-bytes per pixel.

Summed Area Table (SAT)

• Pros

– Still relatively simple

• Calculate four corners of rectangle

• 4 look-ups, 5 additions, 1 mult and 1 divide.

– Better fit to area shape

– Better overlap

• Cons

– Large texel SAT values needed

– Still not a perfect fit to the mapped pixel.

Elliptical Weighted Average

(EWA) Filter

• Treat each pixel as circular, rather than square.

• Mapping of a circle is elliptical in texel space.

y s v pixel x s u

EWA Filter

• Precompute?

• Can use a better filter than a box filter.

• Heckbert chooses a Gaussian filter.

EWA Filter

• Calculating the Ellipse

• Scan converting the Ellipse

• Determining the final color (normalizing the value or dividing by the weighted area).

EWA Filter

• Calculating the ellipse

– We have a circular function defined in (x,y).

– Filtering that in texture space h(u,v).

– (u,v) = T(x,y)

– Filter: h(T(x,y))

EWA Filter

• Ellipse:

– 

(u,v) = Au 2 + Buv + Cv 2 = F

– (u,v) = (0,0) at center of the ellipse

• A = v x

2

• C = u x

2

+v y

2

• B = -2(u x v y

+u y

2

+ u y v x

)

• F = u x v y

+ u y v x

EWA Filter

• Scan converting the ellipse:

– Determine the bounding box

– Scan convert the pixels within it, calculating

(u,v).

– If 

(u,v) < F, weight the underlying texture value by the filter kernel and add to the sum.

– Also, sum up the filter kernel values within the ellipse.

EWA Filter

• Determining the final color

– Divide the weighted sum of texture values by the sum of the filter weights.

EWA Filter

• What about large areas?

– If m pixels fall within the bounding box of the ellipse, then we have O(n 2 m) algorithm for an nxn image.

– m maybe rather large.

• We can apply this on a mip-map pyramid,rather than the full detailed image.

– Tighter-fit of the mapped pixel

– Cross between a box filter and gaussian filter.

– Constant complexity O(n 2 )

Download