Riding the Media Bits  chiariglione.org
Riding the Media Bits
Digital Media Project
Digital Media Manifesto
Leonardo
Acronyms
Site Map
Home

MPEG and Open Source Software


e-mail

 Last update: 2003/11/08

 

In spite of being a standards group operating in an industrial environment, MPEG has developed software using principles similar to Open Source Software.

 

It has already been said that MPEG had to deal with the software aspects of its work from very early on. The first MPEG-1 Video Simulation Model, fully assembled at the Tampa meeting in March 1990, was still a traditional textual description but, at the first Santa Clara, CA meeting in August 1990, pseudo C-code was used as a complement to text in writing the standard. For people accustomed to write computer programs this means of expression was more natural and more effective than words to describe the operations performed by the codec. 

In MPEG-1 and MPEG-2 times active participants individually developed and maintained their own simulation software. Some time later, as has been reported, the decision was made to develop reference software, i.e. a full software implementation of the MPEG-1 standard. 

Seen with the eyes of a software developer, the process of standard development in MPEG-1 and MPEG-2 times was rather awkward, because the temporal sequence of steps was: 

  1. Produce a textual description of the standard 
  2. Translate the text to the Simulation Model software
  3. Optimise the software
  4. Translate the software back to text/pseudo C-code. 

With MPEG-4 a new world came to the fore. Software was no longer just a tool to develop the standard; it was to become the tool to make many (even though not all) products based on the standard. A reversal of priorities was required  because the standard in textual form was still needed - a traditional method of expressing standards cannot be changed overnight - but for many users the standard expressed in a programming language was meant to be the real reference. This applied not just to those making software implementations, but also those making more traditional hardware-based products. Therefore it was decided that the software version of the standard should have the same normative status as the textual part. 

Quite independently from the formalisation of the OSS rules that were already taking place in the general IT world, MPEG made the decision to develop the reference software collaboratively. One of the reasons was that enhanced collaboration would be obtained if participants shared the code. Another reason was that, by having two different forms of expression, a standard of improved quality would be obtained, because the removal of an ambiguity from one form of expression would help clarify possible ambiguities in the other. Also, the scope of MPEG-4 was so large that probably no company could afford to develop the complete software implementation of the standard. Finally, a software implementation made available to the industry would result in an accelerated adoption of the standard. 

I do not claim that MPEG has followed the rules that the OSI has set to call a piece of software OSS. I am just saying that even within a peculiar environment like an SDO, collaborative software development naturally ends up obeying similar rules. The first rule that MPEG set was that every normative (decoder) and informative (encoder) component of the standard had to be implemented in software, except for external parts such as tools for shape extraction. Whoever made a proposal that was accepted provided a software implementation and released the copyright of the code to ISO. ISO would then grant a license of the copyright of the code for products conforming to the standard. As clear from the MPEG background, release of a patent license was not required and users should not expect to have a patent license with the copyright release. 

For each portion of the standard, a manager of core experiments was also appointed. This manager integrated the code of the accepted tools in the existing code base. The following companies and organisations appointed a representative for the corresponding portions of the MPEG-4 standard. 

Company  Portion of MPEG-4
Apple  MP4 File Format
ETRI  Text-to-Speech Interface
Fraunhofer  Natural audio
Microsoft Video code in C++
MIT  Structured Audio
MoMuSys  Video code in C
Optibase  Core
Sun MPEG-J

In the table, "Core" is the portion of code on which all media decoders and other components plug in.

Unlike traditional OSS projects, only MPEG members could participate in the project, a consequence of ISO rules related to standards development. Discussions, however, were usually done (and the practice still continues) on email reflectors that are open to non-MPEG members. 

The so-called "copyright disclaimer" that is found on all MPEG-4 software modules establishes the following points: 

  1. the role of the original developer and subsequent contributors to the software module
  2. the status of the software module as an implementation of a part of one or more MPEG standard
  3. the ability of users to obtain a free license from ISO/IEC to use the module or modifications of it in products claiming conformance to the MPEG standard
  4. warning to users that use of the module may infringe existing patents
  5. no liability to developers, contributors, their companies and ISO/IEC for use of the module or its modifications
  6. no release of copyright for non MPEG standard conforming products
  7. full rights of the original developer to use the code for its own purpose, assign or donate the code to a third party and inhibit third parties from using the code for non MPEG standard conforming products
  8. inclusion of the copyright notice in all copies or derivative works. 

Of late some objections have been raised to the clause that MPEG-4 reference software should be licenseable only for "conforming products". The first objection, the same that is made to OSS in general, is that access to the reference software may contaminate employees of a software company. The second objection is that the reference software of a standard should not have any restriction, e.g. it should be in the public domain. The response to this second objection is that an SDO is in the business of promoting its own standards, not to promote the public domain software philosophy in general, much less competing standards. Besides, having that clause prevents forking, as is also a concern for software companies. 

The joint project with ITU-T to develop the Advanced Video Coding (AVC) standard has prompted some changes to the reference software policy. The first is the possibility for the original developer of the code to simply donate the code without possibly identifying himself. The second is the possibility to reuse the code in other ISO/IEC and ITU standards. The latter covers the obvious case where, say, the DCT transform code can be reused in other standards that make use of the DCT. 

The MPEG OSS approach has been extended to two other cases. One case was motivated by the fact that, while the reference software is intended to be "reference" (normative or informative as the case may be), it is not necessarily intended to be efficient. Therefore since December 1999 MPEG has started working on a new part of MPEG-4 that contains optimised code, e.g. optimised motion vector search, a computationally very expensive part of an encoder implementation, where savings of more than one order of magnitude can easily be achieved. Any implementer can take this code and use it under the same conditions as the rest of the reference software, with the added condition that optimised code should not require the use of patents. 

A second case, launched in October 2000, has led to the decision to develop an MPEG-4 "reference hardware description". Thanks to this extension, it is expected that the use of MPEG-4 as the basic multimedia infrastructure in both software and hardware will be further promoted.

 

 

Send an e-mail to comment — See the communication policy

 

Copyright © 2003 chiariglione.org