Skip to content

KLV

KLV (Key-Length-Value)는 비디오 피드에 정보를 삽입하는 데 자주 사용되는 데이터 인코딩 표준입니다. 표준은 유형-길이-값 인코딩 체계를 사용합니다. 항목은 Key-Length-Value 삼중항으로 인코딩되며 여기서 키는 데이터를 식별하고 길이는 데이터의 길이를 지정하며 값은 데이터 자체입니다. Society of Motion Picture and Television Engineers 에서 승인한 SMPTE 336M-2007(키 길이 값을 사용하는 데이터 인코딩 프로토콜)에 정의되어 있습니다. KLV의 높은 수준의 상호 운용성으로 인해 Motion Imagery Standards Board 에서도 채택되었습니다 .

바이트 패킹

이진 데이터 스트림에서 KLV 세트는 다음과 같은 방식으로 분류되며 모든 정수 해석은 빅 엔디안 입니다 .

키 필드

처음 몇 바이트는 표준 해시 테이블 데이터 구조의 키와 매우 유사한 키입니다. 키 길이는 1, 2, 4 또는 16바이트일 수 있습니다. 아마도 별도의 사양 문서에서 주어진 애플리케이션의 키 길이에 동의할 것입니다. 16바이트 키는 일반적으로 전역적으로 등록된 고유 식별자로 사용하기 위해 예약되며 이러한 패킷의 값 부분에는 일반적으로 더 작은 키를 가진 일련의 더 많은 KLV 세트가 포함됩니다.

길이 필드

키에 대한 바이트 다음에 오는 길이 필드에 대한 바이트는 얼마나 많은 바이트가 길이 필드를 따르고 값 부분을 구성하는지 알려줍니다. 길이 필드에 대한 인코딩에는 1바이트, 2바이트, 4바이트 및 기본 인코딩 규칙 (Basic Encoding Rules) (BER) 의 네 가지 종류가 있습니다 . 1, 2, 4바이트 변형은 매우 간단합니다. 바이트에서 부호 없는 정수를 만들고 그 정수가 뒤따르는 바이트 수입니다.

BER 길이 인코딩은 좀 더 복잡하지만 가장 유연합니다. 길이 필드의 첫 번째 바이트에 상위 비트 세트(0x80)가 없으면 해당 단일 바이트는 0에서 127 사이의 정수를 나타내며 바로 뒤에 오는 값 바이트 수를 나타냅니다. 상위 비트가 설정되면 하위 7비트는 길이 필드를 구성하는 바이트 수를 나타냅니다.

예를 들어 BER 길이 필드의 첫 번째 바이트가 이진수 10000010인 경우 다음 두 바이트가 정수를 구성하고 이후에 얼마나 많은 Value 바이트가 뒤따르는지를 나타냅니다. 따라서 길이를 지정하기 위해 총 3바이트가 사용되었습니다.

값 필드

나머지 바이트는 값 필드이며, 그 내용은 종종 그렇듯이 더 많은 KLV 세트 체인을 포함하여 원하는 대로 될 수 있습니다.

Example

다음 예에서 4바이트는 키가 1바이트이고 길이 필드가 1바이트(또는 BER - 예에서 알 수 없음)인 KLV 세트를 나타내며 값은 2바이트(0과 3)입니다. . 응용 프로그램에서 이전에 a) 1바이트 키 사용 및 b) 1바이트 길이 인코딩 사용에 동의했을 것입니다. 또한 아마도 키 값 "42"는 당신에게 의미가 있을 것입니다. 아마도 그것은 값 바이트 0x00 및 0x03이 자전거의 주행 거리계 값을 나타내는 정수임을 나타냅니다.

Key

Length

Value

42

2

0

3

See also

Favorite site