Operator Library: Memory
该算子具备抽头排序(=传感器校正)功能,在使用线阵相机时通常需要此功能。 此外,还包含对兴趣区 (ROI) 的支持。 总比特数(Bit Width 乘以 Parallelism)不得超过相应图像采集卡的内存限制。
该算子将图像流缓存在 Frame Grabber RAM (DRAM) 中。 需要一个类型为 RAM 的 VisualApplets 资源(请参见 'Allocation of Device Resources')。
抽头排序功能可透明支持读出方案不遵循顺序光栅扫描格式的传感器。 支持用于双抽头基准相机(在使用 4 的 Parallelism 时)和四抽头中级相机的最常用读出方案。
对于其他 Parallelism,该算子可与其它算子组合使用。
有关 operator 延迟的信息,请参见 Table 46, 'Individual Latencies of the Operators in Library Memory'。
该算子的工作方式类似于 FIFO。 任何输入数据都会立即转发到输出端。 但是,如果输出端被阻塞(例如,因为后续算子无法处理输入带宽),该算子将存储数据。 因此,只有在算子无法输出数据时,Memory 才会被填满。 通常,该算子用于补偿峰值输入带宽。
在内部,图像缓冲区按图像行进行操作。 这种内部行缓冲区特性可实现非常短的 Memory 延迟。 当然,如果缓冲区填充了更多的行,延迟就会增加。 例如,传输到 Memory 中的图像将立即转发到输出端。 在应用中,部分相机图像可以在相机仍在传输剩余图像行时转发到 PC。
使用参数 XOffset、XLength、 YOffset 和 YLength 可以定义 ROI 大小。 如果输入图像宽度小于 XOffset 和 XLength 的总和,算子仍将读取参数化的 XLength。 在这种情况下,算子将向超出部分像素输出未定义的 Memory 内容。 如果输入图像高度小于请求的输出图像高度,算子将仅输出可用的行。
在 Line1D 应用模式下,YOffset 和 YLength 设置不影响缓冲区。
为了测量缓冲区的 Fill 级别,该算子提供了 2 个参数: FillLevel 和 Overflow。FillLevel 以 25% 为步长显示 RAM 的百分比 Fill 级别。 当 FillLevel 接近或达到 100% 且下一个要存储在缓冲区中的图像将超过 RAM 容量时,Overflow 参数设置为 1。 如果发生溢出,输入数据将被丢弃,并且输入图像高度会减小。 因此,不完整的图像将存储在 Memory 中。 用户必须轮询溢出参数。 由于溢出状态的持续时间可能非常短,它可能会出现在算子轮询周期的间隔之间。
参数 InfiniteSource 用于指定算子是直接连接到相机还是与其它 Memory 算子串联。 请检查 'Infinite Sources / Connecting Cameras' 了解更多信息。
算子限制
-
不支持空帧。
不支持具有不同行长的图像。
输入行宽度必须能被抽头数乘以 Parallelism 整除。
流经使用 采集卡 RAM (DRAM) 的算子的理论带宽 [bits/second] 根据以下公式计算:

然而,由于 DRAM 效率的限制,实际带宽总是小于理论带宽。
当 Bit Width 和 Parallelism 的乘积等于内部 RAM Port Width 时,通过算子的 maximum bandwidth 将达到最大值。
![]() |
平台特定值 |
|---|---|
|
RAM Port Width 和 System Clock 是平台相关的。 请参阅 Device Resources 以获取有关您各个平台的详细信息。 |
|
Bit Width 与 Parallelism 的乘积不得超过本机 RAM 数据宽度。 请检查 Device Resources 了解更多信息。 |
| XOffset | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 |
| 范围 | [0, Max.Img Width - XLength] |
|
该参数定义 ROI 左上角的 x 坐标。 步长为 Parallelism。 |
|
| XLength | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1024 |
| 范围 | [2*parallelism, Max.Img Width - XOffset] |
|
该参数定义了 ROI 的宽度。 步长为 Parallelism。 |
|
| YOffset | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 0 |
| 范围 | [0, Max.Img Height - YLength] |
|
该参数定义 ROI 左上角的 y 坐标。 |
|
| YLength | |
|---|---|
| 键入 | 动态/静态读/写参数 |
| 默认 | 1024 |
| 范围 | [1, Max.Img Height - YOffset] |
|
该参数定义了 ROI 的高度。 |
|
| SensorCorrection | |
|---|---|
| 键入 | 动态读/写参数 |
| 默认 | SMODE_UNCHANGED |
| 范围 | |
|
可用选项包括 ![]() 该参数指定所连接相机的传感器读出方案。 SMODE_UNCHANGED 和 SMODE_REVERSE 支持单抽头、双抽头和四抽头相机。 SMODE_TAPS2_x 支持双抽头(基准)相机。 SMODE_TAP4_x 支持四抽头(中级)相机。 |
|
| FillLevel | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0%, 100%] |
|
该参数以 25% 的步长提供 DRAM 的 Fill 级别。 |
|
| Overflow | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0, 1] |
|
此参数表示发生缓冲区溢出。 |
|
| InfiniteSource | |
|---|---|
| 键入 | static 参数 |
| 默认 | ENABLED |
| 范围 | {ENABLED, DISABLED} |
|
此参数激活对无限源 operators(如相机 operators)的支持。 请参阅 'Infinite Sources / Connecting Cameras' 了解更多信息。 |
|
算子 ImageBufferSC 的使用方法如以下示例所示:

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



上一页

