• Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL

Chapter 14. Implementing the Standard: T... > Systems Reference Software

14.2. Systems Reference Software

The rest of this chapter is dedicated to the Systems part of the reference software, or, more precisely, to the part that connects all the tools in the standard to create a complete MPEG-4 player. Unlike most other parts, this part of the reference software does not process streams in a linear manner, but accepts input from many sources in parallel, including various media streams and user interaction, creating rich audiovisual experiences based on a complex state machine. Understanding this part, or at least the general architecture behind it, is extremely helpful for understanding the standard itself and the entire MPEG-4 vision.

Table 14.1. Reference software modules
MPEG-4 PartReference software modulesDescription
Systems (ISO/IEC 14496-1)MPEG-4 playersAn MPEG-4 player that receives a complete MPEG-4 presentation (systems, audio, and visual streams), decodes the corresponding streams, synchronizes them, and renders the complete composition.

The software contains hooks for video and audio decoder plug-ins, but these decoders are not part of the Systems reference software.

Two players exist—one restricted to 2-dimensional content (2D) and the second a 3D player. A third pseudo-player (N) processes the streams as the real players but, instead of rendering them, sequentially logs its activity in a textual file. The three players use a common core code (N; see below).

All the players are written in C++.
MPEG-JMPEG-J decoder integrated in the 2D player (N). MPEG-J encoder software. Programming language is C++.
BIFS/OD compilerAn application that converts a textual file in VRML format (extended to describe BIFS updates and ODs) to binary BIFS and OD streams. The tool is written in C++.
MP4 libraryA C-language source file library that includes routines for MP4 file format access—create, store, and retrieve (N). Programming language is C.
MP4 multiplexAn application that converts individual MPEG-4 streams of all types to a multiplexed MP4 file. A textual script file describes the input and output of this utility. The tool is written in C++.
Visual (ISO/IEC 14496-2)Video decoders (N)Offline nonoptimized video decoders that receive MPEG-4 compressed video streams and convert them to raw video format (bitmaps). There are two decoder implementations, one in C (MoMuSys) and another in C++ (Microsoft).
Video encodersOffline nonoptimized video encoders that compress a sequence of frames or VOPs in raw video format (bitmaps) into an MPEG-4 stream. There are two encoder implementations, one in C (MoMuSys) and another in C++ (Microsoft).
Synthetic video decodersFace and body animation decoders (N); mostly in C, but part in C++.

2D and 3D mesh decoders (N). Programming language is C++.

Visual texture coding (VTC) decoder (N). Programming language is C++.
Audio (ISO/IEC 14496-3)Audio decoders (N)Offline nonoptimized natural audio decoders that decode MPEG-4 audio streams and produce uncompressed audio samples in raw audio format. There are decoders for the various audio and speech coding algorithms. Programming language is C.
Audio encodersOffline nonoptimized audio encoders that convert uncompressed audio samples in raw audio format to compressed MPEG-4 audio streams. There exist encoders for the various audio and speech coding algorithms. Programming language is C.
Synthetic audio decodersA structured audio decoder (N) in C/C++.

Audio composition software C/C++.

A text to speech decoder in C.
Synthetic audio encodersA structured audio encoder in C/C++. A text to speech encoder in C.
DMIF (ISO/IEC 14496-6)DMIF pluginsComponents that plug into the MPEG-4 player and feed input streams to it. There exists a plug-in to process local MP4 files, and a plug-in that demonstrates the implementation of remote retrieval. Programming language is C++.



Not a subscriber?

Start A Free Trial

  • Creative Edge
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint