写真の物理学 ⑰ MTFで読むレンズの解像力

Share
📐
写真の物理学シリーズ ⑰
このシリーズでは、写真にまつわる現象を物理学の言葉で記述する。「なんとなくそうなる」を「なぜそうなるか」に変換することが目的である。

回折限界と収差の議論は、いずれも「レンズがどれだけ細かい構造を再現できるか」という問いに帰着する。本記事では、この問いに周波数領域から統一的な答えを与えるMTF(Modulation Transfer Function, 変調伝達関数)を扱う。点像分布関数のフーリエ変換からMTFを導出し、回折限界MTF曲線、収差の影響、センサーとの合成MTF、そしてMTFの限界までを論じる。

空間周波数という視点

レンズの解像力を語るとき、「何本の線を分解できるか」という表現がしばしば用いられる。白と黒の細い縞模様を考え、1mmあたりに何組の明暗ペア(line pair)が並ぶかを数えたものが 空間周波数 $\nu$(単位: lp/mm, line pairs per millimeter)である。

空間周波数が低い(縞が粗い)パターンは、どんなレンズでも容易に再現できる。一方、空間周波数が高くなる(縞が細かくなる)につれて、レンズの光学的な限界により明暗のコントラストは徐々に失われていく。MTFは、この「周波数ごとのコントラスト伝達率」を定量化する関数である。

MTFの定義

被写体側に空間周波数 $\nu$ の正弦波状の明暗パターンがあるとする。入力側のコントラストを $C_{\text{in}}$、レンズを通して像面に結ばれた像のコントラストを $C_{\text{out}}$ とすると、MTFは次のように定義される。

$$ \text{MTF}(\nu) = \frac{C_{\text{out}}(\nu)}{C_{\text{in}}(\nu)} $$

ここでコントラストは、明暗の最大輝度 $I_{\max}$ と最小輝度 $I_{\min}$ を用いて $C = (I_{\max} - I_{\min}) / (I_{\max} + I_{\min})$ で定義される(マイケルソン・コントラスト)。MTFは常に0以上1以下の値をとり、1であれば入力のコントラストが完全に保存されていることを、0であればコントラストが完全に消失していることを意味する。

点像分布関数とフーリエ変換

MTFの物理的な起源は、レンズが点光源をどのような像に変換するか、すなわち 点像分布関数(PSF: Point Spread Function) にある。ボケの円を関数で記述するで述べたように、理想的な点光源であってもレンズを通過した像は有限の広がりを持つ。この広がりが、細かい構造のコントラストを低下させる原因となる。

PSFと像の関係は畳み込み(コンボリューション)で記述される。入力の輝度分布を $f(x)$、PSFを $h(x)$ とすると、出力の輝度分布 $g(x)$ は次のように表される。

$$ g(x) = f(x) * h(x) $$

畳み込み定理により、フーリエ変換の世界では畳み込みは単純な積になる。

$$ G(\nu) = F(\nu) \cdot H(\nu) $$

ここで $H(\nu)$ はPSFのフーリエ変換であり、光学伝達関数(OTF: Optical Transfer Function) と呼ばれる。OTFは一般に複素数値をとり、その絶対値がMTFである。

$$ \text{OTF}(\nu) = \frac{\mathcal{F}\{h(x)\}}{\mathcal{F}\{h(x)\}\big|_{\nu=0}}, \quad \text{MTF}(\nu) = |\text{OTF}(\nu)| $$

分母の $\mathcal{F}\{h(x)\}\big|_{\nu=0}$ は、空間周波数ゼロにおけるフーリエ変換の値(PSFの総エネルギー)であり、MTFを $\nu = 0$ で1に正規化するための係数である。

この関係は重要だ。レンズの性能はPSFという空間領域の情報で決まるが、MTFはそれをフーリエ変換によって周波数領域に写すことで、「どの細かさまで再現できるか」を直接読み取れる形に変換している。

回折限界のMTF曲線

収差のない理想的なレンズでは、PSFは回折限界と最適絞りのトレードオフで導いたエアリーディスクとなる。このとき、円形開口の回折限界MTFは解析的に求まり、次の式で与えられる。

$$ \text{MTF}_{\text{diff}}(\nu) = \frac{2}{\pi}\left[\arccos\left(\frac{\nu}{\nu_c}\right) - \frac{\nu}{\nu_c}\sqrt{1 - \left(\frac{\nu}{\nu_c}\right)^2}\right] $$

ここで $\nu_c$ は カットオフ周波数 であり、MTFがゼロになる上限の空間周波数を意味する。

$$ \nu_c = \frac{1}{\lambda N} $$

$\lambda$ は電磁波としての光で導入した光の波長、$N$ は絞りと有効口径の物理的意味で定義したF値である。可視光の中心波長 $\lambda = 550\,\text{nm}$ を代入すると、F2.8のレンズでは $\nu_c \approx 649\,\text{lp/mm}$、F8では $\nu_c \approx 227\,\text{lp/mm}$ となる。

この式から読み取れることは明確だ。カットオフ周波数は絞り値に反比例するため、絞りを開けるほど回折限界は高くなる。しかし⑮で議論したように、絞りを開けすぎれば収差の影響が増大する。実際のレンズの最適な絞り値は、回折と収差のトレードオフの中にある。

回折限界MTF曲線は、そのレンズが物理法則上到達し得る理論的な上限である。あらゆる実在のレンズのMTF曲線は、この回折限界曲線の下側に位置する。

収差がMTFに与える影響

収差の物理学で整理したザイデル収差や色収差は、PSFを理想的なエアリーディスクから崩す要因である。PSFが広がれば、そのフーリエ変換であるOTFは高周波側で減衰が大きくなり、MTF曲線は回折限界よりも下に沈む。

収差の影響は周波数に依存する。低い空間周波数(粗い構造)に対してはコントラストの低下は比較的小さいが、高い空間周波数(細かい構造)に対しては著しくコントラストが失われる。これは直観的にも理解できる。収差によってPSFが広がると、まず細かい明暗パターンから潰れていくからだ。

球面収差は画面全体にわたってMTFを低下させ、コマ収差や非点収差は画面周辺部で特に顕著にMTFを劣化させる。像面湾曲は、ピントが合う面がセンサー平面と一致しないことで実効的なPSFの広がりを増大させる。いずれの場合も、MTF曲線を見れば「どの空間周波数帯域で、どの程度のコントラスト損失が生じているか」を定量的に把握できる。

サジタルMTFとメリジオナルMTF

レンズの結像性能は、一般に画面中心からの距離と方向に依存する。特に画面周辺部では、光軸からの距離(像高)に応じて収差の大きさが変化し、さらに縞模様の方向によっても結像性能が異なる。

ここで登場するのが サジタル(sagittal) と メリジオナル(meridional, tangential) の区別である。

  • サジタル方向: 画面中心から放射状に伸びる方向に平行な縞パターン
  • メリジオナル方向: 放射方向に垂直(同心円状)な縞パターン

非点収差がある場合、サジタル方向とメリジオナル方向でピント位置が異なるため、同じ像高・同じ空間周波数でもMTFの値が異なる。レンズメーカーが公表するMTFチャートでは、横軸に像高(画面中心からの距離)をとり、サジタルMTF(S)とメリジオナルMTF(T)を別々の曲線として描くのが一般的だ。

2本の曲線が近接しているほど、そのレンズは方向による結像性能の差が小さく、均質な描写が得られることを意味する。逆に2本の曲線が大きく離れている像高では、非点収差が顕著であり、点光源が放射状または同心円状に伸びた像として結像する。

MTF曲線の読み方

レンズメーカーが公表するMTFチャートを実用的に読み解くうえで、いくつかの代表的な空間周波数に注目する習慣がある。

10 lp/mm は比較的粗い構造に相当し、画像全体のコントラスト感を反映する。この周波数でのMTFが高いレンズは、メリハリのある描写を生む。一般に、10 lp/mmでMTFが0.8以上であれば優秀なコントラスト性能とされる。

30 lp/mm はより細かい構造に対応し、解像力の指標として参照される。この周波数でのMTFが高いレンズは、細部の描写に優れる。30 lp/mmでMTFが0.6以上であれば高い解像性能と評価されることが多い。

Nikonをはじめとするレンズメーカーの多くは、この2つの周波数を基準にMTFチャートを公表している。10 lp/mmの曲線からはコントラストの傾向を、30 lp/mmの曲線からは解像力の傾向を読み取ることができる。

もうひとつ重要な周波数が ナイキスト周波数 である。ベイヤー配列とデモザイキングの数学で詳述するサンプリング定理に基づく概念であり、センサーが理論上記録可能な最大の空間周波数を意味する。ピクセルピッチ $p$ を用いて次のように定義される。

$$ \nu_{\text{Nyquist}} = \frac{1}{2p} $$

たとえばピクセルピッチ $p = 5.97\,\mu\text{m}$(Nikon Z5のセンサーに相当)の場合、$\nu_{\text{Nyquist}} \approx 84\,\text{lp/mm}$ となる。レンズのMTFがこの周波数付近でどの程度の値を保っているかが、センサーの画素数を活かせるかどうかの判断材料になる。

レンズとセンサーのMTF合成

撮影システム全体の解像力は、レンズ単体の性能だけでは決まらない。センサーの画素構造もまた、空間周波数に対するローパスフィルタとして機能する。

センサーのMTFは、光電効果とフォトダイオードで述べた画素構造に起因する。個々のフォトダイオードが有限の受光面積を持つため、画素幅 $p$ の矩形画素のMTFはsinc関数で近似される。

$$ \text{MTF}_{\text{sensor}}(\nu) = \text{sinc}(\pi \nu p) $$

ここで $\text{sinc}(x) = \sin(x)/x$ である。この関数はナイキスト周波数 $\nu = 1/(2p)$ において $\text{sinc}(\pi/2) \approx 0.64$ となり、ナイキスト周波数の時点ですでに36%ほどのコントラスト損失が生じていることを示す。

光学系全体のMTFは、各要素のMTFの積として表される。

$$ \text{MTF}_{\text{system}}(\nu) = \text{MTF}_{\text{lens}}(\nu) \times \text{MTF}_{\text{sensor}}(\nu) $$

ベイヤー配列とデモザイキングの数学で扱う光学ローパスフィルタやその他の光学要素がある場合は、それらのMTFも乗じる。積であるから、どれか一つの要素のMTFが低ければ、システム全体のMTFはそれに引きずられて低下する。

この関係は、レンズは一本でいいで触れた「レンズの性能がセンサーの能力を活かしきれるか」という問いに定量的な根拠を与える。レンズのMTFがナイキスト周波数付近で十分に高くなければ、いくらセンサーの画素数を増やしても、そのぶんの解像力は得られない。逆に、レンズのMTFが十分に高くても、センサーのピクセルピッチが大きければ、高い空間周波数の情報はサンプリングの段階で失われる。

止まったように見える景色の先へで述べたカメラ技術の成熟は、レンズとセンサーのMTFバランスが高い水準で均衡に近づいていることの表れでもある。

MTFの限界

MTFはレンズの解像性能を評価するうえで極めて強力な指標だが、万能ではない。MTFが捉えるのはコントラストの伝達率、すなわち振幅情報だけであり、位相情報は含まれない。

OTFの位相成分は PTF(Phase Transfer Function, 位相伝達関数) と呼ばれ、像のコントラスト反転(明暗が入れ替わる現象)に関係する。MTFチャートだけでは、このコントラスト反転の有無を判断できない。

また、MTFは本質的にモノクロの指標である。色収差(軸上色収差・倍率色収差)は、波長ごとにMTFを計算すれば原理的には評価可能だが、通常公表されるMTFチャートは単一波長または白色光の加重平均として計算されており、色にじみの実態を直接反映するものではない。

さらに、写真表現において重要な ボケの質 もMTFでは評価できない。ボケの円を関数で記述するで述べたように、ボケの形状はPSFの形そのものに依存するが、MTFはPSFのフーリエ変換の絶対値をとる過程で位相情報を捨てている。同じMTF曲線を持つレンズでも、ボケの滑らかさや二線ボケの有無は異なり得る。

MTFは「ピントが合った領域の解像力」を評価する道具であり、「ピントが合っていない領域の描写」は射程の外にある。レンズの総合的な評価には、MTFに加えて、ボケの質、色収差の特性、歪曲収差、周辺減光など、MTFでは扱えない要素を個別に検討する必要がある。加えて、MTFが記述するのはレンズの物理特性であり、人間がそれをどう知覚するかは別の問題である。視覚の知覚心理物理学で扱うコントラスト感度関数(CSF)は、人間の目が空間周波数ごとに異なる感度を持つことを示しており、MTFとCSFを組み合わせて初めて「見える解像力」が評価できる。

まとめ

MTFは、レンズの解像性能を空間周波数の関数として定量化する枠組みである。PSFのフーリエ変換として定義されるOTFの絶対値をとることで、各周波数におけるコントラスト伝達率を表現する。

回折限界のMTF曲線は理論的な上限を与え、実在のレンズのMTFは収差によってこの上限を下回る。サジタルとメリジオナルの2方向のMTFを比較することで、レンズの方向依存性を評価できる。システム全体のMTFはレンズとセンサーのMTFの積であり、最終的な画質はこの両者のバランスで決まる。

ただし、MTFはコントラストの振幅情報に限定された指標であり、ボケの質や色収差の評価には別の視点が必要となる。MTFチャートを読めることは、レンズ選びにおいてスペックの数字に振り回されないための確かな基盤となる。

Read more

Dependabotの対応が面倒なのでRenovateを導入する

Dependabotくんはある程度の依存関係の更新を通知してくれるが、山のようにprojectを抱えているとなんとも痒いところに手が届かない。 ということで、Renovateを使ってみる。 Build software better, togetherGitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.GitHub ここからGitHub Appを入れる。 あとは、指示に従ってポチポチするだけで、超かんたんだった。 感想 自動化最高。

By Sakashita Yasunobu

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu