このドキュメントでは実際にCR2形式からRawデータを取り出す手順を具体例を通じて記述しています。
この具体例は EOS Kiss X5 で撮影した以下のサンプルを用いて行ないます。
IMG_2026.zip (72,308Kbyte):これにはCR2から切り出したLossless JPEGデータなども含まれます。
MD5値:1962284f1c542111c71ba69b3231a948 です。ファイルサイズが大きいので注意してください
圧縮ファイルの中身は以下の通りです。
IMG_2026.CR2 今回のドキュメントの対象となるCR2ファイル
IMG_2026_IFD3_JPEG.jpg IMG_2026.CR2からIFD3に含まれるLossless JPEG部分を切り出したファイル
IMG_2026.dng IMG_2026.CR2を無圧縮DNG変換したファイル。
IMG_2026_RAW_Data_from_DNG.bin IMG_2026.dngからRAWデータを切り出したファイル
ちなみに利用する画像のイメージは以下の通りです。(以下のイメージは縮小しています。)
太陽
Vixen ED100Sf + ND400+ND16(49mm) + EOS Kiss X5 ISO100 1/4000sec
解説にあたっては、TIFFの基本的構造はかなり端折って説明しますので、その点は事前に押さえておいてください。
なお他の機種で同様に取得できるかは未知数ですので、その点はご留意ください。
またmRAWやsRAWの説明は含まれていません。
CR2形式の構造は基本的にTIFF形式です。
ファイルヘッダー部と4つのIFDから構成され、それらにEXIFや実画像情報がポイントされています。
概要は以下の表の通りです。
説明 | |
---|---|
File Header | Tiff File Headerおよびマジックナンバーが格納されている。 |
IFD0 | JPEG画像データ(フルサイズ)に関する情報(EXIF情報へのポインタ含)およびその画像データへのポインタが格納されている。 |
IFD1 | サムネイル画像(JPEG画像)へのポインタが格納されている。 |
IFD2 | 非圧縮の縮小画像情報およびそれへのポインタが格納されている。 |
IFD3 | RAWデータ情報およびそれへのポインタが格納されている。 |
CR2形式の最初の16バイトがファイルヘッダになります。
図1.ファイルヘッダのダンプ表示(0x0000 0000 から 0x0000 000F まで)
最初の8バイトはTIFF形式と互換です。
最初の2バイト(アドレス0x0000 0000-0x0000 0001)はバイトオーダーを示しています。
今回のサンプルの値は 0x49 0x49 ですので、リトルエンディアンを示しています。
次の2バイト(アドレス0x0000 0002-0x0000 0003)はTIFFのマジックナンバーでSHORT型で示されます。 値は0x002A (42)です。
次の4バイト(アドレス0x0000 0004-0x0000 0007)は最初のIFDへのアドレスです。LONG型で示され、値は0x0000 0010 です。
ここまでがTIFFのファイルヘッダになります。ここからの8バイトはCR2独自のヘッダ部になります。
次の2バイト(アドレス0x0000 0008-0x0000 0009)はCanon Raw形式のマジックナンバーになります。
値は0x43 と 0x52 で文字列にすると"CR"です。
次の1バイト(アドレス0x0000 000A)はメジャーバージョンです。値は0x02です。
次の1バイト(アドレス0x0000 000B)はマイナーバージョンです。サンプルでは値は0x00です。
次の4バイト(アドレス0x0000 000C-0x0000 000F)はIFD3へのアドレスです。IFD3はRAWデータが格納されており、
TIFFの構造をパースせずともこのアドレスからRAWデータへアクセスが可能となっています。
サンプルでは 0x0000 B6A6 です。
次ページ:IFD0とExif IFD
前のページ
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
次のページ