04-23-2013 10:59 PM
I have developed a LabVIEW application that can record up to four sequence-based acquisitions simultaneously on a single computer. It works very well except for one issue. As demonstrated in the vision examples, I have to pre-allocate the memory for the acquisition by specifying the number of frames for each camera before starting the acquisition. If the user requests a large number of frames then an error is thrown (out of memory) by LabVIEW during this process and the acquisition fails. I would like to be able to precalculate how much memory is required for the requested acquisition and compare it to the available memory before the acquisition is started. In short, can anyone suggest a method for doing this?
My first question is whether there is a way to determine the amount of memory available to IMAQ for sequence acquisition? Is there any special requirements for this memory (must be contiguous, etc)?
Naturally there are some complicating factors for the usage side of the equation as well. Each of the four cameras can have a different bit depth and resolution, so I can't evenly divide the available memory between the participating cameras because each camera will require a different amount of memory for the same number of frames. Is there a reliable formula that determines memory requirements based on image type (monochrome/color, 8-bit, etc) and number of pixels?
If these topics are covered in a white paper or a developer's guide, please let me know which one and I can continue my quest there.
Thanks in advance for the help!!
04-25-2013 01:06 PM
Hello ParmStrong,
I have pulled a small list of resources that includes articles from both Developer Zone and KnowledgeBase. You should be able to find answers to most of these questions in there.
[1] How Can I Monitor Memory Used to Store Images for IMAQ Applications?
[2] How Do I Calculate the Bandwith Required for My Image Acquisition?
[4] Memory Management with IMAQ
04-25-2013 01:17 PM
These are extremely useful.
Thank you for taking the time to compile the list.
Paul