Useful for filtering out uncorrelated background activity from any sensor.
It works by only passing events that are correlated in time (and space, when subSampleBy>1) with previous events.
An event is passed through if a previous event has occurred within the time dt of this event.
dt::
The required correlation time in us. Increase to pass through more events.
subSampleBy::
Increase to pass more events. The event x,y addresses are right shifted by this number of bits before being written into the spatial map of most recent event times. This way, an event can pass through even if it is only correlated with a pixel within the (2^subSampleBy)^2 block of pixels.
This filter removes uncorrelated background activity (caused on the device by transistor switch leakage or noise). It only passes activity that is supported by recent nearby past activity Background activity is uncorrelated and is largely filtered away, while events that are generated by moving objects, even if they are only single pixel in size, mostly pass through.
This filter uses a single map of event timestamps to store its state, i.e., an array of 128x128x2 32 bit integer timestamp values. (131kB). This filter has a single parameter dt which specifies the support time for which an event will be passed. The steps for each event are as follows:
(This implementation avoids iteration and branching over all neighboring pixels by simply storing an event’s timestamp in all neighbors. Then only a single conditional branch is necessary.)