Library: Memory 運算子
此運算子將影像串流緩衝至 幀擷取器 RAM(DRAM)中進行緩衝。 需具備一個類型為RAM的VisualApplets 資源。如需更多資訊,請參閱「裝置資源的分配」。 此外,此運算子還支援感興趣區域 (ROI)。 總位元數(位元寬度乘以並行度)不得超過該幀 擷取卡的記憶體限制。
有關運算子延遲的資訊,請參閱 表 46「Library Memory 中各運算子的個別延遲」。
此運算子的工作原理類似 FIFO。 任何輸入資料都會立即轉發至輸出端。 然而,若輸出端遭到阻塞(例如,因後續運算子無法處理該輸入頻寬),則 此運算子會將資料儲存起來。 因此,只有當運算子無法輸出資料時,記憶體才會被填滿。 通常,此運算子用於補償輸入頻寬的峰值。
在內部,影像緩衝區是以影像行為單位進行運作的。 這項內部行緩衝區功能使得記憶體延遲非常短。 當然,若緩衝區中填入的影像行越多,延遲便會增加。 例如,傳輸至記憶體中的影像將會立即轉發至輸出端。 在實際應用中,可將相機的部分影像轉發至電腦,同時相機仍持續傳輸剩餘的 影像行。
您可以透過XOffset、XLength、 YOffset和YLength等參數來定義 ROI 的大小。 若輸入影像的寬度小於XOffset與 XLength 的總和,該運算子仍會讀取參數化的XLength 值。 在此情況下,該運算子將針對額外的像素輸出未定義的記憶體內容。 若輸入影像的高度小於要求的輸出影像高度,該運算子將僅輸出可用的行。
在 Line1D 應用程式模式下,YOffset 和 YLength 的設定不會影響緩衝區。
為了測量緩衝區的填滿程度,操作員需提供 2 個參數: FillLevel和Overflow。 FillLevel 以 25% 為單位顯示 RAM 的填滿程度。 當 FillLevel 接近或等於 100%,且接下來要儲存至緩衝區的影像 將超過 RAM 容量時,Overflow 參數會被設定為 1。 若發生溢出,輸入資料將被捨棄,且輸入影像的高度會被縮減。 因此,記憶體中儲存的將是不完整的影像。 使用者必須對溢出參數進行輪詢。 由於溢出狀態的持續時間可能非常短暫,因此有可能發生在操作員的 輪詢週期內。
參數InfiniteSource用於指定該運算子是直接連接至攝影機,還是與其他記憶體運算子串接。 請參閱「無限來源/連接攝影機」以獲取更多資訊。
Operator Restrictions
-
不支援空影格。
![]() |
可用記憶體空間 |
|---|---|
|
該裝置需要額外的記憶體空間來儲存內部資料。因此,無法將所使用的 RAM 資源的全部容量 用於緩衝影像資料。 實際可用於緩衝影像資料的空間,取決於硬體平台(平台 RAM 容量及 平台 RAM 介面寬度)以及鏈路配置。 有關平台 RAM 容量及 平台 RAM 介面寬度的資訊,請參閱 裝置資源。) 您可以使用以下公式計算 RAM 資源的可用容量:
公式及計量單位中所使用的縮寫:
|
透過採用 幀擷取卡 RAM(DRAM) 的營運商,其理論頻寬 [位元/秒] 計算方式如下:

然而,由於 DRAM 的效率限制,實際頻寬總是低於理論頻寬。
該 最大頻寬 若Bit Width 與Parallelism 的乘積等於內部 RAM 埠寬度,則透過該運算器的 最大頻寬即已達到。
![]() |
特定於平台的數值 |
|---|---|
|
RAM 位元寬度與系統時脈因平台而異。 請參閱 裝置資源 以獲取您所使用平台的詳細資訊。 |
|
無號輸入的 Bit Width 範圍為 [1, 64]。 有號輸入的範圍為 [2, 64]。 無號彩色輸入的範圍為 [3, 63],有號彩色輸入的範圍為 [6, 63]。 |
|
|
位元寬度與並行度的乘積不得超過原生 RAM 資料寬度。 檢查 裝置資源 以獲取更多資訊。 |
| XOffset | |
|---|---|
| Type | 動態/靜態讀寫參數 |
| Default | 0 |
| Range | [0, 最大影像寬度 - XLength] |
|
此參數定義 ROI 左上角的 x 座標。 步長即為並行度。 |
|
| XLength | |
|---|---|
| Type | 動態/靜態讀寫參數 |
| Default | 1024 |
| Range | [2*並行度,最大影像寬度 - X 偏移量] |
|
此參數定義 ROI 的寬度。 步長即為並行度。 |
|
| YOffset | |
|---|---|
| Type | 動態/靜態讀寫參數 |
| Default | 0 |
| Range | [0, Max.Img Height - YLength] |
|
此參數定義 ROI 左上角的 y 座標。 |
|
| YLength | |
|---|---|
| Type | 動態/靜態讀寫參數 |
| Default | 1024 |
| Range | [1, Max.Img Height - YOffset] |
|
此參數定義 ROI 的高度。 |
|
| FillLevel | |
|---|---|
| Type | 動態讀取參數 |
| Default | 0 |
| Range | [0%, 100%] |
|
此參數以 25% 為單位,指定 DRAM 的填滿程度。 |
|
| Overflow | |
|---|---|
| Type | 動態讀取參數 |
| Default | 0 |
| Range | [0, 1] |
|
此參數表示發生緩衝區溢位。 |
|
| InfiniteSource | |
|---|---|
| Type | 靜態參數 |
| Default | ENABLED |
| Range | {ENABLED, DISABLED} |
|
此參數會啟用對無限來源運算子(如 Camera 運算子)的支援。 請參閱 'Infinite Sources / Connecting Cameras' 以取得更多資訊。 |
|
以下範例展示了 ImageBuffer 運算子的使用方式:
-
快速入門
-
基本原理 - 瞭解 VisualApplets 的概念
-
資料流 - 瞭解 VisualApplets 中使用的管線結構
-
同步規則——O型網路中運算子的使用。
-
'Infinite Sources / Connecting Cameras'
Infinite Sources - 將運算子連接至相機。(DRC2 延遲錯誤)
-
設計參數化
-
設計參數化 — 已停用之參數
-
設計參數化 - 參數值不合法
-
瞭解運算子裝置資源的分配方式。
-
基本指南:基本取得 —ImageBuffer 運算子出現非法狀態
-
範例 - 直方圖閾值化
-
範例 - 顯示在 線型掃描應用中使用 operator Blob_Analysis_1D。
-
範例 - 將斑點分析運算子套用到輸入相機影像。 此小程式展示了小程式中斑點資料的使用方式。 在此情況下,會定位出具有最大面積的物件,並使用其座標從 原始影像中切割出該物件。
-
'使用運算子 JPEG_Encoder 進行 JPEG 壓縮'
範例 - 顯示運算子 JPEG_Encoder 用法的簡單範例。
-
範例 - 顯示用於彩色 JPEG 壓縮的 JPEG 使用者庫元素用法的簡單範例。
-
範例 - 顯示針對 microEnable4 與 5 平臺已被取代之 JPEG_Encoder_Gray 運算子用法的簡單範例。
-
範例 - 測量影像尺寸並可用於分析設計流程。
-
範例 - 當影像時序由 generator 提供時,可以分析設計的資料流。
-
範例 — 為進行除錯,可手動插入圖片。
-
範例 - 計算兩個連續影像之間的差異。 系統會對這些差異進行閾值處理,並透過 DMA 通道輸出。
-
範例 — 說明如何為線掃描相機實作濾波器。
-
範例 - 一種 High Speed 且強固的雷射線檢測演算法。 此演算法會決定重心座標,以取得次像素解析度的結果。
-
範例 - 滾動平均值 - 迴圈

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



上一頁

