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. Warp IPのブロックの説明

Warp IPは、インテルFPGAストリーミング・ビデオ・インターフェイスからRGBまたはYUV形式のビデオ入力を受け入れ、ビデオデータを外部メモリーに直接格納します。ビデオ入力プロセスには、受信ビデオデータを格納するために使用する4つのフレームバッファーのプールがあります。IPは循環的な順序でバッファーにアクセスします。

ビデオ出力プロセスでは、ワープされた画像データを使用して、RGBまたはYUV形式のインテルFPGAストリーミング・ビデオを生成します。

IPは、トランスフォーム・メッシュに基づいて任意のワープを生成します。Use easy warpをオンにすると、変換メッシュなしで固定セットの変換 (回転とミラーリング) が提供されます。Use easy warpをオフにすると、IPはバッファリングされた入力ビデオをコンフィグレーションされた数のワープエンジンで処理して、必要なワープを適用します。3つの係数テーブルはワープエンジンを制御して、IPが適用するワープを定義します。外部メモリーには、Warp IPのソフトウェアAPI を使用して生成された3つの係数テーブルが格納されます。

IPは、出力ピクセル位置から入力ピクセル位置への後方マッピングを使用して、必要なワープを定義します。これは、8x8領域のマッピングを定義するサブサンプリングされたメッシュとしてワープを表します。8x8位置内の出力ピクセルマッピングの場合、ワープエンジンはバイリニア補間を適用します。

Use single memory bounceをオフにすると、IPは外部メモリーを介した2つのバウンスで動作します。IPは入力ビデオをバッファリングし、結果として生じるワープされた画像を外部メモリーの2つの出力ビデオバッファーの1つに書き戻します。IPは、これらのデュアル出力バッファーに交互に書き込みます。IPは、出力ビデオバッファー内のワープされた画像を読み出し、IPから出力します。

Use single memory bounceをオンにすると、IPは外部メモリーを介した1回のバウンス (入力ビデオのバッファリング) だけで動作します。IPは、結果として生じるワープされた画像を、外部メモリーを経由せずにビデオ出力プロセスに直接転送します。

図 96. Warp IPのブロック図 (ダブル・メモリー・バウンス)

この図では、Use single memory bounceがオフの場合の、外部メモリーへの接続を備えたWarp IPの高レベルのブロック図を示しています。このコンフィグレーションでは、エンジンは外部メモリーを介してビデオデータを読み書きします。

図 97. Warp IPのブロック図 (シングル・メモリー・バウンス)この図では、Use single memory bounceがオンになっている場合の、外部メモリーへの接続を備えたWarp IPの高レベルのブロック図を示しています。このコンフィグレーションでは、エンジンは外部メモリーからビデオデータのみを読み出します。エンジンは、データを外部メモリーを経由せずに、ビデオデータを出力プロセスに直接送信します。
図 98. ワープ画像変換の例左から、5x5配列の制御ポイントによる任意のワープ、放射状の歪みがある4つのコーナーワープ

係数テーブル

Warp IP内の各エンジンは、IPが適用する画像変換を定義および制御する独自の3つの係数テーブルセットへの読み出しアクセス権を持ちます。3つの異なるテーブルは、次のとおりです。

  • 出力から入力ピクセルへの変換を定義するメッシュ係数
  • エンジン内のキャッシュメモリーへの入力画像の読み込みを制御するフェッチ係数
  • IPが補間またはフィルタリングされた出力ピクセルを生成する際にキャッシュメモリーからのマッピングを制御するフィルター係数

メッシュ係数の形式は、ソフトウェアAPIに提供するメッシュデータとは異なります。ソフトウェアAPIは、メッシュ値に32ビットの符号付き整数を使用します。Warp IPでは、16ビットのオフセットバイナリー形式を使用します。

IPにはワープを定義するためのメッシュデータのみが必要です。ソフトウェアAPIは、このメッシュデータを使用して、必要な係数テーブルを生成します。

ワープメッシュ補間

IPは、8x8サブサンプリング・メッシュを使用してワープ変換を定義します。このメッシュは、出力ピクセル位置から対応する入力ピクセル位置へのマッピングを定義します。8x8サブサンプリング・メッシュでは、次の出力ピクセル位置のマッピングのみが定義されている必要があります。

(0,0), (8,0), (16,0) … (W, 0)
(0,8), (8,8), (16,8) … (W, 8)
.
(0,H), (8, H), (16, H) … (W, H)

ここでは、W=8*ceil (画像の幅/8)、H=8*ceil (画像の高さ/8)

これらの8x8位置の間にある出力ピクセル位置を生成するために、Warp IPはバイリニア補間を使用します。

出力ピクセルの補間とフィルタリング

IPは、IP が適用するワープによって定義された関連する入力ピクセル位置からのピクセルデータを使用して出力ピクセルを生成します。IPでは、関連する入力ピクセル値の4x4カーネルを使用して、双三次補間計算によって出力ピクセル値を生成します。

4x4カーネルの補間の重み付けは、バイキュービック関数と可変ローパス・フィルタリング関数の組み合わせです。ソフトウェアAPIは、ワープの特定の領域で生じるダウンスケーリングの量に基づいて、ローパス・フィルタリングを自動的に適用します。

ブランクスキップ領域

Warp IPをコンフィグレーションして画像の領域を大幅に縮小すると、出力画像の大部分が入力画像の外側のポイントにマッピングされる可能性があります。これらのマッピングされていない領域により、IPは黒を生成します。

効率を高めるために、IPはこれらの領域に関連付けられた処理をスキップします。これは、出力画像内のこれらの領域がWarp IPによる入力画像の処理を必要としないためです。このスキッププロセスは、目的のワープマッピングからIPがスキップする領域を決定するソフトウェアAPIによって自動的にセットアップされます。この動作は、Use single memory bounceがオフの場合にのみ発生します。

Easy Warp

Use easy warpをオンにすると、以下を実行できます。

  • IPでは0°、90°、180°、270°の回転をサポートし、選択した回転の前に水平ミラー動作を適用できます。
  • IPではエンジンをコンフィグレーションしません。
  • IPでは外部メモリーからデータを読み出すときに、ビデオ出力ブロックによって必要な回転変換またはミラー変換を適用します。
  • IPには処理エンジンが不要であるため、リソースとメモリー帯域幅が節約されます。

0または180°のeasy warpの回転では、最大入力幅寸法が最大出力幅を超えないようにする必要があります。最大幅は、Maximum output video widthパラメーターで設定します。90°または270°のeasy warpの回転では、垂直方向と水平方向の寸法を入れ替える必要があるため、入力解像度に制限が発生します。

表 824.  90°または270°の入力解像度の制限
最大出力ビデオ幅 入力高さの制限
2048 1088
3840 2176
図 99. Warp Ipのブロック図 (Easy Warp)

この図は、Use Easy warpと外部メモリーへの接続を備えたWarp IPの高レベルのブロック図を示しています。

図 100. Easy Warpの画像変換の例左上から時計回りに、元の画像、反転、90°回転、180°回転

シングル・メモリー・バウンス

一般に、Use single memory bounceをオンにすると、オフの場合に比べてメモリー帯域幅が減少します。ただし、単一のメモリーバウンスには、より大きな内部RAMが必要になる場合があります。RAMの使用量は、特定のワープ変換によって異なります。一部の変換では、IPに大量のキャッシュが必要になります。キャッシュ要件が増加すると、内部ブロックRAMの使用量も増加します。

Use single memory bounceをオンにすると、エンジンごとに256、512、および1024キャッシュブロックの3つのキャッシュ・サイズ・オプションが使用可能になります。Use single memory bounceがオフの場合、IPのキャッシュサイズはエンジンごとに256キャッシュブロックに固定されます。

Use single memory bounceをオンにするかどうかは、IPが実行する実際の変換によって決まります。インテルは、目的の変換を処理するためにIPが必要とするキャッシュの量を決定するソフトウェア・ツールを提供しています。入力および出力の解像度、必要な変換、使用するエンジンの数などの情報をツールに提供します。また、このツールは、変換を処理するために使用するキャッシュの量に関するガイダンスを提供します。

Warpブロック・キャッシュ・ツールの詳細については、ブロック・キャッシュ・ツールを参照してください。シングル・メモリー・バウンスで実行する場合のメモリー帯域幅への影響については、Warp IPの外部メモリーを参照してください。

シングル・メモリー・バウンスのキャッシュの例

キャッシュ使用例は、インテルArria 10デバイス上における60 fpsでのUHD入力および出力解像度での45度回転に基づいて示されています。このスループットには、IPが2つのエンジンを使用する必要があります。

Use single memory bounceをオフにすると、IPによるブロックRAMの使用量は365 M20Kになります。

Use single memory bounceをオンにすると、45度の回転の制約により、IPにはエンジンごとに512のキャッシュブロックが必要になります。このキャッシュブロック要件は、407 M20KのブロックRAM使用量に相当します。

表 825.  ブロックRAMの使用 – UHD 45度回転
シングル・メモリー・バウンスの使用 エンジンごとのキャッシュブロック ブロックRAMの合計使用量
オン 512 407
オフ 256 (固定) 365