Its nice to know what kind of compression and qualiy we
will get from the various video codecs. Thats one of the most common questions
I get asked in fact. The three most popular compression formats are VCD,
SVCD and Divx There are, of course, other formats that preserve the image
quality better, such as uncompressed AVI or MJPEG. But these do not compress
enough to store a movie on two 650MB CD's! And this is what we are interested
There are many issues to consider when choosing a storage
format. For example, how much detail is lost during compression. How does
it handle action scenes and low motion scenes. How much space does the
final file take. How smooth is the playback and how much CPU power does
it take to play smoothly. We must also consider how we want them played.
If we wish to use only our PC's then any format may be fine. But if we
wish to play our movie on a standalone video player, then we must restrict
ourselves to a format that is compatible with that player.
Trying to figure out a fair way to compare them hasn't been
easy. First I had to decide on the method I would use to encode them.
After a while of testing, the programs that did the highest quality were:
BBMpeg, TMPGEnc, Ligos LSX Encoder, Panasonic Mpeg Encoder, Xing Mpeg
Encoder and Cinema Craft encoder. For Divx any encoder seemed to look
basically the same quality, so in the end I choose VirtualDub because
it made life easier. Anyhoo, after long deliberation I decided to go with
TMPGEnc. The quality looks about the best and what is more it is a free
program so anyone can use it. The only downside is it is painfully slow
compared to, for example, Xing Mpeg Encoder which zipped through a VCD
in seconds =).
HOW DID I COMPARE?
I took a DVD and extracted the Vob files to Hard Disk. It
was an anamorphic DVD, which means the picture is slightly squashed, just
in case you are wondering why. I wanted the best source video to use as
a starting point. This means I didn't want to resize the video or add
de-interlace filters etc. Luckily, since my PAL DVD was 720 x 576, I merely
cropped the edges until they were 480 across. This gave me my final size
of 480 x 576 which is supported by all the formats I am testing. I then
used FlasK Mpeg to convert it to uncompressed AVI ready for encoding in
the software encoder of my choice; I did not add sound at all!
For compression I used the highest quality settings I could
find in TMPGEnc and turned them all up to full. As a result the VCD and
SVCD's took an inordinately long time to compress. Please do not disregard
these formats merely because it looks like they spent too long to compress.
With lower settings they look almost as good and compress much much faster.
For Divx you do not have all those fancy pre-filtering settings, so to
keep it fair, I didn't mess with TMPGEnc extra filters either.
I used a scene of 60 seconds (approx.) in length. I made
sure I choose one that had both scenes of very low motion and also very
fast motion. This was so I could see how the formats coped better.
All three format specifications allow the encoding of the
same size, namely, 480 x 576. But a VCD really needs to be 352 x 288 for
best quality. So in the end I opted to do an xVCD (eXtended VCD) resolution
and a normal VCD resolution so you could see both; all other settings
were exactly the same. Just be warned that the xvcd will not play on a
standalone VCD player.
The most vital vital setting for movies are the amount of
bitrate we use to encode. Although SVCD's allow us to go as high as 2600
kbps, this is not a reasonable amount to use to fit it on 2 CD's. The
VCD Mpeg-1 format can fit 74 minutes of video on a single CD. This requires
a constant bitrate of exactly 1150 kbps. It doesn't matter what compression
format we use, to fit it onto 2 CD's we must keep very close to this amount.
So this is the touchstone I have decided to try and follow.
But the situation gets a little more complicated. The VCD
format is a constant bitrate (CBR), which means it will always end up
about the same size in the end. The Divx and SVCD specifications work
best by incorporating a variable bitrate (VBR) which change the final
filesize depending on the amount of action contained in the movie. How
could I honestly compare a CBR movie to a VBR movie when the CBR movie,
at 1150 kbps, turns out to be 10MB but the SVCD, because of its VBR, turns
out to be 15MB?! Thats half the size again! If I encoded a movie of 650
MB and then another at 975 MB and said 'see, the SVCD at 975 MB looks
much better than the 650 MB because I used such and such compression'
you'd think I was crazy!
Anyway, to solve this problem I had to 'cheat' a little.
I started off by setting both the VCD, Divx and SVCD with a bitrate of
1150 kbps and encoding them. As it turned out the Divx and SVCD's ended
up slightly smaller than the CBR VCD, so I fiddled with the bitrates of
the Divx and SVCD until it was almost the same filesize as the VCD. It
was impossible to get them to match exactly but I managed to get it down
to well within a megabyte. I also allowed the SVCD to have the full 2600
kbps as its maximum bitrate and gave it 300 kbps as a minimum bitrate
to allow it enough room for variability.
To summarize, I used the same movie clip, the same resolution
and highest quality settings I could for all formats. I encoded them so
that the final movies were all almost exactly the same filesize! Because
of this I did not use exactly the same bitrates.
1150 kbps (CBR)
Floating point DCT
1150 kbps (CBR)
Floating point DCT
2 Pass (VBR)
Average: 1200 kbps
Max: 2600 kbps
Min: 300 kbps
Floating point DCT
DCT Precision: 10 Bits
1 hour 3 mins
Low Motion Codec
Bitrate: 1310 kbps
Keyframe every 10 secs
As was expected the latest codec's seemed to perform the
best and the earlier the worst. All final movies played back relatively
smoothly. The VCD and xVCD's still looked very very slightly smoother
but this is almost always CPU related and doesn't reflect badly on the
other formats abilities at all. The VCD would obviously take the least
amount of CPU power, then the xvcd perhaps slightly more, then the SVCD
and finally the Divx For low motion scenes you cannot easily beat SVCD's!
The colour matching and halftones are almost identical with the original.
For action scenes Divx wipes the floor with absolutely everything! There
are hardly any noticeable macroblocks at all!
Perhaps its something I did wrong with encoding, but I am
a little disappointed with how the SVCD handles fast motion scenes. I
set the maximum bitrate to 2600 kbps hoping that this would allow it get
rid of the blocks but it did not help much. The xVCD's had the most problems
with macroblocks and the Divx had the least.
WHEN PLAYED FULL SCREEN
My quality test is to sit about 5 feet away from my computer
screen and play each movie full-screen to see which one I thought gave
the overall best look. No one watches a movie from a foot away from the
TV screen, so I think such a test is just as useful at determining overall
quality as examining the picture up-close.
I'd have to say the Divx looked overall best full screen.
The image was sharp, smooth and didn't break up into blocks too much.
The main annoying thing about the Divx was the dark colours used! The
SVCD looked bright and clear and would have been the best quality if it
had not been for its bad macroblocks. As for the VCD, yes it also looked
dark and slightly blurred, but you couldn't really notice any macroblocks
like you could on the SVCD! So in some ways a VCD may be the better choice
over SVCD for action movies and the SVCD for drama movies. The xvcd looked
the worst of all! It was dark, blurred and blocky!
No comparison article would be complete without detailed
examples, so here they are =). All images were captured with either VirtualDub
or PowerDVD and have been saved as Jpeg's at the lowest possible compression.
You may need to turn your monitors brightness up a little to see the full
details of the samples.
VERY HIGH ACTION
VERY LOW MOTION
THE FULL SIZE EXAMPLES
HIGH ACTION SCENE
VERY LOW MOTION SCENE
VERY HIGH MOTION SCENE
MEDIUM / LOW ACTION SCENE
Duplication of links or content is strictly
prohibited. (C) NICKY PAGE 2000