Operator Library: Memory
LineMemory 算子是一个内存块,它使用随机写访问来存储传入的图像行。 写入地址通过输入 link 列地址 ColA 来指定。 因此,必须为每个输入像素值指定一个列地址。
将一行完全写入内存后,会使用 link O 读取并输出。 输出图像宽度由参数定义,且与输入图像宽度无关。 内存预初始化为零值。
有关 operator 延迟的信息,请参见 Table 46, 'Individual Latencies of the Operators in Library Memory'。
内存大小由参数 FrameWidth 定义。
该算子可以实现为两种变体。 即单缓冲区实现和双缓冲区实现。 第一种实现节省了 RAM,但不允许写入和读取在时间上重叠。 因此,输入 link I 在读取状态下会停止。 后一种实现将 RAM 容量加倍,并允许在输入 link I 接收下一行的同时输出图像行。
该算子有两个状态:
-
写入状态:Link I 的值存储在由 ColA 指定的地址处。 仅当 link WriteI 为 1 时才执行此操作。 如果 link WriteI 为 0,则跳过当前像素。 可以写入有效地址范围内的任何地址。 无需写入每个内存单元。
-
读取状态:按顺序读出内存并生成指定宽度的一行。 通过使用参数 XOffset 和 XLength,可以定义读取地址范围,即 ROI。 读取内存会将读取地址的内容重置为零。 因此,如果读取了以前未写入的内存单元,则会输出零。
这两个状态之间的切换由输入 link I 处的行结束信号触发。 请注意,输出 link 处的行宽固定为参数 XOffset 和 XLength 定义的大小, 并且与输入 link 的行宽无关。
该算子可用于镜像或传感器校正。
该算子使用 FPGA 内部块 RAM 或 UltraRAM 内存(URAM 仅适用于 imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 平台)。 因此,不占用任何 RAM 类型的 VisualApplets 采集卡资源。 FPGA 内部块 RAM 是有限的。全分辨率帧可能无法放入 FPGA 内部块 RAM 中。 请考虑改用算子 FrameBufferRandomRead。
算子限制
-
不支持空帧。
不支持具有不同行长的图像。
| Property | 值 |
|---|---|
| Operator Type | M |
| 输入链路 | I,图像数据输入 WriteI,写使能输入 ColA,I 处像素的写列地址 |
| Output Link | O,数据输出 |
同步和异步输入
- 所有输入相互同步,即它们必须由同一个 M-type 运算符通过由 O-type 运算符组成的任意网络提供源信号。
| ImplementationType(imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 平台) | |||||||
|---|---|---|---|---|---|---|---|
| 键入 | 静态写参数 | ||||||
| 默认 | AUTO | ||||||
| 范围 | (AUTO, BRAM, URAM) | ||||||
|
参数 ImplementationType 会影响 operator 的实现策略,即用于实现该 operator 的 Memory 元素。 您可以选择以下值之一: AUTO: 根据所连接 link 的参数化配置,自动选择最佳实现策略。 BRAM: operator 使用 FPGA 的 Block RAM。 URAM: operator 使用 FPGA 的 UltraRAM。
|
|||||||
| 实现 | |
|---|---|
| 键入 | static 参数 |
| 默认 | SingleBuffer |
| 范围 | {SingleBuffer, DoubleBuffer} |
|
此参数选择 LineMemory 的实现方式(参见上文)。 |
|
| FrameWidth | |
|---|---|
| 键入 | static 参数 |
| 默认 | 1024 |
| 范围 | [0, 65536] |
|
此参数以像素为单位选择输出链路的图像宽度。 |
|
| XOffset | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 |
| 范围 | [0, FrameWidth - XLength] |
|
该参数定义 ROI 左上角的 x 坐标。 |
|
| XLength | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1024 |
| 范围 | [1, FrameWidth - XOffset] |
|
该参数定义了 ROI 的宽度。 |
|
以下示例展示了 LineMemory 算子的使用:
-
示例 - 展示了如何垂直镜像图像。 请注意并行字和像素的镜像。
-
'Functional Example for Specific Operators of Library Memory and Library Signal'
示例 - 演示如何使用该算子




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

