Data Encoding Formats
Prophesee event-based sensors are producing data in two different types of proprietary formats:
Those event formats have been designed to strike a balance between compactness and robustness, while taking into account constraints imposed by the processing platforms.
See also
For an overview on event stream data formats, you can watch our training video:
`Table of Contents
Event Stream Data Formats
Event Stream Data formats are the most native formats for our event-based sensor, as they transmit the raw events detected by the pixels (timestamp, coordinates and polarity). The following schemes of encoding can be used:
The availability of the formats depends on the sensor:
Event Frame Data Formats
Those formats are producing frames of data made of arrays of values representing the number of pixels having spiked during an integration period or until reaching an event rate threshold.
Those formats accumulate event-data received during an integration period or until reaching an event rate threshold, and represent it in framed form. These formats enable avoiding the cost of decoding, pre-processing and formatting the event stream in software, and are therefore particularly useful for light-weight computing platforms.
The following formats are available:
Other Data Formats
GenX320 sensor support also AER (Address Event Representation) format
Note
GenX320 supports AER format through the CMOS Parallel Interface (CPI) only. It is mainly destined for integration with neuromorphic systems.
Selecting Data Format
When you are streaming from a live camera with a sensor that supports multiple data formats using a camera plugin that implemented those format, you can choose which format you want to stream in.
The first and easiest option is available in Metavision Studio in the advanced panel when opening a camera. Here is an example using an EVK4 HD that comes with an IMX636 sensor supporting both EVT 2.1 and EVT 3.0:
You can also select the data format through the SDK API using Metavision::DeviceConfig
class.
The following code excerpts show how to select the EVT 2.1 format:
Using HAL C++ API:
Metavision::DeviceConfig device_config; device_config.set_format("EVT21"); device = Metavision::DeviceDiscovery::open(serial, device_config);Using HAL and SDK Core Python API:
device_config = DeviceConfig() device_config.set_format("EVT21") device = DeviceDiscovery.open("", device_config) mv_iterator = EventsIterator.from_device(device=device)Using SDK Stream C++ API (Camera class):
Metavision::DeviceConfig device_config; device_config.set_format("EVT21"); camera = Metavision::camera::from_first_available(device_config);