(IJCSIS) International Journal of Computer Science and Information Security,Vol. 9, No. 9, September 2011
Multithreaded Image Processing
Jamil A. M. Saif
Computer Science DepartmentFaculty of Computer Science and engineeringHodeidah UniversityHodeidah, Yemene-mail: firstname.lastname@example.org
Hamid S. S. Alraimi
Computer Science DepartmentFaculty of Computer Science and engineeringHodeidah UniversityHodeidah, Yemene-mail:
real time image processing applications require ahuge amount of processing power, computing ability and largeresources to perform the image processing applications. Thenature of processing in typical image processing algorithmsranges from large arithmetic operations to fewer one.This paper presents an implementation of image processingoperations using simultaneous multithreading, the performanceof multithreading is analyzed and discussed, for the varyingnumber of images.
Keywords- multithreading; image processing; performance.
Recently digital image processing has a broad spectrum of applications, such as multimedia systems, business systems,monitoring, inspection systems, and archiving systems. In spiteof digitization, storage, transmission, and display operations,extra functions are considered. They are as follows: image datacompression and representation, image enhancement andreconstruction, image indexing, retrieval and matching, etc. andthey are executed on application oriented servers.Generally three levels of image processing aredistinguished to analyze and tackle the image processingapplication: low-level operations, intermediate-leveloperations, and high-level operations.Low-level operations: Images are transformed intomodified images. These operations Work on whole imagestructures and yield an image, a vector, or a single value. Thecomputations have a local nature; they work on single pixels inan image. Examples of Low-level operations are: smoothing,convolution and histogram generation.An intermediate-level operations: Images are transformedinto other data structures. These operations work on images and produce more compact data structures (e.g. a list). Thecomputations usually do not work on a whole image but onlyon objects/segments (so called regions of interest ROI) in theimage. Examples of intermediate-level operations are: regionlabeling and motion analysis.A high-level operations: Information derived from imagesis transformed into results or actions. These operations work ondata structures (e.g. a list) and lead to decisions in theapplication. So high-level operations can be characterized assymbolic processing. An example of a high-level operation isobject recognition.There is a big challenge concerning image processing dueto time consuming computation, some researches address this problem using parallel environments[2,5 ] such as PVM, MPI,others used distributed parallel processing using java RMI,Sockets and Corba.In image processing operations the existing approach to parallelism get constrained due to variant size of data and therequired resources. Hence a system is required for the efficientcontrolling of image processing operation with variable datasize. for this reason a multithreading approach is proposed.The contents of this paper is organize as follows :in section2 image conversion is presented, in section 3 a multithreadingand its related concepts are defined, in section 4 the resultsobtained from the experiments are described and discussed,finally the summarized conclusion is given.II.
In this paper a low level image processing is used that willmodify RGB colored image into grey scale one, the RGBimage is transformed according to the following formula :valuescalegreyisIand1,ααα:where
For each pixel in RGB image the I grey scale value iscalculated and this calculation is repeated by scanning thewhole image starting from the upper left corner to the bottomright corner of the given image, and this calculation may berequired for several images, these heavy computations needsome way to reduce the cost of computation.III.
ULTITHREADING AND ITS RELATED CONCEPTS
Multithreading is a technique that allows a program or a process to do many tasks concurrently at the same time [9,10].Multithreading allows a process to run tasks in parallel on asymmetric multiprocessing (SMP) system or a chipmultithreading [7,8] (CMT) system, allowing the process toscale linearly with the number of cores or processors, whichimproves performance, increases efficiency, and increasesthroughput.