Note

If you acquired a sensor or an EVK from Prophesee, you can find datasheets and user manuals in our Knowledge Center once you will have requested an account. In this page, we give complementary information about sensor’s biases.

Biases

Prophesee’s sensors provide a set of adjustable settings, which allow the sensor performance to be tuned for different application requirements and conditions (higher speed, lower background activity, higher contrast sensitivity threshold, etc.). These sensor settings are called biases.

Available Biases

There are five generally useful biases:

  • Contrast sensitivity threshold biases (bias_diff_on, bias_diff_off)

    The pixels of an event sensor are triggered by a change in illumination of a certain contrast. The minimum contrast to produce an event, measured in %, is called the contrast threshold. These biases control the contrast threshold - the sensitivity of the sensor to contrast changes.

    • bias_diff_on: adjusts the contrast threshold for ON events. This determines the ON contrast threshold, the factor by which the pixel must get brighter, before an ON event occurs for that pixel. It is usually adjusted when the user wants to change how many events are output during a big change in illumination, or else to change the sensitivity to small positive light changes.

    • bias_diff_off: adjusts the contrast threshold for OFF events. This determines the OFF contrast threshold, the factor by which the pixel must get darker, before an OFF event occurs for that pixel. It is usually adjusted when the user wants to change how many events are output during a big change in illumination, or else to change the sensitivity to small negative light changes.

  • Bandwidth biases (bias_fo, bias_hpf) control the pixel low-pass and high-pass filters.

    • bias_fo: adjusts the low-pass filter. This changes how rapidly fluctuating light is filtered out. It determines the maximum rate of change of illumination that can be detected. It is often used to remove flickering and noise in the scene, but doing so will also increase the latency of the sensor.

    • bias_hpf: adjusts the high-pass filter. This determines how slow illumination change is filtered out. It determines the minimum rate the light must change, for the pixel to output an event. It is often used to remove the background of the scene and show only fast moving objects, or to reduce the background noise.

  • Dead time bias (bias_refr) controls the pixel “refractory period”.

    • bias_refr: adjusts the refractory period. This determines the duration for which the pixel is blind after each event. It can be used to change the number of events during a big illumination change, without changing the sensitivity or the bandwidth. It is often used to make each big light change produce only one event.

All biases affect both the range of signals which can be detected, and the rate of noise background events observed. Reducing the noise is always possible, but also reduces in some way the range of useful signals which can be detected.

Note

There is an extra bias (bias_pr) that drives the photoreceptor bandwidth by controlling the front-end part of the pixel. We don’t recommend changing this bias, except in very specific conditions. For Gen4.1 and IMX636 sensors, this bias is not available anymore (neither via API nor in our players).

Bias Tuning

The different generations of Prophesee sensors use different units and scales to configure the biases. For example, a given biases configuration for a Gen3.1 can not be used on an Gen4.1. Even the default biases configuration can not really be considered equivalent from one generation to another because the pixel and overall sensor technology and architecture varies.

The main differences are:

  • Between Gen3.1 and Gen4.0/Gen4.1/IMX636, some biases are expressed in opposite ways

  • In IMX636, biases are expressed as relative offsets

In the following table we describe how biases should be tuned depending on the sensor generation:

Bias Name

Gen3, Gen3.1

Gen4, Gen4.1

IMX636

All biases

All the biases are expressed in mV

All the biases are expressed as a

positive digital number

All the biases are expressed as a positive or

negative digital number, as relative offsets

around the default value. The default bias

is always 0

bias_diff_on

The contrast threshold is defined by the

difference of bias_diff_on above bias_diff.

To increase the contrast threshold,

increase bias_diff_on.

The contrast threshold is defined by the

difference of bias_diff_on above bias_diff.

To increase the contrast threshold,

increase bias_diff_on.

The contrast threshold is defined only by the

bias_diff_on setting.

To increase the contrast threshold,

increase bias_diff_on.

bias_diff_off

The contrast threshold is defined by the

difference of bias_diff_off below bias_diff.

To increase the contrast threshold,

decrease bias_diff_off.

The contrast threshold is defined by the

difference of bias_diff_off below bias_diff.

To increase the contrast threshold,

decrease bias_diff_off.

The contrast threshold is defined only by the

bias_diff_off setting.

To increase the contrast threshold,

increase bias_diff_off.

bias_fo

Decrease bias_fo to widen the bandwidth

Increase bias_fo to widen the bandwidth

Increase bias_fo to widen the bandwidth

bias_hpf

Increase bias_hpf to widen the bandwidth

and make the sensor sensitive to slower

light changes.

Decrease bias_hpf to widen the bandwidth

and make the sensor sensitive to slower

light changes.

Decrease bias_hpf to widen the bandwidth

and make the sensor sensitive to slower

light changes.

bias_refr

Decrease bias_refr to increase the

refractory period after each event

Increase bias_refr to increase the

refractory period after each event

Increase bias_refr to increase the

refractory period after each event

Note

For IMX636, the rationale behind the new bias values management is that default values for the biases may vary slightly from sensor to sensor depending on factory trimming. In order for a given sensor tuning to result in the closest possible performance when applied to another sensor, the user-tunable values in our API and tools are now an offset relative to the default bias values.

Note

In Gen4 sensor (not Gen4.1), bias_fo is called bias_fo_n

To get more information on the biases consult the Knowledge Center, where we provide application notes on bias configuration and the visual effect of each bias tuning.

Bias Ranges

Not all bias values are allowed. There are specific acceptable ranges depending on your sensor’s generation. Those ranges are enforced by each camera plugin through the HAL API, so when trying to set out of range values you will get warning message similar to [HAL][WARNING] 100 is not in acceptable range for bias_fo

Bias ranges for Gen3.1 sensor:

Bias Name

Default value

Minimum value

Maximum value

Comment

bias_diff

299

N/A

N/A

read-only bias

bias_diff_on

384

bias_diff + 75

bias_diff + 200

if bias_fo < 1350, Min Value = bias_diff + 95

bias_diff_off

222

100

bias_diff - 65

if bias_fo < 1350, Max Value = bias_diff - 85

bias_fo

1477

1250

1800

bias_hpf

1499

900

1800

bias_refr

1500

1300

1800

Note

For Gen3.1, note that not all values of biases can be configured within the sensor. For example, setting a bias_hpf of 1445 or 1455 will in fact set the bias to the actual value of 1448. This is not visible in Metavision Studio, but you will notice it when saving the bias values into BIAS files (see below).

Bias ranges for Gen4.1 sensor:

Bias Name

Default value

Minimum value

Maximum value

Comment

bias_diff

80

N/A

N/A

read-only bias

bias_diff_on

115

bias_diff + 15

140

bias_diff_off

52

25

bias_diff - 15

bias_fo

74

45

110

bias_hpf

0

0

120

bias_refr

68

30

100

Bias ranges for IMX636 sensor:

Bias Name

Default value

Minimum value

Maximum value

bias_diff_on

0

-85

140

bias_diff_off

0

-35

190

bias_fo

0

-35

55

bias_hpf

0

0

120

bias_refr

0

-20

235

Warning

Not respecting those ranges may lead to sensor malfunction or damage. If you think your application requires using out of range values for some biases, or if you want to modify read-only biases (e.g. bias_diff) or hidden biases (bias_pr), please contact us to discuss it.

Bias files

SDK allows to store the bias values in files with a .bias extension. These BIAS files are handled in Metavision Studio, Metavision Viewer and multiple SDK Code Samples using the C++ class Metavision::Biases.

The format of the BIAS files is the following:

  • the file is a text file where each line configures a specific bias

  • each line is made of bias_value and bias_name separated by percentage sign (%).

For example an IMX636 bias file could have this content:

0 % bias_diff
10 % bias_diff_off
10 % bias_diff_on
-5 % bias_fo
0 % bias_hpf
0 % bias_refr

After installing Metavision SDK, BIAS files storing default bias values for every sensor generation can be found in <install-prefix>/share/metavision/hal/resources/biases/.

Biases API

Biases can be tuned using HAL and SDK Driver API: