Abstract

Image processing is an engineering field where stored image data is readily available for parallel processing. Basically data processing algorithms developed in sequential approach are not capable of harnessing the computing power of individual cores present in a single-chip multicore processor. To utilize the multicore processor efficiently on windows platform for color image processing applications, a lock-free multithreading approach was developed using Visual C++ with Microsoft Foundation Class (MFC) support. This approach distributes the image data processing task on multicore Central Processing Unit (CPU) without using parallel programming framework like Open Multi-Processing (OpenMP) and reduces the algorithm execution time. In image processing, each pixel is processed using same set of high-level instruction which is time consuming. Therefore to increase the processing speed of the algorithm in a multicore CPU, the entire image data is partitioned into equal blocks and copy of the algorithm is applied on each block using separate worker thread. In this paper, multithreaded color image processing algorithms namely contrast enhancement using fuzzy technique and edge detection were implemented. Both the algorithms were tested on an Intel Core i5 Quad-core processor for ten different images of varying pixel size and their performance results are presented. A maximum of 71% computing performance improvement and speedup of about 3.4 times over sequential approach was obtained for large-size images using four thread model.

Highlights

  • Machine vision systems used in various industrial applications are capable of capturing high resolution images and demands time efficient parallel data processing algorithms in real-time environment

  • We studied the development of multithreaded C++ algorithms for processing low and high resolution color images on a multicore Central Processing Unit (CPU) without using parallel programming library and any other additional hardware

  • The speedup varies from 2.82 to 3.44 times and the performance improvement achieved is between 64.50% and 70.94%

Read more

Summary

INTRODUCTION

Machine vision systems used in various industrial applications are capable of capturing high resolution images and demands time efficient parallel data processing algorithms in real-time environment. Different parallel programming libraries such as OpenMP and Message Passing Interface (MPI) are widely applied in the development of parallel image processing algorithms. We studied the development of multithreaded C++ algorithms for processing low and high resolution color images on a multicore CPU without using parallel programming library and any other additional hardware. To ensure fine grain (data level) parallelism [5] and computation load balance of the algorithm in a multicore CPU, a lock free multithreaded block-data parallel approach is proposed. In this approach, the image data is shared among worker threads and each one manipulates its portion of data.

MULTITHREADED IMAGE PROCESSING USING MFC
MATERIALS AND METHODS
Hardware and Software
Multithreaded Block-data Parallel Approach Steps
RESULTS AND DISCUSSION
Results of Multithreaded Contrast Enhancement Algorithm
Results of Multithreaded Edge Detection Algorithm
CONCLUSION
Full Text
Paper version not known

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