RAFファイルのRawデータを読み取ってみる その3 CFA Header領域

since:2014-7-21
last update:2014-12-20
前のページへ   次のページへ




3.3 CFA Header領域

ファイルヘッダー領域で得た情報からCFA Headerをパースします。バイトオーダーはbig endianです。
サンプルでは、アドレス0x0003 75D0から0x0000 5630byte分がこの領域になります。
以下IDの名称はExiftoolでパースされるものについてはそれに従います。

最初の4byteはレコードの個数を表します。サンプルでは0x0000 000Aなので10個のレコードがあることになります。


このレコードの構造は以下の通りになります。
 2byte:ID
 2byte:レコードサイズ(N)
 Nbyteのデータ

ひとつめのレコードをパースしてみます。

最初の2byteは0x0100です。これはRaw Image Full Sizeを表すIDです。
次の2byteは0x0004です。これは以下に続くデータが4byteあることを意味しています。
よって0x0CD8 1400が実データになります。
ちなみにこれは高さ:3288(0x0CD8)、幅:5120(0x1400)を表しています。

これに従いすべてのレコードをパースします。

サンプルでのCFA Header領域のパース結果
ID名称概要
0x0100Raw Image Full Size0x0CD8 1400フォーマット上のRAW画像フルサイズ
高さ:3288(0x0CD8)、幅:5120(0x1400)
0x0110? Offset?0x000C 001C公称RAW画像サイズを切り出すための開始点?
0x0111? Raw Image Size?0x0CC0 1320公称RAW画像サイズ
高さ:3264(0x0CC0)、幅:4896(0x1320)
0x0112? Raw Image Size?0x1320 0CC0公称RAW画像サイズ WxH
0x0113? Raw Image Size?0x0CC0 1320公称RAW画像サイズ HxW
0x0130Fuji Layout0x0C0C 0C0CCFAのサイズ?12byte x 12byte?
0x0131CFA Pattern?0x01 0x00 0x02.......CFAパターン。36(0x24)byte長
X-Trans CMOS 固有の6x6サイズ
0x0141?0x000C 0024
0x9650?0xFFB8 0064
0xC000RAFData0x00 0x00 0x4D 0x01
0x58 0x13 0x00 0x00
0xD8 0x0C 0x00 0x00 ....
0x55C0バイト長データ
以下に実効RAW画像サイズ情報が含まれています。
4- 7byte目:RawImageValidWidth:4952 (0x1358)
8-11byte目:RawImageValidHeight:3288 (0x0CD8)
(2014/12/20追記)
なおX-Pro1のRAFは格納位置が4byte異なっており、以下のようになっています。
0-3byte目:RawImageValidWidth
4-7byte目:RawImageValidHeight

次ページ:CFA領域

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