GenICamネタも四回目です、初回でGenICamの主な構成要素として
構成要素 | 説明 | 最新バージョン |
---|---|---|
GenApi | カメラの各種設定に関する規定 | 3.0 |
GenTL | カメラの画像データ転送(TransportLayer)の規定 | 1.5 |
SFNC | カメラの機能名の標準化規定 Standard Feature Naming Convention |
2.2 |
この3つを挙げており、ざっとですがGenApiとSFNCについて見てきました。
次はGenTLを調べるつもりだったのですが、色々と規格などを調べていくうちに、
PFNCという規格も重要そうなのが判ったので、先にそちらを見てみましょう。
PFNCとは
Pixel Format Naming Convention の略で、
カメラの画像データの名称やフォーマット
(データの並び順など)に関する規定です、最新バージョンは2.0です。
いつものダウンロードページに規格書が有ります、下記リンク参照。
http://www.emva.org/wp-content/uploads/GenICam_PFNC_2_0.pdf
この7ページ目に下記の記述が有り、PFNCはSFNCを補うもので下位文書だ、
みたいなことが書いてあります。(その後ろの部分は、良く判りませんでした)
前回のSFNCの規格書の101ページ目には、下記の記述が有ります。
画像データのフォーマットを定義しているのが”PixelFormat" というfeatureで有る、
SFNCの規格書では一部しか載せていないので、全ての完全なリストが必要ならば、
PFNCの規格書を参照、また現時点で規格に従って定義済みのPixelFormatの一覧は、
"GenICam Pixel Format Values” というドキュメント参照。
で、最後のドキュメントもダウンロードページに有りました、下記リンク参照。
http://www.emva.org/wp-content/uploads/GenICamPixelFormatValues.pdf
内容はこんな感じです、ようやく見覚えの有る"PixelFormatName"が出てきましたね、
カメラをつないだ時に下記左端の名称が出てきて、選択していたような気がします。
ひとつ気になるのは、Definitionに"PFNC"と"GigE Vision 2.0"の2つが出てくること、
全てPFNCで規定している訳じゃ無いのか?、 また新たな謎が?
ということで、何かややこしいことになってんなあ、ということは判りました。
普通にカメラを使う分には、上記の一覧表だけで充分なのかもしれませんが、
もうちょっとだけ、実際のNamingの中身を見てみましょう。
Pixel Naming Convention
PFNC規格の12ページ、下図がNamingに関するルールです。
PixelFormatは5つのブロックに分かれていますが、後ろ3つはオプションなので、
実際よく使うのは、前半の"Components and Location"と"# bits"だけになります。
以下は、代表的なPixelFormatの例(私が知っている範囲で)
- Mono8 モノクロデータ、8bit
- Mono10p モノクロデータ、10bit、pは[packing]で、データを隙間無く詰める
- RGB10p RGBデータ、10bit、pは同上
- BayerRG12 Bayerデータ、12bit
先ほどの一覧表には、もっとややこしそうなのが出てきますね。
YUV411_8_UYYVYY
最初のYUVは画像データの種類(MonoやRGB同等)、411はデータの構成を示し、
UとVは4個に1個ずつ存在することを示します、ここまでがComponents and Location。
Components and Locationが数字で終わった場合は、次との区切りにを入れます、
8の8は8bit、再び区切りで_が入り、UYYVYYはInterface-specific という項目で、
実際のデータが、この順番に並んで転送されることを示します。
RGB565p
画像データはRGBですが、次の565は各データのbit長を示し、Red:5bit, Green:6bit
Blue:5bit と各色で異なることを示します、pは前出のpackingですね。
もちろんPixelFormatを全部知っておく必要は無いですし、例えば新しいカメラで、
知らなかったPixelFormatが出てきたら、上記の一覧表や規格書で調べれば良い、
ということを、判っておけば良いと思います。(まずは)
まとめ
- PFNCはSFNCの下位文書で、画像データの名称やフォーマットを規定する。
- PixelFormat(名称)で、画像データの中身その他の情報が判る。
- PFNC以外に、GigE Vision の規格で定義されたPixel Formatも有る。
最後が少し厄介ですね、GenICamだけでもややこしいのに。
色々規格を決めて標準化していくのは良いのですが、規格を使う側よりも、
決める側の都合が優先になっているような気もします。
次回はGenICamの構成要素の残り、GenTLについて見てみたいと思います。