Operator IsLastPixel

运算符 Library: Synchronization

Operator IsLastPixel 用于标记行(在 Line Mode 下)或帧(在帧模式下)的最后一个像素。 该算子也可用于标记空行(在 Line Mode 下)或空帧(在帧模式下)。

该算子拥有 1 个输入端口和 2 到 3 个输出端口:

  • 输入端口 I,
  • 输出端口 O,
  • 输出端口 IsLastO,以及
  • (可选)输出端口 IsEmptyO。

算子通用功能

Operator IsLastPixel 始终保持当前像素值。 一旦有新的像素值从输入端口 I 输入, 先前的像素值就会从输出端口 O 输出。 输入端口 I 接收到的像素值不会被解释。

行(在 Line Mode 下)或帧(在帧模式下)的最后一个像素会在输出端口 IsLastO 上标记为 1:

  • Line Mode:对于 operator IsLastPixel 接收到的每一个 EndOfLine (EOL) 标记, 该算子在其输出端口 IsLastO 上输出 1。

  • Frame Mode:对于 operator IsLastPixel 接收到的每一个 EndOfFrame (EOF) 标记, 该算子在其输出端口 IsLastO 上输出 1。

行结束 / 帧结束信息总是会在 IsLastO 上输出, 会有延迟一个或多个时钟周期(具体取决于最后一个输入像素与输入的行结束标记之间的间隙;始终为间隙的时钟周期数 + 1 个附加时钟周期)。

[警告] 不允许空行/空帧

只要您不使用 IsEmptyO(见下文):

  • 在帧模式下,最后一行不得为空。

  • 在 Line Mode 下,完全不允许空行。

标记空行或空帧(激活 IsEmptyO)

此外,您可以获取每个空行 / 每个空帧的标记。 该标记将从附加输出端口 IsEmptyO 输出。

输出端口 IsEmptyO 默认处于禁用状态。

要激活输出端口 IsEmptyO:

  1. 在实例化算子时,将 Output (IsEmptyO) 的值设为 1。

当输出端口 IsEmptyO 被激活时:

  • Line Mode:对于该算子接收到的 每个空行, IsLastPixel 该算子在其输出端口 O 上输出
    • 其输出端口 O* 上有 Parallelism x 个零,并且
    • 其输出端口 IsEmptyO 上有一个 1。
  • Frame Mode:对于该算子接收到的 每个空帧, IsLastPixel 该算子在其输出端口 O 上输出
    • Parallelism 个零,且
    • 其输出端口 IsEmptyO 上有一个 1。

在所有其他情况下,输出端口 IsEmptyO 为 0。

*示例:如果您在 Line Mode 下工作且 Parallelism 为 6,则在输出端口 O 上,会为每个空行插入六个像素。

[重要] Pixel 仅在新 Pixel 开始或行尾标记处停止

算子 IsLastPixel 仅在算子接收到下一个 Pixel 或行尾标记 (EOL) 的那一刻才输出 Pixel。 这在未紧接着最后一个 Pixel 收到行尾标记的情况下尤为重要。

示例(参数 Mode = Line,已激活输出端口 IsEmptyO):

输出端口 O 上的红色 Pixel 是为该空行插入的值为 0 的虚构 Pixel。

在输出端口 IsLastO 上,空行会得到 1,也就是说,空行看起来与示例中的第四行相同,第四行在到达输入端口 I 时已经包含一个 Pixel。 因此,当输出端口 IsEmptyO 被激活时, 端口 IsLastO 上的输出 只能结合端口 IsEmptyO 上的输出进行解释。

在上面的示例中,端口 IsLastO 为第 4 行和第 8 行输出 1。 IsEmptyO 中第 4 行的 0 告诉我们,传入的行不是空的,因此包含 1 个 Pixel。 IsEmptyO 中第 8 行的 1 告诉我们,传入的行是空的,即包含 0 个 Pixel。

[注意] Parallelism > 1

如果 Parallelism > 1,则只有 Parallelism 中的最后一个 Pixel(最高位) 在输出端口 IsLastO 上标记为 1。 Parallelism 的所有其他 Pixel 均为 0。

示例:当 Parallelism=4 时,在最后一个并行字处,输出端口 IsLastO 为 0x8,但在所有其他情况下为 0:

I/O Property

Property 值
Operator Type M
Input Link I, image data input
Output Links O,图像数据输出
IsLastO,针对行/帧中的最后一个 Pixel 输出 1,针对所有其他 Pixel 输出 0
IsEmptyO(可选),针对每个空行/帧输出 1,针对包含图像数据的行/帧输出 0

Supported Link Format

Link Parameter Input Link I Output Link O Output Link IsLastO Output Link IsEmptyO(可选)
Bit Width [1:63] as I 1 1
Arithmetic {unsigned, signed} as I unsigned unsigned
Parallelism any as I as I as I
Kernel Columns any as I 1 1
Kernel Rows any as I 1 1
Img Protocol {VALT_LINE1D, VALT_IMAGE2D} as I as I as I
Color Format {VAF_COLOR, VAF_GRAY} as I VAF_GRAY VAF_GRAY
Color Flavor any as I FL_NONE FL_NONE
Max. Img Width any1 as I as I as I
Max. Img Height any as I as I as I

1

最大图像宽度必须能够被 Parallelism 整除。

参数

模式
键入 静态或动态写入参数
默认 Frame
范围 {Line, Frame}

如果设置为 Line,算子将标记行中的最后一个像素。对于行的每个最后一个像素,算子在其输出端口 IsLastO 上输出 1。

如果设置为 Frame,算子将标记帧中的最后一个像素。对于帧的每个最后一个像素,算子在其输出端口 IsLastO 上输出 1。

您可以将此参数设置为 static 或 dynamic。当您将此参数用作动态参数时:将实现一个影子寄存器,并在以下情况下应用更改:

  • 在两幅图像之间(当 I 为 VALT_IMAGE2D 时),或

  • 在两行之间(当 I 为 VALT_ LINE1D 时),或

  • 直接(当 I 为 VALT_ PIXEL0D 时),

且总是在复位时应用。在此之前,将使用旧值。

使用示例

以下示例展示了 IsLastPixel 算子的用法: