-->
Save your seat for Streaming Media NYC this May. Register Now!

The Other Side of Compression

Amid much-ballyhooed claims of supremacy by the three major delivery platforms for streaming media, alternative codecs continue to push the limits of video compression technology. Like the "Big Three" (Real, Microsoft, QuickTime), the following alternative codecs come with their own set of benefits and drawbacks, and cover the gamut of playback platforms and performance.

In the following tutorial we evaluate four such "alternative" codecs: DivX Networks’ DivX 4.0.1, On2 Technologies' VP3 and VP4, and Media Metastasis’ ZygoVideo. We'll tell you how to squeeze the best results out of them, and help you decide where each one fits into your streaming media business strategy.

This tutorial is fairly large. To help you navigate it, we’ve broken the piece into several chapters, so you can quickly jump to any particular section that interests you.

Chapter 1: Testing Methodology
Chapter 2: VirtualDub and QuickTime Settings
Chapter 3: DivX Networks DivX 4.0.1
Chapter 4: On2 Technologies’ VP3
Chapter 5: On2 Technologies' VP4
Chapter 6: Media Metastasis’ ZygoVideo

Source files and results are available, as well, so that you can make your own judgments on image quality compared with the Real, Microsoft and QuickTime codecs that we tested late last year (see review).


Chapter 1: Testing Methodology

Our encoding test bed consisted of an Intel P4 1.4GHz machine running Windows ME. QuickTime Pro ($30) (www.apple.com/quicktime/) was used to encode On2’s VP3.2 and Media Metastasis’ ZygoVideo, and VirtualDub 1.4.5 (Free) (a href=http://www.virtualdub.org/index target=_blank>www.virtualdub.org/index) was used to encode On2’s VP4 and DivX Networks’ DivX 4.0. We chose VirtualDub because the software is free and allowed us to easily duplicate our results.

Consistent with our testing of the "Big Three" codecs, we used three video clips (Anim.avi, Fash.avi, and Tkhd.avi) and encoded each at three different bit rates/screen sizes (30Kbps/160x120, 252Kbps/320x240, and 604Kbps/320x240) and did not include audio.

Image quality (spatial quality) was favored over motion rendition (temporal quality) when an obvious balance could not be found. For example, we would lower the frame rate to lessen blocky, noisy artifacts in the images in cases where they arose. Frame rates below 7.5 fps were not considered. Dropped frames were accepted within reason.


The Source Material

Each of the following clips contains content that stresses a different function of a codec. The clips we used are:

Anim.avi:
Original resolution: 320x240
File size: 434.7MB (uncompressed)
Clip length: 1 minute 4 seconds
Anim.avi, provided by TV Taxi, has tons of motion, saturated color, transitions and plenty of horizontal and vertical lines — basically the kind of content that can drive a compression codec to its knees.

Fash.avi:
Original resolution: 720x480 (DV resolution)
File size: 385MB
Clip length: 1:52
This contains well-lit runway fashion models strutting against a dark background with lots of camera flash bulbs going off. The dark background is especially difficult to compress, especially when the models are wearing dark clothes. And even trickier, the cameraperson was trying to focus by hand, so there are shots that go in and out of focus. Special thanks to ActionCAM Films, at www.Actioncamfilms.com for providing Fash.avi.

Tkhd.avi
Original resolution: 320x240
File size: 861.3MB (uncompressed)
Clip length: 2:08 seconds
Tkhd.avi is a corporate presentation talking-head shot. The subject is well lit and standing against a static background. In a few cases, the video fades to a moving slideshow, which contains small typeface text. Basically, the toughest parts of this video are the fades to and from the slide show.


Chapter 2: VirtualDub and QuickTime Settings


Our VirtualDub Settings

If you’re playing along with us and want to achieve the same results we did, make sure your VirtualDub settings match ours. Below are detailed instructions that illustrate how to configure VirtualDub so that you achieve the same result we did.

  1. Open the source movie with File Open Video File.
  2. Check No Audio under the Audio pull-down.
  3. Open the Video Filters pop-up menu.
    1. For 2:1 resizing, use the 2:1 Resize filter (high quality) found by clicking on the Add button. This was used for all the 320x240 to 160x120 conversions.
    2. For the Fash source, you must also click on Cropping and entr 40 into the X1 Offset and X2 Offset boxes that appear on the cropping screen. That will take the 720x480 source to 320x240.
    3. For the 30Kbps Fash stream, we used the Resize filter with the Precise bicubic filter mode selected to get the 160x120 frame size.
  4. Open the Video Frame Rate pop-up and select the No Change radio button under Frame Rate Conversion.
    1. For 15fps output, select the Process every other frame (decimate by 2) radio button.
    2. For 10fps output, select the Process every third frame (decimate by 3) radio button.
    3. For 7.5fps output, select the Decimate By radio button and enter 4 in the dialog box.
  5. Select 24-bit/True Color under the Video Color Depth dialog box.
  6. Choose the codec and configure it using the Video Compression pop-up.
    1. Check Use Target Data Rate and enter the setting from the spreadsheet in kilobytes per second.
    2. Don't check the Force Keyframes Every option.
    3. Click on Configure to open the codec's configuration interface.
  7. Select the Video Full Processing Mode option in the pull-down.
  8. Select File Save as AVI and enter the file name; check the "Add operation to job" list and defer processing to run a batch of encodes. This is how you set up the two-pass operations, as well, as described in the DivX section.
  9. Select File Job control and click on Start when all the jobs have been configured.

Streaming Covers
Free
for qualified subscribers
Subscribe Now Current Issue Past Issues