オペレーター Overflow

Operator Library: Synchronization

オペレーター Overflow は、停止不可能な入力側の2Dデータストリームを、場合によってブロックされる可能性のある後続の画像処理パイプラインから切り離します。 出力データがブロックされて内部の小さなバッファがいっぱいになると、オーバーフロー状態を検出します。オーバーフローが発生した場合、 処理中のフレームは、行末およびフレーム終了マーカーを即座に追加することによって途中で切断されます。 該当するフレームは破損したものとみなされ、それに応じてイベントが生成されます。出力のブロックが継続している状態で入力 I に新しいフレームが入力されると、 フレームはスキップされます。その後、フレームの損失に関するイベントが生成されます。

実践的なガイダンスについては、 Stoppable and Non-Stoppable Data Streamsのチュートトリアル項目を参照してください。

[注意] オーバーフローによる非矩形フレームの発生

オーバーフロー状態によって入力フレームが切断された場合、出力フレームの最後の行は通常、 他の行よりも短くなります。後続の画像処理パイプラインがこれを処理できるようにしてください。

破損または損失したフレームごとにオーバーフローイベントが生成されます。オーバーフローイベントには、 フレーム番号とオーバーフローの種類で構成されるデータペイロードが含まれます。イベントペイロードは3つの16ビットデータワードとして提供されます。最初の2つは フレーム番号の32ビット値を表し、下位ビットが最初のワードに格納されます。33番目の16ビットワードには、 次のように定義されたマスクビットを持つオーバーフローマスクが提供されます。

  • [0]: フレーム破損

  • [1]: フレーム損失

  • [2]: 以前にイベント損失が発生した

  • [3]: フレーム正常

  • [4] .. [15]: 予約済み

フレーム番号は Acquisition Start時にリセットされることに注意してください。また、最初のフレームのフレーム番号はゼロになりますが、 DMA転送はフレーム番号1から始まります。 フレーム番号は32ビットの値です。最大値に達すると、再びゼロから始まります。64ビットのターゲットランタイムでは、 DMA転送番号は64ビットの値になります。 frame corruptedが設定されている場合、イベント内のフレーム番号を持つフレームが破損しています(つまり、完全な長さではないため、後続の処理で無効な結果が生成される可能性があります)。 frame lostフラグが設定されている場合、イベント内のフレーム番号を持つフレームは完全に破棄されているため、後続の処理パイプラインはそのフレームからデータを受信していません。 corrupted frameフラグとframe lostフラグが同じイベントで同時に発生することはありません。フラグevent loss occured beforeは追加のセキュリティメカニズムです。これは、イベントが失われたことを意味します。 これは非常に高いイベントレートでのみ発生する可能性があり、通常の状態では発生しないはずです。

I/O Property

Property 値
オペレータータイプ M
Input Link I、停止不可能なデータ入力
Output Link O, data output

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

Link Parameter Input Link I Output Link O
Bit Width [1, 64] as I
Arithmetic {unsigned, signed} as I
Parallelism any as I
Kernel Columns any as I
Kernel Rows any as I
Img Protocol VALT_IMAGE2D VALT_IMAGE2D
Color Format any as I
Color Flavor any as I
Max. Img Width any as I
Max. Img Height any as I

パラメーター

EventsForSuccessfulFrame
タイプ 動的読み取り/書き込みパラメータ
Default OFF
範囲 [OFF, ON]

通過するすべてのフレームに対してイベントを生成するかどうかを定義します。

OverflowOccurred
タイプ 動的リードパラメータ
Default 0
範囲 [0, 1]

オーバーフローイベントが発生したかどうかを通知します。

このパラメータは読み取りアクセス後にリセットされるため、前回の読み取りアクセスから現在の読み取りアクセスの間にオーバーフロー状態が発生したかどうかを示します。

使用例

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