Operator RemovePixel

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

I/O Properties

Property Value
Operator Type P
Input Links I, 資料輸入
Rem, 控制輸入
Output Link O,資料輸出

Supported Link Format

Link Parameter Input Link I 輸入連結 Rem Output Link O
Bit Width [1, 64]1 1 as I
Arithmetic {unsigned, signed} 無號數 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 as I(EoL 模式)/as I + 並列結構(EoF 模式)
Max. Img Height any as I as I

1

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

Synchronous and Asynchronous Inputs

  • 所有輸入彼此同步,亦即它們必須透過任意的 O 型運算子網路,由相同的 M 型運算子提供來源。

Parameters

FlushCondition
Type 靜態參數
Default EoL
Range {行尾, 文件尾}

此參數用於控制虛擬像素的插入。在 EoL 模式下,若行長無法被並行度整除,則會在 該行的末端插入虛擬像素。

在 EoF 模式下,若一行中的最後幾個像素未能組成一個平行像素區塊,這些像素將被移至 下一條輸出行。 因此,各行將在平行度邊界處結束,而超出部分的像素則被移至下一行。 因此,該運算子僅會在幀的最後一行無法 被平行度整除時,才在幀的末端產生虛擬像素。 輸出鏈路 O 處的幀最大寬度(MaxWidth),即為輸入鏈路處 + 1 個平行度下的幀寬度。

若使用影像協定 VALT_PIXEL0D,則此參數將被停用。對於影像協定 VALT_LINE1D,僅可使用 EoL 。

Examples of Use

以下範例展示了運算子 `RemovePixel ` 的用法: