KLV
KLV (Tecla-longitud-valor) es una codificación estándar, a menudo utilizado para incrustar información en video feeds de datos. Los artículos están codificados en los tríos de longitud-par clave-valor, donde clave identifica los datos, longitud especifica la longitud de los datos, y valor son los datos sí mismo. Se define en SMPTE 336M-2007 (datos codificación protocolo mediante clave-valor de longitud), aprobado por el Society of Motion Picture and Television Engineers. Debido al alto grado de KLV de interoperabilidad, también ha sido adoptado por la Movimiento imágenes Standards Board.
Contenido
- 1 Embalaje de byte
- 1.1 Campo clave
- 1.2 Campo de la longitud
- 1.3 Campo valor
- 1.4 Ejemplo
- 2 Véase también
- 3 Enlaces externos
Embalaje de byte
En una secuencia binaria de datos, un conjunto KLV se desglosa de la siguiente manera, con todo entero-interpretación siendo Big Endian:
Campo clave
Los primeros pocos bytes son la clave, tanto como una llave en una estructura de datos de tabla hash estándar. Las llaves pueden ser 1, 2, 4 o 16 bytes de longitud. Presumiblemente en un documento separado especificación aceptas en una longitud de clave para una aplicación determinada. Llaves de 16 bytes son generalmente reservadas para el uso como identificadores únicos registrados en todo el mundo, y la porción del valor de tal un paquete generalmente contiene una serie de conjuntos KLV más con las teclas más pequeñas.
Campo de la longitud
Siguiendo los bytes de la clave es bytes para el campo de la longitud que le dirá cuántos bytes sigan el campo longitud y conforman la porción del valor. Existen cuatro tipos de codificación para el campo longitud: 1 byte, 2 bytes, 4 bytes y Reglas de codificación básicas (BER). El 1 - 2- y 4 bytes variantes son bastante sencillas: hacer un entero sin signo de los bytes, y ese número entero es el número de bytes que siguen.
BER codificación de longitud es un poco más complicado pero el más flexible. Si el primer byte en el campo longitud no tiene el bit alto establecido (0 x 80), entonces ese único byte representa un número entero entre 0 y 127 e indica el número de bytes de valor que sigue inmediatamente. Si está establecido el bit alto, entonces los siete bits inferiores indicar cuántos bytes sigan que ellos mismos componen un campo de la longitud.
Por ejemplo, si el primer byte de un campo de longitud BER es 10000010 binario, lo que indicaría que los siguientes dos bytes conforman un entero que indica cuántos bytes valor sigan. Por lo tanto, un total de tres bytes se toman para especificar una longitud.
Campo valor
Los bytes restantes son el campo de valor, y su contenido puede ser lo que quiera, incluyendo una cadena de más conjuntos KLV, como suele ser el caso.
Ejemplo
En el ejemplo siguiente, los cuatro bytes representan un KLV conjunto donde la clave es un byte, el campo longitud es un byte (o posiblemente BER - no puedes decir del ejemplo), y el valor es de dos bytes: un cero y un tres. En su solicitud usted habría accedido previamente a una) Utilice las teclas de un byte y b) codificación de longitud de un byte. Presumiblemente también el valor de la clave "42" significa algo para ti, tal vez indica que los bytes del valor 0 x 00 y 0 x 03 están un entero que representa el valor del odómetro de su bicicleta.
Clave | Longitud | Valor | |
---|---|---|---|
42 | 2 | 0 | 3 |
Véase también
Tipo-longitud-valor, el tipo de codificación de datos del cual KLV es una instancia
Enlaces externos
- KLVLib - una biblioteca de C de KLV file I/O
- Compra el KLV estándar (SMPTE 336M-2007)
- Versión de la UIT de la especificación KLV (BT.1563 Recomendación UIT-R) (gratis)
- Una biblioteca KLV Java en el dominio público
- Una aplicación comercial del Codec
- Una implementación comercial de la librería de codificador/decodificador KLV (C++)