Data Compression & Software decoders
Over the last few years, the internet has literally
exploded with media related files like music and movies.
Faster computers and larger harddrives has made it possible to
store hundreds of movies or thousands of audio clips on a
single computer. Increasing bandwiths and peer to peer
software allows millions of users to download new media files
every day. None of this would have been possible though, if we
didn't have software compression. New formats like mpeg, wma
and divx has reduced the size of movies and music files by 10
times or more. Software compression in turn is made possible
by today's lighting fast CPUs. 5 years ago, a PC running at
200 MHz was considered state of the art, and decoding high
quality DivX movies was out of the question. Today, with CPUs
running at over 2GHz, decoding movies shouldn't be a problem.
But it still is!
The source of the problem
While a modern computer should easily be able to handle high
resolution video playback, skipped frames and visual artifacts
are not uncommon. The main reason for this is that the CPU has
to deal with more than one task at a time. By rapidly
switching between different tasks, the computers seems to be
operating in parallel, but unless you have two CPUs, this is
not actually the case. This technique, called multitasking, is
usually very efficient and works well with most applications,
but with softwares that requires a lot of cpu time and also
has to produce a continuous output without dropped frames or
audio gaps, it sometimes needs a little help.
Most operating systems that support multitasking, also assigns
different priorities to different tasks, so that you can tell
the system which tasks are more important. Windows is no
exception and, even though many users are not aware of this,
you can assign different priorities to different processes in
Windows 98 as well as Windows XP. Sometimes you may also have
to terminate some unnecessary processes to free up other
resources like memory.
The following things should always be considered before
playing long divx movies at high resolutions.
1. If the computer has been running for a long time, reboot it
to make sure the system is completely stable.
2. Terminate all programs that aren't absolutely necessary
(Ideally everything except the DivX software and system
processes (red in the WinTasks process list). Use WinTasks to
terminate as many processes as possible including background
processes. (WinTasks lists many background processes not
visible from ctrl+alt+del, some of those can be stopped as
well for even better results.) Virus programs should be
disable from within that program (there is usually some option
to temporarily disable virus scanning). After stopping all
unwanted processes, save the current process list to a preset
(Presets are available in WinTasks 4.00 or later). This way
you can easily restore your optimal DivX settings by simply
clicking the preset button the next time play a DivX movie.
3. Make sure you have the latest version of DirectX and the
latest drivers for your graphics card.
4. Try increasing the priority of the DivX software. You may
have to try a few different settings before you find the
optimal priority for your system. Try using the high priority
for the divx decoder and normal for all other programs. (To
increase the priority to high, click the "inc" button once in
WinTasks. The priority column should read "high" plus some
number.) Priorities can also be saved to the preset, making it
easy to restore all settings the next time you run the divx
5. Make sure you have the hardware acceleration slider in
display properties -> settings set to full.
6. Lower you screen resolution and color depth to 800x600 and
16 bit color (32 bit color may be preferable on some graphics
7. Defrag your hard-drive to improve access times, or if you
are playing from CD or DVD, make sure you have the latest
drivers and the correct settings for your CD or DVD drive.
Written by Emil Malmberg, Senior Software Developer for