記事一覧 > この頁
デジタルカメラのノイズ測定・その三
『デジタルカメラのノイズ測定』の続きである。
露出シミュレーションの改善のため、光ショットノイズの測定が行えないかとということも思案していたので、
その一助とすべく継続して実施した。
Noise, Dynamic Range and Bit Depth in Digital SLRs
Photon shot noise Fig.1
The photon noise was isolated by taking the difference of two successive images;
the raw values for any one pixel then differ only by the fluctuations in the photon count due to Poisson statistics
(apart from a much smaller contribution from read noise).
即ち
連続する2つの画像の差分をとることによって、フォトンショットノイズを得ることができる
何故ならば被写体は同一である故、差異はランダムなノイズ(ショットノイズ)のみとなる
なお読み出し回路ノイズ等は、非常に小さいので影響は少ない
ということのようである。
【方法】
- レンズ先端に白色のアクリル板を取り付けて、各々2枚1セットで撮影。
- 撮影したRAWファイルから、raw2fitsでG1またはL画像を取り出し。
今回はG1画像のデータを記載した。
- L画像であれば1段程度S/Nが上がる。
- dcrawだとPRNUの算出等に支障がでる。
- ImageJの"Process > Image Calculator"で、差分計算(difference)を行った。
仔細は前の測定を参照。
- 差分をとった画像が、一様に均一でない場合は撮影の失敗である。
- ヒストグラムを表示させ、結果を読み取った。
- なおRAW値にオフセットがかかっている場合(ニコン以外)は、その分を信号値から差し引かなければならない。
【結果】
[表1]
(画像をクリックで拡大)
- F2.8, ISO100, SS1”で適正露出(輝度50%が目安)となるように調整。
なおFは2.8でなくてもよい。
- 撮影時に一緒に記録した、またはRAW内のJpegのGが、概ね118/2^8になるよう周辺環境の明るさを調整する。
Jpegを同時記録していない場合は、下記のツールでRAWから取り出し可能。
- dcraw
dcraw -v -e Filename
- ExifTool
exiftool -b -JpgFromRaw -w jpg Filename
- NefUtil
nefutil +j Filename
- シャッタースピードを1/1000秒から1秒まで一段ずつ変えて撮影。
[表2]
(画像をクリックで拡大)
- 表1のデータ(i1のmeanとi1-i2のσ^2)から傾きと切片を求め、ゲインとランダムノイズを導き出した。
- 下側の傾きはPRNU(σ)から求めた。
傾きの逆数がS/Nの上限ということになる。
[表3]
(画像をクリックで拡大)
- 上記の方法でISO6400まで1EV毎に測定。
- DR(名目)は2^14/σ、DR(実効)はSignal/σで計算。
[表4]
(画像をクリックで拡大)
- 上記と同様に露出を調整。
- 次にシャッタースピードを0.5”〜 8”まで撮影。
[表5]
(画像をクリックで拡大)
- 上記と同様に露出を調整。
- 次にISO感度を上げていき、シャッタースピードを調整してISO6400まで撮影。
- F4でも同様に繰り返してみた。
[表6]
(画像をクリックで拡大)
- 上記と同様に露出を調整し、適当にパラメータを変えて撮影した。
【表中の各項目説明】
- i1は原画像。
- i1/i2は画像間の除算。
- i1-i2は画像間の減算。
- photonはi1-i2のσ^2を2^-xで乗算。
xはLOG2(ISOspeed/100)である。
- S/Nはi1のmeanとi1-i2のσで計算。
- gainはi1のmeanとi1-i2のσ^2で計算。
- 前の測定の[表1']は、raw2fitsのL画像で計算したgainにより補正した。
- PRNU(%)はi1/i2のmeanとσで計算。
- PRNU(σ)はi1の中央部(500pix * 500pix程度の範囲)のσを読み取り。
[イメージセンサ 用語説明] - 感度不均一性
飽和の50%の均一な光を当てた場合の、所定領域内における出力の標準偏差(σ)と同領域の平均値(Average)との比率(σ/Average)。
【考察】
- 露出時間を伸ばすとS/Nは向上するが、+3EVで飽和する。
- 飽和しないことが前提であるが、適正露出に拘らず、Av+Tvの値を上げた方がS/N的には良好となる。
- Av+Tvの値が同一であれば、ISO感度を変えてもS/Nは変わらない。
つまりS/NはAv+Tvの値で決まるということ。
- ゲインは3.4強で頭打ちとなり、飽和すると下がっていく。
- 露出時間が短かったり、ISO感度を上げた場合、PRNUが悪化する。
- S/Nの計算ではPRNUは除外されている。
これは減算した際に、PRNUが除去されているためである。
- 画像間の差分を取ることにより、フォトンショットノイズを含むランダムノイズが導出される。
更に原画像のσ^2から、差分画像のσ^2を控除すると、PRNUのσ(寄与分)が得られる。
- PRNUそのものは、周辺減光に影響されていない領域を選択した上で、σを測定する必要がある。
ランダムノイズの影響を排除するために、複数枚スタックして領域選択したほうがよい。
- [例] 表1-1秒
PRNU(σ)
(113.015^2-19.282^2)^0.5=111.358
PRNU(%)
111.358/1261.411*100=8.828
- 実際のS/Nの上限はPRNUの逆数となるが、ダークやフラットの処理をすることにより改善する。
- S/N log2(1/(8.828/100))=3.514
- フォトンの実カウントは、ISO感度に反比例して減少する。
- D7000は現行機種ではD5600と同等位。
【その他】
図1はPhotons to Photosの
Photographic Dynamic Range Shadow Improvement Chartのようなものを、
今回の測定に基づいて作成してみた。
他のカメラと比べると、概ね線形ということができる。
7000番台最新のD7500になると、低感度側と高感度側で別の処理が行われているもよう。
高感度のDRが大きく改善している。
どうやら最近のソニー製撮像素子の傾向のようである。
入門機のD5600は線形な状態である。
天体写真によく使われているキヤノン6Dでは、更に複雑というか細かい処理が行われている。
[図1] DR線形度図
X軸(ISO=2^(x-1)*100)、Y軸(EV)
次にFFTだけでは区別がつかないので、そのプロットを見てみた。
Aはダーク画像のものであるが、何らかの処理が施されたような痕跡がある。
何の処理もされていないか、それがシグナルに対して微小であればB(今回測定時に撮影した画像)のようになるはず。
底部が水平になるはずなのである。
解像が高ければプロットのGrayValueが小さく、逆であればが大きくなる。
Aには傾斜が入っており、例えばフィルタによる処理が入っているような形跡がある。
どちらにしても支障無く前処理ができれば、問題無いことではあるのだが。
[図2-A] FFTプロット
[図2-B] FFTプロット
S/Nの計算を総ノイズの場合と、フォトンショットノイズのみの場合とで比較してみたが(1ショットの場合)、定量的には読み出し回路ノイズの影響はほとんど出てこない。
- [例] 表4-F2.8, ISO6400
- PN(σ)
- (162.758^2-33.37^2)^0.5=159.3
- S/N
- TN log2(1234/162)=2.9
PN log2(1234/159)=3.0
- 凡例
- TN(σ) 総ノイズ
- PN(σ) フォトンショットノイズ
- RN(σ) 読み出し回路ノイズ
[まとめ]
天体写真の実写においては『(1)適正露出に拘らず飽和する直前まで露出時間を伸ばすこと、
(2)ダーク・フラットの処理を行うこと』によりS/Nが向上する。
しかし飽和直前まで露光すると、輝星部分は露出過多となり弊害が生じるので対策が必要となる。
また読み出し回路ノイズの影響はほとんど無く、ほぼシグナルとショットノイズの関係で画質が決まる。
したがって光害の少ないところで撮影することが肝要である。
光害地では露出を伸ばしても、悪化ないしは頭打ちとなる。
カメラの天文改造でRの感度を上げることも、S/N向上のためには効果がある。
初出:2018-10-06 改訂:2019-07-23
(C) YamD