KLV : Key-Length-Value

Chaque brique d'un MXF est surnommée KLV et peut être représenté comme cela :

MXF KLV Simple

Un KLV est une structure de données en trois parties

KLV est la contraction de "Key, Length, Value" : c'est une structure de données définie dans la norme :

Cette structure est relativement simple, elle est divisée en 3 parties : elle commence par une clef, puis la taille des données et se termine par les fameuses données :

Par exemple, un KLV s'exprima sous cette forme schématisée :

Key Length Value
MaClef 32 Lorem ipsum dolor sit amet odio.

Ainsi :

Cet exemple est extrêmement simplifié pour la compréhension. Nous reviendrons sous sa véritable forme SMPTE / DCI par la suite.

Visuellement, voici à quoi ressemble l'intérieur d'un MXF avec plusieurs KLV :

MXF KLV Lego

Comme vous pouvez le constater, nous avons toujours une succession de :

Clé, Taille, Données.
Clé, Taille, Données. 
Clé, Taille, Données. 
...etc...

Chaque KLV a une taille variable suivant plusieurs critères dont notamment la taille de ses données.

Pour décrire rapidement chaque partie d'un KLV d'un MXF spécifique au DCP :

Voici une vision brute du début d'un MXF au format hexadécimal, les Key sont en orange, les Length en bleu et les Values (données) en rouge :

On vient de voir rapidement ce que sont les KLV : Une clef, une taille, des données. Rien de plus. Si vous avez compris ce principe, vous avez déjà compris la moitié du fonctionnement d'un MXF :-)

Nous reviendrons plus en profondeur sur chaque partie.

Mais avant, une rapide explication des termes "Universal Set" et "Universal Label" utilisés dans les documentations SMPTE car nous utiliserons ces termes assez régulièrement.

Universal Set & Universal Label : Kézako ?

Dans le SMPTE Cinematique Universe, on aime les petits noms :

Schématisé, cela donne ceci :

MXF Universal Set & Universal Label

Mais pourquoi ces noms ?

Parce qu'il existe aussi des équivalents d'Universal Set et Universal Label mais pour d'autres KLV qui se trouveront dans la partie Value, des sortes de KLV enfants. Ces KLV enfants sont nommés Local Set et leur clef Local Tag .

Si nous devions résumer les différences entre les deux :

KLV KLV enfant
Nom du KLV Universal Set Local Set
Nom de sa clef Universal Label Local Tag

Ne me demandez pas pourquoi "Local Tag" n'a pas été nommé "Local Label", probablement l'alcool des créateurs.

Mais nous reviendrons sur ce concept de "KLV enfant" plus tard dans la partie Value.

Voyons maintenant plus en détail la partie Key d'un KLV

Notes



  1. Sauf pour les exceptions, voir chapitre MXF-KLV-Length 

  2. Sauf pour les exceptions, voir chapitre MXF-KLV-Length