GenICam

ソフトウェア標準規格

GenICam(Generic Interface for Cameras)は全てのデバイス(主にカメラ)に対して、インターフェースや実装されている機能に関わらず、汎用的なプログラミングインターフェースを提供します。その結果、アプリケーションプログラミングインターフェース(API)は、インターフェースに関係なく同一になります。

GenICam規格は様々なモジュールで構成されています。

  • SFNC(Standard Feature Naming Convention):
    GenICamの中でも最も参照されるモジュールです。機能名、レジスタの型、使い方を規定することで、異なるベンダのカメラであっても、同じ機能は同じ機能名で制御できるようになります。これらの機能は、アプリケーションによって、通常はツリー状に構成され、あるいは、直接制御されます。これに関連して、PFNC(Pixel Format Naming Convention)があり、これは、画素の構成の名称とそのデータ構成を規定します。
  • GenApi(Generic Application Programming Interface):
    デバイス内の自己記述XMLファイルを介して汎用APIを提供するために使用されるメカニズムを定義します。また、GenICamパッケージの一部として提供されるGenICamのリファレンスインプリメンテーションの実行コードの名称であります。XMLファイルの形式を定義するスキーマもGenApiの一部です。
  • GenTL(Generic Transport Layer):
    トランスポートレイヤプログラミングインターフェースを規定します。(フレームグラバの有無に関係なく)トランスポートレイヤに依らない標準のインターフェースを提供する低レベルのAPIです。カメラの認識、カメラレジスタのアクセス、画像データの転送、非同期イベントの通知を可能にします。GenTLには、独自のSFNCがあります。
  • GenCP(Generic Control Protocol):
    デバイス制御のパケット構造を規定する低レベルの規格です。標準インターフェースとして使用されるため、新しい規格ごとに制御プロトコルを再開発する必要がありません。
  • GenDC(Generic Data Cotainer):
    デバイスからホストへ転送するデータ形式を規定する低レベルの規格です。標準インターフェースとして使用されるため、新しいデータフォーマットの追加の際にもインターフェース規格ごとに行うという二重の作業が不要となります。

    GenICam委員会メンバーは、カメラの記述ファイルを解析するパーサーサンプルコードを維持管理しています。実行コードはC++で書かれており、無償で使用することができます。一連のOSやコンパイラで幅広く相互利用可能です。利用可能なSDKの多くは、このサンプルコードを利用して実装されているため、高い相互運用性が保証されています。