Approximate Non-Stationary Convolution Using a Block Separable Matrix

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.