Operator RemovePixel

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 將尺寸調回最大輸入寬度。

I/O Properties

Property Value
Operator Type P
輸入連結 I,資料輸入
Rem,控制輸入
Output Link O, data output

支援的 Link 格式

Link Parameter Input Link I 輸入連結 Rem Output Link O
Bit Width [1, 64]1 1 as I
Arithmetic {unsigned, signed} unsigned as I
Parallelism any as I as I
Kernel Columns any 1 as I
Kernel Rows any 1 as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} as I as I
Color Format any VAF_GRAY as I
Color Flavor any FL_NONE as I
Max. Img Width any as I 與 I 相同 (EoL 模式) / I + Parallelism (EoF 模式)
Max. Img Height any as I as I

1

無號輸入的 Bit Width 範圍為 [1, 64]。 針對有號輸入,範圍為 [2, 64]。 針對無號彩色輸入,範圍為 [3, 63],而針對有號彩色輸入,範圍為 [6, 63]。

同步與非同步輸入

  • 所有輸入彼此同步,亦即它們必須透過任意的 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 運算子的使用方式: