★冷却CMOSカメラのノイズ解析をしていて・・・先日来、MATLABを用いた冷却CMOSカメラのノイズ解析遊びを進めていたのですが・・・
ここで、「デジタル一眼のノイズ解析もしてみたいなぁ・・・」と思い立ち、少し解析作業を中断して『浮気』してみることに。
以前のテストでは、
上記の記事のように、D700・D300・D7000・D90・D5000・D40・D3100について調べて見たのですが、今回は対象機種を広げ、
D3・D810A・D810・D610・D300・D7000・D90・D70S・D5000・D3300・D3100の11機種について調べて見ましょうかねぇ。
それも、全機種について、ISO1600・30秒露光時のダークファイル32コマとバイアスファイル32コマについて、その『時間ノイズ』と『空間ノイズ』の傾向を調査するという、ヒマ・・・もとい、壮大なプロジェクトです。
ふはははは。
アマチュア天文界隈広しといえども、さすがにこれだけのボリュームの基礎テストを敢行した猛者は居るまい。
★作業①:センサー仕様調べ
冷却CMOSカメラ用に書いたMATLABの解析コードをデジタル一眼レフ用に書き直すにあたり、まず最初に行うべきは各機種のセンサー仕様の調査です。
冷却CMOSと異なり、ベイヤー構造の型や実ピクセル数(有効ピクセル数とは異なる)は明記されていないことが多いからです。
まず、通常の風景などをRAWで撮影した画像をステライメージにベイヤー構造のまま読み込んで、XYそれぞれのピクセル数を調べます。
次に、色々なタイプのベイヤー構造の型を用いて、どの型の時に正常な色を再現するか調べます。
その結果、各カメラのセンサー仕様は下記の通りだと判明しました。
結構手間だったのと、今後の自分用メモとして重要なので、まとめておきましょう。
本当は、プログラム上で機種名を選択するとその仕様が自動的にロードされるように書けば良いのですが、先を急ぎたいので、
ベタ打ちのコメントブロックを作って、必要に応じてコメントを外す方針で行きます。
ははは、人様にはお見せできねぇな、この汚いコード(笑)
★作業②NEFからFITSへの変換 DELPHIで各種解析ごっこをしていた時から、データの形式はFITSに慣れているので、ニコンのカメラで撮影したNEFファイル(ニコン版RAW形式)は全てステライメージでベイヤー構造のままFITSに変換してから解析に入りました。
ちなみに、ステライメージでNEFファイルをFITSファイルに一括変換するウラ技は・・・・
①1コマだけNEFファイルを読み込む。
②メインメニューから「設定」→「ワークフロー」を実行
③ワークフローウインドウで「記録」実行
④メインメニューから「階調」→「レベル調整」実行
⑤レベル調整ウインドウで何もせずに「記録」実行
これで、RAWデータをベイヤー構造のまま何もいじくらずにFITSファイルに変換するワークフローが組めます。
あとは、対象となる画像を一気に読み込んで、保存先に一括保存するだけです。
これで、以前作った冷却CMOSカメラ解析用のMATLABコードが(ほとんど変更無く)走ります。
ただし、唯一のCCD機であるD70Sだけは、長辺の実ピクセル数がどうにも理解に苦しむ奇数個なので、演算時に少しゴニョゴニョしています。
※ベイヤー構造は、理論的には縦横ともに偶数個であるのが普通なんだけど・・・ねぇ。
★作業③ダークファイルの撮影
今回は、常温(14~16℃)下において、下記の統一データでダークファイルを取得しました
○ISO:1600
○WB:デイライト
○テイスト:ニュートラル(D70Sだけ「普通」)
○ADL:弱め
○記録bit数:各機種の最大bit数
○露光:30秒
○ノイズ処理:高感度・長秒時ともにOFF
○撮影枚数:100コマ連写
★作業④ダークファイルの解析
実際の解析では、下記の演算をMATLABで行いました。
①ダークFITSファイル32コマのロード
②全ピクセル情報を32層の三次元配列に格納
③各ピクセルについて32コマの平均輝度・輝度中央値・輝度標準偏差を演算
④必要に応じて異常ピクセルを弁別する処理
⑤G1・G2・R・Bの各チャンネル毎に集計処理
⑥「輝度中央値」-「輝度標準偏差」のスキャッタプロット(散布図)描画
⑦必要に応じてヒストグラムや時系列折れ線グラフなどを演算
⑧ホットピクセル・『酩酊ピクセル』・『双子ピクセル』などの詳細を観察
これはもう、今までのようにDELPHIとEXCELでやってたのでは、何年かかるか分かりません。
とにかくMATLABはコンパイラではなくて、インタプリタであることがお気に入りポイントでして、プログラムコードを走らせてしまった後からでも変数を指定して好きなグラフを描画したり、コマンドライン上からコードを直接打って追加処理や修正演算ができるのがスゴいところです。また、個人的には任意のブロックを「一気にコメント文に変え」たり「一気に実行文にもどし」たりできる点もありがたいですね。また、必要に応じてEXCEL用のテーブルを「いきなりXLSファイルで」書き出したり、行列変数を「表計算ソフト風」に表示させたりできるのも素敵です。
★邪道流・解析結果の見方
あくまで自己流なのですが、今回の解析で得られる「珍妙なグラフ」の見方は、およそ下記の通りです。
ま、所詮はスキャッタプロットなので、ザックリとした傾向をつかみ取ることしかできませんが、実はあぷらなーとは学生時代「スキャッタプロットの解釈遊びが1番好き」だったので、もう少しお付き合いください。ま、乱暴な言い方をすれば、これは
カメラの特徴を表した指紋の様なものです。
※イレギュラーな値を弾いて真面目に統計処理して得られる定量的な分析は、後日のお楽しみということで・・・。
では、結果発表いきますよ-
ででん!!
★D5000
ある意味現在の『主力機』。とにかく安い(実売で1万5千円程度)くせに良く写るので4台も保有している大好きなカメラ。
特徴は「変なクセが全く無いこと」。今回は、このD5000を基準として、他のカメラを評価してみます。
★D90
正直、
D5000と全く見分けがつかない結果。発売時期も近く、センサーのピクセル数やベイヤー構造も全く同じなので、同一のセンサーなのかも知れない。
★D300
かつてのAPS-Cフラッグシップモデルだが、天体の実写ではノイズがやや目立つ機種。解析グラフでは宇宙線ヒットイベントの分布幅が広く、全体的にグラフの右(高輝度)になってもピクセル数・揺らぎの分布変動が少ない。要するに、ダークノイズのヒストグラムがややフラットで、ノイズの大きなピクセルが多いということ。また標準偏差の値や輝度中央値自体が全体的に高めだが、(12bitのD5000と異なり)14bit機(輝度・標準偏差ともに高めに出る)であることを考慮に入れると、評価が難しい。
★D3
かつてのフルサイズデジタル一眼のフラッグシップモデル。絶対的なノイズ量としては、D300と傾向が似ているが細かく見ると差異があり、
分布の左右真ん中に下に突き出る『こぶ』状の群や、右上にヒョロヒョロと伸びた群、あるいは高輝度エリアでサチったように垂れた群などはD300には見られない構造。まだハッキリとは言えないけれど、輝度がふらつく群の中には、同一色の最近某隣接ピクセルと輝度推移が完全同期している現象が多数見つかった。天文界隈では、微光星が消えたり盛大な偽色が出たり等、あまり評判がよろしくなかった機種なので、なんらかの特殊なノイズ処理がRAW段階でなされているのかもしれない。
★D7000
D5000と並び、4台保有している大好きな機種。ZWOのASI071MCと同じセンサーであることや、星座撮影でも偽色の発生が軽微なため、もしも天文用で中古ニコン機を選ぶなら自信を持ってオススメできる機種。
D3で見られた下向きの『こぶ』状の群が上にも突きだした印象。ただし、宇宙線ヒット群の幅は比較的狭いことから比較的低輝度のピクセルが多いことが分かる。14bit機であることを考慮に入れるとD5000と比べて輝度揺らぎの相対量は小さいと言える。
★D610
宇宙線ヒットの分布幅を見ても明らかなように、とにかくバックグラウンドが暗い。また
D7000と似たような分布形状に見えながら、その輝度揺らぎの絶対量が圧倒的に小さい。要するに、
ホットピクセルを除くと時間ノイズが非常に少ないのが特徴と言える。ある意味、バックグラウンドの「黒さ」「なめらかさ」は特筆すべき結果が得られることが予想される解析結果。まあ、実際は盛大なアンプノイズに悩まされるという弱点はあるのだけれど・・・。
★D3100
リモートコードが使えなかったD40やD3000と異なり、リモートコード端子が実装されたニコン初のエントリーモデル。比較的新しい機種なので期待していたが、
宇宙線ヒットの群がやや高輝度側によっていること、輝度標準偏差のピクセル間差異が大きく(分布が太く)、またホットピクセルと思われる高輝度群が『本体から切り離されている』のが特徴。時間ノイズ・空間ノイズともに安定せず、実際の画像処理には悪戦苦闘しそうなことが予想される。
★D3300
先述のD3100の系統なので、似たようなノイズ特性かと思いきや、
誰が見てもその異様さが際立つ結果。一見、高輝度部分のヒゲが突出したように見えるが、輝度中央値を読み取れば明らかなように、実は、
D7000に見られる『下向きのコブ』から左側の群がバッサリと切り落とされた構造。宇宙線ヒット群の幅が極めて狭いことや、分布が極端に非対称なことから、オフセットでは全く説明できない。
★D70S
今回のテスト機の中で唯一のCCD機。D3300を除くCMOS機が『三角形』あるいは『扇形』の分布だとすると、D70Sは『長方形』。しかも宇宙線ヒットイベントが(その後、詳細に解析してみたが)ほぼ皆無。根本的に何かが異なっていることは明らか。時間ノイズが多いとは思えないが、とにかく空間ノイズが盛大に出ることが予想される。
★D810とD810A
さて、今回のハイライトは、この2機種の比較です。これは興味持たれている方、多いのでは??
では、行きますよ-。
ででん!!
上がD810で下がD810Aです。 <共通特性>
①とにかく、ダークのバックグラウンド(低輝度部)が無茶苦茶に『明るい』!!
②でも、バックグラウンドの揺らぎ量は少ない。
③傾向としては、単なるオフセットというよりはD3300に見られるような低輝度部のカットオフに近い。
④宇宙線ヒットイベント分布幅が非常に狭い。つまりヒストグラムが鋭い。
<両者の差異>
①D810AにはD810に見られる高輝度エリアに伸びたヒゲが無い。つまりホットピクセルが少ない。
②D810AのRチャンネルにおいては、ホットピクセルがほぼ皆無。
③D810AのRチャンネルだけ、輝度揺らぎが異常に少ない。
極端な言い方をすれば、特別にノイズの少ないセンサーをセレクトした上で、赤い星雲がノイズ無く滑らかに写るようにチューニングを施した『特別仕様機』というところか・・・・。これはもう、別なカメラと言うしか無いですなぁ。いや、たしかに別モデルなんですが、IRカットフィルタ周りの差異だけではなく、根本的に・・・。
「無印とは違うのだよ、無印とはッ!!」
★というわけで
のべ66億3千万ピクセルのデータを解析して、ピクセル毎にフレーム間の揺らぎ(時間ノイズ)を測定するという無謀なチャレンジ、第一幕、これにて終了。
この他に類を見ない(?)ノイズ解析遊び、いかがでしたか?
この新しいノイズ解析図を見ただけで、機種名を当てられるようになれば、あなたも『ノイズマスター』!!
★★★お約束★★★
①天文クラスタ住人なのに、どうしてキヤノンのデータが出てこないのだ?とご不満の方へ。
あぷらなーとは子供の頃から『敬虔なニコン信者』なので、浮気はしないのですよ。はっはっは。
※これだけノイズ特性がバラエティに富むなら、「ニコンは・・・」とひとくくりにDisる必要もなかろうかと・・・
②自前のMATLABコードによる解析のため、バグが潜んでいる可能性は否定できません。
③各機種のノイズ特性に対するコメントは、あくまでもあぷらなーと個人の『感想』です。
④そもそもノイズって何なの?
ISOとゲインの関係は?
ノイズとダイナミックレンジの関係は?
結局ゲインを上げるとノイズは増えるの?それとも減るの?
バイアスはどうなのだ。バイアスは?
冷却CMOSの解析の続報はどうなった?
実写!実写ではどうなのだ?
『酩酊ピクセル』って実在するの?
『双子ピクセル』ってなんなのよ?
いつになったら画像処理に踏み込むの?
『時間ノイズ』とランダムノイズは違うのか?
『空間ノイズ』と固定ノイズは違うのか?
ごめんなさい。
諸般の事情で本業が修羅場っているので、落ち着いたら記事にします。期待せず、のんびりとお待ちください。
⑤あぷらなーとはノイズに関しては『ど素人』です。誤った解釈が散見されたとしても見逃してくださいませ。
★今後の展開に期待を抱くためのチラ見せ
うひゃー、
D70S のホットピクセルって、たった16分間の間に輝度が5倍になっちゃうのかッ!!
とか、
ほう、
D810Aのバイアスノイズって、ピークが『二山』になってるのかッ!!
とか、
エエッ、
D3の揺らぎが大きなピクセルって、なんかみんな時間とともに輝度が増している上に、完全に値が同期してるくない??
とか、
とにかく、まあ、面白い『新発見』がザクザク出るわ出るわで、収集つかないんですよぉ。