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

6. Video and Vision Processing IPのソフトウェア・プログラミング・モデル

ほとんどのビデオおよびビジョン・プロセシングIPは、ランタイム時にコンフィグレーション可能です。メモリーマップド・ランタイム制御インターフェイスは、処理動作動作を変更するためのコントロール・レジスターのセットと、処理機能のステートをクエリーするためのステータスレジスターを公開します。 使用可能なレジスターのセットと各レジスターのバイナリービット幅は、各制御インターフェイスによって異なります。書き込み可能なコントロール・レジスターと読み出し可能なレジスターは、未定義のステートでパワーアップされると想定する必要があります。

Nios II SBT用のHALデバイスドライバー

ソフトウェア・コントロールとランタイム・リコンフィグレーション用に、インテルのビデオおよびビジョン・プロセシングIPには、関連するソフトウェア・ドライバーが含まれています。ビデオIPは、Nios II HALが提供する汎用デバイスモデルのいずれにも適合しません。したがって、ベアメタルドライバーは、コントロール・レジスターおよびステータスレジスターに対するいくつかの専用アクセサー関数による部分的なHALサポートのみを提供します。ビデオ機能には、汎用HAL APIまたはANSI C標準ライブラリーを介して間接的にアクセスできません。

アプリケーションでのこれらのドライバーの使用はオプションです。ドライバーを使用しない場合、インテルは、レジスター・ヘッダー・ファイルによって提供される定義を使用してIPコンポーネント (*_regs.h) を制御し、アプリケーションからランタイム・レジスターマップにアクセスするために名前のない定数やアドレスを使用しないことをお勧めします。

Nios® II開発ツールの使用を開始するには、Nios® II Software Developer's Handbookを参照してください。

共通ソフトウェアAPI

インテルのビデオおよびビジョン・プロセシングIPの多くは、同じ位置にある共通レジスターを持つレジスターマップを公開しています (Video and Vision Processing Registersを参照してください)。コード・フットプリントを制限するために、多くのビデオおよびビジョン・プロセシング・デバイス構造 (C構造体) には、共通のデバイス構造が含まれています。この共有ベースにより、一連の共通関数の定義で、それぞれアドレス0x0000および0x0004の VID_PID レジスターと VERSION レジスター、および0x0120から0x013Cの範囲の IMG_INFO レジスターのセットをクエリーできるようになります。

共通APIリファレンス

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

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

表 9.  共通APIリファレンス
名前 説明
intel_vvp_core_init インスタンスを初期化します。
intel_vvp_core_get_vendor_id ベンダーIDを返します。
intel_vvp_core_get_product_id 製品IDを返します。
intel_vvp_core_get_qpds_major バージョンのメジャー番号を返します。
intel_vvp_core_get_qpds_update バージョン更新番号を返します。
intel_vvp_core_get_qpds_patch バージョンのパッチ番号を返します。
intel_vvp_core_get_register_map_version レジスターマップのバージョン番号を返します。
intel_vvp_core_get_img_info_width IMG_INFO_WIDTH レジスターから読み出した幅を返します。
intel_vvp_core_get_img_info_height IMG_INFO_HEIGHT レジスターから読み出した高さを返します。
intel_vvp_core_get_img_info_interlace IMG_INFO_INTERLACE レジスターから読み出したインターレース・ニブルを返します。
intel_vvp_core_get_img_info_colorspace IMG_INFO_COLORSPACE レジスターから読み出したカラースペース・コードを返します。
intel_vvp_core_get_img_info_subsampling IMG_INFO_SUBSAMPLING レジスターから読み出したサブサンプリング・コードを返します。
intel_vvp_core_get_img_info_cositing IMG_INFO_COSITING レジスターから読み出したコサイティング・コードを返します。
intel_vvp_core_get_img_info_field_count IMG_INFO_FIELD_COUNT レジスターから読み出したフィールド・カウント・コードを返します。
intel_vvp_core_set_img_info_width IMG_INFO_WIDTH レジスターに幅を書き込みます。
intel_vvp_core_set_img_info_height IMG_INFO_HEIGHT レジスターに高さを書き込みます。
intel_vvp_core_set_img_info_interlace IMG_INFO_INTERLACE レジスターにインターレース・ニブルを書き込みます。
intel_vvp_core_set_img_info_colorspace IMG_INFO_COLORSPACE レジスターにカラースペース・コードを書き込みます。
intel_vvp_core_set_img_info_subsampling IMG_INFO_SUBSAMPLING レジスターにサブサンプリング・コードを書き込みます。
intel_vvp_core_set_img_info_cositing IMG_INFO_COSITING レジスターにコサイティング・コードを書き込みます。

intel_vvp_core_init

プロトタイプ
eIntelVvpCoreErrors intel_vvp_core_init(intel_vvp_core_instance *instance, intel_vvp_core_base base, uint16_t expected_product_id);
説明

共通メンバーintel_vvp_core_instanceを初期化します。ベースアドレスで読み出されたベンダーIDまたは製品IDが一致しない場合、初期化は早期に停止します。それ以外の場合、関数はバージョン番号を読み出し、2番目のレジスターに格納します。

引数

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

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

expected_product_id – the expected product id

戻り値

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

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

product_idが予想と一致しない場合は、kIntelVvpCorePidErr

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

intel_vvp_core_get_vendor_id

プロトタイプ
uint16_t intel_vvp_core_get_vendor_id(void *instance);
説明

初期化されたインスタンスのvendor_idをクエリーします。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

intel_vvp_core_instanceインスタンスのvendor_idフィールド

intel_vvp_core_get_product_id

プロトタイプ
uint16_t intel_vvp_core_get_product_id(void *instance);
説明

初期化されたインスタンスのproduct _idをクエリーします。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

intel_vvp_core_instanceインスタンスのproduct_idフィールド

intel_vvp_core_get_qpds_major

プロトタイプ
uint8_t intel_vvp_core_get_qpds_major(void *instance);
説明

インスタンスのメジャーバージョン番号をクエリーします。インスタンスは、正常に初期化されている必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

intel_vvp_core_instanceインスタンスのメジャーバージョン番号フィールド

intel_vvp_core_get_qpds_update

プロトタイプ
uint8_t intel_vvp_core_get_qpds_ update(void *instance);
説明

インスタンスのマイナーバージョン番号をクエリーします。インスタンスは、正常に初期化されている必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

intel_vvp_core_instanceインスタンスの更新 (マイナー) バージョン番号フィールド

intel_vvp_core_get_qpds_patch

プロトタイプ
uint8_t intel_vvp_core_get_qpds_patch(void *instance);
説明

インスタンスのパッチバージョン番号をクエリーします。インスタンスは、正常に初期化されている必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

intel_vvp_core_instanceインスタンスのパッチ (ビルド) バージョン番号フィールド

intel_vvp_core_get_register_map_version

プロトタイプ
uint8_t intel_vvp_core_get_register_map_version(void *instance);
説明

インスタンスのレジスターマップ・バージョン番号をクエリーします。インスタンスは、正常に初期化されている必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

intel_vvp_core_instanceインスタンスのレジスターマップ・バージョン番号フィールド

intel_vvp_core_get_img_info_width

プロトタイプ
uint32_t intel_vvp_core_get_img_info_width(void *instance);
説明

インスタンスのIMG_INFO_WIDTHレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

image info widthレジスターへの読み出しから返された値

intel_vvp_core_get_img_info_height

プロトタイプ
uint32_t intel_vvp_core_get_img_info_height(void *instance);
説明

インスタンスのIMG_INFO_HEIGHTレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

image info heightレジスターへの読み出しから返された値

intel_vvp_core_get_img_info_interlace

プロトタイプ
uint8_t intel_vvp_core_get_img_info_interlace(void *instance);
説明

インスタンスのIMG_INFO_INTERLACEレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

image info interlaceレジスターへの読み出しから返された値

intel_vvp_core_get_img_info_colorspace

プロトタイプ
uint8_t intel_vvp_core_get_img_info_colorspace(void *instance);
説明

インスタンスのIMG_INFO_COLORSPACEレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

image info colorspaceレジスターへの読み出しから返された値

intel_vvp_core_get_img_info_subsampling

プロトタイプ
uint8_t intel_vvp_core_get_img_info_subsampling(void *instance);
説明

インスタンスのIMG_INFO_SUBSAMPLINGレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

image info subsamplingレジスターへの読み出しから返された値

intel_vvp_core_get_img_info_cositing

プロトタイプ
uint8_t intel_vvp_core_get_img_info_cositing(void *instance);
説明

インスタンスのIMG_INFO_COSITINGレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

image info cositingレジスターへの読み出しから返された値

intel_vvp_core_get_img_info_field_count

プロトタイプ
uint16_t intel_vvp_core_get_img_info_field_count(void *instance);
説明

インスタンスのIMG_INFO_FIELD_COUNTレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

戻り値

image info field countレジスターへの読み出しから返された値

intel_vvp_core_set_img_info_width

プロトタイプ
eIntelVvpCoreErrors intel_vvp_core_set_img_info_width(void *instance, uint32_t width);
説明

新しい幅をインスタンスのIMG_INFO_WIDTHレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

幅 - 新しい幅

戻り値

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

intel_vvp_core_set_img_info_height

プロトタイプ
eIntelVvpCoreErrors intel_vvp_core_set_img_info_height(void *instance, uint32_t height);
説明

新しい高さをインスタンスのIMG_INFO_HEIGHTレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

高さ – 新しい高さ

戻り値

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

intel_vvp_core_set_img_info_interlace

プロトタイプ
eIntelVvpCoreErrors intel_vvp_core_set_img_info_interlace(void *instance, uint8_t height);
説明

新しいインターレースをインスタンスのIMG_INFO_INTERLACEレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

高さ – 新しい高さ

戻り値

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

intel_vvp_core_set_img_info_colorspace

プロトタイプ
eIntelVvpCoreErrors intel_vvp_core_set_img_info_colorpsace (void *instance, uint8_t colorspace);
説明

新しいカラースペースをインスタンスのIMG_INFO_COLORSPACEレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

カラースペース – 新しいカラースペース

戻り値

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

intel_vvp_core_set_img_info_subsampling

プロトタイプ
eIntelVvpCoreErrors intel_vvp_core_set_img_info_subsampling(void *instance, uint8_t subsampling);
説明

新しいサブサンプリングをインスタンスのIMG_INFO_SUBSAMPLINGレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

サブサンプリング – 新しいサブサンプリング

戻り値

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

intel_vvp_core_set_img_info_cositing

プロトタイプ
eIntelVvpCoreErrors intel_vvp_core_set_img_info_cositing (void *instance, uint8_t cositing);
説明

新しいコサイティングをインスタンスのIMG_INFO_COSITINGレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。

引数

インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター

コサイティング – 新しいコサイティング

戻り値

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