Resulting Frame Rate
The Resulting Frame Rate
camera feature allows you to determine the
estimated frame rate with the current camera settings.
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 settings
limiting 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 ResultingFrameRateAbsResultingFrameRate
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.
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 CameraOperationMode
parameter is available and set to LongExposure,
the frame rate decreases.
- Device Link Throughput: If the DeviceLinkThroughputLimitMode
parameter is available and set to On,
it limits the available bandwidth for data transmission to the DeviceLinkThroughputLimit
parameter 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.
External Links
Sample Code
- C++ (Native)
- C++ (Generic)
- C#
- C.NET
- C
// 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();
// 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.