Acceleration of the shiftable O(1) algorithm for bilateral filtering and nonlocal means.
A direct implementation of the bilateral filter requires  O(σ(s)(2)) operations per pixel, where  σ(s) is the (effective) width of the spatial kernel. A fast implementation of the bilateral filter that required   O(1) operations per pixel with respect to  σ(s)  was recently proposed. This was done by using trigonometric functions for the range kernel of the bilateral filter, and by exploiting their so-called shiftability property. In particular, a fast implementation of the Gaussian bilateral filter was realized by approximating the Gaussian range kernel using raised cosines. Later, it was demonstrated that this idea could be extended to a larger class of filters, including the popular non-local means filter. As already observed, a flip side of this approach was that the run time depended on the width  σ(r) of the range kernel. For an image with dynamic range  [0,T], the run time scaled as  O(T(2)/σ(2)(r)) with   σ(r). This made it difficult to implement narrow range kernels, particularly for images with large dynamic range. In this paper, we discuss this problem, and propose some simple steps to accelerate the implementation, in general, and for small  σ(r) in particular. We provide some experimental results to demonstrate the acceleration that is achieved using these modifications.
Program in Applied and Computational Mathematics, Princeton University, Princeton, NJ 08544, USA. kchaudhu@math.princeton.edu
Kunal N
KN
Chaudhury