Theory of Operation

<< Click to Display Table of Contents >>

Navigation:  GPU Processing >

Theory of Operation

 

The Common Vision Blox GPU Processing tool enables the power of a today’s Graphic Processing Units (GPUs) to be used for image processing applications.

Since Common Vision Blox already supports multiple processors using multiple cores its now possible to extend this to probably the fastest processor in the computer.

Image data can be transferred to the GPU memory, passed through one of the GPUs hardware arithmetic logical units  (called shader) for pre-processing purposes
and afterwards transferred back to host memory for further post-processing.

Pre- and post-processing can be carried out in parallel to ensure maximum processor usage and minimal processing time.

 

Maximizing processor usage sounds curious but in most applications the main focus is to minimize the processing time.
At the same time these applications often don’t use the GPU as a coprocessor.

This is something Common Vision Blox GPU Processing wants to change.
To do so it combines the functionality covered by the Microsoft DirectX SDK with the functionality covered by Common Vision Blox.

To use the GPU the DirectX SDK invented the so called High Level Shader Language (HLSL).

HLSL is a programming language that provides a C style syntax together with a powerful set of functions that are specially designed for operations on images as they are used mainly in PC games.
These functions include pixel operations as well as transformations of the coordinate systems to generate different views of a scene.
The interesting fact is that many of these functions are implemented in the GPU hardware meaning that they can be executed in one clock cycle and with the pixel rate of the VGA output.
It’s obvious that some image processing functions also benefit from such functions.

 

Find explanations for GPU processing technical terms:

 

Backbuffer

BlitTarget / BlitSource

Blitter

DirectX

Geometry processor

Off-screen Memory

Parallel projection

Perspective projection

Pixel shader

RenderTarget / RenderSource

Shader file

Surfaces

Textures

Vertex shader

Window Handle (hWnd)