No Slide Title

Download Report

Transcript No Slide Title

MXF
MXF
An Introduction
An Introduction
• What is MXF ?
• What does it do ?
• How does it do it ?
• Please feel free to ask questions !
MXF
MXF
What is MXF ?
What is MXF ?
•
•
•
•
•
•
•
An interchange file format
An extensible file format
A compression agnostic file format
A versatile file format
A metadata aware file format
A stream-able file format
NOT an authoring format
– MXF allows editable packages with simple cuts
– Everything else is AAF
MXF
Relationship to AAF
AAF System
AAF Interchange
AAF to MXF Export
AAF System
MXF to AAF Import
or open in place
MXF Interchange
MXF System
MXF
MXF System
What is MXF ?
• Over 2 year of hard work by a joint team:
– Pro-MPEG Forum
• chairman Nick Wells, BBC
• working group chairman Jim Wilkinson, SONY
• document controller Bruce Devlin, Snell & Wilcox
– AAF Association
• chairman Brad Gilmer
• major contributor Oliver Morgan, AVID
– EBU
• Hans Hoffman
MXF
What is MXF ?
• A set of documents
–
–
–
–
–
Part 1:
Part 2:
Part 3:
Part 4:
Part 5:
Engineering guidelines
Format Specification
Operational Patterns
Descriptive Metadata sets
Body formats
• These have all been submitted to SMPTE for ballot
• Get a copy of the Pro-MPEG documents from
– http://www.pro-mpeg.org
MXF
MXF
What does it do ?
What does it do ?
MXF
• MXF provides …
–
–
–
–
–
–
–
–
an extensible framework for interchanging Metadata and Essence
independence from compression formats
a variety of operational patterns to fit different applications
a means of encapsulating structural & descriptive metadata
a means of relating the metadata with the essence
low level file structure for efficient storage and parsing
a means of indexing content for random access
a stream-able file format for real time contribution
MXF
How does it do it ?
User Requirements
MXF
•
•
•
•
Must be easy to understand & apply and standardised
Must be compression independent
Must be open (as per ITU definition)
Must provide full self-identification
•
•
•
•
Must be fully extensible
Must be usable on major platforms/OS’s
Must be application independent
Must provide for partial file transfers and recovery from
interruptions
MXF
Basic file structure
• Simple “Tape replacement”
File Header
Preamble
partition
Header
Metadata
File Body
File Footer
Essence
Postamble
partition
Note: body is typically >99% of the total file
MXF
Complex file structure
• Multiple essence, index tables, run-in, repeated header metadata
File Header
Run
In
Preamble
partition
Index
Header
Metadata
(optional)
File Body
Essence
Index
Table
H
Postamble
partition
Essence
Postamble
partition
Header
Metadata
(optional)
File Header
Pr
File Footer
(optional)
File Body
Body
Header Partition
Body
Po
H
Index
Body
Continuation Partition
Body
File Footer
Po
Index
Po
Body
Body
Continuation Partition Continuation Partition
Po
H
Index
Footer Partition
MXF
Extensibility
• KLV coding
– Key: a unique identifier
– Length: how long is the field
– Value: what is the value of the field
System
K L
Aux
K L
Picture
K L
Sound
K L
MXF
Extensibility
• KLV sets and packs
Prolog
Pack
KLV
Filler Item
Header Metadata Local Sets
Defines the start and
contains template labels
Fills data space to the
end of the Header
Metadata Partition
Metadata Object
Set Key Set Length
16 bytes
4 bytes
Set Value - variable
Object property
Local Tag
2 bytes
Length
2 bytes
ItemValue - variable
Compression Independence
MXF
• Different MXF body types can be KLV wrapped
• Body types can be single essence or multiplexed
• Body type is signalled in the first few bytes
– Enables early success / failure when streaming
– Allow rapid identification of body types
• Metadata can be parsed even if essence type cannot be decoded
• Store & Forward devices can report compression type
Operational Patterns
• Operational Pattern 1
Header Metadata
Structural
Metadata
Descriptive
Metadata
Body
MXF
Operational Patterns
MXF
• Operational Pattern 5
Header Metadata
Body
Picture
Title, …
Descriptor
Sound
Overall
Structure
Header Metadata
Production
Segment 1
Production
Segment 2
Production
Segment 3
Production
Segment n
Body of
Production
Content
Scene Key Point
Scene 2
Scene 1
Scene 3
Production Track
Scene Track
Shot Track
Timecode Track
Video Track
Audio Track
Audio Track
Shot 1
Shot 2
Shot 3
Clip
MXF
Timeline edit unit
Structural Metadata
• Major elements such as “byte order” in the file
• UMIDs for the essence components
• Packages
– A group of tracks
– Material package defines the “output” timeline
– File packages define the “input” timelines
• Tracks
– Timecode, Video, Audio, Events
• Sequences of Segments
– i.e. how the video “clips” are ordered and fit together
MXF
Descriptive Metadata
MXF
• Depends on the use of the file
• Current set is aimed at creating Broadcast Programs
– Production metadata: Titles, episodic information
– Definition of scenes, shots, participants, awards
Scene 2
Scene Key Point
Scene 3
Scene 1
Production Track
Scene Track
Shot Track
Timecode Track
Video Track
Audio Track
Audio Track
Header
Metadata
Shot 1
Shot 2
Shot 3
Prologue
Pack
Root Sets
(Preface,
Ident &
Content
Storage)
Clip
Material
Package
File
Package
Production
Collection
Timeline edit unit
Scene
Collection
Shot
Collection
How is it structured ?
• It uses the
Unified
Modelling
Language
(UML)
Production
Collection
1
Has >=0
Has >=0
Has >=0
Has >=0
Has >=0
Has 0 or 1
Has >=0
Has >=0
Production
Identification
2
Production
Item Titles
3
Production
Episode Info
4
Production
Group Titles
5
Production
Brand Titles
6
Production
Organisation
7
Production
Annotation
8
Production
9
Has 0 or 1
Has >=0
Has >=0
Production
Subtitles desc.
10
Production
Awards
11
Production
Participants
12
MXF
MXF
How to connect metadata sets
• Referencing of one set to another
– UUIDs and UMIDs are used as the links
– strong reference means one to one relationship
– weak reference means one to many - both are used
K
L
ID
K
L
Strong Ref
Strong Ref
ID
K
L
ID
MXF
Low level structure: Partitions
•
•
•
•
Divides file into partitions containing a single “thing”
Partitions have an integer number of sectors
Sectors are a defined size (4096 in today’s demos)
The order of elements in a partition is defined
File Header
Run
In
(optional)
Preamble
partition
Index
Header
Metadata
Index
Table
(optional)
File Body
Essence
Postamble
partition
File Footer
Essence
Postamble
partition
Header
Metadata
(optional)
MXF
Indexing Content
• Generic Index Table solution
–
–
–
–
copes with CBR and VBR
copes with Temporal re-ordering
cope with predictive compression schemes
simple implementation for simple body types
` IndexEntry 0
IndexEntry 1
start
start
Sample 0
Sample 1
element
Video
element
Audio
element
System
element
element
Video
element
Audio
element
System
element
element
Video
element
Audio
element
CBE
CBE
VBE
CBE
CBE
CBE
VBE
CBE
CBE
CBE
VBE
CBE
Slice 1
start
Slice 0
start
Data
Sample 2
System
element
Slice 0
start
Data
IndexEntry 2
start
Slice 1
start
Slice 0
start
Data
Slice 1
start
MXF
Where to now ?
Where to now ?
• Await results of the SMPTE ballot
• Respond to issues raised
• And …
–
–
–
–
–
add new body types as required
add descriptive data sets as new communities adopt MXF
define Operational Patterns within the scope of MXF
the existing documents define how this can be done …
… whilst still retaining interoperability
• Help people to implement ...
MXF
Implementation
MXF
• The file format is complex
• Implementation is not!
• There are free software tools available
– Pro-MPEG site
– AAF SDK on SourceForge
• MXF awareness in under 1 man-week!
• Full MXF understanding (metadata integration etc.) takes longer
• Interoperability and validation tests
MXF
MXF is there and it works !
Let’s use it