Operator CutLine

运算符 Library: Synchronization

算子 CutLine 可将输入图像的行动态切割为多条较短的行。切割操作由输入 Cut 控制,该输入与输入 I 同步。切割按由 Parallelism P 给出的粒度进行。因此,不会生成任何虚拟像素。当输入 Cut 处的像素值为 1 时,输入 I 中对应的像素仍包含在当前行的输出中。该行在下一个可能的像素位置后终止,以满足粒度条件。该算子支持由参数 Mode 设置的两种切割模式:

  • 如果将 Mode 设置为 Split(默认值),则传入的行将被拆分为多个片段。每当当前行在输入 Cut 处的像素值为 1 时,正在进行的输出行就会在由 Parallelism P 给出的粒度处终止。然后,从接下来的传入像素的起点开始新的一行。行中最后 Parallelism P 个像素内的任何值为 1 的像素均无效。

  • 如果将 Mode 设置为 Truncate,则传入的行将被切割为单行,该行可能比传入的行短。每当当前行在输入 Cut 处的像素值为 1 时,正在进行的输出行就会在由 Parallelism P 给出的粒度处终止。在当前行结束之前,不会将任何进一步的像素转发到输出 O。

该算子可能会生成行长度不同的输出图像。并非所有 VisualApplets 算子都能处理使用不同行长度的图像。

您还可以使用 CutLine 算子将 0D 图像转换为 1D 图像。如果将使用图像协议 VALT_PIXEL0D 的链路连接到算子的输入,则会自动执行转换。在这种情况下,算子始终处于 Split 模式,并且参数 Mode 被禁用。

I/O Property

Property 值
Operator Type M
输入链路 I,数据输入
Cut,控制输入
Output Link O,数据输出

Supported Link Format

Link Parameter Input Link I 输入链路 Cut Output Link O
Bit Width [1, 64]1 1 as I
Arithmetic {unsigned, signed} unsigned as I
Parallelism any as I as I
Kernel Columns any 1 as I
Kernel Rows any 1 as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} as I auto2
Color Format any VAF_GRAY as I
Color Flavor any FL_NONE as I
Max. Img Width any as I any3
Max. Img Height any as I any4

1

输入 bit width 的范围是:

  • 对于无符号输入:[1, 64]

  • 对于有符号输入:[2, 64]

  • 对于无符号彩色输入:[3, 63]

  • 对于有符号彩色输入:[6, 63]。

2

如果使用 VALT_IMAGE2D 或 VALT_LINE1D,则输出图像协议与输入图像协议相同。如果在输入端使用 VALT_PIXEL0D 图像协议,则算子会将图像转换为 VALT_LINE1D 图像协议。

3

输出的最大图像宽度必须小于或等于输入的的最大图像宽度。

4

输出的最大图像高度必须大于或等于输入的图像高度。

参数

模式
键入 静态读/写参数
默认 Split
范围 {Split,Truncate}

操作模式。

  • 如果将 Mode 设置为 Split(默认值),则传入的行将被拆分为多个片段。每当当前行在输入 Cut 处的像素值为 1 时,正在进行的输出行就会在由 Parallelism P 给出的粒度处终止,并从接下来的传入像素的起点开始新的一行。行中最后 Parallelism P 个像素内的任何值为 1 的像素均无效。

  • 如果将 Mode 设置为 Truncate,则传入的行将被切割为单行,该行可能比传入的行短。每当当前行在输入 Cut 处的像素值为 1 时,正在进行的输出行就会在由 Parallelism P 给出的粒度处终止。在当前行结束之前,不会将任何进一步的像素转发到输出 O。

使用示例

以下示例展示了 CutLine 算子的使用方法: