High Performance Color Image Processing in Multicore CPU using MFC Multithreading

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.

[1]  S. Pal,et al.  Image enhancement using smoothing with fuzzy sets , 1981 .

[2]  Douglas S. Reeves,et al.  Parallel image processing with the block data parallel architecture , 1996, Proc. IEEE.

[3]  Rajkumar Buyya,et al.  Parallel Programming Models and Paradigms , 1998 .

[4]  Byung-Kook Kim,et al.  Load balancing algorithm of parallel vision processing system for real-time navigation , 2000, Proceedings. 2000 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2000) (Cat. No.00CH37113).

[5]  Chi N. Thai,et al.  Multi-Threaded Design of Spectral Imaging Software , 2005 .

[6]  Xue An-ke,et al.  Degraded image enhancement with applications in robot vision , 2005, 2005 IEEE International Conference on Systems, Man and Cybernetics.

[7]  Baoguo Xu,et al.  An Image Enhancement Approach Using Retinex and YIQ , 2009, 2009 International Conference on Information Technology and Computer Science.

[8]  Jun Zhou,et al.  Multithreading Method to Perform the Parallel Image Registration , 2009, 2009 International Conference on Computational Intelligence and Software Engineering.

[9]  Dukki Chung,et al.  Lock-free data structure for multi-core processors , 2010, ICCAS 2010.

[10]  R. Q. Feitosa,et al.  MULTIRESOLUTION SEGMENTATION : A PARALLEL APPROACH FOR HIGH RESOLUTION IMAGE SEGMENTATION IN MULTICORE ARCHITECTURES , 2010 .

[11]  Siti Arpah Ahmad Parallel approach of Sobel Edge Detector on Multicore Platform , 2011 .

[12]  Mohamad Sahari Nordin,et al.  A Study of Image Processing in Agriculture Application under High Performance Computing Environment , 2012 .

[13]  Silvana Greca,et al.  Multithreading Image Processing in Single-core and Multi-core CPU using Java , 2013 .

[14]  Devrim Akgün Performance Evaluations for Parallel Image Filter on Multi - Core Computer using Java Threads , 2013 .

[15]  Neeraj Sharma,et al.  Image Processing Tasks using Parallel Computing in Multi core Architecture and its Applications in Medical Imaging , 2013 .

[16]  Petar Spalević,et al.  Multithreaded Application for Real-Time Visualization of ECG Signal Waveforms and Their Spectrums , 2013, Int. J. Comput. Commun. Control.

[17]  Gwanggil Jeon,et al.  Image Enhancement in YIQ Space , 2013 .