Implementation of Gaussian and Box Kernel Based Approximation of Bilateral Filter Using OpenCL

A Bilateral filter is basically an edge-preserving and smoothing, non-linear filter. It consists of two kernels, namely spatial and range kernels which can be constant or arbitrary. Algorithms for bilateral filtering with constant time computational complexity are present today, but their execution time is too high for real time applications. Also, hardware latency and throughput sometimes reduce the speed of filtering. In this paper, we introduce a novel algorithm for bilateral filtering in which we combine box spatial kernel with Gauss-Polynomial range kernel. Parallel implementation of the algorithm is done on GPU (AMD Radeon HD 7650M) using OpenCL and an average run time of 15ms is achieved for an image of dimensions 256 x 256. Results of this algorithm is found to be about 15 times faster than the parallel implementation of bilateral filter with Gaussian spatial kernel and Gauss-Polynomial range kernel. We infer that while the PSNR values obtained are very close, there is a significant improvement in run-time when we use the proposed algorithm.

[1]  Ben Weiss,et al.  Fast median and bilateral filtering , 2006, ACM Trans. Graph..

[2]  S. M. Steve SUSAN - a new approach to low level image processing , 1997 .

[3]  Lucas J. van Vliet,et al.  Separable bilateral filtering for fast video preprocessing , 2005, 2005 IEEE International Conference on Multimedia and Expo.

[4]  Jiawen Chen,et al.  Real-time edge-aware image processing with the bilateral grid , 2007, SIGGRAPH 2007.

[5]  Metin Nafi Gürcan,et al.  Coordinating the use of GPU and CPU for improving performance of compute intensive applications , 2009, 2009 IEEE International Conference on Cluster Computing and Workshops.

[6]  Michael Elad,et al.  On the bilateral filter and ways to improve it , 2002 .

[7]  Fatih Porikli,et al.  Constant time O(1) bilateral filtering , 2008, 2008 IEEE Conference on Computer Vision and Pattern Recognition.

[8]  Kunal N. Chaudhury Fast and accurate bilateral filtering using Gauss-polynomial decomposition , 2015, 2015 IEEE International Conference on Image Processing (ICIP).

[9]  Kunal N. Chaudhury,et al.  Acceleration of the Shiftable $\mbi{O}{(1)}$ Algorithm for Bilateral Filtering and Nonlocal Means , 2012, IEEE Transactions on Image Processing.

[10]  Frédo Durand,et al.  A Fast Approximation of the Bilateral Filter Using a Signal Processing Approach , 2006, International Journal of Computer Vision.

[11]  Narendra Ahuja,et al.  Real-time O(1) bilateral filtering , 2009, 2009 IEEE Conference on Computer Vision and Pattern Recognition.

[12]  Tsutomu Maruyama,et al.  Performance comparison of FPGA, GPU and CPU in image processing , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[13]  Roberto Manduchi,et al.  Bilateral filtering for gray and color images , 1998, Sixth International Conference on Computer Vision (IEEE Cat. No.98CH36271).

[14]  Michael Elad,et al.  On the origin of the bilateral filter and ways to improve it , 2002, IEEE Trans. Image Process..

[15]  Alexei A. Efros,et al.  Fast bilateral filtering for the display of high-dynamic-range images , 2002 .

[16]  K. Jayachandra Reddy Acceleration of Shiftable O (1) Algorithm for Bilateral Filtering and Non-local means , 2014 .