オペレーター SYNC

Operator Library: Synchronization

オペレーター SYNC は、すべての入力リンクの時間および画像ディメンションの同期を実行します。 同期が必要なリンクの数は、オペレーターのインスタンス化時に指定します。 すべての出力リンク上の出力画像は同期されます。つまり、それらは同時に出力され、 すべて同じ画像ディメンションを持ちます。 したがって、このオペレーターは非同期リンクを同期させ、O 同期状態にして、 O 型の VisualApplets オペレーターネットワーク内で使用できるようにします。

このオペレーターは、空のラインや空のフレームをサポートしていません。

2D と 1D、0D ストリームなどの異なるドメインが混在する同期の場合、 オペレーターは出力リンクを最も高い入力ドメインに変換します。 SYNC を使用して 2D リンクを 1D リンクと同期させる場合、両方の出力リンクが 2D フォーマットに設定されます。 1D リンクが十分なラインを提供しない場合はエラーが発生します。 オペレーターを使用して 1D リンクを 0D リンクと同期させる場合、すべての出力リンクが 1D フォーマットになります。 この場合、0D リンクが十分なピクセルを提供しない場合はエラーが発生します。

入力画像の画像ディメンションが異なる場合、オペレーターはすべての出力画像のサイズが 同じになるように画像を同期させます。

[ヒント] 同期ルール

SYNC オペレーターを使用する前に、すべての同期ルールを理解していることを確認してください。 ユーザーマニュアルおよび基礎と例では、同期ルールについて詳しく説明しています:

タイミング同期と画像ディメンション同期の両方について、以下で説明します。

The Timing Synchronization

ピクセルの転送中、フロー制御や、画像ソースの帯域幅を超えるリンク帯域幅が原因で、一時停止が発生する場合があります。 上の図は、2つのリンクに対して時間同期がどのように実行されるかを示しています。両方の入力リンクのタイミングは異なります。 ただし、出力リンクのデータは同期されます。つまり、すべてのリンクでピクセルが同時に出力されます。

このオペレーターは、すべての入力リンクに対してバルブのように機能します: すべての入力に有効なピクセルが存在するまで、入力リンクは閉じられたままになります。 その後、オペレーターはすべての入力のピクセルを出力へと転送します(つまり、バルブを開きます)。

The Image Dimension Synchronization

SYNC オペレーターは、異なる画像プロトコル(VALT_IMAGE2D、VALT_LINE1D、VALT_PIXEL0D)を使用した画像を同期させることができます。 以下の3つの図は、異なる画像プロトコルのいくつかの画像を示しています。

  • 2D

    2D 画像には、有限の高さ H と有限の幅 W があります。 図に示されている最初の画像は通常の 2D 画像です。2番目の画像は、ライン長が異なる不規則な 2D 画像です。

  • 1D

    1D ラインには有限の幅 W がありますが、高さは無限です。 これらのタイプの画像は通常、ラインスキャンアプリケーションで作成されます。 ここでも、図に示されている2番目の画像はライン長が異なります。

  • 0D

    0D ストリームには幅も高さもありません。これらのストリームは無限のデータストリームです。

入力リンク上の画像の画像ディメンションが異なる場合、つまり幅(またはライン長)や高さが異なる場合に、 画像ディメンション同期が適用されます。 画像ディメンション同期により、出力されるすべての画像が同じディメンションを持つことが保証されます。 SYNC オペレーターは2つの同期モードをサポートしています:最小画像への同期(SyncToMin)と 最大画像への同期(SyncToMax)です。 パラメータ SyncMode を介して同期モードを選択します。 SyncToMin モードは、より大きな画像を切り詰めて最小の画像に合わせます。 SyncToMax モードは、小さな画像を拡張して最大の画像に合わせます。 不足しているピクセルはダミーのゼロピクセル(黒ピクセル)で埋められます。 これら2つのモードと3つの異なる画像ドメインを組み合わせることで、次の基本同期の組み合わせが可能になります:

2D to 2D SyncToMin

2D to 2D SyncToMax

The padding pixels are zero pixels.

1D to 1D SyncToMin

1D to 1D SyncToMax

パディングピクセルはゼロピクセルです。

0D to 0D SyncToMin / SyncToMax

0D 画像には画像ディメンションがないため、0D 画像間の同期は純粋な時間同期になります。

2D to 1D SyncToMin

2D から 1D 画像への SyncToMin 同期では、幅の画像ディメンション同期が実行されます。 出力画像は、入力 2D 画像の画像高さを維持します。1D ラインストリームは、 2D 画像と同じ高さを持つ画像に分割されます。

2D to 1D SyncToMax

2D から 1D 画像への SyncToMax 同期では、幅の画像ディメンション同期が実行されます。 出力画像は、入力 2D 画像の画像高さを維持します。1D ラインストリームは、 2D 画像と同じ高さを持つ画像に分割されます。

2D to 0D SyncToMin / SyncToMax

0D データストリームには形状がないため、2D から 0D への同期は両方のリンクの単純なバイパスになります。 もちろん、SYNC オペレーターは引き続きタイミング同期を実行します。 この組み合わせにおいて、SyncToMin と SyncToMax の動作に違いはありません。

1D to 0D SyncToMin / SyncToMax

0D データストリームには形状がないため、1D から 0D への同期は両方のリンクの単純なバイパスになります。 もちろん、SYNC オペレーターは引き続きタイミング同期を実行します。 この組み合わせにおいて、SyncToMin と SyncToMax の動作に違いはありません。

2D to 1D to 0D SyncToMin / SyncToMax

この操作は、2D から 1D、2D から 0D、および 1D から 0D の操作を組み合わせたものです。 2D 画像と 1D ラインストリームはライン長で同期されます。 1D リンクは、2D 画像に含まれるライン数以上のラインを提供する必要があります。 また、0D リンクは、2D から 1D への同期結果が生成するピクセル数以上のピクセルを提供する必要があります。 これら両方の条件が満たされた場合、オペレーターは結果を出力します。

[注意] 注意

警告:2Dから1D、1Dから0Dへの混在動作モードのシミュレーション、またはこれら3つのすべての任意の組み合わせのシミュレーションには、以下の条件を満たす必要があります。

  1. 高さが無限大で幅が有限のリンク(つまり1Dリンク)には、同期に関与するすべての2Dチャネルのライン数のうち、少なくとも最大(SyncToMax)/最小(SyncToMin)のライン数が含まれている必要があります。

  2. 幅と高さがどちらも無限大のリンク(つまり0Dリンク)には、すべての2Dから2Dおよび2Dから1Dの操作の結果として生成されるピクセル数のうち、少なくとも最大(SyncToMax)/最小(SyncToMin)のピクセル数が提供されている必要があります。

  3. 特殊な条件が満たされない限り、混在ドメイン同期のための画像シーケンスのシミュレーションは実行できません。これは、無限のラインがラインのシーケンスを持つことはできず、持っていればもはや無限ではないためです。高さについても同様です。高さが有限である場合、それは1Dリンクではなく2Dリンクになります。すべてのリンク上で画像のシーケンスをシミュレーションするには、0Dチャネル上のピクセル数が、2Dから1Dへの同期後のピクセル数とまったく同じでなければなりません。1Dチャネル上のライン数は、2Dから1Dへの同期後の結果とまったく同じでなければなりません。超過したライン(1D)または超過したピクセル(0D)は、次の画像シーケンスに持ち越されません。

さまざまな画像プロトコルについての詳細は、'Image Protocols, Image Dimensions and Data Structure'を参照してください。

I/O Property

Property 値
オペレータータイプ M
入力リンク I[0]、データ入力
I[k]、データ入力
Output Link O[k]、データ出力

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

Link Parameter Input Link I[0] 入力リンク I[k] 出力リンク O[k]
Bit Width [1, 64]1 [1, 64]2 I[k] として
Arithmetic {unsigned, signed} {unsigned, signed} I[k] として
Parallelism any as I[0] as I[0]
Kernel Columns any any I[k] として
Kernel Rows any any I[k] として
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} auto3
Color Format any any I[k] として
Color Flavor any any I[k] として
Max. Img Width any any auto4
Max. Img Height any any auto5

1 2

符号なし入力の場合、入力ビット幅の範囲は[1, 64]です。 符号付き入力の場合、範囲は[2, 64]です。 符号なしカラー入力の場合、範囲は[3, 63]であり、符号付きカラー入力の場合の範囲は[6, 63]です。

3

入力の少なくとも1つがVALT_IMAGE2Dである場合、出力画像プロトコルはVALT_IMAGE2Dになり、そうではなく入力の少なくとも1つがVALT_LINE1Dである場合はVALT_LINE1Dになります。すべての入力の画像プロトコルがVALT_PIXEL0Dである場合はVALT_PIXEL0Dになります。

4

パラメータ SyncMode が SyncToMin の場合、最大出力画像幅は入力の最大画像幅の最小値になります。 パラメータが SyncToMax に設定されている場合、最大出力画像幅は入力の最大画像幅の最大値になります。

5

パラメータ SyncMode が SyncToMin の場合、最大出力画像ハイトは入力の最大画像ハイトの最小値になります。 パラメータが SyncToMax に設定されている場合、最大出力画像ハイトは入力の最大画像ハイトの最大値になります。

同期および非同期入力

  • すべての入力は互いに非同期です。つまり、Oタイプオペレータの任意のネットワークを介して、異なるMタイプオペレータから供給されている可能性があります。

パラメーター

SyncMode
タイプ static パラメータ
Default SyncToMin
範囲 {SyncToMin, SyncToMax}

このパラメータは動作モードを指定します。 SyncToMinモードでは、オペレータはすべての入力画像を最小の画像に同期させます(つまり、より大きな画像を切り取ります)。 SyncToMaxモードでは、オペレータはすべての小さな画像を最大の画像に拡張します。 上記の説明を参照してください。

使用例

オペレータ SYNC の使用法を以下の例に示します。