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

30.3. Scaler IPの機能の説明

スケーラーは、ビデオフィールドのサイズを変更するアルゴリズムとして、ニアレストネイバー、バイリニア、ポリフェーズの3つのオプションをサポートしています。

ニアレストネイバー

ニアレストネイバーは、コストと品質が最も低いアルゴリズムです。出力フィールドの各ピクセルは入力フィールドのピクセルの直接コピーであり、ピクセル間のフィルタリングや補間は行われません。アルゴリズムは、必要なスケーリング比に従って入力ピクセルを繰り返すか、またはドロップします。out[i,j] が出力フィールドの水平位置iと垂直位置jのピクセル値である場合、in[x,y] は入力フィールドの水平位置xと垂直位置yのピクセル値です。次の方程式は、出力フィールドのピクセル値を定義します。
方程式 3. ニアレストネイバー方程式

ニアレストネイバーでは、アップスケール中に出力でこのラインを複数回繰り返すことができるように、入力フィールドの1行を格納するラインバッファーが必要です。ニアレストネイバーのスケーリングでは補間やフィルタリングが行われないため、結果の画像がブロック状になることがあります。

バイリニア

バイリニア・スケーリングは、隣接するピクセル間を補間してニアレスト・ネイバーのスケーリングのブロック状の外観を除去することで、ニアレストネイバーに比べて品質が向上します。バイリニア・スケーリングは、ダウンスケーリング (画像サイズの縮小) よりもアップスケーリング (画像サイズの拡大) に適しています。基本的なバイリニアフィルターのカットオフ周波数は、ダウンスケーリングによって発生する可能性のあるエイリアシング・アーティファクトをすべて除去するには一般に高すぎます。ただし、アップスケールの場合でも、画像のエッジが柔らかくなり、結果が多少ぼやけて見えることがあります。

バイリニア・アルゴリズムは、同じ入力ピクセルを選択して、ニアレストネイバーのアルゴリズムとして各出力ピクセルを作成します。ターゲット入力ピクセルの周囲に2x2ピクセルウィンドウをビルドします。ターゲットピクセルはウィンドウの左上隅にあります。ピクセルは整数の位置にのみ存在するため、floor関数は入力ピクセルの位置 (xy の値) を計算して整数のインデックスを与えます。ただし、整数インデックスには、小数点以下の位置情報をすべて保持する理想的な位置と比較すると、多少の誤差があります。例えば、floor関数を適用する前の理想値が1.5の場合、 floor関数を適用した後の整数値は1となり、誤差は0.5になります。バイリニア・アルゴリズムは、水平位置誤差値と垂直位置誤差値、それぞれerr h err v を使用して係数を作成し、整数ピクセル位置の周囲に作成された2x2ピクセルウィンドウに適用すると、結果として目的の分数位置に効果的に配置されるピクセルが生成されます。方程式は、係数の値がどのように作成され、ピクセルの入力ウィンドウに適用されて出力ピクセルを作成するかを示しています。

方程式 4. バイリニア方程式

考えられるすべてのスケーリング比に対して正確な精度でerr h およびerr v の値を計算するには、数学を実装するハードウェアに無限数の小数ビットが必要です。水平方向と垂直方向の計算に含める小数ビットの数 (それぞれ frac h frac v ) をパラメーターを介して指定する必要があります。IPは、frac h の値をHorizontal coefficient fraction bitsパラメーターから取得し、frac v の値をVertical coefficient fraction bitsパラメーターから取得します。必要なレベルの精度を設定すると、方程式は値を示します。

バイリニアフィルターに必要な2x2ピクセルウィンドウを作成するには、バイリニア・アルゴリズムに、入力ビデオの2行を格納するラインバッファーが必要です。

ポリフェーズ

ポリフェーズ・アルゴリズムは最も多くのリソースを必要としますが、最高品質の結果を生成します。このアルゴリズムは、バイリニア・スケーリングに使用される2x2タップフィルターよりも大きい補間フィルターを使用します。選択した係数に応じて、これらのフィルターは周波数応答を改善し、アップスケール時のエッジのぼやけを減らし、ダウンスケール時のエイリアシング・アーティファクトを減らします。フィルターのサイズが大きくなると、垂直ウィンドウを作成するために格納する必要がある入力ビデオラインの数が増え、フィルター計算を実装するためのDSPブロック (乗算器) の使用が増えます。

ポリフェーズ・アルゴリズムは、ニアレストネイバーのスケーリングと同じ初期整数ピクセル位置を使用し、バイリニア・アルゴリズムと同じ方法で位置誤差値を計算します。ただし、これらのエラー値を直接使用してフィルター係数を計算するのではなく、ポリフェーズ・アルゴリズムはエラー値を水平および垂直フィルター係数メモリーへのアドレスとして使用します。係数メモリー内の各アドレスは位相と呼ばれます (その理由は係数選択の項で説明します)。水平位相と垂直位相の数、num_phase h およびnum_phase v をそれぞれパラメーターを介して定義します。 Number of horizontal phasesパラメーターはnum_phase h の値を設定し、Number of vertical phasesパラメーターはnum_phase v の値を設定します。次の式は、各出力ピクセルの水平位相であるphase h 、および垂直位相であるphase v を示します。

方程式 5. フェーズ方程式

水平および垂直スケーリング・フィルター (それぞれnum_taps h およびnum_taps v ) で使用されるタップ数を定義します。タップ数は4から64の任意の値にできます。タップ数を増やすと、より正確なフィルター伝達関数が可能になりますが、余分なDSPブロックの使用率が犠牲になり、垂直フィルターの場合は、垂直サンプルウィンドウの作成に必要なラインバッファー内のブロックメモリーの使用率が増加します。係数メモリー内の各垂直位相または水平位相には、垂直フィルターまたは水平フィルターの各タップごとに1つの係数が含まれます。

スケーラーは、最初に垂直スケーリング関数 (選択されている場合) を実装し、次に水平スケーリング関数 (選択されている場合) を実装します。垂直スケーリングの結果、目的の出力高さを持ち、元の入力幅を保持した中間画像を取得できます。inter[x,j] を中間画像の水平位置xおよび垂直位置jのピクセル値、coeff f v [n] をタップN (phase v から選択) の垂直スケーリング・フィルター係数とすると、次の方程式は、IPによる中間画像の計算方法を示しています。フィルタータップには、0が「最も古い」データ (画像の上端に最も近い)、num_taps v - 1が最新のデータ (画像の下端に最も近い) でインデックス付けされます。

方程式 6. 中間画像の方程式

coeff f h [n] がタップN (selected from phase v から選択) の水平スケーリング・フィルター係数である場合、式はIPが中間画像から最終出力画像を計算する方法を示します。フィルタータップには、0が最も古いデータ (画像の左端に最も近い)、num_taps h - 1が最新のデータ (画像の右端に最も近い) で再びインデックス付けされます。

方程式 7.  最終出力画像の方程式