Pages, some stolen, some original

Wednesday, May 7, 2008

Video Buzzwords

First, some acronyms:
API Application Programming Interface
CPU Central Processing Unit
DXVA DirectX Video Acceleration

GPU Graphics Processing Unit



DXVA is a Microsoft API designed to allow the decoding of a video data stream to be offloaded to the GPU instead of having the CPU do all the work.

DirectX is an old Microsoft API designed to allow programs direct access to the video hardware. It was developed in response to the demand for higher performance for video games.

GPU is typically found on the video controller card, or in some cases (known as intergrated graphics) on the motherboard.

Depending on the algorithm (or type of encoding) used to encode the video signal, there may be great deal of processing that needs to be done before the data can be used to generate a frame for display. This is done in a pipeline manner, where one process does the first step and then hands the data off to the next process for the next step, and so on until the data is ready for display.

With higher resolution displays, there is more data that needs to be processed for each frame. Modern GPU's are approaching CPU's processing power, and in certain applications, surpassing them. The aim of DXVA is to harness some of this processing power for the decoding and so free up the CPU for other tasks.

However, not all GPU's are created equal. DXVA aims to smooth over this disparity by substituting software processes (running on the CPU) for any decoding processes that are not available on the current GPU.

MPEG2 is the standard used for movies on DVD's, amongst other things. VC-1 and H.264 are competing standards. VC-1 comes from Microsoft. They are used on HD & BluRay DVD's.

Codecs are encoders/decoders. They can be hardware or software. The encoder takes an incoming stream of data and process it in some manner for transmission to another site. The decoder receives this transmitted stream of data and "decodes" it so that it can be read, or viewed, by the recipient.

The algorithm, or standard, for the encoding can be done for any number of purposes:
  • to ensure more reliable transmission (fewer errors)
  • to compress the data (use less bandwidth)
  • encrypt the data so only the intended recipient can read it.
For video, compression is generally the highest priority. Once upon a time Andy (Grove) wanted a killer app, i.e. an application program that everyone wanted that would require faster and more powerful CPU's. ProShare was the first foray into this. It was a little premature, but now that the internet tubes are bigger, the demand for processor power is outstripping what even Intel can supply.

Update December 2016 replaced missing picture.

No comments:

Post a Comment