低ISOの方がいい!?
HIROPONさんが、画像処理まで含めたら低ISOの方がいいという記事を書かれました。
HIROPONさんは東京都心に住んでいるため、明るいところでの撮影を得意としています。確かに、都心のような超光害地ではHIROPONさんの言っていることは正しいと思いますし、HIROPONさん自身も光害地での撮影を前提に記事を書いているのかと思います。ただし、その「光害地での撮影」が前提であることを考慮せずに、低ISOが常に正しいと思い込んでしまう低ISO信者になってしまう人が出てくるのを少し心配しています。何事も鵜呑みにするのではなく、状況に応じて自ら考えることが大切なのかと思います。
HIROPONさんは、暗い場所でもさらに低ISOで露光時間を伸ばす方向に進めたいような発言もされてますが、光害地でISOが低いと不利になることの一つは、時間の制限があるからかと思います。無限に時間があるなら、低いISOで露光し続け、淡い天体まで出した方が得です。でも現実にはガイドずれや、人工衛星などの邪魔な光が入る可能性などがあるので、ある程度の時間で区切らざるを得ない。そんな時はISOを上げ、露光時間を制限した方が得になります。HIROPONさんもこのことをきちんと理解している旨の発言をしていますので、必ずしも全て低ISOがいいと言っているわけではないのかと思います。
高ISOの方がいいのか?
光害地での低ISOが有利な理由はHIROPONさんがすでに述べられているので、ここでは暗いところで高ISOが有利な理由を中心に述べていきたいと思います。
ISOを上げる一つの理由が、読み出しノイズよりも淡い天体を見たい場合です。読み出しノイズが加わる時点以前にゲインを上げることができるなら、より小さな信号を見ることができます。でもよく考えるとこれも先に挙げた露光時間を伸ばす代わりに時間制限があるのでISOを上げることと根は一緒ですね。
言うなれば、明るさ、時間という物理量に対して、露光時間、ISOというカメラ側の機能を駆使して、いかにカメラの持っている生のダイナミックレンジ(ファイルフォーマットでは16bit、一眼レフカメラは14ビット程度が多い)に入れ込むかという話に行き着きます。「明るさ」という物理量には、ターゲット天体の明るさ、背景光(+背景光ノイズ)、リードノイズ、その他ダークノイズ、ショットノイズなどがありますが、今回話題としているのはターゲット天体の明るさ、背景光なので、基本的にこれに絞り、必要ならノイズ(特にリードノイズ)を考えることにします。
2020/11/1 追記: Zoom会議で、やはり都心の超光害地で撮影されている方から、とにかく何も写らないのである程度滑らかにしておかないとダメ、だから天体からの光子数を少しでも稼げる低ISOがいいのではないかとの発言がありました。皆さん納得してましたし、私もその通りかと思います。
Twitte上での疑問
黒・天リフさんが今回のHIROPONさんの記事に対して、Twitter上で色々疑問を呈してくれています。勝手に引用してしまっているので申し訳なくて、まずかったらすぐに消しますが、折角の疑問なので、私(Sam)のわかる範囲で答えてみようと思います。私自身はノイズに関しては多少勉強はしてますが、センサーに関してはプロでもなんでもないので間違ったことを言っているかもません。なのでここで書いたことは正しいとは限らないですし、簡単に答えの出ないものもあるのかと思います。自分で考える発端になればいいかなと思っているくらいです。
黒・天リフさん
一番重要なのは、コンポジット前の1枚画像のヒストグラムが偏らない(いわゆる中央より右)ことではないか?根拠は一つ、それが一番限られたビット幅を有効に使えるであろうから。
反論)天体写真においてはヒストグラムの山から左は基本的にゴミデータ。ゆえに「意味のある階調のビット幅」は山から右端までの間になる。それなら山は左に寄せた方がより階調が広くなるのではないか?
反論の反論)・・・・・・「ヒストグラム山右寄せ」は多くの方が実践し好結果を得ているように思えます。私はチキンなのでいまだにヒストグラムを2/3より右にできませんが、人によってはびっくりするほど右寄せにされている模様。なぜ「右寄せの方がよりよい」のかが自分にとっては未解明。 Sam
量子化ノイズの問題だと思います。左寄せはADCのLBS (量子化単位)に近くなっていくので損なはずです。階調不足と言った方がいいでしょうか。なので右寄せの方が好結果を得ているというのは正しいと思います。でも右寄せはダイナミックレンジを犠牲にしているので、当然恒星とかはサチりやすくなります。nagahiroさんがもっとわかりやすく説明してくれていて「見た目の明るさが2倍違う天体AとBを撮影したとして、ヒストグラムの左側を使っているとそれぞれ画像上の輝度値が5,10だったのが、右側を使うと50,100になって、後者のほうが諧調が豊か」ということです。
量子化ノイズの問題だと思います。左寄せはADCのLBS (量子化単位)に近くなっていくので損なはずです。階調不足と言った方がいいでしょうか。なので右寄せの方が好結果を得ているというのは正しいと思います。でも右寄せはダイナミックレンジを犠牲にしているので、当然恒星とかはサチりやすくなります。nagahiroさんがもっとわかりやすく説明してくれていて「見た目の明るさが2倍違う天体AとBを撮影したとして、ヒストグラムの左側を使っているとそれぞれ画像上の輝度値が5,10だったのが、右側を使うと50,100になって、後者のほうが諧調が豊か」ということです。
デジタルゲインでは階段上のまま増幅されるが、アナログでゲインを上げると階調豊かになる。
黒・天リフさん
天体の光は実際にはどのくらいの光子をセンサーに届けているのか?たとえばごく淡い分子雲を総露出120分で撮影したとき、1画素に分子雲の光子は「何個」届いているかです。これがもし「1」なら直感的には鑑賞写真では判別不能に思えますが、では何個なのかと。
Sam
天体を仮定して計算するのは大変なのですが、Unity gainがわかっているなら画像から逆に計算することができます。Unity gainは1つの光子が1ADCの単位(=1LBS、最小量子化単位)という意味なので、Unity gainで長時間露光して撮影した画像で天体が写っていたなら、そのカウント数を数えればそれがそのままま光子数となります。
黒・天リフさん
バイアスノイズ≠リードノイズ?バイアスはセンサーの輝度値の「ゲタ」と認識しているのですが、これは「リードノイズ」とは別物と考えていいのでしょうか。ゲインをかけて増幅した値を読み出す際のノイズがリードノイズ?
Sam
同じと考えていいのではないでしょうか?バイアス補正はするけれどもリードノイズ補正はしないし、メーカーのデータにはリードノイズは出てくるけれどもバイアスノイズは出てきません。リードノイズとはどれだけ光を無くしても、露光時間を短くしてダークノイズを減らしても、どうしても読み取り時に出てくるノイズです。最短露光時間にしてバイアスノイズを測れば時間に比例するダークノイズの効果は無視できるようになるので、それは定義から言ったらリードノイズになると思います。リードノイズもバイアスノイズもISO(ゲイン)に依存します。
2020/11/1 追記: Zoom会議中で出てきた結論は、バイアスとリードノイズは別物という意見が大半でした。素子レベルでのオフセットがバイアス。バイアスはオフセットであって、ノイズではないというもの。でも私はまだ少し納得ができてなくて、結局あるゲインでのバイアスフレームをとるとそれはそのままあるゲインでのリードノイズに一致するのではないかと思うからです。でないと他にリードノイズを測る方法がないです。概念としてバイアスがオフセットなので別物というのは理解ができます。
さらに新たに出た疑問として、バイアスの時間変化はあるのだろうか?とうのがありました。例えばSony α7S3では一定の期間でバイアスを取得して書き換えてると言うことです。あぷらなーとさんがバイアスに関してはかなり解析されてました。
黒・天リフさん
「ゲインをかけて増幅した値を読み出す際のノイズがリードノイズ」だとすると、「ISO100 15秒」と「 ISO1600 15秒」ではリードノイズの影響はISO1600の方が少ないことになると推測。現実にはCMOSセンサーのリードノイズは今やとても低いので大きな差にはならないのかも。
黒・天リフさん
「ゲインをかけて増幅した値を読み出す際のノイズがリードノイズ」だとすると、「ISO100 15秒」と「 ISO1600 15秒」ではリードノイズの影響はISO1600の方が少ないことになると推測。現実にはCMOSセンサーのリードノイズは今やとても低いので大きな差にはならないのかも。
Sam
リードノイズはゲインに依存します。メーカー値を見てもそうですが、例えばSharpCapを使ってZWOのASIカメラとかで実測すると、その依存性が出て、高いゲインの方がリードノイズが小さくなると出ます。ただし、この「小さくなる」というのは入力換算での話で、ゲインで割った後のノイズの値が小さいという意味です。ゲインで割らないと当然ノイズもゲイン倍されて測定されるので、ゲインが高い方がノイズの値は大きくなるのはいうまでもありません。
そのため、露光時間が同じ場合、淡い天体を撮る場合にはISOが大きい方が得だと思います。でも当然ダイナミックレンジは犠牲になります。
でも少し疑問もあって、そもそもISOで上げるゲインはどこにあるのでしょうか?回路的にゲインを上げるならリードノイズ前で増幅するので高ISOが得をします。一方、読み取った後に計算機上でゲインを上げるなら、リードノイズは変わらず、むしろダイナミックレンジで損をします。一応データでリードノイズがゲインとともに下がるとでているので、前者が正しいのかと思っています。
2020/11/1 追記: 実際の天体からくる光子数をあぷらなーとさんが過去に計算してくれてます。
https://apranat.exblog.jp/27577057/
これによると、M27で1秒間に1ピクセルに0.7個だそうです。
黒・天リフさん
理想的なセンサーと完璧な背景光キャリブレーションがあれば、背景光の輝度に関係なく、同じ画像を得ることが可能。これって実現可能性はゼロに近いですが、論理としては間違ってませんよね?
常々、光害地と遠征地でのディープスカイの写りの差はもっと少なくできてもいいはずなのにと思うのですが、その根拠?となる仮説です。でも実感値としては全く間違ってるような気がしますね・・背景光の「揺らぎ」のレベルが違うのでしょうか。
常々、光害地と遠征地でのディープスカイの写りの差はもっと少なくできてもいいはずなのにと思うのですが、その根拠?となる仮説です。でも実感値としては全く間違ってるような気がしますね・・背景光の「揺らぎ」のレベルが違うのでしょうか。
Sam
そもそも光の揺らぎも0ということはあり得ません。光子数のルートに比例する統計的な揺らぎが必ず存在します。なのでたとえ理想的なセンサーがあってもダメです。
信号が全て中央値だけのような統計的にばらつきのないものなら、背景光なども完全に引くことができるのですが、実際には(光子数、センサー読み取り値ともに)ノイズは必ずばらつきがあるので、完全に取り去ることはできません。背景光が明るければその分そこからくる(統計的に明るさのルートに比例した)ノイズも大きいです。なので、ゲインをあげて、背景光のノイズが効かない分解能が高いところでノイズを差っ引いた方が有利です。
HIROPONさんが画像処理が前提の場合はISOが高くても低くても差はほとんどないと発言されてるのですが、これも天リフさんと同じような仮定をしているからだと思います。画像処理が前提でも、ADCのレンジのどこに落とし込むかを考えないと、特に低ISOの場合は量子化ノイズに制限されることがあります。また画像処理にはノイズを差っ引くような処理が多いのですが、ノイズの平均値を差っ引くことはできますが、ノイズ(揺らぎ)そのものを差っ引くことはできないので、ゲインをあげてRead Noiseなどのゲインステージよりも前に入ってくる信号をあらかじめ増幅した方が得です。量子化ノイズ、リードノイズよりも天体の情報の方が十分大きく、量子化ノイズ、リードノイズが無視できる範囲で、かつADCのレンジ内に十分入るならば、画像処理を前提にすればHIROPONさんの言う通り、ISOに関係なく同じ結果になると思います。この場合は背景光の効きは同じになるので、ISOによって有利不利はありません。
2020/11/1 追記: Zoom会議中に黒・点リフさんはライトフレームをスタックした場合を想定していて、私はライトフレーム一枚を補正することを前提として考えていることが判明しました。ライトフレームを無限にスタックしていけば、信号である天体に比べて、無相関なランダムノイズは統計的に枚数のルートに比例して揺れが小さくなっていくので、原理的に消すことができます。でも現実的にはライトフレームの枚数を増やしていってもあるところで改善が見られれなくなると思います。どこかに時間的に相関があるノイズが支配的になったりしてしまうなどが理由と思います。
黒・天リフさん
短秒多数枚はリードノイズが枚数分だけ乗ってしまうのが弱点(のはず)。リードノイズの大きな冷却CCDではあり得なかった戦略。でもISOを上げればリードノイズの影響を減らせる?という気になっているのだが、そこが根拠レスなので知りたいところ。
Sam
ISOの効果がリードノイズが加算される以前で効いているなら正しいです。ただしデジタルゲインと呼ばれているような、ゲインがリードノイズ加算の後に適用されている場合は正しくないです。むしろダイナミックレンジを削るので不利になります。でもダイナミックレンジで不利というのも程度問題で、計算機上で無限の(例えば32ビットとか、64ビットの)レンジがあれば無視できる問題です。
2020/11/1 追記: Zoom会議中の質問など
- 高いISOだと温度が上がったりしないか? -> 経験上あまりそういうことはない。
- リードノイズが枚数を増やすことで消せない理由が知りたい。 -> たくさん重ねると確かに得するが、他のノイズに比べるとその効きが悪いのであまり得しない。詳しくはここの「読み出しノイズ」を参照。
- PIはファイルを読み込んだ時にビット数拡張分を上に加えるだけなので、最初ものすごく暗く見える。その状態でスタックして加算「平均」して平均するところで割ってしまうと、狭いビットレンジのところに戻ってきてしまうので、階調が改善されないのではないか? -> 内部の計算が整数ならダメだが、不動小数点で計算しているなら大丈夫だろう。もしくはファイルに落とす時にビット数を選択できるくらいなので、計算機内部ではもっと情報量を保っているのではないか?ただし、ファイルに落とす時に、暗いままで、整数で、低ビットで保存すると情報が失われるので注意。
- ヒストグラムは対数かリニアでみてるか?Steller Imageで縦軸を対数で見ると、何も信号がないと思っているところでも小さな信号が残っていることがわかる。また、横軸をリニアで見るとかなり暗く見えてしまっている場合があるがそれでも大丈夫なのか?-> 上と同じ理由で計算機内部で情報を保っていれば大丈夫なのでは?でも同様に、ファイルに落とすときは注意。
- ISO側でなにか画像処理をしているのではないか? -> 少なくとも拡張感度というのはデジタルゲインで、さらに何か処理をしている可能性が高い。それだけでなく、常用感度でもなにか画像処理している可能性は否定できない。さらにRAWと言われているものでも、色々処理している可能性がある。例えば、オフセット、カットオフなどは触っている模様。でもカメラメーカーの裁量で決めていることで、情報としては出てこない。
- さらに、CMOSカメラも色々複雑。例えばASI294なんかは、ゲイン120のところからリードノイズがガクンと良くなる。これはノイズの違うアンプを2つ使っているから。それぞれのアンプはアナログの可変ゲインアンプで、外部入力で単体でゲインが変わるアンプが各画素に入っている。なので、大きなゲインでリードノイズが改善される。でもASI294はゲイン391以上でデータが1ビット間引かれ、以後ゲイン60(2倍)ごとに1ビットずつ抜かれていく。センサーメーカーのデータがそもそもゲイン390以上ないので、ゲイン390より上はカメラメーカーの後付けでデジタルゲインではないだろうか?
- 本来のハードウェアビニングは、リードノイズが効いてくる読み出し前に加算してしまうもの。昨今のCMOSセンサーのように、隣接ピクセルのリードノイズが加わった読み出した後の演算ではありません(それだとソフトウェアビニングになります。なんちゃってハードウェアビニングなどともよばれてます)。CCDとは異なり、CMOSの場合は原理的に読み出し前の加算が不可能らしい。それでリードノイズに違いが生じて、真のハードウェアビニングはリードノイズが4分の1になるのに、なんちゃっての方はそのルートで2分の1にしかならない。
- ASI294MCとASI294MMはセンサーの型番がIMX294とIMX492と違いがあれ、ほぼ同様のものと推測。そもそも294の方もクワッドベイヤー配列で、ユーザーが見る1つの素子が実は4つの素子からなっている。そのために本来12bitのダイナミックレンジが、14ビットに拡張されているのでは?
- サッポロポテト現象がASI294MCだと全く出ない。普通はほぼ全てのセンサーで出るので、これは驚異的。クワッドベイヤー配列の恩恵か。不思議なのはMMでも出ない。カラーベイヤーでフィルタリングしているのがサッポロポテト現象が出ない理由の一つのはずなので、MMで出ないのは不思議。理由は不明。
回路との比較
これらのことは回路のことを少し知っていると理解しやすいかもしれません。
光害地で背景光が大きい状態は、回路でDCオフセットが大きすぎて信号が見えにくい状況に似ています。例えばオシロで10Vレンジで1mVの振幅の揺れは見えないようなものです。
高いISOで淡い星雲を見やすくすることは、回路でサチらない範囲で適度にゲインを上げてSN比を上げることに相当します。
実際の回路でノイズのことを学ぶのは、役に立つと思います。例えば「計測のためのアナログ回路設計―OPアンプの実践回路から微小信号の扱いまで」の最初の方はものすごくわかりやすくノイズについて書いてくれています。実際にこれをみながら低雑音オペアンプを作ってみると、ノイズについてよくわかるかもしれません。
これらの電気信号を計算機に取り込む必要があり、こちらはまた別の話になります。量子化ノイズについては、ADCについてもよく理解しておく必要があります。
センサーの個々のピクセルに関しては回路の話になるのですが、多数のピクセルが集まったセンサー全体の話になると、また特有の事情が出てきます。conversiion factorなんかはたくさんのピクセルの統計的な振る舞いから求める典型で、初めて学んだ時は眼から鱗でした。
画像処理まで考えるとさらに複雑ですね。天体画像処理には、ターゲット天体の情報を持つヒストグラムの極範囲の狭い領域を、可視全域まで広げるという特殊な事情があります。逆に言えば、この領域を生かすような撮影方法を考えるべきで、あとはむしろ外に追いやってしまうような手法がセンサーに近い側で確立されると、もっと得すると思います。でも今の市場規模だと大変なのと、やはりRAW出力を求めるので、なかなかとっぴなことは難しいと思います。
まとめ
すみません、黒・天リフさんの疑問が散らばっていたので勝手にまとめてしまいました。まずかったら消しますので言ってください。
とりあえずバババッと短時間で答えてみましたが、どこまで合っていることか。色々疑問もあると思いますので、コメントとかTwitter上でもまた議論してもらえればと思います。
ノイズに関しては昔色々書いています。
でもよく考えたらADCの量子化ノイズについて言及したのは今回が初めてかもしれません。
こういった話も天体写真の別の面白い一面だと思います。これからも続けて議論していければと思います。
ノイズネタを肴にしたZoom飲み会開催のお知らせ
追記です。10月31日午後21時から、ノイズをネタにZoom飲み会を開催しようと思います。
Zoomに始めて参加される方はアプリが自動でインストールされるはずです。Windows、Mac、Linux、アンドロイド、タブレット、iPhone、iPadなど各種対応しています。発現する場合はマイクが必要です。顔出しOKの方はビデオカメラもあるといいかと。
たくさんの質問をTwitterに投稿していただいた黒・天リフさんも参加されるとのことです。他にも大物ゲストが来るかもしれません。
めんどくさい込み入った話になるかもしれないので、聞いているだけでも構いません。たくさんの方のご参加お待ちしています。