EVT 3.0 Encoding Format

EVT 3.0 is a 16-bit data format, and it supports sensors with up to 2048x2048 resolution.

This data format has been designed to comply with both data compactness necessity and vector event data support.

The 4 Most Significant Bits (MSB) are used to define the EVT 3.0 word type.

The following table lists the different types of events:

Event

Description

Value

CD_Y

CD event type, Y coordinate, and system type (master/slave camera)

‘0000’

X_POS

Single valid event, X coordinate and polarity

‘0010’

X_BASE

Base X coordinate and polarity for subsequent vector events

‘0011’

VECT_12

Vector event with 12 consecutive elements

‘0100’

VECT_8

Vector event with 8 consecutive elements

‘0101’

TIME_LOW

Updates the lower 12-bit portion of the 24-bit time base

‘0110’

CONTINUED_4

Extra 4b data to previous events

‘0111’

TIME_HIGH

Updates the higher 12-bit portion of the 24-bit time base.

‘1000’

EXT_TRIGGER

External trigger output

‘1010’

OTHERS

Used for extensions in the event types

‘1110’

CONTINUED_12

Extra 12-bit data to previous events

‘1111’

Note

Other event types are reserved. Contact your event-based camera distributor if you receive EVT 3.0 words whose type is not described in this table.

EVT3.0 event format avoids transmitting redundant event data for the time, y and x values.

Along with the event type, these fields are encoded as three separate 16-bit events, as listed in the table below. These encode the same information as for types 0 to 7 of the standard 32-bit event encoding. Remaining events will still be transmitted as 32b events, resulting in a variable-length event coding scheme.

A dedicated EVENT TYPE for time base update containing the 12 least significant bits of the micro-second timestamp are encoded directly into the primary event as TIME_LOW. The most significant bits of the timestamp are sent in a dedicated event type TIME_HIGH event. To reconstitute the full event timestamp, the TIME_LOW information must be concatenated with the last TIME_HIGH event received prior to TIME_LOW event.

The following table is an overview of the main types involved in EVT3.0:

../../_images/table_evt3.png

Events are encoded in 16-bit words. The Detailed Events Description is provided below.

CD_Y

Identifies a CD event and its y coordinate. Furthermore, this event determines the camera’s system type, whether it is a master camera or a slave camera. See Metavision::I_DeviceControl

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

CD_Y (‘0000’)

11

1 bit

system_type

Identifies the System Type:

0: Master Camera

1: Slave Camera

‘0’

10..0

11 bits

y

Pixel Y coordinate

X_POS

Marks a valid single event and identifies its polarity and X coordinate. The event’s type and timestamp are considered to be the last ones sent. Note that X_POS also updates the X_BASE used for VECT_12 and VECT_8 events: X_BASE.x = X_POS.x.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

X_POS (‘0010’)

11

1 bit

pol

Event polarity:

0: CD_OFF event

1: CD_ON event

10..0

11 bits

x

Pixel X coordinate

X_BASE

Transmits the base address for a subsequent vector event and identifies its polarity and base X coordinate. This event does not represent a CD sensor event in itself and should not be processed as such, it only sets the base x value for following VECT_12 and VECT_8 events.

Updates the X position value on the receiver side.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

X_BASE (‘0011’)

11

1 bit

pol

Event polarity:

0: CD_OFF event

1: CD_ON event

10..0

11 bits

x

Pixel X coordinate

VECT_12

Vector event with 12 valid bits. This event encodes the validity bits for events of the same type, timestamp and y coordinate as previously sent events, while consecutive in x coordinate with respect to the last sent X_POS or X_BASE event.

After processing this event, the X position value on the receiver side should be incremented by 12 with respect to the X position when the event was received, so that the X_BASE is updated like follows: X_BASE.x = X_BASE.x + 12.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

VECT_12 (‘0100’)

11..0

12 bits

valid

Encodes the validity of the events in the vector.

foreach i in 0 to 11

if valid[i] is ‘1’

valid event at X = X_BASE.x + i

VECT_8

Vector event with 8 valid bits. This event encodes the validity bits for events of the same type, timestamp and y coordinate as previously sent events, while consecutive in x coordinate with respect to the last sent X_POS or X_BASE event.

After processing this event, the X position value on the receiver side should be incremented by 8 with respect to the X position when the event was received, so that the X_BASE is updated like follows: X_BASE.x = X_BASE.x + 8.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

VECT_8 (‘0101’)

11..8

4 bits

unused

7..0

8 bits

valid

Encodes the validity of the events in the vector.

foreach i in 0 to 7

if valid[i] is ‘1’

valid event at X = X_BASE.x + i

TIME_LOW

Encodes the lower 12b of the timebase range 11 to 0. Note that the TIME_LOW value is only monotonic for a same event source, but can be non-monotonic when multiple event sources are considered. They should however refer to the same TIME_HIGH value.

As the time low has 12b with a 1us resolution, it can encode time values from 0us to 4095us. After 4095us, the time_low value wraps and returns to 0us, at which point the TIME_HIGH value should be incremented by 1.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

TIME_LOW (‘0110’)

11..0

12 bits

time_low

time base range (11..0)

CONTINUED_4

Continued event which can be used to aggregate additional data to previous events. This event can encode up to 4 bits of data payload, whose significance will depend on the last non-continued type event sent in the stream.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

CONTINUED_4 (‘0111’)

11..4

8 bits

unused

3..0

4 bits

Depends on the previous event

TIME_HIGH

Encodes the higher portion of the timebase range 23 to 12. Note that TIME_HIGH events are monotonic irrespective of the event source.

As the time high has 12b with a 4096us resolution, it can encode time values from 0us to 16777215us (or 16.777215s). After 16777215us (or 16.777215s), the time_high value wraps and returns to 0us.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

TIME_HIGH (‘1000’)

11..0

12 bits

time_high

Time base range (23..12)

During decoding of EVT3 encoded events, time high and time low will be used to construct the timestamp in the following way:

../../_images/evt3_time_high_time_low.png

EXT_TRIGGER

The External Trigger Event is transmitted to indicate an edge (change of electrical state) was detected on an external trigger signal. This events transmits the trigger ID and its new value. The timestamp will be derived from previously sent time high and time low events.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

EXT_TRIGGER (‘1010’)

11..8

4 bits

id

Trigger channel ID

7..1

7 bits

Unused

0

1 bit

value

Trigger current value (edge polarity):

0: falling edge

1: rising edge

‘0’

OTHERS

The Others Event is used to extend the number of available event types in a system based on a subtype field. The subtype field is then used to decode the event information accordingly. A single OTHERS event word can be used for marker events that contain no additional fields. If additional fields need to be transmitted, they will be sent in a subsequent CONTINUED event. The event’s timestamp will be derived from previously sent time high and time low events.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

OTHERS (‘1110’)

11..0

12 bits

subtype

Event sub-type

CONTINUED_12

Continued event which can be used to aggregate additional data to previous events. This event can encode up to 12 bits of data payload, whose significance will depend on the last non-continued type event sent in the stream.

Bit Range

Bit Width

Field Name

Description

Default Value

15..12

4 bits

type

Event type

CONTINUED_12 (‘1111’)

11..0

12 bits

Depends on the previous event