Operator TxImageLink

Operator Library: Synchronization

The TxImageLink operator allows to send images to an RxImageLink operator any place in the design. Both operators establish a connection without a link.

With the image transfer between the TxImageLink and RxImageLink operators, it is possible to implement loops in a design.

[Caution] Loops require data buffering strategy

Operators TxImageLink and RxImageLink do not buffer data. Therefore, when implementing loops, you need to take special care with regard to data buffering to avoid deadlocks.

All image formats supported by VisualApplets in general are supported. The image format remains the same, i.e., the format at the ouput of RxImageLink is the same as the format TxImageLink receives at its input.

The parameter Channel_ID defines a channel ID to address the receiving RxImageLink operator. The parameter value has to be unique and must not be used by any other TxImageLink operator in the design.

There has to exist exactly one RxImageLink operator in the design which is using the same channel ID and receives the image data.

Each TxImageLink operator in a design is connected to exactly one RxImageLink operator via one channel ID. In the Resource Dialog of VisualApplets, you can see that one ImageChannel resource is used for each TxImageLink-RxImageLink connection. Resource ImageChannel allows to control the assignment of individual TxImageLink operators to individual RxImageLink operators. For the number of available ImageChannel resources (which also defines the maximum number of allowed TxImageLink and RxImageLink operators in a design), see Appendix. Device Resources.

[Important] Parametrization of Link Format in Loops

As soon as the link properties dialog is opened, the "automatic update" feature will adapt the link properties (such as bit width, or image dimensions) according to the operator chain's configuration. The input format of TxImageLink always defines the output format of RxImageLink (100% automatic consistency). Therefore, when you use operators TxImageLink and RxImageLink to implement loops, you need to take special care regarding the parametrization of the link formats.

Example

Wrong Implementation, value of link parameter Bit Width gets higher with every iteration through the loop:

Right Implementation, Operator CastBitWidth changes the value of link parameter Bit Width back to the original value with every iteration through the loop:

[Important] Synchronizing Channels between different hierarchical design levels

If you use a TxImageLink/RxImageLink pair to set up a data transfer channel between different hierarchical design levels, this connection is treated as an M operator. Therefore, you may need to implement additional synchronization elements (that are not required with a direct connection).

I/O Properties

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

Supported Link Format

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

1

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

Parameters

Channel_ID
Type static parameter
Default 0
Range [0, 1023]

The channel ID of the image link. See descriptions above.

Examples of Use

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