LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

IMAQdx capturing at 30 FPS even though camera set to higher FPS

I'm programming a PointGrey grasshopper USB3.0 camera and have successfully changed the camera acquisition settings, as reflected in image brightness within labview, and the settings in MAX, when reviewed externally.

 

However the capture in this VI seems limited to 30 FPS, based on the wait for buffer being enabled.

 

Is there an additional setting?

See attached

 

Thanks

0 Kudos
Message 1 of 20
(4,500 Views)

Hi ibutter,

 

Before we get into the settings, could you be more specific on which camera you are using?  It looks like some of the PointGrey Grasshopper cameras cap out at 30 fps - if this is the case for your camera, that might explain why you are running into this limit (Source: Grasshopper3).

 

Regards,

 

George B.

Applications Engineer

National Instruments

 

0 Kudos
Message 2 of 20
(4,443 Views)

Apologies, it's the GS3-U3-32S4M-C which does go up to 121 FPS

https://www.ptgrey.com/grasshopper3-32-mp-mono-usb3-vision-sony-pregius-imx252

 

I've managed to modify default settings in the camera, setting the framerate to 120 FPS, so that the default settings can be recalled by labview after init.

 

In MAX the frame rate is set to 120 FPS, but the actual FPS in labview seems to be half this.

 

Also, as can be seen in the attached (if anyone happens to have the same model camera) the frame grab buffer number always increments by 1, indicating that labview isn't just failing to grab the data fast enough, and that the camera is indeed running slower.

 

 

0 Kudos
Message 3 of 20
(4,438 Views)

There are a lot of things you can do to improve the frame rate.

1. separate read / write to 2 parallel loop !

2. use array of images for buffer ( I used 300 VGA size images)

3. use lower level VIs instead of Grab

4. write to image files first, post process to create movie

5. don't use NI buffer index for read image, manage the index yourself

6. use jumbo packet in Windows TCP/IP settings

7. turn off firewall

8. use a solid driver instead of a normal hard disk

9. use 64 bit LabVIEW so that you can use RAM more than 4 GB

 

 

 

George Zou
0 Kudos
Message 4 of 20
(4,432 Views)

Do you have any more luck if you move the image update outside of the loop (I don't know if this is possible for you, since you'll lose live updates, but might be worth testing).

 

If it changes anything, then you can assume the loop is taking too long. Producer/Consumer might help in that case.


GCentral
0 Kudos
Message 5 of 20
(4,430 Views)

Moving the image update out of the loop made no change, still runs at 60 FPS, while set to 120 FPS acq rate in MAX.

Thanks for the suggestion

0 Kudos
Message 6 of 20
(4,426 Views)

To answer suggestions 1, 4 and 8, this occurs even when image/video saving is disabled

 

2. Not sure how to implement this, any examples would be appreciated.

3. Will look into this

5. Do you have an example of how to do this? I guess it relates to doing manual grab like in 3)?

6 & 7. I'm running over USB 3.1 so I guess this won't help?

9. I am running 64-bit labview already (with a SSD)

 

Thanks for the suggestions

Message 7 of 20
(4,423 Views)

Have you tried with "wait for next buffer" set to false?

0 Kudos
Message 8 of 20
(4,417 Views)

I have, and the loop rate shoots up to ~325 FPS but the grabbed frames are no longer unique.

0 Kudos
Message 9 of 20
(4,410 Views)

What if you check that the buffer number has changed before calculating the frame rate and updating your image indicator?

0 Kudos
Message 10 of 20
(4,403 Views)