 |
 |
How does a video accelerator work, and will one help me?
|
Are the acronyms confusing? try the Glossary of computer terms |
For chipset information, go Here
|
The term accelerator is used so frequently that it has lost much of
its meaning. This section is intended to answer how a video card with
special purpose video acceleration works, typically called 'Windows
accelerator' or 'coprocessed' cards. In a general sense, the principals
here can be applied to 2D, 3D and digital video acceleration. For more
specific information about 3D and digital video acceleration, see "How
does a 3D graphics accelerator work?" and "What does a video codec do?".
Before we get into acceleration, we have to understand how a VGA card
works.
A VGA card is a simple display adapter with no processing capability.
All the thinking is done by the CPU, including writing and reading of
text, and drawing of simple graphics primitives like pixels, lines and
memory transfers for images.
Programs like most DOS-based word processors run in VGA text mode
while graphics-based programs like games run in graphics mode. Microsoft
Windows 3.1 runs in VGA graphics mode as default, meaning that every pixel
you see as a part of the background, a window or text character had to
be written using basic VGA calls. As you can imagine, the low-level
nature of the VGA command set means that many commands are required to do
something as simple as moving or closing a window. To move a window, the
VGA commands might go something like this:
-Block transfer to store window contents in PC RAM
-Solid rectangle fill (to blank window - cosmetic)
-Block transfer to put window in new location in VGA RAM
-Block transfer or Write pixel to rewrite background behind
old window location.
Clearly, an enormous amount of data must move from the VGA card,
along the bus, into the CPU, and on into memory, and vice versa. This
has to occur because the VGA card has no processing capability of its
own, it relies on the CPU. Now we are in a position to understand how
a graphics accelerator works.
A VGA card has its own memory and digital-to-analog converter (DAC),
but can't actually process data. Accelerated video cards have their own
processor, and therefore are called video coprocessors. This means such
a card can perform many video operations by itself, with only minimal
input from the CPU. Let's go back to our example of moving a window.
Assume our 'accelerated' card can keep track of:
-the background fill pattern
-the location and contents of rectangular regions, i.e. windows
-and has adequate memory to store them.
To move a window, the CPU has to transmit something like:
-'move window' instruction
-window ID
-location to move to
At this point, the video card can perform all of the operations the
CPU would have had to with a VGA card. This frees the bus and CPU to
execute other tasks, and speeds-up video operations as they're all done
on the video card. Why is this faster? Unlike VGA mode, where every
pixel has to be moved to and from the card via the bus and CPU, the
accelerated card can perform the same operations with instructions
consisting of only a few bytes being transferred along the bus. This
will result in an enormous performance gain for most common graphics
operations including bitmap and pixmap transfers and painting, movement
of sprites and icons, opening and closing of windows, filling with solid
colours and patterns, line drawing, polygon painting, etc. As a result,
even an ISA bus accelerator video card can provide blistering speed
improvements over VGA in graphical environments like Windows 3.1, OS/2,
X Windows (i.e. XFree86) and AutoCAD. Some operations like animations
or raw video playback which require large block transfers at high rates
will benefit less from accelerator cards.
Some newer accelerator cards include functions for 3D graphics
rendering like polygon shading, coordinate manipulation and texture
mapping. Others provide on-the-fly magnification of video clips so
that those MPEG movies don't appear in a box that's three inches wide
and two inches high on your screen.
However, keep in mind that the implementation of a given video
coprocessor is proprietary. This means we're tied to a system where
every video accelerator has a set of proprietary drivers which interpret
video commands. Different drivers are required for each operating system
or software program that wishes to take advantage of acceleration
functions. Some 3D graphics standards like SGI's OpenGL and PHIGS are
being integrated into workstation video hardware, and perhaps in the
future a 3D (or even 2D!) standard will be accepted by PC component
manufacturers to provide a consistent set of video instructions for
accelerated hardware.
|
|