About GFX | Q & A | Get the Spec |                                                 INFO@MINDEGO.COM


A New Innovation in Multimedia
Recent advances in computing and networking technologies provide the foundation for a new era of innovative communications. Media processing is becoming pervasive in silicon systems, computer networks, and information management. As a consequence, consumer’s expectations increase as their appetite for more sophisticated entertainment and informational experiences enlarges. However, developing rich interactive experiences is demanding, and quality content requires the right talent and tools. Content producers are beginning to look at not only what can be achieved with media compression and interoperability, but the capabilities of tools for the development of applications.

Multimedia applications are compositions of various elements, such as media assets (audio, video, images, vector graphics), meta data, behavior logic, and security or encryption mechanisms, that together comprise a rich, visual interactive experience. The application’s logic is the element that defines how users experience the content, direct its flow, or influence an outcome. As content experiences become more elaborate and complex, the programmatic aspect of multimedia applications increases in importance. Accordingly, new developments are emerging that promise to facilitate a new era of amazing multimedia applications.

GFX – A New Standard for Multimedia Applications

For the past two years, Mindego has been a participant and a contributor to a new extension to the MPEG-4 standard. The standard is officially known as MPEG-4 Part 21, or ISO/IEC 14496-21, and more commonly referred to as GFX. GFX, an abbreviation for Graphical Framework eXtensions, expands on the work that was begun with MPEG-J to provide for the use of Java classes within MPEG-4 content. GFX extends the use of Java to enable direct access to the rendering and composition operations not only on MPEG-4 terminals, but on any multimedia terminal.

GFX is a Java-based framework for interactive multimedia applications. It is designed purposely for combining audio-video media assets and 2D/3D vector graphics with programmatically defined logic to present an audiovisual experience on a screen. It gives application developers precise control over each instance of the presentation. GFX is network-agnostic, format-agnostic, and rendering engine agnostic:

  Network agnostic    GFX does not rely on any specific network transport mechanism, but uses the transport mechanism available in the device (e.g. TCP/IP, UDP, FTP, HTTP, MPEG-2 TS etc.)

  Media Decoder agnostic    GFX can use the output of any video decoder, independent of the compression scheme used.

  Application Format agnostic    GFX does not prescribe usage of any application-level file format. Applications can be made to use file formats such as MPEG-4 BIFS, SVG, X3D, U3D, Collada, or proprietary formats such as 3DS, SWF, OBJ.

  Rendering Engine agnostic    An application can query which rendering engine is available in the terminal and use application code targeted for the available or selected engine. For example, the terminal may support the industry standard 3D graphics API OpenGL as a low-level API (i.e. close to the hardware) but at a high-level, the terminal may support more dedicated application-specific APIs (e.g. game engine renderer).

Leveraging Java
GFX uses the Java language to securely deliver and execute applications on terminals. Java has become near ubiquitous as a presence in desktop web browsers, has been installed on over 40 million cellphones worldwide, and is being implemented in PDAs, set-top boxes, game consoles, and other connected appliances. It is the technology of choice for the new generation of connected devices that must perform complex media processing tasks with limited resources. Numerous standards bodies, including DVB and most recently the Blu-ray Disc Association, regard Java as an integral component of industry standards.

The Promise of GFX

The goal of GFX is to enable content developers to create advanced multimedia applications and deploy them efficiently on embedded devices. It is designed to provide content developers with a far-reaching flexibility to design interactive applications by seamlessly combining audio/video content and 2D/3D graphics. But GFX is also grounded in practicality. The GFX architecture is constructed on the principle of separating application logic and media assets. This principle is used extensively in the IT world for Internet applications, and therefore, is not new. What GFX does it apply the principle to multimedia and greatly empower the ability to develop rich applications efficiently. On this basis, GFX holds immense promise as an enabler for the deployment of bona fide, real-world applications comprised of rich media contents and interactions.

We believe GFX promises immense benefits: to content producers, who can design and create their own applications and leverage them across a wide array of systems; network operators, who will be able to provision a variety of applications to different devices in the home; and device makers, who can build compelling appliances that plug-in to a vast assortment of existing applications.

From time to time we will update this section of the Mindego web site to reflect new developments with GFX and provide more information about the standard and how it is being used.


GFX Questions and Answers

1.    What is GFX and what makes it unique?

2.    What does it provide that is not already provided by MPEG-4 systems?

3.    Does this provide an important advantage?

4.    Don’t file formats achieve all of the interoperability I need?

5.    Why can’t we use MHP to achieve exactly the same applications?

6.    GFX is an MPEG-4 standard. Does it only work with MPEG-4 media? What about other media formats?

7.    If it applies to any media format, why is it an MPEG-4 standard?

8.    Can I use GFX with proprietary application formats?

9.    Why does GFX require Java? Which version of Java is required?

10.  What is the relationship between GFX and MPEG-J?

11.  What is the licensing structure for GFX?

12.  At what stage is GFX in the standardization process? Where can I obtain a copy of the specification?

13.  How do I create applications that are GFX compliant? What authoring tools are needed?

14.  The authoring process seems complex. I am a content creator. Do I now also need to be a Java programmer?

15.  Why Java? Why can’t I just use C++?

16.  In order to deploy GFX applications, do I need a device that has a 3D processor? If so, doesn’t this limit the potential of GFX?


1.  What is GFX and what makes it unique?

The Graphical Framework eXtension (GFX) is Part 21 of MPEG-4 International Standard, formally known as ISO/IEC 14496-21. It will become an International Standard at the end of this year. It enables Java-based applications to access decoders and graphics resources of a multimedia terminal to compose interactive presentations to the screen.

GFX is unique in that it does not prescribe any application description formats or any specific graphic API. Applications developers are free to develop application-specific formats adapted to their applications, and to use a terminal's specific graphic APIs for 2D and 3D graphics.

2.  What does it provide that is not already provided by MPEG-4 systems?

MPEG-4 Systems (Part1) provides timing and synchronization for elementary streams, and hence, their decoders. In order to visualize these streams, a compositor is needed to assemble the presentation, and a renderer is needed to draw the presentation on a terminal's display. MPEG-4 originally provided BIFS (Binary Format for Scenes, Part 11) to achieve the composition. By the end of this year, MPEG will standardize the new LaSeR (Lightweight Scene Representation, Part 20). While BIFS is based on VRML/X3D (Virtual Reality Language (ISO/IEC 14772) / eXtensible 3D (ISO/IEC 19775)), LaSeR is based on W3C SVG (Scalable Vector Graphics).

BIFS and LaSeR are application-level formats. They are similar in that they define a streamable file format to describe a scene using a finite set of features. Being finite, they can only address some applications. In both cases, applications using those formats can express their logic using ECMAScript or Java language. However, these languages can only manipulate features available in their respective specifications.

Unlike BIFS and LaSeR, GFX does not provide a format. GFX provides a way to enable applications to have direct access to the terminal's graphic context and decoders. It does this using the Java language, which enables complex application logic to be expressed.

3.  Does this provide an important advantage?

Yes. In a sense, GFX enables applications to replace the limited compositor prescribed by file formats with a compositor fine-tuned for specific applications, by the content author. With this approach, any specific compositor and/or application elements developed by the content author can be reused for many applications. Furthermore, they can be used with any application-level format, standard or proprietary. What GFX is designed to achieve is interoperability at the application level.

4.  Don’t file formats achieve all of the interoperability I need?

File formats achieve interoperability from a content point of view, but they do not necessarily achieve consistent performance on various players. GFX is designed to provide a clean separation between media assets (audio, video, image, vector graphics, etc.) and application logic. This separation is a fundamental breakthrough. It allows logic and media to evolve separately from the other, and thereby potentially reducing the cost of producing interactive content dramatically.

5.  Why can’t we use MHP to achieve exactly the same applications?

The Multimedia Home Platform (DVB-MHP) is a standard developed by the Digital Video Broadcasting (DVB) consortium. MHP is used in cable/satellite set-top boxes and provides a Java API to access decoding resources and a 2D graphics.

In terms of composition, MHP provides a very limited set of features. For instance, graphics layers can only be on top of a video layer. Moreover, graphics and video layers being independent, their synchronization is hardly possible.

6.  GFX is an MPEG-4 standard. Does it only work with MPEG-4 media? What about other media formats?

GFX only defines the output representation of visual buffers for hardware accelerated manipulation (by the application) and drawing (by the terminal graphic chip). GFX does not define the compressed formats of visual streams. Therefore, GFX is media agnostic.

7.  If it applies to any media format, why is it an MPEG-4 standard?

GFX development started in MPEG because the application-level formats in the MPEG-4 specifications were deemed insufficient to answer the needs of application developers, content creators, and users. In particular, there was seen to be a need to combine 3D graphics with video, advanced navigation, and special visual effects on a wide variety of platforms ― from embedded devices to desktops.

8.  Can I use GFX with proprietary application formats?

Yes, any application-level format as long as you, or a third party, has written a parser for it.

9.  Why does GFX require Java? Which version of Java is required?

Java has been chosen because it has numerous attributes that have made it ubiquitous on embedded devices (mobile devices, set-top boxes, and so on).

Any version of Java can be used.

10.  What is the relationship between GFX and MPEG-J?

GFX uses MPEG-J's set of APIs to access terminal resources such as decoders and network resources. The difference between GFX and MPEG-J resides in the access to rendering resources: MPEG-J was designed to send and to receive messages from an MPEG-4 compositor or BIFS. GFX enables direct access to graphic resources. There is no intermediate layer such as BIFS. In other words, GFX applications control what they render; whereas with MPEG-J applications, the MPEG-4 terminal does.

11.  What is the licensing structure for GFX?

GFX, like MPEG-J, is royalty-free. The GFX specification allows usage of any rendering API and recommends usage of JSR-239 "Java bindings to OpenGL ES" and JSR-184 Mobile 3D Graphics (M3G). All are royalty-free with the exception of M3G, which has a royalty requirement for terminal developers, but is free application developers.

12. At what stage is GFX in the standardization process? Where can I obtain a copy of the specification?

MPEG-4 Part 21 GFX will reach International Standard status in the last Quarter of 2005.

The specification is public and will be posted on MPEG public home page at http://www.chiariglione.org/mpeg/working_documents.htm

13. How do I create applications that are GFX compliant? What authoring tools are needed?

You need a Java IDE (Integrated Development Environment) and GFX APIs. Any Java IDE can be used, but this is likely to appeal only to experienced programmers. For real content development, various companies are expected to market specific authoring tools designed for the content production community.

14. The authoring process seems complex. I am a content creator. Do I now also need to be a Java programmer?

Yes and No. To explain authoring GFX applications, one could use the analogy of authoring Web applications. To create a Web application, a content creator assembles artwork (the web pages), databases, and logic or control that defines how the artwork will be updated in response to user events, database changes, and so on. The content creator may program everything using various languages, or use the assistance of specific authoring tools with pre-built components that can be tailored to its needs. We expect GFX to follow a similar course. At the beginning, the tools are very technical and require substantial expertise. Over time, authoring tool developers begin to create the abstract user interfaces that permit content producers to build increasingly complex applications by dragging and dropping object into design and workflow models. 

15.  Why Java? Why can’t I just use C++?

Java is a mature object-oriented language. It’s secure, fast, and works on virtually any platform. Downloading C++ applications, like downloading a .exe or .dll file on operating systems such as MS-Windows is un-secure and prone to malicious code that can disrupt a terminal.

Other languages similar to Java could have been used, but Java was chosen because of its ubiquitous presence on embedded devices.

16. In order to deploy GFX applications, do I need a device that has a 3D processor? If so, doesn’t this limit the potential of GFX?

GFX is designed to work with hardware accelerated graphics. It was designed with 3D in mind, in particular, for the needs of 3D graphics on embedded devices; this is the reason why OpenGL ES (a lightweight version of OpenGL available on all desktop graphic cards today) is recommended. Other 2D or 3D graphics APIs can be used, accelerated by a dedicated processor, or available in software. A number of fast software implementations exist today on mobile devices and set-top boxes.

Given the wide availability today of 3D graphics processing on even low-powered devices, 2D-only rendering is a limitation of the past. GFX is forward looking at all levels. 3D gives content creators immensely more powerful rendering and compositing capabilities. It is intended to enable content creators to infuse amazing, game-like features into any type of audiovisual experience. While 3D is slightly more difficult to grasp than 2D, with the appropriate authoring tools the learning curve can be very fast. In the end, authoring complexity issues get solved by companies that are experts in this field. It is our belief that the flexibility gains for content creators, as well as many other advantages, provide a compelling basis for the widespread adoption of GFX.

 


Get the GFX Specification

To obtain the most recent working draft of the GFX specification, click here, or point your browser to the following location and navigate to the section:  MPEG-4 Part 21

http://www.chiariglione.org/mpeg/working_documents.htm

 

 

 

 



ABOUT MINDEGO | PRODUCTS | PROFESSIONAL SERVICES | NEWS AND EVENTS | CONTACT INFO


SITE MAP | LEGAL