INTERNATIONAL ORGANISATION FOR STANDARDISATION
ORGANISATION INTERNATIONALE DE NORMALISATION
ISO/IEC JTC 1/SC 29/WG 11
CODING OF MOVING PICTURES AND AUDIO
ISO/IEC JTC 1/SC 29/WG 11 N10795
London, UK – July 2009
Source: / SystemsTitle: / Text of ISO/IEC 23006-1 FCD MXM Architecture and Technologies
Status / Approved
Source / Filippo Chiariglione (CEDEO.net)
Marius Preda (TELECOM SudParis)
Christian Timmerer (KlagenfurtUniversity)
Wonsuk Lee (ETRI)
Text of ISO/IEC 23006-1 FCD MXM Architecture and Technologies
ISO/IECJTC1/SC29
Date:2009-07-03
ISO/IECFCD23006-1
ISO/IECJTC1/SC29/WG11
Secretariat:ANSI
Information technology— MPEG extensible middleware (MXM)— Part1: MXM architecture and technologies
Élément introductif— Élément central— Partie1: Titre de la partie
Warning
This document is not an ISO International Standard. It is distributed for review and comment. It is subject to change without notice and may not be referred to as an International Standard.
Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.
ISO/IECFCD23006-1
Copyright notice
This ISO document is a Draft International Standard and is copyright-protected by ISO. Except as permitted under the applicable laws of the user's country, neither this ISO draft nor any extract from it may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, photocopying, recording or otherwise, without prior written permission being secured.
Requests for permission to reproduce should be addressed to either ISO at the address below or ISO's member body in the country of the requester.
ISO copyright office
Case postale 56CH-1211 Geneva 20
Tel.+ 41 22 749 01 11
Fax+ 41 22 749 09 47
Web
Reproduction may be subject to royalty payments or a licensing agreement.
Violators may be prosecuted.
ContentsPage
Foreword......
Introduction......
1Scope
2Normative references
3Terms and definitions
4Symbols and abbreviated terms
5Namespace conventions
6System overview
7MXM Architecture
7.1Introduction
8MXM Engines......
8.1Digital Item Engine......
8.1.1Technologies......
8.2MPEG-21 File Engine......
8.2.1Technologies......
8.3REL Engine......
8.3.1Technologies......
8.4IPMP Engine......
8.4.1Technologies......
8.5Media Framework Engine......
8.5.1Technologies......
8.5.1.1Audio......
8.5.1.2Video......
8.5.1.3Reconfigurable Video......
8.5.1.4Muxed Content......
8.5.1.53D Graphics coding......
8.5.1.6Composition coding......
8.6Metadata Engine......
8.6.1Technologies......
8.7Digital Item Streaming Engine......
8.7.1Technologies......
8.8Digital Item Adaptation Engine......
8.8.1Technologies......
8.9Event Reporting Engine......
8.9.1Technologies......
8.10Content Protocol Engine......
8.10.1Technologies......
8.11License Protocol Engine......
8.11.1Technologies......
8.12IPMP Tool Protocol Engine......
8.12.1Technologies......
8.13Content Search Engine......
8.13.1Technologies......
8.14Security Engine......
8.14.1Technologies......
8.15MVCO Engine......
8.15.1Technologies......
8.16Domain Engine......
8.16.1Technologies......
8.17Rendering Engine......
8.17.1Technologies......
8.18Orchestrator Engine......
8.18.1Technologies......
Bibliography......
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IECJTC1.
International Standards are drafted in accordance with the rules given in the ISO/IECDirectives, Part3.
The main task of the joint technical committee is to prepare International Standards. Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75% of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this part of ISO/IEC23006 may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC230061 was prepared by Joint Technical Committee ISO/IECJTC1, Information technology, Subcommittee SC29, Coding of audio, picture, multimedia and hypermedia information.
ISO/IEC23006 consists of the following parts, under the general title Information technology— MPEG extensible middleware (MXM):
Part1: MXM architecture and technologies
Part2: MXM API
Part3: MXM conformance and reference software
Part4: MXM protocols
Introduction
ISO/IEC 23006 is a suite of standards that has been developed for the purpose of enabling the easy design and implementation of media-handling value chains whose devices interoperate because they are all based on the same set of technologies, especially technologies standardised by MPEG, accessible from the MXM middleware.
This will enable the development of a global market of:
MXM applications that can run on MXM devices thanks to the existence of a standard MXM application API
MXM devices executing MXM applications thanks to the existence of a standard MXM architecture
MXM engines thanks to the existence of standard MXM architecture and standard APIs
Innovative business models because of the ease to design and implement media-handling value chains whose devices interoperate because they are all based on the same set of technologies, especially MPEG technologies.
The MXM standard is subdivided in three parts:
Part 1 - MXM Architecture and Technologies (the present document): specifies the MXM architecture and references the technologies that are part of an MXM implementation;
Part 2 - MXM Application Programming Interface (APIs): specifies the MXM APIs;
Part 3 - MXM Conformance and Reference Software: specifies conformance tests and the software implementation of the standard.
Part 4 - MXM protocols: specifies communication protocols between MXM applications.
©ISO/IEC2009— All rights reserved / 1ISO/IECFCD23006-1
Information technology— MPEG extensible middleware (MXM)— Part1: MXM architecture and technologies
1Scope
This part ofISO/IEC 23006 specifies the MXM architecture and references the technologies that are made accessible through the set of MXM APIs specified in ISO/IEC 23006-2.
The elements of the MXM Architecture are:
1.MXM Engines, collections of specific technologies that it is meaningful to bundle together
2.MXM Engine APIs, APIs that can be used to access MXM Engine functionality
3.Orchestrator Engine, a special MXM Engine capable of creating chains of MXM Engines to execute a high-level application call such as “Play”
4.MXM Orchestrator Engine APIs
5.MXM Device, a device equipped with MXM
6.MXM Application, an application that runs on an MXM Device and makes calls to the MXM Application API and MXM Engine APIs
Of particular relevance is the reference to the protocols for MXM to MXM communications specified in ISO/IEC 29116-1.
2Normative references
The following referenced documents are indispensable for the application of thisdocument. For dated references, only the edition cited applies. For undated references,the latest edition of the referenced document (including any amendments) applies.
ISO/IEC 13818 (all parts), Information technology -- Generic coding of moving pictures and associated audio
ISO/IEC 14496 (all parts), Information technology -- Coding of audio-visual objects
ISO/IEC 15938 (all parts), Information technology -- Multimedia content description interface
ISO/IEC 21000 (all parts), Information technology -- Multimedia framework (MPEG-21)
ISO/IEC 23000 (all parts), Information technology -- Multimedia application format (MPEG-A)
ISO/IEC 23001 (all parts), Information technology -- MPEG systems technologies
ISO/IEC 23002 (all parts), Information technology -- MPEG video technologies
ISO/IEC 23003 (all parts), Information technology -- MPEG audio technologies
ISO/IEC 23004 (all parts), Information technology -- Multimedia Middleware
ISO/IEC 23006-2,Information technology –MPEG extensible middleware (MXM) -- Part 2: MXM API
ISO/IEC 23006-4,Information technology –MPEG extensible middleware (MXM) -- Part 4: MPEG extensible middleware (MXM) protocols
3Terms and definitions
For the purposes of this document, the following terms and definitions apply.
3.1
Content Creation Device
a device enabling the creation of content possibly including audio-visual resources, rights information, metadata, etc.
3.2
Content Identification Device
a device providing content identification and authentication services to another device
3.3
Content Provider Device
a device on which content may be stored and delivering content to another device
3.4
Device
a combination of hardware and software or just an instance of software that allows a user to perform actions
3.5
Domain
a set of devices sharing a set of common properties such as ownership
3.6
Domain Administrator
a user creating and administering a domain by means of a Domain Management Device
3.7
Domain Management Device
a device managing the lifecycle of a domain and the membership of devices and users part of it.
3.8
Inter-MXM Protocol
a protocol that enable communication between MXM Devices.
3.9
IPMP Processor
a module in a Media Streaming Player in charge of retrieving, instantiating, initialising and managing the IPMP Tools required to perform actions on content.
3.10
IPMP Tool
a module performing (one or more) IPMP functions such as authentication, decryption, watermarking, etc.
3.11
IPMP Tool Agent
a module instantiating, initialising, authenticating, and supervising any operation performed between IPMP Tools within an IPMP Tool Group
3.12
IPMP Tool Body
executable code implementing either a Single IPMP Tool or an IPMP Tool Pack
3.13
IPMP Tool Group
a combination of several IPMP Tools
3.14
IPMP Tool Pack
a module that comprises an IPMP Tool Group and its IPMP Tool Agent
3.15
IPMP Tool Provider Device
a device delivering IPMP Tools to another device
3.16
Licence Provider Device
a device delivering licenses to another device according to a License Template previously stored
3.17
Licence Template
a license granting rights to issue licenses to a device
3.18
MXM Application
an application that runs on an MXM device and makes calls to the MXM Application API and MXM Engine APIs
3.19
MXM Device
a device equipped with a selected assembly of MXM engines
3.20
MXM Engine
a collection of specific technologies that it is meaningful to bundle together
3.21
MXM Engine API
the API of a single MXM Engine
3.22
MXM Orchestrator API
the API of the MXM Orchestrator Engine.
3.23
MXM Orchestrator Engine
a special MXM Engine capable of creating chains of MXM engines, i.e. to set-up a sequence of connected MXM engines for the purpose of executing a high-level application call such as Play
3.24
MXM Technology
a technology that is supported by (a profile of) MXM
3.25
User
any entity making use of an MXMdevice.
4Symbols and abbreviated terms
Table1— Acronyms
BBL / Bitstream Binding LanguageCCD / Content Creation Device
CID / Content Identification Device
CPD / Content Provider Device
DIA / Digital Item Adaptation
DID / Digital Item Declaration
DIDL / Digital Item Declaration Language
DII / Digital Item Identification
DIS / Digital Item Streaming
DMD / Domain Management Device
ER / Event Report
ERR / Event Report Request
IPMP / Intellectual Property Management and Protection
LPD / License Provider Device
LLAP / Local License Access Protocol
MXMD / Media Streaming Device
MSP / Media Streaming Player
REL / Rights Expression Language
RTP / Real Time Protocol
RTSP / Real Time Streaming Protocol
URI / Uniform Resource Identifier
5Namespace conventions
Throughout this part of ISO/IEC 23006, Qualified Names are written with a namespace prefix followed by a colon followed by the local part of the Qualified Name.
For clarity, throughout this part of ISO/IEC 23006, consistent namespace prefixes are used. Table 2 gives these prefixes and the corresponding namespace.
Table2— Namespaces and prefixes
Prefix / Corresponding namespaceipmpdidl / urn:mpeg:mpeg21:2004:01-IPMPDIDL-NS
ipmpmsg / urn:mpeg:mpeg21:2006:07-IPMPMESSAGES-NS
ipmpinfo / urn:mpeg:mpeg21:2004:01-IPMPINFO-NS
didl / urn:mpeg:mpeg21:2002:02-DIDL-NS
didmodel / urn:mpeg:mpeg21:2002:02-DIDMODEL-NS
didl-msx / urn:mpeg:maf:schema:mediastreaming:DIDLextensions
dii / urn:mpeg:mpeg21:2002:01-DII-NS
r / urn:mpeg:mpeg21:2003:01-REL-R-NS
sx / urn:mpeg:mpeg21:2003:01-REL-SX-NS
m1x / urn:mpeg:mpeg21:2005:01-REL-M1X-NS
xsd /
xsi /
dsig /
mxmacp / urn:mpeg:mpeg-m:schema:accesscontentprotocol:2009
mxmaitp / urn:mpeg:mpeg-m:schema:accessipmptoolprotocol:2009
mxmalp / urn:mpeg:mpeg-m:schema:accesslicenseprotocol:2009
mxmaucp / urn:mpeg:mpeg-m:schema:authenticatecontentprotocol:2009
mxmbp / urn:mpeg:mpeg-m:schema:baseprotocol:2009
mxmd / urn:mpeg:mpeg-m:schema:domain:2009
mxmdp / urn:mpeg:mpeg-m:schema:domainprotocol:2009
mxmicp / urn:mpeg:mpeg-m:schema:identifycontentprotocol:2009
mxmrlp / urn:mpeg:mpeg-m:schema:revokelicenseprotocol:2009
mxmscp / urn:mpeg:mpeg-m:schema:storecontentprotocol:2009
mxmslp / urn:mpeg:mpeg-m:schema:storelicenseprotocol:2009
6System overview
The MPEG extensible Middleware is an architecture containing MPEG standard multimedia technologies whose purpose is to enable the easy design and implementation of media-handling value chains whose devices interoperate because they are all based on the same set of technologies exposed through standard APIs.
Figure 1 shows a rather general configuration of value chain where some of the interconnections are represented.
Figure1— Typical devices in a media-handling value chain
Figure 2 depicts an MXM Device.
Figure2— An MXM Device
The elements of the MXM Architecture are
1.MXM Engines, collections of specific technologies that it is meaningful to bundle together
2.MXM Engine APIs, APIs that can be used to access MXM Engine functionality
3.Orchestrator Engine, a special MXM Engine capable of creating chains of MXM Engines to execute a high-level application call such as “Play”
4.MXM Application API, the API of the MXM Orchestrator Engine
5.MXM Device, a device equipped with MXM
6.MXM Application, an application that runs on an MXM Device and makes calls to the MXM Application API and MXM Engine APIs
Figure 3 shows a general model of an MXM device
Figure3— The MXM architecture
As shown in Figure 3 above, MXM comprises a framework hosting a number of Engines. These are containers of a specific set of MXM Technologies accessible by the MXM API specific of that Engine. As is typical of most MPEG standards, the MXM standard will only define the interfaces of the MXM Engines, named MXM Engine APIs and the MXM Orchestrator API.
In general an MXM Device can have several MXM Applications running on it (there may be other applications but these are not relevant here). Some may be “resident”, i.e. they have been loaded by the MXM manufacturer and some may be temporary, i.e. they have been downloaded for a specific purpose.
When an MXM Application is executed, there may be “low-level” calls directly to some MXM Engines using the MXM Engine APIs of each specific Engines, and “high-level” calls like, say, “Play (GovernedContent)” which will be handled by the Orchestrator Engine. The MXM Orchestrator, by calling the MXM Engine APIs of specific engines, is capable of setting up a chain of MXM engines for handling complex operations, orchestrating the intervention and send/receive data to/from the particular chain of Engines that a given high-level call will trigger, thus relieving MXM Applications from the logic of handling them. Each MXM Engine will contain a specific set of MXM Technologies accessible by an MXM Application, the MXM Orchestrator and any other MXM Component in MXM, by means of its own MXM Engine API.
For instance, in the case of “Play (GovernedContent)” the Orchestrator engine could set-up the following chain:
a)MP21 File engine (e.g. open the file and extract the Digital item)
b)DI engine (e.g. extract metadata and rights information)
c)REL engine (e.g. verify if the right to play is granted)
d)IPMP engine (e.g. set up IPMP Tools to decrypt protected resources)
e)Security engine (e.g. initialise the IPMP Tools with decryption keys)
f)Content Metadata engine (e.g. present content metadata to the user)
g)Media Framework engine (e.g. demux, decode and render audio-visual resources)
...And possibly others.
NOTEOnly the APIs of an MXM Engine are mandatory; how each Engine handles the operations needed to carry out a request is dependent on the specific software or hardware MXM Engine implementation.
A specific MXM Device may also make use of the M3W standard [95] because this offers several technologies from its parts 2 to 8, such as Resource and Quality Management, Fault Management and System Integrity Management, that may be useful in an implementation.
MXM Devices are not only used as stand-alone devices possibly interacting with a server, but are also devices meant to be used in a media value chain possibly with different MXM Applications that correspond to the different roles that value chains users play in the value chain (e.g. creating content, issuing licenses upon request, streaming content, etc.)
This is depicted in Figure 4, which represents the full scope of the MXM standard and the communication between two MXM Devices via the inter-MXM Protocols. These are protocols that an application need not carry with it because they are already available in the MXM as MXM Engines.
Media technologies are normatively listed in Clause 8.
Figure 4 depicts the target of the MXM standard.
Figure4— Scope of MXM standardisation
Examples of MXM Applications include:
Video Viewer – a program to view videos
Photo Player – a program to view still pictures
Content Creator – a program to create content with audio-visual resources, metadata and rights information
MPEG-J applet
License server – a remote service issuing licenses upon request
7MXM Architecture
7.1Introduction
MXM specifies an architecture in which each technology is encapsulated in one MXM Engine defining the MXM APIs for that Engine.
The list of MXM Engines is provided in the table below.
The MXM Engine APIs are divided in five categories. The first four categories include those recurring for more than one engine, while the latter category includes those APIs which are specific for one Engine. The terminology for the first four categories is given below:
Creation APIs: this include APIs to create data structures, files, elementary streams, etc. conforming to the respective standards
Editing APIs:; this include APIs to modify an existing data structure, file, elementary stream, etc. in order to obtain a derived object still conforming to the respective standard
Access APIs: this include APIs to parse data structures, files, decode elementary streams, etc. in order to retrieve the information contained within