Over the past decade two approaches for computing global illumination for realistic images have emerged - Monte Carlo path tracing and finite element (radiosity) methods. An advantage of the Monte Carlo approach is that the computational work is concentrated in the visible image at image resolution - not distributed throughout the environment. A disadvantage is that Monte Carlo images generated in a fixed length of time appear noisy. In this paper we examine the origins of this noise and develop the idea of energy preserving non-linear filters to reduce noise in post-processing. The filters are energy preserving in that they spread ``noisy'' samples into small regions rather than throwing them out. The filters are non-linear because the local distribution of samples is based on their magnitudes, hence output pixels will not be tied to a uniformly weighted sum of the input values. (Although such a relation may hold over large portions of the image.) The formulation of the filters is unique in that they are constructed by specifying the influence of each input sample, rather than by specifying the support region for each output pixel.

We begin with a discussion of digital filter applications in computer graphics, and the need for a new filter for synthetic images. We then discuss the source of noise in Monte Carlo images by examining features of this solution to the rendering equation. We develop the overall design of an energy preserving non-linear filter and show implementations of these filters for two different rendering systems. Examples are presented to demonstrate how energy preserving non-linear filters can effectively improve image quality without requiring additional sampling.