Welcome to the ISO/IEC JTC 1/SC 29/WG 11 web site

also know as MPEG, the Moving Picture Experts Group.

The MPEG acronym is also used to indicate a suite of

ISO/IEC digital media standards developed by this JTC 1 Working Group.

iso-iec-logo

The Moving Picture Experts Group

Digital Item Processing

Standard: 
Part number: 
10
Activity status: 
Closed

MPEG-21 Digital Item Processing (DIP)

 

MPEG doc#: N7212
Date: April 2005
Author: 

 

1         Introduction

This document provides a brief overview of part 10 of ISO/IEC 21000, MPEG-21 Digital Item Processing (DIP) [1].

2. Why is Digital Item Processing needed in MPEG-21?

In MPEG-21 the fundamental unit of transaction is the Digital Item. As defined in part 1 of ISO/IEC 21000 [2], a Digital Item is a structured digital object with a standard representation, identification and metadata within the MPEG-21 framework. Part 2 of ISO/IEC 21000 [3] specifies a conceptual model for a Digital Item Declaration (DID), and also the Digital Item Declaration Language (DIDL) as a standard XML-based representation of a DID. The DID model and DIDL provides for the declaration of the static structure (including identifiers and metadata) of a Digital Item. They do not intrinsically provide a way for a Digital Item author to suggest how a User[1] can interact with the Digital Item. This is the scope of DIP. DIP allows a Digital Item author to provide a suggested interaction of a User with a Digital Item.

3         What does DIP specify?

DIP specifies Digital Item Methods (DIMs) as a way to provide a suggested interaction of a User with a Digital Item. Figure 1 — Digital Item Method components provides a high level view of components related to authoring and executing DIMs.

A DIM is authored using the Digital Item Method Language (DIML) which is based on ISO/IEC 16262:2002 (ECMAScript language) [4].

  1. Represents a Digital Item Method definition. The DIM definition is defined using the Digital Item Method Language and may call DIBOs and DIXOs (via a defined DIBO to call DIXOs defined in a given DIXO Language).

  2. These components represent Digital Item Base Operation implementations. DIBO implementations may call other modules provided by the platform.

  3. These components represent certain DIBOs that are defined to call DIXOs defined in a given DIXO Language. Currently only a RunJDIXO DIBO is defined for calling DIXOs using Java as the DIXO Language.

  4. These components represent Digital Item eXtension Operation definitions. DIXO definitions may call DIBOs via the bindings to the DIBOs in the DIXO Language as well as other modules provided by the platform.

  5. This represents a binding to a DIBO in the DIXO Language used for the DIXO definitions.

  6. This represents the API(s) to other modules provided by the platform which the DIBO implementations and DIXO definitions may call. This could include modules providing functionality related to other parts of ISO/IEC 21000.The API(s) available to DIBO implementations and DIXO definitions might be different.

  7. The platform refers to the environment in which the DIBOs are implemented and the DIMs are executed.

  8. This indicates calls from the DIM definition to DIBOs, including the DIBOs to call DIXOs defined in a given DIXO Language.

  9. This indicates calls from the implementation of the defined DIXO calling DIBOs to the DIXO being called.

  10. This indicates calls from a DIXO definition to a DIBO via the binding to the DIBO in the DIXO Language.

  11. This indicates calls from the DIBO implementations and DIXO definitions to modules provided by the platform.

Figure 1 — Digital Item Method components

DIML extends ECMAScript language by specifying a number objects specific to DIML. This includes global objects and objects for use in function-local scope.

The function properties of these objects specified by DIML are the normative set of Digital Item Base Operations (DIBOs). These base operations provide an interface between the DIM author and the services available in the MPEG-21 environment in which the DIM executes, and that implement the interaction between the User and Digital Item as suggested by the DIM author.

DIP specifies the normative syntax and semantics of the DIBOs. However DIP does not specify how those semantics should be implemented for any given implementation of a DIBO. The DIM author is assured interoperability in regards to the syntax and semantics of the DIBOs. However, a DIBO implementer, such as a vendor of an MPEG-21 compliant terminal supporting DIP, is free to implement the semantics of the DIBO as they choose. This provides for both interoperability from the DIM author perspective (in regards to the normative syntax and semantics of DIML, including the DIBOs), while also allowing for competitive opportunity (in regards to the implementation of the normative semantics of DIBOs in a given implementation).

DIP specifies how the normative set of DIBOs can be extended by specifying how a calling mechanism, from DIMs, for Digital Item eXtension Operations (DIXOs) can be defined. Currently DIP defines such a calling mechanism for Java based DIXOs (J-DIXOs).

DIP specifies how DIMs and J-DIXOs are conveyed in a DIDL document. This includes how a DIDL element can be associated with an Object Type, and how arguments to a DIM can be associated with an Argument Type. Matching Object Types and Argument Types provides a mapping between the DIDL elements and the arguments to the DIMs. This mapping is called the Object Map.

4         Using Digital Item Methods

DIMs are primarily intended for providing suggested User interactions with a Digital Item at the level of the DID. Hence the DIBOs primarily provide functionality for accessing and manipulating DIDL elements. However some DIBOs (and DIXOs) that are called from a DIM might initiate lower level processing, such as resource adaptation.

DIMs provide a suggested interaction of a User with a Digital Item. When a User interacts with a Digital Item, the entity guiding that interaction can choose to use DIP to provide suggested interactions with the Digital Item, if the Digital Item does make use of DIP. For example, a list of available DIMs can be provided, the User can choose a DIM, then be prompted for the arguments to the DIM, and the DIM executed. Alternatively a list of DIM arguments can be provided, the User can choose a permutation of DIM arguments, then be prompted for a DIM that accepts that permutation of arguments, and the DIM executed.

Additionally DIP also specifies a way to indicate DIMs that can be considered to be run automatically when a Digital Item interaction commences.

Since DIMs and DIXOs are conveyed in a DIDL document, they can also be subject to other functionalities provided by DIDL and other parts of MPEG-21. For example DIMs conveyed in a DIDL document might be conditional based on a DIDL Condition element (and its associated Selection elements). Or they might be subject to rights expressed by the Rights Expression Language (REL) specified by part 5 of ISO/IEC 21000 [5] and/or protected as specified by part 4 of ISO/IEC 21000 [6], the Intellectual Property Management and Protection (IPMP) Components.

In considering DIMs there are several roles that a User might undertake. For example, as a consumer a User can interact with a Digital Item via the execution of a DIM. As a creator, a User can author a DIM to be included in a Digital Item. As MPEG-21 compatible hardware or software for processing a Digital Item a User can provide an execution environment for DIMs, including DIBO implementations appropriate to the environment.

5         Relationship with other parts of MPEG-21

DIMs provide a link to other parts of ISO/IEC 21000 by providing DIBOs related to other parts. For example there are DIBOs related to part 2 of ISO/IEC 21000 (e.g. DID.AreConditionsSatisfied), and DIBOs related to part 3 of ISO/IEC 21000 [7], Digital Item Identification (DII) (e.g. DII.GetElementByIdentifier). Also there are DIBOs that can map to actions defined by part 6 of ISO/IEC 21000 [8], the Rights Data Dictionary (RDD), and for which rights can be expressed using REL (e.g. DIP.Play).

[1]               MPEG MDS subgroup, Text of ISO/IEC 21000-10 DIP, ISO/IEC JTC 1/ SC 29/WG 11/N7208, April 2005, Busan, KR.

[2]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 1: Vision, Technologies and Strategy, ISO/IEC TR 21000-1:2004, November 2004.

[3]               MPEG MDS subgroup, Text of ISO/IEC 21000-2 2nd Edition FDIS, ISO/IEC JTC 1/ SC 29/WG 11/N6927, January 2005, Hong Kong, CN.

[4]               ISO/IEC, Information Technology - ECMAScript language specification, ISO/IEC 16262:2002, June 2002.

[5]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 5: Rights Expression Language, ISO/IEC 21000-5:2004, March 2004.

[6]               MPEG MDS subgroup, ISO/IEC 21000-4 FCD IPMP Components, ISO/IEC JTC 1/ SC 29/WG 11/N7196, April 2005, Busan, KR.

[7]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 3: Digital Item Identification, ISO/IEC 21000-3:2003, March 2003.

[8]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 6: Rights Data Dictionary, ISO/IEC 21000-6:2004, May 2004.

 

C++ Bindings

 

MPEG doc#: N8601
Date: October 2006
Author:

 

Introduction

This document provides a brief overview of Amd 1 of part 10 of ISO/IEC 21000, Digital Item Processing (DIP) Amendment 1 [1].

Why are C++ bindings needed in MPEG-21?

In MPEG-21 the fundamental unit of transaction is the Digital Item. As defined in part 1 of ISO/IEC 21000 [2], a Digital Item is a structured digital object with a standard representation, identification and metadata within the MPEG-21 framework. Part 2 of ISO/IEC 21000 [3] specifies a conceptual model for a Digital Item Declaration (DID), and also the Digital Item Declaration Language (DIDL) as a standard XML-based representation of a DID. The DID model and DIDL provides for the declaration of the static structure (including identifiers and metadata) of a Digital Item. They do not intrinsically provide a way for a Digital Item author to suggest how a User[1] can interact with the Digital Item. This is the scope of DIP [4]. DIP allows a Digital Item author to provide a suggested interaction of a User with a Digital Item. However, when C++ executables need to interact with the DIP environment, additional C++ bindings need to be defined. This is the scope of DIP/Amd 1. The amendment specifies C++ data type bindings for DIML object types, the C++ DIBO factory interface, the C++ global environment interface and C++ interface bindings for DIBOs. The way in which C++ executables are executed and the reference to the bindings are obtained, is done in an implementation specific way.

What does DIP/Amd 1 specify?

Informative subclause

The amendment specifies an informative subclause on “Security and platform dependence considerations” related to the execute DIBO, C++ bindings and DOM Load and Save [5].

Annex

The amendment specifies Annex E “C++ bindings for Digital Item Base Operations (DIBO)” of the DIP standard, which provides C++ bindings for the following.

  • C++ data type bindings for DIML object types.
  • C++ DIBO factory interface.
  • C++ global environment interface.
  • C++ interface bindings for DIBOs.

C++ data type bindings for DIML object types

For C++ executables interacting with the DIP environment by using DIMs, data type bindings for the Digital Item Method Language (DIML) Object Types [4] are needed. C++ interfaces are specified for the following DIML Object Types: DIPError, ObjectMap, and PlayStatus.

C++ DIBO factory interface

For C++ executables interacting with the DIP environment by using DIBOs [4], a data type binding for the DIBO factory [4] is needed. A C++ interface, which is used to create C++ DIBO classes is specified for the C++ DIBO factory.

C++ global environment interface

For C++ executables interacting with the DIP environment, a data type binding for the global environment [4] is needed. A C++ interface, which defines a mechanism for C++ executable to query the platform for environment settings, is specified for the C++ DIBO factory.

C++ interface bindings for DIBOs

For C++ executables interacting with the DIP environment by using DIBOs, interface bindings for the DIBOs are needed. C++ interfaces are specified for the following DIBOs.

  • DIDL document access and manipulation
  • DIDL document loading and saving
  • Digital Item Adaptation (DIA) [6] related operations
  • DID related operations
  • Digital Item Identifier (DII) [7] related operations
  • DIP related operations
  • Rights Expression Language (REL) [8] related operations

Informative subclause

The amendment specifies an informative subclause on “Example of Safe DIP Profile”. This subclause describes application areas, functionality and a list of tools.

Relationship with other parts of MPEG-21

This amendment provides a link to other parts of ISO/IEC 21000 by specifying interface bindings for DIBOs related to other parts.

  • ISO/IEC 21000-2:2005 [3]
  • ISO/IEC 21000-3:2003 [7]
  • ISO/IEC 21000-5:2004 [8]
  • ISO/IEC 21000-7:2004 [6]
  • ISO/IEC 21000-10:2006 [4]

For example there are interface bindings for DIBOs related to part 2 of ISO/IEC 21000 (e.g. DID->configureChoice) and DIBOs related to part 3 of ISO/IEC 21000, Digital Item Identification (DII) (e.g. DII->GetElementByRelatedIdentifier). Also there are interface bindings for DIBOs that can map to actions defined by part 6 of ISO/IEC 21000 [9], the Rights Data Dictionary (RDD), and for which rights can be expressed using REL (e.g. DIP->Play).

Bibliography

[1]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 10 Amendment 1: Additional  C++ Bindings, ISO/IEC TR 21000-10/Amd 1:2006, December 2006.

[2]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 1: Vision, Technologies and Strategy, ISO/IEC TR 21000-1:2004, November 2004.

[3]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 2: Digital Item Declaration 2nd Edition, ISO/IEC 21000-2:2005, October 2005.

[4]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 10: Digital Item Processing, ISO/IEC TR 21000-10:2006, January 2006.

[5]               Apache, "Experimental C++ Language Binding for DOM Level 3", (http://xml.apache.org/xerces-c/ApacheDOMC++BindingL3.html) is a tool of the Apache Foundation.

[6]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 7: Digital Item Adaptation, ISO/IEC 21000-7:2004, October 2004.

[7]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 3: Digital Item Identification, ISO/IEC 21000-3:2003, March 2003.

[8]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 5: Rights Expression Language, ISO/IEC 21000-5:2004, March 2004.

[9]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 6: Rights Data Dictionary, ISO/IEC 21000-6:2004, May 2004.

 

MPEG-21 Session Mobility

MPEG doc#: N8600
October 2006
Author:

 

Introduction

This document describes utility software integrating ISO/IEC 21000-2 [1], ISO/IEC 21000-7 [2], and ISO/IEC 21000-10 [3]. This utility software demonstrates how enhanced interoperability for session mobility can be achieved by combining those three parts of the MPEG-21 standard.

What does the integrated utility software for DID, DIA, and DIP specify?

By using the DIP approach, session mobility can be realized in an interoperable manner. Using DIP interoperability is achieved at different levels:

  • Using DIP for session mobility makes sure that the DIP-enabled session mobility DI is usable on all DIP-enabled terminals. Therefore, interoperability at the session mobility application level is achieved.
  • The standardized format for session mobility context DIs is used by the DIP solution. Hence, interoperability of the context data format is achieved.
  • Since the application-specific data is inserted by the DIMs, interoperability of the application-specific data is achieved. This is a result of the fact that reading and writing of the data is under the control of the content author and not the application developer.
  • The content author knows exactly how possible reconfiguration of the DI will be done because the behaviour of the J-DIXO, performing the reconfiguration, is known beforehand. Therefore, he is able to fine-tune the reconfiguration process that specific content DI to make optimal use of the content. Since the author also provides the J-DIXO performing the dynamic reconfiguration, the reconfiguration will behave exactly the same on each terminal. And thus, interoperability at the level of reconfiguration is achieved.

Relationship with other parts of MPEG-21

Conformance described in this document provides a link to two other parts of ISO/IEC 21000.

  • ISO/IEC 21000-2:2005 [1].
  • ISO/IEC 21000-7:2004 [2].
  • ISO/IEC 21000-10:2006 [3].
  • CD ISO/IEC 21000-8 [4].

 

Bibliography

[1]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 2: Digital Item Declaration (Second Edition), ISO/IEC TR 21000-2:2005, 2005.

[2]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 7: Digital Item Adaptation, ISO/IEC TR 21000-7:2004, October 2004.

[3]               ISO/IEC, Information Technology – Multimedia framework (MPEG-21) – Part 10: Digital Item Processing, ISO/IEC TR 21000-10:2006, January 2006.

[4]               Study of CD of ISO/IEC 21000-8 Reference Software, ISO/IEC JTC 1/SC 29/WG 11/N8572, October 2006, Hangzhou, China.

 

 

 


[1] In MPEG-21 a User is any entity that interacts in the MPEG-21 environment or makes use of Digital Items, for example creators, rights holders, distributors and consumers.

 


[1] In MPEG-21 a User is any entity that interacts in the MPEG-21 environment or makes use of Digital Items, for example creators, rights holders, distributors and consumers.