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

37.3. Video Frame Reader IPの機能の説明

IPは、Avalonメモリーマップド・インターフェイスを介して外部メモリーからビデオフィールドまたはフレームを読み出し、インテルFPGAストリーミング・ビデオ出力を介して出力します。

csr_num_buffer_sets レジスターをプログラムして、設定するバッファーセットの数でIPをコンフィグレーションします。各セットについて、バッファーの数、ベースアドレスとバッファーオフセット、バッファーサイズ、およびカラースペース情報をバッファーセットのレジスターにプログラムします。csr_buffer_mode レジスターを複数のバッファーセット・モードに設定します。このモードでは、IPが現在のセットから最後のバッファを生成すると、IPは自動的に次のセットからバッファーを読み出します。それ以外の場合、IPは現在のセットからのみバッファーを読み出します。csr_starting_buffer_set レジスターをプログラムし、csr_run レジスターのLSBを設定すると、csr_commit レジスターに書き込んだ後すぐに、IPによる出力フレームの生成が開始されます。

csr_runbit [1] が設定されている場合、シングルショット・モードがコンフィグレーションされます。このモードでは、セットの最後のバッファーが出力されるとIPが停止します。

外部タイミング同期信号を使用して読み出しの出力タイミングを計りたい場合は、csr_run レジスターを2に設定します。このモードでは、IPを通常どおりに設定しますが、IPが各フレームの出力を開始するときに、フレーム同期コンジットに立ち上がりエッジまたは立ち下がりエッジを提供します。

IPが立ち上がりエッジでのみフレームを生成するようにする場合は、csr_fsync_pulse_mode を設定します。

IPがすでにフレームを出力しているときにフレーム同期エッジが検出されると、IPは現在のフレームの直後に次のフレームの出力を開始します。

csr_run を0に設定し、csr_commit レジスターに書き込むと、IPは現在のフレームの終了時に停止します。

レジスターの動作

IPが最初のフレームの生成を開始すると、csr_status レジスターのビット [0] がHighになります。IPがフレームの最後の行の出力を終えると、ビット [0] はLowになります。IPが次のフレームの生成を開始すると、ビット [0] はHighに戻ります。

IPがフレームの生成を完了すると、csr_last_buffer_read レジスターはフレームのベースアドレスで更新されます。

IPがフレームを生成するタイミングを知る必要があるアプリケーションでは、これらのステータスレジスターをポーリングできます。または、IRQ_CONTROL レジスターを使用して、IPがフレームの生成を完了したときに割り込みを設定します。

ダブルバッファーのアプリケーション

CPU またはGPU (ホスト) がフレームを生成するアプリケーションでは、ダブルバッファーを使用することがよくあります。ホストは1つのバッファーに書き込み、IPは別のバッファーから読み出します。ホストが新しいフレームの書き込みを完了すると、IPは新しいフレームからの読み出しに切り替わります。その後ホストは、IPが読み出しを停止したバッファーに、次のフレームの作成を開始できます。

IPを使用してダブルバッファーをコンフィグレーションするために、インテルでは、それぞれ1つのバッファーを持つ2つのバッファーセットをコンフィグレーションすることをお勧めしています。各バッファーセットを1つのバッファーとして考えてください。IPは、csr_starting_buffer_set レジスターに従って、最初に1つのバッファーからビデオを生成し、次にもう1つのバッファーからビデオを生成します。

レジスターを次のようにプログラムします。

  • CSR_NUM_BUFFER_SETS = 2 (2セット、それぞれに1つのバッファー)
  • CSR_BUFFER_MODE = 0 (ホストが新しいフレームを書き込む前にIPがセット1のバッファーに自動的に進むのを防ぐため)
  • CSR_STARTING_BUFFER_SET = 0 (ホストによる最初のセット0へのフレームの作成)
  • CSR_RUN = 1 (IPは現在のセットからすべてのフレームを継続的に生成し、この場合は1つのフレームのみ)

CSR_BUFFER_0_BASE および CSR_BUFFER_1_BASE のバッファーセットのレジスターは、両方のバッファーの正しいベースアドレスとその他の詳細でプログラムする必要があります (バッファーセットのレジスターバンクを参照)。各セットには1つのバッファーしか含まれていないため、BUFFER_0_NUM_BUFFERS および BUFFER_1_NUM_BUFFERS は1に設定する必要があります。各セットにバッファーが1つしかないため、BUFFER_N_INTER_BUFFER_OFFSET レジスターは使用されません。

ホストが最初のフレームを CSR_BUFFER_0_BASE に書き込み終えたら、CSR_COMMIT = 1を書き込むと、IPはこのフレームを繰り返し生成し始めます。

ホストは CSR_BUFFER_1_BASE でフレームの構築を開始できます。ホストが終了したら、次のようにプログラムします。

  • CSR_STARTING_BUFFER_SET = 1
  • CSR_COMMIT = 1

IPでは、CSR_BUFFER_1_BASE で新しいフレームを繰り返し生成します。

このプロセスは繰り返し実行でき、ホストは CSR_BUFFER_0_BASE に再度書き込み、IPにそのフレームに変更するように指示します。

  • CSR_STARTING_BUFFER_SET = 0
  • CSR_COMMIT = 1

マルチビデオ・アプリケーション

マルチビデオ・アプリケーション用に複数のバッファーセットを確立できます。ホストはメモリー内にビデオセグメントを保持し、IPは任意のセグメントを読み出すことができ、複数のバッファーセット・モードを使用して次のセグメントに自動的に進むオプションがあります。

5つのビデオセグメントがあり、ベースアドレス CSR_BUFFER_0_BASE から CSR_BUFFER_4_BASE でセグメントが使用可能な例で、すべてのシーケンスを順番に表示するには、レジスターを次のようにプログラムします。

  • CSR_NUM_BUFFER_SETS = 5
  • CSR_BUFFER_MODE = 1 (現在のセットの最後のバッファーを出力した後、IPは次のセットの最初のバッファーに自動的に進む)
  • CSR_STARTING_BUFFER_SET = 3 (最初にセット3から出力開始)

両方のバッファーのベースアドレスとその他の詳細を、CSR_BUFFER_0_BASE から CSR_BUFFER_4_BASE のレジスターセットにプログラムします (バッファーセットのレジスターバンクを参照)。

CSR_RUN = 1 (IPは、buffer_mode設定によって次のセットに移動する前に、各セットからすべてのフレームを継続的に生成)

CSR_BUFFER_N_NUM_BUFFERS は、シーケンスNの正しいフレーム数 (例えば、60 Hzの1分間のビデオの場合は3600) でプログラムされます。

各セットの解像度とカラースペースは異なる場合がありますが、各セット内のすべてのバッファーの解像度とカラースペースは同じである必要があります。

CSR_COMMIT = 1を書き込むと、5つのビデオセグメントすべての出力が順番に開始されます。

この5つのビデオセグメントの例を実装するには、ホストはセットが最終フレームを生成するタイミングを手動で設定し、次のセットを動的にコンフィグレーションする必要があります。ただし、組み込みのバッファーセットのレジスターを使用する方が便利で、デバッガーの使用時など、ホストが次のセットを時間内にプログラムできない場合でも、マルチビデオの再生が継続されます。

フレーム同期アプリケーション

フレーム同期をイネーブルするには、CSR_RUN を2に設定します。このモードでは、前述のようにバッファーセットを設定し、IPは fsync_in_read 入力でフレーム同期エッジを検出するたびにフレームを生成します。

レイテンシー

フレームリーダーのレイテンシーは外部メモリー・インターフェイスの可用性に依存し、av_mm_mem_read_host_waitrequest 信号を介してIPの読み出しインターフェイスにバックプレッシャーが発生する可能性があります。

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

レイテンシーの数値は、ホスト・インターフェイスに個別のクロックがなく、すべてのインターフェイスが同じクロックで動作する場合のものです。

表 681.  レイテンシーレイテンシーの数値は、IPのフルバリアントとライトバリアントの両方で同じです。
開始イベント 結果イベント レイテンシー (クロックサイクルで測定) 図中のラベル
csr_run レジスターのLSBがすでに設定されている場合は、 csr_commit に書き込み 画像情報パケット (フルモードのみ) 10 a->d
csr_run レジスターのLSBがすでに設定されている場合は、 csr_commit に書き込み av_mm_mem_read_host_ read によって開始された読み出し 14 a->b
av_mm_mem_read_host_readdatavalid ストローブがHighになり、最初のフレームデータを返す axi4s_vid_out_tuser[0] ストローブで、ストリーミング出力のフレーム開始を示す 20 c->e
図 84. レイテンシー