Rob Cook proposed Stochastic Sampling which is a Monte Carlo type technique. The image is sampled at nonuniformly spaced locations (in contrast to the above techniques which sample at regularly spaced intervals). The effect of this is that spurious low frequencies are replaced by random noise which is easier for our visual system to ignore
Aliasing is not avoidable with uniform sampling intervals unless you can guarantee that the function contains no frequencies greater than the Nyquist limit. What about our eyes ? They have a finite number of photo receptors but we do not see aliasing effects. In a Rhesus monkey the eye photo-receptors distribution is non-uniform, it is a Poisson distribution. This is a random distribution but in a monkey there is also the restriction of a certain minimum distance between any two photo-receptors. The FT of this distribution gives a strong value at f = 0 (DC or constant component, with noise elsewhere outside Nyquist Limit. The effect of this distribution is that there is no aliasing but the high frequency components are converted to noise. Thus we have evolved to handle high frequency components as noise and thus to ignore them. To emulate Poisson disk distribution, we do "jittering" or adding noise to the sample location, this is a form of stochastic sampling.
Jittering in time (for a time sampled signal) was previously analyzed by Balakrishnan. i.e. rather than sample at nT, sample at nT + dn, where dn is the jittering factor. If the dn are uncorrelated (dn and dm are not correlated) and random, found results:
- high frequencies attenuated and energy appears as noise (energy conserved)
- basic composition of spectrum unchanged.
Analyzed two types of uncorrelated jittering - Gaussian and white noise.
In Gaussian jittering the values of d are chosen according to Gaussian distribution. For white noise d is uniformly distributed between some - dT and dT.
Look at Figures illustrating this and its effects:
- Gives regular grid of subpixels with centers Xic, Yic (sample points i of super sampling)
- Independently perturb Xic, Yic positions (ie. add noise)
- Compute visibility / intensity at sample points (or fire rays)
- Filter resultant values with some reconstruction filter -> the easiest is box filter (just average all values for single pixel)
- Better might be weighted average (eg. "tent")
Main Aliasing Page.
HyperGraph Home page.