A Heterogeneous Implementation of the Sobel Edge Detection Filter Using OpenCL

Theodora Sanida, Argyrios Sideris, Minas Dasygenis · 2020

Today, edge detection is a cornerstone technique as edges are essential in many applications, such as image processing and biometric imaging. One popular algorithm for edge detection is the Sobel. Many researchers have focused on accelerating the Sobel filtering, but to the best of our knowledge we are the first to propose a 5×5 convolution kernel implementation using OpenCL. In this work, we implement the Sobel filter, one of the most effective and popular edge detection algorithms in image processing, in the OpenCL programming language. From the implementation of the Sobel algorithm we compare the performance of the CPU and GPU through OpenCL, in typical images ranging from 64×64 to 4096×4096 pixels. The Sobel operator uses a pair of 3×3 horizontal and vertical convolution kernels for edge detection functions. We apply 3×3 and 5×5 convolution kernels using OpenCL and compare them. The results have shown that for all image sizes, the GPU speed up ranges from 11,18 to 15,46 times with 3×3 convolution kernels, while speed up is from 10,05 to 13,46 times for the 5×5 convolution kernels. Finally, the results of our implementation are compared to other existing implementations and found to achieve better performance.

Read the paper · More papers on PaperTik