[ Previous | Next | Contents | Glossary | Home | Search ]
Ultimedia Services Version 2 for AIX: Programmer's Guide and Reference

Indeo 2.1 Encoder

Ultimedia Services supports version 2.1 of Intel's Indeo codec. To learn more about using the Indeo Encoder, see:

For introductory information, see Programming with Video Codec Objects.

File Format

Indeo video is always embedded in Microsoft's AVI file format.

Algorithm Overview

The Indeo 2.1 codec is essentially RTV 2.1, with a different aspect ratio and embedded in a different file format (AVI instead of AVSS).

The three most common frame sizes for Indeo 2.1 are 160 x 120, 240 x180, and 320 x 240. On a square-pixel monitor, Indeo video displays correctly without the frame widening necessary with RTV 2.1 in AVSS.

In Ultimedia Services, the Indeo 2.1 codec is symmetric. The Indeo 2.1 encoder object supports the RGB24 and YUV9 input formats.

The major visual artifacts in Indeo 2.1 video are blurriness and double images at scene changes and in the presence of fast motion. The problems occur only in delta frames; the solution is to encode the offending frames as reference frames instead. In Ultimedia Services, the Indeo 2.1 encoder object automatically detects problematic frames, and changes a requested frame type from Delta to Reference if necessary.

Encoding Indeo 2.1 Video

To encode Indeo 2.1 video, do the following:

  1. Set up the source for the video.
  2. Create UMSAVIReadWrite and UMSIndeoEncoder objects.
  3. Open an AVI file for writing, and write the necessary headers.
  4. Set the format of the input frames with the encoder's set_image_format method.
  5. Set the size of the input frames with the encoder's set_image_size method.
  6. Optionally, call the encoder's set_subimage_size method to encode only a subimage of each frame.
  7. Call the encoder's get_max_buffer_size method to get the size of the buffers for the compressed frames.
  8. Allocate memory for the input and output buffers, and insert them into SOM sequences.
  9. To compress a frame with a given quality factor, call the encoder's compress_frame_QF method.
  10. To compress a frame to within a requested maximum compressed size, call the encoder's compress_frame_RC method (RC = rate control).

When the video has been encoded, close the file, free all buffers, and destroy the objects with _somFree.

Tips for Using the Indeo 2.1 Encoder

The following tips provide important information for using the Indeo 2.1 encoder:

For introductory information, see Programming with Video Codec Objects.


[ Previous | Next | Contents | Glossary | Home | Search ]