Operator CutLine

Operator Library: Synchronization

運算子 CutLine 會將輸入影像的行動態切割為多個較短的行。切割動作由輸入 Cut 控制,該輸入與輸入 I 同步。切割是以 parallelism P 所提供的粒度進行的。因此,不會產生虛擬像素(dummy pixels)。當輸入 Cut 處的像素值為 1 時,來自輸入 I 的對應像素仍包含在當前行的輸出中。在下一個可能的像素位置之後會終止該行,以便符合粒度條件。該運算子支援由參數 Mode 設定的兩種切割模式:

  • 如果將 Mode 設定為 Split(預設值),則會將傳入的行 分割為多個片段。每當輸入 Cut 處目前行的某個像素值為 1 時,正在進行中的輸出行就會在 parallelism P 所提供的粒度處終止。 然後,會以接下來的傳入像素開頭來啟動新行。行中最後 parallelism P 個像素內的任何 1 值 皆無效。

  • 如果將 Mode 設定為 Truncate,則傳入的行會被切割為單一 行,該行可能會比傳入的行更短。每當輸入 Cut 處目前行的某個像素值為 1 時,正在進行中的輸出行就會在 parallelism P 所提供的粒度處終止。在目前行結束之前,不會再將 任何像素轉發至輸出 O。

該運算子可能會產生具有 不同行長度的輸出影像。並非所有 VisualApplets 運算子都能處理使用不同 行長度的影像。

您也可以使用 CutLine 運算子將 0D 影像轉換為 1D 影像。 如果將使用 VALT_PIXEL0D 影像協定的連結連接至運算子的輸入,系統就會自動執行轉換。 在這種情況下,運算子一律處於 Split 模式,且參數 Mode 會被停用。

I/O Properties

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

支援的 Link 格式

Link Parameter Input Link I 輸入連結已切斷 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 自動2
Color Format any VAF_GRAY as I
Color Flavor any FL_NONE as I
Max. Img Width any as I any3
Max. Img Height any as I any4

1

輸入 bit width 的範圍為:

  • 對於無符號輸入:[1, 64]

  • 對於有符號輸入:[2, 64]

  • 對於無符號彩色輸入:[3, 63]

  • 對於有符號彩色輸入:[6, 63]。

2

如果使用 VALT_IMAGE2D 或 VALT_LINE1D,則輸出影像協定與 輸入影像協定相同。如果在輸入端使用 VALT_PIXEL0D 影像協定, 則運算子會將影像轉換為 VALT_LINE1D 影像 協定。

3

輸出最大影像寬度必須小於或等於輸入 最大影像寬度。

4

輸出最大影像高度必須大於或等於 輸入影像高度。

參數

模式
Type static read/write parameter
Default 分裂
Range {分割、截斷}

運作模式。

  • 如果將 Mode 設定為 Split(預設值),則會將傳入的行 分割為多個片段。每當輸入 Cut 處目前行的某個像素值為 1 時,正在進行中的輸出行就會在 parallelism P 所提供的粒度處終止, 並且會以接下來的傳入像素開頭來啟動新行。 行中最後 parallelism P 個像素內的任何 1 值 皆無效。

  • 如果將 Mode 設定為 Truncate,則傳入的行會被切割為 單一行,該行可能會比傳入的行更短。每當 輸入 Cut 處目前行的像素值為 1 時,正在進行中的輸出行就會在 parallelism P 所提供的粒度處終止。在目前行結束之前,不會再將 任何像素轉發至輸出 O。

使用範例

以下範例顯示了 CutLine 運算子的使用方式: