当传入的图像数据流不可中断时(通常从相机传感器采集数据时就是这种情况),必须特别注意以避免输入缓冲区溢出。请考虑以下影响:
-
M 型算子可能会减慢处理速度(例如 PARALLELdn)。
-
使用 SYNC 同步不同的数据流可能会引入等待周期。
-
一些基于内核的算子(如 FIRkernelNxM)在行结束之后需要额外的时钟周期才能接受新数据,而在帧结束之后则需要更多时钟周期。
通常,建议在输入数据路径中使用类似以下的电路进行监测,以检查设计是否能够处理输入数据速率:
分层框 Control 的设计如下:
该电路测量 FIFO StartFifo 的输入与输出之间缓冲的数据字数量。FIFO StartFifo 配置为接收不可中断的数据流(参数 InfiniteSource = ENABLED)。定义一个缓冲区大小以便在该 FIFO 中存储一行或几行数据是非常有用的。
在运行期间或运行之后检查算子 MaxPixelInFifo 的读取参数。如果后续的图像处理流水线能够处理输入数据速率,则应该显示一个较小的数值,这表明 FIFO 仅用于缓冲少量数据字。
如果您发现您的设计无法按输入数据速率运行,您有以下选项:
-
提高设计的吞吐量,特别是通过增加 Parallelism。
-
减少需要处理的数据量,例如,您可以通过丢弃传感器中的部分数据来处理缩减后的图像尺寸。
-
使用基于 RAM 的图像缓冲区算子来解耦输入数据速率与处理速率。



上一页

