運算子 InsertImage

Operator Library: Synchronization

InsertImage 運算子會將多個 n 個輸入連結 I[0] .. I[n-1] 多工處理至輸出連結 O。 因此,該運算子會在 O 依序輸出所有輸入的輸入影像。

此運算子會將輸入影像依次轉發至輸出端。 首先處理輸入連結 I[0],接著是連結 I[1]。處理完連結 I[n-1] 後,運算子會再次從 I[0] 的下一個影像開始,以此類推。 此運算子會等待目前選定之輸入端出現影像。 因此,無法略過輸入端。 這裡沒有「先到先處理」的策略。

如前所述,此運算子在特定時間只會轉發特定的輸入。 當正在處理某個輸入時,所有其他輸入都會被封鎖。 如果在被封鎖的輸入端出現影像,請確保能夠对其進行緩衝,直到其獲得處理為止。 此外,使用者必須確保多個輸入並非源自同一個影像來源,因為這會導致死結。 請參閱基礎與範例中的 'Multiplex the Images of Two Cameras' 以取得有關正確插入的更多資訊。

對於每個輸入 I[k],該運算子會提供一個控制輸入Ins[k]。 這些輸入用於控制影像的資料應被採用並傳送至輸出端,還是應被捨棄。 Ins[k]輸入接受二進位資料。 若對應影像的第一个像素提供「1」,則該影像將被轉發至輸出端。 反之,若對應影像的第一个像素提供「0」,則該影像雖會被處理,但最終將被捨棄。

I[k] 與Ins[k]這對組合是同步的,也就是說,它們必須由同一個 M 型運算子透過任意的 O 型運算子網路作為其來源。 詳情請參閱「具有多個輸入的 M 型運算子」。 因此,這對組合不需要 SYNC 運算子。

該運算子的輸出幀率是輸入幀率的 n 倍。 然而,輸出並行度並未增加。 因此,儘管可能需要傳輸更多資料,但輸出頻寬仍等於輸入頻寬。 在運算子處理資料之前,可能需要提高輸入端的並行度。

I[k] 中的所有影像可能具有不同的高度和寬度。 對於空的輸入影像,其控制輸入Ins[k]將被忽略。 這些影像不會被傳遞至輸出端,也就是說將會被捨棄。

I/O Properties

Property Value
Operator Type M
輸入連結 I[0],資料輸入
I[k],資料輸入
Ins[k],控制輸入
Output Link O, data output

支援的 Link 格式

Link Parameter 輸入連結 I[0] 輸入連結 I[k] 輸入連結 Ins[k] Output Link O
Bit Width [1, 64]1 同 I[0] 1 同 I[0]
Arithmetic {unsigned, signed} 同 I[0] unsigned 同 I[0]
Parallelism any 同 I[0] 同 I[0] 同 I[0]
Kernel Columns any 同 I[0] 1 同 I[0]
Kernel Rows any 同 I[0] 1 同 I[0]
Img Protocol VALT_IMAGE2D 同 I[0] 同 I[0] 同 I[0]
Color Format any 同 I[0] VAF_GRAY 同 I[0]
Color Flavor any 同 I[0] FL_NONE 同 I[0]
Max. Img Width any any 同 I[k] 自動2
Max. Img Height any any 同 I[k] 自動3

1

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

2

輸出影像的最大寬度即為所有 I[k] 輸入影像寬度的最大值。

3

The maximum output image height is the maximum of all I[k] input image heights.

同步與非同步輸入

  • 同步群組:I[k] 與 Ins[k]
  • 所有群組彼此非同步。

參數

無

使用範例

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