本ページにはアフィリエイト広告(プロモーション)が含まれる場合があります。
レンズ補正
- ディテールと補正
- Lens Correction
- 別名: 歪曲収差補正
- 別名: 周辺光量補正
- 別名: 倍率色収差補正
- 別名: レンズプロファイル
- 別名: LCP
レンズ補正が扱うのは主に歪曲収差・周辺光量落ち・倍率色収差の3つで、この3つは Adobe の DNG 仕様書に数式付きで定義されている。補正データは、ソフト側のプロファイル(Adobe の LCP や lensfun のデータベース)と、RAW ファイルにメーカーが埋め込んだデータの2系統がある。歪曲補正は画素を並べ直して補間する処理なので、画素値が作り直される点は避けられない。
図で見る
この操作が画像に何をするか
レンズ補正は性質の違う2種類の処理をまとめた呼び名である。周辺光量補正は画素の座標を動かさず、明るさに掛け算をするだけ。歪曲収差と倍率色収差の補正は、画素を新しい座標へ移す座標変換で、移した先が元の画素位置とぴったり重なることはまずないので、周囲の画素から補間して値を作る。DNG 仕様はこの補間に cubic spline のようなカーネルを推奨している。さらに補正すると画面の縁が波打って黒い隅が出るため、たいていのソフトは少し拡大して切り落とす。
効く場面
- 広角レンズで建物や水平線が樽型・糸巻き型に曲がっているとき
- 開放付近で四隅が暗く落ちていて、空や壁など均一な面でそれが目立つとき
- 画面の隅の高コントラストな輪郭に、青や赤の色ずれ(フリンジ)が出ているとき
つまずきやすい点
- カメラが RAW を書き出す時点で既に一部の補正を済ませていることがあり、その上でソフト側の補正をかけると二重に効く。darktable のマニュアルもこの場合の設定変更を指示している
- 歪曲補正の後の拡大・切り落としで、狙って入れた画面の端の要素が消える
- 周辺光量補正で暗部を持ち上げると、そこに乗っていたノイズも同じ倍率で持ち上がる
- 「レンズ補正は画質を落とすからかけない」と決めつける。補間が入るのは事実だが、どれだけ落ちるかを測定した資料は見つけられなかった
どこまで裏が取れているか
この項目についてよく言われることを、出典に当たって確かめた結果です。出典が見つからなかったものは、見つからなかったと書いています。
- 原典で確認できる DNG 仕様は、歪曲収差と倍率色収差を補正する WarpRectilinear オペコードを、係数付きの数式として定義している 公開されているファイル形式仕様の本文で、オペコードの目的・パラメータ(半径方向 kr0〜kr3、接線方向 kt0・kt1、光学中心)・処理手順が定義されている。歪曲収差と倍率色収差が同じ warp で扱われること、色収差は画像プレーンごとに別の係数を与えて補正することが明示されている。PDF は Adobe 自身の配布サーバ(download.adobe.com)から直接取得した(HTTP 200・1,176,100 バイト・全126頁、表紙に「Digital Negative (DNG) Specification / Version 1.7.1.0 / September 2023 / Adobe Inc. / 345 Park Avenue, San Jose, CA」と印字されていることを確認済み)。PyMuPDF で全頁のテキストを抽出し、引用した各文が本文に存在することを機械照合で確認した(該当は 105〜106 頁)。なお WarpRectilinear は DNG 1.3.0.0 で導入され、より高次の多項式に対応した WarpRectilinear2 が DNG 1.6.0.0 で追加されている。これは DNG というファイル形式の仕様であって、各社の現像ソフトが同じモデルを使っている保証ではない。 出典: Adobe「Digital Negative (DNG) Specification」Version 1.7.1.0(2023-09)WarpRectilinear
- 原典で確認できる 周辺光量落ちの補正は、光学中心からの距離に応じたゲイン(掛け算)を画素値に適用する処理として DNG 仕様に定義されている 仕様書は周辺光量補正を、パラメータ (k0, k1, k2, k3, k4) が定める半径対称なゲイン関数 g = 1 + k0r² + k1r⁴ + k2r⁶ + k3r⁸ + k4r¹⁰ を画素値に掛ける処理として定義している(すべての k が 0 なら恒等変換、つまり何も起きない)。r は光学中心から最も遠い画素までの距離で正規化された 0〜1 の値。前項と同じく Adobe 自身の配布サーバから取得した PDF で、該当箇所(110 頁)に引用文が存在することを機械照合で確認した。なお「周辺光量補正をすると周辺のノイズが目立つようになる」ことは、この掛け算の性質から自然に想像がつくが、それを明示した出典・測定は見つけられなかったので事実主張としては立てていない。仕様書が定義しているのは「ゲインを掛ける」ところまでである。 出典: Adobe「Digital Negative (DNG) Specification」Version 1.7.1.0(2023-09)FixVignetteRadial
- 原典で確認できる 歪曲収差の補正は画素を並べ直して補間する処理であり、DNG 仕様も「適切な再サンプリングカーネル(たとえば cubic spline)」の使用を推奨している 仕様書は warp の実行にあたって再サンプリング(補間)が必要であることを前提に、cubic spline のような適切なカーネルの使用を推奨している。つまり補正後の画素値は元の画素値そのものではなく、周囲から作り直された値である。ただし「補正すると画質が落ちる」を定量した出典は見つけられなかった。言えるのは「補間が入る=画素値が作り直される」ところまでである。オープンソース側でも lensfun の公式マニュアルが同じ構造(元画像を参照して補間しながら引く)を説明している。加えて、補正後に生じる黒い隅を消すために画像を拡大する必要がある点も複数のソフトが明記しており、darktable のレンズ補正モジュールには黒い隅を避けるための scale パラメータがあり、Photoshop のヘルプも自動拡大の設定を案内している(後者は helpx.adobe.com が本セッションの環境から応答を返さなかったため、Internet Archive の 2024-12-17 保存版で確認した)。拡大によってどれだけ解像感が落ちるかを測定した資料は見つけられなかった(次の主張を参照)。 出典: Adobe「Digital Negative (DNG) Specification」Version 1.7.1.0(2023-09)Notes and Restrictions
- 原典で確認できる Adobe のレンズプロファイル(LCP)は、実写した校正チャートの画像を解析して、歪曲収差・色収差・周辺光量の補正情報を生成したものである この主張の射程は、Adobe が定義した LCP という形式についてのみである。レンズ補正一般が実写チャートから作られる、という意味ではない(メーカーが RAW に埋め込む補正データの作り方や、lensfun のデータベースの作り方については、この文書は何も述べていない)。established としたのは、LCP という形式の定義者自身による文書=この件についての原典だからであり、第三者の規格ではない点は注意が必要。ガイドは、校正チャートの PDF を印刷し、プロファイルを作りたいボディとレンズの組み合わせで実写すること、撮影した画像を解析して歪曲収差・色収差・周辺光量を補正するプロファイルを作ること、LCP がカメラボディとレンズの特定の組み合わせについての補正情報を持つファイルであることを述べている。ただしこれは手順書であって、補正モデルの数式は載っていない(数式は DNG 仕様書のオペコード定義のほうにある)。PDF は PyMuPDF で本文抽出し該当ページを目視確認した。Adobe 公式ドメインへ到達できなかったため、Adobe Labs の配布ドメイン(download.macromedia.com)から取得した。 出典: Adobe Lens Profile Creator User Guide, Version 1.0(2010-04-14, Adobe Systems Inc.)
- 原典で確認できる RAW ファイルにはメーカーの補正データが埋め込まれていることがあり、現像ソフトはソフト側のプロファイルとそれを選んで使える マニュアルは、補正データの供給元として「RAW ファイルに埋め込まれたレンズ補正データ(存在し対応している場合)」と「外部の lensfun ライブラリが提供する補正データ」の2系統があることを明示し、前者は対応するメタデータが見つかった場合にのみ選べると書いている。実装側でも src/iop/lens.cc に2つの方式が列挙されていることを確認した。これは「darktable がどう動くか」および「そういうデータが RAW に入っていることがある」の established であって、どのメーカーがどの形式で何を埋め込んでいるかの根拠ではない。DNG については前述のオペコードがその仕組みだが、各社独自の RAW 形式については公開された仕様を確認できていない。またマニュアルは「カメラが既に内部で一部の補正(周辺光量など)を済ませている場合は設定を変えること」とも書いており、RAW が完全に無加工とは限らないことを示している。ソースコードは release-4.6.1 タグに固定した URL で取得した。 出典: darktable 4.6 ユーザーマニュアル — lens correction モジュール
- 裏付ける出典が見つからない レンズ補正をかけると画質が落ちる、と広く言われるが、劣化量を測定した一次資料は見つけられなかった 探した範囲は次のとおり。(1) DNG 仕様書 1.7.1.0(Adobe 配布サーバから取得、全126頁)を全文検索した。warp が再サンプリングを伴うこと、cubic spline のようなカーネルを推奨することは書かれているが、それによる解像度低下を定量した記述は無い。(2) lensfun 公式マニュアルの Corrections ページを取得した。補間しながら元画像を参照する仕組みの説明はあるが、劣化量の記述は無い。(3) darktable のレンズ補正モジュールのマニュアルを取得した。黒い隅を避けるための scale パラメータの存在は確認できたが、拡大による解像感低下の測定は無い。(4) RawTherapee の Toolchain Pipeline ページにも同様の記述は無い。(5) DuckDuckGo で英語で「lens distortion correction resampling resolution loss MTF measurement raw converter」および「"distortion correction" sharpness degradation measured MTF50 lens profile study」を検索した。返ってきた上位16件は、光学メーカーによる MTF の一般解説(Edmund Optics、Opto Engineering、FRAMOS など)か、マシンビジョン・計測分野の「歪みをいかに正確に測定・補正するか」を扱った論文(MDPI ほか)で、写真の現像における補正後の解像度低下を測った資料は1件も無かった。確認できたのは「補間が入るので画素値が作り直される」「黒い隅を消すために拡大が必要になることがある」までで、その結果どれだけ落ちるかは分からない。そのような資料が存在しないことの証明ではない。
他の項目の主張とあわせて確かめたい場合は根拠の強さで見るもご覧ください。
関連する現像の項目
- 現像の順番 — 現像ソフトの処理は、利用者が操作した順ではなく、ソフトが決めた固定の順序(パイプライン)で実行される。そしてこれらの処理は数学的に可換ではないので、順序を入れ替えれば結果は変わる。一方で、雑誌や解説記事でよく見る「正しい現像手順」については、実験的な根拠を示した出典を見つけられなかった。
- シャープネス — デジタルのシャープネス処理の標準はアンシャープマスク(USM)で、元画像から「ぼかした複製」を差し引いてエッジ付近のコントラストを持ち上げる線形演算である。ぼけて失われた情報を復元しているのではなく、エッジの見え方を強調しているだけなので、やりすぎるとエッジに沿って明暗の縁(ハロー)が出る。「シャープネスは最後にかける」という定石は、実験の結果ではなく業界のワークフロー指針に由来する。
- ノイズ除去 — 写真のノイズには、光が粒(光子)として届くこと自体から生じるショットノイズと、センサーの読み出し回路が加える読み出しノイズがある。前者は物理法則で決まり、どんなカメラでも避けられない。「ISO を上げるとノイズが増える」という言い方は、実測データを見ると少なくとも半分は誤解で、増感そのものよりも「取り込む光が少ないこと」が効いている。
- RAWとJPEGは何が違うのか — JPEG が情報を捨てるのは規格そのものにそう定義されているからで、ここは議論の余地がありません。一方「RAW は劣化しない生データ」という説明のほうは、メーカー自身の取扱説明書と突き合わせると、そのままでは成り立たない場面があります。