Real-time Video Effects Using Programmable Graphics Cards


Author: Klas Skogmar
Supervisor: Lennart Ohlsson

Summary

The purpose of the master thesis was to implement a simple real-time color correcting tool for video, by using the graphics card to do the calculations instead of using the processor. This is because modern programmable graphics cards can perform very many simultaneous pixel calculations compared to the more general purpose processor. The limitation in using the graphics card today is the bandwidth of the computers, both on the PCI-bus (storage) and on the AGP-bus. The AGP-bus has a high theoretical bandwidth, but are far from reaching its potential when it comes to transferring the data from the graphics card to the processor. This thesis also analyzes these bottlenecks.


Screenshot of the demo program that was developed (click on it for larger image)

Documents

In addition to the report, a brief article has been written and a powerpoint presentation summarizes the work done.

Abstract

The thesis treats the use of modern consumer graphics cards for doing real-time manipulations with high-resolution video. A demo program was developed for color correcting video using the graphics card instead of using the processor. The demo program shows the abilities of this method for doing image-specific tasks. Other programs were also used to test this method’s performance of rendering video to the screen, and to test the transfer rate between the card and the processor. My conclusion is that this is something that has a great potential, but the transfer speed from the graphics card to the memory has to be improved. This is a software issue, but this problem is about to be resolved with driver updates. Already driver updates have enhanced the performance by several hundred percent. It is already a technique that is capable of enhancing the visualization of the modifications that are made. This is a sufficient reason for making programs that utilize the graphics card instead of the processor.

Downloads

The document describing the work can be downloaded here as a A small brief overview of the concepts can be found here:
Article (rtf) [13 kb]
A powerpoint presentation can be downloaded from here:
presentation.ppt [1958 kb]

Code

Directshow filter

The code for the Directshow filter can be found here:
D3DFilter source (zip) [909 kb]

The GUI

The code for the MFC GUI can be found here:
GUI source (zip) [696 kb]

Links

http://www.ati.com/developer/index.html
http://developer.nvidia.com/
ATI's Video shader demo (if link becomes broken, try this local link)
A problem with cinematic rendering on a VPU
Creating a Transform filter