The original and primary motivation for the work described in this thesis is depth of field post-processing. Previous methods for simulating depth of field were either too slow, or of low quality. Depth of field post-processing is a critical component of high quality rendering. Without depth of field, everything is in perfectly sharp focus, lending an unnatural, overly crisp look. In fact, lack of depth of field is an important tip-off that an image is computer generated. Depth of field is challenging to achieve when both high quality and high speed are desired simultaneously. This is because high quality methods are traditionally based on brute force, and fast methods make too many approximations. Intuitively, it seems odd that depth of field is so computationally expensive. Depth of field is a type of blur, and blur inherently removes information from an image, producing an output lacking high frequencies. Producing a simpler image should not be so expensive, and this thesis shows that, indeed, high quality depth of field blurring can be achieved in real time.

Central to this thesis are the concepts of gathering and spreading. Gathering is the process of forming an output pixel by taking a linear combination of input pixels. Spreading is the process of expanding each input pixel into a point spread function (PSF) of some kind, and accumulating those PSFs into the output image. Image filtering is traditionally thought of as gathering, but a central idea of this thesis is that depth of field (and a variety of other applications) is much better suited to spreading. In the course of developing the mathematical theory of filter spreading, we happened upon a new type of image filter that is equally well-described as gathering and spreading. This new method, which we refer to as the tensor filter, is conceptually simple and can leverage the benefits of any combination of gathering and spreading algorithms.

We have developed a variety of new fast, high quality image filtering algorithms. Except for the tensor method, all of these are spreading methods. The reason why we have a variety of techniques is because there are a variety of PSFs that one may wish to use. Our methods achieve speed by exploiting structure in the PSFs. As such, truly arbitrary PSFs are problematic, but high quality results can be achieved with both polynomial and Gaussian PSFs, as well as PSFs that have an arbitrary outline but a constant-intensity interior.

While the original motivation for this work was depth of field, filter spreading actually has a variety of other applications. We have developed proof-of-concept applications for motion blur, implicit curves, and image warping. Filter spreading may also be useful for radial basis function evaluation and volume rendering.




Download Full History