Library: Memory 運算子
LineMemory 運算子是一個記憶體區塊,用於透過隨機寫入存取來儲存輸入的影像行。 寫入位址由輸入連結的欄位位址 ColA 指定。 因此,對於每個輸入像素值,都必須指定一個欄位位址。
當一行資料已完整寫入記憶體後,便會透過連結 O 讀取並輸出。 輸出影像的寬度由參數定義,且與輸入影像的寬度無關。 記憶體預先初始化為零值。
有關運算子延遲的資訊,請參閱 表 46「Library Memory 中各運算子的個別延遲」。
記憶體大小由參數FrameWidth 決定。
該運算子可實作兩種變體。 即單緩衝區實作與雙緩衝區實作。 第一種實作可節省 RAM,但無法讓寫入與讀取及時重疊。 因此,在讀取狀態期間,輸入鏈路 I 會被暫停。 後一種實作則將 RAM 容量加倍,並能在接受輸入鏈路 I 的下一行時, 同時輸出當前影像行。
此運算子有兩種狀態:
-
寫入狀態:Link I 的值會儲存於由 ColA 指定的位址處。 此操作僅在 Link WriteI 為 1 時執行。 若連結 WriteI 為零,則跳過當前像素。 可寫入有效位址範圍內的任何位址。 無需寫入每個記憶體單元。
-
讀取狀態:記憶體會依序讀出,並產生一行參數化寬度的資料。 透過參數 XOffset 和 XLength,可以定義讀取位址範圍,即 ROI。 讀取記憶體會將讀取位址的內容重設為零。 因此,若讀取的記憶體單元先前未曾被寫入,則會輸出零。
這兩種狀態之間的切換是由輸入鏈路 I 上的行尾標誌觸發的。 請注意,輸出鏈路的行寬固定為由參數 XOffset 和 XLength 所定義的大小, 且與輸入鏈路的行寬無關。
此運算子可用於鏡像處理或感測器校正。
操作員使用 FPGA 內建的區塊 RAM 或 UltraRAM 記憶體 (URAM 僅 適用於 imaFlex CXP-12 Quad 及imaFlex CXP-12 Penta 平台)。 因此,不會使用任何VisualApplets 中類型為RAM的幀擷取卡資源。 FPGA 內建的區塊 RAM 容量有限。全解析度的幀可能無法完全容納於 FPGA 內建的區塊 RAM 中。 請考慮使用運算子 FrameBufferRandomRead 。
Operator Restrictions
-
不支援空影格。
不支援具有不同行長度的影像。
| Property | Value |
|---|---|
| Operator Type | M |
| Input Links | I,影像資料輸入 WriteI,寫入使能輸入 ColA,I 處像素的寫入欄位位址 |
| Output Link | O,資料輸出 |
Synchronous and Asynchronous Inputs
- 所有輸入彼此同步,亦即它們必須透過任意的 O 型運算子網路,由相同的 M 型運算子提供來源。
| 實作類型(imaFlex CXP-12 Quad 及imaFlex CXP-12 Penta 平台) | |||||||
|---|---|---|---|---|---|---|---|
| Type | 靜態寫入參數 | ||||||
| Default | AUTO | ||||||
| Range | (AUTO、BRAM、URAM) | ||||||
|
參數 ImplementationType 會影響運算子的實作策略,也就是用於實作運算子的記憶體元件。 您可以選擇下列其中一個值: AUTO: 根據所連接連結的參數設定,自動選擇最佳的實作策略。 BRAM: 運算子使用 FPGA 的 Block RAM。 URAM: 運算子使用 FPGA 的 UltraRAM。
|
|||||||
| 實作 | |
|---|---|
| Type | 靜態參數 |
| Default | SingleBuffer |
| Range | {SingleBuffer, DoubleBuffer} |
|
此參數用於選取 LineMemory 的實作(參見上文)。 |
|
| FrameWidth | |
|---|---|
| Type | 靜態參數 |
| Default | 1024 |
| Range | [0, 65536] |
|
此參數用於設定輸出連結的圖片寬度(以像素為單位)。 |
|
| XOffset | |
|---|---|
| Type | 動態/靜態讀寫參數 |
| Default | 0 |
| Range | [0, 幀寬 - X長度] |
|
此參數定義 ROI 左上角的 X 座標。 |
|
| XLength | |
|---|---|
| Type | 動態/靜態讀寫參數 |
| Default | 1024 |
| Range | [1, 幀寬 - X 偏移量] |
|
此參數定義 ROI 的寬度。 |
|
以下範例展示了運算子 LineMemory 的用法:
-
Examples - 顯示如何對影像進行垂直鏡射。 請注意平行字組與像素的鏡射。
-
'Functional Example for Specific Operators of Library Memory and Library Signal'
範例 - operator 使用方式示範




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

