02-24-2010 09:17 AM
danilo,
Doing a full Snap each time completely reconfigures both the PC side and the camera side with every iteration. It is possible that on your different PCs the time required to allocate and lock the needed buffers(s) varies. Snap is not meant for high-performance in a repetitive loop as it is designed to be as simple and stateless as possible and so it releases all resources used (such as firewire reserved bus bandwidth) every time.
Ben's suggestion is correct that if you want high performance in a loop you likely want to use the lower-level functions and keep the PC and camera in a configured state between acquiring and simply start/stop it each time instead. Depending on what camera settings you want to change this might be ok even while everything is configured but just stopped. If you are changing the video mode then you really do not have a choice other than to unconfigure/configure, which is what the Snap is doing every time.
Eric
02-24-2010 09:43 AM - edited 02-24-2010 09:46 AM
Thanks for reply.
I understand that snap is time concuming, but the performance of SNAP function on slower PC's is even better than on fast PC.
I do not expect high performance if the expected time of SNAP function is around 350ms up to 450ms on Firewire B.
I'd like to now what is the reason for almost 100% longer operation of SNAP function.
As I remember I had better performanve with older legacy drivers than with new ones.
Is it possible to have better performance with IMAQdx driver?
Regards!
02-25-2010 08:08 AM
No other ideas?
Regards!
02-25-2010 10:41 AM
danilo,
A large amount of the time needed to do the Snap is independent of the speed of the computer. Some things that might affect it (off the top of my head):
a) Camera firmware - different versions often have vastly different timing for writing to certain registers
b) Camera settings - some registers for some settings might have vastly different timings. Can you compare the camera settings stored in the ICD file for the two systems?
c) Firewire card chipset - Configuration requires lots of register I/O operations that must be submitted to the firewire card and then completed. The implementation of those writes and the latency involved might be highly dependent on the chipset used, along with things like your system's bus topology (PCI express has a much higher latency for register operations compared to PCI, for instance)
d) Time taken to acquire the image - The total time for Snap is including the time to expose the image sensor and transfer the image. Are you sure you have the cameras configured for the same exposure time, frame rate, and transfer settings (bus speed, packet size, etc)?
Eric
02-25-2010 12:29 PM
Hello Eric!
Thanks for your sugestionsa and reply.
Please see my coments bellow.
A large amount of the time needed to do the Snap is independent of the speed of the computer. Some things that might affect it (off the top of my head):
a) Camera firmware - different versions often have vastly different timing for writing to certain registers
Danilo: I use same cameras on both computers and same firmware on cameras, so that can't be the cause.
b) Camera settings - some registers for some settings might have vastly different timings. Can you compare the camera settings stored in the ICD file for the two systems?
Danilo: I have done that and they are exactly the same in ICD file and also then in my aplication.
c) Firewire card chipset - Configuration requires lots of register I/O operations that must be submitted to the firewire card and then completed. The implementation of those writes and the latency involved might be highly dependent on the chipset used, along with things like your system's bus topology (PCI express has a much higher latency for register operations compared to PCI, for instance)
Danilo: I use PCI EXPRESS card firewire host card.
d) Time taken to acquire the image - The total time for Snap is including the time to expose the image sensor and transfer the image. Are you sure you have the cameras configured for the same exposure time, frame rate, and transfer settings (bus speed, packet size, etc)?
Danilo: This is good question. All general setings regarding exposure time... are same. I'm not sure about bus speed, packet size,... Setings in ICD file are correct.
Regards!
02-25-2010 02:49 PM
Is it the same OS on both systems?
Eric
02-25-2010 03:35 PM
Hello!
Yes WIN XP SP3.
Regards!
02-26-2010 02:10 AM
Hello!
Here are some news.
I have found parial naswers on this post from JohannS and in this way I'd like to thank him:
http://forums.ni.com/ni/board/message?board.id=200&message.id=12072&query.id=550525#M12072
With this modification on registry file I came with FireWireB camera AVT Stingray F146C to SNAP function time of
around 170ms. And that is realy great and I'm satisfied with thatand more than happy. I yust have to see how
stable will be in operation mode and I'll report about that later.
But there I have similar issue with FireWireA camera AVT Marlin F145C where I also make progress with this
modification in speed, but the problem was that when I made modification the acquired image was not OK.
So anyone now If I could change any other parameter also in this part of registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\imaq1394k\Parameters
What are other parameters meant for?
Regards!
02-28-2010 11:57 PM
Hello!
Any other info regarding that?
Regards!
03-08-2010 04:48 AM
Hello!
Experts from NI could help me?
Regards!