ほしぞloveログ

天体観測始めました。

タグ:読み出しノイズ

2022年の反省でも述べましたが、最近自分で考えることがあまりできてなかったので、今回の記事は久しぶりに計算です。内容は、撮影した画像にはどんなノイズが入っていて、それぞれどれくらいの割合になっているかを見積ってみたという話です。


動機

まずは動機です。1月に開田高原でM81を撮影した時に、M81本体に加えて背景のIFNが見えてきました。下は300秒露光を28枚撮影したL画像を強度にオートストレッチしています。
masterLight_BIN-2_4144x2822_EXPOSURE-300.00s_FILTER-L_mono

一方、2022年の5月にも自宅で同じM81を撮影しています。背景が埃とスカイノイズで淡いところがまってく出なかったので記事にしていないのですが、下は露光時間600秒を22枚撮影したL画像で、強度にオートストレッチして、かつできるだけ見やすいようにABEとDBEをかけてカブリを排除しています。開田高原の時よりもトータル露光時間は1.6倍ほど長く、被りを除去しても、淡い背景については上の画像には全く及びません。
masterLight_600_00s_FILTER_L_mono_integration_ABE_DBE3
明らかにスカイノイズの影響が大きいのですが、これを定量的に評価してみたくなったというものです。

もう一つの動機ですが、このブログでも電視観望について多くの記事を書いています。電視観望はリアルタイム性を求めることもあるので、露光時間を短くしてゲインを高く設定することが多いです。この設定が果たして理に適っているのかどうか、これも定量的に議論してみたいとずっと思っていました。


目的

これからする一連の議論の目的ですが、
  1. 画像に存在するどのノイズが支配的かを知ること。
  2. 信号がノイズと比較して、どの程度の割合で効くのかを示す。
  3. 電視観望で高いゲインが有利なことを示す。
を考えてたいと思っています。今回の記事はまずは1番です。こちらはスカイノイズをどう評価するかが鍵なのかと思っています。

2番は意外に難しそうです。信号である天体は恒星ならまだしも、広がっている天体の明るさの評価ってなかなか大変です。これは後回しにするかもしれません。

3番は長年の電視観望がなぜ短時間で天体を炙り出せるのかという疑問を、定量的に表す事ができたらと考えています。こちらは大体目処がついてきたので、近いうちに記事にするかと思います。


基本的なノイズ

天体画像撮影におけるノイズは5年くらい前にここで議論しています。SN比の式だけ抜き出してくると

S/N=ntSsigAnσ2+AntSsky+AntSdark+ntSsignS/N=ntSsigAnσ2+AntSsky+AntSdark+ntSsign
と書くことができます。ここで、
  • AA [pix] : 開口面積
  • nn : フレーム枚数
  • σσ [e-/pix] : 読み出しノイズ
  • tt [s] : 1フレームの積分(露光)時間
  • SskySsky  [e-/s/pix] : スカイバックグラウンド
  • SdarkSdark  [e-/s/pix] : 暗電流
  • SsigSsig  [e-/s] : 天体からの信号
となり、S/Nとしては何枚撮影したかのルートに比例する事がわかります。今回のノイズ源としては読み出しノイズ、スカイノイズ、ダークノイズを考えます。ショットノイズは天体などの信号があった場合に加わるノイズですが、今回は天体部分は無視し背景光のみを考えるため、天体からのショットノイズは無視することとします。

重要なことは、読み出しノイズは露光時間に関係なく出てくるために分母のルートの中にtがかかっていないことです。そのため、他のノイズは1枚あたりの露光時間を伸ばすとS/Nが上がりますが、読み出しノイズだけは1枚あたり露光時間を増やしてもS/Nが上がらないということを意識しておいた方がいいでしょう。その一方、撮影枚数を稼ぐことは全てのノイズに対してS/N改善につながり、読み出しノイズも含めて撮影枚数のルートでS/Nがよくなります。繰り返しになりますが、一枚あたりの露光時間を伸ばすのでは読み出しノイズだけは改善しないので、他のノイズに比べて効率が悪いということです。

分子にあたる天体信号の評価は意外に大変だったりするので、今回は分母のノイズのみを考えることにします。


パラメータ

上の式を元に、ここで考えるべきパラメータを固定しやすいもの順に書いておきます。
  1. カメラのゲイン(gain)
  2. 温度 (temperature)
  3. 1枚あたりの露光時間 (time)
  4. 空の明るさ
の4つで実際に撮影した画像の各種ノイズを推定できるはずです。少し詳しく書いておくと、
  • 1は撮影時のカメラの設定で決める値です。読み出しノイズ (read noise)を決定するパラメータです。
  • 2は撮影時のセンサーの温度で、冷却している場合はその冷却温度になります。単位は[℃]となります。この温度と次の露光時間からダークノイズを決定します。
  • 3は撮影時の画像1枚あたりの露光時間で、単位は秒 [s]。2の温度と共にダークノイズ (dark noise)を決定します。ダークノイズの単位は電荷/秒 [e/s]。これは[e/s/pixel]と書かれることもありますが、ここでは1ピクセルあたりのダークノイズを考えることにします。なお、ホットピクセルはダークノイズとは別と考え、今回は考慮しないこととします。ホットピクセルは一般的にはダーク補正で除去できる。
  • 4は撮影場所に大きく依存します。今回は実際に撮影した画像から明るさを測定することにします。単位は [ADU]で、ここからスカイノイズを推測します。ちなみに、3の露光時間も空の明るさに関係していて、長く撮影すれば明るく写り、スカイノイズも増えることになります。

実際のパラーメータですが、今回の記事ではまずはいつも使っている典型的な例で試しに見積もってみます。私はカメラは主にASI294MM Proを使っていて、最近の撮影ではほとんど以下の値を使っています。
  1. 120
  2. -10℃
  3. 300秒
これらの値と実際の画像から背景光を見積もり、各種ノイズを求めることにします。


読み出しノイズ

読み出しノイズはカメラのゲインから決まります。ZWOのASI294MM Proのページを見てみると、


真ん中の少し手前あたりにグラフがいくつか示してあります。各グラフの詳しい説明は、必要ならば以前の記事



をお読みください。上の記事でもあるように、カメラの各種特性はSharpCapを使うと自分で測定する事ができます。実測値はメーカーの値とかなり近いものが得られます。

グラフから読み出しノイズを読み取ります。gain 120の場合おおよそ

1.8 [e rms]

ということがわかります。rmsはroot mean sqareの意味で日本語だと実効値、時系列の波形の面積を積分したようなものになります。例えば片側振幅1のサイン波なら1/√2で約0.7になります。他のノイズも実効値と考えればいいはずなので、ここではrmsはあえて書かなくて

1.8 [e]

としていいでしょう。

読み出しノイズは、実際の測定では真っ暗にして最短露光時間で撮影したバイアスフレームのノイズの実測値に一致します。以前測定した結果があるので、興味のある方はこちらをご覧ください。



ダークノイズ

ダークノイズの元になる暗電流に関しては温度と1枚あたりの露光時間が決まってしまえば一意に決まってしまい、これもZWOのASI294MM Proのページから読み取ることができます。

私はこの値を実測したことはないのですが、そーなのかーさんなどが実測していて、メーカー値とほぼ同じような結果を得ています。

グラフから温度-10℃のところの値を読み取ると暗電流は

0.007 [e/s/pixel]

となるので、1枚あたりの露光時間300秒をかけると

2.1 [e/pix]

となります。/pixはピクセルあたりという意味なので、ここは略してしまって

2.1[e]

としてしまえばいいでしょう。単位[e]で考えた時に、暗電流のルートがダークノイズになるので、

sqrt(2.1)=1.5[e]

がダークノイズとなります。

(追記: 2023//4/19) ちょっと脱線ですが、だいこもんさんのブログを読んでいると、2019年末の記事に「dark currentはgain(dB)に依存しないのか?」という疑問が書かれています。答えだけ言うと、[e]で見ている限り横軸のゲインに依存しないというのが正しいです。もしダークカレント、もしくはダークノイズを[ADU]で見ると、元々あったノイズがアンプで増幅されると言うことなので、単純に考えて横軸のゲイン倍されたものになります。実際の画面でも横軸ゲインが高いほど多くのダークノイズが見られるでしょう。でも、コンバージョンファクターをかけて[ADU]から[e]に変換する際に、コンバージョンファクターが横軸のゲイン分の1に比例しているので、積はゲインによらずに一定になるということです。

ちなみに、ホットピクセルはダーク補正で取り除かれるべきもので、ここで議論しているダークノイズとは別物ということを補足しておきたいと思います。

(さらに追記:2023/10/15)
ダークファイルを撮影したので、実際のダークノイズを測定してみました。画像からのノイズの読み取り値は2.6 [ADU]でした。コンバージョンファクターで単位を[e]にすると、2.6x0.9 = 2.3 [e]。ここから読み出しノイズを引いてやると、2乗の差のルートであることにちゅいして、sqrt(2.3^2-1.8^2) = 1.5 [e] と見積り値に一致します。このように、見積もりと実測が、かなりの精度で一致することがわかります。


スカイノイズ

ここが今回の記事の最大のポイントです。読み出しノイズとダークノイズだけならグラフを使えばすぐに求まりますが、恐らくスカイノイズの評価が難しかったので、これまでほとんど実画像に対してノイズ源の評価がなされてこなかったのではないでしょうか?ここでは実画像の背景部の明るさからスカイノイズを推測することにします。

まず、明るさとノイズの関係ですが、ここではコンバージョンファクターを使います。コンバージョンファクターはカメラのデータとして載っています。例えばASI294MM Proでは先ほどのZWOのページにいくと縦軸「gain(e/ADC)」というところにあたります。コンバージョンファクターの詳しい説明は先ほど紹介した過去記事を読んでみてください。コンバージョンファクターは他に「ゲイン」とか「システムゲイン」などとも呼ばれたりするようです。名前はまあどうでもいいのですが、ここではこの値がどのようにして求められるかを理解すると、なぜスカイノイズに応用できるか理解してもらえるのかと思います。

コンバージョンファクターの求め方の証明は過去記事の最後に書いてあるので、そこに譲るとして、重要なことは、画像の明るさSとノイズNは次のような関係にあり、
(N[ADU])2=S[ADU]fc[e/ADU](N[ADU])2=S[ADU]fc[e/ADU]明るさとノイズの二つを結ぶのがコンバージョンファクターfcとなるということです。逆にいうと、このコンバージョンファクターを知っていれば、明るさからノイズの評価が共にADU単位で可能になります。

もっと具体的にいうと、コンバージョンファクターがわかっていると、スカイノイズが支配していると思われる背景部分の明るさを画像から読み取ることで、スカイノイズを直接計算できるということです。これは結構凄いことだと思いませんか?


実際のスカイノイズの見積もり

それでは実画像からスカイノイズを見積もってみましょう。最初に示した2枚のM81の画像のうち、上の開田高原で撮影した画像の元の1枚撮りのRAW画像を使ってみます。

上の画像は既にオートストレッチしてあるので明るく見えますが、ストレッチ前の実際のRAW画像はもっと暗く見えます。明るさ測定はPixInsight (PI)を使います。PIには画像を解析するツールが豊富で、今回はImageInspectionのうち「Statistics」を使います。まず画像の中の暗く背景と思われる部分(恒星なども含まれないように)をPreviewで選び、StatisticsでそのPreviewを選択します。その際注意することは、カメラのADCのbit深度に応じてStatisticsでの単位を正しく選ぶことです。今回使ったカメラはASI294MM Proなので14bitを選択します。輝度の値は「mean」を見ればいいでしょう。ここでは背景と思われる場所の明るさは約920 [ADU]と読み取ることができました。ついでに同じStatisticsツールのノイズの値avgDevをみると17.8 [ADU]と読み取ることが出来ました。

もっと簡単には、画像上でマウスを左クリックするとさまざまな値が出てきますので、その中のKの値を読み取っても構いません。ここでも同様に、単位を「Integer Renge」で手持ちのカメラに合わせて「14bit」などにすることに注意です。

いずれのツールを使っても、背景と思われる場所の明るさは約920[ADU]と読み取ることができました。

前節の式から、輝度をコンバージョンファクターで割ったものがノイズの2乗になることがわかります。gain120の時のコンバージョンファクターはグラフから読み取ると0.90程度となります。

これらのことから、背景に相当する部分のノイズは以下のように計算でき、

sqrt(920/0.90) = 32.0 [ADU] -> 28.8 [e]

となります。どうやら他の読み出しノイズやダークノイズより10倍程大きいことになります。あれ?でもこれだとちょっと大きすぎる気がします。しかも先ほどのStatisticsツールでの画面を直接見たノイズ17.8[ADU]をコンバージョンファクターを使って変換した

17.8 [ADU] x 0.90 [e/ADU] = 16.0 [e]

よりはるかに大きいです。これだと矛盾してしまうので何か見落としているようです。

計算をじっくり見直してみると、どうやら測定した輝度は「背景光」とオフセットの和になっているのに気づきました。撮影時のオフセットとして40を加えてありますが、この値に16をかけた640がADUで数えたオフセット量として加わっているはずです。実際のマスターバイアス画像を測定してみると、輝度として平均で約640 [ADU]のオフセットがあることがわかったので、これは撮影時に設定したものとぴったりです。この値をを920 [ADU]から引いて、280 [ADU]を背景光の貢献分とします。その背景光からのスカイノイズ成分は

sqrt(280/0.90) = 17.6 [ADU]


これを[ADU]から[e]に変換するためにさらにコンバージョンファクター[e/ADU]をかけて

17.6 [ADU] x 0.90 [e/ADU] = 15.9 [e]

となります。これだと画面からの実測値16.0[e]と少なくとも矛盾はしませんが、既に実測のトータルノイズにかなり近い値が出てしまっています。果たしてこれでいいのでしょうか?


各ノイズの貢献度合い

次にこれまで結果から、各ノイズの貢献度を見ていき、トータルノイズがどれくらいになるのかを計算します。

画像1枚あたりの背景に当たる部分の各ノイズの貢献度は多い順に
  1. スカイノイズ: 15.9[e]
  2. 読み出しノイズ: 1.8 [e]
  3. ダークノイズ: 1.5[e]
となります。Statisticsツールで測定した実際の1枚画像の背景のノイズの実測値は14.9[e]程度だったので、上の3つのノイズがランダムだとして2乗和のルートをとると、

sqrt(15.9^2+1.8^2+1.5^2) = 16.0 [e]

となり、実測の16.0[e]になる事がわかります。スカイノイズに比べてトータルノイズがほとんど増えていないので、読み出しノイズとダークノイズがほとんど影響していないじゃないかと思う方もいるかもしれません。ですが、互いに無相関なノイズは統計上は2乗和のルートになるので本当にこの程度しか貢献せず、実際にはスカイノイズが支配的な成分となっています。

ここまでの結果で、今回のスカイノイズ成分の推定は、定量的にも実画像からの測定結果とほぼ矛盾ないことがわかります。この評価は結構衝撃的で、暗いと思われた開田高原でさえスカイノイズが圧倒的だという事がわかります。


富山の明るい空

ちなみに、最初の2枚の画像のうち、下のものは自宅で撮影したM81です。富山の明るい北の空ということもあり、そのRAW画像のうちの最も暗い1枚(2022/5/31/22:48)でさえ、背景の明るさの読み取り値はなんと3200[ADU]程度にもなります。バイアス640を引くと2560[ADU]で、開田高原の背景光の値240に比べ約10倍明るく、ノイズは

sqrt(2560/0.90) = 53.3 [ADU] -> 48.0 [e]

となります。実際の画像からPIのStatisticsで読み取ったトータルノイズの値が53.4[ADU]->48.1[e]でした。

スカイノイズ48.0[e]に、読み出しノイズ1.8 [e] 、ダークノイズ1.5[e]を2乗和のルートで考えるとトータルノイズは

sqrt(45.0^2+1.8^2+1.5^2) = 48.1 [e]

となり、明るい画像でも背景光の輝度から推測したノイズをもとに計算したトータルノイズ値と、画面から実測したノイズ値が見事に一致します。

開田高原の暗い画像でさえスカイノイズが支配的でしたが、富山の明るい空ではスカイノイズが読み出しノイズ、ダークノイズに比べて遥かに支配的な状況になります。淡いところが出なかったことも納得の結果です。

うーん、でもこんなスカイノイズが大きい状況なら
  • もっと露光時間を短くして読み出しノイズを大きくしても影響ないはずだし、
  • 冷却温度ももっと上げてダークノイズが大きくなっても全然いいのでは
と思ってしまいます。でもそこはちょっと冷静になって考えます。早急な結論は禁物です。次回の記事では、そこらへんのパラメータをいじったらどうなるかなどに言及してみたいと思います。


まとめ

背景の明るさとコンバージョンファクターから、スカイノイズを見積もるという手法を考えてみました。実際の撮影画像のノイズ成分をなかなか個別に考えられなかったのは、スカイノイズの評価が難しいからだったのではないかと思います。

今回の手法は背景の明るさが支配的と思われる部分がある限り(天体写真のほとんどのケースは該当すると思われます)スカイノイズを見積もる事ができ、状況が一変するのではと思います。また手法も輝度を測るだけと簡単なので、応用範囲も広いかと思われます。

今回の手法を適用してみた結果、実際に遠征した開田高原のそこそこ暗い空で撮影した画像でさえもスカイノイズが支配的になる事がわかりました。もっと暗い状況を求めるべきなのか?それとも露光時間を短くしたり、温度を上げてしまってもいいのか?今後議論していきたいと思います。

とりあえず思いつくアイデアをばっとまとめてみましたが、もしかしたら何か大きな勘違いなどあるかもしれません。何か気づいたことがありましたらコメントなどいただけるとありがたいです。


この記事の続き



になります。露光時間と温度について、実際の撮影においてどの程度にすればいいか評価しています。









前回の6Dのユニティーゲインの記事ですが、難しいという話を聞いたので、できるだけわかりやすく解説してみようと思います。




コンバージョンファクター


IMG_2032

何はともあれ、まず重要なのはコンバージョンファクター (conversion factor) とか、gain (ややこしいのですがISOに相当するgainとは全然の別の意味です。以下区別するために、コンバージョンファクターの意味ではgainやゲインという言葉は使わず、ISOの意味でのみgainもしくはゲインと書きます。)とか呼ばれている、センサーで発生する電子の数と出力信号のカウント数を変換する係数で、単位は[e/ADU]になります。eは電子1個の単位、ADUはADC (Analog to Digital Converter) でカウントする1カウントの単位です。発生する電子の数は後で書きますが、検出される光子の数と比例するので、ここではとりあえず光子の数と言ってしまうことにします。

このページの結果によるとEOS 6Dの場合、例えば、ISO100のとき、コンバージョンファクターは5.6413 [e/ADU]で、光子が6個近くセンサーの1素子に入ってやっとADCのカウントが1増えます。6Dの場合14bit = 16384なので、5.6413 x 16384 = 92427個の光子が1素子に入ると、その素子のカウントは一杯になり「飽和」状態になります。このブログでは「サチる」とか、「サチった」とかいう表現をしています。これは「飽和」の英語Saturationから来ています。

例えば、ISO400のとき、コンバージョンファクターは1.4178 [e/ADU]となり、光子が1.5個くらい入るとADCのカウントが1増えます。

この表から考えると、ISO575くらいが実現できるなら、コンバージョンファクターは1 [e/ADU]となり、光子が1個入るとADCのカウントが1増えます。このときのゲインをその名の通り、ユニティーゲイン(unity gain)と呼びます。ユニティーは1という意味ですね。ISOなので、ユニティーISOとか読んでもいいでしょう。呼び方はまあどうでも良くて、重要なのはセンサーで検出される光子1個がADCを1カウント増やすという、1対1の関係です。

CMOSセンサーの解析はこのコンバージョンファクターの値を求めるところから全てが始まります。


コンバージョンファクターの原理

ではコンバージョンファクターを求めるためにはどうしたらいいのでしょうか?まずは原理式を理解してみましょう。CMOSセンサーをある出力ゲインに固定して測定した信号\(S\mathrm{[ADU]}\)とそのときのノイズ\(N\mathrm{[ADU]}\)には以下の関係があります。

\[(N\mathrm{[ADU]})^2=\frac{S\mathrm{[ADU]}}{f_{\mathrm{c}}\mathrm{[e-/ADU]}}+\frac{(N_{\mathrm{read}}\mathrm{[e-]})^2}{(f_{\mathrm{c}}\mathrm{[e-/ADU}])^2}\]

このとき\(N_{\mathrm{read}}\mathrm{[e-]}\)は読み出しノイズ、\(f_{\mathrm{c}}\mathrm{[e-/ADU]}\)がコンバージョンファクターです。

右辺2項目の読み出しノイズは十分小さい仮定として、簡単に

\[(N\mathrm{[ADU]})^2=\frac{S\mathrm{[ADU]}}{f_{\mathrm{c}}\mathrm{[e-/ADU]}}\]
を考えます。

画像を撮影して、その1ピクセルの明るさ\(S\mathrm{[ADU]}\)を測り、その1ピクセルの明るさがどれくらいバラけているかを多数プロットしてやればいいのです。

この式自身の証明はこのページの最後のおまけの部分を見てください。ちょっととっつきにくいと思うかもしれませんが、ショットノイズの関係式だけから数学的に綺麗に出てくるので、話としては至極単純です。逆にこの関係式があるので、多数の点数をとってくれば統計的にコンバージョンファクターが確定するというわけです。多数の点をとってくるのは、画像ファイルが多数の点でできていることを考えると十分可能で、アイデア次第で多くのサンプルを取り出すことができるわけです。この関係式をものすごくうまく利用してますよね。

多くのサンプルを取り出すのはいろいろな方法があります。
  1. 一画面内に暗いところから明るいところまで写っている、同じ画角の景色などを多数枚撮影し、ある位置のピクセルに注目し、その平均値とバラけ具合を多数枚にわたって見る。多数のピクセルに対して同じことをする。
  2. フラットに近い画像を露光時間を変えて何枚か撮り、一枚のある100x100くらいのエリアの平均値とそのバラけ具合を見る。露光時間ごとにプロットする。
  3. 星などの適当な画像を2枚撮影し、その2枚の画像の差を取り(信号を消して、ノイズの2乗和のルートをとるということ)、その中の明るさが一定のエリアの平均値とバラけ具合を見る。明るさの違う領域で、同じことをしてプロットする。
などがあります。私が一番最初に学んだ方法は1.でした。SharpCapは2.の方法をとっています。最初に紹介したページ(大元はこのページです)やPixInsightでは3.を使っています。3.が撮影枚数が2枚と少なく、一番簡単でしょうか。工夫次第でまだ測定方法はいろいろ考えることができると思います。

PixInsightでの測定方法はNiwaさんが秀逸なタイトルをつけて詳しく解説してくれています。




実際の測定例

実際に信号とそのバラつきをプロットしたグラフを見てみましょう。まずは2.の例のSharpCapで測定した場合です。6Dの計測の時にグラフを写真に取り損なったので、ASI294MCの測定の時の写真を示します。

IMG_3262

一番右が、横軸明るさS、縦軸ノイズNの2乗でプロットしたものになります。測定点を結ぶと一本の線になり、その傾きの逆数がコンバージョンファクターになります。この場合、横軸が5000くらいの時に縦が1300くらいなので、傾きは0.26、その逆数は1/0.26=3.85[e/ADU]くらいになります。すなわち、光子3.85個入って、やっとADCのカウントが1進むということです。

次の例は自分で画像を撮影して測定した時の結果です。SharpCapがやる過程をマニュアルでやったような形になります。すなわち、同じゲインで露光時間を変えて何枚か撮影し、あるエリアの明るさとバラけ具合を測定すると言うものです。画像解析はMaltabを使ってやりました。Matlabを使ったのは、画像読み込みが楽なのと、平均や分散などの統計解析が揃っているからです。別に一枚一枚Photoshopとかで解析しても原理的にはできるはずです。センサーはASI290MMでモノクロのCMOSカメラです。モノクロはきちんとメーカー値とも合うのですが、いまだにカラーの場合でうまく計算できたことがないので、もうここ2年ほど悩み続けています。

Conversion_Factor_ASI290MM_std

同様に横軸が明るさで縦軸がノイズの2乗のN^2になります。測定点が一直線で近似できるのがわかると思います。そのグラフの傾き0.306の逆数1/0.306=3.26がコンバージョンファクターになります。

一眼レフカメラの例は、このページに出てますね。「Details of measurements at each ISO setting」のところからの一連のグラフになります。このようにISO(出力ゲイン)を変えて、順次ISOごとのコンバージョンファクターを測定していきます。コンバージョンファクターが1になるところが「ユニティーゲイン」「ユニティーISO」「ユニティーゲインの時のISO」(言葉だけを知っていても意味がないです、逆に意味をきちんと理解していれば、言葉が多少違っても通じますね)ということになります。

ところが上にも書きましたが、SharpCapではISO(ゲイン)を変えて各コンバージョンファクターを測定することをサボっています。どうせ、コンバージョンファクターはゲインに比例するので、一番低いISOのコンバージョンファクターだけを測って、あとは出力ゲインで割ってやることで、測定回数を劇的に減らしています。これは測定の自動化をするために考えた苦肉策(良く言えば簡単に測定できる方法)といえるでしょう。


読み出しノイズ

これまでのどのグラフでもそうですが、傾きの逆数がコンバージョンファクターになり、信号Sが0の時の切片がその時のISOの読み出しノイズになります。ただし、読み出しノイズに関してはこのページでも書いてあるように
but, for the readout noise it is preferable to measure directly the deviation on a bias image - the result is more precise
と書いてあるように、バイアスファイルから直接測定せよと書いてます。奇しくも、ノイズ会議の時に議論したバイアスと読み出しノイズは同じかというというに対する回答になっていて、やはりバイアス(オフセットとかいう概念と同じ)ファイルで測定されるノイズは読み出しノイズと考えて良さそうです。

読み出しノイズの測定は、カメラにキャップをして最小光量で、時間と共に大きくなるダークノイズを無視するために最小時間で撮影した画像を使います。やはりバイアスの撮影と同じですね。こうやって撮影された画像は読み出しノイズに支配されています。読み出しノイズの直接的な測定についてはこのページを参照してください。
 


測定からいろいろなことがわかる

一連の測定の結果から、非常に重要な幾つかの結論が出ます。例えば、このページで言っている主要なことは
  • Unity gainはISO575のところにある。
  • これは個々のISOについてコンバージョンファクターを測定した結果から来ている。
  • コンバージョンファクターの測定方法は、各ISOで2枚撮影して、その差分から明るさとノイズの関係を評価した。
  • 読み出しノイズはISO6400までは減ってきていて、それ以上のISOでは一定値。なので、ISO6400以上は使っても意味がない。暗い天体はISO6400を使うと(ダイナミックレンジは多少不利になるが、淡いところを出すには)有利
  • 飽和容量は13235ADUと考える(と書いてあが、根拠は不明。14bitだから16348ADUと思ったら、それより小さいので何かかから測定したのか?)。
  • ダイナミックレンジはISO400までは一定で、それ以降は減り始める。なので明るい天体はISO400以下で撮影するのがいい
  • 中間ISOは使うな!例えばISO1000はISO800と同じ読み出しノイズでかつダイナミックレンジは小さい。
ということです。


コンバージョンファクターやユニティーゲインは何の役に立つのか?

答えを一言で言うなら、コンバージョンファクターという(ゲイン依存の)変換係数があるおかげで、ADCの値を読むだけでありとあらゆるものを電子の数で考えることができるようになるので、「単位が揃って便利」だということです。

例えば飽和電子容量(full well)です。本来の飽和電子容量の測定の仕方は、十分にサチレーションを起こすくらい明るい光をカメラに入射し、その時のADCの値の平均値を読み取り、それをコンバージョンファクターで電子の数に変換してやります。コンバージョンファクターが分からなけれが飽和「電子」容量とは言えずに、飽和「ADC」容量とかになってしまいますね。

読み出しノイズの測定もそうです。バイアスファイルは読み出しノイズに支配されています。この時の各素子の明るさのばらつき具合が読み出しノイズになるのですが、当然のことながらこれらの測定は全てADCの出力を見ているので単位は [ADU] で出てきます。こんな時に先に測定したコンバージョンファクターがあると、あーら不思議!なんと電子の数 に変換することができ、普通の読み出しノイズの単位[e-]になります。

逆に言えば、どれだけ画像ファイルからADCでカントされた数を数えることができても、コンバージョンファクターがないと、電子、光子のところまで持っていくことができません。と言うわけでコンバージョンファクターがいかに大切かおわかりいただけましたでしょうか?

では、ユニティーゲインがどうして必要かと言うと、実はそこまで重要な値ではないんですよね。ADU1カウントと測定された電子1個が等しいと言うくらいです。まあ、目安ですね。


電子数と光子数の関係

さらに光子の数sと、センサーで数える電子の数nが、定数で変換できます。この定数をシステム効率ηなどと呼び
\[\eta=\frac{n}{S}\]
と表すことができます。通常はシステム効率は1以下の値をとりますが、ここでは簡単のため1としています。

ポイントはこのシステム効率が内部回路のゲインや積分時間などによらないということです。なので、出てきた電子の数を数えるということは、幾つ光子が入ってきたかが直接わかるため、重宝されるというわけです。

その一方、ADCのカウント数とセンサーで出てくる電子数の関係は内部回路のゲインに依存してしまうため、便利でないのです。

ISOと実ゲインの関係

前回測定していまだに腑に落ちないISOと実ゲインの測定ですが、同様の測定例がどこを探しても見つかりません。ISOとコンバージョンファクターのグラフはすぐに見つかります。これってもしかしたらISOの線形性がほとんどないから出回らないのでしょうか?だとしたら、前回示したグラフは何か失敗しているかと思ったのですが、逆に貴重なのかもしれません。

自分でも各ISOのコンバージョンファクターを測ってみるのが次の課題でしょうか?少なくとも3種類の測定の仕方は考えられるので、それぞれで違いが出るかとかも興味があります。そこで測られたコンバージョンファクターは、やはり実ゲインに比例しているはずなので、もし前回の測定結果のように実ゲインがISOに比例しないなら、どこに矛盾があるか突き止めていくのもまた面白そうです。


おまけ: Unity gainで撮影する意味

unity gainで撮影することには、ほとんど何の意味もないです。これは測定される電子数とADCのカウントの比を表している単なる係数に過ぎません。

たまにunity gainで撮影することが有利だとかいう話を聞くことがありますが、根拠が全くありません。その際によく話されるのが、ADCの1カウント以下で電子(光子でもいい)を測定できないからとかだとかが理由とされますが、そもそも光子を1個だけ数えるのは(量子力学で考えるとあたりまえですが)原理的に不可能です。多数の(単位時間あたりに数にばらつきのある)光子が測定され、統計的に平均値をとると何個の光子が来ていたと言えるだけです。

なので、unity gainに拘らずにISOを決めていいのですが、原理的に考えると最適なISOはDynamic Rangeを損なわない最大のISOということになります。もちろんこれは対象の明るさによってきちんと考えるべきで、明るいもの(昼間の景色や恒星など)がサチるのを避けたいならばISOを下げたほうがいいですし、暗いものを撮影するときはダイナミックレンジを犠牲にしてでもISOをあげた方がいい時があります。


まとめ

コンバージョンファクターについて、できうる限り簡単に書いてみました。みなさん理解できましたでしょうか?わかりにくいところとかありましたら、コメント欄にでもお書きください。

もう少し6D測定を続けてみたいと思います。他の結果と矛盾がないのか、それとも何か間違っているのか?どのような設定で撮影すればいいかの根拠になっていくので、これはこれでかなり楽しいです。



前回撮影したカリフォルニア星雲ですが、1時間半ほどの露光とそこまで長くないので、それ相応のあぶり出しはできていて、そこまで不満はないです。それでも淡い部分、例えば画面の右下あたりに分子雲があるようなのですが、少なくとも前回の画像を見る限りノイズとほとんど見分けがつかなくて、はっきりしません。




ISOを増やしてみる

今回の目的は、露光時間は同じでISOだけを上げた場合に淡い部分が出てくるかどうかです。ISOを4倍の3200にして、同じ露光時間の3分で、他の部分は出来る限り同じようなセットアップで撮影します。例え恒星がサチっても気にしないとします。さすがに4倍もISOを変えてやれば、淡いところならば何か違いが見えるのではないかという狙いです。

撮影は2021年3月10日。まだ前回のセットアップをほとんど崩していなかったので、準備も楽なものです。撮影できた枚数は33枚、合計1時間39分なので、前回の1時間48分と大体同じです。光害地で高ISO、長時間露光で撮影しているので、画像は相当明るくなってしまいます。撮影時はこんな感じで、ヒストグラムも相当右側に行ってしまっています。

BYE01

通常はここからスタックをして画像処理に進むわけですが、前回からの違いを比較しやすいように、前回の画像と今回の画像を、Photoshopに渡す直前(PixInsightでABEとDBEをかけて、PCCで色合わせ、ArcsinhStretchまで終えた状態)まで持っていきます。Stretchの欠け具合で見え方が変わってくるので、最後に直接比較ができるようにSTFでAutoStretchをかけた状態にします。


実際の比較

前回のISO800のときと
masterLight_integration_DBE_DBE_rot_PCC

今回のISO3200のとき
masterLight_integration_ABE_ABE_cut_DBE_RGB_PCC

まず大きく違うのは、恒星の周りのにじみです。前回はかすみがあったのでしょうか?それとも黄砂?いまだに理由はわかっていません。特に、真ん中の一番明るい星の左にある明るいにじみは謎です。前回のスタック前の各画像を改めて見てみると、ditherで恒星の位置が動いても、このにじみは動いていなかったので、たまたまにじみの真ん中にあるように見える恒星はおそらく関係ありません。一番明るい恒星の何処かでの反射でしょうか?

と思って調べていたら、もう一つ決定的なミスに気づきました。なんと前回と今回の撮影、ノーフィルターかと思っていましたが、実はCBPフィルターが取り付けてありました。Sh2-240を撮影した時にCBPを入れたのをすっかり忘れてしまっていて、フィルターが入ってないと思い込んでいました。というわけで、フィルターでの反射で起きたゴーストの可能性もあるかと思ったのですが、それでも前回も今回もフィルターは入っていて、前回のみ出て、今回消えた理由にはならない気がしています。

ISOの違いがこのにじみに関係しているのか?これもよくわかりませんが、おそらく関係ないだろうと思っています。

さてにじみはとりあえず置いておいて、ここからが重要です。一見わかりにくいですが、右下のほうに恒星が見えにくい暗黒体のような部分があります。ここが今回一番比較したかったところです。わかりやすいように拡大してみました。

左がISO800、右がISO3200です。
comp

ここはISOの違いで思ったよりも差が出たところでした。画像処理の違いも多少聞いているかもしれませんが、同じパラーメータのABE、DBEを適用しています。右のISOが高い方が明らかに暗黒体を分離できていて、左のISOの低い方は暗黒体と思われるところがノイズときちんと分離できていません。もちろん(時間帯はほぼ同じですが)日にちを変えて撮影しているので天気の条件は違います。左の方が天気から来るかすみか何かが効いている可能性も否定しきれません。

ですが、この暗黒体のような淡い天体に関しては、スタックによって軽減するスカイノイズ、ショットノイズなどは関係なくなっていき、最後はシャッター枚に必ず加算される読み出しノイズとの戦いになります。高いISOもしくは高いゲインでは入力換算で考えたときの読み出しノイズは小さくなることは一般的にわかっていて、今回のようにISOで4倍の差だと、特にISOが低いところではノイズが4分の1になります。ISOが大きいところだと、読み出しノイズは一定値に漸近していくため、その効果は小さくなります。EOS 6Dで測定された読み出しノイズを調べてみると、ISOが800から3200の場合は4.45e-から2.30e-に下がるそうなので、約2倍程度よくなるようです。

このように、見たい対象が暗くて読み出しノイズと同程度の場合にはISOを上げることが効果がある場合があります。逆に言えば、ISOを上げようが下げようが、明るい星雲とかでは差はほとんど分からなくて、差が顕著になるはずの相当暗い部分にいったっても、高々これくらいの差しか出ないわけです。

と、一応理屈通りに見える結果は出ました。というか、最初にISO800で見えるはずの暗黒体がなんか見えているような、見えていないような状態だったので、同じ露光時間で飽和しない限界のISO3200で何か効果が見えるのではないかと思ってやってみたわけです。でも、先にも書きましたが、天気の差の可能性も捨てきれないので、もう少し検証が必要かと思います。


最後まで仕上げてみる

さて、今回撮った画像を仕上げてみます。

Image66._ASx2_HT2

  • 撮影日: 2021年3月3日20時23分-22時15分
  • 撮影場所: 富山県富山市
  • 鏡筒: Takahashi FS-60CB + マルチフラットナー
  • フィルター: SIGHTRON CBP
  • 赤道儀: Celestron CGEM II
  • カメラ:  Canon EOS 6D(HKIR改造, ISO3200, RAW)
  • ガイド: f120mmガイド鏡 + ASI120MM mini、PHD2によるマルチスターガイドでディザリング
  • 撮影: BackYard EOS、露光時間180秒x33枚 = 1時間39分、ダーク39枚(ISO3200、露光90秒、最適化あり)、フラット128枚(ISO3200、露光1/800秒)、フラットダーク128枚(ISO3200、露光1/800秒)  
  • 画像処理: PixInsight、Photoshop CC、DeNoise AI

恒星に関しては明らかに今回の方が変なにじみもなくまともです。また暗黒体も上で見た途中経過だけでなく、仕上げた時でもやはり前回よりはっきり出ました。それと同様の効果でしょうか、星雲部の淡い部分もやはり前回よりも明らかに自然に出ています。前回はノイズに埋れているところを無理やり出した感満載でしたが、今回は少しはましになっています。

逆に唯一前回よりもダメだったことは、恒星の中心部の飽和が増えたことでしょうか。前回はほとんど気にならなかったのですが、今回は途中ピンクスターを除去する処理を加える必要がありました。


まとめ

前回、今回と、ISOを変えて他はできるだけ同条件で撮影してみました。

結果としては、やはり淡い部分を出したい場合には、読み出しノイズが効くようなレベルであれば、理論通りISOを上げた方が得するようです。今回は自分が思っていたたよりも違いが大きく出ました。

もちろんこの結果が全てと言うわけではなく、条件によって有利不利はあるかと思います。特に読み出しノイズに制限されていないような状況や、一枚の画像の中でも明るい部分などは、差はほとんど出ないでしょう。

また、今回の結果も天候に依存する可能性もあり得るので、ISOがどこまで効くのかというテーマについては、もう少し結論は先延ばしにしたいと思います。


このページのトップヘ