运算符 Library: Synchronization
运算符 RemovePixel 根据控制输入链接 Rem 移除输入链接 I 和输出链接 O 之间的像素。 移除输入链接 Rem 是一个控制像素移除的二进制输入链接。 如果在 Rem 处的像素设为 1,则会移除输入链接 I 相同位置处的像素。 随后的像素会向左移动。 因此,输出行的宽度会减少被移除像素的数量。
由于移除了像素,所构建的行宽可能无法被该链接的 Parallelism 整除。
为了在输出链接 O 上生成可被该链接的 Parallelism 整除的行长度,该运算符会插入虚拟像素。这些虚拟像素的内容未定义(VA 模拟会将这些值设为 0)。
您有两种方法来创建长度可被链接 Parallelism 整除的行:
您可以让运算符
- 用虚拟像素 Fill 有关的行,直到行长度可被链接 Parallelism 整除(见示例 1),或者
- 将未构成完整并行像素块的像素移至下一行(见示例 2)。 在这种情况下,运算符仅在必要时才会在帧的最后一行插入虚拟像素。
您可以通过参数 FlushCondition 来控制运算符的这种行为: 如果该参数设为 EoL(行尾),则运算符会将虚拟像素添加到无法被 Parallelism 整除的行的末尾。 即使所有像素都从图像中移除,图像的行结构仍将保留(此时图像仅由空行组成)。 如果在帧中移除了所有像素,则该帧将仅由空行组成。行数保持不变。
如果参数 FlushCondition 设为 EoF(帧尾): 如果一行的最后几个像素未能组成一个完整的并行像素块,则这几个最后的像素会移至下一个输出行。 因此,行将在 Parallelism 边界处结束,超出部分的像素会移至下一行。 因此,运算符仅会在帧末尾创建虚拟像素。 在此模式下可能会改变行结构,并且最后一行可能会更长(多 1 个 Parallelism)。 因此,MaxWidth 会比输入链接宽 1 倍 Parallelism。 EoF 模式通常用于图像压缩应用。
![]() |
Resource Consumption |
|---|---|
|
运算符的 FPGA 资源消耗会随着 Parallelism 的增加而急剧上升。 Basler 建议在此运算符上使用较低的 Parallelism。 在使用 RemovePixel 运算符之前,可以通过将并行像素移入核中(即通过使用 CastKernel)来减少 Parallelism。 如果您只想移除某行的最后几个像素,则可以使用模式为 truncate 的运算符 CutLine 来代替。这样可以节省资源。 |
-------------------------------------------------------------------------------------
示例 1(参数 FlushCondition 设为 EoL):
在此示例中,FlushCondition 设为 EoL(默认值)。该运算符在 Parallelism 为 4 的情况下使用,并获取图片中所示的图像。
在第二行中,移除了两个像素。这会导致后续像素发生偏移。由于 6(新的行长度)无法被 4(Parallelism)整除,因此插入了 2 个虚拟像素。 在第三行中,移除了 4 个像素。由于 4(新的行长度)可被 4 整除,因此该行直接变短,且不插入虚拟像素。 第 6 行被完全移除。在后续模拟中,它被视为一个空行。
示例 1:当 FlushCondition 设为 EoL 且 Parallelism 设为 4 时的行为(Rem 始终为 0,设为 1 的像素除外)
-------------------------------------------------------------------------------------
示例 2(参数 FlushCondition 设为 EoF):
在此示例中,FlushCondition 设为 EoF。该运算符在 Parallelism 为 4 的情况下使用,并获取图片中所示的图像。
示例 2:当 FlushCondition 设为 EoF 且 Parallelism 设为 4 时的行为(Rem 始终为 0,设为 1 的像素除外)
![]() |
EoF 模式下更改的最大图像宽度 - 请注意旧版设计! |
|---|---|
|
对于 EoF 模式,最大图像宽度已进行了修正,使其比 Parallelism 大 1(适用于 Parallelism > 1)。 请参阅示例以了解此问题。这可能会在较旧的设计中导致 DRC 错误。 如果您确定不需要此额外的宽度,可以使用 SetDimension 将尺寸设置回最大输入宽度。 |
|
对于无符号输入,输入 Bit Width 的范围是 [1, 64]。 对于有符号输入,范围是 [2, 64]。 对于无符号彩色输入,范围是 [3, 63],对于有符号彩色输入,范围是 [6, 63]。 |
同步和异步输入
- 所有输入相互同步,即它们必须由同一个 M-type 运算符通过由 O-type 运算符组成的任意网络提供源信号。
| FlushCondition | |
|---|---|
| 键入 | static 参数 |
| 默认 | EoL |
| 范围 | {EoL, EoF} |
|
此参数控制虚拟像素的插入。在 EoL 模式下,如果行长度无法被 Parallelism 整除,则会在行末尾插入虚拟像素。 在 EoF 模式下,如果一行的最后几个像素无法凑成一个完整的 Parallelism 像素块,这些像素将被移至下一条输出行。 因此,各行将在 Parallelism 边界处结束,多出的像素会被移至后续行。 因此,只有当画面的最后一行无法被 Parallelism 整除时,算子才会在画面末尾创建虚拟像素。 输出链路 O 处的画面 MaxWidth 等于输入链路处的画面宽度加上 1 个 Parallelism。 如果使用图像协议 VALT_PIXEL0D,该参数将停用。对于图像协议 VALT_LINE1D,只能使用 EoL。
|
|
以下示例展示了 RemovePixel 算子的用法:
-
示例 - 定义格式的游程编码示例。
-
“imaFlex CXP-12 Quad 平台上的 FrameBufferMultRoi 用户库元素功能示例”
示例 - 演示如何使用该算子

![[注意]](../common/images/admon/note.png)
![[Caution]](../common/images/admon/caution.png)

上一页

