(57)【要約】  画像描画装置は、三次元モデリング空間における背景立体モデルと、前景立体モデルとを合成した合成映像の立体視を実現する。テクスチャマッピング処理部は、背景画像を2以上の視点テクスチャに変換して、各視点テクスチャを三次元モデリング空間における背景立体モデルにマッピングし、ビューポート変換部では、視点テクスチャがマッピングされた背景立体モデルと、前景立体モデルとからビューポート画像を抽出する処理を、2以上の視点テクスチャのそれぞれについて実行する。立体視再生時における前景立体モデルの視差と、テクスチャ内オブジェクトの視差とを比較することにより、前景立体モデルと、テクスチャ内オブジェクトとの前後関係を判定し、判定結果に基づき、テクスチャ内オブジェクトの位置と、前景立体モデルの位置とを整合させる。
2012132237.tif 000002
【特許請求の範囲】
【請求項１】
三次元モデリング空間における背景立体モデルと、前景立体モデルとを合成した合成映像の立体視を実現する画像描画装置であって、
背景立体モデル及び前景立体モデルの形状を規定するモデリングデータにおける頂点座標を三次元モデリング空間における三次元座標に変換する座標変換部と、
背景画像データを2以上の視点テクスチャに変換して、各視点テクスチャを三次元モデリング空間における背景立体モデルにマッピングするテクスチャマッピング部と、
視点テクスチャがマッピングされた背景立体モデルと、前景立体モデルとからビューポート画像を抽出する処理を、2以上の視点テクスチャのそれぞれについて実行するビューポート変換部と、
前景立体モデル及び背景立体モデルを管理する管理部とを備え、
2以上の視点テクスチャはテクスチャ内オブジェクトを有し
前記管理部は、立体視再生時における前景立体モデルの視差と、テクスチャ内オブジェクトの視差とを比較することにより、前景立体モデルと、テクスチャ内オブジェクトとの前後関係を判定し、判定結果に基づき、テクスチャ内オブジェクトの位置と、前景立体モデルの位置とを整合させる操作を行う
ことを特徴とする画像描画装置。
【請求項２】
前記オブジェクトの位置を整合させる操作は、座標変換部が三次元モデリング空間における前景立体モデルの配置位置を、背景立体モデルから遠ざける位置に変更することでなされる
ことを特徴とする請求項１記載の画像描画装置。
【請求項３】
背景画像データから2以上の視点テクスチャへの変換は、背景画像データについてのデプス画像を取得して、当該デプス画像をベースにしたデプスイメージベースドレンダリングを実行することでなされ、
前記オブジェクトの位置を整合させる操作は、
デプス画像を補正して、補正後のデプス画像をベースにしたデプスイメージベースドレンダリングを背景画像データに対して施し、2以上のテクスチャを再生成することでなされる
ことを特徴とする請求項１記載の画像描画装置。
【請求項４】
前記オブジェクトの位置を整合させる操作は、ビューポート画像において前景立体モデルを構成する画素群のうち、テクスチャ内オブジェクトの奥行きよりも大きな奥行きをもたらすものに対してマスクを施し、残った画素を描画することでなされる
ことを特徴とする請求項１記載の画像描画装置。
【請求項５】
2以上の視点テクスチャは、背景デプス画像データを取得して、背景デプス画像データをベースにしたデプスイメージベースドレンダリングを実行することで生成され、
前記オブジェクトの位置を整合させる操作は、テクスチャ内オブジェクトをモデリングデータに変換して、変換後のテクスチャ内オブジェクトの形状を規定する三次元座標を、前景立体モデルを規定する三次元座標とともに奥行きバッファに格納し、デプステスト機能をオンにして、奥行きバッファにおける三次元座標に基づく照度計算を実行することでなされる
ことを特徴とする請求項１記載の画像描画装置。
【請求項６】
前記変換後のテクスチャ内オブジェクトを変換することで得られるモデリングデータにおける三次元座標のうちZ座標は、2以上の視点テクスチャのうち何れかの1つのものにおける画素と、他視点に対応する視点テクスチャにおける画素との視差に基づいて算出される
ことを特徴とする請求項５記載の画像描画装置。
【請求項７】
視線方向が変化した場合、ビューポート変換部は、何れか1つの視点テクスチャがマッピングされた背景立体モデル及び前景立体モデルから、変化後の視線方向に応じたビューポート画像の再抽出を行い、
再抽出で得られたビューポート画像に対して、背景デプス画像データに基づくデプスイメージベースドレンダリングを実行することにより2以上の視点ビューポート画像を得る
ことを特徴とする請求項１記載の画像描画装置。
【請求項８】
前記オブジェクトの位置を整合させる処理は、前景立体モデルの形状を規定する頂点座標を操作することで前景立体モデルに対して幾何学変換を施す処理である
ことを特徴とする請求項１記載の画像描画装置。
【請求項９】
ビューポート画像の抽出は、三次元モデリング空間における視点位置に応じてなされ、
前記オブジェクトの位置を整合させる処理は、視点位置を変更することでなされる
ことを特徴とする請求項１記載の画像描画装置。
【請求項１０】
前景立体モデルにおける視差とは、
前景立体モデルの座標Ｓが、左目ビューポート上の座標SLに配置され、右目ビューポート上の座標SRに配置されると仮定した場合において、点SL、点SRの間で発生する視差PSのことであり、下記の数式（１）で表され、
数式（１）
PS=２p*（Sz-D）/Sz
Szは、ビュー座標系における前景画像の奥行き方向の座標であり、Dは、カメラからディスプレイまでの距離、2pは、左目用カメラと、右目用カメラとの距離である
ことを特徴とする請求項１記載の画像描画装置。
【請求項１１】
テクスチャ内オブジェクトの視差とは、背景立体モデルの内側表面に貼りつけられたテクスチャ内オブジェクトの座標Bが、左目ビューポート上の座標（BLx、BLy、BLz)に配置され、背景立体モデルの内側表面に貼りつけられた背景画像データの座標Bが、右目ビューポート上の（BRx、BRy、BRz）に配置されると仮定した場合において、点BL、点BRの間で発生する視差PBのことであり、下記の数式（２）で表され、
数式（２）
PB=｛（D*BRx+p*（BRz-D））/BRz｝-｛（D*BLx-p*（BLz-D））/BLz｝
Dは、カメラからディスプレイまでの距離、pは、左目用カメラと、右目用カメラとの距離の半分である
ことを特徴とする請求項１記載の画像描画装置。
【請求項１２】
画像描画装置は、ユーザ操作に従って、地図上のカレント視点位置と、カレント視線方向とを判定する位置方向判定部と、
地図上のカレント視点位置に対応する地理的情報を用いて画像取得要求を作成し、画像収集サーバに送信することでストリートビューファイルのダウンロードを行うダウンロード手段とを備え、
画像収集サーバから送信されてくるストリートビューファイルは  画像取得要求に含まれる地理的情報と合致する撮影地属性を有しており、
前記背景画像データは、ダウンロードされたストリートビューファイルに存在する
ことを特徴とする請求項１記載の画像描画装置。
【請求項１３】
前記背景画像データは視点周囲画像データであり、画像取得要求における地理的情報に対応する地理的位置から周囲を見渡した場合の光景を表す
ことを特徴とする請求項１２記載の画像描画装置。
【請求項１４】
三次元モデリング空間における背景立体モデルと、前景立体モデルとを合成した合成映像の立体視を実現する画像描画方法であって、
背景立体モデル及び前景立体モデルの形状を規定するモデリングデータにおける頂点座標を三次元モデリング空間における三次元座標に変換する座標変換ステップと、
背景画像データを2以上の視点テクスチャに変換して、各視点テクスチャを三次元モデリング空間における背景立体モデルにマッピングするテクスチャマッピングステップと、
視点テクスチャがマッピングされた背景立体モデルと、前景立体モデルとからビューポート画像を抽出する処理を、2以上の視点テクスチャのそれぞれについて実行するビューポート変換ステップと、
前景立体モデル及び背景立体モデルを管理する管理ステップとを含み、
2以上の視点テクスチャはテクスチャ内オブジェクトを有し
前記管理ステップは、立体視再生時における前景立体モデルの視差と、テクスチャ内オブジェクトの視差とを比較することにより、前景立体モデルと、テクスチャ内オブジェクトとの前後関係を判定し、判定結果に基づき、テクスチャ内オブジェクトの位置と、前景立体モデルの位置とを整合させる操作を行う
ことを特徴とする画像描画方法。
【請求項１５】
三次元モデリング空間における背景立体モデルと、前景立体モデルとを合成した合成映像の立体視をコンピュータに実行させる画像描画プログラムであって、
背景立体モデル及び前景立体モデルの形状を規定するモデリングデータにおける頂点座標を三次元モデリング空間における三次元座標に変換する座標変換ステップと、
背景画像データを2以上の視点テクスチャに変換して、各視点テクスチャを三次元モデリング空間における背景立体モデルにマッピングするテクスチャマッピングステップと、
視点テクスチャがマッピングされた背景立体モデルと、前景立体モデルとからビューポート画像を抽出する処理を、2以上の視点テクスチャのそれぞれについて実行するビューポート変換ステップと、
前景立体モデル及び背景立体モデルを管理する管理ステップとを含み、
2以上の視点テクスチャはテクスチャ内オブジェクトを有し
前記管理ステップは、立体視再生時における前景立体モデルの視差と、テクスチャ内オブジェクトの視差とを比較することにより、前景立体モデルと、テクスチャ内オブジェクトとの前後関係を判定し、判定結果に基づき、テクスチャ内オブジェクトの位置と、前景立体モデルの位置とを整合させる操作を行う
ことを特徴とする画像描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
3Dモデルの合成技術の技術分野に属する。
【背景技術】
【０００２】
3Dモデルの合成技術とは、三次元モデリングデータによって定義された前景立体モデルを、背景画像が貼りつけられた背景立体モデルと共に表示する技術である。ここで背景立体モデルに貼付けられる背景画像には、ストリートビューがある。ストリートビューとは、様々な道路上の地点で撮影した３６０度パノラマ画像をサーバ上で管理し、任意地点の道路上からの風景を、WEBブラウザ等を通じてダウンロードして、３６０度の全周囲パノラマ画像を再生させるというものである。【０００３】
進行方向を示す矢印図形の前景立体モデルや、道路標識となる前景立体モデルをストリートビューに合成すれば、ユーザはストリートビューにおいてどちらに進行しようとしているのか、また、現在位置がどこなのかを把握することができる。そして、このグラフィカルユーザインターフェイスである前景立体モデルに対するユーザ操作に従い、ストリートビューを切り替えて表示すれば、対話性を向上させることができる。
ストリートビューについての先行技術としては、以下の特許文献１、２に記載されている技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１０-５３１００７
【特許文献２】特開２００５-１６５６１４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで近年の傾向としては、平面視ストリートビューに留まらず、立体視ストリートビューに三次元モデリングデータで定義された前景立体モデルを合成しようとする流れがある。立体視ストリートビューの実現法としては、三次元モデリング空間で定義された背景立体モデルに背景画像をテクスチャとして貼付け、予め定められた視点位置に、背景立体モデルを投影することでビューポート画像を得て、このビューポート画像を立体化するというものになる。こうすることで、全周囲を見渡すことができるような立体視ストリートビューを実現することができる。ここで、GUI部品となる前景立体モデルや貼付けのための背景立体モデルは、三次元モデリング空間で定義される。よってGUI部品である前景立体モデルの位置を三次元モデリング空間内で調整すれば、前景立体モデルと背景立体モデルとが干渉することはない。【０００６】
ところが、3D立体視ストリートビューの場合、3D仮想空間内における球面に奥行きが存在するだけでなく、立体モデルに貼付けるテクスチャにも奥行きが発生するため、三次元モデリング空間内で設定している奥行き方向の値と、実際にユーザに提供される奥行きが異なることが多々ある。【０００７】
つまりストリートビューの立体視化にあたっては、三次元モデリング空間における位置関係の調整では足りず、テクスチャ内に存在する客体が立体視効果により、画面から飛び出し、前景立体モデルと干渉し合うことも視野に入れねばならない。ここで、背景画像の絵柄に存在する客体であって、立体視再生時において奥行き感をもつものを"テクスチャ内オブジェクト"という。テクスチャ内オブジェクトの奥行きは、デプス画像における個々の画素の輝度に基づき定められるから、三次元モデリング空間とは座標のスケールが異なり、座標値の単純比較では、前景立体モデルと、テクスチャ内オブジェクトとの前後関係を判断することはできない。そのため、平面視ストリートビューと同様の方法で3D立体視ストリートビューを実現しようとすると、背景画像と重畳するCGオブジェクトの間で奥行き方向の整合性が矛盾する可能性があり、違和感のあるストリートビューになる恐れがあるという課題がある。【０００８】
既に、CGと実写ステレオ画像を合成させて、違和感のない立体視画像を生成する技術に関しては、特開２００５-１６５６１４（特許文献２）に記載されているが、実写ステレオ画像をテクスチャとして使用することまでは考慮されていない。【０００９】
合成の対象となる背景立体モデルは、ストリートビューが貼付けられた立体モデル、前景立体モデルがGUI部品であるとの仮定下で技術的課題を提示したが、この仮定は、上記技術的課題を説明するにあたって、身近な題材を選んだに過ぎず、本願で対象としている技術的課題は、上記の例であるケースに限定されない。上記技術的課題は、テクスチャに奥行き感がある立体モデルを他の立体モデルに合成する処理全般に発生し得るものであり、近い将来において、上記技術を工業製品に実用化しようとする際、本願の技術分野の当業者が必ず直面する技術的障壁である。【００１０】
本発明の目的は、球面モデルに貼付けられたテクスチャ内のオブジェクトが奥行き感をもつ場合でも、かかるテクスチャ内オブジェクトと、前景立体モデルとの合成を好適に行うことができる画像描画装置を提供することである。
【課題を解決するための手段】
【００１１】
かかる課題を解決するための画像描画装置は、三次元モデリング空間における背景立体モデルと、前景立体モデルとを合成した合成映像の立体視を実現する画像描画装置であって、
背景立体モデル及び前景立体モデルの形状を規定するモデリングデータにおける頂点座標を三次元モデリング空間における三次元座標に変換する座標変換部と、
背景画像データを2以上の視点テクスチャに変換して、各視点テクスチャを三次元モデリング空間における背景立体モデルにマッピングするテクスチャマッピング部と、
視点テクスチャがマッピングされた背景立体モデルと、前景立体モデルとからビューポート画像を抽出する処理を、2以上の視点テクスチャのそれぞれについて実行するビューポート変換部と、
前景立体モデル及び背景立体モデルを管理する管理部とを備え、
2以上の視点テクスチャはテクスチャ内オブジェクトを有し
前記管理部は、立体視再生時における前景立体モデルの視差と、テクスチャ内オブジェクトの視差とを比較することにより、前景立体モデルと、テクスチャ内オブジェクトとの前後関係を判定し、判定結果に基づき、テクスチャ内オブジェクトの位置と、前景立体モデルの位置とを整合させる操作を行う
ことを特徴とする。
【発明の効果】
【００１２】
前景立体モデルを立体視の対象とする場合に、前景立体モデルに与えられる視差と、テクスチャ内オブジェクトにおいて与えられる視差とを対比することで、テクスチャ内オブジェクトと前景立体モデルとの前後関係を判定するので、座標系の変換を必要とせずとも、テクスチャ内オブジェクトと前景立体モデルとの前後関係を好適に判断することができる。この結果により、前景立体モデルと、テクスチャ内オブジェクトとの前後関係の調整を図れば、テクスチャ内オブジェクトとの干渉がない好適なGUIを、立体視ストリートビュー上で実現することができる。【００１３】
ユーザ操作イベント、通信イベント等の外部イベントに基づき前景オブジェクトを移動・変形させる場合も、前景立体モデルと、テクスチャ内オブジェクトとの干渉が生じないような保障をもたらすことができる。よって、ストリートビューの再生時において、ユーザ操作に好適に追従するような立体視ストリートビューを実現することができる。【００１４】
ここで、この画像描画装置の発明に、別の発明特定事項を追加したり、また、この画像描画装置の発明の発明特定事項を上位概念のものから下位概念のものに置き換えることで、上記画像描画装置の発明に、更なる効果を奏させることができる。これら、発明特定事項の追加、発明特定事項の下位概念化のバリエーションには以下のものがあり、これらのバリエーションは、請求項２以下の従属請求項に請求項に区分けして記載されている。【００１５】
任意的であるが、前記オブジェクトの位置を整合させる操作は、座標変換部が三次元モデリング空間における前景立体モデルの配置位置を、背景立体モデルから遠ざける位置に変更することでなされてもよい。【００１６】
ストリートビューサービスで視点を移動させるにあたって遠くにあるビルが近づいてくれば、その接近に伴い前景立体モデルが手前側に退くという画面演出が可能になる。これにより、ストリートビューにおけるビルの動きに連動するような斬新な画面演出が可能になる。【００１７】
任意的であるが、背景画像データから2以上の視点テクスチャへの変換は、背景画像データについてのデプス画像を取得して、当該デプス画像をベースにしたデプスイメージベースドレンダリングを実行することでなされ、
前記オブジェクトの位置を整合させる操作は、
デプス画像を補正して、補正後のデプス画像をベースにしたデプスイメージベースドレンダリングを背景画像データに対して施し、2以上のテクスチャを再生成することでなされてもよい。【００１８】
前景立体モデルの奥行きを固定化して、テクスチャマッピングのためのテクスチャを再生成することにより背景画像を遠退けるので、前景立体モデルが前に進めば、背景が遠退いて、広い景色が見渡せるようになる画面演出が可能になる。これにより、他社製品との差別化が可能になる。【００１９】
任意的であるが、前記オブジェクトの位置を整合させる操作は、ビューポート画像において前景立体モデルを構成する画素群のうち、テクスチャ内オブジェクトの奥行きよりも大きな奥行きをもたらすものに対してマスクを施し、残った画素を描画することでなされてもよい。【００２０】
一般のコンピュータグラフィクス処理のCG処理におけるビューポート変換におけるマスク処理の延長線上で、テクスチャ内オブジェクトとの位置整合を図ることができ、ソフトウェア実装を容易にすることができる。【００２１】
任意的であるが、2以上の視点テクスチャは、背景デプス画像データを取得して、背景デプス画像データをベースにしたデプスイメージベースドレンダリングを実行することで生成され、
前記オブジェクトの位置を整合させる操作は、テクスチャ内オブジェクトをモデリングデータに変換して、変換後のテクスチャ内オブジェクトの形状を規定する三次元座標を、前景立体モデルを規定する三次元座標とともに奥行きバッファに格納し、デプステスト機能をオンにして、奥行きバッファにおける三次元座標に基づく照度計算を実行することでなされてもよい。【００２２】
一般のコンピュータグラフィクス処理におけるデプステストが指定された照度計算の延長線上で、テクスチャ内オブジェクトとの位置整合を図ることができ、ソフトウェア実装を容易にすることができる。【００２３】
任意的であるが、前記変換後のテクスチャ内オブジェクトを変換することで得られるモデリングデータにおける三次元座標のうちZ座標は、2以上の視点テクスチャのうち何れかの1つのものにおける画素と、他視点に対応する視点テクスチャにおける画素との視差に基づいて算出されてもよい。【００２４】
デプス画像に基づくデプスベースドレンダリングを行い、背景画像に対応する2以上の視点画像テクスチャにおける視差を求めることにより、テクスチャ内オブジェクトをモデリングデータに変換した場合の視差を導き出すことができる。【００２５】
任意的であるが、視線方向が変化した場合、ビューポート変換部は、何れか1つの視点テクスチャがマッピングされた背景立体モデル及び前景立体モデルから、変化後の視線方向に応じたビューポート画像の再抽出を行い、
再抽出で得られたビューポート画像に対して、背景デプス画像データに基づくデプスイメージベースドレンダリングを実行することにより2以上の視点ビューポート画像を得てもよい。【００２６】
座標変換、照度計算(テクスチャマッピング処理)をやり直さず、ビューポート変換をやり直すことで、テクスチャ内オブジェクトとの位置整合を図ることができる。これにより、ユーザ操作に迅速に追従した立体視表示が可能になる。【００２７】
任意的であるが、前記オブジェクトの位置を整合させる処理は、前景立体モデルの形状を規定する頂点座標を操作することで前景立体モデルに対して幾何学変換を施してもよい。【００２８】
ストリートビューにおける物体との位置関係に応じて前景立体モデルの形が変わるような画面演出が可能になる。【００２９】
任意的であるが、ビューポート画像の抽出は、三次元モデリング空間における視点位置に応じてなされ、
前記オブジェクトの位置を整合させる処理は、視点位置を変更することでなされてもよい。【００３０】
座標変換、照度計算(テクスチャマッピング処理)をやり直さず、CG処理におけるビューポート変換をやり直すことで、テクスチャ内オブジェクトとの位置整合を図ることができる。これにより、ユーザ操作に迅速に追従した立体視表示が可能になる。【００３１】
任意的であるが、前景立体モデルにおける視差とは、
前景立体モデルの座標Ｓが、左目ビューポート上の座標SLに配置され、右目ビューポート上の座標SRに配置されると仮定した場合において、点SL、点SRの間で発生する視差PSのことであり、下記の数式（１）で表され、
数式（１）
PS=２p*（Sz-D）/Sz
Szは、ビュー座標系における前景画像の奥行き方向の座標であり、Dは、カメラからディスプレイまでの距離、2pは、左目用カメラと、右目用カメラとの距離であってもよい。【００３２】
Szという三次元モデリング空間内の座標値さえあれば、D,Pという固定化されたパラメータを用いて前景立体モデルにおける視差を求めることができる。よってオブジェクトの前後関係の判定や位置調整に演算負荷を発生させることはない。【００３３】
任意的であるが、テクスチャ内オブジェクトの視差とは、背景立体モデルの内側表面に貼りつけられたテクスチャ内オブジェクトの座標Bが、左目ビューポート上の座標（BLx、BLy、BLz)に配置され、背景立体モデルの内側表面に貼りつけられた背景画像データの座標Bが、右目ビューポート上の（BRx、BRy、BRz）に配置されると仮定した場合において、点BL、点BRの間で発生する視差PBのことであり、下記の数式（２）で表され、
数式（２）
PB=｛（D*BRx+p*（BRz-D））/BRz｝-｛（D*BLx-p*（BLz-D））/BLz｝
Dは、カメラからディスプレイまでの距離、pは、左目用カメラと、右目用カメラとの距離の半分であってもよい。【００３４】
左目画像出力時におけるテクスチャ内オブジェクトの座標ＢLX,ＢLZと、右目画像出力時におけるテクスチャ内オブジェクトの座標ＢRX,ＢRZとを上記数式に適用すれば、固定化されたパラメータであるD,Pを用いることで、視差PBを算出することができる。【００３５】
任意的であるが画像描画装置は、ユーザ操作に従って、地図上のカレント視点位置と、カレント視線方向とを判定する位置方向判定部と、
地図上のカレント視点位置に対応する地理的情報を用いて画像取得要求を作成し、画像収集サーバに送信することでストリートビューファイルのダウンロードを行うダウンロード手段とを備え、
画像収集サーバから送信されてくるストリートビューファイルは  画像取得要求に含まれる地理的情報と合致する撮影地属性を有しており、
前記背景画像データは、ダウンロードされたストリートビューファイルに存在してもよい。写真ファイルに存在する地理的情報をキーワードとして背景画像の検索をサーバに行わせ、所望のストリートビューファイルを取得するので、画像描画装置がデジタルテレビに組み込まれる場合、デジタルテレビと、立体視カメラとを連携させた新規なサービスが可能になる。これにより、デジタルテレビと、立体視カメラとをセットで販売する場合に、競合商品との差別化が可能になる。【００３６】
任意的であるが、画像描画装置は、ユーザ操作に従って、地図上のカレント視点位置と、カレント視線方向とを判定する位置方向判定部と、
地図上のカレント視点位置に対応する地理的情報を用いて画像取得要求を作成し、画像収集サーバに送信することでストリートビューファイルのダウンロードを行うダウンロード手段とを備え、
画像収集サーバから送信されてくるストリートビューファイルは  画像取得要求に含まれる地理的情報と合致する撮影地属性を有しており、
前記背景画像データは、ダウンロードされたストリートビューファイルに存在してもよい。ユーザは、視点周辺画像に現れる範囲で、自由に視線を変化させることができ、追体験機能の充実化を図ることができる。
【図面の簡単な説明】
【００３７】
【図１】立体視グローバルビュー検索サービスの全体構成を示す。
【図２】ストリートビューの対象となる仮想空間を模式的に示す図である。
【図３】複数の背景画像が横並びに貼りつけられた球面モデルの内側表面を表す。
【図４】三次元モデリング空間において立体視再生時に作成される2つの球面モデルを示す。
【図５】球体の内側表面に貼りつけられた背景画像から多視点画像を作成する過程を示す。
【図６】左シフト後の全周囲画像、右シフト後の全周囲画像が貼りつけられた状態の球面モデルを示す。
【図７】左目用テクスチャ、右目用テクスチャの配置を示す。
【図８】前景画像と、背景画像との合成を示す。
【図９】追体験映像の一例を示す。
【図１０】ストリートビューナビの画面構成の一例を示す。
【図１１】実施の形態１における画像描画装置の入出力形態の一例を示す図である。
【図１２】画像描画装置の使用形態の一例を示す図である。
【図１３】実施の形態１における画像描画装置の内部構成を示すブロック図である。
【図１４】描画制御部５の内部構成を示す。
【図１５】全周囲画像の一例と、全周囲画像について作成されたデプス画像の一例とを示す。
【図１６】画像において座標(x,y)に存在する画素Pix(x,y)と、デプス画像において座標(x,y)に存在する画素depth(x,y)とを示す。
【図１７】画素レベルのシフトにより、左目用テクスチャ、右目用テクスチャにおいてどのような視差がもたらされるかを示す。
【図１８】左目用テクスチャ、右目用テクスチャが貼付けられた球面モデルが存在する三次元モデリング空間と、デプス空間とを対比して示す。
【図１９】ビューポートデプスと、左目ビューポート画像と、右目ビューポートデプス画像とを示す。
【図２０】オブジェクト管理部２５の内部構成を示す図である。
【図２１】ビューポートにおけるUIオブジェクトの投影像を説明するための図である。
【図２２】三次元モデリング空間の斜視図である。
【図２３】三次元モデリング空間内における左目用カメラCL、右目用カメラCR、投影範囲の設定の一例を示す。
【図２４】カメラCL,CRが配置されたX-Z平面を示す。
【図２５】三次元モデリング空間における左目用カメラCL、右目用カメラCRと、ビューポートとの関係を示す。
【図２６】テクスチャ内オブジェクトを構成する画素Bが、ビューポートにおいてどのように映じるかを示している。
【図２７】左目ビューポート，右目ビューポートに書き込まれたUIオブジェクトのうち、奥行きが最も深くなる先端部の視差が、テクスチャ内オブジェクトの視差よりも大きいケースを示す。
【図２８】左目用テクスチャ、右目用テクスチャが貼付けられた球面モデルを含む三次元モデリング空間、デプス空間を示す。
【図２９】UIオブジェクトの位置調整の過程を示す。
【図３０】テクスチャ再生成の過程を示す図である。
【図３１】マスクパターン再生成の過程を示す。
【図３２】幾何学変換の過程を示す。
【図３３】ストリートビュー再生手順を示すフローチャートである。
【図３４】視点位置変更時及び視線方向変更時におけるデプス空間の遷移を示す。
【図３５】前後関係を一致させるためのUIオブジェクトの操作手順を示すフローチャーである。
【図３６】実施の形態２における描画制御部の内部構成を表すブロック図である。
【図３７】実施の形態３における描画制御部の内部構成を示すブロック図である。
【図３８】左目ビューポート画像と、ビューポートデプスと基づきDIBRを実行し、右目ビューポート画像を生成する過程を示す。
【図３９】画像描画装置のハードウェア構成図である。
【図４０】GPUの内部構成を示す図である。
【図４１】球面モデルと、テクスチャとの対応付け、及び、テクスチャマッピングを実現するためのAPI呼出しの記述例である。
【発明を実施するための形態】
【００３８】
上記課題解決手段を具備した画像描画装置の発明は、ストリートビューを再生するためのデジタル家電機器として実施することができ、集積回路の発明は、当該デジタル家電機器に組込まれるシステムLSIとして実施することができる。画像描画方法の発明は、このデジタル家電機器で実現される時系列手順として実施することができる。画像描画プログラムの発明は、コンピュータ読み取り可能な非一時的記録媒体に記録され、デジタル家電機器にインストールされる実行形式プログラムとして実施することができる。画像描画装置の説明に先立ち、画像描画装置の使用環境である立体視グローバルビュー検索サービスの全体構成について説明する。
【００３９】
図１は、立体視グローバルビュー検索サービスの全体構成を示す。グローバルビュー収集サーバ１００１は、世界中から収集された背景画像を、デプスデータ、地形データと対応付けて格納しているサーバであり、クライアント装置からの要求に応じて視点周囲画像を、デプス画像、地形データと共に送信する。背景画像は、専用の撮影車両の走向中に撮影されたものである。デプスデータは、その撮影時に取得したランドマークの奥行きを示す。  更に視点周囲画像とは、グローバルビュー収集サーバ１００１に対して送信した画像取得要求における地理的情報に対応する地理的位置から周囲を見渡した場合の光景を表すものである。視点周囲画像は例えば90度、120度、180度、360度といった比較的広い視野を見渡せる画像であり、特に、360度の視野を見渡せる視点周囲画像をパノラマ画像または全周囲画像と称することもある。説明の便宜上、以降の説明において視点周囲画像は360度の視野を見渡せるパノラマ画像、つまり全周囲画像であると仮定する。この撮影車両は、複数のカメラを具備していて、複数のカメラで、車両が存在する場所を、縦４×横７の背景画像により表す。デプス画像は、デプスデータにおけるランドマークの奥行きを、画素の輝度によって表したものであり、背景画像の奥行きを表す。つまりデプス画像の個々の画素は、背景画像の個々の画素を奥行きを示す奥行き情報になる。
【００４０】
クライアント装置１００２は、デジタルテレビ等、ネットワーク対応の家電機器であり、サーバに対してダウンロード要求mg1を送信し、全周囲画像mg2、デプス画像mg3を受信する。この全周囲画像を用いて、3Dストリートビューを実行する。かかるダウンロード要求は、緯度、経度、標高の情報を含み地球上の任意の場所の全周囲画像の送信を要求することができる。
【００４１】
眼鏡１００３は、ユーザが立体視でのストリートビューの視聴を希望する場合に、ユーザによって着用される。ここでの立体視は、多視点画像群により実現されるものである。ここで多視点画像群とは、左目画像、右目画像、中央、右斜上画像、右斜下画像、左斜上画像、左斜下画像というように、2以上の視点に対応する視点画像によって立体視を実現する視点画像の集合体である。多視点画像群の全てのバリエーションについて説明を行うとすると説明が煩雑になるので、以降の説明において、多視点画像群は、必要最低限の視点画像の組み、つまり、左目画像、右目画像の組みからなるステレオ画像群であるとして進める。
【００４２】
図２は、ストリートビュー立体視システムを模式的に示す図である。本図の上半分はモデルが存在する仮想空間であり、下半分は、クライアント装置１００２、眼鏡１００３が存在する現実空間である。
【００４３】
まず仮想空間について説明する。仮想空間とは、立体モデルの幾何学形状を規定する三次元座標を配置するための座標系にて規定される三次元モデリング空間である。立体モデルの形状は問わない。円柱、円錐、三角錐、楕円体等、どのような形状の三次元モデルでもよいが、説明の便宜のため、以降の説明は、球面モデルとして説明を行う。立体モデルである球体の中心は、カメラの位置である。簡単のため、球面モデルは1つのみをえがいているが、立体視時には、左目用、右目用のそれぞれについての球面モデルが存在する。図中のカメラCLは、球面モデルの中心から右側にpだけ隔てた位置に配置されるカメラである。カメラCRは、球面モデルの中心から左側にpだけ隔てた位置に配置されるカメラである。これらカメラCL、CRは、左目撮影時、右目撮影行為時における球面モデルの中心位置になる。
【００４４】
この立体モデルの斜め上には、縦４×横７の背景画像を結合した全周囲画像が配置される。全周囲画像には、右目用の全周囲画像m1と、左目用の全周囲画像m2とがあり、右目用テクスチャと、左目用テクスチャとでは、三次元モデリング空間における配置位置が異なる。本図では、球面モデルの上半分のみを描いているが、実際は下半分も存在する。また全周囲画像についても、上半分のみを描いているが、実際は下半分も存在する。
【００４５】
次に球面モデルについて説明する。球体の内側表面には、右目用テクスチャの貼付け範囲m4、左目用テクスチャの貼付け範囲m5が存在する。球面モデルにおける貼付け範囲とは、球面モデルにおいて、4つ又は3つの交点にて規定されるグリッドのことである。かかるグリッドは、球面モデルの曲率を有し、球面モデルの極座標を頂点とした三角形ストリップの一部又は全部として定義される。テクスチャマッピングにあたっては、図形タイプを三角形ストリップとして、背景画像が格納されたテキストバッファ座標との対応付けをすることで、グラフィクス描画を実行する。テクスチャの手前には、表示面が存在し、この表示面にはビューポートmg6が定義される。ビューポートは、三次元モデリング空間のうち、表示に供される部分を規定するものである。このビューポートに投影される映像が、再生に供されることになる。ビューポートは、左目の投影範囲、右目の投影範囲が交差する場所に存在している。つまりビューポートは、左目用と、右目用とで共通の位置に配置される。
【００４６】
球面モデルの内側に貼付けられるテクスチャは全周囲画像であるから、３６０°の全周囲を見渡せることになる。三次元モデリング空間における球面モデルをメルカトル図形に展開すれば、全周囲画像になる。半球体における縦２×横７のグリッドの個数は、全周囲画像における縦２×横７の背景画像の個数と一致する。つまり全周囲画像における個々の背景画像をテクスチャに変換して、球面モデルの個々のグリッドに貼付けるというテクスチャマッピングを行う。
【００４７】
以上が仮想空間についての説明である。続いて、現実空間について説明する。
【００４８】
本図では、立体モデルである球体の真下にクライアント装置１００２と、眼鏡１００３を着用したユーザの顔とを描いている。クライアント装置１００２の表示画面は、球面モデル内のビューポートの真下に存在する。また眼鏡１００３は、カメラCL,CRの真下よりやや奥に存在する。これは、ユーザの右目、左目はカメラCL,CRの位置となるので、眼鏡１００３はこれの近くに配置せねばならないからである。
【００４９】
上述したように、カメラCL、CRの位置がユーザの右目、左目に該当し、ビューポートがクライアント装置１００２の画面に該当するから、クライアント装置１００２と、ユーザとの間に立体視画像が出現する。仮想空間において、家屋は平面的に表現されていたが、現実空間において家屋は、クライアント装置１００２の画面から飛出す形になっている。
【００５０】
図３は、球面内側に貼りつけられたテクスチャを、球面モデル中心から視聴した状態を示す。図３は、複数の背景画像が横並びに貼りつけられた球面モデルの内側表面を表す。図３では、正面には近代的な教会が配置され、右手側に滑り台が存在する。これらは球体の内側表面に貼りつけられたものであるから、断面円の中心にカメラを配置した場合、これを全周囲から取り囲むように背景画像が配置されることになる。この球面モデルに貼付けられたテクスチャは、地球上の緯度、経度、標高から定まる視点位置に伴い変化する。つまり画像描画装置は、視点位置の変更操作がユーザによってなされた場合、地球上の地理的情報（緯度、経度、標高等）から定まるカレント視点位置を更新して、更新後のカレント視点位置に合致した全周囲画像をダウンロードし、この全周囲画像を球面モデルに貼付けて、再描画を行う。
【００５１】
図２の球面モデルは、球面モデルの中心にカメラが存在していたが、これは平面視のためのカメラ位置であり、立体視のカメラ位置は異なる。立体視時には、球面モデル中心からpだけ隔てられた位置にカメラを配置することで球面モデルが2つ得られる。図４は、三次元モデリング空間において立体視再生時に作成される2つの球面モデルを示す。図４（ａ）は、左目用の球面モデルであり、横7枚の背景画像を横方向に結合した画像に対してDIBR(Depth Image Based Rendering、もしくはDepth Image Based Representations)を実行することで作成された左目画像が内側に貼付けられている。
【００５２】
図４（ｂ）は、（ａ）の画像に対してデプス画像をベースにしたデプスベースドレンダリングを実行することで作成された右目画像であり、横7枚の背景画像を横方向に結合した画像に対して、デプス画像をベースにしたデプスベースドレンダリングを実行することで作成された右目画像が内側に貼付けられている。
【００５３】
全周囲画像を構成する横７枚の画像を、画像A,B,C,D,E,F,Gとする。この画像A〜Gから右目用テクスチャ、左目用テクスチャをどのように作成するかについて説明する。図５は、この球体の内側表面に貼りつけられた背景画像から多視点画像を作成する過程を示す。（ａ）は、球体内側表面を分割することで得られた7つの分割領域に、全周囲画像を構成する横7枚の画像のうち、A、B、C、D、Eという5枚の背景画像をA→B→C→D→Eの順序で貼りつける一例を示す。図５（ａ）の画像A、画像B、画像C、画像D、画像Eについて説明する。画像AにおいてDIBRによるシフトで座標が変化する画素の集りを、AL、AM、ARとしている。画像BにおいてDIBRによるシフトで座標が変化する画素の集りを、BL、BM、BR、画像CにおいてDIBRによるシフトで座標が変化する画素の集りを、CL、CM、CRとしている。画像DにおいてDIBRによるシフトで座標が変化する画素の集りを、DL、DM、DR、画像EにおいてDIBRによるシフトで座標が変化する画素の集りを、EL、EM、ERとしている。これらの画素群は画像において"Ｖ"の形状をなしている。
【００５４】
左目用テクスチャの作成では、画像A〜Eを結合してDIBRを実行する。これにより左端部分の画素が、表示領域外になるから、図５（ａ）における画素集合BL,CL,DL,EL,FLを、隣接する画像である画像A,B,C,D,Eの右側の端部に追加する。この結果が、図５（ｂ）である。図５（ｂ）に示すように左目用テクスチャは、画素群AM,AR,BLを含む画像A(L)、画素群BM,BR,CLを含む画像B(L)、画素群CM,CR,DLからなる画像C(L)、画素群DM,DR.ELを含む画像D(L)、画素群EM,ER,FLを含む画像E(L)から構成されることになる。紙面上の都合から、図５では画像F、Gについては図示を省略しているが画像F、Gについても本図と同様の処理がなされる。
【００５５】
右目用テクスチャの作成では、画像A〜Eを結合してDIBRを実行する。これにより右端部分の画素が、表示領域外になるから、図５（ａ）における画素集合GR,AR,BR,CR,DRを、隣接する画像である画像A,B,C,D,Eの側の左側の端部に追加する。この結果が図５（ｃ）である。図５（ｃ）に示すように右目用テクスチャは、画素群GR,AL,Amを含む画像A(R)、画素群AR,BL,Bmを含む画像B(R)、画素群BR,CL,Cmからなる画像C(R)、画素群CR,DL,Dmを含む画像D(R)、画素群DR,EL,Emを含む画像E(R)から構成されることになる。
【００５６】
図６（ａ）は、図５（ｂ）の左シフト後の画素が球面内側に貼りつけられた場合のテクスチャを示す。図６（ｂ）は、図５（ｃ）の右シフト後の画素が球面内側に貼りつけられた場合のテクスチャを示す。
【００５７】
図７（ａ）は、図１の三次元モデリング空間において、左目用テクスチャ、右目用テクスチャと、ビューポートとの関係を示す。図７（ａ）は、左目用テクスチャの配置である。本図において、左目用カメラの視線ベクトルの先に、左目用テクスチャが配置され、左目用テクスチャが球面モデル内側に貼付けられる。これによりビューポートに該当する部分が表示に供されることになる。図７（ｂ）は、右目用テクスチャの配置である。本図において、右目用カメラの視線ベクトルの先に、右目用テクスチャが配置され、右目用テクスチャが球面モデル内側に貼付けられる。これによりビューポートに該当する部分が表示に供されることになる。
【００５８】
図８は、前景画像と、背景画像との合成を示す。（ａ）は、題材となる前景画像、これは近代的な教会を背にして新郎、新婦が向かい合っているという内容のスナップ写真である。この近代的な教会は、背景画像にも存在するので、教会の輪郭線形状は、前景画像及び背景画像の共通の特徴となる。図８（ｂ）は、前景画像と、背景画像とのマッチングを示す。かかるマッチングにより、背景画像、前景画像の対応関係を示す変換行列ができるから、かかる行列に従い、前景画像のデプス画像を変換した上でDIBRを行えば背景画像と違和感がない合成画像が得られることになる。
【００５９】
この図８の合成を前提として、追体験が可能になる。図９は、画面合成の一例を示す。視線vw１は、眼鏡１００３によって右目が遮光された場合の映像の入射を示す。視線vw2は、眼鏡１００３によって左目が遮光された場合の映像の入射を示す。このvw１により左目画像が視聴されることになる。またvw2により右目画像が視聴されることになる。眼鏡１００３を着用することによりユーザは、右目画像、左目画像を交互に視聴することになり、立体視画像が再生される。図９の画像は、変換行列に従いビューポートに得られた前景画像と、背景画像とを合成することで得られる立体視画像である。球面体内部に貼りつけられた複数の背景画像を背にして人物が表示されるので、臨場感が高い立体視映像が得られる。以上のように、写真のグローバル位置に合致した全周囲画像をサーバから取得すれば、その写真に合致した全周囲画像に写真を合成することができる。
【００６０】
またストリートビューには、UIオブジェクトを合成することができる。図１０は、UIオブジェクトが合成されたストリートビューを示す。方向ナビuiは、カレントの視線方向を視覚的に表示する。インディケータir1,ir2は、カレントの視点位置が存在する地名(loss-Less City central park)や建造物の名称(CABAC church)を表す。十字ボタンbn2は、カレント視点位置を変更させる場合において、その進行方向の選択を受け付けるものである。ズームアップボタンbn3は、視点位置、視線方向をそのままにして、表示内容の拡大・縮小操作を受け付けるものである。アングルボタンbn4は、カレント視線方向の右旋回、左旋回の指定を受け付けるものである。これらのGUIは、リモコンのキーに割り当てられるので、リモコンに対する操作により、ストリートビューにおける移動、回転といった制御が可能になる。以上がグローバルビュー検索サービスについての説明である。
【００６１】
(実施の形態１)
実施の形態１は、GUI部品のオブジェクトであるUIオブジェクトと、テクスチャ内オブジェクトとの干渉を回避する改良に関する。図１１は、実施の形態１における画像描画装置の入出力形態の一例を示す図である。
【００６２】
画像描画装置１０１は入力として、全周囲画像と対応するデプス画像、および、UIオブジェクトを受け取り、左目用と右目用の画像出力を行う。出力される左目画像、右目画像は立体視対応ディスプレイ１０３にて同期して画面上に描画され、視聴者には立体画像として知覚される。１地点からの全周囲画像は、縦４枚、横７枚の計２８枚の部分画像から構成される。各部分画像１枚は縦５１２画素、横５１２画素の画素数を持つ。デプス画像は、立体空間における対象物の奥行きを示すものである。各画素の輝度によって、色がより黒い部分が立体空間上、奥に位置する物体であり、色が白い部分が、立体空間上手前に存在していることを示している。
【００６３】
画像描画装置１０１は、各部分画像毎にデプス画像を適用し、入力される部分画像数と同じく、それぞれ28枚の右目用画像と左目画像を生成する。生成された右目用画像、左目画像はそれぞれ三次元モデリング空間の球面上に貼り付けられ、同空間上にUIオブジェクト配置する。三次元モデリング空間上、球面の中心から球面側を見た範囲を、左目用と右目用で同期して画面上に出力することで、全周囲の立体画像を表示する。
【００６４】
（画像描画装置の使用形態）
図１２は、画像描画装置の使用形態の一例を示す図である。ユーザはリモコン１０２を用いて、視聴したい場所やアングルを指定し、立体視対応ディスプレイ１０３に出力される映像を、液晶シャッターメガネ１０４を通して視聴することで、任意地点・アングルの全周囲画像を立体的に知覚することができる。立体視対応ディスプレイ１０３は画像描画装置１０１と接続されているか、もしくは画像描画装置１０１の機能を内蔵している。図１２における使用形態の例では、立体視対応ディスプレイ１０３が画像描画装置１０１の機能を内蔵しており、立体視対応ディスプレイ１０３はインターネットを経由しサーバ１０５と接続されている。立体視対応ディスプレイ１０３は、ユーザが指定した場所に対応する全周囲画像とデプス画像をダウンロードし、右目用画像と左目画像を生成し同期して画面上に表示する。
【００６５】
図１３は、実施の形態１における画像描画装置の内部構成を示すブロック図である。本図に示すように、画像描画装置１０１は、UO検知部１、位置方向判定部２、ネットワークインターフェース３、ローカルストレージ４、描画制御部５、左目プレーンメモリ６、右目プレーンメモリ７、及び出力インターフェース８から構成される。
【００６６】
（UO検知部１）
UO検知部１は、ユーザのリモコン操作、キーボード操作、マウス操作などを検知し、対応するキーコード（上下左右キー押下、右クリック押下などのユーザ操作を示すコード）を位置方向判定部２に送る。
【００６７】
（位置方向判定部２）
位置方向判定部２は、ユーザ操作検知部１から受け取った操作コードを元に、地図上のどの位置の全周囲画像を、どの視点方向で見た画像を表示すべきかを判定する。地図上の位置はカレント視点位置であり、緯度と経度を含む地理的情報で特定される。また視点方向はカレント視線方向であり、水平角度と垂直角度で特定される。水平角度は北を０度とし時計回りに０度から３６０度の範囲で表現される。垂直角度は地平線を０度、真上が９０度、真下が-９０度として、-９０度から９０度の範囲で表現される。位置方向判定部２は、受け取った操作コードを元に、これら緯度、経度、水平角度、垂直角度を特定し、特定された値を描画制御部５へ渡す。
【００６８】
（ネットワークインターフェース３）
ネットワークインターフェース３は、要求送信部、応答受信部を具備している。要求送信部は、地球上のカレント視点位置を指定した画像取得要求をグローバルビュー収集サーバ１００１に送信する。ここで要求送信部は、地図画像に対するユーザ操作がなされた場合、ユーザ操作で指定された位置に対応について地理的情報を用いてカレント視点位置を指定する画像取得要求を作成して、グローバルビュー収集サーバ１００１に送信する。応答受信部は、画像取得要求に対する応答として、グローバルビュー収集サーバ１００１から送信されてくるストリートビューファイルを受信する。グローバルビュー収集サーバ１００１から送信されてくるストリートビューファイルは  画像取得要求に含まれる地理的情報と合致する撮影地属性を有している。
【００６９】
ダウンロードされたストリートビューファイルには全周囲画像及びデプス画像が存在する。ストリートビューファイルは、一旦画像描画装置内のローカルストレージ４に格納される。これらを直ちに表示する場合、ローカルストレージ４には格納せず装置内のメモリ上にダウンロードされた全周囲画像をそのまま全周囲画像取得部１１に渡す。
【００７０】
（ローカルストレージ４）
ローカルストレージ４は、ハードディスクドライブ（HDD）、USBメモリ、SDメモリーカードなど、画像描画装置に取り付けられている記録媒体である。サーバ１０５からダウンロードした全周囲画像及びデプス画像を格納したストリートビューファイルをキャッシュしたり、サーバ以外の外部機器で作成した全周囲画像及びデプス画像を格納したストリートビューファイルを画像描画装置で利用したりするなどの用途に用いられる。
【００７１】
（描画制御部５）
描画制御部５は、位置方向判定部２から指示された地図上の位置と、ネットワークインターフェース３もしくはローカルストレージ４から取得した全周囲画像及びデプス画像を元に、三次元モデリング空間で球面上に貼り付けられた全周囲画像を、右目用と左目用の２種類作成し、位置方向判定部２から指示された視線方向で球の中心から球面を見たときに表示されるべき画像（ビューポート画像）を抽出し、抽出された左目画像と右目画像を、それぞれ左目プレーンメモリ６、右目プレーンメモリ７に出力する処理を行う。
【００７２】
（左目プレーンメモリ６）
左目プレーンメモリ６は、立体視表示において左目に対して提示すべき一フレーム分のビューポート画像を格納するメモリである。
【００７３】
（右目プレーンメモリ７）
右目プレーンメモリ７は、立体視表示において右目に対して提示すべき一フレーム分ののビューポート画像を格納するメモリである。
【００７４】
（出力インターフェース８）
出力インターフェース８は、左目プレーンメモリ６、右目プレーンメモリ７に格納された画像を１フレームずつ同期して立体視対応ディスプレイ１０３へ出力する。具体的には１２０Hzで、左右のプレーンメモリから画像を交互に読み出し、左右それぞれ秒間６０コマの映像をディスプレイ側へ送信する。視聴するユーザは液晶シャッターメガネ１０４を装着し、液晶シャッターが１２０Hzで交互に開閉を繰り返すことで、左目には左目用の秒間６０コマの画像を、右目には左目用の秒間６０コマの画像を見ることが出来るため、左右の画像の視差から奥行きを知覚することができる。
【００７５】
以上が画像描画装置についての説明である。続いて、描画制御部５の詳細について説明する。図１４は、描画制御部５の内部構成を示す。本図に示すように描画制御部５は、モデリングデータ取得部１０、全周囲画像取得部１１、全周囲画像デコーダ１２、全周囲画像メモリ１３、デプス画像取得部１４、デプス画像デコーダ１５、デプス画像メモリ１６、テクスチャ変換部１７、左目用テクスチャメモリ１８a,右目用テクスチャメモリ１８b、CG処理部１９（座標変換部２０、照度計算部２１、テクスチャマッピング部２２、ビューポート変換部２３を含む）、オブジェクト管理部２５、ビューポートデプスメモリ２６から構成される。
【００７６】
（モデリングデータ取得部１０）
モデリングデータ取得部１０は、ネットワークI/Fまたはローカルストレージから指定の全周囲画像に関連するUIオブジェクトの情報を取得する。ここでUIオブジェクト(ユーザインターフェイスオブジェクト)とは、GUIの構成部品であり、前景画像として表示されるものをいう。そのデータ形式は、3Dコンピュータグラフィクスのモデリングデータのデータ形式である。
【００７７】
（全周囲画像取得部１１）
全周囲画像取得部１１は、位置方向判定部２から指示された地図上の位置（緯度と経度で特定）に対応する全周囲画像を、ネットワークインターフェース３を介してサーバ１０５からダウンロードするか、もしくはローカルストレージ４から取得する。１地点からの全周囲画像は、縦４枚、横７枚の計２８枚の部分画像から構成され、各画像１枚は縦５１２画素、横５１２画素の画素数を持つ。図１５（ａ）は、全周囲画像の一例を示す。
【００７８】
（全周囲画像デコーダ１２）
全周囲画像デコーダ１２はJPEGデコーダであり、圧縮メルカトル画像の展開を行い、当該展開で得られた全周囲画像を全周囲画像メモリ１９に格納する。
【００７９】
（全周囲画像メモリ１３）
全周囲画像メモリ１３は、全周囲画像デコーダ１２より展開された全周囲画像を格納するメモリである。
【００８０】
（デプス画像取得部１４）
デプス画像取得部１４は、全周囲画像取得部１１が取得した全周囲画像に対応するデプス画像を、ネットワークインターフェース３を介してサーバ１０５からダウンロードするか、もしくはローカルストレージ４から取得する。デプス画像は、立体空間における各画素の奥行きを示すものであり、各画素の奥行きを８ビットの輝度で表現している。輝度０（黒色）は、対応する画素が最も遠い位置にあることを示し、輝度２５５（白色）は、対応する画素が最も近い位置にあることを示す。つまり、全周囲画像がカラー画像として見えるのに対し、デプス画像は輝度のみで表現されたグレースケール画像として認識される。図１５（ｂ）は、図１５（ａ）の全周囲画像について作成されたデプス画像の一例を示す。デプス画像を示すグレースケール画像も、全周囲画像と同様、１地点につき、縦４枚、横７枚の計２８枚の部分画像から構成され、各画像１枚は縦５１２画素、横５１２画素の画素数（各画素は８ビットの輝度のみ保持）を持つ。
【００８１】
（デプス画像デコーダ１５）
デプス画像デコーダ１５は、PNGデコーダであり、ストリートビューファイルに含まれる圧縮メルカトルデプスの展開を行いデプス画像メモリ１６に格納する。
【００８２】
（デプス画像メモリ１６）
デプス画像メモリ１６は、デプス画像デコーダ１５より生成されたメルカトルデプスを格納するメモリである。
【００８３】
（テクスチャ変換部１７）
テクスチャ変換部１７は、テクスチャDIBR部を備え、デプス画像取得部１４が取得したデプス画像をベースにしてデプスイメージベースドレンダリング(DIBR)を行うことにより左目用テクスチャ、右目用テクスチャを得る。具体的には、テクスチャDIBR部が全周囲画像取得部１１が取得した全周囲画像における各画素を水平方向にシフトさせることで、左目用テクスチャ、右目用テクスチャを得る。本実施の形態では、全周囲画像取得部１１が取得するベース画像を左目用とし、デプス画像を元に生成される2以上の視点画像を右目用として説明を行うが、全周囲画像取得部１１が取得するベース画像を右目用とし、デプス画像を元に生成される2以上の視点画像を左目用としたとしても、画像描画装置の構成及び効果は同様となる。
【００８４】
デプスイメージベースドレンダリングを実行するにあたって、どのような視差を各画素に設定するかを述べる。デプス画像の座標(x,y)に存在する画素において、視点からの奥行きがDepth(x,y)である場合、デプス画像において座標(x,y)に存在する輝度Y(x,y)から奥行きDepth(x,y)への変換は、例えば、以下の数式に基づいてすることができる。
(数式)
Y(x,y)＝255-(log(Depth(x,y)+1)×100)
こうして求めた奥行きDepth(x,y)を、ディスプレイの画面サイズに応じた画素数offset(x,y)に変換することで画素の輝度を適切な視差に変換することができる。
【００８５】
デプスイメージベースドレンダリングでは、画像を構成する複数の画素のうち、任意の座標(x,y)に位置するものの座標を水平方向に移動するにあたって、対応するデプス画像において座標(x,y)に存在する画素の輝度Y(x,y)によって導かれる奥行きDepth(x,y)から、その座標(x,y)に固有のoffset(Depth(x,y),y)を求めて、このoffset(Depth(x,y),y)を移動量として使用することで他視点からの視点画像を得る。図１６（ａ）は、デプス画像において座標(x,y)に存在する画素の奥行きDepth(x,y)を示す。Depth(x,y)は、図１６（ｂ）におけるPix(x,y)と位置的に対応する。図１６（ｂ）は、画像メモリにおいて座標(x,y)に存在する画素Pix(x,y)を示す。図１６（ｃ）は、左目用テクスチャを生成するにあたって、画素Pix(x,y)がどれだけシフトするかを示す。図１６（ｃ）では、全周囲画像メモリ１３において、Pix(x,y)は水平方向にOffset(Depth(x,y))だけ変位している。そのため、Pix(x+Offset(Depth(x,y))、y)に位置することになる。Offset(Depth(x,y))とは、全周囲画像において、x,y座標に一意なオフセットであり、デプス画像における対応画素の輝度によるDepth(x,y)から設定される。
【００８６】
2以上の視点画像を作成するにあたって、画素が水平方向にどれだけ変位するかは、画像の画素毎に異なることになる。デプス画像における画素の輝度レベルと、シフト量である画素数との対応付けは上記数式から導くことができる。その対応付けの一例として、図１６（ｃ）のように設定することができる。
【００８７】
図１６（ｃ）は、Y(x,y)における０〜２５５の輝度範囲と、１画素〜１６画素の単位のオフセットとの対応付けを示す。本図では、0〜63の輝度範囲に0〜2画素の範囲のオフセットを、64〜127の輝度範囲に3〜4画素の範囲のオフセットを割り当て、128〜191の輝度範囲に5〜8画素のオフセットを、192〜255の輝度に9〜16画素のオフセットを割り当てるものである。つまり明るい部分の輝度範囲に割り当てるべき視差を大きくし、暗い部分の輝度範囲に割り当てるべき視差を小さくするという非線形な対応付けがなされている。
【００８８】
図１７は、画素レベルのシフトにより、左目用テクスチャ、右目用テクスチャにおいてどのような視差がもたらされるかを示す。図１７（ａ）はデプス画像、図１７（ｂ）は左目用テクスチャメモリの格納内容、図１７（ｃ）は、右目用テクスチャメモリの格納内容を示す。
【００８９】
Pix(x1,y)は、図１７（ｂ）において並ぶ3つのビルのうち、一番手前のビルの画素である。Pix(x2,y)は、3つのビルのうち２番目のビルの画素である。Pix(x3,y)は、3つのビルのうち3番目のものの画素である。
【００９０】
図１７（ａ）は、デプス画像の一例であり、左目用テクスチャにおける画素Pix(x1,y)、Pix(x2,y)、Pix(x3,y)に与えられる奥行きを示す。Depth(x1,y)は、左目用テクスチャにおけるPix(x1,y)の奥行きを示す。Depth(x2,y)は、左目用テクスチャにおけるPix(x2,y)の奥行きを示す。Depth(x3,y)は、左目用テクスチャにおけるPix(x3,y)の奥行きを示す。
【００９１】
図１７（ｃ）の下側は、DIBRにおいて各画素に与えられるオフセットを示す。Offset(Depth(x1,y),y)は、左目用テクスチャにおけるPix(x1,y)に与えられるオフセットを示す。Offset(Depth(x2,y),y)は、左目用テクスチャにおけるPix(x2,y)に与えられるオフセット、Offset(Depth(x3,y),y)は、左目用テクスチャにおけるPix(x3,y)に与えられるオフセットを示す。本図に示すように、Depth(x1,y)>Depth(x2,y)>Depth(x3,y)の関係があるから、一番手前にあるビルを構成する画素に対して一番大きな視差が与えられ画面から大きく飛出すことになる  以上がテクスチャ変換部１７についての説明である。
【００９２】
（左目用テクスチャメモリ１８a,右目用テクスチャメモリ１８b）
右目用テクスチャメモリ１８a、左目用テクスチャメモリ１８bのペアは、テクスチャ変換部１７がDIBRを行うことで得られた左目用テクスチャと、右目用テクスチャとを格納する。
【００９３】
図１８は、左目用テクスチャ、右目用テクスチャが貼付けられた球面モデルが存在する三次元モデリング空間と、デプス空間とを対比して示す。図１８（ａ）は、左目用テクスチャが貼付けられた球面モデルが存在する三次元モデリング空間であり、図１８（ｂ）は、右目用テクスチャが貼付けられた球面モデルが存在する三次元モデリング空間である。図１８（ｃ）は、デプス空間である。デプス空間とは、三次元モデリング空間に、テクスチャ内オブジェクトにおける奥行きを加味した空間である。つまり三次元モデリング空間では、テクスチャ内オブジェクトが球面モデルの表面において、平面的に存在していた。これに対してデプス空間では、テクスチャ内オブジェクトは球面モデルの表面から飛出し、UIオブジェクトと共存することになる。図１８（ｄ）、図１８（ｅ）は、三次元モデリング空間、デプス空間におけるオブジェクトの存在の違いを示す。図１８（ｄ）では、テクスチャ内オブジェクトであるビルは球面モデルの模様として存在しているに過ぎないが、図１８（ｅ）では、テクスチャ内オブジェクトであるビルが立体物として球面モデルから飛び出していることがわかる。
【００９４】
（CG処理部１９）
CG処理部１９は、モデリングデータを構成する三次元座標を三次元モデリング空間に配置して、その三次元モデリング空間における三次元座標をビューポートに投影する処理を行う。かかる処理には、座標変換、照度計算(テクスチャマッピング処理)、ビューポート処理がある
（座標変換部２０）
座標変換部２０は、視点をカメラにし、カメラの方向やズームレベルを指定することにより、立体物を投影するスクリーンを決定する。その後、UIオブジェクトや球面モデルのモデリングデータを規定する三次元座標を三次元モデリング空間におけるワールド座標に変換する。ここでの座標変換は、三次元モデリング空間におけるカメラ位置を原点とし、カメラから見た座標系でのワールド座標に、モデリングデータを規定する三次元座標を変換するというものである。
【００９５】
（照度計算部２１）
照度計算部２１は、三次元モデリング空間において設定された光源位置から照射される光を立体物に当てたときの各頂点における照度の計算を行う。
【００９６】
（テクスチャマッピング部２２）
テクスチャマッピング部２２は、三次元モデリング空間上に左目用と右目用の２つの球面を用意し、背景画像を変換することで得られた左目用テクスチャ、右目用テクスチャを三次元モデリング空間における球面モデルの内側表面にマッピングする。
【００９７】
（ビューポート変換部２３）
ビューポート変換部２３は、ディスプレイの解像度等を含んだディスプレイ情報に従い、三次元モデリング空間における3次元座標の頂点座標を2次元のスクリーン座標に変換することでビューポート画像の抽出を行う。抽出される画像には、左目ビューポート画像、右目ビューポート画像があり、ビューポート変換部はこれらを、それぞれ左目プレーンメモリ６、右目プレーンメモリ７に出力する。位置方向判定部２から描画制御部５に行われる指示が、カレント視点位置に変化はなく、カレント視線方向のみの変化であった場合、テクスチャマッピング部はテクスチャマッピング処理をスキップし、ビューポート変換部のみがカレント視線方向変化に伴うビューポートの再抽出及びプレーンメモリへの再出力のみを行う。ビューポート変換部２３によるビューポート画像の抽出について説明する。      
【００９８】
図１５（ａ）の画像に基づいて得られる左目ビューポート画像、右目ビューポート画像を説明する。図１９は、ビューポートデプスと、左目ビューポート画像とを示す。本図において左目用全周囲画像５０１は図１５（ａ）と同じであり、デプス画像５０６は、図１５（ｂ）と同じである。ビューポート変換部２３によるビューポート画像抽出により、左目用全周囲画像５０１及びデプス画像５０６のうち、抽出範囲５０３に相当する部分が抽出されることで、ビューポートデプス５０６と、左目ビューポート画像５０４とが得られていることがわかる。
【００９９】
図１９（ｂ）は、左目ビューポート画像５０４、右目ビューポート画像５０５の一例を示す。これらは、テクスチャとして球面モデルに貼付けられた左目用全周囲画像５０１及び右目用全周囲画像５０２のうち、抽出範囲５０３に相当する部分がビューポート画像５０４、５０５として抽出されたものである。ビューポート変換部２３によるビューポート変換時には、これら左目ビューポート画像、右目ビューポート画像にUIオブジェクトの投影画像が合成されることになる。以上がビューポート変換部２３によるUIオブジェクト投影についての説明である。
【０１００】
（Ｚバッファ２４）
Ｚバッファ(奥行きバッファ)２４には、変換後の三次元座標が格納される。
【０１０１】
（オブジェクト管理部２５）
オブジェクト管理部２５は、座標変換部２０、テクスチャマッピング部２１、ビューポート変換部２３の処理対象となるUIオブジェクトを管理する。
【０１０２】
（ビューポートデプスメモリ２６）
ビューポートデプスメモリ２６は、奥行き前後判定部３６により生成されるビューポートデプスを格納する。図１９（ｃ）は、UIオブジェクト及びテクスチャ内オブジェクトについて算出された視差に基づき作成されたビューポートデプスの一例である。球面モデルに全周囲画像をテクスチャとして貼ったときに発生に発生する視差が、８ビットにおける０〜２５５のデプス値に正規化された内容になっている。
【０１０３】
以上がビューポートデプスメモリ２６についての説明である。
【０１０４】
これで、画像描画装置の内部構成の説明を終える。内部構成図に示した構成要素のうちオブジェクト管理部２５は、本願の技術的課題の解決のために特に創作された本旨的要素であり、これ以外は、既存の装置としての機能を担保するための一般的要素に過ぎない。このオブジェクト管理部２５の内部構成について説明する。図２０は、オブジェクト管理部２５の内部構成を示す図である。本図に示すようにオブジェクト管理部２５は、オブジェクト状態テーブル３１、UIオブジェクト視差算出部３２、仮想カメラ環境設定部３３、テクスチャ視差算出部３４、ビューポートデプス生成部３５、奥行き前後判定部３６、干渉オブジェクト登録テーブル３７、オブジェクト操作部３８、オブジェクト位置調整部３９、テクスチャ再生成部４０、マスクパターン再生成部４１、幾何学変換部４２によって構成される。
【０１０５】
＜オブジェクト状態テーブル３１＞
オブジェクト状態テーブル３１は、UIオブジェクトのIDと、ワールド頂点座標と、状態コードとに対応付けて、各UIオブジェクトの状態を示すものである。この状態コードに示される状態とは、UIオブジェクトが起動中であるか、休止中であるか等を特定するものである。
【０１０６】
＜UIオブジェクト視差算出部３２＞
UIオブジェクト視差算出部３２は、オブジェクト状態テーブルで管理されている各UIオブジェクトがどれだけの視差をなすかを、UIオブジェクトを構成する頂点毎に算出する。このようにUIオブジェクトを構成する頂点毎に、視差を算出した後、左目ビューポート画像、右目ビューポート画像上に得られるビューポートの左目投影像、右目投影像を構成する個々の画素において、どれだけの視差が生じるかを計算して、UIオブジェクトの左目投影像、右目投影像を構成する個々の画素についての視差を算出する。UIオブジェクト視差算出部３２による視差の算出原理は特に重要なので、図２１〜図２３の参考図を交えてより詳しく説明する。
【０１０７】
図２１（ａ）は、UIオブジェクトを構成するモデリングデータの一例を示す。モデリングデータは、UIオブジェクトを構成する頂点の頂点座標を用いて、UIオブジェクトの形状を表現する。図２１（ｂ）は、左目ビューポート及び右目ビューポートに対するUIオブジェクトの投影像を示す。図２１（ｂ）の上段は、左目ビューポートに書き込まれたUIオブジェクトを示す。左目ビューポートでは、左目用カメラの視線ベクトルに従った角度のストリートビューが描かれている。そのためUIオブジェクトは、左目用カメラの視線ベクトルに従った形状になっている。
【０１０８】
図２１（ｂ）の下段は、右目ビューポートに書き込まれたUIオブジェクトを示す。右目ビューポートでは、右目用カメラの視線ベクトルに従った角度のストリートビューが描かれている。そのためUIオブジェクトは、右目用カメラの視線ベクトルに従った変形が施されている。UIオブジェクトは矢印形状であり、この矢印の先端は、左目ビューポートにおいて座標PLに存在する。右目ビューポートにおいて矢印の先端は、座標PRに存在する。これら、PR、PLは、Psの視差をなす。
【０１０９】
図２２（ａ）は、三次元モデリング空間の斜視図であり、三次元モデリング空間内において、左目用カメラCL、右目用カメラCR、左目ビューポート４０４、右目ビューポート４０５が設定されている。図２２（ｂ）は、図２２（ａ）の三次元モデリング空間において、左目用投影範囲４０６、右目用投影範囲４０７を設定したものである。図２２（ｃ）は、UIオブジェクトの先端座標を示す。このUIオブジェクトの先端は、球面４０１において三次元空間座標(Ｓx,Ｓy,Ｓz)で特定される座標Ｓに配置されるものとする。
【０１１０】
図２３（ａ）は、三次元モデリング空間のX-Z座標系におけるカメラCL、CRの配置レイアウトを示す。カメラCL、カメラCRは基底長2pだけ隔てられて存在する。球面上の点Ｓは、破線の経路vu1,vu2を経てカメラCL、カメラCRに至る。左目用投影範囲４０６は、カメラCLから視聴することができ、右目用投影範囲４０７は、カメラＣRから視聴することができる。ディスプレイ４０８は、投影用スクリーンであり、左目用、右目用で共通である。左目用カメラCL、右目用カメラCR共にカメラの視線ベクトルはe（０,０,１）とする。
【０１１１】
図２３（ｂ）は、左目ビューポート画像、右目ビューポート画像における点Sの写像点SL、SRを示す。図２３（ｃ）は、図２４（ｂ）において相似関係が成立する三角形を示す。この（ｂ）で見出すことができる相似関係とは、頂点Ｓ，SL，SRからなる三角形と、頂点Ｓ、ＣL、ＣRからなる三角形との相似関係である。
【０１１２】
この相似関係より2p:Sz = Ps : (Sz-D)なる等式が成立する。これをPsについて変形すれば、以下の式が得られる。
PS=２p*（Sz-D）/Sz          ・・・・・・数式（１）
ただし、視差Pは、正の方向に大きいほど奥行きが大きく、負の方向に大きいほど手前にあることを示す。GUIと、背景画像における建造物との前後関係を判断するには、上記のGUIの視差PSと、全周囲画像上の一点Bで生じる視差PBとを比較せねばならない。以上がUIオブジェクト視差算出部３２についての説明である。
【０１１３】
＜仮想カメラ環境設定部３３＞
仮想カメラ環境設定部３３は、座標変換部２０による座標変換や照度計算部２１による照度計算のため三次元モデリング空間におけるカメラ、ビューポート、球面モデルに関する情報を記憶している。また、テクスチャマッピングのための球面モデルにおけるグリッドの三次元座標をも記憶している。
【０１１４】
＜テクスチャ視差算出部３４＞
テクスチャ視差算出部３４は、球面モデル表面における三次元座標、カメラの基底長、球面モデルの奥行き位置に従い、左目用テクスチャ、右目用テクスチャを構成する画素がなす視差を算出する。UIオブジェクト視差算出部３２による視差の算出原理は重要なので、図２４〜図２６の一連の参考図を用いて詳細に説明する。
【０１１５】
全周囲画像上の一点Bは、投影範囲に含まれるものであり、視差PBは、出力される左目用背景画像と、右目用背景画像との間で発生する。図２４（ａ）は、三次元モデリング空間における左目用カメラと、ビューポートと、投影範囲との関係を示す。カメラCLは、原点からx軸方向に-pだけ隔てられた位置に存在する。球面４０１における座標BLは、カメラCLからZ軸方向にBLzだけ、X軸方向にBLxだけ隔てられた位置に存在する。ビューポートは、カメラCLからDだけ隔てた位置に存在する。引出線yj5は、球面モデルにおける投影範囲４０６の内容をクローズアップしている。図２４（ａ）の投影範囲には、図１９（ａ）の全周囲画像５０１が存在しており、かかる全周囲画像のうち、球面モデルのグリッド５０３が設定される範囲が表示の対象になる。引出線yj6は、ビューポートの中身をクローズアップしている。図２４（ａ）のビューポートには、図１９（ａ）におけるビューポート画像５０４が存在する。
【０１１６】
図２４（ｂ）は、三次元モデリング空間における右目用カメラと、ビューポートと、投影範囲との関係を示す。カメラCRは、原点からx軸方向にpだけ隔てられた位置に存在する。球面４０１における座標BRは、カメラCLからZ軸方向にBRzだけ、X軸方向にBRxだけ隔てられた位置に存在する。ビューポートは、カメラCRからDだけ隔てた位置に存在する。引出線yj7は、投影範囲４０７の内容をクローズアップしている。図２４（ｂ）の投影範囲には、図１９（ｂ）の全周囲画像５０２が存在しており、かかる全周囲画像のうち、球面モデルのグリッド５０３が設定された範囲が表示の対象になる。引出線yj8は、ビューポート画像の中身をクローズアップしている。図２４（ｂ）のビューポートには、図１９（ｂ）の画像５０５が存在する。図２５（ａ）は、テクスチャ内オブジェクトを構成する画素Bが、ビューポートにおいてどのように映じるかを示している。ここで、左目用テクスチャにおける画素Ｂの座標を（BLx、BLy、BLz)、右目用テクスチャにおけるＢの座標を(BRX,BRY,BRZ)とする。本図に示すように、球面モデルにおける画素ＢのX座標であるBRXは、ビューポートにおいてPRだけずれる。また左目用テクスチャにおける画素BのX座標であるBLXはビューポートにおけるPLだけずれる。
【０１１７】
次に、PL、PRがどのような値になるかについて説明する。図２５（ｂ）は、ビューポートにおけるXY平面図である。画素(BLX,BLY,BLZ)から、左方向にPLだけずれた画素の位置を(BLX',BLY,D)とし、画素(BRX,BRY,BRZ)からpだけずれた位置を(BRX',BRY,D)とする。この時、ビューポートにおけるテクスチャ内オブジェクトの視差PBは、ＢLX'−ＢRX'にて表現される。次に、PL、PRがどのような値になるかについて説明する。
【０１１８】
図２６は、BR'の導出過程を説明するための図である。図２６（ａ）は、三次元モデリング空間のX-Y座標系平面に、左目用投影範囲４０６、ビューポート、左目用カメラCLを描いたものである。左目用全周囲画像がマッピングされている球面において、点Bに相当する点BLは、（BLx、BLy、BLz)に配置される。矢印yj11は、ビューポートにおける画素BLの座標をクローズアップして示している。図２６（ｂ）は、視差計算のために想定する三角形を示す。この三角形は、直角三角形であり、高さがBLZ、幅がP+BLxである。この三角形と相似形となる三角形は、高さがBLZ-Dであり、幅がPLである。
【０１１９】
この2つの三角形の相似関係より(p+BLx):BLz = PL : (BLz-D)という式を導くことができる。これをPLについての式に変形すると、PL = (p+BLx)*(BLz-D)/BLｚとなる。
【０１２０】
よってBLx'の値は、
BLx'=BLx −  PL  ＝BLx−(p+BLx)*(BLz-D)/BLｚ
＝[D*BLx-p*(BLz-D)/BLz]になる。
図２６（ｃ）は、三次元モデリング空間のX-Z座標系の平面に、右目用投影範囲４０７、ビューポート、右目用カメラCRを描いたものである。図２６（ｃ）の球面において、点Bに相当する点BRが（BRx、BRy、BRz）に配置されていものとする。矢印yj12は、球面４０１における画素BLの座標をクローズアップして示している。図２６（ｄ）は、視差計算のために想定する三角形を示す。この三角形は、直角三角形であり、高さがBRZ、幅がP-BRxである。この三角形と相似形となる三角形は、高さがBRZ-Dであり、幅がPRである。
【０１２１】
この2つの三角形の相似関係より(p-BRx):BRz = PR : (BRz-D)という式を導くことができる。これをPRについての式に変形すると、PR = (P-BRx)*(BRz-D)/BRｚとなる。
【０１２２】
BRx'の値は、BRx'=BRx+ PR  ＝BRx+ (p-BRx)*(BRz-D)/BRｚ
＝[D*BRx+p*(BRz-D)/BRz]になる。
【０１２３】
このとき。点BL、点BRの間で発生する視差PBは、下記の数式（２）で表すことができる。
PB=｛（D*BRx+p*（BRz-D））/BRz｝-｛（D*BLx-p*（BLz-D））/BLz  ・・・・・数式（２）
テクスチャ視差算出部３４は、球面モデル表面の座標のうち、投影範囲に属するものの全てについて上記数式（１）（２）の計算を行うことで、テクスチャにおける視差を算出する。以上がテクスチャ視差算出部３４についての説明である。
【０１２４】
＜ビューポートデプス生成部３５＞
ビューポートデプス生成部３５は、テクスチャ内オブジェクトの視差PB、UIオブジェクトの視差PSに基づき、ビューポートに現れるテクスチャ内オブジェクト、UIオブジェクトの奥行きを画素の精度で表したビューポートデプスを作成して、ビューポートデプスメモリ２６に格納する。テクスチャ視差算出部３４が算出した左目用テクスチャ、右目用テクスチャにおける個々の画素の視差と、UIオブジェクト視差算出部３２が算出した各オブジェクトの投影像を構成する画素毎の視差とをマージして、ビューポートに得られるべき画像の奥行きを示すビューポートデプスを生成し、ビューポートデプスメモリ２６に書き込む。
【０１２５】
＜奥行き前後判定部３６＞
奥行き前後判定部３６は、仮想カメラ環境設定部３３が算出したUIオブジェクトについての投影像を構成する画素の視差とテクスチャ視差算出部３４が算出した左目用テクスチャ、右目用テクスチャにおける個々の画素の視差との大小を比較することで、その頂点のZ座標が左目用テクスチャ、右目用テクスチャよりも奥行きが大きくなるUIオブジェクトが存在するかどうかを判定する。テクスチャ内オブジェクトよりも奥行きが大きくなる頂点が1つでも存在すれば、かかる頂点をもつUIオブジェクトを干渉UIオブジェクトとして干渉オブジェクト登録テーブル３７に登録する。かかる奥行き前後判定部３６が何故、必要になるかはCG処理におけるモデリングデータの一般的性質に大きく関係する。UIオブジェクトは、三次元モデリング空間の球面内部において、視点と、球面内側表面との間に配置される。こうすると、球面の内側表面のうち、UIオブジェクトで隠れる部分は、デプステストの性質により、表示の対象外になる。ここでデプステストとは、ｚバッファにおける奥行きを指定して、この奥行きよりも深い画素を表示させないようにするCGレンダリング機能の1つである。そうすると、3Dモデルレンダリングで得られる投影像は、UIオブジェクトが必ず前方(フォアグラウンド)側になり、テクスチャが後方(バックグラウンド)側になる。ところが、立体視再生では、球面表面に貼りつけられたテクスチャが奥行き感をもつので、UIオブジェクトが前面になるのではなく、テクスチャ内オブジェクトがUIオブジェクトよりも前面側になり干渉が生じる。
【０１２６】
ここでの「干渉」とは、立体視効果でテクスチャ内オブジェクトが球面モデルから飛し出したため、上記CG処理の一般的性質によりテクスチャ内オブジェクトがUIオブジェクトに重なったり、突刺さったり、或は、テクスチャ内オブジェクトの後ろにUIオブジェクトが隠れたりして、テクスチャ内オブジェクトと、UIオブジェクトとの合成が不自然になることをいう。奥行き前後判定部３６による背景画像と、UIオブジェクトとの前後関係の判定は、上述したようなUIオブジェクトと、テクスチャ内オブジェクトとの干渉発生の有無を見極めるためになされる。
【０１２７】
図２７（ａ）は、左目ビューポート，右目ビューポートに書き込まれたUIオブジェクトのうち、奥行きが最も深くなる先端部の視差が、テクスチャ内オブジェクトの視差よりも大きいケースを示す。図２７（ｂ）は、三次元モデリング空間内におけるUIオブジェクト６０１を配置した状態の一例を表す。
【０１２８】
図２７（ｃ）のビューポートデプスは、左目用カメラCLと右目用カメラCRで投影されたビューポート画像で発生する視差分布を表す。図２７（ｃ）のビューポートデプスが得られた際に、ユーザからみた奥行き、すなわち視差上の奥行きの一例を鳥瞰図で表したものが図２７（ｄ）におけるX-Z座標系レイアウトである。このX-Z座標系レイアウトでは、UIオブジェクトが背景画像に上書きされて描画されるため、前後関係の矛盾が生じる。
【０１２９】
図２８（ａ）は、左目用テクスチャが貼付けられた左目用球面モデルを含む三次元モデリング空間、図２８（ｂ）は、右目用テクスチャが貼付けられた右目用球面モデルを含む三次元モデリング空間、図２８（ｃ）はデプス空間を示す。図２８（ａ）において引出線yj1は、ビューポートにおけるビューポート画像をクローズアップしており、図２８（ｂ）において引出線yj2は、ビューポートにおけるビューポート画像をクローズアップしている。図２７（ｅ）は、前後関係の矛盾が発生した場合にユーザに供される立体視映像の一例を示す。前後関係の矛盾が起こると、ユーザは背景画像にUIオブジェクト６０１が埋没したよう感じ、自然な立体視が困難となる。
【０１３０】
三次元モデリング空間と、デプス空間とは座標系が異なるので、UIオブジェクト、テクスチャ内オブジェクトの干渉回避には、座標系変換が必要になる。しかし、UIオブジェクト、テクスチャ内オブジェクトを規定する全ての3D座標を変換するのは処理負荷が多大であるから、近似計算を行う。ここで、全周囲画像と、デプス画像とを用いてDIBRを行い、右目用テクスチャ、左目用テクスチャを得て球面モデルに貼付けて、投影することで立体視を実現している。よってビューポートにおいてどれだけの視差が発生しているかを画素毎に計算して、これをUIオブジェクトがもたらす視差と比較すれば、座標系の変換を行わずとも、デプス座標系におけるオブジェクトの前後関係を判断することができる。以上の視差の比較を行うことにより奥行き前後判定部３６は、このようなオブジェクト間干渉の発生の有無を判定することができる。以上が奥行き前後判定部３６についての説明である。
【０１３１】
＜干渉オブジェクト登録テーブル３７＞
干渉オブジェクト登録テーブル３７は、テクスチャ内オブジェクトとの干渉が生じたUIオブジェクトと、その干渉の発生原因となった頂点とを対応付けて示す。
【０１３２】
＜オブジェクト操作部３８＞
オブジェクト操作部３８は、デプス座標系におけるテクスチャ内オブジェクト、UIオブジェクトの整合性操作を行う。整合性操作には、オブジェクト位置調整、テクスチャ再生成、マスクパターン再生成、オブジェクトの幾何学変換があり、これらの整合性操作を実現する構成要素として、オブジェクト操作部３８は、オブジェクト位置調整部３９、テクスチャ再生成部４０、マスクパターン再生成部４１、幾何学変換部４２を具備している。
【０１３３】
＜オブジェクト位置調整部３９＞
オブジェクト位置調整部３９は、UIオブジェクトによる干渉回避操作としてオブジェクト位置調整が指定されていた場合、何れかの頂点において干渉が発生していたとして干渉オブジェクト登録テーブル３７に登録されていたUIオブジェクトに対してオブジェクト位置調整による前後関係の調整を行う。
【０１３４】
上述したように、テクスチャ内オブジェクト、UIオブジェクトにおけるデプス座標系の前後関係は、球面モデルに貼付けられた左目用テクスチャ、右目用テクスチャにおけるテクスチャ内オブジェクトの視差と、UIオブジェクトの視差とによって左右されるから、テクスチャ内オブジェクト側の奥行きを固定化し、UIオブジェクト側の奥行きを変化させるようオブジェクト位置調整を行えば、オブジェクト間の整合を図ることができる。
【０１３５】
"オブジェクト位置調整"とは、三次元モデリング空間におけるUIオブジェクトの配置位置を、球面モデルから遠ざける位置に変更することでなされる。オブジェクト間干渉は、PS>PBとなることで発生しているから、PS≦PBになるようなz座標をUIオブジェクトの配置座標として選べば、干渉発生を回避することができる。
【０１３６】
図２９は、UIオブジェクトの位置調整を示す。図２９（ａ）は、左右ビューポートに対するUIオブジェクト右目用画像を示す。図２９（ａ）では、UIオブジェクトの先端がPSiだけ隔てられて存在する。そこで、オブジェクト位置調整ではPSi＝PBを満たす座標Sziを求めて、三次元モデリング空間において、この座標SziにUIオブジェクトの先頭を配置する。図２９（ｂ）は、三次元モデリング空間において座標Sziに配置されたUIオブジェクトを示す。図２９（ｃ）は、かかる配置時におけるビューポートデプス、（ｄ）は、かかる配置時におけるデプス空間でのX-Z座標系レイアウトを示す。座標Sziは、PSi＝PBを満たすから、デプス空間において、テクスチャ内オブジェクトと、UIオブジェクトとが干渉することはない。
【０１３７】
図２９（ｅ）は、図２９（ｄ）のUIオブジェクト配置により表示されることになる立体視映像である。テクスチャ内オブジェクトの直前に、UIオブジェクトの先端が存在することになり、干渉は発生していない。以上がUIオブジェクト位置調整部３９についての説明である。
【０１３８】
＜テクスチャ再生成部４０＞
テクスチャ再生成部４０は、UIオブジェクトによる干渉回避操作としてテクスチャ再生成が指定されていた場合、デプス画像メモリ１６に格納されているデプス画像における各画素の輝度を補正してテクスチャ変換部１７にDRを再度実行させることでテクスチャ再生成による前後関係の調整を行う。以下、テクスチャ再生成について述べる。UIオブジェクトの位置調整ではテクスチャ内オブジェクトの位置を固定化していたのに対して、テクスチャ再生成による干渉回避では、UIオブジェクトの位置を固定化し、テクスチャ内オブジェクトの奥行きを調整することで、干渉回避を図る。具体的にいうと、テクスチャ再生成とは、デプス画像の明暗度を補正して、補正後のデプス画像をベースにしたDIBRを再実行することでなされる。この補正は、UIオブジェクトが必ず手前になるように、デプス画像における各画素の奥行きを調整する。
【０１３９】
奥行き前後判定部３６がUIオブジェクトの方が後方にあると判定した場合、全周囲画像のデプスを構成する各画素の輝度からオフセットを減じて、デプス画像メモリ１６に再度格納する。テクスチャ変換部１７は、各画素の輝度からオフセットが減じられたデプス画像をベースしたDIBRを実行する。デプス画像を構成する各画素からオフセットを減じることで、背景画像を奥に配置することが可能となり、UIオブジェクトとの前後関係の整合性を保つことが可能となる。
【０１４０】
図３０（ａ）は、視差Psをもたらす場合における、左目ビューポート画像、右目ビューポート画像を示す。この視差は、PS＞PBの関係を満たすものである。図３０（ｂ）は、視差を伴うビューポート右目用画像を実行した場合の、デプス空間モデルを示す。PS＞PBの関係成立時には、テクスチャ内オブジェクトが手前に現れるため、UIオブジェクトはテクスチャ内オブジェクトに突刺さる形になっている。そこで、テクスチャ再生成では、対応するデプス画像を構成する各画素の輝度から所定のオフセットを減じることで、デプス画像を補正する。図３０（ｃ）は、各画素の輝度からオフセットが減じられる前のデプス画像を示し、図３０（ｄ）は、各画素の輝度からオフセットが減じられた後のデプス画像を示す。（ｃ）（ｄ）のそれぞれの下側は、デプス画像における画素の輝度が占める範囲を示している。デプス画像の各画素からオフセットが減じられたため、この補正後のデプス画像では、テクスチャ内オブジェクトにおける各画素の輝度範囲は、かなり低くなっている。
【０１４１】
図３０（ｅ）は、補正後のデプス画像に基づくDIBRにより生成された左目用テクスチャ、右目用テクスチャを示す。かかる左目用テクスチャ内のテクスチャ内オブジェクトと、右目用テクスチャ内のテクスチャ内オブジェクトとは、PBの視差をなしており、より深い位置に存在する。図３０（ｆ）は、図３０（ｅ）のテクスチャをテクスチャ内オブジェクトに合成した場合における合成映像を示す。以上がテクスチャ再生成部４０についての説明である。
【０１４２】
＜マスクパターン再生成部４１＞
マスクパターン再生成部４１は、UIオブジェクトによる干渉回避操作としてマスクパターン再生成が指定されていた場合、何れかの頂点において干渉が発生していたとして干渉オブジェクト登録テーブル３７に登録されていたUIオブジェクトに対してマスクパターン再生成による前後関係の調整を行う。"マスクパターン再生成"について説明する。マスクパターン再生成とは、ビューポート変換の段階でなされる整合性調整である。マスクパターン再生成では、ビューポート画像においてUIオブジェクトを構成する画素群のうち、テクスチャ内オブジェクトの奥行きよりも大きな奥行きをもたらすものに対してマスクを施し、残った画素を描画することでなされる。このマスクパターン再生成もUIオブジェクトの位置調整と同様、テクスチャ内オブジェクト側の奥行きを固定化するというものである。但しUIオブジェクトの位置調整と異なるのは、CG処理部１９におけるビューポート変換の段階で描画の対象をUIオブジェクトを構成する一部の画素に限定するという点である。
【０１４３】
図３１を参照しながら、マスクパターン再生成による干渉回避について説明する。このマスクパターンは、前後関係の矛盾が起こっているピクセルを対象にしたものである。図３１（ａ）は、視差をもたらす場合における、右目ビューポート画像を示す。このUIオブジェクトの先端がPs＞Pbの関係を満たすものとする。図３１（ｂ）は、図３１（ａ）のUIオブジェクトに対応するマスクパターンを示す。矢印形状のうち、先端部分が黒画素になっており、後端部分が白画素になっている。かかるマスクパターンと、UIオブジェクトとの排他的論理和をとれば、マスクパターンの白画素の部分は残り、黒画素の部分が表示されなくなる。図３１（ｃ）は、マスクパターンを用いた場合に生成される立体視映像を示す。本図に示すように、UIオブジェクトの先端部分が存在しないため、UIオブジェクトがテクスチャ内オブジェクトに突刺さることはない。以上がマスクパターン再生成部４１についての説明である
＜幾何学変換部４２＞
幾何学変換部４２は、UIオブジェクトによる干渉回避操作としてオブジェクト幾何学変換が仮想カメラ環境設定部３３で指定されていた場合、何れかの頂点において干渉が発生していたとして干渉オブジェクト登録テーブル３７に登録されていたUIオブジェクトに対してオブジェクト幾何学変換による前後関係の調整を行う。以下、オブジェクトの幾何学変換の詳細について説明する。オブジェクトの幾何学変換とは、座標変換のレベルにおける干渉回避である。具体的にいうと、ビューポートデプスでのUIオブジェクトに対して回転変換を施すための変換行列を得て、この変換行列によりUIオブジェクトを幾何学変換するというものである。
【０１４４】
図３２（ａ）は、ビューポートデプスを示す。このビューポートデプスは、UIオブジェクトデプスを構成する各画素毎の輝度を、背景デプスを構成する各画素の輝度にマージすることで得られるものである。図３２（ｂ）は、ビューポートデプスにおいてテクスチャ内オブジェクトの手前に定義された台形枠を示す。台形形状を選ぶのは、台形は、上辺が短く下辺が長いため、かかる台形形状にUIオブジェクトを当てはめればUIオブジェクトに遠近感を生じさせることができるからである。よってこの台形枠にUIオブジェクトを射影すれば、テクスチャ内オブジェクトからUIオブジェクトを引き離すことができる。
【０１４５】
UIオブジェクトをこの台形枠に射影するためには変換行列が必要である。図３２（ｃ）は、変換行列を示す。右側はビューポート画像であり、左側は台形枠である。ビューポート画像において、UIオブジェクトが外接している矩形枠W2を枠w1に変形するような変換行列を求める。この変換行列がホモグラフィ行列である。最後にUIオブジェクトを、ホモグラフィ行列を用いて幾何学変形することにより、ビューポートデプスにおける上記枠内にUIオブジェクトを射影することができる。
図３２（ｄ）は、UIオブジェクトに対して行列を用いた幾何学変換が施された左目ビューポート画像、右目ビューポート画像を示す。以上がオブジェクトの幾何学変換部４２についての説明である。
【０１４６】
以上のUIオブジェクトの位置調整、テクスチャ再生成、マスクパターン再生成、オブジェクトの幾何学変換を行えば、三次元モデリング空間の座標をデプス空間の座標に変換するという座標変換を行わずとも、テクスチャ内オブジェクト、UIオブジェクトの前後関係を調整することができる。
【０１４７】
＜オブジェクト位置調整、テクスチャ再生成、マスクパターン再生成、幾何学変形の選択指針＞
上記オブジェクト位置調整、テクスチャ再生成、マスクパターン再生成、幾何学変形には一長一短が存在する。表示品位から格付けを行えば「オブジェクト位置調整＝テクスチャ再生成＞幾何学変形＞マスクパターン再生成」というものになる。オブジェクト位置調整、テクスチャ再生成は何れもUIオブジェクトの形状を保つことができるので、表示品位が維持される。幾何学変形はUIオブジェクトに対して変形を施すもののUIオブジェクトは元の形状を保つことができるので、オブジェクト位置調整、テクスチャ再生成に次いで品位が高い。マスクパターン再生成は、頂点干渉が生じた際、描画にマスクを施すことにより何れかの頂点が見えなくなるから、品位は低い。
【０１４８】
迅速性からすれば、「マスクパターン再生成＞幾何学変形＞テクスチャ再生成＞オブジェクト位置調整」となる。マスクパターン再生成は、ビューポート変換の段階でなされるものであり、整合性操作のためのCG処理のやり直しは、ビューポート変換におけるマスク処理までとなるから迅速性は高い。幾何学変形は、ビューポート画像におけるUIオブジェクト投影像の変形であるから、マスクパターン再生成に次いで迅速性は高い。テクスチャ再生成は、照度計算まで処理をやり直す必要があるから、迅速性はマスクパターン再生成に次ぐものになる。同じくオブジェクト位置調整も照度計算まで処理をやり直すものなので、迅速性はマスクパターン再生成に次ぐものになる。
【０１４９】
以上のように、オブジェクト位置調整〜幾何学変形の何れを行うかについては、UIオブジェクトにおける全頂点数、干渉が生じた頂点数、描画内容がカレント視点位置の変更であるか、カレント視線方向の変更であるかという描画内容等に鑑み、適切な整合性操作を選択するのが望ましい。またUIオブジェクトのモデリングデータ毎に望ましい整合性操作を指定しておくのもよい。
【０１５０】
本実施形態に係る画像描画装置は、上述したような画像描画装置における各構成要素を、ハードウェア素子で具現化することで工業的に生産することができる。しかしながら画像描画装置は、ソフトウェアによる実装も可能である。即ち、上述したような各構成要素の処理手順をコンピュータコードで記述したプログラムをコードROMに予め組みこんておき、装置のハードウェア構成における単一の処理部(CPU)に、このプログラムの処理手順を実行させることでも、本装置を工業的に生産することができる。以下、フローチャートを参照しながら、装置のソフトウェア実装に必要となる処理手順について説明する。
【０１５１】
図３３は、実施の形態１におけるストリートビュー再生手順を示すフローチャートである。本フローチャートは、最上位の処理、つまり、メインルーチンに該当するものであり、本フローチャートの下位のフローチャートとして、図３３のフローチャートが存在する。以下、メインルーチンにおける処理手順について説明する。
【０１５２】
カレント視聴位置、視聴方向を初期化して三次元モデリング空間に、球面モデルを配置し（ステップS１）、位置方向判定部から受け取った、カレント視聴位置、視聴方向の情報を用いて左目ビューポート４０４と右目ビューポート４０５を設定する（ステップS２）。
【０１５３】
次に、デプス画像取得部が、カレント視聴位置に応じた全周囲画像データと、デプス画像とを含むストリートビューファイルを取得するための取得要求をサーバに送信する（ステップS３）、以降、ステップS４においてストリートビューファイルの受信待ちになり、ストリートビューファイルを受信すれば、ステップS５に移行する。
【０１５４】
ステップS５では、ストリートビューファイルに格納されていたデプス画像を用いて、ストリートビューファイルに格納されていた全周囲画像に対してデプスイメージベースドレンダリングを実行することで左目用テクスチャ、右目用テクスチャを得て、当該デプスイメージベースドレンダリングで得られた左目用テクスチャ、右目用テクスチャを球面にテクスチャとして貼り付け、左目ビューポート画像、右目ビューポート画像を抽出する。
【０１５５】
次に、テクスチャ内オブジェクトの視差Pbを算出して(ステップＳ６)、オブジェクト管理部２５の格納されているUIオブジェクトのモデリングデータを読み込み（ステップS７）、UIオブジェクトを両ビューポートに投影した際に発生する視差をPS=２p*（Sz-D）/Szの計算によりビューポート画像における画素毎に計算してビューポート画像における画素の奥行きを求めて、これを背景デプスにおける各画素毎の奥行きとマージしたビューポートデプスを生成する（ステップS８）。
【０１５６】
生成したビューポートデプスから、テクスチャ内オブジェクトよりも奥に存在することになるUIオブジェクトが存在するか否かを判定し（ステップS９）、背景画像よりも後方となるUIオブジェクトが1つでも存在する場合は、オブジェクト管理部２５は、UIオブジェクトの方が背景画像よりも前方になるよう、前後関係を一致させるためのUIオブジェクトの操作（UIオブジェクトの位置調整やテクスチャの再生成、マスクパターンの再生成、オブジェクト幾何学変換）を実行する（ステップS１０）。
【０１５７】
以降、ステップＳ１１〜ステップＳ１２のループになる。
【０１５８】
ステップＳ１１は、上下左右キーの押下があったかどうかの判定であり、ステップＳ１２はアングル変更が行われたかどうかの判定である。
【０１５９】
上下左右の何れかの方向への進行が要求された場合は(ステップＳ１１でYes）、押下されたキーに応じてカレント視聴位置を設定して(ステップＳ１３)、ステップＳ３に移行する。
【０１６０】
アングルキーが押下された場合(ステップＳ１２でYes)、カレント視線方向を設定して(ステップＳ１４)、ステップＳ４に移行する。カレント視点位置の変更やカレント視線方向の変更に応じてステップＳ３、Ｓ５に移行するのは、オブジェクト移動距離の再定義を実行するためである。
【０１６１】
"オブジェクト移動距離の再定義"とは、ユーザ操作などでUIオブジェクトの位置変化を要求するイベントが発生した場合、直ちにこの要求に応じたオブジェクト移動を行うのではなく、デプス画像空間での干渉発生の有無に鑑み、オブジェクトの位置調整を行うというものである。UIオブジェクトの回転、移動では、UIオブジェクトの位置が変化するため、回転前には干渉が生じなかったが、回転後には干渉が生じるということもある。
【０１６２】
図３４は、視点位置変更時及び視線方向変更時におけるデプス空間の遷移を示す。図３４(a)の状態から、ユーザ指定により全周囲画像のアングルを変更すると、図３４(b)に示すように、デプス画像空間におけるテクスチャ内オブジェクトと、UIオブジェクトとの位置関係が変化する。この際、UIオブジェクト６０１も全周囲画像のアングル変更に連動して変形される。更に、図３４（ｂ）の画面出力の状態から、ユーザ指定により全周囲画像の視点位置を変更すると、図３４（ｃ）に示すように、デプス空間におけるテクスチャ内オブジェクトと、UIオブジェクトとの位置関係が変化する。そこで本実施形態では、カレント視点位置が変更した際、ステップＳ３〜Ｓ５に移行してオブジェクトの位置を調整することで、オブジェクト間干渉の回避を図る。
【０１６３】
図３５は、前後関係を一致させるためのUIオブジェクトの操作手順を示すフローチャートである。ステップＳ２１は、操作内容の判定である。UIオブジェクトの位置調整であれば、ステップＳ２２ーステップＳ２３に移行する。ステップＳ２２は、PSi＝PBを満たすSZiの導出であり、ステップＳ２３は、Sziにαを加算した値を、Szに設定して照度計算(テクスチャマッピング)、ビューポート抽出を再実行する。これによりUIオブジェクトの再描画を行う。
【０１６４】
テクスチャ再生成であれば、デプス画像における各画素の輝度から所定のオフセットを減じることによりデプス画像を補正して(ステップＳ２４)、補正後のデプス画像に従い、DIBRを実行し、左目用テクスチャ、右目用テクスチャを再生成して球面モデルの内側表面に貼りつける(ステップＳ２５)。操作内容がマスクパターン再生成であれば、座標Sziを算出して(ステップＳ２６)、UIオブジェクトを構成する画素のうち、Szi以上の奥行きをもつものを白画素としたマスクパターンを作成して(ステップＳ２７)、マスクパターンを用いてUIオブジェクトを部分的に描画する(ステップＳ２８)。
【０１６５】
オブジェクトの幾何学変換であれば、ビューポートデプスにおいてテクスチャ内オブジェクトの手前に台形の枠を配置し(ステップＳ２９)、UIオブジェクトに外接する矩形枠をこの台形枠に射影するための変換行列を求める(ステップＳ３０)。そして、この行列を用いた幾何学変形を行う(ステップＳ３１)。そして、変形したUIオブジェクトデプスと、背景デプスとを用いたDIBRにより左目用ビューポート画像、右目ビューポート画像を生成する(ステップS32)。
【０１６６】
（変形例）
本実施の形態では、背景画像を描画する際とUIオブジェクトを描画する際の投影用スクリーンおよび右目用/左目用カメラは同一のものである前提で説明したが、本実施の形態の変形としては、背景画像の描画とUIオブジェクトの描画で異なる投影用スクリーンを用いてもよいし、右目用カメラと左目用カメラの距離を変更してよい。
【０１６７】
例えば、UIオブジェクトを描画する際の右目用カメラと左目用カメラの距離を、背景画像を描画する際のそれよりも大きく設定することにより、式（１)よりUIオブジェクトの描画において発生する視差を相対的に大きくすることが可能である。また、投影用スクリーンを奥に配置し、Dの値を大きくすることによっても式（２)より同様の効果を得ることができる。UIオブジェクトが複数ある場合は、各々のUIオブジェクトで独自のカメラ距離、投影用スクリーンを設定してもよいことは明らかである。
【０１６８】
（実施の形態２）
実施の形態1では、ビューポートデプスを用いてデプス判定を行ったが、本実施形態は、テクスチャ内オブジェクトをモデリングデータに変換することによる干渉回避を実現する。具体的にいうと、テクスチャ内オブジェクトをモデリングデータに変換して、変換後のテクスチャ内オブジェクトの形状を規定する三次元座標を、UIオブジェクトを規定する三次元座標とともにZバッファに格納し、デプステスト機能をオンにして、Zバッファにおける三次元座標に基づく照度計算を実行することで干渉発生の回避を図る。
【０１６９】
CGレンダリングでは、デプステストの指定が可能である。上述したように、デプステストとは、ｚバッファにおける奥行きを指定して、この奥行きよりも深い画素を表示させないようにする機能である。テクスチャ内オブジェクトをモデリングデータに変換した後、境界となる座標BのZ座標であるB'zを求めて、このB'zを用いてデプステストを指定した描画を実行する。
【０１７０】
図３６は、実施の形態２における描画制御部の内部構成を表すブロック図である。本図は、第１実施形態における図１４の内部構成図をベースとして作図されており、このベースとなる構成と比較して、新規な構成要素が追加されている点が異なる。具体的にいうと、５０番台の参照符号が付された構成要素(テクスチャ変換部５１)が、本図特有の構成要素である。以下、この新規な構成要素について説明する。
【０１７１】
テクスチャ変換部５１は、CG処理の一過程である座標変換を行うものであり、デプス画像取得部１５が取得したデプス画像を変換して、テクスチャ内オブジェクトを各点の三次元モデリング空間内に配置した場合の頂点データを作成する。以上がテクスチャ変換部５１についての説明である。
追加の構成要素の説明の補足として、既存の構成要素(ビューポート変換部２３)との関連について説明する。
【０１７２】
ビューポート変換部２３は、テクスチャ変換部５１の変換で生成された頂点データと、全周囲画像のテクスチャ内オブジェクトおよびオブジェクト管理部２５に格納されているUIオブジェクトのモデリングデータとから、三次元モデリング空間上の表示されるべきビューポート画像を抽出する。ここで抽出されるビューポート画像は、左目画像と右目画像とからなる。左目画像と右目画像は、球面の内側表面に全周囲画像データが貼りつけられ、GUIが合成されたものである。これらがそれぞれ左目プレーンメモリ２６、右目プレーンメモリ２７に書き込まれる。
【０１７３】
変換後のテクスチャ内オブジェクトのモデリングデータにおけるZ座標は、左目用テクスチャにおける画素と、右目用テクスチャにおける画素との視差PBに基づいて算出される。次に、テクスチャ内オブジェクトを変換することで得られるモデリングデータの頂点データの生成方法について述べる。
【０１７４】
全周囲画像におけるテクスチャ内オブジェクトを構成する一点Bがビューポートに含まれるとき、出力される右目用背景画像と左目用背景画像の間で発生する視差PBは、前述のとおり数式（１）で表すことできる。テクスチャ内オブジェクトをモデリングデータに変換した際、この視差PBと同等の視差が、三次元モデリング空間ビュー座標系において、モデリングデータであるテクスチャ内オブジェクトを構成する点B'（B'x，B'y，B'z）で発生するとする。数式（１）より下記が成り立つ。
【０１７５】
PB=２p*（B'z-D）/B'      ・・・・・数式（３）
B'zPB=２p*（B'z-D）      ・・・・・数式（４）
B'z=２pD/（２p-PB）      ・・・・・数式（５）
数式（５）より、球面４０１上にマッピングされた全周囲画像を構成するテクスチャ内オブジェクト上の各座標I（x，y，z）を、三次元モデリング空間における座標（x，y，2pD/（2p-PI））に再配置し、デプステストを有効にして照度計算及びビューポート画像の抽出を実行する。そうすると、デプスバッファにおいて、2pD/（2p-PI）よりも前の部分のみが表示に供され、2pD/（2p-PI）よりも後の部分は表示に供されないので、UIオブジェクトが背景画像に突刺さったような態様で表示されることはばなくなり、表示品位を保つことができる。
【０１７６】
（実施の形態３）
本発明における実施の形態１では、全周囲画像とデプス画像とを用いて、コンピュータグラフィクスにおける座標変換、照度計算(テクスチャマッピング)処理、ビューポート変換を経て2以上の視点画像を生成したのちに球面に貼る処理を行った。これに対して実施の形態３では、カレント視線方向やカレント視点位置が変化した際の迅速な再表示を提供する。具体的にいうと、カレント視線方向が変化した場合、何れか1つの視点テクスチャがマッピングされた球面モデル及びUIオブジェクトから、変化後の視線方向に応じたビューポート画像の再抽出を行う。再抽出で得られたビューポート画像に対して、デプス画像に基づくDIBRを実行することにより2以上の視点画像ビューポート画像(左目画像、右目画像)を得る
図３７は、実施の形態３における描画制御部の内部構成を示すブロック図である。本図は、第１実施形態における内部構成図をベースとして作図されており、このベースとなる構成と比較して、新規な構成要素が追加されている点が異なる。具体的にいうと、５０番台の参照符号が付された構成要素(ビューポートDIBR部５２)が、本図特有の構成要素である。追加の構成要素の説明に先立ち、かかる追加の前提となる既存の構成要素の視線変更時の動作、視点変更時の動作(描画制御部５、CG処理部１９、ビューポート変換部２３、ビューポートデプス作成部３５の動作)について説明する。
【０１７７】
描画制御部５は、位置方向判定部２から指示された地図上の位置と、ネットワークインターフェース３もしくはローカルストレージ４から取得した全周囲画像及びデプス画像とを元に、三次元モデリング空間で球面上に貼り付けられた全周囲画像を作成し、球面の内側表面に貼りつけられた全周囲画像にUIオブジェクトを合成する。その後、位置方向判定部２から指示された視線方向で球の中心から球面を見たときに表示されるべきビューポート画像を抽出し、左目ビューポート画像、右目ビューポート画像を左目プレーンメモリ６、右目プレーンメモリ７に書き込む処理と、ビューポート画像の各点の奥行きを計算し、ビューポートデプスをビューポートデプスメモリ２６に書き込む処理を行う。以上が描画制御部５についての説明である。
【０１７８】
CG処理部１９は、位置方向判定部２から描画制御部５に行われる指示が、位置に変化はなく、視線方向のみの変化であった場合、テクスチャマッピング処理をスキップし、視線方向変化に伴う表示画像の再抽出と右目プレーンメモリ６、左目プレーンメモリ７へのビューポート画像の再書込みとを行う。この際、照度計算部２１、テクスチャマッピング部２２は、三次元モデリング空間上に、全周囲画像をテクスチャマッピングした球面と、UIオブジェクトとを配置する。
【０１７９】
ビューポート変換部２３は、位置方向判定部２から指示されたカレント視線方向で球の中心から球面を見たときに表示されるべき画像を抽出し、左目プレーンメモリ６、右目プレーンメモリ７に出力する。
【０１８０】
ビューポートデプス作成部３５は、球面の内側表面に貼りつけられた全周囲画像にUIオブジェクトを合成した合成画像について、ビューポートデプスを生成し、ビューポートデプスメモリ２６に描画する。このビューポートデプスの生成は、デプス画像取得部とオブジェクト管理部の情報とに基づいてなされる。
【０１８１】
以上が、前提となる既存の構成要素の動作(描画制御部５、CG処理部１９、ビューポート変換部２３、ビューポートデプス作成部３５の動作)の説明である。続いて、本実施形態特有の新規な構成要素（ビューポートDIBR部５２）の詳細について説明する。
【０１８２】
ビューポートDIBR部５２は、球面の内側表面に全周囲画像が貼りつけられ、UIオブジェクトが合成されたビューポート映像に対して画素シフトを行い、2以上の視点画像である左目画像、右目用画像を生成する。この画素シフトは、左目プレーンメモリ２６又は右目プレーンメモリ２７に格納されたビューポート画像と、ビューポートデプスメモリ２６に格納されたビューポートデプスに基づいてなされる。画素シフトによる2以上の視点画像の生成の方法については、既に実施の形態1で説明しているため省略する。
【０１８３】
図３８は、左目ビューポート画像と、ビューポートデプスと基づきDIBRを実行し、右目ビューポート画像を生成する過程を示す。左上側は左目ビューポート画像、右上側はビューポートデプス、下側は右目ビューポート画像である。左上においてUIオブジェクトが合成された状態でのビューポート画像が得られるから、これを対象としたDIBRを、ビューポートデプスに基づき実行することで、UIオブジェクトが合成された状態の右目ビューポート画像を得ることができる。
【０１８４】
以上のように本実施形態によれば、球面の内側表面に全周囲画像が貼りつけられ、UIオブジェクトが合成されたビューポート画像に対して、画素シフトを行うため、三次元モデリング空間で回転などの変形を行ってもユーザに提供される画像における視差が常に水平に保たれるという利点をもつ。
【０１８５】
またビューポート画像の再抽出は、三次元モデリング空間におけるカレント視点位置の変更に応じてなされる。そうすると、UIオブジェクトとテクスチャ内オブジェクトとが干渉する際、カレント視点位置を変更することで干渉回避を図ることができる。このようなカレント視点位置の変更では、座標変換、照度計算をやり直す必要はないから、ユーザ操作に応じて、ビューポート画像を迅速に変化させることができる。
【０１８６】
上記、ビューポート画像の再抽出は、三次元モデリング空間におけるカレント視点位置の変更に応じて実行してもよい。そうすると、UIオブジェクトとテクスチャ内オブジェクトとが干渉する際、カレント視点位置を変更することで干渉回避を図ることができる。このようなカレント視点位置の変更では、座標変換、照度計算をやり直す必要はないから、ユーザ操作に応じて、ビューポート画像を迅速に変化させることができる。
【０１８７】
(実施の形態４)
本実施形態は、これまでの実施形態で述べた画像描画装置をどのようなハードウェア構成で実現するかを開示する。
【０１８８】
まず初めに、CG処理部についてのハードウェア構成を説明する。図３９は、CG処理部のハードウェア構成を示す。本図に示すように画像描画装置は、インターフェイス２０１、ビデオデコーダ回路２０２、テクスチャメモリ２０３、コードROM２０４、CPU２０５、ワークメモリ２０６、GPU２０７、フレームメモリ２０８から構成される。
【０１８９】
インターフェイス２０１は、ビルドインメディアやリムーバブルメディアのドライブとのインターフェイスである。
【０１９０】
ビデオデコーダ２０２は、インターフェイス２０１を通じて読み出された背景画像やデプス画像をデコードする専用回路である。
【０１９１】
テクスチャメモリ２０３は、ビデオデコーダ回路２０２のデコードで得られた非圧縮の背景画像を格納する。
【０１９２】
コードROM２０４は、これまでのフローチャートで述べたプログラムを構成するコード列を格納している。
【０１９３】
CPU２０５は、コードROM２０４に格納されたコード列を読み出し、処理することで、これまでの実施形態で述べた処理を実現する。
【０１９４】
ワークメモリ２０６は、コードROM２０４が処理を行う際に、変数や配列の格納場所として使用される。
GPU２０７は、テクスチャマッピング等のグラフィクス処理のための専用処理回路である。
【０１９５】
フレームメモリ２０８は、GPU２０７が処理のために使用するメモリである。
【０１９６】
図４０は、GPUの内部構成を示す図である。
【０１９７】
Xステージボード８００は、X（Transformation, Xformation)ステージでの処理を実現するものであり、HIP８０１、GED８０２、ディスプレイリストキャッシュ８０３、SIMDチップ ８０４a,b,c,dを具備している。X（Transformation）ステージの処理は、おおまかに言うと二つある。一つは、三次元の各頂点データ(x, y, z)を二次元のスクリーン座標に変換する処理、二つ目は、各頂点に関して、光源や材質情報をもとに明るさ（色）を計算する照光（lighting）計算処理である。この二つ（Transformation and Lighting）の処理を総称してT&L 処理あるいはTnL 処理と呼ぶ。
【０１９８】
HIP（Host Interface Processor）８０１は、入力のOpenGLAPIコールを解釈して演算処理に適した形式に変換するASIC（Application Specific Integrated Circuit）である。
【０１９９】
GED（GeometryElement Distributor）８０２は、各頂点データを、４つある次段のSIMDチップのうち処理待ちの状態にあるものに振り分ける役割を果たす。
【０２００】
ディスプレイリストキャッシュ８０３は、OpenGLAPIコールをグループ化したディスプレイリストを格納しておくキャッシュメモリである。よく使う一連のOpenGLAPIコールをディスプレイリストにしておくと、CPU からXステージボードに転送するデータ量を大幅に減らすことができる。
【０２０１】
SIMDチップ ８０４a,b,c,dは、ASIC で実現された1 チップのプロセッサで、FPU（浮動小数点演算ユニット）を3 系統持ち、マイクロコード格納用のキャッシュとデータキャッシュを備えている。一つのFPU には二つの演算器が含まれている。一つは通常の浮動小数点ALU（ArithmeticLogic Unit）で、もう一つは浮動小数点乗算器である。本ボードではこのSIMDチップを4 個搭載している。FPU は12 系統が並列で動作するため、同時に12 個の頂点データ(x, y, z)の処理を並列で行うことができる。
【０２０２】
SIMDチップでの処理内容（座標変換や照光計算のアルゴリズム）は、マイクロコードによって記述されている。演算回路はチップ上のキャッシュに記憶されたマイクロコードにしたがって動作する。マイクロコードはシステム起動時にキャッシュにロードされる。SIMDチップでの演算結果はFIFO（First-In First-Out）メモリに集められ、Xステージボード全体の出力としてTriangle Bus と呼ばれるバスに転送される。各頂点データは、スクリーン座標系上の座標(x, y)と奥行き情報z、照光計算の結果である(r, g, b)、透明度情報のa、法線ベクトル(nx, ny, nz)、それとテクスチャ座標(s, t)を含む。
【０２０３】
また、次のS ステージでの計算効率をよくするための前処理も本ボードで行われる。代表的な前処理はとして裏面カリングがある。裏面カリングは、ウィンドウ座標系に変換したときに裏向きになっている三角形を検出し、そのような三角形については頂点データをTriangle Bus に出力しないようにする処理である。以上がX ステージボードの処理である。
【０２０４】
Sステージボード８０５について説明する。Sステージボード８０５は4 種類のASIC チップ（TG８０６, PG８０７, TF８０８, IMP８０９）から構成される。S（Scan conversion）ステージでの処理は、三角形の内部の各画素を塗りつぶすラスタライズ処理、隠面消去処理やステンシルマスク処理、霧の効果の処理などが含まれる。
【０２０５】
ラスタライズ処理において重要な機能が、球面ストリップに全周囲画像を貼りつけるというテクスチャマッピングである。テクスチャマッピングでは、明るさ(r, g, b)を補間で求める代わりに、テクスチャ座標(s, t)を補間した結果からテクスチャメモリに格納されているテクスチャ画像のアドレスを計算して適切な画素を読み出し、その明るさ(r, g, b)をフラグメントの明るさデータとする。
【０２０６】
Sステージボードの入力は、XステージボードからTriangle Bus を通じて与えられる三角形各頂点におけるフラグメント形式のデータ（スクリーン座標(x, y, z)、テクスチャ座標(s, t)、明るさ(r, g,b)、透明度a、法線ベクトル(nx, ny, nz)）である。
【０２０７】
TG（Texture Generator）チップ ８０６は、三角形の塗りつぶしを行い、画素ごとのテクスチャ座標(s, t)の補間結果を出力し、テクスチャメモリのアドレスを生成してテクスチャ画素（テクセル(texel)と呼ばれる）をTF（Texture Filter）に渡す。
【０２０８】
PG（Pixel Generator）チップ ８０７では、ラスタライズ処理、すなわち三角形の塗りつぶし処理を行い画素ごとの明るさ(r, g, b)などの補間を行う。
【０２０９】
TF(Texture Filter)チップ ８０８は、PG の出力結果すなわちシェーディングされた明るさとテクスチャメモリの出力（テクセル）とを合成し、画素ごとのフラグメントをIMP（ImageMemory Processor）に渡す。
【０２１０】
IMP(IMage Proccer)８０９は、ピクセル処理フローを実現するプロセッサで、霧処理、アンチエイリアシング、アルファテスト、ステンシルテスト、デプステスト、ブレンディング、マスキング、書込バッファ選択といったピクセル処理を行い、処理結果をフレームメモリ２０８に書き込む。
【０２１１】
Dステージボード８１２は、Dステージの処理を行うボードであり、XMAP８１３、VOC８１４を具備している。
【０２１２】
XMAP(Pixel Mapping Asic)８１３は、Pixel Bus から画像データを受け取り、必要に応じてルックアップテーブルで変換し、また、カーソルの表示も行ってVideo Packet Bus に画像データを乗せる。各VOCは、自分の担当する矩形領域が記述されたVOF データに従って画像を拾い、DA コンバータでビデオ信号に変換する。
【０２１３】
VOC(Video Output Channel)回路８１４は、画像を拡大する出力回路、拡大画像の画質を良くするためのフィルタリング回路もあり、表示処理中に負荷が重くなったら動的に粗い解像度で描画し、ハードウェア拡大して元通りに表示する。Dステージボードでは最大8つの出力チャネルがあり、そのほかにHDMI出力エンコーダを備えている。
【０２１４】
次に、上述したようなハードウェア構成のGPUに対して、どのような制御をソフトウェアで指示すべきかについて説明する。
【０２１５】
図４１の上半分は、球面モデルと、テクスチャとの対応付けを模式的に示す。左側は球面モデルを構成するグリッド、右側はテクスチャを格納するテクスチャバッファの格納内容を示す。左側の球面モデルは、横方向にＷ個に分割され、それぞの分割部分にテクスチャが貼付けられることになる。本実施形態において、テクスチャマッピングの対象となる図形タイプを、三角形ストリップとし、この三角形ストリップの全部又は一部をテクスチャマッピングの対象とする。この三角形ストリップの全部又は一部は、頂点グリッドとして規定される。具体的にいうと、T1、T2、T3からなるグリッドがテクスチャマッピングの対象になり、T3,T4,T5,T6からなるグリッドが1つのテクスチャマッピングの対象になる。これらのグリッドを構成する交点の座標を、インデックスとして指定した上で、テクスチャマッピングを行う。
【０２１６】
図４１の下半分は、テクスチャマッピングを実現するためのOPEN-GLにおけるAPI呼出しの記述例である。
【０２１７】
『glVertexPointer(3, GL#FLOAT, 0,  g#v);』は、三次元モデリング空間におけるグリッドの各交点の座標群を頂点群として格納するものである。引き数の"３"は、三次元モデリング空間の次元数であり、GL#FOLATは、座標群のそれぞれの座標の型が浮動小数点形式であることを示す。
【０２１８】
『glTexCoordPointer(2, GL#FLOAT, 0, g#uv);』は、三次元モデリング空間におけるグリッドに対応したテクスチャの座標群g#uvをテクスチャ座標値として格納するためのAPI呼出しである。
【０２１９】
『for(I=0;i<W;i++)』は、横方向のW個の座標のそれぞれについて、glDrawElementsの呼出しを繰り返すループ構造として規定される。
【０２２０】
『glDrawElements(GL#TRIANGLE#STRIP,(H + 1) * 2, GL#UNSIGNED#SHORT,getStaticData()->g#index[i]);』について説明する。このAPI呼出しの第１引き数は、3Dモデルの図形タイプが三角形ストリップ(GL#Triangle#Stirp)であることを指定している。第２引き数は、頂点数の指定であり、（縦分割数Ｈ＋１）×２の数値を指定している。GL#UNSIGNED#SHORTは、頂点を格納したindexの型が符号無しのshort形式であることを示す。g#index[W]は、描画順番を決めたインデックス配列であり、個々の配列要素としてグリッド交点の頂点座標が格納される。g#indexの配列要素として格納されている頂点座標に従った描画を実行することにより、テクスチャマッピングがなされることになる。
【０２２１】
先ず始めに、DIBRを実現するためのハードウェア構成(全周囲画像メモリ１３、テクスチャDIBR部ハードウェア構成)について説明する。
【０２２２】
全周囲画像メモリ１３は、複数のラインメモリからなり、全周囲画像データは、ラインメモリを構成する３２ビット長の記憶素子にそれぞれ格納される。そして全周囲画像データの画面上の座標は、例えば全周囲画像メモリ１３におけるラインメモリのアドレスであるROWアドレスと、ラインメモリにおける記憶素子の相対アドレスであるCOLUMNアドレスとの組みに対応する。 以上が全周囲画像メモリ１３についての説明である。続いて、テクスチャDIBR部のハードウェア構成について説明する。
【０２２３】
テクスチャDIBR部は、全周囲画像データと、デプス画像データとに対して画素シフトを施し、他視点からのテクスチャを作成する。
【０２２４】
全周囲画像における画素のX座標を変更することで左目用テクスチャを作成したい場合、全周囲画像メモリ１３から左目用テクスチャメモリ１８aへのコピー時において、そのコピー先となる記憶素子を指示するCOLUMNアドレスを、画素数Xに相当するアドレスだけ前に調整しておく。このようなアドレス調整を前提にしてコピーを実行すれば、左目用テクスチャの座標は、左方向にシフトすることになる。よってテクスチャDIBR部は、左目用テクスチャについては、アドレス調整を伴うコピー処理で作成することができる。
【０２２５】
ストリートビューのX座標を変更することで右目用テクスチャを作成したい場合、全周囲画像メモリ１３から右目用テクスチャメモリ１８bへのコピー時において、そのコピー先となる記憶素子を指示するCOLUMNアドレスを、画素数Xに相当するアドレスだけ後に調整しておく。このようなアドレス調整を前提にしてコピーを実行すれば、右目用テクスチャの座標は、右方向にシフトすることになる。よってテクスチャDIBR部は、右目用テクスチャについては、アドレス調整を伴うコピー処理で右目用テクスチャを作成する。以上がハードウェアによるテクスチャDIBR部の実現である。
【０２２６】
またDIBRをラインスキャンで実現することができる。ラインスキャンとは、フレームメモリに格納された一画面分の画素(1920×1080)の集りを横1920画素ずつ読み出してデジタル映像信号に変換するものである。かかるラインスキャンは、１行分の画素データを格納しうるライン画素メモリと、フィルタ回路、パラレル／シリアル変換を行う変換回路によって実現することができる。上述したようにDIBRは、デプス画像の個々の画素の輝度を視差に変換して画素のシフトを行う処理である。ラインメモリに読み出された全周囲画像の一ライン分の画素の座標を、全周囲画像に対するデプス画像における対応するラインの奥行きに応じた画素数だけ横方向に移動すれば、デプス画像示される奥行きをもたらす他視点からの視点画像を作成することができる。
【０２２７】
＜備考＞
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
【０２２８】
（視点周囲画像の範囲増減）
各実施形態では、横7枚の背景画像を横方向に結合することで得られる全周囲画像を対象にして説明を進めたが、横方向の画像の結合数を増減することで、視点から見渡せる周囲の範囲を変更してもよい。上記実施形態の全周囲画像は、横7枚の背景画像で360°の視野を網羅するから、一枚の背景画像で網羅される範囲は、52°(≒360°/7)である。よって、2枚の画像を結合した場合、104°(≒52°×2)の範囲を見渡すことができ、3枚の画像を結合した場合、156°(≒52×3)の範囲を見渡すことができる。このように、ストリートビュー収集サーバや画像描画装置で横方向の画像の結合数を変化させることにより、視点周囲画像の規模を変化させ、テクスチャマッピング処理やテクスチャにおける視差算出等の負荷を軽減することもできる。
【０２２９】
尚、本実施の形態では、描画の度に画素シフトが発生するため、ビューポート画像とデプス情報から画素シフトにより2以上の視点画像を生成する処理においてはシステムLSIで行うことが望ましい。
【０２３０】
（デプス画像のバリエーション）
圧縮メルカトルデプス画像は、メルカトル画像に対する奥行きを示す画像をPNG形式で圧縮されたデータとしたが奥行きは圧縮ノイズが目立ってしまうため、PNG形式などのロスレス形式で圧縮することが望ましい。ストリートビューファイルにおける圧縮メルカトルデプス画像はデータが冗長であるため、PNG形式での圧縮以外にも周囲の地形データおよび、圧縮メルカトル画像と地形データとの関係を示すデータを備えるようにしてもよい。
【０２３１】
（集積回路の実施形態）
第１実施形態に示した画像描画装置のハードウェア構成のうち、記録媒体のドライブ部や、外部とのコネクタ等、機構的な部分を排除して、論理回路や記憶素子に該当する部分、つまり、論理回路の中核部分をシステムLSI化してもよい。システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものはマルチチップモジュールと呼ばれるが、このようなものも、システムLSIに含まれる。
【０２３２】
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
【０２３３】
これらのピンは、電源供給やグランド、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、画像描画装置の中核としての役割を果たす。
【０２３４】
（左目画像、右目画像のどちらかを処理することの技術的意義）
なお立体写真のDIBRにおいて、立体写真を手前におくことで立体写真を引き立たせることができ、さらに見やすい追体験を実現することができる。
【０２３５】
なお本実施の形態は立体写真について説明をしたが、動画も同様に適応できる。動画の場合は動画の一フレームを静止画とみなして処理するとよい。
【０２３６】
（数式に基づく演算の具体化）
これまでの実施形態では、数式に基づく演算処理を開示したが、これらの数式は、数学的な概念を意味するのではなく、あくまでも、コンピュータ上で実行される数値演算を意味するものなので、当然のことながら、コンピュータに実現させるための、必要な改変が加えられることはいうまでもない。例えば、数値を、整数型、固定少数点型、浮動小数点型で扱うための飽和演算や正値化演算が施されてよいことはいうまでもない。更に、各実施形態に示した、数式に基づく演算処理のうち、定数との乗算は、定数ROMを用いたROM乗算器で実現することができる。定数ROMには、被乗数と定数との積の値はあらかじめ計算されて格納されている。例えば、被乗数が16ビット長である場合、この被乗数は、4ビット毎に四つに区切られ、この4ビット部分と定数との積、つまり、定数の0〜15の倍数が上記の定数ROMに格納されている。上記の一区切りの4ビットと定数16ビットとの積は20ビット長であり、上記の四つの定数が同一のアドレスに格納されるので、20×4＝80ビット長が一語のビット長となる。以上述べたように、ROM乗算器での実現が可能であるので、本明細書でいうところの"演算処理"は、純粋な算術演算のみを意味するのではなく、ROM等の記録媒体に格納された演算結果を、被演算子の値に応じて読み出すという、記録媒体の読み出しをも包含する。
【０２３７】
（プログラムの実施形態）
各実施形態に示したプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
【０２３８】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
【０２３９】
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
【０２４０】
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
【０２４１】
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを１つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるコンピュータプログラムを非一時的なコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
【０２４２】
（立体視再生のバリエーション）
立体視再生時において一枚の全周囲画像から左目用テクスチャ、右目用テクスチャを作成するとしたが、この全周囲画像を左目用テクスチャとしてもちいて、右目用テクスチャのみを作成してもよい。同様に、全周囲画像を左目用テクスチャとしてもちいて、右目用テクスチャのみを作成してもよい。この場合、立体視再生時におけるカメラ位置と比較して、2×pだけ隔てられた位置を右目カメラの配置位置とし、かかる配置位置にカメラを配置することで上述したような座標変換、テクスチャマッピング、ビューポート変換を実行すればよい。
【産業上の利用可能性】
【０２４３】
本発明にかかる画像描画装置は、製造産業において経営的に、また継続的および反復的に製造し、販売することができる。特に、全周囲立体画像の制作と再生に携わる民生機器において利用できる。
【符号の説明】
【０２４４】
１０１  画像描画装置
１０２  リモコン
１０４  液晶シャッターメガネ
１０３  立体視対応ディスプレイ
１  UO検知部
２  位置方向判定部
３  ネットワークインターフェース
４  ローカルストレージ
５  描画制御部
６  左目プレーンメモリ
７  右目プレーンメモリ
８  出力インターフェース
【図１】
2012132237.tif 000003
【図２】
2012132237.tif 000004
【図３】
2012132237.tif 000005
【図４】
2012132237.tif 000006
【図５】
2012132237.tif 000007
【図６】
2012132237.tif 000008
【図７】
2012132237.tif 000009
【図８】
2012132237.tif 000010
【図９】
2012132237.tif 000011
【図１０】
2012132237.tif 000012
【図１１】
2012132237.tif 000013
【図１２】
2012132237.tif 000014
【図１３】
2012132237.tif 000015
【図１４】
2012132237.tif 000016
【図１５】
2012132237.tif 000017
【図１６】
2012132237.tif 000018
【図１７】
2012132237.tif 000019
【図１８】
2012132237.tif 000020
【図１９】
2012132237.tif 000021
【図２０】
2012132237.tif 000022
【図２１】
2012132237.tif 000023
【図２２】
2012132237.tif 000024
【図２３】
2012132237.tif 000025
【図２４】
2012132237.tif 000026
【図２５】
2012132237.tif 000027
【図２６】
2012132237.tif 000028
【図２７】
2012132237.tif 000029
【図２８】
2012132237.tif 000030
【図２９】
2012132237.tif 000031
【図３０】
2012132237.tif 000032
【図３１】
2012132237.tif 000033
【図３２】
2012132237.tif 000034
【図３３】
2012132237.tif 000035
【図３４】
2012132237.tif 000036
【図３５】
2012132237.tif 000037
【図３６】
2012132237.tif 000038
【図３７】
2012132237.tif 000039
【図３８】
2012132237.tif 000040
【図３９】
2012132237.tif 000041
【図４０】
2012132237.tif 000042
【図４１】
2012132237.tif 000043
【国際調査報告】
2012132237.tif 000044
2012132237.tif 000045
2012132237.tif 000046
2012132237.tif 000047