Multiple camera acqusition with FPS lower than intended speed

Updated Apr 7, 2020

Reported In

Hardware

  • Vision Development Module

Issue Details

In NI Vision LabVIEW, It was normal when only one camera was used. But when multiple cameras were used, images are acuired at FPS below the intended speed. What's the problem?
 

Solution

The frame grabber transfers each image into an acquisition buffer in system memory. This image buffers are created in the Image Manager for Grab Acquisition.vi . When using ring buffer, the buffers are created in IMAQdx Configure Ring Acqusition.vi. (If you want to know more about buffers, refer to Choosing an Acquisition Mode )  

When sessins of multiple camera images acqusition are in a VI, each session must ensure that the VI creating this buffer is used independently. Otherwise, separate camera session will share a single buffer. This means that while camera 1 is grabbing and saving, camera 2 must wait until it is done. As a result, the FPS(Frame Per Seconds) that was set up in each actually decreases.
 

Additional Information

In particular, the same problem occurs when a SubVI is created, including the VI that creates a buffer, and it is called in each session. In this case, the created SubVI should be set to non-reentrant. So separate camera session that is calling this VI is sharing the same instance of the VI.