IDS peak comfortC v1.15.0
Loading...
Searching...
No Matches
Shutter mode

Enumerations

enum  peak_shutter_mode { PEAK_SHUTTER_MODE_UNKNOWN , PEAK_SHUTTER_MODE_ROLLING , PEAK_SHUTTER_MODE_GLOBAL , PEAK_SHUTTER_MODE_GLOBAL_RESET }

Functions

peak_access_status peak_ShutterMode_GetAccessStatus (peak_camera_handle hCam)
 Query the shutter mode access status.
peak_status peak_ShutterMode_GetList (peak_camera_handle hCam, peak_shutter_mode *shutterModeList, size_t *shutterModeCount)
 Get the list of currently available shutter modes.
peak_status peak_ShutterMode_Set (peak_camera_handle hCam, peak_shutter_mode shutterMode)
 Set the shutter mode.
peak_status peak_ShutterMode_Get (peak_camera_handle hCam, peak_shutter_mode *shutterMode)
 Get the shutter mode.

Detailed Description

During image capture, the most important phases are the exposure and the read out. Before exposure, all relevant pixels are reset, i.e. their charge is emptied. During exposure, the pixels collect photons and convert it to electrical charge. After exposure, this charge is transferred to the sensor's electronics and read out to the subsequent modules of the camera, e.g. the FPGA.

The sequence of these steps differs for global and rolling shutter methods.

Global shutter

A global shutter sensor starts and stops the exposure of all rows simultaneously. In other words, all pixels are exposed for exactly the same duration and at exactly the same point in time. On exposure end, all pixels transfer the collected charge to a storage node to protect it from unwanted further exposure until read out. The read out process is sequential, row by row.

Global shutter timing diagram

With global shutter sensors, fast-moving objects can be captured without distortions. If you use an artificial light source for illumination, make sure that the frequency of the illumination and the frame rate of the camera match to avoid beating of the image brightness (slow "breathing", flickering).

The pixel design of global shutter sensors is more complex compared to rolling shutter sensors. Thus, global shutter sensors are typically more expensive.

Rolling shutter

With rolling shutter, the exposure starts for each row separately and sequentially. It stops after integration time, transferring and reading out the pixels row after row.

Rolling shutter timing diagram

Although all rows are exposed for exactly the same period of time, the point in time for each row's exposure is slightly different. Each row caught the scene at a slightly different point in time. As a results, moving objects in the scene may appear distorted. This is called the "rolling shutter effect", see following picture below.

Example for the rolling shutter effect with a moving car

Using artificial lighting, rolling shutter sensors can show dark and bright horizontal stripes. These stripes can be stationary or marching vertically across the image. Increasing the exposure time leads to a lower contrast between bright and dark stripes. To completely eliminate this disturbance, rolling shutter cameras usually offer a global flash window, to expose all sensor rows at the same time by firing a flash signal as soon as integration has started in each row.

The pixel design of rolling shutter sensors is generally less complex compared to the pixel design of global shutter sensors. Therefore, rolling shutter sensors are cheaper.

Enumeration Type Documentation

◆ peak_shutter_mode

Since
1.13
Enumerator
PEAK_SHUTTER_MODE_UNKNOWN 

Unknown shutter mode.

Use this value for the initialization of variables of type peak_shutter_mode.

PEAK_SHUTTER_MODE_ROLLING 

Rolling Shutter.

The shutter opens and closes sequentially for the pixels. All pixels have the same exposure time but the exposure of the pixel lines starts sequentially.

PEAK_SHUTTER_MODE_GLOBAL 

Global Shutter.

The shutter opens and closes at the same time for all pixels. All pixels have the same exposure time and the exposure of all pixels starts simultaneously.

PEAK_SHUTTER_MODE_GLOBAL_RESET 

Global Reset.

The shutter opens at the same time for all pixels but ends in a sequential manner. Each pixel line has a different exposure time but the exposure of all pixels starts simultaneously.

Note
The availability of this entry may depend on the trigger mode.

Function Documentation

◆ peak_ShutterMode_Get()

peak_status peak_ShutterMode_Get ( peak_camera_handle hCam,
peak_shutter_mode * shutterMode )

Get the shutter mode.

Reads the current shutter mode.

Parameters
[in]hCamThe camera handle.
[out]shutterModeThe shutter mode.
Returns
PEAK_STATUS_SUCCESS Operation was successful; no error occurred.
PEAK_STATUS_ACCESS_DENIED The shutter mode control is not available for read access. Check the access status via peak_ShutterMode_GetAccessStatus.
PEAK_STATUS_INVALID_PARAMETER shutterMode is an invalid pointer.
PEAK_STATUS_INVALID_HANDLE hCam is an invalid camera handle.
PEAK_STATUS_NOT_INITIALIZED The library is not initialized.
PEAK_STATUS_ERROR An unexpected internal error occurred.
Since
1.13

◆ peak_ShutterMode_GetAccessStatus()

peak_access_status peak_ShutterMode_GetAccessStatus ( peak_camera_handle hCam)

Query the shutter mode access status.

Provides the current access status for the shutter mode.

This function implements the Access Status Query principle.

Parameters
[in]hCamThe camera handle.
Returns
PEAK_ACCESS_READWRITE The shutter mode is readable and writeable.
PEAK_ACCESS_READONLY The shutter mode is readable only.
PEAK_ACCESS_GFA_LOCK The shutter mode is not accessible because the GFA write access is enabled.
PEAK_ACCESS_NONE The shutter mode is not accessible.
PEAK_ACCESS_NOT_SUPPORTED The shutter mode is not supported.
PEAK_ACCESS_INVALID The function failed. Call peak_Library_GetLastError to get the error code and description.

If the function indicates an error by returning PEAK_ACCESS_INVALID, these are the possible errors:

Since
1.13

◆ peak_ShutterMode_GetList()

peak_status peak_ShutterMode_GetList ( peak_camera_handle hCam,
peak_shutter_mode * shutterModeList,
size_t * shutterModeCount )

Get the list of currently available shutter modes.

Queries the list of currently available shutter modes.

The list of available shutter modes may depend on the camera configuration and the camera status.

Note
The available entries may depend on the trigger mode.

This function implements the Two Staged Data Query principle.

Parameters
[in]hCamThe camera handle.
[out]shutterModeListPointer to a user allocated array buffer to receive the shutter mode list. If this parameter is NULL, shutterModeCount will contain the current number of shutter modes.
The required size of shutterModeList in bytes is shutterModeCount x sizeof(peak_shutter_mode).
[in,out]shutterModeCount
  • shutterModeList equal NULL:
    out: minimal number of shutter modes. shutterModeList must be large enough to hold
  • shutterModeList unequal NULL:
    in: number of shutter modes shutterModeList can hold
    out: number of shutter modes filled by the function
Returns
PEAK_STATUS_SUCCESS Operation was successful; no error occurred.
PEAK_STATUS_BUFFER_TOO_SMALL shutterModeList is not NULL and the value of *shutterModeCount is too small to receive the expected amount of data.
PEAK_STATUS_ACCESS_DENIED The shutter mode feature is not accessible. Check the access status via peak_ShutterMode_GetAccessStatus.
PEAK_STATUS_INVALID_PARAMETER shutterModeCount is an invalid pointer.
PEAK_STATUS_INVALID_HANDLE hCam is an invalid camera handle.
PEAK_STATUS_NOT_INITIALIZED The library is not initialized.
PEAK_STATUS_ERROR An unexpected internal error occurred.
Note
Consider that the shutter mode list might change between the size query call and the list query call.
This may be the case if the camera configuration or the camera status have changed in the time between the two function calls.
Since
1.13

◆ peak_ShutterMode_Set()

peak_status peak_ShutterMode_Set ( peak_camera_handle hCam,
peak_shutter_mode shutterMode )

Set the shutter mode.

Writes the desired shutter mode.

Parameters
[in]hCamThe camera handle.
[in]shutterModeThe shutter mode to set.
Returns
PEAK_STATUS_SUCCESS Operation was successful; no error occurred.
PEAK_STATUS_OUT_OF_RANGE shutterMode is out of range. Check the available shutter modes via peak_ShutterMode_GetList.
PEAK_STATUS_ACCESS_DENIED The shutter mode control is not available for write access. Check the access status via peak_ShutterMode_GetAccessStatus.
PEAK_STATUS_INVALID_HANDLE hCam is an invalid camera handle.
PEAK_STATUS_NOT_INITIALIZED The library is not initialized.
PEAK_STATUS_ERROR An unexpected internal error occurred.
Since
1.13