
                                   
                                   
                              Multimedia
                                   
                           Standards Update
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                Microsoft Multimedia Document Overview
                                   
                                   






                            January 4, 1993
                           Revision: 1.0.34






Information in this document is subject to change without notice and
does not represent a commitment on the part of Microsoft Corporation.
The software described in this document is furnished under license
agreement or nondisclosure agreement.  The software may be used or
copied only in the accordance with the terms of the agreement.  It is
against the law to copy the software on any medium except as
specifically allowed in the license or nondisclosure agreement.

No part of this document may be reproduced or transmitted in any form
or by any means, electronic or mechanical, including photocopying and
recording, for any purpose without the express written permission of
Microsoft Corporation.

This standards update is for informational purposes only.  Microsoft
makes no warranties, expressed or implied in this Standards Update.

Microsoft, MS, MS-DOS, XENIX and the Microsoft logo are registered
trademarks and Windows is a trademark of Microsoft Corporation.  Other
trade names mentioned herein are trademarks of their respective
manufacturers.
                                   
   Copyright 1992-1993, Microsoft Corporation.  All Rights Reserved.

                                   
                                   
                           Table of Contents

Overview                                           3
  Where to Look for Information                   3
  Intended Audience                               3
  Versions of this Document                       3
  Questions?                                      4
  Documents Available                             4
Multimedia Standards Updates                       5
  Multimedia Developer Registration Kit           5
  New Multimedia Data Types and Data Techniques   5
  New Multimedia IDs                              6
  Digital Video Command Set                       6
  Video Cassette Recorder Command Set             7
  AVI RIFF Files                                  7
  DIB Format Extensions for Microsoft Windows     8
Technical Notes                                    9
  Graphics Design and Optimization                9
  Creating Multimedia Applications Covering Multimedia Aware
    Applications and General Application Techniques9
  CD-ROM Design and Optimization                  9
  Video Capture Device Drivers                    10
  Video Capture Application Reference             10
  Video Compression/Decompression Device Drivers  11
Sample Code                                        12
  TRI / TRIQ                                      12
  rleapp                                          12
  REVERSE                                         12
  MMPLAY                                          12
  MMPF                                            13
  MIDIMon                                         13
  midikeyb                                        13
  LAVA                                            13
  JOYTOY                                          14
  CropDIB                                         14
  DETECT                                          14
  MergeDIB                                        14
  transblt                                        15
  MMSYS                                           15
  WAVECONV                                        15
Glossary                                           16



Overview

The Microsoft Multimedia Overview presents the list of the current
documents available from the multimedia group at Microsoft.  The reader
should use this list to ensure that they have the current version of
the listed documents as well as a guide to the documents that are
available.


Where to Look for Information

Current versions of this document as well as other technical update and
technical notes and sample code are available from:

1.Current versions of any document may be obtained by calling (800)
  227-4679 x11771.  You will need to have the part number.
2.CompuServe WINSDK forum
3.Via anonymous FTP on ftp.uu.net in the vendors\microsoft\multimedia
  directory.  Sample code is in the samples directory and technical
  notes are in the technote directory.
4.You can write to:
     Microsoft
     Multimedia Product Management
     One Microsoft Way
     Redmond, WA 98052-6399
     FAX: (206) 93MSFAX

Intended Audience

This document should be read by "multimedia producers" (as defined in
the Multimedia Authoring Guide) as well as programmers using all types
of tools.  You should read this document to ensure that you have the
current versions of the technotes and updates.

Versions of this Document

This document is continually being updated and expanded.  When
referring to standards defined in this document, please refer to the
data and version number printed on the cover page.

Versions of this document with the same version number are just
expanded additions of the same information.  However, when the version
number changes, the information contained in the previous version will
be moved to the standard reference locations for RIFF and multimedia
data standards.

This document is included in all orderable kits (see parts numbers
below).

Questions?

If you have questions, requests, or problems with this technical
update, you should send your question to the address above.


Documents Available

098-39209 Kit Win Video 1.0 Apps Development
098-39210 Kit Win Video 1.0 Driver Developmnt
098-39211 Kit Win 3.1 MCI & RIFF Documnation
098-39212 Kit Win 3.1 MCI & RIFF Update
098-39213 Kit Win 3.1 Digtl Vid MCI Comnd Set
098-39214 Kit Win 3.1 Multimedia Technotes
098-39215 Kit Win 3.1 Vcr MCI Command Set


Multimedia Standards Updates

This series of documents presents new and updated information on
multimedia standards under Windows and other platforms that support
RIFF and MCI.

Multimedia Developer Registration Kit

Current: Revision 2.0.54 November 12, 1992
Available in:
098-39211 Kit Win 3.1 MCI & RIFF Documentation
098-39212 Kit Win 3.1 MCI & RIFF Update

This document contains the registration forms and instructions for
multimedia data types and command sets.

New Multimedia Data Types and Data Techniques

Current: Revision 1.0.108     December 29, 1992
Available in:
098-39211 Kit Win 3.1 MCI & RIFF Documentation
098-39212 Kit Win 3.1 MCI & RIFF Update

This document is the result of companies requesting and registering new
data types.  This document builds on the standard RIFF documentation
that is contained in:

  1.The Multimedia Development Kit (MDK) 1.0 Programmer's Reference
  2.The Windows 3.1 Software Development Kit (SDK)'s Multimedia
     Programmer's Reference
  3.The Multimedia Programmer's Reference book from Microsoft Press

The RIFF file format is a standard published as a joint design document
by IBM and Microsoft.  This standards document is Multimedia
Programming Interface and Data Specifications 1.0 published in August
1991.  The first draft of this document was issued in November, 1990.
This IBM/Microsoft document is available from the sources listed below.

This standards update assumes that the reader has read the concepts
defined in these documents.

New RIFF file forms and chunks are defined in this document.  The new
RIFF forms and chunks defined here have been registered with Microsoft.
In addition, techniques for dealing with multimedia data in the system,
such as clipboard data, are defined in this document.

New Multimedia IDs

Current: Revision: 1.1.27     December 29, 1992
Available in:
098-39211 Kit Win 3.1 MCI & RIFF Documentation
098-39212 Kit Win 3.1 MCI & RIFF Update

This standards update presents new and updated information for
multimedia manufacture and product IDs.  This document is also
available as part of the Multimedia Developer Registration Kit.  The
MDRK is used to register multimedia data and ids as well as new MCI
command sets..  This document is the result of companies requesting and
registering new data types.  This document builds on the standard
manufacturer and product IDs and WAVE format tags that are contained
in:

  1.The Multimedia Development Kit (MDK) 1.0 Programmer's Reference
  2.The Windows 3.1 Software Development Kit (SDK)'s Multimedia
     Programmer's Reference
  3.The Multimedia Programmer's Reference book from Microsoft Press

The new IDs defined in this document have been registered with
Microsoft.

Digital Video Command Set

Current: Version 1.01
Available in:
098-39213 Kit Win 3.1 Digtl Vid MCI Comnd Set

This document represents the specification of the digitalvideo device
class for the Media Control Interface (MCI), or DV MCI.  This
specification applies to hardware and software manufacturers of digital
video products as well as ISVs creating applications using the digital
video products.  This specification was developed in collaboration with
OEMs to ensure that it reflects the inherent characteristics of digital
video hardware.  However, this specification is not limited to a single
manufacturer's hardware and is expected to be applicable to a wide
range of hardware implementations.

This document is not self-contained.  In particular, it assumes you
have a general familiarity with the documentation for Windows with
multimedia extensions, as well as a general familiarity with Windows
programming.  This document contains three sections and two appendixes.
The first section provides a preface and an overview of the
characteristics of a digitalvideo device.  The second section, chapter
1, describes the commands used with the command string interface.  The
third section, chapter 2, describes the commands used with the command
message interface.  Appendix 1 lists archaic string commands, and
appendix 2 summarizes the digitalvideo commands and their proper usage.
Any discrepancies between these sections should be resolved by
referring to Chapter 1 - String Commands.

The major purpose of this document is to provide clear guidelines to
any developer of a digitalvideo device driver as to how to implement
specific features.  Because a feature is described herein does not
imply that the developer of a compliant digitalvideo device driver must
support the feature.  All digitalvideo device drivers should use the
following guidelines:

(a) A digitalvideo device driver that does not support a specific
aspect of the specification should return an error code of
MCIERR_UNSUPPORTED_FUNCTION.
(b) A digitalvideo device driver that supports functionality described
by this specification should use those aspects of the specification
relevant to performing that functionality.
(c) All command strings and MCI messages should support the test
option.  This lets an application check whether or not a device driver
supports proposed action.
(d) Where relevant capability queries are defined to interrogate
whether or not certain related groups of functional capabilities are
supported, a compliant device driver should accurately report which
functionality it supports.


Video Cassette Recorder Command Set

Current: Alpha 1.0  June 12, 1992
Available in:
098-39215 Kit Win 3.1 Vcr MCI Command Set

This document represents a preliminary version of the Media Control
Interface command language as it applies to Video Cassette Recording
(VCR) devices.  This category is intended to include devices such as
"low end" home machines (VCRs), as well as higher end devices ranging
to professional editing equipment (VTRs).  The command set is currently
limited to common VCR capabilities.

As it stands, the document assumes general knowledge of MCI devices,
drivers and existing MCI command languages and their corresponding
syntax.  The purpose of this document is to solicit feedback and to
generate a fully functional, standardized VCR command set language for
use within the Windows Multimedia environment.

Any extensions to the VCR MCI command set (e.g. for video control),
such as brightness, should attempt to follow the work done in
digitalvideo command set, and should be consistent with the naming
conventions and syntax presented in that command set.

All commands implemented in the command set should support the use of
'wait', 'notify' and 'test' flags.  The test flag indicates that the
driver should query to see if the command would work at the given time.

AVI RIFF Files

Current Version: November 10, 1992
Available in:
098-39209 Kit Win Video 1.0 Apps Development

The Microsoft Audio/Video Interleaved (AVI) file format is a RIFF file
specification used with applications that capture, edit, and playback
audio/video sequences. In general, AVI files contain multiple streams
of different types of data. Most AVI sequences will use both audio and
video streams. A simple variation for an AVI sequence uses video data
and does not require an audio stream. Specialized AVI sequences might
include a control track or MIDI track as an additional data stream. The
control track could control external devices such as an MCI videodisc
player. The MIDI track could play background music for the sequence.
While a specialized sequence requires a specialized control program to
take advantage of all its capabilities, applications that can read and
play AVI sequences can still read and play an AVI sequence in a
specialized file. (These applications ignore the non-AVI data in the
specialized file.) This technical note primarily describes AVI files
containing only audio and video data.

This technical note covers the following topics:
     
       The required chunks of an AVI file
     
       The optional chunks of an AVI file
     
       Developing routines to write AVI files

DIB Format Extensions for Microsoft Windows

Current Version: November 10, 1992
Available in:
098-39209 Kit Win Video 1.0 Apps Development

The DIB format extensions for Microsoft Windows add the capabilities to
handle new compression formats, custom compression formats, and
inverted DIBs. The extensions also include an escape message to let
applications interrogate display drivers to determine their
capabilities. This technical note includes the following topics related
to these extensions:
     
       16 and 32 bit extensions to the BI_RGB compression format
     
       16 and 32 bit BI_BITFIELDS compression format extensions
     
       Extensions for custom compression formats
     
       Determining display driver capabilities
     
       Inverted DIBs
     
     

Technical Notes

This series of documents provides technical information for multimedia
application design and implementation.  All technical notes and sample
code are available in:
098-39214 Kit Win 3.1 Multimedia Technotes

Graphics Design and Optimization

Current: 10/92 Revision 1.02
Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

This technical note tries to present a very important but complicated
multimedia issue: graphics.  GUIs are only just starting to make use of
graphics, and multimedia titles use all the capabilities of a graphics
system.  This has presented a new set of problems as applications
deisgners and developers try to deal with placing graphics into their
applications.  This technical note discusses the design and
optimization issues under the Windows environment.

Chapter One describes the uses for graphics.  This allows the
definition of different graphic types based on their intended usage.
Chapter Two examples the life cycle of a graphic and presents some
special issues that only occur at certain phases of this cycle.

Several chapters are devoted to the different types of graphics.  Each
of these chapters describes the graphic type in detail and discusses
optimization techniques that are specific to that type.

These are followd by chapters detailing the different phases of the
life cycle and design and optimization issues that are common between
the different types.  Finally, a glossary provides definitions of the
many terms used in this technical note and common to multimedia with
Windows design and development.

Creating Multimedia Applications Covering Multimedia Aware Applications
and General Application Techniques

Current: 10/92 Revision 1.36
Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

This tech note details how to design and optimize an application using
the Multimedia APIs in Windows.  It is meant for a developer working in
C or a high-level language.

This note covers three main areas of creating multimedia applications:
    applications which work with or without the Multimedia API
     extensions to Windows
    coping with unavailable resources
    yielding resources to other applications.

CD-ROM Design and Optimization

Current: 10/92 Revision 2.03
Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

This tech note details how to design and optimize an application for
use and delivery on CD-ROM using the Microsoftr MS-DOSr CD-ROM
Extensions (MSCDEX).

Video Capture Device Drivers

Current:  November 10, 1992
Available in:
098-39210 Kit Win Video 1.0 Driver Developmnt

Video capture device drivers provide low-level video capture services
for Windows multimedia applications. Both applications and MCI device
drivers can use these services to control video capture devices. These
devices can provide services such as the following:
     
       Single frame video capture
     
       Real-time (streaming) video capture
     
       Video overlay
     
       Produce data in a standard or proprietary compressed format
                                                                       
Video capture devices must have a corresponding video capture device
driver to be used with Windows. This technical note explains the
Windows interface for video capture device drivers. It covers the
following topics:
     
       The different types of video capture channels
     
       General information about writing a video capture device driver
     
       How a video capture device driver handles the system messages
       for the installable driver interface
     
       How a video capture device driver handles device specific
       messages for video capture
     
       An alphabetical reference to the messages and data structures
       used to write video capture device drivers
                                                                       
Before reading this technical note, you shold be familiar with the
video services available with Windows. You should also be familiar with
the Windows installable driver interface. For information about the
video services and the installable driver interface, see the Microsoft
Windows Programmer's Reference. For information on other drivers using
the installable driver interface, see the Microsoft Windows Multimedia
Device Adaptation Guide.

Video Capture Application Reference

Current: November 10, 1992
Available in:
098-39209 Kit Win Video 1.0 Apps Development

This section is an alphabetic reference to the functions and data
structures provided by Windows for use by video capture applications.
There are separate sections for functions, messages, and data
structures. The messages and data structures are defined in MSVIDEO.H.

This information should be used only for testing video capture device
drivers. It should not be used for development of video capture
applications. The application interface for video capture will probably
change in future releases.


Video Compression/Decompression Device Drivers

Current:  November 10, 1992
Available in:
098-39210 Kit Win Video 1.0 Driver Developmnt

Video compression and decompression drivers provide low-level video
compression and decompression services for Microsoft Video for Windows.
The compression and decompression algorithms used can be hardware or
software based. This technical note explains the Windows interface for
these drivers. It covers the following topics: Video capture
functions:low-level video capture services
     
       General information about writing a video compression and
       decompression driver
     
       Information on how a video compression and decompression driver
       handles the system messages for the installable driver interface
     
       Information on how a video compression and decompression driver
       handles messages specific to compressing and decompressing video
       data
     
       An alphabetical reference to the messages and data structures
       used to write video compression and decompression drivers
     
     
Before reading this technical note, you should be familiar with the
video services available with Windows. You should also be familiar with
the Windows installable driver interface. For information about these
Windows topics, see the Microsoft Windows Programmer's Reference.


Sample Code


TRI / TRIQ

This is one of the most complex sample applications that I've seen.
Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

I tend toward liking 'real' examples, and I find that the simple
samples don't really show people what is needed.  Therefore, I have
taken this (big) step into doing a pretty complex sample app.

1.using the DIB driver to draw directly into DIB memory
2.writing 286 and 386 specific code (in assembler, obviously)
3.using custom resources

I wanted to expand this example to show a better display for the
example, and I got into the 3D stuff.  However, I didn't have enough
time to get  everything done.  Instead of just releasing this file and
none of the  other parts, I decided to release both.

Start with Tri first.  TriQ is much more complex.  Also take a big
grain of salt with the 4D libraries... almost nothing has been tested,
but I thought you'd like to see them.

rleapp

Sample Code for creating and playing RLE animation.
Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

This is very important sample code that shows how to do animations.  It
does not require Multimedia; it works on regular windows.

Get this and understand it if you want fast animations.

REVERSE

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

REVERSE is a Windows with Multimedia sample application that
illustrates how to use the low-level waveform playback services.It also
shows how to use the multimedia file I/O services to read
data from a WAVE file.  REVERSE plays a WAVE waveform audio file
backwards.

MMPLAY

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

MMPLAY is a Windows with Multimedia sample application that illustrates
how to use the Multimedia Movie Player (MMP).  You can use MMPLAY to
play any movie file. MMPLAY shows how to load and play a movie, manage
the stage window, and single-step animation.

MMPLAY also shows how to use a frame-callback function to monitor
script-channel text to recognize break, goto, loop, and close commands.
The frame-callback source code is in the FRAMEHK.C module. SAMPLE.MMM,
the movie file included with this project, contains custom script
commands that MMPLAY recognizes.

MMPF

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

Pull apart the MMP file format for inspection.  Since the docs on the
MMP file format are lacking, this serves as a guide.

MIDIMon

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

MIDIMon is a Windows with Multimedia or 3.1 application that records
and displays incoming MIDI information.  It uses a low-level callback
function to get timestamped MIDI input.  The callback function puts the
incoming MIDI event information (source device, timestamp, and raw MIDI
data) in a circular input buffer and notifies the application by
posting a MM_MIDIINPUT message.  When the application processes the
MM_MIDIINPUT message, it removes the MIDI event from the input buffer
and puts it in a display buffer.  Information in the display buffer is
converted to text and displayed in a scrollable window.  Incoming MIDI
data can be sent to the MIDI Mapper if the user chooses.  Filtering is
provided for the display buffer, but not for data sent to the Mapper.

midikeyb

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

This is a custom control that implements a MIDI style keyboard.  It's
not exactly the best keyboard for a jam session; don't expect  to hit a
bunch of hemidemisemiquavers at correct tempo...

In any case, this custom control responds to and sends MIDI short
messages.  This could be expanded on, but this is a good start.  The
right mouse button is used for 'sticky keys' and will toggle  the state
appropriately.  If you drag the pointer off of a key  with the left
mouse button pressed, you will notice that the key  stays down.  This
is because I do not SetCapture--and I should.  Another enhancement
might be to add CTRL key and SHIFT key modifiers to allow key selection
like a multi-select list box.

LAVA

Lava Flow Simulator.
Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

This code demonstrates palette animation and pop-up menus.  It does not
require MM to run; it runs under Windows 3.0.

Click on the program's window to get a menu.

If you make the application 'full screen' (by double-clicking on the
title bar) it makes the area the full size of the screen (and not just
the usual client area which excludes the title bar).  This allows
creation of a full screen image.

The image can be copied to the clipboard and then pasted into paint
brush and then saved as a DIB.  You can then load the image (from
control panel) as a desktop image.  The image will continue to palette
animate (even on the desktop) while the program is still running. You
can iconize the application and leave the palette animation going.

Include with the windows SDK is the program MyPal.  This displays the
current physical palette from windows.  This is an interesting program
to run during palette animation.

The 64-bit square-root code is 386 specific.

JOYTOY

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

JOYTOY is a Windows with Multimedia application that illustrates how to
use the joystick services. When run, it presents the user with a
crosshair cursor. When the joystick or the mouse is moved, the cursor
follows. When a joystick button is pressed, JOYTOY produces a sound and
draws a bullet hole icon onto the screen.

CropDIB

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

CropDIB is a Windows with Multimedia application that crops a series of
DIBs. It uses the DIB driver; although this is the only multimedia
component that it demonstrates, the DIB.C module contains many useful
functions for working with DIBs and palettes. This application crops
and "brighten" (add a specified increment to the palette entries) a
series of DIBs.
If an input "pattern" is specified, it opens a series of input files;
otherwise, it opens only the specified ilename. From each input file,
it can read one or a series of DIBs.

If an output "pattern" is specified, it writes the DIBs to a series of
output files; otherwise, it writes all the DIBs to the single specified
filename.

Demonstrates:
  Use of DIB Driver
  Direct manipulation of DIB pixel data
  Direct manipulation of DIB palette data
  Cacheing of DIB Driver to avoid re-load

DETECT

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

DETECT is a Windows with Multimedia sample application that illustrates
how to write an application that can detect if the Multimedia
Extensions are installed. The code that actually detects the presence
of the Extensions resides in mmsys.lib. Refer to MMSYS for additional
information.

MergeDIB

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

Merges a primary DIB (with any palette) and a secondary DIB (with a
different palette) into a single, merged DIB (with special palette).
The special dib and palette are a combination of the two images and
palettes so that when the palette is gradually crossfaded (animated),
the first and second DIB are partially displayed.  At complete fade,
only one of the bitmaps is 'visible', while at a 50-50 mix, both are
equally visible (merged).  Pixels are not dithered between the images,
but are mixed in the palettes.

This technique is limited in the number of pixels that have different
targets between bitmaps, but it can create very nice effects when just
text is 'faded' in for the target bitmap.

This code is limited so that the two DIBs must be the same size, but
this limitation could easily be eliminated by creating an artificial
bitmap that is the desired size with a 'blank' (where blank is a chosen
color) background.  The smaller image could be centered or otherwise
placed in the background (easy to do using the DIB Driver).

This sample code requires COMMDLG from Windows 3.1.

transblt

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

Draws an images with transparent portions.  The transparent areas are a
color in the source image.  Demonstrates the 'old' way and the new MM
way to do transparent drawings.

MMSYS

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

Creates a library to allow usage of MM APIs without requiring the
drivers.  Method of run-time linking is portable and very useful.
Library  is included with sample code here that needs it.

WAVECONV

Available in:
098-39214 Kit Win 3.1 Multimedia Technotes

Demonstrates reading and writing of RIFF file and WAVE forms in
particular.  Also demonstrates conversion routines for MS ADPCM
algorithm in C.
                                   
                               Glossary

Animation:  The display of a series of a graphic images, simulating
motion.  Animation can be frame-based or cast-based.  The Movie Player
included with the Multimedia extensions uses cast-based animation.
Applet: An application started from the Control Panel. Control Panel
applets each configure a particular system feature; for example,
printers, video drivers, or Page: 16
system sounds

AVI (Audio Video Interleaved):  Microsoft's Multimedia Systems
Technology Group is developing a product that synchronizes motion video
and audio without the use of specialized hardware.  This could be used
to create "talking head" presentations, display animation sequences,
and present multimedia slide shows.
Blit: Copying one image to another.  The copy can include ROPs to
modify how the destination image appears.
Blit Tear: A visible (to the user) artifact when blitting.  This is
usually caused by the display updating the monitor as the image is
being copied.  The monitor ends up with one frame with half the new
image and half the old image.  This is particularly visible with large
images.
Cast-Based Animation: Also called "sprite animation".  A method of
animation that uses many graphical elements that are combined (or
composited) while the animation is playing into a final image that is
displayed. Contrast with frame-based animation.
CD-DA (Compact Disc-Digital Audio):  An optical data-storage format
that provides for the storage of up to 73 minutes of high-quality
digital-audio data on a compact disc.  Also known as Red Book audio.
This is the standard audio CD format known around the world.
CD-I (Compact Disc Interactive):  An interactive multimedia player
which attaches to TV sets and reads special optical discs (CD-I
format).  The CD-I disc standard integrates data, still-frame images,
audio and motion video on the same disc.  This standard is being
developed by Philips.   Also know as Green Book.
CD-ROM (Compact Disc-Read Only Memory): An optical data-storage
technology that allows large quantities of data to be stored on a
compact disc. Also known as Yellow Book.
CDTV (Commodore Dynamic Total Vision):  An interactive multimedia CD-
ROM player which attaches to TV sets and reads CD-ROM discs.  This
Commodore proprietary hardware is targeted to the home and directly
competes against CD-I.
CD-XA (CD-ROM eXtended Architecture):  An extension of the CD-ROM
standard that provides for integrated (interleaved) storage of
compressed audio data along with other data on a CD-ROM disc in a media-
dependent form.  This format is the same format that is used by CD-I.
This standard also defines the way data is read from a disc.  Audio
data is combined with text and graphic data on a single track so they
can be read at virtually the same time.  These extensions are now
included in the standard CD-ROM definition (Yellow Book).
CMYK: Cyan, magenta, yellow, black.  A color encoding method commonly
used in printing.  The black is not really needed, but is included as a
specific color because it is used so often.  Many color printers use
these four colors in a ribbon to print color images.
Collision Detection: Used in cast-based animation to determine when two
images have touched or collided.  Used mainly in games; for example,
detecting when the missile hits the player's ship.
Color Cube:  A particular color is composed of three components.  Since
there are three components, the range of colors can be expressed in
three dimensions, or a cube.  A color cube refers to the color spectrum
that can be represented by a particular color encoding method; for
example, RGB or HSL or NTSC.
Color Depth: The number of bits assigned to represent color information
in an image.  Color depth can also refer to the perceived (by the user)
amount of color information.  Choices are usually 1 bit, 4 bits with a
palette, 256 bits with a palette, 16 bits without a palette and 24 bits
without a palette.  The color depth of the palette is usually 24 bits.
Composite: To combine.  This is the generation of a single image from
multiple image elements.  It forms the basis of cast-based animation.
Composite Video: An analog video signal that has the components (hue,
saturation, luminance, HSL) combined into one signal.  This type of
analog video signal is of lower quality than an SVHS video signal.
Compression: A digital process that allows data to be stored or
transmitted using less than the normal number of bits.  DVI is an
example of hardware compression and AVI is an example of software
compression.
Computer Images: Defined in this techical note to be graphical images
that do not contain many changes in color from pixel to pixel.  "Many
changes" is a relative term and it generally determined by the point at
which a compression algorithm that is meant for image without many
changes stops being effective.
DVI (Digital Video Interactive): A proprietary technology developed by
Intel (and licensed by IBM) for full-motion video at a high level of
compression (hardware).  This technology will be supported under
Windows using MCI commands.
DIB (Device-Independent Bitmap): A Windows bitmap data structure
consisting of header fields, an optional color table (palette), and
bitmap data. Depending on the number of colors represented in a given
bitmap, the bitmap bits can be represented in 1, 4, 8, or 24 bits, with
or without a palette.
Dithering: This is a pixel-depth conversion process usually only used
when a very few colors are available; for instance, 16 colors.  The
process trades pixel resolution for (perceived) color depth.  Squares
(for example, 2x2, 4x4, etc.) of pixels are created to represent to the
eye more colors than are actually available.  Print media uses a
similar technique to obtain many shades from just 3 or 4 actual colors.
This algorithm has the inherent side effect (or artifact) of changing a
computer image into a natural image.
Frame: A single image that the user sees displayed.  This is the final
image in cast-based animation, or the actual image in frame-based
animation.
Frame-Based Animation: An animation technique that displays a sequence
of images.  Usually these images are delta-framed.  Frame-based
animation allows for more complicated animations at a higher speed than
any other animation technique because the data is precalculated.
Frame Rate: The speed at which images are displayed.  The faster the
rate, the better the quality of the animation.  Frame rate, image size,
and image complexity are the three aspects of an animation which must
be weighed to obtain the best quality.
General MIDI: A synthesizer specification created by the MIDI
Manufacturers Association (MMA) defining a common configuration and set
of capabilities for consumer MIDI synthesizers.
Hot Spot: An area of an image that, when selected by the user (usually
by clicking with a mouse), performs an action in the application.
Commonly, hot spots are represented graphically by buttons, but hot
spots may be hidden to allow the user to explore the image to discover
what happens.
HSL: Hue, saturation, and luminance.  This one method of representing a
particular color.  The luminance represents the brightness of the color
and the Hue and saturation give the rest of the color information.
This method is similar to what is used by NTSC television signals.
Black and white TVs just decode the luminance portion of the signal to
present a picture while color TVs decode the entire signal.
IHV: Independent Hardware Vendor.  A Microsoft term used to refer to
companies in the PC computer industry who make hardware products
(machines, upgrade kits, CD-ROM drives, etc.).
IMA (Interactive Multimedia Association): A professional trade
association of companies, institutions, and individuals involved in
producing and using interactive multimedia technology.
Interleaving: The technique of combining different types of data into
one stream of data.  This technique is used by AVI for CD-ROMs to
combine image and audio data to create a video.
ISV: Independent Software Vendor.  A Microsoft term used to refer to
companies in the PC computer industry who make software products
(applications, tools, authoring systems, etc.).
JPEG (Joint Picture Experts Group): A standards committee for still
images.
MCI (Media Control Interface):  High-level control software that
provides a device-independent interface to multimedia devices and media
files. MCI includes a command-message interface and a command-string
interface.  This interface is supported by both IBM and Microsoft.
MIDI (Musical Instrument Digital Interface): A standard protocol for
communication between musical instruments and computers.
MSCDEX (Microsoft Compact Disc Extensions): A terminate-and-stay-
resident (TSR) program that makes CD-ROM drives appear to MS-DOS as
network drives. MSCDEX uses hardware-dependent drivers to communicate
with CD-ROM drives.
MPEG (Motion Pictures Experts Group): A standards committee for motion
video.
MPMC (Multimedia PC Marketing Council):  A subsidiary of the Software
Publishers Association composed of  12 companies involved in developing
Multimedia products.  These companies currently include CompuAdd,
Creative Labs, Fujitsu, Headland/Video 7, Media Vision, Microsoft, NCR,
NEC, Olivetti, Philips, Tandy, and Zenith Data Systems.  This industry
standard platform is based on Microsoft's Windows with Multimedia
extensions.
Natural Image: As defined by this technical note, an image that has
many changes in color from pixel to pixel.  Contrast this with computer
image.
Off-Screen Bitmap: A copy of the image that is displayed on the screen
that is in system memory.  This is an optimization technique that takes
advantage of the fact the on most PCs, system memory is much faster
than display memory.  This means that it is faster to carry out blit
operations on system memory and then, when finished with the image,
copy it to the display.  This technique is especially beneficial when
using cast-based animation.
Palette:  In Windows, a palette is a data structure defining the colors
used in a bitmap image.
Pixel:  A single point of an image.  A screen's resolution is commonly
referred to in pixels (for example, a common form of VGA resolution is
640x480 with a color depth of 16 colors).
Planes: When compositing, the relative Z-order of the images can be
imagined as a sequence of planes in which the images are placed.

The video hardware can also allow two or more planes of display with
the foreground display plane having a special method to determine where
the background plane shows through.
Raster Graphics:  A type of image fomat optimized for display on a
raster device.  This is the most common form of images.
RGB: Red, green, blue.  A color encoding method commonly used by
computers.  Compare this method to HSL and CMYK.
RIFF (Resource Interchange File Format):  A tagged-file specification
used to define standard formats for multimedia files. Tagged-file
structure helps prevent compatibility problems that often occur when
file-format definitions change over time. Because each piece of data in
the file is identified by a standard header, an application that does
not recognize a given data element can skip over the unknown
information.  This specification is jointly supported by IBM and
Microsoft.
RLE:  Run Length Encoded.  Generically, this refers to a compression
method for computer images that only encodes color changes instead of
encoding each pixel.  A specific definition of RLE is defined in the
Windows DIB format.  This RLE format also includes line skips and
column jumps, making it ideal for encoding a delta-frame image of a
computer image.
ROP. Raster operation.  The simplest ROP is SRC_COPY.  More complicated
ROPs allow combinations of the source and destination images along with
a brush image.  ROPs are explained in the Windows SDK documentation.
See the Chapter "Binary and Ternary Raster-Operation Codes" in the
Windows SDK documentation in the Programmer's Reference book.
Scanning. Scanning is the process of digitizing an image.  This is one
way to create images.
Skips and Jumps: This is a technique defined in the Windows RLE DIB
format for encoding just the changes (deltas) from a previous image.
The skips (rows) and jumps (columns) allows the efficient encoding of
pixels that have not changed from the original image.
Sprite: An image that is moved in the display to provide animation.
The image itself can change while it is being moved to enhance the
illusion.
Vector Graphics: A type of picture optimized for display on a system
that uses instructions for display.  Contrast this with raster
graphics.
Video: Digital and Analog.  Digital video is defined by this technical
note as a precalculated sequence of images that are displayed to show
an animation; audio is usually present.  Analog video is common TV
signals; audio is almost always present.
Video Capture: The process of digitizing an analog video image.
Video Compression:  A method for reducing the amount of information
required to store and recall a frame of video.  Compression is critical
to delivering digital full motion video to the user in the most
effective manner (in terms of performance and storage costs).
Video Overlay: Hardware that displays an analog video signal in
combination with a computer display.  The analog video is commonly on a
separate video plane from the computer display.
WAVE file:  A Microsoft/IBM standard file format for storing waveform
audio data. A WAVE file uses the RIFF format and has a .WAV filename
extension.
Z-Order: The order in which a sprite is displayed.  Sprites that are
displayed later than other sprites appear to be in front (closer) to
the user.  The "Z" refers to the third dimension (front/back).
