Diff3D Format
Diff3D format accumulates event-data received during an integration period or until reaching an event rate threshold, and represent it in framed form.
Note
The sample metavision_event_frame_generation sample can be used
to emulate those two mechanism to accumulate events using the command line options --period
and --nevents
.
This mode adds 1 (one) to the histogram location (x,y) for each positive polarity event and subtracts one from the histogram location (x,y) for each negative event. If the data addition overflows (or the data subtraction underflows), the default behavior is to roll-over making the value to pass from the maximum positive to the minimum negative value (or vice versa).
Data Format
Here is the structure of the Diff3D format:
The sensor (or the software encoder) can be configured to represent the Diff counter with 2 to 8 bits This number of bits defines the min and max value the diff counter can take (e.g. with 4 bits size, value can range from -8 to 7). But note that the Diff counter will always be stored on 8 bits with the MSB representing the sign.
RAW file header
When Diff3D data is stored in a RAW files, the key pixellayout
is used to store
the information about data Size. Similarly to what is done for Histo3D format
we store this information in the format Xp/Yn
, but in the Diff3D case,
only the negative specified integer (Y
in the example) is used as bit-size for the diff counter.
The positive specified integer (X
in the example) is ignored.
So depending on the size that was configured for Diff3d format we will have values like 0p/8n
or 0p/4n
.
For example, here is an extract of a RAW file header for an Diff3D file:
% format DIFF3D
% geometry 320x320
% pixellayout 0p/8n
% (...)