The MPEG-4 Jump-Start
Authors: Aaron E. Walsh, Mikael Bourges-Sevenier
Venue:  (2002)

From the Book:PrefaceWelcome to MPEG-4 Jump-Start. This book was designed to enable professional programmers to jump directly into the new and exciting world of MPEG-4 development. Written by developers for developers, MPEG-4 Jump-Start covers the fundamentals you need to know to dive headfirst into MPEG-4 content and application development. As a collaborative effort by a number of designers and architects responsible for the MPEG-4 international standard, the book you hold in your hands is rich with details and insights from expert programmers whose careers revolve around MPEG-4 and related technologies. We hope you enjoy this book as much as we enjoyed writing it; welcome to our growing community of MPEG-4 developers!Organization of This Book In August 2000, MPEG-4 Systems version 3 was almost finalized. Most of us had spent many years improving and refining the algorithms in the standard. Before it could be approved as a formal standard, we had to write reference software to validate not only the decoding of the bitstreams but also the authoring tools needed to create them. These components were assembled in IM1, MPEG-4's reference software. The standard was mature enough that we were able to write a book that explains our experiences to managers, developers, and content authors, with the aim of helping them create MPEG-4 content and applications.At the time this book went to press, VRML97 was our reference for 3D on the Web, while Extensible 3D (X3D) and VRML200x were still in their infancy. Many of the new functionalities under consideration for X3D and VRML200x were also in MPEG-4. On the other hand, because MPEG-4's Binary Format for Scenes(BIFS) follows the same structure and encompasses all nodes defined by the VRML97 international standard, we decided to start MPEG-4 Jump-Start by familiarizing you with VRML and related scene graph programming concepts. This allowed us to then introduce BIFS, and all the extensions introduced by MPEG-4, in more detail.MPEG-4 Jump-Start contains 12 chapters and 3 appendixes. Apart from the introduction (Chapter 1), the conclusion (Chapter 12), and the appendixes, the conceptual organization of the book follows the workflow of creating MPEG-4 contents. MPEG-4 content is first created using an authoring tool. Different streams such as BIFS, OD, Audio, Video, and MPEG-J are designed by an author. The author's intent is well-captured in an XMT file. The output of the authoring tool is stored in an MPEG-4 File Format (.mp4) that can be played locally or streamed to MPEG-4 terminals using a server. At a terminal, the various streams are presented in time and composed before being rendered. At the rendering stage, a user can interact with the content.MPEG-4 Jump-Start is organized as follows:Chapter 1. Introduction to MPEG-4.We start our journey with an introduction to MPEG standards in general, and an overview of MPEG-4 in particular.Chapter 2. Virtual Reality Modeling Language (VRML) Overview.Before diving headlong into MPEG-4, we will first start with a brief review of VRML, as VRML forms the basis of MPEG-4 scenes.Chapter 3. 2D-3D Scene Composition.Then, we will guide you through the new nodes proposed by MPEG-4's Binary Format for Scenes (BIFS).Chapter 4. BIFS-Updates.As MPEG-4 is made of binary streams, you will learn how to represent the BIFS scene graph in binary format. You will also learn how to send commands to modify the scene graph at any time.Chapter 5. Quantization in BIFS-Updates.Even if a straight binary representation of the scene graph provides a substantial compression ratio, you will learn how to further reduce its size using quantization.Chapter 6. Animating Scenes in MPEG-4.We review how animations can be created in BIFS, and you will learn how to make synthetic streamed animations (i.e., modify the values of the components of the scene graph at a constant frame rate).Chapter 7. 2D Mesh Animation. We reveal in this chapter that 2D mesh animation uses a dedicated synthetic animation stream.Chapter 8. MPEG-4 Face and Body Animation Tools and Applications. Facial animations use other specialized compression algorithms to reduce the amount of data needed to animate faces. Facial animation parameters are model-independent, so they can be used to animate models different from the ones used to generate the bitstream.Chapter 9. MPEG-4 Human Virtual Body Animation. Body animation extends facial animation with a dedicated framework. A generic humanoid is defined with special animation points and joints.Chapter 10. 3D Mesh Coding.3D Meshes can consume a lot of bandwidth in a content. Specific compression methods have been developed for them.Chapter 11. Extensible MPEG-4 Textual Format (XMT).XMT enables you to store your contents in an XML-based format that includes not only MPEG-4 commands but also high-level commands suitable for authoring.Chapter 12. What's Next?Finally, we conclude MPEG-4 Jump-Start and, as MPEG-4 is constantly evolving, we detail what extensions to expect in the next couple of years.Appendix A. Arithmetic Coding.As many MPEG-4 compression algorithms use arithmetic coding, we give the code of a generic arithmetic coder.Appendix B. BIFS Node Coding Tables. BIFS uses node coding tables to encode the node of the scene graph. We explain how they are built.Appendix C MPEG-4 Profiles and Levels.MPEG-4 can be thought of as a large suite of multimedia tools. Although extensive, not all of the tools offered by MPEG-4 are necessary for every application. To help developers decide which tools they should use for a given application, we introduce the notion of MPEG-4 profiles that have been defined for a set of applications and different levels (upper complexity bounds) that have been established.MPEG-4 Jump-Start details the bitstream representation of many MPEG-4 tools using the Syntactic Description Language. We have chosen to follow the standard and to give the methods to decode the bitstreams. We indicate considerations for writing the encoders in general; there exist many ways to encode, and many tricks and optimizations are possible. However, for interoperability purposes, there should be only one way to interpret the bitstreams. In many cases, writing the encoder is straightforward from the methods given. For updates, tools, and node coding tables, please visit the companion Web site established for this book (http://web3dbooks.com/mpeg-4/jumpstart/).This book's companion volume, More MPEG-4 Jump-Start, will cover the following topics: introduction to MPEG-4 audio. Audio composition and presentation. Enhanced modeling of 3D sound. MPEG-4 video. MPEG-4 still image coding. Digital rights management. Content protection. Advanced Synchronization ModelFlexTime. Monitoring a media stream. MPEG-J. The Object Descriptor Framework. The MPEG-4 file format. Streaming MPEG-4 contents.Web3D SeriesMPEG-4 Jump-Start is part of a new "Web3D" series produced by Prentice Hall PTR and dedicated to 3D and the Internet. To get your hands on additional resources related to MPEG-4 Jump-Start, or to learn more about related 3D technologies, visit the Web3DBooks.com Web site at http://web3dbooks.com/. To jump directly to the MPEG-4 Jump-Start support site, visit http://web3dbooks.com/mpeg-4/jumpstart/.