引き続きGenICamネタの三回目、今回はSFNCについて。
Standard Features Naming Conventionの略ですね、
Featureは前回の例で挙げた"Gain"等、カメラの個々の機能だと考えて下さい。
最初に言っておくと(こんな仮面ライダーおったな)SFNCの中身は膨大です、
下記が最新版2.2の規格書ですが、なんと469ページも有ります。
http://www.emva.org/wp-content/uploads/GenICam_SFNC_2_2.pdf
ひとつ前の2.1が390ページだったので、バージョンひとつで約80ページ増加、
それだけ内容が広範囲に渡っているということですね。
では、ちょっとだけ中身を見ていきましょう。
SFNCの内容
前回説明したように、GenICam対応のカメラは自身の機能(Feature)の情報を
XMLファイルで持っていますが、個々のFeatureの名称などを統一するために
定められた規定がSFNCです、下記は規格書の目次から抜粋したもの。
Featureを22のグループに分けて、更にそのグループ毎の説明が有ります、
前回、例で挙げた"Gain"だとANALOG CONTROLに属し、こんな表になっています。
GenICam対応のカメラは、必ず"Name"で規定された名称を使う必要が有ります。
例えば、いわゆるAGC(AutoGainControl)機能だと"GainAutoBalance"ですね、
これを"AutoGainExec"とか、各メーカーで勝手な名前を使うのは駄目。
こうして統一した名称を使うことで、例えばA社向けに作った画像取込ソフトが、
もしB社のカメラに変わった場合でも、割と容易に再利用出来るわけです。
メーカー毎に色々な機能(Feature)が有り、かつ新機能も増えていく訳なので、
SFNCの規格も、年々内容が増えていったのでしょうね。
個々のFeatureの詳細
先ほどの表の各Feature毎に更に詳しい説明が有ります、Gainだと下記です。
- Name : Featureの名称
- Category : Featureのグループ分け、XML内にもCategoryの記述が有ります。
- Level : Featureの内容(機能)により、下記3つのいずれかを指定します。
- M: Mandatory 必須 このFeatureは必ずXMLに含める必要有り
- R: Recommended 推奨 含めることを推奨(必須では無いが)
- O: Optional オプション さほど重要では無いFeature
- Interface : データの種類 IFloat, IInteger,IString 等有ります
- Access : アクセスモード Read/Write, Read Only, Write Only 等
- Unit : 単位 uS, nS, mm, inch, Hz, dB, Bps 等(必要時のみ指定)
- Visibility : Featureの内容(機能)により、下記4つのいずれかを指定します。
Interfaceの種類については、前回のGenApiの規格書の2.3に詳細が有ります。
Visibility、上記説明だけだと判りにくいですが、ユーザーのレベルに合わせて
参照出来るFeatureを切替出来るようにするためのものです。
GenICam対応のSDKでは画面上で変更出来ます、下記はJAISDKでの例
Beginnerを選択すると、VisibilityがBのfeatureだけが画面上に出てくるので、
初心者にも判りやすいだろう、という主旨ですが、私の経験上から言うと、
Beginnerでは足らないFeatureが多くて使えないよなあ、と正直思ってます。
そもそも、ユーザーのレベルを勝手に規格側で決め打ちするのも腹立つし、
Guruって名前も某真理教を思い出して...、あ、ちょっと脱線しました。
(最近の若い人は知らないだろうなあ、おっさん世代やてバレバレ)
まとめ
- カメラの各機能をFeatureといい、詳細はSFNCで規定されている。
- 各メーカーは、SFNCに従ってFeatureの内容をXMLに記述する。
- ユーザーのレベルに合わせて使用出来るFeatureを切り替える機能が有る。
SFNCは外国語の辞書みたいなもので、各メーカーとも同じ辞書を使って、
個々の書類(XML)を作っていく、その書類の書式を定めてるのがGenApi
というイメージですかね、どんどん新単語が増えるので辞書も厚くなっていきます。
辞書同様でSFNCを丸暗記する必要も無いし、知らないFeature名が出てきた等、
必要時に規格書を参照する程度で充分かなと思います。
ちなみにBaslerは自社の各カメラが対応しているFeatureの一覧表を公開しています。
http://s.baslerweb.com/media/documents/BAS1603_Features_Check_List_e.pdf
機種毎に、どんな機能(Feature)に対応している/いないが一覧出来て便利です。
中にはSFNCに無い名称も有りますが、実はSFNCで決めた以外にも各メーカー独自に
"Category"を定義して、規格に無い(独自の)Featureを定義出来るもよう。
(この件は、別途もう少し調べてみましょう)
次回はSFNCと似ていますが、PFNC(Pixel Format Naming Convention)について。