Library: Memory 運算子
FrameMemoryRandomRd(幀記憶體隨機讀取)運算子會將影像緩存於記憶體中,並支援隨機讀取存取。 幀資料是透過連結 I 傳輸至該運算子的。 可透過將位址傳輸至 RColA(讀取欄位位址)和 RRowA(讀取 行位址)埠,來執行資料的隨機讀取。 該運算子將利用這些位址,依據指定的座標讀取幀資料。 產出的幀將具有與位址輸入相同的影像尺寸。
所需的記憶體大小由輸入幀的影像尺寸(最大影像寬度與最大影像高度)所決定。
有關運算子延遲的資訊,請參閱 表 46「Library Memory 中各運算子的個別延遲」。
該運算子可透過兩種變體來實作。 即單緩衝區實作與雙緩衝區實作。 第一種實作方式可節省 RAM,但無法讓寫入與讀取及時重疊。 因此,在寫入狀態期間,位址輸入鏈路 RColA 和 RRowA 會被停用。 後者則將 RAM 容量加倍,並允許在透過 輸入鏈路 I 接收下一幀的同時,隨機讀取上一幀。
此運算子有兩種狀態:
-
寫入狀態: 連結 I 的像素以線性方式儲存於緩衝區中,也就是說,像素的座標即構成緩衝區中的位址。
-
讀取狀態:記憶體會根據輸入端 RColA 和 RRowA 所提供的位址進行讀取。 位址數量與位址連結影像的尺寸,共同決定了輸出影像的寬度和高度。 例如,若在位址輸入端輸入的幀僅包含一個像素, 則輸出幀也將僅包含一個像素。輸入幀中的其他像素將被捨棄。
影像資料輸入與位址輸入之間並非同步。 兩者的影像尺寸可能不同。 兩個位址輸入 RColA 和 RRowA 都必須為 O-同步。
請注意輸入連結的時序。 位址輸入絕不能由與資料連結輸入 I 相同的運算子直接讀取,且不得進行緩衝。 這是因為在將影像資料寫入運算子期間,無法接受用於讀取當前幀的位址。 只有當幀已完全儲存至緩衝區後,才能接受位址。 在許多情況下,該運算子 CreateBlankImage 通常用於為這些位址產生影像。
下圖展示了該時序的視覺化呈現。

該運算子使用 FPGA 的內部區塊 RAM 記憶體。 因此,並未使用任何VisualApplets 中類型為RAM的幀擷取器資源。 該 FPGA 內部區塊 RAM 容量有限。全解析度的影像幀可能無法完全存入 FPGA 內部區塊 RAM 中。 請考慮使用運算子 FrameBufferRandomRead 。
Operator Restrictions
-
不支援空影格。
-
不支援具有不同行長度的影像。
| Property | Value |
|---|---|
| Operator Type | M |
| Input Links | I,影像資料輸入 RColA,I 處像素的讀取欄位址 RRowA,I 處像素的讀取列位址 |
| Output Link | O,資料輸入 |
Synchronous and Asynchronous Inputs
- 同步群組:RColA 與 RRowA
- 輸入 I 對於該群組而言是非同步的。
| 實施 | |
|---|---|
| Type | 靜態參數 |
| Default | SingleBuffer |
| Range | {單一緩衝區, 雙緩衝區} |
|
This parameter selects the implementation of the FrameMemoryRandomRd (see above). |
|
以下範例展示了運算子 FrameMemoryRandomRd 的使用方式:
-
範例 - Histogram Equalization
-
'Functional Example for Specific Operators of Library Memory and Library Signal'
範例 - operator 使用方式示範






上一頁

