![]() |
This legacy article remains on the web site for historical and research purposes. For a list of current article by Jan Ozer, please click here: |
Fun and Games with IVI
All rights reserved © Doceo Publishing, Inc. 1996
Before Indeo video interactive, lossy compression theory was simple. The more you compressed, the worse the video looked. The fundamental compression trade-off has always been quality for file size.
With IVI, Intel added three new compression parameters, bi-directional prediction, scalability and target platform settings, which in theory, let developers trade video quality for display rate, at the same data rate. Intel wrote a White Paper, available on their FTP site (Intel.com) and Compuserve forum (Go IntelA), describing how to customize compression for unique target platforms. Toggling the new parameters and modifying the key frame interval, Intel presents 67 different compression options, depending upon target platform and video content.
After working with IVI for several weeks, monitoring Compuserve traffic and taking many calls, faxes and e-mail messages from frantic developers, we offer our own, more simple advice -- ignore the first two controls, and compress all footage for the low end platform. For best results, compress to single spin data rates. Here's why.
The first new control enables bi-directional prediction, essentially the same interframe compression technique used in MPEG-1. In their white paper, Intel states that bi-directional prediction improves quality while increasing decompression complexity by about five percent. Our tests confirmed the decompression slowdown, as much as two frames per second, but found little or no quality improvement (See files in \indeovi\bidriect\bid_on & bid-off). Our talking head clips also consistently lost synchronization when compressing with bi-directional prediction enabled, although this was not in evidence in any of the Intel compressed test clips.
More important, however is that bi-directional prediction appeared to aggravate the latency between the beginning video playback and the start of smooth video playback. None of our test computers played any IVI file, whether compressed inhouse or supplied by Intel, without at least one or two seconds of drop frames before video began playing smoothly. This has also been reported in Compuserve traffic in Intel's Architecture Forum (go "IntelA") and Intel is tracking the problem. Moreover, bi-directional prediction increases IVI's already lengthy compression time by close to 30 percent.
The second new feature is "scalability", which lets IVI decode partial frames as an alternative to frame dropping. Here's how it works.
During compression, IVI divides each frame into four layers, each describing different views of the entire frame. The first layer contains gross colors and details, the next additional detail, the third still more with the last layer containing the final level of intricacy.
All layers are necessary to perfectly recreate the original image. But when playing back on a less than optimal workstation, IVI can decompress fewer layers of each frame, rather than simply dropping frames like other codecs. This preserves the motion, albeit at some loss of detail.
Enabled Disabled
Scalability tests 1X 2X 1X 2X
Pentium 60
Talking Head 13 12 13 14
Action 14 12 14 12
Pentium 90
Talking Head 15 12 15 10
Action 15 12 15 10
Table 1: Display rates testing scalability option.
Pentium 60 equipped with Matrox Millennium with
DCI-enabled scaling option. Pentium 90 has DCI but no
hardware scaling.
Our tests found that the increase in display rate was platform dependent, as shown in Table 1. In addition, for both low and high motion videos, most viewers found the pixelation quite distracting, generally preferring the slightly slower, high quality video to the faster, pixelated video. (See files in \indeovi\ bidriect\bid_on & bid-off. S-ON is scalability on, S-OFF is scalability off). Thus we recommend compressing with scalability disabled.
The final control lets developers choose between a low, medium and high end platform, trading off image quality for display rate. On low motion videos, we saw little difference between video compressed for the high and low end platforms, but with high motion videos, the difference was noticeable (see Files located in \indeovi\target\*.* First on/off is scalability, second is bi-directional prediction). In most cases, video compressed for low end platforms displayed approximately 2 fps faster than video compressed for the high end.
Compuserve traffic makes it clear that Intel considers a Pentium 90 in the medium to low end range, which is probably in the high range for most developers. In this case, the slight quality decrease was clearly outweighed by the consistent display rate increase, especially for low motion videos. For these reasons, we compressed all tests files for the low end platform.
Here are three other morsels of advice for those working with IVI.