Image Processing Acceleration on Advanced Graphics Processors, 10-9434Printer Friendly Version
Inclusive Dates: 10/01/03 - Current
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. GP performance has been increasing at a greater rate than that of central processing units (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 multicamera applications, higher resolution cameras, and greater frame rates. The ability to exploit both 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 using an optimized library function (Intel Integrated Performance Primitives). The graphics processor execution speed was competitive for the 3 x 3 kernel, but significantly slower for the 5 x 5 kernel.