Multithreading Programming for Feature Extraction in Digital Images

Currently, there is a great advance in the construction of processors with many cores, providing more computational power and resources to use. In the field of image processing, most of the algorithms use a sequential architecture that prevents from reaching the maximum performance of processors. In this work, we design and implement a set of low-level algorithms to optimize the processing of a two-dimensional convolution to obtain the best performance that a CPU can grant. Our approach uses parallel processing in four different cases of study based on multithreading. The computation time is compared in order to find which case achieves the best performance. In the same way, the computation time of the proposed algorithms is measured, and then, it is compared with general frameworks, in order to have a real metric of the proposed library with popular Application Programming Interfaces (API’s) like OpenMP.