NEF(Nikon RAW) からセンサー RAW 値を取り出す
漢なら Nikon NEF ファイルから Sensor RAW 値を取り出したいですよね!
やりましょう!
手っ取り早く取得したいなら dcraw を使いましょう.
https://www.cybercom.net/~dcoffin/dcraw/
情報源
- Nikon Electronic File (NEF) file format description http://lclevy.free.fr/nef/
- dcraw
- Astrophotography Part 2 : The Linearization Curve http://diyastro.blogspot.jp/2014/06/astrophotography-part-2-linearization.html
- Quick Way to Decode a Huffman Table http://diyastro.blogspot.jp/2014/06/quick-way-to-decode-huffman-table.html
- Metadata reference tables http://www.exiv2.org/tags-nikon.html
EXIF
TIFF IFD と同じなので, TIFF IFD と同じようにパースします.
Maker note
Maker note はメーカー定義の情報が入っています. NEF の場合はこれも TIFF IFD フォーマットになっているので, TIFF のパーサーを使いまわすことができます.
センサー値の復元
ダイナミックレンジを稼ぐためなのか, Nikon の場合 RAW 値(A/D 値)はリニアになっていないのでつらい.
リニアに復元するための curve が NEF の maker note に含まれていますのでこれを使う必要があります.
Nikon の RAW には white balance preconditioning も入っていますが, これも関係していそうですね.
Nikon RAW の white balance pre-conditioning について
https://syoyo.wordpress.com/2017/02/02/nikon-raw-%E3%81%AE-white-balance-pre-conditioning-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
圧縮について
NEF では, 12bit, 14bit, lossy 圧縮, 非圧縮があります.
D810 などのハイエンド系では uncompressed をサポートしていますが, D5100 など入門機用は uncompressed には対応していません.
white-balance 暗号化
昔の NEF では, white balance 値には暗号化がかかっていました.
Nikon's photo encryption reported broken
https://www.cnet.com/news/nikons-photo-encryption-reported-broken/
dcraw にそのデコードのコードがあります.
近年のカメラ(D5100, D810 で確認. Nikon maker format 2 以降)では, maker note tag の 0xc
に white balance が R, B で書き込まれています(B = 1.0 を基準として R, B が正規化されている)ので, 暗号化された whilte balance をデコードする必要はなくなりました.
手順まとめ
- TIFF IFD をパース
- EXIF をパース
- Maker note をパースし, 圧縮タイプと linearization table を取得
- 圧縮タイプに応じてハフマン符号化された RAW データをデコードし, linearization table でリニア化
- predictor 復元 + lossless デコード的なのをちょっぴり
ややこしいですね!
コード
tinydngloader nef
branch にあります.
dcraw, 1 億年かけて熟成した秘伝のソースみたいな感じでつらいのでいろいろ書きなおしていますが, ハフマン符号化のテーブル値が dcraw 以外に見当たらないので, dcraw から取得しています
そのため dcraw 部分はとりあえず GPL ライセンスにしています. RESTRICTED でない部分の code fragment だけなら違うライセンスでいけるかも? dcraw 作者にコンタクトを検討.
TODO
- ハフマン符号化テーブルの情報源を突き止める.
- ディープラーニングで RAW 画像パーサーをつくってほしい.
- 優秀な RAW 画像処理若人が人類史上最速で育成され, 優秀な RAW 画像若人が日々切磋琢磨し RAW 画像処理を極めるスキームを確立したい.
Author And Source
この問題について(NEF(Nikon RAW) からセンサー RAW 値を取り出す), 我々は、より多くの情報をここで見つけました https://qiita.com/syoyo/items/6344ebea59bd97657819著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .