net answers AVI Graphics Format Overv

Found at: ftp.icm.edu.pl:70/packages/usenet/rec.video.desktop/AVI_Graphics_Format_Overview

From: jfm@rahul.net
Newsgroups: rec.video.desktop,comp.graphics.animation,comp.multimedia,comp.os.ms-windows.video,news.answers,rec.answers,comp.answers
Subject: AVI Graphics Format Overview
Followup-To: rec.video.desktop,comp.graphics.animation,comp.multimedia,comp.os.ms-windows.video
Date: 3 Aug 1999 21:04:10 GMT
Organization: a2i network
Lines: 11014
Approved: news-answers-request@MIT.EDU
Message-ID: <7o7lga$269$1@samba.rahul.net>
NNTP-Posting-Host: foxtrot.rahul.net
NNTP-Posting-User: jfm
Summary: Answers to many commonly asked questions about AVI files, Video For Windows, and DirectShow (formerly ActiveMovie).  This includes how to convert to and from other video formats, playing, editing, and authoring AVI files as well as information on programming.

Archive-name: graphics/avi-faq
Last-modified: 1999/8/1
Version: 1.276
URL: http://www.rahul.net/jfm/avi.html
Copyright: (c) 1996-1999 John F. McGowan, Ph.D.
Maintainer: John F. McGowan, Ph.D. <jfm@rahul.net>

<META NAME="Description" CONTENT="John McGowan's AVI Overview">
<META NAME="Keywords" CONTENT="AVI, Video, Video for Windows, ActiveMovie, DirectShow, NetShow">
<META HTTP-EQUIV="keywords" CONTENT="AVI, Video, Video for Windows, ActiveMovie, DirectShow, NetShow">
<HEAD><TITLE>John McGowan's AVI Overview</TITLE></HEAD>
			     AVI Overview
		      by John F. McGowan, Ph.D.
                      (c) 1996-1999, John F. McGowan

<!-- This document is best viewed using an HTML browser.  However, -->
<!-- it has been composed with limited use of HTML so that it can -->
<!-- be used as a plain text file as well. -->
<!-- Release $Id: avi.html,v 1.276 1999/07/22 17:16:26 jfm Exp $ -->

<!-- Permission to copy and distribute this document is granted -->
<!-- so long as the title, author's name, and URL are retained -->
<!-- Any additions or modifications made to the original should be -->
<!-- clearly marked as such. -->
<!-- The author welcomes and encourages suggested changes and -->
<!-- additions to the overview.  Contributors will be credited. -->

<A NAME="Top">
What is in this Overview?

       - Overview of Video for Windows, DirectShow (ActiveMovie), and AVI

       <A HREF="#Definition">What is AVI?</A>

       <A HREF="#Disclaimer">Disclaimer</A>

       <A HREF="#Get">How to Get the AVI Overview</A>

       <A HREF="#New">WHAT'S NEW</A>

       Brief Table of Contents

          <A HREF="#Common">Most Common AVI Question: What does "could not find vids:xxxx ..." error mean?</A>
          <A HREF="#Install">Installation, Configuration, and Other Issues</A>
          <A HREF="#AVIAndWEB">AVI and the WORLDWIDE WEB</A>
          <A HREF="#Codecs">Audio and Video Codecs</A>
          <A HREF="#Business">Business and Economics of AVI</A>


          <A HREF="#WinProg">Microsoft Windows Video Programming</A>
          <A HREF="#MMProg">Multimedia Technical Information</A>
          <A HREF="#WinDriver">Microsoft Windows Device Drivers</A>
          <A HREF="#Glossary">Glossary</A>
          <A HREF="#Chronology">Chronology</A>

       Detailed Table of Contents

          <A HREF="#Common">Most Common AVI Question: What does "could not find vids:xxxx ..." error mean?</A>

       - <A HREF="#Play">How to play an AVI file?</A>
                    - DOS
                    - Windows
                    - Macintosh
                    - Unix
                    - VAX/VMS
                    - Amiga
                    - OS/2

       - How to convert AVI to various audio/video formats.
                    - <A HREF="#ToMPEG">MPEG (.MPG Files)</A>
                    - <A HREF="#ToMOV">QuickTime (.MOV or .MooV)</A>
                    - <A HREF="#ToGIF89a">Animated GIFs (GIF89a)</A>
                    - <A HREF="#ToASF">Microsoft ASF (Active Streaming Format)</A>
                    - <A HREF="#ToSequence">Sequence of Still Images in Separate Files</A>
                    - <A HREF="#ToSmacker">Smacker (.SMK Files)</A>
                    - <A HREF="#ToRM">Progressive Networks RealMedia Streaming Format (.RM Files)</A>

       - How to convert other audio/video formats to AVI
                    - <A HREF="#FromMOV">QuickTime (.MOV or .MooV)</A>
                    - <A HREF="#FromSequence">Sequence of Still Images in Separate Files</A>
                    - <A HREF="#FromAutodesk">Autodesk Animation (FLI or FLC)</A>
                    - <A HREF="#FromMPEG">MPEG (.MPG)</A>
                    - <A HREF="#FromGIF89a">Animated GIF (.GIF)</A>

       - <A HREF="#Bitmaps">How to Convert a Sequence of Still Images in One Format to a Sequence in Another Format</A>

       - Authoring AVI Files

                CREATING AVI FILES

                    - <A HREF="#ScreenCapture">How to capture screen to AVI files</A>
                    - <A HREF="#AuthorAVI">Multimedia Authoring Tools to Create AVI Files</A>
                    - <A HREF="#LW">How to import AVI files into Lightwave</A>               
                    - <A HREF="#Capture">How to create AVI files from analog video (Video Capture Cards)</A>
                             - From VHS tapes and video cameras
                             - From Hi8 tapes and video cameras
                             - <A HREF="#VfWCapture">Video Capture under Video for Windows</A>
                             - <A HREF="#CaptureCards">Video Capture Cards</A>
                             - <A HREF="#ParCapture">Video Capture through PC Parallel Port
                             - <A HREF="#TBC">What to do about horizontal tearing in the video?</A>
                             - <A HREF="#HDCapture">Hard Drive Video Capture Issues</A>
                             - <A HREF="#NTCapture">Video Capture Cards with Windows NT Drivers</A>
                    - <A HREF="#TV">How to create AVI files from Television</A>
                    - <A HREF="#Morph">How to Create Morph Effects for AVI Files</A>
                    - <A HREF="#Audio">How to compress the audio sound track in AVI files</A>


                    - <A HREF="#FPS">How to change frame rate of AVI files</A>
                    - <A HREF="#Crop">How to crop an AVI file</A>
                    - <A HREF="#Edit">How to edit AVI files</A>
                             - VidEdit
                             - Personal AVI Editor
                             - MGI VideoWave 
                             - Corel Lumiere Suite for 32-bit Windows
                             - Ulead Media Studio Pro
                             - Adobe Premiere
                             - in:sync SpeedRazor
                             - Asymetrix Digital Video Producer (DVP)
                             - Fast Movie Processor
                             - Peck's Power Join
                    - <A HREF="#Audio">How to compress the audio sound track in AVI files</A>
                    - <A HREF="#ToNTSC">How to create NTSC (or PAL) Safe AVI</A>
                    - <A HREF="#Phantom">The Phantom Final Frame when Viewing an AVI</A>
                    - <A HREF="#BinEd">Binary File Editors for Viewing and Editing AVI</A>
                    - <A HREF="#VidTrace">RIFF and AVI Parser/Viewers</A>
                             - John McGowan's VidTrace
                             - Microsoft RIFFWALK
                             - Bill Luken's RIFFSCAN
                    - <A HREF="#Wave">Editing and converting WAV files</A>
                    - <A HREF="#MacSound">Editing and converting Sound Files on Macintosh</A>

                    - <A HREF="#Output">How to output AVI files to videotape</A>
                    - <A HREF="#Size">Size limits on AVI files</A>
                    - <A HREF="#Corel">How to Fix Problem with AVI files from CorelMove 4.0</A>

       <A NAME="Install">Installation, Configuration, and Other Issues</A>


                       - <A HREF="#VfW16">Where to get the 16-bit Video for Windows for Windows 3.x</A>
                       - <A HREF="#Win95">Reinstalling Microsoft's Video-for-Windows in Windows 95</A>
                       - <A HREF="#GETAM">How to get ActiveMovie 1.0</A>
                       - <A HREF="#NT40">Installing and configuring AVI Codecs in Windows NT 4.0</A>
                       - <A HREF="#Extension">How to give AVI files a different extension in Windows 3.1</A>
                       - <A HREF="#AVI95">How AVI Files are Handled in Windows 95</A>

                    INFORMATION SOURCES
                       - <A HREF="#Biblio">Bibliography of sources of information on Video for Windows and AVI</A>
                       - <A HREF="#News">Internet Newsgroups with Information on AVI and Video </A>
                       - <A HREF="#VideoStandards">Where to find information
on digital audio and video standards other than AVI.


                       - <A HREF="#VideoChips">PC Video Card and Video Chips</A>
                                         - <A HREF="#NTVideo">Video Cards with Windows NT Drivers</A>
                       - <A HREF="#Word">How to embed an AVI file in a Microsoft Word Document</A>
                       - <A HREF="#Names">Microsoft's Changing Names</A>
                       - <A HREF="#Misc">Answers to miscellaneous other frequently asked questions about AVI </A>

                       - <A HREF="#Health"> AVI and Your Health (Eye Strain)</A>

        <A NAME="AVIAndWEB">AVI and the WORLDWIDE WEB</A>
               - <A HREF="#Style">Effective use of video on a Web page</A>
               - <A HREF="#Web">How to embed an AVI file in a Web page</A>
               - <A HREF="#NS">Configuring Netscape Navigator 3.0x to Display AVI Files</A>
	       - <A HREF="#Plug-ins">Netscape Navigator Plug-ins to play AVI</A>
               - <A HREF="#IE">Configuring Internet Explorer 3.0x to Display AVI Files</A>
               - <A HREF="#Mail">Sending AVI by E-Mail or Network News Postings</A>
               - <A HREF="#Crypto">How to encrypt AVI Files</A>

               - <A HREF="#MIME">MIME types of AVI</A>
               - <A HREF="#HTTPD">Configuring Web Servers to Handle AVI Files</A>
                         - Apache
                         - CERN (or W3C)
                         - NCSA HTTPd
                         - Microsoft Internet Information Server 3.0
                         - Netscape Enterprise Server 3.0

               - <A HREF="#Java">AVI and Java</A>
               - <A HREF="#VRML">AVI and VRML</A>
               - <A HREF="#NetShow">AVI and NetShow</A>
               - <A HREF="#ToASF">Converting AVI to Microsoft Active Streaming Format (ASF) Files</A>
               - <A HREF="#Content">Sources of AVI Video Clips on the Web</A>
               - <A HREF="#AVILBR">Low Bit Rate AVI for the Web</A>

               - <A HREF="#Limits">Limitations of AVI and Video for Windows over Networks</A>
               - <A HREF="#NetShow">NetShow</A>
               - <A HREF="#Names">Microsoft's Changing Names</A>
               - <A HREF="#RFC">Internet Video Standards and Pseudo-Standards</A>

        <A NAME="Codecs">AUDIO and VIDEO CODECS</A>
               - <A HREF="#Codec">Video for Windows compressors and decompressors</A>
                         - The Old Guard
                               - <A HREF="#DIB">Full Frames (Uncompressed)</A>
                                      - <A HREF="#ColorFormats">Color Formats</A>
                               - <A HREF="#RT21">Intel Real Time Video 2.1 (Indeo 2.1?) (RT21)</A>
                               - <A HREF="#IV32">Indeo 3.2/3.1</A>
                               - <A HREF="#MRLE">Microsoft Run Length Encoding</A>
                               - <A HREF="#MSVC">Microsoft Video 1</A>
                               - <A HREF="#CVID">Cinepak</A>
                               - <A HREF="#MJPG">Motion JPEG</A>
                               - <A HREF="#XMPG">Editable MPEG</A>
                          - The New Wave 
                               - <A HREF="#VDOW">VDOWave (VDOLive)</A>
                               - <A HREF="#IV41">Indeo Video Interactive (Indeo 4.1)</A>
                               - <A HREF="#IV50">Indeo Video Interactive (Indeo 5.x)</A>
                               - <A HREF="#UCOD">ClearVideo (aka RealVideo)</A>
                               - <A HREF="#SFMC">SFM (Surface Fitting Method)</A>
                               - <A HREF="#QPEG">QPEG</A>
                               - <A HREF="#H261">H.261</A>
                               - <A HREF="#H263">H.263</A>
                                        - Microsoft H.263
                                        - Vivo Software H.263
                                        - Intel I263 H.263
                                        - Shannon Communication Systems (SCS) H.263+
                                        - Telenor R&D H.263
                               - <A HREF="#MPG4">MPEG-4</A>
                               - <A HREF="#LS">Lightning Strike (Infinop)</A>
                               - <A HREF="#VxTreme">VxTreme</A>
                          Video Codecs NOT Available for AVI
                               - <A HREF="#Sorenson">Sorenson Video</A>

               - <A HREF="#BestCodec">Which AVI video codec is best?</A>
               - <A HREF="#CodecPerformance">Performance of the AVI Codecs</A>
                          A table with typical compression ratios of
                          Video for Windows codecs.

               - <A HREF="#QTCodec">Which Video for Windows codecs are
               - <A HREF="#VfWInstalled">How to determine which codecs are installed</A>
               - <A HREF="#WhichAVICodec">How to determine which codec was used to compress an AVI file</A>
               - <A HREF="#FourCC">Microsoft Four Character Codes (FOURCC)</A>
               - <A HREF="#FOURCCGUID">Microsoft GUIDs for Video for Windows Codecs</A>
               - <A HREF="#ColorFormats">Color Formats</A>
               - <A HREF="#ALGO">Video Compression Technologies</A>
                        <A HREF="#RLE">Run Length Encoding</A>
			<A HREF="#VQ">Vector Quantization</A>
                        <A HREF="#DCT">Discrete Cosine Transform</A>
                        <A HREF="#DWT">Discrete Wavelet Transform</A>
                        <A HREF="#Contour">Contour-Based Image Coding</A>
                        <A HREF="#FD">Frame Differencing</A>
                        <A HREF="#Motion">Motion Compensation</A>

               - <A HREF="#ACM">Audio Codecs</A>
               - <A HREF="#ACMInstalled">How to determine which Audio Codecs are Installed</A>

        <A HREF="#Glossary">GLOSSARY</A>

        <A HREF="#Chronology">CHRONOLOGY</A>



                   THE OLD REGIME

                       - <A HREF="#WINMM">Windows Multimedia System</A>
                       - <A HREF="#VFW">Video for Windows</A>
                       - <A HREF="#WAVE">Wave (Waveform Audio)</A>
                       - <A HREF="#Format">AVI file format</A>
                                - RIFF Files
                                - Original AVI File Format
                                - <A HREF="#OpenDML">OpenDML AVI File Format Extensions</A>
                                - <A HREF="#AVISpec">Where to get the exact specification of AVI?</A>
                                - <A HREF="#AVIDIB">AVI and Windows Bitmaps (DDB, DIB, ...)</A>
                    THE NEW WAVE

                       - <A HREF="#ActiveMovie">ActiveMovie</A>
                       - <A HREF="#GUID">GUID's and AVI</A>
                       - <A HREF="#DirectShow">DirectShow (ActiveMovie 2.0)</A>
                       - <A HREF="#DirectDraw">DirectDraw</A>
                       - <A HREF="#MMX">MMX</A>
                       - <A HREF="#ActiveX">ActiveX</A>
                       - <A HREF="#Names">Microsoft's Changing Names</A>

                    HOW TO PROGRAM IN WINDOWS
                       - <A HREF="#AviPlay">Playing an AVI file within a Windows Application</A>
                       - <A HREF="#AviWrite">Reading and Writing an AVI file within a Windows Application</A>


                      SOURCE CODE
                       - <A HREF="#AVISRC">Where to get C source code for an AVI Player Including Many Codecs</A>
                       - <A HREF="#JPEGSRC">Where to get C source code for a JPEG Encoder or Decoder</A>
                       - <A HREF="#H263SRC">Where to get C source code for an H.263 Video Encoder or Decoder</A>
                       - <A HREF="#MPEGSRC">Where to get C source code for an MPEG Video Encoder or Decoder</A>
                       - <A HREF="#WAVELETSRC">Where to get C/C++ Source Code for Wavelet Image Compression</A>

                      TECHNICAL INFORMATION 
                       - <A HREF="#COLORFAQ">Where to get an explanation of Color, Color Spaces, Gamma and All That</A>
                       - <A HREF="#FileFormats">Where to get Detailed Information on Graphics File Formats?</A>
                       - <A HREF="#AudioFmts">Where to get Detailed Information on Audio File Formats?</A>

                       - <A HREF="#RFC">Internet Video Standards</A>
                              - MIME
                              - RTP (Real Time Protocol)
                              - RSVP (Resource Reservation Protocol)
                              - IP Multicast
                              - UDP (User Datagram Protocol)
                <A NAME="WinDriver">WINDOWS DEVICE DRIVERS AND VIDEO</A>
                       - <A HREF="#Driver">What is a driver?</A>
                       - <A HREF="#GDI">GDI Device Drivers</A>
                       - <A HREF="#DHAL">DirectDraw Hardware Abstraction Layer</A>
                       - <A HREF="#VXD">Virtual Device Drivers</A>
                       - <A HREF="#NTDM">Windows NT Driver Model</A>
                       - <A HREF="#WDM">Win32 Driver Model (WDM)</A>
                       - <A HREF="#INF">Setup Information Files</A>

               <A HREF="#Awards">Awards</A>

               <A HREF="#Credits">Credits</A>

               ABOUT THE AUTHOR

               - John McGowan is a software engineer with experience
n digital audio and video on PC/Windows, Unix/X Windows, and
MPEG-2 player software.  His experience includes development,
optimization, and implementation of audio, video, and still image
compression and decompression algorithms in C/C++ on Intel, MIPS,
SPARC, and PowerPC based platforms.  He has also developed Microsoft
Windows user interface software.  He has a Ph.D. in physics from the
University of Illinois at Urbana-Champaign and a B.S. in physics from
the California Institute of Technology.

               - <A HREF="http://www.rahul.net/jfm/index.html">John McGowan's Home Page</A>

<A NAME="Disclaimer">

arising out of the use or inability to use information, softwares,
bitstreams and other data found on or referenced by the AVI Graphics

the title, author's name, URL, and this disclaimer are retained.  Any
additions or modifications made to the original should be clearly
marked as such.  The author welcomes and encourages suggested changes
and additions to the overview.  Contributors will be credited.

<A HREF="#Top">Return to Top</A>

<A NAME="Get">
<H2>How to Get the AVI Overview</H2>

The AVI Overview is available at:

<A HREF="http://www.rahul.net/jfm/avi.html">http://www.rahul.net/jfm/avi.html</A>

Navigator, you can save a copy of the page you are viewing to your
local hard disk as an HTML File.

Using FTP (File Transfer Protocol):

<A HREF="ftp://ftp.rahul.net/pub/jfm/avi/avi.html">ftp://ftp.rahul.net/pub/jfm/avi/avi.html</A>

<A HREF="#Top">Return to Top</A>

<A NAME="New">
<H2>What's New</H2>               

(May 11, 1999)

Aachen, Germany

MainConcept releases Linux verson of Main Actor Video Editor.
Linux is a free imlementation of the Unix operating system
for the IBM PC-compatible and other platforms. 

(April 15, 1999)

Aachen, Germany

MainConcept releases Main Actove Video Editor 3.0 for
Microsoft Windows 95/98 and Microsoft Windows NT 4.0.

(April 13, 1999)

RealNetworks acquires Xing Technology Corporation.  

(March 21, 1999)

AVI files.

(March 14, 1999)

AVI files.

According to the XAnim Web site:

video codecs, the new revision also supports dynamically loadable
video decompression libraries. This means you no longer need to
upgraded. There are currently dll's for: Creative CYUV, Radius
Cinepak, Intel Indeo 3.2, Intel Indeo 4.1, Intel Indeo 5.0, CCITT
H.261 and CCITT H.263.

(Feb. 2, 1999)

(November 5, 1998) Guillaume de Bailliencourt writes:


First, congratulation for your work in this FAQ !

Decompress hardware M-JPEG AVI files (Rainbow Runner, DC30, ...) without the
capture hardware.

Win9x, WinNT, Video for Windows, ActiveMovie & DirectShow compliant.

MMX and 3DNow! optimized.

DirectDraw YUV accelarated output supported (YUY2 & UYVY).

Most of the M-JPEG formats supported (4:2:2, 4:1:1, mjpg, dmb1, jpeg).

You can download it at www.morgan-multimedia.com

For me it is better than the Paradigm Matrix codec. I'll send you benchmark

For the moment it has been tested on :


Matrox Rainbow Runner AVI files in every resolutions & compressions.

Miro/Pinnacle DC30 AVI files in 384 x 288 & 720x540

Fast Screen Machine II + MJPEG card AVI file in 368 x 276

AVI files created with MainActor "Software & Harware MJPEG output"

AVI file converted from a 'jpeg' QuickTime file with SmartVid

Compressed with my codec & played back with :

Matrox Rainbow Runner

Best regards,

Guillaume de Bailliencourt

(January 6, 1999)

Radius Incorporated, the Cinepak company, renames itself
Digital Origin Incorporated.

(August 24, 1998) jim@shansys.com writes:

Hi there,
We have an H263+ avi codec and analysis tool at www.shansys.com

(August 3, 1998) David Gartner of Equilibrium writes:

Equilibrium adds AVI with sound support to DeBabelizer Pro 4.5


**AVI Video with Sound**
DeBabelizer Pro 4.5's new full AVI support enables users to batch process
legacy Video for Windows files for use on most any Macintosh and Windows
nto Windows 95 and NT and runs only on Windows machines.  Now, with a few
keystrokes, DeBabelizer Pro 4.5 users can automatically optimize, convert,
and compress tens, hundreds or thousands of videos to QuickTime 3.0,
animated GIFs or a variety of other cross-platform video and animation


(June 6, 1998)  Wolfgang Hesseler writes:

Hello, I just wanted to let you know that I've released the new
QuickView 2.30. It now supports a bunch of new video codecs like
Motion JPEG, several audio codecs and QuickTime video codecs.

(May 4, 1998) Microsoft plans to release first public test version
of NetShow 3.0

(March 23, 1998) The AVI Overview selected as an
'Outstanding Page' by the PC Webopaedia

(November 12, 1997) Microsoft has a new NetShow distribution NetShow
Networks) RealVideo and RealAudio, NetShow clients for Windows 3.1,
MacOS, and the Linux, Solaris, SunOS, and HP-UX versions of Unix, and
TheaterServer for streaming broadcast-quality video over highbandwidth
networks such as ATM and fast Ethernet.  Microsoft has invested in
RealNetworks within the last few months.

(October 30, 1997) Wolfgang Hesseler writes about his AVI viewer
for DOS:

Hello, I just wanted to let you know that I've released the new
QuickView 2.20. Besides supporting more hardware and MOV files it

(September 8, 1997) Microsoft distributes Advanced Streaming
Format (ASF) Specification for a "Public Design Review".
<A HREF="http://www.microsoft.com/asf/">Microsoft ASF Page</A>

(September, 1997) Lernout and Hauspie Speech Products forms
a strategic partnership with and receives investment capital
from Microsoft.  $45 million in some reports.  BT Alex Brown
acted as financial advisor.  Lernout and Hauspie audio codecs are
used in Microsoft's NetShow product.

(September, 1997) avi2mpg1 released.  A Windows 95/NT console
application to convert AVI to MPEG-1.

(August 5, 1997) Microsoft acquires VxTreme (wavelet based

<A HREF="http://www.vxtreme.com/">VxTreme Inc.</A>

now available on Intel Web site.

Wolfgang Hesseler announces version 2.13 of QuickView, an AVI

MainConcept announces version 1.1 of MainActor shareware.
MainActor can convert between AVI and many video, animation,
and image formats.  (July 9, 1997)

Marcus Moenig of MainConcept writes:


MPEG-II without audio. So you can now convert MPEG into AVI and vice versa.

and FAST hardware can now be read and written by MainActor.


RAD Game Tools announces a new version of their Smacker
utilities, including the ability to read and write AVI 
files with optimized 8 bit color palettes. (June 27, 1997)

<A HREF="#Top">Return to Top</A>

<A NAME="Definition">
<H2>What is AVI?</H2>

	AVI stands for Audio Video Interleave.  It is a special case
of the RIFF (Resource Interchange File Format).  AVI is defined by
Microsoft.  AVI is the most common format for audio/video data on the

<A HREF="#Top">Return to Top</A>

<H2>Windows Multimedia System</H2>

for handling multimedia.  This system consists of the high level
Media Control Interface or MCI Application Programming Interface (API)
and associated MCI drivers.  Playback of AVI files can be controlled
through the high level MCI API and the MCIAVI.DRV MCI driver.

The Windows Multimedia System also provides a number of low level
API's such as the WAVE API for waveform audio and associated

Under Windows NT 4.0, the MCI and low level API's are stored in 
the file WINMM.DLL

The API's are:

MCI   (high level API - useful for AVI playback)
midi  (MIDI devices)
mixer (MIXER devices)
mmio  (low level functions to parse RIFF files)
time  (timers etc.)
aux   (auxiliary sound device)

When a program loads the MCIAVI driver, the Multimedia
System has the intelligence to locate and invoke the
appropriate MCI driver (MCIAVI.DRV in 16-bit
Windows or MCIAVI32.DLL in 32 bit windows) and pass the MCI
commands such as MCI_PLAY to the MCI driver.

The MCIAVI driver then calls Video for Windows to decompress
the video, GDI (or another graphics API) to display the

A dump of the functions exported by winmm.dll under NT 4.0

Microsoft (R) COFF Binary File Dumper Version 5.00.7022
Copyright (C) Microsoft Corp 1992-1997. All rights reserved.

Dump of file winmm.dll

File Type: DLL

         Section contains the following Exports for WINMM.dll

                   0 characteristics
            31EC70B4 time date stamp Tue Jul 16 21:48:52 1996
                0.00 version
                   2 ordinal base
                 197 number of functions
                 197 number of names

            ordinal hint   name

                  3    0   CloseDriver  (000026CE)
                  4    1   DefDriverProc  (00005AF4)
                  5    2   DriverCallback  (0000254E)
                  6    3   DrvGetModuleHandle  (00001D37)
                  7    4   GetDriverModuleHandle  (00001D37)
                  8    5   MigrateAllDrivers  (00013E79)
                  9    6   MigrateMidiUser  (00013E60)
                 10    7   MigrateSoundEvents  (00011A3C)
                 11    8   NotifyCallbackData  (0000B2C2)
                 12    9   OpenDriver  (00002036)
                 13    A   PlaySound  (00008ACB)
                  2    B   PlaySoundA  (00008ACB)
                 14    C   PlaySoundW  (00009AE1)
                 15    D   SendDriverMessage  (00001000)
                 16    E   WOW32DriverCallback  (0000C448)
                 17    F   WOW32ResolveMultiMediaHandle  (0000CC3C)
                 18   10   WOWAppExit  (00009D3F)
                 19   11   aux32Message  (0000C507)
                 20   12   auxGetDevCapsA  (0000A3FD)
                 21   13   auxGetDevCapsW  (00008C77)
                 22   14   auxGetNumDevs  (00006AE4)
                 23   15   auxGetVolume  (0000A4A1)
                 24   16   auxOutMessage  (00008BFF)
                 25   17   auxSetVolume  (0000A4C9)
                 26   18   joy32Message  (0000C768)
                 27   19   joyConfigChanged  (0000AE40)
                 28   1A   joyGetDevCapsA  (0000A99A)
                 29   1B   joyGetDevCapsW  (0000AB40)
                 30   1C   joyGetNumDevs  (0000AB96)
                 31   1D   joyGetPos  (0000ABAA)
                 32   1E   joyGetPosEx  (0000ABFD)
                 33   1F   joyGetThreshold  (0000AC5C)
                 34   20   joyReleaseCapture  (0000ACA8)
                 35   21   joySetCapture  (0000ACFC)
                 36   22   joySetThreshold  (0000AE06)
                 37   23   mci32Message  (00007566)
                 38   24   mciDriverNotify  (00007006)
                 39   25   mciDriverYield  (00008727)
                 40   26   mciExecute  (0000D92C)
                 41   27   mciFreeCommandResource  (000035CE)
                 42   28   mciGetCreatorTask  (0000DCD5)
                 43   29   mciGetDeviceIDA  (0000DCA3)
                 44   2A   mciGetDeviceIDFromElementIDA  (0000DBC6)
                 45   2B   mciGetDeviceIDFromElementIDW  (0000DBF5)
                 46   2C   mciGetDeviceIDW  (00005372)
                 47   2D   mciGetDriverData  (0000158B)
                 48   2E   mciGetErrorStringA  (0000DA46)
                 49   2F   mciGetErrorStringW  (0000352F)
                 50   30   mciGetYieldProc  (0000E1F3)
                 51   31   mciLoadCommandResource  (00002A75)
                 52   32   mciSendCommandA  (000015D4)
                 53   33   mciSendCommandW  (000014A1)
                 54   34   mciSendStringA  (00004927)
                 55   35   mciSendStringW  (00004A24)
                 56   36   mciSetDriverData  (000058BD)
                 57   37   mciSetYieldProc  (000034C9)
                 58   38   mid32Message  (0000BDFD)
                 59   39   midiConnect  (0001019E)
                 60   3A   midiDisconnect  (0001018C)
                 61   3B   midiInAddBuffer  (0001004A)
                 62   3C   midiInClose  (0000FF42)
                 63   3D   midiInGetDevCapsA  (0000FCCC)
                 64   3E   midiInGetDevCapsW  (0000FC71)
                 65   3F   midiInGetErrorTextA  (0000FDEB)
                 66   40   midiInGetErrorTextW  (0000FDB2)
             SetInfo  (0000EBF4)
                140   8A   mmioStringToFOURCCA  (0000ED9A)

Under Windows 3.x and Windows 95, the DLL MMSYSTEM.DLL (short for
MultiMedia System) contains the multimedia API's.      

<A HREF="#Top">Return to Top</A>

<H2>Video for Windows</H2>

Video for Windows is an entire system for handling video 
n Microsoft Windows.  It was part of MS Windows 3.1  The
original Video for Windows is a collection of 16 bit

The AVI file and file format is a central part of Video 
for Windows.

Microsoft Visual C++ 5.0 has a Video for Windows
nclude file Vfw.h which contains the various API's that
make up Video for Windows:

 *          COMPMAN         - Installable Compression Manager.
 *          DRAWDIB         - Routines for drawing to the display.
 *          VIDEO           - Video Capture Driver Interface
 *          AVIFMT          - AVI File Format structure definitions.
 *          MMREG           - FOURCC and other things
 *          AVIFile         - Interface for reading AVI Files and AVI Streams
 *          MCIWND          - MCI/AVI window class
 *          AVICAP          - AVI Capture Window class
 *          MSACM           - Audio compression manager.

Microsoft released a Video for Windows 1.0 for
Windows 3.1 in November 1992, followed by Video for Windows 1.1.  There
dentified by a trailing alphabetical character such as
Windows 1.1 for Windows 3.x is Video for Windows 1.1e
This is available by ftp from Microsoft. 

Microsoft has provided a 32-bit version of Video for Windows
for Windows 95, while threatening to replace Video for Windows with
ActiveMovie.  This version has 32 bit versions of the Video
for Windows codecs such as Cinepak.  Other DLL's in the
Video for Windows 95 are also 32-bit  How much of the Video for
Windows in Windows 95 is 32 bit code is not clear; many of the
codecs are clearly 32 bit codecs.  Nor is it clear how much has been
changed or modified besides the convesion to 32-bit code.

Windows NT 3.5, 3.51 and Windows NT 4.0 include a Video for Windows for
NT.  Presumably this is strictly 32-bit.  It is not clear how
much code is shared between the NT Video for Windows and the
Windows 95 Video for Windows.  Note that hardware device

ActiveMovie 1.0 and DirectShow (formerly ActiveMovie 2.0) are
and Windows NT.  These support AVI files.  ActiveMovie started 
out life under the code name Quartz; early Beta releases of
ActiveMovie were known as Quartz.

ActiveMovie 1.0 is bundled with Windows 95b (OEM Service Release 2.x)
and Internet Explorer 3.x/4.x for Windows 95.  It can also be downloaded
and installed in Windows 95 separately.  Note that ActiveMovie 1.0
uses Video for Windows capture drivers.  

ActiveMovie 1.0 is a 32 bit software component that can run in NT's
user mode.  It runs under Windows NT 4.0 as well as Windows 95.  

DirectShow (ActiveMovie 2.0) will supposedly add a number of new
features including video capture support, kernel mode streaming, and
miscellaneous other features.


Under NT 4.0, Video for Windows is implemented as a collection of
format.  These are usually located in the \WINNT\SYSTEM32 directory

MSVFW32.DLL        ( Microsoft Video for Windows DLL - NT 4.0 )
AVIFIL32.DLL       ( AVIFILE API for Reading and Writing AVI Files and Streams )
AVICAP32.DLL       ( AVI Capture Window Class )
MCIAVI32.DLL       ( Video for Windows MCI Driver )
MSACM32.DRV        ( Microsoft Audio Compression Manager )
MSACM32.DLL        ( more Microsoft Audio Compression Manager )

MSRLE32.DLL        ( Microsoft RLE Video Codec )
MSVIDC32.DLL       ( Microsoft Video 1 Codec )

What is in MSVFW32.DLL?

MSVFW32.DLL includes the DRAWDIB, Installable Compression
Manager or ICM, and MCI Windows components of Video for
Windows.  Other components are stored in other DLL's.

This is a dump of the functions exported by MSVFW32.DLL
Version 4.00

Microsoft (R) COFF Binary File Dumper Version 5.00.7022
Copyright (C) Microsoft Corp 1992-1997. All rights reserved.

Dump of file msvfw32.dll

File Type: DLL

         Section contains the following Exports for MSVFW32.dll

                   0 characteristics
            31EC70E9 time date stamp Tue Jul 16 21:49:45 1996
                0.00 version
                   2 ordinal base
                  47 number of functions
                  47 number of names

            ordinal hint   name

                  3    0   DrawDibBegin  (00001E14)
                  4    1   DrawDibChangePalette  (00008C30)
                  5    2   DrawDibClose  (0000888A)
                  6    3   DrawDibDraw  (000010A6)
                  7    4   DrawDibEnd  (00008BEC)
                  8    5   DrawDibGetBuffer  (00008EFC)
                  9    6   DrawDibGetPalette  (00002F97)
                 10    7   DrawDibOpen  (00003E0A)
                 11    8   DrawDibProfileDisplay  (00003EBA)
                 12    9   DrawDibRealize  (00001D49)
                 13    A   DrawDibSetPalette  (00001C0D)
                 14    B   DrawDibStart  (00002EEB)
                 15    C   DrawDibStop  (00002F42)
                 16    D   DrawDibTime  (00008C2B)
                 17    E   GetOpenFileNamePreview  (0000C7DC)
                 18    F   GetOpenFileNamePreviewA  (0000C7DC)
                 19   10   GetOpenFileNamePreviewW  (0000C6A5)
                 20   11   GetSaveFileNamePreviewA  (0000C7EC)
                 21   12   GetSaveFileNamePreviewW  (0000C7CC)
                 22   13   ICClose  (000035E0)
                 23   14   ICCompress  (00004CE5)
                 24   15   ICCompressorChoose  (00005F61)
                 25   16   ICCompressorFree  (00005615)
                 26   17   ICDecompress  (00004D4B)
                 27   18   ICDraw  (0000106A)
                 28   19   ICDrawBegin  (00001B95)
                 29   1A   ICGetDisplayFormat  (00004D8E)
                 30   1B   ICGetInfo  (00004C60)
                 31   1C   ICImageCompress  (00005A96)
                 32   1D   ICImageDecompress  (00005D2A)
                 33   1E   ICInfo  (00002FEB)
                 34   1F   ICInstall  (00004574)
                 35   20   ICLocate  (0000372E)
                 36   21   ICMThunk32  (0000841C)
                 37   22   ICOpen  (0000337C)
                 38   23   ICOpenFunction  (00003B53)
                 39   24   ICRemove  (0000488B)
                 40   25   ICSendMessage  (00001000)
                 41   26   ICSeqCompressFrame  (000059A7)
                 42   27   ICSeqCompressFrameEnd  (00005907)
                 43   28   ICSeqCompressFrameStart  (000056E4)
                 44   29   MCIWndCreate  (0000C988)
                 45   2A   MCIWndCreateA  (0000C988)
                 46   2B   MCIWndCreateW  (0000C8CC)
                 47   2C   MCIWndRegisterClass  (0000C83F)
                 48   2D   StretchDIB  (00009D13)
                  2   2E   VideoForWindowsVersion  (000041D1)


        8000 .data
        3000 .rdata
        2000 .reloc
        3000 .rsrc
       11000 .text


Microsoft distributed a new Video for Windows for Windows 95

Video for Windows 95 Files

MSRLE32.DLL      (32-bit Microsoft RLE Video Codec)
MSVIDC32.DLL     (32-bit Microsoft Video 1 Video Codec )
MSVIDEO.DLL      (16-bit Video for Windows DLL)      
MCIAVI.DRV       (16-bit AVI Video MCI Driver)
AVICAP.DLL       (16-bit AVICAP)
AVICAP32.DLL     (32-bit AVICAP)
MSVFW32.DLL      (32-bit Video for Windows DLL - with VfW API)
AVIFIL32.DLL     (32-bit AVIFILE)


Video for Windows 1.0 (Windows 3.x)
Video for Windows 1.1 (a-e) (Windows 3.x)
Video for Windows (Windows 95 - has 32-bit codecs and other 32-bit DLL's)
Video for Windows (Windows NT 3.5, 3.51, and 4.0)

Quartz           (Betas of ActiveMovie) (Windows 95)
ActiveMovie 1.0                         (Windows 95 and NT 4.0)
ActiveMovie 2.0  (DirectShow)           (probably Windows 97/98/Memphis and NT 5.0)

<A HREF="#Top">Return to Top</A>


The Microsoft Windows audio (sound) input/output system, commonly
are simply waveform audio (or WAV) data used by the wave system.
Video for Windows parses the AVI files, extracts the WAV data, and
video track if present.

Traditionally, audio input and output devices such as Sound Blaster
Cards have a WAVE audio input/output driver to play WAV (waveform
audio) files.

The simplest waveform audio files consists of a header followed by
bit sound samples.  WAVE also provides a mechanism for audio codecs.
See elsewhere in the AVI Overview for further information on audio
codecs and audio compression.

WAVE is present in Windows 3.1 and Windows 95.  A different WAVE

ActiveMovie appears to be replacing WAVE.

<A HREF="#Top">Return to Top</A>

<A NAME="Format">
<H2>What is the AVI File Format?</H2>

   AVI Files are a special case of RIFF files.  RIFF is
the Resource Interchange File Format.  This is a general
that was defined by Microsoft and IBM during their
long forgotten alliance.

Kevin McKinnon writes:

quickly became the standard for interchange on that platform, 
maintained eventually by Commodore right up 'til it's demise.  EA also 

four charcter because they looked good in #define's. ;)

RIFF is so close to IFF that the good IFF parser routines will (mostly) 
correctly parse RIFF files.

----End of Kevin----

Further information on the IFF format is available at:

<A HREF="http://www.ipahome.com/gff/textonly/summary/iff.htm">http://www.ipahome.com/gff/textonly/summary/iff.htm</A>

<H3>RIFF Files</H3>

   RIFF files are built from 

	(1) RIFF Form Header

              'RIFF' (4 byte file size) 'xxxx' (data)

                  where 'xxxx' identifies the specialization (or form)
                  of RIFF.  'AVI ' for AVI files.

                  where the data is the rest of the file.  The 
                  data is comprised of chunks and lists.  Chunks
                  and lists are defined immediately below.

	(2) A Chunk

		(4 byte identifier) (4 byte chunk size) (data)

                The 4 byte identifier is a human readable sequence
                of four characters such as 'JUNK' or 'idx1'

	(3) A List

		'LIST' (4 byte list size) (4 byte list identifier) (data)

                        where the 4 byte identifier is a human readable
                        sequence of four characters such as 'rec ' or
			where the data is comprised of LISTS or CHUNKS.

<H3>AVI File Format</H3>

	AVI is a specialization or "form" of RIFF, described below:

'RIFF' (4 byte file length) 'AVI '   // file header (a RIFF form)

'LIST' (4 byte list length) 'hdrl'   // list of headers for AVI file

The 'hdrl' list contains:

'avih' (4 byte chunk size)  (data)   // the AVI header  (a chunk)

'strl' lists of stream headers for each stream (audio, video, etc.) in
the AVI file.  An AVI file can contain zero or one video stream and
zero, one, or many audio streams.  For an AVI file with one video and
one audio stream:

'LIST' (4 byte list length) 'strl'   // video stream list (a list)

The video 'strl' list contains:

'strh' (4 byte chunk size)  (data)   // video stream header (a chunk)
'strf' (4 byte chunk size)  (data)   // video stream format (a chunk)

'LIST' (4 byte list length) 'strl'   // audio stream list (a list)

The audio 'strl' list contains:

'strh' (4 byte chunk size)  (data)   // audio stream header (a chunk)
'strf' (4 byte chunk size)  (data)   // audio stream format (a chunk)

'JUNK' (4 byte chunk size) (data - usually all zeros) // an OPTIONAL junk chunk to align on 2K byte boundary

'LIST' (4 byte list length) 'movi'   // list of movie data (a list)

The 'movi' list contains the actual audio and video data.   
This 'movi' list contains one or more ...
 'LIST' (4 byte list length) 'rec '  // list of movie records (a list)
 '##wb' (4 byte chunk size) (data)   // sound data (a chunk)
 '##dc' (4 byte chunk size) (data)   // video data (a chunk)
 '##db' (4 byte chunk size) (data)   // video data (a chunk)

A 'rec ' list (a record) contains the audio and video data for a single frame.
 '##wb' (4 byte chunk size)  (data)  // sound data (a chunk)
 '##dc' (4 byte chunk size)  (data)  // video data (a chunk)
 '##db' (4 byte chunk size)  (data)  // video data (a chunk)

The 'rec ' list may not be used for AVI files with only audio or only
video data.  I have seen video only uncompressed AVI files that did
not use the 'rec ' list, only '00db' chunks.  The 'rec ' list is used
for AVI files with interleaved audio and video streams.  The 'rec '
list may be used for AVI file with only video.

 ## in '##dc' refers to the stream number.  For example, video data chunks
belonging to stream 0 would use the identifier '00dc'.  A chunk of
video data contains a single video frame.

Alexander Grigoriev writes ...


##dc chunk was intended to keep compressed data, whereas ##db chunk
nad(sic) to be used for uncompressed DIBs (device independent bitmap),
but actually they both can contain compressed data. For example,
Microsoft VidCap (more precisely, video capture window class) writes
MJPEG compressed data in ##db chunks, whereas Adobe Premiere writes
frames compressed with the same MJPEG codec as ##dc chunks.

----End of Alexander

The ##wb chunks contain the audio data.

The audio and video chunks in an AVI file do not contain 
time stamps or frame counts.  The data is ordered in time sequentially as
t appears in the AVI file.  A player application should display the
video frames at the frame rate indicated in the headers.  The
application should play the audio at the audio sample rate indicated
n the headers.  Usually, the streams are all assumed to start at
time zero since there are no explicit time stamps in the AVI file.

The lack of time stamps is a weakness of the original AVI file
format.  The OpenDML AVI Extensions add new chunks with time
Microsoft claims will replace AVI, has time stamp "objects".

containing the audio associated with that video frame.  The data
consists of pairs of video and audio chunks.  These pairs may be
encapsulated in a 'REC ' list.  Not all AVI files obey this simple
of the audio; this is not the way an AVI file should be made.

 The 'movi' list may be followed by:

 'idx1' (4 byte chunk size) (index data) // an optional index into movie (a chunk)

  The optional index contains a table of memory offsets to each
chunk within the 'movi' list.  The 'idx1' index supports rapid

  The 'avih' (AVI Header) chunk contains the following information:

      Total Frames   (for example, 1500 frames in an AVI)
      Streams   (for example, 2 for audio and video together)
      Microseconds Per Frame
      Frames Per Second   (for example, 15 fps)
      Size  (for example 320x240 pixels)

  The 'strh' (Stream Header) chunk contains the following information:

      Stream Type  (for example, 'vids' for video  'auds' for audio)
      Stream Handler  (for example, 'cvid' for Cinepak)
      Samples Per Second  (for example 15 frames per second for video)
      Length  (for example, 1500 frames for video)
      Length (sec)   (for example 100 seconds for video)

   For video, the 'strf' (Stream Format) chunk contains the following 

      Size  (for example 320x240 pixels)
      Bit Depth (for example 24 bit color)
      Colors Used  (for example 236 for palettized color)
      Compression  (for example 'cvid' for Cinepak)

   For audio, the 'strf' (Stream Format) chunk contains the following

      wFormatTag           (for example, WAVE_FORMAT_PCM)
      Number of Channels   (for example 2 for stereo sound)
      Samples Per Second   (for example 11025)
      Average Bytes Per Second   (for example 11025 for 8 bit sound)
      Bits Per Sample      (for example 8 or 16 bits)

  Each 'rec ' list contains the sound data and video data for a single
frame in the sound data chunk and the video data chunk.  

  Other chunks are allowed within the AVI file.  For example, I have

    'LIST' (4 byte list size) 'INFO' (chunks with information on video)

  These chunks that are not part of the AVI standard are simply
gnored by the AVI parser.  AVI can be and has been extended by adding
lists and chunks not in the standard.  The 'INFO' list is a registered

  The sound data is typically 8 or 16 bit PCM, stereo or mono,
typically been uncompressed Windows PCM.  With the advent of
the WorldWide Web and the severe bandwidth limitations of the
dentifies the audio format and codec.

<A NAME="OpenDML">
<H3>OpenDML AVI File Format Extensions</H3>

  The Open Digital Media (OpenDML) Consortium has defined an OpenDML
AVI File Format Extensions which extend AVI to support a variety of
features required for professional video production.  These include
timecodes, and many other features.  Microsoft has reportedly
ncorporated OpenDML AVI support in DirectShow 5.1 (ActiveMovie 5.1).
n particular Matrox's DigiSuite software.

  The Open Digital Media Consortium AVI File Format Extensions 
add new lists and chunks to the AVI file which contain extra

  OpenDML appears to have been spearheaded by Matrox to improve AVI
for professional video authoring and editing.  Matrox makes a variety
of PC video products such as DigiSuite for professional and broadcast
video authoring and editing.  The OpenDML AVI File Format Extensions
are primarily for the Motion JPEG AVI files used for professional
video authoring and editing.  The OpenDML effort seems to have been
(formerly Active) Streaming Format (ASF) Files, and other Microsoft

  On Oct. 2, 1997, the OpenDML AVI File Format Extensions Version 1.02
the Matrox Electronic Systems, Ltd. Web site at:

<A HREF="http://www.matrox.com/videoweb/odmlff2.htm">http://www.matrox.com/videoweb/odmlff2.htm</A>

The specification is in Adobe Portable Document Format (PDF).  Since
Matrox seems to rearrange their site from time to time and one can't
always find the specification, I've included a link to a copy of the PDF
version of the specification on my Web site.

<A HREF="http://www.rahul.net/jfm/odmlff2.pdf">PDF OpenDML AVI File Format Extensions Specification Document</A>

<A HREF="http://www.adobe.com/prodindex/acrobat/readstep.html">Get Adobe Acrobat Reader (PDF Viewer)</A>

<A NAME="AVISpec">
<H3>Where to get the exact AVI specification?</H3>

Microsoft Visual C++ 5.0 has a Video for Windows include
file Vfw.h which gives the exact AVI data structures such as
the various headers used in AVI files.  The file also has
comments explaining the structure of the AVI file.

Video for Windows refers to the AVI Format by the mnemonic
AVIFMT.  At one time, the format information was apparently
nformation now appears consolidated in Vfw.h

Video for Windows Programmer's Guide, "AVI Files", gives a detailed

<A HREF="#Top">Return to Top</A>
<H2>AVI and Windows Bitmaps (DDB, DIB, ...)</H2>

Microsoft Windows represents bitmapped images internally and in files
as Device Dependent Bitmaps (DDB), Device Independent Bitmaps (DIB), and
DIB Sections.  Uncompressed 'DIB ' AVI files represent video frames as
DIB's.  Various multimedia API's that work with AVI use Windows
bitmapped images.

bitmapped images.  A DDB is stored in a format understood by the
are not generally portable.

The structure of a DDB is:

typedef struct tagBITMAP {  // bm 
   LONG   bmType;       /* always zero */
   LONG   bmWidth;      /* width in pixels */
   LONG   bmHeight;     /* height in pixels */
   LONG   bmWidthBytes; /* bytes per line of data */
   WORD   bmPlanes;     /* number of color planes */
   WORD   bmBitsPixel;  /* bits per pixel */
   LPVOID bmBits;       /* pointer to the bitmap pixel data */
Usually the pixel data immediately follows the BITMAP header.

(BITMAP header)(Pixel Data)

The HBITMAP handles used by GDI are handles to Device Dependent Bitmaps.
The GDI function BitBlt and StretchBlt are actually using Device
Dependent Bitmaps.

With Windows 3.0, Microsoft introduced the Device Independent Bitmap or
DIB, the reigning workhorse of bitmapped images under Windows.  The DIB
monochrome and color.

Windows retains DDB's despite the introduction of the DIB.  For
example, to use a DIB, you might call:

CreateDIBitmap creats a DDB from a DIB, returning the GDI HBITMAP
and GDI are still using DDB's.

The DIB files have a standard header that identifies the format, size,
color palette (if applicable) of the bitmapped image.  The header
s a BITMAPINFO structure.

typedef struct tagBITMAPINFO {
    BITMAPINFOHEADER    bmiHeader;
    RGBQUAD             bmiColors[1];

The BITMAPINFOHEADER is a structure of the form:

typedef struct tagBITMAPINFOHEADER{ // bmih 
   DWORD  biSize; 
   LONG   biWidth; 
   LONG   biHeight; 
   WORD   biPlanes; 
   WORD   biBitCount 
   DWORD  biCompression; /* a DIB can be compressed using run length encoding */
   DWORD  biSizeImage; 
   LONG   biXPelsPerMeter; 
   LONG   biYPelsPerMeter; 
   DWORD  biClrUsed; 
   DWORD  biClrImportant; 
bmiColors[1] is the first entry in an optional color palette or color
table of RGBQUAD data structures.  True color (24 bit RGB) images

typedef struct tagRGBQUAD { // rgbq 
    BYTE    rgbBlue; 
    BYTE    rgbGreen; 
    BYTE    rgbRed; 
    BYTE    rgbReserved; /* always zero */
A DIB consists of

	(BITMAPINFOHEADER)(optional color table of RGBQUAD's)(data for the
bitmapped image)

A Windows .BMP file is a DIB stored in a disk file.  .BMP files prepend
a BITMAPFILEHEADER to the DIB data structure.

typedef struct tagBITMAPFILEHEADER { // bmfh 
        WORD    bfType;  /* always 'BM' */
        DWORD   bfSize;  /* size of bitmap file in bytes */
        WORD    bfReserved1; /* always 0 */
        WORD    bfReserved2; /* always 0 */
        DWORD   bfOffBits;   /* offset to data for bitmap */

Structure of Data in a .BMP File


The Win32 API documentation from Microsoft provides extensive 
nformation on the data structures in a DIB.

memory copies during blitting (display) of a DIB. 

<A HREF="#Top">Return to Top</A>

<A NAME="Codec">
<H2>Meet the Codecs</H2>

The video data in an AVI file can be formatted and compressed in
a variety of ways.  Video for Windows 1.1e comes with several 

Microsoft Video 1

Microsoft RLE (Run Length Encoding)


AVI is not restricted to these compressors.  They
are the compressors provided with Video for Windows.

These compressors are the Old Guard, the video codecs
from the early days of Video for Windows and QuickTime (Cinepak originated
focus of video was playback from hard drives and CD-ROM's.

The advent of the WorldWide Web and Internet Mania
apply "advanced" technologies such as sophisticated motion
estimation and compensation, wavelets, fractals, and other
techniques to achieve extremely low bitrates (such as 

<H3>The Old Guard</H3>

<H4>Full Frames (Uncompressed)</H4>

Users can store AVI files with uncompressed frames.  No codec is

The Four Character Code (FOURCC) for this is 'DIB ', DIB for
the Microsoft Device Independent Bitmap.

NOTE: Unfortunately, at least three other Four Character Codes are

'RGB '
'RAW '

<A NAME="ColorFormats">
<H5>Color Formats</H5>

Not all uncompressed bitmap images and AVI frames are the same!
A variety of color formats for image pixels exist.  Some of these
color formats are essentially standard and supported on all systems.
Some color formats (such as 8 bit grayscaleY8) require special

Color Formats are also known as IMAGE FORMATS or PIXEL FORMATS.  Some
components of Microsoft Windows identify Color Formats with a Four
Character Code (FOURCC) such as 'RGB8' or 'YUY2'.  Some components such
as the Windows Device Independent Bitmap or DIB do not use Four Character
Codes for color formats.

RGB a pixel is represented as three bytes, one byte for the red
component, one byte for the green component, and one byte for
the blue component.  

... and so forth.

Other color formats include:

(24 bit RGB - described above)

<H6>Original DIB Color Formats</H6>

allow values of 1,4,8, and 24 bits per pixel in the biBitCount
field of the BITMAPINFOHEADER.  The biCompression field was allowed
the values BI_RGB, BI_RLE4 (for run length encoding of 4 bit per pixel
mages), and BI_RLE8 (for run length encoding of 8 bit per pixel
mages).  That was it.  This original specification of the DIB

The original DIB specification had no support for 16 bit per pixel
formats, 32 bit per pixel formats, or special encodings like YUV.
Not surprisingly, the original formats and specification of the DIB
are the most widely supported in software.

<H6>New DIB Color Formats and More Complexity</H6>

Microsoft added support for 16 bit per pixel and 32 bit per pixel
mages to the DIB specification.  These formats are identified by
these "new" color formats.

By default, the Microsoft 16 bit per pixel format is actually RGB 15
for blue.  This was done because the 15-bit RGB or 5-5-5 format was
used in 16-bit-per-pixel color video cards.  Hardware designers found
t easier to build chips using a 5-5-5 pixel format with one bit
unused than the slightly higher resolution 5-6-5 color format.

The Microsoft 32 bit per pixel format has the most significant byte of
the pixel set to zero.  Then 8 bits for red, 8 bits for green, and 8
bits for blue.  This is RGB 32 bit.  Why do this?  The 32-bit pixels
n this format are DWORD aligned on 32 bit boundaries in this format
bit processor architecture than the unaligned 24-bit RGB format.

Microsoft also added a new value for the biCompression field of the
BITMAPINFOHEADER called BI_BITFIELDS.  If biCompression is set
to BI_BITFIELDS, then the color table is three DWORD (32 bit)
masks giving the bits used for the red, green, and blue components
of a pixel.  In this way, a "custom" format such as RGB 5-6-5 (5 bits
for Red, 6 bits for Green, and 5 bits for Blue) can be defined.  This
s 16-bit RGB.

Although Four Character Codes (FOURCC's) such as 'RGB8' are used to
dentify different Color Formats in some parts of Microsoft Windows,
the DIB data structures don't use FOURCC's, rather they use combinations
of biBitCount and biCompression.

mechanism for custom encodings such as YUV, YUY2, and so forth.
Manufacturers can register the new format with Microsoft.  Microsoft
also concocted a JPEG-DIB specification for wrapping the JPEG still
mage compression standard in a DIB.  The JPEG DIB specification is
virtually unused, having lost to the JFIF JPEG file format.  JPEG
mages in general use, such as on Web pages, are JFIF's not JPEG

<H6>YUV Color Space and Color Formats</H6>

YUV is the color space used in the European PAL broadcast television
the world.  The United States and Japan use the NTSC standard.  France
and a few other nations use the SECAM standard.

Y refers to the luminance, a weighted sum of the red, green, and blue
components.  The human visual system is most sensitive to the luminance
component of an image.  Analog video systems such as NTSC, PAL, and 
SECAM transmit color video signals as a luminance (Y) signal and
two color difference or chrominance signals (the U and V above).

Y = 0.299 R + 0.587 G + 0.114 B

U = 0.493 (B - Y)

V = 0.877 (R - Y)

U is very similar to the difference between the blue and yellow
components of a color image.  V is very similar to the difference
between the red and green components of a color image.  There is
evidence that the human visual system processes color information
nto something like a luminance channel, a blue - yellow
channel, and a red - green channel.  For example, while we
color space of PAL is so useful.

To exploit this, digital color formats such as YUV9 or YUY2
exist that represent pixels as levels of Y, U, and V.


Both BMP still image files and AVI files may be saved in many
AVI playback drivers will support some of the less well-known
color formats.  You may need to get special software, drivers, or
even hardware to use some of these formats.

For example, all of the color formats listed above are supported by
and Video Capture card.  Some of these, like 8 bit grayscale Y8, are
not widely known or supported.

format used when the video (AVI file) is captured.  These color
format options should be accessible through the video capture software

user may select the color format through Options | Video Format...

<A HREF="#Top">Return to Top</A>

<H4>Microsoft Run Length Encoding</H4>

Microsoft Run Length Encoding uses the Four Character Code MRLE


n Windows 95


n Windows 3.x

Microsoft Run Length Encoding usually appears with the 
name "Microsoft RLE" in lists of Video Compression options.

Microsoft RLE only supports 8 bit color, a maximum of 256 colors using
a color lookup table.  It does NOT support 16 bit color, also known as
"High Color" or "Thousands of Colors", or 24 bit color, also known as
"True Color" or "Millions of Colors".


Historically, Microsoft RLE has been one of the standard Video for
Windows codecs from Microsoft.

The 16 bit Microsoft Video for Windows 1.1e installs a 16 bit
version of the Microsoft RLE video codec.

The Microsoft Windows 95 CD-ROM installs a 32 bit Microsoft
RLE video codec.

The Microsoft Windows NT Workstation Operating System Version 4.0
nstalls a 32 bit Microsoft RLE video codec.

<A HREF="#Top">Return to Top</A>

<H4>Microsoft Video 1</H4>

Microsoft Video uses the Four Character Code MSVC


n Windows 95


n Windows 3.x

<B>NOTE:</B>  The Four Character Code CRAM is also used for Microsoft Video 1.

Microsoft Video 1 supports only 8 bit or 16 bit color.  16 bit color is
also known as "High Color" or "Thousands of Colors".  Microsoft Video 1

WHERE TO GET Microsoft Video 1

Historically, Microsoft Video 1 has been one of the standard
Video for Windows codecs from Microsoft.

The 16 bit Microsoft Video for Windows 1.1e installs a 16 bit
version of the Microsoft Video 1 video codec.

The Microsoft Windows 95 CD-ROM installs a 32 bit version of the
Microsoft Video 1 video codec.

The Microsoft Windows NT Workstation Operating System 4.0 CD-ROM
nstalls a 32 bit version of the Microsoft Video 1 video codec.

<A HREF="#Top">Return to Top</A>

<A NAME="RT21">
<H4>Intel Real Time Video 2.1 (Indeo 2.1?) (RT21) </H4>

RT21 is the Microsoft Four Character Code for the Intel Real Time
Video 2.1 (Indeo 2.1?) video compressor-decompressor (codec).
Microsoft's 16-bit Video for Windows Version 1.1e for Windows 3.x
ncludes a 16-bit Video for Windows codec for RT21.

WHERE TO GET Intel Real Time Video 2.1

Microsoft appears to have discontinued support for RT21 in the

For example, the Microsoft Windows NT Workstation Operating System
Version 4.0 CD-ROM DOES NOT install RT21.  It DOES install Intel

See the <A HREF="#VfW16">Where to get the 16-bit Video for Windows</A>

<A HREF="#Top">Return to Top</A>

<A NAME="IV32">
<H4>Intel Indeo 3.1/3.2</H4>

originally for Indeo 3.1 and Indeo 3.2, but these are usually now
mapped to Indeo 3.2


n Windows 95


n Windows 3.x


Microsoft's 16 bit Video for Windows 1.1e includes a 16 bit Indeo 3.2
codec (the IR32.DLL above).

The Microsoft Windows 95 CD-ROM installs a 32 bit Indeo 3.2 video codec.

Microsoft Windows NT Workstation Operating System 4.0 CD-ROM installs
a 32 bit Indeo R3.2 video codec.

<A HREF="#Top">Return to Top</A>


Cinepak is the most widely used Video for Windows codec.  Cinepak
compression, Indeo decompression is much more CPU intensive than
Cinepak.  Cinepak was originally developed for the Mac and licensed to
Apple by SuperMac Technology Inc.  It is now free with Video for
Windows.  It is also free with Apple's QuickTime.

There are at least three Cinepak Video for Windows codecs in existence:

             Cinepak by SuperMac    (the original, 16 bit)
             Cinepak by Radius      (newer, better?, 16 bit)
             Cinepak by Radius[32]  (32 bit version of Radius Cinepak, shipped with Windows 95)

the Radius codec for superior results when generating AVI files from

Cinepak uses the Microsoft Four Character Code CVID


n Windows 95


n Windows 3.x

Apple QuickTime supports Cinepak.
Mark Podlipec's XAnim Unix X11 video player supports Cinepak.

Cinepak uses Vector Quantization based image compression and frame

Historical Note: On or about Jan. 6, 1999, Radius Inc. renamed itself
Digital Origin Inc..  SuperMac Technology, the original owner
of Cinepak, was a predecessor to Radius.  


Cinepak is one of the default standard video codecs in Video for Windows.

A 16-bit version of Cinepak is included in the 16 bit Video for Windows 1.1e

The Microsoft Windows 95 CD-ROM installs a 32 bit Cinepak by Radius video

Microsoft Windows NT Workstation Operating System Version 4.0 CD-ROM installs
a 32 bit Cinepak by Radius video codec.


Compression Technologies Inc.
Oakland, CA
<A HREF="mailto:info@cinepak.com">E-Mail: info@cinepak.com</A>
<A HREF="http://www.Cinepak.com/">http://www.Cinepak.com/</A>

Cinepak compatible movies.  These movies will play back using all
existing native Cinepak decompressors.

CinepakPro and Cinepak Toolkit  (Macintosh OS 7.5 or newer and 
                                 QuickTime 2.5 or 3)

CinepakPro QTX                  (Windows 95/98/NT and QuickTime 3.0 for Windows)

CinepakPro AVI                  (Windows 95/98/NT and Video for Windows/

An updated AVI Cinepak codec for Windows is available at the 
Compression Technologies Inc. Web site (May 12, 1999).

<A HREF="#VQ">Vector Quantization</A>

<A HREF="#Top">Return to Top</A>

<H4>Motion JPEG</H4>

Most PC video capture and editing systems capture video to AVI
files using Motion JPEG video compression.  In Motion JPEG, each
video frame is compressed separately using the JPEG still image
compression standard.  No frame differencing or motion estimation
s used to compress the images.  This makes frame accurate
editing without any loss of image quality during the editing

The standards situation for Motion JPEG is complicated since
at one time there was no industry standard for Motion JPEG.  
Microsoft has a Microsoft Motion JPEG Codec and a JPEG DIB
Format.  The OpenDML Avi File Format Extensions (another
features) includes Motion JPEG support.  See the Paradigm
Matrix site below for more information on these standards.

Motion JPEG codecs usually use the Four Character Code 'MJPG'.

Motion JPEG is used for editing and authoring, but rarely for 
compressed further using Cinepak or another codec for distribution.
Because Motion JPEG does not use frame differencing or motion
estimation, better compression is possible with other codecs.

A software Motion JPEG codec for Windows NT and Windows 95 is available 
from Paradigm Matrix at:

<A HREF="http://www.pmatrix.com/Goodies.htm">http://www.pmatrix.com/Goodies.htm</A>

The Paradigm Matrix Motion JPEG codec uses the Four Character Code

A 32-bit software Motion JPEG codec for Windows NT and Windows 95 is
available from Morgan Multimedia at:

<A HREF="http://www.morgan-multimedia.com/">http://www.morgan-multimedia.com/</A>

A 32-bit software Motion JPEG codec for processors with MMX instructions
(MainConcept Motion JPEG Codec) is available from MainConcept at:

<A HREF="http://www.mainconcept.com/">http://www.mainconcept.com/</A>

Motion JPEG uses the Block Discrete Cosine Transform (DCT) for
mage compression.

<A HREF="#Top">Return to Top</A>

<H4>Editable MPEG</H4>

At least two companies defined schmes to wrap editable MPEG (I frames
only MPEG) in AVI files.  Xing Technology's editable MPEG AVI uses
the Four Character Code XMPG.  Sigma Designs defined an AVI format
using the Four Character Code MPGI.

Editable MPEG consists of only MPEG I frames.  This omits the MPEG
motion estimation.  It is very similar to Motion JPEG.  By wrapping
Windows editing and authoring applications such as Adobe Premiere.

<A HREF="http://www.xingtech.com/">http://www.xingtech.com/</A>

Sigma Designs
<A HREF="http://www.graphcomp.com/info/specs/ms/editmpeg.htm">MPEG Extensions to AVI File 
Format (Draft 1.1 by Sigma Designs)</A>

<A HREF="#Top">Return to Top</A>

<H3>The New Wave</H3>

Recently (5/18/97), there has been a proliferation of new Video for
Windows codecs.  A few like H.261 have been around for a while, but
most represent implementations of new or improved technologies such as
Wave to differentiate them from the older codecs like Cinepak included

Microsoft appears to be developing or licensing some of these codecs as part of
NetShow, NetMeeting, and other Microsoft initiatives.

<H4>VDOWave or VDOLive from VDONet</H4>

VDONet <A HREF="http://www.vdo.net/">http://www.vdo.net/</A>
Voice: (415) 846-7730
FAX: (415) 846-7900

markets a wavelet based video codec which includes a Video for Windows
(32 bit) implementation.  Microsoft has licensed VDOWave as
VDOWave codec.  VDOWave 2.0 is a fixed rate video codec which uses
the Microsoft Four Character Code VDOM.  This codec adds the line


to the SYSTEM.INI file in Windows 95.

VDOWave 3.0 is a "scalable" video codec.  This codec uses the Microsoft Four
Character Code (FOURCC) VDOW and adds the line


to the Windows 95 SYSTEM.INI files.

VDONet VDOWave encoder.  

and the other block Discrete Cosine Transform based codecs at low

VDONet uses the trademark VDOWave for its wavelet based video codec.
VDONet uses the trademark VDOLive for its VDOLive On-Demand Product
Line.  This includes the VDOLive On-Demand Server, the VDOLive tools
ncluding VDOCapture and VDOClip, and the VDOLive Player.  Sometimes
VDOLive and VDOWave are used interchangably by users and in some company

VDONet also has a VDOPhone product for real-time videoconferencing.

Based on the company documentation, published reports, and viewing the
technology, VDOWave appears to be a combination of wavelet based image
compression and motion compensation or frame differencing.

<A HREF="#Top">Return to Top</A>

<A NAME="IV41">
<H4>What is Indeo Video Interactive?</H4>

s a different compression algorithm than Indeo 3.2 which is included

to the new compression algorithm such as transparency.

codec or in the new ActiveMovie environment from Microsoft.

For further information on Indeo Video Interactive

<A HREF="http://www.intel.com/pc-supp/multimed/indeo/index.htm">

How to program "sprites" in Indeo Video Interactive?

Some of Intel's marketing material touts the ability to
add sprites to applications using Indeo Video Interactive.
Most of Intel's technical documentation on Indeo and the API's
for using Indeo Video Interactive neglects to explain what Intel
means by "sprite".  There is a brief mention in the Overview

transparent pixels to create transparent backgrounds to
mplement effects such as chroma-keying.  The well-known
example of chroma-keying is the television weather forecaster
video gadgetry replaced the blue color with another video signal.
Anything that is not the blue "key" color is left unchanged.  

mythical weather-caster on a transparent background.  Your application
can then provide a bitmap image or even another video as a background
n the transparent areas of the image.  This provides a crude
mechanism for the video to change depending on interactions with
a user.

Look up the API's in Intel's documentation for TRANSPARENCY
to implement video sprites.

How to identify an AVI file that uses Indeo Video Interactive
for the video compressor?

Video for Windows identifies different video compressors through
four character codes.  For example, 'cvid' is the four character
code for the widely used Cinepak compressor.  The four character
code is found in the video stream header 'strh' in the AVI file.


Windows will report an error, indicating that it cannot find the
compressor for 'iv41'.  The specific message appears to be:

"Video not available, cannot find 'vids:iv41' decompressor."

<B>NOTE:</B> Indeo 4.1 claims to implement a hybrid wavelet transform.
Some of the behavior of the codec at low bitrates differs from other
Lightning Strike, and some public domain wavelet compression software.
as MPEG-1.  I'm not sure what Intel means by hybrid wavelet transform.

Discrete Wavelet Transform (DWT) exhibit a blurring at the edges of objects and
also "ringing" artifacts near edges.  They do not exhibit the blocking 
artifacts, checkerboard pattern in extreme cases, seen in block Discrete Cosine
Transform based image and video compression.

<A HREF="#Top">Return to Top</A>

<A NAME="IV50">
<H4>Indeo Video Interactive 5.0</H4>

ncludes features such as progressive download for the Internet,
transparency, sprites, etc.

As of 2/22/99, the latest version of Intel Indeo Video appears to
be Indeo Video 5.10.  The latest version of Intel Indeo Audio appears
to be Indeo Audio 2.5

The previous version of Intel Indeo Video was Indeo 5.06

<A HREF="http://developer.intel.com/ial/indeo/video/">http://developer.intel.com/ial/indeo/video/</A>

Known releases of Indeo Video 5.x

NOTE: All releases of Indeo 5.x appear to use the Four Character
Code IV50

Apple QuickTime 4 includes support for Indeo 5, allowing playback on
Apple Macintosh platforms.

<A HREF="http://www.apple.com/quicktime/technologies/indeo/">http://www.apple.com/quicktime/technologies/indeo/</A>

<A HREF="#Top">Return to Top</A>

<H4>ClearVideo (aka RealVideo)</H4>

ClearVideo is a video codec from Iterated Systems(<A
HREF="http://www.iterated.com/"> http://www.iterated.com</A>

Networks, makers of RealAudio, under the name RealVideo.

You can (or could at one time) download a Video for Windows demo of
ClearVideo from the Iterated Web site.  This includes a demo Video for
Windows codec that allows both encoding and decoding The video can
only be played on the same machine with the demo encoder.  This codec

Fractal video encoding appears to be very slow (computationally 
ntensive).  The video is similar or somewhat

ClearVideo uses Fractal Image Compression.  Iterated is the main
(only?) producer of commercial fractal image and video compression

The Video for Windows evaluation version of ClearVideo


n SYSTEM.INI in Windows 95.

<A HREF="#Top">Return to Top</A>

<H4>SFM (Surface Fitting Method)</H4>

Crystal Net Corporation (<A
HREF="http://www.crystalnet.com/">http://www.crystalnet.com/</A> seeks
to license a technology called SFM or Surface Fitting Method.  This is
Old Telephone Service) bitrates.  They have a Video for Windows demo
to download from their Web site.

SFM used the Microsoft Four Character Code (FOURCC)  SFMC.

The demo installs (actually the instructions tell you to manually install):


n Windows 95.

The demo does not include an encoder which presents problems in evaluating 
the technology.  However, SFM appears to be some sort of edge detection based
encoding technology.  

White Pine's Enhanced CU-See Me desktop videoconferencing product uses
Crystal Net's SFM under the name White Pine Color Software Codec.
NEC has reportedly licensed SFM for its Network Video Audio Tool (NVAT).
(February, 1998)

Crystal Net also reportedly has relationships with Shepherd Surveillance
and Winnov.  (February, 1998)

<A HREF="#Top">Return to Top</A>


Q-Team Dr. Knabe produces a Video for Windows codec known as QPEG.
Currently (6/27/97), QPEG supports 8 bit color.  Q-Team plans 16 and

Sample AVI/QPEG files and Video for Windows QPEG codecs for
Windows 3.x and Windows 95/NT are available at the Q-Team
Web site.

<A HREF="http://www.q-team.de/">http://www.q-team.de/</A>

Q-Team is also working on MPEG-4 for the PC.

<A HREF="#Top">Return to Top</A>

<A NAME="H261">

H.261 is an international standard, widely used for video conferencing
n the 128 Kbits/second to 384 Kbits/second range.  This is a block
Discrete Cosine Transform method.  Actually, H.261 was the first
nternational standard developed using the block Discrete Cosine
Transform and motion compensation.  MPEG-1, which is probably better
known, followed the H.261 effort.

<B>NOTE:</B>  I've never generated an AVI files with Intel's H.261, so it
may only be used for Intel ProShare videoconferencing and not with AVI.

Microsoft has a Microsoft H.261 Video for Windows 32 bit codec.


n Windows 95.

<A HREF="#Top">Return to Top</A>

<A NAME="H263">

H.263 is another international standard, based on the Block Discrete
Cosine Transform (DCT) and motion compensation.  H.263 has a number of
mprovements, mostly in the area of motion compensation, over the
earlier H.261 standard.  It is targeted toward very low bitrate video

Microsoft's NetShow 2.0 installs a Microsoft H.263 video codec.
Microsoft H.263 uses the Four Character Code M263.


n Windows 95.

The Microsoft H.263 video codec is one of several "keyed" codecs
nstalled by NetShow.  Others are Vivo H.263 and Duck's TrueMotion 2.0.
These codecs will not encode video as AVI files, although they
apparently will create Microsoft ASF files or provide compression for
videoconferencing.  See the section on NetShow for more information
on the NetShow video codecs.

Some versions of the msh263.drv driver will crash when trying to
encode an AVI file from VidEdit or similar applications.  Other
versions of msh263.drv don't crash but give an "Unable to begin
compression" message box.

Vivo Software Inc. markets streaming H.263 and G.723 audio for the
Web under the brand name VivoActive.  Vivo has its own file format
called .VIV which can be embedded in Web pages.  Vivo provides
a player called VivoActive player and an authoring tool for
creating .VIV files called VivoActive Producer. 

Microsoft NetShow installs a "keyed" codec that identifies itself as
Vivo H.263 Video Codec[32] which installs


n Windows 95.  Vivo H.263 uses the four character code 'VIVO'.

The Vivo Software Web Site:

<A HREF="http://www.vivo.com/">http://www.vivo.com/</A>


n Windows 95.

As of June 18, 1998, this codec could be found at:

<A HREF="http://support.intel.com/support/createshare/camerapack/CODINSTL.HTM">http://support.intel.com/support/createshare/camerapack/CODINSTL.HTM</A>

Note that Intel, like Microsoft, seems to rearrange their Web site

Unlike the keyed Microsoft H.263 video codecs, this codec can be
used to encode AVI's through Microsoft VidEdit 1.1 (and presumably
other video editing products).  How well this codec in fact
mplements the H.263 standard is not clear.

Shannon Communication Systems (SCS) has an H.263+ AVI codec and
analysis tool available for download at their Web site:

<A HREF="http://www.shansys.com/">http://www.shansys.com/</A>

Telenor R&D of Norway distributes the source code for an H.263 encoder
and decoder that will reportedly compile and run under Windows.  This
s a standalone application not a Video for Windows codec or
ActiveMovie filter.  See elsewhere in the AVI Overview for a link to
the Telenor Web site.

<A HREF="#Top">Return to Top</A>


Microsoft's NetShow 2.0 installs a Video for Windows codec for
MPEG-4.   MPEG-4 is a new international standard that has not
been officially released as yet.  Microsoft is deeply involved in
the MPEG-4 standardization effort.  Microsoft has been using
ts MPEG-4 for the Microsoft NBC Business Video broadcasting over
the Internet.

The Microsoft MPEG-4 Video for Windows Codec identifies itself
as "MPEG-4 High Speed Compressor" in Control Panel | Multimedia | 
Devices | Video Compression Codecs.

Adding to confusion in true Microsoft fashion, there are two
versions of each NetShow video codec.  The NetShow 2.0 Player (Client)
nstallation program installs codecs that provide only decoding
functionality.  The MPEG-4 video codec installed by NetShow 2.0 Player
can only play back an MPEG-4 AVI.  The MPEG-4 video codec installed by
the NetShow 2.0 Tools can encode AVI files with MPEG-4 video

nstall the NetShow 2.0 Tools, not just the NetShow 2.0 Player.

The Microsoft MPEG-4 High Speed Compressor Video Codec installed
by the NetShow 2.0 Tools will not encode arbitrary dimension
video.  The video must have the dimensions 176 x 144 (QCIF).
visible in the list of compression options only if the video
s sized to 176x144.

MPEG-4 uses the Microsoft Four Character Code (FOURCC) MPG4.


<A HREF="#Top">Return to Top</A>

<H4>Lightning Strike (Infinop)</H4>

Streaming Video.  A Lightning Strike video decoder compatible with
Microsoft NetShow can be dowloaded from the Infinop Web site.  There
are several sample Lightning Strike Video files at the Infinop

<A HREF="http://www.infinop.com/">http://www.infinop.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="VxTreme">

VxTreme was acquired by Microsoft in September of 1997.
Microsoft has invested in numerous low bitrate audio and video
companies during the second half of 1997, include VxTreme, VDONet,

Although I have not seen a Video for Windows implementation of VxTreme
(12/20/97), I thought that I should include this codec.  Undoubtedly,
t will be ported to Video for Windows and/or ActiveMovie if this has
not already happened.

VxTreme(<A HREF="http://www.vxtreme.com/">http://www.vxtreme.com/</A>
markets a video codec that is usually identified as a wavelet based

A VxTreme player, a Plug-In for Internet Explorer and Netscape, is
available at the VxTreme Web site.

VxTreme has some very impressive demos of QCIF (160x120) talking heads
material on their Web sites.  The subjective image quality during
Discrete Cosine Transform based codecs and probably VDONet's VDOWave.
Text such as movie titles and credits appears to encode very well.
Discrete Cosine Transform based encoders such as the JPEG still image
compression standard and the MPEG video compression standard.  In
edges as well.

VxTreme clearly uses some sort of motion compensation or frame
VxTreme for 28.8 Kbits/second such as the trailer for "Goldeneye".
These trailers contain many scene changes and motion.  Video quality
s poor, hardly superior to competitors such as H.261 or Microsoft's
MPEG-4.  The talking heads material at 28.8 looks almost natural.

VxTreme may be a combination of the Discrete Wavelet Transform (??)
and motion compensation.  The preservation of sharp edges suggests
the technical literature on wavelet based image and video compression.

<A HREF="#Top">Return to Top</A>

<A NAME="#Sorenson">
<H2>Sorenson Video</H2>

Sorenson Video, from Sorenson Vision, is a low bitrate video codec
that appears to be available only for Apple QuickTime as of May 10,
"Star Wars Episode I: The Phantom Menace" distributed over the Internet
as a QuickTime file in the spring of 1999.  No Video for Windows
Sorenson Video codec appears to be available.

Sorenson Video is reportedly based on some kind of vector
quantization technology that can achieve very high compression.

According to Mark Podlipec's XAnim site (May 10, 1999), he contacted
Sorenson Vision to find out if he could license Sorenson Video for
ncorporation in the XAnim Unix X11 animation, audio, and video
not allow Sorenson to license Sorenson Video to others.

<A HREF="http://www.s-vision.com/">http://www.s-vision.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="VfWInstalled">
<H2>How to determine which Video for Windows decompressors are installed on a PC?</H2>


AVI files contain a four character code (such as 'IV31' or 'CVID')
n the stream header for the video stream.  This four character
code identifies the video compressor used for the video stream.
For example, 'CVID' is the identifier for Cinepak (formerly Compact
Video) compression.

Video for Windows prefixes the four character code with VIDC. and
uses it to look up the video decompressor driver in SYSTEM.INI
ccvid.drv is the driver for Cinepak in the example above.

Note: These are 16-bit drivers.  Windows 95 adds a section [drivers32]
for 32 bit drivers.  There are 32 bit versions of the Video for
Windows drivers.  See below (and notice that the 32 bit drivers have

vidc.cvid=iccvid.dll          ; Cinepak for Windows 32


(1) Open the Control Panel

(2) Double click on the Multimedia Icon (applet)

(3) Select the "Advanced" Tab

(4) Under the Multimedia Drivers icon, double click on the Video Compression Codecs icon
to open it.  This gives a list of installed video codecs.

<A HREF="#Top">Return to Top</A>

<A NAME="WhichAVICodec">
<H3>How to determine which codec was used to compress an AVI file</H3>


A low level way to find out is to view the avi file with an editor,
for example the standard EDIT command in DOS will work.  Search for
the four character code vids (usually lower case).  vids indicates a
VIDeo Stream.  vids is immediately followed by the four character code
for the compressor used for the AVI file.  For example, a full frames
(uncompressed) AVI will contain the string:


An AVI compressed using Microsoft Video 1 will contain the string:


And so forth.

See elswhere in this overview for information on the Microsoft Four Character Codes.


Right click on the avi file's icon.

This brings up a menu of items.

Select Properties.

Click on the Details tab in the Properties sheet.

Look under Video Format in the Details.  This will list the
compression used.  The compression is identified using an explanatory
Frames/Sec, 76 KB/Sec, Uncompressed".  The Microsoft Four Character
Code is not used.

NOTE: Windows 95 needs to have the Video for Windows codec installed
to correctly identify the codec used in the AVI file.  If you have
an AVI that Windows 95 can't play because the codec is not
nstalled, you will have to use another method.

<A HREF="#Top">Return to Top</A>

<A NAME="BestCodec">
<H3>Which AVI video compressor is best?</H3>

"Best" depends on what the user is trying to do.  Selection of a
video codec depends on several variables: time to encode the video,
that can be achieved for a target subjective quality level.  The
<A HREF="#CodecPerformance">Performance of AVI Codecs</A> section gives
quality, etc. of AVI video codecs.

Cinepak is the most widely used AVI video codec.  Cinepak reportedly
originally developed for the Mac and licensed to Apple by SuperMac.

There are at least three Cinepak codecs in existence:

             Cinepak by SuperMac    (the original, 16 bit)
             Cinepak by Radius      (newer, better?, 16 bit)
             Cinepak by Radius[32]  (32 bit version of Radius Cinepak, shipped with Windows 95)

codec for superior results when generating AVI files from TrueSpace.

Cinepak is the best codec to use to insure ease of playback.  Few people
to play an AVI compressed with Cinepak.

Cinepak is based on Vector Quantization and Frame Differencing to
achieve video compression.  Other technologies such as the
Block Discrete Cosine Transform and Motion Compensation can achieve

Codecs that beat Cinepak

H.263 (probably H.261)              Block DCT/Motion Compensation
MPEG-4 Video Verification Model     Block DCT/Motion Compensation
VDONet's VDOWave                    Discrete Wavelet Transform/Motion Compensation

Although not integrated into AVI, the MPEG-1 digital video standard

The block DCT/Motion Compensation based codecs seem to perform 1.5 - 2.0
times better than Cinepak.  VDOWave, a wavelet based codec, seems somewhat
better than this.

<A HREF="#Top">Return to Top</A>

<A NAME="CodecPerformance">
<H2>Performance of AVI Codecs</H2>

<H3>How do the Video Codecs Perform on Typical Video?</H3>

To test the performance of the many Video for Windows codecs, I
created a ten second video of myself using the U.S. Robotics
Bigpicture video capture card which is based on the Brooktree Bt848
chip.  I am talking, picking up a microphone, and waving my hands
against an essentially static background.  This sequence was captured
at: 30 frames per second, 320 by 240 pixels, with 24 bit RGB color, no
frames dropped during video capture.  Note that 320 by 240, RGB 24, at 
video and to the spatial resolution and frame rates of the successful
VideoCD products based on MPEG-1 digital video compression.

A table of results follows.  Except where noted, the video
video was significantly degraded, this is noted IN CAPS.

The encoders for most codecs have an adjustable quality factor,
frequently displayed as a value between 0 and 100.  A higher quality
factor means the compressed video looks better but has a higher
bitrate, a lower compression ratio.  There is a trade-off between
quality and bitrate.  In the technical literature on image and video
compression this is known as the rate-distortion function R(D).  In
the table below, the entries give the quality factor used to encode
the test video where appropriate.


Codec                                      File Size    Compression Ratio/

Raw 24 bit RGB (Full Frames Uncompressed)  66.187 MB    1:1 / 53 Mbps
a talking head with some hand waving

Radius Cinepak (32-bit)                    6.92   MB    9.6:1 / 5.5 Mbps
Quality Factor 100, keyframe every 15 frames
Compression Technology: Vector Quantization

Quality Factor 85, keyframe every 15 frames
Compression Technology: Wavelet

Quality Factor 50, keyframe every 15 frames
Compression Technology: Wavelet

Quality Factor 25, keyframe every 30 frames
Compression Technology: Wavelet

Quality Factor 85
Compression Technology: "Hybrid Wavelet"

Quality Factor 65, keyframe every 4 frames
Compression Technology: Vector Quantization

Microsoft Video 1 (32-bit)                 3.16   MB    20.7:1 / 2.5 Mbps
Microsoft Video 1 Compressor Version 1.0

Microsoft MPEG-4 (32-bit)                  0.625  MB    105.9:1 / 500 Kbps
MPEG-4 Video High Speed Compressor
keyframe every 3600 frames
Compression Control 0
Data Rate 128 Kilobits/second
Compression Technology: Block Discrete Cosine Transform
                        Motion Compensation


keyframe every 15 frames
Quality Factor 50 %
Compression Technology: Block Discrete Cosine Transform
                        Motion Compensation

keyframe every 15 frames
Quality Factor 100 %
Compression Technology: Block Discrete Cosine Transform
                        Motion Compensation

Brooktree YUV 411 Raw                     32.6    MB    2.0:1 / 26 Mbps
BtV MediaStream
Verson: 2.01

With a 160 by 120, 30 frames per second, 239 frame (7.996) second, 24
bit color video "Space Shuttle" sequence, from a NASA promotional
video showing the launch of the space shuttle and some crowds watching
and cheering.  Here I was able to calculate and report the <A
HREF="#PSNR">Peak Signal to Noise Ratio</A> (in dB, decibels), an
objective measure of image and video quality.

Codec                         File Size           Compression Ratio/
                                                  Bitrate/<A HREF="#PSNR">PSNR</A>


Full Frames (Uncompressed)    13.1 MB             1 : 1 / 13.5 Mbps

Cinepak Codec by Radius [32]   0.85 MB            15.9 : 1 / 848 Kbps
Version                                    / 31.08 dB
Key frame every 15 frames
Quality Factor 100

Cinepak Codec by Radius[32]    0.78 MB            17.7 : 1 / 780 Kbps
Version                                    / 30.49 dB
Key Frame every 15 frames
Target Data Rate 100 KBytes/sec
Quality Factor 100

Cinepak Codec by Radius[32]    0.42 MB             32.93 : 1 / 420 Kbps
Version                                    / 27.087 dB
Key Frame every 15 frames
Target Data Rate 50 KBytes/sec
Quality Factor 100

Cinepak Codec by Radius[32]    0.23 MB            59.6 : 1 / 231 Kbps
Version                                    / 23.762 dB
Key Frame every 15 frames
Target Data Rate 25 KBytes/sec
Quality Factor 100

Key frame every 15 frames                           / 32.43 dB
Quality Factor 85

Key frame every 15 frames                           / 29.6 dB
Quality Factor 50

Key frame every 15 frames                           / 28.4 dB
Quality Factor 25

Key frame every 15 frames                           / 27.82 dB
Quality Factor 10

Key frame every 15 frames
Target Data Rate 1687 KBytes/sec
Quality Factor 85

Key frame every 15 frames
Target Data Rate DISABLED
Quality Factor 85

Key frame every 15 frames
Target Data Rate DISABLED
Quality Factor 50

Key frame every 15 frames
Target Data Rate DISABLED
Quality Factor 25

Microsoft Video 1             5.198 MB            2.7 : 1 / 5.198 Mbps
Key frame every 15 frames                           / 32.209 dB
Quality Factor 100

Microsoft Video 1             0.79 MB             17.5 : 1 / 790 Kbps
Key frame every 15 frames                           / 30.286 dB
Quality Factor 75 (DEFAULT)

Microsoft Video 1             0.17 MB            82.8 : 1 / 166 Kbps
Key frame every 15 frames                           / 23.915 dB
Quality Factor 50

Microsoft Video 1             0.08 MB            163.7 : 1 / 84 Kbps
Key frame every 15 frames                           / 18. 524 dB
Quality Factor 25

With a 160 by 120 pixel, 15 frames per second, 24 bit color version of
the "Talking Head" 10 second video sequence, created by downsampling in

Codec                          File Size           Compression Ratio/
Full Frames Uncompressed       8.53 MB             1:1 / 6.816 Mbps

Cinepak from Radius (32 bit)   1.20 MB             7.1:1 / 960 Kbps
Quality Factor 100
Keyframe every 15 frames

Quality Factor 85
Keyframe every 15 frames

Quality Factor 65
Keyframe every 4 frames

Microsoft Video 1              0.947 MB            9:1 / 758 Kbps
Quality Factor 75

Quality Factor 85
Keyframe every 15 frames

Quality Factor 50
Keyframe every 15 frames

Quality Factor 25
No fixed keyframes

Brooktree YUV 411 Raw          4.42 MB             1.9:1 / 3.536 Mbps

<A HREF="#Top">Return to Top</A>

<A NAME="QTCodec">
<H2>Which Video for Windows Codecs are Available for QuickTime on Apple Macintosh?</H2>

As of June 24, 1998, this is an incomplete list:

Cinepak (formerly Apple Compact Video)

The Video for Windows 1.1 Apple Macintosh utilities include
QuickTime system extensions for:

Microsoft Video 1
Microsoft Full Frames (uncompressed)
Microsoft RLE (Run Length Encoding)

<A HREF="http://developer.intel.com/ial/indeo/video/driver.htm">

As of June 24, 1998 Intel did NOT provide QuickTime versions
of Indeo 4.x or 5.x for the Apple Macintosh.  Intel did provide
a version of Indeo 4.4 for QuickTime for Windows.

<A HREF="#Top">Return to Top</A>

<A NAME="FourCC">
<H2>Microsoft Four Character Codes (FOURCC)</H2>
A Four Character Code or FOURCC is a four byte code defined by
Microsoft as part of Video for Windows to identify various types
of video data.

Microsoft defined FOURCC's to uniquely identify pixel layouts and
video compressor types in Video for Windows.  For example, the FOURCC
'CVID' identifies the Cinepak (formerly Compact Video) video
compressor.  AVI files contain the FOURCC for the video compressor in the
video stream header.  

used in uncompressed images and video.  For example, codes such as
'YUY2' identify layouts of pixels in YUV space (as opposed to RGB).
These codes are used in interfacing with graphics cards.  For example,
the S3 ViRGE/VX chip supports the YUY2 pixel layout. YUY2 is popular
because it refers to the 4:2:2 format used in <A
HREF="#CCIR601">CCIR-601</A> (D1) digital video.

Video for Windows, Display Control Interface (DCI), and Direct Draw 
all use FOURCC's.  

(This is followed by a list of Codes Registered with Microsoft)

DIB                    Full Frames (Uncompressed)
RGB                    Full Frames (Uncompressed)
RAW                    Full Frames (Uncompressed)

    0x00000000 indicates the hexadecimal value of the Four Character
Code is zero.  A Four Character Code 'AAAA' has hexadecimal value

    Some video capture and editing products will use the non-standard
FOURCC 0x00000000 for uncompressed AVI video instead of the easier to
understand 'DIB ' or 'RGB ' or 'RAW '.

MSVC or CRAM or WHAM   Microsoft Video 1
MRLE                   Microsoft Run Length Encoding
CVID                   Cinepak (Radius)
ULTI                   Ultimotion (IBM)
MJPG                   Motion JPEG  (Microsoft, Paradigm Matrix, video capture companies)
CYUV                   Creative YUV
YVU9                   Intel Indeo Raw YUV9
MPGI                   Editable MPEG (Sigma Designs)

VIXL                   miro Video XL
MVI1                   Motion Pixels
SPIG                   Radius Spigot
TMOT                   Duck TrueMotion S

DMB1                   Custom Format Used by Matrox Rainbow Runner. This
                       appears to be a type of Motion JPEG

UCOD                   ClearVideo (Iterated Systems)
VDOW                   VDOWave (VDONet)
SFMC                   Surface Fitting Method (CrystalNet)
QPEG                   Q-Team Dr.Knabe 's QPEG video compressor
H261                   H.261
M261                   Microsoft H.261
VIVO                   Vivo H.263
M263                   Microsoft H.263
MPG4                   Microsoft MPEG-4


Compressor Code  Description 

ANIM  Intel - RDX 
AUR2  AuraVision - Aura 2 Codec - YUV 422 
AURA  AuraVision - Aura 1 Codec - YUV 411 
BT20  Brooktree - MediaStream codec 
BTCV  Brooktree - Composite Video codec 
CC12  Intel - YUV12 codec 
CDVC  Canopus - DV codec 
CPLA  Weitek - 4:2:0 YUV Planar 
CVID  Supermac - Cinepak  
CWLT  reserved 
DUCK  Duck Corp. - TrueMotion 1.0 
DVE2  InSoft - DVE-2 Videoconferencing codec 
DXT1  reserved 
DXT2  reserved 
DXT3  reserved 
DXT4  reserved 
DXT5  reserved 
DXTC  DirectX Texture Compression 
FLJP  D-Vision - Field Encoded Motion JPEG With LSI Bitstream Format 
GWLT  reserved 
H260  Intel - Conferencing codec 
H261  Intel - Conferencing codec 
H262  Intel - Conferencing codec 
H263  Intel - Conferencing codec 
H264  Intel - Conferencing codec 
H265  Intel - Conferencing codec 
H266  Intel - Conferencing codec 
H267  Intel - Conferencing codec 
H268  Intel - Conferencing codec 
H269  Intel - Conferencing codec 
MP42  Microsoft - MPEG-4 Video Codec V2 
MPEG  Chromatic - MPEG 1 Video I Frame 
MRCA  FAST Multimedia - Mrcodec 
MRLE  Microsoft - Run Length Encoding 
MSVC  Microsoft - Video 1 
NTN1  Nogatech - Video Compression 1 
qpeq  Q-Team - QPEG 1.1 Format video codec 
RGBT  Computer Concepts - 32 bit support 
RT21  Intel - Indeo 2.1 codec 
RVX  Intel - RDX 
SDCC  Sun Communications - Digital Camera Codec 
SFMC  Crystal Net - SFM Codec 
SMSC  Radius - proprietary 
SMSD  Radius - proprietary 
SPLC  Splash Studios - ACM audio codec 
SQZ2  Microsoft - VXtreme Video Codec V2 
SV10  Sorenson - Video R1 
TLMS  TeraLogic - Motion Intraframe Codec 
TLST  TeraLogic - Motion Intraframe Codec 
TM20  Duck Corp. - TrueMotion 2.0 
TMIC  TeraLogic - Motion Intraframe Codec 
TMOT  Horizons Technology - TrueMotion Video Compression Algorithm 
TR20  Duck Corp. - TrueMotion RT 2.0 
V422  Vitec Multimedia - 24 bit YUV 4:2:2 format (CCIR 601). 
For this format, 2 consecutive pixels are represented by a 32 bit (4 byte) Y1UY2V color value. 
V655  Vitec Multimedia - 16 bit YUV 4:2:2 format. 
VCR1  ATI - VCR 1.0 
VIVO  Vivo - H.263 Video Codec 
VIXL  Miro Computer Products AG - for use with the Miro line of capture cards. 
VLV1  Videologic - VLCAP.DRV 
WBVC  Winbond Electronics - W9960 
YC12  Intel - YUV12 codec 
YUV9  Intel - YUV9 
YUYV  Canopus - YUYV compressor 
ZPEG  Metheus - Video Zipper 

The following list shows the FOURCC values for DIB compression.

Compressor Code  Description 
CYUV  Creative Labs, Inc - Creative Labs YUV 
FVF1  Iterated Systems, Inc. - Fractal Video Frame 
JPEG  Microsoft - Still Image JPEG DIB 
MJPG  Microsoft - Motion JPEG DIB Format 
ULTI  IBM - Ultimotion 
VDCT  Vitec Multimedia - Video Maker Pro DIB 
VIDS  Vitec Multimedia - YUV 4:2:2 CCIR 601 for V422 
YU92  Intel - YUV 

Extensive information on Microsoft's Four Character Codes (FOURCC) may be
found at 

<A HREF="http://www.webartz.com/fourcc">Dave Wilson's The Almost Definitive FOURCC 
Definition List</A>

Microsoft maintains a web page of FOURCC's for video, both pixel
layouts and compression, with the FOURCC's registered with Microsoft.

<A HREF="http://www.microsoft.com/hwdev/devdes/fourcc.htm">http://www.microsoft.com/hwdev/devdes/fourcc.htm</A>

Microsoft has defined 128-bit (16 byte) identifiers known as
Globally Unique Identifiers (GUIDs) to identify virtually everything
n the Microsoft Universe.  Microsoft has defined mappings from
the Four Character Codes used for video and audio codecs to GUID's.

<A HREF="#FOURCCGUID">GUIDs for Video for Windows Codecs</A>

<A HREF="#Top">Return to Top</A>

<H2>Video Compression Technologies</H2>

There are several underlying technologies used by different Video for
Windows Codecs.  For example, Indeo 3.2 and Cinepak both use Vector
Quantization.  The international standards MPEG-1, MPEG-2, MPEG-4,
H.261, and H.263 all use a combination of the block Discrete Cosine
Transform (DCT) and motion estimation/compensation.  Several of the
New Wave codecs use wavelet transform based image compression (the
Discrete Wavelet Transform or DWT).  Other technologies include
Fractal Image Compression, represented by Iterated Systems.

Some general comments on image and video compression:

(1) Image compression may be lossless where no information is
lost during the compression process.  The image produced by
the decompression (also known as decoding) process is identical
bit by bit with the original image.  The widely used GIF format
s a lossless image and video (GIF89a or animated GIF) compression


(2) Image compression may be lossy where information is lost during
the compression process.  These schemes exploit limitations of the
eye.  Even though two images are different at the bit by bit level, the
the human eye but acceptable.  Some errors are detectable and very
annoying.  The widely used JPEG image compression standard is a lossy
compression scheme.


(3) Within lossy image and video compression, a compression scheme may
be perceptually lossless, in which case the human viewer cannot 
compressed image or video which has errors introduced by the lossy
compression.  Most lossy image and video compression have some sort of
quality factor or factors.  If the quality is good enough, then the image will
be perceptually lossless.

(3) JPEG's and MPEG's and other lossy compression of images and video
are often compressed beyond the point of perceptual losslessness, but
the compressed images and video are still acceptable to the human viewer.
s very similar or identical to the natural degradation of images that might
occur in the world then the human visual system will not object greatly.

Loss of fine detail in an image is often acceptable because humans
The human viewer sees less detail if an object is further away.
When a human viewer looks directly at an object, the viewer uses a
forms of degradation such as rain, snow, and fog.

Note that in all these natural viewing situation, the human viewer
the level of detail.  The human viewer will usually perceive the
objects as the same object despite the variations in level of detail.
A horse is a horse is a horse.


(4) Sufficiently low quality lossy compression will introduce visual
artifacts that are highly annoying to the human viewer.  An example
s the blocking artifacts visible in highly compressed MPEG video and
other block Discrete Cosine Transform based image compression codecs.
At some point the lossy compression will introduce artifacts that are
very unnatural and are perceived as new objects in the scene or spurious
lines within the image. 

The human visual system is very sensitive to lines or edges.  One of its
main functions appears to be to detect and characterize physical
objects such as other people, potential threats such as predators, food
edges.  Anything such as a codec algorithm that destroys or creates an
edge in an image is noticed, particularly if the edge is interpreted as
the border of an object by the human visual and cognitive system.


All of the widely used video codecs are lossy compression algorithms.
At sufficiently high compression most of them will have problems with the
edges in the image.  Vector quantization, block Discrete Cosine Transform,
and wavelet based image and video compression inherently do not 
mathematically represent the intuitive notion of an edge or line.

THE POINT:  In using and selecting video codecs, the author of an
AVI file (or a compressed digital video in general) needs to achieve
NATURALLY LOSSY COMPRESSION or better.  Once the compression 
ntroduces noticable AND unnatural artifacts, the video is of very
limited use even in cases where some features and objects are 

A basic description of video compression technologies follows.  I have
tried to avoid the dense mathematics found in most of the technical
video and image compression literature.

<A HREF="#Top">Return to Top</A>

<H3>Run Length Encoding</H3>


Microsoft RLE (MRLE)

Run length encoding is also used to encode the DCT coefficients in
the block Discrete Cosine Transform (DCT) based international



Run length encoding encodes a sequence or run of consecutive

For example, the sequence of pixels

could be coded as

Run length encoding can work well for bi-level images (e.g.
black and white text or graphics) and for 8 bit images, particularly
mages such as cel animations which contain many runs of the same

Run length encoding does not work well for 24 bit natural images
n general.  Runs of the same color are not that common.

<A HREF="#Top">Return to Top</A>

<H3>Vector Quantization</H3>



for example).


be done in real time without dedicated hardware.

Transform based image compression methods can achieve higher compression.


The basic idea of Vector Quantization based image compression is to
Cinepak).  Typically, some blocks (hopefully many) are similar to
other blocks although usually not identical.  The encoder identifies a
class of similar blocks and replaced these with a "generic" block
lookup table that maps short binary codes to the "generic" blocks.
Typically, the shortest binary codes represent the most common classes
of blocks in the image.

The Vector Quantization (VQ) decoder uses the lookup table to assemble
an approximate image comprised of the "generic" blocks in the lookup

Note that this is inherently a lossy compression process because the
actual blocks are replaced with a generic block that is a "good
enough" approximation to the original block.

The encoding process is slow and computationally intensive because the
encoder must accumulate statistics on the frequency of blocks and
calculate the similarity of blocks in order to build the lookup table.

The decoding process is very quick because it is lookup table based.
The binary codes that index into the table may be called codewords.

Higher compression is achieved by making the lookup table smaller,
fewer classes of similar blocks in the image.  The quality of the

Vector Quantization is prone to blocking artifacts as compression is increased.

Vector Quantization is an entire sub-field in signal and image
s applied to other uses than video compression.

The standard reference book on Vector Quantization is:

Vector Quantization and Signal Compression
A. Gersho and R. Gray
Boston, MA : Kluwer, 1992

Like many image and signal processing books, this is heavy on
abstract math.

<H4>A Simple Example</H4>

Consider the following 4 by 4 blocks of pixels.  Each pixel has a value
n the range of 0-255.  This is a grayscale image for simplicity.

(Block 1)

(Block 2)

(Block 3)

The second and third blocks could be safely replaced by the first
block.  By itself, this does not compress the image.  However, the
a lookup table of 4x4 blocks.  For example, the index, in this case,
could be 1.

Lookup Table[1] = 128 128 128 128
                  128 128 128 128
                  128 128 128 128
                  128 128 128 128

The original image could be converted into a lookup table and a series
of indexes into the lookup table, achieving substantial compression.
a single frame.

<A HREF="#Top">Return to Top</A>

<H3>Discrete Cosine Transform</H3>


Motion JPEG
Editable MPEG


to implement in real time on general purpose CPU's as opposed to


   The Discrete Cosine Transform (DCT) is a widely used transform in
mage compression.  The JPEG still image compression standard, the
H.261 (p*64) video-conferencing standard, the H.263 video-conferencing
s applied to 8 by 8 blocks of pixels in the image that is compressed.
The 64 (8x8 = 64) coefficients produced by the DCT are then quantized
to provide the actual compression.  In typical images, most DCT
coefficients from a DCT on an 8 by 8 block of pixels are small and
become zero after quantization.  This property of the DCT on real world
mages is critical to the compression schemes.

   In addition, the human eyes are less sensitive to the high frequency
components of the image represented by the higher DCT coefficients.
A large quantization factor can and usually is applied to these
matrix (a matrix of 64 quantization factors, one for each of the 64
DCT coefficients) in the JPEG standard has higher quantization factors
for higher frequency DCT coefficients.

   The quantized DCT coefficients are then run-length encoded as variable
length codes that indicate some number of zero coefficients followed by
a non-zero coefficient.  For example, a run-length code might indicate
variable length codes (e.g. 0110) are used for common combinations of
length codes (e.g. 0000001101) are used for less common combinations of

   The Discrete Cosine Transform itself is best explained as a 1 dimensional
(1D) DCT first.  The 2D DCT is equivalent to performing a 1D DCT on each

   The one dimensional Discrete Cosine Transform is applied to a block of
N samples (pixels in an image or sound pressure samples in an audio file).
The Discrete Cosine Transform is an NxN matrix whose rows are sampled
cosine functions:

            DCT(m,n) = sqrt( (1 - delta(m,1) ) / N )

                            * cos( (pi/N) * (n - 1/2) *  (m-1) )


                          DCT(m,n) is the 1D DCT Matrix
                          m,n = 1,...,N
                          pi = 3.14159267...
                          N = number of samples in block
                          delta(m,1) = 1 if m is 1
                                       0 otherwise
                          cos(x) = cosine of x (radians)
                          *      = multiply

   Naively, performing a DCT on a block of N samples would require
N*N multiplies and adds.  However, the DCT matrix has
a recursive structure that allows implementation with order
N log(N) multiplies and adds (many fewer).  This makes the DCT practical
for implementation on current CPUs and DSPs.  

<A HREF="#Top">Return to Top</A>

<H3>Discrete Wavelet Transform (DWT)</H3>

Video Codecs Using the Discrete Wavelet Transform:

VDONet's VDOWave
(possibly) Intel Indeo 4.x


Discrete Wavelet Transform does not exhibit the blocking, also known
as tiling, artifacts seen with the block Discrete Cosine Transform.

compression if evaluated using the Peak Signal to Noise Ratio (PSNR)
or Mean Squared Error (MSE) metric (these are mathematically

DWT can appear better than block DCT methods for the same
compression ratio.

at sharp edges as compression increases.  This is an inherent
are also known as contouring, mosquito noise, and the Gibbs effect.


The Discrete Wavelet Transform essentially consists of passing a
and a high pass filter.  The low pass filter yields a coarse or low
added detail or difference signal.  The outputs of the two filters are
then downsampled by two.  Thus, at this point the downsampled outputs
the two filters are selected so that when the upsampled output of the
low pass filter is added to the upsampled output of the high pass
filter, the original signal is reproduced.

The output of the high pass filter, the added detail signal, may then be fed
nto another pair of filters and the process repeated.

A simple example of the discrete wavelet transform is the Haar

The input signal is x[n], a series of samples indexed by n. 

Haar Low Pass Filter (the average of two successive samples)

Haar High Pass Filter (the difference of two successive samples)

Note that:

x[n] = g[n] - h[n]

x[n+1] = g[n] + h[n]

The output sequences g[n] and h[n] contain redundant information.  
One can safely downsample by two, that is omit the even or odd
Usually the odd samples are omitted.

The complete input signal x[n] can be reproduced from


x[0] = g[0] - h[0]
x[1] = g[0] + h[0]

x[2] = g[2] - h[2]
x[3] = g[2] + h[2]

and so on.

The output of the low pass filter is a coarse approximation of the
original input signal.  When the input signal is an image, this
means a - sometimes blurry - low resolution version of the original image.

The output of the high pass filter is an added detail or difference
original input signal is exactly reproduced.

The coarse approximation is sometimes called a base layer and the 
added detail is sometimes called an enhancement layer.

The output of the high pass filter, h[n], can be fed into another
used in wavelet image and video compression iterate the process many

So far, no compression has occured.  The transform produces the same
number of bits as the input signal.

The output values are called transform coefficients or wavelet transform

The Haar wavelet is used primarily for illustrative purposes.  More
complex filters are used for most real wavelet implementations.

Compression is typically achieved by applying some form of quantization,
n more complex implementations, to the added detail signals.  Some type of
<A HREF="#Entropy">entropy coding</A> may be applied to the quantized
transform coefficients.

For example, in the crude Haar wavelet example, the input signal x[n]
might be a series of 8 bit samples such as a raster scan of a gray
low pass filter, g[n].  However, use only 6 bits (divide by 4) for the
output of the high pass filter, h[n] - the detail signal.  This is
the Haar case will tend to be peaked toward zero, that is small
coefficients will be more common than large coefficients.  Thus, some
form of <A HREF="#Entropy">entropy coding</A> of the detail signal

to or the same as g[n-1].  Objects tend to
constant color level or a complex periodic or quasi-periodic

For image coding, the notion is that the human visual system is less
Thus quantization can be applied to the detail signals more strongly.

<A HREF="#Top">Return to Top</A>

<A NAME="Contour">
<H3>Contour-Based Image Coding</H3>

Video Codecs Using Contour-Based Image Coding:

Crystal Net's Surface Fitting Method (SFM) may be an example of
Contour-Based Image Coding.

The emerging ISO standard MPEG-4 incorporates some ideas associated


A contour is a line representing the outline of a figure, body, or
mass.  A texture is a representation of the structure of a surface.
Contour-based image coding represents images as contours bounding
textured regions.  Since contours frequently correspond to the boundaries
of objects in a scene there is a close relationship between 
contour-based image coding and object-based image coding.  Object-based
mage coding represents an image as a collection of objects.

For example, once contours and textures have been extracted from an
mage, the contours can be encoded as the control points of a spline -
a polynomial function used to represent curves - fitted to the
contour.  The textures can be encoded as the transform coefficients
from a spatial frequency transform such as the Discrete Cosine
Transform or the many variants of the Discrete Wavelet Transform.
Compression can be achieved through <A HREF="#Entropy">entropy
coding</A> of scalar or vector quantization of the control parameters
of the spline and the transform coeffecients used for the texture.

Contour-Based Image Coding is a very leading edge image coding
technology (May, 1999).  Extracting contours, also known as
edge or line detection, remains an unsolved problem in computer
s not a contour or line in a scene, computer algorithms - so far -
miss some contours, as defined by humans, and also find spurious
contours, as defined by humans.  Extracting contours is one of a number
of pattern recognition and reasoning tasks that seem almost effortless
n humans but have proven difficult - impossible so far - to emulate

A number of edge detection and image segmentation algorithms exist that
could be applied to the contour extraction in contour-based image

Transform (JPEG, MPEG, H.261, H.263, DV, etc.) and the Discrete
Wavelet Transform (Intel Indeo, VDONet VDOWave, etc.) encounter at

<H3>Frame Differencing</H3>




of individual frames.


Frame Differencing exploits the fact that little changes from frame to
frame in many video or animation sequences.  For example, a video
might show a ball flying through the air in front of a static
background.  Most of the image, the background, does not change from
frame to subsequent frame in the scene.

vector quantization is applied to the difference between the frame and
the decoded previous frame.  Often, most of the difference is zero or

Most often, frame differencing uses "key frames" which are frames
compressed without reference to a previous frame.  This limits accumulated
errors and enables seeking within the video stream.

Cinepak movies usually use frame differencing combined with vector

visible.  This necessitates key frames!

<A HREF="#Top">Return to Top</A>

<A NAME="Motion">
<H3>Motion Compensation</H3>


ClearVideo (RealVideo) Fractal Video Codec from Iterated Systems
VDOWave from VDONet
MPEG-1,2, and 4


estimation) is computationally intensive.  MPEG-1 with IP and
B frames cannot be encoded in real time without dedicated

limited motion such as talking heads.  In general, video with
motion compensation.


Motion Compensation codes for motion within a scene such as a ball
moving across a background.  The block Discrete Cosine Transform (DCT)
based international video standards MPEG-1, MPEG-2, MPEG-4, H.261, and
H.263 use motion compensation.  Iterated Systems ClearVideo (Real
Video) fractal Video Codec, VDOWave from VDONet, and VxTreme's video
codec use forms of motion compensation.

Motion Compensation refers to a number of ideas and algorithms.  The
motion compensation method used in MPEG and related international
compensation works for translational motion only.  This is suited for
objects moving across a background or panning of the camera.  It does
not work well for spinning objects, resizing objects, or camera zooms.
Alternative forms of motion compensation exist which handle

Recognizing objects such as a flying ball in a scene is an unsolved
the motion of the ball to achieve image compression is to partition the
mage into blocks (16x16 pixels in MPEG-1).  Code a "motion vector" for
each block which points to the 16x16 pixel block in a previous (or
future) frame that most closely approximates the block being coded.
The encoder need not recognize the presence of a ball or other object, only
compare blocks of pixels in the decoded and reference frames.


Note that the reference block can be anywhere in the image.  The coded
or "predicted" blocks must form a partition or tiling of the image (frame)
being decoded.  A reference block can be any 16x16 pixel block in 
the reference frame (image) that most closely approximates the coded
or "predicted" block.  The reference frame must be decoded prior to
the current frame being decoded.

However, the reference frame need not be PRESENTED before the current
frame being decoded.  In fact, the reference frame could be a future
frame!!  MPEG allows for this through so-called B (bi-directionally

occurs in most of the blocks.  For these cases, the motion vectors
are zero.  Motion compensation for these blocks is then equivalent
to frame differencing, where the difference between the block and the

For the block or blocks containing the moving ball, the motion vectors
that contains the ball.  The displaced block is subtracted from
the current block.  In general, there will be some left over non-zero
values, which are then coded using the still image compression scheme
the Discrete Wavelet Transform.

MPEG style motion compensation does not require recognition of the
ball.  An encoder simply compares the block being coded with displaced
blocks in the reference frame (a previous or future frame).  The
comparison can use mean squared error or some other metric of
encoder recognized an object in the image.

The encoding process is called Motion Estimation.  This finds the
motion vector (or vectors) for each block.

The decoding process is called Motion Compensation.

Motion Compensation achieves greater compression than simple Frame

  Predicted Region                        Reference Region
(the current frame being decoded)       (a previously decoded frame)
  _________                              _________
 |    |    |                            |    |    |
 | *  |    |                            |    | *  |  (moving ball)
 | 4  | -4 |                            |    |    |
 |    |    |                            |    |    |
  _________                              _________
 |    |    |                            |    |    |
 | 0  | 0  |                            |    |    |  (no change)
 |    |    |                            |    |    |
 |    |    |                            |    |    |
  _________                              _________

The asterisk (*) represents a ball flying across the scene from right
to left.  

Four blocks with associated motion vectors (4, -4, 0, and 0).  The
upper left block looks like the upper right block in the reference
upper left region in the reference region.  The lower left and
lower right blocks were unchanged.  In this simple example, the
vertical displacement is zero and is ignored.  

motion vectors alone.  In more general cases, there is an 
error between the frame predicted using motion vectors alone
and the actual frame.  This error is coded using a still image
compression scheme such as the block Discrete Cosine Transform (DCT).

n mind the distinction between decode order and presentation order.
The reference frame could be a future frame.

<A HREF="#Top">Return to Top</A>

<H3>Audio Codecs</H3>

The sound tracks in an AVI file are Microsoft Waveform Audio (WAV) files.
The Waveform Audio files can be uncompressed PCM (Pulse Code Modulated) audio
or compressed with many different audio codecs (compressor/decompressors).

The windows multimedia system uses the terms WAVE or waveform audio to
to notes of music as in MIDI, another type of audio incorporated in
the Windows multimedia system.

The WAV, WAVE, or waveform audio system (different authors use all
three to refer to the Microsoft Windows audio system) predates
Video for Windows.  Video for Windows was wrapped around
WAVE.  Various compromises were made to insure backward compatibility
n mind as there are various differences between the audio

To play a waveform audio (WAV) file or the sound track of an AVI
compressed with a codec, the codec must be installed in the Audio
Compression Manager under Windows.  Windows PCM files (uncompressed)
are always supported.  The Audio Compression Manager (ACM) is the

Different audio codecs are identified with different waveform audio
tags, 32 bit numbers.  Wave audio format tags are registered with

The following list of registered wave audio formats if from the
mmreg.h file in the Win32 SDK.  mmreg.h is the Registered Multimedia

/* WAVE form wFormatTag IDs */
#define  WAVE_FORMAT_UNKNOWN    0x0000  /*  Microsoft Corporation  */
#define  WAVE_FORMAT_ADPCM      0x0002  /*  Microsoft Corporation  */
#define  WAVE_FORMAT_IBM_CVSD   0x0005  /*  IBM Corporation  */
#define  WAVE_FORMAT_ALAW       0x0006  /*  Microsoft Corporation  */
#define  WAVE_FORMAT_MULAW      0x0007  /*  Microsoft Corporation  */
#define  WAVE_FORMAT_OKI_ADPCM  0x0010  /*  OKI  */
#define  WAVE_FORMAT_DVI_ADPCM  0x0011  /*  Intel Corporation  */
#define  WAVE_FORMAT_IMA_ADPCM  (WAVE_FORMAT_DVI_ADPCM) /*  Intel Corporation  */
#define  WAVE_FORMAT_MEDIASPACE_ADPCM   0x0012  /*  Videologic  */
#define  WAVE_FORMAT_SIERRA_ADPCM       0x0013  /*  Sierra Semiconductor Corp  */
#define  WAVE_FORMAT_G723_ADPCM 0x0014  /*  Antex Electronics Corporation  */
#define  WAVE_FORMAT_DIGISTD    0x0015  /*  DSP Solutions, Inc.  */
#define  WAVE_FORMAT_DIGIFIX    0x0016  /*  DSP Solutions, Inc.  */
#define  WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017  /*  Dialogic Corporation  */
#define  WAVE_FORMAT_YAMAHA_ADPCM       0x0020  /*  Yamaha Corporation of America  */
#define  WAVE_FORMAT_SONARC     0x0021  /*  Speech Compression  */
#define  WAVE_FORMAT_DSPGROUP_TRUESPEECH        0x0022  /*  DSP Group, Inc  */
#define  WAVE_FORMAT_ECHOSC1    0x0023  /*  Echo Speech Corporation  */
#define  WAVE_FORMAT_AUDIOFILE_AF36     0x0024  /*    */
#define  WAVE_FORMAT_APTX       0x0025  /*  Audio Processing Technology  */
#define  WAVE_FORMAT_AUDIOFILE_AF10     0x0026  /*    */
#define  WAVE_FORMAT_DOLBY_AC2  0x0030  /*  Dolby Laboratories  */
#define  WAVE_FORMAT_GSM610     0x0031  /*  Microsoft Corporation  */
#define  WAVE_FORMAT_ANTEX_ADPCME       0x0033  /*  Antex Electronics Corporation  */
#define  WAVE_FORMAT_CONTROL_RES_VQLPC  0x0034  /*  Control Resources Limited  */
#define  WAVE_FORMAT_DIGIREAL   0x0035  /*  DSP Solutions, Inc.  */
#define  WAVE_FORMAT_DIGIADPCM  0x0036  /*  DSP Solutions, Inc.  */
#define  WAVE_FORMAT_CONTROL_RES_CR10   0x0037  /*  Control Resources Limited  */
#define  WAVE_FORMAT_NMS_VBXADPCM       0x0038  /*  Natural MicroSystems  */
#define  WAVE_FORMAT_CS_IMAADPCM 0x0039 /* Crystal Semiconductor IMA ADPCM */
#define  WAVE_FORMAT_G721_ADPCM 0x0040  /*  Antex Electronics Corporation  */
#define  WAVE_FORMAT_MPEG       0x0050  /*  Microsoft Corporation  */
#define  WAVE_FORMAT_CREATIVE_ADPCM     0x0200  /*  Creative Labs, Inc  */
#define  WAVE_FORMAT_CREATIVE_FASTSPEECH8       0x0202  /*  Creative Labs, Inc  */
#define  WAVE_FORMAT_CREATIVE_FASTSPEECH10      0x0203  /*  Creative Labs, Inc  */
#define  WAVE_FORMAT_FM_TOWNS_SND       0x0300  /*  Fujitsu Corp.  */
#define  WAVE_FORMAT_OLIGSM     0x1000  /*  Ing C. Olivetti & C., S.p.A.  */
#define  WAVE_FORMAT_OLIADPCM   0x1001  /*  Ing C. Olivetti & C., S.p.A.  */
#define  WAVE_FORMAT_OLICELP    0x1002  /*  Ing C. Olivetti & C., S.p.A.  */
#define  WAVE_FORMAT_OLISBC     0x1003  /*  Ing C. Olivetti & C., S.p.A.  */
#define  WAVE_FORMAT_OLIOPR     0x1004  /*  Ing C. Olivetti & C., S.p.A.  */

//  the WAVE_FORMAT_DEVELOPMENT format tag can be used during the
//  development phase of a new wave format.  Before shipping, you MUST
//  acquire an official format tag from Microsoft.

<A HREF="#Top">Return to Top</A>

<A NAME="ACMInstalled">
<H3>How to determine which Audio Codecs are Installed</H3>

View the SYSTEM.INI file.  In Windows 95, 32 bit Audio Codecs are
listed in the [drivers32] section.


The string msacm stands for Microsoft Audio Compression Manager (ACM).
This is the system software component that manages audio codecs (and
other audio components) in 16 bit Windows and in Win32.  The different
codecs are identified by a string of arbitrary length such as msnaudio
for Microsoft Network Audio.  Note that this differs from Video for
Windows where everything is a Four Character Code.

The audio codecs in the example above were installed in Windows 95 by
Microsoft's NetShow streaming audio/video product.

The Audio Compression Manager (ACM) is in the process of being displaced by

(1) Open the Control Panel

(2) Double Click on the Multimedia Icon

(3) Select the Advanced tab 

(4) Under the Multimedia Drivers icon, double click on the Audio
Compression Codecs icon to see a list of installed audio codecs.  This
nformation is the same as the information stored in the SYSTEM.INI
file (see above).

<A HREF="#Top">Return to Top</A>

<A NAME="ActiveMovie">

Active Movie is a new multimedia architecture for Windows 95 and
Windows NT (4.0 and after).  ActiveMovie includes support for
apparently intended to supersede Video for Windows.

ActiveMovie 1.0 ships with the OEM Service Release 2 (OSR2) of Windows 95.

ActiveMovie 1.0 is also bundled with Microsoft's Internet Explorer for
Windows 95 and NT 4.0  Internet Explorer can be downloaded from the
Microsoft Web site at:

<A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>

Active Movie 1.0 can be downloaded by itself from the Microsoft Internet
Explorer site.  (6/6/97)

ActiveMovie 1.0 appears to be a 32 bit software component that runs
under both Windows 95 and Windows NT 4.0 user mode.  

ActiveMovie provides at least three different programming

               - The ActiveMovie ActiveX Control
               - ActiveMovie Component Object Model (COM) interfaces
               - The OM-1 MPEG MCI (Media Control Interface) command set

Amongst other things, the ActiveMovie ActiveX Control can be embedded
n HTML Web pages and programmed via VBScript or JavaScript.  It can also
be programmed using Visual C++ or Visual Basic as part of applications.

The ActiveMovie COM interaces can be accessed through Visual C++ or
Visual Basic.

ActiveMovie supports a subset of the Media Control Interface (MCI)
commands familiar to Video for Windows programmers.  These commands can
be accessed through the mciSendCommand(...) and mciSendString(...)
functions in C/C++.

ActiveMovie 1.0 does NOT provide video capture.  Windows 95 with
ActiveMovie 1.0 continues to use the Video for Windows video capture system
and drivers.

ActiveMovie 2.0 (renamed DirectShow in 1997) will provide a new,
alternative mechanism for video capture.  According to information
(formerly Windows 97) and Windows NT 5.0 to implement video capture.
This is subject to possible change since neither Memphis nor NT 5.0

Extensive information on ActiveX and ActiveMovie is available at the
Microsoft Web site.

ActiveMovie 1.0 SDK Documentation at (6/28/97):


<A HREF="#Top">Return to Top</A>

<H2>GUID's and AVI</H2>

GUID stands for Global Unique IDentifier.

Classes), OLE (Object Linking Embedding), ActiveX, ActiveMovie and
everything else Microsoft is hawking lately, a GUID is a 16 byte or

Within ActiveMovie, there are GUID's for video formats, corresponding
to the FOURCC's or Four Character Codes used in Video for Windows.
These are specified in the file uuids.h in the Active Movie Software
Developer Kit (SDK).  ActiveMovie needs to pass around GUID's that
correspond to the FOURCC for the video in an AVI file.

With proper programming, this should be hidden from end users but
ActiveMovie programmers need to know about GUID's.

<A HREF="#Top">Return to Top</A>

<H2>What are the GUIDs for the Video for Windows Codecs?</H2>

Video for Windows codecs are identified by a thirty-two bit Four
Character Code (FOURCC).  A Four Character Code is a thirty-two bit
value formed from the ASCII codes for four characters.  Typically, the
four characters are a memnonic for the item identified. For example,
the popular Cinepak video codec is 'CVID'.

Microsoft has introduced 128-bit (16 byte) Globally Unique
Microsoft Universe.  Microsoft has established a mapping
GUIDs for video codecs.  Replace the "x"'s in the GUID
below with the 32-bit value built from the Four Character
Code. The Four Character Code is in 7-bit ASCII.


For example, the GUID for Radius Cinepak is:

Note that the order of the characters is reversed from 
naive expectation.

<A HREF="#Top">Return to Top</A>

<A NAME="DirectShow">

DirectShow is Microsoft's new name for ActiveMovie 2.0  Microsoft

Apparently DirectShow (ActiveMovie 2.0) will be released to the general

<A HREF="#Top">Return to Top</A>

<A NAME="DirectDraw">

DirectDraw, one of the components of DirectX, is a new Applications
other hardware features in video display cards.  Direct Draw also

DirectDraw consists of a new API and new hardware drivers known as
the Direct Draw Hardware Abstraction Layer (HAL).  

video device driver and copies the image from main memory to the video
memory of the video card.  This multiple copying of the image
nevitably slows down the display.

The DirectDraw API provides a mechanism allowing appliation programs
to write directly into the video card's memory.  It also provides a
mechanism to access various special features in video cards such as
color space conversion, hardware scaling, z-buffering, alpha blending,
and so forth.

Video card manufacturers must provide a DirectDraw driver for DirectDraw
to work with their card.  

Microsoft's ActiveMovie uses DirectDraw to achieve faster playback of
AVI, QuickTime, and MPEG files.

There is extensive information on the DirectDraw and DirectX API's at the
Microsoft Web site.

The DirectX 3 SDK can be downloaded from the Microsoft Developer
Online Web site (6/28/97):

<A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>

Select Microsoft SDKs from the Technical Information section, or point
your browser at:

<A HREF="http://www.microsoft.com/msdn/sdk/">http://www.microsoft.com/msdn/sdk/</A>

Versions of DirectX

   - DirectX 1
   - DirectX 2
   - DirectX 3
   - DirectX 3A (latest as of 2/18/97)
   - DirectX 5.0 (in development?)
   - DirectX 6.0 (mentioned occasionally by Microsoft)    

<A HREF="#Top">Return to Top</A>

<A NAME="Driver">
<H2>What is a driver?</H2>

Most often, driver refers to a software component that handles 
control and communication with hardware in a computer.  Most
but not all hardware device drivers run in a privileged mode

Microsoft Windows uses the term driver to refer to several different

                - Hardware Device Drivers
                - Windows 3.x or 95 Virtual Device Drivers (VxD's)
                         - not all VxD's access hardware
                - Microsoft Windows Installable Drivers

                     such as

                      - Media Control Interface or MCI Drivers
                      - Video for Windows Codecs (Compressor/Decompressors)
                      - Audio Codecs (Compressor/Decompressors)

Hardware Device Drivers include MS-DOS device drivers, DOS Terminate
and Stay Resident Programs that access hardware, Windows 3.x and 95
VxD's (Virtual Device Drivers) that access hardware, Windows DLL's
that access hardware but do not run in Ring Zero, Windows NT
kernel-mode device drivers, and the new Win32 Driver Model (WDM) drivers
for Memphis/Windows 98 and NT 5.0

Microsoft Windows Installable Drivers are Ring Three (Windows 95) or
user-mode (Windows NT) Dynamic Link Libraries (DLL's) with a single
entry point DriverProc().  MCI drivers, Video for Windows Codecs,
Microsoft Audio Compression Manager Codecs, and a variety of other

<A HREF="#Top">Return to Top</A>

<H2>GDI Device Drivers</H2>

BitBlt(...) to display graphics on the screen.  GDI also controls

Windows NT also provides a GDI system, but the underlying hardware
under NT.  Application programs written using the GDI API will usually

GDI is device independent.  To achieve this, GDI uses GDI device

The most commonly used GDI device driver is the DISPLAY device (for

n the SYSTEM.INI file.  SUPERVGA.DRV is a generic super vga graphic
Device Driver

The printer driver is another common GDI device driver.

of video frames on the display monitor.

GDI defines a set of standard functions exported by GDI Device
Drivers.  A GDI Device Driver can also report that it does not support
a particular function.

Standard Functions for GDI Device Driver

Entry                Name                 Description


Video card manufacturers write and provide GDI Device Drivers for video cards.

When Video for Windows plays an AVI file, Video for Windows usually
uses the Media Control Interface (MCI) driver for AVI files
(MCIAVI.DRV).  The MCI driver will call GDI to display each decoded
frame of video and WAVE to output the decoded audio to the sound card.

nvoke GDI or DirectDraw depending on the situation to display the

<A HREF="#Top">Return to Top</A>

<H2>Direct Draw Hardware Abstraction Layer</H2>

DirectDraw is a replacement for GDI for Windows 95 and
Windows NT 4.0.   See elsewhere in this overview for sections on
GDI and DirectDraw.

The Direct Draw Hardware Abstraction Layer (HAL) defines
Direct Draw device drivers for graphics/video display
adapters.   Graphics and video card manufacturers 
to work it must have these device drivers.

DirectDraw also defines a DirectDraw Applications Programming
applications.  The DirectDraw API in turn calls the Direct
Draw HAL to access the graphics/video display adapter.

ActiveMovie can invoke DirectDraw for video output under
Windows 95 and Windows NT 4.0.

<A HREF="#Top">Return to Top</A>

<H2>Virtual Device Drivers</H2>

usually the hardware device drivers.  They run in a privileged mode of
the Intel 80x86 processor known as Ring Zero.  Video display adapters
and video capture cards usually have an associated VXD written by the
card or chip manufacturer.

Note that some Windows device drivers are implemented as Dynamic Link
Libraries (DLL's) that do not run in the privileged, Ring Zero, mode
of the 80x86 processor or as MS-DOS programs that access hardware.
These device drivers are not VXD's.  There are some things that only
VXD's can do.  Most PC hardware, especially with high bandwidth

Device drivers for video display adapters are rarely a single VXD.
Often the Device Driver Interface (DDI) is implemented as a Dynamic
Link Library which does not run at Ring Zero.  Only parts of the
A full video display device driver is often built of several
files,  frequently including one or more VXDs.

VXD's are usually found in the \WINDOWS\SYSTEM directory.

VXD's will not work for hardware under Windows NT 3.51 or NT 4.0
Windows NT has its own Windows NT Driver Model for device drivers.

to provide a common driver model known as WDM or Win32 Driver Model so
that the same drivers can be used in both Memphis and NT.

<A HREF="#Top">Return to Top</A>

<H2>Windows NT Driver Model</H2>

Windows NT (3.51, 4.0) has its own system of hardware device
applications, NT cannot use Windows 3.x or Windows 95

For most people working with AVI, or video in general, the main
NT than Windows 95 (or Windows 3.x).  Most hardware manufacturers


to develop Windows NT drivers.  This is available in a

<A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>

<A HREF="#Top">Return to Top</A>

<H2>Win32 Driver Model (WDM)</H2>

The Win32 Driver Model (WDM) is a new device driver system for
Memphis (formerly Windows 97) and Windows NT 5.0  The notion is that
the same device drivers will work under both Memphis and NT 5.0

WDM is largely the Windows NT Driver Model used in NT 3.51 and 4.0
card companies will presumably be providing WDM drivers for
Memphis and NT 5.0 in the future.

Memphis is supposed to be backward compatible so that 
Windows 95 Device Drivers will still work under Memphis.
Similarly, NT 4.0 Device Drivers will still work under
NT 5.0   A WDM Device Driver will work under both Memphis and
NT 5.0.

<A HREF="#Top">Return to Top</A>

<H2>Setup Information or INF Files</H2>

When a video codec or hardware device driver is installed under
Windows 3.x, Windows 95, or Windows NT, Windows uses a special
file known as a Setup Information file.  This is also known as
a Device Information file in the case of device drivers.  These
files have the extension .INF and are also known as INF files.

When a user installs a codec or device driver through the Control
an INF file and the various files, such as VxD's or DLLs, to be

A Setup Information, Device Information, or INF file contains
locations of files to install, and other things.

create an INF file to install your product, driver, etc.

End users are often unaware of the INF file.  Indeed, its purpose is to

Where AVI is concerned, there are frequently INF files for video
codecs, video display adapters, and video capture cards.

<A HREF="#Top">Return to Top</A>


MMX or Multimedia Extensions to the Pentium instruction set are
multimedia operations.  Multimedia often involves small data types
For example, in principle, a 32 bit instruction could operate of
four 8 bit pixels in parallel.  

A simple example would be adding four 8 bit pixels in parallel.
The MMX instructions add clipping for underflow and overflow 

  255 0 0 255       Normal addition of four 8 bit pixels backed in 32 bits
+   0 0 0 255
 255  0 1   0

  255 0 0 255      MMX style clipping of overflow
+   0 0 0 255
  255 0 0 255

versions of the Pentium chip known as the P55C or Pentium with MMX.
The MMX instructions were also added to the Pentium Pro.  The Pentium
actually shipped in 1997.

MMX can accelerate various graphics and multimedia operations.  It can
accelerate video codecs.  In particular, the block Discrete Cosine
Transform used in JPEG, Motion JPEG, H.261, H.263, H.263+, MPEG-4,
MPEG-1, and MPEG-2 can be accelerated using MMX instructions.

critical portions of the multimedia algorithms must be hand-coded in 

An MMX version of a codec may be able to encode and decode an AVI
file (for example) faster on a PC with MMX.


Further information on MMX is available at the Intel Web site for

<A HREF="http://developer.intel.com/sites/developer">http://developer.intel.com/sites/developer</A>

Click on the Literature Center link, then select "Pentium Processor

This information is dated August 1, 1997.  The Intel Web site changes
from time to time.

(Order No. 243007)


the Microsoft Macro Assembler (MASM).  This can be downloaded from:

<A HREF="http://developer.intel.com/design/perftool/mmx1mac/">http://developer.intel.com/design/perftool/mmx1mac/</A>

Visual C/C++ 4.x/5.0.  This plug-in includes "special
compiler intrinsics" to support MMX.  These allow a programmer
to use the call syntax of C functions instead of manually
coding in assembly language.  

Example of an "intrinsic"

__m64 _m_pmaddwd(__m64 m1, __m64 m2)

<A HREF="http://developer.intel.com/design/perftool/icl24/">http://developer.intel.com/design/perftool/icl24/</A>

The Intel C/C++ compiler plug-in is available on the VTune
CD-ROM.  VTune is discussed below.

nstruction level.  VTune includes support for the MMX instructions
and has been used to profile and optimize MMX code.  The VTune CD-ROM
ncludes a number of other Intel freebies and products such as the

<A HREF="http://developer.intel.com/design/perftool/vtune/">http://developer.intel.com/design/perftool/vtune/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="ActiveX">

NOTE: ActiveX is NOT ActiveMovie.  There is an ActiveMovie ActiveX
control, but ActiveX is far more than this.

ActiveX is a stripped down version of OLE (Object Linking and
Embedding) targetted for the World Wide Web.  An ActiveX component or
control is a software component written in Visual Basic, Visual C++, or
Java that conforms to the ActiveX API.  This API is a variant of
OLE, designed to create small objects that can be dowloaded over the

An ActiveX object or control may reside on a Web page to be downloaded
and run when Microsoft's Internet Explorer views the page.  An ActiveX
control can be the ActiveMovie ActiveX control which plays AVI and other
video formats supported by ActiveMovie.  An ActiveX control can be an
entertaining animation, a game like tic tac toe, anything.  In this

Unlike Java applets, once an ActiveX control has been downloaded once
t remains on the downloading machine and can be used again without
being dowloaded again.

Also unlike Java, ActiveX controls are tied to a particular
architecture, Windows 95 or Windows NT.  It is not clear how much
Java applets are compiled to a Java bytecode that will run on any
Sun, and various other Unix platforms.

There is extensive information on ActiveX at the Microsoft Web site.
The ActiveX SDKs can be downloaded from the Microsoft Developer Online
Web Site (6/28/97):

<A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>

Select Microsoft SDKs from the Technical Information section or point your
browser at:

<A HREF="http://www.microsoft.com/msdn/sdk/">http://www.microsoft.com/msdn/sdk/</A>

Netscape Fans:

ScriptActive is a Netscape Plug-In that adds support for ActiveX to

<A HREF="http://www.ncompasslabs.com/">ScriptActive Web Site</A>

<A HREF="#Top">Return to Top</A>

<A NAME="AviPlay">
<H2>Playing an AVI File within a Windows Application</H2>

Media Control Interface (MCI).  Video for Windows includes an
MCI driver mciavi.drv for AVI files.  

Within the Windows API, programmers can use two C language API
functions, mciSendString(...) and mciSendCommand(...), to communicate with
the MCI driver.  mciSendString(...) sends MCI command strings such as
"play from 0 to 100" to the MCI driver.  mciSendCommand(...) sends MCI
command messages, a straight C type interface, to the MCI driver.

The syntax for mciSendString is:

MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString,
    UINT cchReturn, HANDLE hwndCallback);
The pointer lpszCommand points to the MCI command string such as
"play from 0 to 100".  Consult the Microsoft SDK documentation for
more details.

The syntax for mciSendCommand is:

    DWORD fdwCommand, DWORD dwParam);
nclude file.  Consult the Microsoft SDK documentation for more

mciSendString(...) and mciSendCommand(...) are essentially equivalent.
The MCI driver should convert the MCI command string to an MCI command
message internally.  The MCI command strings provide a more English like
nterface to MCI.

For C++ programmers, Microsoft provides a window class MCIWnd to wrap
the MCI operations.  Quoting the Microsoft SDK documentation:

Microsoft sayeth....

MCIWnd is a window class for controlling multimedia devices. A library
of functions, messages, and macros associated with MCIWnd provides a
your applications.

Using a single function, your application can create a control that
Control Interface (MCI). Automating playback is also quick and
easy. Using a function and two macros, an application can create an
MCIWnd window with the appropriate media device, play the device, and
close both the device and the window when the content has finished

... end Microsoft sayeth.

Consult the Microsoft documentation for more details on MCIWnd.

ActiveMovie appears intended to supersede MCI.  ActiveMovie includes
a restricted subset of MCI for (partial) backward compatibility.
However, Microsoft appears to want developers to switch over to
new API's such as ActiveX and ActiveMovie, built on top of Microsoft's
Component Object Model (COM) object oriented framework.

<A HREF="#Top">Return to Top</A>

<A NAME="AviWrite">
<H2>Reading and Writing an AVI file within a Windows Application</H2>

The Microsoft Windows Win32 SDK (Windows NT and Windows 95) includes a
manipulating RIFF files including AVI files within a Windows program.
These functions are contained within a Dynamic Link Library

The AVIFile functions include:


and many many others.  Consult Microsoft documentation for details.

<A HREF="#Top">Return to Top</A>

<H2>Where to get C Source Code for AVI Player Including Many Codecs</H2>

Marc Podlipec's Xanim is a free AVI Player for X Windows and Unix.
Most of Xanim is available in source code format.  The Xanim home

<A HREF="http://xanim.va.pubnix.com/">http://xanim.va.pubnix.com/</A>

Unfortunately, Xanim's Cinepak and Indeo support is only available in
object module (binary format).  

<A HREF="#Top">Return to Top</A>

<A NAME="FileFormats">
<H2>Where to get Detailed Information on Graphics File Formats</H2>

There are a number of Web sites,  books, and other resources
that provide detailed information on the many still image and 
video/animation graphics file formats.

Wotsit's File Format Collection

<A HREF="http://wotsit.simsware.com/">http://wotsit.simsware.com/</A>


<A HREF="http://www.ipahome.com/gff/textonly/summary/">http://www.ipahome.com/gff/textonly/summary/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="AudioFmts">
<H2>Where to get Detailed Information on Audio File Formats</H2>

On the Internet, Guido Van Rossum distributes an Audio Formats FAQ (in
two parts) to the alt.binaries.sounds.misc, 
alt.binaries.sounds.d, and comp.dsp USENET newsgroups.

On the Web:

<A HREF="http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/.html">http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/.html</A>

<A HREF="#Top">Return to Top</A>

<H2>Where to get C Source Code for a JPEG Encoder or Decoder?</H2>

Maybe you want to write your own Motion JPEG codec for AVI.  It

The Independent JPEG Group, also known as IJG, distributes the source
code for a JPEG encoder and decoder.  The IJG code is incorporated in
many JPEG viewers, is optimized, is free.  This is available by
anonymous ftp from the UUNET FTP archive.

<A HREF="ftp://ftp.uu.net/graphics/jpeg/">ftp://ftp.uu.net/graphics/jpeg/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="H263SRC">
<H2>Where to get C Source Code for an H.263 Video Encoder or Decoder?</H2>

Telenor Research distributes a free H.263 video encoder and decoder.
The code is not optimized.  Note that H.263 is subject to a variety
of patents and Telenor includes a disclaimer with the code.

<A HREF="http://www.fou.telenor.no/brukere/DVC/h263_software/">http://www.fou.telenor.no/brukere/DVC/h263_software/</A>

<A HREF="#Top">Return to Top</A>

<H2>Where to get C Source Code for an MPEG Video Encoder or Decoder?</H2>

The MPEG Software Simulation Group or MSSG distributes the C source code
for MPEG-1 and MPEG-2 video encoders and decoders.  This code is not
optimized.  Go to the MPEG site below and look for MSSG.

<A HREF="http://www.mpeg.org/">http://www.mpeg.org/</A>

<A HREF="#Top">Return to Top</A>

<H2>Where to get C/C++ Source Code for Wavelet Image Compression?</H2>

Geoff Davis distributes a C/C++ source code for wavelet still image
compression of grayscale images, the Wavelet Image Construction Kit.
This code is made available for research purposes.

<A HREF="http://www.cs.dartmouth.edu/~gdavis/">http://www.cs.dartmouth.edu/~gdavis/</A>

Also see the SPIHT demonstration programs, 

<A HREF="http://ipl.rpi.edu/SPIHT/">http://ipl.rpi.edu/SPIHT/</A>

<A HREF="#Top">Return to Top</A>

<H2>Where to get an Explanation of Color, Color Spaces, Gamma, and All That</H2>

Charles Poynton maintains an FAQ on Color and an FAQ on Gamma.  This is

<A HREF="http://www.inforamp.net/~poynton/notes/colour_and_gamma/ColorFAQ.html">http://www.inforamp.net/~poynton/notes/colour_and_gamma/ColorFAQ.html</A>

<A HREF="#Top">Return to Top</A>

<H2>Internet Video Standards and Pseudo-Standards</H2>

There are a number of Internet standards and proposed standards
for sending video and multimedia over IP based networks.  These
are mostly described in Internet Engineering Task Force (IETF)
Requests For Comments (RFC's).  

RFC repositories such as the Information Sciences Institute:

<A HREF="http://www.isi.edu/rfc-editor/">http://www.isi.edu/rfc-editor/</A>

What should you look for?

There are thousands of RFC's, most of which do not relate directly
to video.  Below are some families of protocols used with video
and representative RFC's for these families.  I have tried to include
the most important RFC's.

MIME (Multipurpose Internet Mail Extensions)

MIME is a protocol for attaching multimedia data such as images, sound,
and video to Internet mail.  

RFC 1521  MIME (Multipurpose Internet Mail Extensions)  Part One: 
Mechanisms for Specifying and Describing the Format of Internet Message

RFC 1522  MIME (Multipurpose Internet Mail Extensions) Part Two:
Message Header Extensions for Non-ASCII Text

(why do it only once?)

RFC 2045  MIME Part One

RFC 2046  MIME Part Two

RFC 2047  MIME Part Three

RFC 2049  MIME Part Five

RTP  (Real Time Protocol)

RTP is a protocol for insuring timely delivery of "real-time" data
n order to be displayed evenly and periodically.  The TCP
UDP (User Datagram Protocol) below for more on the limitations of

RFC 1889   RTP: A Transport Protocol for Real-Time Applications

RFC 1890   RTP: Profile for Audio and Video Converences with Minimal Control

RFC 2029   RTP Payload Format of Sun's CellB Video Encoding

RFC 2032   RTP Payload Format for H.261 Video Streams

RFC 2035   RTP Payload Format for JPEG-Compressed Video

RFC 2038   RTP Payload Format for MPEG1/MPEG2 Video

RFC 2190   RTP Payload Format for H.263 Video Streams

RFC 2198   RTP Payload for Redundant Audio Data

RSVP (Resource Reservation Protocol)

The Resource Reservation Protocol guarantees a
certain bandwidth to a particular data stream.  Video and other
"real-time" data typically require a minimum bandwidth consistently
for acceptable quality and performance.  If the bandwidth
s not available, the video skips frames or worse.

The original TCP/IP Internet was designed primarily for non 
"real-time" data, often text such as e-mail messages.  With e-mail, if a
network becomes congested and it takes a long time to transmit 
a message, there is little problem.  The user's e-mail arrives a little
late.   In many cases, the user never notices.  Real-time video does not

RSVP is one possible mechanism to add "Quality of Service" (QoS) to the

RFC 2205  Resource ReSerVation Protocol (RSVP) - Version 1 Functional Spec

RFC 2206  RSVP Management Information Base using SMIv2

RFC 2207  RSVP Extensions for IPSEC Data Flows

RFC 2210  The Use of RSVP with IETF Integrated Services

Asynchronous Transfer Mode (ATM) Quality of Service (QoS) 

A number of products supposedly support RSVP.  RSVP is not widely used
(Nov. 25, 1997) hence some caution is prudent with claims of RSVP

Cisco's Internetwork Operating System (IOS) for Cisco Routers

Ascend's GRF Routers

Version 12.0 of Bay Networks BayRS Router

Microsoft NetMeeting videoconferencing software

First Beta Version of Microsoft's Windows NT 5.0 Operating System

GTE Corporation's Internetworking Division (formerly BBN Corporation), a
major Internet Service Provider, has a service trial of RSVP.
(Nov. 25, 1997)

MCI Telecommunications reportedly will enable RSVP on its
very-high-bandwidth Backbone Network Service (vBNS) next year (1998).

address is an an address that represents a group of machines.
Machines may dynamically join and leave the multicast group.
Multicasting allows simultaneous transmission of a packet to
all machines in the group without duplication of the packet.  For video
For example, a live speech could be sent to one multicast address
address.  A machine joins the appropriate multicast group to 

on a network since only one packet is sent to multiple
viewers.  Without multicasting, a separate duplicated packet is 

Ethernet and some other network technologies support multicast
n hardware.  Ethernet "frames" have multicast Ethernet
addresses.  Implementing IP multicast on a single Ethernet, a single
addresses to the Ethernet multicast addresses.  

are located on separate subnets and the IP multicast packets are routed 
by networks routers.  The routers need to know whether a particular
Since machines join and leave the multicast groups over time, the routers
must detect these changes to properly route multicast IP packets.
Much of the difficulty in IP multicast involves development and 
mplementation of routing protocols for multicast IP packets.

Multicast has been implemented on the Internet throught the
Multicast Backbone (MBONE) which uses the mrouted daemon to
mplement the Distance Vector Multicast Routing Protocol (DVMRP).
Various video programs such as NASA Space Shuttle mission video,
"multicast" over the MBONE.

RFC 1112   Host extensions for IP multicasting 

RFC 1054   Host extensions for IP multicasting 

Note: RFC's 1112 and 1054 describe the Internet Group Management Protocol
(IGMP) for management of multicast groups.

RFC 1075   Distance Vector Multicast Routing Protocol

RFC 1584   Multicast Extensions to OSPF

RFC 2117   Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol

UDP  (User Datagram Protocol)

UDP is a very simple protocol layered on top of IP.  An IP packet
contains the IP addresses of the sending and receiving machines on the
network.  The IP packet has no mechanism to identify separate sending and
effectively identify sending and receiving processes.  An IP
address can have many ports.  The pair
of sending and receiving ports is called a "connection" in the
language of TCP/IP.  Proprietary and experimental streaming video 
than the TCP (Transmission Control Protocol) protocol.

Why UDP instead of TCP?

While TCP guarantees delivery of a stream of data, something that IP 
alone does not, TCP does not guarantee timely delivery of the data.
To insure delivery of data, TCP resends a packet if the TCP protocol
before the TCP retransmission timeout expires.
TCP uses an "adaptive retransmission algorithm" that may choose a 
long timeout when the network is slow.  
As a result TCP may wait a long time before retransmitting the packet.  
With video, packets of video data must be delivered quickly to 

Video networking protocols implemented with UDP often add a fixed timeout
to retransmit packets before the buffer of the receiving video
the buffer size to compensate for delays and congestion in the network.

RFC 768  User Datagram Protocol

<A HREF="#Top">Return to Top</A>

<A NAME="Health">
<H2>AVI and Your Health (Eye Strain)</H2>

Note: This is not intended as medical advice.  If you are
experience visual problems, see a qualified professional.

Sustained use of computers probably causes a variety of
visual problems.  The most common problems appear to be "burning
eyes" and focusing problems.

Currently, computer monitors are usually placed around two
feet from the user's eyes.  This is much closer than the
natural resting focus distance of the eyes, which is somewhere
between ten feet and infinity.  Also computer monitors are
much dimmer and lower contrast than natural objects which forces
the eyes to work harder to focus effectively on the monitor.
This is one of the reasons paper remains a more comfortable 
medium for reading than computer monitors.  Prolonged focusing
at short distances probably causes a variety of visual problems.

Computer users should look away from their monitor and rest their
eyes, focusing at a distance, every few minutes.  Many users do
this without even realizing that they are doing it.

Desktop video such as AVI probably presents greater risks than
traditional computer uses such as reading.  With static 
media such as text documents or still images, when the user looks
away from the monitor and looks back, nothing changes, no information
s missed.  There is no penalty to looking away from the monitor
to rest your eyes, focus at a distance, and so forth.  With video, the
video will change while the user is looking away.  The user misses
from desktop video, keeping their eyes focused on the screen
for long periods of time.

Computer animators who work with computer video, often for
long periods, have reported these problems for years.

Thus, people are very unlikely to watch two hour movies on computer
monitors two feet from their eyes.  Digital video will likely 
migrate to the same location as the television, at least ten feet

Some Resources on Computers and Your Eyes

"Reducing eyestrain from video and computer monitors "
by Charles Poynton

<A HREF="http://www.inforamp.net/~poynton/notes/reducing_eyestrain/index.html">http://www.inforamp.net/~poynton/notes/reducing_eyestrain/index.html</A>

Note: Keep in mind that IBM sells computers.

<A HREF="http://www.pc.ibm.com/us/healthycomputing/ergoviso.html">http://www.pc.ibm.com/us/healthycomputing/ergoviso.html</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Misc">
<H2>Miscellaneous Questions about AVI and Video for Windows</H2>

What is most recent version of Video for Windows?

Most recent version of Video for Windows for Windows 3.1 appears to
be Video for Windows 1.1e.  (10/2/96)

<A NAME="VfW16">
<H2>Where can I get the 16-bit Video for Windows 1.1e runtime?</H2>

This is the Video for Windows for Windows 3.x  In a pinch, it will
also work under Windows 95.  Windows 95 includes a version of
Video for Windows that has 32 bit video codecs and possibly other
changes specific to Windows 95.  See elsewhere in this Overview
for information on re-installing Video for Windows for
Windows 95.

From Microsoft,

<A HREF="ftp://ftp.microsoft.com/softlib/mslfiles/WV1160.EXE">ftp://ftp.microsoft.com/softlib/mslfiles/WV1160.EXE</A>

(Note the file name is all upper case)

<A HREF="#Top">Return to Top</A>

<H3>How to import AVI files into Lightwave</H3>

Lightwave is a powerful 3D animation program from NewTek.  Originally
Windows NT. 

BurntPixels produces a plug-in for Lightwave 5.0 called AVILoad 2.1
that enables direct importing of AVI files into Lightwave animations.
AVILoad 2.1 is available for Lightwave 5.0 for Windows 95 and NT.

See the AVILoad Web site for further details.

<A HREF="http://www.en.com/users/bforce/">http://www.en.com/users/bforce/</A>

For further information on NewTek and Lightwave, see the LightWave
Web site:

<A HREF="http://www.newtek.com/">http://www.newtek.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Extension">
<H3>How to give AVI files a different extension in Windows 3.x</H3>

example VID.  Microsoft Windows can be configured so that Windows
treats this file the same as a file with the AVI extension.  For
example, double clicking on a .VID file in File Manager will play the
.VID file just the same as a .AVI file.

file extensions with applications.  For example, this section

AVI=mplayer.exe /play /close ^AVI

clicks on a file with extension AVI.  For VID, add a line

VID=mplayer.exe /play /close ^VID

Media Player is an MCI (Media Control Interface) application.  It will
attempt to play the .VID file through MCI.  At this point however, MCI

There is also a section [mci extensions] which contains lines such as:

[mci extensions]
AVI=AVIVideo  ( tells MCI to use the MCI driver refered to as AVIVideo for files with the extension AVI)

For the VID example, add


to the [mci extensions] section in WIN.INI

The WIN.INI file is used mainly for configuring the higher levels
of Windows: the graphical user interface and the desktop.  Many applications
nstall their configuration or installation information in sections within

Names such as AVIVideo are defined in the [mci] section in the SYSTEM.INI
file, also usually in the \WINDOWS directory.  SYSTEM.INI is used
mainly for configuring the lower levels of Windows: the device

AVIVideo=mciavi.drv ( where mciavi.drv is the AVI MCI Driver )

Thus, many file extensions can refer to AVIVideo which in turn refers to
the MCI Driver for AVI files.  The MCI Driver processes MCI commands and
may in turn invoke other drivers or DLL's such as the Video for Windows

<A HREF="#Top">Return to Top</A>

<A NAME="AVI95">
<H3>How AVI Files are Handled in Windows 95</H3>

ActiveMovie for AVI, QuickTime, and MPEG files. 

Windows 95 has file extensions and file types.  .AVI is a file
extension.  File extensions are mapped to file types.  AVIFile is
a file type.  The information on file extensions and file types
s stored in the Windows 95 System Registry.  More than one file
extension can be mapped to the same file type.  For example, the .AIF
and .AIFF file extensions are both mapped to AIFFFile, the file 
type for the Apple AIFF audio file format.  

The file type contains information on how to play the file (which
application to use) and other information.  This information is
all stored in the Windows 95 Registry.

A user can view and also edit the information on file types 
through the Windows Explorer applet.  Select the Options...
tem from the View Menu of Windows Explorer.  Select the File Types
tab from the Options property sheet.  This gives a list box of 
a File Type.  The AVIFile File Type is identified as
"Movie Clip(AVI)" in this list box of registered file types in
Windows 95 OEM Service Release 2.

"AVIFile" file type "key".  Windows Explorer displays the string "Movie
Clip(AVI)", not AVIFile, the name of the "key".

A user can change how Windows 95 handles an AVI file by editing
the "Movie Clip(AVI)" File Type in the File Types through Windows
Explorer.  For example, a user can select an alternative AVI file

Content type (Multipurpose Internet Mail Extension or MIME type).  
The Content type (MIME type) tells Microsoft Internet Explorer how 
to handle a file from a Web site. 

The original Windows 95 retail version did not include the Content
(MIME) type.  This extra feature could be added by installing the
MS Plus! add-on to Windows 95.  Some OEM versions of Windows 95 prior
to OEM Service Release 2 supported the Content (MIME) type.

The Windows 95 Registry can be viewed using REGEDIT, the Windows 95
Registry editor.  The registry "keys" for file extensions and file types
are stored in the HKEY_CLASSES_ROOT "key".  Although REGEDIT can also
edit the registry, the registry is rather complex and this drastic 
action should be avoided.  Use the Windows Explorer applet.  This applet
knows how to modify the keys in the Windows 95 Registry.

The Windows 95 Registry is a binary database stored in two files:
SYSTEM.DAT and USER.DAT.  Internally, the database is structured very
contains other "keys" or "values".  The "values" have a name and
associated data.  The data are text strings such as "Movie Clip(AVI)"
or binary numbers.  The Registry Editor represents keys with a folder
con and values with different icons.  The Registry Editor closely

The registry contains a key in the top level HKEY_CLASSES_ROOT key
called .avi, for the .avi file extension.  All keys contain a default
"value" with the name (Default).  In the .avi key, the (Default) value
OEM Service Release 2, there is an additional value named "Content
Type" with the associated ASCII text string data "video/avi", the MIME
type for AVI files.  This additional information is used by the

The (Default) value in the .avi key references the AVIFile key, also
n HKEY_CLASSES_ROOT.  This key contains a number of other keys and
values.  The (Default) value for the AVIFile key has the data 
"Movie Clip(AVI)" which the Windows interface uses to identify the files
to users.  The AVIFile key is an example of a file type key.

The "shell" key in the AVIFile key specifies what happens when a user
for the shell key is "play".  The shell key contains two subkeys:open
and play.  These keys specify possible actions to perform.  The
(Default) value indicates that the "play" action will be used.

The open and play keys each contain a key called command.  The
(Default) value for the command subkey of play is "rundll32 amovie.ocx
RunDLL /play /close %1".  rundll32 is a program that runs a 32 bit
Windows Dynamic Link Library or DLL as an Application.  The command
executes amovie.ocx, the ActiveMovie Control, as an
application. Controls such as amovie.ocx are actually DLLs.  /play
tells the control to play the file and /close tells the control to
close after finishing playing the file.

configured to invoke Media Player, mplayer.exe.  

<A HREF="#Top">Return to Top</A>

<A NAME="Common">
<H2>Most Common AVI Question: What does "could not find vids:xxxx ..." error mean?</H2>

This is the most common question that I get about AVI files (12/18/98).

When Video for Windows cannot find the video compressor decompressor
or codec used to encode an AVI file, Video for Windows pops up a 
message box with this error message.  ".. could not find vids:xxxx ..."

vids is the four character code for the video stream in an AVI file.
xxxx is the unique four character code used to identify the video
     codec used to compress the video stream in the AVI file.

"... could not find vids:i263 ..."

     video standard.  The Video for Windows drivers for this codec can
     be downloaded from the Intel Web site.

"... could not find vids:iv50 ..."

     from the Intel Web site.  IV50 is used by Indeo 5.0, 5.06, and 5.10.

The AVI Overview contains extensive information on four character
codes. <A HREF="#FOURCC">Link to Section on Four Character Codes</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Play">
<H2>How can I play an AVI file?</H2>

<H3>MS DOS</H3>

On DOS, the shareware program QuickView by Wolfgang Hesseler can
through the simtel sites such as

<A HREF="ftp://info.nic.surfnet.nl/mirror-archive/software/simtel-msdos/graphics/qv103.zip">ftp://info.nic.surfnet.nl/mirror-archive/software/simtel-msdos/graphics/qv103.zip</A>

You can get the latest version of QuickView (2.30 on 6/6/98) from

<A HREF="http://www.multimediaware.com/qv/">Wolfgang Hesseler's Home Page</A>

<H3>Microsoft Windows</H3>

<H4>Windows Media Player</H4>

Windows 3.x, Windows 95, and Windows NT are usually configured so
that double clicking on the icon for an AVI file will invoke an AVI player
application.  Video for Windows includes an application known as Media
ActiveMovie 1.0 inclues an ActiveMovie ActiveX control that can play
AVI, QuickTime, and MPEG video as well as other multimedia data types.

On Windows 3.x, Media Player is MPLAYER.EXE.  This is a 16 bit
Windows 3.x application.  Windows 95 can run both the 16 bit Media Player
and a 32 bit Media Player.  There is also a Media Player on Windows NT 4.0
This is MPLAY32.EXE

MediaPlayer can be invoked by typing mplayer.exe at the DOS command
the start menu for Windows 95 or Windows NT 4.0

The ActiveMovie ActiveX control on Windows 95 is amovie.ocx.  This can
be executed as a standalone application using the
commands Rundll32 amovie.ocx.

ActiveMovie is only available for Windows 95.  It will not work on
Windows 3.x Windows NT 5.0 should add an ActiveMovie implementation.
ActiveMovie 1.0 is shipped with the Windows 95 OEM Service Release 2.
ActiveMovie has been renamed DirectShow.

<H4>Woldo's MCI Video Player for Windows 95/98/NT</H4>

Wolfgang Doehler distributes a free alternative to Windows Media Player
for 32 bit Windows platforms:

<A HREF="http://pweb.de.uu.net/wolfgang.doehler/">http://pweb.de.uu.net/wolfgang.doehler</A>

<H3>Power Macintosh</H3>

On the Apple Macintosh, Apple's QuickTime 3 Pro includes a QuickTime

   o Microsoft Internet Explorer 3.0 and 4.0 for Macintosh
   o Netscape Communicator 4.0 for Macintosh
   o Netscape Navigator 3.0 for Macintosh

<A HREF="http://quicktime.apple.com/">http://quicktime.apple.com/</A>

On the Macintosh, Microsoft's Internet Explorer (Web Browser) can play
AVI files directly.  There is also an application AVI->QuickTime that
can convert AVI files to QuickTime .MooV files on the Macintosh.  

Microsoft's Internet Explorer 3.01 (on 6/4/97) for the Macintosh may
be downloaded from the Microsoft Web site at:

<A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>

MacZilla is an inexpensive shareware Netscape Navigator Plug-In for
the Macintosh that plays QuickTime .MOV, Video for Windows AVI, and
MPEG-1 files.  MacZilla can also play Sun Audio .AU, Microsoft
.WAV, and MPEG Layer 2 Audio .MP2 files.  If you pay the
fee, MacZilla will send you a STANDALONE player (not a Netscape

<A HREF="http://maczilla.com/">http://maczilla.com</A>

NOTE: I personally experienced a lot of crashes with MacZilla on
my Macintosh. (6/4/97)  


Much of Xanim is available as source code!!  The Xanim home page is:

<A HREF="http://xanim.va.pubnix.com/">http://xanim.va.pubnix.com/</A>

video codecs, the new revision also supports dynamically loadable
video decompression libraries. This means you no longer need to
upgraded. There are currently dll's for: Creative CYUV, Radius
Cinepak, Intel Indeo 3.2, Intel Indeo 4.1, Intel Indeo 5.0, CCITT
H.261 and CCITT H.263.

Mark Podlipec writes (PREVIOUSLY):

Below is some up-to-date information about XAnim, the unix X11 AVI player.




Latest revision:  XAnim

Official Web sites:


AVI Video and Audio Codecs Supported:

        + AVI Video Codecs supported:
            + IBM Ultimotion     (ULTI)
            + JPEG               (JPEG)
            + Motion JPEG        (MJPG)
            + Intergraph JPEG    (IJPG)
            + Microsoft Video 1  (CRAM/WHAM/MSVC)
            + Radius Cinepak     (CVID)
            + Intel Indeo R3.1   (IV31)
            + Intel Indeo R3.2   (IV32)
            + Intel RAW YUV9     (YUV9)
            + Creative CYUV      (CYUV)
            + Uncompressed       (RGB )
            + Run length encoded (RLE8)
            + Editable MPEG      (XMPG)

        + AVI Audio Codecs supported:
            + PCM                (0x0001)
            + MS ADPCM           (0x0002)
            + ULAW               (0x0007)
            + DVI/IMA ADPCM      (0x0011)

<H3> Digital Equipment Corporation's VAX/VMS </H3>

On VAX/VMS, Xanim (see above) has been ported and works on VMS.


MooVId (and) PIV-MooVId AVI/MOV Player for the Amiga
<A HREF="http://www.dfmk.hu/~torokl/">http://www.dfmk.hu/~torokl/</A>

*** MooVId (shareware) ***

MooVId AVI/MOV player with GUI and INDEO support for Amiga computers 
Last version: 0.50b (13.09.1998) 

Required hardware: 
Kickstart 3.0 (3.1 Recommended) 
MC68020 or better (68040 recommended for bigger AVI/MOVs) 
ECS or AGA chipset (on ECS the playback is only 16 grayscale) 

Required software: 
CyberGraphX or Picasso96 for GFX-Board playback 

Recommended hardware: 
MC68040/060 and ZorroIII graphicsboard (for bigger animations), but MooVId can play 240x180 truecolor AVI/MOV at 15FPS (without skipping) in perfect (!) colors on 030/50 AGA. 

MooVId features: 
AVI (Video for windows) and MOV (Quicktime) player in one file 

Support INTEL Indeo 3.1 & 3.2 (IV31 & IV32) 

Buffered I/O handling (direct playback from CD-ROM or HDD) 

Timer Based frame skipping method 

FULL AGA support (256 color/gray or ham8) 

Bugfree "18bit" gfx on AGA Amigas 

Special (fast & very good ham8) STORM dither on AGA Amigas 

ECS Support (16 grayscale) 

Full support of the CD32 akiko chip 

Synchronized audio playing 

On-fly selectable frame rate 

Fully system friendly 

Direct p96 support (no CGFX "emulation") 

Direct CGFX support 

Accelerated decoders for ZorroII gfxboards 

Full GUI (check the screenshoot) 

Supported codecs: 

Video for Windows (.avi) 

Supported video encoders: 

Codec Name FourCC code Depth 
Microsoft RGB RGB 8/16 bit 
Microsoft Video 1 CRAM/MSVC 8/16 bit 
Radius Cinepak CVID 24/32 bit 
Run Length Encoded  RLE 8 bit 

Supported audio codecs: 
Audio format Channels Bits 
MS-ADPCM MONO/STEREO 4 bit (16bit) 

Quicktime (.mov, .qt) 

Supported video encoders: 

Codec Name FourCC code Depth 
Apple Video RPZA 16 bit 
Radius Cinepak CVID 24/32 bit 

Supported audio encoders: 
Audio format Channels Bits 
RAW MONO 8/16 bit 
TWOS MONO 8/16 bit 

Other codecs (like JPEG and IMA audio) is in progress 

*** END of MooVId ***

Last version: 0.991b (27.11.1998) 

Required hardware: 
Kickstart 3.0 or better 
MC68020 or better (68040/060 recommended) 

Required software: 

Recommended hardware: 
MC68040/060 and PicassoIV in ZorroIII mode 

The FASTEST AVI/MOV player for Amiga 

Support the video layer of the PicassoIV 

All decoders (espec. Cinepak and Indeo) are video layer accelerated 

AVI/MOV playback in a resizable window (up to fullscreen), without slowdown! 

AVI (Video for windows) and MOV (Quicktime) player in one file 

Support INTEL Indeo 3.1 & 3.2 (IV31 & IV32) 

Buffered I/O handling (direct playback from CD-ROM or HDD) 

Timer Based frame skipping method 

Synchronized audio playing 

On-fly selectable frame rate 

Fully system friendly 

Full GUI 

Supported codecs: 

This part is same as at MooVId! 
Codec Name FourCC code Depth 
Cirrus Accupak/PalomAVI videocapture format CLJR 24 bit 

*** END OF PIV-MooVId ***

TapAVI 1.5
AVI Player for 020+ KS2.0 Picasso-II  (variety of Amiga)

<A HREF="http://www.ziplink.net/~wingell/ibrowse/tapavi.html">http://www.ziplink.net/~wingell/ibrowse/tapavi.html</A>

There appears to be an Amiga version of the XAnim AVI Player.  The TapAVI
better for certain uses.

xanim for the Amiga is available in a file xanim6.lha and other files from
<A HREF="http://www.cucug.org/aminet.html">Aminet</A>.  Aminet is an
archive of Amiga public domain, freeware, and shareware software.
The primary Aminet site is at Washington University in St. Louis:

<A HREF="http://wuarchive.wustl.edu/~aminet/">http://wuarchive.wustl.edu/~aminet/</A>

Many mirror Aminet sites exist.


OS/2 has built-in support for AVI files ... up to a point.  OS/2
cannot play all Windows style AVI files.

AVI's compressed with RLE (Microsoft RLE), CVID (Cinepak), and MSVC
(Microsoft Video 1).  Practice also markets QUickMotion which adds

<A HREF="http://www.quickmotion.com/">http://www.quickmotion.com/</A>

At least two other programs exist that are claimed to be OS/2 AVI Players.

<A HREF="ftp://uiarchive.cso.uiuc.edu/pub/systems/os2/mmedia/calliope.zip">Calliope</A>

<A HREF="ftp://uiarchive.cso.uiuc.edu/pub/systems/os2/mmedia/dmply141.zip">DMP 1.41</A>

<A HREF="#Top">Return to Top</A>

<A NAME="NetShow">
<H2>AVI and NetShow</H2>

NetShow is a relatively new product from Microsoft for distributing
for Windows NT and NetShow players (both NT and Windows 95).

NetShow uses the Active Streaming Format (ASF) for video streams
over the Internet.  ASF adds time stamps for synchronization, error
correction codes, and other features that AVI lacks.  The NetShow
family of products includes utilities to convert AVI files to ASF

Microsoft has licensed a number of low bitrate video technologies for
NetShow including Vivo's H.263, Iterated Systems/Progressive
Networks/RealNetworks RealVideo/ClearVideo fractal codec, and VDONet's
VDOWave.  Microsoft has purchased VxTreme, possibly the best wavelet
based video codec.  Microsoft has used their implementation of the
uncompleted international standard MPEG-4 for NetShow.

NetShow, including the server, is available at the Microsoft Web
NetShow Tools, and the NetShow Server.  The NetShow Player is 
a simple client for audio and video playback over networks.  The
NetShow Tools are a collection of tools and software components
for creation of content, especially the ASF files.  The NetShow
Server is a server that runs under Windows NT for broadcasting audio
and video streams over networks.

The NetShow 2.0 Player Installation and the NetShow 2.0 Tools Installation
both install Video for Windows codecs, the NetShow codecs.  Only
the NetShow 2.0 Tools codecs appear to support encoding.

You must install the NetShow Tools to create AVI or ASF files
compressed with the new "low bitrate" NetShow codecs!

The NetShow 2.0 Player (Client) Setup installs:

Codec Name                       ( line in SYSTEM.INI )

(Video Codecs)

Vivo H.263 decoder/keyed encoder      ( vidc.vivo=ivvideo.dll )
VDONet VDOWave decoder                ( vidc.vdom=vdowave.drv )
Microsoft MPEG-4 decoder              ( vidc.mpg4=msscmc32.dll )
ClearVideo decoder                    ( vidc.ucod=clrviddd.dll )
Duck TrueMotion decoder/keyed encoder (vidc.tr20=tr2032.dll )

(Audio Codecs)

Vivo G.723.1 / Siren decoder     ( msacm.vivog723=vivog723.acm )
Frauenhofer MPEG Layer III Audio Codec       ( msacm.l3acm = l3codeca.acm )
Lernout and Hauspie Audio Codecs ( msacm.lhacm = lhacm.acm )
Voxware MetaSound/MetaVoice decode/keyed encode (msacm.voxacm119=vdk32119.acm)

The NetShow 2.0 Tools Setup also installs:

(NetShow 2.0 Player Codecs with Encoder)
Microsoft H.263 keyed encoder ( vidc.m263=msh263.drv )

The NetShow 2.0 Player Codecs appear to lack the functionality
to compress video.  While they can be invoked from within some
video editing programs such as Asymetrix Digital Video Producer 4.0, they
codes for the NetShow codec (such as VDOM for VDOWave) in the
AVI Header but not in the video stream header within the AVI file.
The video stream header uses the value 0 for the video compression
ndicating no compression.

The NetShow 2.0 Player Codecs are invisible from Microsoft VidEdit 
s because VidEdit queries the codecs to determine if they support
compression and only lists the codecs that can actually compress
video.  In contrast, some applications such as Asymetrix Digital
Video Producer 4.0 will list all codecs, both those that can compress
and those that only decompress.

The NetShow 2.0 Tools Codecs can compress video.  You can create
compressed AVI files with the VDOWave and MPEG-4 codecs from NetShow
code or MPEG-4 four character code both in the AVI header and in the
video stream header.  However, the so-called "keyed encoders" which are
Microsoft H.263, Vivo H.263, and Duck TrueMotion, cannot create 
compressed AVI files if invoked from a Video for Windows video editing
application such as Asymetrix Digital Video Producer.

The "keyed encoders" appear to be used only for creating Microsoft
ASF files compressed with Vivo H.263, Microsoft H.263, or
Duck TrueMotion. 

Microsoft VidEdit 1.1 will list all NetShow 2.0 Tools Codecs under the
Video | Compression Options ...  menu selection if no AVI file is loaded.
Once an AVI file is loaded, some of the NetShow 2.0 Tools Codecs
Digital Video Producer list all NetShow 2.0 Tools Codecs at all

NetShow tries to use a real-time Internet Protocol called MMS
to transfer video over the Internet.  If it cannot use MMS, it will
use TCP (Transmission Control Protocol) or HTTP (HyperText Transport
Time Control Protocol).

The Microsoft NBC Business News channel distributes video over
the Internet using these technologies.

NetShow also claims to support multicast IP over Networks.  I've
not personally seen this work.  The NetShow 2.0 server administrative
user interfaces contain panels for configuring multicast channels.

<A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>

<A HREF="#Top">Return to Top</A>

<H2>How to convert an AVI file to a Microsoft ASF File?</H2>

Microsoft has defined yet another audio/video/multimedia format
to support streaming audio and video over the Internet.  This is ASF
(formerly Active Stream Format and now Advanced Streaming Format).
ASF is used for streaming audio/video/multimedia and for stored files.
These files have the extension .asf  They are used as part of
Microsoft's NetShow video server and client over the Internet.

The NetShow authoring tools include a DOS command line utilitity:


ASF files.  Like AVI, ASF files support many audio and 
video compression schemes.

The NetShow Tools include a Microsoft Windows graphical application 
called the ASF Real Time Encoder which can also convert AVI and WAV
files to ASF files.  The ASF Real Time Encoder is installed under Microsoft
NetShow in the Start | Programs menu under Windows 95 and Windows NT 4.0

    ASF Real Time Encoder

For more information including software:

<A HREF="http://www.microsoft.com/asf/">http://www.microsoft.com/asf/</A>

<A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Content">
<H2>Sources of AVI Video Clips on the Web</H2>

What good is all this technology without something to watch?  
Accordingly, some sites with AVI content.

The Official Babylon 5 Web Site has a large number of AVI files
from the popular science fiction television show.

<A HREF="http://www.babylon5.com/">http://www.babylon5.com</A>

video clips.

<A HREF="http://www.geocities.com/Broadway/2876/index.html">http://www.geocities.com/Broadway/2876/index.html</A>

<A HREF="#Top">Return to Top</A>

<H4>Low Bit Rate AVI for the Web</H4>

A major limitation of video on the Web in general and AVI in
Kbits/second connections to their Internet Service Provider.  The new
may eventually provide 50-60 Kbits/second over tradiational analog
telephone lines.  A Basic Rate Interface (BRI) ISDN connection

Although very high speeds are possible within the LAN's and WAN's of
major corporations and other well-endowed organizations, the so-called
or ISDN.

For example, currently (7/20/97) a Web browser at NASA Ames Research
Center in Mountain View, California can attach to my Web site at an
transfer rate of 15 KBytes/second or 120 Kbits/second.  NASA Ames
s home to the Federal Internet Exchange (FIX), the
of the United States.  This is the heart of the Silicon Valley.  This
s probably much better performance than more outlying parts of the
broader Internet.

These Internet rates are very low bitrates for video.  The prevailing
block Discrete Cosine Transform (DCT) based video codecs such as MPEG-1,
H.261, and H.263 perform acceptably at 384 Kbits/second but frequently
exhibit unnatural artifacts at 128 Kbits/second for 30 frame per
exceed the performance of Cinepak, the reigning king of AVI codecs.

Ultimately, faster Internet connections and better codecs will combine
to resolve this problem and allow convincing, realistic video over
the Internet.

compressed video at low bitrates.  To do this, options are:

                    - Use smaller frame sizes (e.g. 160x120 pixels)
                    - Use lower frame rates (10 - 15 frames per second)
                    - Push the standard codecs such as Cinepak as far as possbile.
                    - Use one of the newer codecs such as:

                           <A HREF="#VDOW">VDOWave</A>
                           <A HREF="#IV41">Indeo 4.1</A>
                           <A HREF="#H263">H.263</A>

This overview contains a detailed section on the many codecs available
for AVI files:

                   <A HREF="#Codec">Video for Windows Codec Section</A>

This overview also has a section on effective video for the Web.  Note
that there are practical limits on how low resolution, frame rates, and
video quality can be pushed before the video becomes ineffective.

                  <A HREF="#Style">Effective Video for the Web</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Limits">
<H2>Limitations of AVI and Video for Windows over Networks</H2>

AVI and Video for Windows were developed for playback of audio and
video from hard disks and CD-ROMs on personal computers.  They are
also adequate for downloading a video file from a remote site on the
are not well suited for real-time or streaming video playback over
networks.  This means videoconferencing or broadcast video over

The AVI file format lacks time stamps embedded in the  audio and
video streams.  There is no mechanism to resynchronize the audio and
video streams if data is lost.  In a network, sometimes packets are
lost in which case the audio and video playback will lose track of the
time.  With time stamps, the application can resynchronize the audio
and video playback.

Microsoft has a new generation of products in the form of the Active/Advanced
Streaming Format (ASF), NetShow, NetMeeting (videoconferencing), and
ActiveMovie (DirectShow) with improved support for video over
networks.  Microsoft provides utilities for converting AVI to
the new ASF format.

<A HREF="#Top">Return to Top</A>

<A NAME="ToSequence">
<H2>How can I convert an AVI file to a sequence of bitmap images?</H2>


Microsoft's VidEdit video editor can convert AVI files to a sequence
of Microsoft DIB files, such as test.avi --> test00.dib, test01,dib, etc.
Further information on VidEdit is available in the section of the
AVI Overview on editing AVI.


There is a freeware DOS program called AVIRIP that can convert
non-compressed AVI files to a sequence of TGA (Targa), RAW, or
DIB files.  AVIRIP is available with the convmpg3 freeware toolkit
for converting AVI to MPEG and MPEG to AVI.  Further information
on convmpg3 is available in the section of the AVI Overview
on converting AVI to MPEG.

<A HREF="http://www.mpeg1.de/msdos.html">http://www.mpeg1.de/msdos.html</A>

<H3>Jih-Shin Ho's Display</H3>

Display by Jih-Shin Ho
Available at

<A HREF="ftp://info.nic.surfnet.nl/mirror-archive/software/simtel-msdos/graphics/disp189a.zip">ftp://info.nic.surfnet.nl/mirror-archive/software/simtel-msdos/graphics/disp189a.zip</A>

or other Simtel mirror sites.

This is a 32-bit MS-DOS program that can read and write many image
and movie file formats.

<H3>DeBabelizer Pro</H3>

Equilibrium's DeBabelizer Pro for Windows 95 and NT 4.0 reads and
also reads and writes AVI files.  DeBabelizer Pro can read an AVI
file and export it as a sequence of still images in the many image formats
that it supports.

On August 3, 1998, David Gartner of Equilibrium wrote:

Equilibrium adds AVI with sound support to DeBabelizer Pro 4.5

**AVI Video with Sound**
DeBabelizer Pro 4.5's new full AVI support enables users to batch process
legacy Video for Windows files for use on most any Macintosh and Windows
nto Windows 95 and NT and runs only on Windows machines.  Now, with a few
keystrokes, DeBabelizer Pro 4.5 users can automatically optimize, convert,
and compress tens, hundreds or thousands of videos to QuickTime 3.0,
animated GIFs or a variety of other cross-platform video and animation

DeBabelizer Pro has many other features beside file format conversions.

Equilibrium has a demonstration version of DeBabelizer Pro on its Web site.
This is definitely demonstration version.  The demo version plasters the

DeBabelizer Pro ($595 Suggested Retail Price)
Sausalito, CA  94965

<A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="ToSmacker">
<H2>Smacker (.SMK Files)</H2>

Smacker is a special 8-bit color video format from
RAD Game Tools used for video and computer games.
Smacker files usually use the file extension .SMK
RAD Game Tools provides free Smacker Utilities at
their Web site:

<A HREF="http://www.radgametools.com/">http://www.radgametools.com/</A>

The utilities can convert an AVI file to a Smacker video file (.SMK file).
The Smacker utilities calculate a good 8 bit palette
for the input video.  

<A HREF="#Top">Return to Top</A>

<H2>Progressive Networks RealMedia Streaming Format (.RM Files)</H2>

RealVideo video compression (RealVideo, also known as ClearVideo, is
files.  RealEncoder can import AVI files!

<A HREF="http://www.real.com/">http://www.real.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="FromSequence">
<H2>How to convert a sequence of bitmap images to an AVI?</H2>

Note: A number of Windows applications can convert a sequence of still
mages in one still image file format, such as TIFF, to a sequence of
the AVI Overview.

Use these still image conversion programs to convert a sequence of
bitmap images into a format supported by the various programs below
a particular format to an AVI file.


Microsoft's VidEdit software (16 bit Windows) can read in
AVI file.  More information on VidEdit is available in the

<H3>Video for DOS</H3>

A shareware program called Video for DOS (VFD) can convert sequences
of Targa files (.TGA) into AVI.  (11/8/96)  Video for DOS can be

<A HREF="http://www.dc.ee/Files/Graf">http://www.dc.ee/Files/Graf</A>

Thanks to John Avis for information on Video for DOS.

<H3>AVI Constructor</H3>

Michael Caracena's AVI Constructor is a shareware program that 

Michael Caracena (Oct. 3, 1997) writes...

The newest version of AVI Constructor can:

	- Make AVI files from bitmap (*.BMP), JPEG (*.JPG), 
	  and TARGA (*.TGA) files.
	- Insert audio from a .wav file into the AVI.
	- Extract images from any AVI. 

AVI Constructor can be ordered and a demonstration version downloaded

<A HREF="http://www.henge.com/~caracena">http://www.henge.com/~caracena</A>

<H3>MainConcept's MainActor</H3>

MainConcept's MainActor can import sequences of BMP images and export
them as an AVI video file.  MainActor can import and export many other
video and still image formats as well.

<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>

<H3>DeBabelizer Pro for Windows 95 and NT 4.0</H3>

Equilibrium's DeBabelizer Pro can read and write about 90 common
and not so common image file formats.  DeBabelizer Pro can also
mage files in many formats and convert to an AVI file.

Equilibrium has a demonstration version of DeBabelizer Pro on their
Web site.  This is a demonstration version.  It adds the words Equilibrium
to any images or movies that it processes.

DeBabelizer Pro ($595 Suggested Retail Price)
Sausalito, CA  94965
<A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>

<H3>Smacker Utilities</H3>

RAD Game Tools distributes free Smacker utilities
at their Web site:

<A HREF="http://www.radgametools.com/">http://www.radgametools.com/</A>

The Graphics Processor can convert a sequence of bitmap images
n several common bitmap image formats into an AVI file.
NOTE: this AVI file uses an 8 bit color palette selected by
the Smacker utilities for best picture quality.

RAD Game Tools licenses a proprietary 8 bit video format
called Smacker for use in video games.  Their focus is on
compression achieved through proper selection of an 8 bit
color palette, rather than 24 bit color.  Smacker is popular
n the gaming industry.

RAD Game Tools
Salt Lake City, UT 84101
Voice: (801) 322-4300
FAX: (801) 359-6169

<H3>mkavi (PPM to AVI)</H3>

mkavi is a Unix utility with source code to convert sequences of
Unix PPM (Portable Pixmap) files into AVI.  As of 11/7/97, the

<A HREF="ftp://www.va.pubnix.com/staff/stripes/code/">ftp://www.va.pubnix.com/staff/stripes/code/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="FromMOV">
<H2>How to convert QuickTime MOV files to AVI?</H2>

<H3>Power Macintosh:</H3>

The Video for Windows 1.1 Apple Macintosh Utilities from Microsoft is a
collection of utilities and system extensions for the Macintosh that add
Converter which converts QuickTime MooV files to AVI files playable
on the PC.

The Video for Windows 1.1 Apple Macintosh Utilities are available at:

<A HREF="ftp://ftp.microsoft.com/developr/drg/Multimedia/Jumpstart/VfW11-Mac/">ftp://ftp.microsoft.com/developr/drg/Multimedia/Jumpstart/VfW11-Mac/</A>

VfW Converter is more powerful than Intel's smartvid PC application.
convert a raw uncompressed 24 bit QuickTime Movie to a raw 
uncompressed 24 bit AVI Movie (or do various compressions).  
Uncompressed QuickTime and uncompressed AVI files use different
video formats.  VfW Converter also converts audio from QuickTime
audio to AVI audio.

The Video for Windows 1.1 Apple Macintosh Utlities file is
variously named:



Apple's QuickTime Web site contains links to sources for
Video for Windows (Macintosh) as well as other useful
video utilities.

<A HREF="http://quicktime.apple.com/">Apple's QuickTime Web Site</A>

Video for Windows (Macintosh) has the virtue of being free, unlike:

Adobe Premiere (Macintosh)
---reportedly can save QuickTime movies as AVI files.

<H3>On PC/Microsoft Windows:</H3>

TRMOOV.EXE (see below)
can translate MOV to AVI, but I found problems playing back
the AVI files on my 486 PC.  It does not change the 
nterleaving of the audio and video streams in the conversion from
.MOV to .AVI.  TRMOOV preserves the half-second
nterleave of QuickTime movies which is not appropriate for AVI.  AVI

With the half-second interleave of QuickTime the audio will playback for
a half-second while the video is frozen, followed by a half-second of
video with no audio, repeated for the duration of the AVI playback.

The interleave can be fixed using VidEdit.  VidEdit contains algorithms
to properly interleave the audio and video.  Load the offending AVI
file into VidEdit, Select File | Save As ... and give the file a new
name.  This triggers the interleave algorithm.  VidEdit will reorganize
the audio and video to interleave frames instead of half-seconds.

convert the audio video interleave from one format to another, something
TRMOOV seems to have problems with.

Adobe's Adobe Premiere 5.0 for Windows 95/NT can import and export
Windows AVI and Apple QuickTime video files.

<A HREF="http://www.adobe.com/">Adobe</A>

<A HREF="#Top">Return to Top</A>

<A NAME="FromAutodesk">
<H2>Converting Autodesk Animation Files (FLI or FLC) to AVI</H2>


Use Microsoft's VidEdit editor.  This editor can read FLI or FLC files.
Then save the files as AVI files.

Launch VidEdit.  Select File | Open ...

This brings up the Open Video File dialog box.  Under List Files of Type,

Then, choose File | Save As ...

VidEdit will save the file as an AVI file.

Further information on VidEdit is available in the section on editing
AVI files, including where to get VidEdit.


MainConcept's MainActor for Windows 95 and OS/2 Version 1.00
can load Autodesk Animator FLI and FLC files and save in AVI
format.  For further information on MainActor, a shareware

<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>

or e-mail

<A HREF="mailto:info@mainconcept.com">info@mainconcept.de</A>

<A HREF="#Top">Return to Top</A>

<H2>Converting MPEG to AVI</H2>


Use the CONVMPG3.ZIP package of MPEG and AVI utilities.  CONVMPG3
s available for download at the Phade Software MPEG site:

<A HREF="http://www.mpeg1.de/msdos.html">http://www.mpeg1.de/msdos.html</A>

(1) Run DMPEG to convert MPEG-1 to a sequence of RAW still images.

(2) Use RAWRIP to convert the sequence of RAW still images to a 
    sequence of DIB's.

(3) Use VidEdit to convert the sequence of DIB's to an AVI file.
    (or another video editor).  VidEdit is not bundled with 
    CONVMPG3, but is available elsewhere.  

<A HREF="#VidEdit">Go to VidEdit Section</A>  The VidEdit section
of the AVI Overview includes links to sites to download 

Ulead's MPEG Converter can convert MPEG-1 to AVI.

Ulead is:

Torrance, CA  90502
Voice: (800) 858-5323
FAX:   (310) 523-9399
<A HREF="http://www.ulead.com/">http://www.ulead.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="FromGIF89a">
<H2>Converting Animated GIF (GIF89a) to AVI</H2>

MainConcept's MainActor for Windows can load animated GIF
files (GIF89a) and then save these files as AVI files.
MainActor is available in a shareware version or as a fully
functional paid-for version.

On the Web:

<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>

By E-Mail:

<A HREF="mailto:info@mainconcept.de">info@mainconcept.de</A>

<H3>GIF Movie Gear (Gamani Productions)</H3>

GIF Movie Gear from Gamani Productions can reportedly convert
Animated GIF (GIF89a) to AVI and vice versa.

On the web:

<A HREF="http://www.moviegear.com/">http://www.moviegear.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Bitmaps">
<H2>How to Convert a Sequence of Still Images in One Format to a Sequence in Another Format</H2>

At this time, there are hundreds of different graphic file formats
for still images, such as Windows BMP, Windows DIB, Targa, GIF, JPEG,
Unix Portable Pixmap (PPM), and many others.  In creating an AVI (or
MPEG or MOV for that matter), some authoring programs may create a
video as a sequence of still images in some graphic file format
conversion utilities listed elsewhere in this Overview.

Fortunately, there are freeware, shareware, and commercial programs
file format to sequences in another file format.  For example, you 
might generate a sequence of Unix PPM format files with one
utilitity and need to convert to a sequence of Windows BMP files.


(formerly Pixel Vision) Software.  PixWizard reads and writes the
following still image file formats:

o BMP (Windows 3.x, OS/2 1.1, and OS/2 2.0)
o Graphics Interchange Format (GIF)
o Interchange Format File (IFF)
     - including HAM and SHAM modes
o JPEG File Interchange Format (JFIF)
o Kodak Photo CD (PCD)
o Macintosh PICT (including PICT/JPEG)
o MacPaint
o Portable Pixmap (PPM/PGM/PBM)
o Targa 
o Tagged Image File Format (TIFF)

format feature.  Select Batch Conversion... from the File menu in
the PixVision Web site.

WinJPEG is a shareware Windows 3.x utility from PixVision (formerly
as PixWizard.  It has a batch conversion feature.

<A HREF="http://www.pixvision.com/">http://www.pixvision.com/</A>

Jasc Software.  Paint Shop Pro reads and writes most graphic file
formats.  It has a batch conversion feature.

The shareware version of Paint Shop Pro has a thirty (30) day
evaluation period.

Jasc Software Paint Shop Pro Page:

<A HREF="http://www.jasc.com/psp.html">http://www.jasc.com/psp.html</A>

<H3>Power Macintosh</H3>

GraphicConverter is a shareware Power Macintosh utility with
very extensive support for graphic file formats and some video
formats.  It can read and write roughly a hundred different
file formats including some pretty obscure formats.  It has a
batch conversion feature.

GraphicConverter Web Site:

<A HREF="http://www.lemkesoft.de/">http://www.lemkesoft.de/</A>


features.  However, there are some utilities for bitmap conversion.
The Portable Bitmap Utilities can easily be used for batch conversion
through a script.

by Jef Poskanzer

A collection of utilities for converting to and from Jef Poskanzer's
file format.  FREE and widely available on Unix systems.

For example, to convert a GIF file to a TIFF file.

The PBM utilities can be invoked from Unix scripts
(Bourne Shell, Korn Shell, C Shell, Perl, etc.) for batch
conversion of a sequence of bitmap images.

<A HREF="ftp://ftp.x.org/R5contrib/">ftp://ftp.x.org/R5contrib/</A>

There are many files in this directory.  PBMPLUS is:

John Bradley's xv (shareware)

xv is a Unix X-Windows shareware utility for
viewing, manipulating, and converting bitmap images
on Unix X-Windows systems.  xv supports many common
bitmap image file formats.

The xv Version 3.10a Manual states:

"Since xv has absolutely no command-line or batch
conversion abilities..."

xv is available from a number of sites such as:

<A HREF="ftp://ftp.cis.upenn.edu/pub/xv">ftp://ftp.cis.upenn.edu/pub/xv</A>

<A HREF="#Top">Return to Top</A>

<H2>How to convert AVI to QuickTime files?</H2>

<H3>Microsoft Windows</H3>

.AVI to .MOV files.  SmartVID is codec independent.  This means
that SmartVid preserves the video compression scheme from the

<A HREF="http://www.intel.com/pc-supp/multimed/indeo/smartvid.htm">


Windows 3.1 Program
Converts AVI to QuickTime for Windows movie.
The QTW movie will play on a Macintosh with QuickTime 1.5 or later.

Note: My experiments converting some .MOV files to .AVI seem to

Source: Found on CD-ROM with the "How to Digitize Video" book 
(see below).

On Net: <A 

Cinepak, the MOV file will be compressed with Cinepak.  Since Cinepak
s supported by both Video for Windows and QuickTime this is not
a problem.  However, if the compressor exists only in Video for Windows
or only QuickTime, then there will be a problem.

Mainconcept's Main Actor can load many video and animation formats.
of Main Actor can load AVI and save the file as QuickTime.

<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de</A>

Adobe Premiere 5.0 for Windows 95/NT can import and export both
AVI and QuickTime.

<A HREF="http://www.adobe.com/">Adobe</A>


On the PowerMacintosh, Microsoft distributes the Video for
Windows 1.1 Apple Macintosh Utilities.  These include an
AVI to QuickTime conversion utility.

The Video for Windows 1.1 Apple Macintosh Utilities include:

* Read Me file.
* QuickTime-to-AVI conversion program.
      - this utility is called "VfW Converter"

* Utility for moving AVI files to the Macintosh.
      - this utility is called "AVI to QT Utility"

* Windows Compressors system extension, which contains 
  compressor/decompressors (CODECs) for Microsoft RLE, 
  Microsoft Video 1, and Microsoft Full Frame formats.
      - this component is called "Windows Compressors"

To retrieve the Video for Windows 1.1 Apple Macintosh Utilities:

<A HREF="ftp://ftp.microsoft.com/developr/drg/Multimedia/Jumpstart/VfW11-Mac/">ftp://ftp.microsoft.com/developr/drg/Multimedia/Jumpstart/VfW11-Mac/</A>

On the PowerMacintosh, the program AVI->QuickTime can convert AVI to
QuickTime.  At least, it can convert the video successfully for
AVI to QuickTime converter included with the Video for Windows 1.1
Apple Macintosh Utilities; I have not confirmed this.

One site with AVI->QuickTime is:

<A HREF="ftp://mirrors.aol.com/pub/info-mac/gst/mov/avi-to-qt-

<A HREF="#Top">Return to Top</A>

<A NAME="ToGIF89a">
<H2>How to convert AVI to animated GIF?</H2>

<H3>GIF Construction Set</H3>

Gif Construction Set from Alchemy Mindworks reportedly can convert 
an AVI file to an animated GIF file.

Alchemy Mindworks, Inc.

Web <A HREF="http://www.mindworkshop.com/alchemy/alchemy.html">http://www.mindworks.com/alchemy/alchemy.html</A>

E-Mail: alchemy@mail.north.net

FTP: ftp://ftp.mindworkshop.com/pub/alchemy

<H3>Microsoft GIF Animator</H3>

Microsoft's GIF Animator for Windows 95 
GIFs (GIF89a format).  Information on GIF Animator
ncluding a dowloadable version is available at
the Microsoft Web site (11/7/96) on the Microsoft

Web <A HREF="http://www.microsoft.com/imagecomposer/">http://www.microsoft.com/imagecomposer</A>


MainActor, a shareware software product for Windows 95, Windows NT, and 
OS/2 reportedly can convert AVI to animated GIF.

<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>


Ulead reports that is has added AVI to GIF to

Ulead's PhotoImpact GIF Animator 1.2 Beta (11/16/96)

<A HREF="http://www.ulead.com/products/framens.htm">http://www.ulead.com/products/framens.htm</A>

Ulead Toll Free Number: 1-800-858-5323

<H3>Adobe Premiere</H3>

There is (Feb. 1998) a free plug-in for Adobe Premiere 4.x
to convert AVI to Animated GIF.  See the Adobe Web site
to download this and many other plug-ins for Adobe products:

<A HREF="http://www.adobe.com/">http://www.adobe.com/</A>

<H3>GIF Movie Gear (Gamani Productions)</H3>

GIF Movie Gear from Gamani Productions can reportedly convert
AVI to Animated GIF and vice versa.

<A HREF="http://www.moviegear.com/">http://www.moviegear.com/</A>

<A HREF="#Top">Return to Top</A>

<H2>How to convert AVI to MPEG?</H2>

AVI to MPEG Conversion at a Glance

Company/Author(s)  Product           Price             URL

Corel              PhotoPaint        $500?    <A HREF="http://www.corel.com/">http://www.corel.com/</A>

Ulead              MPEG Converter    $249     <A HREF="http://www.ulead.com/">http://www.ulead.com/</A>

                   XingMPEG Encoder 2 (May 6, 1997 release)

CeQuadrat          PixelShrink       $199     <A HREF="http://www.cequadrat.com/">http://www.cequadrat.com/</A>

Vitec              MPEG Maker        $125     <A HREF="http://vitechts.com/">http://vitechts.com/</A>

MainConcept        MainActor         shareware <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>

avi2mpg1           Unknown           freeware   <A HREF="http://www.mnsi.net/~jschlic1/">http://www.mnsi.net/~jschlic1/</A>

Stefan Eckhart and others  CONVMPG3  freeware kit  <A HREF="http://www.powerweb.de/mpeg/msdos.html">http://www.powerweb.de/mpeg/msdos.html</A>

Ligos Technology   LSX-MPEG Encoder  $179.95    <A HREF="http://www.ligos.com/">http://www.ligos.com/</A>


Further information, reviews, and live links follow:

The following posting from the comp.graphics.animation USENET
newsgroup provides a good answer to this question.  I have retained
the header to insure proper credit to the author.

Note: LW refers to the Lightwave 3D animation software package.

From comp.graphics.animation Wed Oct 30 18:16:34 1996
From: Valery <V.V.Kritchallo@twi.tudelft.nl>
Newsgroups: comp.graphics.animation
Subject: Re: AVI to Mpeg converter
Date: Mon, 28 Oct 1996 15:15:14 +0100
Organization: Technical University, Delft
Lines: 58
Message-ID: <3274BFF2.2EDD@twi.tudelft.nl>
References: <01bbc33f$05021880$d73d93cf@cube176a>
Reply-To: V.V.Kritchallo@twi.tudelft.nl
NNTP-Posting-Host: duti504b.twi.tudelft.nl
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Mariusz Jesmanowicz wrote:
> Hi, I use LW to do animation, and basically I am not happy with any of the
> compression engines aviable for avi. Those codes suck. So what I want to do
> is make an UNCOMPRESSED AVI and then translate it to MPEG. anyone know of
> any good converters to MPEG or hoe about plug-in for LW to be able to do
> MPEG files from the start.
> Thank You


you're right, every single AVI compression codec is lame.

t's a tough task, to find the damn thing. I'm busy in this area
quite for a while already, and here are my findings:

compatibility problems before, not anymore, I believe. Can cost
you $150 or more, not sure. Scan for 'XING' on the Net, you'll

commercial programs. (You need to make a TGA sequence first out
of your AVI, though). Again, scan for CMPEG, or use my bookmarks
found on the site Im introducing below.

MPEG compression option. Open an AVI, Save As an MPEG, and see what
on a stream where CMPEG gave up and the Corel's conversion did make
a wonder. (If you like to see the result, download my 'Liquid Beatles'
morph clip, 1 Mb: http://www.proteon.nl/synth_art/movies/cross.mpg).

biggest advantage is good integration with Windows and AVI format.

See my MPEG clips, fractals, morphs, and in general lots of
advanced graphics at 

Hope this helps,


VITEC-HTS (formerly Vitec Multimedia).  Vitec is:

Sarasota, FL 34234
Voice: (941) 351-9344
FAX: (941) 351-9423
<A HREF="http://vitechts.com">http://vitechts.com</A>

CeQuadrat makes a software-only AVI to MPEG converter called

Voice: (415) 843-3780
FAX: (415) 843-3799
<A HREF="http://www.cequadrat.com/">http://www.cequadrat.com/</A>

And the freeware kit CONVMPG3, a collection of MS-DOS
utilities that can be used to convert AVI to MPEG-1 or
MPEG-1 to AVI.  CONVMPG3 includes Stefan
Eckhardt's CMPEG MPEG-1 encoder mentioned above
but also includes utilities to generate the sequence
of Targa files required by CMPEG.  The URL for CONVMPG3 is:

<A HREF="http://www.powerweb.de/mpeg/msdos.html">http://www.powerweb.de/mpeg/msdos.html</A>

avi2mpg1 is a freeware command line application for Windows 95/NT
that can convert AVI to MPEG-1, supports audio, video, and 
nterleaved audio/video.

<A HREF="http://www.mnsi.net/~jschlic1/">http://www.mnsi.net/~jschlic1/</A>

MainConcept's MainActor product now (March 1997) includes
add-on modules to output MPEG-1 and MPEG-2.  With these add-on
modules, MainActor can convert AVI to MPEG-1 or MPEG-2.

Marcus Moenig at MainConcept provided an evaluation copy of the
MPEG-1/2 modules.   In tests, these modules could convert AVI files
to MPEG-1 that could be played using the ActiveMovie software
MPEG player shipping with Microsoft's Windows 95 OSR2.

MainConcept is:

<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de</A>

The URL for Ulead is:

Ulead MPEG Converter
<A HREF="http://www.ulead.com/">http://www.ulead.com/</A>

On May 6, 1997, Xing announce a new product, the Xing MPEG Encoder 2
The original Xing MPEG Encoder did not use MMX instructions.
The Xing MPEG Encoder 2 can convert AVI and WAV files to MPEG-1.

The URL for Xing is:
<A HREF="http://www.xingtech.com">http://www.xingtech.com/</A>

Ligos Technology markets an LSX-MPEG Encoder to convert
AVI to MPEG-1 and MPEG-2

Ligos Technology
San Francisco, CA 94103
+1-415-437-6139 FAX

<A HREF="http://www.ligos.com/">http://www.ligos.com/<A>

For further information on the MPEG digital audio and video
format see Tristan Savatier's comprehensive MPEG site:

<A HREF="http://www.mpeg.org/">http://www.mpeg.org/</A>

and The MPEG Home Page:

<A HREF="http://drogo.cselt.it/mpeg/">http://drogo.cselt.it/mpeg/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="ScreenCapture">
<H2>How to capture screen to AVI Files</H2>

<H3>Microsoft Camcorder</H3>

Microsoft distributes a free screen capture utility called 
Microsoft Camcorder (sometimes abbreviated MSCamcorder).  Camcorder
can save screen captures as AVI files or a .EXE file.

<A HREF="http://www.microsoft.com/msoffice/office97/camcorder/default.htm">http://www.microsoft.com/msoffice/office97/camcorder/default.htm</A>


See the following posting from Greg Kochaniak dated 5/10/97 from the 
comp.archives.ms-windows.announce newsgroup.

ftp://ftp.simtel.net/pub/simtelnet/win95/mmedia/hycam119.zip   251872 bytes

HyperCam v1.19 captures the action from Windown 95 or NT screen in any
and tutorials.

Special requirements: Windows 95 or Windows NT.

Changes: Fixed two problems: starting recording in 256 color mode would
to front and realize its palette). The other problem: selecting AVI file
name with Browse button would not always work correctly.

Shareware.  Uploaded by the author.

Greg Kochaniak, Hyperionics


TechSmith Corporation markets a Microsoft Windows product called
SnagIt which can capture the screen to AVI files.  SnagIt also can
capture the screen to still image formats such as BMP.

<A HREF="http://www.techsmith.com/">http://www.techsmith.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="AuthorAVI">
<H2>Authoring Tools to Create AVI Files</H2>

A wide variety of 2D and 3D animation applications as well as other
multimedia authoring tools generate AVI files directly.  This is
especially true for Windows versions of applications, since Microsoft
that can create AVI files follows.    

<H3>LightWave 3D 5.5 for Windows 95 and Windows NT</H3>

LightWave is a popular 3D modeling and animation program
anything and supports third party plug-ins to add features that
t lacks.

Note: According to product literature on the NewTek Web site.

<A HREF="http://www.newtek.com/">http://www.newtek.com/</A>

<H3>Caligari Truespace 1,2, and 3 for Windows</H3>

Caligari TrueSpace is a popular low-end 3D modeling and animation
ts usefulness for modeling organic forms.  TrueSpace 3.0 adds

Caligari Corporation
Note: Confirmed from personal use of Caligari TrueSpace.

<A HREF="http://www.caligari.com/">http://www.caligari.com/</A>

<H3>Fractal Design Ray Dream Studio for Windows </H3>

Ray Dream Studio is a suite of 3D modeling, animation, and rendering

Fractal Design
Note: According to product literature on Web site.

<A HREF="http://www.fractal.com/">http://www.fractal.com/</A>

<H3>Macromedia Director 6.0 for Windows</H3>

Macromedia Director is a widely used authoring tool for creating
nteractive 2D animations such as presentations, multimedia for
kiosks, prototypes of user interfaces, and similar uses.  Director
can also produce straight 2D animations appropriate for AVI files.

Note: According to product literature on the Macromedia Web site.

<A HREF="http://www.macromedia.com/">http://www.macromedia.com/</A>


Corel's CorelMOVE animation software can export AVI files.

<A HREF="#Top">Return to Top</A>

<A NAME="Capture">
<H2>How to create AVI files from analog video:</H2>

<H3>Video Capture Cards</H3>

On Intel based PC's, use a video capture card to convert analog video
from video tapes or video cameras to AVI files.  A PC video capture card
s typically either a 16 bit ISA bus card or a 32-bit PCI bus card that
Most video capture cards have either a composite video connector or
both a composite video and an S-Video connector.  Most video capture
cards perform compression of the video in hardware or firmware on the
video capture card before tranferring the compressed video over the ISA
or PCI bus to the PC hard drive.

Most video capture cards only capture video.  They do not contain audio
capture.  Audio capture is done through the audio or sound card of the
computer.  It is increasinly common to have the audio input and output 
a physically distinct sound card.

Sound cards usually have a Microphone input jack, a Speaker or 
Headphone output jack, a Line input jack, and a Line output jack.
Line input and the microphone input are not interchangable.  The
the microphone for input and speakers or headphone for output.

<A NAME="VfWCapture">
<H4>Video Capture in Video for Windows</H4>

Under Microsoft Windows, video capture cards come with a Video for
Windows capture driver (CAPTURE DRIVER).  The capture driver exports
that any Video for Windows software application can call.
Any Video for Windows video capture application, including video
editing applications that support video capture, can and must use this
Video for Windows capture driver to capture video.

Windows 3.x, Windows 95, Windows NT 3.51, and Windows NT 4.0 all use
Video for Windows capture drivers.  ActiveMovie 1.0 for Windows 95 and
Windows NT 4.0 does not provide a mechanism for video capture, only
video playback.  Video for Windows continues to be the software
component for video capture.

The capture driver may consist of a single file or multiple
files.  The capture driver is identified by the name MSVIDEO (in
the SYSTEM.INI file in Windows 3.x and Windows 95 for example).
a line such as


video-conferencing system.  

This file may in turn invoke other separate files that form
the rest of the video capture driver.  For example, the
nstallation program for the miroMEDIA PCTV TV Tuner and
Video Capture Card installs eleven (11) different files
to support the Brooktree Bt848 video capture chip on the 
card.  This card consists of some connectors, a few resistors
and capacitors, and the Bt848 chip.

by selecting System in the Windows 95 Control Panel.  Then select the
Device Manager tab.  System | Device Manager is actually a user friendly
nterface to the Windows 95 Registry which contains all of the
nformation about a device such as names and locations of driver
files, hardware resources used, and other data in a complex database.
The Device Manager contains icons representing all the devices
nstalled on the computer.  The video capture card and associated
category or "Other Devices".

Each device has "Properties".  Users can view and change the properties
either by:

(1) Click once on the device icon in System | Device Manager to select
the device.  
(2) Click once on the Properties Button in System | Device Manager.


(1) Double-click on the device icon in Device Manager.

The Device Properties usually have a General, a Driver, and a
Resources tab.  The Driver and Resources Tabs may be absent in some

Users can usually determine the version of the device driver
from the Driver tab of the Device Properties in System | Device
Manager.  The Driver tab usually lists all of the files 
nstalled on the system that make up the device driver.

Use the Driver tab to install or update the video capture driver.  The
Driver tab contains a Change Driver... button.  Clicking on the Change
Driver... button will bring up a list box with the devices and drivers
known to Windows 95.  The relevant video capture card and driver may
be in this list.  The user may need to provide a disk or CD-ROM with
the drivers and a Device Information (INF) file.  If the driver is not
on the list of available drivers, the user must click on the Have
Registry and the INI files.

Use the Resources tab to view and change the hardware resource
addresses used by the video capture card.  It is not uncommon for a
newly installed video capture card to have an IRQ conflict with other
fail to resolve it.

Windows 95 automatically assigns resources such as IRQ levels to 


(0) Make sure that you have the installation CD-ROM or disks with the

(1) Click on the device icon in Device Manager.
(2) Presss the delete button on your keyboard or click the Remove
button on System | Device Manager.

When Windows 95 restarts, it will again automatically detect the
user for a disk or CD-ROM with the needed drivers.  As above, the disk
or CD-ROM will need a Device Information or INF file to tell Windows
Windows 95 may get it right.  Users must delete the device before
t will simply use the information currently displayed in Device

fails to fix the problem, the user can manually set the IRQ level and
other resources through the Resources tab in the Device Properties in
System | Device Manager.  Uncheck the "Use automatic settings" check
box.  Then, the user can manually change the IRQ, DMA, and I/O
no choice but to manually set the resources.

nformation by selecting the Multimedia icon (applet) in the Windows
Video Capture Devices icon from the icons in the Advanced Tab.  This
con; users must use System | Device Manager in the Control Panel.

Typically, when a user installs the software for a video capture card,
the installation will install the Video for Windows capture driver for
the video card, Video for Windows if needed, non-standard Video for
Windows compression drivers, and some video capture and editing

Microsoft shipped a simple Video Capture application called
VidCap, a 16-bit application, with the original 16-bit Video for
Windows (full, not run-time).  There is also now a VidCap32, a 32-bit
video capture application.  Many other applications such as Adobe

The video capture drivers provide a Video Source dialog box for
options.  The Video Source dialog box varies from video card to 
video card.  It can include options to adjust the brightness or
color of the video image.

The capture drivers also provide a Video Format dialog box for selecting
the color format (image format or pixel format) of the image, the image
compression built into the video capture card, and miscellaneous
other features.

Users can access the Video Source and Video Format dialog boxes through
their video capture software application.  In VidCap, select the
Options menu.  Then Video Format... to get the Video Format dialog
box.  Video Source... to get the Video Source dialog box.

See below for further discussion.

<A NAME="VFormats">
<H4>Analog Video Formats</H4>

Composite video signals are analog signals that combine luminance and
chrominance (color) information in a single analog signal that can be
transmitted over a single wire or stored in a single track on an
analog magnetic tape.  The NTSC video signals used by commercial
television sets in the United States and Japan are an example of
composite signals.  Composite video is particularly prone to errors in

S-Video video signals separate the luminance and chrominance
nformation into two separate analog signals that can be transmitted
over two separate wires or stored in two separate tracks on an analog
tape.  S-Video is generally superior to composite video in reproducing
colors correctly.  The S-VHS and Hi8 video tape standards use S-Video.
Ordinary VHS video tape uses composite NTSC signals.  Thus, in
capture card will provide better video quality.

A third type of video signal is component video.  In component video, the
luminance (Y) and two color difference signals (U and V or I and Q) are
over three separate wires or stored in three separate tracks on an
analog tape, or digitized separately.  Component video is used in
most accurate reproduction of colors.  The professional Betacam SP video
cameras use component video.  The current generation of widely used

<H4>Capture with Motion JPEG Compressed Video</H4>

Typical PC video capture cards store the digitized compressed video as
an AVI file using Motion JPEG compression.  Motion JPEG is used
nstead of other compression schemes because each frame is compressed
capture.  If a compression scheme that uses frame differencing - where
a frame is stored as the differences between the frame and a previous
frame (such as MPEG) - is used, it is difficult to edit the video.

Typical PC video capture cards are bundled with non-linear video editing
compressed AVI file and ultimately compress the edited AVI file using 
compression such as Cinepak using frame differencing for maximum

compression scheme such as Motion JPEG or MPEG because uncompressed
video places very high demands on the bandwidth of the ISA or PCI bus
and on the bandwidth to the hard drive.  In addition, uncompressed
video can fill even very large hard drives very quickly.

<H4>Capture with Uncompressed Video (Color Formats)</H4>

A number of video capture cards such as those based on the Brooktree
Bt848 and Bt848a video capture system chip save uncompressed video
n alternative color formats to the common 24 bit RGB color format.
Such as the 15 bit RGB color format or YUV9 color format.  These
formats represent a pixel with less than 24 bits, reducing bandwidth
and storage requirements.  Color formats may also be known as

not be supported by graphics software, video editors, or playback
view a BMP may occur with AVI files or BMP still images created with

<A HREF="#ColorFormats">Color Formats Section</A>

and drivers to perform video capture such as Microsoft's VIDCAP.EXE
(16 bit) or VIDCAP32.EXE (32 bit) or Intel's SMARTCAP.EXE or other similar

Video capture drivers may provide the ability to select different
color formats for uncompressed AVI video, such as RGB15 or YUV9.  With
Vidcap and Vidcap32, select Options | Video Format ... to set the
color format for a video capture session and file.  Video Format ...
nvokes a Video Format dialog box provided by the video capture

Users can usually use the Video Format dialog box to select the
may be identified as IMAGE FORMAT or PIXEL FORMAT.  

NOTE: Windows 95 and Windows NT require different device drivers.
Most video capture cards have drivers for Windows 95.  Only some
at the end of this section.

<A NAME="CaptureCards">
<H4>Recent Video Capture Cards (PCI)</H4>

Some current (1/11/97) popular PC video capture cards that generate
AVI files are:

Digital Processing Systems (DPS) makes high end video capture cards
for the broadcast and studio markets.  Some of these cards can
capture video on the PC.  Some of these cards are designed for
Windows NT and include Windows NT device drivers.

<A HREF="http://www.dps.com/">http://www.dps.com/</A>

FAST AV Master PCI 60 field/60fps with Motion JPEG, Includes Ulead's
Media Studio Pro digital video editing application.

<A HREF="http://www.fast-multimedia.com">FAST Web Page</A>

Truevision Bravado 1000 50/60fps 32-bit PCI video capture board with Motion JPEG, Includes Adobe 

<A HREF="http://www.truevision.com/">Truevision Web Page</A>

MiroVideo DC30 PCI, complete non-linear video and audio editing for
Windows 95, Includes Adobe Premiere 4.2 Full Version

<A HREF="http://www.miro.com/">miro Web Page</A>

Azeena Vision 500 640x480 30 fps Motion JPEG PCI Capture Card
Up to 3:1 compression.

<A HREF="http://www.azeena.com/">Azeena Web Page</A>

Hauppauge WinTV PCI TV-tuner and Video Capture Cards.
This is a family of TV-Tuner and Video Capture cards.
Built around the Brooktree Bt848 video capture chip.

<A HREF="http://www.hauppauge.com/">Hauppauge Web Page</A>

Winnov Videum AV, Half size ISA card, composite and S-Video
nput, claims to capture 352x240, 24 bit, AVI videos at 30
frames per second (must be compressed to fit across ISA bus - JFM)

<A HREF="http://www.winnov.com">Winnov Web Page</A>

video compression.  Includes a composite (NTSC) video input and an
S-Video input, RCA and S-Video cables, Asymetrix Digital Video

<A HREF="http://www.intel.com/imaging">Intel Page</A>

U.S. Robotics markets the Bigpicture Video capture card and NTSC
camera for about $249.99 (7/22/97).  The video capture card is a PCI
+5 Volt, 1 Amp power output jack for the NTSC camera.  The video
capture card uses the single Brooktree Bt848 chip, a complete video
capture system on a single chip.

capture system on a single chip.  More information on the Bt848
can be found at:

<A HREF="http://www.brooktree.com/brooktree/html/pr_bt848.html">Brooktree Bt848 Press Release</A>

Bigpicture can capture NTSC composite video at 30 frames per second at

Bigpicture also comes in versions with U.S. Robotics modems.  The idea
s that this can be a PC video phone.

Bundled software includes Kai's Power GOO Special Edition, Asymetrix
Digital Video Producer to capture and edit video, VDONet's VDOPhone (trial
edition), and VDONet's VDOLive player.


Service Release 2) on a 200 MHz Pentium with MMX, 32 MB RAM, two
Western Digital IDE hard drives (2GB and 5 GB), and a 12x CD-ROM.

The installation was difficult due to resource conflicts.  At first
the video capture card appeared to conflict with the SupraExpress 336i
capture card started to work, but the modem stopped working.  A conflict
between the modem (an ISA card modem) and the COM1 serial port was
Device Manager tab).  I fixed this by disabling the automatic
Request) level.

While the documentation provides some pointers on these conflicts, I found
the problem frustrating and difficult to fix although I am moderately
familiar with PC installation and configuration.  

Once fixed, the camera and video capture card worked fine.  My modem

U.S. Robotics
Skokie, IL  60077-2690

<A HREF="http://www.usr.com/">http://www.usr.com/</A>

<H4>Old Video Capture Cards (ISA) </H4>

Some widely used older, 16-bit ISA cards, are:

Video Spigot from Creative Labs
       - 16-bit ISA Card
       - RCA Jack for Composite (NTSC/PAL/SECAM) Video Input
       - S-Video Connector
       - Windows 3.x Drivers (16 bit)

Media Vision Pro Movie Studio
       - 16-bit ISA Card
       - RCA Jack for Composite (NTSC/PAL/SECAM) Video Input
       - S-Video Connector
       - Windows 3.x Drivers (16 bit)

       - 16-bit ISA Card
       - RCA Jack for Composite (NTSC/PAL/SECAM) Video Input
       - S-Video Connector
       - Windows 3.x Drivers (16 bit)
                - Version 2.20.061 (known to run under Windows 95)

       The Smart Video Recorder contains chips to accelerate
and implement Intel's Indeo 3.x and YVU9 proprietary formats.  
These allowed it to capture video with Indeo compression on 486
machines even though Indeo encoding is very compute intensive.
The special chips on the board encoded the video instead of the

       Intel is no longer supporting the Intel Smart Video Recorder
(Oct. 1997).  Drivers and other support information are still available
at the Intel Web site.

       I've successfully installed and used the Intel Smart Video
Recorder Pro on two different machines under Windows 95 with 
Driver Version 2.20.061 of the drivers for this card.

<A NAME="ParCapture">
<H3>Video Capture through PC Parallel Port</H3>

A few products enable video capture through the parallel port of
your PC.  In principle, this eliminates the difficulties of opening
your PC case and installing a video capture card.  A parallel port
capture system consists of a camera and/or adapter that plugs into
the parallel port of your PC and some associated software - usually
Microsoft Windows drivers and applications.

Alaris QuickVideo Transport

Alaris QuickVideo Transport is an adapter that plugs into a PC-compatible
video in NTSC, PAL, and SECAM from RCA plug/composite and S-Video sources.

Alaris Corporation
Fremont, CA  94538
(800) 317-2348 (Voice)
(510) 770-5700 (Voice)
(510) 770-5769 (FAX)

<A HREF="mailto:sales@alaris.com">sales@alaris.com</A>

<A HREF="http://www.alaris.com/">http://www.alaris.com/</A>

<A HREF="http://www.dartek.com/products/qvtransport.htm">http://www.dartek.com/products/qvtransport.htm</A>

Connectix QuickCam

Color QuickCam is a small solid-state camera that plugs into the

<A HREF="http://www.connectix.com/">http://www.connectix.com/</A>

<H3>What to do about horizontal tearing in the video?</H3>

from where it should be.  For example, a flag pole might be displaced
to the right creating a zig-zag or even a break in the pole.

          | |          
          | | 
          | | 
          | |
           | | (tearing begins here)
           | |    
           | |
           | |
            | | (more here)

Tearing is a common problem when capturing video from the output of an
analog video tape such as a VCR.  It can happen in other contexts as

Analog video such as NTSC, PAL, and SECAM composite video has a
vertical synchronization signal at the end of each frame.

The motors and mechanical parts in the transport mechanism of a 
video tape player can slip slightly, causing the analog signals and
times.  Video monitors, capture cards, and other video equipment

Digital video capture cards can be very sensitive to the timing jitter
n the output of video tape players.  Tearing will occur because the
than analog video monitors and other analog video equipment which are
better designed to handle timing jitter in the analog signals.

Devices called Time Base Correctors (TBC) can adjust for jitter in
the timing of the analog video synchronization signals and other
cards for PC's and as black boxes inserted between the video

Time Base Correctors are available from:

<A HREF="http://www.primeimageinc.com/">http://www.primeimageinc.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="HDCapture">
<H3>Hard Drive Video Capture Issues</H3>

Digital video capture requires writing data to the PC hard disk
at sustained very high data rates.  The higher the resolution and
quality of the digital video, the higher the data rate the hard disk
must handle.

more) disable the thermal recalibration during data writing.

This supposedly allows an AV hard drive to capture higher video
end video capture, you may need a special AV drive.

<A NAME="NTCapture">
<H3>Video Capture Cards with Windows NT Drivers</H3>

The DPS (Digital Processing Systems) Perception ISA video capture card.

The DPS PVR-2500 Perception Video Recorder (PCI-bus) 
for Intel and DEC Alpha Windows NT workstations.  An optional
AD-2500 real time video capture daughter card adds component,
S-Video, and composite video inputs to this high-end product.
The AD-2500 is the actual capture card in this product which is
a "digital video disk recorder system".

The DPS HVR-2800 Hollywood Video Recorder (PCI and ISA).  The PCI
version is available for both Intel and DEC Alpha Windows NT

DPS makes PC video products aimed at the studio and broadcast

<A HREF="http://www.dps.com/">http://www.dps.com/</A>

The Truevision Targa 2000 video capture card.

<A HREF="http://www.truevision.com/">http://www.truevision.com/</A>

The Osprey 100 PCI Video Capture Card works under Windows NT as well
as Windows 95.  The Osprey Systems Division of Multimedia Access
Corporation makes a line of video capture cards, all or some with

The Osprey 100 is a PCI board based on the BrookTree Bt848 single-chip
video capture device.  The version of the Osprey 100 that I have seen
The Osprey 100 has software and drivers for both Windows NT 3.51 and
Windows NT 4.0

The NT software for the Osprey 100 (10/8/97) consists of the VidCap32
video capture application, a Video for Windows Capture Driver, and
a Windows NT Device Driver for the Osprey.  There are at least
two versions of the software: 0.93(beta) and 0.95(beta).  On

The anonymous ftp site also contained directories for a 1.00 version
of the software that could not be downloaded (10/7/97).

The 0.95(beta) software from Osprey is a single Windows executable
that easily installs VidCap32 and the drivers, also updating the
NT taskbar, registry, and so forth.

The Osprey 100 with the 0.95(beta) drivers captures video under NT 4.0
At least in some of my experiments, VidCap32 exhibited some problems
although it was possible to repeatedly capture AVI clips.  Problems
ncluded flawed updating of the VidCap32 window and sluggish

System Tested:

(Micron Millenium PC) Intel Pentium 132 MHz with 48 MB RAM
Windows NT 4.0 (Build: 1381  Service Pack 2)
Osprey 100 PCI Video Capture Card with 0.95(beta) drivers for Windows NT
Diamond Multimedia Stealth64 Video 2001 PCI (2MB RAM)
Creative Labs Vibra 16 ISA sound card with NT 4.0 Drivers

<A HREF="http://www.osprey.mmac.com/">http://www.osprey.mmac.com/</A>

<A HREF="#Top">Return to Top</A>

<H2>How to Create AVI Files from Television</H2>

To create an AVI file from your favorite television program, there
are two approaches.

Television is transmitted over radio frequency (RF) waves.
The NTSC, PAL, or SECAM composite analog television signals
are modulated onto high frequency radio waves to create the
familiar television channels.  In the United States, television
channels 2 through 69 cover the range from 54 MHz to

Traditional analog Cable Television (CATV) works much the
the open air.

A device usually referred to as a tuner can demodulate the
television radio frequency signal and extract the NTSC, PAL, or
SECAM composite analog signal.   Television sets, Video
Casette Recorders (VCR) and cable television set top boxes contain a tuner.

The easy way to turn your favorite television show into an
AVI is to record the show to a videotape using a VCR.  The VCR
can output the composite analog video signal to a video
capture card in your PC (see the section on creating AVI from
composite analog video).

A number of companies market TV tuner cards for PC's.  In this
case you can feed the television radio frequency (RF) signal
nto the TV tuner card which will demodulate the NTSC, PAL, or
SECAM signal.  Use an associated video capture card to convert
the demodulated composite analog video to an AVI files.

ATI Technologies, for example, markets a PC TV Tuner.

A VCR circumvents the often painful installation problems

<A HREF="#Top">Return to Top</A>

<A NAME="Morph">
<H2>How to Create Morph Effects for AVI</H2>

Morphing is a technique for progressively transforming one image
nto another image, or one video sequence into another.
For example, a video producer might morph one face into another.

STOIK Software markets a tool called

Morph Man for Windows 95

<A HREF="http://www.stoik.com/">http://www.stoik.com/</A>

Morph Man can create AVI files with a still image morphing into
another still image, or one video sequence morphing into another.

STOIK provides a demonstration version of Morph Man for
evaluation purposes.  

<A HREF="#Top">Return to Top</A>

<A NAME="Win95">
<H2>Reinstalling Microsoft's Video for Windows in Windows 95</H2>

This requires the Windows 95 CD-ROM.  One can either reinstall
Windows 95 (probably not what you want to do) or manually remove
Video for Windows and manually reinstall the files that make up
Video for Windows under Windows 95.

Truevision's Technical Support has a good note on how to do this.
Although it does not appear to be copyrighted, I felt uncomfortable
cutting and pasting it into the AVI Overview.  The URL is

<A HREF="http://www.truevision.com/Support/vfwwin95.html">http://www.truevision.com/Support/vfwwin95.html</A>

<A HREF="#Top">Return to Top</A>

<H2>How to get Microsoft ActiveMovie 1.0</H2>

ActiveMovie is Microsoft's successor to Video for Windows.
ActiveMovie 1.0 is shipped with OEM Service Release 2 of Windows 95.
ActiveMovie 1.0 is also bundled with Microsoft Internet Explorer for
Windows 95 and Windows NT 4.0.  ActiveMovie 1.0 is available for Windows

ActiveMovie 1.0 plays AVI, QuickTime, and MPEG files.  

ActiveMovie 1.0 is incorporated in Internet Explorer.  A full
nstall of Internet Explorer can be downloaded from Microsoft's
Web site.  Microsoft also provides a free download of just
ActiveMovie 1.0.  Both can be downloaded from the Microsoft

<A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>

Click on Internet Explorer for 95 and NT 4.0 link to get to the
Select "Active Movie 1.0 for Windows 95 and NT 4.0" to get just
ActiveMovie 1.0

Click the "Next" button.

This brings up a page to select the language from another pulldown
list.  Pick your language (e.g. U.S. English).

Click the "Next" button.

This brings up a list of links to download sites for amov4ie.exe

Dowload this executable and run.  It installs Active Movie 1.0

<A HREF="#Top">Return to Top</A>

<A NAME="NT40">
<H2>Installing and Configuring AVI Codecs in NT 4.0</H2>

The Microsoft Windows NT 4.0 applications and operating systems
are configured through the NT Registry, which is similar to the
Windows 95 Registry.  Although Windows NT 4.0 and Windows 95 share
a desktop user interface, there are some significant differences
between the NT 4.0 Registry and the Windows 95 Registry.

n a [drivers32] section in the SYTEM.INI file.  This differs from
Windows 95.  The Video for Windows configuration information appears
to be stored almost exclusively in the NT Registry in NT 4.0.

The NT Registry can be viewed and modified through the Control

You can view and change which audio and video codecs are installed
through the Multimedia icon in the Windows NT 4.0 Control Panel (in My
Computer).  This works much the same as the Multimedia icon in the
Windows 95 Control Panel (in My Computer).  

Double click on the Multimedia icon to launch the Multimedia applet.
Select the Devices tab within the Multimedia applet.  This tab gives a
list of installed multimedia drivers including hardware device

(cute icon)Video Compression Codecs
(cute icon)Audio Compression Codecs

Double-click on these to view the installed audio and video codecs.

There are buttons to Add.. or Remove... multimedia devices
ncluding the audio and video codecs.

To Add a video codec, click the Add... button.  This gives an Add
"Unlisted or Updated Driver".  If you need to use "Unlisted or Updated
Driver" you will need a directory on a floppy disk, CD-ROM, or your
) file.  Depending on what you are doing, the needed directory may be
on a floppy provided with a product, on the Windows NT installation
CD-ROM, or constructed manually by you or someone else.  The INF file
Registry.  Windows read the INF file and follows the directives.

You may need a different (NT specific) INF file to install under
Windows NT 4.0 than Windows 95.

The 32 bit video codecs are installed in the \WINNT\SYSTEM32

NOTE: Using the Remove... button to remove a codec does not
codec disappear from the list of codecs displayed when
Add... is selected.  Remove... appears to simply disable
the video codec so that it is not invoked.  Use Add... to
enable the codec after Remove...

The other option to install a codec is to use an installation 
the needed files to the correct directories in the NT file 
an install program from a Web site or other convenient source.
nstall program does all of the work.

NT 4.0 appears to be able to use the same 32 bit video codecs as
Windows 95, for example Cinepak for Windows 32.  Keep in mind that
uses VxD's) and NT 4.0.  Only some parts of Windows 95 and NT 4.0 can
use the same code.

<A HREF="#Top">Return to Top</A>

<H2>How to change frame rate of AVI files</H2>

You may want to change the frame rate of an AVI.  For example, you
may want to convert a video captured at 30 frames per second (NTSC)
to 15 or 10 frames per second to reduce the size of the file.  This
type of conversion throws away frames; it does not play the AVI in

Video editors usually contain this function.

For example, the free VidEdit video editor can convert the frame rate
of AVI files.  


Video | Convert Frame Rate ...

n VidEdit

For more on video editors, see <A HREF="#Edit">Video Editors</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Crop">
<H2>How to crop an AVI file</H2>

Microsoft VidEdit 1.1 can crop an AVI file, that is create
another AVI file with a rectangular region of the original AVI


Video | Crop ...

n VidEdit

Undoubtedly, many other AVI video editors can crop AVI files.
Microsoft VidEdit 1.1 has the special virtue of being free and
available on the Web.

For more on video editors, see <A HREF="#Edit">Video Editors</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Edit">
<H2>How to edit AVI files:</H2>

Several applications exist to edit (cut, paste, etc.) AVI files.
Such applications are known as video editors.  Sometimes such
traditional videotape or film based editing.

Video editors range from very simple applications to very sophisticated

<H3>Video Editor Features</H3>

Common video editor features include:

	* cut, paste, and deleting video sequences
        * selecting video codec and compression settings
        * selecting audio codec and compression settings
        * converting video frame rate
        * converting audio sampling rate
        * adjusting synchronization of audio and video 
        * converting color depth of video (24, 16, or 8 bit usually)
        * converting to NTSC or PAL safe colors
        * adding transitions and other special effects
        * applying image processing filters to video
        * adding text and subtitling
        * much more in high end video editors....

<A NAME="VidEdit">

The full 16 bit (Windows 3.x) Video for Windows from Microsoft (not
the "Run Time") shipped with a simple video editing program VidEdit.
VidEdit can cut, paste, concatenate, add sound, and do many other
things to AVI files.  VidEdit can be downloaded from a number of

WARNING: Microsoft's NetShow audio/video/multimedia streaming
VDONet's VDOWave.  The NetShow Player installation installs decode
only versions of these codecs, none of which will display in the list
of codecs in VidEdit, sensibly enough.  The NetShow Tools install
codecs with encoder capabilities.  These will show in the VidEdit
list of codecs.  See the section on NetShow for further information.

Some video editors such as Asymmetrix Digital Video Producer (DVP)
codecs for compression, even though these codecs do not compress
video.  In fact, if these decode-only codecs are selected to
compress a video clip, the AVI file is not compressed although an AVI
file is generated.

VidEdit does recognize the following 32 bit Video for Windows codecs:

     Intel Indeo (R) Video Interactive [32]
     Intel Indeo (R) Video R3.2 [32]
     Intel Indeo Raw R1.2 [32]
     Microsoft Video 1 [32]
     Cinepak Codec by Radius [32]
     Indeo video 5.0 [32]

     VDONet VDOWave [32]
     MPEG-4 High Speed Compressor [32]

As far as I can tell Microsoft is not currently distributing VidEdit.
However, a file winvid.zip is bouncing around the Net.  This file
ncludes the Video for Windows run time along with a number of Video Tools
ncluding VidEdit and VidCap (Microsoft's video capture tool).

Disclaimer: I am not certain what the legal restrictions on 
VidEdit or winvid.zip are.

<H4>EarthStation 1 Archive of Windows Freeware and Shareware</H4>

Microsoft's VidEdit Video Editor is also available at:

EarthStation1: Recommended Shareware and Freeware Page

<A HREF="http://www.attention.net/wandarer/software.html">http://www.attention.net/wandarer/software.html</A>

The preceding link now contains links to mirror sites for the EarthStation 1

The LaJolla Earthstation 1 mirror site is:

<A HREF="http://earthstation1.simplenet.com/software.html">http://earthstation1.simplenet.com/software.html</A>

Once you have reached the EarthStation 1 page, click on the Graphics 
link to jump to the Graphics Editors section.  VidEdit is in this
on this page feature of your Web browser.

Click to download VidEdit.

There is also a mirror site at:

<A HREF="http://mirrors.org.sg/earthstation/software.html">http://mirrors.org.sg/earthstation/software.html</A>

<H4>Alchemedia Inc. Shareware Page</H4>

The Alchemedia Inc. shareware page contains a file videdit.zip with

<A HREF="http://www.alchemediainc.com/sharewar.html">http://www.alchemediainc.com/sharewar.html</A>

<H4>Greg Hughes Home Page </H4>

<A HREF="http://www.public.iastate.edu/~gregngng/">http://www.public.iastate.edu/~gregngng/</A>

Note that I found this site hard to connect to although I was eventually able
to download winvid.zip

<H3>Personal AVI Editor</H3>

FlickerFree markets an inexpensive/shareware avi editor for
Windows called Personal AVI Editor.

<A HREF="http://www.flickerfree.com/index.html">http://www.flickerfree.com/index.html</A>

<H3>MGI VideoWave </H3>

MGI Software Corporation (Toronto, Canada) markets a PC video
capture and editing program called VideoWave.  VideoWave supports
AVI, QuickTime, and MPEG.  Suggested price: $99

<A HREF="http://www.mgisoft.com/">http://www.mgisoft.com/</A>

<H3>Corel Lumiere Suite for 32-bit Windows</H3>

Lumiere is a new contestant in the PC video editing game. (May, 1997)

Corel Lumiere Suite for 32-bit Windows
List Price on Corel Web Site: $89 (US)

Corel Corp.
Ottawa, Ontario, Canada
(800) 772-6735
(613) 723-3733
FAX: (613) 728-9790
<A HREF="http://www.corel.com/">http://www.corel.com/</A>

<A HREF="http://www.corel.com/products/lumiere/index.htm">Corel's Lumiere Web Page</A>

<H3>Ulead Media Studio Pro</H3>

Ulead's Media Studio Pro ( around $300 )
<A HREF="http://www.ulead.com/">http://www.ulead.com/</A>

<H3>Asymetrix Digital Video Producer</H3>

Asymetrix's Digital Video Producer (DVP)

Typical Retail Price: $69.95 (Sept. 1997)

A simple digital video capture and editing program for Windows 95 and
Windows NT.  DVP is bundled with many video capture cards and is
also available retail.  More information is available at the Asymetrix
Web site.

<A HREF="http://www.asymetrix.com/">http://www.asymetrix.com/</A>

<H3>Adobe Premiere</H3>

Adobe Premiere is the reigning king of desktop video editing

Adobe Systems Premiere ( around $500 )
<A HREF="http://www.adobe.com/">http://www.adobe.com/</A>


n:sync produces SpeedRazor Mach 3.51 (5/16/97), a professional
non-linear editing (NLE) video editor for Windows NT for the
Broadcast industry.  This can handle AVI as well as other formats.

Speed Razor (not cheap)
<A HREF="http://www.in-sync.com/">http://www.in-sync.com/</A>

<A HREF="#Top">Return to Top</A>

<H3>Fast Movie Processor</H3>

October, 1998.
Fast Movie Processor, version 1.41
Copyright 1997,1998 Robert Tibljas and Zeljko Nikolic


The program's purpose is to convert and process image sequences and
movies. While converting it can apply many image filters and 
functions like emboss, brightness, contrast, gamma correction, blur, 
AVI movie, change resolution of images or perform quick changes and 
adjustments. Program is easy to use and highly optimized for speed. 
Disk usage is reduced to the minimum.


This program uses shareware distribution concept. If you intend to 
use Fast Movie Processor only for non-commercial purposes you are
not obligated to register. However, if you are using it for 
commercial purpose you must register it before.

E-mail:     <A HREF="mailto:rapidi@planetall.com">rapidi@planetall.com</A>

Home page:  <A HREF="http://www.bigfoot.com/~rapidi">http://www.bigfoot.com/~rapidi</A>
            <A HREF="http://members.xoom.com/rapidi">http://members.xoom.com/rapidi</A>

<A HREF="#Top">Return to Top</A>

<H3>Peck's Power Join</H3>

A program to join AVI files end to end.

<A HREF="http://members.tripod.com/~grok/video.htm">http://members.tripod.com/~grok/video.htm</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Wave">
<H2>Editing and Converting WAV files</H2>

AVI and WAV files are closely related.  WAV files are the sound file
format, and frequently provide the source for the sound tracks in an
AVI file.  

<H3>CoolEdit (PC) </H3>

A good shareware sound editor and sound file format converter is
Syntrillium Software's CoolEdit (Cool96) for Windows 3.1 and Windows
.aiff and Next/Sun .au files.

<A HREF="http://www.syntrillium.com/10/index.htm">http://www.syntrillium.com/10/index.htm</A>

<H3>GoldWave (Windows 3.1/95/NT) </H3>

Another shareware sound editor and sound file format converter is

<A HREF="http://www.goldwave.com/">http://www.goldwave.com/</A>

<H3>Macromedia's SoundEdit16 (Macintosh)</H3>

Macromedia markets a sound editor for the Macintosh called
SoundEdit16 + Deck II.  SoundEdit can open and save in WAV
format.  For further information on SoundEdit, see the
Macromedia Web site:

<A HREF="http://www.macromedia.com/">http://www.macromedia.com/</A>

<H3>Sound Forge</H3>

Sonic Foundry markets a digital sound editor for Windows called
Sound Forge 4.0 (5/16/97)  Sound Forge includes support for importing
AVI video and editing the sound to synchronize with specific frames in
the AVI file.

<A HREF="http://www.dg.co.il/Forge/forge.htm">http://www.dg.co.il/Forge/forge.htm</A>

<H3>SpeedRazor (Windows NT 3.51 and 4.0) </H3>

n:sync produces SpeedRazor Mach 3.51 (5/16/97), a professional
non-linear editing (NLE) video editor for Windows NT for the
Broadcast industry.  SpeedRazor can read and write WAV audio files.

Speed Razor (not cheap)
<A HREF="http://www.in-sync.com/">http://www.in-sync.com/</A>

<A NAME="MacSound">
<H3>Editing and Converting Sound Files on the Macintosh</H3>

A Macintosh shareware utility SoundHack can read, write, and 
modify sound files on the Macintosh including Microsoft WAV
format and AIFF.  Macintosh users can use SoundHack to convert
AIFF and other Macintosh sound files to the WAV format for
ntegration in AVI.

<A HREF="http://www.imuse.com/Soundhack.html">http://www.imuse.com/Soundhack.html</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Output">
<H2>How to output an AVI file to videotape:</H2>

AVI files generated with a video editor such as Premiere or a 3D
Animation program such as Caligari TrueSpace can be output to
videotape (e.g. a VHS tape) using a hardware device known as a scan
converter.  A scan converter converts the VGA signal intended for
the computer monitor into an video signal, typically NTSC or S-Video.
The video signal can then be input into a videotape recorder such as a

A scan converter may be a small box which resides between the computer
and the monitor.  It may be integrated into a video card.  For example, ATI's
new 3D XPRESSION+PC2TV video card includes NTSC and S-Video output as well
as output to a conventional computer monitor.

Configure the PC graphics in one of the modes supported by the scan conversion

Some manufacturers of scan converter (or similar) hardware:

<A HREF="http://www.atitech.com/">ATI Web Page</A>

<A HREF="http://www.videologic.com/">VideoLogic Web Page</A>

called HyperConverter that converts from SuperVGA to broadcast quality
NTSC/PAL video.  Less than $5000.

<A HREF="http://www.pcvideo.com/">PC Video Conversion</A>

<A HREF="#Top">Return to Top</A>

<A NAME="VideoChips">
<H2>PC Video Chips and Cards</H2>

The current (6/21/97) generation of graphics controllers for PC's
ncorporate a number of hardware features to improve playback of
video, including AVI.  Video acceleration features have become
marketing has increasingly emphasized 3D graphics acceleration
features in an effort to differentiate chips and cards from different
manufacturers.  These video acceleration features include hardware
color space conversion and hardware scaling of video.

<H3>Color Space Conversion</H3>

Many video standards such as Indeo, Cinepak, and MPEG operate in
a luminance - chrominance color space such as YUV, YCbCr, etc.  Computer
monitors use RGB (Red/Green/Blue).  The decoded video signals must
be converted from YUV to RGB for display.  Most video chips now provide

<H3>Hardware Scaling</H3>

Displaying a video in a windows larger (or smaller) than the encoded
aspect ratio involves duplication of pixels.  Complex filtering
operations can reduce or remove blocking artifacts when a video is
n degraded video playback depending on the speed of the CPU.  Most
video chips now provide dedicated hardware for scaling video.

<H3>Video Cards</H3>

all video cards are PCI cards, with a PCI bus connector along one side
of the circuit board.  The video card will have at least a DB-15
connector for the VGA cable to the computer monitor.  Video cards have
a chip variously known as a graphics controller, graphics accelerator,
video chip, video controller, or something similar.  The graphic
controller is the heart and the brain of the video card.  

The card has one or more memory chips forming the video memory where
the images are stored.  The video memory is known as a framebuffer.
Video cards have a RAMDAC (Random Access Memory Digital to Analog
Converter) which convertes the digital image stored in the framebuffer
nto an analog signal for the RGB monitor.  PC video cards have a ROM
(Read Only Memory) with the VGA BIOS used during the PC boot process.
There is also a clock that provides the timing signals for the entire

Many video cards have a feature connector allowing an
auxiliary card to be added to the main video card.  The auxiliary
card adds additional features such as hardware MPEG decoding.  

Although AVI should be independent of the video chips and cards used in
a PC, there can sometimes be problems or technical issues specific
to a particular chip.  By far the most common PROBLEM is a subtle
bug in a video chip driver or a subtle conflict between a video
chip driver and another driver or piece of software on the PC.  Downloading
and installing the latest video driver from the chip or card maker's
Web site is a frequently successful fix for these problems.

ALSO, Windows 3.x and Windows 95 use different Device Drivers than
Windows NT 3.51 or Windows NT 4.0  Windows 3.x and 95 use Device
Drivers known as VxD's for low-level hardware access.  NT uses its
own device drivers.  If you use a video card or other hardware
on an NT machine, you need to be sure to use the NT drivers!

A number of video card companies such as Diamond Multimedia and
STB that buy or license the controller chips from other companies such
as S3 frequently write video card/chip device drivers with additional
features or better quality than the device drivers provided by the
chip company.

Links to video chip and video card makers follow:

<A HREF="http://www.atitech.com/">ATI Technologies</A>

<A HREF="http://www.diamondmm.com/">Diamond Multimedia</A>

<A HREF="http://www.stb.com/">STB Systems Inc.</A>

<A HREF="http://www.s3.com/">S3 Incorporated</A>

<A HREF="http://www.tseng.com/">Tseng Laboratories</A>

<A HREF="http://www.trid.com/">Trident Microsystems</A>

<A HREF="http://www.matrox.com/">Matrox</A>

<A HREF="http://www.nine.com/">Number Nine</A>

<A HREF="http://www.cirrus.com/">Cirrus Logic</A>

<A HREF="http://www.rendition.com/">Rendition</A>

<A HREF="http://www.nvidia.com/">nVidia</A>

<A HREF="http://www.3dfx.com/">3dFX</A>

<A HREF="http://www.3dlabs.com/">3dLabs</A>

A fairly comprehensive list of video chipsets, video cards, and
miscellaneous other information may be found at:


<A NAME="NTVideo">
<H3>Video (Display) Cards with Windows NT Drivers</H3>

Unfortunately, Windows 95 and Windows NT use different
NT drivers are harder to come by.  Video cards with
NT drivers are listed below:

Number Nine Revolution 3D  (Windows NT 4.0 Drivers)
<A HREF="http://www.nine.com/">http://www.nine.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Audio">
<H2>How to compress the audio sound track in AVI Files</H2>

AVI files include support for compressed audio although they are
frequently generated with uncompressed PCM audio.  The Windows
Multimedia system includes a component called the Audio Compression
Manager (ACM), an audio counterpart to the Video Compression Manager (VCM).
The ACM enables installable audio codecs.  

Unfortunately not all authoring applications access the full ACM.  For
example, the free VidEdit application from Microsoft, a simple video
editor, only permits selection of various PCM audio encoding.  There
s no way to compress the audio in an AVI file through VidEdit,
although the Windows operating system, through the ACM, and the AVI
file format do support audio compression.

Historically, AVI files were frequently authored with video compression,
usually Cinepak, and uncompressed PCM audio.  The size of the audio track
could be reduced by using 8 bit mono (one channel) PCM audio at a
example, allows this.  AVI was used for compressing video on hard disks
and CD-ROM's.  Hard disks and CD-ROM's have plenty of room for uncompressed
audio but an uncompressed video quickly exceeds their capacity.
Thus audio compression was not as critical as video compression.

With the advent of the Internet, with typical bandwidth of a few
Kbits/second, audio compression has become more important.


Adobe Premiere 5.0 for Windows


Microsoft VidEdit 1.1

<A HREF="#Top">Return to Top</A>

<H2>How to make AVI NTSC (or PAL) Safe</H2>

AVI files can represent colors that are not supported by the NTSC or
AVI files cause problems if translated to NTSC or PAL video.

Equilibrium's DeBabelizer Pro for Windows 95 and NT 4.0 reads and
as AVI files.  In addition to translating between all of these formats,
DeBabelizer Pro has a number of image processing functions.

DeBabelizer Pro can remove colors from AVI files that are excluded by
NTSC or PAL to create an NTSC or PAL safe AVI file.

Equilibrium has a demonstration version of DeBabelizer Pro on its
Web site.  This is a demonstration version.  The demonstration version
adds the words Equilibrium (very large words) to all images and video that
t processes.

DeBabelizer Pro ($595 Suggested Retail Price)
Sausalito, CA  94965

<A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Phantom">
<H2>The Phantom Final Frame when Viewing an AVI</H2>

When playing or viewing an AVI with a number of Microsoft Windows
applications, you will see a "phantom" final frame.  The "phantom" frame
may appear as a blank frame or a duplicate of the last frame depending
on the Windows application.

For example, if you have a one second AVI file with 30 frames and
you view this AVI file with Microsoft VidEdit 1.1, VidEdit will
a blank frame.  Note that 0-30 means 31 total positions; there is a
"phantom" final frame.

of frame 29.

What is this?

The MCIAVI driver has a concept of the "end" or "position after the last
frame in an AVI".  In the 30 frame AVI example above, positions 0 through
or "position after the last frame in an AVI".

The Microsoft Windows application, such as VidEdit 1.1 or Media Player,

You can see this feature of the MCIAVI driver through the Media Player.
Open an AVI file through Media Player.  Then, type Ctrl-F5 to invoke 
a dialog box for entering MCI (Media Control Interface) string commands.

the last frame in the AVI file.  It is NOT a frame in the AVI file.

<A HREF="#Top">Return to Top</A>

<A NAME="BinEd">
<H2>Binary File Editors for Viewing and Editing AVI Files</H2>

Occasionally, you may need to view or edit an AVI file at the

Many binary file editors, including quite a number of free
ones, exist.


Harmony Systems offers HexEdit, a free binary editor for Windows NT
and 95, that can be downloaded from their Web site:

<A HREF="http://www.hsys.com/hex.htm">http://www.hsys.com/hex.htm</A>

<H3>SimTel Archives</H3>

The SimTel collection of ms-dos software includes a section with
many binary file editors.  There are many mirrors of the SimTel

<A HREF="http://oak.oakland.edu/simtel.net/msdos/binaryed.html">http://oak.oakland.edu/simtel.net/msdos/binaryed.html</A>

<H3>HEdit 2.1</H3>

Trial versions of HEdit, a binary file editor, both for Windows 95/NT and
Windows 3.1 are available at:

<A HREF="http://www.yurisw.com/hedit/">http://www.yurisw.com/hedit/</A>

<H3>GNU Emacs (Unix)</H3>

The GNU Emacs editor from the Free Software Foundation has a hexadecimal
mode.  The GNU Emacs command to invoke this mode is hexl-mode.

Type: hexl-mode at the command prompt.

The current buffer will switch into (Hexl) mode.  

On my Unix system (Sun), I found the Hexl mode a little sluggish
at times.  Sometimes I had to wait several seconds to get a response
to scrolling or jumping to the start of the AVI file.  Emacs modes
are usually implemented in interpreted LISP; this may be the reason.

<H3>beav (Unix)</H3>

beav, a binary file editor and viewer, is available for Unix.

beav displays the contents of a binary file as both hexadecimal and
ASCII in side by side views.

beav can edit as well as view binary files such as AVI files.

Unix Prompt% beav file.avi

<H3>od (Unix)</H3>

od is a common Unix command.  It is NOT an editor.  od

od file.avi | more    (Octal Dump of AVI File)

od -x file.avi | more   (Hexadecimal Dump of AVI File)

od -a file.avi | more   (ASCII Dump of AVI File)

<A HREF="#Top">Return to Top</A>

<A NAME="VidTrace">
<H2>RIFF and AVI Parser/Viewers</H2>


VidTrace is a 32-bit Windows console application for Windows 95 and
Windows NT that I wrote to parse and display RIFF and AVI files.
VidTrace displays the RIFF Forms, LISTS, and CHUNK.  VidTrace also
understands the AVI header format, audio stream header format, and
video stream header format.

Sample output of VIDTRACE some-file.avi

RIFF (139086) AVI 
 LIST (2004) hdrl
  avih (56) 
   Microseconds Per Frame: 33333
    30.000300 Frames Per Second
   Maximum Bytes Per Second: 1727488
   Pad to Multiples of This Size: 6050647
   Flags DWORD (hex): 710
    FLAG: (AVIF_HASINDEX)  AVI File Has 'idx1' chunk
    FLAG: (AVIF_ISINTERLEAVED)  AVI File is Interleaved
   Total Frames: 239
   Initial Frames: 23
   Number of Streams: 2
   Suggested Buffer Size: 57582
   Width in Pixels: 160
   Height in Pixels: 112
   Scale (MAY BE UNUSED): 0
   Rate (MAY BE UNUSED): 3220642425
    Samples Per Second (MAY BE UNUSED): 3220642425
   Start of AVI File (MAY BE UNUSED): 27920
   Length of AVI File (MAY BE UNUSED): 4294967295
  LIST (116) strl
   strh (56) 
    Stream Type (Four Character Code): 'vids'
     'vids' is Four Character Code for Video Stream
    Installable Compressor (Four Character Code): 'vdow'
     'VDOW' is Four Character Code for VDONet VDOWave Video Codec
    Flags (hex): 0
    Priority (MAY BE UNUSED) (hex): 0
    Language Code (MAY BE UNUSED) (hex): 0
    Initial Frames: 0
    Scale: 33333
    Rate: 1000000
    Start: 0
    Length: 239
    Suggested Buffer Size: 1340
    Quality: 0
    Sample Size: 0
    Frame (MAY BE UNUSED OR ABSENT): 0 0 0 2170023936
   strf (40) 
    Windows Bitmap Header
    Number of Bytes Required by Bitmap Structure: 40
    Width of Bitmap in Pixels: 160
    Height of Bitmap in Pixels: 112
    Number of Planes: 1
    Number of Bits Per Pixel (1,4,8,16,24, or 32): 24
    Compression Mode (hex): 574f4456 
     COMPRESSION: Custom Compression 'VDOW'
    Size of Image in Bytes: 53856
    Horizontal Resolution in Pixels per Meter: 0
    Vertical Resolution in Pixels per Meter: 0
    Number of Color Indices Actually Used by the Bitmap: 0
    Number of Color Indices Considered Important to Display Bitmap: 0
  LIST (92) strl
   strh (56) 
    Stream Type (Four Character Code): 'auds'
     'auds' is Four Character Code for Audio Stream
    Installable Compressor (Four Character Code): ''
     '' is Four Character Code for Uncompressed Audio
    Flags (hex): 0
    Priority (MAY BE UNUSED) (hex): 0
    Language Code (MAY BE UNUSED) (hex): 0
    Initial Frames: 23
    Scale: 1
    Rate: 11025
    Start: 0
    Length: 87512
    Suggested Buffer Size: 368
    Quality: 0
    Sample Size: 1
    Frame (MAY BE UNUSED OR ABSENT): 0 0 0 2170023936
   strf (16) 
    Windows Waveform Audio Header
    Waveform Audio Format Type (hex): 1
     Audio Format (WAVE_FORMAT_PCM): Microsoft Pulse Code Modulation Audio
    Number of Channels of Audio: 1
    Samples Per Second: 11025
    Required Data Transfer Rates (Bytes Per Second): 11025
    Block Alignment in Bytes: 1
    Bits Per Sample: 8
    Size of Extra Format Information Appended to End of WAVEFORMATEX Structure (Bytes): -15736
  vedt (8) 
  JUNK (1688) 
 LIST (104908) movi
  LIST (380) rec 
   01wb (367) 
  LIST (380) rec 
   01wb (368) 
  LIST (380) rec 
   01wb (367) 
  LIST (16) rec 
   00dc (4) 
 idx1 (11840) 
 DISP (21) 
 DISP (20268) 

<A HREF="ftp://ftp.rahul.net/pub/jfm/pcapps/vidtrace.exe">Download VIDTRACE</A>

<H3>Microsoft RIFFWALK</H3>

Microsoft distributes a command line utility called RIFFWALK with the
Forms, LISTS, and CHUNKS.

Sample output of RIFFWALK some-file.avi

The Video for Windows 1.1e Development Kit is included with the

<H3>Bill Luken's RIFFSCAN</H3>

RIFFSCAN is another DOS console application that prints out
a human readable ASCII trace of RIFF and AVI files.

<A HREF="http://home.att.net/~wluken/bill2sw.htm">http://home.att.net/~wluken/bill2sw.htm</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Style">
<H2>Effective Use of Video on a Web Page</H2>

The limited bandwidth of the Internet is the bane of effective
use of video on a Web page.  Video clips on a Web page need to
be small.  Even then downloading a video clip can take several
minutes, hours over a 28.8 modem to someone's home.  The longer
the wait, the better the video should be!

FIRST AND FOREMOST, tell a story!!!  A video clip without a
limitations of the Internet, even 30 seconds is a big file, several

Characters, human personalities, sell.  Sex sells.  Violence

USE AUDIO!  Sound makes a world of difference.  Use base, lower
frequencies in the soundtrack.  Human beings are more sensitive to
low frequency sound.   A soundtrack with more base tends to sound "better" to
most people.  Most computer speakers are very cheap and don't
on higher frequencies to reduce bandwidth use by the audio as well.


For widest distribution and ease of viewing:

the Cinepak codec; these can be played on both PC's with QuickTime
for Windows and on Macs.  Provide MPEG-1 clips as well.  

Give the size of the video file in KBytes or MBytes in text as part of
the link to the video file.  This way the viewer can estimate how long
t will take to download the file if they wish to.

n addition to Cinepak versions.  Don't omit the Cinepak versions.


Video encoded at less than 15 frames per second usually looks very
Most viewers seem to perceive some jerkiness in 15 frame per second
video.  The transition to smooth motion occurs somewhere in the range
may look acceptable, although often not.

The early motion picture industry standardized on 16 frame per second
film, which seemed to provide smooth motion in most cases.  This
appears to be the origin of the folklore in video engineering that
Modern film uses 24 frames per second.

DO NOT COMPRESS the video so much that unnatural artifacts such as
blocking occur.  In general loss of fine details appears natural
to human viewers.  This corresponds to changes in natural viewing
conditions such as viewing an object at a distance or in poor lighting.
Unnatural artifacts such as visible 4x4 pixel blocks or 8x8 pixel
blocks jump out at most viewers and destroy the illusion of a natural


For AVI, sound codecs aren't very standard.  Avoid using audio compression,
especially more exotic codecs.  ADPCM may be ok.  Again, if you use
an audio codec, make sure to include a link on your Web site to 


Uncompressed audio takes space.  You ALMOST NEVER need to use the 44
KHz sampling rate.  At most, use 22 KHz sample rate.  Many people
cannot hear the frequencies above 11 KHz (the sample rate is twice the
faithfully).  People who can hear frequencies between 11 KHz and 22
KHz are not very sensitive to these frequencies.

See if the soundtrack works ok at 11 KHz 8 bit Mono (not Stereo).
Use this low quality setting if you can get away with it (often this

NOTE: You can select audio and video codecs, convert the frame rate,
convert the audio sampling rate, and resize the video using video
editor applications such as Adobe Premiere or VidEdit.  See the

<A HREF="#Edit">Video Editors</A>


TELL A STORY!!!  Many video clips in current (7/20/97) use on Web
These clips are boring!  So are most talking heads (I have one on
my Web site and it IS boring).  Movie trailers, short television
advertisements, etc. illustrate what is needed.  If you don't have
a story, think seriously about dropping the video.  

See elsewhere in this overview for information on authoring AVI files 
and converting to QuickTime and MPEG-1.

<A HREF="#Top">Return to Top</A>

<A NAME="Web">
<H2>How to embed an AVI file in a Web Page:</H2>

<H3>A Simple Hypertext Link</H3>

The simplest approach is to use the anchor tag 

&lt A HREF="http://www.somplace.com/movie.avi" &gt A Movie &lt/A&gt

to be downloaded.  The browser recognizes that the AVI file is
not an HTML document.  Typically, the browser invokes a helper
application that can play the AVI file, such as Media Player under
Windows 3.1.  The movie will appear in a separate window.  The browser
may have a plug-in that provides support for AVI, in which case the
video window will appear embedded in the HTML page.

Web browsers such as Netscape and Internet Explorer know how to handle
a file through a Content (MIME) type reported by the Web server.  For
example, the MIME type for AVI files is video/avi.  The browser may
contain a built-in decoder for this MIME type.  For example, JPEG and
GIF still image compression decoding and viewing is built into
nvoke a helper application such as Media Player.  Helper applications
are invoked as separate applications with their own windows.  

The browser can be configured to use a "plug-in" instead of a helper
application.  A "plug-in" is a software component that extends the
capabilities of the browser.  The "plug-in" handles input and presents
output embedded within the page.  For example, a video plug-in's

a rectangle in the upper left corner of the blank page.  The video
s not embedded in the page with the hypertext link.  It is
necessary to use the Netscape EMBED HTML tag (see below) to produce a video
embedded in the page.  Using the EMBED tag is different from using
a simple anchor A tag (hyptertext link).

exists and no helper application or plug-in is specified), the browser

to use helper applications or plug-ins as desired.  

Netscape now provides a Netscape plug-in known as LiveVideo to play
AVI files.  This plug-in should be installed in the \NETSCAPE\PLUGINS

Digigami provides a plug-in for Netscape Navigator (Windows) called
CineWeb that adds playback of AVI, QuickTime .MOV, and MPEG files.
The URL is:

<A HREF="http://www.digigami.com/CineWebPress.html">http://www.digigami.com/CineWebPress.html</A>

<H3>Microsoft Internet Explorer HTML Syntax</H3>

Microsoft's Internet Explorer 2.0 added attributes to the IMG tag that
allow for inline video (an AVI file actually embedded in the page
LOOP attributes.  For example,

&lt IMG DYNSRC="movies/movie.avi" CONTROLS SRC="movies/movie.gif" &gt

This will embed the movie in the page with some simple playback controls
for the user to select.  Browsers that do not support the DYNSRC attribute

EMBED tag, see the section on HTML for Netscape's LiveVideo below.
Microsoft has also added a Microsoft specific OBJECT tag which does
essentially the same things as EMBED and is overtly linked with
Microsoft's OLE/COM/ActiveX environment.  Naturally Microsoft

Unlike Netscape Navigator, Internet Explorer on Windows does not use
nvokes either the Video for Windows media player or the ActiveMovie
ActiveX control.  If necessary, Internet Explorer is able to effectively
embed the applications in the Web page.

Microsoft has a copyrighted white paper "File References on HTML

<A HREF="http://www.microsoft.com/devonly/tech/amov1doc/amsdk008.htm">

Since Microsoft reportedly has $9 billion in cash for acquisitions,
lawyers, and other fun - and I don't, I will refrain from simply
ncorporating the document here.

<H3>Netscape LiveVideo HTML Syntax</H3>

    If you hunt around the Netscape Web site you will find the following
n a Web page for use with the LiveVideo Plug-in.


     LiveVideo plays video files in AVI format. (Currently for Windows 95 and
     NT only.) 


     EMBED - Use this tag to place AVI movies into your Web document. 

     SRC=[URL] - The URL of the source AVI file. 

     AUTOSTART=[TRUE|FALSE] - Setting the value to TRUE allows the AVI movie to begin
     playing automatically when the Web page is loaded. The default is FALSE. 

     LOOP=[TRUE|FALSE] - Setting the value to TRUE allows the AVI movie to play
     continuously until the user clicks on the movie to stop it from playing or goes to
     another page. The default is FALSE. 

     WIDTH=[# PIXELS] - Use this attribute to display the width of the AVI movie. 

     HEIGHT=[# PIXELS] - Use this attribute to display the height of the AVI movie.
     Standard sizes for movies are 90x120, 120x160, 180x240, and 240x320 (all size
     references are HEIGHT x WIDTH). These are all standard sizes using the 4:3 aspect

     - This attribute tells Netscape Navigator how you want to align text as it flows
     around the AVI movie. It acts similarly to the IMG tag. 

     play() - Starts playing the source file at the current location.
     stop() - Stops the currently playing video.
     rewind() - Rewinds the currently loaded video.
     seek(frame-number) - Sets the current frame of the video to the given frame

<A HREF="#Top">Return to Top</A>

<A NAME="Mail">
<H2>Sending AVI by E-Mail or Network News</H2>

The original Internet e-mail system was designed for sending purely
text messages using printable 7-bit ASCII codes (byte values from 0 to
can include non-printing 7-bit ASCII control codes and values higher
than 127.  These cause problems.

The Network News system was built on top of the Internet mail system.
Network News postings use the same text format as mail messages with
the same mechanisms to attach or embed binary files such as AVI to the

There are two main ways to transfer binary files such as AVI
by e-mail (and also the Network News system which is derived
from e-mail).  The older method is UUENCODE.  UUENCODE is
a utility that translates binary files into printable 7-bit
ASCII codes that can be sent safely by e-mail.  Simply
nclude the uuencoded file in the body of the e-mail

The modern method is to use MIME, the Mulipurpose Internet Mail
Extensions.  This is a standard for adding attachments to Internet
e-mail, including binary files such as AVI.  MIME supports a number of
HREF="#MIME">MIME</A> for more information.

More modern e-mail software include built in support for
uuencode and MIME.



btoa (binary to ascii) is another Unix utility for encoding binary
files to printable 7-bit ASCII files.  btoa is less widely used than


Another method is to use the Macintosh program BinHex.  Like UUENCODE,
BinHex translates a binary file into printable 7-bit ASCII codes that
can be transferred over mail networks.  There are cases of AVI files
being BinHex'ed and added to newsgroup postings as text MIME

BinHex 4.0 files are identified by a first line:

(This file must be converted with BinHex 4.0)

followed by a blank line, followed by a colon, followed by the data.

On the PC, 

(1) WinZip 6.2 (and later versions of WinZIP) can open and
quoted-printable) files.

<A HREF="http://www.winzip.com/">http://www.winzip.com/</A>

(2) BinHex'ed files may be decoded using the PCBINHEX utility.

For more information on BinHex, see:

<A HREF="http://www.gis.at/infoalley/1095/31/what.html">http://www.gis.at/infoalley/1095/31/what.html</A>

<H3>Microsoft Internet Mail</H3>

example), click New Message to generate a new e-mail message.

Select Insert | File Attachment to add an attachment, for example
an AVI file.

Select Format | Settings... to choose UUENCODE or MIME.  Internet
Mail defaults to MIME.  One can also select UUENCODE.

<A HREF="#Top">Return to Top</A>

<A NAME="Crypto">
<H2>How to Encrypt AVI Files</H2>

One option is to use the PGP (Pretty Good Privacy) program. PGP
appears to have been developed to encrypt conventional e-mail
messages, printable 7-bit ASCII characters which PGP's documentation
calls "ASCII-Armored Text".  You need to encode binary files such
as AVI using a binary to printable 7-bit ASCII encoder such as
UUENCODE or BinHex.  Then, run PGP on the encoded text.

multimedia attachments to e-mail messages.  

extensive documentation on its use.

<A HREF="http://web.mit.edu/network/pgp">PGP at MIT for Non-Commercial Uses</A>

<A HREF="http://www.pgp.com/">Pretty Good Privacy, Inc.</A>

Editorial Comment: PGP almost certainly provides excellent protection
against most would-be non-governmental codebreakers.  PGP also
emphasizes the threat of surveillance by the NSA, FBI, and other
efforts by the government to suppress public key cryptography in
author, was the target of a government investigation relating to PGP.

Spy agencies, both foreign and domestic, play such a major role in
funding research into cryptography and in most companies and
organizations involved in communications security that it is very
or not obviously associated with the NSA as in DES or the Clipper
chip, is secure against these agencies.  

These agencies might have the sense to appear opposed to the use of an
algorithm which they in fact know how to break, to make a high
quietly dealing with algorithms which they cannot break.

<A HREF="#Top">Return to Top</A>

<H2>MIME types of AVI</H2>

MIME stands for Multipurpose Internet Mail Extension.  This is a
mechanism that was developed to support multimedia and other file type
attachments to Internet e-mail.  MIME defines MIME types that identify
the data type of the attachment.  The World Wide Web uses MIME types
to identify the data type of files on Web sites.

A MIME type consists of a type/subtype, for example


for JPEG images.

The MIME specification (IETF RFC 2046) specifies a type of video for
video images.  The specification defines video/mpeg as the MIME type
for MPEG video.  Beyond this, the MIME specification (IETF RFC 2048)
Assigned Number Authority (IANA).  As of 5/16/97, the following
video subtypes were registered with IANA:


Thus, AVI has never been officially registered with IANA.  To view
the complete list of registered MIME types:

<A HREF="http://www.isi.edu/in-notes/iana/assignments/media-types/media-types">http://www.isi.edu/in-notes/iana/assignments/media-types/media-types</A>

More than one MIME type appears to be used in practice for AVI files.

MIME types used for AVI:


Note that according to the MIME specification the prefix "x-" indicates
an unregistered, experimental MIME type.  

For extensive information on MIME, visit The MIME Information Page at:

<A HREF="http://www.hunnysoft.com/mime/">http://www.hunnysoft.com/mime/</A>

<A HREF="#Top">Return to Top</A>

<H2>Configuring Web Servers to Handle AVI Files</H2>

Web servers are configured to send a MIME type to Web browsers to indicate
For example, the MIME type image/gif indicates to a browser that it
s viewing a GIF file.  Web servers must send the AVI MIME type(s) to
Web browsers for files installed on the Web site.  

There are many Web servers.  Probably many are automatically configured
to send a MIME type for AVI files (files with the extension .avi).  
The folowing explains how this configuration is done for some of the
more popular Web servers.

<H3>Apache httpd</H3>

The free Apache httpd Web server is one of the most popular (perhaps the
most popular) Web server in use (May, 1997).  This is a free implementation
of the httpd daemon for Unix machines.  Apache is frequently run on
Sun workstations used as Web servers.

By default, Apache httpd looks in a configuration file httpd.conf for

AddType video/avi  .avi

The example above would configure the Apache Web server (the httpd Unix
the file extension .avi on the Web site.

The Apache httpd daemon includes a command line option -f <file-spec>
to override the default httpd.conf file name and file location.  The Web
administrator can use this to set up an alternative configuration file.

Apache allows users to add a file .htaccess in the root directory of
their Web site which contains directives such as AddType.  In this way
ndividual users may add or override the configuration of the Web
type for .wrl (VRML) files.  Netscape with Live3D expected to see this
MIME type for VRML "worlds".  I created a .htaccess file with

addtype  x-world/x-vrml .wrl

With this, my browser would correctly view VRML files.  The same could be

For further information on Apache, see the Apache Web site:

<A HREF="http://www.apache.org/">http://www.apache.org/</A>

<H3>CERN (or W3C) httpd</H3>

The CERN httpd is similar to Apache.  The CERN httpd defaults
to looking in a configuration file /etc/httpd.conf  The configuration
file contains configuration directives.  One of these is

AddType .suffix representation encoding [quality]

For example:

AddType .html text/html 8bit 1.0

Extensive information on the CERN httpd web server, including a
user manual, is available at:

<A HREF="http://www.w3.org/Daemon/">http://www.w3.org/Daemon/</A>


The NCSA (National Center for Supercomputer Applications at my 
alma mater, the University of Illinois at Urbana-Champaign) HTTPd

NCSA HTTPd looks in a resource configuration file

conf/srm.conf   (srm for Server Resource Map)

You can add AddType configuration directives to this configuration
file to add new MIME types or override the default MIME types
used by NCSA HTTPd.

AddType type/subtype ext1 ext2 ... extn

For example:

AddType text/plain txt doc 


AddType video/avi avi

Extensive information on NCSA HTTPd is available at:

<A HREF="http://hoohoo.ncsa.uiuc.edu/">http://hoohoo.ncsa.uiuc.edu</A>

<H3>Microsoft Internet Information Server</H3>

Microsoft Internet Information Server is a server providing
HTTP (WWW), FTP, and Gopher services for Windows NT 4.0
Server.  IIS handles the mapping from file extensions to
MIME types through the Windows NT System Registry.

To view and modify the MIME map:


&lt mime type &gt , &lt filename extension &gt ,, &lt gopher type &gt


:REG_SZ: identifies a text string in the Registry editor.

The IIS server will send the MIME type video/x-msvideo for
files with the extension AVI.


for the Microsoft Active (or Advanced) Streaming Format files.

are not explicitly listed in the MIME Map.

             - Select Add Value ... from the Edit menu.
             - Create a Registry Value of type REG_SZ (for a string)
             - Enter the MIME type information as above as the
                    NAME of the Registry Value.
             - Leave the string blank.

<H3>Netscape Enterprise Server 3.0</H3>

Edit the mime.types file in the server's config directory.

This will contains lines of the form:

type=video/x-msvideo  exts=avi

These can also be of the form:

type=video/x-msvideo exts=avi,vid,vvv

The server reads this file to associate the MIME type video/x-msvideo

The Netscape help site is:

<A HREF="http://help.netscape.com/">http://help.netscape.com/</A>

This includes many articles on the Netscape server including a

<A HREF="#Top">Return to Top</A>

<A NAME="Java">
<H2>AVI and Java</H2>

API's (Application Programmer's Interfaces).  These include the Java
Media Framework (JMF for short).  The first part of JMF is the Java
Media Player, an API for synchronization, control, processing and
video and audio.  A public specification for the Java Media Player has
been released.  According to this the Java Media Players will be
the JMF software is scheduled for the second quarter of 1997 and may
be happening as of 5/15/97 (some rumors at least although I have not

For further information on Java Media Framework, see:

<A HREF="http://java.sun.com/products/java-media/jmf/index.html">

For further information on Java, see the Java site:

<A HREF="http://java.sun.com/">http://java.sun.com/</A>

<A HREF="#Top">Return to Top</A>

<H2>AVI and VRML</H2>

The Virtual Reality Modeling Language (VRML, often pronounced
'vermal') is the file format standard for 3D multimedia and shared
virtual worlds on the Internet.  

VRML supports a "node" known as a MovieTexture.  This allows a video (or
movie) to be mapped onto the surface of an object.  A MovieTexture node
s referenced by the texture field of an Appearance node.  Each object has
an Appearance node.  

The VRML MovieTexture node includes a url field.  The url field, as the
name suggests, is the URL (Uniform Resource Locator) of a video file
to map onto the surface of the VRML object.  The VRML 2.0 specification
video) or MPEG-1 video only format.  AVI is not directly supported.

For further information on VRML, see the VRML Consortium Web Site.

<A HREF="http://www.vrml.org/">http://www.vrml.org/</A>

<A HREF="#Top">Return to Top</A>

<H2>Configuring Netscape Navigator 3.01 to Display AVI Files</H2>

The following remarks apply to Netscape Navigator 3.01 for
Windows 3.1, Windows 95, and Windows NT 4.0.

Netscape Navigator displays .AVI files either through a helper application
AVI playback, such as the Netscape npavi16.dll and npavi32.dll plugins.

A helper application is a separate application, executable, that is
nvoked by the Web browser.  The helper application runs as a separate
tied to the Web page.

A Netscape plugin is a dynamic link library that extends the
capabilities of the Netscape Navigator.  Typically the plugin will
browser and display its output in that region.  The output appears to
be embedded in the Web page.

To view and configure helper applications, select the General Preferences
tem from the Options menu of Netscape Navigator.  Select the Helpers tab
of the General Preferences.  Helpers lists registered File types (MIME
types), associated actions, and file extensions.

Options | General Preferences | Helpers 

A File Type is a MIME type such as image/gif or video/avi.  MIME
a mechanism to identify the data type of multimedia attachments to
to identify to Web browsers the data type of multimedia files such as
AVI files on Web sites.

An action can be blank, Ask User, Browser, or a helper application such
as Media Player (mplayer.exe).  The blank action appears to be used
n cases where a Plugin is installed and may be used for other cases as
ndicates that the File Type is supported by the browser.  For example

To view installed plugins, select About Plugins from the Help menu.  This
entry for each currently installed Netscape Plugin.  For example:

NPAVI32 Dynamic Link Library

video/msvideo       ... other information ...
video/x-msvideo     ... other information ...

s the information presented for Netscape's npavi32.dll plugin in
Netscape Navigator 3.0 on Windows NT 4.0 Server (Service Pack 2).

Netscape Plugins are dynamic link libraries stored in a plugins

Many Netscape plugins including the Netscape AVI plugins (npavi16.dll for
the Netscape Web site.

<A HREF="http://home.netscape.com/">http://home.netscape.com/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Plug-ins">
<H2>Netscape Navigator Plug-ins to Play AVI Files</H2>

<H3>Netscape LiveVideo</H3>

Netscape Navigator 3.0 includes LiveVideo which supports playback of
AVI files on Windows 3.x, Windows 95, and Windows NT platforms.  This is
mplemented through the dynamic link libraries npavi.dll, npavi16.dll, and

<A HREF="http://home.netscape.com/">http://home.netscape.com/</A>

You can download the latest Navigator 3.0 with LiveVideo from Netscape.
Netscape also maintains pages with Netscape Plug-Ins, mostly from other
companies.  These include CineWeb by Digigami and MacZilla by Knowledge
Engineering which provide AVI playback.

To get to the Audio/Video Plug-Ins page (as of May 15, 1997), go to the
Netscape Home Page.  There is a graphical text 

      "Get the latest Netscape Software".

Underneath this text there is pulldown list of the many Netscape products.
This initially reads "Pulldown to select products".
Click on this to show the pulldown list (it is very long).
Choose "Navigator Plug-Ins".

Click on the Product Info icon under the pulldown list.

This presents a page for Inline Plug-Ins.  Select the Audio/Video option.
This brings up a page of audio/video plugins that add support for various
audio and video formats.

CineWeb by Digigami and MacZilla by Knowledge Engineering are both in
this list.  These plug-ins are also available directly from their

<H3>CineWeb by DigiGami</H3>

Digigami produces a Netscape Navigator Plug-in for Windows 95 and Windows
NT called CineWeb that provides playback of AVI, QuickTime, and MPEG files.

<A HREF="http://www.digigami.com/cineweb/">http://www.digigami.com/cineweb/</A>

<H3>MacZilla by Knowledge Engineering</H3>

MacZilla is a Netscape Plug-in for the Power Macintosh that adds AVI,
QuickTime, and MPEG playback.

<A HREF="http://maczilla.com/">http://maczilla.com/</A>

<A HREF="#Top">Return to Top</A>

<H2>Configuring Internet Explorer 3.0x to Display AVI Files</H2>

The following applies to Internet Explorer on Windows 95 and Windows
NT 4.0.  The information may also work for Windows 3.1

Select the Options item from the View menu of Internet Explorer.  Select
the Programs tab.  Within the Programs sheet, click on the "File Types ..."

View (menu) | Options (item in menu) | Programs (tab) | File Types ... (button)

Windows NT System Registry to determine what to do with a file.  This is
the same mechanism that the Windows 95 or NT 4.0 Desktop uses to
con.  This is achieved through a Content or MIME type "value" (name
and data pair) in the registry.  See the section on how AVI is handled
n Windows 95 for more details.

The "File Types ..." brings up a list of file types and associated
actions.  This can be used to edit and modify the actions.

<A HREF="#Top">Return to Top</A>

<A NAME="Word"><H2>How to embed an AVI file in a Microsoft Word Document?</H2></A>

Media Player acts as an OLE (Object Linking and Embedding) server.  This means
that application such as Microsoft Word that support OLE can embed
a movie.

With Word 6.0 (Microsoft seems to keep changing the user interface for
Microsoft Word so I need to qualify which version of Microsoft Word),

This inserts a link to the AVI file at the current location within the
Microsoft Word document that you are editing.  The first frame of the
AVI file is displayed.  Double click on the first frame of the AVI
file to start playback.

NOTE: With Word 6.0, this sequence of Word commands embeds a graphic
of the first frame of the AVI file along with instructions to invoke
Media Player on an external file in the Word document.  The binary AVI
file remains separate.  Only the file specification and a graphic
mage of the first frame are actually inserted in the Word document.
The on-line help documentation with Word 6.0 is misleading or outright
false on this point.

Other Windows applications that act as OLE clients will be able to do

<A HREF="#Top">Return to Top</A>

<A NAME="Size">
<H2>Size limits on AVI files</H2>

An AVI file cannot be larger than the disk partition that
contains it.  Different filesystems have different maximum sizes
for disk partitions.

Under the 16 bit FAT (File Allocation Table) filesystem used by DOS,
DOS, a hard disk is divided into 512 byte sectors.  DOS Version 4
added support for 32 bit sector numbers.  2 raised to the 32 is roughly 4
billion, multiply this times 512 bytes in a sector to get the 2GB
limit.  FAT16 partitions are limited to 2GB, necessarilly limiting AVI
files to a maximum size of 2GB as well.

DOS versions prior to DOS 4 limited disk partitions to 32MB (Megabytes).
These earlier versions of DOS used 16 bit sector numbers in all I/O
n a sector to get the 32MB limit.

may not be subject to the 2GB limit.

The new FAT32 filesystem available with Windows 95 permits partitions larger
than 2GB.  Unfortunately, a 1 or 2 GB file size limit is hard wired
nto some of the code for the Microsoft Video for Windows.  In
AVI files) contain a 1 GB or 2 GB limit hard wired into them.

Microsoft's Active Movie, which replaces Video for Windows, contains
fixes for the 1-2 GB size limits hard wired into Video for Windows.

Microsoft's OEM Service Release 2 (OSR2) incorporates FAT32.  Earlier
OEM releases and the retail version of Windows 95 (as of 2/15/97) do
not include FAT32.  Microsoft sayeth: "Neither MS-DOS 6.x nor retail
versions of Windows 95 will recognize a FAT32 volume".  To see if you
the General tab.  It will say "4.00.950b".  If there is no trailing
letter or "4.00.950a", then you do not have OSR2.

OEM versions of Windows 95 cannot be purchased separately as off the
like Dell, Compaq, and so forth.  The retail version(s?) of Windows 95
can be purchased at software stores or through software resellers.

OSR2, either a special version of Windows 95 or a way to install FAT32
n versions of Windows 95 that did not come with FAT32.

OSR2 and FAT32 seem to have some problems.  Some applications

<A HREF="http://www.bugnet.com/">Bug Net Web Site</A>

or search the Microsoft Knowledge Base for the keyword OSR2.

The header for an AVI file includes a 32 bit AVI file length, imposing
a restriction of 4GB on the AVI file size.  

The Open Digital Media (OpenDML) Consortium has defined 
OpenDML AVI File Format Extensions to add support for 
a fix for the 4 GB limit.  Microsoft has incorporated this
extended version of AVI into ActiveMovie 1.0 from

<A HREF="#Top">Return to Top</A>

<A NAME="Corel">
<H2>How to Fix Problem with CorelMove4.0 AVI Files</H2>

CorelMove 4.0 exports AVI files that cannot be played using
Video for Windows 1.1 or the Windows 95 Video for Windows or
ActiveMovie 1.0.  

Corel has a fix file that can be downloaded from their software
library. The file is called "cmvfix.exe."

The URL is...
<A HREF="http://www.corel.com/products/graphicsandpublishing/draw4/library.htm">http://www.corel.com/products/graphicsandpublishing/draw4/library.htm</A>

Description text from the Web page...

Title: CMVFIX.EXE For CorelMOVE 4.0 AVI export correction

CMVFIX.EXE by Corel Corporation 1994 contains these
compressed files: CMV4FIX.EXE is a compressed file that
contains fixes for CorelMOVE 4.0's AVI file exports. These
are new replacement .DLLs. AVI4FIX.EXE is a Windows
application that will allow you to correct older CorelMOVE
create an AVI file AFTER installing the CMV4FIX update that
accompanies this fix, then you will NOT be required to run
this application. This will change the RLE compression in
the CorelMOVE AVI files.

<A HREF="#Top">Return to Top</A>

<A NAME="Biblio">
<H2>Sources of Information on AVI and Related Topics:</H2>


How to Digitize Video
by Nels Johnson 
John Wiley and Sons, New York, 1994

"Digital Video File Formats"
by Mark Florence
Dr. Dobbs Sourcebook of Multimedia Programming, Winter 1994

Microsoft Software Development Kits (SDK) 
and Device Driver Kits (DDK)

Microsoft's SDK's and DDK's are included with
various products such as Visual C/C++ and in a

The Microsoft Developer Network (MSDN) is a service
Operating Systems, Software Development
Kits, Device Driver Kits, and miscellaneous
other Microsoft products to the developer.
A subscription is usually for one year
and usually includes several full releases
of sets of CD's.  The Microsoft Developer
Network CD's usually include Beta releases
of various API's and new products that 
Microsoft is developing.  See the
Microsoft Web site

<A HREF="http://www.microsoft.com/">http://www.microsoft.com/</A>

for more information on the Microsoft
Developer Network.

Windows 3.1 Software Development Kit (SDK)
Win32 Software Development Kit (SDK)
Video for Windows Software Development Kit (SDK)

Windows 3.1 Device Driver Kit (DDK)
Windows NT Device Driver Kit (DDK)

Windows Multimedia Programmer's Guide
      - includes overview of RIFF

Video for Windows Software Development Kit (SDK) Programmer's Guide

      - includes overview of AVI

RIFF Specification is available on World Wide Web at (11/7/96):

<A HREF="http://www.seanet.com/HTML/Users/matts/riffmci/riffmci.htm">

DirectX Software Development Kit (SDK)
    - DirectX 3 SDK Contents
    - ActiveMovie 1.0 SDK Contents

    included with Visual C++ 5.0 Professional Edition and other
Microsoft products.

John Wiley and Sons, Inc.
New York, (c) 1994

A Technical Introduction to Digital Video
Charles A. Poynton
John Wiley and Sons, Inc.
New York, (c) 1996

Multimedia Developer's Guide
SAMS Publishing: A Division of Macmillan Computer Publishing
Library of Congress Catalog Number: 93-86963

for Windows.  Dumps of Windows SDK references.

Video Demystified: A Handbook for the Digital Engineer
by Keith Jack
HighText Publications
Solana Beach, CA  
Library of Congress Catalog No.: 93-14705

A popular highly technical book on analog and digital video
technology.  Not much on AVI, Video for Windows, or PC Video
but plenty of details on NTSC, PAL, SECAM, and other video
topics.  Now in a 2nd edition with new information on 
MPEG and H.26x

by Jan Ozer
Academic Press, 1997

Covers video capture on PC/Windows, video editing, windows
video compression, and MPEG-1 compression for digital video 
and multimedia authors.  Includes chapters on streaming audio
and streaming video.

The Windows NT Device Driver Book
A Guide for Programmers
by Art Baker (Cydonix Corporation)

An introduction to Windows NT Device Drivers with simple examples and
capture drivers as examples.  Sticks with simple examples.  

Microsoft provides a number of detailed documents for the
Microsoft NetShow product in Microsoft Word format.

Microsoft NetShow Content Creation Authoring Guide (CCAG)

Microsoft NetShow Tools Guide

Microsoft NetShow System Administration Guide

See the Microsoft NetShow Web Site:

<A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>


"The 800-Pound Gorilla's New Toy: Microsoft's new video software is
coming on strong" Business Week, May 11, 1998, p. 60

    - article on NetShow 3.0

"Set-top boxing" by Edward W. Desmond, Fortune, November 10, 1997, p. 91

     - Microsoft and WebTV (pretty thin)

"Real Revolution" by Robert H. Reid, Wired, October, 1997, p. 122

     - All about Progressive Networks (now renamed
RealNetworks) and its CEO Rob Glaser, the purveyors of
RealAudio streaming audio and RealVideo streaming video.

<A HREF="#Top">Return to Top</A>

<A NAME="News">
<H2>Internet Newsgroups with Information on AVI and Video</H2>

nformation on AVI and video.  Some useful newsgroups are:


<A HREF="news:rec.video.desktop">rec.video.desktop</A>

<A HREF="news:comp.os.ms-windows.video">comp.os.ms-windows.video</A>

<A HREF="news:comp.sys.ibm.pc.hardware.video">comp.sys.ibm.pc.hardware.video</A>

<A HREF="news:comp.dcom.videoconf">comp.dcom.videoconf</A>  Videoconferencing


<A HREF="news:comp.multimedia">comp.multimedia</A>

      Broad coverage of multimedia including video.

<A HREF="news:comp.compression">comp.compression</A>

      Both technical discussions of compression algorithms and
codecs, as well as end user issues such as utilities and
configuration issues.

<A HREF="news:alt.binaries.multimedia.utilies">alt.binaries.multimedia.utilities</A>

      Utilities for handling multimedia.

<A HREF="#Top">Return to Top</A>

<A NAME="VideoStandards">
<H2>Where to Find Information on Audio and Video Standards Other Than AVI</H2>

<H3>Apple QuickTime</H3>

Apple maintains a Web site on its QuickTime multimedia file format and
family of products.

<A HREF="http://www.apple.com/quicktime/">http://www.apple.com/quicktime/</A>

<H3>ISO (International Organization for Standardization) MPEG</H3>

The International Organization for Standardization, usually called ISO,
known as MPEG, Motion Pictures Expert Groups.  The MPEG standards include
MPEG-1, MPEG-2, MPEG-4, and MPEG-7.

The official ISO MPEG Web site is:

<A HREF="http://drogo.cselt.it/mpeg/">http://drogo.cselt.it/mpeg/</A>

Tristan Savatier's comprehensive MPEG Web site is:

<A HREF="http://www.mpeg.org/">http://www.mpeg.org/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Names">
<H2>Microsoft's Changing Names</H2>

Microsoft has an annoying tendency to rename API's, software
components, products, and perhaps even entire companies.  One has to
colossus.  This has happened to a number of video and video related

List of Changed Names

Quartz             ( original codename for ActiveMovie )
Active Movie 1.0   ( new video software to replace Video for Windows)
Active Movie 2.0 ===> DirectShow 2.0    ( March, 1997 )

The change to DirectShow seems analagous to Ford renaming the Mustang
the Putt-Putt Mobile in 1967.

ASF  (Active Streaming Format)  (new video file format, to replace AVI?)
ASF  (Advanced Streaming Format)   Active is dropped in Sept. 1997

Somebody doesn't like Active????

(Microsoft's Streaming Video Product)
Microsoft NetShow ==> NetShow Services  (late 1998?)

(new Operating System to replace Windows 95)
Memphis  ==> Windows 97  ==>  Windows 98

for the Internet, was founded by Rob Glaser, a former top executive
at Microsoft.  In late 1997, Microsoft invested in Progressive
Networks, reportedly acquiring an option to acquire 23% of the 
company.  Progressive Networks renamed itself RealNetworks, possibly
to improve the prospects of its Initial Public Offering (IPO).

RealNetworks          (this is now  12/20/97)

RealNetworks has licensed and markets Iterated Systems fractal video
codec under the name RealVideo.  Iterated used to call their video
codec ClearVideo.

ClearVideo            (that was then)
RealVideo             (this is now  12/20/97)

<A HREF="#Top">Return to Top</A>

<A NAME="Business">
<H2>Business and Economics of AVI</H2>

<H3>Practical Business Uses of AVI</H3>



Bandwidth restrictions and the discomfort of watching video on
computer monitors at short distances for extended
contain a recognizable story will dominate the successful use of

The common practice of putting movie trailers on promotional Web
Movies have tended to use QuickTime, most prominently with the highly
than AVI or ASF (Windows Media).

Such advertisements could also include product demonstrations.

Talking Heads video is rarely interesting and entertaining although
nexpensive to produce.

<H3>Business and Economics of Standards</H3>

AVI is a de facto industry standard.  Standards in general, and 
economics, and politics of information technology and 
Microsoft and Intel (WinTel) in particular.  

<A HREF="http://www.gtwassociates.com/">GTW Associates</A> is
a consulting firm specializing in standards and related issues.
As of May 6, 1999 their Web site contained many excellent papers
and resources on business, political, and economic issues of
Microsoft, the colossus itself.

<A HREF="http://www.gtwassociates.com/">http://www.gtwassociates.com/"</A>

<A HREF="http://www.santafe.edu/arthur/">W. Brian Arthur</A> is an
economist who has written extensively on increasing returns for
adoption, standards, and related topics.  

<A HREF="http://www.santafe.edu/arthur/">http://www.santafe.edu/arthur/</A>

<A HREF="http://www.rahul.net/jfm/Monopoly_2.pdf">Standard Based
Monopolies and Near Monopolies: The WinTel Example</A> 
(in the Adobe Acrobat PDF format) is my personal
opinion about how Microsoft and Intel, and many other computer

<A HREF="http://www.adobe.com/prodindex/acrobat/readstep.html"><IMG SRC="http://www.rahul.net/jfm/images/getacro.gif" ALT="Get Acrobat Reader"></A>


<A HREF="http://www.reason.org/">Reason Foundation</A>
on the Microsoft antitrust saga.  Reason is a libertarian
organization with a distinct anti-antitrust or pro-Microsoft
bias, depending on how one looks at it.  

<A HREF="http://www.reason.org/">http://www.reason.org/</A>

<A HREF="http://www.cptech.org/">The Consumer Project on Technology</A>
maintains an extensive Web site with extensive information on the legal,
a large section on Microsoft and the antitrust cases against Microsoft.
Despite an obvious political agenda, this is a very comprehensive site.

<A HREF="http://www.cptech.org/">http://www.cptech.org/</A>

<A HREF="#Top">Return to Top</A>

<A NAME="Glossary">

A quick guide to the acronyms, jargon, and techno-babble related
to AVI, Video for Windows, ActiveMovie, DirectShow, desktop and
networked video.


<DD>Audio Compression Manager.  The Windows Multimedia software
component that manages audio codecs (compressor/decompressors).
ACM can also be considered an API specification.  A codec must
conform to the implicit ACM specification to work with
Windows Multimedia.

<DD>Microsoft software component for handling and displaying
Windows 95 and Windows NT 4.0.  Intended to replace
Video for Windows.  Renamed DirectShow.

<DD>Audio Compression-3.  Usually marketed as Dolby Digital.  
A digital audio compression format from Dolby Laboratories.
three-dimensional sound.
Used in DVD, GA-HDTV, laser discs, and movie theaters.

<DD>Asymmetric Digital Subscriber Line.  A technology and standard to
enable much higher bitrates between telephone company central offices
and homes over the already installed copper telephone lines.  One of
a family of such technologies and standards collectively referred to
as xDSL.  May provide sufficient bandwidth for network video to

<DD>A mathematical rule or procedure for solving a problem.

<DD>American National Standards Institute.  A private not-for-profit
membership organization that administers the private sector voluntary
and sole U.S. representative to the International Organization
for Standardization (ISO) and the International Electrotechnical
Commission (IEC).

<DD>American Standard Code for Information Interchange.  This is the
most widely used character set for representing Latin characters and
certain control codes using 7 bit codes, that is 0 to 127 (decimal)
or 0x00 to 0x7f (hexadecimal).  ASCII is an American National Standard:
ANSI X3.4-1968 ASCII Character Set.  There is an updated

<DD>Audio Video Interleave.  Microsoft format for digital audio, video,
and other multimedia data.  

<DD>Advanced Streaming Format (ASF) Stream Descriptor.  .asd
files are files that specify encoding parameters for the ASF
Real Time Encoder, one of the NetShow Tools.

<DD>Advanced Streaming Format (formerly Active Streaming Format).
A Microsoft file and data stream format for multimedia data
ncluding audio, video, still images, and other data types.
Also referred to as Windows Media format.

<DD>Active stream redirector (.asx) file.  .asx files provide
nformation that a NetShow Player needs to receive either
unicast or multicast ASF streams.  An .asx file may be encrypted
or not.  An unencrypted .asx file is simply a text file that 
contains the URL's for the ASF streams.  A .asx file is not a
.asf file.

<DD>Applications Specific Integrated Circuit.  A silicon chip
customized for a specific application such as video compression.

<DD>Asynchronous Transfer Mode.  Networking technology and standard
frequently used for implementing high-speed Wide Area Networks over
fiber optic cables.

<DD>Bitrate may refer to bits per pixel for compressed images or
bits per second (such as 128 Kilobits/second) for compressed

<DD>Windows Bitmap file format.  The most common type of still
mage on the PC.  There are also OS/2 BMP still image files.
The OS/2 BMP file format is similar but not identical to the
Microsoft Windows BMP file format.

<DD>Constant Bit Rate.  In video coding, the bitrate of the compressed
video is fixed at a certain rate.  This usually results in variable

<DD>The International Radio Consultative Committee.  An international
body responsible for a number of video standards, e.g. CCIR-601.  
Renamed ITU-R (International Telecommunications Union - Radio Standardization 

<A NAME="CCIR601">
<DD>This is now "Recommendation ITU-R BT.601-5, Studio encoding 
uncompressed digital video used in studios and video production.
CCIR-601 digital video is frequently stored on D1 digital video

<DD>The International Telephone and Telegraph Consultative Committee.
An international body responsible for a number of communications
Union - Telecommunications Standardization Sector).

<DD>Complimentary Metal Oxide Semiconductor.  A semiconductor
consumer electronics chips are some variant of CMOS.  Other
CMOS is also used to refer a permanent 64 byte piece of CMOS RAM on IBM

<DD>short for <B>compressor decompressor</B>.  Usually a software
or hardware component that compresses and/or decompresses audio or
video data.  A hardware codec is usually a silicon chip.

<DD>Discrete Cosine Transform.  Mathematical transform used in
H.263+, and DV digital video compression.

<DT>de facto
<DD>by fact.  

<DT>de jure
<DD>by law.  

<DT>Device Driver
<DD>A software component that handles direct interaction with
a piece of hardware.

<DD>Microsoft software component for handling and displaying
Windows 95 and Windows NT 4.0.  Intended to replace
Video for Windows.  Originally codenamed Quartz, then released
as ActiveMovie.  Now DirectShow.

<DD>Dynamic Link Library.  A type of software library in
Microsoft Windows.

<DD>DV is a format for storing digital audio and video
used by by the DV-standard digital video cameras such as
the DVCam and DVCPro cameras.

<DD>Digital Versatile Disc.  (Digital Video Disc at one time.)
High density optical storage discs.
DVD used to distribute movies using MPEG-2 digital video and either
Dolby Digital (AC-3) or MPEG-2 (Philips MUSICAM) digital audio.

<DD>European Broadcasting Union.

<DD>Electronics Industry Association.  A trade organization responsible
for a number of standards.  For example, EIA Standard EIA-189-A, July

<A NAME="Entropy">
<DT>entropy coding
<DD>Entropy coding is a fancy name for a variety of methods that 
Examples include run length encoding, Huffman coding, and arithmetic

<DD>Federal Communications Commission.  The United States government
agency that regulates the television industry.  Established the NTSC
television standard and the GA-HDTV high definition television standard.

<DD>Federal Trade Commission.  A United States government agency
that enforces antitrust laws amongst other things.

<DD>Grand Alliance - High Definition Television.  The new United
States standard for High Definition Television based on the
MPEG-2 digital video compression format and the Dolby Digital (AC-3)
audio compression format.

<DD>An ITU-T standard for digital video compression for videoconferencing.
Uses the Discrete Cosine Transform (DCT).  ITU-T Recommendation H.261 (1993)
"Video codec for audiovisual services at px64 kbit/s".

<DD>An ITU-T standard for digital video compression for videoconferencing.
Uses the Discrete Cosine Transform.  ITU-T Recommendation H.263 (199x) 
"Video Coding for Low Bitrate Communication"

<DD>An ITU-T standard for digital videoconferencing over
telephone systems and terminal equipment".

<DD>An ITU-T standard for digital videoconferencing over TCP/IP networks.

<DD>An ITU-T standard for digital videoconferencing over telephone lines.

<DD>High Definition Television.  Various schemes to increase the
analog, but HDTV now refers almost exclusively to various digital
audio and video technologies and standards.

<DD>Intel Architecture.  This is the instruction set architecture of the
the 8080, 8086, 80286, 80386, 80486, Pentium (formerly 80586 or P5),
(formerly Pentium Pro with MMX), Pentium II Xeon (TM), Celeron (TM), and

The Intel Architecture is a de facto standard.  Intel has repeatedly
added new instructions and features to the architecture, although so
far maintaining backward compatibility with previous versions.  New
nstructions such as the MMX instructions and the Streaming SIMD
Extensions in the Pentium III can be used to accelerate video codecs
Semiconductor's Cyrix division, and Integrated Device Technology (IDT)
manufacture processor chips compatible with the Intel Architecture.

<DD>International Electrotechnical Commission.  The International
Organization for Standardization (ISO) and the IEC work closely together
to standardize information technology through the Joint Technical 
Committee 1 (JTC1).  The MPEG digital video standards activities
fall under the umbrella of JTC1.

<DD>Institute of Electrical and Electronics Engineers.  An organization
of engineers responsible for a number of electrical and electronics
ndustry standards.  IEEE is an international professional society

<DD>Internet Engineering Task Force.  The body responsible for managing
and establishing protocols for the Internet.

<DD>Intellectual Property Rights.  This usually refers to four major
categories of intellectural property: patents, copyrights, trademarks,
and trade secrets.

<DD>International Organization for Standardization.  ISO is a
non-governmental organization that was established in 1947.  ISO works
closely with the International Electrotechnical Commission (IEC) and
the International Telecommunications Union (ITU).  Note that ISO is <B>
not</B> an acronym.  It is derived from the Greek isos for "equal".
Responsible for many audio, video, and telecommunications standards.

<DD>International Telecommunications Union.  The ITU has been an
agency of the United Nations since 1948.  It is older, dating back
to 1865.  It may be the world's oldest intergovernmental agency.

<DD>ITU Radiocommunications Standardization Sector.  Formerly known as
CCIR, the International Radio Consultative Committee.

<DD>ITU Telecommunications Standardization Sector.  ITU-T is a 
questions and issuing Recommendations on them with a view
to standardizing telecommunications on a worldwide basis.  Formerly
known as CCITT, the International Telephone and Telegraph Consultative

<DD>JPEG File Interchange Format.  A standard file format for
JPEG images, they are usually refering to JFIF format files.
JFIF had some competitors in the early days of JPEG, such as the
JPEG TIFF format which has fallen into to disuse.

<DD>Joint Photographic Experts Group.  A body within the International
Organization for Standardization (ISO) that established the JPEG still image
compression standard.  JPEG is usually used to refer to compression
of still images or video frames using the "baseline JPEG" compression
algorithm using the Discrete Cosine Transform and Huffman coding.  
JPEG is the basis of the Motion JPEG used in digital video, where each
frame in a video is encoded separately using JPEG.

<DD>A new standard for lossless JPEG still image encoding. The original
JPEG standard included a lossless still image encoding mode - actually
a completely different algorithm from the DCT based "baseline JPEG".
JPEG-LS is a new lossless compression algorithm that achieves better
compression ratios than the original lossless JPEG.

<DD>A new standard under development by the JPEG committee for
mproved lossy still image compression.  JPEG-2000 will probably
use a different technology than the Block Discrete Cosine Transform
used in baseline JPEG.

<DD>Media Control Interface.  A Microsoft standard API for
API's for playback of AVI files and digital video devices (such as
laser disc players).

<DD>Multipurpose Internet Mail Extensions.  An extension to the

<DD>Microsoft Media Server.  Network protocol used by Microsoft
NetShow Server to communicate with NetShow Players.  The actual
multimedia data in ASF format may be delivered using HTTP, TCP, or UDP

<DT>Motion JPEG
<DD> A type of digital video in which the video frames are
ndividually compressed using JPEG still image compression.  A standard
exists for Motion JPEG stored in AVI files.

<DD>Motion Pictures Experts Group.  A body within the International
Organization for Standardization (ISO) that established the MPEG-1, MPEG-2,
and MPEG-4 digital audio and video compression standards.  MPEG
s also used to refer to video and audio clips compressed using
the MPEG standards and the MPEG standards themselves.

<DD>Mean Squared Error.  A statistical measure of error, used
to determine quality of compressed images.  Mathematically 
equivalent to Peak Signal to Noise Rate (PSNR).

<DD>National Association of Broadcasters.  A trade organization for the
television broadcast industry in the United States.  NAB is involved in

<DD>Microsoft videoconferencing software.

<DD>Microsoft streaming audio/video/multimedia product for
broadcasting multimedia streams over computer networks.
Also see ASF, ASX, and MMS.

<DT>network effect
<DD>The value of a product or service to a buyer increases with the
cumulative number of other buyers.  Also known as <B>increasing
example is a telephone service.  If a telephone service has one
one else.  The more subscribers to the telephone service, the more
valuable the service becomes.  The subscribers can communicate with
more people, the other subscribers.  This is a common phenomenon with
communication systems and communication technologies.  Microsoft's
near-monopoly is frequently attributed to network effects.  The value
of the AVI file format - or Apple's QuickTime file format, or the ISO
MPEG format - depends on the number of people who can view the AVI
files, the amount of entertaining or useful content available in the
format, and the number of applications supporting the format.

<DD>National Institute of Standards and Technology.  A part of
the United States Department of Commerce.  NIST was formerly the
National Bureau of Standards (NBS).

<DD>National Security Agency.  A United States agency within
the U.S. Department of Defense responsible for signals
ntelligence, encryption, cryptography, and related topics.
NSA was established by a still classified executive order.
Thus the full scope of its powers and responsibilities
of relationships with major telecommunications companies.

<DD>National Television System Committee.  The 
 color analog television standard used in the United
States, Japan, and a number of other countries.  Adopted by
United States in 1953.

<DD>Open Media Framework.  A standard for high end digital
video from Avid.  Avid video editing products use OMF as

<DT>open standard
<DD>A standard that is easy for companies to produce and market
there is a competitive market without monopoly profits in products
or services conforming to the standard.  Some standards that are
marketed as "open" aren't open in this sense.  Some open standards
are the 8 1/2 " by 11 " paper size used in the United States and the
ASCII (American Standard Code for Information Interchange) used for
Also see standard, de facto, de jure, and specification.

<DD>Phase Alternation Line.  The analog television standard used in
Germany, England, and many other nations.

<DD>A grant made by a government to an inventor, assuring the sole
nternational standards such as MPEG.

<DD>Macintosh QuickDraw picture file.  The most common type of

<DD>Plain Old Telephone Service.  Analog copper wires between
telephones and the phone company.  

<DD>Peak Signal to Noise Ratio.  A statistical measure of error, used
to determine the quality of compressed images.  Mathematically equivalent
to the mean squared error (MSE) and the root mean squared error (RMSE).
This is the most commonly used metric of image quality used in the image
and video compression literature.  The PSNR is usually quoted in
visual system.
As a rough rule of thumb, an image with a PSNR of 25 dB (decibels) is
usually pretty poor.  Anything below 25 dB is usually unacceptable.
Above around 30 dB images look pretty good and are often indistinguishable
from the uncompressed original image.
The human visual system appears to have sensitivity thresholds.  This
can be rigorously demonstrated in controlled experiments using 
thresholding, once the PSNR exceeds some value, the errors become
undetectable to human viewers.  Hence an image with a PSNR of 35 dB
may look the same as an image with a PSNR of 40 dB.
Conversely, the human visual system seems to have a saturation
effect as well.  Once the image quality falls below a certain
level, the image simply looks bad.  An image with a PSNR of 15 dB and an
mage with a PSNR of 10 dB may look equally bad to a viewer.
Typically by this point the image appears quite poor.
There is a range where the perceived quality and the PSNR tend to

 |                             ************
Q|                        *****
u|                    ****
a|                 ***
l|               **
|             **
t|          ***      
              25 dB      30 db       35 dB

     Relationship Between Perceived Quality and Image PSNR

The Mean Squared Error is the mean of the squares of the differences
between the values of pixels in two images.  If i and j are indices
of an images and N is the total number of pixels:
MSE = (1 / N) * (Sum[i][j] |P[i][j] - Q[i][j]|^2
Where P and Q are two images.  i and j are the horizontal and vertical
location of a pixel.  P[i][j] is the value of the pixel at location (i,j)
n the image.  Sum[i][j] indicates a sum over i and j.
The Root Mean Squared Error (RMSE) is:
RMSE = Sqrt(MSE)
The Peak Signal to Noise Ratio expressed in decibels is:
Where b is the peak value for a pixel, typically 255 (8 bit pixels).

<DD>Patent and Trademark Office, United States Patent and Trademark Office.
This is the government office responsible for granting patents and
trademarks. Currently (May 10, 1999) the Patent and Trademark Office
s part of the United States Department of Commerce.  Many audio and
video compression technologies are covered by patents.  

<DD>Quality of Service.  In networking, QoS refers to various
eliminating packet loss for video streams.

<DD>Microsoft software component for handling and displaying
Windows 95 and Windows NT 4.0.  Intended to replace
Video for Windows.  Originally codenamed Quartz, then released as
as ActiveMovie.  Now (May, 1998) DirectShow.

<DD>QuickTime is Apple's equivalent of Video for Windows for
the Macintosh.  Apple also makes QuickTime for Windows.
QuickTime is also used to refer to the QuickTime Movie file
format, a widely used format for digital audio, video, and
other multimedia.

<DD>Red Green Blue.  Color represented as red, green, and blue
components.  Most computer monitors use RGB pixels.  

<DD>Original black and white television standard used in the
United States.  NTSC was designed to be compatible with RS-170
black and white television sets.  

<DD>Sequentiel Couleur Avec Memoire or Sequential Color with Memory.
Analog television standard developed in France.  Used in France 
and some other nations.

<DD>Society of Motion Picture and Television Engineers.  

<DD>The English word <I>specification</I> has a few meanings, or
following meaning: "<B>2</B> [<I>usually pl.</I>] <I>a)</I>a
or enumeration of particulars, as to actual or required size, quality,

<DD>The English word <I>standard</I> has a large number of 
meanings, or word senses.  The Webster's New World Dictionary
commonly or generally accepted or adhered to; criterion set for
usages or practices [moral <I>standards</I>]".  This is the closest
The ISO (International Organization for Standardization) gives the
following definition: "Standards are documented agreements containing
technical specifications or other precise criteria to be used
consistently  as rules, guidelines, or definitions of characteristics,
to ensure that materials, products, processes and services are fit
for their purpose."
Standard can have a precise legal meaning in the context of U.S. law,
the laws of foreign nations, treaties and international organizations
of Management and Budget (OMB) Circular A-119, "Federal Participation
n the Development and Use of Voluntary Consensus Standards and in
Conformity Assessment Activities", Revised and Dated February 10, 1998
Advancement Act of 1995"):

a. The term "standard," or "technical standard" as cited in the Act,
ncludes all of the following:


(1) Common and repeated use of rules, conditions,guidelines or
characteristics for products or related processes and production
methods, and related management systems practices.


(2) The definition of terms; classification of components; delineation
of procedures; specification of dimensions, materials, performance,
fit and measurements of size or strength.

b. The term "standard" does not include the following: 
(1) Professional standards of personal conduct. 
(2) Institutional codes of ethics. 

c. "Performance standard" is a standard as defined above that states
compliance but without stating the methods for achieving required
for the item, operational requirements, and/or interface and
nterchangeability characteristics. A performance standard may be
viewed in juxtaposition to a prescriptive standard which may specify
s to be achieved, or how an item is to be fabricated or constructed.


the form of a standardization document developed by a private sector
association, organization or technical society which plans, develops,
establishes or coordinates standards, specifications, handbooks, or


a. For purposes of this policy, "voluntary consensus standards" are
bodies, both domestic and international. These standards include
non-discriminatory, royalty-free or reasonable royalty basis to all
nterested parties. For purposes of this Circular, "technical


(1) "Voluntary consensus standards bodies" are domestic or
nternational organizations which plan, develop, establish, or
coordinate voluntary consensus standards using agreed-upon
consensus standards bodies," as cited in Act, is an equivalent
term. The Act and the Circular encourage the participation of federal
needs. A voluntary consensus standards body is defined by the
following attributes:

(i) Openness. 
(ii) Balance of interest. 
(iii) Due process. 
(vi) An appeals process. 

(v) Consensus, which is defined as general agreement, but not
necessarily unanimity, and includes a process for attempting to
been fairly considered, each objector is advised of the disposition of
members are given an opportunity to change their votes after reviewing
the comments.


b. Other types of standards, which are distinct from voluntary
consensus standards, are the following:


(1) "Non-consensus standards," "Industry standards," "Company


(2) "Government-unique standards," which are developed by the


(3) Standards mandated by law, such as those contained in the United
States Pharmacopeia and the National Formulary, as referenced in 21
U.S.C. 351.

The AVI file format is an example of a standard.  AVI would probably be
considered a "de facto standard" in the language of the U.S. Federal

<DT>Video for Windows (VfW)
<DD>Microsoft Windows software component for handling and displaying
video.  Windows 3.x incorporates a 16-bit Video for Windows.
Windows 95 and Windows NT both incorporate a 32-bit Video for

<DD>Variable Bit Rate.  In video coding, the bitrate of the encoded
video stream varies over time.  Sometimes the video is encoded with
a fixed quantization factor resulting in varying bitrates and varying

<DD>Video Compression Manager.  The Microsoft Video for Windows
component that manages video codecs (compressor/decompressors).
VCM can also be considered a specification for an API.  A video
codec must conform to VCM to work with Video for Windows.

<DD>Video Quality Experts Group.  The ITU's Video Quality
Experts Group ad hoc committee to establish a standard for
objectively measuring video quality.  A group of experts from
three groups: ITU-R Study Group 11, ITU-T Study Group 9, and

<DD>Virtual Device Driver.  A type of device driver for
Microsoft Windows 3.x and Windows 95.  

<DD>World Intellectual Property Organization.  Many nations, including
the United States, have agreed to try to harmonize their intellectual
n one nation.

<DD>World Trade Organization.  The successor to GATT, the General
Agreement on Tarrifs and Trade.  The ostensible
between nations such as tariffs.  Relevant to the theme of the AVI
Overview, WTO and related agreements cover
<B>Technical Barriers to Trade (TBT)</B>, which include such issues as 
ncompatible technical standards between different nations.  European
nations and other foreign nations frequently own their national
communications businesses, such as telephone and television, and 
for companies and organizations seeking to market products and services
n Europe and many other nations.
<B>Voluntary consensus standards</B> as defined by the WTO related
agreements have favored standing under the Agreement on Technical
Barriers to Trade.  The ISO standards such as MPEG and the ITU
encourage the use of such standards.  For example, a national government
may legally block a company without the ISO 9000 and ISO 9001 quality
n their nation.


Under the Uruguay Round agreements that established the WTO, the
United States was able to exempt government sponsored research and
as a government subsidy to industry.  While the United States has
nations, many high technology businesses in the United States were
built on technologies and non-commercial working prototypes developed
the most prominent example of this currently - with Microsoft
licensing the Mosaic Web browser to become Internet Explorer and
Netscape hiring several of the Mosaic development team from the
federally funded National Center for Supercomputer Applications (NCSA)
at the University of Illinois.  In the video world, the emerging
ncluding the development of working still image prototypes in software.

<DD>The color space used in the <A HREF="#CCIR601">CCIR-601</A> digital video specification.

<DD>The color space used in the NTSC analog television standard.

<DD>The color space used in the PAL analog television standard.


<A HREF="#Top">Return to Top</A>

<A NAME="Chronology">

January 6, 1999    Radius Incorporated, the Cinepak company,

May 4, 1998        Microsoft's first public test version
of Microsoft NetShow 3.0 streaming video and video

February 26, 1998  Date of Advanced Streaming Format (ASF)
Specification Public Specification Version 1.0 co-authored by
Microsoft Corporation and RealNetworks, Inc.  ASF is supposed
to replace the AVI format.

November 12, 1997  Microsoft releases a new NetShow distribution:
NetShow 2.1  NetShow 2.1 adds support for RealNetworks (formerly
Windows 3.1, MacOS, and the Linux, Solaris, SunOS, and HP-UX versions
of Unix, and TheaterServer for streaming broadcast-quality video over

September 10, 1997 Microsoft releases second draft of
ASF (Advanced Streaming Format) Specification.  ASF is
ntended to replace the AVI format.

August 14, 1997    Microsoft releases first draft of
the ASF (Advanced Streaming Format) Specification.  ASF is
ntended to replace the AVI format.

August 5, 1997     Microsoft pays $75 million to acquire
VxTreme of Sunnyvale, California.  VxTreme markets
a video codec that is probably wavelet-based.

July 21, 1997      Microsoft invests $30 million in
RealNetworks (formerly Progressive Networks) of
Seattle.  Microsoft also pays an additional $30 million
to license RealNetworks audio and video technologies.
RealNetworks technologies are RealAudio and RealVideo.
RealVideo is actually the fractal video compression
technology formerly known as ClearVideo, licensed from

October 6, 1996    Microsoft invests $5 million for 10% of
VDONet of Palo Alto, CA.  VDONet markets the VDOWave

<A HREF="#Top">Return to Top</A>

<A NAME="Awards">

<!-- ##### Begin PC Webopaedia Code ##### -->
<a href="http://www.pcwebopedia.com/" target="_top">
<img src="http://www.pcwebopedia.com/images/awards/outstanding.gif" 
<!-- #####  End PC Webopaedia Code  ##### -->

On March 23, 1998 the AVI Overview received the PC Webopaedia 
Outstanding Page Award.

<A HREF="http://www.12c4.com/hotcool/"><IMG SRC="http://www.rahul.net/jfm/bestsite.gif" ALT="HotCool SuperSite" width="88 Height="31" BORDER=1></A>

On February 4, 1999 was selected as a HotCool SuperSite.

<A NAME="Credits">

The following people have contributed ideas, suggestions,
criticisms, and information to the AVI Overview:

John Avis            (information on Video for DOS)
Jens Mutschke        Q-Team Dr. Knabe GmbH
John Whelan          Dublin City University
Victor Rutman        Netvision
Wolfgang Hesseler    QuickView for DOS
Marcus Moenig        MainConcept
Dave Wilson          Rockwell/Brooktree
Steve P.             (no full last name, information on CorelMove 4.0)
Dennis Strauch
Tom Harding          Practice Corporation
Alexander Grigoriev
Michael Caracena     AVI Constructor
Ashley Jacobs        Mystech Associates
Bernd Schoenes
WashDC@aol.com       (information on BinHex and AVI)
Kevin McKinnon       Dowco Computer Systems   (info on IFF file format and RIFF)
Tom Lane             (Independent JPEG Group)
Cindy Fuhrman        Techsmith Corporation
Timothy Barr         (information on Premiere AVI to GIF89a plug-in)
Chris Coppess        (information on Microsoft MPEG-4 and NetShow)
David Gartner        Public Relations Manager, Equilibrium
Susan Stearman       Ligos Technology Inc.  (LSX-MPEG Encoder)
Guillaume de Balliencourt  Morgan Multimedia (Software M-JPEG Decoder)
Laszlo               (information on MooVId and PIV-MooVId Amiga AVI/MOV players)
Bill Luken           (information on RIFFSCAN and QTSCAN)
Serguei Grigoriev    (information on MainConcept Motion JPEG Codec)
Ron Gery             Gamani Productions/GIF Movie Gear

Special thanks to:

Desktop Video Expert Center/NASA Ames Research Center
<A HREF="http://zeus.arc.nasa.gov/">http://zeus.arc.nasa.gov/</A>

<A HREF="#Top">Return to Top</A>

NOTE: Suggestions, additions, and corrections are welcome.  Please
<A HREF="mailto:jfm@rahul.net">jfm@rahul.net</A>

About the author:

    John F. McGowan is a software engineer with experience in digital
video and computer generated imagery.  He has developed commercial
MPEG-1 and MPEG-2 players for PC/Windows, Unix, and Power Macintosh
of Technology and a Ph.D. in Physics from the University of Illinois
at Urbana-Champaign.