dcrawによるSD14の画像の現像について
nrt
29 Mar 03:19

はじめまして。
SD14のタイミングでFoveonに興味を持ちまして、よくフォビオン掲示板を読ませて頂いています。

maroさんのカラー版の市松模様について、赤とマジェンタの分離が悪い件で、センサーと現像ソフトのどちらに原因があるのか話題になっていたと思います。
これをきっかけに、dcraw を使ってみたところ、いろいろ分かりましたので、ご報告いたします。
(dcraw についてはこちら → http://cybercom.net/~dcoffin/dcraw/ )
以下、画像の利用についてはmaroさんから承諾を頂きました。

まず、生データ(dcraw -d で抽出)を見てみると、白黒は綺麗に解像していますが、カラー版は、赤とマジェンタの組み合わせで、すでに解像していないようです。
http://www.geocities.jp/nxfield/sd14/raw.html
# よく見ると、なぜか一ヶ所だけ解像しているようです。よく頑張った! (赤とマジェンタの左上隅の一個下です。)

ここから dcraw の現像の話になります。
まず、そのままではうまく動作しませんでした。動作に必須だった変更点は次の2点です。

(1) ハフマン符号化されたコードのパディングの有無
一行分が32ビットバウンダリで終わる場合に、SD10以前はパディングがあるようですが、SD14には無いようです。(よく分かりませんが、ファイルのどこかに区別できる条件があるのかもしれません)

(2) foveon_avg() 内のゼロ除算
range[1] - range[0] == 1 の場合があります。(正式な直し方は分かりませんが、ひとまずゼロ除算を避けるようにしました)

さらに、以下のような気になる点がありましたので、少し修正して、いくらか改善してみました。

(3) 最初、気がついたのは、棚の金属が強く反射している部分にマジェンタや緑や青の偽色(?)が出ることでした。
http://www.geocities.jp/nxfield/sd14/false.html
maroさんのアップされたオリジナルの画像を見ると、私が指摘しているような部分で、うっすらと白く塗り潰されている部分があるようです。SPP3も対策しているのかと思います。

(4) 次に気がついたのは、画面のいたるところに見える、緑とマジェンタの斑模様です。当初、dcrawが悪いのかと思いましたが、後で気がついたのですが、ポラロイドx530の画像のノイズとよく似ていることから、これはFoveon特有のノイズなのかなと思っています。
(x530の記事、港の写真など → http://dc.watch.impress.co.jp/cda/review/2005/04/28/1476.html )

そう思って maroさんの白黒市松の画像を見ると、綺麗にノイズが取れて、市松の部分が見事な白黒になっています。これは SPP3 だから除去できるのか、それ以前の SPP でも除去できるのか知りたいところです。
(さらにSD14とSD10のノイズの比較状況も知りたいところです。)

一方、dcrawでは周辺の画素の色のスムージングでノイズを取り除いているようです。その影響で、色が少し滲(にじ)んで見えます。それでもノイズを取り切れていません。。。

参考までに、以上4点の修正を加えた dcraw で現像した結果は次のようになります。
修正したソースのパッチも置いておきます。
http://www.geocities.jp/nxfield/sd14/result.html

以上、dcraw による SD14 の画像の現像の話でした。今後、いくつかの疑問が解決することと、あとは、IDKさんの dcx3 の改良に役立てば幸いです。
以上、何かご意見、ご指摘などございましたらよろしくお願いします。