Tools for portable parallel image processing
The computational demands of real-time image processing often dictate the use of techniques such as parallel processing to meet required performance. This thesis considers a range of technology which may be used to accelerate image processing operations. An occam compiler is ported to a PowerPC based parallel computer. A multiprocessor configuration tool and Run Time System is developed, allowing occam programs to be distributed over an arbitrary sized network of PowerPC microprocessors. Code optimization techniques for image processing operations are investigated, with the development of a post-compilation code optimizer. The optimizer provides performance increases between 37% and 450% for a variety of image processing algorithms. The applicability of these tools is demonstrated with two image processing applications, micro-biological rapid imaging and sediment texture analysis. Edge detection, region merging and shape analysis algorithms are discussed in the context of the applications. The image processing algorithms are implemented in occam and performance is compared on serial and parallel platforms. The algorithms are then ported to a hardware implementation in a custom computing device, based on a field programmable gate array (FPGA), using the Handel hardware compilation system. The issues involved with this porting are discussed, including the compromises which must be considered when designing for a size constrained hardware platform. Amongst the issues considered are restricted precision data, low level parallelism and algorithmic simplifications. To provide performance equivalent to the hardware, between 5 and 10 processors would be required on the parallel machine, with considerably greater cost, size and power consumption.