JA EN

HDR トーンマッピングの種類と選び方 - グローバルからローカルまで徹底比較

· 約 9 分で読めます

HDR とトーンマッピングの基礎 - なぜ必要なのか

HDR (High Dynamic Range) 画像は、現実世界の広大な輝度範囲 (太陽光の 10^9 cd/m² から星明かりの 10^-3 cd/m² まで) を記録できる画像形式です。しかし、一般的なディスプレイは 0-255 (8bit) の限られたダイナミックレンジしか表示できないため、HDR 画像をそのまま表示すると大部分が白飛びまたは黒潰れします。

トーンマッピングの役割: トーンマッピングオペレータ (TMO) は、HDR 画像の広いダイナミックレンジを LDR (Low Dynamic Range) ディスプレイの表示範囲に圧縮する処理です。単純な線形スケーリングではコントラストが失われるため、人間の視覚特性を考慮した非線形な圧縮が必要です。

HDR 画像の取得方法:

トーンマッピングの分類: TMO は大きくグローバル (画像全体に同一の変換を適用) とローカル (ピクセルの周辺情報を考慮して変換) に分類されます。グローバル TMO は高速で安定ですがコントラスト圧縮に限界があり、ローカル TMO は高品質ですがハロー (光輪) アーティファクトのリスクがあります。

グローバルトーンマッピング - Reinhard と対数圧縮

グローバルトーンマッピングは、画像内の全ピクセルに同一の変換関数を適用します。計算が高速で実装が容易ですが、局所的なコントラスト強調はできません。

Reinhard グローバル TMO (2002): 写真のゾーンシステムに着想を得た手法で、最も広く使用されるグローバル TMO です。まず画像の対数平均輝度 (キー値) を計算し、中間調を 0.18 (18% グレー) にマッピングします。

L_scaled = (a / L_avg) × L_world

L_display = L_scaled / (1 + L_scaled)

パラメータ a (キー値、デフォルト 0.18) で全体の明るさを制御し、L_white (白色点) で最大輝度のクリッピングを制御します。a を大きくすると明るい仕上がり、小さくすると暗い仕上がりになります。

Drago 対数 TMO (2003): 対数関数の底を輝度に応じて適応的に変化させる手法です。暗部では底が小さく (圧縮が弱い)、明部では底が大きく (圧縮が強い) なるため、暗部のディテールを保持しながら明部を効果的に圧縮します。バイアスパラメータ b (デフォルト 0.85) で圧縮の強さを制御します。

Filmic TMO: 映画のフィルム特性を模倣した S 字カーブで、ゲーム業界で広く採用されています。Uncharted 2 の John Hable が提案した実装が有名で、トーシャドウ、リニア部分、ショルダーの 3 区間で構成されます。ACES (Academy Color Encoding System) のフィルミックカーブは映画業界の標準です。

OpenCV では cv2.createTonemapReinhard()cv2.createTonemapDrago() で簡単に利用可能です。

ローカルトーンマッピング - Reinhard ローカルと Durand

ローカルトーンマッピングは、各ピクセルの周辺情報を考慮して変換パラメータを適応的に決定します。局所的なコントラストを保持できるため、グローバル TMO より自然で詳細な結果が得られますが、計算コストが高くハローアーティファクトのリスクがあります。

Reinhard ローカル TMO (2002): 各ピクセルの周辺輝度を複数スケールのガウシアンフィルタで計算し、最適なスケールを自動選択します。大きなスケールほど強い圧縮が可能ですが、エッジを跨ぐとハローが発生するため、エッジを検出してスケールを制限します。

Durand-Dorsey バイラテラルフィルタ TMO (2002): 画像をベースレイヤー (大域的な輝度変動) とディテールレイヤー (局所的なテクスチャ) に分離し、ベースレイヤーのみを圧縮してディテールを保持します。

バイラテラルフィルタのパラメータ: σ_spatial = 画像幅の 2%、σ_range = 0.4 が推奨値です。σ_range が小さすぎるとハローが発生し、大きすぎるとディテールが失われます。

ガイデッドフィルタ TMO: バイラテラルフィルタの代わりにガイデッドフィルタを使用する手法です。O(N) の計算量で高速処理が可能で、バイラテラルフィルタのグラデーション反転問題を回避できます。ε パラメータで分離の閾値を制御し、0.01-0.1 の範囲で調整します。

知覚ベースの TMO - Mantiuk と iCAM

知覚ベースのトーンマッピングは、人間の視覚システム (HVS: Human Visual System) の特性を明示的にモデル化し、知覚的に最適な結果を生成します。コントラスト感度関数 (CSF) や明順応モデルを組み込んだ高度な手法です。

Mantiuk TMO (2006/2008): 人間のコントラスト知覚モデルに基づき、知覚的なコントラスト損失を最小化するように最適化します。HDR 画像のコントラストを周波数帯域ごとに分解し、各帯域で CSF に基づく可視性閾値を考慮してコントラストを圧縮します。

Mantiuk '08 は彩度補正も組み込み、トーンマッピング後の色の不自然さを軽減しています。pfstools の pfstmo_mantiuk08 コマンドで利用可能です。

iCAM06 (Image Color Appearance Model): CIECAM02 色の見えモデルを画像処理に拡張した手法です。明順応、色順応、空間周波数適応を統合的にモデル化し、異なる観察条件下での色の見えを予測します。HDR 画像の各領域の適応輝度を推定し、それに基づいてトーンマッピングを行うため、人間が実際にシーンを見たときの印象に近い結果が得られます。

Display Adaptive TMO: 出力デバイスの特性 (最大輝度、コントラスト比、ガンマ) を考慮してトーンマッピングを最適化する手法です。HDR ディスプレイ (1000nit 以上) と SDR ディスプレイ (300nit) で異なるマッピングを適用し、各デバイスの表示能力を最大限に活用します。

深層学習による HDR 処理 - 単一画像 HDR と学習ベース TMO

深層学習は HDR 画像処理の 2 つの側面で革新をもたらしています。1 つは単一の LDR 画像から HDR を推定する逆トーンマッピング、もう 1 つは学習ベースのトーンマッピングオペレータです。

単一画像 HDR 推定 (Inverse Tone Mapping): 通常の 8bit 画像から HDR 画像を推定する技術です。白飛び領域の情報復元が最大の課題で、深層学習により大幅な品質向上が実現されています。

学習ベース TMO: 人間の好みを学習データとして、知覚的に好ましいトーンマッピングを自動的に学習します。

リアルタイム HDR 処理: モバイルデバイスやゲームエンジンでは、軽量な深層学習モデルによるリアルタイム HDR 処理が実用化されています。Apple の Smart HDR、Google の HDR+ は複数フレームの情報を統合し、計算写真学 (Computational Photography) の代表例です。処理時間は 12MP で約 100ms (モバイル GPU) です。

用途別 TMO 選択ガイドと実装のポイント

トーンマッピングの選択は用途、品質要件、処理速度の制約によって決まります。具体的なユースケースごとの推奨と、実装時の注意点を示します。

用途別推奨 TMO:

実装時の注意点:

OpenCV での実装例: cv2.createTonemapReinhard(gamma=2.2, intensity=0, light_adapt=0.8, color_adapt=0) で Reinhard TMO を作成し、tonemap.process(hdr_image) で適用します。結果は 0-1 の浮動小数点なので、255 を掛けて 8bit に変換します。処理時間は 4K 画像で約 50ms (CPU) です。

関連記事

HDR 画像の仕組みと処理方法 - ハイダイナミックレンジの原理と実践

HDR 画像の技術的な仕組みからトーンマッピング、Web での表示方法まで解説。広いダイナミックレンジを活かす画像処理の実践テクニックを紹介します。

画像の色補正入門 - ホワイトバランスとトーンカーブの基礎

画像の色補正の基本であるホワイトバランス調整とトーンカーブ操作を初心者向けに解説。自然で美しい色再現を実現する手法を学びましょう。

ブレ除去 (デブラー) の原理と実践 - モーションブラーからピンボケまで

画像のブレ除去技術を体系的に解説。ウィーナーフィルタ、ブラインドデコンボリューション、深層学習ベースの最新手法まで原理と実装を網羅します。

レイヤー合成の基礎 - ブレンドモード完全解説と実践テクニック

画像レイヤーのブレンドモードを数式レベルで解説。乗算、スクリーン、オーバーレイなど主要モードの原理と実務での使い分けを具体例とともに紹介します。

ハーフトーン処理の原理と印刷への応用 - 網点表現の仕組み

印刷で使われるハーフトーン (網点) 処理の原理を解説。AM スクリーニング、FM スクリーニング、デジタルハーフトーンの実装方法を紹介します。

深層学習による超解像技術 - SRCNN から Real-ESRGAN までの進化と実践

深層学習を用いた画像超解像技術の発展を体系的に解説。SRCNN から Real-ESRGAN までの主要モデルの原理、性能比較、実務での導入方法を紹介します。

関連用語