写真の物理学 ⑫ ボケの円を関数で記述する

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

合焦面から外れた被写体は、センサー上に点ではなく円として記録される。このボケの円の直径は焦点距離、F値、被写体距離の関数として決まる。本記事では、ボケ円径の厳密式を導出したうえで、口径食や球面収差がもたらす「ボケの質」の物理まで踏み込む。

合焦点と非合焦点の幾何光学的な像の違い

薄肉レンズの結像公式は次のとおりである。

$$ \frac{1}{f} = \frac{1}{d} + \frac{1}{v} $$

ここで $f$ は焦点距離、$d$ は被写体距離(レンズから被写体まで)、$v$ は像距離(レンズからセンサーまで)である。この式を $v$ について解くと、

$$ v = \frac{fd}{d - f} $$

となる。合焦距離 $d_f$ にピントを合わせたとき、センサーは像距離

$$ v_f = \frac{f d_f}{d_f - f} $$

の位置に置かれる。このとき、距離 $d_f$ にある点光源はセンサー上で幾何学的に一点に収束する。これが「ピントが合っている」状態である。

一方、合焦面から外れた距離 $d_s$ にある点光源の像距離は

$$ v_s = \frac{f d_s}{d_s - f} $$

であり、$d_s \neq d_f$ であれば $v_s \neq v_f$ となる。センサーは $v_f$ の位置に固定されているため、$v_s$ の位置で収束するはずの光束はセンサー面上では収束しきれず、有限の直径を持つ円として記録される。これがボケの円、すなわち錯乱円である。

ボケ円直径の厳密な導出

相似三角形による立式

レンズの有効口径(開口直径)を $D$ とする。F値 $N$ との関係は $D = f / N$ である。

距離 $d_s$ にある点光源からの光束は、レンズの開口全体を通過したのち、像距離 $v_s$ の位置で一点に収束する。しかしセンサーは $v_f$ の位置にあるため、光束はセンサー上で直径 $b$ の円を作る。

$v_s > v_f$(被写体がピント面より遠い、すなわち後ボケ)の場合を考えると、光束はセンサーを通過したあとに $v_s$ で収束する。センサー面での光束断面の直径 $b$ は、相似三角形の関係から

$$ \frac{b}{D} = \frac{v_s - v_f}{v_s} $$

と書ける。$v_s < v_f$(前ボケ)の場合も同様に、光束がセンサーの手前で収束してから再び広がるため、

$$ \frac{b}{D} = \frac{v_f - v_s}{v_s} $$

となる。いずれの場合も統一的に

$$ b = D \cdot \frac{|v_f - v_s|}{v_s} $$

と表せる。

像距離の差の計算

$v_f - v_s$ を計算する。

$$ v_f - v_s = \frac{f d_f}{d_f - f} - \frac{f d_s}{d_s - f} $$

通分すると、

$$ v_f - v_s = \frac{f d_f (d_s - f) - f d_s (d_f - f)}{(d_f - f)(d_s - f)} $$

分子を展開する。

$$ f d_f (d_s - f) - f d_s (d_f - f) = f d_f d_s - f^2 d_f - f d_s d_f + f^2 d_s = f^2 (d_s - d_f) $$

したがって、

$$ v_f - v_s = \frac{f^2 (d_s - d_f)}{(d_f - f)(d_s - f)} $$

ボケ円直径の厳密式

上の結果を $b = D \cdot |v_f - v_s| / v_s$ に代入する。$v_s = f d_s / (d_s - f)$ であるから、

$$ b = D \cdot \frac{f^2 |d_s - d_f|}{(d_f - f)(d_s - f)} \cdot \frac{d_s - f}{f d_s} $$

$(d_s - f)$ が約分されて、

$$ b = \frac{f^2 |d_s - d_f|}{N \cdot d_s \cdot (d_f - f)} $$

を得る。ここで $D = f / N$ を用いた。これがボケ円直径の厳密式である。

近似式

写真撮影の通常の条件では、合焦距離は焦点距離よりも十分に大きい($d_f \gg f$)。このとき $d_f - f \approx d_f$ と近似でき、

$$ b \approx \frac{f^2}{N} \cdot \frac{|d_s - d_f|}{d_s \cdot d_f} = \frac{f^2}{N} \left| \frac{1}{d_f} - \frac{1}{d_s} \right| $$

となる。この近似式は実用上十分な精度を持ち、ボケの大きさを直感的に理解するうえで極めて有用である。

物理的解釈

近似式 $b \approx (f^2 / N) \cdot |1/d_f - 1/d_s|$ を分解して読むと、ボケ円直径は二つの量の積として理解できる。

有効口径 $D = f / N$

$f^2 / N = f \cdot (f / N) = f \cdot D$ であるから、ボケ円直径は有効口径 $D$ に比例する。F値が小さい(絞りが開いている)ほど $D$ が大きくなり、ボケが大きくなるという直感と合致する。

角度差 $|1/d_f - 1/d_s|$

$1/d$ は距離の逆数であり、レンズから見た被写体の「角度的な位置」に対応する。$|1/d_f - 1/d_s|$ は合焦面と被写体の角度的な隔たりを表す。同じ距離差 $|d_s - d_f|$ であっても、被写体が近いほど角度差が大きくなり、ボケの円も大きくなる。

つまりボケ円直径は「レンズの開口の大きさ」と「合焦面からの角度的なずれ」の積で決まるのである。被写界深度の厳密な導出で扱った許容錯乱円径を $b$ に代入して逆に解けば、被写界深度の式が得られる。ボケの円と被写界深度は同一の物理を反対の方向から見た関係にある。

前ボケと後ボケの非対称性

合焦距離 $d_f$ から同じ距離 $\Delta$ だけずれた二つの被写体を考える。

  • 前ボケ(被写体がピント面より手前):$d_s = d_f - \Delta$
  • 後ボケ(被写体がピント面より奥):$d_s = d_f + \Delta$

厳密式に代入すると、

$$ b_{\text{front}} = \frac{f^2 \Delta}{N \cdot (d_f - \Delta) \cdot (d_f - f)}, \quad b_{\text{rear}} = \frac{f^2 \Delta}{N \cdot (d_f + \Delta) \cdot (d_f - f)} $$

分子は同一で、分母の $d_s$ の項だけが異なる。$d_f - \Delta < d_f + \Delta$ であるから、

$$ b_{\text{front}} > b_{\text{rear}} $$

が常に成り立つ。同じ距離だけピント面から離れていても、手前にある被写体のほうが大きくボケる。近似式で見ても $|1/d_f - 1/(d_f - \Delta)| > |1/d_f - 1/(d_f + \Delta)|$ であり、これは $1/d$ が $d$ に対して下に凸な関数であることの直接的な帰結である。

この非対称性は、前ボケと後ボケの視覚的な印象の違いとして実際の写真に現れる。背景のボケに比べて前景のボケのほうが大きく、溶け方も異なるのはこの幾何学的構造に由来する。

ボケの「質」に影響する要因

ここまでの議論はボケの円の大きさを扱ってきた。しかし実際の写真において、ボケの印象は大きさだけでは決まらない。ボケの円の形状や内部の光量分布が、いわゆる「ボケ味」を決定する。以下では、幾何光学の枠組みを少し拡張して、ボケの質に関わる三つの主要な要因を取り上げる。

口径食(ケラレ)によるレモン型ボケ

口径食(vignetting)とは、画面周辺部で光束がレンズ鏡筒や他のレンズエレメントの縁によって部分的に遮られる現象である。画面中央では光束がレンズの開口を円形に通過するため、ボケの円も円形になる。しかし画面周辺部では、斜めに入射する光束の一部が鏡筒などに遮られ、ボケの円が欠けた楕円、いわゆるレモン型(口径食ボケ)になる。

口径食は開放絞り付近で顕著であり、絞りを絞ることで軽減される。レンズ設計では前玉径の拡大によって口径食を抑えるが、これはレンズの大型化とコスト増に直結するため、設計上のトレードオフとなる。

球面収差とボケの硬さ・柔らかさ

理想的な薄肉レンズでは、光束のすべての光線が同一の像点に収束する。しかし実際のレンズでは球面収差により、光軸から離れた位置を通過する光線(周辺光線)と光軸近くを通過する光線(近軸光線)とで焦点位置がずれる。

この球面収差の残し方がボケの「硬さ」や「柔らかさ」を左右する。

  • 補正不足(アンダーコレクション):周辺光線がより手前で収束する。後ボケのボケ円ではエッジに光量が集中せず、中心が明るく周辺に向けて緩やかに減衰する。これが「柔らかいボケ」、「滑らかなボケ」と呼ばれる描写になる。一方、前ボケではエッジが硬くなる。
  • 過剰補正(オーバーコレクション):逆の傾向を示し、後ボケのエッジが硬くなり、前ボケが柔らかくなる。
  • 完全補正:ボケ円内の光量が均一になるが、エッジが明瞭な「硬いボケ」になりやすい。

多くのポートレート用レンズは意図的に球面収差を残す設計がなされている。近年の非球面レンズは合焦面での解像度向上に寄与するが、球面収差を過度に補正するとボケのエッジが硬くなる傾向があり、レンズ設計者は解像性能とボケ味のバランスを調整している。

軸上色収差による色滲み

軸上色収差(longitudinal chromatic aberration)とは、光の波長によってレンズの屈折率が異なるために、波長ごとに焦点位置がずれる現象である。白色光の点光源をボケさせたとき、赤・緑・青の各成分が異なるサイズのボケ円を作るため、ボケの円の周囲に色のフリンジ(色滲み)が発生する。

典型的には、前ボケでマゼンタ(紫)寄りの、後ボケでグリーン寄りのフリンジが見られる。蛍光灯やLEDなどの高輝度点光源を背景にした撮影で顕著になる。EDレンズや蛍石レンズを用いた色消し設計はこの色滲みを軽減するが、完全な除去は困難であり、特に大口径レンズでは設計上の制約となる。

点光源のボケから面的な被写体のボケへ

ここまでの議論は点光源を対象としてきた。しかし実際の被写体は面的な広がりを持ち、各点が独自のボケ円を生成する。面的な被写体のボケは、被写体上のすべての点が生成するボケ円の重ね合わせ、すなわち畳み込み(convolution)として記述される。

被写体の輝度分布を $I(x, y)$、距離 $d_s$ におけるボケ円の光量分布を点拡がり関数(PSF) $h(x, y)$ とすると、センサー上に記録される像 $I'(x, y)$ は

$$ I'(x, y) = (I * h)(x, y) = \iint I(x', y') \, h(x - x', y - y') \, dx' \, dy' $$

と書ける。幾何光学的に完全な円形ボケ(均一な円盤型PSF)を仮定すれば、$h$ は半径 $b/2$ の円盤上で一定値を取り、それ以外ではゼロとなるピルボックス関数である。

この畳み込みの結果として、面的な被写体のボケには次の特徴が現れる。

  • エッジの遷移幅がボケ円直径 $b$ に比例する
  • 被写体の細かいテクスチャはボケ円径が十分に大きければ消失する
  • 輝度の急峻な変化(明暗境界)はボケ円径に応じて滑らかに遷移する

点光源のボケが「ボケの円そのもの」を可視化するのに対し、面的な被写体のボケはその畳み込みの結果であり、PSFの形状がボケの質感を直接的に支配する。球面収差によるPSFの光量分布の変化が「柔らかいボケ」、「硬いボケ」として知覚されるのは、まさにこの畳み込みの結果として現れるからである。

ボケ円径から鑑賞サイズへの換算チェーン

ボケ円直径の厳密式が与えるのはセンサー上での物理的な大きさである。しかし写真の鑑賞者が知覚するボケの大きさは、最終的な鑑賞サイズに依存する。センサー上のボケ円径を鑑賞時の見かけの大きさに換算するには、次のチェーンをたどる。

1. センサー上のボケ円直径

厳密式から得られる値である。

$$ b_{\text{sensor}} = \frac{f^2 |d_s - d_f|}{N \cdot d_s \cdot (d_f - f)} $$

2. 拡大率の計算

センサーの長辺を $w_{\text{sensor}}$、鑑賞サイズ(プリントや画面)の長辺を $w_{\text{print}}$ とすると、拡大率は

$$ M = \frac{w_{\text{print}}}{w_{\text{sensor}}} $$

である。たとえばフルサイズセンサー($w_{\text{sensor}} = 36 \text{ mm}$)で A4 長辺($w_{\text{print}} = 297 \text{ mm}$)に出力するなら、$M \approx 8.25$ である。

3. 鑑賞サイズでのボケ円直径

$$ b_{\text{print}} = M \cdot b_{\text{sensor}} $$

4. 鑑賞距離と視角

最終的に知覚されるボケの大きさは、鑑賞距離 $L$ での視角 $\theta$ で決まる。

$$ \theta = 2 \arctan \frac{b_{\text{print}}}{2L} $$

$b_{\text{print}} \ll L$ であれば $\theta \approx b_{\text{print}} / L$(ラジアン)と近似できる。

このチェーンは、同じ被写体サイズでのボケ比較やセンサーサイズとボケの統一的理解において、異なるフォーマット間でボケの大きさを公平に比較するための基盤となる。被写界深度の議論で用いられる「許容錯乱円径」も、このチェーンを逆向きにたどって鑑賞条件から逆算したものにほかならない。

まとめ

ボケの円の直径は次の厳密式で与えられる。

$$ b = \frac{f^2 |d_s - d_f|}{N \cdot d_s \cdot (d_f - f)} $$

通常の撮影条件($d_f \gg f$)では、

$$ b \approx \frac{f^2}{N} \left| \frac{1}{d_f} - \frac{1}{d_s} \right| $$

と近似できる。この式は「有効口径と角度差の積」という明快な物理的解釈を持つ。前ボケが後ボケより大きくなる非対称性は $1/d$ の下凸性から必然的に導かれる。

ボケの「質」は幾何光学的な円の大きさだけでは決まらず、口径食、球面収差、軸上色収差がボケ円の形状と光量分布を変化させる。面的な被写体のボケはPSFとの畳み込みとして理解でき、PSFの形状がボケの質感を支配する。そしてセンサー上のボケ円径は、拡大率と鑑賞距離を経て初めて鑑賞者の知覚に結びつく。

ボケを関数として記述することで、感覚的に語られがちな「ボケ味」の議論に定量的な足場を与えることができる。次稿では、この式を用いて異なる焦点距離で同じ被写体サイズを保ったときのボケ量の比較を行う。

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