オペレーター 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 を出力します。

End of Line / End of Frame 情報は、1 クロックサイクル以上の遅延を伴って IsLastO から常に出力されます (最後の入力ピクセルと入力される end-of-line タグの間のギャップに応じます。常に、ギャップのクロックサイクル数 + 追加の 1 クロックサイクルになります)。

[Warning] 空のライン/フレームは許可されません

IsEmptyO を使用しない限り(下記参照):

  • frame mode では、最後のラインを空にすることはできません。

  • line mode では、空のラインは一切許可されません。

空のラインまたはフレームへのマーク付け(IsEmptyO の有効化)

さらに、空のライン / 空のフレームごとにマーカーを取得できます。 マーカーは追加の出力ポート IsEmptyO から出力されます。

出力ポート IsEmptyO はデフォルトで無効になっています。

出力ポート IsEmptyO を有効にするには:

  1. オペレーターをインスタンス化するときに、Output (IsEmptyO) の値を 1 に設定します。

出力ポート IsEmptyO が有効な場合:

  • Line Mode:オペレーターが受信する各空のラインに対して IsLastPixel を受信すると、オペレーターは以下を出力します。
    • 出力ポート O* で Parallelism x 個の 0、および
    • 出力ポート IsEmptyO で 1。
  • Frame Mode: そのオペレーターが処理する空のフレーム IsLastPixel を受信すると、オペレーターは以下を出力します。
    • 出力ポート O 上で Parallelism × 0 となり、
    • 出力ポート IsEmptyO で 1。

その他のすべての場合において、出力ポート IsEmptyO は 0 です。

*例:Line Mode で Parallelism が 6 の場合、出力ポート O 上では、空のラインごとに 6 ピクセルが挿入されます。

[重要] Pixel Stops only at Start of New Pixel or End-of-Line Tag

オペレーター IsLastPixel は、次のピクセルまたは行末タグ(EOL)を受信したその瞬間にのみピクセルを出力します。これは、行末タグが最後のピクセルの直後に受信されない場合に特に重要となります。

例(パラメータ Mode = Line)、有効化された出力ポート IsEmptyO 付き:

出力ポート O上の赤いピクセルは、空のラインに対して挿入された値 0 のダミーピクセルです。

出力ポート IsLastO では、空のラインに 1 が設定されます。つまり、この空のラインは、入力ポート I に入力された時点ですでに 1 ピクセルを含んでいた例の 4 番目のラインと同じように見えます。したがって、出力ポート 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 Property

Property 値
オペレータータイプ M
Input Link I、画像データ入力
Output Links O、画像データ出力
IsLastO、ライン/フレーム内の最後のピクセルに対して 1、その他のすべてのピクセルに対して 0 を出力
IsEmptyO(オプション)、空のライン/フレームごとに 1、画像データを含むライン/フレームに対して 0 を出力

サポートされているリンクフォーマット

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 で割り切れる必要があります。

パラメーター

モード
タイプ 静的または動的な書き込みパラメーター
Default Frame
範囲 {Line, Frame}

Line に設定した場合、オペレーターはライン内の最後のピクセルにマークを付けます。オペレーターは、ラインの最後のピクセルごとに、その出力ポート IsLastO 上で 1 を出力します。

Frame に設定した場合、オペレーターはフレーム内の最後のピクセルにマークを付けます。オペレーターは、フレームの最後のピクセルごとに、その出力ポート IsLastO 上で 1 を出力します。

このパラメータは static または dynamic に設定できます。このパラメータをダイナミックパラメータとして使用する場合:シャドウレジスタが実装され、変更が適用されます:

  • 2つの画像の間(I が VALT_IMAGE2D の場合)、または

  • 2つのラインの間(I が VALT_LINE1D の場合)、または

  • 直接(I が VALT_PIXEL0D の場合)、

および常にリセット時。それまでは古い値が使用されます。

使用例

IsLastPixelオペレーターの使用方法は、以下の例に示されています。