运算符 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 被禁用。
| Property |
值 |
| Operator Type |
M |
|
输入链路
|
I,数据输入 Cut,控制输入
|
|
Output Link
|
O,数据输出 |
| Link Parameter |
Input Link I |
输入链路 Cut |
Output Link O |
| Bit Width |
[1, 64] |
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 |
auto |
| Color Format |
any |
VAF_GRAY |
as I |
| Color Flavor |
any |
FL_NONE |
as I |
| Max. Img Width |
any |
as I |
any |
| Max. Img Height |
any |
as I |
any |
|
|
输入 bit width 的范围是:
-
对于无符号输入:[1, 64]
-
对于有符号输入:[2, 64]
-
对于无符号彩色输入:[3, 63]
-
对于有符号彩色输入:[6, 63]。
|
|
|
如果使用 VALT_IMAGE2D 或 VALT_LINE1D,则输出图像协议与输入图像协议相同。如果在输入端使用 VALT_PIXEL0D 图像协议,则算子会将图像转换为 VALT_LINE1D 图像协议。
|
|
|
输出的最大图像宽度必须小于或等于输入的的最大图像宽度。
|
|
|
输出的最大图像高度必须大于或等于输入的图像高度。
|
| 模式 |
| 键入 |
静态读/写参数 |
| 默认 |
Split |
| 范围 |
{Split,Truncate} |
|
操作模式。
-
如果将 Mode 设置为 Split(默认值),则传入的行将被拆分为多个片段。每当当前行在输入 Cut 处的像素值为 1 时,正在进行的输出行就会在由 Parallelism P 给出的粒度处终止,并从接下来的传入像素的起点开始新的一行。行中最后 Parallelism P 个像素内的任何值为 1 的像素均无效。
-
如果将 Mode 设置为 Truncate,则传入的行将被切割为单行,该行可能比传入的行短。每当当前行在输入 Cut 处的像素值为 1 时,正在进行的输出行就会在由 Parallelism P 给出的粒度处终止。在当前行结束之前,不会将任何进一步的像素转发到输出 O。
|