Key-Length-Value-Protokoll
# Key-Length-Value-Protokoll

Das Key-Length-Value-Protokoll (KLV) (wörtlich Schlüssel-Länge-Inhalt-Protokoll), definiert in Dokument SMPTE 336M, bezeichnet ein binäres Verfahren, um Daten in serielle Bitströme zu kodieren.

Jedem Datenattribut wird dabei in einer Zuordnungstabelle ein bis zu 16 Byte langer Schlüssel zugeordnet. Mit Hilfe des Schlüssels wird der Datenwert des Attributs in einen seriellen Bitstrom kodiert. Der Bitstrom besteht aus dem Schlüssel (Key), der Länge des Inhalts des zu kodierenden Attributs (Length) und schließlich dem Inhalt des Attributs (Value). Um einen so erzeugten binären Datenstrom wieder zu dekodieren, ist lediglich ein Wörterbuch erforderlich, das die relevanten Schlüssel und die zugehörigen Datentypen der Werte enthält. Als Datentypen kommen z. B. Unicode-Zeichenketten oder IEEE-Gleitkommazahlen zum Einsatz. Findet der Dekodierer für einen Schlüssel eines KLV-Paketes keinen Eintrag im Wörterbuch, so kann das entsprechende Paket unter Zuhilfenahme des Wertes im Längenfeld übersprungen und der Dekodiervorgang mit dem nächsten KLV-Paket fortgesetzt werden.

Das KLV-Protokoll wird unter anderem zur Kodierung von MXF-Dateien verwendet.

