Abstract

This study examines vectorized programming for finite impulse response image filtering. Finite impulse response image filtering occupies a fundamental place in image processing, and has several approximated acceleration algorithms. However, no sophisticated method of acceleration exists for parameter adaptive filters or any other complex filter. For this case, simple subsampling with code optimization is a unique solution. Under the current Moore’s law, increases in central processing unit frequency have stopped. Moreover, the usage of more and more transistors is becoming insuperably complex due to power and thermal constraints. Most central processing units have multi-core architectures, complicated cache memories, and short vector processing units. This change has complicated vectorized programming. Therefore, we first organize vectorization patterns of vectorized programming to highlight the computing performance of central processing units by revisiting the general finite impulse response filtering. Furthermore, we propose a new vectorization pattern of vectorized programming and term it as loop vectorization. Moreover, these vectorization patterns mesh well with the acceleration method of subsampling of kernels for general finite impulse response filters. Experimental results reveal that the vectorization patterns are appropriate for general finite impulse response filtering. A new vectorization pattern with kernel subsampling is found to be effective for various filters. These include Gaussian range filtering, bilateral filtering, adaptive Gaussian filtering, randomly-kernel-subsampled Gaussian range filtering, randomly-kernel-subsampled bilateral filtering, and randomly-kernel-subsampled adaptive Gaussian filtering.

Highlights

  • Image processing is known as high-load processing

  • We summarize a taxonomy of vectorized programming for finite impulse response (FIR) image filtering

  • These vectorization patterns are combined with an acceleration method of kernel subsampling for general FIR filters

Read more

Summary

Introduction

Image processing is known as high-load processing. vendors of central processing units (CPUs) and graphics processing units (GPUs) provide tuned libraries, such as the IntelIntegrated Performance Primitives (Intel IPP) and NVIDIA Performance Primitives (NPP). Image processing is known as high-load processing. Vendors of central processing units (CPUs) and graphics processing units (GPUs) provide tuned libraries, such as the Intel. Integrated Performance Primitives (Intel IPP) and NVIDIA Performance Primitives (NPP). Open-source communities provide optimized image processing libraries, such as OpenCV, OpenVX, boost. Moore’s law [1] indicates that the number of transistors on an integrated circuit will double every two years. In the development of integrated circuits, the increased numbers of transistors were largely devoted to increase clock speeds of CPUs. Power and thermal constraints limit increases in CPU frequency, and the utilization of the increased numbers of transistors has become complex [2]. Most CPUs have multi-core architectures, complicated cache memories, Appl.

Methods
Results
Conclusion
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.