HDR写真のLDR変換 — トーンマッピングの実務(Web公開の最短)
HDRで撮った写真は、輝度レンジも色域も広大です。ところがWebの閲覧環境はまだLDR(sRGB/8bit)が前提。 そのまま載せると白飛び/黒つぶれ/発色の転びが起きます。本稿は、現実の制作フローに合わせた 「安全側の最短ルート」を、手順・数値の目安・チェックリスト込みでまとめました。
まず“色域の正規化”から
どんな手法でも、最初に素材をsRGBに変換して土台を揃えると失敗が減ります(sRGB変換ガイド)。
要点(TL;DR)
- sRGB正規化 → トーンマッピング → 露出・彩度の微調整。
- カーブはハイライト抑制+シャドウ少し持ち上げを起点(肌/空/逆光で最終調整)。
- 10bit→8bitの段差は弱ディザで緩和。
- 書き出しはWebP 80–85(互換はJPEG 85)。
1. HDR→LDRで何が起きるか
- 輝度圧縮:広いレンジを狭い表示域に畳むため、ハイライトが飛びやすくシャドウが潰れやすい。
- 色域圧縮:P3/Rec.2020の色をsRGBへ写像。彩度の高い領域は転びやすい。
- ビット深度の縮小:10bit→8bitで段差(バンディング)が出ることがある。
2. 実務フロー(最短で安全)
- 色域をsRGBへ:プロファイル変換でピクセル自体をsRGBへ(付与/削除より変換)。 手順は 色管理ガイド を参照。
- トーンマッピング:Reinhard/Hable/ACESトーンなどから、ハイライトを抑えシャドウを少し持ち上げるS字をベースに。 肌・空・逆光の3点で画面全体のニュアンスを決める。
- 露出/彩度の微調整:グレーカード意識で中間調を合わせ、きつい彩度は少し戻す。彩度より明度差でコントラストを取る。
- 段差の緩和:必要に応じて弱ディザ(微細ノイズ)を入れる。やり過ぎはざらつきに注意。
- 書き出し:WebP 80–85(互換はJPEG 85)。にじみが気になれば85–90、スクショ要素はPNGで部分可逆に。
3. ケーススタディ:逆光ポートレート
逆光で髪が白飛び、肌が暗く沈んだ素材。sRGB化の後、ハイライトを抑えつつシャドウを少し開くS字カーブを適用。 肌の中間調を基準に露出を微調整し、空の青が不自然にならない範囲で彩度を戻す。仕上げに弱ディザで空の段差を緩和し、 WebP 82%で書き出し。LDR化の違和感が減り、軽さと質のバランスが取れました。
4. よくある落とし穴(回避策)
- トーンを盛り過ぎて平坦になる(立体感が消える)。
- sRGB化を忘れ、ブラウザごとに色が転ぶ。
- ディザが強すぎてざらつく(必要最小限に)。
5. FAQ
トーンカーブはプリセットだけで十分?
出発点には良いですが、最終は素材次第。肌/空/逆光の3点で人間の目に自然な位置へ追い込みます。
ハイライト復元と白飛びの違いは?
情報が残っているなら復元可能。完全に飛んだ領域はトーンでは戻らないので露出基準を見直します。
6. 公開前チェックリスト
- 素材をsRGBへ変換した(付与/削除に頼っていない)。
- ハイライト抑制+シャドウ少し持ち上げで立体感が保たれている。
- 肌/空/逆光で色と明るさの破綻がない。
- 段差が出る領域に弱ディザを加えた(やり過ぎていない)。
- WebP 80–85で書き出し、/compareで1:1確認した。
7. まとめ:安全側の“型”で素早く整える
まずsRGB、次にトーン、最後に露出・彩度。段差は弱ディザで緩和。 この型を守れば、HDR素材でも短時間でWebに馴染む見た目に落とせます。最終は /compressor と /compare で仕上げましょう。