Références |
SMPTE EG-377-3-2013 - MXF Engineering Guideline
Chapitre 4.6.1 - Index Tables P14 SMPTE 377-1 - MXF - File Format Specification Chapitre 11.2.1 - Index Table Segments P100 SMPTE 429-3-2007 - DCP - Sound And Pictures Track File Chapitre 4.3.6 - Index Tables P5 |
Modèle KLV | Local Sets |
Universal Label |
06.0e.2b.34.02.53.01.01.0d.01.02.01.01.10.01.00 - 2-bytes LocalTags, 2-bytes Length
06.0e.2b.34.02.13.01.01.0d.01.02.01.01.10.01.00 - 2-bytes LocalTags, BER-format Length
|
Notes | Optionnel |
Le KLV Index Table Segment sert à fournir des informations en cas de déplacement (seek) un peu aléatoire dans le fichier.
Par exemple "je veux aller à 10s de la vidéo", la table va donner l'offset dans le fichier (position relative, jamais absolue).
Un Index Tables peut être présent dans chaque partition (donc dans le Header, Body, Footer, ou même dans d'autres partitions en plus). Mais dans notre cas, vous ne verrez qu'un seul Index Table et il sera présent uniquement dans la partition Footer.
A noter que sa taille est limitée à moins de 65535 octets (64Ko). Si c'est le cas, il sera segmenté en plusieurs Index Table Segment.
╓─────────────────────────────────────────────────────────────────────────────
║ 3C0A - Instance UID ║ 979ed7a0.8c91483a.974ec4ec.7d6817b2
║ 3F0B - Index Edit Rate ║ 24/1
║ 3F0C - Index Start Position ║ 0
║ 3F0D - Index Duration ║ 24
║ 3F05 - Edit Unit Byte Count ║ 0
║ 3F06 - IndexSID ║ 129
║ 3F07 - BodySID ║ 1
║ 3F08 - Slice Count ║ 0
║ 3F0E - PosTableCount ║ 0
║ 3F09 - Delta Entry Array ║ 1 entries (6 bytes each)
║ 3F0A - Index Entry Array ║ 24 entries (11 bytes each)
╙─────────────────────────────────────────────────────────────────────────────
Les différentes positions se trouveront dans Index Entry Array. Sa structure est de la sorte :
Nom | Taille | Requis |
---|---|---|
Nombre d'entrée | Uint32 (4 octets) | Oui |
La taille d'une entrée | Uint32 (4 octets) | Oui |
Int8 (1 octet) | Oui | |
Int8 (1 octet) | Oui | |
EditUnitFlag (1 octet) | Oui | |
Stream Offset | Uint64 (8 octets) | Oui |
4 octets * SliceCount | Optionnel | |
8 octets * PosTableCount | Optionnel |
Pour Delta Entry Array :
Nom | Taille | Requis |
---|---|---|
Nombre d'entrée | Uint32 (4 octets) | Oui |
La taille d'une entrée | Uint32 (4 octets) | Oui |
PosTableIndex | Int8 (1 octet) | Requis |
Slice | Uint8 (1 octet) | Requis |
Element Delta | Uint32 (4 octets) | Requis |
Ne vous prenez pas trop la tête avec Temporal Offset, Key-Frame Offset et EditUnitFlags, ils ne sont utiles que pour des encodages comme le MPEG qui nécessite de connaître les références des keyframes. Dans notre cas, avec le JPEG2000, chacune de nos images sont des références. Toutes les entrées dans Index Entry Array commenceront donc par trois zéros.
UL = 06.0E.2B.34.02.53.01.vv.0D.01.02.01.01.10.01.00
^^------------------------------ Item Designator : Organizationally registered
^^--------------------------- Organization : AAF Association
^^------------------------ Application : MXF File Structure
^^--------------------- Structure Version : Version 1
^^------------------ Structure Kind : File Structure sets and packs
^^--------------- Set/Pack Kind : Index Table Segment
^^------------ Version : Index Table Specification version