ISO 26429-9: Asset Mapping and File Segmentation for Digital Cinema

Technical deep dive into D-Cinema Asset Map and Volume Index mapping UUIDs to file paths, chunk-based segmentation, multi-volume support, and Map Profiles

1. Asset Map Architecture and DCP Volume Model

ISO 26429-9 (SMPTE 429-9) specifies the Asset Map and Volume Index structures for mapping D-Cinema Package (DCP) assets onto file storage volumes. The Asset Map provides the critical link between the abstract asset identifiers (UUIDs) used in the Packing List (ISO 26429-8) and the actual file paths on storage media. Each DCP storage volume contains exactly one Asset Map document (typically named ASSETMAP.xml), which may reference assets across multiple volumes. A single Asset Map contains the complete mapping for all volumes and is repeated identically on each volume in a multi-volume set. This repetition ensures that any single volume provides complete asset location information, enabling reliable ingest even when not all volumes are available simultaneously. For discovery purposes, every DCP volume root directory MUST contain an ASSETMAP.xml file, making it the standard entry point for TMS ingest operations. The ASSETMAP.xml file is always located at the root of the volume and is the first file a TMS reads when discovering a new DCP, providing immediate access to the complete asset location mapping for the entire multi-volume set regardless of which physical volume is inserted first or whether the volumes are accessed over a network share.

The layering of Packing List -> Asset Map -> Filesystem is an elegant design pattern. The Packing List knows what assets are needed, the Asset Map knows where they are located, and the filesystem knows how to store them. Changing the storage medium (e.g., from hard drive to SSD to network storage) only requires a new Map Profile, leaving the PKL and CPL unchanged. This separation of concerns is a textbook example of the strategy design pattern applied to digital cinema distribution.

2. Asset Structure and Chunk-Based Segmentation

Each Asset in the Asset Map contains an Id (UUID matching the PKL asset Id), optional AnnotationText, a PackingList boolean flag (marking PKL assets for easy discovery), and a ChunkList. The ChunkList contains one or more Chunk elements, each specifying a Path (URL), optional VolumeIndex, Offset, and Length. Assets can be segmented across multiple volumes by defining multiple chunks. This segmentation (chunking) allows assets larger than a single volume’s capacity to span across volumes. The asset is reconstructed by concatenating chunk files in order. The Offset and Length fields within each Chunk enable partial asset retrieval, which can be useful for progressive ingest or for systems that need to access specific segments of large assets without reading the entire file. In practice, for the Basic Map Profile, each asset uses exactly one chunk covering the entire file, keeping the implementation simple and broadly compatible across different filesystem types and operating systems.

Chunk Field Type Description
Path xs:anyURI Complete URL path to the chunk file (scheme defined by Map Profile)
VolumeIndex xs:positiveInteger Index of the volume containing the chunk (defaults to 1)
Offset xs:nonNegativeInteger Byte offset from start of asset (defaults to 0)
Length xs:positiveInteger Byte length of this chunk (defaults to remaining asset size)
The Basic Map Profile (Annex A) constrains the URL scheme to “file”, limits paths to ASCII alphanumeric characters plus dash, underscore, and period, and caps path length at 1024 characters with a maximum of 10 segments. Crucially, it disallows segmentation (chunking) under this profile each asset must fit within a single file. This constraint simplifies implementation but means that the profile may need modification for very large assets or legacy filesystems with 4 GB file size limits.

3. Volume Index and DCP Map Profile

The Volume Index structure (VOLINDEX.xml) contains a single Index element indicating the volume’s sequence number in a multi-volume set. For single-volume DCPs, the Volume Index is optional but recommended. A DCP Map Profile defines all medium-specific constraints including volume definition, URL scheme, URL path restrictions, XML encoding (typically UTF-8), Asset Map and Volume Index fixed locations, and maximum chunk size. The Map Profile pattern allows the same DCP to be mapped onto diverse storage systems from hard drives and USB flash drives to network-attached storage and digital cinema servers. Each Map Profile is identified by a unique SMPTE Universal Label (UL), allowing compliant systems to automatically select the appropriate profile for a given storage medium. The Map Profile mechanism is the key enabler for DCP portability across different exhibition environments and storage technologies ranging from simple USB drives to complex SAN infrastructures.

The ingest algorithm follows a straightforward pseudo-code pattern: open Asset Map -> for each Packing List in Asset Map -> for each Asset in Packing List -> locate Asset in Asset Map -> for each chunk in Asset -> read, concatenate, verify SHA-1 hash. This deterministic process ensures reliable DCP ingest across all compliant systems regardless of the storage medium. The verification step using SHA-1 hashes from the PKL provides end-to-end integrity assurance, confirming that every byte of every asset has been correctly transferred and stored.

4. Frequently Asked Questions

Q: Can the Asset Map reference assets that are not listed in any Packing List?
A: Yes, technically possible, but such assets would not be ingested through the normal process since the ingest algorithm iterates over Packing List assets. The Asset Map provides mappings for Packing List assets but could theoretically contain additional entries.
Q: How are multi-volume DCPs handled?
A: Each volume contains an identical copy of the Asset Map. The VolumeIndex distinguishes volumes. Chunks reference their containing volume via VolumeIndex. When ingesting, the system reads the Asset Map from the first volume and uses VolumeIndex values to locate chunks across all volumes.
Q: What is the difference between the Asset Map and the Packing List?
A: The Packing List defines what assets constitute a DCP (logical inventory). The Asset Map defines where those assets are physically located (file path mapping). A Packing List may span multiple Asset Maps, but an Asset Map must contain the complete mapping for all referenced DCPs.
Q: Are there size limits for assets under the Basic Map Profile?
A: Under the Basic Map Profile, the maximum file size is limited only by the filesystem. Assets are not segmented (each asset = one chunk), so individual files must not exceed the filesystem’s maximum file size. For FAT32 volumes, this would be 4 GB; for NTFS or ext4, the limits are much higher.

Leave a Reply

Your email address will not be published. Required fields are marked *