Analysis and Implementation of a Fast Bilateral Filter
Pravin Nair, Anmol Popli, Kunal N. Chaudhury
⚠ This is a preprint. It may change before it is accepted for publication.


The bilateral filter is a popular non-linear smoother that has applications in image processing, computer vision, and computational photography. The novelty of this filter is that a range kernel is used in tandem with a spatial kernel for performing edge-preserving smoothing (both kernels are usually Gaussian). A direct implementation of the bilateral filter is computationally expensive and several fast approximations have been proposed to address this problem. In particular, it was recently demonstrated in a series of papers that a fast and accurate approximation of the bilateral filter can be obtained by approximating the Gaussian range kernel using trigonometric polynomials. The resulting algorithm has a simple implementation and admits a straightforward parallelization. Moreover, it comes with a mechanism for controlling the approximation. In this paper, we propose a parallelized C implementation of a fast bilateral filter that is obtained by adopting some of the key ideas from the above-mentioned papers. Moreover, we analyze the effect of various extrinsic and intrinsic parameters on the approximation, and propose some simple algorithmic improvements. A key component of the implementation are the sub-routines for implementing the recursive Gaussian filters of Deriche and Young.