(57)【要約】      （修正有）【課題】ＨＤＲ形式の画像をＬＤＲ形式の画像へとトーンマッピングするにあたり、メモリ帯域幅を節約すると共に、処理の簡素化・高速化を図る。【解決手段】コンピュータグラフィックスシステムにおいて、表示装置に表示される可視的なＨＤＲフラグメントデータをトーンマッピングする方法は、可視的なフラグメントを含むＨＤＲフラグメントデータを取得する工程と、現在レンダリングされているＮ番目のフレームに関する情報を更新する工程と、前記Ｎ番目のフレームの直前のＮ−１番目以前の１枚又は複数のフレームに関する値を平均化する工程と、前記Ｎ−１番目以前の１枚又は複数のフレームに関する情報に基づいて得られた平均値を用いて前記Ｎ番目のフレームに含まれるＨＤＲフラグメントデータをトーンマッピングする工程と、前記トーンマッピングされたデータを出力する工程と、を含む。【選択図】図２
2015049707.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィックスシステムにおいて，表示装置に表示される可視的なハイダイナミックレンジ（ＨＤＲ）フラグメントデータを，トーンマッピングする方法であって，
可視的なフラグメントを含むＨＤＲフラグメントデータを取得する工程と，
現在レンダリングされているＮ番目のフレームに関する情報を更新する工程と，
前記Ｎ番目のフレームの直前のＮ−１番目以前の１枚又は複数のフレームに関する値を平均化する工程と，
前記Ｎ−１番目以前の１枚又は複数のフレームに関する情報に基づいて得られた平均値を用いて，前記Ｎ番目のフレームに含まれるＨＤＲフラグメントデータをトーンマッピングする工程と，
前記トーンマッピングされたデータを出力する工程と，を含む，
方法。
【請求項２】
請求項１に記載の方法であって，
前記方法は，コンピュータグラフィックスシステム又はパイプラインにより実行されるものであり，
前記パイプラインは，テストモジュールとブレンディングモジュールを含むパーフラグメント処理装置を有し，
前記方法は，前記テストモジュールによるテスト処理の後であって，且つ，前記ブレンディングモジュールによるブレンディング処理の前に実行されるものであり，
前記取得する工程は，前記パーフラグメント処理装置のテストモジュールによって表示装置に表示することが決定された可視的なフラグメントについて，ＨＤＲフラグメントのカラー値を取得する工程であり，
前記更新する工程は，入力されたカラー値の各チャンネルについての最小値，最大値，及び合計値を含む前記Ｎ番目のフレームに関する情報を更新する工程であり，
前記トーンマッピングする工程は，前記Ｎ−１番目以前の１枚又は複数のフレームに関する情報に基づいて得られた平均値を用いて，前記Ｎ番目のフレームに含まれるＨＤＲフラグメントデータをトーンマッピングする工程であり，
前記出力する工程は，前記トーンマッピングされたデータを前記ブレンディングモジュールに出力する工程である
方法。
【請求項３】
コンピュータグラフィックスシステムにおいて，表示装置に表示される可視的なハイダイナミックレンジ（ＨＤＲ）フラグメントデータを，トーンマッピングする装置であって，
可視的なフラグメントを含むＨＤＲフラグメントデータを取得する手段と，
現在レンダリングされているＮ番目のフレームに関する情報を更新する手段と，
前記Ｎ番目のフレームの直前のＮ−１番目以前の１枚又は複数のフレームに関する値を平均化する手段と，
前記Ｎ−１番目以前の１枚又は複数のフレームに関する情報に基づいて得られた平均値を用いて，前記Ｎ番目のフレームに含まれるＨＤＲフラグメントデータをトーンマッピングする手段と，
前記トーンマッピングされたデータを出力する手段と，を含む，
装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ハイダイナミックレンジ（ＨＤＲ）をレンダリングする方法，及びその方法を実行する装置に関するものである。具体的に説明すると，本発明は，ハイダイナミックレンジ（ＨＤＲ）形式の画像から，表示装置で表示可能なローダイナミック（ＬＤＲ）形式の画像を作成するトーンマッピング技術に関するものである。
【背景技術】
【０００２】
コンピュータグラフィックスシステムにおいて，３次元グラフィックを描画する一連の処理手順は，例えば，ジオメトリ処理とレンダリング処理の２つに大別される。
【０００３】
ジオメトリ処理は，３次元シーンを構成するポリゴンの各頂点に幾何学処理を施し，２次元画面（スクリーン座標）の描画に使用する頂点データを求める処理である。ジオメトリ処理には，例えば，座標変換処理，クリッピング処理，及びライティング処理が含まれる。まず，座標変換処理では，ポリゴンを定義する各頂点の座標を，視点の位置や方向に合わせて２次元のスクリーン座標系へ変換する。また，ライティング処理では，各頂点と光源の距離や，各頂点と光源の角度に基づいて，その頂点の輝度を計算する。また，クリッピング処理では，表示画面の外に位置するポリゴンを取り除く処理を行う。
【０００４】
上記ジオメトリ処理の後には，レンダリング処理が行われる。レンダリング処理は，ジオメトリ処理で求めたポリゴンの頂点データから画素データを生成して，フレームバッファに書き込む処理である。レンダリング処理には，例えば，セットアップ処理，ラスタライズ処理，テクスチャマッピング処理，ピクセルテスト処理，ピクセルブレンディング処理，ライティング処理，及びシェーディング処理が含まれる。まず，セットアップ処理では，頂点データからラスタライズ処理に必要な増分値等のパラメータを算出する。また，ラスタライズ処理では，セットアップ処理で求められたパラメータに従って所定の補間を行い，ベクタ表現で表されているポリゴンを，ラスタ表現で表されているピクセルへと変換（ラスタ化）する。また，テクスチャマッピング処理では，各ピクセルに対してテクスチャイメージのピクセルデータを貼り付ける処理を行う。ピクセルテスト処理では，各ピクセルデータの奥行きを表すＺ値の大小比較する深度テストや，アルファ値（透過度）を比較するアルファテスト等を行い，そのピクセルデータをスクリーン座標に描画するか否か，すなわちフレームバッファへ書き込むか否かを判定する。ピクセルブレンディング処理では，ピクセルテスト処理においてフレームバッファへ書き込む決定を下したピクセルのカラー値を，既にフレームバッファに書き込まれているカラー値とブレンディングしてフレームバッファへ書き込む。また，ライティング処理では，３次元シーンから２次元スクリーン空間への光反射強度や光反射率を計算する。さらに，シェーディング処理では，光の角度と光源からの距離を考慮して，オブジェクトを構成する各ピクセルのカラー値（色調や階調）を変化させ，実写のような効果を得る。
【０００５】
また，図１には，３Ｄコンピュータグラフィックスにおける一般的なレンダリングシステムの構成が示されている。図１に示されるように，ラスタライザ１０によって処理された各フラグメントは，いわゆる固定機能パイプライン２０（OpenGL 1.1）又はプログラマブルシェーダ３０（OpenGL 2.0以上）に入力されて処理される。また，これら固定機能パイプライン２０又はプログラマブルシェーダ３０によって，現在のフラグメントが一旦処理されると，そのフラグメントは，パーフラグメント処理装置４０というフラグメント毎（ピクセル毎）の処理を行うモジュールへと入力される。このパーフラグメント処理装置４０では，現在のフラグメントに付加されたデータが最終的にメモリ５０に書き込まれる前の段階で，幾つかの最終処理が実行される。
【０００６】
より詳しく説明すると，パーフラグメント処理装置４０は，一般的に，２つのステージに分けて考えることができる。第１のステージでは，例えば，オブジェクトの深度テストや，ステンシルテスト，アルファテストなどのテスト処理が行われる。これらのテストに不合格となった場合，そのフラグメントに付加されたデータは，メモリには書き込まれない。他方，これらのテストに合格した場合，そのフラグメントに付加されたデータは，第２のステージへと移行する。そして，第２ステージにおいて，各種テストに合格したフラグメントに関連付けられたカラー値は互いに組み合わせられる。このような処理は，一般的にカラーブレンディングと呼ばれる。
【０００７】
上記したレンダリングステージは，一又は複数回行われる。そして，最後のレンダリングステージの後，最終的な画像が表示装置によって表示される。この表示装置は，通常，Ｒ（赤），Ｇ（緑），及びＢ（青）の各チャンネルを備えるＲＢＧのような単一のデータを表示することができる。一般的な表示装置では，一つのピクセルに２４ビット，すなわちＲ・Ｇ・Ｂのそれぞれに８ビットずつの情報を割り当てることで，色相ごとに２５６通り（０〜２５５）の明度や輝度を与えることができる。また，一つのピクセルには，ＲＧＢのチャンネル以外にもアルファチャンネルを加えて，３２ビットの情報を割り当てることもできる。アルファチャンネルとは，透過（透明度）を表現するもので，画像合成などに使われる補助的なデータである。ＲＧＢの色に透過度を加えたカラーモデルは，「ＲＢＧＡ」（Red，Green，Blue，Alpha）とも呼ばれる。
【０００８】
また，最後のレンダリングステージでは通常，ＲＧＢの各チャンネルにアルファチャネルを加えた場合に，標準的な３２ビットのカラーフレームバッファのような表示のための特殊なデータが生成される。このような場合，各チャネルは，［０〜２５５］又は［０．０〜１．０］の２５６段階の範囲（レンジ）で定義されることが一般的である。なお，以下では，この［０〜２５５］又は［０．０〜１．０］内のレンジのものを，ローダイナミックレンジ（ＬＤＲ：Low Dynamic Range）と称している。
【０００９】
また，従来から，写真やコンピュータグラフィックスの技法として，ＬＤＲを超える大きなレンジにレンダリングすることが知られている。このような技法は，ハイダイナミックレンジ（ＨＤＲ：High Dynamic Range）と呼ばれる。
【００１０】
ＨＤＲとは，ＲＧＢ各成分を，［０．０〜１．０］（０〜２５５）を超えた幅広い表現域でレンダリングを行う手法である。ＨＤＲによれば，例えば，明るすぎて白く飛んでしまったり，暗すぎて黒くつぶれてしまう場面もレンダリングすることができる。すなわち，通常の表示装置で表現できる色は，８ビットのＲＧＢ各成分，つまり計２４ビットの最大１６，７７７，２１６色である。しかし，現実世界の色を正確に再現するためには，各成分が１０の１２乗ずつ必要であるといわれている。このため，表示装置で表現可能な色の範囲では，現実世界の色を正確に再現するのにはまったく足りないといえる。このため，例えばライトやマテリアルを多少明るくすると，各成分が上限の１．０（２５５）に達してしまい，レンダリング画像が白く飛んでしまう。反対に，例えばライトやマテリアルを多少暗くすると，各成分が下限の０．０（０）に達してしまい，黒でつぶれることとなる。従って，従来のＬＤＲでは明るすぎる部分や暗すぎる部分を正確に表現することができない。そこで，現実世界の光を扱えるようにした技法の一つがＨＤＲである。この３ＤグラフィクスにおけるＨＤＲは，一般的に，ＲＧＢ各成分に浮動小数点値を利用して，幅広い表現域を再現できるようにしたものである。Ｒ・Ｇ・Ｂのそれぞれに８ビットずつの情報を割り当てる固定小数点を拡張しただけのＨＤＲでは，各成分を１６ビット又は３２ビットの浮動小数点値で扱うことができるようになっている。例えば１６ビットの場合，１ピクセルあたりＲＧＢＡのため１６ビット×４＝６４ビット，すなわち８バイト必要となるが，浮動小数点値を利用することで現実世界と同じぐらいの表現域を扱うことが可能となる。
【００１１】
例えば，特許文献１には，入力されたＨＤＲ形式の画像から，表示装置の輝度範囲内で表示できるＬＤＲ形式の画像を生成する方法が記載されている。特許文献１に記載の発明では，元の画像の白色点が閾値以上か未満かに応じて，異なる白色点を基準として表現した各画素の色の三刺激値を算出する。その後，算出した三刺激値の画素と白色点の三刺激値を示す画素に加え，ｂａｃｋｇｒｏｕｎｄ領域やｓｕｒｒｏｕｎｄ領域の輝度の平均値や仮想環境における平均的な照度をトーンマッピング処理した画像に反映させてＪＣｈ画像を算出している。また，ＪＣｈ画像から出力画像を算出する過程において，表示装置の白色点の三刺激値と，表示装置観察時の周辺環境の平均的な照度の値とを反映させる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００６−２１５７５６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ところで，コンピュータグラフィックスの分野において，このＨＤＲは，一般的に以下の手法を用いて行われる。
（１）  まず，ＨＤＲで表現されるシーンをレンダリングする。すなわち，上記した固定機能パイプラインやプログラマブルシェーダによる処理の結果が，ＨＤＲの範囲の値（一般的には浮動小数点値）として出力される。そして，このＨＤＲ画像のデータは，上記パーフラグメント処理部において各種テスト処理が行われた後，一旦メモリに格納される。ただし，このとき，パーフラグメント処理装置においては，カラーブレンディング処理は行われない。このように，従来のレンダリング装置では，ＨＤＲ形式の画像データを一旦メモリに記憶して処理することとしていた。
（２）  続いて，メモリに格納されているＨＤＲデータをＬＤＲデータにマッピングし，最終的に表示するためのメモリに再度格納する。このステージは，一般的にマッピング処理（トーンマッピング）と呼ばれる。このステージでは通常，メモリを解析し，メモリに記憶されている画像データの輝度の最小値と最大値を特定し，これらの値を，ＨＤＲ値からＬＤＲ値にマッピングするための数式に使用する。すなわち，ＨＤＲを使ってレンダリングしても，最終的には表示装置に表示する必要がある。ただし，ＨＤＲの画像をＬＤＲの表示装置にそのまま表示すると，上限１．０（２５５）を超えた色は白になってしまう。このため，実数である光を適正な明るさにし，各成分２５６段階にする処理がトーンマッピングである。このトーンマッピングには，従来から様々な手法が存在する。例えば，トーンマッピングの手法としては，直線的なものからより自然に見える曲線を利用する方法や，画像の解像度を落としながら適正輝度を算出する方法，数フレーム測定して平均輝度を算出する方法などがある。いずれにしても，従来のトーンマッピング処理では，ＨＤＲデータを一旦メモリに格納した後，そのメモリからＨＤＲデータを読み出して，ＬＤＲデータにマッピングすることとしていた。
（３）  最後に，得られたＬＤＲデータを処理して，表示装置にＬＤＲ形式の画像を表示する。
【００１４】
ＨＤＲでシーンをレンダリングすることにより，例えばシェーディング値やテクスチャ値がＬＤＲではなくＨＤＲとなり，ＨＤＲからＬＤＲに値を変換することがないため，ＬＤＲへの輝度クランピングが発生しなくなる。また，上記パーフラグメント処理部に到達したときには，標準的なテスト（深度テスト，ステンシルテスト，アルファテスト）を実行することができる。ＨＤＲの場合，これらの各種テストに合格したときには，ブレンディング処理の定義付けのために，現在のフラグメントに付加された値は，ブレンディングされることなく，出力メモリに直接書き込まれる。
その後，上記ＨＤＲデータを保持する出力メモリは，トーンマッピングと呼ばれる処理段階で，一つずつのエレメント毎に処理を行い，そしてＬＤＲデータを保持する他のメモリに処理結果を出力する。
【００１５】
しかしながら，上述したとおり，従来の発明では，ＨＤＲ形式の画像データをトーンマッピングするにあたり，一旦このＨＤＲ形式の画像データをメモリに格納する必要があった。これは，従来の発明では，あるフレームに含まれるＨＤＲ画像データをトーンマッピングするに際し，そのフレームに含まれるＨＤＲ画像データに関する情報を用いることとしているためである。つまり，従来の発明では，ＨＤＲ画像データをメモリに一旦格納しておき，トーンマッピング処理を行うときには，そのメモリ内のＨＤＲ画像データを解析することが必要となる。従って，この従来の技術のように，完全なＨＤＲ形式のレンダリングを行う場合には，メモリの容量もＨＤＲ形式のデータに対応させる必要があった。例えば，メモリの容量もＨＤＲ形式のデータに対応させるためには，浮動小数点値，すなわち一つのフラグメントあたり１２８ビットの記憶容量が求められる。つまり，単精度浮動小数点数では，符号部１ビット・指数部８ビット・仮数部２３ビットであり，各色あたり３２ビットとなるため，この３２ビットをそれぞれＲ，Ｇ，Ｂ，Ａに割り当てると，合計１２８ビットとなる。このように，従来のＨＤＲレンダリングでは，比較的大容量のメモリが必須となるため，レンダリングや装置のコストが嵩むという問題があった。
【００１６】
また，上述したとおり，従来の発明では，ＨＤＲ形式の画像データをトーンマッピングするにあたり，ＨＤＲ形式の画像データを一旦メモリに格納した上で，このメモリ内のデータを解析し，ＬＤＲ形式の画像データを生成することとしている。このように，データをメモリに書き出したり読み出したりする処理が増えると，レンダリング処理が低速化を招き，パフォーマンスが低下するという問題があった。
【００１７】
このため，現在では，ＨＤＲ形式の画像をＬＤＲ形式の画像へとトーンマッピングするにあたり，メモリ帯域幅を節約すると共に，処理の簡素化・高速化を図ることで，レンダリングのパフォーマンスを向上させることのできる技術が求められる。
【課題を解決するための手段】
【００１８】
そこで，本発明の発明者は，上記の従来発明の問題点を解決する手段について鋭意検討した結果，Ｎ番目のフレームに含まれるＨＤＲフラグメントデータのトーンマッピングに，その直前のＮ−１番目のフレームに関する情報に基づいて得られた平均情報を用いることで，ＨＤＲデータをメモリに一旦記憶する必要がなくなり，通常の処理パイプライン内でトーンマッピングを実行することが可能になるという知見を得た。そして，本発明者は，上記知見に基づけば，従来技術の課題を解決できることに想到し，本発明を完成させた。
具体的に説明すると，本発明は以下の工程・構成を有する。
【００１９】
本発明の第１の側面は，コンピュータグラフィックスシステムにおいて，表示装置に表示される可視的なＨＤＲフラグメントデータを，トーンマッピングする方法に関する。
本発明の方法は，
可視的なフラグメントを含むＨＤＲフラグメントデータを取得する工程と，
現在レンダリングされているＮ番目のフレームに関する情報を更新する工程と，
前記Ｎ番目のフレームの直前のＮ−１番目以前の１枚又は複数のフレームに関する値を平均化する工程と，
前記Ｎ−１番目以前の１枚又は複数のフレームに関する情報に基づいて得られた平均値を用いて，前記Ｎ番目のフレームに含まれるＨＤＲフラグメントデータをトーンマッピングする工程と，
前記トーンマッピングされたデータを出力する工程と，を含む。
なお，Ｎ−１番目のフレームに関する値を平均化する工程は，Ｎ番目のフレームの処理が完了するときまで，又は，Ｎ番目のフレームの処理が完了したときに，行われるものであることが好ましい。
【００２０】
また，本発明の方法は，パイプラインにより実行されるものであることが好ましい。また，パイプラインは，テストモジュールとブレンディングモジュールを含むパーフラグメント処理装置をすることが好ましい。
この場合に，本発明の方法は，テストモジュールによるテスト処理の後であって，且つ，ブレンディングモジュールによるブレンディング処理の前に実行される。
ここで，上記「取得する工程」は，パーフラグメント処理装置のテストモジュールによって表示装置に表示することが決定された可視的なフラグメントについて，ＨＤＲフラグメントのカラー値を取得する工程である。
また，上記「更新する工程」は，入力されたカラー値の各チャンネルについての最小値，最大値，及び合計値を含むＮ番目のフレームに関する情報を更新する工程である。
また，上記「トーンマッピングする工程」は，Ｎ−１番目以前の１枚又は複数のフレームに関する情報に基づいて得られた平均値を用いて，Ｎ番目のフレームに含まれるＨＤＲフラグメントデータをトーンマッピングする工程である。
また，「出力する工程は」，トーンマッピングされたデータをブレンディングモジュールに出力する工程である
【００２１】
本発明の第２の側面は，コンピュータグラフィックスシステムにおいて，表示装置に表示される可視的なＨＤＲフラグメントデータを，トーンマッピングする装置に関する。
本発明の装置は，
可視的なフラグメントを含むＨＤＲフラグメントデータを取得する手段と，
現在レンダリングされているＮ番目のフレームに関する情報を更新する手段と，
前記Ｎ番目のフレームの直前のＮ−１番目以前の１枚又は複数のフレームに関する値を平均化する手段と，
前記Ｎ−１番目以前の１枚又は複数のフレームに関する情報に基づいて得られた平均値を用いて，前記Ｎ番目のフレームに含まれるＨＤＲフラグメントデータをトーンマッピングする手段と，
前記トーンマッピングされたデータを出力する手段と，を含む。
【発明の効果】
【００２２】
本発明によれば，入力されたＨＤＲ形式の画像をＬＤＲ形式の画像へとトーンマッピングするにあたり，メモリ帯域幅を節約すると共に，処理の簡素化・高速化を図ることで，レンダリングのパフォーマンスを向上させることができる。
【図面の簡単な説明】
【００２３】
【図１】図１は，３Ｄコンピュータグラフィックスにおけるレンダリングシステムの構成の例を示したブロック図である。
【図２】図２は，パーフラグメント処理装置内の機能構成の例を示したブロック図である。
【発明を実施するための形態】
【００２４】
以下，図面を用いて本発明を実施するための形態について説明する。本発明は，以下に説明する形態に限定されるものではなく，以下の形態から当業者が自明な範囲で適宜修正したものも含む。
【００２５】
まず，本発明の概要について簡単に説明する。
図１に示されるように，レンダリングシステムは，基本的に，ラスタライザ１０と，固定機能パイプライン２０又はプログラマブルシェーダ３０と，パーフラグメント処理装置４０と，出力メモリ５０を含む。
【００２６】
ラスタライザ１０は，ベクタ表現で表されているポリゴンを，ラスタ表現で表されているフラグメント（ポリゴン）へと変換する。ラスタライザ１０は，頂点によって構成されるプリミティブ情報からフラグメントを生成するための要素である。各フラグメントには位置情報だけではなく，輝度や，ＲＧＢのカラー値，法線や，テクスチャ座標などの各種情報を付加することができる。
【００２７】
固定機能パイプライン２０は，テクスチャ処理部や，ライティング処理部，シェーディング処理部などを備えることが好ましい。例えば，テクスチャ処理部は，画像データに基づきテクスチャを作りだし，フラグメントのどの座標に対してテクスチャの座標を適用させるかを決定するテクスチャマッピングを実行する。ライティング処理部は，光源ベクトル，視線ベクトル，フラグメントにおける法線ベクトルなどを利用して，フラグメントに対してライティング処理を実施するための要素である。ライティング処理部は，オブジェクトに対して当てられる光源そのものの情報と，オブジェクトを構成するフラグメントの光に関する情報（輝度値やカラー値）とに基づいて演算処理を実行するものがあげられる。シェーディング処理部は，光の角度と光源からの距離を考慮して，オブジェクトを構成する各ピクセルのカラー値（色調や階調）を変化させ，実写のような効果を得る。
【００２８】
プログラマブルシェーダ３０は，グラフィックス処理装置において実装されたレンダリングパイプラインをプログラム可能にしたものである。プログラマブルシェーダの例としては，頂点シェーダや，ジオメトリシェーダ，フラグメントシェーダ等をそれぞれ個別に構成する他，これらを統合して統合シェーダとして構成するといった構成が可能である。
【００２９】
パーフラグメント処理装置４０は，入力されたフラグメント毎に，テスト処理や，トーンマッピング処理，及びブレンディング処理を実行する。パーフラグメント処理装置４０の具体的な機能構成は，図２に示されている。パーフラグメント処理装置４０の詳しい説明は，図２を参照して後述する。
【００３０】
出力メモリ５０には，パーフラグメント処理装置４０による処理結果が書き込まれる。出力メモリの例は，ＶＲＡＭ（Video RAM）である。出力メモリは，例えば画像のフレームを一時的に記憶するフレームバッファとして機能する。
【００３１】
ラスタライザ１０によって処理された各フラグメントは，いわゆる固定機能パイプライン２０（OpenGL 1.1）又はプログラマブルシェーダ３０（OpenGL 2.0以上）に入力されて処理される。また，これら固定機能パイプライン２０又はプログラマブルシェーダ３０によって，現在のフラグメントが一旦処理されると，そのフラグメントは，パーフラグメント処理装置４０というフラグメント毎（ピクセル毎）の処理を行うモジュールへと入力される。このパーフラグメント処理装置４０では，現在のフラグメントに付加されたデータが最終的に出力メモリ５０に書き込まれる前の段階で，幾つかの最終処理が実行される。
【００３２】
図２には，本発明の一実施形態に係るパーフラグメント処理装置の機能構成が示されている。図２に示されるように，パーフラグメント処理装置４０は，テストモジュール４１と，トーンマッピングモジュール４２と，ブレンディングモジュール４３を有する。
【００３３】
テストモジュール４１は，固定機能パイプライン２０又はプログラマブルシェーダ３０から入力された各フラグメントについて，テストを行う。ここでのテストには，例えば，深度テスト，ステンシルテスト，及びアルファテストが含まれる。テストモジュール４１は，これらのテストを行うことで，入力されたフラグメントが，表示装置に表示される可視的なものであるか否かを判断する。深度テストは，各フラグメントの奥行きを表すＺ値の大小比較し，そのフラグメントが描かれる予定の２Ｄ座標上に，よりカメラに近い他のフラグメントがあるかどうかで描画の有無を判定するテストである。また，アルファテストは，各フラグメントの透明度を表すアルファ値を比較し，そのフラグメントを描画するかしないかを決定するテストである。ステンシルテストは，多目的な演算フレームバッファとして利用されるステンシルバッファの内容に従って，フラグメントの描画を破棄するか否かを決定するテストである。テストモジュール４１における各種テストに合格したフラグメント（可視的なフラグメント）のみが，後段のトーンマッピングモジュール４２へと入力される。
【００３４】
トーンマッピングモジュール４２は，テストモジュール４１から入力されたフラグメントに，ＨＤＲ形式のフラグメントが存在している場合に，このＨＤＲフラグメントを，表示装置の輝度範囲内で表示できるＬＤＲ形式のフラグメントへと変換（マッピング）する。トーンマッピングモジュール４２では，直接このトーンマッピングが実行される。このトーンマッピングモジュール４２は，画像情報蓄積部１０００と，画像情報補間部２０００と，トーンマッピング処理部３０００と，を含む。
【００３５】
画像情報蓄積部１０００は，現在の画像情報（Ｎ番目）の演算と記憶を行う。画像情報蓄積部１０００に記憶される画像情報には，例えば，一つの画像全体における輝度の最大値と最小値，各ＲＧＢＡチャンネルそれぞれの最大値と最小値，輝度の平均値，及び各チャネルの平均値などが含まれる。ただし，画像情報は，これらの情報に限定されるものではない。
【００３６】
画像情報補間部２０００は，画像情報蓄積部１０００に格納されている直前のフレーム以前のフレーム（Ｎ−１番目以前の１枚または複数フレーム）に関する最大値，最小値，又は平均値などの情報を用いて，画像情報蓄積部１０００によって生成された現在の画像情報（Ｎ番目）の補間を行う。この画像情報補間部２０００では，例えば，Ｎ番目のフレームのレンダリングが開始されたときに，Ｎ−１番目のフレームの平均値の算出が完了している。例えば，画像情報補間部２０００は，Ｎ番目のフレームのレンダリングが完了するときまでに，Ｎ−１番目のフレームの平均値を算出することが好ましい。つまり，画像情報補間部２０００は，Ｎ番目のフレームの補間を行うにあたり，Ｎ−１番目のフレームに関する情報を用いてもよいし，Ｎ−１番目より前のフレーム（例えば，Ｎ−２番目）に関する情報を用いてもよいし，Ｎ−１番目のフレームとそれ以前のフレームに関する情報を用いてもよいし，Ｎ−１番目より前の複数のフレーム（例えば，Ｎ−２番目とＮ−３番目）に関する情報を用いてもよい。
【００３７】
トーンマッピング処理部３０００は，画像情報補間部２０００によって生成された補間情報を用いてトーンマッピングを行う。すなわち，トーンマッピング処理部３０００は，直前のフレーム（Ｎ−１番目）の補間値を用いて，現在のフラグメント（Ｎ番目）のＨＤＲ値をマッピングする。Ｎ番目のフラグメントのＨＤＲ値をマッピングする際にトーンマッピング処理部３０００が利用することができる補間値は，最大でＮ−１番目までのフレームの補間値とすることが好ましい。
【００３８】
本発明の一実施形態によれば，アニメーションのフレーム間の統一性を得ることができると共に，露光量をよりリアルに表現することができる。すなわち，本発明では，ある特定のフレーム（Ｎ番目）についてＨＤＲからＬＤＲへとマッピングするために，そのフレームの直前のフレーム（Ｎ−１番）の情報を用いることとしている。これにより，露光量順応（暗順応・明順応）（Exposure Adaptation）と呼ばれる物理現象をレンダリングに反映することが可能となる。例えば，人間が明るい場所（屋外）から暗い場所（室内）へと移動したときには，その人間の目は，室内の明るさに慣れるまでに多少の時間がかかる。本発明では，あるフレーム（Ｎ番目）のマッピングに直前のフレーム（Ｎ−１番目）の情報を利用することで，上記露光量順応と呼ばれる物理現象を表現している。
【００３９】
続いて，本発明を利用したＨＤＲでのレンダリングについて，さらに詳しく説明する。
図１に示されるように，ラスタライザ１０は，ポリゴンやその他形状のデータを，フラグメントを呼ばれるピクセルデータに変換するラスタライズ処理を行う。このラスタライズ処理によって生成されたフラグメントは，固定機能パイプライン２０又はプログラマブルシェーダ３０によって各種の処理が行わる。この処理後のフラグメントには，そのフラグメントに関連するデータ（カラー値や深度値）が付加されている。そして，処理後のフラグメントは，パーフラグメント処理装置４０に入力される。パーフラグメント処理装置４０では，各フラグメントについて，各種のテスト（深度テスト，ステンシルテスト，アルファテスト）が実行される。このテストの不合格となったフラグメントのデータは通常，出力メモリには書き込まれず消去される。他方，このテストに合格した場合，その現在のフラグメントは，後の処理において最終画像として表示装置に表示されるものとなる。このテストに合格した現在のフラグメントは，ブレンディング処理（例えばカラーブレンディング）が適用されずに，出力メモリ５０に書き込まれる。なお，従来技術では，この出力メモリ５０には，ＬＤＲ形式のデータよりも多くの記憶領域を必要とするＨＤＲ形式のデータが記憶されることとなっていた。これに対し，本発明は，パーフラグメント処理装置４０において，オンザフライでＨＤＲ形式のデータをＬＤＲ形式のデータへとトーンマッピングする。このため，本発明では，パーフラグメント処理装置４０からの出力はＬＤＳ形式となる。従って，本発明によれば，この出力メモリ５０には，ＨＤＲ形式よりも軽いＬＤＲ形式のデータが記憶されることとなる。
【００４０】
ここで，本発明は，表示装置に表示される全てのフラグメントをＨＤＲからＬＤＲにマッピングし，出力メモリにはＬＤＲ値のデータのみを格納することを目的としている。
【００４１】
本発明では，複数のフレームに対し，ＨＤＲでのレンダリングを行う。ここで，Ｎ番目のフレームに対してレンダリングを行うときには，その直前のＮ−１番目のフレームがすでにレンダリングを終えているものとする。
【００４２】
画像情報蓄積部１０００は，Ｎ番目のフレーム全体の情報を記憶し更新する機能を持つ。例えば，好ましい第一の実施形態に係る画像情報蓄積部１０００は，Ｎ番目のフレームにおけるＲ，Ｇ，及びＢの各チャンネルについて，それぞれの最大値及び最小値を記憶すると共に，表示装置に表示される可視的なフラグメントの数をカウントする。例えば，輝度の値は，Ｒ，Ｇ，及びＢの各チャンネルからオンザフライで取得することができる。輝度の値は，Ｒ，Ｇ，及びＢの各チャンネルの平均値としてもよいし，３値定数ベクトルのドット積として求めることとしてもよい。すなわち，画像情報蓄積部１０００は，一又は複数の比較マルチプレクサ，最小値及び最大値を格納するための専用レジスタ，及び表示装置に表示される可視的なフラグメントの数をカウントするための専用カウンタを有することが好ましい。また，画像情報蓄積部１０００は，上記の専用レジスタと専用カウンタをリセットする初期化コマンドと，上記した輝度の最大値や最小値を更新する処理を実行するプロセスコマンドと，をさらに有することが好ましい。
【００４３】
また，第二の実施形態に係る画像情報蓄積部１０００では，Ｒ，Ｇ，及びＢの各チャンネルの平均値を計算することとしてもよい。この第二の実施形態において，又は上記した第一の実施形態に加えて，追加レジスタを有していてもよい。この追加レジスタは，レンダリング処理の間に，表示装置に表示される可視的なフラグメントについて，Ｒ，Ｇ，及びＢの合計値を算出すると共に，最終的なＬ値（Ｌａｂ値の明度成分）を求めることができる。
【００４４】
画像情報補間部２０００は，Ｎ−１番目のフレームがレンダリングされている間に，画像情報蓄積部１０００によって記憶されているそのＮ−１番目のフレームに関する情報の平均を求める処理を行う。ここで，画像情報蓄積部１０００によってファイナライズ処理が実行された後，画像情報蓄積部１０００に関連する複数のレジスタの一つのセットを，“Ｓ”とする。また，Ｎ−１番目のフレームに関する情報には，各Ｒ，Ｇ，Ｂ，及びＬそれぞれのチャンネルの最大値と最小値，及び表示装置に表示される可視的なフラグメントの数が含まれることが好ましい。
【００４５】
また，画像情報補間部２０００は，Ｎ−１番目のフレームについてのレンダリングが完了すると，次のＮ番目のフレームの処理を開始する。フレームの処理が開始すると，画像情報補間部２０００が作動して処理が実行される。複数のレジスタのセットＳは，処理されると共に，専用のレジスタ内に格納される。画像情報補間部２０００による処理は，レンダリング処理の開始時に，フレーム毎に一度だけ実行される。
【００４６】
上述した画像情報蓄積部１０００の好ましい第一の実施形態に関連して，画像情報補間部２０００は，各チャンネルの範囲（レンジ）を計算することとしてもよい。この各チャンネルの範囲（レンジ）は，各チャンネルの最大値と最小値の差を，表示装置に表示される可視的なフラグメントの数で割ることによって得られた値として定義することができる。
【００４７】
また，上述した画像情報蓄積部１０００の第二の実施形態に関連して，画像情報補間部２０００は，各チャンネルの平均を計算することとしてもよい。この各チャンネルの平均は，Ｒ，Ｇ，Ｂ，及びＬそれぞれの合計値を，表示装置に表示される可視的なフラグメントの数で割ることによって得られた値として定義することができる。
【００４８】
また，画像情報補間部２０００の第一の実施形態は，上記した値を計算し，その計算結果を専用のレジスタに格納する。これにより，後段のトーンマッピング処理部３０００は，各処理の間において，画像情報補間部２０００による計算結果を直接利用することができる。つまり，画像処理補間部２０００による計算結果はメモリなどに記憶する必要はなく，画像処理補間部２０００による計算結果は直接トーンマッピング処理部３０００へと送出される。この場合に，第一の実施形態に係る画像情報補間部２０００は，アニメーションなどの動的なフレームの処理よりも，静的なフレーム（Ｎ−１番目のフレームとＮ番目のフレームが同一となったフレーム）の処理に適している。
【００４９】
画像情報補間部２０００の第二の実施形態は，Ｎ−２番目のフレームから得られた結果値とＮ−１番目のフレームから得られた結果値を補間する。画像情報補間部２０００は，以下の式に示されるように，単純に平均をとることによって補間計算を行うことが好ましい。
2015049707.tif 000003
ここで，上記式において，「ＸＮ−２」は，専用レジスタに格納された画像情報補間部２０００の計算結果を意味する。また，「Ｘ´Ｎ−１」は，Ｎ−１番目のフレームのレンダリングの間に画像情報蓄積部１０００に格納された情報を用いて画像情報補間部２０００が行った計算結果を意味する。また，「ＸＮ−１」は，後段のトーンマッピング処理部３０００によって消費される最終値を意味する。例えば，「ＸＮ−１」は，各チャンネルの最小値，最大値，又は平均値である。
【００５０】
また，他の実施形態において，補間計算は以下の式に基づいて行うこともできる。
2015049707.tif 000004
ここで，「Ｎ」は，フレームの番号を意味する。「ＸＮ−２」は，専用レジスタに格納された画像情報補間部２０００の計算結果を意味する。「Ｘ´Ｎ−１」は，Ｎ−１番目のフレームのレンダリングの間に画像情報蓄積部１０００に格納された情報を用いて画像情報補間部２０００が行った計算結果を意味する。「ＸＮ−１」は，後段のトーンマッピング処理部３０００によって消費される最終値を意味する。また，「Ｋ」は，整数型のパラメータであり，「Ｋ」の値によってフレーム間の補間速度を制御することができる。
【００５１】
トーンマッピング処理部３０００は，画像情報補間部２０００に格納された情報を用いて，例えばディスプレイに表示される可視的なフラグメントのＨＤＲ値をＬＤＲ値へとマッピングする，トーンマッピング処理を行う。
【００５２】
トーンマッピングの好ましい形態は，単純な正規化である。画像情報補間部２０００には，それぞれの可視的なフラグメントについて，最小値と最大値が，レンジと共に格納されている。そこで，トーンマッピング処理部３０００は，入力された可視的なフラグメントのそれぞれについて，以下の式に基づいてトーンマッピング処理を行うことができる。
2015049707.tif 000005
ここで，「ＩＨＤＲ」は，ＨＤＲ形式のＲ，Ｇ，又はＢチャンネルの入力値の一つを意味する。また，「ＩＭｉｎ」及び「１／（ＩＭａｘ−ＩＭｉｎ）」は，画像情報補間部２０００の専用レジスタに格納された値にそれぞれ対応している。すなわち，「ＩＭｉｎ」は，可視的なフラグメントにおけるＲ，Ｇ，又はＢチャンネルの最小値であり，「ＩＭａｘ−ＩＭｉｎ」はレンジを意味する。
【００５３】
トーンマッピングの他の実施形態では，より複雑な処理を行うこともできる。例えば，トーンマッピングの他の例は，公知の文献，例えば以下の参考文献に示されている。
［参考文献］
・Reinhard, E. (2005). Dynamic Range Reduction Inspired by
Photoreceptor Physiology. I EEE Transactions on Visualization and Computer
Graphics, 11.
・Schlick, C. (1994). Quantization Techniques for Visualization of High Dynamic  Range Pictures. In Photorealistic Rendering Techniques, P. Shirley, G. Sakas
and S. Muller, Eds. Springer-Verlag Berlin Heidelberg, New York, 1994, pp 7-20.
【００５４】
例えば，トーンマッピング処理部３０００は，以下の式に基づいて計算することができる。
2015049707.tif 000006
ここで，「ｃ」はユーザによって定義される任意のパラメータであり，「Ｌ」はディスプレイに表示される現在の可視的なフラグメントの輝度であり，「Ｉ」はＲ，Ｇ，及びＢチャンネルの一つである。
2015049707.tif 000007
また，ここで，「ａ」はユーザによって定義される任意のパラメータであり，「Ｉｇｌｏｂａｌ」は，画像情報補間部２０００によって以下の式に基づいて求められる値である。
2015049707.tif 000008
ここで，「ｃ」はユーザによって定義される任意の値であり，「ｌａｖ」は各Ｒ，Ｇ，及びＢチャンネルの平均値であり，「Ｌａｖ」は輝度の平均値である。
そして，トーンマッピング処理は，以下の式で定義される。
2015049707.tif 000009
ここで，「Ｉ」はＲ，Ｇ，又はＢチャンネルの一つであり，「Ｉａ」は上記の式によって求められる値であり，「ｆ」と「ｍ」はユーザによって定義された定数である。
【００５５】
図２に示されるように，上記した機能を持つトーンマッピングモジュール４２から出力されたデータ（ＬＤＲ形式のフラグメントデータ）は，ブレンディングモジュール４３に入力される。ブレンディングモジュール４３では，表示装置に表示されるフラグメントに関連付けられたカラー値を互いに組み合わせるカラーブレンディングが行われる。ブレンディングモジュール４２は，例えば表示装置に表示されるフラグメントが半透明色に設置されている場合に，バッファ内のフラグメントのカラーと書き込むフラグメントのカラーを混ぜ合わせる。ブレンディングモジュール４３による処理結果は，最終的な画像として，図１に示された出力メモリに書き出される。
【００５６】
上記した構成を有する本発明によれば，まず，メモリの容量がＬＤＲ形式のデータに対応するもので十分となる。例えば，メモリの記憶容量は，一般的に，一つのフラグメントあたり３２ビットとなる。他方，従来の技術のように，完全なＨＤＲ形式のレンダリングを行う場合には，メモリの容量もＨＤＲ形式のデータに対応させる必要があり，例えば，浮動小数点値，すなわち一つのフラグメントあたり１２８ビットの記憶容量が必要となる。このように，本発明によれば，メモリ帯域幅を格段に減少させることができる。
【００５７】
また，本発明によれば，ＨＤＲをＬＤＲにマッピングする処理を通常のレンダリングパイプライン内で行うことができるため，このマッピング処理からその他の余計な処理を省くことができる。これにより，大幅なパフォーマンスの向上が期待できる。さらに，ＨＤＲ形式のレンダリング処理の簡素化を図ることもできる。
【００５８】
以上，本願明細書では，本発明の内容を表現するために，図面を参照しながら本発明の実施形態の説明を行った。ただし，本発明は，上記実施形態に限定されるものではなく，本願明細書に記載された事項に基づいて当業者が自明な変更形態や改良形態を包含するものである。
【産業上の利用可能性】
【００５９】
本発明は，ハイダイナミックレンジ（ＨＤＲ）をレンダリングする方法，及びその方法を実行する装置に関するものである。従って，本発明はコンピュータ産業において好適に利用されうる。
【符号の説明】
【００６０】
１０…ラスタライザ
２０…固定機能パイプライン
３０…プログラマブルシェーダ
４０…パーフラグメント処理装置
４１…テストモジュール
４２…トーンマッピングモジュール
４３…ブレンディングモジュール
５０…メモリ
１０００…画像情報蓄積部
２０００…画像情報補間部
３０００…トーンマッピング処理部
【図１】
2015049707.tif 000010
【図２】
2015049707.tif 000011