A Reconfigurable and Scalable FPGA Architecture for Bilateral Filtering

Bilateral filter is an edge-preserving smoother that has applications in image processing, computer vision, and computational photography. In the past, field-programmable gate array (FPGA) implementations of the filter have been proposed that can achieve high throughput using parallelization and pipelining. An inherent limitation with direct implementations is that their complexity scales as <inline-formula><tex-math notation="LaTeX">$O(\omega ^2)$</tex-math> </inline-formula> with the filter width <inline-formula><tex-math notation="LaTeX">$\omega$</tex-math></inline-formula> . In this paper, we propose an FPGA implementation of a fast bilateral filter that requires just <inline-formula> <tex-math notation="LaTeX">$O(1)$</tex-math></inline-formula> operations for any arbitrary <inline-formula> <tex-math notation="LaTeX">$\omega$</tex-math></inline-formula>. The attractive feature of the FPGA implementation is that it is both scalable and reconfigurable. To the best of our knowledge, this is the first scalable FPGA implementation of the bilateral filter. As an application, we use the FPGA implementation for image denoising.

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

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

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

[4]  Donald G. Bailey,et al.  Design for Embedded Image Processing on FPGAs: Bailey/Design for Embedded Image Processing on FPGAs , 2011 .

[5]  Matthias Kuba,et al.  An FPGA-Based Fully Synchronized Design of a Bilateral Filter for Real-Time Image Denoising , 2014, IEEE Transactions on Industrial Electronics.

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

[7]  Ahmed Bouridane,et al.  Design and implementation of a high level programming environment for FPGA-based image processing , 2000 .

[8]  Emilio Soria-Olivas,et al.  FPGA Implementation of an Adaptive Filter Robust to Impulsive Noise: Two Approaches , 2011, IEEE Transactions on Industrial Electronics.

[9]  R. Deriche Recursively Implementing the Gaussian and its Derivatives , 1993 .

[10]  Eric Monmasson,et al.  FPGA Design Methodology for Industrial Control Systems—A Review , 2007, IEEE Transactions on Industrial Electronics.

[11]  Michael Unser,et al.  Fast $O(1)$ Bilateral Filtering Using Trigonometric Range Kernels , 2011, IEEE Transactions on Image Processing.

[12]  Peter Lee,et al.  An FPGA implementation of a flexible, parallel image processing architecture suitable for embedded vision systems , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[13]  Eero P. Simoncelli,et al.  Image quality assessment: from error visibility to structural similarity , 2004, IEEE Transactions on Image Processing.

[14]  Jürgen Teich,et al.  A Design Methodology for Hardware Acceleration of Adaptive Filter Algorithms in Image Processing , 2006, IEEE 17th International Conference on Application-specific Systems, Architectures and Processors (ASAP'06).

[15]  Truong Quang Vinh,et al.  FPGA Implementation of Real-Time Edge-Preserving Filter for Video Noise Reduction , 2008, 2008 International Conference on Computer and Electrical Engineering.

[16]  Donald G. Bailey,et al.  Design for Embedded Image Processing on FPGAs , 2011 .