Operator Library: Memory
LineMemory operator 是一個記憶體區塊,它使用隨機寫入存取來儲存輸入的影像行。 寫入位址由輸入 link 列位址 ColA 指定。 因此,對於每個輸入像素值,必須指定一個列位址。
在將行完整寫入記憶體之後,會使用 link O 進行讀取與輸出。 輸出影像寬度由參數定義,且與輸入影像寬度無關。 記憶體預先以零值初始化。
有關 operator 延遲的資訊,請參閱 表 46「Library Memory 中各 operator 的個別延遲」。
記憶體大小由參數 FrameWidth 定義。
此 operator 可以實作為兩種變體。 具體而言,即單緩衝區實作與雙緩衝區實作。 第一種實作可節省 RAM,但不允許寫入與讀取的時間重疊。 因此,輸入 link I 在讀取狀態期間會停止。 後者實作則將 RAM 加倍,並允許在輸入 link I 接收下一行的同時輸出影像行。
此運算子有兩種狀態:
-
寫入狀態:Link I 的值會儲存在 ColA 指定的位址中。 只有在 link WriteI 為 1 時才會執行此操作。 如果 link WriteI 為 0,則會略過目前像素。 可以寫入有效位址範圍內的任何位址。 不需要寫入每個記憶體儲存格。
-
讀取狀態:記憶體會依序讀出,並產生具有已參數化寬度的行。 透過使用參數 XOffset 和 XLength,可以定義讀取位址範圍,也就是 ROI。 讀取記憶體會將讀取位址的內容重設為零。 因此,如果讀取了先前未寫入的記憶體儲存格,將會輸出零。
這兩種狀態之間的切換是由輸入 link I 處的行結尾觸發。 請注意,輸出 link 處的行寬固定為參數 XOffset 和 XLength 所定義的大小, 且與輸入 link 的行寬無關。
此 operator 對於鏡射或感測器校正非常有用。
此 operator 使用 FPGA 內部的 block RAM 或 UltraRAM memory(URAM 僅適用於 imaFlex CXP-12 Quad 與 imaFlex CXP-12 Penta 平台)。 因此,不會使用任何 RAM 類型的 VisualApplets frame grabber 資源。 FPGA 內部的 block RAM 是有限的。完整解析度的畫面可能無法容納於 FPGA 內部的 block RAM 中。 請考慮改用 operator FrameBufferRandomRead。
算子限制
-
不支援空白畫面。
不支援具有不同行長度的影像。
| Property | Value |
|---|---|
| Operator Type | M |
| 輸入連結 | I,影像資料輸入 WriteI,寫入啟用輸入 ColA,I 處像素的寫入列位址 |
| Output Link | O, data output |
同步與非同步輸入
- 所有輸入彼此同步,亦即它們必須透過任意的 O 型 operator 網路,由同一個 M 型 operator 提供來源。
| ImplementationType(imaFlex CXP-12 Quad 與 imaFlex CXP-12 Penta 平台) | |||||||
|---|---|---|---|---|---|---|---|
| Type | 靜態寫入參數 | ||||||
| Default | AUTO | ||||||
| Range | (AUTO, BRAM, URAM) | ||||||
|
參數 ImplementationType 會影響運算子的實作策略, 即用於實作運算子的記憶體元素。 您可以選擇以下其中一個值: AUTO: 根據所連接連結的參數化, 自動選擇最佳的實作策略。 BRAM: Operator 使用 FPGA 的 Block RAM。 URAM: 運算子使用 FPGA 的 UltraRAM。
|
|||||||
| 實作 | |
|---|---|
| Type | static parameter |
| Default | SingleBuffer |
| Range | {SingleBuffer, DoubleBuffer} |
|
此參數會選擇 LineMemory 的實作方式(見上文)。 |
|
| FrameWidth | |
|---|---|
| Type | static parameter |
| Default | 1024 |
| Range | [0, 65536] |
|
此參數以像素為單位選擇輸出 link 的影像寬度。 |
|
| XOffset | |
|---|---|
| Type | dynamic/static read/write parameter |
| Default | 0 |
| Range | [0, FrameWidth - XLength] |
|
此參數定義 ROI 左上角的 x 座標。 |
|
| XLength | |
|---|---|
| Type | dynamic/static read/write parameter |
| Default | 1024 |
| Range | [1, FrameWidth - XOffset] |
|
此參數定義 ROI 的寬度。 |
|
operator LineMemory 的使用方式顯示於以下範例:
-
範例 - 顯示如何對影像進行垂直鏡射。 請注意平行字組和像素的鏡射。
-
'Functional Example for Specific Operators of Library Memory and Library Signal'
範例 - 如何使用此運算子的示範




![[備註]](../common/images/admon/note.png)
上一頁

