Operator IsLastPixel

Operator Library: Synchronization

運算子IsLastPixel用於標記一行(在行模式下)/ 一幀(在幀模式下)的最後一個像素。 該運算子亦可用於標記空行(在行模式下)或空幀(在幀模式下)。

該運算元有 1 個輸入埠和 2 至 3 個輸出埠:

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

一般操作功能

運算子IsLastPixel始終保存當前像素值。 一旦輸入埠 I 接收到新的像素值, 先前的那個像素值便會從輸出埠 O 輸出。 輸入埠 I 接收到的像素值不會被解析。

在行模式下,一行最後一個像素;或在幀模式下,一幀的最後一個像素,會於輸出埠IsLastO 上標記為 1:

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

  • 幀模式:對於每個由 「IsLastPixel」運算子 接收的 EndOfFrame (EOF) 標籤, 該運算子會在輸出埠IsLastO 上輸出 1。

行尾/幀尾資訊總是透過IsLastO輸出, 並帶有一或多個時鐘週期的延遲(根據最後一個接收到的像素 與接收到的行尾標記之間的間隔而定;該延遲始終等於間隔所對應的時鐘週期數 + 1 個額外時鐘週期)。

[警告] 不允許出現空行/空框

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

  • 在框架模式下,最後一行不得為空。

  • 在行模式下,絕對不允許出現空行。

標記空行或空框(啟用 IsEmptyO)

此外,您可以針對每行空白/每個空白幀取得一個標記。 該標記將輸出至額外的輸出埠IsEmptyO。

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

要啟用輸出埠IsEmptyO:

  1. 在實例化該運算子時,請將「輸出 (IsEmptyO)」的值設定為 1。

當輸出埠IsEmptyO被觸發時:

  • Line Mode: 對於每一行空行 該運算子 IsLastPixel 接收到後,操作員會輸出
    • 並行性 × 其輸出埠O* 上的零,以及
    • 其輸出埠IsEmptyO 上為 1。
  • 幀模式: 對於每個空幀 該運算子 IsLastPixel 接收到後,操作員會輸出
    • 並行性 × 其輸出埠O 上的零,以及
    • 其輸出埠IsEmptyO 上為 1。

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

*範例:若您以行模式運作且並行度為 6,則在輸出埠O上,每出現一行空白行,便會插入六個像素。

[重要] 像素僅在新像素起始處或行尾標籤處停止

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

若並行度 > 1,則僅並行度內的最後一個像素(最高位) 會在輸出埠IsLastO 上標記為 1。 並行度內的其他所有像素均為 0。

範例:當Parallelism= 4 時,在最後一個平行字元處,輸出埠IsLastO 的值為 0x8,但在其他所有情況下皆為 0:

I/O Properties

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

Supported Link Format

Link Parameter Input Link I Output Link O 輸出連結 IsLastO 輸出連結 IsEmptyO(可選)
Bit Width [1:63] as I 1 1
Arithmetic {unsigned, signed} as I 無號數 無號數
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 整除。

Parameters

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

若設定為「行」,該運算子會標記 該行中的最後一個像素。 對於每一行的最後一個像素,該運算子會在輸出埠IsLastO上 輸出 1。

若設定為「幀」,該運算子會標記 幀中的最後一個像素。 該運算子會在輸出埠IsLastO上輸出 1, 以標示每幀的最後一個像素。

您可以將此參數設定為靜態或動態。 當您將此參數用作動態參數時: 系統會實作一個影子寄存器,並將變更內容傳遞至該寄存器:

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

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

  • 直接(當 I 為 VALT_PIXEL0D 時),

並且總是在重設時生效。在此之前,將使用舊值。

Examples of Use

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