Operator IsLastPixel

Operator Library: Synchronization

運算子 IsLastPixel 用於標記一行(在 line mode 下)/ 一影格(在 frame mode 下)的最後一個像素。 此運算子也可用於標記空行(在 line mode 下)或空影格(在 frame mode 下)。

此運算子具備 1 個輸入連接埠以及 2 到 3 個輸出連接埠:

  • 輸入連接埠 I,
  • 輸出連接埠 O,
  • 輸出連接埠 IsLastO,以及
  • (選填)輸出連接埠 IsEmptyO。

一般運算子功能

運算子 IsLastPixel 會隨時保留目前的像素值。 一旦在輸入連接埠 I 上收到新的像素值, 前一個像素值就會輸出到輸出連接埠 O。 在輸入連接埠 I 上接收到的像素值不會被解譯。

一行(在 line mode 下)或一影格(在 frame mode 下)的最後一個像素會在輸出連接埠 IsLastO 上以 1 標記:

  • Line Mode:對於運算子 IsLastPixel 收到的每一個 EndOfLine (EOL) 標籤, 該運算子會在其輸出連接埠 IsLastO 上輸出 1。

  • Frame Mode:對於運算子 IsLastPixel 收到的每一個 EndOfFrame (EOF) 標籤, 該運算子會在其輸出連接埠 IsLastO 上輸出 1。

行結尾 / 影格結尾資訊一律會輸出至 IsLastO, 並延遲一個或多個時脈週期(根據最後一個輸入像素與輸入的行結尾標籤之間的間隔而定;始終為間隔的時脈週期數加上 1 個額外的時脈週期)。

[警告] 不允許空白行/影格

只要您不使用 IsEmptyO(見下文):

  • 在 frame mode 下,最後一行不得為空白。

  • 在 line mode 下,完全不允許空白行。

標記空白行或影格(啟用 IsEmptyO)

此外,您可以取得每個空白行 / 每個空白影格的標記。 此標記將透過額外的輸出連接埠 IsEmptyO 輸出。

輸出連接埠 IsEmptyO 預設為停用狀態。

若要啟用輸出連接埠 IsEmptyO:

  1. 具現化運算子時,將 Output (IsEmptyO) 的值設定為 1。

當輸出連接埠 IsEmptyO 啟用時:

  • Line Mode:對於運算子 IsLastPixel 接收時,運算子會輸出
    • 在其輸出連接埠 O* 上輸出 parallelism 個零,以及
    • 在其輸出連接埠 IsEmptyO 上輸出 1。
  • Frame Mode: 對於該運算子的每一個 空白影格 IsLastPixel 接收時,運算子會輸出
    • 在其輸出連接埠 O 上輸出 Parallelism 個零,且
    • 在其輸出連接埠 IsEmptyO 上輸出 1。

在所有其他情況下,輸出連接埠 IsEmptyO 為 0。

*範例:如果您在使用 Parallelism 為 6 的 Line Mode,則會在輸出連接埠 O 上為每個空白行插入六個像素。

[重要] Pixel 只在新 Pixel 開始或行結尾標籤(End-of-Line Tag)處停止

運算子 IsLastPixel 僅在運算子接收到下一個像素或行結尾標籤 (EOL) 的那一刻輸出像素。 這在未緊接在最後一個像素之後接收行結尾標籤的情況下特別重要。

範例(參數 Mode = Line)且啟用輸出連接埠 IsEmptyO:

輸出連接埠 O 上的紅色像素是為空白行插入的值為 0 的虛擬像素。

在輸出連接埠 IsLastO 上,空白行會得到 1,也就是說,空白行看起來與範例中在輸入連接埠 I 輸入時已包含一個像素的第四行相同。 因此,當啟用輸出連接埠 IsEmptyO 時, 連接埠 IsLastO 上的輸出 只能結合連接埠 IsEmptyO 上的輸出一起解讀。

在上面的範例中,連接埠 IsLastO 針對第 4 行和第 8 行輸出 1。 IsEmptyO 中第 4 行的 0 告訴我們,傳入的行並非空白,因此包含 1 個像素。 IsEmptyO 中第 8 行的 1 告訴我們,傳入的行是空白的,亦即包含 0 個像素。

[備註] Parallelism > 1

如果 Parallelism > 1,則僅 Parallelism 中的最後一個像素(最高位元) 會在輸出連接埠 IsLastO 上標記為 1。 Parallelism 的所有其他像素皆為 0。

範例:當 Parallelism=4 時,在最後一個並行字組處,輸出連接埠 IsLastO 為 0x8,但在所有其他情況下為 0:

I/O Properties

Property Value
Operator Type M
Input Link I,影像資料輸入
輸出連結 O,影像資料輸出
IsLastO,針對行/影格中的最後一個像素輸出 1,並針對所有其他像素輸出 0
IsEmptyO(選用),針對每個空白行/影格輸出 1,並針對包含影像資料的行/影格輸出 0

支援的 Link 格式

Link Parameter Input Link I Output Link O 輸出連接埠 IsLastO 輸出連接埠 IsEmptyO(選用)
Bit Width [1:63] as I 1 1
Arithmetic {unsigned, signed} as I unsigned unsigned
Parallelism any as I as I as I
Kernel Columns any as I 1 1
Kernel Rows any as I 1 1
Img Protocol {VALT_LINE1D, VALT_IMAGE2D} as I as I as I
Color Format {VAF_COLOR, VAF_GRAY} as I VAF_GRAY VAF_GRAY
Color Flavor any as I FL_NONE FL_NONE
Max. Img Width any1 as I as I as I
Max. Img Height any as I as I as I

1

最大影像寬度必須能被 parallelism 整除。

參數

模式
Type 靜態或動態寫入參數
Default Frame
Range {Line, Frame}

若設為 Line,運算子會標記 行中的最後一個像素。 運算子在其輸出連接埠 IsLastO 上 針對行的每一個最後像素輸出 1。

若設為 Frame,運算子會標記 影格中的最後一個像素。 運算子在其輸出連接埠 IsLastO 上 針對影格的每一個最後像素輸出 1。

您可以將此參數設為 static 或 dynamic。 當您將此參數用作動態參數時: 系統會實作一個對應暫存器,並在以下情況套用變更:

  • 在兩個影像之間(當 I 為 VALT_IMAGE2D 時),或

  • 在兩行之間(當 I 為 VALT_LINE1D 時),或

  • 直接(當 I 為 VALT_PIXEL0D 時),

以及重設時套用變更。在此之前,將使用舊值。

使用範例

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