図面 (/)

技術 全周囲立体画像の描画を行う画像描画装置、画像描画方法、画像描画プログラム

出願人 パナソニックIPマネジメント株式会社
発明者 田中敬一片山朋子山地治
出願日 2012年3月2日 (9年3ヶ月経過) 出願番号 2012-542263
公開日 2014年7月24日 (6年10ヶ月経過) 公開番号 WO2012-132234
状態 特許登録済
技術分野 イメージ処理・作成 立体TV及びTVの試験,検査,測定等
主要キーワード 球体面 球面モデル 外形構造 グリッド交点 Y座標 アドレス調整 出力エンコーダ 縦分割
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2014年7月24日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

画像描画装置は、結合背景画像についての立体視を実現する。DIBR部17は、結合背景画像を構成する個々の背景画像に対してシフトを施すと共に、当該画素シフトに伴う境界処理を施す。結合背景画像は、立体モデル上で1つ以上の背景画像の端部が結合したものである。画素シフトは、景画像を構成する画素座標を横方向に移動させる処理であり、画素の移動量は、デプス画像における画素の奥行き値に基づき定められる。境界処理とは、横方向への画素座標の移動によって個々の背景画像の表示範囲からはみ出すことになる画素群を抽出して、抽出された画素群を、横方向に隣接する他の背景画像の端部に追加する処理である。

概要

背景

上記全周囲画像の描画技術は、ストリートビューサービス基盤となる技術である。ストリートビューサービスとは、様々な道路上の地点撮影したパノラマ画像サーバ上で管理し、ユーザは任意地点の道路上からの風景を、WEBブラウザ等を通じて360度の全周囲パノラマ画像で楽しむことが出来るサービスである。このストリートビューサービスにより、旅先の周辺状況事前確認や、旅行後の思い出をもう一度振り返りたい場合等において、固定視点ではなく任意視点で風景を見ることができるため、ユーザの使い勝手が向上するというメリットがある。ストリートビューについての先行技術としては、以下の特許文献に記載されている技術がある。

概要

画像描画装置は、結合背景画像についての立体視を実現する。DIBR部17は、結合背景画像を構成する個々の背景画像に対してシフトを施すと共に、当該画素シフトに伴う境界処理を施す。結合背景画像は、立体モデル上で1つ以上の背景画像の端部が結合したものである。画素シフトは、景画像を構成する画素座標を横方向に移動させる処理であり、画素の移動量は、デプス画像における画素の奥行き値に基づき定められる。境界処理とは、横方向への画素座標の移動によって個々の背景画像の表示範囲からはみ出すことになる画素群を抽出して、抽出された画素群を、横方向に隣接する他の背景画像の端部に追加する処理である。

目的

本発明の目的は、立体視再生時において、画素の空白部分を生じさせることがない画像描画装置を提供する

効果

実績

技術文献被引用数
1件
牽制数
2件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

結合画像データについての立体視を実現する画像描画装置であって、前記結合画像データは、複数の背景画像データが横方向に結合したものであり、結合画像データを構成する個々の背景画像データに対して画素シフトを施すと共に、当該画素シフトに伴う境界処理を施すことで、2以上の視点テクスチャを得る画素シフト手段と、三次元モデリング空間における立体モデルの内側表面に、2以上の視点テクスチャをマッピングするテクスチャマッピング手段と、テクスチャマッピングがなされた立体モデルから、2以上の視点のそれぞれに対応するビューポート画像を抽出するビューポート変換手段とを備え、前記画素シフトは、個々の背景画像データを構成する画素座標を横方向に移動させる処理であり、画素の移動量は、結合画像データに対応するデプス画像データにおける画素の奥行き値に基づき定められ、前記境界処理は、横方向への画素座標の移動によって個々の背景画像データの表示範囲からはみ出すことになる画素群を抽出して、抽出されたはみ出し画素群を、結合画像データにおいて横方向に隣接する他の背景画像データの端部に書き込む処理であることを特徴とする画像描画装置。

請求項2

前記画像描画装置は、表示領域バッファと、領域外バッファと、画素シフトの処理がなされた処理済みの背景画像データを格納しておくためのテクスチャメモリとを備え、前記画素シフトは、前記結合画像データを構成する複数の背景画像データのうち、処理対象になるものを表示領域バッファに格納して、表示領域バッファ上で背景画像データを構成する画素の座標を横方向に移動させると共に、背景画像データの表示範囲から画素がはみ出た画素群を抽出して領域外バッファに書き込むことでなされ、前記境界処理は、領域外バッファからはみだし画素群を読み出して、テクスチャメモリに格納された処理済み背景画像データにおける一方の端部に書き込むことでなされることを特徴とする請求項1記載の画像描画装置

請求項3

前記結合画像データが、1つのメルトル画像データの一方の端部と、他方の端部とを結合することで得られる結合メルカトル画像データである場合、前記境界処理は、結合メルカトル画像データにおける各画素がデプス画像データを元にシフトされることにより、メルカトル画像の表示範囲からはみ出すことになる画素群を抽出して、抽出されたはみ出し画素群を、抽出された端部とは逆側の端部に上書きすることを特徴とする請求項1記載の画像描画装置。

請求項4

前記画像描画装置は、ユーザ操作に従って、地図上のカレント視点位置と、カレント視線方向とを判定する位置方向判定手段と、地図上のカレント視点位置に対応する地理的情報を用いて画像取得要求を作成し、画像収集サーバに送信することでストリートビューファイルダウンロードを行う取得手段とを備え、画像収集サーバからダウンロードされたストリートビューファイルは画像取得要求に含まれる地理的情報と合致する撮影地属性を有し、前記結合画像データは、ダウンロードされたストリートビューファイル内に存在することを特徴とする請求項1記載の画像描画装置。

請求項5

前記結合画像データは視点周囲画像であり、複数の背景画像データを横方向に結合させることで画像取得要求における地理的情報に対応する地理的位置から周囲を見渡した場合の光景を表すことを特徴とする請求項1記載の画像描画装置。

請求項6

結合画像データについての立体視を実現する映像描画方法であって、前記結合画像データは、複数の背景画像データが横方向に結合したものであり、結合画像データを構成する個々の背景画像データに対して画素シフトを施すと共に、当該画素シフトに伴う境界処理を施すことで、2以上の視点テクスチャを得る画素シフトステップと、三次元モデリング空間における立体モデルの内側表面に、2以上の視点テクスチャをマッピングするテクスチャマッピングステップと、テクスチャマッピングがなされた立体モデルから、2以上の視点のそれぞれに対応するビューポート画像を抽出するビューポート変換ステップとを含み、前記画素シフトは、個々の背景画像データを構成する画素の座標を横方向に移動させる処理であり、画素の移動量は、結合画像データに対応するデプス画像データにおける画素の奥行き値に基づき定められ、前記境界処理は、横方向への画素座標の移動によって個々の背景画像データの表示範囲からはみ出すことになる画素群を抽出して、抽出されたはみ出し画素群を、結合画像データにおいて横方向に隣接する他の背景画像データの端部に書き込む処理であることを特徴とする映像描画方法。

請求項7

結合画像データについての立体視をコンピュータに実現させる映像描画プログラムであって、前記結合画像データは、複数の背景画像データが横方向に結合したものであり、結合画像データを構成する個々の背景画像データに対して画素シフトを施すと共に、当該画素シフトに伴う境界処理を施すことで、2以上の視点テクスチャを得る画素シフトステップと、三次元モデリング空間における立体モデルの内側表面に、2以上の視点テクスチャをマッピングするテクスチャマッピングステップと、テクスチャマッピングがなされた立体モデルから、2以上の視点のそれぞれに対応するビューポート画像を抽出するビューポート変換ステップとをコンピュータに実行させ前記画素シフトは、個々の背景画像データを構成する画素の座標を横方向に移動させる処理であり、画素の移動量は、結合画像データに対応するデプス画像データにおける画素の奥行き値に基づき定められ、前記境界処理は、横方向への画素座標の移動によって個々の背景画像データの表示範囲からはみ出すことになる画素群を抽出して、抽出されたはみ出し画素群を、結合画像データにおいて横方向に隣接する他の背景画像データの端部に書き込む処理であることを特徴とする映像描画プログラム。

技術分野

0001

本発明は、全周囲画像の描画技術に関するものである。

背景技術

0002

上記全周囲画像の描画技術は、ストリートビューサービス基盤となる技術である。ストリートビューサービスとは、様々な道路上の地点撮影したパノラマ画像サーバ上で管理し、ユーザは任意地点の道路上からの風景を、WEBブラウザ等を通じて360度の全周囲パノラマ画像で楽しむことが出来るサービスである。このストリートビューサービスにより、旅先の周辺状況事前確認や、旅行後の思い出をもう一度振り返りたい場合等において、固定視点ではなく任意視点で風景を見ることができるため、ユーザの使い勝手が向上するというメリットがある。ストリートビューについての先行技術としては、以下の特許文献に記載されている技術がある。

先行技術

0003

特表2010-531007

発明が解決しようとする課題

0004

しかしながら、前述のストリートビューサービスはパノラマ画像を確認できるとはいうものの、表示される映像平面視映像となっている。近年、大画面3Dテレビが普及しつつある中で、パノラマ画像を平面視でしか見れないとなると、サービスが見劣りするのは明らかである。

0005

ただし、ストリートビューも3D立体視サービスに対応するために、立体視カメラで再度、世界中の道路を撮影するとなると、膨大な時間と労力がかかる上、せっかく撮り溜めた平面視画像のストリートビューが無駄に終わってしまう。そこで考えられるのは、平面視−立体視変換により、既存の平面視ストリートビューを立体視化するという考えである。このような平面視-立体視化には、以下のような技術的障壁が存在する。上述したようなレンダリングは、通常一枚のメルトル画像として撮影されるものではなく、縦4×横7といった数の複数の背景画像を結合することで作成される。このように、複数の背景画像を結合することで360度パノラマ画像を得て、立体視化の対象にしようとすると、360度パノラマ画像を構成する個々の画像について、デプス画像に基づくデプスイメージベースドレンダリングを実行する必要がある。デプスイメージベースドレンダリングとは、デプス画像に示される奥行きをもたらすよう、画像の各画素座標を水平方向にシフトする技術である。ここで、360度パノラマ画像を構成する個々の画像に対して、デプス画像に基づくシフトを行うと、個々の画像のうち端部に存在するものの一部が、画像の表示領域外になる。そうすると、360度パノラマ画像を構成する個々の画像の境界にあたる部分の画素が消失することになり、空白縦筋が存在するような360度パノラマ画像が得られる。

0006

これは表示の品位を大きく低下させる。立体視化の対象とする映像を、メルカトル画像とする場合、画像間の結合境界は存在しないから、空白の縦筋が発生することはない。しかし、複数の画像を結合することで得られたメルカトル画像に対しデプスイメージベースドレンダリングを施すとなると、メルカトル画像を一時的に格納しておくためのメモリ規模が多大なものになり、製品低価格化を妨げるという問題がある。またメルカトル画像は、本来球体モデルへの貼付けを意図したものだから、貼付け状態において、画像の一方の端部と、他方の端部とが向かい合うことになり、境界が発生する。この場合、デプスイメージベースドレンダリングを行うことで境界が画素のない空白部分となり、表示の品位を低下させる。

0007

以上のように平面視画像とデプス画像からステレオ画像を生成する場合、ステレオ画像生成過程で発生する画像両端での画素シフトにより、個々の画像同士のシームレス性が失われ、結果として画像同士の境界上は不自然な形で表示されるという課題がある。

0008

本発明の目的は、立体視再生時において、画素の空白部分を生じさせることがない画像描画装置を提供することである。

課題を解決するための手段

0009

背景画像がストリートビューであるとの仮定下で技術的課題提示したが、この仮定は、上記技術的課題を説明するにあたって、身近な題材を選んだに過ぎず、本願で対象としている技術的課題は、背景画像が上記のストリートビューの例であるケースに限定されない。何等かの画像を複数結合して立体視の対象とする際の視覚上の不整合解消全般が、本願の技術的課題であり、近い将来において、上記技術を工業製品の分野で実用化しようとする際、当業者が必ず直面する技術的障壁である。

0010

かかる課題を解決することができる画像描画装置は、結合画像データについての立体視を実現する画像描画装置であって、
前記結合画像データは、複数の背景画像データが横方向に結合したものであり、
結合画像データを構成する個々の背景画像データに対して画素シフトを施すと共に、当該画素シフトに伴う境界処理を施すことで、2以上の視点テクスチャを得る画素シフト手段と、
三次元モデリング空間における立体モデルの内側表面に、2以上の視点テクスチャをマッピングするテクスチャマッピング手段と、
テクスチャマッピングがなされた立体モデルから、2以上の視点のそれぞれに対応するビューポート画像を抽出するビューポート変換手段とを備え、
前記画素シフトは、
個々の背景画像データを構成する画素の座標を横方向に移動させる処理であり、画素の移動量は、結合画像データに対応するデプス画像データにおける画素の奥行き値に基づき定められ、
前記境界処理は、
横方向への画素座標の移動によって個々の背景画像データの表示範囲からはみ出すことになる画素群を抽出して、抽出されたはみ出し画素群を、結合画像データにおいて横方向に隣接する他の背景画像データの端部に書き込む処理であることを特徴とする。

発明の効果

0011

本発明によれば、シフトにより領域外となった画素を、隣接する画像のシフト方向とは反対側の端部に追加するので、シフトにより領域外になった画素群が消失することはない。画像の境界における画素消失がなくなるため、画像を横方向に結合した場合の一体感がまし、リアルな360度パノラマ画像を実現することができる。また、画像を球体に貼付ける場合において、その結合体の一方の端部に存在する画像と、反対側の端部に存在する画像とが隣り合うことになる。この場合、一方の端部に存在する画像をシフトすることで領域外となった画素は、反対側の端部に追加されることになるから、これらの複数の画像の結合体を球体モデルに貼付ける場合であっても、シフトで領域外となった画素が消失することにはならない。これにより画像の一体感が増す。

0012

例えば縦4×横7の背景画像を結合した全周囲画像をシフトするにあたって、縦4×横7の画像全体をメモリに格納する必要はないから、省メモリ化の実現が可能になる。

0013

任意的であるが前記画像描画装置は、
表示領域バッファと、領域外バッファと、画素シフトの処理がなされた処理済みの背景画像データを格納しておくためのテクスチャメモリとを備え、
前記画素シフトは、
前記結合画像データを構成する複数の背景画像データのうち、処理対象になるものを表示領域バッファに格納して、表示領域バッファ上で背景画像データを構成する画素の座標を横方向に移動させると共に、背景画像データの表示範囲から画素がはみ出た画素群を抽出して領域外バッファに書き込むことでなされ、
前記境界処理は、
領域外バッファからはみだし画素群を読み出して、テクスチャメモリに格納された処理済み背景画像データにおける一方の端部に書き込むことでなされてもよい。シフトのための表示領域バッファの規模は、結合画像全体のものではなく、1つの背景画像データを格納しうる容量で足りる。画素シフトに必要なメモリの実装量は最低限になるから、画像描画装置をデジタル家電に搭載するにあたってのコスト高騰を危惧する必要はない。

0014

任意的であるが、前記結合画像データが、1つのメルカトル画像データの一方の端部と、他方の端部とを結合することで得られる結合メルカトル画像データである場合、
前記境界処理は、
結合メルカトル画像データにおける各画素がデプス画像データを元にシフトされることにより、メルカトル画像の表示範囲からはみ出すことになる画素群を抽出して、抽出されたはみ出し画素群を、抽出された端部とは逆側の端部に上書きしてもよい。一枚のメルカトル画像を球体モデルの内側表面に貼付ける場合において、その画像の一方の端部は、自身の反対側の端部と隣り合うことになる。この場合、シフトで領域外になった画素を、シフト方向とは反対側の端部に追加することで、一体感がある画像が球体モデルに貼付けられることになり、空白部分の発生を回避することができる。

0015

任意的であるが、前記画像描画装置は、ユーザ操作に従って、地図上のカレント視点位置と、カレント視線方向とを判定する位置方向判定手段と、
地図上のカレント視点位置に対応する地理的情報を用いて画像取得要求を作成し、画像収集サーバに送信することでストリートビューファイルダウンロードを行う取得手段とを備え、
画像収集サーバからダウンロードされたストリートビューファイルは 画像取得要求に含まれる地理的情報と合致する撮影地属性を有し、
前記結合画像データは、ダウンロードされたストリートビューファイル内に存在してもよい。背景画像は、地球上の地理的情報を用いた画像取得要求に応じて送信されるので、ユーザは家屋の中に居ながら、世界中の好きな場所の光景をサーバからダウンロードしてこれを自分の写真に合成させることができる。かかるサービスにより世界中を旅行したような仮想体験をユーザに経験させることができる。

0016

任意的であるが、前記結合画像データは視点周囲画像であり、複数の背景画像データを横方向に結合させることで画像取得要求における地理的情報に対応する地理的位置から周囲を見渡した場合の光景を表してもよい。写真ファイルに存在する地理的情報をキーワードとして背景画像の検索をサーバに行わせ、所望のストリートビューファイルを取得するので、画像描画装置がデジタルテレビに組み込まれる場合、デジタルテレビと、立体視カメラとを連携させた新規なサービスが可能になる。これにより、デジタルテレビと、立体視カメラとをセットで販売する場合に、競合商品との差別化が可能になる。

0017

任意的であるが、前記結合画像データは視点周囲画像であり、複数の背景画像データを横方向に結合させることで画像取得要求における地理的情報に対応する地理的位置から周囲を見渡した場合の光景を表してもよい。ユーザは、視点周辺画像に現れる範囲で、自由に視線を変化させることができ、追体験機能の充実化を図ることができる。

図面の簡単な説明

0018

立体視グローバルビュー検索サービスの全体構成を示す。
ストリートビューの対象となる仮想空間を模式的に示す図である。
複数の背景画像が横並びに貼りつけられた球面モデルの内側表面を表す。
三次元モデリング空間において立体視再生時に作成される2つの球面モデルを示す。
球体の内側表面に貼りつけられた背景画像から多視点画像を作成する過程を示す。
左シフト後の全周囲画像、右シフト後の全周囲画像が貼りつけられた状態の球面モデルを示す。
左目用テクスチャ、右目用テクスチャの配置を示す。
前景画像と、背景画像との合成を示す。
追体験映像の一例を示す。
ストリートビューナビの画面構成の一例を示す。
実施の形態1における描画装置入出力形態の一例を示す図である。
画像描画装置の使用形態の一例を示す図である。
画像描画装置の機能構成を示すブロック図である。
ネットワークインターフェース3、もしくは、ローカルストレージ4から取得される全周囲画像と対応するデプス画像の一例である。
デプス画像をベースにして、全周囲画像の各画素をシフトすることにより他視点からの画像を生成する過程を示す図である。
画像において座標(x,y)に存在する画素Pix(x,y)と、デプス画像において座標(x,y)に存在する画素depth(x,y)とを示す。
画素レベルのシフトにより、左目テクスチャ、右目テクスチャにおいてどのような視差がもたらされるかを示す。
全周囲画像メモリ13、デプス画像メモリ、左目テクスチャメモリ22、右目テクスチャメモリ23の内部構成と、画素シフト部18、表示領域バッファ19、領域外バッファ20との関係を示す。
デプス画像メモリ、全周囲画像メモリ13、左目テクスチャメモリ22間のデータフローを示す。
デプス画像メモリ、全周囲画像メモリ13、左目テクスチャメモリ22間のデータフローを示す。
左目テクスチャが形成されてゆく過程を示す。
右目テクスチャが形成されてゆく過程を示す。
右目テクスチャが形成されてゆく過程を示す。
全周囲画像の立体視化手順を示すフローチャートである。
水平360度ステレオ画像生成処理のフローチャートである。
DIBR処理だけに基づいて得られる右目用の全周囲画像と、画素シフト及び境界処理を行なって得られる右目用の全周囲画像との対比を示す図である。
実施の形態2における全周囲画像と、これに対応するデプス画像を示す図である。
実施の形態2における、画素シフト後の画像を補正し、ステレオ画像を生成する様子を示す図である。
テクスチャマッピング部28によるテクスチャマッピングを示す。
画像描画装置のハードウェア構成図である。
GPUの内部構成を示す図である。
球面モデルと、テクスチャとの対応付け、及び、テクスチャマッピングを実現するためのAPI呼出しの記述例である。

実施例

0019

上記課題解決手段を具備した画像描画装置の発明は、ストリートビューを再生するためのデジタル家電機器として実施することができ、集積回路の発明は、当該デジタル家電機器に組込まれるシステムLSIとして実施することができる。画像描画方法の発明は、このデジタル家電機器で実現される時系列手順として実施することができる。画像描画プログラムの発明は、コンピュータ読み取り可能な非一時的記録媒体に記録され、デジタル家電機器にインストールされる実行形式プログラムとして実施することができる。画像描画装置の説明に先立ち、画像描画装置の使用環境である立体視グローバルビュー検索サービスの全体構成について説明する。

0020

図1は、立体視グローバルビュー検索サービスの全体構成を示す。グローバルビュー収集サーバ1001は、世界中から収集された背景画像を、デプスデータ地形データと対応付けて格納しているサーバであり、クライアント装置からの要求に応じて視点周囲画像を、デプス画像、地形データと共に送信する。背景画像は、専用の撮影車両走向中に撮影されたものである。デプスデータは、その撮影時に取得したランドマークの奥行きを示す。 更に視点周囲画像とは、グローバルビュー収集サーバ1001に対して送信した画像取得要求における地理的情報に対応する地理的位置から周囲を見渡した場合の光景を表すものである。視点周囲画像は例えば90度、120度、180度、360度といった比較的広い視野を見渡せる画像であり、特に、360度の視野を見渡せる視点周囲画像をパノラマ画像または全周囲画像と称することもある。説明の便宜上、以降の説明において視点周囲画像は360度の視野を見渡せるパノラマ画像、つまり全周囲画像であると仮定する。この撮影車両は、複数のカメラを具備していて、複数のカメラで、車両が存在する場所を、縦4×横7の背景画像により表す。デプス画像は、デプスデータにおけるランドマークの奥行きを、画素の輝度によって表したものであり、背景画像の奥行きを表す。つまりデプス画像の個々の画素は、背景画像の個々の画素を奥行きを示す奥行き情報になる。

0021

クライアント装置1002は、デジタルテレビ等、ネットワーク対応家電機器であり、サーバに対してダウンロード要求mg1を送信し、全周囲画像mg2、デプス画像mg3を受信する。この全周囲画像を用いて、3Dストリートビューを実行する。かかるダウンロード要求は、緯度経度標高の情報を含み地球上の任意の場所の全周囲画像の送信を要求することができる。

0022

眼鏡1003は、ユーザが立体視でのストリートビューの視聴希望する場合に、ユーザによって着用される。ここでの立体視は、多視点画像群により実現されるものである。ここで多視点画像群とは、左目用画像右目用画像、中央、右斜上画像、右斜下画像、左斜上画像、左斜下画像というように、2以上の視点に対応する視点画像によって立体視を実現する視点画像の集合体である。多視点画像群の全てのバリエーションについて説明を行うとすると説明が煩雑になるので、以降の説明において、多視点画像群は、必要最低限の視点画像の組み、つまり、左目画像右目画像の組みからなるステレオ画像群であるとして進める。

0023

図2は、ストリートビュー立体視システムを模式的に示す図である。本図の上半分はモデルが存在する仮想空間であり、下半分は、クライアント装置1002、眼鏡1003が存在する現実空間である。

0024

まず仮想空間について説明する。仮想空間とは、立体モデルの幾何学形状を規定する三次元座標を配置するための座標系にて規定される三次元モデリング空間である。立体モデルの形状は問わない。円柱円錐三角錐楕円体等、どのような形状の三次元モデルでもよいが、説明の便宜のため、以降の説明は、球面モデルとして説明を行う。立体モデルである球体の中心は、カメラの位置である。簡単のため、球面モデルは1つのみをえがいているが、立体視時には、左目用、右目用のそれぞれについての球面モデルが存在する。図中のカメラCLは、球面モデルの中心から右側にpだけ隔てた位置に配置されるカメラである。カメラCRは、球面モデルの中心から左側にpだけ隔てた位置に配置されるカメラである。これらカメラCL、CRは、左目撮影時、右目撮影行為時における球面モデルの中心位置になる。

0025

この立体モデルの斜め上には、縦4×横7の背景画像を結合した全周囲画像が配置される。全周囲画像には、右目用の全周囲画像m1と、左目用の全周囲画像m2とがあり、右目用テクスチャと、左目用テクスチャとでは、三次元モデリング空間における配置位置が異なる。本図では、球面モデルの上半分のみを描いているが、実際は下半分も存在する。また全周囲画像についても、上半分のみを描いているが、実際は下半分も存在する。

0026

次に球面モデルについて説明する。球体の内側表面には、右目用テクスチャの貼付け範囲m4、左目用テクスチャの貼付け範囲m5が存在する。球面モデルにおける貼付け範囲とは、球面モデルにおいて、4つ又は3つの交点にて規定されるグリッドのことである。かかるグリッドは、球面モデルの曲率を有し、球面モデルの極座標頂点とした三角形ストリップの一部又は全部として定義される。テクスチャマッピングにあたっては、図形タイプを三角形ストリップとして、背景画像が格納されたテキストバッファ座標との対応付けをすることで、グラフィクス描画を実行する。テクスチャの手前には、表示面が存在し、この表示面にはビューポートmg6が定義される。ビューポートは、三次元モデリング空間のうち、表示に供される部分を規定するものである。このビューポートに投影される映像が、再生に供されることになる。ビューポートは、左目の投影範囲、右目の投影範囲が交差する場所に存在している。つまりビューポートは、左目用と、右目用とで共通の位置に配置される。

0027

球面モデルの内側に貼付けられるテクスチャは全周囲画像であるから、360°の全周囲を見渡せることになる。三次元モデリング空間における球面モデルをメルカトル図形に展開すれば、全周囲画像になる。半球体における縦2×横7のグリッドの個数は、全周囲画像における縦2×横7の背景画像の個数と一致する。つまり全周囲画像における個々の背景画像をテクスチャに変換して、球面モデルの個々のグリッドに貼付けるというテクスチャマッピングを行う。

0028

以上が仮想空間についての説明である。続いて、現実空間について説明する。

0029

本図では、立体モデルである球体の真下にクライアント装置1002と、眼鏡1003を着用したユーザの顔とを描いている。クライアント装置1002の表示画面は、球面モデル内のビューポートの真下に存在する。また眼鏡1003は、カメラCL,CRの真下よりやや奥に存在する。これは、ユーザの右目、左目はカメラCL,CRの位置となるので、眼鏡1003はこれの近くに配置せねばならないからである。

0030

上述したように、カメラCL、CRの位置がユーザの右目、左目に該当し、ビューポートがクライアント装置1002の画面に該当するから、クライアント装置1002と、ユーザとの間に立体視画像出現する。仮想空間において、家屋は平面的に表現されていたが、現実空間において家屋は、クライアント装置1002の画面から飛出す形になっている。

0031

図3は、球面内側に貼りつけられたテクスチャを、球面モデル中心から視聴した状態を示す。図3は、複数の背景画像が横並びに貼りつけられた球面モデルの内側表面を表す。図3では、正面には近代的な教会が配置され、右手側滑り台が存在する。これらは球体の内側表面に貼りつけられたものであるから、断面円の中心にカメラを配置した場合、これを全周囲から取り囲むように背景画像が配置されることになる。この球面モデルに貼付けられたテクスチャは、地球上の緯度、経度、標高から定まる視点位置に伴い変化する。つまり画像描画装置は、視点位置の変更操作がユーザによってなされた場合、地球上の地理的情報(緯度、経度、標高等)から定まるカレント視点位置を更新して、更新後のカレント視点位置に合致した全周囲画像をダウンロードし、この全周囲画像を球面モデルに貼付けて、再描画を行う。

0032

図2の球面モデルは、球面モデルの中心にカメラが存在していたが、これは平面視のためのカメラ位置であり、立体視のカメラ位置は異なる。立体視時には、球面モデル中心からpだけ隔てられた位置にカメラを配置することで球面モデルが2つ得られる。図4は、三次元モデリング空間において立体視再生時に作成される2つの球面モデルを示す。図4(a)は、左目用の球面モデルであり、横7枚の背景画像を横方向に結合した画像に対してDIBRを実行することで作成された左目用画像が内側に貼付けられている。

0033

図4(b)は、(a)の画像に対してデプス画像をベースにしたデプスイメージベースドレンダリングを実行することで作成された右目用画像であり、横7枚の背景画像を横方向に結合した画像に対して、デプス画像をベースにしたデプスイメージベースドレンダリングを実行することで作成された右目用画像が内側に貼付けられている。

0034

全周囲画像を構成する横7枚の画像を、画像A,B,C,D,E,F,Gとする。この画像A〜Gから右目用テクスチャ、左目用テクスチャをどのように作成するかについて説明する。図5は、この球体の内側表面に貼りつけられた背景画像から多視点画像を作成する過程を示す。(a)は、球体内側表面を分割することで得られた7つの分割領域に、全周囲画像を構成する横7枚の画像のうち、A、B、C、D、Eという5枚の背景画像をA→B→C→D→Eの順序で貼りつける一例を示す。図5(a)の画像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、EMERとしている。これらの画素群は画像において"V"の形状をなしている。

0035

左目用テクスチャの作成では、画像A〜Eを結合してDIBRを実行する。これにより左端部分の画素が、表示領域外になるから、図5(a)における画素集合BL,CL,DL,EL,FLを、隣接する画像である画像A,B,C,D,Eの右側の端部に追加する。この結果が、図5(b)である。図5(b)に示すように左目用テクスチャは、画素群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)から構成されることになる。紙面上の都合から、図5では画像F、Gについては図示を省略しているが画像F、Gについても本図と同様の処理がなされる。

0036

右目用テクスチャの作成では、画像A〜Eを結合してDIBRを実行する。これにより右端部分の画素が、表示領域外になるから、図5(a)における画素集合GR,AR,BR,CR,DRを、隣接する画像である画像A,B,C,D,Eの側の左側の端部に追加する。この結果が図5(c)である。図5(c)に示すように右目用テクスチャは、画素群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)から構成されることになる。

0037

図6(a)は、図5(b)の左シフト後の画素が球面内側に貼りつけられた場合のテクスチャを示す。図6(b)は、図5(c)の右シフト後の画素が球面内側に貼りつけられた場合のテクスチャを示す。

0038

図7(a)は、図1の三次元モデリング空間において、左目用テクスチャ、右目用テクスチャと、ビューポートとの関係を示す。図7(a)は、左目用テクスチャの配置である。本図において、左目用カメラの視線ベクトルの先に、左目用テクスチャが配置され、左目用テクスチャが球面モデル内側に貼付けられる。これによりビューポートに該当する部分が表示に供されることになる。図7(b)は、右目用テクスチャの配置である。本図において、右目用カメラの視線ベクトルの先に、右目用テクスチャが配置され、右目用テクスチャが球面モデル内側に貼付けられる。これによりビューポートに該当する部分が表示に供されることになる。

0039

図8は、前景画像と、背景画像との合成を示す。(a)は、題材となる前景画像、これは近代的な教会を背にして新郎新婦が向かい合っているという内容のスナップ写真である。この近代的な教会は、背景画像にも存在するので、教会の輪郭線形状は、前景画像及び背景画像の共通の特徴となる。図8(b)は、前景画像と、背景画像とのマッチングを示す。かかるマッチングにより、背景画像、前景画像の対応関係を示す変換行列ができるから、かかる行列に従い、前景画像のデプス画像を変換した上でDIBRを行えば背景画像と違和感がない合成画像が得られることになる。

0040

この図8の合成を前提として、追体験が可能になる。図9は、画面合成の一例を示す。視線vw1は、眼鏡1003によって右目が遮光された場合の映像の入射を示す。視線vw2は、眼鏡1003によって左目が遮光された場合の映像の入射を示す。このvw1により左目画像が視聴されることになる。またvw2により右目画像が視聴されることになる。眼鏡1003を着用することによりユーザは、右目画像、左目画像を交互に視聴することになり、立体視画像が再生される。図9の画像は、変換行列に従いビューポートに得られた前景画像と、背景画像とを合成することで得られる立体視画像である。球面体内部に貼りつけられた複数の背景画像を背にして人物が表示されるので、臨場感が高い立体視映像が得られる。以上のように、写真のグローバル位置に合致した全周囲画像をサーバから取得すれば、その写真に合致した全周囲画像に写真を合成することができる。

0041

またストリートビューには、UIオブジェクトを合成することができる。図10は、UIオブジェクトが合成されたストリートビューを示す。方向ナビuiは、カレントの視線方向を視覚的に表示する。インディケータir1,ir2は、カレントの視点位置が存在する地名(loss-LessCity central park)や建造物名称(CABAC church)を表す。十字ボタンbn2は、カレント視点位置を変更させる場合において、その進行方向の選択を受け付けるものである。ズームアップボタンbn3は、視点位置、視線方向をそのままにして、表示内容の拡大・縮小操作を受け付けるものである。アングルタンbn4は、カレント視線方向の右旋回、左旋回の指定を受け付けるものである。これらのGUIは、リモコンキー割り当てられるので、リモコンに対する操作により、ストリートビューにおける移動、回転といった制御が可能になる。以上がグローバルビュー検索サービスについての説明である。
(実施の形態1)
実施の形態1は、結合背景画像を構成する個々の背景画像に対して画素シフトを施す際、この画素シフトによって生じる"はみだし画素"を好適に処理する改良に関する。

0042

図11は、実施の形態1における画像描画装置の入出力形態の一例を示す図である。描画装置101は入力として、全周囲画像と対応するデプス画像(デプスマップ)を受け取り、左目用と右目用の画像出力を行う。出力される左目画像、右目画像は立体視対応ディスプレイにて同期して画面上に描画され、視聴者には立体画像として知覚される。
1地点からの全周囲画像は、縦4枚、横7枚の計28枚の部分画像から構成される。各部分画像1枚は縦512画素、横512画素の画素数を持つ。デプス画像(デプスマップ)は、立体空間における各画素の奥行きを示すものであり、色がより黒い部分が立体空間上、奥に位置する物体であり、色が白い部分が、立体空間上手前に存在していることを示している。

0043

描画装置は、各部分画像毎にデプス画像を適用し、入力される部分画像数と同じく、それぞれ28枚の右目用画像と左目用画像を生成する。生成された右目用画像、左目用画像はそれぞれ球面上に貼り付けられ、3Dモデリング空間上、球体の中心から球面側を見た範囲を、左目用と右目用で同期して画面上に出力することで、全周囲の立体画像を表示する。

0044

図12は、画像描画装置の使用形態の一例を示す図である。ユーザはリモコン102を用いて、視聴したい場所やアングルを指定し、立体視対応ディスプレイ103に出力される映像を、液晶シャッターメガネ104を通して視聴することで、任意地点・アングルの全周囲画像を立体的に知覚することができる。

0045

立体視対応ディスプレイ103は描画装置101と接続されているか、もしくは描画装置101の機能を内蔵している。図12における使用形態の例では、立体視対応ディスプレイ103が描画装置101の機能を内蔵しており、立体視対応ディスプレイ103はインターネットを経由しサーバ105と接続されている。立体視対応ディスプレイ103は、ユーザが指定した場所に対応する全周囲画像とデプス画像をダウンロードし、右目用画像と左目用画像を生成し同期して画面上に表示する。

0046

図13は、描画装置の機能構成を示すブロック図である。図13に示すように、描画装置101は、ユーザ操作検知部1、位置方向判定部2、ネットワークインターフェース3、ローカルストレージ4、描画制御部5、左目プレーンメモリ6、右目プレーンメモリ7、及び出力インターフェース8から構成される。

0047

(ユーザ操作検知部1)
ユーザ操作検知部1は、ユーザのリモコン操作キーボード操作マウス操作などを検知し、対応する操作コード上下左右キー押下、右クリック押下などのユーザ操作を示すコード)を位置方向判定部2に送る。

0048

(位置方向判定部2)
位置方向判定部2は、ユーザ操作検知部1から受け取った操作コードを元に、地図上のどの位置の全周囲画像を、どの視点方向で見た画像を表示すべきかを判定する。地図上の位置はカレント視点位置であり、緯度と経度を含む地理的情報で特定される。また視点方向はカレント視線方向であり、水平角度垂直角度で特定される。水平角度はを0度とし時計回りに0度から360度の範囲で表現される。垂直角度は地平線を0度、真上が90度、真下が-90度として、-90度から90度の範囲で表現される。位置方向判定部2は、受け取った操作コードを元に、これら緯度、経度、水平角度、垂直角度を特定し、特定された値を描画制御部5へ渡す。

0049

(ネットワークインターフェース3)
ネットワークインターフェース3は、要求送信部、応答受信部を具備している。要求送信部は、地球上のカレント視点位置を指定した画像取得要求をグローバルビュー収集サーバ1001に送信する。ここで要求送信部は、地図画像に対するユーザ操作がなされた場合、ユーザ操作で指定された位置に対応について地理的情報を用いてカレント視点位置を指定する画像取得要求を作成してグローバルビュー収集サーバ1001に送信する。応答受信部は、画像取得要求に対する応答として、グローバルビュー収集サーバ1001から送信されてくる立体ストリートビュー視点ファイルを受信する。グローバルビュー収集サーバ1001から送信されてくる立体ストリートビュー視点ファイルは 画像取得要求に含まれる地理的情報と合致するさ8位置属性を有している。

0050

ダウンロードされたストリートビューファイルには全周囲画像及びデプス画像が存在する。ストリートビューファイルは、一旦立体画像描画装置内のローカルストレージ4に格納される。これらを直ちに表示する場合、ローカルストレージ4には格納せず装置内のメモリ上にダウンロードされた全周囲画像をそのまま画像取得部に渡す。

0051

(ローカルストレージ4)
ローカルストレージ4は、ハードディスクドライブ(HDD)、USBメモリSDメモリーカードなど、描画装置に取り付けられている記録媒体である。サーバからダウンロードしたストリートビューファイルをキャッシュしたり、サーバ以外の外部機器で作成したストリートビューファイルを描画装置で利用するなどの用途に用いられる。ローカルストレージ4の理解を高めるため、その格納内容であるストリートビューファイルについて説明する。ストリートビューファイルとは、地球上の任意の地点での視点を再現するファイルであり、地球上のその視点における撮影地属性に、全周囲画像である圧縮メルカトル画像と、対応するデプス画像である圧縮メルカトルデプスと、撮影日時、データサイズを対応付けたファイルである。ここでの撮影地属性とは、緯度、経度、標高、方角、傾斜である。ストリートビューファイルは、立体写真ファイルと共通のデータ構造をもっているので、ある視点位置に最適なストリートビューファイルを検索する際、データベースに存在するストリートビューファイルのうち、撮影地属性として同一の緯度、経度、標高をもつものサーチすれば、ユーザが希望するストリートビューファイルを早期に発見することができる。以上がローカルストレージ4についての説明である。

0052

(描画制御部5)
描画制御部5は、位置方向判定部2から指示された地図上の位置と、ネットワークインターフェース3もしくはローカルストレージ4から取得した全周囲画像及びデプス画像を元に、3Dモデリング空間で球面上に貼り付けられた全周囲画像を、右目用と左目用の2種類作成し、位置方向判定部2から指示された視点方向で球の中心から球面を見たときに表示されるべきビューポート画像を抽出し、抽出された左目ビューポート画像、右目ビューポート画像を、それぞれ左目プレーンメモリ6、右目プレーンメモリ7に出力する処理を行う。

0053

(左目プレーンメモリ6)
左目プレーンメモリ6は、立体視表示において左目に対して提示すべき一枚の画像を格納するメモリである。

0054

(右目プレーンメモリ7)
右目プレーンメモリ7は、立体視表示において右目に対して提示すべき一枚の画像を格納するメモリである。

0055

(出力インターフェース8)
出力インターフェース8は、左目プレーンメモリ6、右目プレーンメモリ7に格納された画像を1フレームずつ同期して立体視対応ディスプレイ103へ出力する。具体的には120Hzで、左右のプレーンメモリから画像を交互に読み出し、左右それぞれ秒間60コマの映像をディスプレイ側へ送信する。視聴するユーザは液晶シャッターメガネ104を装着し、液晶シャッターが120Hzで交互に開閉を繰り返すことで、左目には左目用の秒間60コマの画像を、右目には左目用の秒間60コマの画像を見ることが出来るため、左右の画像の視差から奥行きを知覚することができる。

0056

以上が画像描画装置の基本構成についての説明である。続いて、描画制御部5の内部構成について説明する。描画制御部5はさらに、全周囲画像取得部11、全周囲画像デコーダ12、全周囲画像メモリ13、デプス画像取得部14、デプス画像デコーダ15、デプス画像メモリ16、DIBR部17(画素シフト部18、表示領域バッファ19、領域外バッファ20、境界処理部21)、左目テクスチャバッファ22、右目テクスチャバッファ23、CG処理部24(モデリングデータ格納部25、頂点変換部26、照度計算部27、テクスチャマッピング部28、ビューポート変換部29)から構成される。

0057

(全周囲画像取得部11)
全周囲画像取得部11は、位置方向判定部2から指示された地図上の位置(緯度と経度で特定)に対応する全周囲画像を、ネットワークインターフェース3を介してサーバ105からダウンロードするか、もしくはローカルストレージ4から画像の取得を行う。1地点からの全周囲画像は、縦4枚、横7枚の計28枚の部分画像から構成され、各画像1枚は縦512画素、横512画素の画素数を持つ。図15(a)は、全周囲画像の一例を示す。

0058

(全周囲画像デコーダ12)
全周囲画像デコーダ12はJPEGデコーダであり、圧縮メルカトル画像802の展開を行い全周囲画像メモリ19に格納する。

0059

(全周囲画像メモリ13)
全周囲画像メモリ13は、全周囲画像デコーダ12より展開されたメルカトル画像を格納するメモリである。

0060

(デプス画像取得部14)
デプス画像取得部14は、全周囲画像取得部11が取得した全周囲画像に対応するデプス画像を、ローカルストレージ4に格納されたストリートビューファイルから取得する。

0061

(デプス画像デコーダ15)
デプス画像デコーダ15は、PNGデコーダであり、立体ストリートビュー視点に含まれる圧縮メルカトルデプスの展開を行いデプス画像メモリ16に格納する。

0062

(デプス画像メモリ16)
デプス画像メモリ16は、デプス画像デコーダ15より生成されたデプス画像を格納するメモリである。デプス画像は、立体空間における各画素の奥行きを示すものであり、各画素の奥行きを8ビットの輝度で表現している。輝度0(黒色)は、対応する画素が最も遠い位置にあることを示し、輝度255(白色)は、対応する画素が最も近い位置にあることを示す。つまり、全周囲画像がカラー画像として見えるのに対し、デプス画像は輝度のみで表現されたグレースケール画像として認識される。デプス画像を示すグレースケール画像も、全周囲画像と同様、1地点につき、縦4枚、横7枚の計28枚の部分画像から構成され、各画像1枚は縦512画素、横512画素の画素数(各画素は8ビットの輝度のみ保持)を持つ。

0063

図14はネットワークインターフェース3もしくはローカルストレージ4から取得される全周囲画像と対応するデプス画像の一例である。全周囲画像の1画素に対し、それぞれ8ビット(256段階)のデプス画像が割り当てられている。奥行き値0が3D空間上で最も奥に位置することを示し、奥行き値255が3D空間上で最も手前に位置することを示している。これらの奥行き値は、8ビットの輝度として割り当てられ、デプス画像は図14に示すようにグレースケールの画像(デプスマップ)として表現される。

0064

デプス画像における1画素が、それぞれベースとなる全周囲画像の1画素の奥行き値(デプス値)に対応している。例えば、デプスマップ画像上の座標(X=100,Y=100)の画素の輝度が50であった場合、対応する全周囲画像の座標P(X=100,Y=100)の画素は奥行き値50であることを示し、デプスマップ画像上の座標(X=200,Y=200)の画素の輝度が100であった場合、対応する全周囲画像の座標Q(X=200,Y=200)の画素は奥行き値100であることを示す。

0065

すなわち、全周囲画像の座標P(X=100,Y=100)は奥行き値50、全周囲画像の座標Q(X=200,Y=200)は奥行き値100であるから、座標Pの方が座標Qより、3D空間上で奥に位置することになる。

0066

<DIBR部17>
DIBR部17は、全周囲画像取得部11からベースの左目用全周囲画像を、デプス画像取得部14からベース画像に対応するデプス画像を取得し、DIBR処理を行い、右目画像を生成する。DIBR(Depth Image Based Rendering、もしくはDepth Image Based Representations)とは、デプス画像(デプスマップ)を元に、ベース画像から各画素を左右にシフトして他視点からの視点画像を生み出す処理のことである。ベースの全周囲画像を左目用に割り当てる場合、生成される他視点からの視点画像(すなわち右目用の画像)上の画素は、ベースの画素に対し右にシフトすれば、3D空間上で奥側に移動し、ベースの画素に対し左にシフトすれば、3D空間上で手前に移動することになる。これは、いわゆる人間の目の輻輳角の差によって生み出される立体知覚によるものであり、ベースの左目画像に対し、右目画像上の画素を左にシフトすると輻輳角が小さくなり、いわゆる寄り目状態となるため、その画素で表現される物体が手前に位置するように知覚される。反対に、ベースの左目画像に対し、右目画像上の画素を右にシフトすると輻輳角が大きくなり、その画素で表現される物体が奥に位置するように知覚される。よって、デプス画像で示される各画素の奥行き値に応じ、ベースの左目画像の各画素を左右にシフトすれば、対応する立体視可能な右目画像を生成することができる。

0067

ただし、DIBR処理に基づいて生成される右目画像はまだ不完全である。画像中央付近でシフトされる画素については問題ないが、画像の両端部にてシフトされる画素については、画素の座標やシフト量によっては、シフト後の画素が画像領域外の位置となる場合がある。また、画像の端部で、中心方向にシフトする場合、シフト前の位置を埋める画素が欠けてしまうという問題も発生する。

0068

これらの問題について、図15を用いて具体的に説明する。図15は、ベースの全周囲画像の各画素を、デプス画像を元にシフトして他視点からの視点画像を生成する様子を示す図である。

0069

この図15の一例では、最も単純な対応付けとして、シフト量0となる基準値を、奥行き値0とし、奥行き値が大きくなるにつれて、より多く左へシフトすることとする。ここでは、便宜上、奥行き値が1増加することに、左へのシフト量を1ずつ増やすこととする。つまり、奥行き値0の画素はシフトなし、奥行き値50の画素は左方向へ50ピクセル分のシフト行うことになる
図15(a)の左上に存在する画像は、複数の背景画像が結合した全周囲画像である。この画像には、左端部にが、右端部には隣の画像にまたがる形で家が描かれている。図15(a)の右上に存在する画像は、対応するデプス画像である。このデプス画像には、空を表現している背景に相当している部分が最も奥(奥行き値0)に位置しており、空より手前に雲、家が位置していることを示している。図15(a)では、雲の奥行き値が50、家の奥行き値が100とする。DIBR処理においては、まずシフト量0となる基準値を決め、そこから、奥行き値に応じてシフト量を決めるものとする。

0070

図15では、空にあたる部分は奥行き値0であるため、シフトは行わない。一方、雲に関しては奥行き値が1以上のため、画素シフトを行う。ビルは奥行き値が50であるため、雲を構成している画素を左方向へ50ピクセル分シフトする。ビルに関しては奥行き値100であるため、ビルを構成している画素は左方向に100ピクセル分シフトする。全周囲画像を構成する個々の画像に対して画素シフトを行った結果が図5(b)の画像である。雲は元々の位置が左端部付近であったため、シフト後の結果が表示領域からはみ出した位置となっている。一方、家に関しては、右端部に位置し、隣の画像とまたがって描かれているため、左方向へシフトした後は、本来あるべき画素が隣の画像にあるため、シフトによる余白が発生し、一部が欠けた状態となっている。雲の左端、家の真ん中部分、山の真ん中部分を構成する画素がそれぞれはみ出し画素になっていることがわかる。そこでDIBR部17は、境界処理部21を具備することにより、シフトによる余白を補完する処理を行う。図15(c)は、その補完結果である。図15(b)に示したシフトによる余白は、隣接する画像のはみだし画素を用いて上書きされている。

0071

(画素シフト部18)
画素シフト部18は、全周囲画像メモリ13から横512×縦512の画素からなる画像データを取り出し、また、全周囲画像メモリ16から横512×縦512の画素からなるデプスデータを取り出して、この横512×縦512のデプスデータをベースにして横512×縦512の画素の集りに対する画素シフトを実行する。画素シフトを実行するにあたって、どのような視差を各画素に設定するかを述べる。デプス画像の座標(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)に変換することで画素の輝度を適切な視差に変換することができる。

0072

DIBRでは、画像を構成する複数の画素のうち、任意の座標(x,y)に位置するものの座標を水平方向に移動するにあたって、対応するデプス画像において座標(x,y)に存在する画素の輝度Y(x,y)によって導かれる奥行きDepth(x,y)から、その座標(x,y)に固有のoffset(Depth(x,y),y)を求めて、このoffset(Depth(x,y),y)を移動量として使用することで他視点からの視点画像を得る。図16(a)は、デプス画像において座標(x,y)に存在する画素の奥行きDepth(x,y)を示す。Depth(x,y)は、図16(b)におけるPix(x,y)と位置的に対応する。図16(b)は、画像メモリにおいて座標(x,y)に存在する画素Pix(x,y)を示す。図16(c)は、左目テクスチャを生成するにあたって、画素Pix(x,y)がどれだけシフトするかを示す。図16(c)では、全周囲画像メモリ18において、Pix(x,y)は水平方向にOffset(Depth(x,y))だけ変位している。そのため、Pix(x+Offset(Depth(x,y))、y)に位置することになる。Offset(Depth(x,y))とは、全周囲画像において、x,y座標に一意オフセットであり、デプス画像における対応画素の輝度によるDepth(x,y)から設定される。

0073

2以上の視点画像を作成するにあたって、画素が水平方向にどれだけ変位するかは、画像の画素毎に異なることになる。デプス画像における画素の輝度レベルと、シフト量である画素数との対応付けは上記数式から導くことができる。その対応付けの一例として、図16(c)のように設定することができる。

0074

図16(c)は、Y(x,y)における0〜255の輝度範囲と、1画素〜16画素の単位のオフセットとの対応付けを示す。本図では、0〜63の輝度範囲に0〜2画素の範囲のオフセットを、64〜127の輝度範囲に3〜4画素の範囲のオフセットを割り当て、128〜191の輝度範囲に5〜8画素のオフセットを、192〜255の輝度に9〜16画素のオフセットを割り当てるものである。つまり明るい部分の輝度範囲に割り当てるべき視差を大きくし、暗い部分の輝度範囲に割り当てるべき視差を小さくするという非線形な対応付けがなされている。

0075

図17は、画素レベルのシフトにより、左目テクスチャ、右目テクスチャにおいてどのような視差がもたらされるかを示す。図17(a)はデプス画像、図17(b)は左目テクスチャメモリの格納内容、図17(c)は、右目テクスチャメモリの格納内容を示す。

0076

Pix(x1,y)は、図17(b)において並ぶ3つのビルのうち、一番手前のビルの画素である。Pix(x2,y)は、3つのビルのうち2番目のビルの画素である。Pix(x3,y)は、3つのビルのうち3番目のものの画素である。

0077

図17(a)は、デプス画像の一例であり、左目テクスチャにおける画素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)の奥行きを示す。

0078

図17(c)の下側は、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)の関係があるから、一番手前にあるビルを構成する画素に対して一番大きな視差が与えられ画面から大きく飛出すことになる 以上のようにDIBRでは、デプス画像における対応画素の輝度に応じて画素の変位量は異なるものになるから、算術演算器を用いて、デプス画像における各画素の輝度からオフセットを算出すれば、ハードウェア素子により、画素シフト部18を実装することができる。以上が画素シフト部18についての説明である。続いて、表示領域バッファ19の詳細について説明する。

0079

(表示領域バッファ19)
表示領域バッファ19は、画素シフト部18のDIBRの処理結果となる画素の集りのうち、シフト後の座標が、表示領域内になるものを格納する。オリジナルの画像データの解像度が横M×縦Nである場合、画像データの左上座標原点(0,0)とした座標系において、X座標が0からM-1までの画素、Y座標が0からN-1までの画素が「表示領域」となる。そうすると、シフト後のX座標が、M以上となる画素を除外し、X座標が0からM-1までの範囲となる画素をこの表示領域バッファ19に格納する。シフトの対象が横512×縦512である場合、シフト後のX座標が、512以上となる画素を除外し、X座標が0から511までの範囲となる画素がこの表示領域バッファ19に格納されることになる。

0080

(領域外バッファ20)
領域外バッファ20は、画素シフト部18のDIBRの処理結果となる画素の集りのうち、シフト後の座標が、表示領域外になるもの、つまり"はみ出し画素"を格納する。オリジナルの画像データの解像度が横M×縦Nである場合、シフト後のX座標が、M以上となる画素が"はみだし画素"としてこの領域外バッファ20に格納されることになる。

0081

(境界処理部21)
境界処理部21は、DIBR処理による画素シフトで不完全になった画像の境界に対して補正を行う。画像の境界処理とは、次に隣接する画像データを画素シフト部18が処理する際、領域外バッファ20に格納されている表示領域範囲外の画素を用い、画像端部で欠落している画素を埋める処理をいう。

0082

(左目テクスチャメモリ22、右目テクスチャメモリ23)
右目テクスチャメモリ22、左目テクスチャメモリ23のペアは、ストリートビューDIBR実行部17がDIBRを行うことで得られた左目テクスチャと、右目テクスチャとを格納する。

0083

(CG処理部24)
CG処理部24は、モデリングデータを構成する三次元座標を三次元モデリング空間に配置して、その三次元モデリング空間における三次元座標をビューポートに投影する処理を行う。かかる処理には、座標・視野変換、照度計算(テクスチャマッピング処理)、ビューポート処理がある。

0084

(モデリングデータ格納部25)
モデリングデータ格納部25は、球体モデル及びGUI部品の形状を規定するモデリングデータを格納する。

0085

座標変換部26)
座標変換部26は、視点をカメラにし、カメラの方向やズームレベルを指定することにより、立体物を投影するスクリーンを決定する。その後、球面モデルのモデリングデータを規定する三次元座標を三次元モデリング空間におけるワールド座標に変換する。ここでの座標変換は、三次元モデリング空間におけるカメラ位置を原点とし、カメラから見た座標系でのワールド座標に、モデリングデータを規定する三次元座標を変換するというものである。

0086

(照度計算部27)
照度計算部27は、三次元モデリング空間において設定された光源位置から照射される光を立体物に当てたときの各頂点における照度の計算を行う。

0087

(テクスチャマッピング部28)
テクスチャマッピング部28は、3Dモデリング空間上に左目用と右目用の2つの球体を用意し、背景画像を変換することで得られた2以上の左目用テクスチャ、右目用テクスチャを三次元モデリング空間における球体モデルの内側表面にマッピングする。

0088

(ビューポート変換部29)
ビューポート変換部29は、ディスプレイの解像度等を含んだディスプレイ情報に従い、三次元モデリング空間における3次元座標頂点座標を2次元スクリーン座標に変換することでビューポート画像の抽出を行う。抽出される画像には、左目ビューポート画像、右目ビューポート画像があり、ビューポート変換部はこれらを、それぞれ左目プレーンメモリ6、右目プレーンメモリ7に出力する。位置方向判定部2からの指示が、カレント視点位置に変化はなく、カレント視線方向のみの変化であった場合、テクスチャマッピング部はテクスチャマッピング処理をスキップし、ビューポート変換部のみがカレント視線方向変化に伴うビューポートの再抽出及びプレーンメモリへの再出力のみを行う。

0089

以上が描画制御部5についての説明である。

0090

図18は、全周囲画像メモリ13、デプス画像メモリ、左目テクスチャメモリ22、右目テクスチャメモリ23の内部構成と、画素シフト部18、表示領域バッファ19、領域外バッファ20との関係を示す。本図では、メモリの記憶領域が格子状になっている。この格子のそれぞれは、メモリの記憶素子における記憶内容のそれぞれを意味する。記憶素子の記憶内容として画素値が存在する。この画素値は、輝度Y,赤色差Cr,青色差Cb,透明度αから構成される。

0091

上段にデプス画像メモリ16、全周囲画像メモリ13を描き、下段に左目テクスチャメモリ22、右目テクスチャメモリ23、中段には画素シフト部18、表示領域バッファ19、領域外バッファ20を描いている。全周囲画像メモリ13におけるA,B,C,D,E,F,Gは、全周囲画像を構成する横方向の7つの画像であり、各画像が縦512×横512画素の規模をもつ。左上の左目テクスチャメモリ22におけるA(dp),B(dp),C(dp),D(dp),E(dp),F(dp),G(dp)は、縦512×横512画素の規模のグレースケールである。左下の左目テクスチャメモリ22の格納内容において、A(L),B(L),C(L),D(L),E(L),F(L),G(L)は、左方向のシフト結果である。右下の右目テクスチャメモリ23の格納内容において、A(R),B(R),C(R),D(R),E(R),F(R),G(R)は、右方向のシフト結果である。

0092

全周囲画像メモリ13に格納されている縦4×横7の全周囲画像から、縦512×横512画素の画素からなる画像を取り出すと共に、デプス画像メモリに格納されているデプス画像から、対応する縦512×横512画素の画素からなるグレースケールを取り出す。そして、取出された画像と、グレースケールとをベースにしたDIBRを実行して、その結果を左目テクスチャメモリ22、右目テクスチャメモリ23に格納してゆき、左目テクスチャメモリ22、右目テクスチャメモリ23上で順次、左目テクスチャ、右目テクスチャを形成してゆくというものである。

0093

図19は、デプス画像メモリ、全周囲画像メモリ13、左目テクスチャメモリ22間のデータフローを示す。本図は、図18をベースとして作図されており、このベースとなる構成と比較して、画像データの行き来を示す矢印が追加されている点が異なる。図19(a)において矢印df1,df2は、デプス画像メモリからのデプス画像A(dp)及び全周囲画像メモリ13からの画像Aの読み出しを模式的に示す。矢印df3,df4は、表示領域バッファ19、領域外バッファ20から左目テクスチャメモリ22への画像A(L)の書き込みを模式的に示す。

0094

図19(b)において矢印df5,df6は、デプス画像メモリからのデプス画像B(dp)及び全周囲画像メモリ13からの画像Bの読み出しを模式的に示す。矢印df7,df8は、表示領域バッファ19、領域外バッファ20から左目テクスチャメモリ22への画像B(L)の書き込みを模式的に示す。

0095

図20は、デプス画像メモリ、全周囲画像メモリ13、左目テクスチャメモリ22間のデータフローを示す。本図は、図18をベースとして作図されており、このベースとなる構成と比較して、画像データの行き来を示す矢印が追加されている点が異なる。図20(a)において矢印df9,df10は、デプス画像メモリからのデプス画像A(dp)及び全周囲画像メモリ13からの画像Aの読み出しを模式的に示す。矢印df11,df12は、表示領域バッファ19、領域外バッファ20から右目テクスチャメモリ23への画像A(R)の書き込みを模式的に示す。

0096

図20(b)において矢印df13,df14は、デプス画像メモリからのデプス画像B(dp)及び全周囲画像メモリ13からの画像Bの読み出しを模式的に示す。矢印df15,df16は、表示領域バッファ19、領域外バッファ20から右目テクスチャメモリ23への画像B(R)の書き込みを模式的に示す。以上のように全周囲画像メモリ13に格納された全周囲画像は、縦512×横512画素毎に読み出されて画素シフト部18に供され、縦512×横512画素毎にDIBRが実行されることがわかる。

0097

全周囲画像を構成する個々の画像に対するDIBRでどのように余白が生じるか、またこの余白がどのようにして補完されるかについて図21図23を参照しながら説明する。

0098

シフトによる余白の補完は、ある画像に対して画素シフトが施された際、画像の表示領域から発生したはみ出し画素を一旦領域外バッファ20に格納しておき、次の画像について画素シフトが施された際、バッファに格納されたはみ出し画素群を、その画像についてのシフト余白の補完に用いるというものである。

0099

(左目テクスチャ、右目テクスチャの形成過程
上記構成要素による処理過程を経て、左目テクスチャ、右目テクスチャが得られる。素材から最終成果物が得られるまでの途中過程のうち、トピックになるものを模式的に描いたのが図21図23である。

0100

図21は、左方向のシフト時における全周囲画像メモリ13−表示領域バッファ19、領域外バッファ20−左目テクスチャメモリ22間のデータフローを示す。図20(a)における矢印uf1は、DIBRによる画素シフトを示す。これにより画像Aは全体的に右方向にシフトし、画像Aの右端にはシフトによる余白が発生する。矢印uf2は、DIBRにより表示領域バッファ19からはみ出した画素の領域外バッファ20への書き込みを示す。矢印uf3は、領域外バッファ20から左目テクスチャメモリ22への画素の書き込みを示す。これにより、領域外バッファ20内の画素は、G(L)の一部として左目テクスチャメモリ22に格納されることがわかる。矢印uf4は、表示領域バッファ19から左目テクスチャメモリ22への画素の書き込みを示す。これにより、表示領域バッファ19内における画像Aの本体は、余白付きでA(L)の一部として左目テクスチャメモリ22に格納されることがわかる。

0101

図21(b)における矢印uf5は、DIBRによる画素シフトを示す。これにより画像Bは全体的に右方向にシフトし、画像Bの右端にはシフトによる余白が発生する。矢印uf6は、DIBRにより表示領域バッファ19からはみ出した画素の領域外バッファ20への書き込みを示す。矢印uf7は、領域外バッファ20から左目テクスチャメモリ22への画素の書き込みを示す。これにより、領域外バッファ20内の画素は、A(L)の一部として左目テクスチャメモリ22に格納されることがわかる。矢印uf8は、表示領域バッファ19から左目テクスチャメモリ22への画素の書き込みを示す。これにより、表示領域バッファ19内における画像Bの本体は、余白付きでB(L)の一部として左目テクスチャメモリ22に格納されることがわかる。

0102

図21(c)における矢印uf9は、DIBRによる画素シフトを示す。これにより画像Cは全体的に右方向にシフトし、画像Cの右端にはシフトによる余白が発生する。矢印uf10は、DIBRにより表示領域バッファ19からはみ出した画素の領域外バッファ20への書き込みを示す。矢印uf11は、領域外バッファ20から左目テクスチャメモリ22への画素の書き込みを示す。これにより、領域外バッファ20内の画素は、B(L)の一部として左目テクスチャメモリ22に格納されることがわかる。矢印uf12は、表示領域バッファ19から左目テクスチャメモリ22への画素の書き込みを示す。これにより、表示領域バッファ19内における画像Cの本体は、余白付きでC(L)の一部として左目テクスチャメモリ22に格納されることがわかる。

0103

図22図23は、左目テクスチャメモリ22、右目テクスチャメモリ23内で右目テクスチャ、左目テクスチャが形成されてゆく過程を示す。その形成の過程の前提としては、図22(a)に示されているような5枚の画像を選ぶ。図22(a)は、画像Gに対してDIBRが施され、G(R)が得られる段階を示す。図22(b)は、画像Fに対してDIBRが施され、F(R)が得られる段階を示す。図22(a)は、画像Eに対してDIBRが施され、E(R)が得られる段階を示す。図22(b)は、画像Dに対してDIBRが施され、D(R)が得られる段階を示す。図22(a)(b)、図23(a)(b)は何れも共通の記載になっており、第1段目は全周囲画像メモリ13の格納内容、第2段目は表示領域バッファ19、領域外バッファ20の格納内容、第3段目は左目テクスチャメモリ22の格納内容を示す。

0104

第2段目において、DIBRにおけるシフトに伴う余白がそのシフト方向とは反対側の端部に発生する。領域外バッファ20には、このシフトによって、表示領域から追いやられた画素が格納される。第3段目では、領域外バッファ20に格納されたはみ出し画素群が、その直後の画像に対するシフトで生じた余白の上書きに使用されていることがわかる。

0105

これらG(R),F(R),E(R),D(R)の生成の途中過程ではシフトによる余白が発生していることがわかる。このシフトによる余白は、次の画像のDIBRの実行にあたって、表示領域の右端からはみ出すことになった画素によって上書きされる。

0106

図22は、左方向のシフト時における全周囲画像メモリ13−表示領域バッファ19、領域外バッファ20−左目テクスチャメモリ22間のデータフローを示す。図20(a)における矢印tf1は、DIBRによる画素シフトを示す。これにより画像Gは全体的に左方向にシフトし、画像Gの左端にはシフトによる余白が発生する。矢印tf2は、DIBRにより表示領域バッファ19からはみ出した画素の領域外バッファ20への書き込みを示す。矢印tf3は、領域外バッファ20から左目テクスチャメモリ22への画素の書き込みを示す。これにより、領域外バッファ20内の画素は、A(R)の一部として左目テクスチャメモリ22に格納されることがわかる。矢印tf4は、表示領域バッファ19から左目テクスチャメモリ22への画素の書き込みを示す。これにより、表示領域バッファ19内における画像Gの本体は、余白付きでG(R)の一部として左目テクスチャメモリ22に格納されることがわかる。

0107

図22(b)における矢印tf5は、DIBRによる画素シフトを示す。これにより画像Fは全体的に左方向にシフトし、画像Fの左端にはシフトによる余白が発生する。矢印tf6は、DIBRにより表示領域バッファ19からはみ出した画素の領域外バッファ20への書き込みを示す。矢印tf7は、領域外バッファ20から左目テクスチャメモリ22への画素の書き込みを示す。これにより、表示領域バッファ19内の画素は、G(R)の一部として左目テクスチャメモリ22に格納されることがわかる。矢印tf8は、表示領域バッファ19から左目テクスチャメモリ22への画素の書き込みを示す。これにより、領域外バッファ20内における画像Fの本体は、余白付きでF(R)の一部として左目テクスチャメモリ22に格納されることがわかる。

0108

図23(a)における矢印tf9は、DIBRによる画素シフトを示す。これにより画像Eは全体的に左方向にシフトし、画像Eの左端にはシフトによる余白が発生する。矢印tf10は、DIBRにより表示領域バッファ19からはみ出した画素の領域外バッファ20への書き込みを示す。矢印tf11は、領域外バッファ20から左目テクスチャメモリ22への画素の書き込みを示す。これにより、領域外バッファ20内の画素は、F(R)の一部として左目テクスチャメモリ22に格納されることがわかる。矢印tf12は、表示領域バッファ19から左目テクスチャメモリ22への画素の書き込みを示す。これにより、表示領域バッファ19内における画像Eの本体は、余白付きでE(R)の一部として左目テクスチャメモリ22に格納されることがわかる。

0109

図23(b)における矢印tf13は、DIBRによる画素シフトを示す。これにより画像Dは全体的に左方向にシフトし、画像Dの左端にはシフトによる余白が発生する。矢印tf14は、DIBRにより表示領域バッファ19からはみ出した画素の領域外バッファ20への書き込みを示す。矢印tf15は、領域外バッファ20から左目テクスチャメモリ22への画素の書き込みを示す。これにより、領域外バッファ20内の画素は、E(R)の一部として左目テクスチャメモリ22に格納されることがわかる。矢印tf16は、表示領域バッファ19から左目テクスチャメモリ22への画素の書き込みを示す。これにより、表示領域バッファ19内における画像Dの本体は、余白付きでD(R)の一部として左目テクスチャメモリ22に格納されることがわかる。

0110

汎用CPU上での動作を前提としたソフトウェア実装>
本実施形態に係る画像描画装置は、上述したような画像描画装置における各構成要素を、ASIC等のハードウェア集積素子具現化することで工業的に生産することができる。このハードウェア集積素子に、CPU、コードROM、RAMといった汎用的なコンピュータシステムアーキテクチャを採用する場合、上述したような各構成要素の処理手順コンピュータコードで記述したプログラムをコードROMに予め組みこんておき、ハードウェア集積素子内のCPUに、このプログラムの処理手順を実行させねばならない。

0111

汎用的なコンピュータシステムのアーキテクチャを採用する場合、ソフトウェア実装で必要となる処理手順について説明する。

0112

図24は、レンダリングの立体視化手順を示すフローチャートである。メインフロー。ステップS1においてレンダリングの地図におけるカレントの視点位置(緯度、経度)と、画面上に表示するカレントの視線方向(水平角度及び垂直角度)を決定し、ステップS2において地図上のカレント視点位置に対応する画像取得要求を作成し、画像取得要求をサーバ1001に送信する。ステップS3ではストリートビューファイルの受信待ちを行い、ストリートビューファイルを受信すれば、ステップS4において全周囲画像と、これに対応するデプス画像を取得する。

0113

ステップS5では、垂直方向の4枚の画像のうち、何れか一枚をカレント画像とする。その後、ステップS6〜ステップS8のループ移行する。このループは、カレント画像に対して水平360度の多視点画像の生成を実行し(ステップS6)、カレント画像が垂直方向の最後の画像であるかどうかを判定して(ぷ7)、そうでなければ、縦方向の次の画像をカレント画像とする処理(ステップS8)を繰り返すものである。ここで、カレント画像が垂直方向の最後の画像であれば、ステップS7がYesとなり、このループを抜ける。

0114

以降、ステップS9において3Dモデリング空間に用意された左目用の球体モデル、右目用の球体モデルに対してDIBRで得られた右目テクスチャ、左目テクスチャを貼りつける。ステップS8では、球体モデルの中心から視線方向を見たときの投影画像を左目用プレーン、右目用プレーンに書き込む。

0115

図25は、水平360度画像生成処理のフローチャートである。ステップS13は、横7枚の画像のうち、カレントの視線方向にある画像を基点画像とする。ステップS14では、基点画像をカレント画像として、ステップS15において、カレント画像と、これに対応するデプス画像とを抽出し、ステップS16において、デプス画像に示される個々の画素の奥行きをもつように、カレント画像の個々の画素の座標を水平方向にシフトする。ステップS17では、シフトにより領域外の座標を有することになった画素群を領域外バッファに書き込む。以降、ステップS18〜ステップS22のループを実行する。このループは、ステップS18でカレント画像にシフト方向に隣接している画像を、カレント画像に設定して、ステップS19においてデプス画像に示される個々の画素の奥行きをもつようにカレント画像の個々の画素座標を水平方向にシフトし、ステップS20において、シフトにより領域外になった画素を領域外バッファに書き込む。その後、ステップS21において、カレント画像のうち、シフト方向とは反対側の端部に、領域外バッファにおける画素群を追加する。ステップS22は、このループの終了条件を規定したものであり、カレント画像が基点画像に等しいかどうかを判断する。もし同じでなければ、ステップS22がNoになってループを継続する。同じであれば、ステップS23に移行して、カレント画像のうち、シフト方向とは反対側の端部に、領域外バッファにおける画素群を追加してステップS12に移行する。

0116

ベースとなる左目用の全周囲画像から本図のフローチャートに基づき右目用の全周囲画像を生成すると、生成される右目用全周囲画像も28枚の部分画像をつなぎ合わせても画素欠落のないシームレスな全周囲画像となる。これらを球面上にテクスチャとしてマッピングし、ユーザが見たい方向の投影画像を左右プレーンに出力することで、シームレスな全周囲立体視を実現することが可能となる。

0117

以降、図24図25のフローチャートによる各構成要素の動作を説明する。まず、ユーザ操作検知部1、位置方向判定部2により、表示すべき全周囲画像の地図上の位置(緯度及び経度)と、画面上に表示する方向(水平角度及び垂直角度)を決定する(S1)。続いて、全周囲画像取得部11によりステップS1で決定した地図上の位置に対応する全周囲画像を取得する(S2)。ステップS2で取得される1地点分の全周囲画像は縦4枚、横7枚の計28枚の部分画像から構成され、各画像1枚は縦512画素、横512画素の画素数を持つ。これらが左目用の全周囲画像となる。

0118

次に、デプス画像取得部14により、ステップS2で取得した全周囲画像に対応するデプス画像を取得する(S3)。デプス画像は、立体空間における各画素の奥行きを示すものであり、各画素の奥行きを8ビットの輝度で表現している。デプス画像自身も画像として構成されており、全周囲画像と同様、1地点につき、縦4枚、横7枚の計28枚のグレースケール画像から構成されている。

0119

ステップS2及びステップS3でベースとなる全周囲画像とデプス画像を取得した後、垂直方向4枚の画像のうち、いずれか1枚を選び、図18に示したフローチャートに基づき水平360度のステレオ画像生成を行う(S5)。垂直方向4枚からの選択方法としては、表示すべき全周囲画像の垂直角度に近い位置の画像を選ぶのが望ましい。視点方向にある画像から先に処理していくことで、残りの画像が処理中でも画面上に表示することが可能となる。

0120

垂直方向に4枚の画像があるため、水平360度の画像グループが4種類存在することになる。すべてのグループに対し、ステレオ画像の生成処理を完了したと判断すれば(S7でYes)、続いてテクスチャマッピングを行う(S9)。この場合におけるテクスチャマッピングは、3Dモデリング空間上に用意された左目用と右目用の2つの球体に対し、ベースの全周囲画像及び境界処理部21によって生成されたステレオ画像を、それぞれ左目用、右目用の球体面上に貼り付ける処理となる。

0121

ステップS9におけるテクスチャマッピングが完了すれば、球体の中心から位置方向判定部2により指定された視点方向を見たときに投影される画像を左目プレーン、右目プレーンに書き込み(S10)、立体視対応ディスプレイにて立体視表示がなされる。

0122

図25において、まずは、全周囲画像取得部11より水平360度を構成する画像の中から基点となる画像の抽出と、抽出された基点画像に対応するデプス画像をデプス画像取得部14から取得する(S13〜15)。基点となる画像は、位置方向判定部2から指示された視点方向にある画像が望ましい。視点方向にある画像から先に処理していくことで、残りの画像が処理中でも画面上に表示することが可能となる。

0123

基点となる画像が決定すると、DIBR部17にて画素シフト処理(DIBR処理)を行う(S16)。前述したように、DIBR処理ではシフトした画素が画像領域外にはみ出る場合があり、境界処理部21にて、画像領域外にはみ出た画素を、画像領域外のバッファメモリに一時的に格納する(S17)。一旦、画像領域外にはみ出た画素をバッファメモリに格納した後、再び全周囲画像取得部11より画像の抽出、及びデプス画像取得部14より対応するデプス画像の取得を行う。このときカレント画像として、前回DIBR処理を行った画像の左側に隣接する画像を選択する(S18)。次に、ステップS18で抽出されたカレント画像が、ステップS13で抽出された基点画像と一致するかどうかを判断する(S22)。ステップS104で抽出した画像が、基点画像ではない(すなわち、まだ処理が水平方向に1周360度分が完了していない)と判断された場合、ステップS18で抽出した画像に対し、DIBR処理を行い、右目用の他視点からの視点画像を生成する(S19)。

0124

次に、ステップS19で得られた右目用の他視点からの視点画像に対し、現在領域外バッファメモリに格納されている画素群を、画像右側端部に追加する処理を行う(S20)。続いて、今度はステップS19のDIBR処理で領域外にはみ出した画素を領域外バッファメモリに格納する(S21)。そして、ステップS18で処理した画像の左側に隣接する画像を選択し、ステップS18〜S21の処理を繰り返して行う。

0125

ステップS18〜S21の処理を繰り返していき、ステップS22において、ステップS18で抽出された隣接方向の画像が、ステップS14で抽出された基点画像と同じであると判断した場合(すなわち、水平方向に1周360度分の処理が完了)、現在領域外バッファメモリに格納されている画素群を、基点画像の右側端部に追加する処理を行い(S23)、水平方向1周360度分の画素シフト及び境界処理を終了する。

0126

図26は、DIBR処理だけに基づいて得られる右目用の全周囲画像と、画素シフト及び境界処理を行なって得られる右目用の全周囲画像の比較を示す図である。図19(a)がDIBR処理に基づく画素シフトのみを行なって、画像を繋ぎ合わせて出来上がる全周囲画像である。繋ぎ合わせの部分で、不自然な絵となっているが、これは、DIBR処理で画素が画面領域外にはみ出し、それらの画素が画像端部で抜け落ちていくため、重ね合わせ部分で画素の欠落が発生し、画像をつなぎ合わせたときにシームレスに絵が表示されない。

0127

図26(b)は、新たに画素シフト及び境界処理を施して出来上がる全周囲画像である。図26では、DIBR処理によって画面領域外にはみ出る画素を、隣接する画像生成活用することで、つなぎ合わせ部分における画素の欠落を防ぎ、画像のつなぎ目でもシームレスに絵を表示することが可能となる。

0128

(実施の形態2)
全周囲画像が複数の部分画像で構成されている場合におけるステレオ全周囲画像生成について述べたが、本実施形態は、全周囲画像が1枚の画像で構成されている場合におけるステレオ全周囲画像生成について述べる。かかる全周囲画像を処理するため、第1実施形態の既存の構成要素である全周囲画像取得部11、デプス画像取得部14、DIBR部17、表示領域バッファ19、領域外バッファ20、境界処理部21、テクスチャマッピング部28は、以下の処理を行う。

0129

全周囲画像取得部11は、位置方向判定部2から指示された地図上の位置における全周囲画像を、ネットワークインターフェース3を介してサーバ105からダウンロードするか、もしくはローカルストレージ4から画像の取得を行う。

0130

デプス画像取得部14は、全周囲画像取得部11が取得した全周囲画像に対応するデプス画像を、ローカルストレージ4に格納されたストリートビューファイルから取得する。図27は、実施形態2において全周囲画像取得部11、デプス画像取得部14が取得する全周囲画像、デプス画像を示す。図27(a)における全周囲画像は縦2048画素、横3584画素の大きな一枚の画像で形成される。対するデプス画像も、図27(b)に示すように、縦2048画素、横3584画素の大きな一枚のグレースケール画像で形成される。

0131

DIBR部17は、全周囲画像取得部11からベースの左目用全周囲画像を、デプス画像取得部14からベース画像に対応するデプス画像を取得し、DIBR処理を行い、右目画像を生成する。

0132

表示領域バッファ19は、シフトで得られた右目画像を格納する。

0133

領域外バッファ20は、シフトにより生じたはみだし画素を格納する。

0134

境界処理部21は、境界処理として、右端から左方向(すなわち画像中央の方向)に10ピクセル離れた位置(垂直方向としては同じ所に位置する)に埋め込む。
全周囲画像が大きな一枚の画像で形成されている場合、DIBR処理により画像端部で画素のはみ出しが発生すると、その画素は画像逆端部側に埋めるべき画素となる。なぜなら、全周囲画像が1枚の画像で形成されている場合は画像が球面上で一周するため、右端の画素と左端の画素は最終的には球面上に並べて表示することになるからである。そのため、画像の右端と左端は連続しているものと捉えると、左端で画像領域からはみ出した画素は、逆端である右端に埋められるべき画素となる。

0135

例えば、DIBR処理により左端より10ピクセル左へはみ出した画素は、境界処理部21の境界処理により、右端から左方向(すなわち画像中央の方向)に、10ピクセル離れた位置(垂直方向としては同じ所に位置する)に埋め込まれる。図28は、実施の形態2における、画素シフト後の画像を補正し、ステレオ画像を生成する様子を示す図である。全周囲画像が大きな1枚の画像で形成されている場合、DIBR処理により画像端部で画素のはみ出しが発生すると、その画素は画像逆端部側に埋めるべき画素となる。なぜなら、全周囲画像が1枚の画像で形成されている場合は画像が球面上で1周するため、右端の画素と左端の画素は最終的には球面上に並べて表示することになるからである。そのため、画像の右端と左端は連続しているものと捉えると、左端で画像領域からはみ出した画素は、逆端である右端に埋められるべき画素となる。

0136

例えば、DIBR処理により左端より10ピクセル左へはみ出した画素は、境界処理により、右端から左方向(すなわち画像中央の方向)へ10ピクセル離れた位置(垂直方向としては同じ所に位置する)に埋め込まれる。

0137

テクスチャマッピング部28は、DIBRで得られた左目テクスチャ、右目テクスチャを球面モデルにマッピングする。図29は、テクスチャマッピング部28によるテクスチャマッピングを示す。上段における左目テクスチャ、右目テクスチャは、DIBR部17のDIBRで得られたものであり、これらが矢印tm1、tm2に示すように下段の左目用球面モデル、右目用球面モデルの内側表面に貼付けられていることがわかる。かかる貼付けがなされた左目用球面モデル、右目用球面モデルに対してビューポート抽出がなされる。

0138

改良された構成要素の説明に後説明として、上記改良がなされた場合の既存の構成要素の動作について説明する。つまり、表示領域バッファ19に格納される全周囲画像が実施形態1のフローチャートによりどのように処理されるかについて説明する。

0139

図24において、一枚の全周囲画像が対象になった際の動作は以下の通りである。まず、ユーザ操作検知部1、位置方向判定部2により、表示すべき全周囲画像の地図上の位置(緯度及び経度)と、画面上に表示する方向(水平角度及び垂直角度)を決定する(S1)。続いて、全周囲画像取得部11によりステップS401で決定した地図上の位置に対応する全周囲画像を取得する(S2)。ステップS402で取得される1地点分の全周囲画像は縦2048画素、横3584画素の大きな一枚の画像で形成される。これが左目用の全周囲画像となる。次に、デプス画像取得部14により、ステップS402で取得した全周囲画像に対応するデプス画像を取得する(S3)。デプス画像は、立体空間における各画素の奥行きを示すものであり、各画素の奥行きを8ビットの輝度で表現している。デプス画像自身も画像として構成されており、全周囲画像と同様、縦2048画素、横3584画素の大きな一枚のグレースケール画像として形成される。

0140

ベースとなる全周囲画像とデプス画像を取得した後、に示したフローチャートに基づきステレオ画像生成を行う(S5)。ステップS404でステレオ画像生成を終えた後、続いてテクスチャマッピングを行う(S7)。この場合におけるテクスチャマッピングは、3Dモデリング空間上に用意された左目用と右目用の2つの球体に対し、ベースの全周囲画像及び境界処理部21によって生成されたステレオ画像を、それぞれ左目用、右目用の球体面上に貼り付ける処理となる。ステップS7におけるテクスチャマッピングが完了すれば、球体の中心から位置方向判定部2により指定された視点方向を見たときに投影される画像を左目プレーン、右目プレーンに出力し(S8)、立体視対応ディスプレイにて立体視表示がなされる。

0141

表示すべき全周囲画像の抽出と、抽出された画像に対応するデプス画像をデプス画像取得部14から取得する(S15)。次に、ステップS2で取得された画像とデプス画像を元にDIBR部17にて画素シフト処理(DIBR処理)を行う(S16)。

0142

DIBR処理ではシフトした画素が画像領域外にはみ出る場合があり、境界処理部21にて、画像領域外にはみ出た画素を、画像領域外のバッファメモリに一時的に格納する(S17)。

0143

全周囲画像であれば、対象となる画像は一枚であるから、カレント画像に隣接する画像は、必ず自分自身となる。よって、全周囲画像については、1つの全周囲画像が基点画像及びカレント画像として決定された後、ステップS18において、カレント画像に隣接する画像をカレント画像として決定しようとすると、自分自身が再度、カレント画像として決定されることになる。よって、1つ前のカレント画像が新たにカレント画像として決定された後、ステップS22に移行することになる。ステップS22は、新たなカレント画像が基点画像かどうかの判定である。全周囲画像は一枚であるから、再度決定されたカレント画像は、必ず基点画像と一致する。よってこの場合、ステップS22がYesになりステップS23に移行する。

0144

ステップS23では、ステップS16のDIBR処理で得られた右目用の他視点からの視点画像に対し、現在領域外バッファメモリに格納されている画素群を、はみ出し元の画像端部とは逆の端部へ埋め込む。かかる処理を、左目及び右目のそれぞれについて繰り返すことで、画素シフト及び境界処理を終了する。

0145

以上により、ベースとなる左目用の全周囲画像から1枚の大きな画像から形成されていたとしても、生成される右目用全周囲画像は画素欠落のないシームレスな全周囲画像となる。これらを球面上にテクスチャとしてマッピングし、ユーザが見たい方向の投影画像を左右プレーンに出力することで、シームレスな全周囲立体視を実現することが可能となる。

0146

(実施の形態3)
本実施形態は、これまでの実施形態で述べた画像描画装置をどのようなハードウェア構成で実現するかを開示する。

0147

まず初めに、CG処理部についてのハードウェア構成を説明する。図30は、CG処理部のハードウェア構成を示す。本図に示すように画像描画装置は、インターフェイス201、ビデオデコーダ回路202、テクスチャメモリ203、コードROM204、CPU205、ワークメモリ206、GPU207、フレームメモリ208から構成される。

0148

インターフェイス201は、ビルドインメディアリムーバブルメディアドライブとのインターフェイスである。

0149

ビデオデコーダ202は、インターフェイス201を通じて読み出された背景画像やデプス画像をデコードする専用回路である。

0150

テクスチャメモリ203は、ビデオデコーダ回路202のデコードで得られた非圧縮の背景画像を格納する。

0151

コードROM204は、これまでのフローチャートで述べたプログラムを構成するコード列を格納している。

0152

CPU205は、コードROM204に格納されたコード列を読み出し、処理することで、これまでの実施形態で述べた処理を実現する。

0153

ワークメモリ206は、コードROM204が処理を行う際に、変数や配列の格納場所として使用される。

0154

GPU207は、テクスチャマッピング等のグラフィクス処理のための専用処理回路である。

0155

フレームメモリ208は、GPU207が処理のために使用するメモリである。

0156

図31は、GPUの内部構成を示す図である。

0157

Xステージボード800は、X(Transformation, Xformation)ステージでの処理を実現するものであり、HIP801、GED802、ディスプレイリストキャッシュ803、SIMDチップ804a,b,c,dを具備している。X(Transformation)ステージの処理は、おおまかに言うと二つある。一つは、三次元の各頂点データ(x, y, z)を二次元のスクリーン座標に変換する処理、二つ目は、各頂点に関して、光源材質情報をもとに明るさ(色)を計算する照光(lighting)計算処理である。この二つ(Transformation and Lighting)の処理を総称してT&L 処理あるいはTnL 処理と呼ぶ。

0158

HIP(Host Interface Processor)801は、入力のOpenGLAPIコール解釈して演算処理に適した形式に変換するASIC(Application Specific IntegratedCircuit)である。

0159

GED(GeometryElement Distributor)802は、各頂点データを、4つある次段のSIMDチップのうち処理待ちの状態にあるものに振り分け役割を果たす。

0160

ディスプレイリストキャッシュ803は、OpenGLAPIコールをグループ化したディスプレイリストを格納しておくキャッシュメモリである。よく使う一連のOpenGLAPIコールをディスプレイリストにしておくと、CPU からXステージボードに転送するデータ量を大幅に減らすことができる。

0161

SIMDチップ804a,b,c,dは、ASICで実現された1 チップのプロセッサで、FPU(浮動小数点演算ユニット)を3系統持ち、マイクロコード格納用のキャッシュとデータキャッシュを備えている。一つのFPU には二つの演算器が含まれている。一つは通常の浮動小数点ALU(ArithmeticLogic Unit)で、もう一つは浮動小数点乗算器である。本ボードではこのSIMDチップを4個搭載している。FPU は12 系統が並列で動作するため、同時に12 個の頂点データ(x, y, z)の処理を並列で行うことができる。

0162

SIMDチップでの処理内容(座標変換や照光計算のアルゴリズム)は、マイクロコードによって記述されている。演算回路はチップ上のキャッシュに記憶されたマイクロコードにしたがって動作する。マイクロコードはシステム起動時にキャッシュにロードされる。SIMDチップでの演算結果はFIFO(First-In First-Out)メモリに集められ、Xステージボード全体の出力としてTriangle Bus と呼ばれるバスに転送される。各頂点データは、スクリーン座標系上の座標(x, y)と奥行き情報z、照光計算の結果である(r, g, b)、透明度情報のa、法線ベクトル(nx, ny, nz)、それとテクスチャ座標(s, t)を含む。

0163

また、次のSステージでの計算効率をよくするための前処理も本ボードで行われる。代表的な前処理はとして裏面カリングがある。裏面カリングは、ウィンドウ座標系に変換したときに裏向きになっている三角形を検出し、そのような三角形については頂点データをTriangle Bus に出力しないようにする処理である。以上がX ステージボードの処理である。

0164

Sステージボード805について説明する。Sステージボード805は4 種類のASICチップ(TG806,PG807, TF808,IMP809)から構成される。S(Scan conversion)ステージでの処理は、三角形の内部の各画素を塗りつぶすラスタライズ処理隠面消去処理やステンシルマスク処理、霧の効果の処理などが含まれる。

0165

ラスタライズ処理において重要な機能が、球面ストリップに全周囲画像を貼りつけるというテクスチャマッピングである。テクスチャマッピングでは、明るさ(r, g, b)を補間で求める代わりに、テクスチャ座標(s, t)を補間した結果からテクスチャメモリに格納されているテクスチャ画像アドレスを計算して適切な画素を読み出し、その明るさ(r, g, b)をフラグメントの明るさデータとする。

0166

Sステージボードの入力は、XステージボードからTriangle Bus を通じて与えられる三角形各頂点におけるフラグメント形式のデータ(スクリーン座標(x, y, z)、テクスチャ座標(s, t)、明るさ(r, g,b)、透明度a、法線ベクトル(nx, ny, nz))である。

0167

TG(Texture Generator)チップ806は、三角形の塗りつぶしを行い、画素ごとのテクスチャ座標(s, t)の補間結果を出力し、テクスチャメモリのアドレスを生成してテクスチャ画素(テクセル(texel)と呼ばれる)をTF(Texture Filter)に渡す。

0168

PG(Pixel Generator)チップ807では、ラスタライズ処理、すなわち三角形の塗りつぶし処理を行い画素ごとの明るさ(r, g, b)などの補間を行う。

0169

TF(Texture Filter)チップ808は、PGの出力結果すなわちシェーディングされた明るさとテクスチャメモリの出力(テクセル)とを合成し、画素ごとのフラグメントをIMP(ImageMemory Processor)に渡す。

0170

IMP(IMage Proccer)809は、ピクセル処理フローを実現するプロセッサで、霧処理、アンチエイリアシングアルファテストステンシルテストデプステストブレンディングマスキング書込バッファ選択といったピクセル処理を行い、処理結果をフレームメモリ208に書き込む。

0171

Dステージボード812は、Dステージの処理を行うボードであり、XMAP813、VOC814を具備している。

0172

XMAP(Pixel MappingAsic)813は、Pixel Bus から画像データを受け取り、必要に応じてルックアップテーブルで変換し、また、カーソルの表示も行ってVideo Packet Bus に画像データを乗せる。各VOCは、自分の担当する矩形領域が記述されたVOF データに従って画像を拾い、DAコンバータビデオ信号に変換する。

0173

VOC(Video Output Channel)回路814は、画像を拡大する出力回路拡大画像画質を良くするためのフィルタリング回路もあり、表示処理中に負荷が重くなったら動的に粗い解像度で描画し、ハードウェア拡大して元通りに表示する。Dステージボードでは最大8つの出力チャネルがあり、そのほかにHDMI出力エンコーダを備えている。

0174

次に、上述したようなハードウェア構成のGPUに対して、どのような制御をソフトウェアで指示すべきかについて説明する。

0175

図32(a)は、球面モデルと、テクスチャとの対応付けを模式的に示す。左側は球面モデルを構成するグリッド、右側はテクスチャを格納するテクスチャバッファの格納内容を示す。左側の球面モデルは、横方向にW個に分割され、それぞれの分割部分にテクスチャが貼付けられることになる。本実施形態において、テクスチャマッピングの対象となる図形タイプを、三角形ストリップとし、この三角形ストリップの全部又は一部をテクスチャマッピングの対象とする。この三角形ストリップの全部又は一部は、頂点グリッドとして規定される。具体的にいうと、T1、T2、T3からなるグリッドがテクスチャマッピングの対象になり、T3,T4,T5,T6からなるグリッドが1つのテクスチャマッピングの対象になる。これらのグリッドを構成する交点の座標を、インデックスとして指定した上で、テクスチャマッピングを行う。

0176

図32(b)は、テクスチャマッピングを実現するためのOPEN-GLにおけるAPI呼出しの記述例である。

0177

『glVertexPointer(3, GL#FLOAT, 0, g#v);』は、三次元モデリング空間におけるグリッドの各交点の座標群頂点群として格納するものである。引き数の"3"は、三次元モデリング空間の次元数であり、GL#FOLATは、座標群のそれぞれの座標の型が浮動小数点形式であることを示す。

0178

『glTexCoordPointer(2, GL#FLOAT, 0, g#uv);』は、三次元モデリング空間におけるグリッドに対応したテクスチャの座標群g#uvをテクスチャ座標値として格納するためのAPI呼出しである。

0179

『for(I=0;i座標のそれぞれについて、glDrawElementsの呼出しを繰り返すループ構造として規定される。

0180

『glDrawElements(GL#TRIANGLE#STRIP,(H + 1) * 2, GL#UNSIGNED#SHORT,getStaticData()->g#index[i]);』について説明する。このAPI呼出しの第1引き数は、3Dモデルの図形タイプが三角形ストリップ(GL#Triangle#Stirp)であることを指定している。第2引き数は、頂点数の指定であり、(縦分割数H+1)×2の数値を指定している。GL#UNSIGNED#SHORTは、頂点を格納したindexの型が符号無しのshort形式であることを示す。g#index[W]は、描画順番を決めたインデックス配列であり、個々の配列要素としてグリッド交点の頂点座標が格納される。g#indexの配列要素として格納されている頂点座標に従った描画を実行することにより、テクスチャマッピングがなされることになる。

0181

先ず始めに、DIBRを実現するためのハードウェア構成(全周囲画像メモリ13、画素シフト部18ハードウェア構成)について説明する。

0182

全周囲画像メモリ13は、複数のラインメモリからなり、全周囲画像データは、ラインメモリを構成する32ビット長の記憶素子にそれぞれ格納される。そして全周囲画像データの画面上の座標は、例えば全周囲画像メモリ13におけるラインメモリのアドレスであるROWアドレスと、ラインメモリにおける記憶素子の相対アドレスであるCOLUMNアドレスとの組みに対応する。 以上が全周囲画像メモリ13についての説明である。続いて、画素シフト部18のハードウェア構成について説明する。

0183

画素シフト部18は、全周囲画像データと、デプス画像データとに対して画素シフトを施し、他視点からのテクスチャを作成する。

0184

全周囲画像における画素のX座標を変更することで左目テクスチャを作成したい場合、全周囲画像メモリ13から左目テクスチャメモリ22へのコピー時において、そのコピー先となる記憶素子を指示するCOLUMNアドレスを、画素数Xに相当するアドレスだけ前に調整しておく。このようなアドレス調整を前提にしてコピーを実行すれば、左目テクスチャの座標は、左方向にシフトすることになる。よって画素シフト部18は、左目テクスチャについては、アドレス調整を伴うコピー処理で作成することができる。

0185

ストリートビューのX座標を変更することで右目テクスチャを作成したい場合、全周囲画像メモリ13から右目テクスチャメモリ23へのコピー時において、そのコピー先となる記憶素子を指示するCOLUMNアドレスを、画素数Xに相当するアドレスだけ後に調整しておく。このようなアドレス調整を前提にしてコピーを実行すれば、右目テクスチャの座標は、右方向にシフトすることになる。よって画素シフト部18は、右目テクスチャについては、アドレス調整を伴うコピー処理で右目テクスチャを作成する。以上がハードウェアによる画素シフト部18の実現である。

0186

またDIBRをラインスキャンで実現することができる。ラインスキャンとは、フレームメモリに格納された一画面分の画素(1920×1080)の集りを横1920画素ずつ読み出してデジタル映像信号に変換するものである。かかるラインスキャンは、1行分の画素データを格納しうるライン画素メモリと、フィルタ回路パラレルシリアル変換を行う変換回路によって実現することができる。上述したようにDIBRは、デプス画像の個々の画素の輝度を視差に変換して画素のシフトを行う処理である。ラインメモリに読み出された全周囲画像の一ライン分の画素の座標を、全周囲画像に対するデプス画像における対応するラインの奥行きに応じた画素数だけ横方向に移動すれば、デプス画像示される奥行きをもたらす他視点からの視点画像を作成することができる。

0187

備考
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。

0188

(デプス画像のバリエーション)
圧縮メルカトルデプス画像は、メルカトル画像に対する奥行きを示す画像をPNG形式で圧縮されたデータとしたが奥行きは圧縮ノイズが目立ってしまうため、PNG形式などのロスレス形式で圧縮することが望ましい。なお、ストリートビューファイルにおける圧縮メルカトルデプス画像はデータが冗長であるため、PNG形式での圧縮以外にも周囲の地形データおよび、圧縮メルカトル画像と地形データとの関係を示すデータを備えるようにしてもよい。なお立体ストリートビュー視点をインターネットで送受信をする場合、圧縮メルカトル画像は分割し複数のファイルに分けるようにすると、ダウンロード途中の状態でも表示が可能となる。

0189

(集積回路の実施形態)
第1実施形態に示した画像描画装置のハードウェア構成のうち、記録媒体のドライブ部や、外部とのコネクタ等、機構的な部分を排除して、論理回路や記憶素子に該当する部分、つまり、論理回路の中核部分をシステムLSI化してもよい。システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものはマルチチップモジュールと呼ばれるが、このようなものも、システムLSIに含まれる。

0190

ここでパッケージ種別に着目するとシステムLSIには、QFP(クッドフラッドアレイ)、PGA(ピングリッドアレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。

0191

これらのピンは、電源供給グランド、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、画像描画装置の中核としての役割を果たす。

0192

(プログラムの実施形態)
各実施形態に示したプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラ構造体や変数、配列変数外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。

0193

記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。

0194

コンパイラによる翻訳は、構文解析、最適化、資源割付コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。

0195

ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。

0196

オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカ起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるコンピュータプログラムを非一時的なコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。

0197

(視点周囲画像の範囲増減
各実施形態では、横7枚の背景画像を横方向に結合することで得られる全周囲画像を対象にして説明を進めたが、横方向の画像の結合数を減少することで、視点から見渡せるストリートビューの範囲を変更してもよい。上記実施形態の全周囲画像は、横7枚の背景画像で360°の視野を網羅するから、一枚の背景画像で網羅される範囲は、52°(≒365°/7)である。よって、2枚の画像を結合した場合、104°(≒52°×2)の範囲を見渡すことができ、3枚の画像を結合した場合、156°(≒52×3)の範囲を見渡すことができる。このように、ストリートビュー収集サーバや映像提供装置で横方向の画像の結合数を変化させることにより、視点周囲画像の規模を変化させ、テクスチャマッピング処理やテクスチャにおける視差算出等の負荷を軽減することもできる。

0198

本発明にかかる画像描画装置は、製造産業において経営的に、また継続的および反復的に製造し、販売することができる。特に、全周囲立体画像の制作と再生に携わる民生機器産業において利用できる。

0199

101描画装置
102リモコン
103立体視対応ディスプレイ
104液晶シャッターメガネ
105サーバ
1ユーザ操作検知部
2 位置方向判定部
3ネットワークインターフェース
4 ローカルストレージ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ