LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Large data (images) on a queue

I am doing image acquisition at about 20 frames per second. The data comes in much faster than it can be processed. Right now I shove the image data on a queue and process it in another loop. However, in reading on the queue operation it seems memory is always being reallocated. Does anyone have a better solution for handling the data?
0 Kudos
Message 1 of 5
(3,108 Views)
I think IMAQ uses pointers to images. A less-expensive substitute would be
juggling filenames.

Labview just isn't very good at handling large data from lack of pointers.
There's techniques to avoid copies, but the easiest way is to avoid it
altogether by keeping the data out of memory.

-joey

"rammer" wrote in message
news:506500000008000000927F0000-1042324653000@exchange.ni.com...
> I am doing image acquisition at about 20 frames per second. The data
> comes in much faster than it can be processed. Right now I shove the
> image data on a queue and process it in another loop. However, in
> reading on the queue operation it seems memory is always being
> reallocated. Does anyone have a better solution for handling the
> data?
0 Kudos
Message 2 of 5
(3,108 Views)
Are you using NI's image acquisition products? If you are you can search on 'sequence' type of acquisition and set up some buffers to store all your images, then process all of them. Some of NI's board have onboard memory so you can even store your buffers in hardware and then process them with software, or store the buffers in system memory.

Good luck!

Nestor S.
Nestor
0 Kudos
Message 3 of 5
(3,108 Views)
No I am using a third party frame grabber, so I cannot utilize the sequence structure.
0 Kudos
Message 4 of 5
(3,108 Views)
How about creating your own buffer, prescaled large enough to hold the incoming data without having to rescale...you can have logic to tell the current insert position, number of elements etc...(similar to what is used in a circular buffer). Syncronisation can be achieven in a number of ways..you could e.g. still use ques but now only to hold an array index ready for processing instead of the data itself...
0 Kudos
Message 5 of 5
(3,108 Views)