Re: dcrawによるSD14の画像の現像について
yos@tokyo
30 Mar 20:02

こちらもはじめまして。yosといいます。

nrtさんご指摘の(1)の部分に関しては、データセクションの最後に各rowに対応したエンコードデータ
のオフセットテーブルがあると公式資料に書いています。

よって、自分は下記のような方法でこの部分の修正を行っています。

1. RAWデータのセクションの長さを格納するためのグローバル変数の追加
 例)int rawdata_seclen;

2. 上記変数に代入:関数parse_foveon()内にrawデータのオフセット(data_offset)に代入している部分が
あるので、その直後に追加。
 例)rawdata_seclen = len;

3. 各rowをデコードする際、適切な読み込み開始位置をテーブルから読み、ファイルポインタを移動
下記の2行の記述を「for(row=0;row<height;row++){」のループ内の最初の位置に挿入する。
 例)fseek( ifp, data_offset - 24 + rawdata_seclen - 4*(height-row), SEEK_SET );
   fseek( ifp, data_offset + 4 + 2*1024 + 4* 1024 + get4(), SEEK_SET );

4. テーブル使用で読み出し位置の問題はなくなるので、下記の1行を消す。場所は上記のループ内。
 削除する部分)if (!bit && !fixed) get4();

dcrawがSD14への未対応の件、dpreviewでも話題になっていましたが、指摘していいものかどうかと迷っていま
した。まずは、DaveCoffin氏にメールを送って、とか...。ただ、ソースの中にFOVEONに関する部分はrestricted
となっており、わざと修正していない線もあるのかと思います。公式の資料に書かれているテーブルの存在を無視
するとは思えないからです。

自分は一応SD14ユーザになったばかりで、センサの吐き出すホントのRAWの情報が知りたくて、また、いつかは
オリジナルの現像ソフトも作れたら、と思って、dcrawにたどり着きました。

長文失礼しました。これを機によろしくお願い致します、nrtさん & 皆様。m(_ _)m