SMPTE EG41
Page 13 of 74 pages
An Essence Container specification defines a unique SMPTE Label for identification as well as a method for
encapsulating the essence in a KLV structure. Different Essence Containers may place restrictions on the
interleaving of the essence data to be compatible with existing applications. The SMPTE Label allows decoders
to make a fast go/no-go check of the essence type at the very beginning of the file.
An MXF file may have more than one Essence Container. The precise number of Essence Containers and their
relationships is constrained by the Operational Pattern with which the file complies.
A “Generic Container” is defined within MXF. This is intended to carry all the mainstream Essence types in
existence at the time of creating SMPTE 377M. It is very simple in operation, yet flexible enough to carry
uncompressed material as well as re-ordered MPEG compressed material. Associated with the Generic
Container are a number of mapping documents that define how the actual Essence byte stream should be
placed in the Essence Container.
3.5.9 How have we specified the Essence Container?
There are several specific questions that need to be asked when putting an Essence Container into an MXF file.
These are notably:
1. What limitations are placed on the Essence Container when it is in an MXF file?
2. Are there interleaved variants of the Essence Container?
3. How do we KLV code the contents of the Essence Container?
4. How do we pad the Essence Containers to fit the chosen KAG size?
5. What do we do with the metadata embedded within the Essence Container?
6. How do we use Index Tables with the Essence Container?
The Essence Container and mapping specifications are basically recommended answers to these questions. It
is the intention of the Essence Container and mapping documents to restrict the choices of an Essence
Container implementation sufficiently to allow interoperability between devices, yet with enough flexibility to
solve real world problems.
3.6 How does MXF interoperate with Stream Interfaces?
MXF files may be directly created from standardized formats such as MPEG2 system and elementary streams,
AES3 data streams and DV DIF packet streams. These formats may be mapped from one of several real-time
interfaces such as SMPTE 259M (SDI), SMPTE 305M (SDTI), SMPTE 292M (HD-SDI), or transport interfaces
with real-time protocols such as IEEE-1394, ATM, IEEE802 (ethernet), ANSI Fibre Channel and so on.
When a streaming file is captured, a File Header is created and the essence is KLV wrapped on the fly. The
data rate increases due to the KLV wrapping and addition of headers. Real Time streaming devices must ensure
that any buffering requirements of a streaming interface are catered for with this change of data rate.
Conversion to and from the source format is always possible, but sometimes there will be loss of information.
Not all streaming and storage formats are able to store the rich metadata constructs available in an MXF file.
Often there will be a lossy data mapping where information in one format cannot be represented in the other.
Eliminating this undesired loss is a function of the systems engineering that interconnects MXF and non-MXF
systems. In many formats such as the MPEG2 Transport Stream, research is being done to find ways in which
MXF headers can be “tunneled” through the Transport Stream so that its use in an MXF system provides
transparency as well as interoperability.
3.7 How does MXF interoperate with other files?
As previously stated, MXF files apply a subset of the AAF class model. The Material Exchange Format provides
a data structure together with a set of constraints and plug-ins to create files that can be directly written and read
by AAF systems. MXF is also able to inter-operate with other existing file formats by utilizing techniques such as
external essence and using the run-in to “camouflage” the appearance of the file (see the end of 3.2.1 above).
Different metadata models can be plugged into the MXF file Format to provide extensions and the KLV structure
itself can be converted to formats such as XML for exporting MXF data to other systems.