Operator ImageValve

Operator Library: Synchronization

This operator can be used as a valve to control the data flow of the input link. The signal input OpenValve is used to control the valve. Hence, the operator allows to influence the data flow of pixels, lines and frames between I and O. Limiting the maximum bandwidth is the main purpose of this operator. Broadly, this operator is used to block and to control the speed of image processing. For example, this operator can be used in conjunction with CreateBlankImage to implement an image generator with controllable output frame rate.

If the valve is closed, the VisualApplets flow control will block all incoming data. The input pipeline will then be blocked. Ensure that a sufficiently sized buffer is used if operators are used that cannot stop their processing. An example are free running cameras connected to the frame grabber. If the output of the operator is blocked by any successive operator, the operator will forward this block to the input. In this case the opening of the valve has no influence. Do not mix up the valve with a gate. A gate operator discards the input data while it is closed.

The valve is controlled by the signal input OpenValve and the operator's parameters. If OpenValve is set to one, the operator allows the pass of SequenceLength pixels, lines or frames depending on the parameter settings of Mode.

If OpenValve is set to a constant one the operator allows an unblocked pass of the image data from input link I to output link O, i.e. the valve is open all the time.

If a second pulse is set to OpenValve while the operator's valve is still open and a sequence is processed, the pulse is ignored. If the sequence length is changed using parameter SequenceLength while currently a sequence is processed, the operator first finishess the previous sequence and will use the new value afterwards.

The high level simulation in VisualApplets will pass all input images directly to the output as no timing is simulated. Any values at input link OpenValve are ignored.

I/O Properties

Property Value
Operator Type M
Input Links I, data input
OpenValve, control signal input
Output Link O, data output

Supported Link Format

Link Parameter Input Link I Input Link OpenValve Output Link O
Bit Width [1, 64]1 1 as I
Arithmetic {unsigned, signed} unsigned as I
Parallelism any 1 as I
Kernel Columns any 1 as I
Kernel Rows any 1 as I
Color Format any VAF_GRAY as I
Color Flavor any FL_NONE as I
Max. Img Width any any as I
Max. Img Height any any as I


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].

Synchronous and Asynchronous Inputs

  • All inputs are asynchronous to each other.


Type dynamic/static read/write parameter
Default FRAME

Set the mode of the operator. Depending on this parameter the valve opens for SequenceLength pixels, lines or frames.

The availability of modes LINE and FRAME depends on the image protocol of input link I.

Type static parameter
Default 10
Range [1, 64]

Set the number of bits to represent the sequence length.

This parameter is activated only if parameter SequenceLength is set to dynamic.

Type dynamic/static read/write parameter
Default 1
Range dynamic: [1, 2^SequenceLengthBits - 1], static: [1, 2^64 - 1]

Set the length of the sequence. The operator will output the given number of pixels, lines or frames depending on parameter Mode if the operator is in open state.

If Mode is set to PIXEL, the value has to be divisible by the parallelism.

Examples of Use

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

  • 'Hardware Test'

    An example for hardware self test of DMA, RAM, GPIOs, Trigger and LEDs.

  • 'Image Flow Control'

    Example - For debugging purposes of the designs internal data flow control in hardware and a possible compensation.