allanswers.org - AVI Graphics Format Overview

 Home >  Photo, Video, Graphics > graphics >
 AVI Graphics Format Overview

Section 6 of 14 - Prev - Next
All sections - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14


everything.

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.

Return to Top



What are the GUIDs for the Video for Windows Codecs?

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 Identifiers (GUIDs) for identifying everything in the Microsoft Universe. Microsoft has established a mapping procedure from the human readable Four Character Codes to 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. xxxxxxxx-0000-0010-8000-00AA00389B71 For example, the GUID for Radius Cinepak is: 44495643-0000-0010-8000-00AA00389B71 44 is the hexadecimal (base 16) ASCII code for 'D' 49 is the hexadecimal (base 16) ASCII code for 'I' 56 is the hexadecimal (base 16) ASCII code for 'V' 43 is the hexadecimal (base 16) ASCII code for 'C' Note that the order of the characters is reversed from naive expectation. Return to Top

DirectShow

DirectShow is Microsoft's new name for ActiveMovie 2.0 Microsoft has shifted to marketing ActiveMovie as an integral part of DirectX. Apparently DirectShow (ActiveMovie 2.0) will be released to the general public as part of Direct X 5.0. Return to Top

DirectDraw

DirectDraw, one of the components of DirectX, is a new Applications Programming Interface (API) that is part of Windows 95 and Windows NT 4.0. DirectDraw allows programs to directly access video memory and other hardware features in video display cards. Direct Draw also defines new device drivers for graphic/video display adapters to supersede the GDI display drivers. DirectDraw needs the new device drivers. DirectDraw consists of a new API and new hardware drivers known as the Direct Draw Hardware Abstraction Layer (HAL). In the Windows 3.1 Graphic Device Interface (GDI), an application program never writes directly to the memory in a display card. It writes to a buffer in main memory within Windows. GDI invokes a GDI video device driver and copies the image from main memory to the video memory of the video card. This multiple copying of the image inevitably 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): http://www.microsoft.com/msdn/ Select Microsoft SDKs from the Technical Information section, or point your browser at: http://www.microsoft.com/msdn/sdk/ 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) Return to Top

What is a driver?

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 such as the Ring Zero mode of the Intel 80x86 processors. Microsoft Windows uses the term driver to refer to several different software components. - 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 software components are Installable Drivers. Some installable drivers are hardware drivers. Return to Top

GDI Device Drivers

In Windows 3.1, and to a lesser extent Windows 95, the Graphic Device Interface or GDI is the system that handles graphic display, including putting bitmaps on the display monitor. Amongst other things, GDI defines a set of GDI functions that application programs call such as BitBlt(...) to display graphics on the screen. GDI also controls printers and other graphic output devices. Windows NT also provides a GDI system, but the underlying hardware device drivers are different. Windows 3.1 GDI drivers won't work under NT. Application programs written using the GDI API will usually work under NT. GDI is device independent. To achieve this, GDI uses GDI device drivers loaded dynamically as needed. The most commonly used GDI device driver is the DISPLAY device (for display monitors). In Windows 3.1, this is specified by lines such as: display.drv=SUPERVGA.DRV in the SYSTEM.INI file. SUPERVGA.DRV is a generic super vga graphic display adapter driver shipped with Windows 3.1 SUPERVGA.DRV is a GDI Device Driver The printer driver is another common GDI device driver. In Windows 3.1 or Windows 95 without DirectDraw, GDI handles display 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 01 BitBlt Transfer bits from src (source) to dest (destination) rect (rectangle) 02 ColorInfo Converts between logical and physical colors. . . . 30 BitmapBits Sets, retrieves, copies bitmap data. 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. In Windows 95 or NT 4.0, ActiveMovie 1.0 has "renderers" which can invoke GDI or DirectDraw depending on the situation to display the decoded video frames. There are also audio renderers to output the decoded audio from an AVI, QuickTime, or MPEG file. Return to Top

Direct Draw Hardware Abstraction Layer

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 provide DirectDraw device drivers. For Direct Draw to work it must have these device drivers. DirectDraw also defines a DirectDraw Applications Programming Interface (API), a standard set of function calls invoked by 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. Return to Top

Virtual Device Drivers

In Windows 3.x and Windows 95, Virtual Device Drivers or VXD's are 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 requirements, use VXD's. 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 device driver that need to run at Ring Zero are in the VXD. 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. In "Memphis", formerly Windows 97, and NT 5.0, Microsoft is attempting 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. Return to Top

Windows NT Driver Model

Windows NT (3.51, 4.0) has its own system of hardware device drivers. While NT can often run Windows 3.x and Windows 95 applications, NT cannot use Windows 3.x or Windows 95 device drivers (the Virtual Device Drivers or VxD's). For most people working with AVI, or video in general, the main point to remember is that different drivers are needed for NT than Windows 95 (or Windows 3.x). Most hardware manufacturers provide both Windows 3.x, 95, and NT drivers. TOOLS Programmers will need the Windows NT DDK (Device Driver Kit) to develop Windows NT drivers. This is available in a subscription to Microsoft Developer Network (Professional). http://www.microsoft.com/msdn/ Return to Top

Win32 Driver Model (WDM)

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 It is still under development. Video display card and video capture 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. Return to Top

Setup Information or INF Files

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 Panel, the user points the Windows system to a directory containing an INF file and the various files, such as VxD's or DLLs, to be installed. A Setup Information, Device Information, or INF file contains directives that tell Windows how to install the new software or hardware. These include changes to the Windows Registry, names and locations of files to install, and other things. If you are providing a hardware or software product, you may need to create an INF file to install your product, driver, etc. End users are often unaware of the INF file. Indeed, its purpose is to hide the complexity of installing hardware or software. But it is good to be aware that these files exist and Windows needs them to properly install many drivers, codecs, and so forth. Where AVI is concerned, there are frequently INF files for video codecs, video display adapters, and video capture cards. Return to Top

MMX

MMX or Multimedia Extensions to the Pentium instruction set are 57 new instructions that accelerate some graphics, imaging, and multimedia operations. Multimedia often involves small data types such as 8 bit or 16 bit pixels that can be processed in parallel. 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 situations. 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 Intel developed the MMX instructions and added them to recent 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 Pro with MMX was code named Klamath, but called the Pentium II when 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. Initially compilers have not supported generation of MMX instructions, so critical portions of the multimedia algorithms must be hand-coded in Pentium assembler using the MMX instructions. An MMX version of a codec may be able to encode and decode an AVI file (for example) faster on a PC with MMX. DOCUMENTATION ON MMX Further information on MMX is available at the Intel Web site for developers: http://developer.intel.com/sites/developer Click on the Literature Center link, then select "Pentium Processor with MMX" from the pull down list of products. This information is dated August 1, 1997. The Intel Web site changes from time to time. In addition to various on-line documentation at the Web site, Intel has some manuals on MMX: Intel Architecture MMX Technology Developers Manual (Order No. 243013) Intel Architecture MMX Technology Programmer's Reference Manual (Order No. 243007) TOOLS FOR WORKING WITH MMX Intel provides an MMX Technology Macro Package for use with the Microsoft Macro Assembler (MASM). This can be downloaded from: http://developer.intel.com/design/perftool/mmx1mac/ Intel markets an Intel C/C++ compiler plug-in for Microsoft 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) http://developer.intel.com/design/perftool/icl24/ The Intel C/C++ compiler plug-in is available on the VTune CD-ROM. VTune is discussed below. Intel markets a product called the VTune (TM) Performance Analyzer for profiling programs on the Intel architecture at the machine instruction level. VTune includes support for the MMX instructions and has been used to profile and optimize MMX code. The VTune CD-ROM includes a number of other Intel freebies and products such as the Intel C/C++ compiler plug-in that may be useful developing MMX software. http://developer.intel.com/design/perftool/vtune/ Return to Top

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 Internet. 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 sense, ActiveX objects are similar to Java applets. Unlike Java applets, once an ActiveX control has been downloaded once it 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 support Microsoft will give for ActiveX on non-Windows platforms. Java applets are compiled to a Java bytecode that will run on any platform with a Java virtual machine implemented. Java applets will run on Windows 3.1, Windows 95, Windows NT, PowerMacintosh, Linux, 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): http://www.microsoft.com/msdn/ Select Microsoft SDKs from the Technical Information section or point your browser at: http://www.microsoft.com/msdn/sdk/ Netscape Fans: ScriptActive is a Netscape Plug-In that adds support for ActiveX to Netscape. ScriptActive Web Site Return to Top

Playing an AVI File within a Windows Application

Programmers can play an AVI File within a Windows application by several means. The simplest traditional way is to use the 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: MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam); where uMsg is an MCI command message such as MCI_PLAY defined in an include file. Consult the Microsoft SDK documentation for more details on MCI command messages. 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 interface 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 simple method to add multimedia playback or recording capabilities to your applications. Using a single function, your application can create a control that plays devices such as video, CD audio, waveform audio, MIDI (Musical Instrument Digital Interface), or any device that uses the Media 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 playing. ... 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. Return to Top

Reading and Writing an AVI file within a Windows Application

The Microsoft Windows Win32 SDK (Windows NT and Windows 95) includes a set of functions and macros known as AVIFile for reading, writing, and manipulating RIFF files including AVI files within a Windows program. These functions are contained within a Dynamic Link Library avifile.dll. The AVIFile functions include: AVIFileInit(...) AVIFileOpen(...) AVIFileReadData(...) AVIFileWriteData(...) AVIFileExit(...) and many many others. Consult Microsoft documentation for details. Return to Top

Where to get C Source Code for AVI Player Including Many Codecs

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 page is: http://xanim.va.pubnix.com/ Unfortunately, Xanim's Cinepak and Indeo support is only available in object module (binary format). Return to Top

Where to get Detailed Information on Graphics File Formats

Programmers often need to know the details of the many graphics file formats, both still image and moving. 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 http://wotsit.simsware.com/ and http://www.ipahome.com/gff/textonly/summary/ Return to Top

Where to get Detailed Information on Audio File Formats

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: http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/.html Return to Top

Where to get C Source Code for a JPEG Encoder or Decoder?

Maybe you want to write your own Motion JPEG codec for AVI. It happens. 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. ftp://ftp.uu.net/graphics/jpeg/ Return to Top

Where to get C Source Code for an H.263 Video Encoder or Decoder?

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. http://www.fou.telenor.no/brukere/DVC/h263_software/ Return to Top

Where to get C Source Code for an MPEG Video Encoder or Decoder?

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. http://www.mpeg.org/ Return to Top

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

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. http://www.cs.dartmouth.edu/~gdavis/ Also see the SPIHT demonstration programs, http://ipl.rpi.edu/SPIHT/ Return to Top

Where to get an Explanation of Color, Color Spaces, Gamma, and All That

Charles Poynton maintains an FAQ on Color and an FAQ on Gamma. This is posted in USENET newsgroups regularly and is available on the Web. http://www.inforamp.net/~poynton/notes/colour_and_gamma/ColorFAQ.html Return to Top

Internet Video Standards and Pseudo-Standards

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). Programmers and others needing the details of the standards and proposed standards can find the RFC's at a variety of on-line RFC repositories such as the Information Sciences Institute: http://www.isi.edu/rfc-editor/ 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 Bodies. 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 such as video. Video frames must be delivered in a timely manner in order to be displayed evenly and periodically. The TCP protocol does not provide this functionality. See the discussion of UDP (User Datagram Protocol) below for more on the limitations of TCP. 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 is 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 have this luxury. RSVP is one possible mechanism to add "Quality of Service" (QoS) to the Internet. 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 IETF is reportedly working on a standard for mapping RSVP to 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 support. Products 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 Intel ProShare videoconferencing software First Beta Version of Microsoft's Windows NT 5.0 Operating System Internet Service Providers (ISP's) 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). IP Multicast IP packets support so-called "multicast addresses". A multicast 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 data, this allows the equivalent of broadcast channels over a network. For example, a live speech could be sent to one multicast address while a different video program was sent to a different multicast address. A machine joins the appropriate multicast group to receive the "broadcast channel". In principle, multicasting reduces the load that video places on a network since only one packet is sent to multiple viewers. Without multicasting, a separate duplicated packet is sent to each viewer. Ethernet and some other network technologies support multicast in hardware. Ethernet "frames" have multicast Ethernet addresses. Implementing IP multicast on a single Ethernet, a single IP "subnet", is a straightforward mapping from the multicast IP addresses to the Ethernet multicast addresses. IP Multicast becomes quite complex when the machines in the multicast group are located on separate subnets and the IP multicast packets are routed by networks routers. The routers need to know whether a particular subnet contains machines belonging to a particular multicast group.

Section 6 of 14 - Prev - Next
All sections - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14

Back to category graphics - Discuss "AVI Graphics Format Overview"
Home - Search - About the project - Forum - Feedback

© allanswers.org | Terms of use

rax