Abstract

Sobel edge detection is widely used in computer vision and image processing but its processing time becomes a serious problem in real-time environments, especially when an image is very large. Instead of utilizing a hardware-accelerated approach, we propose a purely software-based method which is simpler and cheaper. Our algorithm reduces the number of arithmetic operations and data loads, so that processing speed is increased and energy consumption reduced. The processing time is further reduced by the use of AVX intrinsics and OpenMP directives which distribute the workload among the AVX engines in a multi-core architecture. Our algorithm reduces the number of arithmetic operations by 22.73% compared to that of the state-of-the-art Sobel (SOAS) algorithm, while the number of data loads are reduced by 43.75% compared to SOAS. Performance and energy consumption comparisons between our algorithm and SOAS, as well as with the Sobel functions offered by the OpenCV and IPP libraries are investigated, and the results demonstrate that a multi-core version of our algorithm, implemented by AVX intrinsics, is on average 3.20, 9.34, and 13.99 times faster than IPP, SOAS, and OpenCV respectively. Also, it consumes an average of 2.91, 8.43, and 11.21 times less energy than IPP, SOAS, and OpenCV. Our algorithm, utilizing software modifications alone, benefits from both shorter development time and reduced cost compared to hardware approaches relying on an FPGA, ASIC, or GPU, making it more suitable for resource-constrained environments.

Full Text
Published version (Free)

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