Operator ImageSequence

Operator Library: Memory

Availability for Hardware Platforms
Please note that this operator is only available for target platforms of the microEnable 4 series (including PixelPlant).

The main feature of this operator is that it buffers a sequence of SequenceLength successive input images. This sequence is output simultaneously. Moreover, a region-of-interest (ROI) feature is included.

This operator buffers the image stream in the Frame Grabber RAM (DRAM). One VisualApplets resource of type RAM is required (see 'Allocation of Device Resources').

For information on the latency of the operator, see Table 42, 'Individual Latencies of the Operators in Library Memory'.

The simultaneous output of the image sequence is performed by using a kernel of SequenceLength columns. Each kernel component represents one image of the sequence i.e. corresponds to the image sequence number. For example at a sequence length of three, input image 0 will be output at kernel index 0, image 1 on kernel index 1, image 2 on kernel index 2. Next, the operator continuous with the next sequence, i.e. input image 3 will be output on kernel index 0, etc.

The operator does not change the bandwidth. It keeps the bandwidth constant for reading and writing. However the frame rate of the output images is 1/SequenceLength of the frame rate at the input. However, the output image is N times larger (due to the kernel) than a single input image.

The operator works like a FIFO buffer. As soon as enough images are buffered to generate a sequence, the operator will output the sequence. During this period, the next images are stored in the buffer.

Using parameters XOffset, XLength, YOffset and YLength the ROI size can be defined.

[Warning] No Filllevel and Flow Control

The operator does not include parameters to check the fill level and no parameter to check for overflows. Moreover, no InfiniteSource parameter is included. The operator always assumes an infinite source at its input. It is not possible to check if the operator is in an overflow condition. See 'Infinite Sources / Connecting Cameras' for more information on flow control.

Operator Restrictions

  • Empty frames are not supported.

  • Images with varying line lengths are not supported.

  • All input images of a sequence must have the same width and the same height. Otherwise the behavior of the operator is undefined.

  • The minimum allowed input image width is XOffset + XLength and the minimum input image height is YOffset + YLength.

  • The used RAM size is limited. Moreover, due to the internal implementation, the available buffer might be smaller than the physical space. The required memory is related to the maximum image width, maximum image height and the SequenceLength. If the maximum image width is a power of two value, the memory is efficiently used. Check Appendix. Device Resources for more information.

Bandwidth Optimization

The theoretical bandwidth [bits/second] going through an operator that uses the Frame Grabber RAM (DRAM) is calculated in accord with the following formula:

However, the actual bandwidth is always less than the theoretical bandwidth due to the DRAM efficiency.

The maximum bandwidth going through the operator is reached if the product of Bit Width and Parallelism is equal to the internal RAM Port Width.

[Note] Platform-specific values

RAM Port Width and System Clock are platform-specific. See Appendix. Device Resources for detailed information on your individual platform.

I/O Properties

Property Value
Operator Type M
Input Link I, image data input
Output Link O, data input

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 64]12 as I
Arithmetic {unsigned, signed} as I
Parallelism any3 as I
Kernel Columns 1 SequenceLength as I
Kernel Rows 1 as I
Img Protocol VALT_IMAGE2D as I
Color Format any as I
Color Flavor any as I
Max. Img Width 65535 as I
Max. Img Height any as I

1

The range of the input bit width is [1, 64] for unsigned inputs. For signed inputs, the range is [2, 64]. For unsigned color inputs, the range is [3, 63] and for signed color, the range is [6, 63].

2 3

The product of the bit width and the parallelism must not exceed the native ram data width. Check Appendix. Device Resources for more information.

Parameters

SequenceLength
Type static parameter
Default 2
Range [2, possible with RAM size]

This parameter defines the number of images to be concatenated into a sequence. The value of parameter SequenceLength defines the number of columns of the kernel.

XOffset
Type dynamic/static read/write parameter
Default 0
Range [0, Max.Img Width - XLength]

This parameter defines the x-coordinate of the upper left corner of the ROI.

The step size is the parallelism.

XLength
Type dynamic/static read/write parameter
Default 1024
Range [2*Parallelism, Max.Img Width - XOffset]

This parameter defines the width of the ROI.

The step size is the parallelism.

YOffset
Type dynamic/static read/write parameter
Default 0
Range [0, Max.Img Height - YLength]

This parameter defines the y-coordinate of the upper left corner of the ROI.

YLength
Type dynamic/static read/write parameter
Default 1024
Range [2, Max.Img Height - YOffset]

This parameter defines the height of the ROI.

Examples of Use

The use of operator ImageSequence is shown in the following examples:

  • 'Noise Reduction'

    Examples - The average of two acquired images is calculated to reduce noise.