Resulting Frame Rate#
This is useful, for example, if you want to know how long you have to wait between triggers.
The frame rate is expressed in frames per second (fps).
Using the Feature#
Why Check the Resulting Frame Rate#
Optimizing the Frame Rate#
When the camera is configured for free run image acquisition and continuous acquisition, knowing the resulting frame rate is useful if you want to optimize the frame rate for your imaging application. you can adjust the camera settingslimiting the frame rate until the resulting frame rate reaches the desired value.
Optimizing Triggered Image Acquisition#
When the camera is configured for triggered image acquisition, knowing the resulting frame rate is useful if you want to trigger the camera as often as possible without overtriggering. You can calculate how long you must wait after each trigger signal by taking the reciprocal of the resulting frame rate: 1 / Resulting Frame Rate.
Example: If the resulting frame rate is 12.5, you must wait for a minimum of 1/12.5 = 0.08 seconds after each trigger signal. Otherwise, the camera ignores the trigger signal and generates a Frame Start Overtrigger event.
Checking the Resulting Frame Rate#
To check the resulting frame rate, i.e., the estimated frame rate with the current camera settings, read the value of the
ResultingFrameRate parameter. The value is expressed in frames per second (fps).
The parameter value takes all factors limiting the frame rate into account.
- Checking the resulting frame rate works when the camera is idle as well as when the camera is acquiring images.
- If you want to check the resulting frame rate of Basler cameras that aren't connected to your computer at the moment, use the online Basler Frame Rate Calculator.
Factors Limiting the Frame Rate#
Several factors may limit the frame rate on any Basler camera:
- Acquisition Frame Rate: If the Acquisition Frame Rate feature is enabled, the camera's frame rate is limited by the acquisition frame rate. For example, if you enable the Acquisition Frame Rate feature and set an acquisition frame rate of 10 fps, the camera's frame rate will never be higher than 10 fps.
- Bandwidth Assigned: Bandwidth limitations can reduce the frame rate, especially when more than one camera is connected to a computer. The extent of the reduction depends on the camera model, the number of cameras connected to the computer, and the computer's hardware.
- Camera Operation Mode: If the
CameraOperationModeparameter is available and set to
LongExposure, the frame rate decreases.
- Device Link Throughput: If the
DeviceLinkThroughputLimitModeparameter is available and set to
On, it limits the available bandwidth for data transmission to the
DeviceLinkThroughputLimitparameter value. This also limits the frame rate.
- Exposure Time: If you use very long exposure times, you can acquire fewer frames per second.
- Field Output Mode: If available, using the Field 0 Output Mode or Field 1 Output Mode increases the camera's frame rate.
- Image ROI: if you use a large image roi, you can acquire fewer frames per second. on most cameras, decreasing the image roi height increases the frame rate. On some cameras, decreasing the image ROI width also increases the frame rate.
- Parameter Limits: On some cameras, you can use the Remove Parameter Limits feature to remove the frame rate limitation.
- Sensor Bit Depth: On some cameras, you can decrease the sensor bit depth to increase the frame rate.
- Sensor Readout Mode: On some cameras, you can enable a fast sensor readout mode that allows you to increase the frame rate. This can, however, have adverse effects on image quality.
- Shutter Mode: If the Global Reset Release shutter mode is selected, overlapped image acquisition is not possible. This decreases the camera's frame rate.
- Stacked Zone Imaging: If available, using the Stacked Zone Imaging feature increases the frame rate.
// Get the resulting frame rate double d = camera.ResultingFrameRate.GetValue();
INodeMap& nodemap = camera.GetNodeMap(); // Get the resulting frame rate double d = CFloatPtr(nodemap.GetNode("ResultingFrameRate"))->GetValue();
INodeMap& nodemap = camera.GetNodeMap(); // Get the resulting frame rate double d = CFloatParameter(nodemap, "ResultingFrameRate").GetValue();
// Get the resulting frame rate double d = camera.Parameters[PLCamera.ResultingFrameRate].GetValue();
// Get the resulting frame rate double d = Pylon.DeviceGetFloatFeature(hdev, "ResultingFrameRate");
/* Macro to check for errors */ #define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc) GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */ double d = 0; /* Get the resulting frame rate */ errRes = PylonDeviceGetFloatFeature(hdev, "ResultingFrameRate", &d); CHECK(errRes);
You can also use the pylon Viewer to easily set the parameters.