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

36.5. Video Frame Buffer IPのソフトウェアAPI

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

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

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

表 679.  Video Frame Buffer IPのAPIリファレンス
名前 説明
intel_vvp_vfb_init Frame Bufferインスタンスを初期化します。
Intel_vvp_core_* Video and Vision Processing IPのソフトウェア・プログラミング・モデル で定義されたアクセサー。Liteがオンの場合に書き込み可能。LiteがオフでDebug featuresがオンの場合には、読み出しが可能です。
intel_vvp_v fb_get_lite_mode Lite modeがオンの場合に返します。
intel_vvp_v fb_get_debug_enabled Debug featuresがオンの場合に返します。
intel_vvp_vfb_get_max_width 最大の行の幅を返します。
intel_vvp_vfb_get_max_height フレームの最大の高さを返します。
intel_vvp_vfb_is_frame_drop_enabled IPがフレームレート変換のためにフレームをドロップできるかどうかを返します。
intel_vvp_vfb_is_frame_repeat_enabled IPがフレームレート変換のためにフレームを繰り返すことができるかどうかを返します。
intel_vvp_are_invalid_frames_dropped フレームバッファーが無効なフレームをドロップするかどうかを返します。
intel_vvp_vfb_get_mem_base_address メモリーのベースアドレスを返します。
intel_vvp_vfb_get_buffer_stride メモリー内の各フレームバッファーに割り当てられたバイト数を返します。
intel_vvp_vfb_get_line_stride メモリー内の各ビデオラインに割り当てられたバイト数を返します。
intel_vvp_vfb_get_bits_per_sample コンパイル時に設定されたカラーサンプルあたりのビット数を返します。
intel_vvp_vfb_get_num_color_planes コンパイル時に設定されたカラープレーンの数を返します。
intel_vvp_vfb_get_pixels_in_parallel ビデオパス上で並列に送信されるピクセル数 (クロックサイクルあたり) を返します。
intel_vvp_vfb_get_mem_word_packing ビデオデータがメモリーワード内にどれだけ密にパッキングされているかを返します。
intel_vvp_vfb_is_input_running IPが現在入力データを処理中かどうかを返します。
intel_vvp_vfb_get_input_status 入力ステータスレジスターを読み出します。
intel_vvp_vfb_is_output_running IPが現在出力データを生成しているかどうかを返します。
intel_vvp_vfb_get_output_status 出力ステータスレジスターを読み出します。
intel_vvp_vfb_get_num_input_fields 入力時に受信したフィールドの数を返します。
intel_vvp_vfb_get_num_dropped_fields ドロップされた入力フィールドの数を返します。
intel_vvp_vfb_get_num_invalid_fields 無効な入力フィールドの数を返します。
intel_vvp_vfb_get_num_output_fields 送信されたフィールドの数を返します。
intel_vvp_vfb_get_num_repeated_fields 送信された繰り返しフィールドの数を返します。
intel_vvp_vfb_output_enable フレームバッファー出力をイネーブルします。
intel_vvp_vfb_is_output_enabled 出力がオンかオフかを返します。
intel_vvp_vfb_start_output フレームバッファー出力をイネーブルします。
Intel_vvp_vfb_stop_output フレームバッファー出力をディスエーブルします。

enum eIntelVvpVfbPacking

メンバー

kIntelVvpVfbPerfectPacking – コンパクトなサンプルパッキング、メモリーワードがフル活用されます。

kIntelVvpVfbColorPacking – メモリーワードは整数個のカラーサンプルでパッキングされます。

kIntelVvpVfbPixelPacking – メモリーワードは整数個のピクセルでパッキングされます。

kIntelVvpInvalidClipping – 無効なパッキング (エラーを示すために使用)

説明

サポートされているパッキング方法の列挙

intel_vvp_vfb_init

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

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

引数

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

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

戻り値

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

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

product_idがフレームバッファー製品IDと一致しない場合、kIntelVvpCorePidErr

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

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

intel_vvp_vfb_get_lite_mode

プロトタイプ
bool intel_vvp_vfb_get_lite_mode(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

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

intel_vvp_vfb_get_debug_enabled

プロトタイプ
bool intel_vvp_vfb_get_debug_enabled(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

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

intel_vvp_vfb_get_max_width

プロトタイプ
uint32_t intel_vvp_vfb_get_max_width(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

サポートされている最大の行の幅

intel_vvp_vfb_get_max_height

プロトタイプ
uint32_t intel_vvp_vfb_get_max_height(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

サポートされている最大フレームの高さ

intel_vvp_vfb_is_frame_drop_enabled

プロトタイプ
bool intel_vvp_vfb_is_frame_drop_enabled(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

フレームレート変換のためにフレームがドロップされた場合

intel_vvp_vfb_is_frame_repeat_enabled

プロトタイプ
bool intel_vvp_vfb_is_frame_repeat_enabled(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

フレームレート変換のためにフレームが繰り返される場合

intel_vvp_are_invalid_frames_dropped

プロトタイプ
bool intel_vvp_are_invalid_frames_dropped(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

無効なフレームが検出された場合はドロップされます。

intel_vvp_vfb_get_mem_base_address

プロトタイプ
uint32_t intel_vvp_vfb_get_mem_base_address(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

メモリー内のフレームバッファーのベースアドレス

intel_vvp_vfb_get_buffer_stride

プロトタイプ
uint32_t intel_vvp_vfb_get_buffer_stride(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

メモリー内の連続する2つのフレームバッファー間のストライド (バイト単位)

intel_vvp_vfb_get_line_stride

プロトタイプ
uint32_t intel_vvp_vfb_get_line_stride(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

メモリー内のフレームバッファー内の2つの連続するビデオライン間のストライド (バイト単位)

intel_vvp_vfb_get_bits_per_sample

プロトタイプ
uint8_t intel_vvp_vfb_get_bits_per_sample(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

コンパイル時のカラーサンプルあたりのビット数

intel_vvp_vfb_get_num_color_planes

プロトタイプ
uint8_t intel_vvp_vfb_get_num_color_planes(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

ピクセルあたりのカラープレーンの数を返します。

intel_vvp_vfb_get_pixels_in_parallel

プロトタイプ
uint8_t intel_vvp_vfb_get_pixels_in_parallel(intel_vvp_vfb_instance *instance);
説明

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

引数

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

戻り値

クロックサイクルごとに並列送信されるピクセルの数

intel_vvp_vfb_get_mem_word_packing

プロトタイプ
eIntelVvpVfbPacking intel_vvp_vfb_get_mem_ word_packing (intel_vvp_vfb_instance *instance);
説明

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

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

ピクセルをメモリーワードにパッキングするために使用される方法を返します。

intel_vvp_vfb_is_input_running

プロトタイプ
bool intel_vvp_vfb_is_input_running(intel_vvp_vfb_instance* instance);
説明

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

引数

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

戻り値

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

intel_vvp_vfb_get_input_status

プロトタイプ
uint32_t intel_vvp_vfb_get_input_status(intel_vvp_vfb_instance* instance);
説明

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

引数

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

戻り値

INPUT_STATUSレジスターの内容

intel_vvp_vfb_is_output_running

プロトタイプ
bool intel_vvp_vfb_is_output_running(intel_vvp_vfb_instance* instance);
説明

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

引数

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

戻り値

IPが現在出力フィールドを読み出し/生成している場合はTrue、2つの出力フィールドの間にある場合はFalse

intel_vvp_vfb_get_output_status

プロトタイプ
uint32_t intel_vvp_vfb_get_output_status(intel_vvp_vfb_instance* instance);
説明

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

引数

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

戻り値

OUTPUT_STATUSレジスターの内容

intel_vvp_vfb_get_num_input_fields

プロトタイプ
uint32_t intel_vvp_vfb_get_num_input_fields (intel_vvp_vfb_instance* instance);
説明

NUM_INPUT_FIELDSレジスターを読み出します。これは、Frame Buffer入力側で受信および処理されたフィールドの数です。カウンターはフィールドの終了時に更新されます。インスタンスは、完全に初期化された有効なintel_vvp_vfb_instanceである必要があります。

引数

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

戻り値

NUM_INPUT_FIELDSレジスターの内容

intel_vvp_vfb_get_num_dropped_fields

プロトタイプ
uint32_t intel_vvp_vfb_get_num_dropped_fields (intel_vvp_vfb_instance* instance);
説明

NUM_DROPPED_FIELDSレジスターを読み出します。これは、Frame Buffer入力側で受信され、ドロップされたフィールドの数です。次の入力フィールドの開始時にフィールドをドロップする決定が行われると、カウンターが更新されます。インスタンスは、完全に初期化された有効なintel_vvp_vfb_instanceである必要があります。

引数

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

戻り値

NUM_DROPPED_FIELDSレジスターの内容

intel_vvp_vfb_get_num_invalid_fields

プロトタイプ

uint32_t intel_vvp_vfb_get_num_invalid_fields(intel_vvp_vfb_instance* instance);

説明

NUM_INVALID_FIELDSレジスターを読み出します。これは、Frame Buffer入力側で無効として検出されたフィールドの数です。カウンターはフィールドの終了時に更新されます。インスタンスは、完全に初期化された有効なintel_vvp_vfb_instanceである必要があります。

引数

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

戻り値

NUM_INVALID_FIELDSレジスターの内容

intel_vvp_vfb_get_num_output_fields

プロトタイプ
uint32_t intel_vvp_vfb_get_num_output_fields (intel_vvp_vfb_instance* instance);
説明

NUM_OUTPUT_FIELDSレジスターを読み出します。これは、Frame Buffer出力側で送信されたフィールドの合計数です。カウンターは、繰り返しを含む各出力フィールドの終了時に更新されます。インスタンスは、完全に初期化された有効なintel_vvp_vfb_instanceである必要があります。

引数

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

戻り値

NUM_OUTPUT_FIELDSレジスターの内容

intel_vvp_vfb_get_num_repeated_fields

プロトタイプ
uint32_t intel_vvp_vfb_get_num_repeated_fields (intel_vvp_vfb_instance* instance);
説明

NUM_REPEATED_FIELDSレジスターを読み出します。これは、Frame Buffer出力側の繰り返し回数です。1つのフィールドが5回送信されると、出力フィールド数のカウンターは5増加し、繰り返しフィールド数のカウンターは4増加します。カウンターは、繰り返しフィールドの終了時に増加します。インスタンスは、完全に初期化された有効なintel_vvp_vfb_instanceである必要があります。

引数

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

戻り値

NUM_REPEATED_FIELDSレジスターの内容

intel_vvp_vfb_output_enable

プロトタイプ
int intel_vvp_vfb_output_enable(intel_vvp_vfb_instance* instance, bool enabled);
説明

Frame Bufferの出力側を開始/停止します。インスタンスは、完全に初期化された有効なintel_vvp_vfb_instanceである必要があります。フィールドのドロップがイネーブルになっていない場合、出力を停止すると入力でバックプレッシャーが発生することに注意してください。

引数

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

enabled – 出力を開始する場合はTrue、停止する場合はFalse

戻り値

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

intel_vvp_vfb_is_output_enabled

プロトタイプ
bool intel_vvp_vfb_is_output_enabled(intel_vvp_vfb_instance* instance);
説明

Frame Bufferの出力側を開始および停止します。インスタンスは、デバッグモードで完全に初期化され、コンフィグレーションされた有効なintel_vvp_vfb_instanceである必要があります。

引数

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

enabled – 出力を開始する場合はtrue、停止する場合はfalse

戻り値

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

intel_vvp_vfb_start_output

プロトタイプ
int intel_vvp_vfb_start_output(intel_vvp_vfb_instance* instance); 
説明

Frame Bufferの出力側を開始します。インスタンスは、完全に初期化された有効なintel_vvp_vfb_instanceである必要があります。フィールドのドロッピングがイネーブルになっていない場合、出力を停止すると入力でバックプレッシャーが発生することに注意してください。これはintel_vvp_vfb_output_enable (instance、true) のエイリアスです。

引数

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

戻り値

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

intel_vvp_vfb_stop_output

プロトタイプ
int intel_vvp_vfb_stop_output(intel_vvp_vfb_instance* instance); 
説明

Frame Bufferの出力側を開始します。インスタンスは、完全に初期化された有効なintel_vvp_vfb_instanceである必要があります。フィールドのドロッピングがイネーブルになっていない場合、出力を停止すると入力でバックプレッシャーが発生することに注意してください。これはintel_vvp_vfb_output_enable (instance, false) のエイリアスです。

引数

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

戻り値

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