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

17.5. Color Space Converter IPのソフトウェアAPI

IPには、ランタイム制御用のソフトウェアが含まれています。このIPは、Nios II HALによって提供されている汎用デバイスモデルのいずれにも適合せず、コントロール・レジスターおよびステータスレジスターへの専用アクセサーのセットを公開します。IPドライバー構造は基本ドライバー構造を継承するため、 Video and Vision Processing IPのソフトウェアAPI で定義されているすべての一般的なメソッドを適用できます。

レジスター定義ヘッダーファイル: intel_vvp_csc_regs.h

インクルード・ファイル: intel_vvp_csc.h

表 254.  Color Space Converter IPのソフトウェアAPI
名前 説明
intel_vvp_csc_init Color Space Converterインスタンスを初期化します。
intel_vvp_core_* Video and Vision Processing IPのソフトウェア・プログラミング・モデルで定義されたアクセサー。Liteがオンの場合に書き込み可能です。LiteがオフでDebug featuresがオンの場合には、読み出しが可能です。
intel_vvp_csc_get_lite_mode Lite modeがオンの場合に返します。
intel_vvp_csc_get_debug_enabled Debug featuresがオンの場合に返します。

intel_vvp_csc_get_bits_per_sample_in

カラーサンプルごとの入力ビット数を返します。

intel_vvp_csc_get_bits_per_sample_out

カラーサンプルごとの出力ビット数を返します。
intel_vvp_csc_are_coeffs_signed 9つの係数に符号ビットがあり、負の値を指定できるかどうかを返します。

intel_vvp_csc_get_coeffs_int_bits

係数の量子化に使用できる整数ビット (符号ビットを除く) の数を返します。
intel_vvp_csc_are_summands_signed 3つの加数に符号ビットがあり、負の値を指定できるかどうかを返します。

intel_vvp_csc_get_summands_int_bits

加数を量子化するために使用できる整数ビット (符号ビットを除く) の数を返します。

intel_vvp_csc_get_coeffs_frac_bits

係数と加数の両方を量子化するために使用できる小数ビットの数を返します。
intel_vvp_csc_get_binary_point_right_move IPの出力の値に適用される固定スケーリング係数を返します。
intel_vvp_csc_get_rounding_method IPの出力で浮動小数点値を整数値に変換するために使用されるメソッドを返します。
intel_vvp_csc_is_running IPが現在、ビデオデータを処理しているかどうかを返します。
intel_vvp_csc_get_commit_status コミットされていない書き込みがある場合に返します。
intel_vvp_csc_get_status ステータスレジスターを読み出します。
intel_vvp_csc_set_quantized_coeff_data 新しい量子化係数/加算値のセットを使用してIPをプログラムします。
intel_vvp_csc_get_quantized_coeff_data IPにプログラムされた量子化された係数/加算のセットを取得します。
intel_vvp_csc_set_coeff_data 新しい浮動小数点係数/加算セットを使用してIPをプログラムします。
intel_vvp_csc_get_coeff_data IPにプログラムされた浮動小数点係数/加算のセットを取得します。
intel_vvp_csc_set_output_color_space 現在の出力カラースペース (フルモード) を選択します。
intel_vvp_csc_get_output_color_space 現在の出力カラースペース (フルモード) を返します。
intel_vvp_csc_commit_writes すべての未処理の書き込みをコミットします。

enum eIntelVvpCscRounding

メンバー

kIntelVvpCscRoundUp (1) – 切り上げ (正の無限大に向かって半分切り上げ)

kIntelVvpCscRoundHalfEven (2) – 半分から偶数への丸め (バンカーの丸め)

kIntelVvpCscRoundTruncate (3) – 切り捨て (丸めなし)

kIntelVvpCscRoundInvalid (-1) – 無効な丸め方法 (エラーを示すために使用)

説明

IPで使用される丸め方法の列挙

enum eIntelVvpCscColorSpace

メンバー

kIntelVvpCsRgb (0) – 切り上げ (正の無限大に向けて半分ずつ切り上げ)

kIntelVvpCsYcc (1) – 半分から偶数への丸め (バンカーの丸め)

kIntelVvpCsMono (2) – 切り捨て (丸めなし)

kIntelVvpCscRoundInvalid (-1) – 無効な丸め方法 (エラーを示すために使用)

説明

IPで使用される丸め方法の列挙

struct intel_vvp_coefficients

メンバー

struct { float c1; float c2; float c3; } coeffs[3]; – 9つの係数の行列

float s[3] – 3つの加数のベクトル

説明

浮動小数点値としての係数と加数

struct intel_vvp_quantized_coefficients

メンバー

struct { int32_t c1; int32_t c2; int32_t c3; } coeffs[3]; – 9つの係数の行列

int32_t s[3] – 3つの加数のベクトル

説明

量子化された整数値としての係数と加数

intel_vvp_csc_init

プロトタイプ
int intel_vvp_csc_init(intel_vvp_csc_instance *instance, intel_vvp_core_base base);
説明

Color Space Converterインスタンスを初期化します。ベースアドレスで読み出されたベンダーIDまたは製品IDが一致しない場合、またはレジスターマップのバージョンがサポートされていない場合、初期化は早期に停止します。それ以外の場合、関数はIPコンパイル時のパラメーター化の読み出しと格納に進みます。インスタンスは完全に初期化されていないため、ゼロ以外のエラーコードを返した場合はアプリケーションでそれ以上使用しないでください。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

ベース - レジスターマップのベースアドレス

戻り値

成功の場合はkIntelVvpCoreOk (0)、エラーの場合は負のエラーコード

コアのベンダーIDがインテルFPGAベンダーID (0x6AF7) ではない場合は、kIntelVvpCoreVidErr

product_idがColor Space Converterの製品IDと一致しない場合は、kIntelVvpCorePidErr

インスタンスがヌルポインターの場合は、kIntelVvpCoreInstanceErr

レジスターマップがサポートされていない場合は、kIntelVvpCscRegMapVersionErr

intel_vvp_csc_get_lite_mode

プロトタイプ
bool intel_vvp_csc_get_lite_mode(intel_vvp_csc_instance *instance);
説明

LITE_MODEレジスターの値を返します。インスタンスは完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

IPがライトモードでパラメーター化されている場合は、true

intel_vvp_csc_get_debug_enabled

プロトタイプ
bool intel_vvp_csc_get_debug_enabled(intel_vvp_csc_instance *instance);
説明

DEBUG_ENABLEDレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

デバッグ機能がイネーブルになってIPがパラメーター化されている場合は、Trueを返します。

intel_vvp_csc_get_bits_per_sample_in

プロトタイプ
uint8_t intel_vvp_csc_get_bits_per_sample_in(intel_vvp_csc_instance *instance);
説明

BPS_INレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

IPの生成に使用されるサンプルあたりの入力ビット数パラメーター

intel_vvp_csc_get_bits_per_sample_out

プロトタイプ
uint8_t intel_vvp_csc_get_bits_per_sample_out(intel_vvp_csc_instance *instance);
説明

BPS_OUTレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

IPの生成に使用されるサンプルあたりの出力ビット数パラメーター

intel_vvp_csc_are_coeffs_signed

プロトタイプ
bool intel_vvp_csc_are_coeffs_signed(intel_vvp_csc_instance* instance);
説明

COEFFS_SIGNEDレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

IP生成時に符号付き係数が許可されている場合

intel_vvp_csc_get_coeffs_int_bits

プロトタイプ
uint8_t intel_vvp_csc_get_coeffs_int_bits (intel_vvp_csc_instance *instance);
説明

COEFFS_INT_BITSレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

係数の量子化をパラメーター化するために、IP生成時に設定される整数ビットの数

intel_vvp_csc_are_summands_signed

プロトタイプ
bool intel_vvp_csc_are_summands_signed(intel_vvp_csc_instance* instance);
説明

SUMMANDS_SIGNEDレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

IP生成時に符号付き加数が許可されている場合

intel_vvp_csc_get_summands_int_bits

プロトタイプ
uint8_t intel_vvp_csc_get_summands_int_bits (intel_vvp_csc_instance *instance);
説明

SUMMANDS_INT_BITSレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

加数の量子化をパラメーター化するために、IP生成時に設定される整数ビットの数

intel_vvp_csc_get_coeffs_frac_bits

プロトタイプ
uint8_t intel_vvp_csc_get_coeffs_frac_bits (intel_vvp_csc_instance *instance);
説明

FRAC_BITSレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

係数と加数の量子化をパラメーター化するために、IP生成時に設定される小数ビットの数

intel_vvp_csc_get_binary_point_right_move

プロトタイプ
int8_t intel_vvp_csc_get_binary_point_right_move(intel_vvp_csc_instance *instance);
説明

BINARY_POINT_RIGHT_MOVEレジスターの値を返します。IP出力サンプルに適用され、IP生成時に選択される固定スケーリング係数です。出力値は2^(binary_point_right_move) でスケーリングされます。これは通常、bps_inとbps_outの間の違いを考慮するために行われます。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

生成時に選択されたbinary_point_right_move値

intel_vvp_csc_get_rounding_method

プロトタイプ
eIntelVvpCscRounding intel_vvp_csc_get_rounding_method(intel_vvp_csc_instance *instance);
説明

ROUND_METHODレジスターの値を返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。CSC処理の最後に固定小数点値を整数値に変換する方法です。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

IP丸め方式

intel_vvp_csc_is_running

プロトタイプ
bool intel_vvp_csc_is_running(intel_vvp_csc_instance* instance);
説明

STATUSレジスターの実行ビットを読み出して返します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

現在、IPが入力フィールドを受信/格納している場合はTrue、2つの入力フィールドの間にある場合はFalseを返します。

intel_vvp_csc_get_commit_status

プロトタイプ
bool intel_vvp_csc_get_commit_status(intel_vvp_csc_instance* instance);
説明

STATUSレジスターのコミット・ペンディング・ビットを読み出して返します。インスタンスは、完全に初期化され、フルモードでコンフィグレーションされた有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

IPがフルモードでコンフィグレーションされており、エージェント・インターフェイスにコミットされていない書き込みが含まれている場合はTrueです。

intel_vvp_csc_get_status

プロトタイプ
uint32_t intel_vvp_csc_get_status(intel_vvp_csc_instance* instance);
説明

STATUSレジスターを読み出します。インスタンスは、完全に初期化された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

STATUSレジスターの内容を返します。

intel_vvp_csc_set_quantized_coeff_data

プロトタイプ
int intel_vvp_csc_set_quantized_coeff_data(intel_vvp_csc_instance* instance, const intel_vvp_quantized_coefficients* quantized_coeffs);
説明

係数と加数のセットを使用してIPをプログラムします。この呼び出しでは、量子化された値が正しいかどうかがチェックされ、無効なビットが設定されている場合はエラーが返されます。32ビット範囲全体への符号拡張が受け入れられます。量子化エラーによって係数が更新されることはありません。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

quantized_coeffs – 9つの量子化係数と加数を含む構造体へのポインター

戻り値

成功の場合はkIntelVvpCoreOk、それ以外の場合は負のエラーコード

インスタンスが無効な場合、kIntelVvpCoreInstanceErr

kIntelVvpCoreNullPtrErr (quantized_coeffsがNULLポインターの場合)

kIntelVvpCscQuantizationErr (量子化された係数/加数が範囲外の場合)

intel_vvp_csc_get_quantized_coeff_data

プロトタイプ
int intel_vvp_csc_get_quantized_coeff_data(intel_vvp_csc_instance* instance, intel_vvp_quantized_coefficients* quantized_coeffs)
説明

IPにプログラムされている現在の係数セットを読み出して返します。インスタンスは、完全に初期化され、デバッグが有効に設定された有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

quantized_coeffs – 量子化された係数を返す記憶域

戻り値

kIntelVvpCoreOk、またはエラーの場合は負のエラーコード

kIntelVvpCoreInstanceErr、インスタンスが無効な場合

kIntelVvpCoreNullPtrErr、quantized_coeffsがNULLポインターの場合

intel_vvp_csc_set_coeff_data

プロトタイプ
int intel_vvp_csc_set_coeff_data(intel_vvp_csc_instance* instance, const intel_vvp_coefficients* coeffs, int summand_rescale);
説明

係数と加数のセットを使用してIPをプログラムします。この呼び出しでは、ユーザー定義の浮動小数点係数が量子化され、値が範囲外の場合はエラーが返されます。量子化エラーによって係数が更新されることはありません。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

coeffs – 9つの浮動小数点係数と3つの加数を含む構造体へのポインター

summand_rescale – 入力加算値に適用されるスケーリング係数 (2^summand_rescale)。通常、ゼロ以外の値は、IPのパラメーター化に使用される入力サンプルあたりのビット数と一致しないカラーサンプルあたりのビット数用に設計された既製の変換テーブルを使用する場合に使用されます。

戻り値

成功の場合はkIntelVvpCoreOk、それ以外の場合は負のエラーコード

インスタンスが無効な場合、kIntelVvpCoreInstanceErr

coeffsがNULLポインターの場合は、kIntelVvpCoreNullPtrErr

係数/加算値が範囲外で正確に量子化できない場合は、kIntelVvpCscQuantizationErr

intel_vvp_csc_get_coeff_data

プロトタイプ
int intel_vvp_csc_get_coeff_data(intel_vvp_csc_instance* instance, intel_vvp_coefficients* coeffs)
説明

IPにプログラムされている現在の係数セットを読み出して返します。インスタンスは、完全に初期化され、デバッグが有効にコンフィグレーションされた有効なintel_vvp_csc_instanceである必要があります。係数は浮動小数点値に変換された後に返されます。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

coeffs – 浮動小数点係数を返す記憶域

戻り値

kIntelVvpCoreOk、またはエラーの場合は負のエラーコード

インスタンスが無効な場合、kIntelVvpCoreInstanceErr

coeffsがNULLポインターの場合、kIntelVvpCoreNullPtrErr

intel_vvp_csc_set_output_colorspace

プロトタイプ
int intel_vvp_csc_set_output_colorspace(intel_vvp_csc_instance* instance, int8_t output_color_space);
説明

必要な出力カラースペースをOUTPUT_CSレジスターに書き込みます。インスタンスは、完全に初期化され、フルモードでコンフィグレーションされた有効なintel_vvp_csc_instanceである必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

output_color_space – カラースペースコード

戻り値

kIntelVvpCoreOk、またはエラーの場合は負のエラーコード

インスタンスが無効な場合、kIntelVvpCoreInstanceErr

出力カラースペースが無効な場合 (<0)、kIntelVvpCscParamErr

intel_vvp_csc_get_output_colorspace

プロトタイプ
int8_t intel_vvp_csc_get_output_colorspace(intel_vvp_csc_instance* instance);
説明
OUTPUT_CSレジスターを読み出します。インスタンスは、完全に初期化され、デバッグが有効になったフルモードでコンフィグレーションされた有効なintel_vvp_csc_instanceである必要があります。
引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

OUTPUT_CSレジスターに書き込まれた最後の値、エラーの場合は負の値

intel_vvp_csc_commit_writes

プロトタイプ
int intel_vvp_csc_commit_writes(intel_vvp_csc_instance* instance)
説明

次のフィールドを処理する前に、ペンディング中の書き込みをすべてコミットします。インスタンスは有効であり、フルモードでパラメーター化されている必要があります。

引数

instance – intel_vvp_csc_instanceソフトウェア・ドライバー・インスタンス構造体へのポインター

戻り値

成功の場合はkIntelVvpCoreOk (0)、それ以外の場合は負のエラーコード