What to do when the camera frame rate is abnormal during continuous hardware triggering?

Questions

The camera frame rate is abnormal during continuous hardware triggering, including:

  1. The camera’s frame rate of image acquisition is lower than the frequency of the trigger signal input

  2. The camera’s frame rate of image acquisition is higher than the frequency of the trigger signal input

The camera’s frame rate of image acquisition is lower than the frequency of the trigger signal input

The possible causes and corresponding solutions are as follows:

  • The frequency of the external trigger signal input is lower than expected

    Use an oscilloscope to measure the trigger source signal and verify if its frequency is correct.

  • The frequency of the external trigger signal input is higher than the camera’s frame rate in free image acquisition mode (TY_TRIGGER_MODE_OFF)

    The frequency of the external trigger signal input is higher than the camera’s frame rate in free image acquisition mode (TY_TRIGGER_MODE_OFF), exceeding the device’s processing capability.

    Reduce the frequency of the external trigger source so that it is less than or equal to the frame rate of capturing in free acquisition mode.

  • [Network camera] Network retransmission is not enabled

    Enable network retransmission with the following code.

    ASSERT_OK(TYSetBool(hDevice,TY_COMPONENT_DEVICE,TY_BOOL_GVSP_RESEND,true))
    
  • [Network camera] The amount of data is too large

    The amount of data is too large, and the processing capacity of the host computer is limited.

    Suggest using the high-performance host computer or reducing the amount of data.

  • The host computer system is in low-performance mode

    When the host computer system is in low-performance mode, data reception is unstable.

    Set the host computer system to high-performance mode according to the operating system.

[Windows System]

Please follow the steps below to set up the host computer system:

  1. Set the value of “Receive Buffer” in the host computer system settings to maximum.

    设置接收缓冲区

    Set receive buffer

  2. Set the “Power Options” in the host computer system to “High Performance” mode.

    设置高性能模式

    Set high-performance mode

[Linux System]

Linux system defaults to powersave mode for CPU performance, it needs to be set to performance mode.

Please follow the steps below to set the performance mode:

  1. Enter the following command in the terminal to view the CPU performance of the host computer.

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
  2. If the CPU performance of the host computer is found to be powersave, enter the following command in the terminal to install the software indicator-cpufreq.

    sudo apt-get install indicator-cpufreq
    
  3. Reboot the host computer.

  4. Click on the icon in the upper right corner of the interface to switch the CPU performance to performance.

    切换 CPU 性能

    Switch CPU performance

  • [USB Camera] USB camera connection is incorrect

    The camera with a USB3.0 port maybe plugged into the USB2.0 port of the host computer, please check if the connection is correct.

  • [USB Camera] Poor quality of USB cable

    Replace the USB cable.

The camera’s frame rate of image acquisition is higher than the frequency of the trigger signal input

The possible causes and corresponding solutions are as follows:

  • The frequency of the external trigger signal input is higher than expected

    Use an oscilloscope to measure the trigger source signal and verify if its frequency is correct.

  • External trigger signals have a high level of noise, leading to false triggering

    Please refer to Connecting to external trigger signals for instructions and select an external trigger source signal that meets the requirements. If necessary, you can purchase an external trigger source produced by Percipio.

  • The host computer sent a software trigger command

    After deleting the following lines of code in the sample code SimpleView_TriggerMode1, you can compile, generate, and run the executable file:

    SDK of old version:

    ASSERT_OK( TYSendSoftTrigger(hDevice) );
    

    SDK of new version :

    while(TY_STATUS_BUSY == TYSendSoftTrigger(hDevice));