画像からのノイズ解析の一環でいろいろ考えているのですが、ビニングについて考えていたら1回分くらいの記事の分量になってしまいました。番外編として独立記事とします。
一般的にCMOSカメラでの撮影でbin1以外を選択すると、通常はソフトウェアビニングとなり、本来のハードウェアビニングに比べて不利であると言われています。でもこのことについて真面目に議論している記述をあまりみたことがないので、少し考えてみます。
ちなみに、ハードウェアビニングは以前主流だったCCDカメラには搭載されていた機能ですが、最近主流のCMOSカメラではハードウェアビニング は原理的に搭載するのが難しく、ソフトウェアビニングとなります。それでも例えばASI294MM Proなどは、4つのピクセルを合わせて1ピクセルとしたものが標準で、オプションで1ピクセルごとの画素のデータも読み取ることができ、実施的にハードウェアビニングと同じような機能を搭載しているものもあります。
そもそも、ビニングとはどんなものなのでしょうか?撮影ソフトの機能だけでみたら、bin2は縦横2つで計4つのピクセルを1つのピクセルとして扱い、4倍の明るさを得る手法です。明るさが4倍なのでショットノイズは√4=2倍になり、そのため、ショットノイズに対してのS/Nは4/2=2倍よくなります。
これだけのS/N増加をbin1で得ようとしたら4倍の時間をかける必要があります。例えば、bin2で1時間撮影することとbin1で4時間撮影することが同じ、bin2で4時間撮影することとbin1で16時間撮影することが同じ、bin2で10時間撮影することとbin1で40時間撮影することが同じです。10時間撮影は頑張れば可能ですが、40時間撮影はそれこそ長期にわたって安定した天気と、相当な根気が必要になってきます。撮影日数は1週間オーダーになるでしょう。私が住んでいる富山ではこんなに連続で晴れることはほぼあり得ないので、今の私の環境ではトータルで10時間くらいが限界です。例え10時間でも、実際には設置やトラブル回避などにも時間をとられるので、数日にわたります。
bin3なら3x3=9個のピクセルを一つとして扱うので、9倍の明るさ、√9=3倍のショットノイズで、S/Nの向上は9/3=3倍となり、同じS/Nをbin1で得ようとしたら、9倍の時間をかける必要があります。
このように、S/Nの向上という観点からはビニングは効果があることはあきらかです。その代わりに空間分解能(解像度)を犠牲にしています。
ハードウェアビニングの特徴は、カメラのセンサー部の段階でピクセルを足し合わせてから、情報として読み出すことです。例えばbin2の場合、輝度は4倍になり、読み出しノイズは1倍のままなので、読み出しノイズに関してはS/Nで4倍も得することになります。その代わりに、分解能が一辺あたり半分、面積では4分の1になります。
また、ハードウェアビニングではダイナミックレンジが、例えばbin2では2ビット分減る可能性があぷらなーとさんによって指摘されています。というか、ASI1600ってCMOSカメラなのにハードウェアビニングできるんですね。本家ZWOのページを見ると、確かにできると書いてます。
このように、ハードウェアビニングも少なからず不利な点があることに注意する必要があります。
まとめると、ハードウェアビニングでは、例えばbin2はbin1に比べて
次に、ソフトウェアビニングについて考えてみます。一般に、ソフトウェアビニングはハードウェアビニングより不利と言われていますが、どうなのでしょうか?
まず、ビニングで輝度が上がることによるショットノイズについてはハードウェアビニングもソフトウェアビニングも効果に違いはありません。
ではソフトウェアビニングの何が不利なのかというと、読み出しノイズの部分です。ハードウェアビニングではセンサー部でピクセルを足し合わせているので、足し合わせた輝度について1回読み出すだけでいいのですが、ソフトウェアビニングでは輝度の値を読み出した後に「ソフト的に」輝度を足し合わせるので、読み出し回数は足し合わせるピクセルの数の分だけ必要となります。読み出しノイズはその回数分増えるので、bin1に比べて不利になります。
ソフトウェビニングをすることで、ハードウェアビニングに対してどれくらい読み出しノイズが増えるか、計算してみましょう。例えばbin2の場合、bin1の一つのピクセルの読み出しノイズをN_rとすると、ノイズは2乗和のルートで効いてくるので、4ピクセル分で4回読み出すとすると
となり、2倍の読み出しノイズとなります。このことがハードウェアビニングに対して、ソフトウェアビニングは不利になるという根拠になります。でもこれはあくまでハードウェアビニングに対して2倍不利になるというだけで、bin2のソフトウェアビニングでも輝度は4倍となるので、S/Nをとると4/2 = 2倍有利になるので、読み出しノイズに関して得します。ハードウェアビニングに対して得する度合いが小さいというだけです。
まとめると、ソフトウェアビニングでは、例えばbin2はbin1に比べて
あ、ダイナミクレンジに関しては、16ビットセンサーだと勿体無いかもしれません。元々16ビットの情報を持っているとすると、ソフトウェアビニングで計算機内部では18ビット相当まで行きますが、ファイルフォーマットが16ビットだとすると、ファイルに保存するときに2ビット分はいずれ捨てられることになります。あくまで勿体無いというだけで、少なくとも16ビットのままで悪くはならないのですが、ファイルフォーマットのダイナミックレンジを撮影ソフトから書き出す時に大きくできれば、さらに2ビット稼げる可能性があります。
ダイナミックレンジに関しては、私自身はきちんと検証しているわけではないので、あくまで理論的な話です。例えば14ビットセンサーのbin2のソフトウェアビニングが、14ビットで保存されるのか、(ファイルのフォーマット的には余裕があるので)16ビットで保存されるのかちょっと興味があります。
ここまでの記事なら、よくあるハードウェアビニングとソフトウェアビニングの説明になります。よくある記事と言っても、実際には定性的に説明してあるページがほとんどで、実際に数値できちんと書いてあるところは探すのが大変なくらい少ないです。
で、ここからが「ほしぞloveログ」ならではの本番の記事となります。多分どこも議論しているところはないと思います。それは、ソフトウェアビニングはハードウェアビニングに比べて本当に不利かという疑問です。
ここまでの上記の検証で、ソフトウェアビニングがハードウェアビニングに比べて不利な点は、読み出しノイズについてのみです。しかもダイナミックレンジに関しては、むしろソフトウェアビニングの方が有利な可能性が高いです。
読み出しノイズについてもう少し考えてみます。これまでの実画像からのノイズの検証で、撮影画像のノイズ成分についてずっと議論してきました。その結果、開田高原や海外チリなどのかなり暗い環境においてさえも、実際のトータルのノイズはスカイノイズに制限されていることが多く、読み出しノイズがほとんど効いていないことがわかります。特に自宅のような光害地ではその傾向が顕著で、圧倒的にスカイノイズが支配的で、読み出しノイズやダークノイズはほぼ完全に無視できることがわかります。
このように、本格天体撮影のほとんどの場合において、読み出しノイズが支配的な状況になるとはあまり考えられず、その場合は唯一の違いであるハードウェアビニングとソフトウェアビニングでの読み出しノイズでの有利不利はなくなると考えられます。ダイナミックレンジの観点からは、むしろソフトウェアビニングの方が有利になる可能性さえあります。
というわけで、つい最近淡いSh2-240を、上記のような考えの元でソフトウェアビニングのbin2で、明るい自宅の庭で撮影してみました。
光害地であるため、ナローバンド撮影といえどもスカイノイズが完全に支配的です。これまでの議論から、このような状況での撮影ではハードウェアビニングとソフトウェアビニングの読み出しノイズの差なんて完全に無視できます。それよりも淡い天体に対して輝度を高くでき、S/Nを稼ぐことができるほうがはるかに有利になります。例えば、ショットノイズ(=スカイノイズ)に関しては露光時間4倍で撮影することと同等なので圧倒的に有利で、現実的な撮影時間で淡い部分を出すことにかなり貢献してくれます。
結果を見る限り、光害地からの撮影でも、特に淡いOIII成分も情報と十分に残っていることがわかります。今回は6時間半の撮影ですが、これをもしbin1で撮影していたら、(空間分解能は無視するとして)同等のS/Nを得るためには28時間の撮影時間となっていたはずです。
今回の記事ではビニングについてまとめてみました。特にハードウェアビニングとソフトウェアビニングの違いついて、少し定量的に議論してみました。ちょうどこの満月期で、しかも天気も悪いので昼間に太陽を見ることもなく、時間をかけてじっくり考えることができました。
読み出しノイズに支配されないような状況下では、ハードウェアビニングとソフトウェアビニングについて大きな差はないので、必要ならば分解能を犠牲にして輝度を上げS/Nを上げることができる、現在のCMOSカメラで使えるソフトウェアビニングを遠慮なく使っていいという結論になります。ただし、自分で考えたことなので大きく勘違いして間違っている可能性もあります。何か気づいた際にはコメントでも残していただけるとありがたいです。
この記事をほぼ書き終えて、改めて検証のために、ある程度の理屈と感度向上を数値まで含めてで日本語で記述しているあるページを探してみましたが、ほとんど見つけることができませんでした。これまでビニングに関しては神話的に色々囁かれていたような状況だったことが想像できます。
これまで書いてきたノイズ検証の関連で、だいこもんさんとNiwaさんから画像を提供して比較検討してきました。その過程でお二方からDMで質問や議論があり、直接話しますかということになりました。
ちょうど昨晩、星沼会の定例のミーティングといういうことで、そこで話せばいいのではと、私もゲスト参加させていただきました。メンバーはだいこもんさん、Niwaさん、hinokirさん、ぐらすのすちさんでした。
ミーティング自体は21時から始まっていたのですが、私は途中21時から参加して、結局0時近くまで話し込んでいました。ノイズの話で盛り上がること自体がそもそも濃いのですが、さすが星沼会、他に話している内容もとても濃かったです。私自身もかなり楽しい時間を過ごすことができました。ゲスト参加を認めていただき、どうもありがとうございました。
ブログ記事と関係ないのですが、天文関連でちょっとしたことがあったら、こんなふうに記事にに混ぜて日記がてら書いて行けたらと思っています。
一般的にCMOSカメラでの撮影でbin1以外を選択すると、通常はソフトウェアビニングとなり、本来のハードウェアビニングに比べて不利であると言われています。でもこのことについて真面目に議論している記述をあまりみたことがないので、少し考えてみます。
ちなみに、ハードウェアビニングは以前主流だったCCDカメラには搭載されていた機能ですが、最近主流のCMOSカメラではハードウェアビニング は原理的に搭載するのが難しく、ソフトウェアビニングとなります。それでも例えばASI294MM Proなどは、4つのピクセルを合わせて1ピクセルとしたものが標準で、オプションで1ピクセルごとの画素のデータも読み取ることができ、実施的にハードウェアビニングと同じような機能を搭載しているものもあります。
ビニングでのS/N向上
そもそも、ビニングとはどんなものなのでしょうか?撮影ソフトの機能だけでみたら、bin2は縦横2つで計4つのピクセルを1つのピクセルとして扱い、4倍の明るさを得る手法です。明るさが4倍なのでショットノイズは√4=2倍になり、そのため、ショットノイズに対してのS/Nは4/2=2倍よくなります。
これだけのS/N増加をbin1で得ようとしたら4倍の時間をかける必要があります。例えば、bin2で1時間撮影することとbin1で4時間撮影することが同じ、bin2で4時間撮影することとbin1で16時間撮影することが同じ、bin2で10時間撮影することとbin1で40時間撮影することが同じです。10時間撮影は頑張れば可能ですが、40時間撮影はそれこそ長期にわたって安定した天気と、相当な根気が必要になってきます。撮影日数は1週間オーダーになるでしょう。私が住んでいる富山ではこんなに連続で晴れることはほぼあり得ないので、今の私の環境ではトータルで10時間くらいが限界です。例え10時間でも、実際には設置やトラブル回避などにも時間をとられるので、数日にわたります。
bin3なら3x3=9個のピクセルを一つとして扱うので、9倍の明るさ、√9=3倍のショットノイズで、S/Nの向上は9/3=3倍となり、同じS/Nをbin1で得ようとしたら、9倍の時間をかける必要があります。
このように、S/Nの向上という観点からはビニングは効果があることはあきらかです。その代わりに空間分解能(解像度)を犠牲にしています。
ハードウェアビニング
ハードウェアビニングの特徴は、カメラのセンサー部の段階でピクセルを足し合わせてから、情報として読み出すことです。例えばbin2の場合、輝度は4倍になり、読み出しノイズは1倍のままなので、読み出しノイズに関してはS/Nで4倍も得することになります。その代わりに、分解能が一辺あたり半分、面積では4分の1になります。
また、ハードウェアビニングではダイナミックレンジが、例えばbin2では2ビット分減る可能性があぷらなーとさんによって指摘されています。というか、ASI1600ってCMOSカメラなのにハードウェアビニングできるんですね。本家ZWOのページを見ると、確かにできると書いてます。
このように、ハードウェアビニングも少なからず不利な点があることに注意する必要があります。
まとめると、ハードウェアビニングでは、例えばbin2はbin1に比べて
- 空間分解能が一辺半分になって(不利)
- 4倍明るくなり(有利)
- ショットノイズに対してS/Nが2倍良くなり(有利)
- 読み出しノイズに対してS/Nが4倍良くなり(有利)
- ダイナミックレンジが2ビット減る(不利)
ソフトウェアビニング
次に、ソフトウェアビニングについて考えてみます。一般に、ソフトウェアビニングはハードウェアビニングより不利と言われていますが、どうなのでしょうか?
まず、ビニングで輝度が上がることによるショットノイズについてはハードウェアビニングもソフトウェアビニングも効果に違いはありません。
ではソフトウェアビニングの何が不利なのかというと、読み出しノイズの部分です。ハードウェアビニングではセンサー部でピクセルを足し合わせているので、足し合わせた輝度について1回読み出すだけでいいのですが、ソフトウェアビニングでは輝度の値を読み出した後に「ソフト的に」輝度を足し合わせるので、読み出し回数は足し合わせるピクセルの数の分だけ必要となります。読み出しノイズはその回数分増えるので、bin1に比べて不利になります。
ソフトウェビニングをすることで、ハードウェアビニングに対してどれくらい読み出しノイズが増えるか、計算してみましょう。例えばbin2の場合、bin1の一つのピクセルの読み出しノイズをN_rとすると、ノイズは2乗和のルートで効いてくるので、4ピクセル分で4回読み出すとすると
sqrt(N_r^2+N_r^2+N_r^2+N_r^2) = sqrt(4xN_r^2) = 2N_r
となり、2倍の読み出しノイズとなります。このことがハードウェアビニングに対して、ソフトウェアビニングは不利になるという根拠になります。でもこれはあくまでハードウェアビニングに対して2倍不利になるというだけで、bin2のソフトウェアビニングでも輝度は4倍となるので、S/Nをとると4/2 = 2倍有利になるので、読み出しノイズに関して得します。ハードウェアビニングに対して得する度合いが小さいというだけです。
まとめると、ソフトウェアビニングでは、例えばbin2はbin1に比べて
- 空間分解能が一辺半分になっていて(不利)
- 4倍明るくなり(有利)
- ショットノイズに対してS/Nが2倍良くなり(有利)
- 読み出しノイズに対してS/Nが2倍良くなり(有利)
- ダイナミックレンジも変化無し(同じ)
あ、ダイナミクレンジに関しては、16ビットセンサーだと勿体無いかもしれません。元々16ビットの情報を持っているとすると、ソフトウェアビニングで計算機内部では18ビット相当まで行きますが、ファイルフォーマットが16ビットだとすると、ファイルに保存するときに2ビット分はいずれ捨てられることになります。あくまで勿体無いというだけで、少なくとも16ビットのままで悪くはならないのですが、ファイルフォーマットのダイナミックレンジを撮影ソフトから書き出す時に大きくできれば、さらに2ビット稼げる可能性があります。
ダイナミックレンジに関しては、私自身はきちんと検証しているわけではないので、あくまで理論的な話です。例えば14ビットセンサーのbin2のソフトウェアビニングが、14ビットで保存されるのか、(ファイルのフォーマット的には余裕があるので)16ビットで保存されるのかちょっと興味があります。
本当にソフトウェアビニングは不利なの?
ここまでの記事なら、よくあるハードウェアビニングとソフトウェアビニングの説明になります。よくある記事と言っても、実際には定性的に説明してあるページがほとんどで、実際に数値できちんと書いてあるところは探すのが大変なくらい少ないです。
で、ここからが「ほしぞloveログ」ならではの本番の記事となります。多分どこも議論しているところはないと思います。それは、ソフトウェアビニングはハードウェアビニングに比べて本当に不利かという疑問です。
ここまでの上記の検証で、ソフトウェアビニングがハードウェアビニングに比べて不利な点は、読み出しノイズについてのみです。しかもダイナミックレンジに関しては、むしろソフトウェアビニングの方が有利な可能性が高いです。
読み出しノイズについてもう少し考えてみます。これまでの実画像からのノイズの検証で、撮影画像のノイズ成分についてずっと議論してきました。その結果、開田高原や海外チリなどのかなり暗い環境においてさえも、実際のトータルのノイズはスカイノイズに制限されていることが多く、読み出しノイズがほとんど効いていないことがわかります。特に自宅のような光害地ではその傾向が顕著で、圧倒的にスカイノイズが支配的で、読み出しノイズやダークノイズはほぼ完全に無視できることがわかります。
このように、本格天体撮影のほとんどの場合において、読み出しノイズが支配的な状況になるとはあまり考えられず、その場合は唯一の違いであるハードウェアビニングとソフトウェアビニングでの読み出しノイズでの有利不利はなくなると考えられます。ダイナミックレンジの観点からは、むしろソフトウェアビニングの方が有利になる可能性さえあります。
ただし、
そもそもハードウェアビニングとソフトウェアビニングの違いを気にするような方は、かなり撮影にも凝った方なのかと思います。明るいF値の鏡筒を使うことも多く、長時間露光で、読み出しノイズよりもダークノイズやスカイノイズに支配的な状況になりがちかと思います。もし今回の私の検討が正しいとするならば、ハードウェアビニングとソフトウェアビニングの違いについては気にする必要はなく、(分解能を気にする状況でなければですが)遠慮なく現在のCMOSカメラのソフトウェアビニング使っていいのかと思います。
どうしても心配な方は、自分で撮影した画像で一度ノイズを実測してみるといいかと思います。最近のこのブログの記事を見返すと、ノイズの原理と測定方法など書いておいてあるので、どなたも簡単に測定と評価までできるのかと思います。
- 環境のいい暗い空において
- 暗い鏡筒使っている
- 一枚あたりの露光時間が短い
- ナローバンド撮影で明るさを制限して撮影している
そもそもハードウェアビニングとソフトウェアビニングの違いを気にするような方は、かなり撮影にも凝った方なのかと思います。明るいF値の鏡筒を使うことも多く、長時間露光で、読み出しノイズよりもダークノイズやスカイノイズに支配的な状況になりがちかと思います。もし今回の私の検討が正しいとするならば、ハードウェアビニングとソフトウェアビニングの違いについては気にする必要はなく、(分解能を気にする状況でなければですが)遠慮なく現在のCMOSカメラのソフトウェアビニング使っていいのかと思います。
どうしても心配な方は、自分で撮影した画像で一度ノイズを実測してみるといいかと思います。最近のこのブログの記事を見返すと、ノイズの原理と測定方法など書いておいてあるので、どなたも簡単に測定と評価までできるのかと思います。
特に淡いSh4-240のOIII成分
というわけで、つい最近淡いSh2-240を、上記のような考えの元でソフトウェアビニングのbin2で、明るい自宅の庭で撮影してみました。
光害地であるため、ナローバンド撮影といえどもスカイノイズが完全に支配的です。これまでの議論から、このような状況での撮影ではハードウェアビニングとソフトウェアビニングの読み出しノイズの差なんて完全に無視できます。それよりも淡い天体に対して輝度を高くでき、S/Nを稼ぐことができるほうがはるかに有利になります。例えば、ショットノイズ(=スカイノイズ)に関しては露光時間4倍で撮影することと同等なので圧倒的に有利で、現実的な撮影時間で淡い部分を出すことにかなり貢献してくれます。
結果を見る限り、光害地からの撮影でも、特に淡いOIII成分も情報と十分に残っていることがわかります。今回は6時間半の撮影ですが、これをもしbin1で撮影していたら、(空間分解能は無視するとして)同等のS/Nを得るためには28時間の撮影時間となっていたはずです。
まとめ
今回の記事ではビニングについてまとめてみました。特にハードウェアビニングとソフトウェアビニングの違いついて、少し定量的に議論してみました。ちょうどこの満月期で、しかも天気も悪いので昼間に太陽を見ることもなく、時間をかけてじっくり考えることができました。
読み出しノイズに支配されないような状況下では、ハードウェアビニングとソフトウェアビニングについて大きな差はないので、必要ならば分解能を犠牲にして輝度を上げS/Nを上げることができる、現在のCMOSカメラで使えるソフトウェアビニングを遠慮なく使っていいという結論になります。ただし、自分で考えたことなので大きく勘違いして間違っている可能性もあります。何か気づいた際にはコメントでも残していただけるとありがたいです。
参考記事
この記事をほぼ書き終えて、改めて検証のために、ある程度の理屈と感度向上を数値まで含めてで日本語で記述しているあるページを探してみましたが、ほとんど見つけることができませんでした。これまでビニングに関しては神話的に色々囁かれていたような状況だったことが想像できます。
- 画像のビニングについて、定性的な説明だけをしているページはたくさんあります。感度が4倍になるとだけ書いているページもある程度見つかります。でもきちんと理由とともに説明していあるページは、調べた限りWikipediaだけでした。
- 実画像で検証してあるページがありました。ひろしさんという方が書いている「ヒロシの天体観測」というブログの中に書いてあり、2011年とかなり古い、CCD時代の記事です。いろんなケースを比較していて、とても好感が持てます。ハードウェアビニングとソフトウェアビニングで結果があまり変わらないとか、レンジもハードビニングのほうが狭いなど、理由がはっきりとせずかなり疑問もあったようです。画像の比較結果は、今回の私の記事での説明と矛盾するようなことはないように思いますし、疑問に対しても今回の記事の内容でかなり程度説明できるように思えます。コメント欄を見ても、当時活発に議論していることがわかります。
- シベットさんのブログ「浮気なぼくら」でも検証記事があります。bin1からbin4まで4つ比較していて、それぞれで違いはないと結論づけられていますが、ヒストグラムを見てもbinの数が増えるごとに明らかに山の幅が短くなっていること(=ノイズが小さくなっているということ)、画像を見ても背景のノイズが明らかに減っているので、S/Nという観点からは十分な効果が出ていると思われます。
きまぐれ日記
これまで書いてきたノイズ検証の関連で、だいこもんさんとNiwaさんから画像を提供して比較検討してきました。その過程でお二方からDMで質問や議論があり、直接話しますかということになりました。
ちょうど昨晩、星沼会の定例のミーティングといういうことで、そこで話せばいいのではと、私もゲスト参加させていただきました。メンバーはだいこもんさん、Niwaさん、hinokirさん、ぐらすのすちさんでした。
ミーティング自体は21時から始まっていたのですが、私は途中21時から参加して、結局0時近くまで話し込んでいました。ノイズの話で盛り上がること自体がそもそも濃いのですが、さすが星沼会、他に話している内容もとても濃かったです。私自身もかなり楽しい時間を過ごすことができました。ゲスト参加を認めていただき、どうもありがとうございました。
ブログ記事と関係ないのですが、天文関連でちょっとしたことがあったら、こんなふうに記事にに混ぜて日記がてら書いて行けたらと思っています。