Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Open Computing Language. https://www.khronos.org/opencl/
Open Multi-Processing. https://www.openmp.org/
Open Message Passing Library. https://www.open-mpi.org/
Sancaradas, M., Jakkula, V., Cadambi, S., Chakradhar, S., Durdanovic, I., Cosatto, E., Graf, H.P.: A massively parallel coprocessor for convolutional neural networks. In: 20th IEEE International Conference on Application-specific Systems, Architectures and Processors, pp. 53–60, Boston (2009)
Cireşan, D.C., Meier, U., Masci, J., Gambardella, J., Schmidhuber, J.: Flexible, high performance convolutional neural networks for image classification. In: Proceedings of the Twenty-Second International Joint Conference on Artificial Intelligence, pp. 1237–1242. AAAI Press, Barcelona (2011)
Kim, C.G., Kim, J.G., Hyeon, D.: Optimizing image processing on multi-core CPUs with intel parallel programming technologies. Multimedia Tools Appl. 68, 237–251 (2014)
Tousimojarad, A., Vanderbauwhede, W., Cockshott, W.P.: 2D Image Convolution using Three Parallel Programming Models on the Xeon Phi. CoRR. abs/1711.09791 (2017)
Fayez, G.: Algorithms and Parallel Computing. Wiley, New Jersey (2001)
I.O. for Standardization: ISO/IEC14882:2011. https://www.iso.org/standard/68564.html
I.O. for Standardization. ISO/IEC14882:2017, https://www.iso.org/standard/50372.html
Open Source Computer Vision. https://opencv.org/
Acknowledgments
This work was partially supported by the project “Fondo Sectorial Conacyt-INEGI No. 290910: Diseño e implementación de métodos de búsqueda por similitud de usuarios de redes sociales” and performed during the master degree studies of Yair Andrade funded by the scholarship 634545 granted by CONACYT.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Andrade-Ambriz, Y.A., Ledesma, S., Almanza-Ojeda, DL. (2020). Multithreading Programming for Feature Extraction in Digital Images. In: Mejia, J., Muñoz, M., Rocha, Á., A. Calvo-Manzano, J. (eds) Trends and Applications in Software Engineering. CIMPS 2019. Advances in Intelligent Systems and Computing, vol 1071. Springer, Cham. https://doi.org/10.1007/978-3-030-33547-2_16
Download citation
DOI: https://doi.org/10.1007/978-3-030-33547-2_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-33546-5
Online ISBN: 978-3-030-33547-2
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)