CR2ファイルのRawデータを読み取ってみる その4 MakerNoteとSensorInfo

since:2014-5-18
last update:2014-8-31
前のページへ   次のページへ







3.5 MakerNoteとSensorInfo

JPEG Anlyzer PlusでパースしたMakerNote部分を以下に示します。


MakerNoteで必要なのはセンサー情報(SensorInfo)になります。これはTAG 0x00E0に格納されていますので これを取得します。
具体的には0x0000 1526から0x22バイトになり、その値は下図の反転部分になります。



この部分は「Understanding What is stored in a Canon RAW .CR2 file, How and Why」によると 17個のSHORT型の値からなる構造体で以下のように定義されます。

SensorInfo
Offset(byte)name備考
0x02sensorWidthセンサーの幅
0x04sensorHeightセンサーの高さ
0x0AsensorLeftBorder公称実効サイズとなる最も左の列
0x0CsensorTopBorder公称実効サイズとなる最も上の行
0x0EsensorRightBorder公称実効サイズとなる最も右の列
0x10sensorBottomBorder公称実効サイズとなる最も下の行
0x12blackMaskLeftBorderKiss X5では値無し
0x14blackMaskTopBorderKiss X5では値無し
0x16blackMaskRightBorderKiss X5では値無し
0x18blackMaskBottomBorderKiss X5では値無し

 サンプルでは、sensorWidthは0x14E0、sensorHeightは0x0DBCになります。  よってセンサーサイズは5344x3516となります。

 sensorLeftBorderは0x0098、sensorRightBorderは0x14D7になりますので、有効画像幅は0x1440=5184pxとなります。
 sensorTopBorderは0x0038、sensorBottomBorderは0x0DB7になりますので、有効画像高は0xD80=3456pxとなります。
KISS X5 の仕様で明示されているRAWの記録画素サイズ(5184x3456)と同じになります。

 なお実際に有効な受光範囲は上記の公称実効サイズより広く、例えばDNG Converter等でDNGに変換すると、 ActiveAreaとして5202x3466が有効サイズとして取得できます。
 しかし今のところCR2形式の中からこれらの実際の有効サイズを取得する場所を把握できていません。

 またJPEG Analyzer Plusのパース情報には表示されませんが、これ以降もMakerNote情報は続いています。
 Rawデータの取得には必要ありませんが、現像時に役に立つと思われる、例えばカラーバランス情報(TAG 0x4001)等が格納されています。


次ページ:IFD1とIFD2

前のページ  [1] [2] [3] [4] [5] [6] [7] [8] [9]  次のページ