Image Processing Acceleration on Advanced Graphics Processors, 10-9434

Printer Friendly Version

Principal Investigators
Michael P. Rigney
Ian R. Meinzen
Jeff A. Wilkinson

Inclusive Dates:  10/01/03 - 04/01/05

Background - The computational power available on a graphics processor (GP) has increased dramatically over the last decade, driven by the needs of three-dimensional graphics in applications such as scientific visualization, computer-aided design, and personal computer (PC) gaming. The strong PC gaming market, in particular, has driven development and made processors available at relatively low cost as a result of the economies of mass production. Some of the latest GPs have a higher level of integration (more transistors) than the Pentium® 4 processor. GP performance has been increasing at a greater rate than that of CPUs. 

Lower cost, high-performance machine vision systems can be deployed if the computational power of graphics processors can be used to perform low-level image analysis operations. Machine vision applications generally have high computational demands. Computational loads continue to increase with multi-camera applications, higher resolution cameras, and greater frame rates. The ability to exploit the GP and the CPU as computational resources will allow the deployment of faster and lower cost systems for computationally demanding machine vision applications. 

Approach - The objective of this project is to investigate the implementation of several low-level, image-processing functions on a high-performance GP. The research emphasis is to investigate the performance provided by various implementations of a few image-processing algorithms, i.e., learning how best to decompose these algorithms onto the GP hardware. The computational performance achieved on the GP will also be compared to that provided by a conventional CPU.

Accomplishments - A high-performance graphics processor was acquired and a development environment configured on a PC with dual 1-GHz Pentium processors. Software is being developed in Microsoft's DirectX9 and High Level Shader Language (HLSL). Library functions for executing image-processing operations on the GP are being developed along, with support and utility functions for tasks such as loading source images, saving image results, and timing function execution. A test program was developed to facilitate the selection of a source image, kernel, and to time the GP or CPU function execution. Algorithm development has been completed for image convolution. Any 3 x 3 or 5 x 5 kernel can be convolved with an image on the GP. GP execution speed was compared to that obtained by the CPU using an optimized library function (Intel Integrated Performance Primitives). The graphics processor execution speed was competitive with the CPU for the 3 x 3 kernel, but approximately one-third as fast for the 5 x 5 kernel. Binary morphology operators were subsequently developed and tested. Timing results showed that the GP provided approximately one-third the performance of the CPU for a small kernel (3 x 3) and one-sixth the performance for a larger kernel (5 x 5).

2005 Program Home