Introduction

This is an prerelease draft of the Embedded Ethernet Video Specification. It is subject to significant changes in format and content before version 1.0. This version may contain fundamental errors and sections marked TBD. Comments and suggested changes are welcome.

Embedded Ethernet Video (EEVideo) is a protocol for delivering video data streams across Ethernet interfaces using standard Ethernet hardware and standard Internet IP protocols.

EEVideo is focused on embedded machine-vision applications that process live camera streams. It may also be useful to deliver sensor data in other applications.

Delivering video over Ethernet is now routine; many protocol stacks exist for different use cases. The choice often comes down to the toolchain needed to manage the protocol and process the data. EEVideo aims to provide an open-source, simplified toolchain for machine-vision applications.

Goals

Leverage Ethernet Hardware and Software Standards

Using commercial Ethernet devices provides a high-bandwidth, low-cost hardware interface platform for embedded systems.

Complying with existing Ethernet standards leverages established software tools and allows other applications to share the same network hardware infrastructure.

Low Latency

One key to high-performance machine vision is processing the freshest possible data.

Achieving the lowest latency requires:

  • Raw (uncompressed or low-latency compressed) data delivery

  • No frame-buffering requirements

  • Minimal processing between the sensor and the network on the device

  • Minimal processing between packet buffers and image-processing memory on the host

High Efficiency

Video streams can consume significant bandwidth. Minimizing protocol overhead is therefore critical.

Low Complexity

Simplifying protocol operation makes implementation both faster and less expensive.

EEVideo assumes the host (which receives the stream and controls the sensor) has significantly more processing power than the sensor device. A primary goal is therefore to keep sensor/camera complexity as low as possible.

Flexible Formats

Machine-vision applications vary widely in video formats, frame rates, and pixel characteristics. EEVideo must provide maximum flexibility for all these parameters.

Open Source

An open-source specification known to work in real applications gives developers a strong head start over ad-hoc protocols.

Many modern machine-vision applications need low-cost solutions to remain competitive. Legacy proprietary protocols and software stacks often do not fit.

Poorly documented legacy specifications, single-purpose solutions, and proprietary protocols with unclear licensing terms may present issues which may be avoided by adopting an open-source specification.

Specification Structure

The EEVideo protocol consists of two largely independent sections: the Management Protocol and the Stream Protocol. They have very different goals and therefore share little in common.

The Stream Protocol is kept as lightweight as possible. The Management Protocol is more complex to support a wide range of potential features.

Management traffic uses negligible bandwidth compared with the stream and has far less stringent latency requirements.

Versioning and History

This specification uses semantic versioning managed entirely through the Git repository:

  • Branches — Development occurs on vX.Y.Z (unstable).

  • Antora automatically builds each Git major.minor branch as a separate versioned site with version selector and navigation.

The authoritative revision history is maintained in the Git repository releases and the dedicated Changelog.

EEVideo Management Protocol

The Management Protocol enables a host to discover, configure, and monitor EEVideo streaming devices. The goals of the Management Protocol are limited-resource implementation and maximum flexibility.

At the minimal extreme, an EEVideo device may not require the Management Protocol. A simple device on a pre-configured embedded network can power up and begin streaming with no host interaction. More commonly, some configuration or device information is needed; these functions are provided by the Management Protocol.

CoAP Transactions

EEVideo Management uses the IETF Constrained Application Protocol (CoAP) to provide packet formats and transaction protocols that allow a host (client) to read (GET) and write (PUT) device (server) registers.

CoAP features are summarized at https://coap.space. The full specification is available here, https://datatracker.ietf.org/doc/html/rfc7252.

Implementation details of CoAP for EEVideo are in the CoAP Implementation section of this document.

EEVideo Device Registers

All host management interaction with an EEVideo device is done with 32-bit integer register-based reads and writes. The functionality of all the potential specified registers and their sub-fields is described in the Features section of this document.

This single address/value interface provides unified access to all the available features.

EEVideo Feature Discovery

EEVideo devices may offer a wide range of specified and custom features. The feature-discovery mechanism allows a host to read (from read-only registers) a complete list of all features supported by the device.

The list supplies identifiers and register addresses so the host can build a map for monitoring and control of each feature.

CoRE Device Discovery

EEVideo Discovery uses the IETF Constrained RESTful Environments (CoRE) Link Format carried in CoAP requests so hosts can multicast discovery requests to locate EEVideo-capable devices on the network. The CoRE specification is available here, https://datatracker.ietf.org/doc/html/rfc6690.

Implementation details of CoRE for EEVideo are in the Device Discovery section of this document.

IP Address Configuration

IP address configuration is not technically part of the Management Protocol, but a valid IP address must be assigned before the Management Protocol can be fully used. EEVideo offers several options for devices to establish their IP address.

EEVideo Streaming Protocol

The Streaming Protocol is used to deliver video data across the network. The goal of the streaming protocol is maximum efficiency in the device and host. It is designed for efficient use of bandwidth and minimal delivery latency.

Packet and data formats are described in the Stream section of this document.

Alternate Streaming Protocols

EEVideo devices may also support alternative streaming protocols. Most Ethernet video streaming protocols use IP/UDP packets and share more in common than they differ. The key is delivering high-volume data at low latency.

Changing a few header fields is a small modification that can enable legacy clients to process video packets using a familiar format.

Many legacy standards lack a separate formal control protocol or require more complex transactions.

The EEVideo Management Protocol can therefore add significant value to embedded systems that wish to retain compatibility with legacy streaming formats.

Normative References