(57)【要約】【課題】１画素当たりに割り当てられるビット数を低減しつつ、広いダイナミックレンジを確保するとともに、マッハバンドが知覚されないようにする。【解決手段】ＲＧＢの各色の明度を、仮数部６ビット、指数部ｌｏｇ２（２４）ビット（約４．５８５ビット）の浮動小数点形式で表現し、ｌｏｇ２（２４）ビットの指数部では、ｍ＊２ｎ〜ｍ＊２ｎ＋２３の範囲を表現できるようにする。【選択図】      図１
2011128714.tif 000002
【特許請求の範囲】
【請求項１】
画素の色または明度が整数ビット長で表現される仮数部と非整数ビット長で表現される指数部を含む第１のフォーマットの浮動少数点形式で表現されたデータを記憶する記憶部と、
前記データの処理を行う画像処理部とを備えることを特徴とする画像処理装置。
【請求項２】
前記第１のフォーマットで表現されるデータを、整数ビット長で表現される仮数部と整数ビット長で表現される指数部を含む第２のフォーマットの浮動小数点形式で表現されデータに変換するデコード部と、
前記第２のフォーマットで表現されるデータを、前記第１のフォーマットのデータに変換するエンコード部とをさらに備えることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記画像処理部は、
図形を表現するトライアングルの頂点の座標変換を行う頂点処理部と、
前記頂点で構成されるトライアングルを画素の集まりに変換するラスタライズ部と、
前記画素に属性を付与するピクセル処理部とを備えることを特徴とする請求項１または２記載の画像処理装置。
【請求項４】
前記画素の色をＲＧＢの３要素で表現し、前記ＲＧＢの各要素の明度が６ビットで指定された仮数部とｌｏｇ２（２４）ビットで指定された指数部を含む浮動少数点形式の前記第１のフォーマットで表現されていることを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記エンコード部は、
前記第２のフォーマットのデータを前記第１のフォーマットで表現可能な範囲の値にクランプするクランプ部と、
前記ＲＧＢの各要素の指数部の上位２ビットを５ビットのＥ値に変換するＥ値変換器と、
前記Ｅ値変換器で得られた５ビットのＥ値と、前記ＲＧＢの各要素の指数部の下位３ビットと、前記ＲＧＢの各要素の仮数部の６ビットを連結することにより、３２ビットの値を生成するビット連結部とを備えることを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記デコード部は、
前記第２のフォーマットで表現された３２ビットの値を５ビットのＥ値と、前記ＲＧＢの各要素の指数部の下位３ビットと、前記ＲＧＢの各要素の仮数部の６ビットに分離するビット分離部と、
前記５ビットのＥ値を前記ＲＧＢの各要素の指数部の上位２ビットに逆変換するＥ値逆変換器と、
前記ＲＧＢの各要素の指数部の上位２ビットと、前記ＲＧＢの各要素の指数部の下位３ビットと、前記ＲＧＢの各要素の仮数部の６ビットを前記画像処理部で扱われるＲＧＢの各要素に変換する正規化部とを備えることを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記画素の色をＲＧＢの３要素で表現し、前記ＲＧＢの各要素の明度が６ビットで指定された仮数部とｌｏｇ２（２５）ビットで指定された指数部を含む浮動少数点形式の前記第１のフォーマットで表現されていることを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項８】
前記エンコード部は、
前記第２のフォーマットのデータを前記第１のフォーマットで表現可能な範囲の値にクランプするクランプ部と、
前記ＲＧＢの各要素の指数部の５ビットを１４ビットのＥ値に変換するＥ値変換器と、
前記Ｅ値変換器で得られた１４ビットのＥ値と、前記ＲＧＢの各要素の仮数部の６ビットを連結することにより、３２ビットの値を生成するビット連結部とを備えることを特徴とする請求項７記載の画像処理装置。
【請求項９】
前記デコード部は、
前記第２のフォーマットで表現された３２ビットの値を１４ビットのＥ値と、前記ＲＧＢの各要素の仮数部の６ビットに分離するビット分離部と、
前記１４ビットのＥ値を前記ＲＧＢの各要素の指数部の５ビットに逆変換するＥ値逆変換器と、
前記ＲＧＢの各要素の指数部の５ビットと、前記ＲＧＢの各要素の仮数部の６ビットを前記画像処理部で扱われるＲＧＢの各要素に変換する正規化部とを備えることを特徴とする請求項８記載の画像処理装置。
【請求項１０】
画素の色または明度が整数ビット長で表現される仮数部と非整数ビット長で表現される指数部を含む浮動少数点形式のフォーマットで表現されていることを特徴とするコンピュータに読み取り可能な画像データ。
【請求項１１】
画素の色または明度が整数ビット長で表現される仮数部と非整数ビット長で表現される指数部を含む浮動少数点形式のフォーマットで表現された画像データを記憶させるステップと、
前記画像データを処理するステップとをコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像データおよび画像処理プログラムに関し、特に、画素の色または明度を浮動少数点形式で表現するフォーマットに適用して好適なものである。
【背景技術】
【０００２】
高品質なコンピュータグラフィックス画像を生成するために、ＨＤＲ（Ｈｉｇｈ  Ｄｙｎａｍｉｃ−ｒａｎｇｅ  Ｒｅｎｄｅｒｉｎｇ）技術の重要性が増しつつある。このＨＤＲでは、各画素の色に関し、０〜１．０の範囲を超えた広いダイナミックレンジで処理する必要がある。
【０００３】
そのため、フレームバッファ内の各画素のＲＧＢ各成分の明度を１６ビットの浮動小数点形式（指数部５ビット、仮数部１１ビット）で表現するフォーマット（Ｒ１６Ｇ１６Ｂ１６Ａ１６＿ＦＬＯＡＴ）が広く使われている。ただし、この方法では、ＲＧＢ各成分の明度を表現するために３×１６ビットが必要になる。このため、透明度を表すアルファ成分を含めると、１ピクセル当たり６４ビット分だけ消費し、メモリ容量およびメモリバンド幅が増大する。
【０００４】
メモリ容量およびメモリバンド幅を半減させるために、１ピクセル当たり３２ビットで表現する方式もいくつか提案されている。例えば、マイクロソフト社のＤｉｒｅｃｔＸ１０ではＲ９Ｇ９Ｂ９Ｅ５＿ＳＨＡＲＥＤＥＸＰやＲ１１Ｇ１１Ｂ１０＿ＦＬＯＡＴという浮動小数点ベースのフォーマットが定義されている。また、商用ゲーム機のＸｂｏｘ３６０ではＲ１０Ｇ１０Ｂ１０Ａ２＿ＦＬＯＡＴというフォーマットが用いられている。
【０００５】
また、例えば、特許文献１には、画像を複数の画像ブロックに分解し、各画素の高ダイナミックレンジ値から画像ブロックにおける画素の色情報および輝度情報を分離し、画像ブロックにおける画素の色情報と画像ブロックにおける画素の輝度情報とを互いに独立に圧縮する方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−５２４３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、Ｒ９Ｇ９Ｂ９Ｅ５＿ＳＨＡＲＥＤＥＸＰでは、ＲＧＢ各成分で指数部が共通であるため、色が飽和する時に極端に精度が低下するという問題があった。
【０００８】
また、Ｒ１１Ｇ１１Ｂ１０＿ＦＬＯＡＴでは、Ｂチャネルの仮数部が５ビットと少なくマッハバンドが知覚される可能性があるという問題があった。
【０００９】
また、Ｒ１０Ｇ１０Ｂ１０Ａ２＿ＦＬＯＡＴでは、エンコードおよびデコードの回路規模は少なくてすむものの、指数部が３ビットしか割り当てられていないため、ダイナミックレンジ不足および精度不足をきたし、やはりマッハバンドが知覚される可能性があるという問題があった。
【００１０】
また、特許文献１に開示された方法は、様々なフォーマットで表現された画像データの圧縮に関するもので、メモリ容量およびメモリバンド幅を低減するためのフォーマット表現に関するものではない。
【００１１】
本発明の目的は、１画素当たりに割り当てられるビット数を低減しつつ、広いダイナミックレンジを確保するとともに、マッハバンドが知覚されないようにすることが可能な画像処理装置、画像データおよび画像処理プログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明の一態様によれば、画素の色または明度が整数ビット長で表現される仮数部と非整数ビット長で表現される指数部を含む第１のフォーマットの浮動少数点形式で表現されたデータを記憶する記憶部と、前記データの処理を行う画像処理部とを備えることを特徴とする画像処理装置を提供する。
【００１３】
本発明の一態様によれば、画素の色または明度が整数ビット長で表現される仮数部と非整数ビット長で表現される指数部を含む浮動少数点形式のフォーマットで表現されていることを特徴とするコンピュータに読み取り可能な画像データを提供する。
【００１４】
本発明の一態様によれば、画素の色または明度が整数ビット長で表現される仮数部と非整数ビット長で表現される指数部を含む浮動少数点形式のフォーマットで表現された画像データを記憶させるステップと、前記画像データを処理するステップとをコンピュータに実行させることを特徴とする画像処理プログラムを提供する。
【発明の効果】
【００１５】
本発明によれば、１画素当たりに割り当てられるビット数を低減しつつ、広いダイナミックレンジを確保するとともに、マッハバンドが知覚されないようにすることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の第１実施形態に係るＲＧＢの各要素の明度を浮動少数点形式で表現するフォーマットの一例を示す図。
【図２】図２は、本発明の第２実施形態に係る画像処理装置の概略構成を示すブロック図。
【図３】図３は、図１のフォーマットに対応した図２のエンコーダ７の一例を示す図。
【図４】図４は、図１のフォーマットに対応した図２のデコーダ６、８の一例を示す図。
【図５】図５は、本発明の第３実施形態に係るＲＧＢの各色の明度を浮動少数点形式で表現するフォーマットの一例を示す図。
【図６】図６は、図５のフォーマットに対応した図２のエンコーダ７の一例を示す図。
【図７】図７は、図５のフォーマットに対応した図２のデコーダ６、８の一例を示す図。
【図８】図８は、本発明の実施形態に係るフォーマットで表現された輝度と精度の関係を従来のフォーマットと対比して示す図。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態に係る画像データの表現に用いられるフォーマットおよび画像処理装置について図面を参照しながら説明する。なお、以下の説明では、画素の色がＲＧＢの３要素で表現される場合を例にとって説明するが、本発明は、画素の色がＲＧＢの３要素で表現される場合に限定されることなく、例えば、画素の色がＹＵＶの３要素で表現される場合などに適用してもよい。
【００１８】
（第１実施形態）
図１は、本発明の第１実施形態に係るＲＧＢの各色の明度を浮動少数点形式で表現するフォーマットの一例を示す図である。
図１において、このフォーマットでは、ＲＧＢの各色の明度が、仮数部６ビット、指数部ｌｏｇ２（２４）ビット（約４．５８５ビット）の浮動小数点形式で表現される。
ここで、ｌｏｇ２（２４）ビットの指数部では、ｍ＊２ｎ〜ｍ＊２ｎ＋２３の範囲を表現することができる。ただしｎは任意の整数、ｍは仮数部の値である。
図１のフォーマットで表現されたＲＧＢの各色の指数部をまとめて１４ビットにエンコードすることができる。
【００１９】
すなわち、３＊ｌｏｇ２（２４）＝ｌｏｇ２（３３＊２９）＜ｌｏｇ２（２１４）という関係を満たすので、ＲＧＢの３色分の指数部の情報量は１４ビット以下に抑えることができる。
【００２０】
これにより、ＲＧＢの各色の仮数部に６ビットずつ割り当てた場合においても、１画素当たりに割り当てられるビット数を３２ビット以下に抑えつつ、ＲＧＢの各色の指数部に割り当てられるビット数の減少分を抑制することができる。このため、メモリ容量およびメモリバンド幅の増大を抑制しつつ、広いダイナミックレンジを確保するとともに、マッハバンドが知覚されないようにすることができる。
【００２１】
なお、指数部が０の時、仮数部は非正規化数扱いとするようにしてもよい。この場合、最小分解能は２ｎ−５となり、ダイナミックレンジを２ｎ＋２３／２ｎ−５＝２２８に拡大することができる。
【００２２】
（第２実施形態）
図２は、本発明の第２実施形態に係る画像処理装置の概略構成を示すブロック図である。
図２において、画像処理装置には、画像処理部９、デコーダ６ａ、６ｂ、エンコーダ７、ピクセルキャッシュ５、テクスチャキャッシュ１０およびフレームバッファ８が設けられている。画像処理部９は画像データＤの処理を行うことができる。フレームバッファ８は、画像処理部９にて処理される画像データＤを記憶することができる。なお、画像データＤは、図１のフォーマットを用いたラスタ形式で表現することができる。デコーダ６ａ、６ｂは、図１のフォーマットで表現された画像データＤを画像処理部９で扱われる形式に変換することができる。エンコーダ７は、画像処理部９で扱われる形式で表現された画像データＤを図１のフォーマットの形式に変換することができる。ピクセルキャッシュ５は、属性が付与された画素データを保持することができる。なお、ピクセルキャッシュ５は、例えば、１エントリ（矩形）ずつ画素データを保持することができる。テクスチャキャッシュ１０は、フレームバッファ８から読み出した画素の属性を一時的に保持することができる。なお、画素の属性としては、例えば、色、模様、テクスチャなどを挙げることができる。
【００２３】
ここで、画像処理部９には、頂点処理エンジン１、ラスタライザ２、ピクセル処理エンジン３およびテクスチャエンジン４が設けられている。頂点処理エンジン１は、図形を表現するトライアングルの頂点の座標変換を行うことができる。なお、頂点の座標変換としては、例えば、頂点にて構成される図形の回転、縮小または拡大などに伴う座標変換を挙げることができる。また、頂点処理エンジン１は、コマンドリスト内の描画コマンドおよび描画データ（始点、終点、制御点など）を、ストロークを構成する複数のトライアングルに変換するようにしてもよい。なお、コマンドリストの描画データは、例えば、ベクトル形式などのラスタ形式以外の形式で表現することができる。ラスタライザ２は、頂点で構成されるトライアングルを画素の集まりに変換することができる。テクスチャエンジン４は、画素の属性を保持したり、画素の属性に関する処理を行うことができる。例えば、テクスチャエンジン４は、テクスチャ座標からメモリアドレスを計算したり、テクスチャフィルタとして動作したりすることができる。なお、画素の属性としては、例えば、色、模様、テクスチャなどを挙げることができる。ピクセル処理エンジン３は、テクスチャエンジン４にて取得された属性等を入力とし、任意の演算処理により画素に付与する属性を生成することができる。
【００２４】
そして、頂点処理エンジン１において、コマンドリスト内の描画コマンドおよび描画データは、ストロークを構成する複数のトライアングルに変換され、トライアングルを構成する頂点の座標変換が行われた後、ラスタライザ２に入力される。そして、ラスタライザ２において、頂点で構成されるトライアングルが画素の集まりに変換され、ピクセル処理エンジン３に入力される。
【００２５】
一方、フレームバッファ８に記憶された画像データＤはテクスチャキャッシュ１０を介してデコーダ６ｂに出力され、図１のフォーマットから画像処理部９で扱われる形式に変換された後、テクスチャエンジン４に送られる。そして、テクスチャエンジン４において画素の属性に関する処理が行われた後、ピクセル処理エンジン３に出力される。また、フレームバッファ８に記憶された画像データＤはピクセルキャッシュ５を介してデコーダ６ａに出力され、図１のフォーマットから画像処理部９で扱われる形式に変換された後、ピクセル処理エンジン３に送られる。
【００２６】
そして、ピクセル処理エンジン３において、最終的に画素に付与される属性が計算され、エンコーダ７に送られる。そして、エンコーダ７において、画像処理部９で扱われる形式から図１のフォーマットに変換された後、ピクセルキャッシュ５に記憶されている画像データＤの上書きなどが行われることで、画像データＤが更新される。そして、ピクセル処理エンジン３にて更新されたピクセルキャッシュ５上の画像データＤは、フレームバッファ８に記憶される。
【００２７】
図３は、図１のフォーマットに対応した図２のエンコーダ７の一例を示す図である。
図３において、図２のエンコーダ７には、クランプ部１１ｒ、１１ｇ、１１ｂ、Ｅ値変換器１２、ビット連結部１３が設けられている。クランプ部１１ｒ、１１ｇ、１１ｂは、画像処理部９で扱われるＲＧＢの各要素の値（以下、ＲＧＢの各値と称す。）を図１のフォーマットで表現可能な範囲にクランプすることができる。なお、クランプ部１１ｒ、１１ｇ、１１ｂは、必要に応じて仮数部を非正規化数に変換する処理を行うようにしてもよい。Ｅ値変換器１２は、ＲＧＢの各値の指数部の上位２ビットを５ビットの圧縮指数コード（Ｅ値と称す）に変換することができる。なお、Ｅ値変換器１２は、演算器群で構成してもよいし、テーブルで構成してもよい。ビット連結部１３は、Ｅ値変換器１２で得られた５ビットのＥ値と、ＲＧＢの各値の指数部の下位３ビットと、ＲＧＢの各値の仮数部の６ビットを連結することにより、３２ビットの値を生成することができる。なお、エンコーダ７に入力されるＲＧＢの各値は浮動小数点数である。
【００２８】
そして、ＲＧＢの各値がクランプ部１１ｒ、１１ｇ、１１ｂに入力されると、図１のフォーマットで表現可能な範囲にクランプされ、ＲＧＢの各値の指数部の上位２ビットがＥ値変換器１２に出力されるとともに、ＲＧＢの各値の指数部の下位３ビットおよびＲＧＢの各値の仮数部の６ビットがビット連結部１３に出力される。そして、Ｅ値変換器１２において、ＲＧＢの各値の指数部の上位２ビットが５ビットのＥ値に変換され、ビット連結部１３に出力される。そして、ビット連結部１３において、Ｅ値変換器１２で得られた５ビットのＥ値と、ＲＧＢの各値の指数部の下位３ビットと、ＲＧＢの各値の仮数部の６ビットが連結され、図１のフォーマットで表現された画像データＤが生成される。
【００２９】
具体的には、クランプ部１１ｒ、１１ｇ、１１ｂでは、ＲＧＢの各値のｎ〜ｎ＋２３の指数が０〜２３の２進コードで表現され、ＲＧＢの各要素当たり５ビットで表現される。ここで、ＲＧＢの各値の指数部の上位２ビットをＲｅ、Ｇｅ、Ｂｅとすると、Ｅ値変換器１２では、例えば、Ｅ＝Ｒｅ＊３２＋Ｇｅ＊３＋Ｂｅという計算を行うことにより、５ビットのＥ値を求めることができる。なお、Ｒｅ、Ｇｅ、Ｂｅの関係は任意に入れ替え可能である。なお、Ｒｅ、Ｇｅ、Ｂｅの取り得る範囲は０〜２なので、Ｅの範囲は０〜２６となる。このため、Ｅは５ビットで表現可能となり、ＲＧＢの各値の指数部の下位３ビットを合わせると、全体で１４ビットとなる。
【００３０】
ここで、ＲＧＢの各色の明度の指数部をｌｏｇ２（２４）ビットで表現することにより、指数部の上位２ビットと下位３ビットを分離して扱うことができる。このため、Ｅ値変換器１２を６ビット入力５ビット出力とすることができ、Ｅ値変換器１２の構成を簡単化することができる。
【００３１】
図４は、図１のフォーマットに対応した図２のデコーダ６、８の一例を示す図である。
図４において、図２のデコーダ６、８には、正規化部２１ｒ、２１ｇ、２１ｂ、Ｅ値逆変換器２２およびビット分離部２３が設けられている。ビット分離部２３は、図１のフォーマットで表現された３２ビットの値を５ビットのＥ値と、ＲＧＢの各値の指数部の下位３ビットと、ＲＧＢの各値の仮数部の６ビットに分離することができる。Ｅ値逆変換器２２は、５ビットのＥ値をＲＧＢの各値の指数部の上位２ビットに逆変換することができる。なお、Ｅ値逆変換器２２は、演算器群で構成してもよいし、テーブルで構成してもよい。正規化部２１ｒ、２１ｇ、２１ｂは、ＲＧＢの各値の指数部の上位２ビットと、ＲＧＢの各値の指数部の下位３ビットと、ＲＧＢの各値の仮数部の６ビットを画像処理部９で扱われるＲＧＢの各値に変換することができる。
【００３２】
そして、図１のフォーマットで表現された画像データＤがビット分離部２３に入力されると、５ビットのＥ値と、ＲＧＢの各値の指数部の下位３ビットと、ＲＧＢの各値の仮数部の６ビットに分離され、５ビットのＥ値がＥ値逆変換器２２に出力されるとともに、ＲＧＢの各値の指数部の下位３ビットおよびＲＧＢの各値の仮数部の６ビットが正規化部２１ｒ、２１ｇ、２１ｂにそれぞれ出力される。
【００３３】
そして、Ｅ値逆変換器２２において、５ビットのＥ値がＲＧＢの各値の指数部の上位２ビットに逆変換され、正規化部２１ｒ、２１ｇ、２１ｂにそれぞれ出力される。そして、正規化部２１ｒ、２１ｇ、２１ｂにおいて、ＲＧＢの各値の指数部の上位２ビットと、ＲＧＢの各値の指数部の下位３ビットと、ＲＧＢの各値の仮数部の６ビットとから、浮動小数点フォーマットに従って正規化が行われ、画像処理部９に出力される。
【００３４】
（第３実施形態）
図５は、本発明の第３実施形態に係るＲＧＢの各色の明度を浮動少数点形式で表現するフォーマットの一例を示す図である。
図５において、このフォーマットでは、ＲＧＢの各色の明度が、仮数部６ビット、指数部ｌｏｇ２（２５）ビット（約４．６４４ビット）の浮動小数点形式で表現される。
ここで、ｌｏｇ２（２５）ビットの指数部では、ｍ＊２ｎ〜ｍ＊２ｎ＋２４の範囲を表現することができる。ただしｎは任意の整数、ｍは仮数部の値である。
図５のフォーマットで表現されたＲＧＢの各色の指数部をまとめて１４ビットにエンコードすることができる。
【００３５】
すなわち、３＊ｌｏｇ２（２５）＝ｌｏｇ２（５６）＜ｌｏｇ２（２１４）という関係を満たすので、ＲＧＢの３色分の指数部の情報量は１４ビット以下に抑えることができる。
【００３６】
これにより、ＲＧＢの各色の仮数部に６ビットずつ割り当てた場合においても、１画素当たりに割り当てられるビット数３２ビット以下に抑えつつ、ＲＧＢの各色の指数部に割り当てられるビット数の減少分を抑制することができる。このため、メモリ容量およびメモリバンド幅の増大を抑制しつつ、広いダイナミックレンジを確保するとともに、マッハバンドが知覚されないようにすることができる。
【００３７】
なお、指数部が０の時、仮数部は非正規化数扱いとするようにしてもよい。この場合、最小分解能は２ｎ−５となり、ダイナミックレンジを２ｎ＋２４／２ｎ−５＝２２９に拡大することができる。
【００３８】
図６は、図５のフォーマットに対応した図２のエンコーダ７の一例を示す図である。
図６において、図２のエンコーダ７には、クランプ部３１ｒ、３１ｇ、３１ｂ、Ｅ値変換器３２、ビット連結部３３が設けられている。クランプ部３１ｒ、３１ｇ、３１ｂは、画像処理部９で扱われるＲＧＢの各値を図５のフォーマットで表現可能な範囲にクランプすることができる。なお、クランプ部３１ｒ、３１ｇ、３１ｂは、必要に応じて仮数部を非正規化数に変換する処理を行うようにしてもよい。Ｅ値変換器３２は、ＲＧＢの各値の指数部の５ビットを１４ビットのＥ値に変換することができる。なお、Ｅ値変換器３２は、２５進数を２進数へ変換する基数変換器と等価であり、演算器群で構成してもよいし、テーブルで構成してもよい。ビット連結部３３は、Ｅ値変換器３２で得られた１４ビットのＥ値と、ＲＧＢの各値の仮数部の６ビットを連結することにより、３２ビットの値を生成することができる。
【００３９】
そして、ＲＧＢの各値がクランプ部３１ｒ、３１ｇ、３１ｂに入力されると、図５のフォーマットで表現可能な範囲にクランプされ、ＲＧＢの各値の指数部の５ビットがＥ値変換器３２に出力されるとともに、ＲＧＢの各値の仮数部の６ビットがビット連結部３３に出力される。そして、Ｅ値変換器３２において、ＲＧＢの各値の指数部の５ビットが１４ビットのＥ値に変換され、ビット連結部３３に出力される。そして、ビット連結部３３において、Ｅ値変換器３２で得られた１４ビットのＥ値と、ＲＧＢの各値の仮数部の６ビットが連結され、図５のフォーマットで表現された画像データＤが生成される。
【００４０】
具体的には、クランプ部３１ｒ、３１ｇ、３１ｂでは、ＲＧＢの各値のｎ〜ｎ＋２４の指数が０〜２４の２進コードで表現され、ＲＧＢの各要素当たり５ビットで表現される。ここで、ＲＧＢの各値の指数部の５ビットをＲｅ、Ｇｅ、Ｂｅとすると、Ｅ値変換器３２では、例えば、Ｅ＝Ｒｅ＊２５２＋Ｇｅ＊２５＋Ｂｅという計算を行うことにより、１４ビットのＥ値を求めることができる。なお、Ｒｅ、Ｇｅ、Ｂｅの関係は任意に入れ替え可能である。なお、Ｒｅ、Ｇｅ、Ｂｅの取り得る範囲は０〜２４なので、Ｅの範囲は０〜１５６２４となる。このため、Ｅは１４ビットで表現可能となる。
【００４１】
ここで、図５のフォーマットでは、Ｅ値変換器３２が１５ビット入力１４ビット出力となり、図１のフォーマットを用いた場合に比べて図３のＥ値変換器１２の構成が大規模化するものの、図１のフォーマットよりもダイナミックレンジを拡大することができる。
【００４２】
図７は、図５のフォーマットに対応した図２のデコーダ６、８の一例を示す図である。
図７において、図２のデコーダ６、８には、正規化部４１ｒ、４１ｇ、４１ｂ、Ｅ値逆変換器４２およびビット分離部４３が設けられている。ビット分離部４３は、図５のフォーマットで表現された３２ビットの値を１４ビットのＥ値と、ＲＧＢの各値の仮数部の６ビットに分離することができる。Ｅ値逆変換器４２は、１４ビットのＥ値をＲＧＢの各値の５ビットに逆変換することができる。なお、Ｅ値逆変換器４２は、演算器群で構成してもよいし、テーブルで構成してもよい。正規化部４１ｒ、４１ｇ、４１ｂは、ＲＧＢの各値の指数部の５ビットと、ＲＧＢの各値の仮数部の６ビットを画像処理部９で扱われるＲＧＢの各値に変換することができる。
【００４３】
そして、図５のフォーマットで表現された画像データＤがビット分離部４３に入力されると、１４ビットのＥ値と、ＲＧＢの各値の仮数部の６ビットに分離され、１４ビットのＥ値がＥ値逆変換器４２に出力されるとともに、ＲＧＢの各値の仮数部の６ビットが正規化部４１ｒ、４１ｇ、４１ｂにそれぞれ出力される。
【００４４】
そして、Ｅ値逆変換器４２において、１４ビットのＥ値がＲＧＢの各値の指数部の５ビットに逆変換され、正規化部４１ｒ、４１ｇ、４１ｂにそれぞれ出力される。そして、正規化部４１ｒ、４１ｇ、４１ｂにおいて、ＲＧＢの各値の指数部の５ビットと、ＲＧＢの各値の仮数部の６ビットとから、浮動小数点フォーマットに従って正規化が行われ、画像処理部９に出力される。
【００４５】
図８は、本発明の実施形態に係るフォーマットで表現された輝度と精度の関係を従来のフォーマットと対比して示す図である。なお、Ｆ１は、図１のフォーマットで表現された輝度と精度の関係、Ｆ２は、図５のフォーマットで表現された輝度と精度の関係、Ｒ１６Ｇ１６Ｂ１６Ａ１６＿ＦＬＯＡＴで表現された輝度と精度の関係、Ｆ４は、Ｒ１１Ｇ１１Ｂ１０＿ＦＬＯＡＴ（Ｒｅｄ、Ｇｒｅｅｎ）で表現された輝度と精度の関係、Ｆ５は、Ｒ１１Ｇ１１Ｂ１０＿ＦＬＯＡＴ（Ｂｌｕｅ）で表現された輝度と精度の関係、Ｆ６は、Ｒ１０Ｇ１０Ｂ１０Ａ２＿ＦＬＯＡＴで表現された輝度と精度の関係を示す。
【００４６】
図８において、Ｒ１６Ｇ１６Ｂ１６Ａ１６＿ＦＬＯＡＴでは、高い精度で広いダイナミックレンジを確保することができるが、１ピクセル当たり６４ビット分の容量を消費する。Ｒ１１Ｇ１１Ｂ１０＿ＦＬＯＡＴでは、Ｂチャネルの仮数部が５ビットと少ないため、マッハバンドが知覚される領域Ｒに一部がかかっている。Ｒ１０Ｇ１０Ｂ１０Ａ２＿ＦＬＯＡＴでは、指数部が３ビットしか割り当てられていないため、マッハバンドが知覚される領域Ｒに一部がかかっている。
【００４７】
これに対して、図１および図５のフォーマットでは、マッハバンドが知覚される領域Ｒを避けつつ、Ｒ１０Ｇ１０Ｂ１０Ａ２＿ＦＬＯＡＴに比べて広いダイナミックレンジを確保することができる。
【００４８】
なお、頂点処理エンジン１、ラスタライザ２、ピクセル処理エンジン３、テクスチャエンジン４、デコーダ６ａ、６ｂおよびエンコーダ７は、これらのブロックで行われる処理を遂行させる命令が記述されたプログラムをコンピュータに実行させることにより実現することができる。
【００４９】
そして、このプログラムをＣＤ−ＲＯＭなどの記憶媒体に記憶しておけば、画像処理装置のコンピュータに記憶媒体を装着し、そのプログラムをコンピュータにインストールすることにより、頂点処理エンジン１、ラスタライザ２、ピクセル処理エンジン３、テクスチャエンジン４、デコーダ６ａ、６ｂおよびエンコーダ７で行われる処理を実現することができる。
【００５０】
また、頂点処理エンジン１、ラスタライザ２、ピクセル処理エンジン３、テクスチャエンジン４、デコーダ６ａ、６ｂおよびエンコーダ７で行われる処理を遂行させる命令が記述されたプログラムをコンピュータに実行させる場合、スタンドアロン型コンピュータで実行させるようにしてもよく、ネットワークに接続された複数のコンピュータに分散処理させるようにしてもよい。
【符号の説明】
【００５１】
１  頂点処理エンジン、２  ラスタライザ、３  ピクセル処理エンジン、４  テクスチャエンジン、５  ピクセルキャッシュ、６ａ、６ｂ  デコーダ、７  エンコーダ、８  フレームバッファ、９  画像処理部、１０  テクスチャキャッシュ、１１ｒ、１１ｇ、１１ｂ、３１ｒ、３１ｇ、３１ｂ  クランプ部、１２、３２  Ｅ値変換器、１３、３３  ビット連結部、２１ｒ、２１ｇ、２１ｂ、４１ｒ、４１ｇ、４１ｂ  正規化部、２２、４２  Ｅ値逆変換器、２３、４３  ビット分離部
【図１】
2011128714.tif 000003
【図２】
2011128714.tif 000004
【図３】
2011128714.tif 000005
【図４】
2011128714.tif 000006
【図５】
2011128714.tif 000007
【図６】
2011128714.tif 000008
【図７】
2011128714.tif 000009
【図８】
2011128714.tif 000010