センサーの高解像度化はどこまで可能なのか、実際今はどれぐらい限界に近付いているのかが気になった。
収差が全くないレンズであっても、回折によって解像度は低下してしまう。これは物理的にどうしようもない限界だ。Wikipedia のエアリーディスクの項を読むと比較的わかりやすい気がする。
ありがいたいことにカメラにおける分解能限界の式も求めてあるので、あてはめて JS で計算してみた。
/**
* F値 `f`, 波長 `lambda` nm における分解能 (mm)
*/
function rayleighLimit (f, lambda) {
return 1.22 * (lambda * 0.000001 * f);
}
// 500nm は緑
console.log('rayleighLimit F32', rayleighLimit(32, 500));
//=> rayleighLimit F32 0.01952
console.log('rayleighLimit F11', rayleighLimit(11, 500));
//=> rayleighLimit F11 0.00671
console.log('rayleighLimit F8', rayleighLimit(8, 500));
//=> rayleighLimit F8 0.00488
console.log('rayleighLimit F5.6', rayleighLimit(5.6, 500));
//=> rayleighLimit F5.6 0.0034159999999999998
console.log('rayleighLimit F2.8', rayleighLimit(2.8, 500));
//=> rayleighLimit F2.8 0.0017079999999999999
光の波長によって変わるらしいが (波長が長いほど分解能は低下する)、この例では人間の目が一番感じやすいらしい緑の波長に設定した。
Canon EOS 5D Mark II のピクセルサイズは 0.0064 mm ぐらいなので、F11 ぐらいになると1ピクセルを超えてしまうようだ。Nikon D800 だとピクセルサイズが 0.0049mm ぐらいで F8 ぐらいが物理的なぎりぎりになってしまう。
結論
- 既に割と限界ぎりぎり
- 開放すれば回折の影響は出なくなるけど、今度は収差がでる (どれぐらいでるかはわからない。物理的に無収差にできるのかもわからない)
- さらにはボケてしまう (ピント面外の解像度が低下する)
- F8 がだいたい最高解像度になるみたいな話は収差と回折のバランスをとった答えのようだ
- さらなる解像度を求めるなら大判にするしかない