Operator Library: Memory
FrameMemory 算子是一个使用随机写访问存储输入图像的 Memory 块。 写地址通过输入链路行地址 RowA 和列地址 ColA 指定。 因此,必须为每个输入像素值指定行和列地址。
将帧写入 Memory 后,会通过链路 O 进行读取和输出。 输出图像尺寸由参数定义,且与输入图像尺寸无关。 Memory 预初始化为零值。
有关 operator 延迟的信息,请参见 Table 46, 'Individual Latencies of the Operators in Library Memory'。
Memory 大小由参数 FrameWidth 和 FrameHeight 定义。
该算子可采用两种变体来实现。 即单缓冲区实现和双缓冲区实现。 第一种实现节省了 RAM,但无法实现写操作和读操作的时间重叠。 因此,输入链路 I 在读取状态下会停止。 后一种实现使 RAM 容量翻倍,允许在输出一帧的同时接收输入链路 I 上的下一帧。
该算子有两个状态:
-
写入状态:链路 I 的值存储在由 ColA 和 RowA 指定的地址处。 仅当链路 WriteI 为 1 时执行此操作。 如果链路 WriteI 为 0,则跳过当前像素。 可以写入有效地址范围内的任何地址。 无需写入每个 Memory 单元。
-
读取状态:顺序读取 Memory 并生成指定宽度的行。 通过使用参数 XOffset、XLength、YOffset 和 YLength,可以定义读取地址范围,即 ROI。 读取 Memory 会将读取地址的内容重置为零。 因此,如果读取了以前未写入的 Memory 单元,则将输出零。
这两个状态之间的切换由输入链路 I 上的帧结束触发。 请注意,输出链路上的帧宽度和高度固定为由参数 XOffset、XLength、YOffset 和 YLength 定义的大小,并且与输入链路的行宽和帧高无关。
该算子可用于镜像或传感器校正。
该算子使用 FPGA 的内部块 RAM Memory。 因此,不使用类型为 RAM 的 VisualApplets 采集卡资源。 FPGA 内部块 RAM 是有限的。完整分辨率的帧可能无法放入 FPGA 内部块 RAM 中。 请考虑改用算子 FrameBufferRandomRead。
算子限制
-
不支持空帧。
不支持具有不同行长的图像。
| Property | 值 |
|---|---|
| Operator Type | M |
| 输入链路 | I,图像数据输入 WriteI,写使能输入 ColA,I 处像素的写列地址 RowA,I 处像素的写行地址 |
| Output Link | O,数据输入 |
同步和异步输入
- 所有输入相互同步,即它们必须由同一个 M-type 运算符通过由 O-type 运算符组成的任意网络提供源信号。
| 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。
|
|||||||
| 实现 | |
|---|---|
| 键入 | static 参数 |
| 默认 | SingleBuffer |
| 范围 | {SingleBuffer, DoubleBuffer} |
|
此参数选择 FrameMemory 的实现(见上文)。 |
|
| FrameWidth | |
|---|---|
| 键入 | static 参数 |
| 默认 | 1024 |
| 范围 | [0, 65534] |
|
此参数以像素为单位选择输出链路的图像宽度。 |
|
| FrameHeight | |
|---|---|
| 键入 | static 参数 |
| 默认 | 1024 |
| 范围 | [0, 65534] |
|
此参数以行为单位选择输出链路的图像高度。 |
|
| XOffset | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 |
| 范围 | [0, Max.Img Height - YLength] |
|
该参数定义 ROI 左上角的 y 坐标。 |
|
| XLength | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1024 |
| 范围 | [1, Max.Img Width - XOffset] |
|
该参数定义了 ROI 的宽度。 |
|
| YOffset | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 |
| 范围 | [0, Max.Img Height - YLength] |
|
该参数定义 ROI 左上角的 y 坐标。 |
|
| YLength | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1024 |
| 范围 | [1, Max.Img Height - YOffset] |
|
该参数定义了 ROI 的高度。 |
|
以下示例展示了 FrameMemory 算子的使用:






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

