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
Summary
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.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
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.