機材

ASI294MCの謎⑦

★カラーカメラのノイズ測定は難しい

Samさんも言及されていますが、
構造が単純なモノクロカメラと異なり、カラーカメラのノイズ(などの各種性能)評価は難しいですね。
今、本業が繁忙期なのでほとんど時間が取れないのですが、前回やったベイヤー素子のノイズシミュレーション↓をちょっぴりと進めてみました。


★R素子やB素子ではどうなるか?

前回やったシミュレーションでは、全画素の1/2をしめるG素子について簡単なシミュレーションを行ってみました。
そこで今度は、全画素の1/4しかないR画素やB画素についてデモザイク(ディベイヤー)の影響でノイズがどう変化するのかをシミュレーションしてみましょう。

ASI294MCはRGGB型のベイヤー構造ですので、およそ下記のような素子配置になっています。
f0346040_22363495.jpg
ですから、Rチャンネルについては上記の赤色のピクセルにしかデータが入っておらず白い部分はなんらかの形でデータ補完(デモザイク)が必要です。
正しい処理がどうなのかは知らないでですが、例えば自分でデモザイク演算するとすれば、次のように考えます。

まず、補完すべきピクセルを3つのパターンに分けます。
f0346040_22393206.jpg
次に☆マークのピクセルは対角状に隣接する4つのR素子の平均値を代入することにします
また○マークのピクセルは上下に隣接する2つのR素子の平均値を代入することにします
そして△マークのピクセルは左右に隣接する2つのR素子の平均値を代入することにします

以上の仮定の下、R素子に正規乱数を代入してモンテカルロシミュレーションしてみましょう。

すると・・・・

ででん!!
f0346040_22540763.jpg
このように、デモザイクすることでノイズ量(標準偏差)が概ね0.75倍になることが分かりました。

ちなみに、G素子でやったシミュレーションではデモザイクによってノイズ量は概ね0.79倍になるとの結果を得ましたので、R素子やB素子の方がデモザイクの影響を受けやすいということになります。
定性的には2倍の画素数に補完するG素子よりも4倍の画素数に補完するR素子やB素子の方がデモザイクの影響を受けやすいというのは納得できます。

でも・・・・


★こんな単純なモデルなら普通に解けないか?
白状します。あぷらなーとはモンテカルロシミュレーション大好きなのですが、これって別に高尚なことではなくて、実は『乏しい数学力を誤魔化す便法』なのですよー。要するに解析的(数式的)に解けない(解きたくない)時に便利な邪法な訳です。

でも、今回の様な単純なモデルなら、普通に解けないかなぁ・・・ってことで、少し計算してみました。


★G素子のデモザイクの場合
素の値が使えるピクセルをn個とすると
対角隣接する4ピクセルの平均値を代入したピクセルもn個となります。

4ピクセルの平均値を取る演算は、4ピクセルを加算平均コンポジットする行為と等価なので、
そのノイズ量(標準偏差)は1/√4=1/2になります。
(※n枚コンポジットするとノイズは1/√n倍になるから)

したがって、大元の標準偏差をSとすると
ディベイヤー後の標準偏差は

(( (S^2)*n + ((S/2)^2)*n )/2n )^0.5

=( (S^2)/2 + ((S/2)^2)/2 )^0.5

=( (S^2)/2 + ((S^2)/8 )^0.5

=( (4*(S^2) + (S^2) ) / 8 )^0.5

=( 5*(S^2) / 8 )^0.5

=S*(5/8)^0.5

=約0.7906*S

となります

要するに、G素子をデモザイクしてノイズ量が0.79倍になるとのシミュレーション結果は「至極当然」のことだったのですねぇ。
なんだー。高1レベルの数学知識を使って計算すれば済むお話だったのか・・・・。


★R素子のデモザイクの場合
素の値が使えるピクセルをn個とすると
対角隣接する4ピクセルの平均値を代入したピクセルがn個
上下もしくは左右の2ピクセル平均値を代入したピクセルが2n個
となります。

4ピクセルの平均値を取る演算は、4ピクセルを加算平均コンポジットする行為と等価なので、
そのノイズ量(標準偏差)は1/√4=1/2になります。
また2ピクセルの平均値を取る演算は、2ピクセルを加算平均コンポジットする行為と等価なので、
そのノイズ量(標準偏差)は1/√2になります。

したがって、大元の標準偏差をSとすると
ディベイヤー後の標準偏差は

(( (S^2)*n + ((S/2)^2)*n + ((S/√2)^2)*2n )/4n )^0.5

=( (S^2)/4 + ((S/2)^2)/4 + ((S/√2)^2)/2  )^0.5

=( (S^2)/4 + ((S^2)/16 + ((S^2)/4 )^0.5

=( (4*(S^2) + (S^2) + 4*(S^2)) / 16 )^0.5

=( 9*(S^2) / 16 )^0.5

=S*(9/16)^0.5

=S*(3/4)

=0.75*S

となります

ああ、R素子やB素子をデモザイクするとノイズ量が0.75倍になるというシミュレーション結果も「至極当然」のことだったかー。

というわけで、
苦労してシミュレーションした割には、普通に解いた方が早かった・・・・というオチでした(笑)


★★★お約束★★★
①あくまで素人が邪推しているだけなので、本式のデモザイク処理がどうなのかは不明です。
②手計算の検算はしていないので、変な計算ミスがあるかも・・・です。
③数式は単純に標準偏差の定義式から求めただけです。
④ノイズが正規分布に乗っていない場合は上記の推論は成り立ちません。
⑤真面目な『検証ごっこ』&『考察ごっこ』はGW頃(?)まで再開の目処が立っていません。


Commented by オヤジ at 2019-03-19 07:20 x
え え え 
この数式が高1なんですか。(汗)
もう、手遅れなので、結果だけいただきます。(笑)
Commented by te kure at 2019-03-19 15:25 x
あぷらなーとさんお久しぶりです。
恥ずかしい物を晒してしまいました。(汗)(笑)
そもそもバイアスノイズが解っておりません。
改めてジックリと勉強させて頂きます。

ところで私ごとですが、ケチらずにセンサーザイズの大きなCMOSを買え!と言う結論に至りました。(笑)
そこで 294ですが、通常のMCと proとでは性能が相当に違うのでしょうか?
扱いが簡単そうなのでまたケチってしまいそうです・・
Commented by 是空 at 2019-03-19 20:20 x
確かにその数式を電卓使って計算するのは、自分が高1の時でもできたと思う。
そうではなく、問題に対してその式を導き出せるかというとが問題。
と、私やオヤジさんを含め全国数千万人の文系人間の意見を代弁。^^;

<私が社会人になったばかりの頃の話>
別の仕事をしている同期と昼飯を食っているとき、
その同期が、「ルートを計算するロジックを知らないか?小数点第1位まで計算できればいいんだけど。もしくはそんなルーチンどこかに転がってないかな?」という。
その同期は、COBOLで開発していてCOBOLにはルートという関数がない。
私は簡単につくれそうだと思いながら、自席もどって同期の女の子にその話をしたら、一言「0.5乗したらいいんじゃないの。」
その瞬間あいた口がしばらく閉じなかったのを覚えている。
COBOLにはルートはないがべき乗はできるし、学生時代logを習ったときに√x=x^0.5ということを知っていた。
けど、その考えが出てこなかった。

これが理数系と文系の違い。^^v(←なぜかピース)
Commented by Sam at 2019-03-19 20:57 x
いやいや、シミュレーションと理論でクロスチェックするのはものすごく説得力が上がります。
簡単な数学ですが、ものすごく素直な考え方で、こういったシンプルな考え方をすることはとても大切だと思いますい。素晴らしいです。

今の私の疑問は、モノクロCMOSカメラではごく普通に標準偏差を求めるだけでメーカー値と一致するのに、カラーだとなぜ一致しないのかです。

CFAで分解したもが一致すれば何の問題もなかったのですが、やはりノイズが大きくなるのは明らかなようなので、SharpCapでもデモザイク(debayer)相当なことをしていることは間違い無いと思います。
今回のあぷらなーとさんの結果から、SharpCapでカラーの場合はRAWデータを使えと書いてあるのは、「RAWで解析しているよ」という意味ではなく、「解析中にRAWをdebayerするプロセスが必要だから最初からdebayerされたものは使うとダメだよ」と理解できました。でも、それだけでもまだノイズが大きすぎるんですよね。そのため標準偏差を使わずに、平均偏差を使ってみるというトリッキーなことをしたのですが、これもまだ納得しきれていません。

SharpCapのヒストグラムを見ていると、RGBに比べてLの方が明らかにノイズが小さいのです。でもLって何でしょう?色々調べたけど、LabのLなのか、でもこれだとabのこともきちんと考えないとダメな気もします。もしくは単にRGBを加算平均したものをLといっているだけなのか?そこらへんをもう少し突っ込みたいと思っています。
Commented by supernova1987a at 2019-03-19 23:36
> オヤジさん
あくまで、今の高校生の1年レベルです。
我々の頃なら3年生ですね。
あ、今回の記事は単なる自己満足記事なので、結果も忘れていただいて結構ですよ~。
Commented by supernova1987a at 2019-03-19 23:45
> te kureさん
実際には、バイアスの平均値はダーク減算時にさっ引かれてるので、あまり意識しないでも良いと思います。バイアスノイズが効いてくるのは、ノータッチガイド+短時間露光+多数枚コンポジットといった『邪道』で遊ぶ時ですね。

さて、294のproですが、やはり冷却によってダークノイズが減るところが魅力なのですが、個人的には、天体撮影時とダーク撮影時の温度を揃えられるというのが最大のメリットだと考えてます。温度が変わるとダークノイズの出方が変わるので、うまくダーク減算できないからです。
Commented by supernova1987a at 2019-03-20 00:03
> 是空さん
近年は中2生でメジアンとかモードまで習うし、分散や標準偏差も高1で定義と使い方を習っちゃうのですよー。
それに対して、自分は高3の時でも今回の立式はできなかったと思います。(物理と現代文だけが無敵で、数学は赤点まみれという、困った理系でしたので。)
ですから今回の立式も『精一杯』です。恐らく真っ当な理系諸氏には鼻で笑われてると思います。
Commented by supernova1987a at 2019-03-20 00:21
> Samさん
位置の異なる複数の群に対して、それらを統合した場合の揺らぎ量を求めてみたのは(お恥ずかしながら)初めての経験でした。
平均点は同じだけれど標準偏差が異なる複数の受験生チームが合併したらどうなるかーなどと考えながら立式しましたが、多分合ってますよね??

さて、カラーカメラにおけるLなるものは謎ですね。色ごとのピーク値とガンマをそろえてからモノクロディベイヤー処理するのでしょうかねぇ??
いずれ実写データで検証ごっこしてみます。
Commented by オヤジ at 2019-03-21 09:52 x
あぷらなーとさん
そう言えば、職場研修で来られた、アメリカのお嬢さんと担任の英語教師、教室で会話が成り立たなくて、何故!通じないのかで・・・・静まり返りました。
微分積分、社会では役に立たないと言い切った数学の先生とか。(笑)
社会人になって、最初の研修では、流体力学関連プログラミングで、行き成り微積。(爆)
中々、世の中って上手く行きませんね。
あぷらなーとさん・samさんのブログ、拝見するのが凄く楽しみです。
Commented by にゃあ at 2019-03-22 06:28 x
鶴亀算を解くのに方程式を使ってはいけない!と指導する小学校の授業みたいなものですかね。世の中の事象を数式に落とし込んでいく作業に憧れます。そろそろあぷらなーとさんは天文の現場復帰できる時期でしょうか。腕の調子はいかがですか? 変態構成から生み出される天体写真を楽しみにしてます!
Commented by supernova1987a at 2019-03-23 01:02
> オヤジさん
本当は小学~中学で習ったお勉強って意外と応用範囲が広いんですよぉ。小学理科の応用で望遠鏡のケラレ推算とかできちゃいますし。でも、使えるかどうかは成績とは無関係ですよねぇ。
それにしても流体力学とは!私はダイバージェンスとかローテーションが出てきただけで吐き気がしてしまうダメ理系なので、とても太刀打ちできません。
Commented by supernova1987a at 2019-03-23 01:11
> にゃあさん
学校教育現場におけるスタンスは色々な議論を生みますね。ちなみに私は中学の頃に「角度を度で計るから計算が面倒なんだ!半径と弧が一致する角度を基本単位にすれば良いのに!」と、ラジアンの概念を『発見』したのですが、数学の先生に言ったら鼻で笑われました。この手の生徒は往々にして成績が悪いですからねぇ(笑)
名前
URL
削除用パスワード
by supernova1987a | 2019-03-18 23:59 | 機材 | Comments(12)

あぷらなーとの写真ブログ


by あぷらなーと