(57)【要約】【課題】ゲーム画像全体の印象には影響をほとんど与えずに、ゲーム画像にハッキリとした印象を与える。【解決手段】元画像に基づいて、まずボケ画像が生成される。ボケ画像の生成方法としては既知の種々の方式を採用することができる。次に、ボケ画像の明るさと元画像の明るさとの差分を求めることにより、差分画像が生成される。ただし、ボケ画像の明るさから元画像の明るさを減じたときの明るさの値が負の値になる画素については、差分画像での明るさを零とする。さらに、差分画像の明るさを反転させることにより、反転後の差分画像が生成される。この反転後の差分画像と元画像とを画素毎に乗算することにより、表示用の画像が得られる。【選択図】        図１
2004152150.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイに表示されるゲーム画像にメリハリを与えるためのゲーム画像処理方法であって、
隣接画素が互いに異なる明るさのゲーム画像の境界領域において、該隣接画素間の明るさの差が大きくなるように、該隣接画素間の明るさ差に応じて該隣接画素の暗い側の画素の明るさを更新することを特徴とする、ゲーム画像処理方法。
【請求項２】
ディスプレイに表示されるゲーム画像にメリハリを与えるためのゲーム画像処理プログラムであって、
ゲーム画像データを読み出す元画像読出ステップと、
前記ゲーム画像データに基づいてボケ画像データを生成するボケ画像生成ステップと、
前記ボケ画像データから前記ゲーム画像データを画素毎に減算することにより差分画像データを生成する差分画像生成ステップと、
前記差分画像データにおいて正の値を有する画素に対応する前記ゲーム画像データの値を、該正の値に基づいて更新することにより、表示用の画像データを生成する表示画像生成ステップとをコンピュータに実行させることを特徴とする、ゲーム画像処理プログラム。
【請求項３】
前記差分画像生成ステップでは、０〜１の値で表されたボケ画像データから、０〜１の値で表されたゲーム画像データを画素毎に減算することにより差分画像データを生成し、
前記表示画像生成ステップは、
前記差分画像データにおける負の値を全て零に書き換える書換ステップと、
前記書き換え後の差分画像データの値を反転する反転ステップと、
前記ゲーム画像データと前記反転後の差分画像データとを画素毎に乗算する乗算ステップとを含むことを特徴とする、請求項２に記載のゲーム画像処理プログラム。
【請求項４】
与えられた値に基づいて前記差分画像データの正の値を更新する更新ステップを前記コンピュータにさらに実行させ、
前記表示画像生成ステップは、前記更新後の正の値に基づいて表示用の画像データを生成することを特徴とする、請求項２に記載のゲーム画像処理プログラム。
【請求項５】
前記ボケ画像生成ステップは、ボケ画像データのボケ度合いを調整する調整ステップを含むことを特徴とする、請求項２に記載のゲーム画像処理プログラム。
【請求項６】
ディスプレイに表示されるゲーム画像にメリハリを与えるためのゲーム画像処理装置であって、
ゲーム画像データを格納する格納手段と、
前記ゲーム画像データに基づいてボケ画像データを生成するボケ画像生成手段と、
前記ボケ画像データから前記ゲーム画像データを画素毎に減算することにより差分画像データを生成する差分画像生成手段と、
前記差分画像データにおいて正の値を有する画素に対応する前記ゲーム画像データの値を、該正の値に基づいて更新することにより、表示用の画像データを生成する表示画像生成手段とを備えることを特徴とする、ゲーム画像処理装置。
【請求項７】
前記差分画像生成手段は、０〜１の値で表されたボケ画像データから、０〜１の値で表されたゲーム画像データを画素毎に減算することにより差分画像データを生成し、
前記表示画像生成手段は、
前記差分画像データにおける負の値を全て零に書き換える書換手段と、
前記書換手段による書き換え処理後の差分画像データの値を反転させる反転手段と、
前記ゲーム画像データと、前記反転手段による反転処理後の差分画像データとを画素毎に乗算する乗算手段とを含むことを特徴とする、請求項６に記載のゲーム画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲーム画像処理に関し、より特定的には、テレビゲームなどのコンピュータを用いてゲーム画像にメリハリを与えるための処理に関する。
【０００２】
【従来の技術】
従来、ゲーム画像にメリハリを与え、ゲーム画像のぼけた印象を改善するための技術の一つとして、シャープネス処理がある（特許文献１参照）。このシャープネス処理では、階調が変化する部分、すなわち比較的明るい領域と比較的暗い領域が接する境界部分において、その階調の差が大きくなるようにその境界近傍の明るさを更新する。具体的には、比較的明るい領域についてはより明るくなるように、かつ比較的暗い領域についてはより暗くなるように、境界近傍の明るさを更新する（図３（ｂ）参照）。
【０００３】
このようなシャープネス処理を用いれば、階調が変化する境界部分を際立たせることができ、例えば３Ｄ処理によって拡大されたテクスチャのボケた印象を改善することができる。
【０００４】
一方、ゲーム画像にメリハリを与える別の方法として、コントラストを上げる処理がある。これによれば、例えばゲーム画像において、比較的明るい部分についてはより明るくなるように、かつ比較的暗い部分についてはより暗くなるように、ゲーム画像全体の明るさが更新される。その結果、比較的明るい領域と比較的暗い領域の明るさの差が大きくなり、明るさの違いがより明瞭となる（図３（ｃ）参照）。
【０００５】
【特許文献１】
特開平５−３００３７５号公報（段落０００２〜０００４）
【０００６】
【発明が解決しようとする課題】
しかしながら、上記のようなシャープネス処理やコントラストを上げる処理を行うと、画像全体の印象が変化してしまうという問題がある。
【０００７】
例えば、コントラストを上げる処理では、画像全体にわたって明るさに変化が加わるため、画像全体の印象が大きく変わってしまう。また、シャープネス処理では、階調が変化する部分の近傍の明るさしか変化しないものの、画像全体の印象が大きく変わってしまう。例えば、全体的に暗い画像に対してシャープネス処理を行った場合などには、明るさが明るく変更された箇所が際立って見えてしまう。また全体的に明るい画像に対してシャープネス処理を行った場合などには、明るさが明るく変更された箇所が「ぎらついた感じ」となってしまう。このように、画素を発光させて画像を表示するディスプレイ装置では、明るい部分が非常に目に付きやすい。特に、明るい派手な色が使われることが多いゲーム画像の場合には、「ぎらついた感じ」がより顕著に表れるという問題がある。
【０００８】
なお、シャープネス処理と同様に、輪郭部分の明るさを更新する処理としてバンプマップ処理があるが、これは画像にはっきりとした印象を与えるための処理というよりは、ポリゴンによるモデリングを省略するために、テクスチャに対応する法線ベクトルマップなどを利用してオブジェクトの表面に凹凸を表現するための処理である（図３（ｄ）参照）。このバンプマップ処理では、法線ベクトルマップなどのデータを予め用意しておく必要があるとともに、法線ベクトル演算などの演算処理も必要になる。
【０００９】
それゆえに、本発明の目的は、ゲーム画像全体の印象には影響をほとんど与えずに、ゲーム画像にハッキリとした印象を与えることができるゲーム画像処理方法を提供することである。
【００１０】
【課題を解決するための手段および発明の効果】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１１】
本発明のゲーム画像処理方法は、ディスプレイに表示されるゲーム画像にメリハリを与えるためのものである。本発明は、ゲーム画像の境界領域（図１（ａ）の上から３行目〜４行目の画素からなる領域）において、その境界領域に含まれる隣接画素間の明るさの差が大きくなるように、その隣接画素の暗い側の画素（図１（ａ）の上から４行目の画素）を更新する。その更新は、隣接画素間の明るさの差に応じて行う。ここで「境界領域」とは、隣接画素が互いに異なる明るさなっている複数画素を含む領域である。また「画素を更新」とは、例えば画素の色情報の値を更新することである。また「隣接画素間の明るさの差に応じて」とは、例えば明るさの差が大きい場合には、その差がより大きくなるように暗い側の画素を更新し、明るさの差が小さい場合にはその差があまり変わらないように暗い側の画素を更新することである。これにより、目に付きやすい明るい部分が強調されないため、ゲーム画像全体の印象には影響をほとんど与えずに、ゲーム画像にハッキリとした印象を与えることができる。また、隣接画素間の明るさの差に応じて暗くなる度合いが変化するので、階調がなだらかに変化するような部分については効果が抑えられるという利点もある。
【００１２】
本発明のゲーム画像処理プログラムは、ディスプレイに表示されるゲーム画像にメリハリを与えるためのプログラムであって、元画像読出ステップ（Ｓ２０１）と、ボケ画像生成ステップ（Ｓ２０１）と、差分画像生成ステップ（Ｓ２０３）と、表示画像生成ステップ（Ｓ２０５）とをコンピュータに実行させることを特徴とする。元画像読出ステップでは、ゲーム画像データ（図１（ａ））が読み出される。ボケ画像生成ステップでは、ゲーム画像データに基づいてボケ画像データ（図１（ｂ））が生成される。差分画像生成ステップでは、ボケ画像データからゲーム画像データを画素毎に減算することにより差分画像データ（図１（ｃ））が生成される。表示画像生成ステップでは、差分画像データにおいて正の値を有する画素に対応するゲーム画像データの値を、この正の値に基づいて更新することにより、表示用の画像データ（図１（ｅ））が生成される。これにより、ゲーム画像全体の印象には影響をほとんど与えずに、ゲーム画像にハッキリとした印象を与えることができる。なお、このゲーム画像処理プログラムは、コンピュータ（典型的にはゲーム機）に内蔵された記録媒体に予め格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭやゲームカートリッジ等のコンピュータで読み取り可能な記録媒体を介してコンピュータに供給されてもよいし、通信回線を通じてコンピュータに供給されてもよい。
【００１３】
なお、上記差分画像生成ステップにおいて、０〜１の値で表されたボケ画像データから、０〜１の値で表されたゲーム画像データを画素毎に減算することにより差分画像データを生成し、上記表示画像生成ステップにおいて、差分画像データにおける負の値を全て零に書き換え（Ｓ２０３の関数ｃｌａｍｐ）、書き換え後の差分画像データ（図１（ｃ））の値を反転し（Ｓ２０４）、ゲーム画像データ（図１（ａ））と反転後の差分画像データ（図１（ｄ））とを画素毎に乗算する（Ｓ２０５）ようにすれば、ゲーム画像データの値を更新する際に、値を更新した箇所の階調が失われてつぶれてしまうのを防ぐことができる。なお「０〜１の値で表されたボケ画像データ」とは、例えばボケ画像データの値が０〜２５５までの２５６段階のレベルを取り得る場合に、最低レベル（すなわち０のレベル）を０、最大レベル（すなわち２５５のレベル）を１で表したようなボケ画像データを指す。また「差分画像データの値を反転」するとは、差分画像データの値ａを、（１−ａ）に変換することに相当する。
【００１４】
また、与えられた値に基づいて差分画像データの正の値を更新する更新ステップをコンピュータにさらに実行させ、上記表示画像生成ステップにおいて、更新ステップの更新処理後の正の値に基づいて表示用の画像データを生成するようにすれば、ゲーム画像データの値を変更する度合い、すなわちゲーム画像にハッキリとした印象を与える効果の度合いを調整することができる。
【００１５】
また、上記ボケ画像生成ステップにおいて、ボケ画像データのボケ度合いを調整するようにすれば、ゲーム画像データの値を更新する箇所の範囲を調整することができる。
【００１６】
本発明のゲーム画像処理装置は、ディスプレイに表示されるゲーム画像にメリハリを与えるためのものであって、格納手段（フレームバッファ２１）と、ボケ画像生成手段（ステップＳ２０１を実行するコプロセッサ１２；以下、単にステップ番号のみを示す）と、差分画像生成手段（Ｓ２０３）と、表示画像生成手段（Ｓ２０５）とを備えることを特徴とする。格納手段は、ゲーム画像データ（図１（ａ））を格納する。ボケ画像生成手段は、ゲーム画像データに基づいてボケ画像データ（図１（ｂ））を生成する。差分画像生成手段は、ボケ画像データからゲーム画像データを画素毎に減算することにより差分画像データを生成する。表示画像生成手段は、差分画像データにおいて正の値を有する画素に対応するゲーム画像データの値を、この正の値に基づいて更新することにより、表示用の画像データ（図１（ｅ））を生成する。これにより、ゲーム画像全体の印象には影響をほとんど与えずに、ゲーム画像にハッキリとした印象を与えることができる。
【００１７】
なお、上記差分画像生成手段が、０〜１の値で表されたボケ画像データから、０〜１の値で表されたゲーム画像データを画素毎に減算することにより差分画像データを生成し、上記表示画像生成手段が、差分画像データにおける負の値を全て零に書き換える書換手段（Ｓ２０３の関数ｃｌａｍｐ）と、書換手段による書き換え処理後の差分画像データ（図１（ｃ））の値を反転させる反転手段（Ｓ２０４）と、ゲーム画像データ（図１（ａ））と反転手段による反転処理後の差分画像データ（図１（ｄ））とを画素毎に乗算する乗算手段（Ｓ２０５）とを含むようにすれば、ゲーム画像データの値を更新する際に、値を更新した箇所の階調が失われてつぶれてしまうのを防ぐことができる。
【００１８】
【発明の実施の形態】
以下、本発明の一実施形態について図面を参照して説明する。
まず図１および図２を参照して、本発明の原理を説明する。なお図１では、明るい部分を白で、暗い部分を黒で、それらの中間の明るさの部分を灰色で示しており、図２では、実際の明るさの値を示している。図１（ａ）は、元画像の一部の領域（６画素×６画素）を拡大したものである。上側の３行と下側の３行とで画素の明るさが異なっている。つまり、図２（ａ）に示すように、上側の３行の明るさは０．９であり、下側の３行の明るさは０．５である。この元画像に基づいて、まず図１（ｂ）に示すようなボケ画像が生成される。ボケ画像の生成方法としては既知の種々の方式を採用することができる。例えば、各画素の明るさを、この画素を中心とした所定の領域の明るさの平均値で順次置き換えることによってボケ画像を得ることができる。これにより、図１（ｂ）に示すように、明るさが異なる２つの領域（ここでは図１（ａ）の上側の３行からなる領域と下側の３行からなる領域）の境界部分の明るさが、これら２つの領域のほぼ中間の明るさ（０．７）となるように更新される。
【００１９】
次に、ボケ画像の明るさと元画像の明るさとの差分を求めることにより、図１（ｃ）に示すような差分画像が生成される。ただし、ボケ画像の明るさから元画像の明るさを減じたときの明るさの値が負の値になる画素については、差分画像での明るさを零とする。つまり、上から３行目の画素については、ボケ画像の明るさ（０．７）から元画像の明るさ（０．９）を減算すると−０．２となるが、図２に示すように差分画像では０で置き換えられる。さらに、図１（ｃ）に示す差分画像の明るさを反転させる（つまり明るい部分を暗くし、暗い部分を明るくする）ことにより、図１（ｄ）に示すような反転後の差分画像が生成される。具体的には、１から反転前の差分画像の値を減算することにより、反転後の差分画像の値が決定される。
【００２０】
上記のようにして反転後の差分画像が得られると、この差分画像と元画像とを画素毎に乗算することにより、図１（ｅ）に示すような表示用の画像が得られる。例えば、図２（ｅ）に示すように、上から４行目の画素については、元画像の値（０．５）と反転後の差分画像の値（０．８）との乗算結果から、表示画像の明るさの値が０．４と決定される。なお、上から４行目の画素以外の画素については、元画像に１が乗算されるため、表示画像の明るさの値は元画像のものと変わらない。
【００２１】
以上の処理によって、隣接画素と異なる明るさを有する複数の画素から成る境界領域（つまり上から３行目および４行目の画素からなる領域）において、隣接画素と比べて暗い画素（つまり上から４行目の画素）についてのみ、画素間の明るさの差がより大きくなるように（つまりより暗くなるように）明るさが更新されることになる。その結果、図３（ｅ）に示すように、図３（ａ）に示す元画像全体の印象には影響をほとんど与えずに、画像にハッキリとした印象を与えることができる。図３（ｂ）〜図３（ｅ）は、図３（ａ）に示す元画像に対して、シャープネス処理、コントラストを上げる処理、バンプマップ処理、本発明の画像処理をそれぞれ適用した結果の画像を示している。なお、隣接画素間の明るさの差が小さい場合には、図２（ｃ）に示す差分画像の値も小さくなり、結果として暗くなる度合いも小さくなる。よって、階調がなだらかに変化するような部分については効果が抑えられるという利点もある。
【００２２】
図４に、本発明の一実施形態に係るゲームシステムの構成を示す。図４において、ゲームシステムは、ビデオゲームメインユニット１０と、表示部１５と、ゲームコントローラ１６と、ゲームディスク１７とを備える。ビデオゲームメインユニット１０は、メインプロセッサ１１と、コプロセッサ１２と、メモリ１３と、ドライブユニット１４とを含む。なお、ビデオゲームメインユニット１０の代わりに汎用的なコンピュータを用いても構わない。
【００２３】
ビデオゲームメインユニット１０には、ゲーム処理を実行するための各種プログラムや各種データが、ゲームディスク１７を介して供給される。図５に、ゲームディスク１７のメモリマップを示す。図５において、ゲームディスク１７には、ゲーム処理のための基本的なプログラムが記録されるメインプログラム領域、オブジェクト発生プログラム等の画像生成プログラムが記録されるオブジェクト発生プログラム領域、その他のプログラムが記録される領域、オブジェクト（ゲーム画像の生成に必要なポリゴンおよびテクスチャ等）に関する様々なデータが記録される画像データ領域、音表現に関する様々なデータが記録される音データ領域等が設けられている。ゲームディスク１７としては、ＤＶＤやＣＤ−ＲＯＭ等のディスク状の記録媒体だけでなく、ゲームカートリッジ等、他の任意のコンピュータ読取可能な記録媒体を利用することができる。
【００２４】
ゲームディスク１７に格納された各種プログラムは、ドライブユニット１４を通じて適宜読み出され、メインプロセッサ１１およびコプロセッサ１２は、メモリ１３を適宜利用しながらそれらプログラムを実行する。図６に、メモリ１３のメモリマップを示す。メモリ１３には、ビデオゲームメインユニット１０を動作させるための基本的なシステムプログラムに加えてゲームディスク１７から読み出された各種プログラムを格納するためのプログラム領域、ゲームディスク１７から読み出された各オブジェクトの画像データを格納するためのオブジェクトデータ記憶領域、テクスチャに基づく色情報（例えばＲＧＢの３つの値で表現された色情報）の算出に用いられる計算用バッファ、１フレームのゲーム画像を構成するために必要となるオブジェクトの情報を格納するためのオブジェクトリスト領域、表示部１５より出力される１フレームのゲーム画像データを格納するためのフレームバッファ２１、前述のボケ画像を格納するためのボケ画像格納バッファ２２、フレームバッファ２１に格納された元画像のコピーを格納するための元画像のコピー格納バッファ２３等の領域が適宜設けられる。
【００２５】
以下、図７および図８に示すフローチャートを参照して、ビデオゲームメインユニット１０の動作を説明する。なお図７は、ゲーム処理全体の流れを示すフローチャートであり、図８は、そのうちの本発明の特徴である“ゲーム画像にメリハリを与える処理”（ステップＳ１０８）を詳細に示したフローチャートである。
【００２６】
図７において、ゲーム処理が開始すると、まず電源投入時に動作するプログラムによって初期設定が行われる（ステップＳ１０１）。この初期設定では、ゲームディスク１７がビデオゲームメインユニット１０に装着されているか否かや、ゲームコントローラ１６がビデオゲームメインユニット１０に接続されているか否か等が検出される。初期設定が完了すると、ゲームディスク１７からメモリ１３へ、ゲーム処理に必要なプログラムおよびデータが転送される（ステップＳ１０２）。そして、メインプロセッサ１１は、画像処理以外に関するゲーム処理を実行する（Ｓ１０３）。具体的には、ゲームコントローラ１６からの入力に基づいてプレイヤキャラクタの配置座標の変更等の処理を行う。このゲーム処理の結果が反映されたゲーム画像がステップＳ１０４以降の処理によって生成されて表示部１５より出力されることになる。
【００２７】
ステップＳ１０３の処理が完了すると、メインプロセッサ１１は、メモリ１３のプログラム領域に記憶された画像生成プログラムの実行を開始し（ステップＳ１０４）、メモリ１３のオブジェクトデータ記憶領域から、プレイヤキャラクタ等のオブジェクトの画像データを読み出して（ステップＳ１０５）、各オブジェクトをワールド座標系に配置する（ステップＳ１０６）。それから、ゲームプレイヤの視点に対応する仮想カメラをワールド座標系に配置し、この仮想カメラの位置に基づいて、各オブジェクトの座標をワールド座標系からカメラ座標系に変換する（ステップＳ１０７）。この変換は、行列変換およびメモリ座標上の二次元座標変換によって実現される。カメラ座標系に変換された各オブジェクトは、コプロセッサ１２によって順次レンダリングされ、最終的に全てのオブジェクトの画像データがフレームバッファ２１に書き込まれる（Ｓ１０８）。こうしてフレームバッファ２１には、表示部１５より出力されるゲーム画像の元となるゲーム画像データ（元画像）が格納される。
【００２８】
フレームバッファ２１へのゲーム画像データの格納が完了すると、後述する“ゲーム画像にメリハリを与える処理”（Ｓ１０９）によってフレームバッファ２１に格納されているゲーム画像データが更新され、コプロセッサ１２は、この更新後のゲーム画像データをフレームバッファ２１から読み出して表示部１５へ出力する（Ｓ１１０）。そして、ゲームが終了したかどうかが判断され（Ｓ１１１）、ゲームが続行している場合には処理はステップＳ１０３に戻り、ゲームが終了した場合にはゲーム処理が終了する。
【００２９】
次に図８に示すフローチャートを参照して、図７のステップＳ１０９の“ゲーム画像にメリハリを与える処理”について説明する。ここではゲーム画像データがＲＧＢの各値（０〜２５５）で表されているものとし、後述するステップＳ２０３〜Ｓ２０５の処理は、ＲＧＢの各値に対してそれぞれ独立に行われるものとする。コプロセッサ１２は、前述のレンダリング処理によってフレームバッファ２１に格納された元画像（ＸＰＩＣ）に基づいてボケ画像（ＢＰＩＣ）を生成してボケ画像格納バッファ２２に格納し、さらに元画像（ＸＰＩＣ）のコピー（ＣＰＩＣ）をコピー格納バッファ２３に格納する（Ｓ２０１）。なお、元画像のコピーをコピー格納バッファ２３に格納するのは、フレームバッファ２１に格納されたゲーム画像データを元画像を参照しながら順次更新していく必要があるからである。ただしハードウェアの構成次第でコピー処理を省略できる場合もあり得る。
【００３０】
続いてコプロセッサ１２は、処理対象となる画素（以下、単に対象画素と称す）を選択する（ステップＳ２０２）。ここでは、対象画素をその位置（ｘ、ｙ）によって特定している。なお、本実施形態では、図１（ｃ）〜図１（ｅ）に示すような一画面分の画像を順次作成するのではなく、元画像とボケ画像から図１（ｅ）に示す表示画像データを画素毎に順次計算して、最終的に一画面分の表示画像データを生成するようにしているが、図１（ｃ）〜図１（ｅ）に示すような一画面分の画像を順次作成するようにしても構わない。
【００３１】
対象画素が選択されると、コプロセッサ１２は、対象画素に対応するボケ画像（ＢＰＩＣ）の値から元画像（ＣＰＩＣ）の値を減算し、この減算結果を０〜１の範囲に丸める（つまり減算結果が負の値である場合には演算結果ａ＝０とする）（Ｓ２０３）。この処理は、図１（ｃ）に示す反転前の差分画像を生成する処理に相当する。なお、ボケ画像の値と元画像の値は、前述のようにＲＧＢ毎に０〜２５５の値で表されているが、減算を行う際にはそれぞれ０〜１の値となるように値が変換される。その結果、減算結果は−１〜１の範囲の値となる。さらにこの減算結果は０〜１の範囲に丸められるので、ステップＳ２０３の演算結果ａは、０〜１の範囲の値となる。
【００３２】
続いてコプロセッサ１２は、ステップＳ２０３の演算結果を反転させる（Ｓ２０４）。すなわち、ステップＳ２０３の演算結果ａを１から減算する。この処理は、図１（ｄ）に示す反転後の差分画像を生成する処理に相当する。ステップＳ２０３の反転結果ｂは、０〜１の範囲の値となる。
【００３３】
さらにコプロセッサ１２は、対象画素に対応する元画像（ＣＰＩＣ）の値にステップＳ２０３の反転結果ｂを乗算する（Ｓ２０５）。この処理の結果、対象画素に対応するフレームバッファ２１の値が、元画像（ＣＰＩＣ）とボケ画像（ＢＰＩＣ）に基づいて生成された新たなＲＧＢ毎の値（０〜２５５の範囲で表された値）に更新される。このステップＳ２０５の処理は、図１（ｅ）に示す表示画像を生成する処理に相当する。
【００３４】
次にコプロセッサ１２は、全画素に対して処理が完了したかどうかを判断し（Ｓ２０６）、未処理の画素が存在する場合にはステップＳ２０２に戻り、その未処理の画素のうちの一つを処理対象として同様の処理を繰り返す。こうして全画素に対して処理が完了すると、“ゲーム画像にメリハリを与える処理”は完了し、図７のステップＳ１１０に処理が進む。
【００３５】
なお、本実施形態では、ゲーム画像がＲＧＢの３つの値で表現されており、これらの値に対して個別に処理を行う場合について説明したが、本発明はこれに限定されない。例えば、ゲーム画像がＹＵＶ（輝度Ｙと色差Ｕ，Ｖ）で表現されている場合には、輝度Ｙに対してのみ同様の処理を行うようにすればよい。さらには、ゲーム画像がＲＧＢで表現されている場合に、色空間変換によってゲーム画像から輝度Ｙの情報を取り出してからこの輝度Ｙに対して処理を行い、その結果に基づいて表示用のゲーム画像を生成するようにしてもよい。輝度Ｙに対して処理を行う場合には、ＲＧＢに対して個別に処理を行う場合に比べて演算量を低減することができるという利点がある。一方、ＲＧＢの各値に対して個別に処理を行う場合には、明るさは等しいが色が異なっている二つの領域（例えば青い領域と赤い領域）の境界部分の明るさを暗くして、それら二つの領域の境界を際立たせることができるという利点がある。
【００３６】
なお、ユーザの指示等に基づいて、“ゲーム画像にメリハリを与える処理”の効果を自由に調整することもできる。
【００３７】
例えば、図８のステップＳ２０５において元画像（ＣＰＩＣ）に乗算される値ｂを調整するようにすれば、明るさが暗くなる度合いを調整することができる。具体的には、図９に示すように、図８のステップＳ２０３の減算結果を反転させて反転結果ｂ１を算出し（Ｓ３０１）、この反転結果ｂ１を０以上の任意の調整値（図中のｅｆｆｅｃｔ）で累乗して調整後の反転結果ｂ２を算出し（Ｓ３０２）、元画像（ＣＰＩＣ）に調整後の反転結果ｂ２を乗算（Ｓ３０３）すればよい。この調整値を大きくするほど明るさが暗くなる度合いが大きくなり、逆に調整値を小さくするほど明るさが暗くなる度合いが小さくなる。図１０は、図２（ｄ）に示す反転後の差分画像データを４で累乗した後（図１０（ｅ））に元画像データに乗算した場合の例を示している。図１０（ｆ）に示す表示画像は、図１（ｅ）に示す表示画像に比べて明るさが暗くなる度合いが大きくなっている。なお、ここでは反転結果ｂ１を０以上の任意の調整値で累乗して調整後の反転結果を得るとしたが、本発明はこれに限らず、他の変換関数を用いてｂ１からｂ２を算出してもよい。ただし、本来暗くする必要の無い画素までが暗くなってしまうことがないように、少なくともｂ１が１である画素についてはｂ２も１としなければならない。
【００３８】
また例えば、図８のステップＳ２０１において生成されるボケ画像のボケ度合いを調整するようにすれば、明るさが暗くなる範囲の大きさを調整することができる。図１１は、ボケ画像のボケ度合いを図１に比べて大きくした場合の例を示している。図１１（ｅ）に示す表示画像は、図１（ｅ）に示す表示画像に比べて明るさが暗くなる範囲が大きくなっている。つまり、ボケ画像のボケ度合いを予め適宜のタイミングでユーザに自由に設定させることにより、ユーザは明るさが暗くなる範囲を自由に調整することができる。なお、ボケ度合いの調整は既知の任意の手法を採用することができる。例えば、対象画素を中心とした所定範囲に含まれる画素の明るさの平均を算出して対象画素の明るさを決定する場合には、その所定範囲の大きさを大きくすることにより、ボケ度合いを大きくすることができる。
【００３９】
このようにして“ゲーム画像にメリハリを与える処理”の効果を調整することにより、例えば黒い輪郭線を描いた漫画のような効果が得ることも可能となる。
【００４０】
また、本実施形態では、反転後の差分画像データ（図２（ｄ））を元画像データ（図２（ａ））に画素毎に乗算するようにしているが、本発明はこれに限定されない。例えば、反転前の差分画像データ（図２（ｃ））を元画像データ（図２（ａ））から減算するようにしても本実施形態とほぼ同様の効果が得られる。ただし、元画像データから反転前の差分画像データを減算する場合、差分画像データの値が元画像データの値よりも大きい画素については、表示画像データの明るさが、元画像データの値によらず零となってしまい、結果として明るさを暗くした部分の階調が失われてしまう。一方、本実施形態では、元画像データに対して０〜１の範囲の値で表された反転後の差分画像データを乗算するので、階調が失われてしまうという問題は発生しない。
【００４１】
また、本実施形態では、予め一画面分のボケ画像を生成するとしているが、本発明はこれに限らず、例えばボケ画像を局所的に（例えば画素毎に）順次生成しながら同様の処理を行うようにしてもよい。
【図面の簡単な説明】
【図１】本発明の画像処理の原理を示す図である。
【図２】図１に対応する画像データの値を示す図である。
【図３】本発明の画像処理と従来の画像処理の効果の違いを示す図である。
【図４】本発明の一実施形態に係るゲームシステムの構成を示すブロック図である。
【図５】ゲームディスク１７のメモリマップである。
【図６】メモリ１３のメモリマップである。
【図７】ゲーム処理全体の流れを示すフローチャートである。
【図８】本発明の“ゲーム画像にメリハリを与える処理”の流れを示すフローチャートである。
【図９】明るさを暗くする度合いを調整するときの処理の流れを示すフローチャートである。
【図１０】明るさを暗くする度合いを大きくしたときの処理を図２と比較して説明するための図である。
【図１１】ボケ度合いを大きくしたときの処理を図１と比較して説明するための図である。
【符号の説明】
１０  ビデオゲームメインユニット
１１  メインプロセッサ
１２  コプロセッサ
１３  メモリ
１４  ドライブユニット
１５  表示部
１６  ゲームコントローラ
１７  ゲームディスク
２１  フレームバッファ
２２  ボケ画像格納バッファ
２３  元画像のコピー格納バッファ
【図１】
2004152150.tif 000003
【図２】
2004152150.tif 000004
【図３】
2004152150.tif 000005
【図４】
2004152150.tif 000006
【図５】
2004152150.tif 000007
【図６】
2004152150.tif 000008
【図７】
2004152150.tif 000009
【図８】
2004152150.tif 000010
【図９】
2004152150.tif 000011
【図１０】
2004152150.tif 000012
【図１１】
2004152150.tif 000013