Operator Library: Synchronization
運算子 RemovePixel 會根據控制輸入連結 Rem,移除輸入連結 I 與輸出連結 O 之間的像素。 移除輸入連結 Rem 是一個二進位輸入連結,用於控制像素的移除。 若 Rem 處的像素設為 1,則會移除輸入連結 I 處相同位置的像素。 隨後的像素會向左偏移。 因此,輸出行的寬度會減少移除的像素數量。
由於移除了像素,因此可能會建構出其行寬無法被連結的 Parallelism 整除的行。
為了在輸出連結 O 上產生可被連結的 Parallelism 整除的行長度,運算子會插入虛擬像素。這些虛擬像素的內容未定義 (VA 模擬會將這些值設為 0)。
您有兩種選項可用來建立長度可被連結 Parallelism 整除的行:
您可以讓運算子
- 使用虛擬像素填滿(Fill)相關行,直到行長度可被連結的 Parallelism 整除為止(請參閱範例 1),或者
- 將無法構成完整平行像素區塊的像素移至下一行(請參閱範例 2)。 在此情況下,運算子僅會在必要時於畫面的最後一行插入虛擬像素。
您可透過參數 FlushCondition 來控制運算子的此種行為: 若參數設為 EoL (End of Line),運算子會將虛擬像素新增至無法被 Parallelism 整除的行結尾。 即使所有像素都從影像中移除,影像的行結構仍會保留(此時影像僅包含空行)。 如果畫面中的所有像素都被移除,該畫面將僅由空行組成。行數保持不變。
若參數 FlushCondition 設為 EoF (End of Frame): 若某一行的最後幾個像素無法湊成一個平行像素區塊,這些最後的像素將被移至下一個輸出行。 因此,行會在 Parallelism 邊界結束,超出部分的像素會移至隨後的行。 因此,運算子只會在畫面的結尾建立虛擬像素。 在此模式下,行結構可能會改變,且最後一行可能會更長(增加 1 倍的 Parallelism)。 因此,MaxWidth 會比輸入連結寬 1 倍的 Parallelism。 EoF 模式通常用於影像壓縮應用。
![]() |
資源消耗 |
|---|---|
|
運算子的 FPGA 資源消耗會隨著 Parallelism 顯著增加。 Basler 建議在此運算子上使用較低的 Parallelism。 在使用 RemovePixel 運算子之前,可以透過將平行像素移入 kernel(即使用 CastKernel)來降低 Parallelism。 如果您只想移除某一行的最後幾個像素,可以改用 truncate 模式下的 CutLine 運算子。這樣可以節省資源。 |
-------------------------------------------------------------------------------------
範例 1(參數 FlushCondition 設為 EoL):
在此範例中,FlushCondition 設為 EoL(預設值)。此運算子搭配 4 的 Parallelism 使用,並取得圖片中所示的影像。
在第二行中,移除了兩個像素。這會導致隨後的像素位移。由於 6(新的行長度)無法被 4(Parallelism)整除,因此插入了 2 個虛擬像素。 在第三行中,移除了 4 個像素。由於 4(新的行長度)可被 4 整除,因此行單純變短,且未插入虛擬像素。 第 6 行被完全移除。在後續的模擬中,它被視為空行。
範例 1:FlushCondition 設為 EoL 且 Parallelism 設為 4 時的行為(Rem 永遠為 0,設為 1 的像素除外)
-------------------------------------------------------------------------------------
範例 2(參數 FlushCondition 設為 EoF):
在此範例中,FlushCondition 設為 EoF。此運算子搭配 4 的 Parallelism 使用,並取得圖片中所示的影像。
範例 2:FlushCondition 設為 EoF 且 Parallelism 設為 4 時的行為(Rem 永遠為 0,設為 1 的像素除外)
![]() |
EoF 模式下變更的最大影像寬度 - 舊版設計請注意! |
|---|---|
|
針對 EoF 模式已修正最大影像寬度,使其寬度增加 1 個 Parallelism(適用於 Parallelism > 1)。 請參閱範例以了解此問題。這可能會在舊版設計中造成 DRC 錯誤。 如果您確定不需要此額外寬度,可以使用 SetDimension 將尺寸調回最大輸入寬度。 |
同步與非同步輸入
- 所有輸入彼此同步,亦即它們必須透過任意的 O 型 operator 網路,由同一個 M 型 operator 提供來源。
| FlushCondition | |
|---|---|
| Type | static parameter |
| Default | EoL |
| Range | {EoL, EoF} |
|
此參數可用於控制虛擬像素 (dummy pixels) 的插入。在 EoL 模式下,如果行長度無法被 Parallelism 整除,則會在行尾插入虛擬像素。 在 EoF 模式下,如果行的最後幾個像素無法構成一個完整的平行像素區塊,這些像素將被移至下一條輸出行。 因此,行會在 Parallelism 邊界處結束,超出範圍的像素則會被移至後續的行。 因此,只有在影格的最後一行無法被 Parallelism 整除時,運算子才會在影格末尾建立虛擬像素。 輸出連接鏈結 O 處的影格 MaxWidth 為輸入連接鏈結處的影格寬度 + 1 個 Parallelism。 如果使用 VALT_PIXEL0D 影像協議,此參數將會停用。對於 VALT_LINE1D 影像協議,僅能使用 EoL。
|
|
以下範例展示了 RemovePixel 運算子的使用方式:
-
範例 - 定義格式的執行長度編碼 (run length encoding) 範例。
-
「imaFlex CXP-12 Quad 平臺上 FrameBufferMultRoi 使用者函式庫元件的功能範例」
範例 - 如何使用此運算子的示範

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

上一頁

