KLV encoder / decoder library for STANAG 4609



Similar documents
UAS Datalink Local Metadata Set

ENGINEERING COMMITTEE Digital Video Subcommittee SCTE METHODS FOR CARRIAGE OF CEA-608 CLOSED CAPTIONS AND NON-REAL TIME SAMPLED VIDEO

ADVANTAGES OF AV OVER IP. EMCORE Corporation

Application Note. Introduction AN2471/D 3/2003. PC Master Software Communication Protocol Specification

Japannext PTS ITCH Market Data Specification. Version 1.4 Updated 3 October 2014

Video-Conferencing System

A White Paper about. MiniSEED for LISS and data compression using Steim1 and Steim2

Voice over IP. Demonstration 1: VoIP Protocols. Network Environment

NATO UNCLASSIFIED STANAG 4609 (Edition 3)

Research & Development. White Paper WHP 241. A Guide to Understanding BBC Archive MXF Files BRITISH BROADCASTING CORPORATION.

Voice over IP: RTP/RTCP The transport layer

Caml Virtual Machine File & data formats Document version: 1.4

Managing video content in DAM How digital asset management software can improve your brands use of video assets

Sample EHG CL and EHG SL10 16-bit Modbus RTU Packet

Advanced Networking Voice over IP: RTP/RTCP The transport layer

RTP / RTCP. Announcements. Today s Lecture. RTP Info RTP (RFC 3550) I. Final Exam study guide online. Signup for project demos

Affdex SDK for Windows!

Digital Audio and Video Data

This section describes how LabVIEW stores data in memory for controls, indicators, wires, and other objects.

How To Test Video Quality With Real Time Monitor

GStreamer for Engineering Video. Night Vision. Joshua M. Doe, Stephen D. Burks

Multilink Processors (Link 11/16/22) and Integration Architectures

Broadband Networks. Prof. Dr. Abhay Karandikar. Electrical Engineering Department. Indian Institute of Technology, Bombay. Lecture - 29.

Logging. Working with the POCO logging framework.

TECHNICAL WHITE PAPER. Closed Caption Analysis Using the CMA 1820

Arduino Internet Connectivity: Maintenance Manual Julian Ryan Draft No. 7 April 24, 2015

How to Send Video Images Through Internet

Supporting ZDOs with the XBee API

An architecture for the delivery. of DVB services over IP networks Rennes, January 2007 INTRODUCTION DIGITAL VIDEO TRANSPORT

Process Control and Automation using Modbus Protocol

OpenChange overview and current server implementation

Classes of multimedia Applications

UniFinger Engine SDK Manual (sample) Version 3.0.0

8 Tutorial: Using ASN.1

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

Binary storage of graphs and related data

EnOcean Radio Protocol 2. September 26, 2013 SPECIFICATION V1.0. Subject to modifications EnOcean Radio Protocol 2 V1.0 Page 1/19

Basic File Recording

IPTV Primer. August Media Content Team IRT Workgroup

US Equities/Options Multicast PITCH Specification. Version

Exam 1 Review Questions

AAF. Improving the workflows. Abbreviations. Advanced Authoring Format. Brad Gilmer AAF Association

NatNet API. User s Guide. Version April Technical support help.naturalpoint.com

C++ Language Tutorial

Android Multi-Hop Video Streaming using. wireless networks.

Mobile IP Network Layer Lesson 01 OSI (open systems interconnection) Seven Layer Model and Internet Protocol Layers

CC3100 Over-The-Air (OTA) Update. Application Note

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

TCP/IP Network Communication in Physical Access Control

CSE 237A Final Project Final Report

Xbox 360 File Specifications Reference

ISO/IEC INTERNATIONAL STANDARD

BLUETOOTH SERIAL PORT PROFILE. iwrap APPLICATION NOTE

Fast Arithmetic Coding (FastAC) Implementations

Answers to Review Questions Chapter 7

Additional Setup Instructions for Modbus: RTU, ASCII, TCP, Omni & Enron

StreamNet StreamNet-eNabled devices/ view multimedia receiver (vmr) control and installation Guide

Outside In Image Export Technology SDK Quick Start Guide

Technical Data Sheet: imc SEARCH 3.1. Topology

INFORMATION TECHNOLOGY - GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO: SYSTEMS Recommendation H.222.0

Technical Support Bulletin Nr.18 Modbus Tips

Clearing the Way for VoIP

ELEG3924 Microprocessor Ch.7 Programming In C

Sample Project List. Software Reverse Engineering

Modicon Modbus Protocol Reference Guide. PI MBUS 300 Rev. J

For Articulation Purpose Only

Modbus Protocol. PDF format version of the MODBUS Protocol. The original was found at:

Implementing Closed Captioning for DTV

Introduction to Wireshark Network Analysis

EE122 Project 2B: P2P tiny World of Warcraft. Instructor: Prof. Ion Stoica

Alarms of Stream MultiScreen monitoring system

Quectel Cellular Engine

Easy H.264 video streaming with Freescale's i.mx27 and Linux

Project Code: SPBX. Project Advisor : Aftab Alam. Project Team: Umair Ashraf (Team Lead) Imran Bashir Khadija Akram

MISB EG Engineering Guideline. 14 May H.264 / AVC Coding and Multiplexing. 1 Scope. 2 References

FREQUENTLY ASKED QUESTIONS FOR THE WI-FI SOFTWARE DEVELOPER'S KIT (SDK)

EWF specification. Expert Witness Compression Format specification. By Joachim Metz

RS-485 Protocol Manual

µtasker Document FTP Client

A Primer on Codecs for Moving Image and Sound Archives

Parallelization of video compressing with FFmpeg and OpenMP in supercomputing environment

The Meaning. Linkfiles In Forensic Examinations

point to point and point to multi point calls over IP

Design and implementation of IPv6 multicast based High-quality Videoconference Tool (HVCT) *

SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services Transmission multiplexing and synchronization

MPEG-2 Transport vs. Program Stream

BATS Options Exchanges Binary Order Entry Specification

ASX 24 ITCH Message Specification

Modbus and ION Technology

Cisco Stadiumvision Mobile Software Development Kit

Part Number Description Packages available

FTP Client Engine Library for Visual dbase. Programmer's Manual

Safeguard Ecommerce Integration / API

Chapter 4: Computer Codes

Internet Banking Two-Factor Authentication using Smartphones

Simple Voice over IP (VoIP) Implementation

How to represent characters?

Transcription:

KLV (Key-Length-Value) is a data encoding standard used for binary data byte-packing and metadata embedding into video feeds. KLV encoder/decoder C++ library (available for both Windows and Linux) allows seamless integration at the encoding/streaming side, while KLV decoder module (available also as Direct Show KLV decoder filter or C# module ) may be used at the client side for data extraction. When used with optional MISB 0601 converter module, KLV decoder translates received data according to the EG0601 standard and provides a list of parsed and converted KLV items with corresponding timing information. KLV (Key-Length-Value) is a byte-level data encoding standard used for binary data byte-packing and metadata embedding into video feeds. Data is encoded into the K ey- L ength- V alue triplets, where K ey identifies the data, 1 / 10

L ength specifies the data's length, and V alue is the data itself. It is defined in SMPTE 336M-2007 (Data Encoding Protocol Using Key-Length Value), approved by the Society of Motion Picture and Television Engineers. A KLV encoding protocol defines a data structure which is independent of the application or transportation method used. The KLV encoder C++ library (A.Net wrapper is available upon request) allows seamless integration at the encoding/streaming side, while KLV decoder module ( available also as Direct Show KLV decoder filter or C# module ) may be used on the client side for extraction of encoded data. When used with optional MISB 0601 converter module, KLV decoder translates received data according to the MISB 0601.X standard and provides a list of parsed and converted KLV items with corresponding timing information. {xtypo_alert}klv lib and STANAG4609Lib have been specially designed to deal with STANAG 4609 standard and contain numerous helper functions and converters to facilitate LDS and UDS metadata sets creation, Big Endian swap, etc. {/xty po_alert} {xtypo_sticky} "ITAR-free" {/xtypo_sticky} 2 / 10

The MPEG-2 Transport Stream provides an infrastructure for the carriage of video, audio and metadata in a single motion imagery stream as shown below. 3 / 10

STANAG 4609 STANAG 4609 is intended to provide common methods for exchange of motion imagery across systems within and among NATO nations. It provides a guidance on uncompressed, compressed, and related motion imagery sampling structures; motion imagery time standards, motion imagery metadata standards, interconnections, and common language descriptions of motion imagery system parameters. Unmanned Air Systems use two types of KLV encoded metadata. Universal Data Set (UDS) - the 16-byte key, basic encoding rules (BER) formatted length, and the data value is appropriate for applications where bandwidth isn't a concern. However, transmitting the 16-byte universal key quickly uses up the available bandwidth. UAS airborne platforms use a wireless communications channel where the bandwidth for metadata is limited. Because of the bandwidth disadvantages of using a Universal Data Set, it is more desirable to use a Local Data Set for transmission over a UAS Datalink. Local Data Set can use a 1, 2 or 4-byte key with a 1, 2, 4-byte, or BER encoded length. For more info about KLV use in UAS application see ref pageuseinuav Used in both military and civil applications, the KLV lib allows developers to create applications that receive streaming video coming from UAV platforms, extract the telemetry and other metadata (KLV format, for example EG 0601.X) process it in real time or archive for later retrieval. KlvLib supports processing of Compound items (sets, packs). {xtypo_alert} Check out our new STANAG Stream Recorder / KLV metadata analyzer tool b 4 / 10

uilt on top of KLV Lib {/xtypo_alert} KLV encoded metadata in MPEG Transport streams. Read more on how video and KLV encoded metadata can be synchronously transported in MPEG Transport streams according to STANAG 4609. KLVLib makes it easy to encode or decode the KLV data. Below is the hypothetical example MMS data packets (ISB Standards 0601.2, 0102.5, and SMPTE 336M-2007), as described in EG0902. {xtypo_warning} All values are shown for illustration purposes only!{/xtypo_warning} 5 / 10

The TLV bytes are appended end-to-end, and together become the value portion of the enclosing KLV packet. In this example, there are 97 bytes of TLV data - this is encoded as the length of the KLV packet. The whole local set starts with the 16 byte UL key, followed by the length 0x61, followed by all the TLV hex bytes above in order. In hex, the whole example KLV packet is: 6 / 10

{xtypo_warning} significant bit You the. KlvInspector (msb) MISB easily first. EG0909 byte analyze (MSB) All sample metadata is low first. level Bytes {/xtypo_warning} shall imported KLV shall be data represented into be using big-endian KlvInspector using bit big-endian encoding tool. Here encoding, with is the a screencapture most i.e. the significant mostof 7 / 10

Below is a sequence diagram for encoding the above Metadata using KLVLib 8 / 10

Sequence diagram that describes decoding of Metadata using KLVLib 9 / 10

To used: First, {codecitation // IKlvEncoder* klvencoder->setouterkey("060e2b34020b01010e01030101000000"); 1. 2. encode/decode Create create outer STANAG and class=")" key. initialize the We 4609 width=""} above use = an KLV CreateKlvEncoder(); ASCII instance sample encoder string of MMS KLV for data this Encoder: example packets the following simple code may be {/codecitation} Next, {codecitation {0x00,0x04,0x60,0x50,0x58,0x4E,0x01,0x80}; // klvencoder->setchecksumkey("01"); 3. 02 checksum KLV A width=""} timestamp. Items: key char unsigned Mon key 05 Jan = int64 short 2; 12 2009 val_16 val_64 22:08:22 = 0x71C2; = Heading Unix 1231798102000000; (UTC) val_64); Time Angle 00 Stamp 04 0x71C2-50 Microseconds // 58 After 4E 01 endian 159.9744 80L = swap 8. Key 5; 06 Platform Pitch 0xFD3D -0.4315251 Degrees - // val_16 key klvencoder->addklvitem(key,.{/codecitation}.. Key = 6; 7; = 07 0xFD3D; 0x08B8; Platform Roll val_16); Angle 0x08B8 3.405814 Degrees Degrees Next, {codecitation pencchunk if( { memcpy(klvbuffer, } 6. 7. Do encodedlength Use something the = and results width=""} KLV klvencoder->encode(encodedlength); with return ) Items pencchunk, the an data and encoded put encodedlength); the byte result array into buffer delete {/codecitation} Another {codecitation IKlvDecoder* 9. Delete klvencoder; example. the KlvEncoder previously and deallocate encoded memory // if( encodedlength IKlvItem** char 1. 2. klvdecoder->parse(iklvitem::sixteen_bytes, itemcount; Create valuestr[256]; the STANAG width=""} buffer )) that 4609 klvdecoder->getitemlist(itemcount); contains = KLV CreateKlvDecoder(); decoder encoded buffer dataand IKlvItem::ONE_BYTE, create a list of Klv klvbuffer, Items { const unsigned for(int sprintf(valuestr cout } length char* i i=0; = 0; = char* i<length; itemarray[i]->getlength(); keystr i < itemcount; value + i*2, = i++) itemarray[i]->getkeystring(); "%02X", = (unsigned i++) //3. delete {/codecitation} Delete << klvdecoder; keystr KLV << Decoder ": Ox" << *(value+i)); valuestr char* << )itemarray[i]->getvalue(); Here is a complete sample code ( LDS ) / ( endl; Please {xtypo_download} version can {/xtypo_download} see an online KLV documentation Lib Available for as more C/C++ UDS details. ) library. KLV A You (installed self-explanatory. standards. The {phocadownload freely demo can Lib (for at is evaluate library Windows).Net a C:Program C++ wrapper It view=file id=1 text=klvlibdemo.zip target=s} is encodes the library the fully evaluation software FilesImpleoTvKLV functional, is (available and before then copy but decodes upon of making has Windows) the LibKlvTestAp) request. 10 KLV back min a purchase. per It some ( includes C++). session Please which sample decision. There both limitation. register data pretty KLV a given simple encoder to much download in. test This one and application way of the decoder. the you Demo Buy Here licenses DEVELOPER * Developer Small Corporate KLV is the Licenses Lib Business pricing SDK licenses 299.00 License information License EUR Small (royalty-free, 31 unlimited nontransferable, Business personal, nontransferable, library 499.00 includes nonexclusive, EUR Corporate both nonexclusive, encoder royalty 599.00 free and royalty-free DEVELOPER decoder EUR ): license Delivery {xtypo_info}please help with will the be integration. done do (through not hesitate email) within to contact {/xtypo_info} 24 hours us should after you you place have your any order. questions or need 10 / 10