インテルのみ表示可能 — GUID: qxm1641479995382
Ixiasoft
インテルのみ表示可能 — GUID: qxm1641479995382
Ixiasoft
17.5. Color Space Converter IPのソフトウェアAPI
レジスター定義ヘッダーファイル: intel_vvp_csc_regs.h
インクルード・ファイル: intel_vvp_csc.h
名前 | 説明 |
---|---|
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)、それ以外の場合は負のエラーコード