RAFファイルのRawデータを読み取ってみる その5 Rawデータの取得

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




3.5 Rawデータの取得

 ここで、ここまで出てきた各種Raw画像データのサイズについて整理します。

画像サイズの整理
このドキュメントでの呼称説明サンプルでの値
公称RAW画像サイズカタログ上の画像サイズ4896x3264
実効RAW画像サイズ実際にデータが格納されているサイズ。
DNG変換時の実サイズ
4952x3288
フォーマット上の
RAW画像フルサイズ
フォーマット上でのRAWデータのサイズ5120x3288

実際にRAFファイル上で格納されているデータの大きさは「フォーマット上のRAW画像フルサイズ」になります。
ただし、X-M1のような色深度12bit機では2pixel分(各pixelを16bit長SHORT型で表現すると4バイト)のデータを3バイトにパックしています。X-E2は1pixel分(2バイト)のデータを2バイトで格納しています。
このあたりの圧縮の仕方はタグ0xF004や0xF005が関係してそうですが、いまのところ不明です。

実際に計算してみると
5120 x 3288 x 2 x 3 / 4 = 25,251,840byte
これはStripByteCountsの値と一致します。

それでは実際にデータを取得してみます。

RAWデータの先頭の6バイトの値は以下の通りです。
FF 00 10 FF E0 0F

これを2進数表現し、4bitづつ番号を振ります。

FF0010FFE00F
111111110000000000010000111111111110000000001111
01234567891011

この6バイトのデータを4pixel分8バイトに展開します。

0000 1111 1111 = 0x00FF
3  0  1

0001 0000 0000 = 0x0100
4  5  2

0000 1111 1111 = 0x00FF
9  6  7

0000 1111 1110 = 0x00FE
10  11  8

確認のため、実際に非圧縮DNG形式に変換したデータと照合してみます。


一致しています。
なお上記はX-E2のように圧縮していない形式の場合は不要です。

しかしこのままのデータ列はセンサーから取得したデータ以外の余剰データが含まれています。
この余剰データは0x0000 である場合がほとんどなのですが、まれに違う値が含まれている場合があります。
RStackerでは末尾の0x0000の並び量から、この余剰データ量を算出し、実効RAW画像サイズを処理するようにしています。


次ページ:CFAの処理

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