インテルのみ表示可能 — GUID: qij1639406027568
Ixiasoft
インテルのみ表示可能 — GUID: qij1639406027568
Ixiasoft
17.3. Color Space Converter IPの機能説明
入力および出力のデータ型
変換で入力または出力がその範囲外に存在できない最小値または最大値を指定する必要がある場合は、Guard Bands Intel FPGA IPを使用します。Guard Bands Intel FPGA IPは、デザインの要件に応じて、前後または前および後にインスタンス化できます。符号付きデータを含むパイプラインでColor Space Converterを使用する場合は、Guard Bands Intel FPGA IPを使用できます。
カラースペース変換
カラースペース間で変換するには、カラースペースを関連付ける9つの係数と3つの加数の配列を指定します。
これらの係数と加数はコンパイル時に設定することも、Avalonメモリーマップド・インターフェイスをイネーブルしてランタイム時に動的に変更することもできます。
9つの係数のセット [A0、A1、A2、B0、B1、B2、C0、C1、C2] と3つの加数のセット [S0、S1、S2] が与えられると、カラースペース・コンバーターはカラープレーン0、1、および2 (dout_0、dout_1、および doout_2 で表示) の出力値を計算します。
- dout_0 = (A0 × din_0) + (B0 × din_1) + (C0 × din_2) + S0
- dout_1 = (A1 × din_0) + (B1 × din_1) + (C1 × din_2) + S1
- dout_2 = (A2 × din_0) + (B2 × din_1) + (C2 × din_2) + S2
din_0、din_1、およびdin_2は、カラープレーン0、1、および2から読み出される入力です。
Color Space Converter Intel FPGA IPは、プラットフォーム・デザイナーのプリセットを通じて使用できる以下の定義済みの変換をサポートしています。
- コンピューターB'G'R'からCbY'Crへ: SDTV
- CbY'Cr: SDTVからコンピューターB'G'R'
- コンピューターB'G'R'からCbY'Crへ: HDTV
- CbY'Cr: HDTVからコンピューターB'G'R'
- Studio B'G'R'からCbY'Crへ: SDTV
- CbY'Cr: SDTVからStudio B'G'R'
- Studio B'G'R'からCbY'Crへ: HDTV
- CbY'Cr: HDTVからStudio B'G'R'
IPは、変換名で示された順序で値を割り当てます。例えば、コンピューターB'G'R'からCbY'Cr: SDTVを選択した場合、din_0 = B'、din_1 = G'、din_2 = R'、dout_0 = Cb、dout_1 = Y'、dout_2 = Crとなります。Intel FPGA Streaming Video Protocolに記載されているように、din_0はワードのLSBを占め、din_1は中間ビットを占め、din_2はMSBを占めます。例えば、サンプルあたり8ビットで、定義済みの変換入力の1つがB'G'R'の場合、din_0はビット0から7でB'を伝送し、din_1はビット8から15でG'を伝送し、din_2はビット16から23でR'を伝送します。
定義済みの変換
定義済みの変換を使用する場合でも、係数と加数の精度を定義する必要があります。定義済みの係数も、Memory-Mapped制御をオフにした場合にのみ使用できます。それ以外の場合、係数はランタイム時にAvalonメモリーマップド・インターフェイスを使用して設定する必要があります。
定義済みの変換は、8、10、および12に等しいカラープレーンあたりのピクセルあたりの入力および出力ビットに対してのみ定義されます。カラープレーンあたりの異なるビット値を使用する場合は、それに応じて加数を手動でスケーリングする必要があります。カラープレーンごとに各ピクセルの異なる入力ビットと出力ビットを使用する場合は、正しいバイナリー桁数だけ結果をシフトして補正する必要もあります。例えば、10ビットCbYCr'から8ビット・コンピューターB'G'R'に変換するには、10ビットCbYCr'から10ビット・コンピューターB'G'R'の変換プリセットを選択します。加数はすでに10ビット入力に合わせてスケーリングされているため、変更されません。パラメーター・エディターでカラープレーンごとの出力ビット値を10から8に変更し、警告メッセージの指示に従って結果を正しいバイナリー桁数 (左に2桁) シフトします。
定義済みの変換を適用した後、またはカスタム変更を行った後は、係数のマトリクスを必ず確認してください。必要な浮動小数点係数値と実際の固定小数点量子化値との差が許容できない精度の低下を示している場合は、整数または小数ビットの数を増して問題を解決する必要があります。
出力データ型の変換
計算後、IPは結果の固定小数点型を出力の整数データ型に変換する必要があります。
IPは、この変換を次の順序の4段階で実行します。
- 結果をスケーリングします。結果をスケーリングして、範囲の拡大を選択できます。これは、出力のカラー深度をすばやく増やすのに役立ちます。使用可能なオプションは、2進小数点の右への-16桁から+16桁のシフトです。IPはスケールを単純なシフト演算として実装するため、乗算器は必要ありません。
- 小数ビットを削除します。小数ビットが存在する場合は、それらを削除することを選択できます。
- 整数に切り捨てます。小数ビットはデータから削除されます。これは、負の無限大に向かって切り捨てるのと同じです。
- 半分を切り上げます。最も近い整数に切り上げます。小数ビットが0.5に等しい場合、切り上げは正の無限大に向かって行われます。
- 偶数の半分を丸めます。最も近い整数に丸めます。小数ビットが0.5に等しい場合、最も近い偶数の整数に向かって丸めます。
- 符号付きから符号なしへ変換します。結果に負の数値が存在する可能性があり、出力タイプが符号なしの場合、それらは最小出力値まで飽和します。
- 範囲を制限します。結果を最小出力値と最大出力値に飽和させるロジックは、次のとおりです。
- いずれかの結果が、ピクセルあたりの出力ビットで許可される最小値と最大値の範囲内にない場合、値は自動的にこの範囲に制限されます。
- 下限値と上限値をさらに細かく制御する必要がある場合は、Color Space Converterの後にGuard Bands Intel FPGA IPをインスタンス化することを検討してください。