MXM Architecture - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

MXM Architecture

Description:

Advanced Audio Coding. Audio Lossless Coding. File Format. BIFS. LASeR. Digital Item Declaration. HE AAC. MPEG-7 Visual. MDS. Digital Item Identification. Digital ... – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 29
Provided by: Fil84
Category:
Tags: mxm | aac | architecture

less

Transcript and Presenter's Notes

Title: MXM Architecture


1
MXM Architecture
Filippo Chiariglione Technology consultant,
CEDEO.net CEO/CTO SmartRM Inc.
  • 1st International MPEG Extensible Middleware
    Developers Day
  • 30 June 2009

2
An impressive number of standards
MPEG-7 Visual
Advanced Audio Coding
LASeR
MDS
Event Reporting
Reconfigurable Video Coding
BIFS
HE AAC
IPMPX
Digital Item Processing
Digital Item Declaration
File Format
Audio Lossless Coding
Intellectual Property Management and Protection
Media Value Chain Ontology
Rights Expression Language
Digital Item Identification
XML IPMP messages
Digital Item Streaming
IPMP Components
Digital Item Adaptation
MPQF
3
A practical case the Ref SW for MAFs
  • For each standard the reference software has
    always been provided
  • In most cases the quality of the MPEG reference
    software is high
  • but
  • Often reference software of specific tecnologies
    has been re-written from scratch
  • Sometimes its more costly to adapt what
    existing reference software does rather than
    re-developing it from scratch because no clear
    high-level APIs have been defined

4
What if
  • applications could draw from a repository ALL
    the software modules implementing MPEG standards?
  • no need to have in-depth knowledge of specific
    MPEG technologies in order to use them
  • possibilities to develop innovative applications
    based on multiple MPEG technologies combined in
    specific ways
  • infinite number of innovative business models
    based on MPEG technologies could be developed at
    a much reduced costs
  • possibility of replacing individual blocks (MXM
    Engines) with optimised ones

5
The power of MXM
  • A set of APIs to access possibly all MPEG
    technologies
  • Simple methods to call complex functionalities
    inside MXM engines
  • thin applications because the complexity is in
    the MXM engines
  • Replacement of MXM engines with better performing
    ones at no cost
  • Creation of a global market of MXM Engines, MXM
    Applications and MXM Devices

6
ISO/IEC 23006
  • The MXM standard is subdivided in three (soon
    four) parts
  • Part 1 - MXM Architecture and Technologies
    specifies the MXM architecture and references the
    technologies that are part of an MXM
    implementation
  • Part 2 - MXM Application Programming Interfaces
    (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 a set of
    protocols enabling distributed applications to
    exchange information related to content items and
    parts thereof, including rights and protection
    information

7
MXM Application 1
MXM Application 2
MXM Engine APIs?
MXM Device
MPEG21 File Engine
Digital Item Engine
REL Engine
IPMP Engine
Other Engines
Security Engine
Content Metadata Engine
Media Framework Engine
Scene Engine
OS
Drivers, Accelerators, Controllers, etc.
HW
8
MXM Application 3
MXM Application 1
MXM Application 2
MXM Orchestrator API?
MXM Device
MPEG21 File Engine
Digital Item Engine
REL Engine
IPMP Engine
Orchestrator Engine
Other Engines
Security Engine
Content Metadata Engine
Media Framework Engine
Scene Engine
OS
Drivers, Accelerators, Controllers, etc.
HW
9
MXM Protocols
License Provider Device
Content Identific. Device
Content Creation Device
End-User Device
Content Provider Device
DRM Tool Provider Device
10
Enabling MXM Apps to communicate
MXM Application
MXM Application
OS
MXM
OS
MXM
Computing Platform
Computing Platform
11
List of MXM Engines
  • ContentProtocolEngine
  • ContentSearchEngine
  • DIAEngine
  • DIDEngine
  • DISEngine
  • DomainEngine
  • EREngine
  • IPMPEngine
  • IPMPToolProtocolEngine
  • LicenseProtocolEngine
  • MediaFrameworkEngine
  • MetadataEngine
  • MPEG21FileEngine
  • MVCOEngine
  • OrchestratorEngine
  • RELEngine
  • RenderingEngine
  • SecurityEngine

12
MXM APIs of each engine have been divided into
  • Creation e.g.
  • encode a raw audio track
  • create an MPEG-7 metadata description
  • Access e.g.
  • get data from a Digital Item
  • Decode a video
  • Editing e.g.
  • Add an elementary stream to a multiplexed content
  • Engine-specific e.g.
  • RELEngine authorise(license, query)
  • LicenseProtocolEngine requestLicense (licenseID,
    serviceURL) 

13
MXM software
Shared among MXM Applications
Specific implementations of an MXM Engine
Shared among MXM Applications
Specific implementations of an MXM Engine
14
The MXM Config file /1
  • ltMXMConfigurationgt
  • ltMetadataEngine id2gt
  • ltClassNamegtorg.iso.mpeg.mxm.test.MetadataE
    nginelt/ClassNamegt
  • lt! engine-specific params --gt
  • lt/MetadataEnginegt
  • ltDIDEngine id7gt
  • ltClassNamegtorg.iso.mpeg.mxm.test.DIDEngin
    elt/ClassNamegt
  • lt! engine-specific params --gt
  • lt/DIDEnginegt
  • lt/MXMConfigurationgt

15
The MXM Config file /2
  • ltMXMConfigurationgt
  • ltDIDEngine id1gt
  • ltClassNamegtorg.iso.mpeg.mxm.FirstDIDEngin
    elt/ClassNamegt
  • lt! engine-specific params --gt
  • lt/DIDEnginegt
  • ltDIDEngine id2gt
  • ltClassNamegtorg.iso.mpeg.mxm.SecondDIDEngi
    nelt/ClassNamegt
  • lt! engine-specific params --gt
  • lt/DIDEnginegt
  • lt/MXMConfigurationgt

16
How does MXM work /1
MXM App
MXM Config file
MXM
Engine 1
Engine 2
Engine 3
17
How does MXM work /2
MXM App
MXM Config file
MXM
Engine 1
Engine 2
Engine 3
18
How does MXM work /3
MXM App
MXM Config file
MXM
Orchestrator Engine
Engine 2
Engine 3
19
MXMObject MXMAdapter
  • Interface org.iso.mpeg.mxm.core.MXMObject
  • String getMxmVersion ()
  • boolean hasContent ()
  • Object getContent ()
  • String getContentType ()
  • Class org.iso.mpeg.mxm.core.MXMAdapter
  • a wrapper of specific objects that can therefore
    be exchanged by MXM Engines.
  • By means of an MXMAdapter it is possible to
    convert any object into an MXMObject by doing the
    following
  • Foo foo new Foo()
  • MXMObject fooObject new MXMAdapter(foo)

20
MXM
  • Class org.iso.mpeg.mxm.core.MXM
  • static MXM getInstance (File mxmConfigFile)
    throws MXMConfigurationException
  • void initialize (File mxmConfigFile) throws
    MXMConfigurationException
  • MXMEngine getEngine (MXMEngineName engineName,
    String engineID) throws MXMEngineNotFoundException
  • MXMEngine getDefaultEngine (MXMEngineName
    engineName) throws MXMEngineNotFoundException

21
MXMEngine
  • abstract class org.iso.mpeg.mxm.core.MXMEngine
  • void initialise (String engineID,
    MXMGenericParameters mxmParameters)
  • String getEngineID ()
  • String getPropertyValue (String key)
  • void setProperty (String key, String value)
  • abstract MXMEngineName getEngineName ()

22
MXMEngineLoader
  • Class org.iso.mpeg.mxm.core.engine.management.MXME
    ngineLoader
  • MXMEngine load (JAXBElementlt?extends
    MXMEngineType gt mxmEngineElement) throws
    MXMConfigurationException
  • Classlt?gt cls Class.forName(engineClassName)
  • MXMEngine mxmEngine (MXMEngine)cls.newInstance()
  • mxmEngine.initialise(engineID, engineParameters)
  • return mxmEngine

23
An example DIDEngine
  • abstract class org.iso.mpeg.mxm.engine.didengine.D
    IDEngine
  • abstract DIParser getDIParser ()
  • abstract DICreator getDICreator ()
  • abstract ItemCreator getItemCreator ()
  • abstract ResourceCreator getResourceCreator ()
  • abstract DIEditor getDIEditor ()
  • abstract ItemEditor getItemEditor ()

24
Example license authorisation using MXM
  • File f new File(getClass().getClassLoader().getR
    esource("MXMConfiguration.xml").getFile())
  • MXM mxm MXM.getInstance(f)
  • mxm.listEnginesAndProperties()
  • SecurityEngine securityEngine
    (SecurityEngine)mxm.getDefaultEngine(MXMEngineName
    .SecurityEngine)
  • RELEngine relEngine (RELEngine)mxm.getDefaultEng
    ine(MXMEngineName.RELEngine)
  • LicenseParser licenseParser loadLicense(relEngin
    e, SOURCE_LICENSE_FILE_NAME)
  • LicenseParser queryOKParser loadLicense(relEngin
    e, SOURCE_QUERY_FILE_NAME_OK)
  • AuthorisationManager authorisationManager
    relEngine.getAuthorisationManager()
  • AuthorisationResult result authorisationManager.
    authorise(licenseParser, queryOKParser,
    securityEngine)

25
Java MXM Engines already available
  • DIDEngine
  • To create/parse a Digital Item
  • IPMPEngine
  • To create/parse IPMP Components and IPMP XML
    messages
  • DIAEngine
  • To access Digital Item Adaptation technologies
  • MPEG21FileEngine
  • To create/parse MPEG-21 files
  • MetadataEngine
  • To create/parse MPEG-7 metadata descriptions
  • RELEngine
  • To create/parse MPEG-21 REL licenses and
    performing basic authorisation
  • SecurityEngine
  • To perform basic security-related functionalities

26
For developers
  • The build of all MXM engines is handled by Maven
  • Project Object Model defining project
    dependencies
  • Easy integration in Eclipse
  • Uniform project structure
  • src/main/java source class files
  • src/main/resources various resources
  • src/test/java source test class files
  • src/test/resources resources used in test
    classes
  • Java classes for creating and parsing XML data
    structures have been generated using JAXB
    starting from the MPEG schemas

27
Join the MXM development team!
  • Why you should join
  • Plenty of interesting work still has to be done
  • You can choose between java, C or start a new
    implementation in another language!
  • It gives you visibility on a broad set of MPEG
    technologies
  • Web site, blog, reflector, and soon more
    utilities
  • Friendly and collaborative environment ?

28
Thank you!
  • http//mxm.wg11.sc29.org/
  • mxm_at_lists.uni-klu.ac.at
  • http//wg11.sc29.org/mxmsvn/repos

filippo_at_cedeo.net
Write a Comment
User Comments (0)
About PowerShow.com