AFX (Animation Framework eXtension)
MPED doc#: N9887
Date: May 2008
Author: Francisco Morán (Universidad Politécnica de Madrid)
1. What is AFX?
AFX (Animation Framework eXtension) is a set of tools for efficiently coding the shape, texture and animation of interactive synthetic 3D objects. AFX is one of the toolsets created by MPEG’s 3DGC (3D Graphics Compression) subgroup , known as SNHC (Synthetic/Natural Hybrid Coding) until October 2005. AFX is specified in MPEG‑4’s Part 16 REF _Ref111527792 \r \h , whose first Edition was published by ISO in February 2004. The second edition, which includes all Corrigenda and Amendments up to that date, was released in December 2006, and the third is due at the end of 2008.
MPEG‑4 already featured, in its first two versions from 1999 and 2000, compression techniques for: i) very low bit-rate coding of FBA (Face and Body Animation) of virtual humanoids modelled in a specific way; and ii) 3DMC (3D Mesh Coding) for generic, but static, 3D objects represented by a first order (i.e., polygonal) approximation of their surface. Overviews of the FBA and 3DMC toolsets, which were also produced by MPEG’s SNHC subgroup, are available in the MPEG technologies web page . AFX started in 2000 as an attempt to unify and extend MPEG‑4’s tools related to 3D graphics.
With the main objective of efficiently coding all data related to 3D graphic objects (shape, texture and animation), AFX offers both compact high-level representation and compression of low-level components, designed to be used in combination with typical 3D graphics rendering APIs (Application Programming Interfaces) such as OpenGL or Microsoft’s DirectX.
Besides a more compact representation, high-level mathematical models such as the ones used in AFX often provide other functionalities. For example, surfaces or textures hierarchically coded thanks to wavelet techniques (see below) can be refined only locally, based on the area viewed by the user. This provides functionalities such as view-dependent transmission, automatic level-of-detail, and hierarchical local refinements. Enabling all these functionalities may require large amounts of computation, but a clever implementation may provide crude capabilities only for a limited resource (possibly mobile) terminal, and nevertheless full support for a powerful (desktop) terminal; the rendering will not have the same quality but the content will be the same. Thus, another very important benefit of such representations is scalability.
1.1. High-level representation tools
Thanks to its high-level representation components, AFX may be seen as a 3D graphics modelling interface. Its mathematical models have few parameters, which yields huge compression benefits, although these models cannot be sent directly to current 3D graphics rendering APIs or hardware-accelerated graphics cards: at the user’s terminal, they have to be internally converted to low-level primitives that its graphics card can render. Examples of high-level components in AFX are:
- Higher-order (instead of just polygonal) approximations of surfaces for 3D shape representation, thanks to Bézier’s or NURBS (Non-Uniform Rational B-Spline) patches, and SSs (Subdivision Surfaces).
- Procedural geometry tools for multi-resolution urban environment modelling.
- True 3D solid modelling tools including simple 3D primitives and a set of operators enabling to combine them in order to achieve a compact and exact analytical representation of manufactured and architectural models.
- Enhanced ways of representing images with procedural textures.
- Image-based techniques for joint shape and texture modelling, such as the DIBR (Depth Image Based Representation) tools, or the multi-texture one.
- Generic animation techniques such as deformers and 3D mesh morphing.
- The BBA (Bone-Based Animation) tool, which relies on the skeleton, muscle and skin paradigm, and eases the animation of generic articulated objects (as opposed to bespoke solutions for particular humanoids).
1.2. Low-level compression tools
AFX tools for compressing static and dynamic 3D shapes are the following:
- 3DMCe (3DMC extension) allows compression of geometry described with polygonal meshes, whose connectivity is arbitrary (and respected).
- WSS (Wavelet SS) is meant to compress very efficiently polygonal meshes whose arbitrary connectivity may be changed (it is turned into a semi-regular one through remeshing).
- MeshGrid represents and codes the vertex positions of an arbitrary mesh with respect to those of a parametric regular grid.
- Footprint allows hierarchical coding of 2D contours.
- FAMC is a Frame-based Animated Mesh Compression tool for arbitrary dynamic meshes with constant connectivity.
- BBA yields a compact coding of bone geometric transforms and muscle deformation controllers.
2. Why use AFX tools in 3D applications?
AFX offers, for the first time, a unified standardised framework including a rich set of 3D graphics tools, most of them already well-supported in the industry. Furthermore, advanced features such as compression, streaming, and seamless integration with other audiovisual media, allow building high quality creative cross media applications. AFX tools are suitable for 3D video games, interactive 3D mobile services, distributed and/or collaborative virtual environments, animation movies, entertainment and cultural applications, e-learning systems, etc.
For example, in a 3D first person shooter game, the technical challenges to overcome include smooth graphics representation, innovative user interface, networked gaming environment, cross platform terminals, mobility, high-quality animated 3D contents, and smart/behavioural virtual characters. In emerging interactive television, audiovisual contents including animated emotional characters, temporal synchronization and spatial composition mechanisms are required. All these features are provided or supported by AFX.
 ISO/IEC 14496‑16: MPEG‑4 Part 16, Animation Framework eXtension (AFX).
 MPEG‑3DGC web page: www.mpeg-3dgc.com.
 MPEG technologies web page: www.chiariglione.org/mpeg/mpeg-tech.htm.