Menu

realtime

Luca Longinotti

Real time processing in jAER

Conventional systems must wait for frames of data before they can react to inputs. The event-driven nature of AER sensors makes them particularly suitable for fast reactions because the the events are data driven and can occur with very short latency.

jAER can be used for faster (more real time) processing of sensory-motor systems by enabling Process on acquisition cycle in the FilterFrame/Options menu (see below). Then events will be processed in the hardware acquisition thread instead of in the default rendering thread, greatly reducing latency. For example, if the CypressFX2 buffer size is set to 512 bytes (128 events) and the retina produces events at 1Meps, then the buffers will arrive at the host at a rate of about 10kHz, resulting in a latency of 100us at the host for receiving the data from the sensor. If the data were processed in the rendering thread at 50Hz frame rate, the latency could be as much as 40 ms (2 frames).

The time actually allocated to processing data can also be limited by using the Limit processing time option (see below). Turning this option on enables an independent timer limit for event processing for each packet. If the timer times out during iteration over events, the rest of the events are discarded. This option can prevent data processing stalls where the new data piles up faster than the old data can be processed.


Related

Wiki: Home