Shutter Mode#

The Shutter Mode camera feature allows you to determine or configure the operating mode of the camera's electronic shutter.

The shutter mode refers to the way in which image data is captured and processed. Which shutter modes are available depends on the design of the imaging sensor.

Using the Feature#

Determining the Shutter Mode#

To determine the current shutter mode, get the value of the ShutterMode parameter. The parameter can take the following values:

Configuring the Shutter Mode#

If multiple shutter modes are available on your camera model, you can choose the desired shutter mode.

To do so, set the ShutterMode parameter to one of the following values:

Advantages and Disadvantages#

Shutter Mode Advantage Disadvantage
Global shutter mode Well suited for capturing fast-moving objects Higher ambient noise
Rolling shutter mode Lower ambient noise Image distortion can occur if very fast-moving objects are captured.
Global Reset Release shutter mode Lower ambient noise
Well suited for capturing fast-moving objects
Flash lighting must be used.

Available Shutter Modes#

Depending on your camera model, the following shutter modes are available:

Global Shutter Mode#

During every image acquisition in Global shutter mode, all of the sensor's pixels start exposing at the same time and also stop exposing at the same time. Immediately after the end of exposure, pixel data readout begins and proceeds row by row until all pixel data has been read. This is particularly useful if you want to capture fast moving objects or if the camera is moving rapidly while capturing images.

Cameras that operate in the Global shutter mode can provide an Exposure Active output signal. The signal goes high when exposure begins and goes low when exposure ends.

The sensor readout time is the sum of all row readout times. Therefore, the sensor readout time is influenced by the image ROI height. You can determine the readout time by checking the value of the camera's SensorReadoutTime parameter.

On some camera models, the Sensor Readout Mode feature is available. This feature allows you to reduce the sensor readout time.

Global Shutter Mode

Rolling Shutter Mode#

In Rolling shutter mode, the camera exposes the pixel rows one after the other, with a temporal offset (tRow) from one row to the next. With this method, the ambient noise is typically significantly lower than with the global shutter method.

When frame start is triggered, the camera resets the first row and begins exposing it. For most cameras, this row is the first row of the image ROI.

A short time later (= 1 x tRow), the camera resets the second row and begins exposing that row. After another short time (= 1 x tRow), the camera resets the third row and begins exposing that row.

This continues until a last row of pixels is reached. For most cameras, this row is the last row of the image ROI.

The length of tRow varies by camera model.

Rolling Shutter Mode

The pixel values for each row are read out at the end of the exposure time of each row. The exposure time is the same for all rows. Because the readout time for each row is also tRow, the temporal shift for the end of readout is identical to the temporal shift for the start of exposure.

The sensor readout time is the sum of all row readout times: tRow x image ROI height.

Therefore, the sensor readout time also depends on the image ROI height. To determine the readout time, check the value of the camera's SensorReadoutTime parameter.

Other Factors Influencing the Frame Period

Besides the exposure time and the sensor readout time, there are other factors influencing the frame period, e.g., the time needed to prepare the sensor for the next acquisition.

These other factors vary by camera model and configuration. Therefore, Basler recommends calculating the frame period. To do so, check the value of the camera's ResultingFrameRate parameter value and take its reciprocal:

1 / resulting frame rate

This takes all influencing factors into account.

Possible Image Distortion (Rolling Shutter Effect)

If the object or the camera is moving very fast during image capture in Rolling shutter mode, image distortion may occur. This is also known as the rolling shutter effect.

This is due to the temporal shift between the start of exposure of the individual rows.

To prevent the rolling shutter effect, Basler recommends the use of flash lighting. Most cameras can supply a Flash Window output signal to facilitate the use of flash lighting.

Exposure Active Signal

If your camera model provides an Exposure Active output signal and the camera is configured for Rolling shutter mode, the Exposure Active signal goes high when the exposure time for line one begins and goes low when the exposure time for the last line ends. This means that the signal width is greater than the exposure time.

Global Reset Release Shutter Mode#

The Global Reset Release (GRR) shutter mode is a variant of the rolling shutter mode. It combines the advantages of the Global and the Rolling shutter mode.

In GRR shutter mode, all of the pixels in the sensor start exposing at the same time. However, at the end of exposure, there is a temporal offset (tRow) from one row to the next.

The tRow values are the same as for the Rolling shutter mode and vary by camera model.

Global Reset Release Shutter Mode

If the camera is operated in the GRR shutter mode, you must use flash lighting. Otherwise, the brightness in the acquired images will vary significantly from top to bottom due to the differences in the exposure times of the individual rows. Also, when you are capturing images of fast moving objects, images can be distorted due to the temporal shift caused by the different exposure end times of the individual rows.

Most cameras can supply a Flash Window output signal to facilitate the use of flash lighting.

Other Factors Influencing the Frame Period

→ See the "Other Factors Influencing the Frame Period" section above.

Additional Parameters#

Depending on your camera model, the GlobalResetReleaseModeEnable parameter may also be available.

  • If you set the parameter to true, the camera sets the ShutterMode parameter to GlobalResetRelease and enables the Global Reset Release shutter mode.
  • If you set the parameter to false, the camera sets the ShutterMode parameter to Rolling and enables the Rolling shutter mode.

Specifics#

Show all camera models

Camera Model Available Shutter Modes Temporal Offset tRow [µs] Additional Parameters
a2A1920-51gcBAS Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
a2A1920-51gmBAS Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
a2A1920-160ucBAS Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
a2A1920-160umBAS Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
a2A3840-13gcBAS tbd tbd tbd
a2A3840-13gmBAS tbd tbd tbd
a2A3840-45ucBAS tbd tbd tbd
a2A3840-45umBAS tbd tbd tbd
acA640-90gc Global - None
acA640-90gm Global - None
acA640-90uc Global - None
acA640-90um Global - None
acA640-120gc Global - None
acA640-120gm Global - None
acA640-120uc Global - None
acA640-120um Global - None
acA640-121gm Global - None
acA640-300gc Global - None
acA640-300gm Global - None
acA640-750uc Global - None
acA640-750um Global - None
acA720-290gc Global - None
acA720-290gm Global - None
acA720-520uc Global - None
acA720-520um Global - None
acA780-75gc Global - None
acA780-75gm Global - None
acA800-200gc Global - None
acA800-200gm Global - None
acA800-510uc Global - None
acA800-510um Global - None
acA1280-60gc Rolling 14 None
acA1280-60gm Rolling 14 None
acA1300-22gc Global - None
acA1300-22gm Global - None
acA1300-30gc Global - None
acA1300-30gm Global - None
acA1300-30uc Global - None
acA1300-30um Global - None
acA1300-60gc Global
Rolling
Global Reset Release
14 None
acA1300-60gm Global
Rolling
Global Reset Release
14 None
acA1300-60gmNIR Global
Rolling
Global Reset Release
14 None
acA1300-75gc Global - None
acA1300-75gm Global - None
acA1300-200uc Global - None
acA1300-200um Global - None
acA1440-73gc Global - None
acA1440-73gm Global - None
acA1440-220uc Global - None
acA1440-220um Global - None
acA1600-20gc Global - None
acA1600-20gm Global - None
acA1600-20uc Global - None
acA1600-20um Global - None
acA1600-60gc Global
Rolling
Global Reset Release
8-bit pixel formats: 13
12-bit packed pixel formats: 17
12-bit pixel formats: 17
None
acA1600-60gm Global
Rolling
Global Reset Release
8-bit pixel formats: 13
12-bit packed pixel formats: 17
12-bit pixel formats: 17
None
acA1920-25gc Rolling
Global Reset Release
35 GlobalResetReleaseModeEnable
acA1920-25gm Rolling
Global Reset Release
35 GlobalResetReleaseModeEnable
acA1920-25uc Rolling
Global Reset Release
35 None
acA1920-25um Rolling
Global Reset Release
35 None
acA1920-40gc Global - None
acA1920-40gm Global - None
acA1920-40uc Global - None
acA1920-40ucMED Global - None
acA1920-40um Global None
acA1920-40umMED Global - None
acA1920-48gc Global - None
acA1920-48gm Global - None
acA1920-50gc Global - None
acA1920-50gm Global - None
acA1920-150uc Global - None
acA1920-150um Global - None
acA1920-155uc Global - None
acA1920-155ucMED Global - None
acA1920-155um Global - None
acA1920-155umMED Global - None
acA2000-50gc Global - None
acA2000-50gm Global - None
acA2000-50gmNIR Global - None
acA2000-165uc Global - None
acA2000-165um Global - None
acA2000-165umNIR Global - None
acA2040-25gc Global - None
acA2040-25gm Global - None
acA2040-25gmNIR Global - None
acA2040-35gc Global - None
acA2040-35gm Global - None
acA2040-55uc Global - None
acA2040-55um Global - None
acA2040-90uc Global - None
acA2040-90um Global - None
acA2040-90umNIR Global - None
acA2040-120uc Global - None
acA2040-120um Global - None
acA2440-20gc Global - None
acA2440-20gm Global - None
acA2440-35uc Global - None
acA2440-35ucMED Global - None
acA2440-35um Global - None
acA2440-35umMED Global - None
acA2440-75uc Global - None
acA2440-75ucMED Global - None
acA2440-75um Global - None
acA2440-75umMED Global - None
acA2500-14gc Rolling
Global Reset Release
35 GlobalResetReleaseModeEnable
acA2500-14gm Rolling
Global Reset Release
35 GlobalResetReleaseModeEnable
acA2500-14uc Rolling
Global Reset Release
35 None
acA2500-14um Rolling
Global Reset Release
35 None
acA2500-20gc Global - None
acA2500-20gcMED Global - None
acA2500-20gm Global - None
acA2500-20gmMED Global - None
acA2500-60uc Global - None
acA2500-60um Global - None
acA3088-16gc Rolling
Global Reset Release
8-bit pixel formats: 25
12-bit packed pixel formats: 25
12-bit pixel formats: 25
None
acA3088-16gm Global - None
acA3088-57uc Rolling
Global Reset Release
8-bit pixel formats: 8
12-bit packed pixel formats: 8
12-bit pixel formats: 8
None
acA3088-57um Rolling
Global Reset Release
8-bit pixel formats: 8
12-bit packed pixel formats: 8
12-bit pixel formats: 8
None
acA3800-10gc Rolling
Global Reset Release
8-bit pixel formats: 31.6
12-bit packed pixel formats: 36.4
12-bit pixel formats: 39.6
None
acA3800-10gm Rolling
Global Reset Release
8-bit pixel formats: 31.6
12-bit packed pixel formats: 36.4
12-bit pixel formats: 39.6
None
acA3800-14uc Rolling
Global Reset Release
8-bit pixel formats: 24.725
12-bit packed pixel formats: 28.475
12-bit pixel formats: 30.975
None
acA3800-14um Rolling
Global Reset Release
8-bit pixel formats: 24.725
12-bit packed pixel formats: 28.475
12-bit pixel formats: 30.975
None
acA4024-8gc Rollinga
Global Reset Releasea
8-bit pixel formats: 35
12-bit packed pixel formats: 35
12-bit pixel formats: 35
None
acA4024-8gm Rollinga
Global Reset Release
8-bit pixel formats: 35
12-bit packed pixel formats: 35
12-bit pixel formats: 35
None
acA4024-29uc Rollinga
Global Reset Releasea
8-bit pixel formats: 10
12-bit packed pixel formats: 12
12-bit pixel formats: 12
None
acA4024-29um Rollinga
Global Reset Releasea
8-bit pixel formats: 10
12-bit packed pixel formats: 12
12-bit pixel formats: 12
None
acA4096-11gc Global - None
acA4096-11gm Global - None
acA4096-30uc Global - None
acA4096-30ucMED Global - None
acA4096-30um Global - None
acA4096-30umMED Global - None
acA4096-40uc Global - None
acA4096-40ucMED Global - None
acA4096-40um Global - None
acA4096-40umMED Global - None
acA4112-8gc Global - None
acA4112-8gm Global - None
acA4112-20uc Global - None
acA4112-20ucMED Global - None
acA4112-20um Global - None
acA4112-20umMED Global - None
acA4112-30uc Global - None
acA4112-30ucMED Global - None
acA4112-30um Global - None
acA4112-30umMED Global - None
acA4600-7gc Rolling
Global Reset Release
8-bit pixel formats: 39.4
12-bit packed pixel formats: 43.4
12-bit pixel formats: 47.4
None
acA4600-10uc Rolling
Global Reset Release
8-bit pixel formats: 30.75
12-bit packed pixel formats: 33.875
12-bit pixel formats: 37
None
acA5472-5gc Rollinga
Global Reset Releasea
8-bit pixel formats: 52
12-bit packed pixel formats: 55
12-bit pixel formats: 55
None
acA5472-5gm Rollinga
Global Reset Releasea
8-bit pixel formats: 52
12-bit packed pixel formats: 55
12-bit pixel formats: 55
None
acA5472-17uc Rollinga
Global Reset Releasea
8-bit pixel formats: 13
12-bit packed pixel formats: 16
12-bit pixel formats: 16
None
acA5472-17um Rollinga
Global Reset Releasea
8-bit pixel formats: 13
12-bit packed pixel formats: 16
12-bit pixel formats: 16
None
boA4096-93cc Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
boA4096-93cm Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
boA4112-68cc Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
boA4112-68cm Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
daA1280-54lc Global N/A None
daA1280-54lm Global N/A None
daA1280-54uc Global N/A None
daA1280-54um Global N/A None
daA1600-60lc Global N/A None
daA1600-60lm Global N/A None
daA1600-60uc Global N/A None
daA1600-60um Global N/A None
daA1920-15um Rolling
Global Reset Release
N/A None
daA1920-30uc Rolling
Global Reset Release
N/A None
daA1920-30um Rolling
Global Reset Release
N/A None
daA2500-14lc Rolling
Global Reset Release
N/A None
daA2500-14lm Rolling
Global Reset Release
N/A None
daA2500-14uc Rolling
Global Reset Release
N/A None
daA2500-14um Rolling
Global Reset Release
N/A None
daA2500-60mc Shutter Mode feature not supported Shutter Mode feature not supported Shutter Mode feature not supported
puA1280-54uc Global N/A None
puA1280-54um Global N/A None
puA1600-60uc Global N/A None
puA1600-60um Global N/A None
puA1920-30uc Rolling
Global Reset Release
N/A None
puA1920-30um Rolling
Global Reset Release
N/A None
puA2500-14uc Rolling
Global Reset Release
N/A None
puA2500-14um Rolling
Global Reset Release
N/A None

  1. The first row exposed is always the first row of the sensor, regardless of the image ROI settings. This may result in an image ROI exposure start delay. Also, the last row exposed is always the last row of the sensor, regardless of the image ROI settings.

Sample Code#

dart and pulse Cameras#

// Determine the current sensor shutter mode
SensorShutterModeEnums shutterMode = camera.SensorShutterMode.GetValue();
// Set the sensor shutter mode to rolling
camera.SensorShutterMode.SetValue(SensorShutterMode_Rolling);
// Set the sensor shutter mode to global reset release
camera.SensorShutterMode.SetValue(SensorShutterMode_GlobalResetRelease);
INodeMap& nodemap = camera.GetNodeMap();
// Determine the current sensor shutter mode
String_t shutterMode = CEnumerationPtr(nodemap.GetNode("SensorShutterMode"))->ToString();
// Set the sensor shutter mode to rolling
CEnumerationPtr(nodemap.GetNode("SensorShutterMode"))->FromString("Rolling");
// Set the sensor shutter mode to global reset release
CEnumerationPtr(nodemap.GetNode("SensorShutterMode"))->FromString("GlobalResetRelease");
INodeMap& nodemap = camera.GetNodeMap();
// Determine the current sensor shutter mode
String_t shutterMode = CEnumParameter(nodemap, "SensorShutterMode").GetValue();
// Set the sensor shutter mode to rolling
CEnumParameter(nodemap, "SensorShutterMode").SetValue("Rolling");
// Set the sensor shutter mode to global reset release
CEnumParameter(nodemap, "SensorShutterMode").SetValue("GlobalResetRelease");
// Determine the current sensor shutter mode
string shutterMode = camera.Parameters[PLCamera.SensorShutterMode].GetValue();
// Set the sensor shutter mode to rolling
camera.Parameters[PLCamera.SensorShutterMode].SetValue(PLCamera.SensorShutterMode.Rolling);
// Set the sensor shutter mode to global reset release
camera.Parameters[PLCamera.SensorShutterMode].SetValue(PLCamera.SensorShutterMode.GlobalResetRelease);
// Determine the current sensor shutter mode
string shutterMode = Pylon.DeviceFeatureToString(hdev, "SensorShutterMode");
// Set the sensor shutter mode to rolling
Pylon.DeviceFeatureFromString(hdev, "SensorShutterMode", "Rolling");
// Set the sensor shutter mode to global reset release
Pylon.DeviceFeatureFromString(hdev, "SensorShutterMode", "GlobalResetRelease");
size_t len = 0;
char shutterMode_str[64] = {0};
/* Determine the current sensor shutter mode */
len = sizeof(shutterMode_str);
errRes = PylonDeviceFeatureToString(hdev, "SensorShutterMode", shutterMode_str, &len);
CHECK(errRes);
/* Set the sensor shutter mode to rolling */
errRes = PylonDeviceFeatureFromString(hdev, "SensorShutterMode", "Rolling");
CHECK(errRes);
/* Set the sensor shutter mode to global reset release */
errRes = PylonDeviceFeatureFromString(hdev, "SensorShutterMode", "GlobalResetRelease");
CHECK(errRes);

Other Cameras#

// Determine the current shutter mode
ShutterModeEnums shutterMode = camera.ShutterMode.GetValue();
// Set the shutter mode to rolling
camera.ShutterMode.SetValue(ShutterMode_Rolling);
// Set the shutter mode to global reset release
camera.ShutterMode.SetValue(ShutterMode_GlobalResetRelease);
INodeMap& nodemap = camera.GetNodeMap();
// Determine the current shutter mode
String_t shutterMode = CEnumerationPtr(nodemap.GetNode("ShutterMode"))->ToString();
// Set the shutter mode to rolling
CEnumerationPtr(nodemap.GetNode("ShutterMode"))->FromString("Rolling");
// Set the shutter mode to global reset release
CEnumerationPtr(nodemap.GetNode("ShutterMode"))->FromString("GlobalResetRelease");
INodeMap& nodemap = camera.GetNodeMap();
// Determine the current shutter mode
String_t shutterMode = CEnumParameter(nodemap, "ShutterMode").GetValue();
// Set the shutter mode to rolling
CEnumParameter(nodemap, "ShutterMode").SetValue("Rolling");
// Set the shutter mode to global reset release
CEnumParameter(nodemap, "ShutterMode").SetValue("GlobalResetRelease");
// Determine the current shutter mode
string shutterMode = camera.Parameters[PLCamera.ShutterMode].GetValue();
// Set the shutter mode to rolling
camera.Parameters[PLCamera.ShutterMode].SetValue(PLCamera.ShutterMode.Rolling);
// Set the shutter mode to global reset release
camera.Parameters[PLCamera.ShutterMode].SetValue(PLCamera.ShutterMode.GlobalResetRelease);
// Determine the current shutter mode
string shutterMode = Pylon.DeviceFeatureToString(hdev, "ShutterMode");
// Set the shutter mode to rolling
Pylon.DeviceFeatureFromString(hdev, "ShutterMode", "Rolling");
// Set the shutter mode to global reset release
Pylon.DeviceFeatureFromString(hdev, "ShutterMode", "GlobalResetRelease");
size_t len = 0;
char shutterMode_str[64] = {0};
/* Determine the current shutter mode */
len = sizeof(shutterMode_str);
errRes = PylonDeviceFeatureToString(hdev, "ShutterMode", shutterMode_str, &len);
CHECK(errRes);
/* Set the shutter mode to rolling */
errRes = PylonDeviceFeatureFromString(hdev, "ShutterMode", "Rolling");
CHECK(errRes);
/* Set the shutter mode to global reset release */
errRes = PylonDeviceFeatureFromString(hdev, "ShutterMode", "GlobalResetRelease");
CHECK(errRes);

You can also use the pylon Viewer to easily set the parameters.