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ユーザーガイドの文書改訂履歴

36.3. Video Frame Buffer IPの機能の説明

IPは、インテルFPGAストリーミング・ビデオ入力から受信ビデオフレームを受信し、Avalonメモリーマップド・インターフェイスを介して外部メモリーに書き込みます。

受信したフレームは、Avalonメモリーマップド・エージェントが最後の行の最後のビートを受け入れると出力に使用できるようになります。

OUTPUT_CONTROL ビットを設定すると、IPは出力フレームの生成を開始します。IPは、バッファー動作パラメーターに基づいて、出力するフレームを選択します。空きバッファーがない場合にIPが受信フレームをドロップしたり、読み出す新しいフレームがない場合に出力フレームを繰り返したりするように、バッファー動作を設定できます。

レジスターの動作

INPUT_STATUS レジスターのビット [0] は、IPが最初のフレームの書き込みを開始するとHighになります。IPが最後の予想される入力行の処理を完了した後、もしくは短いフレームの最後の行を受信した後にLowになります。IPが次のフレームの書き込みを開始すると、Highに戻ります。

OUTPUT_STATUS レジスターのビット [0] は、IPが最初のフレームの読み出しを開始するとHighになります。出力フレーム間ではLowになり、出力する有効なフレームがない場合はLowのままになります。

IPがフレームを受信または作成したタイミングを知る必要があるアプリケーションは、これらのステータスレジスターをポーリングできます。

トリプルバッファリングの動作

GUIでEnable dropping of input framesEnable repeating of output framesの両方をオンにして、トリプルバッファリングを選択します。

トリプルバッファリングの場合、フレームバッファーは3つのフレームバッファーを使用し、ベースアドレスは選択したベースアドレスとバッファー間ストライドから計算されます。ストライドはメモリー内のフレーム間の間隔であり、IPが受信するフレームのサイズに関係なく、常にパラメーター化された値に固定されます。同様に、IPが受信する行のサイズに関係なく、メモリー内の行の間隔は常に行間ストライドに従って配置されます。IPには、トリプル バッファリング用の3つのバッファーがあります。

壊れたフレームの動作

フルバリアント (ライトモードがオフ) の場合、IPは、正常なフレームと同じ方法で壊れたフレーム (寸法が正しくないフレーム、または関連する画像情報パケットセットに壊れたビットがあるフレーム) を処理および作成します。または、Enable the dropping of broken framesをオンにすると、壊れたフレームが破棄されます。

フルバリアントの場合 (ライトモードがオフ)、IPは受信したフレームの寸法を予想される寸法と比較することで壊れたフレームを検出します。IPが壊れたビットが設定されていない壊れたフレームを受信して測定した場合、IPは出力で壊れたビットを生成すると、そのフレームの壊れたビットを設定します。

フルバリアント (ライトモードがオフ) の場合、フレームが壊れると、IPが指定された画像情報パケットよりも小さいまたは大きいサイズのフレームを作成し、部分的なフレームが表示される可能性があります。

IPは、GUIで指定した最大値より大きい高さまたは幅のフレームをその値にクリップします。

ダブルバッファリングの動作

GUIでEnable dropping of input framesEnable repeating of output framesの両方をオフにして、ダブルバッファリングを選択します。

ダブルバッファリングでは、2つのフレームバッファーのみが使用されます。ベースアドレスは、指定したベースアドレスとバッファー間ストライドから計算されます。

空きバッファーがなく、入力でビデオの新しいフレームがペンディング中の場合、フレームの書き込みは停止します。IPは、空きバッファーが使用可能になるまで、TREADY 出力をデアサートして入力を保留します。

IPが1つのバッファーからの出力の作成を終了し、もう1つのバッファーに完全な新しいフレームが保持されていない場合、IPは TVALID を下げて出力を停止します。

補助制御パケットのサポート

GUIでローカルストレージを選択して、補助パケットをオンにします。ローカルストレージのスロットには、最大256個の4ビート補助制御パケット (64ビットのデータ) を割り当てることができます。

ローカルストレージを割り当てない場合、IPは受信した補助制御パケットをすべて破棄します。

ローカルストレージを割り当てると、受信したすべてのフレームは64ビット・ストレージのスロットの少なくとも1つを消費します。フレームに関連付けられた補助制御パケットがない場合、IPはスロットを空としてマークします。

IPは、Intel FPGA Streaming Video Protocol仕様の次のルールに従って、IPが受信する補助制御パケットを親フレームが所有するものとして分類します。これらのルールは、ここで再現されています。

画像情報とフィールド終了制御パケットのペアが、ビデオの1フィールドを囲みます。IPは、現在のフィールドのフィールド終了制御パケットの前にある補助制御パケットをそのフィールドに関連付けます。さらにIPは、前のフィールドのフィールド終了制御パケットの後に発生する補助制御パケットを現在のフィールドに関連付けます。

図 81.  補助制御パケット

この図は、aux1とaux2がフィールド1に、aux3がフィールド2にそれぞれ関連付けられていることを示しています。

IDrop/repeat auxiliary metapackets with their associated frameをオンにすると、IPはフレームを補助制御パケットに関連付けます。フレーム繰り返しがオンの場合、IPは補助パケットを親フレームとともに繰り返します。フレームドロップがオンの場合、IPはドロップされたフレームに関連付けられた補助パケットをすべてドロップします。

Drop/repeat auxiliary control metapackets with their associated frameをオフにすると、IPは親フレームをドロップするか繰り返すかに関係なく、受信した順序ですべての補助パケットを1回生成します。

ローカルストレージがフルになると、IPは OUTPUT_STATUS レジスター (ビット1) の補助FIFOオーバーフロー・スティッキー・ビットを上げて内容をフラッシュし、バッファリングを再開します。アプリケーションに十分なストレージがあることを確認してください。

フレーム統計

0x0144~0x0158 までのレジスターには、IPが受信、ドロップ、生成、および繰り返すフレームの数に関する統計が含まれています。NUM_INVALID_FIELDS レジスターには、IPが壊れたビットによって無効であると示すフレームと、サイズが予想されるサイズと一致しないためにIPが無効であると測定するフレームが含まれます。

レイテンシー

フレームバッファーのレイテンシーは外部メモリー・インターフェイスの可用性に依存し、av_mm_mem_read_host_waitrequest 信号と av_mm_mem_write_host_waitrequest 信号を介してIPの読み出しおよび書き込みホスト・インターフェイスにバックプレッシャーがかかる可能性があります。

ストリーミング・ビデオ出力は、axi4s_vid_out_tready 入力を介してバックプレッシャーを受けます。ワーストケースのレイテンシー数値は、フレームバッファーがバックプレッシャーを受けていない場合です。バックプレッシャーが発生すると、これらのレイテンシーは同じサイクル数だけ増加します。

ワーストケースのレイテンシーは起動時です。そのため、これらの数値は、フレームバッファーがリセット後に最初のフレームを書き込み、読み出す場所を示しています。レイテンシーの数値は、ホスト・インターフェイスに個別のクロックがなく、すべてのインターフェイスが同じクロックで動作している場合のものです。定常ステートでのレイテンシーは、これらの数値以下になります。

レイテンシーの数値は、新しいフレームの最初のデータパケットの開始から測定された、IPのフルバリアントとライトバリアントの両方で同じです。数値は、IPが画像情報パケットを生成していることを示しています。IPのライトバリアントでは、このパケットは生成されませんが、タイミングはそれ以外は同じです。

図 82. ビデオ・フレーム・バッファーのレイテンシー この図には、一部の信号のみが表示されています。この図には、フレーム・バッファー・インターフェイスが4つ表示されています。インテルFPGAストリーミング・ビデオ入力、Avalonメモリーマップド・ホスト・ライター、インテルFPGAストリーミング・ビデオ出力、およびAvalonメモリーマップド・ホスト・リーダーです。この図には、ストリーミング・ビデオ入力での新しいビデオフレームの開始が表示されています。
表 645.  レイテンシー

表にはインターフェイス間のレイテンシーが表示されます。

開始イベント 結果イベント イベント間の遅延 (クロックサイクルで測定)
フレームの開始を示す axi4s_vid_in_tuser[0] ストローブ フレーム書き込みの最初の av_mm_mem_write_host_write ストローブ 44
フレーム書き込みの最後の av_mm_mem_write_host_write ストローブ ストリーミング出力上の送信画像情報パケットの最初の有効なサイクル。フルバリアントのみ 43
フレーム書き込みの最後の av_mm_mem_write_host_write ストローブ フレーム読み出しの最初の av_mm_mem_read_host_read ストローブ 74
Av_mm_mem_read_host_readdatavalid ストローブがHighになると、最初のフレームデータが返されます。 axi4s_vid_out_tuser[0] ストローブは、ストリーミング出力のフレームの開始を示します。 20