Operator Library: Memory
该 operator 可用于在基于 FPGA 的 Memory 中缓冲相对少量的像素。 此 operator 不需要类型为 RAM 的 VisualApplets 资源。 相反,该 operator 使用 FPGA 内部 Memory。 这可以是 FPGA-internal block RAM、FPGA distributed RAM (LUT RAM) 或 UltraRAM memory(URAM 仅适用于 imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 平台)。具体使用哪种 Memory 可通过参数 ImplementationType 手动设置,或由 operator 根据其配置自动选择。
ImageFifo operator 通常用于在同步之前缓冲行或像素。 由于 FPGA 内部 Memory 有限,在不超出可用资源的情况下缓冲完整分辨率的帧是不大可能的。
有关 operator 延迟的信息,请参见 Table 46, 'Individual Latencies of the Operators in Library Memory'。
参数 EntitiesToStore 和 EntityType 用于定义最大可用缓冲区大小。 该 operator 是一个先进先出 Memory (FIFO)。 任何输入数据都会立即转发到输出端。 但是,如果输出端被阻塞(例如,因为后续 operators 无法处理输入带宽),该 operator 将会存储数据。 因此,只有在 operator 无法输出数据时,才会填充 Memory。
为了测量缓冲区的 Fill 级别,该 operator 提供了参数 FillLevel。 FillLevel 显示 Fifo 的百分比 Fill 级别。
参数 InfiniteSource 用于指定该 operator 是直接连接到相机还是与其他 Memory operators 按顺序连接。 如果禁用了 InfiniteSource,该 operator 将不会进入溢出状态。 请参阅 'Infinite Sources / Connecting Cameras' 了解更多信息。
参数 ImplementationType 允许指定 operator 要使用的硬件 Memory。
| EntitiesToStore | |
|---|---|
| 键入 | static 参数 |
| 默认 | 1 |
| 范围 | any |
|
此参数定义最多需要存储多少个像素、行或帧。 实体类型由参数 EntityType 定义。 |
|
| EntityType | |
|---|---|
| 键入 | static 参数 |
| 默认 | FRAME |
| 范围 | {FRAME, LINE, PIXEL} |
|
此参数定义要存储的实体的类型。 该参数可以缓冲 EntitiesToStore 个单位的 EntityType。 只有当输入 link 图像协议为 VALT_IMAGE2D 时,才能选择 FRAME。 协议 VALT_LINE2D 和 VALT_LINE1D 可以选择 LINE,而 PIXEL 则始终启用。 |
|
| ImplementationType | |||||||
|---|---|---|---|---|---|---|---|
| 键入 | 静态写参数 | ||||||
| 默认 | AUTO | ||||||
| 范围 | (AUTO, BRAM, LUTRAM, URAM) | ||||||
|
参数 ImplementationType 会影响 operator 的实现策略,即用于实现该 operator 的 Memory 元素。 您可以选择以下值之一: AUTO: 根据所连接 link 的参数化配置,自动选择最佳实现策略。 BRAM: operator 使用 FPGA 的 Block RAM。
LUTRAM: operator 使用 FPGA 的 LUT RAM。 URAM: operator 使用 FPGA 的 UltraRAM。
|
|||||||
| FillLevel | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0%, 100%] |
|
此参数提供缓冲区的 Fill 级别。 该 operator 高效利用了 FPGA 资源。在某些配置中,甚至可以在缓冲区中存储超过 100% 的数据。 |
|
| InfiniteSource | |
|---|---|
| 键入 | static 参数 |
| 默认 | ENABLED |
| 范围 | {ENABLED, DISABLED} |
|
此参数激活对无限源 operators(如相机 operators)的支持。 请参阅 'Infinite Sources / Connecting Cameras' 了解更多信息。 |
|
以下示例展示了算子 ImageFifo 的使用方法:
-
Synchronization - 避免死锁。
-
示例 - 使用算子缓冲一行以进行行复制。
-
示例 - Laroche 拜耳去马赛克滤波器
-
示例 - 资源优化的 Laroche 拜耳去马赛克滤波器
-
“Color Plane Separation 选项 4 - 结合使用算子 ImageBufferMultiRoI 和 Color Plane 预排序的顺序处理”
色彩平面的顺序 DMA 输出。 使用算子 ImageBufferMultiROI 执行色彩分离。 附加的预排序可优化带宽和资源。
-
示例 - 测量图像尺寸,并可用于分析设计流程。
-
示例 - 用于在硬件中调试设计内部数据流控制及可能的补偿。
-
示例 - 展示如何拆分和合并图像流。向图像附加尾部。
-
示例 - Scaling 线扫描图像
-
示例 - 根据 Debevec 的 HDR
-
示例 - 带有线性方法的 HDR
-
'A rolling average is applied on a dynamic number of images'
Examples - Rolling Average - Loop


![[注意]](../common/images/admon/note.png)
上一页

