今回はASI294MC Proのバイアスフレームについて色々検証してみました。結構面白い結果が出たのでまとめておきます。
昨日の昼間、めずらしくものすごい快晴。これはと思い、早速夜からカモメ星雲を撮影しようと準備をして、やっと撮影を始めたらわずか数枚で雲がもくもく。こんな日はむしゃくしゃするので、諦めてASI294MC Proの評価の続きです。
さて、大きな目的としては、前回の課題の一つダークノイズがどれくらい撮影に影響があるかですが、今回はその前々段階くらいにあたる、リードノイズのいろいろなテストです。実はあぷらなーとさんの解析に触発され、自分でももう少し泥臭い検証をしてみたくなりました。
あぷらなーとさんが自作ツールでバイアスフレームを解析し、見事メーカーが公表しているリードノイズと値が一致しました。私も前回の記事でSharpCapのSensor Analysis機能を使うことで、メーカー値と同じ値を確認したのですが、もう少し自由に測定できないか試したくなりました。それでも独自ツールを作るのは大変なので、今回はPixInsightの「ImageInspection」の「Statistics」を使いってリードノイズを求めたいと思います。
まず、SharpCapを使い、ASI294MC Proのバイアスフレームを撮影します。条件は
Statisticsツールでは「14bit [0,16383]」を選び「Normalized」にチェックを入れます。その時のavgDevの値を読みます。この場合、2.1でした。単位はADUなので、eに変換するためにコンバージョンファクターを使います。前回の測定から
ゲイン121のところ見ると、0.88とあります。先ほどの2.1 [ADU]にこの0.88 [e/ADU]をかけると1.85 [e]となります。SharpCapで測定した値が1.86 [e]なのでほぼ正しい値が出ているようです。
ちなみにコンバージョンファクターがわからない時は、あぷらなーとさんのブログの記事でも紹介されていたように、ユニティーゲイン (UG、eとADUが同じになるゲインのこと、すなわちコンバージョンファクターが1ということ)から求めても同じことです。メーカーによるとUGが117とのことです。ゲイン121の時とは(117-121)/10=-0.4dB違うので、10^(-0.4/20) = 0.95となります。コンバージョンファクターも0.95倍すればいいので0.95 [e/ADU]となります。SharpCapの実測の0.88 [e/ADU]とは少し違いますが、UGをメーカー値としたためこれくらいのズレはあり得るでしょう。UGが正しいとしてリードノイズを求めると、2.1 [ADU] x 0.95 [e/ADU] = 2.00 [e]となりますが、それでもそれほどのズレではないです。
ちょっと脱線します。SharpCapで測定したデータですが、実際に測定しているところは
だけで、あとは全て計算値です。このことは、例えばFull Wellの値とRelative Gainをかけてみると、全てのゲインで65484.6(上の表は小さな桁を丸めてあるので少しずれます。)と同じ値になり、さらにこれにゲイン0の時のe/ADUの値3.996863906をかけるとぴったりと14bitで整数値の16384になることなどでわかります。Full Wellは本来サチルくらいの光量をカメラに入れて測定から求めるべきなのですが、SharpCapは14bitの最大値をサチった値と仮定して簡易的に求めていることもわかります。ZWOのメーカー値もどうやら同じように測定されているみたいなので、これはこれでありなのかもしれません。
さて、本題に戻ります。一例としてゲイン120の場合で計算してみましたが、他のゲインはどうでしょうか?他のゲインの値も、実際に撮影した画像からPixInsightを使ってリードノイズの値を求めてみたので、グラフにしてみます。赤がSharpCapのSensor Analysis機能で測定した線、青がPixInsightを使って一枚一枚マニュアルで求めた線です。
グラフを見ても、SharpCapとマニュアル測定の差はほとんど誤差の範囲だとわかります。
というわけで、PixInsightを使うことで、リードノイズの値を画像からいつでも求めることができるという手法を手に入れたということになります。
とりあえず、簡単にリードノイズを測定することができるようになったので、色々やってみたいと思います。
まずは、これらバイアスフレームを多数枚スタックするとどうなるのでしょうか?
スタックするとばらつきが平均化されるので、もしバイアスフレームに存在するノイズが完全にランダムなら、理想的には枚数のルートに比例してノイズが小さくなっていくはずです。
2、4、16、256、1024枚と、枚数を増やして、上と同様にPixInsightで実測したリードノイズの値を求めてみました。その結果をグラフに示します。理想の場合(青線)と、実際にスタックした場合(赤線)での比較になります。スタックはPixInsightのIntegration機能を使いました。蛇足になりますが、Macbook Proでスタックした場合4144x2822の16bitのfits画像1024枚でスタック時間は7分くらいでした。これくらいなら待つことができます。
グラフを見るとわかりますが、理想的なノイズの減り方に比べて、実測の方が明らかにノイズの減り具合が悪いです。これはなぜなのでしょうか?
この謎を解決するために、実際にスタックした画像を見比べてみましょう。まずはこちら、
左上の奥の画像から1、4、16枚、最後の右下手前の画像が256枚重ねたものです。輝度は1枚ときの画像に全て合わせているので、直接見比べることができます。ぱっと見てわかるのは、枚数が多くなると明らかにノイズが滑らかになっていることでしょうか。これを見る限りは理想的にはどんどんノイズ(ばらつき具合)は少なくなっていってもいいはずです。
では次に、同じ画像で輝度を256枚重ねた画像に合わせてみましょう。
前は綺麗に見えていた256枚画像も、実は完全にランダムなノイズではないことがわかります。縦線みたいなものが残っています。逆に1枚の時には横線が目立っています。これは横線に関してはランダムに近いノイズで、枚数を重ねることで滑らかになっていくのですが、それでも全枚数に共通に存在する縦縞のノイズが残ってしまい、それがグラフでの理想値との差を生むと推測されます。実際に1枚重ねだけの画像を何枚も見比べてみると、横線がてんでバラバラに入っていることがわかります。
ここからわかることは、
はあ、ババーッとまとめてさすがに疲れたので、今日はこれくらいにします。まだまだ面白いことはあるのですが、さすがに書くスピードの方が追いつきません。さて、今日のまとめです。
ちなみに、あぷらなーとさんはバイアス解析だけ1万枚も撮影するというような、言わずと知れた変な人です。私はたかだか千枚ほどしか撮影していないので、あぷらなーとさんに比べて10分の1くらいしか変でないということがわかってもらえると思います。
はじめに
昨日の昼間、めずらしくものすごい快晴。これはと思い、早速夜からカモメ星雲を撮影しようと準備をして、やっと撮影を始めたらわずか数枚で雲がもくもく。こんな日はむしゃくしゃするので、諦めてASI294MC Proの評価の続きです。
さて、大きな目的としては、前回の課題の一つダークノイズがどれくらい撮影に影響があるかですが、今回はその前々段階くらいにあたる、リードノイズのいろいろなテストです。実はあぷらなーとさんの解析に触発され、自分でももう少し泥臭い検証をしてみたくなりました。
バイアスフレーム一枚からのリードノイズの算出
あぷらなーとさんが自作ツールでバイアスフレームを解析し、見事メーカーが公表しているリードノイズと値が一致しました。私も前回の記事でSharpCapのSensor Analysis機能を使うことで、メーカー値と同じ値を確認したのですが、もう少し自由に測定できないか試したくなりました。それでも独自ツールを作るのは大変なので、今回はPixInsightの「ImageInspection」の「Statistics」を使いってリードノイズを求めたいと思います。
まず、SharpCapを使い、ASI294MC Proのバイアスフレームを撮影します。条件は
- モード: RAW16 (16bit)
- 露光時間: 0.0032ms
- Gain: 121
- Brightness(オフセット): 20
- ホワイトバランス: Red 50, Blue 50
Statisticsツールでは「14bit [0,16383]」を選び「Normalized」にチェックを入れます。その時のavgDevの値を読みます。この場合、2.1でした。単位はADUなので、eに変換するためにコンバージョンファクターを使います。前回の測定から
ゲイン121のところ見ると、0.88とあります。先ほどの2.1 [ADU]にこの0.88 [e/ADU]をかけると1.85 [e]となります。SharpCapで測定した値が1.86 [e]なのでほぼ正しい値が出ているようです。
ちなみにコンバージョンファクターがわからない時は、あぷらなーとさんのブログの記事でも紹介されていたように、ユニティーゲイン (UG、eとADUが同じになるゲインのこと、すなわちコンバージョンファクターが1ということ)から求めても同じことです。メーカーによるとUGが117とのことです。ゲイン121の時とは(117-121)/10=-0.4dB違うので、10^(-0.4/20) = 0.95となります。コンバージョンファクターも0.95倍すればいいので0.95 [e/ADU]となります。SharpCapの実測の0.88 [e/ADU]とは少し違いますが、UGをメーカー値としたためこれくらいのズレはあり得るでしょう。UGが正しいとしてリードノイズを求めると、2.1 [ADU] x 0.95 [e/ADU] = 2.00 [e]となりますが、それでもそれほどのズレではないです。
ちょっと脱線します。SharpCapで測定したデータですが、実際に測定しているところは
Gain Value | e/ADU | Read Noise (e) | Full Well (e) | Relative Gain | Rel. Gain (db) | Dynamic Range (Stops) |
0 | 3.99686 | 7.80246 | 65484.6 | 1 | 0 | 13.0349 |
59 | 2.04740 | 6.86512 | 33544.6 | 1.95217 | 5.81034 | 12.2545 |
61 | 1.99842 | 6.83844 | 32742.1 | 2.00001 | 6.02064 | 12.2252 |
100 | 1.28103 | 6.34598 | 20988.4 | 3.12004 | 9.88322 | 11.6915 |
119 | 1.03257 | 6.11416 | 16917.6 | 3.87080 | 11.7560 | 11.4341 |
121 | 0.88019 | 1.85936 | 14421.0 | 4.54092 | 13.1429 | 12.9211 |
200 | 0.35776 | 1.59308 | 5861.64 | 11.1717 | 20.9624 | 11.8453 |
300 | 0.11418 | 1.41354 | 1870.75 | 35.0044 | 30.8825 | 10.3701 |
400 | 0.03624 | 1.35693 | 593.803 | 110.280 | 40.8499 | 8.77350 |
500 | 0.01171 | 1.32912 | 191.794 | 341.432 | 50.6661 | 7.17294 |
だけで、あとは全て計算値です。このことは、例えばFull Wellの値とRelative Gainをかけてみると、全てのゲインで65484.6(上の表は小さな桁を丸めてあるので少しずれます。)と同じ値になり、さらにこれにゲイン0の時のe/ADUの値3.996863906をかけるとぴったりと14bitで整数値の16384になることなどでわかります。Full Wellは本来サチルくらいの光量をカメラに入れて測定から求めるべきなのですが、SharpCapは14bitの最大値をサチった値と仮定して簡易的に求めていることもわかります。ZWOのメーカー値もどうやら同じように測定されているみたいなので、これはこれでありなのかもしれません。
さて、本題に戻ります。一例としてゲイン120の場合で計算してみましたが、他のゲインはどうでしょうか?他のゲインの値も、実際に撮影した画像からPixInsightを使ってリードノイズの値を求めてみたので、グラフにしてみます。赤がSharpCapのSensor Analysis機能で測定した線、青がPixInsightを使って一枚一枚マニュアルで求めた線です。
グラフを見ても、SharpCapとマニュアル測定の差はほとんど誤差の範囲だとわかります。
というわけで、PixInsightを使うことで、リードノイズの値を画像からいつでも求めることができるという手法を手に入れたということになります。
バイアス画像を多数枚スタックするとどうなるか?
とりあえず、簡単にリードノイズを測定することができるようになったので、色々やってみたいと思います。
まずは、これらバイアスフレームを多数枚スタックするとどうなるのでしょうか?
スタックするとばらつきが平均化されるので、もしバイアスフレームに存在するノイズが完全にランダムなら、理想的には枚数のルートに比例してノイズが小さくなっていくはずです。
2、4、16、256、1024枚と、枚数を増やして、上と同様にPixInsightで実測したリードノイズの値を求めてみました。その結果をグラフに示します。理想の場合(青線)と、実際にスタックした場合(赤線)での比較になります。スタックはPixInsightのIntegration機能を使いました。蛇足になりますが、Macbook Proでスタックした場合4144x2822の16bitのfits画像1024枚でスタック時間は7分くらいでした。これくらいなら待つことができます。
グラフを見るとわかりますが、理想的なノイズの減り方に比べて、実測の方が明らかにノイズの減り具合が悪いです。これはなぜなのでしょうか?
実際のスタックしたバイアス画像を見比べてみる
この謎を解決するために、実際にスタックした画像を見比べてみましょう。まずはこちら、
左上の奥の画像から1、4、16枚、最後の右下手前の画像が256枚重ねたものです。輝度は1枚ときの画像に全て合わせているので、直接見比べることができます。ぱっと見てわかるのは、枚数が多くなると明らかにノイズが滑らかになっていることでしょうか。これを見る限りは理想的にはどんどんノイズ(ばらつき具合)は少なくなっていってもいいはずです。
では次に、同じ画像で輝度を256枚重ねた画像に合わせてみましょう。
前は綺麗に見えていた256枚画像も、実は完全にランダムなノイズではないことがわかります。縦線みたいなものが残っています。逆に1枚の時には横線が目立っています。これは横線に関してはランダムに近いノイズで、枚数を重ねることで滑らかになっていくのですが、それでも全枚数に共通に存在する縦縞のノイズが残ってしまい、それがグラフでの理想値との差を生むと推測されます。実際に1枚重ねだけの画像を何枚も見比べてみると、横線がてんでバラバラに入っていることがわかります。
ここからわかることは、
- 多数のバイアスフレームを使うのは、バイアスフレームのランダムに存在するノイズを減少させるため。
- バイアスフレームでライトフレームを補正するのは、スタックしたバイアスでさえも残った、バイアスフレーム全てが持つ共通のノイズを除くため。
まとめ
はあ、ババーッとまとめてさすがに疲れたので、今日はこれくらいにします。まだまだ面白いことはあるのですが、さすがに書くスピードの方が追いつきません。さて、今日のまとめです。
- 単体のバイアスフレームから、リードノイズを見積もることができる。
- SharpCapも全部のゲインで全部の測定をしているわけでなく、一部を測定して、あとは計算で出している。
- バイアスフレームをスタックすると、ノイズは減っていくくが、無限に小さくなるわけではない。
- バイアスフレーム全てに共通するノイズが存在し、それらはバイアス補正でライトフレームから差っ引くことができる。
ちなみに、あぷらなーとさんはバイアス解析だけ1万枚も撮影するというような、言わずと知れた変な人です。私はたかだか千枚ほどしか撮影していないので、あぷらなーとさんに比べて10分の1くらいしか変でないということがわかってもらえると思います。
- ASI294MC Proの性能評価 (その1): ASI294MCとの性能比較
- ASI294MC Proの性能評価 (その2): バイアスフレーム
- ASI294MC Proの性能評価 (その3): バイアスノイズ続き