OpenEXR 画像 (.exr)
Academy 標準OpenEXR は、映画制作や視覚効果のワークフローで使われるプロ向け HDR 画像形式です。16 ビット half と 32 ビット浮動小数点ピクセルに加え、複数のチャンネルやレイヤーをサポートします。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してEXRファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してEXRファイルを識別します:
16進数シグネチャ(オフセット0):
76 2F 31 01ASCII表現: v/1.
標準化: Academy Software Foundation(ASWF)オープン標準
技術仕様
| コンテナアーキテクチャ | 任意のチャンネル、パート、ディープデータレイヤーに対応する拡張可能なチャンクベースのコンテナ |
| 圧縮 | PIZ(ウェーブレット)、ZIP/ZIPS、RLE、B44/B44A、DWAA/DWAB(非可逆DCT)、非圧縮 |
| バイトエンディアン | リトルエンディアン(Intel x86) |
| 色空間 | Linear ACEScg, ACES2065-1, リニアRec.709, 任意の色度座標 |
| チャンネルと構造 | 任意のチャンネル名(R、G、B、A、Z-depth、Normal、WorldPos、MotionVectors、Cryptomatte) |
| 最大寸法 | 実質的に制限なし(タイル式のディープズームと数十億画素のキャンバス範囲に対応) |
| 透過性 | 浮動小数点アルファチャンネルと、ディープコンポジット用のボリュームサンプル配列を完全サポート |
| ストリーミングとプログレッシブ | 走査線またはタイル単位でチャンクをストリーミングし、フレームの一部を高速に読み込み、プロキシを描画可能 |
技術比較表:EXRと競合製品
| 技術属性 | EXR (現在) | HDR | TIFF | PNG |
|---|---|---|---|---|
| ダイナミックレンジ | 16ビット半精度および32ビット浮動小数点(リニア) | 8-bit 共有指数 (RGBE) | 整数 8/16-bit または 32-bit float | 標準 8-bit / 16-bit 整数 |
| マルチチャンネルパス | 無制限の任意の名前付きチャンネルおよびパート | RGB のみ | 制限付きレイヤーサポート | RGBA のみ |
| 業界での採用 | VFXおよびハリウッドの3D制作で100%標準として採用 | レガシー 3D ライティング / パノラマ | プリプレスおよび写真 | ソフトウェアによって対応状況は異なります。 |
| 色彩管理 | ACES および OpenColorIO ネイティブ統合 | アドホックなガンマ / リニア | ICC プロファイルタグ | sRGB / ICC タグ |
一般的な破損モードと16進数リカバリガイド
画像全体が真っ暗になるか、非常に明るく白飛びした領域が現れます。
根本原因: リニアから sRGB へのディスプレイ変換の欠落、または不適切な ACES 色空間の割り当てが原因です。
復旧: File2File.app HDR ビューアで ACEScg またはリニアから sRGB へのトーンカーブ変換を適用してください。
セキュリティ分析とパーサー攻撃ベクトル
複雑なチャンクベースの OpenEXR パーサーは、メモリ安全性の問題を防止するために、チャンネル定義とタイルの境界を厳密に検証する必要があります。
既知の攻撃ベクター
- libopenexr におけるマルチチャンネル バッファのストライド計算の整数オーバーフロー。
- PIZ または DWAA で圧縮されたストリームの解凍時のヒープ領域外読み取り。
- 深くネストされたマルチパート チャンク ヘッダーの再帰を通したサービス拒否 (DoS)。
防御的ベストプラクティス: 厳格なタイルの寸法制限を持つ、メモリ安全なサンドボックス化されたWebAssemblyビルドを使用してEXRファイルをデコードします。
歴史的背景とマイルストーン
主なメリット
- 16ビット半精度浮動小数点(FP16)および32ビット浮動小数点(FP32)にネイティブ対応し、直射日光から暗い影までの極端な輝度を保持します。
- 任意のマルチチャンネル アーキテクチャにより、すべての 3D レンダリング パス (ビューティ、ディフューズ、スペキュラ、深度、cryptomatte) が 1 つのファイルにカプセル化されます。
- 業界をリードする DWAA/DWAB および PIZ 圧縮アルゴリズムにより、視覚的な損失なしに驚異的な圧縮が実現されます。
技術的な制限とデメリット
- 圧縮されていないマルチレイヤーの 4K/8K 32-bit レンダリング パスを保存する場合、ファイルサイズが大きくなります。
- コンシューマー向けソフトウェアでのマルチチャンネル解凍時に、高い CPU およびメモリのオーバーヘッドが発生します。
- 標準の sRGB ディスプレイで正しくレンダリングするには、色彩管理変換 (ACES または OCIO) が必要です。
興味深い技術トリビア
- Industrial Light & Magic は、OpenEXR フォーマット専用に 16-bit の「half」浮動小数点データ型を発明しました。
- すべての EXR ファイルの最初の 4 つのマジックバイトは 0x76 0x2F 0x31 0x01 であり、ASCII に翻訳すると「v/1\x01」になります。
- OpenEXR は「Deep Data」をサポートしており、半透明の煙や雲を通した異なる距離にある複数のカラーおよび深度サンプルを 1 つのピクセルに格納できます。
よくある技術的な質問
一部の視覚効果ワークフローで OpenEXR が使われるのはなぜですか?
高精度の HDR 画像データを保持し、合成に必要な複数のチャンネル、パーツ、深度データを扱えるためです。
EXRのハーフフロートとフロートの違いは何ですか?
ハーフフロートはカラーチャンネルあたり16ビットを使用し、完全な32ビットフロートの半分のファイルサイズで30ストップのダイナミックレンジを提供するため、ビューティーレンダリングで業界標準となっています。
EXRを標準的なPNGやJPGに変換するにはどうすればよいですか?
Webブラウザから直接File2File.appを使用して、EXRファイルをトーンマップされたPNGまたはJPG画像に変換できます。