The M-type operator PixelReplicator replicates the pixels at input link I. The pixel value at input Replicate sets the number of replications for each pixel at input link I. A value of "0" at input link Replicate means that the pixel at input link I will be deleted. The number of pixels at both input links has to be the same. Variable line lengths, empty images and asynchronous inputs are allowed. The parallelism at the input is one. The parallelism at the output can be any.
The following example will explain the functionality of this operator.
Here the parallelism at the output is four, at the input (as always) one. As shown in the figure above pixel "1" at input link I is duplicated as the input at Replicate is "2". The same happens to pixel "2" at input link I. Due to a parallelism of four the duplicated pixels "1" and "2" are forwarded at once to the output link O. Pixel "3" at input link is deleted due to "0" at input Replicate. Pixel"4" shall be replicated 9-times. Since parallelism is smaller than the replication rate the input pipeline is hold until all values are replicated. Non used output pixels are not defined at the output link O (marked with "x" in the figure above).
The image dimensions at input links I and Replicate have to be the same. Otherwise the simulation gives an error. If the operator is used at this specification violation during runtime of the applet in hardware, the operator behavior is undefined. Ensure that both inputs transport exaclty the same number of pixel. If this is not possible use a SYNC operator before.
|Input Links||I, data which has to be replicated
Replicate, sets the replication rate
|Output Link||O, data output|
with Replicate.BitWidth + log2(I.MaxImageWidth) <= 31.
Bit width at input Replicate
Rounded up to the next multiple of the parallelism.
Synchronous and Asynchronous Inputs
- Both inputs can be asynchronous to each other.
The use of operator PixelReplicator is shown in the following examples:
Examples- Geometric Transformation using PixelReplicator