I Think I Broke It!  Free online help for your everyday computer problems

How a Graphics Card Works - Page 4

Telling Your Buffers from Your Outputs

The image you can currently see on your monitor is derived from the graphics card's (or chip's) internal representation of visual data, this data is stored in an area on on-board memory called the frame buffer. The frame buffer defines visual images, be they 2D or 3D, as 'rasters'. A raster consists of a two-dimensional grid of pixels that match the resolution of the output device (for example 1024 x 768 or 1280 x 1024 pixels).

 


A close up shot of the NVIDIA 'Dusk' demo shows how a detailed image is made up from lots of simple coloured pixels.

The image displayed on any computer monitor or television is made up from a large grid of pixels, and each pixel is defined by three colours (or channels), namely red, green and blue. Each pixel colour is thus derived from a combination of three numbers, which each represent differing values of these colours. For example, black is simply '0,0,0', and white is the maximum value for each channel.

When a graphics card needs to modify the displayed image, it just has to write new colour data for each pixel stored in the frame buffer memory area. It probably comes as no surprise then that the amount of memory assigned in the frame buffer for colour channels determines the range of colours that each pixel is capable of displaying (a larger amount of memory can obviously store more pixel colour data).

Since a pixel is made up from three colours, a colour depth of 24 bits per pixel allows 8 bits for each colour channel (24/3). This gives a heady 16.7 million different colours that can be displayed by each pixel, more than enough colour depth for your average human eyeballs.

As the resolution of the display increases, so does the size of the frame buffer that's required. 800 x 600 at a 24-bit colour depth = 1.4MB (800 pixels x 600 pixels, multiplied by 3 bytes for each pixel equals 1,440,000 bytes), 1600 x 1200 at a 24-bit colour depth = 5.8MB, and if you increase the colour depth to 32-bit colour, 1600 x 1200 uses 7.7MB - that's how much memory it takes to store a single frame at any one time.

Once there's a frame in the buffer ready to be displayed, it needs to be sent to the monitor, this is often done in two different ways to cater for different display technologies.

The first output is delivered to a 'VGA' (Video Graphics Array) connector. All CRT (Cathode Ray Tube) monitors attached to a VGA connector use analogue signals. To convert the digital data stored in the frame buffer into an analogue signal, the graphics card uses a fast converter called a RAMDAC. This constantly reads pixels from the frame buffer and converts them to varying analogue voltages which control the intensity of the red/blue/green electron guns inside a CRT monitor.

 


The VGA output on a graphics card

 


The corresponding VGA plug which connects to the monitor

 

The second possible output can be delivered to a 'DVI' (Digital Video Interface) connector. As the name suggests, this connector is capable of carrying digital pixel data (directly from the frame buffer) without first converting it to analogue. This port is commonly used in conjunction with TFT monitors to help with picture quality (what's the point of converting from digital to analogue, and then back from analogue to digital when the signal gets to the monitor?).

 


The DVI-I (Digital Video Interface - Integrated) output on a graphics card

 


The corresponding DVI-I plug which connects to the monitor

 

It's also worth noting that while VGA connectors are exclusively analogue, DVI connectors carry not only the digital signal, but also the exact same analogue signal from the RAMDAC alongside it. The advantage of this being that a simple adapter can be used to convert a DVI port to work with a VGA monitor:

 


Converting from DVI-I to VGA is as easy as plugging your dongle in.
You did keep your dongle... didn't you?

 

While we're on the subject of the frame buffer and outputs, this seems as good a time as any to mention frame rates and refresh rates, and the distinction between them.

The refresh rate, measured in kHz, is the number of times per second that the image displayed on the monitor is redrawn. Most graphics cards are capable of refreshing the screen more than 60 times per second, with higher end cards capable of refreshing the screen 100 times per second (depending on the resolution being used and the monitor's capabilities).

The frame rate is a separate measurement that indicates the number of times the card is able to update the frame buffer in a second. So, unlike the refresh rate, the frame rate can vary depending on the current workload of the card. If the card has to do more complex things to construct a frame, then the frame rate will drop as a result. An acceptably slow frame rate starts at around 25-30 frames per second (this varies between game genres though).

Frame rates that exceed the current refresh rate are redundant to a large extent, since these 'extra' frames will never be seen (e.g. at a refresh rate of 70kHz, a game running with a frame rate of 100 frames per second would still only be showing 70 frames per second, the other 30 frames in-between will simply be lost).


<<< Previous 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 Next >>>

Article Navigation:

Latest Question

Stop Automatic Restarts after Automatic Windows Updates - After leaving my computer to encode a large video the other day, I was surprised to come back and find it sitting at the login screen. ...

View Full Question & Answer
 

Search
To search the site, enter your search string in the box below: