OpenEXR 画像 (.exr)
Academy 標準OpenEXR (EXR) は、映画および視覚効果 (VFX) 業界の標準的なハイダイナミックレンジ (HDR) 画像フォーマットであり、無限のレイヤーにわたって 16-bit の half および 32-bit の浮動小数点ピクセルをサポートします。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで EXR ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで EXR ファイルを識別します:
16進数シグネチャ (オフセット 0):
76 2F 31 01ASCII表現: v/1.
標準化: Academy Software Foundation (ASWF) Open Standard
技術仕様
| コンテナアーキテクチャ | Extensible chunk-based container supporting arbitrary channels, parts, and deep data layers |
| 圧縮 | PIZ (wavelet), ZIP/ZIPS, RLE, B44/B44A, DWAA/DWAB (lossy DCT), and uncompressed |
| バイトエンディアン | Little-Endian (Intel x86) |
| 色空間 | Linear ACEScg, ACES2065-1, Linear Rec.709, Arbitrary chromaticity coordinates |
| チャンネルと構造 | Arbitrary channel names (R, G, B, A, Z-depth, Normal, WorldPos, MotionVectors, Cryptomatte) |
| 最大寸法 | Practically unlimited (supports tiled deep zoom and multi-gigapixel canvas bounds) |
| 透過性 | Full floating-point alpha channel and deep-compositing volumetric sample arrays |
| ストリーミングとプログレッシブ | Scanline or tiled chunk streaming enables fast partial-frame reads and proxy rendering |
技術比較マトリックス: EXR 対 競合製品
| 技術属性 | EXR (現在) | HDR | TIFF | PNG |
|---|---|---|---|---|
| ダイナミックレンジ | 16-bit half および 32-bit float リニア | 8-bit 共有指数 (RGBE) | 整数 8/16-bit または 32-bit float | 標準 8-bit / 16-bit 整数 |
| マルチチャンネルパス | 無制限の任意の名前付きチャンネルおよびパート | RGB のみ | 制限付きレイヤーサポート | RGBA のみ |
| 業界での採用 | 100% 普遍的な VFX およびハリウッド 3D 標準 | レガシー 3D ライティング / パノラマ | プリプレスおよび写真 | ユニバーサル Web 標準 |
| 色彩管理 | ACES および OpenColorIO ネイティブ統合 | アドホックなガンマ / リニア | ICC プロファイルタグ | sRGB / ICC タグ |
一般的な破損モードと16進数リカバリガイド
画像が完全に暗くレンダリングされるか、白飛びしたパッチで吹き飛んだ状態になります。
根本原因: リニアから sRGB へのディスプレイ変換の欠落、または不適切な ACES 色空間の割り当てが原因です。
復旧: File2File HDR ビューアで ACEScg またはリニアから sRGB へのトーンカーブ変換を適用してください。
セキュリティ分析とパーサー攻撃ベクトル
複雑なチャンクベースの OpenEXR パーサーは、メモリ安全性の問題を防止するために、チャンネル定義とタイルの境界を厳密に検証する必要があります。
既知の攻撃ベクター
- libopenexr におけるマルチチャンネル バッファのストライド計算の整数オーバーフロー。
- PIZ または DWAA で圧縮されたストリームの解凍時のヒープ領域外読み取り。
- 深くネストされたマルチパート チャンク ヘッダーの再帰を通したサービス拒否 (DoS)。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- ネイティブな 16-bit ハーフフロート (FP16) および 32-bit フロート (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がハリウッドVFXの標準フォーマットなのですか?
フォトリアルな視覚効果に必要な、無限のダイナミックレンジを持つ16ビットおよび32ビットの浮動小数点ライト値、マルチレイヤーの3Dレンダーパス、ディープ合成情報を格納できるためです。
EXRのハーフフロートとフロートの違いは何ですか?
ハーフフロートはカラーチャンネルあたり16ビットを使用し、完全な32ビットフロートの半分のファイルサイズで30ストップのダイナミックレンジを提供するため、ビューティーレンダリングで業界標準となっています。
EXRを標準的なPNGやJPGに変換するにはどうすればよいですか?
Webブラウザから直接File2File.appを使用して、EXRファイルをトーンマップされたPNGまたはJPG画像に変換できます。