Indeo® Video Interactive Overview

Application Interactivity | Improved Visual Quality | Improved Support For Software Developers


Video is an information-intensive medium. Files representing even short video clips require many megabytes of storage. Because it is seldom practical to store such large files, video is typically compressed after it is digitized. The technology that compresses the video must also decompress it as the video plays back.

Indeo® video allows software-only playback of high-quality video on desktop multimedia PCs. It is Intel's digital video capture, compression, and decompression codec. The word codec comes from compressor- decompressor. A codec is a software driver used to compress digital video data for storage, and decompress it for playback on a multimedia PC. A video clip compressed with Indeo video can play back on any system that supports Microsoft Video for Windows* or Apple QuickTime* for Windows or Macintosh*. For a computer to play files compressed with a given codec, that codec must be installed on the computer.

How to Get the Drivers
Intel distributes Indeo video drivers without charge to PC users, video producers, and multimedia software developers, who can incorporate them royalty-free into their products.

Our goal is to help developers create exciting multimedia PC software, of which video is an important part. Video on a PC can be far more exciting than a linear, passive television show, because video on PCs can branch and change interactively. Desktop PCs must have video playback capability for users to enjoy this feature. To this end, a software-only video solution such as Indeo video is clearly an advantage, as PC users do not need to buy or install special hardware to play the video.

Interactive Video
Indeo video interactive is the latest release of Intel's PC video technology. Optimized for playback on Pentium® processor-based systems, it encodes data more efficiently and yields better image quality than previous releases. Most important, Indeo video interactive includes a wide variety of features designed especially for interactive multimedia applications, such as:

  • real-time video effects,
  • the ability to decode only a portion of the frame,
  • and the ability to encode portions of a video image as transparent.

These special features take video beyond simple VCR-like functionality, allowing a new class of interactive applications that showcase the performance of the Pentium processor and audiovisual software such as Microsoft's ActiveMovie*.

This document presents an overview of the features that are new with Indeo video interactive. A variety of other documents, exploring these features in depth or discussing other apsects of Indeo technology, are available.

Indeo video interactive is a codec that runs in Microsoft's Video for Windows environment and creates high-quality video files for playback on desktop PCs with no special hardware required. In addition to the basic features offered by all Video for Windows codecs, Indeo video interactive offers a range of features designed specifically to enable powerful multimedia application development.

The features of the Indeo video interactive codec can be grouped into three categories:

Each of these categories is important to software developers, and the codec offers features and performance in each category to enable developers to create a new generation of powerful, sophisticated, and exciting PC multimedia and games applications.

Application Interactivity

Indeo video interactive incorporates unique features that make it possible to include video in interactive multimedia applications and games, challenging the traditional notion of video as necessarily having a fixed size and rectangular shape.

For years, the movie and television industries have used the technique of chroma keying (sometimes called blue-screening) to place foreground objects over synthesized backgrounds. The most common example of chroma keying is the TV meteorologist who appears to be standing in front of a wall-sized map, when in fact he or she is merely standing in front of a blue wall. Chroma key circuitry electronically separates the foreground pixels representing the meteorologist from the blue background pixels and overlays the meteorologist on top of an electronically generated weather map.

The Indeo video interactive codec supports this type of transparency. During encoding, a compression application can send information to the codec describing a color or range of colors that represents a transparent background (such as the blue wall in the example above, or the blue background in Figure 1). Indeo video interactive then analyzes each frame, separates the background pixels from the foreground, and makes the background pixels transparent, encoding only the foreground objects as compressed video.

Figure 1. Foreground Object With Transparency

Indeo video interactive's transparency encoding is flexible, allowing for multiple foreground objects of arbitrary shape. Foreground objects can also move from frame to frame, allowing you to create what might be called video sprites.

During playback, foreground objects can be dynamically composited over different backgrounds, as shown in Figure 2. The meteorologist, for example, can appear over different weather maps; on PCs based on sufficiently powerful Pentium processors, a foreground object can even appear over another video stream, such as footage of the tornado being reported.

Figure 2. Foreground Object With Background

Local Decode
Sometimes an application needs to display only part of a decoded video image. For example, in a game, users might look through the periscope of a submarine, in which case their view would be limited to a small subset of the entire image. Moreover, this subset will change as the video plays, depending on where the periscope is rotated.

In such a case, much of the source image does not need to be displayed and one would rather not waste processor resource decoding it. Indeo video interactive provides this capability through a feature known as local decode. As illustrated in Figure 3, the playback application can tell Indeo video interactive to decode only a rectangular subregion, called the view rectangle, from the source video image. The minimum possible size of the local decode viewport is defined during compression, but the display size and location of the viewport can be changed dynamically during playback.

Figure 3. Local Decode Viewport

Real-time Video Effects
The brightness, contrast, and color saturation of Indeo video interactive video files can be modified interactively during playback. This makes it possible to simulate different lighting conditions, or allow users to tailor the appearance of the video playback to suit their particular graphics environment and preferences.

Improved Visual Quality

The new codec provides excellent image quality, rivaling even that of hardware-accelerated video technologies. Video files created for playback from double-spin CD-ROM drives can be encoded at 320 by 240 resolution at up to thirty frames per second with outstanding image detail and clarity.

New Hybrid Compression Algorithm
Indeo video interactive is based on a completely new algorithm technology; it is not an evolution of previous releases of Indeo video. The new codec uses an advanced hybrid wavelet algorithm to create video at a quality level usually associated with hardware-accelerated technologies.

Enhanced Compression Technology
Almost all video codecs have traditionally used some form of interframe encoding, in which video frames are compared and the codec attempts to store only the difference between frames. Usually this has been based on backward (or unidirectional) prediction: the contents of some frames are predicted based on the content of previous frames.

Indeo video interactive, however, also makes use of a more sophisticated interframe encoding technology called bidirectional prediction, in which the contents of some frames are predicted based on both previous and future frames. Because a frame can be encoded based on both past and future frames, it is sometimes necessary to first decode a future frame in order to decode and display the current frame while the video plays. Therefore the Indeo video interactive codec sometimes decodes frames in a different order from that in which they are actually displayed. These complex encoding and decoding techniques allow the codec to display dramatically improved visual quality, particularly in video sequences with fast movement or many rapid scene changes.

Processor Scalability
In the past, when software-only video played on slower processors, the codec could compensate for insufficient processor power only by dropping frames somewhat randomly, often causing the video to jerk unpleasantly. The Indeo video interactive codec, however, can dynamically vary the visual quality of the decoded images according to the processor power available during playback. On more powerful Pentium processor-based systems, Indeo video interactive produces video of quality rivaling hardware-based codecs. On lower-end Pentium processor-based systems, the codec can scale back the visual quality without needing to drop entire frames.

Improved Support for Software Developers

In addition to application interactivity and improved visual quality, several other significant new features have been included in Indeo video interactive that will be of great value to multimedia application developers.

Improved Palette Handling
Indeo video has always provided the developer with a flexible mechanism for handling 8-bit video palettes, allowing for both default palette and active palette modes. In addition to these options Indeo video interactive now provides a third mode known as the configurable palette, which allows developers to create a set of custom colors that are reserved for application use. Palette modes are discussed in more detail in "Using Palettes With Indeo Video".

Video Access Protection
Many multimedia developers are concerned about illegal distribution of copyrighted material. The Indeo video interactive codec helps prevent misuse of video clips by using access keys: numeric passwords that can be inserted into a video clip during compression. If a clip has been encoded with an access key, no application can play that clip without knowing the key.

Key Frame Flexibility
The Indeo video interactive codec offers more control and flexibility over the use of key frames than previously possible. Previous releases of Indeo video allowed for the use of periodic key frames only. During compression, a fixed key frame interval of between 1 and 15 was specified, and a key frame occurred every n frames. Indeo video interactive still supports the use of periodic key frames, but now the key frame interval is completely unrestricted, allowing for a variety of values:

0 Only the first frame in the file is a key frame. No other key frames occur in the file.

1 Every frame in the file is a key frame.

2, 3, ... n Every nth frame in the file is a key. The value of n has no upper limit.

NOTE: Because Indeo video interactive can generate higher quality at lower data rates, the default key frame interval is now 15.

In addition to this flexibility in key frame intervals, Indeo video interactive also allows for aperiodic key frames. During editing, the encoding application can tell the Indeo video interactive codec to place a key frame at any location, allowing video producers to specify access points anywhere within a video sequence, or to better control video quality by placing key frames on scene change boundaries.

The Indeo video interactive codec offers new levels of interactive performance, visual quality, and programming flexibility. Together with the power of ever faster Pentium processors, Indeo video interactive allows developers to create a new generation of innovative, exciting, and powerful interactive PC multimedia and game applications.

* Legal Stuff © 1997 Intel Corporation

Free Web Hosting