Video and Vision Processing Suite Intel® FPGA IPユーザーガイド

ID 683329
日付 6/26/2023
Public
ドキュメント目次
1. Video and Vision Processing Suiteについて 2. Video and Vision Processing IPのスタートガイド 3. Video and Vision Processing IPの機能の説明 4. Video and Vision Processing IPインターフェイス 5. Video and Vision Processing IPレジスター 6. Video and Vision Processing IPのソフトウェア・プログラミング・モデル 7. Protocol Converter Intel® FPGA IP 8. 3D LUT Intel® FPGA IP 9. AXI-Stream Broadcaster Intel® FPGA IP 10. Bits per Color Sample Adapter Intel FPGA IP 11. Chroma Key Intel® FPGA IP 12. Chroma Resampler Intel® FPGA IP 13. Clipper Intel® FPGA IP 14. Clocked Video Input Intel® FPGA IP 15. Clocked Video to Full-Raster Converter Intel® FPGA IP 16. Clocked Video Output Intel® FPGA IP 17. Color Space Converter Intel® FPGA IP 18. Deinterlacer Intel® FPGA IP 19. FIR Filter Intel® FPGA IP 20. Frame Cleaner Intel® FPGA IP 21. Full-Raster to Clocked Video Converter Intel® FPGA IP 22. Full-Raster to Streaming Converter Intel® FPGA IP 23. Genlock Controller Intel® FPGA IP 24. Generic Crosspoint Intel® FPGA IP 25. Genlock Signal Router Intel® FPGA IP 26. Guard Bands Intel® FPGA IP 27. Interlacer Intel® FPGA IP 28. Mixer Intel® FPGA IP 29. Parallel Converter Intel® FPGA IPのピクセル 30. Scaler Intel® FPGA IP 31. Stream Cleaner Intel® FPGA IP 32. Switch Intel® FPGA IP 33. Tone Mapping Operator Intel® FPGA IP 34. Test Pattern Generator Intel® FPGA IP 35. Video and Vision Monitor Intel FPGA IP 36. Video Frame Buffer Intel® FPGA IP 37. Video Frame Reader Intel FPGA IP 38. Video Frame Writer Intel FPGA IP 39. Video Streaming FIFO Intel® FPGA IP 40. Video Timing Generator Intel® FPGA IP 41. Warp Intel® FPGA IP 42. デザイン・セキュリティー 43. Video and Vision Processing Suiteユーザーガイドの文書改訂履歴

41.3.3. Warp IPのレイテンシー

IPには3つのレイテンシー範囲があり、Use Easy warpUse Single Memory bounceのどちらをオンにするか、および入力フレームレートと出力フレームレートを同期するかどうかによって決まります。

Warp IPのレイテンシーは、次のとおりです。

  • 入力フレームレートと出力フレームレートをロックした場合はフレームの4分の1からフレーム全体まで
  • Use Easy warpをオンにした場合は1から2フレームの間、Use single memory bounceをオンにした場合は通常のレイテンシー動作
  • Use single memory bounceをオフにした場合は通常のレイテンシー動作は2から3フレームの間

IPは、入力プロセスと出力プロセスの相対的なタイミングを制御しません。それらのタイミングは相互に非同期にすることができます。出力のダウンストリームにあるビデオ・パイプラインからのフロー制御により、IPからの出力ビデオデータの正確なタイミングが決まります。

単純な実装では、システム内の出力フレームは入力フレームとタイミング関係がありません。IPは、必要に応じてビデオデータのフレームをドロップしたり繰り返したりすることで、異なるフレームレートに自動的に適応します。

高度な実装では、入力フレームタイミングと出力フレームタイミングの間に存在する固定位相関係を使用して、入力フレームレートと出力フレームレートをロックできます。このフレームレート・ロックは、外部ゲンロックなどのシステム・レベル・デザインの一部として実装する必要があります。

次の図では、ビデオデータのアクティブフレームの垂直ブランキング期間のみを示しています。水平ブランキング期間は、アクティブビデオ期間内にあるものと想定します。

図 103. Warp IPのレイテンシー

この図では、Use single memory bounceがオフの場合に、入力からエンジンを経由して出力まで、Warp IPを介したビデオフレーム (frame1) のバッファリングと処理を示しています。レイテンシーは2から3フレームです。出力におけるアクティブなビデオの終了は、次のフレームの処理の開始と同期します。

IPが入力フレーム全体 (frame1) を受信すると、内部処理エンジンはバッファリングされたフレームをメモリーから読み出すことができます。内部処理の正確なタイミングは出力フレームのタイミングと同期されるため、内部処理エンジンがframe1を使用する前に、IPは最大1フレームの遅延を経験する場合があります。IPがフレームの処理を完了すると、出力プロセスは結果のビデオデータの生成を開始します。

LowレイテンシーのWarp IP

図 104. LowレイテンシーのWarp IP

この図では、入力および出力のビデオ・フレームレートと入力から出力への位相オフセットがロックされている場合のLowレイテンシー動作を示しています。

この図では、入力からエンジンを経由して出力に至るまでのWarp IPによるframe1のバッファリングと処理を示しています。この例のレイテンシーは、適用するワープ変換に応じて、約4分の1からフレーム全体までの範囲になります。

入力および出力フレームレート・オフセットをロックすると、IPはフレーム全体を格納する前に、メモリーにバッファリングされたビデオデータを使用できます。図では、入力および出力ビデオフレームの位相関係が固定されており、出力でのアクティブビデオの終了が内部処理の開始と一致しないことを示しています。

IPがフレームを受信している間に十分な入力データを格納するとすぐに、エンジンはframe1からのデータの処理を開始します。同様に、出力プロセスはframe1に関連付けられたビデオデータの生成を開始し、IPはエンジンによる処理後にそれをメモリーに書き込みます。内部処理の開始から出力プロセスがメモリーからデータを読み出し始めるまでの遅延は、IPが処理する出力画像の解像度に基づいて固定量になります。ただし、入力フレームの開始からフレームデータを使用して内部処理を開始できるまでの遅延は、ワープ変換の関数です。そのため、ソフトウェアAPIはこれらの遅延の計算をサポートします。

Lowレイテンシーの設定

Lowレイテンシーの動作を実現するには、IPで正しい設定をプログラムし、入力フレームと出力フレームに固定オフセットがあることを確認します。IPの外部のビデオシステムが固定オフセットを制御します。このオフセットには、必要なワープ変換に基づいた最小設定があります。IPのソフトウェアAPIの GenerateLatencyParams() 呼び出しは、Lowレイテンシー動作のための2つの設定の値を生成します。IPの設定の1つは、内部処理と出力でのアクティブビデオの生成の間の遅延をプログラムします。もう1つの設定は、入力フレームと出力フレーム間の遅延 (クロックサイクル単位) です。

必要なワープメッシュに加えて、GenerateLatencyParams() 呼び出しでは、設定を計算するために次の情報が必要です

System_clockcore_clock の周波数 (Hz)

Video_clockaxi4s_vid_out_0_clock の周波数 (Hz)

Full_height – 垂直ブランキングを含む、処理される解像度の全高 (ライン単位)

Frame_rate – 出力フレームレート (100分の1ヘルツ単位)

クロックレート、フレームレート、およびビデオフレームの全高がわかれば、IPはビデオデータの各ラインのクロック数を計算できます。また、必要なワープ変換によって暗示される最大ラインオフセットを調べることで、IPは必要な遅延のクロックサイクル数を計算します。

GenerateLatencyParams() 呼び出しは、WarpLatencyParams 構造体を介して2つの値を返します。これら2つの値は、次のとおりです。

_total_latency – 入力フレームと出力フレーム間の最小遅延 (axi4s_vid_out_0_clock クロックサイクル単位)

_output_latency intel_vvp_warp_set_output_latency() 呼び出しを使用してIPに適用する値。詳細については、Warp IPのソフトウェアのコード例を参照してください。

ゼロ以外のclock_offset値を指定して intel_vvp_warp_set_output_latency() を呼び出すと、Warp IPコアがLowレイテンシー動作モードに切り替わります。intel_vvp_warp_set_output_latency() の呼び出しでclock_offset値をゼロにすると、Warp IPが通常のレイテンシー モードになります。

Easy Warp IPのレイテンシー

図 105. Easy Warp IPのレイテンシー

IPが最初の入力フレーム (frame0) 全体を受信すると、Warp IPの出力プロセスによってメモリーからバッファリングされたデータを読み出すことができます (1フレームのレイテンシーが発生します)。入力フレームレートと出力フレームレートをロックしない場合は、IPが出力ビデオデータを生成する前に最大1フレームの遅延が発生する可能性があり、合計で最大2フレームの遅延が発生します。