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]

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

像素间隙的长度总是正好等于导致该间隙的阻塞长度。但是,间隙的偏移量可能与阻塞状态的偏移量不同。

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

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

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 的使用方法: