Operator Library: Memory
此運算子會在 Frame Grabber RAM (DRAM) 中緩衝影像串流。 需要一個類型為 RAM 的 VisualApplets 資源。請查看 'Allocation of Device Resources' 以取得更多資訊。 此運算子另外具備區域 (ROI) 支援功能。 總位元數 (Bit Width 乘以 Parallelism) 不得超過各個擷取卡的記憶體限制。
有關 operator 延遲的資訊,請參閱 表 46「Library Memory 中各 operator 的個別延遲」。
此運算子的運作方式類似 FIFO。 任何輸入資料都會立即轉發至輸出。 然而,如果輸出遭到阻塞(例如後續運算子無法處理輸入頻寬),運算子將會儲存資料。 因此,只有在運算子無法輸出資料時,才會填滿 Memory。 此運算子通常用於補償尖峰輸入頻寬。
在內部,影像緩衝區是以影像行為單位進行運作。 此內部行緩衝區功能可帶來非常短的 Memory 延遲。 當然,如果緩衝區填入更多行,延遲就會增加。 例如,傳輸至 Memory 中的影像將立即轉發至輸出。 在應用中,當相機仍在傳輸剩餘的影像行時,部分相機影像即可轉發至 PC。
使用參數 XOffset、XLength、 YOffset 與 YLength,您可以定義 ROI 大小。 若輸入影像寬度小於 XOffset 與 XLength 的總和,運算子仍會讀取參數化的 XLength。 在此情況下,運算子會針對額外的像素輸出未定義的 Memory 內容。 若輸入影像高度小於要求的輸出影像高度,運算子將僅輸出可用的行。
在 Line1D 應用模式下,YOffset 與 YLength 設定不會影響緩衝區。
為了測量緩衝區的填滿程度,運算子提供了 2 個參數: FillLevel 與 Overflow。 FillLevel 以 25% 為單位顯示 RAM 的填滿程度。 當 FillLevel 接近或等於 100%,且下一個要儲存至緩衝區的影像將超出 RAM 容量時,Overflow 參數會設為 1。 發生溢位時,系統會捨棄輸入資料並減少輸入影像高度。 因此,不完整的影像會被儲存在 Memory 中。 使用者必須輪詢 overflow 參數。 由於 overflow 狀態的持續時間可能非常短短暫,因此有可能在運算子的輪詢週期內發生。
參數 InfiniteSource 用於指定運算子是直接連接至相機,還是與其他 memory 運算子串聯。 請查看 'Infinite Sources / Connecting Cameras' 以取得更多資訊。
算子限制
-
不支援空白畫面。
![]() |
可用的 Memory 空間 |
|---|---|
|
此運算子需要額外的 Memory 空間來存放內部資料。因此,所使用的 RAM 資源無法全數用於緩衝影像資料。 實際可用於緩衝影像資料的空間取決於硬體平台(Platform RAM Size 與 Platform RAM Interface Width)以及連結組態。 如需有關 Platform RAM Size 和 Platform RAM Interface Width 的資訊,請參閱 Device Resources。) 您可以使用下列公式計算 RAM 資源的可用容量:
公式中使用的縮寫與計量單位:
|
通過使用 Frame Grabber RAM (DRAM) 之運算子的理論頻寬 [位元/秒],是根據下列公式計算:

然而,由於 DRAM 效率的關係,實際頻寬總是小於理論頻寬。
當 Bit Width 和 Parallelism 的乘積等於內部 RAM Port Width 時,即達到通過運算子的 maximum bandwidth。
![]() |
平台特定值 |
|---|---|
|
RAM Port Width 和 System Clock 是平台特定的。有關您個別平台的詳細資訊,請參閱 Device Resources。 |
|
無號輸入的 Bit Width 範圍為 [1, 64]。 針對有號輸入,範圍為 [2, 64]。 針對無號彩色輸入,範圍為 [3, 63],而針對有號彩色輸入,範圍為 [6, 63]。 |
|
|
Bit width 與 Parallelism 的乘積不得超過原生 RAM 資料寬度。 請查看 Device Resources 以取得更多資訊。 |
| XOffset | |
|---|---|
| Type | dynamic/static read/write parameter |
| Default | 0 |
| Range | [0, Max.Img Width - XLength] |
|
此參數定義 ROI 左上角的 x 座標。 步進大小即為 Parallelism。 |
|
| XLength | |
|---|---|
| Type | dynamic/static read/write parameter |
| Default | 1024 |
| Range | [2*parallelism, Max.Img Width - XOffset] |
|
此參數定義 ROI 的寬度。 步進大小即為 Parallelism。 |
|
| YOffset | |
|---|---|
| Type | dynamic/static read/write parameter |
| Default | 0 |
| Range | [0, Max.Img Height - YLength] |
|
此參數定義 ROI 左上角的 y 座標。 |
|
| YLength | |
|---|---|
| Type | dynamic/static read/write parameter |
| Default | 1024 |
| Range | [1, Max.Img Height - YOffset] |
|
此參數定義 ROI 的高度。 |
|
| FillLevel | |
|---|---|
| Type | 動態讀取參數 |
| Default | 0 |
| Range | [0%, 100%] |
|
此參數以 25% 為遞增幅度提供 DRAM 的 Fill 級別。 |
|
| Overflow | |
|---|---|
| Type | 動態讀取參數 |
| Default | 0 |
| Range | [0, 1] |
|
此參數表示緩衝區溢位。 |
|
| InfiniteSource | |
|---|---|
| Type | static parameter |
| Default | ENABLED |
| Range | {ENABLED, DISABLED} |
|
此參數啟用對無限來源運算子(如 Camera 運算子)的支援。 如需更多資訊,請參閱 'Infinite Sources / Connecting Cameras'。 |
|
ImageBuffer 運算子的使用方式顯示於下列範例中:
-
快速入門
-
基本原理 - 了解 VisualApplets 的概念
-
資料流 - 了解 VisualApplets 中使用的管線結構
-
同步規則 - 運算子在 O 型網路中的使用方式。
-
無限來源 - 將運算子連接至相機。(DRC2 延遲錯誤)
-
設計參數化
-
設計參數化 - 停用的 Property
-
設計參數化 - 不合法的 Property 值
-
了解運算子的裝置資源配置。
-
圖 201,「Link Property 變更後的不合法狀態」
基本指南基本擷取 - ImageBuffer 運算子處的不合法狀態
-
範例 - 柱狀圖閾值處理
-
範例 - 顯示在線掃描應用中使用 operator Blob_Analysis_1D。
-
範例 - 將 blob 分析運算子套用至輸入相機影像。 此 applet 顯示了 applet 中 blob 資料的使用方式。 在此情況下,會定位出具有最大面積的物件,並使用其座標從原始影像中裁切出該物件。
-
「使用運算子 JPEG_Encoder 進行 JPEG 壓縮」
範例 - 顯示運算子 JPEG_Encoder 用法的簡單範例。
-
範例 - 顯示 JPEG 使用者函式庫元素用於彩色 JPEG 壓縮用法的簡單範例。
-
範例 - 顯示針對 microEnable 4 與 5 平台已過時的 JPEG_Encoder_Gray 運算子用法的簡單範例。
-
範例 - 測量影像尺寸,可用於分析設計流程。
-
範例 - 在由產生器提供影像時序的同時,可以分析設計的資料流。
-
範例 - 基於偵錯目的,可以手動插入影像。
-
範例 - 計算兩張連續影像之間的差異。 系統會對這些差異進行閾值處理,並透過 DMA 通道輸出。
-
'Filter for Line Scan Cameras'
範例 - 解釋如何為線陣相機實作濾波器。
-
範例 - 一種 High Speed 且強固的雷射線偵測演算法。 此演算法可決定重心座標以取得亞像素解析度結果。
-
範例 - 移動平均 - 迴圈

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



上一頁

