総合TOP

出力フォーマットについて

カメラの出力フォーマットは様々でアプリケーションに要求される精度・フレームレート・負荷に応じて決定する必要があります。
カメラに使用されているセンサー、ADC、ISPの性能から選択可能な出力フォーマットが決まります。


また、出力フォーマットに合わせて画像を保存する拡張子を選択する事が重要です。12bitの画像を8bit拡張子で保存したり、jpeg等の非可逆圧縮方式の拡張子で保存した場合、情報が失われる事になります。


一般的なPCモニター等では8bitで描画されているため、肉眼で画像を確認する程度であれば8bitでも問題がないと言う事も出来ます。
ただし、画像に量子化ノイズが出て肉眼でも分かる差が生まれる可能性があるのでアプリケーションに応じて選択する必要があります。


出力フォーマットの分類

mono8 mono12など
モノクロ画像の場合、全てのピクセルが白黒なので元データのまま活用する事が可能です。
輝度値を画像処理に使用した場合にはmono出力を使用する事になります。
測定した光の波長が分かっている場合には、カラーフィルタと組み合わせてモノクロ画像を使用するケースもあります。

Bayer8、Bayer12など
カラー素子の場合、下の画像のようにGRGRGR……BGBGBG……というように各ピクセルは単色であるため、隣り合う異なる色のピクセルの出力と合わせて補完を行う必要があります。

Bayer出力の場合、内部でこの処理を行わないためデータ量はそのままで特に処理負荷もなくデータの出力を行う事が可能です。
高速カメラ等の場合はこの出力形式が推奨されます。

RGB8、RGB12など
上記の補完処理を行った出力です。各ピクセルがR、G、Bそれぞれの値を持つため、出力データ量が3倍になります。
また内部で補完処理を行うためデータ量や処理負荷の影響でフレームレートが落ちる場合があります。

補足事項

選択可能な出力フォーマットに「mono12」、「mono12packed」というように似た名前のフォーマットが2つ並んでいる場合があります。

どちらも画像データとしては全く変わりませんが、「packed」が付いている出力フォーマットの方がデータを圧縮して効率よくデータ転送を行うためフレームレートが上がるメリットがあります。
ただしデータを受信する機器が受け取ったデータを処理する際の手間が増え負荷が上がる可能性がある事に注意が必要です。

データ圧縮の原理

出力フォーマットの最後に「packed」という文字が付いている場合があります。
8bitの場合、1ピクセルの画像データは1byte=8bitにちょうどぴったり格納されます。
しかし12bitの場合、通常は1ピクセルのデータは2byteに格納されます。2byte=16bitなので4bitは使用されません。これは帯域幅のロスにつながります。
「packed」の場合、12bitの2ピクセル分のデータ合計24bitを合わせて3bitに入れる事で効率良くデータ転送を行うことが可能です。