Choosing an Acquisition Mode

Overview

A versatile frame grabber can acquire images in various buffered and non-buffered modes. This gives the user great flexibility in designing applications, but can also make the choice of modes a bit confusing. This document describes the various acquisition modes available and the circumstances under which each should be used.

Table of Contents

  1. Snap

  2. Grab

  3. Ring

  4. Sequence

  5. Onboard Memory

1. Snap

The most simple acquisition mode is the snap, which merely acquires a single image (a "snapshot") into a memory buffer, as shown below:



Further processing can be done on the image after the acquisition is complete. The snap is useful when you only need to work with a single image. For example, if you wanted to check components on a printed circuit board, you could do a snap then perform pattern matching on the resulting image to check for each component's presence.

Another common use of the snap is to call the acquisition repeatedly in a software-timed loop. This method is inefficient and will not provide accurate timing, but can be useful when you only need to monitor a scene periodically. It is commonly used in monitoring applications, such as observing a slowly-varying temperature on an analog meter.

See Also: 
Snap

Back to Top

2. Grab


In the grab acquisition mode, the frame grabber transfers each image into an acquisition buffer in system memory. It continually overwrites the same buffer with new frames as long as the acquisition is in progress. The buffers are copied as necessary to a separate processing buffer where analysis or display may take place:



The grab acquisition is the simplest method of displaying a live image in real time. It is most useful in applications where a visual display is all you need. A typical application might involve monitoring a security gate to allow a guard to recognize and grant access to visitors from a remote location.

In some cases, the single acquisition buffer used in a grab is insufficient. If you are trying to acquire and process every single image, any operating system delays could cause frames to be missed. There is also a very short time available for the image to be copied into the processing buffer before the acquisition buffer is overwritten with the next frame. With dynamic scenes, you can clearly see this effect appear as a horizontal discontinuity in the image; one portion of the image comes from the latest frame, while the rest is from the previous frame. In these cases, a ring acquisition is recommended instead.

See Also: 
Grab

Back to Top

3. Ring


A ring acquisition is similar to a grab, but with two major differences:

  • multiple buffers are used to store the images acquired by the frame grabber, and

  • no copying of buffers is required; the acquisition continues into other buffers while processing is done directly in the acquisition buffer


Of course, you may still want to copy a buffer for use in later processing, but the problem of overwriting the buffer during the copy will be avoided. The choice of how many buffers to use depends on the following factors:

  • available system memory

  • maximum delay expected to be introduced by operating system interrupts

  • maximum length of time your processing will take for a single frame

  • how critical it is to capture every single frame of the acquisition

  • how much delay your application can tolerate before responding to an image event*


In practice, you can monitor the number of frames acquired versus the number of buffers processed, and increase the buffer count until no frames are lost. The ring acquisition is recommended for most high-speed applications where real-time processing is to be performed on the image. A typical application might involve monitoring a dynamic experiment and saving all the resulting images to files.

Note: Be aware that there is a trade-off when increasing the number of buffers used. As you use more buffers, the chances of missing a frame will drop, but the maximum delay between acquisition and response will rise. For example, if you allocate 30 buffers for a 30 frames/sec acquisition, you could see up to a one second response time between an action and its appearance on the display.

See Also: 
Ring

Back to Top

4. Sequence

A sequence acquisition, like a ring, uses multiple buffers, but only writes to them one time. The processing and display can then take place after the acquisition is complete.



The sequence is useful when you are only interested in a single event which occurs over a relatively short period of time. Often there will be a trigger associated with the event to start the sequence acquisition. A sufficient number of buffers should be allocated to cover the duration of the event.

Typical applications for the sequence include velocity measurements. To approximate an instantaneous velocity, you would only need a short duration measurement. Follow-on processing would be used to identify the object of interest and measure its translation over the known time interval.

See Also: 
Sequence
Factors to Consider when Triggering

Back to Top

5. Onboard Memory


For frame grabbers that provide onboard memory, all of the above modes may be used. The acquisition buffer(s) are just allocated in the onboard memory rather than system memory. When the buffer is needed for processing, it is copied into system memory. The links below contain more information about onboard acquisitions.

See Also: 
Benefits of Onboard Memory


转载于:https://my.oschina.net/RoyalLiu/blog/348933

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值