(57)【要約】  画像生成装置はの原画像操作部は、ユーザの指示入力や姿勢の変化に基づく所定の条件を満たしたとき（Ｓ３００のＮ）、左右の視差画像を表示させることにより立体視させている画像に対する鑑賞者の視点の、基点からの変位量を取得する（Ｓ３０２）。当該変位量に基づき、視差画像を表している仮想空間での画像平面の位置の調整量を取得する（Ｓ３０４）。当該画像平面の各画素から、視差画像の原画像を参照するための画像参照ベクトルの生成において、画像平面の位置の調整量を反映させた演算を行うことにより、画像平面の位置の調整を実現する（Ｓ３０６）。
2019026184.tif 000002
【特許請求の範囲】
【請求項１】
左右の異なる視点から取得された一対の原画像を用いて、オブジェクトを立体視できる画像を生成する画像生成装置であって、
ユーザの視点の移動に応じて仮想空間における画像平面の位置を調整したうえ、当該視点の移動に対し前記オブジェクトが前記仮想空間で固定されるように、前記原画像の画素の変位を算出することにより、前記画像平面に対し各時点での視点に対応する画像を生成する原画像操作部と、
前記各時点での視点に対応する画像のうち、表示画像の各画素に対応する位置におけるカラー値を参照して、当該画素のカラー値を決定する表示画像生成部と、
前記表示画像のデータを出力する出力部と、
を備えたことを特徴とする画像生成装置。
【請求項２】
前記原画像操作部は、所定の基点からの前記視点の変位量のうち、前記画像平面と平行な成分の変位量と同じ変位量で、同じ方向に前記画像平面を変位させることを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記原画像操作部は、ユーザからの移動に係る指示入力を取得したタイミングで、前記画像平面の調整を開始することを特徴とする請求項１または２に記載の画像生成装置。
【請求項４】
前記原画像操作部は、前記原画像の内容に基づき決定したタイミングで、前記画像平面の調整を開始することを特徴とする請求項１または２に記載の画像生成装置。
【請求項５】
前記原画像操作部は、ユーザの姿勢の変化を監視し、所定の基準により姿勢に安定性が得られたと判定したタイミングで、前記画像平面の調整を開始することを特徴とする請求項１または２に記載の画像生成装置。
【請求項６】
前記原画像操作部は、前記画像平面を変位させることを決定したタイミングから所定数のフレームにかけて、前記画像平面を変位させていくことを特徴とする請求項１から５のいずれかに記載の画像生成装置。
【請求項７】
左右の異なる視点から取得された一対の原画像を用いて、オブジェクトを立体視できる画像を生成する画像生成方法であって、
ユーザの視点の移動に応じて仮想空間における画像平面の位置を調整したうえ、当該視点の移動に対し前記オブジェクトが前記仮想空間で固定されるように、前記原画像の画素の変位を算出することにより、前記画像平面に対し各時点での視点に対応する画像を生成するステップと、
前記各時点での視点に対応する画像のうち、表示画像の各画素に対応する位置におけるカラー値を参照して、当該画素のカラー値を決定するステップと、
前記表示画像のデータを出力するステップと、
を含むことを特徴とする画像生成装置による画像生成方法。
【請求項８】
左右の異なる視点から取得された一対の原画像を用いて、オブジェクトを立体視できる画像を生成するコンピュータプログラムであって、
ユーザの視点の移動に応じて仮想空間における画像平面の位置を調整したうえ、当該視点の移動に対し前記オブジェクトが前記仮想空間で固定されるように、前記原画像の画素の変位を算出することにより、前記画像平面に対し各時点での視点に対応する画像を生成する機能と、
前記各時点での視点に対応する画像のうち、表示画像の各画素に対応する位置におけるカラー値を参照して、当該画素のカラー値を決定する機能と、
前記表示画像のデータを出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体映像を生成する画像生成装置および画像生成方法に関する。
【背景技術】
【０００２】
映像を立体的に提示できる３次元テレビやヘッドマウントディスプレイ等の３次元表示デバイスが利用されている。携帯電話や携帯ゲーム機等の携帯端末機において映像を立体的に提示できるデバイスも開発されており、一般のユーザが立体的な映像を視聴する機会が増加してきている。【０００３】
立体的な映像を表示する３次元表示デバイスは、ユーザの左右の目に視差のある画像を見せることでユーザが画像を立体視することを可能にする。左右の目に視差のある画像を見せるために特殊な光学メガネを利用する方式や、光学メガネを使わずにパララックスバリアやレンチキュラーレンズを用いる方式などがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
歪みのない立体映像を見せるためには、ユーザの視点に基づく正確な視差画像を生成する必要がある。したがって視点の動きを許容して立体映像を提示するには、一般的には仮想３次元空間にオブジェクトを配置しカメラ座標系を変化させて射影するなどの処理が必要になる。しかしながら画像の質や精度を追求するほど、そのような処理に要する時間が増え、表示が視点の動きに追随しにくくなる。また元の視差画像のデータに多くの操作が加わることにより、画質が劣化する可能性が高くなる。【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、視点が変位しても高品質な立体画像を少ない遅延で生成できる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は画像生成装置に関する。この画像生成装置は、左右の異なる視点から取得された一対の原画像を用いて、オブジェクトを立体視できる画像を生成する画像生成装置であって、ユーザの視点の移動に応じて仮想空間における画像平面の位置を調整したうえ、当該視点の移動に対しオブジェクトが仮想空間で固定されるように、原画像の画素の変位を算出することにより、画像平面に対し各時点での視点に対応する画像を生成する原画像操作部と、前記各時点での視点に対応する画像のうち、表示画像の各画素に対応する位置におけるカラー値を参照して、当該画素のカラー値を決定する表示画像生成部と、表示画像のデータを出力する出力部と、を備えたことを特徴とする。【０００７】
本発明の別の態様は画像生成方法に関する。この画像生成方法は、左右の異なる視点から取得された一対の原画像を用いて、オブジェクトを立体視できる画像を生成する画像生成方法であって、ユーザの視点の移動に応じて仮想空間における画像平面の位置を調整したうえ、当該視点の移動に対しオブジェクトが仮想空間で固定されるように、原画像の画素の変位を算出することにより、画像平面に対し各時点での視点に対応する画像を生成するステップと、各時点での視点に対応する画像のうち、表示画像の各画素に対応する位置におけるカラー値を参照して、当該画素のカラー値を決定するステップと、表示画像のデータを出力するステップと、を含むことを特徴とする。【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、視点が変位しても高品質な立体画像を少ない遅延で提示できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態におけるヘッドマウントディスプレイの外観図である。
【図２】本実施の形態における画像表示システムの構成図である。
【図３】本実施の形態の画像表示システムによって実現される表示の形態を説明するための図である。
【図４】本実施の形態の画像生成装置が生成する画像を模式的に示す図である。
【図５】本実施の形態において視差画像を取得する段階で与えられる視差と画像の関係を説明するための図である。
【図６】適切な位置から視差画像を鑑賞する場合の視点と画像の関係を示す図である。
【図７】左右の原画像に表される同一のオブジェクトの像を重ねて示す図である。
【図８】本実施の形態における画像生成装置が、原画像から表示画像を生成する処理手順の概略を示すフローチャートである。
【図９】本実施の形態における画像生成装置の内部回路構成を示す図である。
【図１０】本実施の形態における画像生成装置の機能ブロックを示す図である。
【図１１】本実施の形態において、視点の移動量のうちＺ軸方向およびＸ軸方向の移動量成分と、それに応じた原画像の画素の移動量との関係を説明するための図である。
【図１２】本実施の形態において、視点の移動量のうちＺ軸方向およびＹ軸方向の移動量成分と、それに応じた原画像の画素の移動量との関係を説明するための図である。
【図１３】本実施の形態において、視点の移動量のうちＺ軸方向およびＸ軸方向の移動量成分と、右目用の画像参照ベクトルマップにおいて左目用の原画像を参照する際の画素の移動量との関係を説明するための図である。
【図１４】本実施の形態において、拡張参照における画像参照ベクトルの計算手法を説明するための図である。
【図１５】本実施の形態における変位ベクトルと画素領域の関係を模式的に示す図である。
【図１６】本実施の形態において、画像参照ベクトルマップ上の各画素に対し画像参照ベクトルを決定する処理手順の概略を示すフローチャートである。
【図１７】本実施の形態における画像参照ベクトルの補間手法を説明するための図である。
【図１８】図８のＳ１２において原画像操作部２５４が画像参照ベクトルマップを生成する処理手順を示すフローチャートである。
【図１９】図１８のＳ２２において、自己画像を参照先とする画像参照ベクトルを生成するためのＺバッファへの書き込み処理の手順を示す図である。
【図２０】図１８のＳ２２において、自己画像を参照先とする画像参照ベクトルの設定処理の手順を示すフローチャートである。
【図２１】図８のＳ１４において、表示画像生成部２６８が画像参照ベクトルマップを用いて表示画像を生成する手順を示すフローチャートである。
【図２２】本実施の形態における、表示画像、画像参照ベクトルマップ、および原画像の位置的関係を説明するための図である。
【図２３】本実施の形態で導入する再帰型フィルタを説明するための図である。
【図２４】本実施の形態において再帰型フィルタを導入した場合のカラーマップの生成手順を模式的に示す図である。
【図２５】本実施の形態において再帰型フィルタを導入した場合のカラーマップの生成手順を模式的に示す図である。
【図２６】本実施の形態において再帰型フィルタを導入した場合のカラーマップの生成手順を模式的に示す図である。
【図２７】本実施の形態における表示画像生成部が、再帰型フィルタを適用しない画素について表示画像の画素ごとにカラー値を決定する手順を模式的に示す図である。
【図２８】本実施の形態における表示画像生成部が、再帰型フィルタを適用する画素について表示画像の画素ごとにカラー値を決定する手順を模式的に示す図である。
【図２９】本実施の形態において、視点の移動量のうちＺ軸方向およびＸ軸方向の移動量成分と、それに応じた画像参照ベクトルマップ間での画素の移動量との関係を説明するための図である。
【図３０】本実施の形態において、視点の移動量のうちＺ軸方向およびＹ軸方向の移動量成分と、それに応じた画像参照ベクトルマップ間での画素の移動量との関係を説明するための図である。
【図３１】本実施の形態における、鑑賞者の頭部の傾きによる表示画像の変化例を模式的に示す図である。
【図３２】本実施の形態において、視点の位置に応じてマップスクリーンの位置を調整する手法を説明するための図である。
【図３３】本実施の形態における画像生成装置の原画像操作部が、観察者の頭部の位置に応じて画像の位置をＸＹ平面上で調整する処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本実施の形態は、視差画像のうち右目用画像を右目に、左目用画像を左目に到達させることにより立体視させる３次元画像表示システムに関する。その限りにおいて画像の表示形態や鑑賞者の鑑賞形態は限定されない。例えば平板型ディスプレイやスクリーンに同時あるいは交互に視差画像を表示させ、偏光眼鏡やシャッター眼鏡により鑑賞する態様が考えられる。あるいは左右の目に対し独立に画像を提示できるヘッドマウントディスプレイを利用することも考えられる。ここでは主に、後者を例に説明する。
【００１２】
図１は、ヘッドマウントディスプレイ１００の外観図である。ヘッドマウントディスプレイ１００は、本体部１１０、前頭部接触部１２０、および側頭部接触部１３０を含む。ヘッドマウントディスプレイ１００は、鑑賞者の頭部に装着してディスプレイに表示される静止画や動画などを鑑賞し、ヘッドホンから出力される音声や音楽などを聴くための表示装置である。ヘッドマウントディスプレイ１００に内蔵または外付けされたモーションセンサにより、ヘッドマウントディスプレイ１００を装着した鑑賞者の頭部の回転角や傾きといった姿勢情報を計測することができる。
【００１３】
図２は、本実施の形態における画像表示システムの構成図である。ヘッドマウントディスプレイ１００は、無線通信またはＵＳＢなどの周辺機器を接続するインタフェース２８０で画像生成装置２００に接続される。画像生成装置２００は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションを画像生成装置２００に提供してもよい。画像生成装置２００はゲーム装置、パーソナルコンピュータ、携帯端末などのいずれでもよい。また画像生成装置２００とヘッドマウントディスプレイ１００とを一体的に構成してもよい。
【００１４】
図３は、画像表示システムによって実現される表示の形態を説明するための図である。本実施の形態では、画像を表す平面を、さらに仮想空間に配置した状態を作り出す。すなわち観念的には（ａ）に示すように、画像を表示させたスクリーン５０を仮想空間における場５２上に配置させ、鑑賞者５４が、ビュースクリーン５６を介してそれを鑑賞できるようにする。ここでビュースクリーン５６は、ヘッドマウントディスプレイ１００に表示される画像の視野に対応する。
【００１５】
鑑賞者５４が仮想空間を見ながら移動すると、仮想世界との相対位置の変化に応じてスクリーン５０の見え方も変化する。例えば（ａ）に示すように、鑑賞者５４がスクリーン５０に対し右方にいる場合、画像生成装置２００は矢印で示すような視線に対応する（ｂ）のような画像を生成し、ヘッドマウントディスプレイ１００に表示させる。なお仮想空間における場５２は仮想空間の座標系を表象しているに過ぎず、形状などを限定する主旨ではない。また必ずしも表示させなくてよい。
【００１６】
図４は、図３の態様を実現するために画像生成装置２００が生成する画像を模式的に示している。本実施の形態において画像スクリーン５０に表示させる画像は、立体視用の一対の視差画像、すなわち左目用画像６０ａおよび右目用画像６０ｂで構成される。図３で示すような画像を立体視させるためには、同じオブジェクトが左目用画像６０ａでは右寄りに、右目用画像６０ｂでは左寄りに表れる。
【００１７】
また画像スクリーン５０に対する視点の位置が左右の目で異なるため、それぞれの視点から透視変換を行う必要がある。例えば図３に示すように鑑賞者が画像スクリーン５０に対し右方にいる場合、左目より右目の方が画像スクリーン５０に近く、画像スクリーン５０の平面に垂直な軸に対する角度が大きくなる。結果として画像スクリーン５０の枠の形状および位置は左目用画像６０ａ、右目用画像６０ｂで異なり、それらを同一平面上に重ねて表すと、平面６２に示すような位置関係となる。
【００１８】
このような左目用画像６０ａ、右目用画像６０ｂを生成し、ヘッドマウントディスプレイ１００の画面を左右に分割してなる領域のうち左目に対する領域に前者を、右目に対する領域に後者を表示させることにより、鑑賞者には図３の（ｂ）で示される状態で画像スクリーン５０に表れるオブジェクトが立体に見えるようになる。なお実際には、ヘッドマウントディスプレイ１００の画面と鑑賞者の目の間にはレンズが設けられ、左右の目の視野全体に画像が表れるようにする。そのため左目用画像６０ａ、右目用画像６０ｂにはそれぞれ、レンズを介して見たときに本来の画像が視認されるようなレンズ歪み補正が施される。
【００１９】
このように本実施の形態では、立体視用の視差画像が準備されており、それを自由な視点で鑑賞できるような態様を実現する。仮想的な空間を立体視させる技術としては、仮想世界が３次元空間で定義済みであり、鑑賞者の左右の視点に応じたビュースクリーンに仮想世界のオブジェクトを射影して視差画像を生成する技術がある。一方、３次元動画のようにあらかじめ撮影または生成された２次元画像を立体視させる場合、元々視差が与えられているためそのままでは鑑賞者の視点が限定される。
【００２０】
図５は、視差画像を取得する段階で与えられる視差と画像の関係を説明するための図である。同図は想定する左右の視点（カメラ７０ａ、７０ｂ）、視差画像が取得される画像スクリーン７６、および視差画像に写るオブジェクト７８を含む仮想的な空間を俯瞰した状態を模式的に示している。なお視差画像はステレオカメラで撮影した画像とすることもでき、カメラ７０ａ、７０ｂはその場合のステレオカメラに相当する。
【００２１】
また同図では一対の視差画像の平面を画像スクリーン７６で同時に表している。以後、このように画像スクリーン７６上で元々取得されている視差画像を、鑑賞段階での表示画像と区別するために「原画像」と呼ぶことがある。また以後の説明において原画像の平面と垂直な方向をＺ軸、画像平面における水平方向および垂直方向をそれぞれＸ軸、Ｙ軸とする。
【００２２】
原画像にはオブジェクト７８の像が表れている。例えばオブジェクト７８表面のある点８０は、左のカメラ７０ａからは光軸８２ａから右側にａだけ離れた位置８４ａに、右のカメラ７０ｂからは光軸８２ｂから左側にｂだけ離れた位置８４ｂに表れる。つまり点８０に対する視差Ｄｐはａ＋ｂである。実際には様々な位置にオブジェクトが存在してよく、その深さ方向の距離に応じた視差で、左右の原画像に像が表される。
【００２３】
画像スクリーン７６からオブジェクト７８上の点８０までの距離Ｚｐは、視差Ｄｐを用いて三角形の相似により次のように求められる。
Ewp : Exp - Dp = Scp + Zp : Zp
よって
Zp = Scp * Ewp / Dp - Scp
ここでＥｗｐは左右のカメラ７０ａ、７０ｂの間隔、Ｓｃｐはカメラ７０ａ、７０ｂから画像スクリーン７６までの距離である。
【００２４】
このように得られた視差画像を上述のように鑑賞する場合を考える。図６は適切な位置から視差画像を鑑賞する場合の視点と画像の関係を示している。図の形式は図５と同様である。画像を鑑賞する段階では、鑑賞者の視点８８ａ、８８ｂと、それらから距離Ｓｃｓだけ隔てた位置に鑑賞者が見るビュースクリーン８６が存在する。そのような空間に図５で示した視差画像取得時の位置関係を当てはめた場合、図示するように鑑賞者の視点８８ａ、８８ｂがカメラ７０ａ、７０ｂと同じ位置になるように画像スクリーン７６の位置を決め、その位置での視差画像をビュースクリーン８６にそれぞれ射影すれば、オブジェクト７８を歪みなく立体視できる。
【００２５】
これは原画像を取得した際のカメラ７０ａ、７０ｂの視錐台と、それを鑑賞する際の視点８８ａ、８８ｂの視錐台がそれぞれ一致していることに相当する。一方、鑑賞者が移動して視点８８ａ、８８ｂが図示するような位置関係から外れると、オブジェクトが歪んで見えたり適正に立体視できなかったりすることが考えられる。場合によっては体調に悪影響を及ぼすこともある。
【００２６】
このような視点の移動を許容して適正に立体視させるためには、与えられた２次元画像を一旦、３次元の仮想空間に逆射影したうえ、再度ビュースクリーンに射影することが考えられる。例えば左右どちらかの原画像を、画素中心を頂点とする微小三角形に分割し、それぞれの距離Ｚｐに応じて仮想３次元空間に配置する。距離Ｚｐは上述の視差Ｄｐにより求められる。そして鑑賞者の視点に対応する左右のビュースクリーンに各微小三角形を射影し、内部をテクスチャマッピングにより描画する。
【００２７】
しかしながらこの場合、次に述べるような問題が生じる。図７は左右の原画像に表される同一のオブジェクトの像を重ねて示している。左目用の原画像９０ａ、右目用の原画像９０ｂの画素領域の境界を、それぞれ実線、破線の格子で示している。図示するように同じオブジェクトの像９２を表す画素集合であっても、両画像の画素の境界が一致するとは限らない。このとき、例えば左目用の原画像９０ａ中のある画素（例えば太線枠の画素９４）に対応する領域は、右目用の原画像９０ｂでは２つの画素にまたがっている。
【００２８】
この場合、左目用の原画像９０ａの画素９４に対して得られる視差値は画素より小さいサブピクセルの単位となる。つまりおよそ同じ像を表す画素であっても、左右どちらの原画像を基準とするかで、表されるオブジェクト上の位置に微小な差が生じ、それがサブピクセル単位の視差値の差を生む。結果として画素ごとに視差値を表したデータは、左右の原画像で一致しないことが多い。換言すれば、画素単位で視差の値を保持する「視差値画像」を、左右の原画像のそれぞれに対して生成しておくことにより、サブピクセル単位での視差情報、ひいては奥行き情報を画像に反映させることができる。
【００２９】
一方、上述のように原画像を微小三角形に分割して仮想３次元空間に配置する場合、左右どちらかの原画像を選択せざるを得ず、奥行き情報も選択された画像を基準とした情報のみとなる。その結果、サブピクセル単位での詳細な画像表現が困難になる。また一般的に異なる視点から取得された画像間では光の鏡面反射の成分や屈折光の成分が異なることが普通であるが、オブジェクトを単独の点群あるいは微小三角形の集まりで表現すると、これらの情報が欠落してしまい結果的にオブジェクトの質感を損ねることになる。
【００３０】
さらに、分割した微少領域を３次元空間に逆射影する処理、３次元空間における微少領域をビュースクリーンに射影する処理、という２段階の処理により、最終的な表示画像の品質が劣化しやすい。鑑賞者の視点が図６に示すような適切な位置にあり、本来は画像の変換の必要がなくても、そのような処理が介在することにより無駄に画質が劣化することになる。
【００３１】
また従来の処理では、例えば大量のメモリを準備し３次元の仮想空間に逆射影した情報を点群あるいは微小三角形の集合として保存しておいたとしても、再度ビュースクリーンに対する各点の透視変換が必要であり、処理の負荷が大きい。このため原画像を動画としたり鑑賞者の移動が早かったりした場合は特に、看過できないレイテンシを生む。そこで本実施の形態では、原画像と表示画像を直接的に関連づけることで、画質の劣化やレイテンシを最小限に抑える。具体的には、視点の移動に応じたビュースクリーンの変化に対し、原画像の像がどのように移動するかをビュースクリーン上の画素ごとに計算して描画する。
【００３２】
この計算において、視点が移動しても、それに応じて仮想空間でのオブジェクトの位置が変化したり歪んだりすることがないように原画像を補正した補正画像を、原画像と同一平面、または原画像と平行な平面上で生成する。これにより、各点の４ｘ４の透視変換マトリックスを用いた透視変換処理が簡略化され、少ない演算量で画素ごとの変位を計算することが可能になる。また、最終的にビュースクリーンに対する補正画像の透視変換が必要になるが、これは補正画像全体をカバーする一つの三角形に対し実行すればよいため、従来のグラフィックスハードウェアを用いて非常に高い効率で処理することが可能である。なお以後の説明では、図６に示した、カメラと鑑賞者の視錐台が一致した状態での視点の位置を基点とし、そこからの視点の移動とそれによる画像の変化に主眼を置く。
【００３３】
図８は、本実施の形態における画像生成装置２００が、原画像から表示画像を生成する処理手順の概略を示すフローチャートである。画像生成装置２００はまず、鑑賞者の視点の位置と視線の方向を取得する（Ｓ１０）。例えばヘッドマウントディスプレイ１００に内蔵したモーションセンサにより鑑賞者の頭部の姿勢を取得できる。また図示しない撮像装置で鑑賞者を撮影し、ヘッドマウントディスプレイ１００の表面に設けた発光マーカーの像などに基づき鑑賞者の頭部の位置や姿勢を取得できる。
【００３４】
あるいはヘッドマウントディスプレイ１００側に、鑑賞者の視野に対応する画像を撮影する図示しない撮像装置を設け、ＳＬＡＭ（Simultaneous Localization and Mapping）などの技術により頭部の位置や姿勢を取得してもよい。このように頭部の位置や姿勢を取得できれば、鑑賞者の視点の位置および視線の方向はおよそ特定できる。鑑賞者の視点や視線を取得する手法は、ヘッドマウントディスプレイ１００を利用する場合に限らず様々に考えられることは当業者には理解されるところである。
【００３５】
次に画像生成装置２００は、視点の位置や視線の方向に対応するようにビュースクリーンを設定し、ビュースクリーン上の画素が原画像のどの位置に対応するかを計算する（Ｓ１２）。より詳細にはまず、視点の動きに応じて画像に表されているオブジェクトが変化しないように、すなわちオブジェクトの位置が仮想空間で固定されて見えるように、像を構成する各画素の移動量、移動方向を求めて原画像を変化させた補正画像を生成する。この際、補正画像を生成する平面（画像スクリーン）は原画像と同じ位置でもよいし、視点の動きに応じてＺ軸方向に平行移動させてもよい。
【００３６】
そのうえで、視線の方向に応じて補正画像全体に透視変換をかける。定性的には、このような一連の動きを逆に辿ることにより、ビュースクリーンの画素ごとに原画像の対応する位置を求められる。そして原画像における当該位置のカラー値をビュースクリーンの画素に反映させることにより表示画像を描画する（Ｓ１４）。これらの処理を左右の視点に対して行うことで、表示すべき視差画像を生成できる。当該視差画像のデータを、適宜レンズ歪み補正を施しヘッドマウントディスプレイ１００に出力することで（Ｓ１６）、仮想３次元空間への逆射影を介在させずに、視点の移動に対応するような視野で歪みのない立体画像を視認させることができる。
【００３７】
図８のＳ１２およびＳ１４の２段階の処理は、原画像自体を順次変化させて実現することも可能である。すなわち視点の移動により、一旦、原画像を変化させた補正画像を生成し、それをビュースクリーン上に透視変換することにより表示画像を描画できる。ただしこの場合、原画像に対して２度の変換処理が施されるため、表示画像の品質が維持されない可能性がある。そこで上述の第２の原画像を生成する代わりに、視点移動に応じた補正画像における各画素が、元は原画像のどの位置にあったかを表す画像マップを生成する。
【００３８】
そして当該画像マップをビュースクリーン上に射影してビュースクリーンとマップとの位置関係を特定したうえで、ビュースクリーン上の画素が原画像のどの位置に対応するかを確認して原画像からカラー値を取得する。このようにすることで、原画像に対する操作は１度ですむことになり、画質を原画像レベルに維持することができる。ここで補正画像における各画素が原画像のどの位置に対応するかを表す情報は、画像平面上で始点および終点が規定されるベクトル値となるため、以後、「画像参照ベクトル」と呼ぶ。また補正画像上で画素ごとに移動参照ベクトルの情報を保持する、画像平面に対応するマップを「画像参照ベクトルマップ」または単に「マップ」と呼ぶ。
【００３９】
図９は画像生成装置２００の内部回路構成を示している。画像生成装置２００は、ＣＰＵ（Central Processing Unit）２２２、ＧＰＵ（Graphics Processing Unit)２２４、メインメモリ２２６を含む。これらの各部は、バス２３０を介して相互に接続されている。バス２３０にはさらに入出力インタフェース２２８が接続されている。
【００４０】
入出力インタフェース２２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インタフェースや、有線又は無線ＬＡＮのネットワークインタフェースからなる通信部２３２、ハードディスクドライブや不揮発性メモリなどの記憶部２３４、ヘッドマウントディスプレイ１００などの表示装置へデータを出力する出力部２３６、ヘッドマウントディスプレイ１００からデータを入力する入力部２３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部２４０が接続される。
【００４１】
ＣＰＵ２２２は、記憶部２３４に記憶されているオペレーティングシステムを実行することにより画像生成装置２００の全体を制御する。ＣＰＵ２２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２２６にロードされた、あるいは通信部２３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部２３６に出力する。メインメモリ２２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００４２】
図１０は、本実施の形態における画像生成装置２００の機能ブロックを示している。なお図１０で示した画像生成装置２００の機能のうち少なくとも一部を、ヘッドマウントディスプレイ１００に実装してもよい。あるいは、画像生成装置２００の機能のうち少なくとも一部を、ネットワークを介して画像生成装置２００に接続されたサーバに実装してもよい。また画像生成装置２００を、ゲーム機やパーソナルコンピュータなどの情報処理装置の一部としてもよい。
【００４３】
同図は画像生成装置２００が有する機能のうち、主に表示画像を生成する機能に着目したブロック図を描いている。これらの機能ブロックは、ハードウェア的には、図９に示したＣＰＵ、ＧＰＵ、各種メモリなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００４４】
画像生成装置２００は、ヘッドマウントディスプレイ１００の位置や姿勢を取得する位置・姿勢取得部２５０、視点の位置や視線の方向に基づきビュースクリーンを制御するビュースクリーン制御部２５２、視点の位置に基づき画像参照ベクトルマップを生成する原画像操作部２５４、原画像のデータを格納する原画像データ記憶部２５６、画像参照ベクトルマップなどの中間データを格納する参照データ記憶部２６２、画像参照ベクトルマップを用いてビュースクリーンに表示画像を描画する表示画像生成部２６８、および、生成された表示画像のデータを出力する出力部２７０を備える。
【００４５】
位置・姿勢取得部２５０は、上述のような手段のいずれかにより鑑賞者の頭部の位置や姿勢を取得する。ビュースクリーン制御部２５２は、位置・姿勢取得部２５０により取得された頭部の位置や姿勢に基づいて鑑賞者の視点の位置や視線の方向を決定し、それに応じたビュースクリーンを設定する。ビュースクリーン上で描画される表示画像は、例えば図４で示した左目用画像６０ａおよび右目用画像６０ｂであり、ビュースクリーンも左目用と右目用を設定する。
【００４６】
原画像操作部２５４は、視点の位置に応じてオブジェクトの像を構成する画素の移動量および方向を計算する。そしてスクリーンにおける各画素が、原画像のどの位置に対応するかを表す画像参照ベクトルを生成する。さらに当該ベクトルをスクリーン上での画像平面の各画素に対応づけた画像参照ベクトルマップを、左右の目に対しそれぞれ生成する。
【００４７】
後述するように画像参照ベクトルを決定するには、視点の移動量および移動方向に加え、画像上で表されているオブジェクトの、仮想空間における距離Ｚｐが必要になる。距離Ｚｐは左右の原画像の視差Ｄｐから上述のように求められる。原画像データ記憶部２５６には、左右の原画像データ２５８と、それぞれの画像の画素ごとに視差値を保持する左右の視差値画像データ２６０が格納される。視差値画像を左右別々に用意するのは、上述したようにサブピクセル精度の情報を活用するためである。なお視差値画像データ２６０の代わりに、左右の画像の画素ごとに距離Ｚｐを保持する距離値画像データを準備してもよい。
【００４８】
原画像操作部２５４は、視点によっては左目用の画像参照ベクトルマップに右目用の原画像を参照する画素を設けたり、右目用の画像参照ベクトルマップに左目用の原画像を参照する画素を設けたりしてもよい。これは、左右の原画像のうち一方では死角になって像として表れていない箇所が、他方で表れている場合があるためである。視点の移動によってそのような死角部分を表示する必要が生じた場合、他方の画像からデータを取得することにより、そのような細部も高精度に再現することができる。原画像操作部２５４はさらに、視差値画像が保持する視差値を像の外側に拡張することにより、拡張分の画像参照ベクトルも準備してよい。詳細は後述する。
【００４９】
原画像操作部２５４はさらに、後述する再帰型フィルタを導入する場合に、過去に求められたカラー値を、画像参照ベクトルマップと同じ画像平面に表したカラーマップを生成する。画像参照ベクトルを用いて原画像から取得した現フレームのカラー値に、カラーマップから取得した、同じオブジェクトの表面を表す画素に対し前フレームで決定されたカラー値を合成することで、現フレームの該当画素のカラー値とする。これにより時間方向にフィルタを施し、オブジェクトの輪郭付近などに生じるちらつきを抑制する。
【００５０】
そのようにして決定した現フレームのカラー値のマップは、新たなカラーマップとして次のフレームのカラー値の決定に用いられる。原画像操作部２５４はまた、特定の条件において、鑑賞者の視点のＸ成分、Ｙ成分の変位量に応じて、画像参照ベクトルマップをＸ軸およびＹ軸方向に移動させる。これにより、鑑賞者の頭部が傾いていたり姿勢が崩れたりしても、できるだけ本来の高品質な画像を良好な状態で立体視できるようにする。
【００５１】
参照データ記憶部２６２は、原画像操作部２５４が生成した、左右の画像参照ベクトルマップ２６６を格納するほか、それを作成する段階で、画像参照ベクトルの書き込みの是非を判定するためのＺ値の情報を格納するＺバッファ２６４のための記憶領域を備える。参照データ記憶部２６２はまた、上述のカラーマップ２６７も格納する。表示画像生成部２６８は、ビュースクリーン制御部２５２が設定したビュースクリーンの各画素に対応する原画像データ２５８またはカラーマップ２６７の画素値を参照することにより、カラー値を決定し表示画像を描画する。すなわち画像参照ベクトルマップを透視変換によりビュースクリーン上にマッピングしたうえ、ビュースクリーン上の画素に対応するマップ上の位置で取得された画像参照ベクトルに基づき原画像を参照し、当該画素のカラー値を決定する。
【００５２】
あるいはオブジェクトの輪郭近傍など所定の条件を満たす画素については、画像参照ベクトルの代わりにカラーマップ２６７を参照してビュースクリーン上の画素値を決定する。これを左右の目のそれぞれに対して行うことで、左目用、右目用の表示画像を生成できる。なお原画像データ記憶部２５６に格納する原画像データ２５８を複数解像度のデータとし、透視変換による縮小率の度合いに応じて描画に用いる解像度を切り替えてもよい。
【００５３】
原画像の解像度を切り替えてテクスチャマッピングを行うことにより、画像のちらつきを抑える手法は、ミップマッピングとして知られている。ただし本実施の形態では、画像を分割してなる微小領域の縮小率ではなく、スクリーン上の画素が元の原画像から遷移するまでに経た視点の移動量に基づきＬＯＤ（Level of Detail）を計算し適切な解像度を選択する。これにより、透視変換によって原画像の微少領域がどのように変形しても、それとは独立に画素に対する適切な解像度を求めることができる。
【００５４】
出力部２７０は、表示画像生成部２６８が生成した左右の表示画像のデータを、ヘッドマウントディスプレイ１００に所定のレートで出力する。この際、表示画像にレンズ歪み補正を施したうえで出力してもよい。出力部２７０はさらに、メニュー画面用の音楽や各種コンテンツに含まれる音声などの音響データも出力してよい。
【００５５】
次に原画像操作部２５４が画像参照ベクトルを計算する手法について説明する。図１１は、視点の移動量のうちＺ軸方向およびＸ軸方向の移動量成分と、それに応じた原画像の画素の移動量との関係を説明するための図である。同図では図６で示した状態における視点８８ａ、８８ｂからＺ軸方向に−ｚ＿ｏｆｆ、Ｘ軸方向にｘ＿ｏｆｆだけ移動した後の視点を、右目の視点３３２を代表させて示している。
【００５６】
この移動に対し、Ｚ軸方向に画像スクリーン７６を−ｚ＿ｏｆｆだけ移動させ、その平面上での各画素に対し画像参照ベクトルを生成する。ただしＺ軸方向の視点の移動量が比較的小さい場合などは画像スクリーン７６を移動させなくてもよい。以後、移動後の画像スクリーンを「マップスクリーン」３３４と呼ぶ。画像参照ベクトルは、視点８８ｂから原画像をみたときと、移動後の視点３３２からマップスクリーン３３４を見たときで、仮想空間にあるオブジェクト７８が固定されて見えるときの画素の対応関係を表す情報である。例えば視点８８ｂから見て右目用の原画像のＸ軸方向の位置ｉｘＲに見える像を、マップスクリーン３３４上の位置ｔｘＲに移動させ、視点３３２から見れば、オブジェクト７８は固定されて見える。
【００５７】
なお基点となる視点８８ａ、８８ｂを結んだ線分の中点を通るＺ軸方向の線と画像スクリーン７６との交点を、左目用、右目用に関わらず画像の原点Ｏとする。まず視点８８ｂのＺ軸方向の動きを取り出して考える。このとき元の視点８８ｂと画像スクリーン７６との関係を維持したまま、両者をｚ＿ｏｆｆだけＺ軸の負の方向に平行移動することにより、移動後の視点３３０とマップスクリーン３３４が得られる。一方、オブジェクト７８は固定されるため、視点のＺ軸方向の動きにより、それを見る視線は実質上、Ｘ軸方向に移動していることになる。このときの移動量をｇｘとする。
【００５８】
三角形の相似により
b : gx = Scp : z_off
である。したがって移動量ｇｘは次のように求められる。
gx = b * z_off / Scp
【００５９】
一方、スクリーンをｚ＿ｏｆｆだけ移動させたことによる、画像スクリーン７６上の位置ｉｘＲに対応するマップスクリーン３３４上の位置ｉｘＲ２は次のように求められる。
ixR - ixR2 : z_off = b : Scp
よって
ixR2 = ixR - b * z_off / Scp = ixR - gx
【００６０】
上述のｇｘに、さらに最終的な視点３３２へのＸ軸方向の移動分ｘ＿ｏｆｆを考慮すると、マップスクリーン３３４上の位置ｉｘＲ２からの移動量ｄｘ２は次のように求められる。
dx2 : x_off + gx = Zp - z_off : Scp + Zp - z_off
よって
dx2 = (x_off + gx)*(Zp - z_off) / (Scp + Zp - z_off)
【００６１】
ｚ＿ｏｆｆおよびｘ＿ｏｆｆの視点の移動による、画像スクリーン７６上の位置ｉｘＲに対応するマップスクリーン３３４上の位置ｔｘＲを上述のｄｘ２を用いて表すと、次にようになる。
txR = ixR2 + dx2 = ixR - gx + dx2
すなわちｔｘＲとｉｘＲとの差は、原画像におけるオブジェクトの像の位置、原画像に与えられているオブジェクトの視差値（または画像スクリーンまでの距離）、および視点の移動量に依存する。
【００６２】
左目の視点の移動についても同様に計算でき、次のようになる。
gx = a * z_off / Scp
ixL2 = ixL +gx
dx2 = (x_off - gx)*(Zp -z_off) / (Scp + Zp - z_off)
txL = ixL2 + dx2 = ixL + gx + dx2
【００６３】
ここでｉｘＬ、ｉｘＬ２、ｔｘＬは、画像スクリーン７６上での左目用の原画像における水平方向の位置、画像スクリーンをｚ＿ｏｆｆだけ移動させたときの対応する位置、左の視点がｚ＿ｏｆｆ、ｘ＿ｏｆｆだけ移動してもオブジェクト７８を変化させないためのマップスクリーン３３４上の位置である。
【００６４】
図１２は、視点の移動量のうちＺ軸方向およびＹ軸方向の移動量成分と、それに応じた原画像の画素の移動量との関係を説明するための図である。図１１と座標軸の向きが異なり、図の横軸をＹ軸としている。つまり仮想空間を横から見た状態であるため、両目の視点８８は１つに重なっている。計算手法は基本的に図１１で説明したのと同様である。すなわち画像スクリーン７６における原画像のＹ軸方向の位置ｉｙに見える像を、オブジェクト７８が固定されて見えるように、マップスクリーン３３４上の位置ｔｙに移動させる。
【００６５】
同図ではｔｙ近傍の図を別途、拡大して示している。まず視点８８がＺ軸方向に−ｚ＿ｏｆｆだけ動いたことによる、視線のＹ軸方向の移動量ｇｙは次のように求められる。
gy = - iy * z_off / Scp
ここで負の符号がつくのは、図示する例ではｉｙが原点Ｏより下の負の領域にあるためである。一方、スクリーンをｚ＿ｏｆｆだけ移動させたことによる、画像スクリーン７６上の位置ｉｙに対応するマップスクリーン３３４上の位置ｉｙ２は次のように求められる。
iy2 = iy - iy * z_off / Scp = iy + gy
この演算は除算を含むが、Ｓｃｐは定数のため全体の処理に対して一回だけ割り算を実行しておけばよい。
【００６６】
上述のｇｙに、さらに最終的な視点３３２へのＹ軸方向の移動分ｙ＿ｏｆｆを考慮すると、マップスクリーン３３４上の位置ｉｙ２からの移動量ｄｙ２は次のようになる。
dy2 = (y_off + gy)*(Zp - z_off) / (Scp + Zp - z_off)
ｚ＿ｏｆｆおよびｙ＿ｏｆｆの視点の移動による、画像スクリーン７６上の位置ｉｙに対応するマップスクリーン３３４上の位置ｔｙを上述のｄｙ２を用いて表すと、次にようになる。
ty = iy2 + dy2 = iy + gy +dy2
この計算は、左右どちらの画像でも同じである。なおｄｙ２の演算における（Ｓｃｐ＋Ｚｐ−ｚ＿ｏｆｆ）による除算は、一般的な透視変換処理のパースペクティブ除算に相当するものであることを指摘しておく。
【００６７】
このようにして、視点の移動量の各成分（ｘ＿ｏｆｆ，ｙ＿ｏｆｆ，ｚ＿ｏｆｆ）に応じた、画像参照ベクトルマップ上の位置（ｔｘ，ｔｙ）と原画像上の位置（ｉｘ，ｉｙ）との対応関係を少ない演算量で導出できる。なお左右の画像におけるＸ軸方向の位置ｔｘＲおよびｔｘＬをｔｘ、ｉｘＲおよびｉｘＬをｉｘと総称している。
【００６８】
次に、左右の画像参照ベクトルマップの一方において、他方の原画像を参照する場合の画像参照ベクトルの計算手法を説明する。上述のとおり左右の原画像には、取得時には死角になり像として表れていないが、視点の移動によって見えるようになる部分が存在し得る。原画像操作部２５４はそのような像を表現すべき画素に対し、他方の原画像を参照する画像参照ベクトルを生成することで、死角であった部分をより正確に描画できるようにする。このような技術を視差画像の相互参照と呼ぶ。
【００６９】
図１３は、視点の移動量のうちＺ軸方向およびＸ軸方向の移動量成分と、右目用の画像参照ベクトルマップにおいて左目用の原画像を参照する際の画素の移動量との関係を説明するための図である。計算にあたっての考え方は図１１で示したのと同様であるが、本来の始点であるｉｘＲに対応する、左目用の画像における位置ｉｘＬが始点となる点が異なる。
【００７０】
すなわち図１１と同様、右目の視点の移動に着目すると、ｚ＿ｏｆｆおよびｘ＿ｏｆｆの視点の移動による画像スクリーン７６上の位置ｉｘＲに対応するマップスクリーン３３４上の位置ｔｘＲは上述のとおり、
txR = ixR2 + dx2 = ixR - gx + dx2
である。右目用の原画像における位置ｉｘＲと、それに対応する左目用の原画像の位置ｉｘＬとは次の関係にある。
ixR = ixL + Ewosc
【００７１】
ここでＥｗｏｓｃは、視点８８ａ、８８ｂの間隔Ｅｗｐと、原画像における視差Ｄｐ＝ａ＋ｂから次にように与えられる。
Ewosc = Ewp - Dp
結果としてｔｘＲは、左目用の原画像上の位置ｉｘＬを始点とすると、次のように求められる。
txR = ixL + Ewosc - gx +dx2
【００７２】
なおＥｗｏｓｃの算出に用いる視差Ｄｐは、左目用の原画像の画素に対して与えられている、左目の視差値画像が保持する値である。左目の視点の移動についても同様に計算できる。すなわち画像スクリーン７６上の位置ｉｘＬに対応するマップスクリーン３３４上の位置ｔｘＬは
txL = ixL2 + dx2 = ixL + gx + dx2
であるから、右目用の原画像上の位置ｉｘＲを始点とすると、次のようになる。
txL = ixR - Ewosc + gx + dx2
【００７３】
ただしＥｗｏｓｃの算出に用いる視差Ｄｐは、右目用の原画像の画素に対して与えられている、右目の視差値画像が保持する値である。視点移動によるＹ軸方向の位置の移動は、相互参照しない場合と同様に、下記の通りとなる。
ty = iy2 + dy2 = iy + gy + dy2
以上の計算により、相互参照しない場合と同様に、画像参照ベクトルマップの各画素に対し画像参照ベクトルを設定できる。
【００７４】
上記は左右の原画像における相互参照の手法であるが、原画像を取得した際の左右のカメラのさらに外側を視点とする原画像を別途取得しておくことにより、元の左右の原画像の相互参照では補えなかった画素をさらに補うこともできる。ここで、外側の視点から取得した原画像を参照先とする手法を拡張参照と呼ぶ。
【００７５】
図１４は、拡張参照における画像参照ベクトルの計算手法を説明するための図である。この例では、元の左右の原画像を取得した際に想定された視点８８ａ、８８ｂのうち、右の視点８８ｂのさらに右側に、間隔Ｅｗｐをあけてカメラ３５０を設定し、第３の原画像を取得しておく。そして視点８８ｂにおいて死角となり右目用原画像で表されていなかった部分について、視点の移動により描画する必要が生じたら、当該第３の原画像を参照するように画像参照ベクトルを設定する。計算にあたっての考え方は図１３で示した相互参照の場合と同様であるが、左目用原画像におけるｉｘＬを始点とする代わりに、第３の原画像上の対応する位置ｉｘＲＥを始点とする。
【００７６】
すなわち図１１と同様、右目の視点の移動に着目すると、ｚ＿ｏｆｆおよびｘ＿ｏｆｆの視点の移動による画像スクリーン７６上の位置ｉｘＲに対応するマップスクリーン３３４上の位置ｔｘＲは上述のとおり、
txR = ixR2 + dx2 = ixR - gx + dx2
である。右目用の原画像における位置ｉｘＲと、それに対応する第３の原画像の位置ｉｘＲＥとは次の関係にある。
ixR = ixRE - Ewosc
【００７７】
ここでＥｗｏｓｃは、視点の間隔Ｅｗｐと、第３の原画像に対応して生成されている視差値画像における、位置ｉｘＲＥの画素に対応する視差Ｄｐから次にように与えられる。
Ewosc = Ewp - Dp
結果としてｔｘＲは、第３の原画像上の位置ｉｘＲＥを始点とすると、次のように求められる。
txR = ixRE - Ewosc - gx + dx2
【００７８】
左の視点８８ａのさらに左側に設置したカメラにより第４の原画像を取得しておき、左目用の表示画像の描画時に参照する場合も同様に計算できる。すなわち画像スクリーン７６上の位置ｉｘＬに対応するマップスクリーン３３４上の位置ｔｘＬは
txL = ixL2 + dx2 = ixL + gx + dx2
であるから、第４の原画像上の位置ｉｘＬＥを始点とすると、次のようになる。
txL = ixLE + Ewosc + gx + dx2
【００７９】
視点移動によるＹ軸方向の位置の移動は、相互参照しない場合と同様に、下記の通りとなる。
ty = iy2 + dy2 = iy + gy + dy2
以上の計算により、画像参照ベクトルマップの各画素に対し画像参照ベクトルを設定できる。
【００８０】
なお上述は、右の視点８８ｂのさらに右側、および左の視点８８ａのさらに左側に、それぞれ間隔Ｅｗｐをあけてカメラを設定した例を説明したが、これを拡張して間隔をｎ倍、すなわちｎ＊Ｅｗｐとした場合は、ｔｘＲ、ｔｘＬはそれぞれ次にように求められる。
txR = ixRE - Ewosc * n - gx + dx2
txL = ixLE + Ewosc * n + gx + dx2
【００８１】
ところで画像参照ベクトルは、これまで説明した、視点の移動に対する原画像上の位置（ｉｘ，ｉｙ）から画像参照ベクトルマップ上の位置（ｔｘ，ｔｙ）への変位（以後、「変位ベクトル」と呼ぶ）を逆に辿るベクトルである。ただし画像参照ベクトルの決定には、画像平面上での画素領域を考慮する必要がある。図１５は、変位ベクトルと画素領域の関係を模式的に示している。同図に示すマス目は、原画像および画像参照ベクトルマップの各画素領域を表す。ここで各画素を、領域の左上の位置座標を代表点として（ｉｘ，ｉｙ）＝（０，０）、（１，０）、（２，０）、・・といった整数値で表すとする。この場合、画素領域の中心の位置座標は（ｉｘ＋０．５，ｉｙ＋０．５）（ｉｘ，ｉｙ＝０，１，２，・・・）である。
【００８２】
（ａ）に示すように原画像における、ある画素３６０の中心の位置座標（ｉｘ＋０．５，ｉｙ＋０．５）を、視点の移動に応じて変位ベクトル（ｄｘ２，ｄｙ２）の分だけ変位させると、その位置座標は多くの場合、変位先の画素３６２の中心からずれる。この変位ベクトルのみから画素３６２の画像参照ベクトルを決定すると、ずれ量によって精度にばらつきが生じることが考えられる。そこでサブピクセル単位で周囲の変位ベクトルを考慮する。
【００８３】
具体的には（ｂ）に示すように、対象の画素３６０の中心の位置座標（ｉｘ＋０．５，ｉｙ＋０．５）からの変位に加え、当該中心から右方向に半画素分、下方向に半画素、右および下方向にそれぞれ半画素分だけ離れた点３６４ａ（ｉｘ＋１．０，ｉｙ＋０．５）、点３６４ｂ（ｉｘ＋０．５，ｉｙ＋１．０）、点３６４ｃ（ｉｘ＋１．０，ｉｙ＋１．０）からの変位を求める。すなわち変位ベクトルを４点に対し求め、その分だけ各点を変位させることにより変位後の位置座標を得る。さらに当該位置座標の小数を切り捨てれば、変位先の画素を示す整数値が得られる。なお変位ベクトルを取得する間隔は半画素分の長さに限らず、画素領域の一辺の長さより小さければよい。
【００８４】
図示する例では２点の変位先が画素３６２に重複している。この場合、Ｚ値を比較することによりどちらかを選択する。Ｚ値は原画像に対応する視差値画像から、原画像の画素ごとに求められ、変位ベクトルの算出にも用いられる。図１６は、画像参照ベクトルマップ上の各画素に対し画像参照ベクトルを決定する処理手順の概略を示すフローチャートである。まず画像参照ベクトルマップの画素のうち１つを基準画素として設定し（Ｓ１００）、その中心および近傍３点の合計４点について、視点の動きに応じた変位先を計算する（Ｓ１０２）。
【００８５】
変位先の画素が重複しているか否かを確認し（Ｓ１０４）、重複している場合はそれらのＺ値を比較する（Ｓ１０４のＹ、Ｓ１０６）。そしてより視点に近いＺ値を有する変位ベクトルの逆ベクトルを、当該変位先の画素の画像参照ベクトルとして書き込む（Ｓ１０８）。Ｓ１０４において変位先が重複していなければ、そのまま変位ベクトルの逆ベクトルを、当該変位先の画素の画像参照ベクトルとして書き込む（Ｓ１０４のＮ、Ｓ１０８）。なおＳ１０８における書き込み先は、以後の基準画素に対する計算で変位先の画素が重複した際、これもＺ比較によって上書きされることがあるため、画像参照ベクトルマップ用のバッファメモリとする。
【００８６】
原画像の全ての画素が基準画素とされていない間は（Ｓ１１０のＮ）、Ｓ１００からＳ１０８の処理を繰り替えし、全ての画素が基準画素として設定されたら処理を終了する（Ｓ１１０のＹ）。このようにサブピクセル単位で変位ベクトルを求め、それから画像参照ベクトルを選別すると、画素単位で変位ベクトルを求めそれを補間して画像参照ベクトルを決定するような手法と比較し精度が均一化する。上述のように０．５画素の距離にある変位ベクトルを確認する結果、画像参照ベクトルの参照先の位置の誤差は最大でも０．２５画素となり、精度も向上する。
【００８７】
このように画像参照ベクトルは、原画像上の画素中心とその近傍を始点として、視点の移動による変位先の画素を求めることによって得られる。そのような手順によれば、原画像では近接した始点でも変位ベクトルの終点が離間した結果、画像参照ベクトルが設定されない画素（以後「穴」と呼ぶことがある）が生じることが考えられる。これは視点の移動によって原画像の一部が画素レベルで引き延ばされることなどに起因する。上述のように、画素より細かい単位で変位ベクトルを求め、画素数より多くの終点を作り出すことにより穴の発生を抑えられるが、そのようにしても拡大などにより終点に該当しない画素、ひいては穴が生じる可能性がある。そこで原画像操作部２５４は、周囲の画素を利用して画像参照ベクトルを補間する。
【００８８】
図１７は、画像参照ベクトルの補間手法を説明するための図である。同図に示す画素配列において、太線枠で囲まれた画素に画像参照ベクトルの穴があるとする。この場合、最も単純には、周囲の画素に設定されている画像参照ベクトルの平均値により補間することが考えられる。ただし補間に用いる画像参照ベクトルは、視点の移動に基づく変位ベクトルから得られたものとし、補間によって得られたベクトルをさらに補間に用いることは避ける。
【００８９】
例えばターゲットとする太線枠の画素の上下左右の画素（画素Ｄ、Ｃ、Ｄ、Ａ、Ｂ）に、矢印で示すように画像参照ベクトルが与えられていれば、それら４つの画像参照ベクトルの平均ベクトルをターゲットの画像参照ベクトルとする。あるいはターゲットの画素に対する位置に応じて重みを変化させて平均化してもよい。例えば周囲の８画素のうち上下左右の画素（画素Ｄ、Ｃ、Ｄ、Ａ、Ｂ）に２倍の重みをつけて、Ａ〜Ｈの８画素の画像参照ベクトルを加重平均する。
【００９０】
あるいは画像参照ベクトルの方向性に応じて補間に用いる画素や重みを決定してもよい。例えば図示する例では、周囲の画素の画像参照ベクトルが全て水平に近くなっている。このことから当該部分が原画像から水平方向に引き延ばされたものであり、穴はそれによって生じたことが推定される。したがってこの場合、ターゲットの周囲の画素のうち、左右の画素Ａ、Ｂを用いて線形補間したり、それらの画素に、より大きい重みをつけて平均化したりすることにより、状況に応じた精度の高い補間を実現できる。
【００９１】
例えばターゲットの画素の上下左右の４画素の画像参照ベクトルの平均ベクトルを求め、それと画像の水平方向（Ｘ軸方向）とのなす角度θが−３０°＜θ＜３０°または１５０°＜θ＜２１０°のとき、左右の画素Ａ、Ｂの画像参照ベクトルを平均してターゲットの画像参照ベクトルとする。角度θが６０°＜θ＜１２０°または２４０°＜θ＜３００°のとき、上下の画素Ｄ、Ｃの画像参照ベクトルを平均してターゲットの画像参照ベクトルとする。角度θがそれ以外のときは上下左右の画素の画像参照ベクトルを平均してターゲットの画像参照ベクトルとする。
【００９２】
なお上述のような角度のしきい値や、それによって補間に用いる画素を選択するか重みを変化させるか、といった態様の組み合わせは様々に考えられる。鑑賞者の頭部は上下運動より水平運動であることが多く、結果として画素の変位も水平方向が多いと考えられる。したがって上述のように角度の判定を行わず、常に左右の画素の画像参照ベクトルを補間に用いるようにして、精度を維持しつつ処理を高速化してもよい。
【００９３】
本実施の形態ではこのように、視点の移動による画像の局所的な伸張が生じても、ベクトルを補間対象とすることにより、方向性に基づいた計算式の選択が可能である。また実際のカラー値に対する操作は、最終的に表示画像を描画する段階に限られるため、この補間処理が表示画像の品質に与える悪影響を抑えられる。例えば画像参照ベクトルを導入せず、直接カラー画像を補間する場合、このような方向性に基づく調整は行えない。
【００９４】
例えば一方向に引き延ばされた結果生じた穴であっても、カラー画像にはその情報がないため、引き延ばされた方向に関わらず同様の補間計算となる。その結果、余計な色が混じり、表示画像の品質にも悪影響を与え得る。画像参照ベクトルは視点の動きによる画素の移動を表しているという特性上、図１７に示すように画素単位で大きな変化が生じるものではない。結果として、たとえ方向性に関わらずターゲットの周囲の画素を補間に利用しても大きな誤差にはなりにくく、混色による画質の劣化も防止できる。
【００９５】
なお上述した補間手法は、変位ベクトル計算から導き出されたいわば正当な画像参照ベクトルが周囲の画素に与えられていることを前提としていた。一方、２画素以上が連続して穴となっている場合は、その周囲で補間でない画像参照ベクトルを探索し、当該ベクトルをそのまま補間に用いてもよい。例えば図１７において、ターゲットの周囲の８つの画素に探索の優先順位を規則づけておく。一例として画素Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈといった順序が考えられる。そしてその順で探索し、最初に検出された補間でない画像参照ベクトルをターゲットのベクトルとして採用する。いずれの補間手法にしても、画像参照ベクトルの生成段階ではカラー値が確定してないため、最終的にはサブピクセルの位置精度でカラー値を決定することができる。
【００９６】
図１８は、図８のＳ１２において原画像操作部２５４が画像参照ベクトルマップを生成する処理手順を示すフローチャートである。まずＺバッファおよび画像参照ベクトルマップのバッファを初期化する（Ｓ２０）。次に自己画像を参照先とする画像参照ベクトルを設定する（Ｓ２２）。ここで自己画像とは、右目用のマップについては右目用原画像、左目用のマップについては左目用原画像を指す。次に相互参照および拡張参照により自己画像以外の原画像を参照先とする画像参照ベクトルを設定する（Ｓ２４）。
【００９７】
Ｓ２２、Ｓ２４の処理においてＺバッファへの書き込みを並列して行う。次に、画像参照ベクトルの穴を補間する（Ｓ２６）。同図に示す処理を、左目用、右目用でそれぞれ行うことにより画像参照ベクトルマップが両目に対し完成する。なお視差値画像においてデータが保持されていない画素はオブジェクトが存在しないことになるため、そのような画素を指す画像参照ベクトルも存在しない。結果として画像参照ベクトルマップには、オブジェクトの像の外側などに、画像参照ベクトルマップが存在しない領域があってよい。
【００９８】
図１９は、図１８のＳ２２において、自己画像を参照先とする画像参照ベクトルを生成するためのＺバッファへの書き込み処理の手順を示している。この図は図１５で示したように、原画像に定めた基準画素と、その中心から０．５画素分ずれた３点を用いた一単位の処理を、ハードウェアの構成を考慮して示している。次の図１９も同様である。まずそれらの視差値に係るデータ３７０を取得し、それぞれのＺ値と、変位ベクトルによる変位先の画素の位置を求める（Ｓ３２）。基準画素の視差値は原画像データ記憶部２５６に格納された視差値画像データ２６０から読み出す。その他の３点の視差値は、基準画素と隣接する画素の視差値に基づき補間処理により求める。
【００９９】
データ３７０における「Ｖalｉｄフラグ」は、対応づけられた視差値の有効／無効を表す。上述のとおりオブジェクトが存在しない領域は本来、視差値も存在しないためＶａｌｉｄフラグは無効を示す。視差値が無効の場合、変位ベクトルの計算等、以後の処理も無効となる。Ｓ３２の処理は、一般的なピクセルシェーダを用いることにより、４点について並列に処理でき効率がよい。ただし処理を並列化すると、結果を出力する順序が定まらない。そのため、先に出力された変位先が後に出力された変位先と同じ画素であるか否かを確認し、そのようであれば視点に近い順にソートしていく（Ｓ３４）。
【０１００】
変位先の画素が重複していなければそのままとする。そして全ての結果が揃ったら、Ｚバッファのうち変位先の画素に、最も視点に近いＺ値を書き込む（Ｓ３６）。このとき不可分操作のうち「ＡｔｏｍｉｃＭｉｎ」命令を利用することにより、並列処理の出力順に関わらず最も視点に近いＺ値を一気に書き込むことができる。図１５のように画素幅より小さい距離にある点の変位ベクトルは、その変位先の画素が重複する可能性が高い。そのためシェーダ内でＺ比較を行うことにより余分な画素情報を効率的に排除でき、Ｚバッファ２６４へのアクセス回数を軽減できる。なおＺバッファ２６４には、参照先が自己画像であることを示す識別情報も書き込むことにより、相互参照や拡張参照のデータより優先されるようにする。
【０１０１】
図２０は、図１８のＳ２２において、自己画像を参照先とする画像参照ベクトルの設定処理の手順を示している。まず原画像に定めた基準画素と、その中心から０．５画素分ずれた３点の視差値に係るデータ３７０を取得し、それぞれのＺ値と、変位ベクトルによる変位先の画素の位置、および変位ベクトルの逆ベクトルである画像参照ベクトルを求める（Ｓ４０）。そして図１９のＳ３４と同様、変位先の画素が重複している場合はＺ値による結果のソートを行うことにより、変位先の画素ごとに書き込み候補の画像参照ベクトルを決定する（Ｓ４２）。
【０１０２】
そして以前の基準画素の処理により生成されたＺバッファ２６４における該当画素のＺ値と、書き込み候補の画像参照ベクトルに対するＺ値とを比較し（Ｓ４４）、書き込み候補の画像参照ベクトルのＺ値がＺバッファ２６４におけるＺ値と一致していれば、画像参照ベクトルマップ２６６の該当画素に当該画像参照ベクトルを書き込む（Ｓ４６）。図１８のＳ２４において相互参照および拡張参照時の画像参照ベクトルを設定する場合、自己画像の代わりにその他の画像に対し基準画素を定めることにより、基本的には図１９、２０で示したのと同様の手順で画像参照ベクトルを決定できる。
【０１０３】
ただしＺバッファの作成時に、すでに参照先が自己画像であることを示す識別情報が書き込まれている場合、当該画素には新たな書き込みは行わない。そして相互参照および拡張参照のＺ値を書き込んだ場合は、当該Ｚバッファに、参照先の画像の識別情報も書き込んでおく。そして画像参照ベクトルの書き込み時は、処理対象の画像の識別情報とＺバッファに書き込まれた識別情報が一致する場合にのみ書き込みを行う。このような処理により、画像参照ベクトルマップにおいて、自己画像の参照で埋まらなかった画素についてのみ、他の画像を参照先とする画像参照ベクトルを設定できる。
【０１０４】
次に画像参照ベクトルマップを用いて最終的な表示画像を生成する手法について説明する。図２１は、図８のＳ１４において、表示画像生成部２６８が画像参照ベクトルマップを用いて表示画像を生成する手順を示すフローチャートである。まず表示画像生成部２６８は、ビュースクリーン制御部２５２からその時点での視点の位置や視線の方向に応じたビュースクリーンの位置や姿勢を取得し、それに画像参照ベクトルマップをマッピングする（Ｓ７２）。そのうえで描画すべき対象画素を設定する（Ｓ７４）。
【０１０５】
そして対象画素に対応する画像参照ベクトルマップのサンプリング点を特定し、その位置における画像参照ベクトルを取得する（Ｓ７６）。次に、原画像のうちＳ７６で取得した画像参照ベクトルの示す位置のカラー値を取得し対象画素を描画する（Ｓ８０）なお原画像をミップマップとしている場合、参照先のミップマップレベルを決定づけるＬＯＤを算出し、当該ＬＯＤに対応するレベルの原画像からカラー値を取得する。表示画像の全画素が描画されるまで（Ｓ８２のＮ）、Ｓ７４〜Ｓ８０の処理を繰り返す。全画素が描画されたら処理を終了する（Ｓ８２のＹ）。同図に示す処理を、左右それぞれ行うことにより、左目用、右目用の表示画像を生成できる。
【０１０６】
図２２は表示画像、画像参照ベクトルマップ、および原画像の位置的関係を説明するための図である。（ａ）の点線で示した画素配列は表示画像３８０、網掛けされた画素配列は画像参照ベクトルマップ３８２の、それぞれ一部であり、位置の対応を示すように重ねて示している。なお画像参照ベクトルマップ３８２は透視変換により形状が歪んでいることがあり得るが、わかりやすさのために同図では各画素を正方形で表している。（ｂ）の画素配列は原画像３８６の一部である。
【０１０７】
表示画像３８０において、太線枠で示した画素を描画対象画素とすると、その中心の位置に対応する、画像参照ベクトルマップ３８２上の画素３８８内の位置をサンプリング点３８４とする。当該サンプリング点３８４における白抜き矢印で示した画像参照ベクトルは、例えばサンプリング点３８４を含む画素３８８と、それに隣接しサンプリング点３８４に近い３画素で構成される、濃い網掛けで示した２行２列の４画素の画像参照ベクトルに基づき決定する。基本的には、これら４つの画素の画像参照ベクトルを補間することにより決定できる。
【０１０８】
ただし４つの画像参照ベクトルが同じ原画像を参照先としていない場合、４画素のＺ値が大きく異なりオブジェクトの段差を跨いでいることが疑われるとき、その他、補間に適さない画像参照ベクトルが混じっている場合は例外として補間は行わない。そのようにしてサンプリング点３８４の画像参照ベクトルが求められたら、原画像３８６のうち当該画像参照ベクトルが指す位置をカラー値のサンプリング点３９０とする。そしてカラー値のサンプリング点３９０を含む２行２列の４画素を補間することにより、表示画像の描画対象画素のカラー値を決定する。
【０１０９】
このような処理において、画像参照ベクトルマップ３８２の隣接した画素が示す画像参照ベクトルの参照先が、原画像３８６においても近接している場合は、画像参照ベクトルの補間、および原画像におけるカラー値の補間が良好に機能し、精度の高いカラー値が得られる。一方、画像参照ベクトルの参照先が原画像３８６で離間していたり、Ｚ値が大きく異なる画素が隣接していたりすると、視点の僅かな移動によってカラー値が大きく変動し、表示時にちらつきの原因になる。
【０１１０】
そこで前フレームまでに決定されたカラー値を用いて現フレームのカラー値の変動を緩和する再帰型フィルタを導入する。図２３は、本実施の形態で導入する再帰型フィルタを説明するための図である。同図は鑑賞者３０２、マップスクリーン３００を俯瞰した様子を模式的に示している。いま鑑賞者３０２が矢印Ａのように移動したとする。このときこれまで説明したように、仮想空間でオブジェクト３０４が固定されて見えるように、マップスクリーン３００を矢印Ｂのように移動させつつ、オブジェクト３０４の像もスクリーン平面上で移動させる。ただしマップスクリーン３００自体の移動は必須ではない。
【０１１１】
これまで述べた態様では現時点での視点に対し、その時点のマップスクリーン上で画像参照ベクトルを決定し、それに従い原画像を参照することでカラー値を得た。再帰型フィルタを導入した場合は、前のフレームの視点に対し決定されたカラー値をカラーマップ２６７として保存しておく。当該前のフレームのカラー値には、その前のフレームのカラー値が含まれているため、結果としてカラーマップは、過去のカラー値の履歴を含む情報となる。原画像操作部２５４は、現時点での視点に対し原画像から得られたカラー値に、前フレームのカラーマップ２６７における対応する位置のカラー値を合成していくことで、現フレームのカラーマップを作成する。
【０１１２】
上述したように、同じオブジェクト３０４の像は、鑑賞者３０２の視点の移動とともに、マップスクリーン３００上で移動する。したがって前フレームのカラーマップ２６７上で参照する「対応する位置」とは、画像平面での同じ位置ではなく、移動前の同じオブジェクトの像の同じ箇所を表す位置である。現時点での視点に対し原画像から求めたカラー値をＮｅｗ＿Ｃｏｌｏｒ、前フレームのカラーマップ２６７における対応する位置のカラー値をＯｌｄ＿Ｃｏｌｏｒとすると、現フレームの最終的なカラー値Ｓａｖｅ＿Ｃｏｌｏｒを次のように決定する。
Save _Color = ratio * New_Color + (1-ratio) * Old_Color
【０１１３】
ここでratioは合成割合を示し、実験などにより良好な値を決定する。なお合成の演算手法は上式に限らず、時間が近いほど大きな割合で合成するなどでもよい。このようにしてカラーマップを作成したら、表示画像生成部２６８は、表示画像の画素に対応するカラーマップ上の位置を参照し、当該画素のカラー値を決定する。すなわちこの段階では、画像参照ベクトルを用いて原画像を参照する必要はなくなる。
【０１１４】
このようにすることで、補間対象の画素が変化するなどにより、その時点の視点のみから求められた画像参照ベクトルやカラー値が急激に変化しても、当該画素が表す像のそれまでのカラー値によって変化が緩和され、ちらつきの発生を抑えることができる。再帰型フィルタは全ての画素のカラー値の設定に導入してもよいし、ちらつきが生じる可能性の高い部分にのみ導入してもよい。前者の場合、表示画像の描画処理においてはカラーマップのみを参照すればよいことになる。
【０１１５】
一方、上述のように画像参照ベクトルやカラー値のサンプリングにおいて、近傍の画素が保持するデータによる補間が良好に機能している箇所については、画像参照ベクトルを用いて原画像を直接参照する方が元の色を鮮明に表すことができる。したがって、隣接する所定数の画素からなる領域（例えば補間に用いる４画素分の領域）において、画像参照ベクトルの終点またはＺ値に所定値以上の差がある場合や、異なる画像を参照先とする画素が存在する場合、当該領域に含まれる画素にのみ再帰型フィルタを適用してもよい。適用条件はそれらのうち１つのみとしてもよいし、２つ以上を採用してもよい。
【０１１６】
図２４〜２６は、再帰型フィルタを導入した場合のカラーマップの生成手順を模式的に示している。まず図２４は、カラーマップのうち、再帰型フィルタの適用対象外の画素のカラー値を決定する手順を示している。まず現時点での視点に対し生成された画像参照ベクトルマップ４０２における対象画素の画像参照ベクトルに基づき、原画像４０６を参照する（Ｓ２００）。そして参照先のカラー値を適宜フィルタリングしてカラー値を決定し、カラーマップ４０４の対応する画素に書き込む（Ｓ２０２）。すなわちこの場合、前フレームで生成されたカラーマップ４００は用いない。
【０１１７】
図２５は、カラーマップのうち、再帰型フィルタの適用対象の画素のカラー値を決定する第１段階の処理を示している。まず図２４と同様、現時点での視点に対し生成された画像参照ベクトルマップ４０２における対象画素の画像参照ベクトルに基づき、原画像４０６を参照する（Ｓ２０４）。さらに前フレームで生成されたカラーマップ４００における、対象画素に対応する位置を求め、参照する。すなわちカラーマップ４００が生成された前フレームから、現時点までの視点の移動に応じたオブジェクトの変位ベクトルを計算し、その逆ベクトルを辿ることで「対応する位置」が判明する。
【０１１８】
図２６は、図２５の後になされる、再帰型フィルタの適用対象の画素のカラー値を決定する第２段階の処理を示している。すなわち図２５のＳ２０４において原画像４０６の参照先から求めたカラー値をＮｅｗ＿Ｃｏｌｏｒ、図２５のＳ２０６において前フレームのカラーマップ４００の参照先から求めたカラー値をＯｌｄ＿Ｃｏｌｏｒとして、上式によりＳａｖｅ＿Ｃｏｌｏｒを求め、カラーマップ４０４の対応する画素に書き込む（Ｓ２０８、Ｓ２１０）。図２４〜２６の処理を、画像参照ベクトルマップ４０２の全画素を対象画素として繰り返すことで、現フレームのカラーマップ４０４が完成する。次のフレームの描画時は、当該カラーマップ４０４が前フレームのカラーマップ４００に置き換わる。
【０１１９】
図２７は表示画像生成部２６８が、再帰型フィルタを適用しない画素について表示画像の画素ごとにカラー値を決定する手順を模式的に示している。この場合、図２２で示したように、表示画像における画素４１０ごとに、画像参照ベクトルマップ４０２におけるサンプリング点を決定し（Ｓ２１２）、その周囲の画像参照ベクトルを補間して原画像４０６の参照先を特定する（Ｓ２１４）。そして当該参照先のカラー値をフィルタリングするなどして、表示画像における画素４１０のカラー値とする（Ｓ２１６）。
【０１２０】
図２８は表示画像生成部２６８が、再帰型フィルタを適用する画素について表示画像の画素ごとにカラー値を決定する手順を模式的に示している。まず図２７と同様、表示画像における画素４１０ごとに、画像参照ベクトルマップ４０２におけるサンプリング点を決定する（Ｓ２１８）。次に現フレームのカラーマップ４０４における、当該サンプリング点に対応する位置を参照する（Ｓ２２０）。そしてカラーマップ４０４におけるサンプリング点の周囲の画素を補間することにより、表示画像における画素４１０のカラー値を決定する（Ｓ２２２）。
【０１２１】
このような処理においてカラーマップ４００、４０４は、その時点での画像参照ベクトルマップに対応する画像平面上で生成される。したがって図２５のＳ２０６の処理、すなわち現フレームの画像参照ベクトルマップ４０２における位置から、前フレームのカラーマップ４００における対応する位置を求めるには、画像参照ベクトルマップ間での像の位置の変位を求める必要がある。
【０１２２】
図２９は、視点の移動量のうちＺ軸方向およびＸ軸方向の移動量成分と、それに応じた画像参照ベクトルマップ間での画素の移動量との関係を説明するための図である。同図は右目の移動について示しており、基点となる視点８８ａ、８８ｂ、移動後の右目の視点３３２、および当該移動による画像スクリーン７６からマップスクリーン３３４ａ上への画素の変位は、図１１で示したのと同様である。前フレームの画像参照ベクトルマップは、このマップスクリーン３３４ａ上で生成されるものとする。
【０１２３】
そして次のフレームの時刻までに、右目がさらにＺ軸方向に−ΔＺ、Ｘ軸方向にΔｘだけ移動したとすると、現フレームにおけるマップスクリーン３３４ｂは、前フレームのマップスクリーン３３４ａから、−ΔＺだけ移動する。すると、図１１の状態での画素の移動先ｔｘＲはさらにマップスクリーン３３４ｂ上での位置ｔｘＲ２に移動する。図では当該領域を拡大して右上に示している。
【０１２４】
まず、視点およびマップスクリーンがΔＺ移動したことによるＸ軸方向への移動量をΔｇｘとすると、三角形の相似により、
Δz : Δgx = Scp : Exp / 2 + x_off - txR
である。したがって移動量Δｇｘは次のように求められる。
Δgx = (Ewp /2 + x_off - txR) * Δz / Scp
【０１２５】
また、視点がＸ軸方向へ実質Δｇｘ＋Δｘだけ移動することによる、マップスクリーン３３４ｂ上での移動量をΔｄｘ２とすると、三角形の相似により、
Δgx + Δx : Δdx2 = Scp + Zp - z_off - Δz : Zp - z_off -Δz
である。従って移動量Δｄｘ２は次のように求められる。
Δdx2 = ( Zp - z_off -Δz )* ( Δgx + Δx )/ ( Scp + Zp - z_off - Δz )
【０１２６】
Δｄｘ２の始点は、マップスクリーンがΔｚだけ移動することで−Δｇｘ移動するため、最終的にｔｘＲからｔｘＲ２への変位量はΔｄｘ２−Δｇｘとなる。現フレームの画像参照ベクトルマップから前フレームのカラーマップを参照するには、当該変位量の正負を逆転させた−Δｄｘ２＋ΔｇｘだけＸ軸方向に変位させた位置を参照先とすればよい。
【０１２７】
左目についても同様の計算により、−Δｄｘ２＋Δｇｘに下式を代入することにより、参照先までのＸ軸方向の距離が得られる。
Δgx = -(Ewp /2 - x_off + txL) * Δz / Scp
Δdx2 = ( Zp - z_off -Δz )* ( Δgx + Δx )/ ( Scp + Zp - z_off - Δz )
【０１２８】
図３０は、視点の移動量のうちＺ軸方向およびＹ軸方向の移動量成分と、それに応じた画像参照ベクトルマップ間での画素の移動量との関係を説明するための図である。基点となる視点８８、移動後の視点３３２、および当該移動による画像スクリーン７６からマップスクリーン３３４ａ上への画素の変位は、図１２で示したのと同様である。このマップスクリーン３３４ａを前フレームのものとし、次のフレームの時刻までに、視点がさらにＺ軸方向に−ΔＺ、Ｙ軸方向にΔＹだけ移動したとする。このとき現フレームのマップスクリーン３３４ｂは、前フレームのマップスクリーン３３４ａから、−ΔＺだけ移動する。
【０１２９】
すると、図１２の状態での画素の移動先ｔｙはさらにマップスクリーン３３４ｂ上での位置ｔｙ２に移動する。図では当該領域を拡大して右上に示している。まず、視点およびマップスクリーンがΔＺ移動したことによるＹ軸方向への移動量をΔｇｙとすると、三角形の相似により、
Δz : Δgy = Scp : y_off - ty
である。したがって移動量Δｇｘは次のように求められる。
Δgy = ( y_off - ty ) * Δz / Scp
【０１３０】
また、視点がＹ軸方向へ実質Δｇｙ＋Δｙだけ移動することによる、マップスクリーン３３４ｂ上での移動量をΔｄｙ２とすると、三角形の相似により、
Δgy + Δy : Δdy2 = Scp + Zp - z_off - Δz : Zp - z_off -Δz
である。従って移動量Δｄｘ２は次のように求められる。
Δdy2 = ( Zp - z_off -Δz )* ( Δgy + Δy )/ ( Scp + Zp - z_off - Δz )
【０１３１】
Δｄｙ２の始点は、マップスクリーンがΔｚだけ移動することで−Δｇｙ移動するため、最終的にｔｙからｔｙ２への変位量はΔｄｙ２−Δｇｙとなる。現フレームの画像参照ベクトルマップから前フレームのカラーマップを参照するには、当該変位量の正負を逆転させた−Δｄｙ２＋ΔｇｙだけＹ軸方向に変位させた位置を参照先とすればよい。この関係は右目と左目で共通である。
【０１３２】
カラーマップ上の参照先を取得する別の手法として、カラーマップとともに前フレームの画像参照ベクトルマップを保存しておき、同じ画素の画像参照ベクトルの変化に基づき、前フレームの対応する画素位置を参照先として取得することが考えられる。ただしこの場合、参照先の原画像がフレーム間で異なる場合に例外処理を行う必要がある。また前フレームの画像参照ベクトルマップを保存する分の記憶領域がさらに必要となる。そのような観点から、図２９、３０に示すように仮想空間に基づく参照先の導出手法を選択している。
【０１３３】
これまで述べたようにして表示される画像は、オブジェクトを３次元空間で定義し、スクリーン平面に射影する態様と異なり、元々の情報が視差画像の２次元上のものである。そのため視点の移動量によっては、元の画像や拡張参照用の画像の画素のみでは表示画像の全ての画素を表現しきれなくなり、穴や隙間が表出する可能性がある。この場合、オブジェクトの像の輪郭が変形したり、画素が離れて浮いているように見えたりすることが考えられる。またエリアシングやちらつきが生じる場合もある。このことは、鑑賞者の頭部の傾きによっても生じる。
【０１３４】
図３１は、鑑賞者の頭部の傾きによる表示画像の変化例を模式的に示している。（ａ）のように鑑賞者４３２の頭部が直立し、その軸が表示画面４３０ａのＹ軸方向と一致しているときは、左右の表示画像においてオブジェクトの像はＸ軸方向に視差分だけずれた状態となる。この場合、元の視差画像を取得したときと同じ状況となり、オブジェクトは適性に立体視できる。一方、（ｂ）のように鑑賞者４３２の頭部が傾いていると、左右の表示画像はそれに応じた変位で生成されるため、ずれは表示画面４３０ｂのＸ軸方向とは異なる方向に生じる。
【０１３５】
このような変化においてオブジェクトの像に穴が生じたり、適正な立体視ができず酔いなどの不快感を与えたりすることがある。例えば鑑賞者が寝転んだ状態で画像を見ている場合、特にオブジェクトを回り込んで見たいという意図はなくても、視点の変化に対応するように表示画像が過分に変化してしまう。また人の特性として、頭部を直立させているつもりでも微妙に傾いていることが多い。それにより画像が適性に表示されないと、鑑賞者に違和感を与えることになる。換言すれば、本来の適正な画像を見るためには厳密に正しい姿勢でなければならない、ということになる。
【０１３６】
このような状況を改善するため、原画像操作部２５４は、好適なタイミングでマップスクリーンの位置をＸ軸およびＹ軸方向にも調整し、鑑賞者が意図しないような表示画像の過分な変化を抑制する。図３２は、視点の位置に応じてマップスクリーンの位置を調整する手法を説明するための図である。同図は両眼とマップスクリーンとの位置関係を斜視図で示している。マップスクリーン上には、左目用画像４４０ａと右目用画像４４０ｂが生成される。なお左目用画像４４０ａと右目用画像４４０ｂの実体は左右の画像参照ベクトルマップであるが、以後は左目用画像４４０ａと右目用画像４４０ｂと呼ぶ。
【０１３７】
一方、原画像操作部２５４には、これまで述べたように、原画像を取得したときのカメラ７０ａ、７０ｂ（図６を参照）からの、鑑賞者の視点８８ａ、８８ｂのＸ軸、Ｙ軸、Ｚ軸方向の変位量が逐次入力されている。図示するように、左の視点８８ａの各軸方向の変位量を（ｘ＿ｏｆｆ＿Ｌ，ｙ＿ｏｆｆ＿Ｌ，ｚ＿ｏｆｆ＿Ｌ）、右の視点８８ｂの各軸方向の変位量を（ｘ＿ｏｆｆ＿Ｒ，ｙ＿ｏｆｆ＿Ｒ，ｚ＿ｏｆｆ＿Ｒ）とする。これまで説明したように、Ｚ軸方向の変位量（ｚ＿ｏｆｆ＿Ｒ，ｚ＿ｏｆｆ＿Ｌ）に対しては、左目用画像４４０ａ、右目用画像４４０ｂを同じ方向に同じ量だけ変位させる。これにより鑑賞者が前に移動しても図１１〜１４で説明したような演算手法が破綻することなくオブジェクトの像を表すことができる。
【０１３８】
さらに上述したように、頭部の傾きなどによって生じる不具合を抑制するように、左目用画像４４０ａ、右目用画像４４０ｂを、視点の動きに応じてＸ軸方向、Ｙ軸方向に同じように移動させる。このときのＸ軸方向、Ｙ軸方向への変位量をそれぞれ、Ｘ＿Ａｖｅ＿ｏｆｆ、Ｙ＿Ａｖｅ＿ｏｆｆとすると、それらは次のように決定する。
X_Ave_off = ( x_off_R + x_off_L )/2
Y_Ave_off = ( y_off_R + y_off_L )/2
すなわち、両視点の変位量の平均値の分だけ、同方向に画像を移動させる。左目用画像４４０ａと右目用画像４４０ｂを同様に移動させるのは、原画像取得時の視錐台を維持するためである。
【０１３９】
このように画像を移動させるためには、図１１〜１４で説明した画素の変位の演算において、左右の視点のＸ軸方向、Ｙ軸方向の変位量（ｘ＿ｏｆｆ，ｙ＿ｏｆｆ）から画像の移動分を減算すればよい。すなわち左目用画像、右目用画像について別々に記載すると、次のようになる。
左目の視点の変位量：( X_off_L - X_Ave_off, Y_off_L - Y_Ave_off）
右目の視点の変位量：( X_off_R - X_Ave_off, Y_off_R - Y_Ave_off）
【０１４０】
画像の調整量である（Ｘ＿Ａｖｅ＿ｏｆｆ、Ｙ＿Ａｖｅ＿ｏｆｆ）を、視点の移動に伴い常時変化させると、オブジェクトの像の視差が正しくなくなり、鑑賞者に不快感を与えることがあり得る。したがって限定的かつ適切なタイミングにおいて調整量を更新することが望ましい。図３３は、画像生成装置２００の原画像操作部２５４が、観察者の頭部の位置に応じて画像の位置をＸＹ平面上で調整する処理手順を示すフローチャートである。このフローチャートは、図８で示した処理手順により表示画像が出力されている状態で、それと並行して実施する。
【０１４１】
そのような状態において、調整を実施するための所定の条件を満たすかどうかを監視する（Ｓ３００）。ここで所定の条件とは、観察者がそのような指示入力をした場合、複数の静止画を切り替えて表示する態様においてその切り替わりのタイミング、動画を表示する態様においてシーンの切り替わりのタイミングなどが考えられる。観察者の指示入力を条件とする場合は、図示しない入力装置の所定の入力手段に当該指示入力のための機能を割り付けるなど、一般的な入力方法のいずれを利用してもよい。
【０１４２】
この場合、位置・姿勢取得部２５０は、当該入力装置からの信号も取得し、原画像操作部２５４に供給する。観察者の意思以外を条件とする場合は、好適には上述のとおり画像の移動が目立たないようなタイミングとする。当該タイミングは、原画像データ２５８に含めておいた、画像の内容に係るタイムライン情報などを参照して、原画像操作部２５４が適宜決定してもよい。あるいは原画像操作部２５４は、鑑賞者の姿勢の変化を監視し、所定量以上の変化が生じた後、安定性が得られたと判定したタイミングを条件としてもよい。
【０１４３】
鑑賞者の姿勢の変化は、ヘッドマウントディスプレイに内蔵したモーションセンサの計測値から取得できる。表示装置を３Ｄテレビ受像器とする場合、鑑賞者を撮影する図示しない撮像装置を別途設け、撮影画像を一般的な手法により解析することにより姿勢の変化を取得してもよい。例えば鑑賞者が寝転がったなど大きな姿勢の変化を検出したら、変化後の姿勢が所定時間継続した時点で安定性が得られたと判定する。Ｓ３００の条件には、上述した例のうちいずれか１つを採用してもよいし、２つ以上を採用してもよい。条件が満たされないうちは、そのまま監視を継続する（Ｓ３００のＮ）。
【０１４４】
条件が満たされたら（Ｓ３００のＹ）、その時点での視点の、基点からの変位量（ｘ＿ｏｆｆ＿Ｒ，ｙ＿ｏｆｆ＿Ｒ）、（ｘ＿ｏｆｆ＿Ｌ，ｙ＿ｏｆｆ＿Ｌ）を取得する（Ｓ３０２）。そして左右の視点の変位量の平均値をＸ軸成分、Ｙ軸成分ごとに計算することで、画像の調整量（Ｘ＿Ａｖｅ＿ｏｆｆ、Ｙ＿Ａｖｅ＿ｏｆｆ）とする（Ｓ３０４）。そして以後の画像参照ベクトルの算出には、左右の視点の変位量から画像の調整量を減算した値を新たな変位量として用いる（Ｓ３０６）これにより実質的に、画像がＸＹ平面上で移動したことになり、以後はＳ３０２で変位量を得たときの視点が基点となる。
【０１４５】
Ｓ３０６の処理において１フレームで瞬間的に画像の位置を変化させると、鑑賞者が立体視の基準を見失い不快感を持つことがあり得る。そこでＳ３０６の処理を複数フレームに渡り徐々に実施することにより、画像の変化を緩やかにしてもよい。例えばＳ３００の条件が満たされてから調整が終了するまでにＭフレーム分の時間をかけるとする。このときｎフレーム目（ただしｎは１以上Ｍ以下の自然数）の調整量の割合ｒａｔｉｏをつぎのように設定する。
ratio = ( n / M)1/8
【０１４６】
割合ｒａｔｉｏを用いて、ｎフレーム目の左右の視点の変位量を次のように設定する。
左目の視点の変位量：(( X_off_L - X_Ave_off ) * ratio + X_off_L * (1-ratio),
(Y_off_L - Y_Ave_off ) * ratio + Y_off_L *(1-ratio))
右目の視点の変位量：(( X_off_R - X_Ave_off ) * ratio + X_off_R * (1-ratio),
(Y_off_R - Y_Ave_off ) * ratio + Y_off_R * (1-ratio))
条件を満たしたタイミングからＭフレーム目でratio=1となり、Ｓ３０４で求めた調整量分の調整が完了する。
【０１４７】
調整を完了させるフレーム数Ｍは、実験などにより適正値を設定しておいてもよいし、Ｓ３００で条件を満たした時点での視点の変位量などにより適応的に決定してもよい。例えばその時点での変位量が大きい場合、画像の調整量も大きくなるため、フレーム数Ｍを大きくして比較的長い時間をかけて調整を実施する。このように徐々に調整する場合、調整中であることを鑑賞者が認識できるようにしてもよい。例えば調整している期間において、その旨を示すアイコンを表示画像のいずれかの箇所に表示させてもよいし、表示対象のオブジェクトの色などの属性を変化させてもよい。
【０１４８】
鑑賞者の指示入力により調整を行う場合は特に、そのようにすることで指示入力が受け付けられていることを示し、鑑賞者に安心感を与えることができる。Ｓ３０６の処理により画像の位置調整が終了したら、Ｓ３００に戻り、再び所定の条件を満たすか否かを監視し、満たした場合はＳ３０２〜Ｓ３０６の調整処理を実施する。
【０１４９】
以上述べた本実施の形態によれば、左右の視差画像を用いて立体視を実現するシステムにおいて、あらかじめ生成された原画像を、視点の動きや方向に応じて変化させて表示画像とする。このような視点の移動を反映した変換には、原画像そのものを用いずに、原画像における位置との差分を示す画像参照ベクトルマップを用いる。これにより、原画像に対する変換操作は、最終的に表示画像の画素値を決定するときのみとなるため、原画像からの画質の劣化を抑えられる。
【０１５０】
このとき、現フレームに対し生成した画像参照ベクトルマップを用いて原画像から取得したカラー値に、それまでの時間において同じオブジェクトの像を表していた画素のカラー値を合成することにより再帰型フィルタを実現する。これにより、画像参照ベクトルのばらつきが大きかったり、Ｚ値の変化が大きかったり、別の原画像を参照していたりして不連続性が顕著な箇所において、微小な視点の変化で大きく画素値が変化したり戻ったりすることによるちらつきを抑えることができる。
【０１５１】
また画像表示時には、画像参照ベクトルマップを生成する画像平面を、視点の動きのＸＹ成分に応じて調整する。これにより、鑑賞者本人が気づかないような頭部の揺れや傾きがあったり、頬杖をついたり寝転んだりと姿勢が崩れていても、本来の高品質な画像を良好に立体視させることができる。すなわち基点となる視点を可変とすることで、適正な立体視を実現するために鑑賞者に許容される姿勢の幅を増やすことができる。この調整を、鑑賞者の指示入力に応じて行ったり、画像の内容が切り替わるタイミングに合わせて行ったりすることで、突然の変化に立体視の認識が追いつかず不快感を与えるのを防止できる。さらに調整を数フレーム分の時間をかけて実施することにより、調整による状況変化をシームレスに達成させることができる。
【０１５２】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１５３】
１００  ヘッドマウントディスプレイ、  ２００  画像生成装置、  ２２２  ＣＰＵ、  ２２４  ＧＰＵ、  ２２６  メインメモリ、  ２５０  位置・姿勢取得部、  ２５２  ビュースクリーン制御部、  ２５４  原画像操作部、  ２５６  原画像データ記憶部、  ２５８  原画像データ、  ２６０  視差値画像データ、  ２６２  参照データ記憶部、  ２６４  Ｚバッファ、  ２６６  画像参照ベクトルマップ、  ２６７  カラーマップ、  ２６８  表示画像生成部、  ２７０  出力部。
【産業上の利用可能性】
【０１５４】
以上のように本発明は、ゲーム装置、画像表示装置、画像再生装置、パーソナルコンピュータなど各種情報処理装置や、それらのいずれかを含む情報処理システムなどに利用可能である。
【図１】
2019026184.tif 000003
【図２】
2019026184.tif 000004
【図３】
2019026184.tif 000005
【図４】
2019026184.tif 000006
【図５】
2019026184.tif 000007
【図６】
2019026184.tif 000008
【図７】
2019026184.tif 000009
【図８】
2019026184.tif 000010
【図９】
2019026184.tif 000011
【図１０】
2019026184.tif 000012
【図１１】
2019026184.tif 000013
【図１２】
2019026184.tif 000014
【図１３】
2019026184.tif 000015
【図１４】
2019026184.tif 000016
【図１５】
2019026184.tif 000017
【図１６】
2019026184.tif 000018
【図１７】
2019026184.tif 000019
【図１８】
2019026184.tif 000020
【図１９】
2019026184.tif 000021
【図２０】
2019026184.tif 000022
【図２１】
2019026184.tif 000023
【図２２】
2019026184.tif 000024
【図２３】
2019026184.tif 000025
【図２４】
2019026184.tif 000026
【図２５】
2019026184.tif 000027
【図２６】
2019026184.tif 000028
【図２７】
2019026184.tif 000029
【図２８】
2019026184.tif 000030
【図２９】
2019026184.tif 000031
【図３０】
2019026184.tif 000032
【図３１】
2019026184.tif 000033
【図３２】
2019026184.tif 000034
【図３３】
2019026184.tif 000035
【国際調査報告】
2019026184.tif 000036
2019026184.tif 000037
2019026184.tif 000038
2019026184.tif 000039