This standard defines a byte-level data encoding protocol for representing data items and data groups. This
protocol defines a data structure which is independent of the application or transportation method used.
The standard defines a Key-Length-Value (KLV) triplet as a data interchange protocol for data items or data
groups where the Key identifies the data, the Length specifies the length of the data and the Value is the data
itself. The KLV protocol provides a common interchange point for all compliant applications irrespective of the
method of implementation or transport.The standard also provides methods for combining associated KLV triplets in data sets where the set of KLV
triplets is itself coded with KLV data coding protocol. Such sets can be coded in either full form (Universal
Sets) or in one of four increasingly bit-efficient forms (Global Sets, Local Sets, Variable Length Packs and
Defined Length Packs). The standard provides a definition of each of these data constructs.The standard also describes implications of KLV coding including the use of a SMPTE Universal Label as a
value within a KLV coding triplet or whose meaning is entirely conveyed by the SMPTE UL itself. The two
kinds of usage for such standalone SMPTE Universal Labels are a) as a value in a K L V construct and b) as
a Key that has no Length and no Value. This standard defines where SMPTE ULs may be used for each kind
of construct.The standard also defines the use of KLV coding to provide a means to carry information that is registered
with a non-SMPTE external agency.The encoding byte range (length of the payload) specified in this document may accommodate unusually
large volumes of data. Consequently, a specific application of KLV encoding may require only a limited
operating data range and those details shall be defined in a relevant application document.
Annex A provides a glossary of terms used in this standard.