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.4. Warp IPの外部メモリー

IPは、外部メモリーの2つの別々の領域にアクセスする必要があります。1つは入力および出力ビデオバッファー用、もう1つは係数テーブル用です。Warp Software APIを実行するプロセッサー・システムは、係数テーブルにアクセスできる必要がありますが、バッファー領域にアクセスする必要はありません。

外部メモリーのメモリー空間割り当て

表 832.  Warp IPのビデオバッファーのメモリー領域 - 最大使用量この表は、Use easy warpをオフにし、Use single memory bounceをオフにした場合に、ビデオバッファー領域のWarp IPによって外部メモリーに必要なスペースの量を定義します。このスペースは、システムで処理される画像のサイズによって異なります。これは、Memory frame buffer sizeパラメーターによって定義されます。合計6つのバッファー (入力4つと出力2つ) にはスペースが必要です。
バッファースペースのコンフィグレーション 領域サイズ (MB) 必要なメモリー領域 アライメント (倍数)
Sdバッファーサイズ (1024x1024) 24 0x0180_0000 0x0200_0000
HDバッファーサイズ (2048x2048) 96 0x0600_0000 0x0800_0000
UHDバッファーサイズ (4096x4096) 384 0x1800_0000 0x2000_0000
表 833.   Warp IPのビデオバッファーのメモリー領域 - 使用量の削減

この表では、Use easy warpをオンにした場合、またはUse single memory bounceをオンにした場合に、ビデオバッファー領域用にWarp IPによって外部メモリーに必要なスペースの量を定義しています。このスペースは、システムで処理される画像のサイズによって異なります。これは、Memory frame buffer sizeパラメーターによって定義されます。合計4つのバッファーにスペースが必要です。

バッファースペースのコンフィグレーション 領域サイズ (MB) 必要なメモリー領域 アライメント (倍数)
SDバッファーサイズ (1024x1024) 16 0x0100_0000 0x0100_0000
HDバッファーサイズ (2048x2048) 64 0x0400_0000 0x0400_0000
UHDバッファーサイズ (4096x4096) 256 0x1000_0000 0x1000_0000

IPは、構造体の ram_addr 要素を使用して、フレームバッファーに割り当てられたメモリー領域のベースアドレスをソフトウェアAPIに渡します。

係数テーブルが必要とするメモリー領域は、ワープエンジンの数、画像の解像度、およびワープの種類に関連します。IPは、Use easy warpをオフにした場合にのみ、このメモリー領域を必要とします。

表 834.  Warp IPの係数テーブルのメモリー領域表は、エンジンごとの係数テーブルにおけるメモリー領域の最大サイズを示しています。
ワープエンジン 領域サイズ (MB) 必要なメモリー領域 アライメント (倍数)
1 16 0x0100_0000 0x0100_0000
2 32 0x0200_0000 0x0200_0000

外部メモリーへの帯域幅

Warp IPから外部メモリーへのインターフェイスのパフォーマンスは、Warp IPを使用するシステムが正しく動作するために重要です。

Warp IPは、かなりの量のメモリー・トラフィックを生成します。外部メモリーとの間でやり取りされるビデオストリームは最大4つです。さらに、各エンジンには係数テーブルにアクセスするための読み出しストリームが3つあります。これらすべてのストリームが組み合わさって、Warp IPのメモリーアクセスが複雑になります。ストリームは、DDR4などのメモリーにアクセスするときに得られる効率に影響します。

Warp IPメモリー・コントローラーは、これらの複雑なアクセスパターンによって生じる潜在的な非効率性を軽減します。すべての読み出しおよび書き込みアクセスに8ビートのバースト長を使用して、DDR4メモリーのバースト・パフォーマンスを向上させます。また、個々の読み出しおよび書き込みバーストをまとめてクラスター化し、DDR4インターフェイスでの読み出しおよび書き込みターンアラウンド・デッド・タイムに関する問題の一部を排除します。

これらのメモリー・アクセス・パターンは、適用する画像変換によって異なります。一部の複雑な画像変換では、スキップ領域機能によってメモリー・トラフィックが削減される場合があります。Use single memory bounceがオフの場合、生成されたメモリー・トラフィックの最も悪いの変換の1つは、入力ピクセルと出力ピクセルの間に1:1のマッピングを与えるユニティーワープです。Use single memory bounceがオンの場合、メモリー・トラフィックは変換の垂直方向の圧縮量に比例します。垂直方向の変換における圧縮量が高くなるほど、メモリー帯域幅も高くなります。

Warp IPの動作は、システム内のDDR4メモリーの唯一のユーザーである場合に予測しやすくなります。システム内のDDR4メモリーの高帯域幅ユーザーをWarp IPのみにしてください。他の高帯域幅アクセスがWarp IPと同時にメモリーに対して行われる場合、相互作用によってパフォーマンスに悪影響が及ばないようにしてください。

Warp IPのメモリー・トラフィックの合計

Warp IPの3つの異なるコンフィグレーションは、外部メモリーへの接続方法に影響し、したがって合計メモリー・トラフィックに影響します。

  • Use easy warpがオンの場合
  • Use easy warpはオフ、Use single memory bounceはオンまたはオフの場合
図 106. 外部メモリーのデータストリーム

この図では、IPが使用するすべての可能なデータストリームの概略図を示しています。Use easy warpおよびUse single memory bounceの設定に応じて、IPはこれらのストリームのすべてを必要としません。

表 835.  さまざまなコンフィグレーションのアクティブ・データ・ストリーム

この表では、さまざまなコンフィグレーション設定に対して、どの外部メモリーのデータストリームがアクティブになるかを示しています。

データストリーム Use easy warpがオン Use single memory bounceがオン Use single memory bounceがオフ
入力ビデオ アクティブ アクティブ アクティブ
キャッシュロード   アクティブ アクティブ
ワープされた画像     アクティブ
係数の読み出し   アクティブ アクティブ
出力ビデオ アクティブ   アクティブ

各データストリームの帯域幅は、次のとおりです。

  • ビデオストリーム (入力ビデオ、ワープ画像、出力ビデオ)
  • 係数ストリーム (係数読み出し)
  • キャッシュロード (ビデオストリームの拡大バージョン)

ビデオストリームのピークメモリー帯域幅の概算

この式では、ワープを通過するビデオストリームのピーク帯域幅 (ビット/秒) を計算します (number_of_linesにはブランキングが含まれます)。データの各ピクセルは、32ビット・ワードとして外部メモリーとの間で転送されます。

ピーク帯域幅 = 32 * 1行あたりのピクセル数 * 行数 * フレームレート

表 836.  ビデオ・ストリーム・メモリー帯域幅の例

この表では、さまざまな解像度とフレームレートにおけるビデオストリームあたりのピークメモリー帯域幅を示しています。

解像度 フレームレート (fps) ピーク・データ・レート (Gbps)
3840x2160 (2250行) 60 16.6
3840x2160 (2250行) 30 8.3
1920x1080 (1125行) 60 4.2

係数ストリームのピークメモリー帯域幅の概算

係数ストリームに必要なメモリー帯域幅は、ビデオストリームの9%と概算できます。

表 837.  係数ストリームのメモリー帯域幅の例

この表では、さまざまな解像度とフレームレートにおけるストリームごとのピークメモリー帯域幅を示しています。

解像度 フレームレート (fps) ピーク・データ・レート (Gbps)
3840x2160 60 1.5
3840x2160 30 0.75
1920x1080 60 0.4

キャッシュロードのピークメモリー帯域幅の概算

キャッシュロード用にIPが必要とするメモリー帯域幅は、IPが適用するワープ変換と密接に関係しています。メモリー帯域幅は、標準ビデオストリームに必要な帯域幅に比例します。また、Use single memory bounceによっても影響を受けます。

Use single memory bounceがオフの場合、キャッシュロードに必要なワーストケースの場合の帯域幅は1:1またはユニティーワープで発生し、通常のビデオストリームよりも約25%高くなります。ユニティーワープは帯域幅の上限を与えます。他の変換では、より低い値が得られます。

Use single memory bounceがオンの場合、IPが実行する変換での垂直圧縮の量は、キャッシュロードに必要な帯域幅に影響します。1:1またはユニティーワープには、1:1の垂直圧縮があります。結果として得られるキャッシュロード帯域幅は、標準ビデオストリームの帯域幅と同等になります。対照的に、53度の垂直キーストーン・ワープでは、一部の領域で垂直圧縮が2:1に近づきます。このワープの最大キャッシュ ロード帯域幅は、標準ビデオストリーム帯域幅の2倍です。2:1の比率は、推奨される動作のキャッシュロード帯域幅の上限を提供します。

推奨される2:1の圧縮制限は、出力ピクセルを生成する際にバイキュービック・ピクセル補間プロセスで行われるローパス・フィルタリングの制限によります。ただし、圧縮率が2:1を超える変換を生成することもできます。これによって、シングル・メモリー・バウンスのメモリー帯域幅に影響が及び、最終的な画質が低下する可能性があります。

メモリー・インターフェイス帯域幅の要件

表 838.  メモリー・インターフェイス帯域幅の要件 – Easy Warpこの表では、Use easy warpがオンに設定されている場合の、解像度とフレームレートにわたるバースト・データレートのスケーリングを示しています。Use easy warpがオンの場合、2つのビデオストリームを使用してメモリー帯域幅を概算できます。
解像度 フレームレート (fps) 最大バースト・データレート (Gbps)
3840x2160 60 34
3840x2160 30 17
1920x1080 60 8.5
表 839.  メモリー・インターフェイス帯域幅の要件 – シングル・メモリー・バウンスこの表では、Use single memory bounceがオンになっている場合の、解像度とフレームレートにわたるバースト・データレートのスケーリングを示しています。キャッシュロードのデータレートは2:1の垂直圧縮率を想定しており、ワーストケースの数値が得られます。Use single memory bounceがオンの場合、1つのビデオストリーム、係数ストリーム、およびキャッシュロード・ストリーム (標準ビデオストリームの帯域幅の2倍の上限) を使用してメモリー帯域幅を概算できます。
解像度 フレームレート (fps) 最大バースト・データレート (Gbps)
3840x2160 60 51.3
3840x2160 30 25.7
1920x1080 60 8.5
表 840.  メモリー・インターフェイス帯域幅の要件 - ダブル・メモリー・バウンスこの表では、Use single memory bounceがオフの場合の、解像度とフレームレートにわたるバースト・データレートのスケーリングを示しています。キャッシュロードのデータレートは1:1ワープ変換を想定しており、ワーストケースの数値が得られます。3つのビデオストリーム、係数ストリーム、およびキャッシュロード・ストリーム (標準ビデオストリームの帯域幅を25%上回るオーバーヘッドあり) を使用して、メモリー帯域幅を概算できます。
解像度 フレームレート (fps) 最大バースト・データレート (Gbps)
3840x2160 60 72
3840x2160 30 36
1920x1080 60 18

インテルは、これらのバースト・データレートをIPのメモリー・インターフェイスに参照します。使用可能な合計データレートは、インターコネクト・ファブリックのパフォーマンスやメモリー・コントローラーの効率など、IP以外の他の要因の影響を受けます。

メモリーへのアクセスを共有するシステムの例

このシステム例でのWarp IPは、UHDフレームを60 fpsで処理するシステム内のフレームバッファーとDDR4インターフェイスを共有します。システムは、DDR4 EMIFがDDR4メモリーへの2,133 MHzインターフェイスを実行するインテルArria 10 GX開発キットで実行されます。このシステムには、プロセッサー、フレームバッファー読み出し、フレームバッファー書き込み、およびワープという、メモリーにアクセスする4つのメモリーマップド・ホストがあります。

図 107. ワープおよびビデオ・フレーム・バッファーのプラットフォーム・デザイナーこの図では、Frame Buffer IIコンポーネントがWarp IPを使用してDDR4 EMIFへのアクセスを共有しているプラットフォーム・デザイナーの接続を示しています。Frame Bufferは、Warp IPと同じビデオ処理パイプラインの一部です。よりわかりやすくするために、この図ではAvalonメモリーマップド・インターフェイスのみを示しており、また、Show Arbitration Sharesがオンになっています。

このシステムを機能させるには、

  • 読み出しと書き込みに32ビートのバーストを使用するようにFrame Bufferをコンフィグレーションします。
  • 256の読み出しおよび書き込みFIFO深度を使用するようにFrame Bufferをコンフィグレーションします。
  • Warp IPを優先して、DDR4 EMIFのフロントエンドでのアービトレーションの重み付けを16:1に設定します (mm_vfb_bridge コンポーネントを介して接続されたプロセッサーおよびフレームバッファーの読み出しおよび書き込みインターフェイスとの比較)。
  • Avalonメモリーマップド・ポートのパイプライン転送セクションのMaximum pending read transactionsパラメーターを8に設定します。
  • DDR4 EMIFのフロントエンドにあるドメインのLimit interconnect pipeline stages toを4に設定します。この制限は、メモリー・インターフェイスのクロックドメインでタイミングを満たします。

プロセッサーからのメモリーアクセスは、システムの残りの部分のパフォーマンスに悪影響を与える可能性があります。パフォーマンスに影響がある場合は、フレームバッファーの読み出しおよび書き込みインターフェイスを優先して、mm_vfb_bridge コンポーネントのアービトレーションの重み付けを1:2:2以上に増やします。もしくは、mm_vfb_bridge に固定優先度のアービトレーション・スキームを実装して、プロセッサーのメモリーアクセスの影響を軽減します。

図 108. Video Frame Bufferのパラメーター化
図 109. ペンディング中の読み出しトランザクションの最大数
図 110. 相互接続パイプライン・ステージのパラメーター化

メモリーへのアクセスを共有する複数のWarp IP

図 111.  メモリーへのアクセスを共有する複数のWarp IP この図では、DDR4インターフェイスを共有する2つのWarp IPの例を示しています。Warp IPのバースト・アクセス・パターンに一致させるには、結合インターフェイスのアービトレーション値を8に設定します。