Operator Library: Synchronization
該運算子 RemovePixel 會根據控制輸入鏈路Rem 的狀態,移除輸入鏈路 I 與輸出鏈路 O 之間的像素。 移除控制輸入鏈路Rem為二進位輸入鏈路,用於控制像素的移除。 若Rem處的像素被設定為 1,則輸入鏈路 I 中相同位置的像素將被移除。 後續的像素將向左移位。 因此,輸出列的寬度將減少與移除像素數相等的量。
由於會移除像素,因此可以繪製出線寬無法被該鏈路平行度 整除的線條。
為了使輸出鏈路O上的線長能被該鏈路的並行度整除,運算子會插入虛擬像素。這些虛擬像素的內容 未定義(VA 模擬將其值設為 0)。
若要建立長度可被連結平行度整除的線段,您有兩種選擇:
您可以將運算子設定為
- 在相關行中填入虛擬像素,直到該行的長度能被鏈路並行度整除為止(參見範例 1),或者
- 將未構成完整平行像素區塊的像素移至下一行(參見範例 2)。 在此情況下,該運算子僅會在必要時於幀的最後一行插入虛擬像素。
您可以透過參數FlushCondition 來控制此運算子的行為: 若將此參數設定為 EoL (行尾)時,運算子會將虛擬像素新增至那些無法被並行度整除的行之末端。 即使影像中的所有像素均被移除(此時影像僅由 空行組成),影像的行結構仍會得以保留。 若幀中所有像素均被移除,該幀將僅由空行組成。行數不會改變。
若將參數FlushCondition設定為 EoF (幀尾)時: 若某行最後的像素未能構成一個平行像素區塊,則這些最後的像素將被移至下一條輸出 行。 因此,各行將結束於平行度邊界處,而超出部分的像素則被移至下一行。 因此,此運算子僅會在幀的末端產生虛擬像素。 在此模式下,行結構可能會發生變化,且最後一行可能會更長(長度增加 1 個並行度)。 因此,MaxWidth 的寬度比輸入鏈路寬 1 個並行度。 EoF 模式常被用於影像壓縮應用。
![]() |
Resource Consumption |
|---|---|
|
該運算子的 FPGA 資源消耗會隨著並行度大幅增加。 Basler 建議在此運算子中採用較低的並行度。 透過將並行像素移入核心(即使用 CastKernel),然後再使用 RemovePixel 運算子之前,將並行像素移入核心中(即使用CastKernel),即可降低並行度。 若您只想移除一行中的最後幾個像素,可以使用運算子 CutLine 並以「截斷」模式運作。這樣可以節省資源。 |
-------------------------------------------------------------------------------------
範例 1 (將參數FlushCondition設定為 EoL):
在此範例中,FlushCondition設定為 EoL (預設值)。此運算子以並行度 4 執行,並產出如圖所示的影像。
在第二行中,移除了兩個像素。這將導致後續的像素發生位移。由於 6(新的行 長度)無法被 4(並行度)整除,因此插入了 2 個虛擬像素。 在第三行中,移除了 4 個像素。由於 4(新的行長度)能被 4 整除,該行僅會變短 ,且不會插入任何虛擬像素。 第 6 行被完全移除。在後續的模擬中,該行將被視為空行。
範例 1:當 FlushCondition 設定為 EoL,且平行度設定為 4 時的行為(Rem 始終為 0,唯獨 設定為 1 的像素除外)
-------------------------------------------------------------------------------------
範例 2 (將參數FlushCondition設定為 EoF):
在此範例中,FlushCondition設定為 EoF。此運算子以 4 級並行度執行,並產生如圖所示的影像。
範例 2:當 FlushCondition 設定為 EoF,且平行度設定為 4 時的行为(Rem 始終為 0,惟 設定為 1 的像素除外)
![]() |
修改了 EoF 模式下的最大圖片寬度——請特別留意舊版設計! |
|---|---|
|
已針對 EoF 模式修正最大影像寬度,使其增加 1 個平行度(當Parallelism > 1 時)。 請參閱範例以了解此問題。這可能會在舊版設計中引發 DRC 錯誤。 如果您確定不需要這額外的寬度,可以使用SetDimension將尺寸設回最大輸入寬度。 |
Synchronous and Asynchronous Inputs
- 所有輸入彼此同步,亦即它們必須透過任意的 O 型運算子網路,由相同的 M 型運算子提供來源。
| FlushCondition | |
|---|---|
| Type | 靜態參數 |
| Default | EoL |
| Range | {行尾, 文件尾} |
|
此參數用於控制虛擬像素的插入。在 EoL 模式下,若行長無法被並行度整除,則會在 該行的末端插入虛擬像素。 在 EoF 模式下,若一行中的最後幾個像素未能組成一個平行像素區塊,這些像素將被移至 下一條輸出行。 因此,各行將在平行度邊界處結束,而超出部分的像素則被移至下一行。 因此,該運算子僅會在幀的最後一行無法 被平行度整除時,才在幀的末端產生虛擬像素。 輸出鏈路 O 處的幀最大寬度(MaxWidth),即為輸入鏈路處 + 1 個平行度下的幀寬度。 若使用影像協定 VALT_PIXEL0D,則此參數將被停用。對於影像協定 VALT_LINE1D,僅可使用 EoL 。
|
|
以下範例展示了運算子 `RemovePixel ` 的用法:
-
範例 — 一個符合定義格式的跑長編碼範例。
-
'imaFlex CXP-12 Quad 平台上 FrameBufferMultRoi 使用者程式庫元素的實作範例'
範例 - operator 使用方式示範

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

上一頁

