Operator StreamAnalyzer

Operator Library: Debugging

Operator StreamAnaylzer 提供有关数据流的信息。它不会更改图像数据。

您可以使用该 operator 检测阻塞(抑制)状况。

当流水线中发生阻塞时,您可以使用此 operator 查看阻塞发生在帧内的什么位置(哪个像素)。

此外,operator StreamAnalyzer 还提供有关流水线容量利用率的数据(有效时间占比、空闲时间占比、阻塞时间占比,以百分比表示)。

当内部 Counter 溢出时,会在 OverflowMask Property 中设置相应的溢出位,并且 Counter 会停止运行。

[重要] 运行时测试

此 operator 专为在运行时测试和分析您的设计而设计:您需要构建(综合)设计,将其加载到目标硬件上,并启动实际图像 processing,然后才能使用该 operator 进行调试。

该 operator 不适用于 VisualApplets 中的设计仿真。

I/O Property

Property 值
Operator Type O
Input Link I,图像数据输入
Output Link O,图像数据输出

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 64] as I
Arithmetic {unsigned, signed} as I
Parallelism any as I
Kernel Columns any as I
Kernel Rows any as I
Img Protocol VALT_IMAGE2D, LINE1D, PIXEL0D as I
Color Format any as I
Color Flavor any as I
Max. Img Width any as I
Max. Img Height any as I

参数

ClearMode
键入 动态写入参数
默认 ClearWithProcessStart
范围 {NoClearing, ClearWithProcessStart, ClearWithProcessReset, SendClearPulse}

此 Property 定义了所有 read Property 的重置行为。

NoClearing:保留所有 read Property 的值。ProcessEnable 和 ProcessReset 对这些值没有影响。

ClearWithProcessStart:仅在 ProcessEnable 的上升沿清除 read Property 的值。

ClearWithProcessReset:仅在 ProcessReset 的上升沿清除 read Property 的值。

SendClearPulse:按需清除所有 read Property 的值。

MeasurementMode
键入 动态写入参数
默认 AllCycles
范围 {AllCycles, FrameCyclesOnly, LineCyclesOnly}

该参数允许您分析 MeasurementPeriod 的特定部分:

AllCycles:在 MeasurementPeriod 内的所有周期上测量性能。

FrameCyclesOnly:在帧开始和结束之间的所有周期上测量性能。因此,会忽略 MeasurementPeriod 内的帧间隙。

LineCyclesOnly:在行开始和结束之间的所有周期上测量性能。因此,会忽略 MeasurementPeriod 内的帧间隙和行间隙。

MeasurementPeriod
键入 动态写入参数
默认 1000
范围 [1, 65535]

用于性能测量的毫秒级时间。

测量周期的定义对于分析时间片段以及计算平均值非常重要。

FrameCountWidth
键入 静态写参数
默认 24
范围 [4, 63]

设置帧计数器的 Bit Width。(帧计数器为参数 CurrFrame)。

CurrTime
键入 动态只读参数
默认 0
范围 [0, (2^32)-1]

自测量周期开始以来经过的时间(以毫秒为单位)。

CurrFrame
键入 动态只读参数
默认 0
范围 [0, (2^FrameCountWidth) -1]

此参数用作图像 Counter。 计算所有以 EndOfFrame 标志结束的图像。 仅在 IMAGE-2D 模式下可用。

CurrBlocked
键入 动态只读参数
默认 0
范围 [0, 1]

如果设置为 1:值 1 表示图像流被阻塞。

BlockedCyclesPerFrame
键入 动态只读参数
默认 0
范围 [0, (2^(ImageWidthtBitwidth+4))-1]

对一帧流通期间图像流被阻塞的时钟周期数进行计数。

A pixel gap always has exactly the length of the blocking which provokes the gap. However, the offset of the gap may differ from the offset of the blocking status.

如果在处理流水线的早期实现了缓冲区算子,则由于阻塞状态而无法传输的像素将被缓冲。

如果在处理流水线的早期未实现缓冲区算子,则由于阻塞状态而无法传输的像素将被丢弃。

FirstBlockedFrame
键入 动态只读参数
默认 0
范围 [0, (2^FrameCountWidth)-1]

首次发生阻塞的帧的帧编号。

LastBlockedFrame
键入 动态只读参数
默认 0
范围 [0, (2^FrameCountWidth)-1]

最后一次发生阻塞的帧的帧编号。

FirstBlockedXPos
键入 动态只读参数
默认 0
范围 [0, (2^(ImageWidthBitWidth+4))-1]

首次出现阻塞的水平位置。

LastBlockedXPos
键入 动态只读参数
默认 0
范围 [0, (2^(ImageWidthBitWidth+4))-1]

直到目前为止,图像流被阻塞的最后一个水平位置。

示例:如果值为 7:水平位置 7 是直到目前为止被阻塞的最后一个 X 位置。水平位置 8 是自上次发生阻塞以来的第一个未阻塞位置。

FirstBlockedYPos
键入 动态只读参数
默认 0
范围 [0, (2^(ImageWidthBitWidth+4))-1]

首次出现阻塞的垂直位置。

LastBlockedYPos
键入 动态只读参数
默认 0
范围 [0, (2^(ImageWidthBitWidth+4))-1]

直到目前为止,图像流被阻塞的最后一个垂直位置。

示例:如果值为 13:垂直位置 13 是直到目前为止被阻塞的最后一个 Y 位置。垂直位置 14 是自上次发生阻塞以来的第一个未阻塞位置。

FirstBlockedTime
键入 动态只读参数
默认 0
范围 [0, (2^32)-1]

首次出现阻塞的时间戳。

LastBlockedTime
键入 动态只读参数
默认 0
范围 [0, (2^32)-1]

最后一次出现阻塞的时间点的时间戳。

在此时间点之后,直到目前为止未再发生阻塞。

DataRate
键入 动态只读参数
默认 0
范围

以百万像素每秒为单位测量的的数据率。

BlockedFraction
键入 动态只读参数
默认 0
范围 [0.0, 100.0]

测量周期内阻塞周期的百分比(请参见 MeasurementPeriod 参数)。

IdleFraction
键入 动态只读参数
默认 0
范围 [0.0, 100.0]

测量周期内空闲周期的百分比(请参见 MeasurementPeriod 参数)。

ValidFraction
键入 动态只读参数
默认 0
范围 [0.0, 100.0]

测量周期内传输有效数据的有效周期百分比(参见参数 MeasurementPeriod)。

OverflowMask
键入 动态只读参数
默认 0
范围 [0, 511]

Operator Control:

位编码的溢出信号。置位的位表示以下 Counter 发生溢出:

[0] = FrameCount

[1] = PixelCount

[2] = xPos

[3] = yPos

[4] = LinePeriod

[5] = InhibitCount

[6] = InhibitCountFrame

[7] = IdleCount

[8] = ValidCount

使用示例

以下示例展示了 operator StreamAnalyzer 的使用方法: