Operator Library: Memory
此運算子有助於隨機讀取緩衝的資料。畫面資料會透過連結 I 傳輸至運算子中。透過將位址傳輸至連接埠 RColA (讀取欄位址) 與 RRowA (讀取列位址),即可執行資料的隨機讀取。運算子將使用這些位址,依給定的座標讀取畫面資料。產生的輸出畫面將具備位址輸入的影像尺寸。需要一個類型為 RAM 的 VisualApplets 資源。請參閱「配置裝置資源」以取得詳細資訊。關於運算子的延遲資訊,請參閱表 46「Memory Library 中各運算子的個別延遲」。
FrameBufferRandomRead (畫格緩衝區隨機讀取) 運算子會在 Frame Grabber RAM (DRAM) 中緩衝影像串流。需要一個類型為 RAM 的 VisualApplets 資源。
此運算子有兩種狀態:
-
寫入狀態:輸入影像會儲存在緩衝區中。此運算子的運作方式類似 FIFO。如果有足夠的記憶體可用,多個影像可以儲存在緩衝區中。
-
讀取狀態:在影像完全儲存至記憶體之後,即會使用輸入端 RColA 與 RRowA 處給定的位址讀出記憶體。位址的數量與位址連結影像尺寸決定了影像輸出的寬度與高度。
影像資料輸入與位址輸入彼此非同步。它們可能具有不同的影像尺寸。兩個位址輸入 RColA 與 RRowA 都必須是 O 同步的。
請注意輸入連結的時序。在未進行緩衝的情況下,位址輸入不得由與資料連結輸入 I 相同的運算子提供來源。這是因為在將影像資料寫入運算子的同時,無法接受讀取目前畫面的位址。只有在畫面完全儲存至緩衝區後,才能接受位址。在許多情況下,會使用 CreateBlankImage 運算子來為位址產生影像。
此運算子使用大型非 FPGA 記憶體。如果只需要儲存小型畫面或行,請考慮使用 FrameMemoryRandomRd 或 LineMemoryRandomRd 運算子。
為了測量緩衝區的填滿程度,此運算子提供了 2 個參數:FillLevel 與 Overflow。FillLevel 顯示 RAM 的填滿百分比。當 FillLevel 接近或達到 100% 且下一個要儲存至緩衝區的影像將超出 RAM 容量時,Overflow 參數會設為 1。若發生溢位,輸入畫面將遭到捨棄。使用者必須輪詢溢位參數。由於溢位狀態的持續時間可能非常短,因此它可能會落在運算子的輪詢週期之間。
參數 InfiniteSource 用於指定運算子是直接連接至攝影機,還是與其他記憶體運算子串聯。請參閱「無限來源 / 連接攝影機」以取得詳細資訊。
算子限制
-
不支援空白畫面。
-
不支援具有不同行長度的影像。
-
位址連接埠上的 Parallelism 必須設為 2。
-
I.MaxImgWidth * I.MaxImgHeight 不得超過可用的 RAM 大小:2^RamAddressWidth。
通過使用 Frame Grabber RAM (DRAM) 之運算子的理論頻寬 [位元/秒],是根據下列公式計算:

然而,由於 DRAM 效率的關係,實際頻寬總是小於理論頻寬。
當 Bit Width 和 Parallelism 的乘積等於內部 RAM Port Width 時,即達到通過運算子的 maximum bandwidth。
![]() |
平台特定值 |
|---|---|
|
RAM Port Width 和 System Clock 是平台特定的。有關您個別平台的詳細資訊,請參閱 Device Resources。 |
| Property | Value |
|---|---|
| Operator Type | M |
| 輸入連結 | I,影像資料輸入 RColA,I 處像素的讀取欄位位址 RRowA,I 處像素的讀取列位址 |
| Output Link | O,資料輸入 |
同步與非同步輸入
- 同步群組:RColA 與 RRowA
- 輸入 I 對該群組而言是非同步的。
|
輸入 bit width 的範圍為:
輸入 bit width 不得超過原生 RAM 資料寬度。如需詳細資訊,請檢查 Device Resources。 |
|
|
欄位位址的 bit width 為: ![]() |
|
|
列位址的 bit width 為: ![]() |
|
|
為了有效率地使用此 operator,必須將位址埠上的 Parallelism 設定為 2。 |
|
|
I.BitWidth x I.Kernel Columns x I.Kernel Rows <= RamDataWidth. |
|
|
I.MaxImgWidth * I.MaxImgHeight 不得超過可用的 RAM 大小:2^RamAddressWidth。 |
| RamDataWidth | |
|---|---|
| Type | 靜態寫入參數 |
| Default | 不適用 |
| Range | 整數 |
|
此參數提供可用於 RAM 介面的資料位元數。這是輸入和輸出的最大位元數。 |
|
| RamAddressWidth | |
|---|---|
| Type | 靜態寫入參數 |
| Default | 不適用 |
| Range | 整數 |
|
此參數提供可用的位址位元數。這有助於計算允許的最大影像尺寸和最大位址寬度。 |
|
| FillLevel | |
|---|---|
| Type | 動態讀取參數 |
| Default | 0 |
| Range | [0%, 100%] |
|
此參數提供 RAM 的 Fill。 |
|
| Overflow | |
|---|---|
| Type | 動態讀取參數 |
| Default | 0 |
| Range | [0, 1] |
|
此參數表示緩衝區溢位。 |
|
| InfiniteSource | |
|---|---|
| Type | static parameter |
| Default | ENABLED |
| Range | {ENABLED, DISABLED} |
|
此參數會啟用對無限來源 operator(例如 Camera operator)的支援。如需詳細資訊,請參閱 'Infinite Sources / Connecting Cameras'。 |
|
以下範例顯示了 FrameBufferRandomRead operator 的使用方式:
-
'Color Plane Separation Option 5 - Sequential Output with Advances Processing'
色彩平面分離範例。 RGB 輸入被分割成其組成部分,並透過一個 DMA 通道進行順序輸出。 分割是透過平行收集相同組件並使用 FrameBufferRandomRead 進行讀取來執行的。
-
'Geometric Transformation Using FrameBufferRandomRead'
範例 - 使用 FrameBufferRandomRead 的幾何轉換
-
'Geometric Transformation and Distortion Correction'
範例 - 使用 PixelReplicator 的幾何轉換與 Distortion Correction
-
範例 - Distortion Correction
-
範例 - Scaling A Line Scan Image
-
範例 - Scaling A Line Scan Image
-
'Image Composition Using Exposure Fusion'
範例 - ExposureFusion

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








上一頁

