RGBE(Radiance HDR)は、グレゴリー・ウォード・ラーソンがRadianceレンダリングシステム用に開発した画像フォーマットです。RGB(赤、緑、青)の各ピクセル値を1バイトずつ格納し、指数部は1バイトで共有します。そのため、1ピクセルあたり4バイトのデータが格納されます。
RGBEでは、比較的コンパクトなデータ構造(ピクセルあたり32ビット)で、ピクセルが浮動小数点値のダイナミックレンジと精度を持つことができます。多くの場合、光シミュレーションから画像を生成すると、ピクセルごとの色強度値の範囲が、標準的な24ビット画像フォーマットの0~255(8ビット)の範囲にうまく収まらないほど大きくなります。その結果、明るいピクセルは255に制限されるか、暗いピクセルは数値精度を失います。
RGBE形式は、共通の指数を使用することで、 IEEE浮動小数点形式の単精度または半精度データに必要な色成分あたり32ビットまたは16ビットよりも少ないビット数で浮動小数点値の利点の一部を獲得し、半精度よりも広いダイナミックレンジを実現します。指数値128は、整数色[0..255]を浮動小数点空間[0..1)にマッピングします。
このフォーマットの2つ目のバリアントでは、共通の指数を持つXYZカラーモデルが使用されます。MIMEタイプとファイル拡張子は同じであるため、このファイルフォーマットを読み取るアプリケーションは、カラーモデルに関する埋め込み情報を解釈する必要があります。
Greg Ward氏は、自身のRadianceレンダラーでRGBEファイルを処理するコードを提供している。
OpenGLでは、類似のRGB9_E5カラー(レンダリングではない)フォーマットのサポートが必須となっており、3つのチャンネルはそれぞれ9ビットの仮数部を持ち、5ビットの指数部を共有しています。[ 2 ]
JPEG XT Part 2 (Dolby JPEG-HDR) および Part 7 Profile A は、RGBE フォーマットに基づいています。
RGBM は指数が共有乗数に置き換えられたフォーマットであり、RGBD は代わりに除数を格納する。これらのフォーマットは RGBE やlogLUVのようなダイナミック レンジを持たないが、各コンポーネントで線形補間を行うという単純なアプローチに適している。[ 3 ] RGBE と同様に、4 チャンネル カラー モデルを受け入れる任意のフォーマットでパッケージ化でき、 3D テクスチャ用のPNG (RGBA 構造を採用) などの通常のフォーマットも含まれる。[ 4 ]
より多様なカラーフォーマットは、個別の浮動小数点数を格納するという従来型の方法を採用しています。これには、Xboxの「7e3」フォーマット(それぞれ7ビットの仮数部と3ビットの指数部を持つ3つの10ビット浮動小数点カラーチャンネル)やOpenGLのR11F_G11F_B10Fフォーマットが含まれます。[ 2 ]