mengineer's blog

ニッチなネタばかりですが。

EMVA1288の世界その3:ノイズとSNR

三回目はノイズにまつわるエトセトラ、色々と出てきますが、
例によって引用元は全てEMVA Standard 1288 Release3.0から。

SIGNAL TO NOISE RATIO の定義

信号とノイズの比率です、略してSNR もしくは SN、SN比
単位は[dB]ですが、[bit]表記される場合も有ります。

従来の仕様では、遮光時のSNを記載することが多かったのですが、
EMVA1288では、カメラ飽和(saturation)時のSNと定義されています。

単純に数値だけで比較すると、従来より悪くなるので注意して下さい!
Maximum SNR と表記しているカメラメーカーも有ります。

再び、前回(EMVA1288の世界その2)のグラフが登場

f:id:mengineer:20160405231614p:plain

saturationでカメラが飽和していますが、この時の電子数{\mu_{e.sat}} のことを、
saturation capacity と言います、実はこれもEMVA1288のデータのひとつ。

飽和時のデジタル出力が{\mu_{y.sat}}なら、saturation capacity {\mu_{e.sat}} は、

{ \displaystyle
 \mu_ {e.sat} =  \frac {\mu_{y.sat}} {K}
}

で計算出来ます、Kは前回説明したシステムゲインですね。

saturation capacityは大きい方が、より明るい状態まで撮像出来るので、
いわゆるダイナミックレンジも広くなります。(この辺の話は、いずれまた)

さて肝心のSNRは、下記の式で計算出来ます。

{ \displaystyle
 SNR = \sqrt {\mu_{e.sat}}
}

え、これだけ?、ちょっと拍子抜けしませんか? 、比率にもなっていないし、
システムゲインと飽和時の画像レベルだけ判れば計算出来ることになります。

なぜかという話は、次節以降にて。(またまたディープな世界です)

ちなみにSNRやsaturation capacityは、英語ですが下記にも概要説明が有ります、
図も有って見やすいので、興味の有る方は見てみて下さい。

https://www.ptgrey.com/point-grey/10931

概要だけで無く、各パラメータの実際の測定方法や計算方法等も知りたいけど、
ノウハウなのか、どこのメーカーさんも載せていないようです、残念....。

NOISE MODEL

EMVA1288では、ノイズを下記の三種類に分けてモデル化しています。

まず光に起因するショットノイズ、電子数{\mu_{e}} の時に発生するノイズ{\sigma^2_{e}}は、
電子数の分散となり {\sigma^2_{e}} = {\mu_{e}} 、電子数なので光量に比例して増えます。

次に、{\sigma^2_{d}}で表される、センサー読み出し時のReadNoise。

最後が、{\sigma^2_{q}}で表される、A/D変換時の量子化ノイズ。

これらを総合したノイズ量 {\sigma^2_{y}} は、 {\sigma^2_{y}} = {{K^2}({\sigma^2_{d}} + {\sigma^2_{e}}) + {\sigma^2_{q}}} で計算されますが、
ここに {\sigma^2_{e}} = {\mu_{e}}と、{  \mu_{y} = \mu_{y.dark}  +  K\mu_{e} }(前回記事参照)を代入すると、
最終的に下記の式になります。

{ \displaystyle
 \sigma^2_{y} = K^2\sigma^2_{d} + \sigma^2_{q} + K(\mu_{y} - \mu_{y.dark})
}

右辺の右側、{K(\mu_{y} - \mu_{y.dark})}は光量によって変わる部分です、
その左、{ K^2\sigma^2_{d} + \sigma^2_{q}}は、オフセット部分で一定値。

と、この形どこかで見覚え有りませんか?

そう、もし { K^2\sigma^2_{d} + \sigma^2_{q}}{ \sigma^2_{y.dark}} に置き換えることが出来れば、
{ \sigma^2_{y} = \sigma^2_{y.dark} + K(\mu_{y} - \mu_{y.dark})} となり、 前回のシステムゲインの計算式

 { \displaystyle
K =\frac{\sigma^{2}_{y} - \sigma^{2}_{y.dark}}{\mu_{y} - \mu_{y.dark}} 
}

が得られます、置き換えの詳しいカラクリは省略しますが、
前回の電子数ってどこいったんだ?の答えは、この辺りということで!

SNRの計算方法

しついようですが、SNRは信号とノイズの比率なので下式で計算出来ます。

 { \displaystyle
SNR =\frac{\mu_{y} - \mu_{y.dark}} {\sigma_{y} }
}

前出 {\sigma^2_{y}} = {{K^2}({\sigma^2_{d}} + {\sigma^2_{e}}) + {\sigma^2_{q}}}{  \mu_{y} = \mu_{y.dark}  +  K\mu_{e} }{\sigma^2_{e}} = {\mu_{e}} から代入すると、

 { \displaystyle
SNR =\frac{\mu_{e}} {\sqrt{\sigma^2_{d} +  \sigma^2_{q} / K^2 + \mu_{e}}}
}

ここでカメラが飽和する状態を考えると、ノイズの大半はショットノイズ即ち、 { \sigma^2_{d} +  \sigma^2_{q}/K^2 \ll \mu_{e}} となります、 上式で分母の { \sigma^2_{d} +  \sigma^2_{q}/K^2} 部分を無視すると、

 { \displaystyle
SNR =\frac{\mu_{e}} {\sqrt{\mu_{e}} }  = {\sqrt{\mu_{e}} }
}

となり、最初に説明した  { SNR  =  \sqrt{\mu_{e.sat}}} が得られるわけです。

dBやbit表記では、下記の計算式になります。

 { \displaystyle
SNR[dB] =20\log\sqrt{\mu_{e.sat}}
\\
SNR[bit] =\log_2\sqrt{\mu_{e.sat}}
}

実際の規格書では数式の {\mu_{e}} の部分が{\eta\mu_{p}}となっていますが、同じことです。
(復習:量子効率{\eta} は、光子数から電子数への変換係数なので)

ちなみにsaturation capacity {\mu_{e.sat}} も、飽和時の光子数を {\mu_{p.sat}} として
{\mu_{e.sat} = \eta\mu_{p.sat}} から計算するようになっていますが、これも同じこと。

光子数を測定するには、光パワーメーター等の専用設備が必要なので、
ここでは極力それらを使わないで出来る計算方法で説明してきました。

要はシステムゲインさえ計算出来れば、量子効率などは別としても、
ある程度のデータまでは計算出来るはず、というのが自分なりの結論。

それ以外のノイズは?

気付いた方も居られるかもしれませんが、ここまで色々と説明してきた内容は、
全て時間的なノイズです、前回、システムゲインのグラフでY軸の{\sigma^2_{y}}は、
二枚の画像A,Bの差から計算していたことを思い出して下さい。

それ以外の空間ノイズや熱起因ノイズなど、規格書に説明は有るのですが、
正直あまり理解出来ていないので、ここでも説明しません。

ちなみに下記が、規格書で挙げられた全部のパラメータです。 f:id:mengineer:20160409124319p:plain

DSNU1288やPRNU1288等が、空間ノイズに関する部分、
Dark CurrentやDoubling temperature等が、熱起因ノイズの部分になります。

両方ともMandatoryになっていますが、前出のPointGrey社などは、
このデータを開示していません、あまり重要では無いのかな?
この辺も各社で差が有るようで、正直よく判らない部分です。

と言うわけで、次回は残りのパラメータ、判る範囲で見ていきます。