Lens-based vision systems such as human eyes and cameras focus on one particular distance from the lens. The rest of a viewed image is out of focus with a degree which varies according to the distance from the object in focus. This is called depth of field. Computer generated images are most quickly and easily rendered entirely in perfect focus, causing them to appear unnatural and cluttered. Many methods of adding depth of field blur to CG images have been examined, all so far have failed to give consistent high quality results when processing times approaching 60 frames per second for video production are required. Direct linear filtering, originally developed by Potmesil and Chakravarty [1982], is the traditional method of blurring images for depth of field. A post-process method, it is very computationally expensive and therefore slow, with the number of operations being O ( N2 ) for an image of N pixels. Convolution using a Fast Fourier Transform can blur an image in O (N log N), but only allows a constant degree of blur throughout the image. The purpose of this project is to examine an alternate method of blurring by compressing a filter matrix into separable blocks stored in a quadtree. By processing the blocks using a tree traversal and outer products of vectors resulting from the separation, a processing time of O (M) should be achievable, where M is the size of the block. Additionally, this process will allow the use of any matrix, enabling a variable degree of blur throughout the image.
[1]
Michael Potmesil,et al.
Synthetic Image Generation with a Lens and Aperture Camera Model
,
1982,
TOGS.
[2]
Franklin C. Crow,et al.
Summed-area tables for texture mapping
,
1984,
SIGGRAPH.
[3]
Paul S. Heckbert,et al.
Filtering by repeated integration
,
1986,
SIGGRAPH.
[4]
Eugene Fiume,et al.
Constant-time filtering with space-variant kernels
,
1988,
SIGGRAPH.
[5]
The accumulation buffer: hardware support for high-quality rendering
,
1990,
SIGGRAPH.
[6]
C. Gotsman.
Constant‐Time Filtering by Singular Value Decomposition †
,
1994
.
[7]
Robert L. Cook,et al.
Distributed ray tracing
,
1998
.