Based on the collective experience of the IMF users including content producers, service providers, media distributors, and system manufacturers, a working group was established to assess the feasibility and examine the limitations of automating the delivery specification and IMF validation process. The result of this open and collaborative effort is the definition of this IMF Delivery Schema XML document that accurately describes CPL constraints for IMF deliveries. The Delivery Schema serves the following dual purpose:
This document is intended for the IMF user community to initiate implementation and experimentation. Formal standardized engineering document can be produced as the need arises.
This document defines an XML schema that instantiates as complete deliverable specifications for IMF applications. The syntax and samentic of the schema enable automation in:
SMPTE ST 2067-8 Interoperable Master Format - Common Audio Labels
SMPTE ST 2067-50 Interoperable Master Format - Application #5 ACES
SMPTE ST 2067-103 Interoperable Master Format - Output Profile List - Common Audio Definition and Macros
SMPTE RDD 45-2017 Interoperable Master Format - Apple ProRes
|Composition||Embodies a version of a complete work, combining metadata and essence|
|Essence||Content, e.g. image, audio or data essence, meant for presentation.|
|IMF||Acronym for Interoperable Master Format.|
|Resource||A portion of an Asset selected for reproduction on the Composition timeline.|
|Sequence||An ordered collection of Resources to be reproduced sequentially.|
|Segment||A collection of Sequences intended to be reproduced in parallel.|
|UUID||Acronym for Universal Unique Identifier.|
|XML||Acronym for extensible Markup Language.|
A Delivery Specification List instance shall be an XML document, as specified in [XML], that consists of a single DeliverySpecificationList element.
Each Delivery Specification List instance shall conform to the XML schema definitions (see [XML Schema]) found in this specification. In the event of a conflict between schema definitions and the prose, the prose shall take precedence.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dcml="http://www.smpte-ra.org/schemas/433/2008/dcmlTypes/"> <!-- schema definitions found in this document excluding this one --> </xs:schema>
The namespace prefixes used in XML Schema definitions herein are not normative values and implementations shall perform correctly with any XML compliant prefix values. The XML Schema definitions found in this specification include elements specified in [XML Digital Signature] and [SMPTE ST 433].
A schema instance that consolidates all inline schema definitions made in this document is provided for convenience in Annex B. In case of conflict, the schema definitions included herein shall take precedence.
Delivery Specification List instances shall be encoded using the UTF-8 character encoding.
The MIME type, as defined in IETF RFC 2046, of a Delivery Specification List instance shall be
The target namespace specified in Section 5.1, i.e. the value of the targetNamespace attribute of the schema element, shall only be used by Delivery Specification List instances that conform to this specification as expressed by the combination of its prose and schema definitions.
Instances using specifications that modify the schema definitions or the semantics of the elements defined herein, including future versions of this specification, shall use a different namespace and no two distinct schemas shall have the same target namespace. As such, the target namespace allows implementations to unambiguously identify the defining specification of a Delivery Specification List instance.
In order to avoid duplication between text and schema, the cardinality and default values of elements are specified in the schema only.
The schema can be found here
The Id element shall uniquely identify the Delivery Specification List instance. Any two Delivery Specification List instances may have identical Id values if and only if the two Delivery Specification List instances are identical.
The Annotation element shall be a free-form, human-readable annotation describing the composition. It is meant strictly as a display hint to the user.
The IssueDate element shall indicate the time and date at which the Delivery Specification List was issued.
The Issuer element shall be a free-form, human-readable annotation that identifies the entity that created the Delivery Specification List. It is meant strictly for display to the user.
Note: The Signer element defined in Section 6.1.17 is used to identify the entity that digitally signed the Delivery Specification List.
The Creator element shall be a free-form, human-readable annotation that identifies the device or software program used to create the Delivery Specification List, the facility that created the Delivery Specification List and the operator that created the Delivery Specification List. It is meant strictly for display to the user.
The DeliverableList element contains a list of Deliverable elements that fully describe individual specifications for delivery.
The Deliverable element describes the various constraints that a deliverable should be compliant with.
The CompositionPlaylistConstraints element contains a collection of various elements describing constraints that are applicable to the Composition.
The OwnerId element is used by the creator/publisher/owner of the delivery specification to carry a globally unique identifier that is assigned to the deliverable. The unicity of the identifier can be guaranteed by the owner using a variety of methods.
It is strongly recommended that the owner uses a DNS-based (Domain Name System) identifier such as:
The OwnerId is used by information systems to uniquely identify the Deliverable. The handling of identifier collisions is beyond the scope of this specification.
The ApplicationIdentificationList element contains a list of identifiers that a Composition conforms to.
The ApplicationIdentification element shall identify an Application to which a Composition conforms. The specification for this element is defined in the following table:
.XML Schema definition for ApplicationIdentification element
<xs:element name="ApplicationIdentification" type="xs:anyURI" minOccurs="1" maxOccurs="unbounded" />
The MatchType element defines the matching algorithm to be used to match values available in a list. The following values are allowed
|exclusive||one and only one value must be present|
|inclusive||one or more values may be present|
For example, when using the MatchType with the ApplicationIdentification items in the ApplicationIdentificationList element, the following behavior is expected:
MatchType is exclusive: among the values present in the list, only one of them can be present in the CPL. The CPL is expected to carry one and only one instance of ApplicationIdentification.
MatchType is inclusive: one or more of the values listed can be present in the CPL. The CPL is expected to carry one or more instances of ApplicationIdentification.
The ValueList element contains one or more elements of the same type, describing a list of possible values.
The VirtualTrackList element is a list of elements derived from the abstract GenericVirtualTrackType type. These elements represent the virtual tracks that must exist in the CompositionPlaylist. In the absence of further indication, the order of the elements in the list is meaningless.
The following concrete virtual tracks can be used:
|ImageVirtualTrack||defines a MainImageSequence virtual track in the CompositionPlaylist|
|AudioVirtualTrack||defines a MainAudioSequence virtual track in the CompositionPlaylist|
|MarkerVirtualTrack||defines a MarkerSequence virtual track in the CompositionPlaylist|
|TimedTextVirtualTrack||defines a timed-text virtual track in the CompositionPlaylist|
Note: the VirtualTrackList can be empty, which implies that the Deliverable is not specifying any constrains on the virtual tracks in the CompositionPlaylist.
Virtual tracks are defined per kind of essence. All virtual track definitions are derived from a GenericVirtualTrackType which specifies a set of common properties, described in the following sections. Specialized virtual tracks (e.g. ImageVirtualtrack, AudioVirtualTrack, etc) have additional elements required to specify additional constraints on the essence they reference.
The EssenceEncodingConstraintList element is an optional list of EssenceEncodingConstraint designed to carry custom constraints. Each EssenceEncodingConstraintList is to be considered in a specific context defined by the scope attribute. The scope attribute is a generic URI that is entirely controlled by the entity which specifies the list of constraints.
Each EssenceEncodingConstraint element is defined by a name and a list of properties. Each property of the list is a Name/Value pair, each being defined as a string. Their values and use depend entirely on the specification represented by the scope attribute of the EssenceEncodingConstraintList.
The TimelineComplexity element describes the cardinality and temporal constraints of its components.
The Sequence element describes the cardinality and temporal constraints of its components.
The Cardinality element defines in the minimum and maximum number of objects of a class. The cardinality range is defined by the MinItem and MaxItem elements.
The MinItem element defines the minimum number of objects of a class.
The MaxItem element defines the maximum number of objects of a class
The EssenceEncoding element defines the encoding method used for the image samples in the referenced essence. The value of this element is represented by a SMPTE-RA picture encoding symbol.
Currently the following encodings are supported:
|JPEG 2000, Broadcast Contribution & IMF Profiles (2K, 4K & 8K), lossy or lossless|
|Apple ProRes (RDD36, without alpha channel)|
|ACES EXR (RGB with & without alpha channel)|
The exact symbols that reflect the essence encoding are listed in the XML Schema.
The Colorimetry element defines the combination of Color Primaries, Transfer Characteristic and potentially Coding Equations to be used for describing the color information in a Trackfile.
The allowed values depend on the Application being targetted. The syntax of the values shall use the following pattern:
where x is an alpha-numercial expression defined in the Application specification documents. Currently the following values are supported:
|COLOR.1||see ST2067-20, Table 3|
|COLOR.2||see ST2067-20, Table 3|
|COLOR.3||see ST2067-20, Table 3|
|COLOR.4||see ST2067-21, Table 4|
|COLOR.5||see ST2067-21, Table 4|
|COLOR.6||see ST2067-21, Table 4|
|COLOR.7||see ST2067-21, Table 4|
|COLOR.APP5.AP0||see ST2067-50, Table 3|
|COLOR.8DPP||see TSP2121-1, Table 2|
The Sampling element defines the sampling of the color components in the image essence. The following table describes the allowed values:
The Quantization element defines the signal quantization system used to encode the normalized signal values into code values. The allowed values depend on the Application being targetted and they are listed in the table below:
|QE.1||see ST2067-20, Table 4|
|QE.2||see ST2067-20, Table 4|
The FrameStructure element definies the raster scanning method. Its value must be one of the following:
|Progressive||Used for material that uses progressive raster scanning|
|Interlaced||Used for material that uses interlaced raster scanning|
The Stereoscopy element defines the monoscopic or stereoscopic nature of the essence referenced by the ImageVirtualTrack. The currently supported values are defined in the table below:
|Monoscopic||The image track essence contains a single point-of-view, targeting both the left and right eyes.|
|Stereoscopic||The image track essence contains two points-of-view, targeting the left and right eyes respectively.|
The ColorComponents element defines the interpretation of the color channels used for the image essence. The order that the color components have in the essence is defined by the Application specification documents. The following table describes the allowed values:
The PixelBitDepthList contains one or more PixelBitDepth elements that define the possible values for the pixel bitdepths
The PixelBitDepth defines the pixel bitdepth value for the deliverable. The table below lists the possible values for this element.
Note: Not all Applications support all possible pixel bitdepths for all codecs. Please consult the specification of the target Application for the list of supported values.
The ImageFrameWidthList contains one or more ImageFrameWidth elements that define the possible values for the image width. The ImageFrameWidthList element is optional.
If absent, then the Deliverable sets no constraints on the horizonal resolution of the essence referenced by the ImageVirtualTrack. In this case, the constraints defined by the Application identified by the ApplicationIdentification elements are applicable.
If present, the Deliverable limits the horizontal resolution of the essence referenced by the ImageVirtualTrack to the values defined by the ImageFrameWidth elements.
The ImageFrameWidth defines the intended display width, or horizontal resolution, in pixels. Please note that values that do not fall in the ranges defined by the Application identified by the ApplicationIdentification elements are not valid.
The ImageFrameHeightList contains one or more ImageFrameHeight elements that define the possible values for the image height. The ImageFrameHeightList element is optional.
If absent, then the Deliverable sets no constraints on the vertical resolution of the essence referenced by the ImageVirtualTrack. In this case, the constraints defined by the Application identified by the ApplicationIdentification elements are applicable.
If present, the Deliverable limits the vertical resolution of the essence referenced by the ImageVirtualTrack to the values defined by the ImageFrameHeight elements.
The ImageFrameHeight defines the intended display height, or vertical resolution, in pixels. Please note that values that do not fall in the ranges defined by the Application identified by the ApplicationIdentification elements are not valid.
The FrameRateList contains one or more FrameRate elements that define the possible values for the video frame rate.
The FrameRate defines the intended video frame rate.
The SoundfieldGroupConfiguration element defines the soundfield configuration for the audio channels in the group. The configuration is signaled via the MCATagSymbol child element.
The AudioChannelMapping element is a list of ordered AudioChannel elements that explicit the audio channel layout in the soundfield group defined by the SoundfieldGroupConfiguration.
The AudioChannel element defines the constraints on a single audio channel that participates in the soundfield group defined by the SoundfieldGroupConfiguration element.
The routing destination is signaled via the MCATagSymbol child element.
The MCATagSymbol element is a human readable mnemonic that uniquely identifies the audio channel or soundfield group. The values of the MCATagSymbol element are restricted to the list of values defined in SMPTE ST2067-8 and ST428-12. The symbols use prefixes specified in SMPTE ST2067-2.
An additional constraint is applied to the list of possible values, based on the parent element (i.e. SoundfieldGroupConfiguration or AudioChannel).
The SampleRateList contains one or more SampleRate elements that define the possible values for the audio sample rate.
The SampleRate defines the intended audio sample rate. Currently only the following values are supported by the ST2067 family of standards:
|48000 1||represents an audio sampling rate of 48kHz|
|96000 1||represents an audio sampling rate of 96kHz|
The EssenceEncoding element defines the encoding method used for the audio samples in the referenced essence. The value of this element is represented by a SMPTE-RA sound encoding symbol.
Currently, the ST2067 family of standards only support uncompressed PCM samples. The label defining such an encoding method is:
The RFC5646SpokenLanguage element is used to specify the language or a language and a region required by the virtual track. The valid values and combinations are specified in RFC 5646.
Note: the RFC5646SpokenLanguage is optional
The TimedTextSequenceType element defines the kind of timed text referenced by the virtual track. The following table contains the currently accepted values:
The RFC5646LanguageTagListConstraints element is used to describe the constraints on the language or language and region on timed text virtual tracks. Language signaling is optional in timed text track files, however in practice it might be dsirable to enforce the presence of the language information or even enfore a specific language for a certain virtual track. Currently these contraints are implemented as a choice between two options, using the following child elements:
|RFC5646LanguageTagList||A specific language or a language/region tag|
|RFC5646LanguageTagListPresent||A simple “presence required” boolean flag|
Note: the RFC5646LanguageTagListConstraints element is optional
The Signer element shall uniquely identify the entity that digitally signed the Delivery Specification List. If the Signer element is present, then the Signature element shall also be present.
If X.509 certificates are used as specified in XML Digital Signature, then the Signer element shall contain one X509Data element containing one X509IssuerSerial element, which uniquely identifies the certificate used to sign the Delivery Specification List.
The Signature element shall contain a digital signature authenticating the Delivery Specification List. If the Signature element is present, then the Signer element shall be present. The digital signature shall be enveloped, as specified in XML Digital Signature, and apply to the entire Delivery Specification List. The signature is generated by the signer, as identified by the Signer element.
This specification is accompanied by the following element, which is an XML schema document as specified in XML Schema Part 1: Structures.
The schema can be found here
This element collects the XML schema definitions defined in this specification. It is informative and, in case of conflict, this specification takes precedence.
This specification is accompanied by the following element, which is an XML document that contains a sample instance of the DeliverySpecificationList element.
This element is for illustration only, and is neither intended to capture current or future practice, nor exercise all normative language contained in this specification.