JP2004062671A - 対象物が立体的に表されているかのように画像を表示するためのシステム及び方法 - Google Patents
対象物が立体的に表されているかのように画像を表示するためのシステム及び方法 Download PDFInfo
- Publication number
- JP2004062671A JP2004062671A JP2002221917A JP2002221917A JP2004062671A JP 2004062671 A JP2004062671 A JP 2004062671A JP 2002221917 A JP2002221917 A JP 2002221917A JP 2002221917 A JP2002221917 A JP 2002221917A JP 2004062671 A JP2004062671 A JP 2004062671A
- Authority
- JP
- Japan
- Prior art keywords
- image
- images
- viewpoint
- resolution
- displaying
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
【課題】通信ネットワークを用いた画像表示システムにおいて、三次元モデルデータをわざわざ用意しなくても、ユーザに対して所定の対象物が立体的に表されている感を与えることができるようにする。
【解決手段】サーバ10は、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループを有し、各視点の画像グループは、その視点から対象物を眺めて得られる解像度の異なる2以上の画像を含み、各解像度の画像は複数の断片画像に分割されている。クライアント30は、ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループ中から変更後の画像を表示するのに適した1つの最適解像度の画像を選び、選ばれた画像中から変更後画像を表示するのに必要な1又は2以上の断片画像を選択し、選択された1又は2以上の断片画像をサーバ10から受ける。
【選択図】 図2
【解決手段】サーバ10は、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループを有し、各視点の画像グループは、その視点から対象物を眺めて得られる解像度の異なる2以上の画像を含み、各解像度の画像は複数の断片画像に分割されている。クライアント30は、ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループ中から変更後の画像を表示するのに適した1つの最適解像度の画像を選び、選ばれた画像中から変更後画像を表示するのに必要な1又は2以上の断片画像を選択し、選択された1又は2以上の断片画像をサーバ10から受ける。
【選択図】 図2
Description
【0001】
【発明が属する技術分野】
本発明は、インターネットのような通信ネットワークを通じてクライアントコンピュータが画像サーバから画像データを受信して表示するための技術に関する。
【0002】
【従来の技術】
従来、通信ネットワークを用いた画像表示方法の一つに、所定の対象物が立体的に表されている感をユーザに与えることができる画像表示方法がある。その画像表示方法では、一般に、所定の対象物がモデル化されたものを示す三次元モデルデータをサーバからクライアントコンピュータに配信し、クライアントコンピュータに対するユーザの操作に応答して、クライアントコンピュータにおいて、その三次元モデルデータが解釈されて所定の対象物の三次元モデルがディスプレイ画面に表示される、すなわち、所定の対象物が立体的に表現される。
【0003】
【発明が解決しようとする課題】
この従来の画像表示方法で所定の対象物が立体的に表されている感をユーザに与えるためには、例えば以下の第1及び第2の問題点がある。
【0004】
第1の問題点は、対象物をモデル化した三次元モデルデータを作成して用意しなければならない点である。対象物を三次元モデル化しそれを表した三次元モデルデータを作成することは、楽な作業ではない。これは、特に、対象物が複雑な物である、対象物が多数の部品から成っている、或いは、対象物をできるだけ正確に表す等の場合には、なお更である。
【0005】
第2の問題点は、表示される対象物は実物ではなくて三次元モデル、すなわちモデル化されたものである点である。このため、ユーザにとって対象物のリアリティに乏しく、それ故、対象物について正確に把握することができる確実性は高くはない。これは、特に、表示される三次元モデルの形状精度が低い等の場合にはなお更である。
【0006】
従って、本発明の目的は、通信ネットワークを用いた画像表示システムにおいて、三次元モデルデータをわざわざ用意しなくても、ユーザに対して所定の対象物が立体的に表されている感を与えることができるようにすることにある。
【0007】
本発明の別の目的は、通信ネットワークを用いた画像表示システムであって、所定の対象物が立体的に表されている感をユーザに与えることができる画像表示システムにおいて、従来よりも対象物のリアリティをユーザに与えられるようにすることにある。
【0008】
【課題を解決するための手段】
本発明の第1の側面に従うシステムは、対象物が立体的に表されているかのように画像を表示するためのシステムであって、サーバマシンと、前記サーバマシンと通信ネットワークを介して通信可能なクライアントマシンとを備える。前記サーバマシンは、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループを有している。各視点の画像グループは、その視点から対象物を眺めて得られる解像度の異なる2以上の画像を含み、各解像度の画像は複数の断片画像に分割されている。また、前記サーバマシン又は前記クライアントマシンが、画像選択手段を有する。前記画像選択手段は、前記クライアントマシンに表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選択する。前記サーバマシンは、前記画像選択手段によって選ばれた1又は2以上の断片画像を前記通信ネットワークを介して前記クライアントマシンに配信する。前記クライアントマシンは、前記サーバマシンから受信した1又は2以上の断片画像を描画して表示する。
【0009】
本発明の第1の側面に従うシステムの第1の好適な実施形態では、前記画像選択手段は、前記選ばれた視点に対応した画像グループの中から、前記最適解像度の画像だけでなく、前記最適解像度よりも低い解像度の1又は複数の画像を選んで、選ばれた異なる解像度の画像のそれぞれから前記変更された画像の表示に必要な1又は2以上の断片画像を選び、前記サーバマシンは、前記画像選択手段によって選ばれた異なる解像度の1又は2以上の断片画像を、解像度のより低いものから優先して前記クライアントマシンに送信する。
【0010】
本発明の第1の側面に従うシステムの第2の好適な実施形態では、前記複数の異なる視点は、所定の視点移動線上に並ぶものであり、前記ユーザ操作が、表示されている画像の視点を、前記視点移動線に沿って移動させるものであるとき、前記画像選択手段は、前記視点移動線上に並ぶ視点を順次に選択する。
【0011】
本発明の第1の側面に従うシステムの第3の好適な実施形態では、前記クライアントマシンは、受信済みの複数の断片画像の中に、表示される位置が互いに重複している2以上の異なる解像度の断片画像があれば、解像度がより高い断片画像を優先して表示する。
【0012】
本発明の第1の側面に従うシステムの第4の好適な実施形態では、前記クライアントマシンが、前記画像選択手段を具備し、前記画像選択手段によって選択された1又は2以上の断片画像を前記サーバマシンに要求する。
【0013】
本発明の第1の側面に従うシステムの第5の好適な実施形態では、複数台の前記サーバマシンが備られ、前記複数台のサーバマシンのいずれからも、前記断片画像が前記クライアントマシンへ伝送され得るようになっている。
【0014】
本発明の第1の側面に従うシステムの第6の好適な実施形態では、或る1つの視点から対象物を眺めたオリジナルの解像度を持つ画像を用いて前記オリジナルの解像度の画像より低い解像度を持つ1又は2以上の画像を作成する画像作成手段と、前記オリジナルの解像度及びそれより低い解像度の画像を、それぞれ複数の断片画像に分割する画像分割手段と、前記複数の断片画像に分割された前記オリジナルの解像度及びそれより低い解像度の画像を、前記或る1つの視点に対応する画像グループとして前記サーバマシンに登録する画像登録手段とが更に備えられる。
【0015】
本発明の第2の側面に従う方法は、対象物が立体的に表されているかのように画像を表示するための方法であって、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶するステップと、ディスプレイ画面(例えば、クライアントマシンのディスプレイ画面)に表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選択するステップと、選択された前記1又は2以上の断片画像(例えば、サーバマシンからクライアントマシンに配信された断片画像)を描画して表示するステップとを有する。
【0016】
本発明の第3の側面に従うコンピュータプログラムは、対象物が立体的に表されているかのように画像を表示するための方法を可能にするためのコンピュータプログラムであって、ディスプレイ画面に表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選ぶステップと、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶している記憶手段内の、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選択するステップと、選択された前記1又は2以上の断片画像を描画して表示するステップとをコンピュータに実行させるためのコンピュータプログラムである。なお、このコンピュータプログラムは、選択された1又は2以上の断片画像を特定のサーバマシンに要求するステップもコンピュータに実行させるようにしても良く、その場合、前記表示するステップは、前記要求するステップでの要求に応答してサーバマシンから配信されて来た1又は2以上の断片画像を描画して表示する。
【0017】
本発明の第4の側面に従うデータ構造は、対象物が立体的に表されているかのように画像を表示するための方法で採用される画像のデータ構造であって、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループを有し、各視点の前記画像グループは、その視点から対象物を眺めて得られる解像度の異なる2以上の画像を含み、各解像度の画像が複数の断片画像に分割されていることを特徴とする。
【0018】
本発明の第5の側面に従うサーバは、対象物が立体的に表されているかのように画像を表示するためのシステムに備えられる画像サーバであって、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶する記憶手段と、前記記憶手段から選択された画像を通信ネットワークを介してクライアントマシンに配信する画像配信手段とを備え、前記サーバマシン又は前記クライアントマシンに画像選択手段が備えられ、前記画像選択手段は、前記クライアントマシンに表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選び、前記画像配信手段は、前記画像選択手段によって選ばれた前記1又は2以上の断片画像を前記クライアントシステムに配信する。
【0019】
【発明の実施の形態】
図1は、本発明が適用可能な画像表示システムの一実施形態の概略的な全体構成を示す。
【0020】
画像提供サービスを行う画像サーバ10と、多数のユーザがそれぞれ利用する多数のクライアントコンピュータ30とが、例えばインターネット20のような通信ネットワークを通じて通信可能になっている。画像サーバ10は広範な地域の画像データを格納した画像データベース11を有している。クライアントコンピュータ30は、画像サーバ10にアクセスするためのクライアントプログラム31を有する。クライアントプログラム31には、画像サーバ10に具体的な画像データの要求を送り画像サーバ10から受信した画像データを表示するための画像ビューワ32が、例えばプラグインのような形で付属している。クライアントコンピュータ30は、ディスプレイ装置33や、マウス34のようなコントローラも有している。
【0021】
(必ずしもそうである必要はないが、)この実施形態では、画像サーバ10はWWWサーバであり、クライアントコンピュータ30内のクライアントプログラム31はWWWブラウザであり、両者はHTTPプロトコルによって画像データの要求や画像データをやり取りする。
【0022】
図2は、画像サーバ10がもつ画像の種類と、クライアントコンピュータ30内の画像ビューワ32が画像サーバ10に対して画像データを要求するときの順序を説明したものである。
【0023】
この実施形態では、複数の異なる視点からそれぞれ撮影された対象物の電子的な撮影画像、つまり、複数の視点別に電子的な撮影画像が用意される。これらの撮影画像は、例えば以下の図3に示すような撮影方法で得られる。
【0024】
すなわち、図3に示すように、その撮影方法では、所定の視点移動線(例えば、仮想的な線)422上に、複数の(例えば3つの)異なる視点450A〜450Cが定められている。対象物453が各視点450A〜450Cからデジタルカメラ(又は光学式カメラ)451で撮影されることによって、各視点毎にオリジナルの解像度の撮影画像が得られる(光学式カメラで撮影された場合には、写真をスキャナで読込ませて電子化させることにより電子的な撮影画像が得られる)。なお、本明細書で言う「視点」とは、対象物を眺めるための位置のことを言い、この実施形態では、撮影位置のことを言う。また、説明及び図示の便宜上、視点の数は3つになっているが、勿論3つに限定する必要はなく、好適には、例えば、対象物453を取り囲むように多数の視点を設ける。対象物453がそれら多数の視点の各々から撮影されることで、対象物453を多数の視点から見た多数の画像が用意され、それら多数の画像を以下に詳述する方法で配信することで、ユーザに対して、三次元モデルではない実際の対象物453が立体的に表されているかのよう感を与えることができる。
【0025】
さて、図2に示すように、画像サーバ10には、複数の視点毎に撮影画像ディレクトリ400A〜400Cが設けられている(この実施形態では、説明の便宜上、視点は3つとし、そのため撮影画像ディレクトリの数は3つとする)。各撮影画像ディレクトリ400A〜400C内の構成はどれも同様なので、以下、第1の撮影画像ディレクトリ400Aを代表的に説明する。
【0026】
第1の撮影画像ディレクトリ400Aには、第1の視点から撮影されたオリジナルの解像度の撮影画像を格納するための格納領域(図示せず)と、そのオリジナルの解像度の撮影画像を基に後述する画像コンバータによって得られた複数種類(例えば3種類)の解像度の撮影画像がそれぞれ格納される格納領域401A〜403Aとが含まれている(参照番号401Aを、高解像度撮影画像が格納される高解像度画像格納領域とし、参照番号402Aを、中解像度撮影画像が格納される中解像度画像格納領域とし、参照番号403Aを、低解像度撮影画像が格納される低解像度画像格納領域とする)。各格納領域401A〜403A内にある撮影画像は、後に説明するように、矩形状に(換言すればメッシュ状に)細分化されており、複数の矩形の断片画像の集合体となっている。
【0027】
なお、ここでは「解像度」という用語を使っているが、これは、「ピクセルサイズ」又は「ピクセル数」(つまり、画像の縦横のピクセル数)という用語に置き換えて説明することもできる。例えば、画像の縦横の長さが同一である場合、「解像度」が高ければ、「ピクセルサイズ」は小さくて「ピクセル数」は多く、一方、「解像度」が低ければ、「ピクセルサイズ」は大きくて「ピクセル数」は少ない。
【0028】
また、後の説明では、「解像度」の段階的なレベルを指すために、「深さ」という用語も用いる。
【0029】
さて、上述した各種の解像度の撮影画像110〜112は、いずれも、前述したように、縦横方向で細かく分割した小さい矩形領域(以下、「メッシュ」という)単位の断片画像に分割されている。1つのメッシュを単位として、画像サーバ10から画像ビューワ32への画像の送信が行われる。すなわち、両者間の1回のHTTPセッションで、1つのメッシュの画像データ(つまり断片画像)が画像ビューワ32から画像サーバ10へ要求され、そして、その1つのメッシュの画像データが画像サーバ10から画像ビューワ32へ返信される。従って、メッシュのサイズ(面積)が小さいほど、メッシュの画像データの量が少なくなり、1回のHTTPセッションに要する時間は短くなるから、1つのメッシュの表示に要する時間は短くなる。しかし、メッシュのサイズ(面積)が小さいほど、ユーザが所望する画像の表示範囲に含まれるメッシュの個数が多くなるから、画像ビューワ32と画像サーバ10との間で行われるHTTPセッションの回数が増える。この観点から、ユーザが所望する画像の表示範囲を高速に表示し終わるようにする(または、そのようにユーザに感じさせる)ためには、1つのメッシュの画像データ量が適度であって、1回のHTTPセッションに要する時間が長すぎず、かつ、ユーザが所望する画像の表示範囲に必要なHTTPセッションの回数が多すぎないように、1つのメッシュのサイズ、換言すれば一つのメッシュのデータ量、を適度に設定することが肝要である。この理由から、画像の解像度が異なればメッシュのサイズも異なる。すなわち、解像度が低い画像ほど、同じ画像データ量でカバーできる表示範囲が大きくなるので、メッシュのサイズも大きく設定されている(但し、1つのメッシュのデータ量がどの画像110〜112でも同じというわけではない)。
【0030】
クライアントコンピュータ30内の画像ビューワ32は、ユーザのマウス34等の操作によるユーザ所望の視点(或いは、表示されている画像のスクロールや拡大又は縮小)の要求に応じて、その視点(同一の視点がない場合にはそれに最も近い視点)から撮影された撮影画像の表示範囲(画像のスクロールや拡大又は縮小の要求の場合は、スクロール後や拡大又は縮小後の表示範囲)を把握し、その表示範囲と重なる(つまり、その表示範囲に含まれるか、又は、その表示範囲を包含する)メッシュがどれであるかを、各解像度の撮影画像110〜112ごとに決定する。例えば、図2でディスプレイ装置33内に示された画像の表示範囲の例の場合、その表示範囲と重なっているメッシュは、高解像度画像110の16個のメッシュ110A〜110P(図中、破線で境界が示されている)と、中解像度画像111の4個のメッシュ111A〜111D(図中、実線で境界が示されている)と、低解像度画像112の1個のメッシュ112Aである。これらのメッシュ110A〜110P、111A〜111D、112Aを決定すると、続いて、画像ビューワ32は、それらのメッシュの画像データを画像サーバ10に要求する。その際、画像ビューワ32は、低解像度の断片画像から優先的に、すなわち、まず低解像度の撮影画像112のメッシュ112A、次に中解像度の画像111のメッシュ111A〜111D、最後に高解像度の画像110のメッシュメッシュ110A〜110Pという順序で、画像サーバ10にメッシュデータ要求を発する。但し、ユーザの操作によって決まる表示範囲が広域であって、そのために、或る解像度以上の解像度の画像(例えば、高解像度画像110)を表示する必要がない場合には、その不要な画像(例えば、高解像度画像110)のメッシュは要求しない。
【0031】
画像サーバ10は、要求された順序で各メッシュの画像データを画像データベース11から読み出して画像ビューワ32に返信する。結果として、画像ビューワ32は、(時には、通信ネットワークの事情によって順序が前後することがあるが)通常は、より低解像度の画像のメッシュデータから先に受信して表示することができる。より低解像度な画像ほど、前述したように、1つのメッシュのサイズがより大きいから、ユーザの所望する表示範囲の全域を少ない個数のメッシュでカバーできる。よって、より低解像度の画像が高速に、ユーザの所望する表示範囲の全域に表示される。その後に、より高解像度の画像が表示されていく。より高解像度の画像ほど、対象物がより詳細に表現されている。よって、ユーザの所望する表示範囲に、まず高速に、低解像度画像の大まかな対象物(又はその一部)の表示が出現し、その後に、より高解像度画像の詳細な対象物(又はその一部)の表示が現われてくる。
【0032】
このような一連の処理は、ユーザがマウス34等を操作して所望の視点(換言すれば視点)を切換える都度に行われる(或いは、表示されている撮影画像の拡大又は縮小を要求する都度に行われる)。
【0033】
以上のような、解像度の異なる複数種類の画像を用いたプログレッシブな画像表示方法を採用することで、ユーザが視点を切換えると、その視点から見た対象物の撮影画像が直ちに(大まかな低解像度画像ではあるが)表示され、撮影画像が不連続に切り替わる(つまり、しばらく待ってから切り替わる)という感覚をユーザに与えることがなくなる、換言すれば、視点の切換え(又は、表示されている画像のすくルールや拡大又は縮小)を連続的に円滑に行えるという操作感覚をユーザに与えることができる。これにより、所定の対象物の実物が立体的に表されているかのような感がユーザに与えられる。
【0034】
なお、上述の実施形態では、視点の切換えは所定の順番で自動的に行われても良い、具体的には例えば、ユーザの要求に応答して、上記の視点移動線上に並ぶ視点450A〜450Cが順次に自動的に選択されてもよい。それにより、各視点に対応した撮影画像が連続的に表示されるので、あたかも対象物の動画が再生されているような感をユーザに与えることができる。これは、同一の視点移動線上に並ぶ異なる視点の数が多い程大きい。
【0035】
また、上述の実施形態では、以下の方法で撮影画像を用意することができる。すなわち、例えば、デジタルビデオカメラで撮影することによって得られた動画から静止画を得る方法で各視点毎の撮影画像が得られても良い。
【0036】
また、上述の実施形態では、撮影画像は、視点毎に限らず、様々なズーム倍率毎、或いは、その他のカメラ視野パラメータ(例えば視線等)毎に用意されていても良い。
【0037】
さて、上述の実施形態では、各種解像度の撮影画像の全体的なサイズが大きい場合には、下記のメッシュ管理方法で、各種解像度の撮影画像別に、その撮影画像中のメッシュ(つまり断片画像)を管理することが好ましい。以下、そのメッシュ管理方法について説明する。
【0038】
前述したように、1つのメッシュのサイズは、ユーザに待つという実感を与えない程度の短時間で1回のHTTPセッションを終えられる程度に、適度に小さく設定されている。そのため、撮影画像の全体領域は複数のメッシュに分割されている。撮影画像の全体領域が広ければ広いほど、メッシュの数は膨大である。この膨大な数のメッシュのファイルを単純に1つのディレクトリに並列に格納したとすると、或るファイルの要求が来たとき、そのファイルを検索するのに非常に長い時間がかかってしまう。そこで、この実施形態では、図4に示すような階層構造のディレクトリで、その膨大な数のメッシュのファイルを管理する場合がある。
【0039】
図4は、各画像格納領域401A〜403A、401B〜403B、401C〜403C内の各々の内部の階層構造を示す。なお、以下の説明では、各種の解像度の撮影画像について、その撮影画像上での横方向の座標値(横方向のメッシュ番号)を「Xi」と表し、縦方向の座標値(縦方向をメッシュ番号)を「Yj」と表し、それぞれのメッシュにはメッシュ番号(Xi、Yj)と同じファイル名「XiYj」が付けられているものとする。
【0040】
このメッシュ管理方法では、図4(C)に示すような連続的な位置座標(つまりメッシュ番号、つまりファイル名)をもつ8×8配列の64個のメッシュのファイル131、131、…を1群に纏めて、図4(B)に示す1階層上(第2階層)のディレクトリ(以下、「フォルダ」という)132、132、…の一つに格納してある。そして、図4(B)に示す各フォルダ132のフォルダ名(ディレクトリ名)は、各フォルダに格納された64個のメッシュファイル131、131、…のファイル名「XiYj」の横成分「Xi」と縦成分「Yj」をそれぞれ横方向と縦方向のファイル数「8」で除算した商で表した名称、つまり
【0041】
【数1】
となっている。よって、この第2階層の各フォルダ132のフォルダ名は、各フォルダ132に格納されている64個のメッシュファイルがカバーする8×8メッシュ区域の位置座標に相当するということができる。
【0042】
そして、図4(B)に示すような連続的なフォルダ名(つまり図4(C)に示した8×8メッシュ区域の位置座標)をもつ8×8配列の64個の第2階層のフォルダ132、132、…を1群に纏めて、図4(A)に示す更に1階層上(第1階層)のフォルダ133、133、…の一つに格納してある。そして、図4(A)に示す各フォルダ133のフォルダ名(ディレクトリ名)は、各フォルダ133に格納された64個のフォルダ132、132、…のフォルダ名の横成分「Xi/8」と縦成分「Yj/8」をそれぞれ横方向と縦方向のフォルダ数「8」で除算した商で表した名称、つまり
【0043】
【数2】
となっている。よって、この第1階層の各フォルダ133のフォルダ名は、各フォルダ133に格納されている第2階層の8×8個のフォルダ(つまり、64×64個のメッシュファイル)がカバーする64×64メッシュ区域の位置座標に相当するということができる。
【0044】
さらに、図4(A)に示すような連続的なフォルダ名(つまり64×64メッシュ区域の位置座標)をもつ8×8配列の64個の第1階層のフォルダ133、133、…を1群に纏めて、図示しない更に上の階層のディレクトリ(例えば、第1の視点から撮影された、高解像度の撮影画像の場合は、図2に示した画像格納領域401A)に格納してある。
【0045】
なお、この実施形態では、図4(A)〜(C)に示したように、3階層の構造のディレクトリを用い、1つのディレクトリで64個のファイル又はフォルダを管理することで、全部で64×64×64=約26万個のメッシュのファイルを管理することができる。しかし、これは一例であり、メッシュの個数が更に多くなれば、更に階層数を増やしても良い。また、64個のファイル又はフォルダを1ディレクトリに管理するようにした理由は、米国マイクロソフト社のOS環境であるWindows(登録商標)環境(このOS環境では、1ディレクトリ内のファイル又はフォルダの数が100より少ないときに高い検索速度が得られる)で画像サーバ10を稼動させる場合には64個が扱いやすいと判断したためであり、一例に過ぎない。
【0046】
図4に示した階層構造のディレクトリで重要なことは、各階層のディレクトリの名称が、最終的な検索目的である特定のメッシュのファイル名から簡単に計算できるようになっている点である。すなわち、「XiYj」という名称のファイルが欲しいとき、そのファイル名「XiYj」の横成分Xiと縦成分Yjをそれぞれ8で割っていくことで、より上位のフォルダのフォルダ名が簡単に決定され、それを並べることで、目的のメッシュのファイルのへのパスが
【0047】
【数3】
というように簡単に決定される。因みに、n階層のディレクトリであるならば、目的のファイルのへのパスは
【0048】
【数4】
というように、簡単に計算で決定される。なお、ファイル名「XiYj」の横成分Xiと縦成分Yjをそれぞれ8で割っていくという上記の計算方法は一例にすぎず、別の計算方法を採用してもよい。
【0049】
どのような計算方法を用いるにせよ、目的のメッシュのファイル名から、そのファイルへのパスが所定の数値演算で演算できることは、各メッシュのファイル名がそのメッシュのメッシュ番号(位置座標)に相当するという前述の特徴と相俟って、画像ビューワ32が表示に必要なメッシュのファイルを画像サーバ10に要求するときの手間を大幅に簡単化し、画像表示の高速化に寄与する。
【0050】
図5は、画像ビューワ32の機能的な構成を示す。
【0051】
図5に示すように、画像ビューワ32は、表示部320とダウンローダ322を有する。表示部320の主たる役目は、ユーザによるマウス等を用いた視点の切換え操作(又は、画像のスクロールや拡大縮小等)の操作に応答して、画像の表示すべき範囲を決め、その表示範囲に必要なメッシュのファイル名(メッシュ番号)を決めて、そのメッシュのファイルをダウンローダ322に要求することと、ダウンローダ322から取得したメッシュのファイルに含まれるベクトルデータから表示すべき画像画像を描画することである。また、ダウンローダ322の主たる役割は、表示部320からファイルの要求を受けて、その要求されたファイルを画像サーバ10からダウンロードすることである。
【0052】
表示部320は、過去に取得したファイルのデータを最近のアクセス頻度などに応じた優先順位でメモリ内に保存しておくメモリ・キャッシュ321を有している。ダウンローダ326は、ダウンロード対象のファイルのファイル名(画像サーバ10内のそのファイルへのパス)をリストアップしたダウンロード・リクエスト・リスト325(表示部320は随時にこのリスト内のファイル名を消去する)と、新たなファイルがダウンロードされたか否かを表示部320に知らせるためのダウンロード・フラグ326と、各ファイルをダウンロードするときの各HTTPセッションをそれぞれ行う複数のHTTPセッション・スレッド324A〜324D(図示の例では4個のスレッドがあるが、その個数は可変である)、及び、ダウンロードしたファイルをハードディスクドライブなどの大容量の不揮発性ストレージに保存しておくディスク・キャッシュ323を有している。
【0053】
図6は、表示部320の動作の流れを示している。
【0054】
ユーザがマウスなどで視点切換え等の画像の表示範囲を変化させる操作を行うと(ステップS1)、表示部320はこれに応答して、次の動作を行う。すなわち、ダウンロード・リクエスト・リスト325に記載されている全てのファイル名を消去し(S2)、ダウンロード・フラグ326をリセットし(S4)、そして、変化後の新しい表示範囲を決定して、その表示範囲に必要なメッシュのファイル名(メッシュ番号)を決定する(S5)。ステップS5では、表示部320は、所定のアルゴリズムで(例えば、表示倍率に基づいて)、その表示範囲に表示すべき画像の解像度として最適な解像度を決定し、その最適解像度の画像について、新しい表示範囲に必要なファイル名を決定する(ここで決定したの最適解像度のファイルを、以下「必要ファイル」という)。それに加え、この最適解像度の必要ファイルが直ちに入手できなかったときの一時的な代替表示(つまり、前述したプログレッシブ表示を行う)ために、最適解像度よりも小さい各解像度の画像についても、新しい表示範囲と重なるメッシュのファイル名を決定する(この代替表示のためのより低解像度の画像のファイルを、以下、「代替ファイル」という)。
【0055】
続いて、表示部320は、その新しい表示範囲に画像を描画して表示するために、以下の処理に入る。
【0056】
まず、画像の表示が未完了の段階(S6でNO)では、ステップS5で決定したファイル名(メッシュ番号)をもつものを、メモリ・キャッシュ321から探す(S7)。このとき、各メッシュについて、まず、最適解像度の必要ファイルを探し、それが無ければ、それより1段階低解像度の代替ファイルを探し、それも無ければ、更に1段階低解像度の代替ファイルを探す。このように、最適解像度の必要ファイルを最優先に探し、それがない場合、段階的により低解像度の代替ファイルを探していく。メモリ・キャッシュ321内から目的のファイル(必要ファイルか又は代替ファイル)が見つかれば(S7でYES)、そのファイル中の画像を描画してディスプレイ画面の対応するメッシュの領域に表示する(S8)。このとき、より低解像度の画像が既に代替表示されていたところに、より高解像度の画像を表示しようとする場合には、その先に代替表示されていた低解像度の画像を消去して、より高解像度の画像を新たに表示することになる。
【0057】
全ての必要ファイルがメモリ・キャッシュ321から見つかれば(S9でNO)、画像の表示が完了するので、次に、表示範囲に変化がない限り(S15でNO)、上述したステップS6以下の処理に入る。
【0058】
一方、画像を表示しようとしているとき、メモリ・キャッシュ321からは見つからない必要ファイルが一つでもあった場合には(S9でYES)、表示部320は次に、その見つからなかった必要ファイルと、その見つからなかった必要ファイルのための代替ファイルであってメモリ・キャッシュ321から見つからなかったもの(これらの見つからなかった必要ファイルと代替ファイルを、以下、「不足ファイル」と総称する)を、ダウンローダ322に要求する(S10)。このときも、表示部320は、まず最適解像度の必要ファイルを最優先で要求し、続いて、段階的により低解像度の代替ファイルを要求する。
【0059】
後述するように、ダウンローダ322は、表示部320から不足ファイルの要求を受けると、要求された順番で(つまり、表示部320がメモリ・キャッシュ内を探したときと同様に、まず必要ファイル、それが見つからなければ、段階的により低解像度の代替ファイルの順で)、各不足ファイルをディスク・キャッシュ323の中から探し、見つかれば、ディスク・キャッシュ323内で見つかったそのファイルへのパスを表示部320に返し、見つからなければ、ファイル無しという回答を表示部320に返す。表示部320は、ダウンローダ322から、ディスク・キャッシュ323内で見つかったファイルへのパスを受けた場合には(S11でYES)、そのパスを用いてそのファイルをディスク・キャッシュ323から読み込んでメモリ・キャッシュ321に保存し(S12)、そしてそのファイルの画像を描画して、ディスプレイ画面の対応するメッシュの領域に表示する(S13)。前述したように、より低解像度の画像が既に代替表示されていたところに、より高解像度の画像を表示しようとする場合には、その先に代替表示されていた低解像度の画像を消去して、より高解像度の画像を新たに表示することになる。
【0060】
全ての必要ファイルがディスク・キャッシュ323から見つかれば(S14でNO)、画像の表示が完了するので、次に、表示範囲に変化がない限り(S15でNO)、既に説明したと同様に、S7以下に入る。
【0061】
このようにして、全ての必要ファイルがメモリ・キャッシュ321内か又はディスク・キャッシュ323内に存在すれば、新しい表示範囲の画像の表示は瞬時に完了する。新しい表示範囲の画像の表示が完了すれば(S6でYES)、処理は最初に戻る。
【0062】
一方、不足ファイルをダウンローダ322に要求したところ、ダウンローダ322からファイル無しという回答が返って来た必要ファイルが一つでもあった場合には(S14でYES)、表示部320の処理は最初に戻る。そして、表示部320は、表示範囲に変化が無い限り(S1でNO)、ダウンロード・フラグ326が立つのを待つ(S2)。後述するように、ダウンローダ322は、或るファイルについてファイル無しという回答を返した場合には、そのファイルを画像サーバ10からダウンロードする作業に入り、そのファイルのダウンロードが終わると、そのファイルをディスク・キャッシュ323に格納して、ダウンロード・フラグ326を立てる。ダウンロード・フラグ326が立ったことを知ると(S2でYES)、表示部320は、表示範囲が変化したときに行ったと同様のステップS3以下の処理を再び繰り返す。すなわち、ダウンロード・リクエスト・リスト325内の全てのファイル名を消去し(S2)、ダウンロード・フラグ326をリセットし(S4)、表示範囲を計算し直して、その表示範囲に必要なメッシュのファイル名(メッシュ番号)を決定し(S5)、そして、ファイルを取得して画像を描画して表示するためのステップS7以下の処理を繰り返す。それにより、表示部320は、既に描画して表示済みであったメッシュについては、再び同じ画像を描画して表示し直すことになり、また、ファイルがダウンロードされたメッシュについては、そのダウンロードされたファイルをディスク・キャッシュ323から読み込んで画像を描画してそのメッシュの領域に表示することになる。
【0063】
不足ファイルが1つダウンロードされる都度に、表示部320は、ステップS3からの処理を繰り返すので、ディスプレイ画面上の表示領域は1メッシュづつ順次に完成に近づいていく。ディスプレイ画面上の表示領域全域の画像が完成すると(S6でYES)、表示部320は、最初のステップS1に戻り、ユーザによって表示範囲が変更されるの待ち、変更されればステップS3以下の処理を再び繰り返す。
【0064】
また、ディスプレイ画面上の表示領域全域の画像が完成する前に、ユーザによって表示範囲が変更された場合(S15でYES)にも、表示部320は、ステップS3以下の処理を再び繰り返す。
【0065】
図7は、ダウンローダ322の動作の流れを示す。
【0066】
図7に示すように、ダウンローダ322は、表示部320からファイルの要求を受けると(S21)、まず、その要求されたファイルをディスク・キャッシュ323から探す(S22)。ディスク・キャッシュ323からその目的のファイルが見つかれば(S22でYES)、ダウンローダ322は、そのファイルのディスク・キャッシュ323内でのパスを表示部320に知らせる(S23)。表示部320から要求された全てのファイルがディスク・キャッシュ323から見つかって、それらのパスを表示部320に通知ことができれば(S24でNO)、ダウンローダ322は、最初のステップS21へ戻り、表示部320から再びファイルの要求が来るのを待つ。
【0067】
一方、表示部320から要求されたファイルの中にディスク・キャッシュ323から見つからなかったファイルがあれば(S24でYES)、ダウンローダ322は、その見つからなかったファイルについてファイル無しの旨を表示部320へ通知する(S25)と共に、その見つからなかったファイルのファイル名(画像サーバ10内でのそのファイルへのパスを含む)をダウンロード・リクエスト・リスト325に書く(S26)。このとき、ダウンロード・リクエスト・リスト325には、予め、既に説明した表示部320による図6のステップS3の処理により、過去に書いてあったファイル名は全て消去されているので、このときに見つからなかったファイルのファイル名だけが書かれることになる。このとき、ダウンローダ322は、見つからなかったファイルのうち、より低解像度の画像のファイルを優先的にダウンロード・リクエスト・リスト325に書いていく(つまり、低解像度のファイルほどリストの先頭近くに書かれる)。
【0068】
続いて、ダウンローダ322は、ダウンロード・リクエスト・リスト325に書かれているファイル名を、そのリスト325の先頭から順に(つまり、より低解像度の画像ファイルから優先的に)、アイドル状態にあるHTTPセッション・スレッド324A〜324Dへ割り当てていく(S28)。HTTPセッション・スレッド324A〜324Dは、ファイル名を割り当てられると直ちに画像サーバ10との間でHTTPセッションを実行して、それぞれに割り当てられたファイルを画像サーバ10からダウンロードする。より低解像度の画像のファイルから先にHTTPセッション・スレッド324A〜324Dに割り当てたので、ダウンロードも、より低解像度の画像のファイルから先に完了する。
【0069】
個々のファイルのダウンロードが完了する都度(S29でYes)、ダウンローダ322は、そのファイルのファイル名をダウンロード・リクエスト・リスト325から消去し(S30)、そのファイルをディスク・キャッシュ323に保存し(S31)、そして、ダウンロード・フラグ326を立てる(S32)。その後、ダウンローダ322は、最初のステップS21へ戻って、表示部320から再びファイル要求が来るのを待つ。ダウンロード・フラグ326を立てると、既に説明したように、表示部320が再びファイル要求を発し、ダウンロードされたファイルをディスク・キャッシュ323から読み出してその画像を描画し表示する。
【0070】
以上の表示部320とダウンローダ322の動作説明を要約すれば、ダウンローダ322は、ひたすら、不足したファイルをダウンロードする処理を単純に繰り返すだけである。また、表示部320は、表示範囲の変化又はファイルのダウンロード完了が発生する都度、ひたすら、表示範囲に必要な全てのファイルの入手を試みて、入手できたファイルのみで画像を描画する処理を単純に繰り返すだけである。そこには、表示範囲が変化したり、ファイルのダウンロードが完了したりする都度、既に描画済みのファイルも含めて必要な全てのファイルを入手して始めから描画し直すという、一見無駄に思える重複作業が入っているが、その見返りとして、どのファイルの描画が完了し、どのファイルの描画が完了してないかを判別して、未描画のファイルだけを選択的に描画するというような面倒な判断処理を行わずに済んでいる。また、表示部320とダウンローダ322は非同期で動作しており、両者の動作タイミングを合わせるというような面倒な同期処理も行っていない。これらのことから、結果的に、画像画像を高速に表示することが可能である。
【0071】
また、クライアントコンピュータ30で描画を行うため、画像サーバ10に描画の負担をかけさせないという点も、画像サーバ10の応答を高速化し、画像画像の高速表示に寄与する。
【0072】
それに加え、最終的に欲しい画像を一気に完成させようとするのではなく、より低解像度の画像ファイルを先にダウンロードして先に表示するという、解像度の異なる画像のプログレッシブ表示(つまり、最適解像度の画像が手元に無い時のより低解像度の画像によるを代替表示)の手法を用いることで、ユーザにダウンロード時間に起因する画像表示の遅さを実質的に感じさせることなく、連続的で円滑な視点の切換え(又はスクロールや拡大縮小等)の操作感を実感させることができる。
【0073】
図8は、このプログレッシブ表示の一例を示す。
【0074】
図8(A)に示すような、或る視点から撮影された対象物の高解像度画像を表示している状態から、ユーザが視点の切換え操作を行ったとする。すると、最終的には図8(C)に示すような、別の視点から撮影された対象物の別の高解像度画像が表示されることになるが、この図8(C)の最終的な画面に至るまでに、図8(B)に示す中間段階の画面が順番に表示される。
【0075】
図8(B)の画面は、視点切換え直後のものであり、図中の破線800、900は、メッシュの境界を示す。この視点切換え直後の画面では、右上の1つのメッシュ41についてだけ、高解像度画像のファイルが既にキャッシュ内にあったため、高解像度画像が表示されている(その旨を図8(B)に表すべく、高解像度画像上の対象物を実線で示す)。残りの3つのメッシュ42〜44については、まだ高解像度画像のファイルはダウンロード中であるため、高解像度画像は全く表示されていないが、しかし、中解像度画像のファイルがキャッシュ内にあったため、その中解像度画像が代替表示されている(その旨を図8(B)に表すべく、中解像度画像上の対象物を細かい点線で示す)。
【0076】
少し待つと、残り3つのメッシュ42〜44についても、高解像度画像のファイルのダウンロードが完了して、図8(C)に示すような最終的な画面が完成する。
【0077】
以上ような流れは、視点の切換え操作が行われた場合のみならず、画像のスクロールや拡大又は縮小等の操作が行われ場合にも行われる。
【0078】
この実施形態によれば、視点切換え操作をすると、直ぐに図8(B)のような画面が表示されて、段階的に図8(C)の最終画面へ完成されていくので、ユーザとしては、直ちに画像表示が開始されたという実感をもつことができ、別の視点から見た実物の撮影画像も即座に判断できるので連続的に視点が切換えられた感(換言すれば、実物が立体的に表されている感)が得られる。
【0079】
さらに、図8(B)のような不完全な画像が表示された段階でも、ユーザはそれがどの視点からの撮影画像であるかが分るから、更にもっと別の視点に切換えるべきか否かが即座に判断でき、必要なら、先へ先へと連続的に視点を切換えて所望の視点での画像を見ることができる。
【0080】
図9は、複数の画像サーバを設けて負担を分散するようにした本発明の別の実施形態を示す。
【0081】
複数台の画像サーバ50、50、…が、インターネット60などの通信ネットワークに接続されており、多数のクライアントコンピュータ70、70、…の各々は、それら複数台の画像サーバ50、50、…のいずれにもアクセスすることができる。複数台の画像サーバ50、50、…は、同じ画像データ(例えば、オリジナルの撮影画像を基に生成された高解像度撮影画像のデータ、中解像度撮影画像のデータ、及び低解像度画像のデータを含んだデータ)を格納した画像データベース51、51、…をそれぞれもつ。
【0082】
図10は、クライアントコンピュータ70がユーザの所望する表示範囲に必要なメッシュのファイルを複数台の画像サーバ50、50、…に要求するときの方法を示したものである。
【0083】
各クライアントコンピュータ70は、原則的に、図10(A)に示すように、表示範囲80と重なる複数のメッシュ81、81、…のファイルを、全部1台の画像サーバ50に要求するのではなく、最初のメッシュはAサーバに、次のメッシュはBサーバに、次のメッシュはCサーバにというように、複数のファイルを複数台のサーバ50、50、…にほぼ均等に分散して要求する。それにより、複数台のサーバ50、50、…で負荷が均等に分散され、より高速な画像表示が可能になる。また、複数台のサーバ50、50、…のどれもが同じ画像データをもっているので、それらサーバ50、50、…のメンテナンスも容易である。
【0084】
また、もし、複数台のサーバ50、50、…の中のどれか、例えばCサーバ、に障害が発生したとする。この場合、各クライアントコンピュータ70は、Cサーバから正常な応答が返って来ないことを知ると、図10(B)に示すように、残りの正常なAサーバとBサーバに対して、ファイルを均等に分散して要求する。このように、複数台のサーバ50、50、…のどれもが同じ画像データをもっているので、その中の一部のサーバで障害が発生しても、他のサーバが代わって対応することができる。
【0085】
複数のサーバによる負荷分散の形態には、上記以外にも色々なものが採用し得る。例えば、地域毎にサーバを分けても良い。例えば、アクセスの多い首都圏を1台か複数台のサーバが担当し、残りの地域を別の1台か複数台のサーバが担当するというようにである。或いは、解像度の異なる画像別にサーバを分けてもよい。例えば、データ量の多い高解像度画像を1台か複数台のサーバが担当し、残りの解像度の画像を別の1台か複数台のサーバが担当するというようにである。
【0086】
さて、上述した実施形態では、各種解像度の撮影画像を、以下の画像コンバータによって、オリジナルの解像度の撮影画像を基に得ることができる。以下、その画像コンバータについて説明する。
【0087】
次に、本発明に従う画像コンバータの一実施形態について説明する。
【0088】
この画像コンバータは、上述した画像表示システムのサーバ10に蓄積されるような、それぞれメッシュ分割された異なる解像度(ピクセルサイズ、深さ)を持った複数枚の画像データを作成して、それをサーバにアップロードするために用いられる。この画像コンバータは、例えば上述した画像表示システムのために使用される場合には、オリジナルの撮影画像から複数種類の解像度の撮影画像を作成し、且つ、各画像をメッシュ状に分割する。この画像コンバータは、以下の実施形態ではコンピュータプログラムをコンピュータで実行することによって実現されるが、それだけに限られるわけではなく専用ハードウェアを用いて実現することもできる。この画像コンバータを実現するコンピュータプログラムは、以下の実施形態では例えば図1に示したクライアントコンピュータ30にインストールされるが、それのみに限られるわけではなく、他のコンピュータにもインストールすることができる。
【0089】
図11は、この画像コンバータが行う処理の流れを示す。
【0090】
図11に示すように、画像コンバータは、ステップS101で、ユーザの指示によりコンバート対象の元画像データ(すなわち、オリジナルの解像度の撮影画像)を選択する。元画像データは原則的にビットマップ(ラスタ型)画像データであるが、それに限られるわけではなく、ベクタ型画像データであってもよく、その場合には、画像コンバータはそのベクタ型画像データを読み込んでビットマップ(ラスタ型)画像データに変換することになる。
【0091】
ステップS102とS103で、画像コンバータは、ユーザの指示により、メッシュサイズと圧縮方式を選択する。ここで、メッシュサイズとは、各メッシュデータ(この実施形態では正方形とする)の一辺のピクセル数である。例えば、64、128及び256ピクセルの3つのメッシュサイズの中からユーザ所望の一つが選択できる。例えば、画像の基礎として用いられる航空写真のように微細な変化を見逃せない画像では、64ピクセルのような比較的に小さいメッシュサイズを選ぶとよく、逆に、イラストのような微細な変化の少ない画像では、256ピクセルのように比較的に大きいメッシュサイズを選ぶとよい。風景や人物などの通常の写真画像では、128ピクセルのような中程度のメッシュサイズを選ぶことができる。
【0092】
また、圧縮方式とは、作成されたメッシュデータをファイル化する際に行う圧縮方式のことであり、例えば、特定の不可逆圧縮方式と特定の可逆圧縮方式の2通りの中からユーザ所望の一つを選ぶことができる。微細な変化を見逃せない画像では可逆圧縮方式がよいであろうし、通常の写真画像のような用途では不可逆圧縮方式でも十分であろう。
【0093】
ステップS104でユーザから実行要求を受けると、画像コンバータは、ステップS105で、元画像データを読み込んでメッシュ作成処理を行う。メッシュ作成処理の具体的な流れは、後に図12を参照して説明する。メッシュ作成処理の実行によって、元画像データは、それぞれメッシュ分割された解像度(ピクセルサイズ、深さ)の異なる複数枚の画像データにコンバートされ、コンバートされた画像データは、図4に示したような階層状のフォルダに分類格納された多数のメッシュデータファイルの形式で、クライアントコンピュータ30内の所定のディレクトリに保存される。
【0094】
ステップS106で、画像コンバータは、ユーザの指示により雛型HTMLファイルを選択する。ここで、雛型HTMLファイルとは、図1に示した画像ビューワ32(例えば、米国マイクロソフト社のActiveX技術を用いたプラグインプログラム)を実行するためのスクリプトや、その表示画面の背景の定義などが記述されたHTMLファイルである。
【0095】
ステップS107で、ユーザからのプレビューの要求を受けると、画像コンバータは、図1に示したWWWブラウザ31を起動して画像ビューワ32を実行させて、上述のコンバートされた画像データのプレビュー(予備的表示)を行わせる。すなわち、画像コンバータは上述した雛型HTMLファイルを読み込み、その雛型HTMLファイル内の画像ビューワ実行用のスクリプトを、上述のコンバートされた画像データが表示対象になるように書き換えた上で、その書き換え後のHTMLファイルを所定ディレクトリに新たに保存し、そして、WWWブラウザ31を起動して、その保存された書き換え後HTMLファイルをWWWブラウザ31に開かせる。WWWブラウザ31は、そのHTMLファイルを開き、その中のスクリプトに従って画像ビューワ32を実行して、上述の所定ディレクトリに保存されているコンバートされた画像データを表示する。
【0096】
ステップS108で、画像コンバータは、ユーザの指示により、上述の書き換え後HTMLファイルとコンバートされた画像データのそれぞれのアップロード先(例えば、図1に示したサーバ10内の所定場所を示すURL)を指定する。ステップS109で、ユーザからアップロード実行を要求されると、画像コンバータは、上述の書き換え後HTMLファイルとコンバートされた画像データとを、それぞれの指定されたアップロード先に、インターネットなどのネットワークを通じてアップロードする。
【0097】
図12は、上述のステップS105のメッシュ作成処理の具体的手順を示す。
【0098】
図12に示すように、ステップS201で、画像コンバータは、選択された元画像データを読み込み、その元画像データのピクセルサイズに基づいて、深さ数nを決定する。ここで、深さ数nとは、その元画像データをコンバートした結果出来上がる、ピクセルサイズの段階的に異なる複数枚のビットマップ画像データの枚数である。例えば、深さ数nが3であれば、コンバート結果として、例えば、元画像データと同じピクセルサイズと、それより1段階小さいピクセルサイズと、さらに1段階小さいピクセルサイズの、計3段階の深さ(ピクセルサイズ)のビットマップ画像データが出来上がることになる。深さ数nの決め方については、例えば、元画像データの縦横辺のうちの長辺のピクセル数、或いは、ピクセル総数(つまり、縦ピクセル数×横ピクセル数)などを、所定の複数の閾値と比較して、その比較結果に応じて、例えば最小閾値未満ならn=3、最小閾値以上2番目閾値未満ならn=4、2番目閾値以上ならn=5などというように決定することができる。
【0099】
ステップS202で、画像コンバータは、決定された深さ数nに従って、深さ(ピクセル)の異なるn枚の画像を、元画像データを用いて作成する。例えば、n=3の場合、第1の深さの画像データは元画像データであり、第2の深さの画像データは元画像データをピクセル数において1段階縮小することで作成し、第3の深さの画像データは元画像データをピクセル数において2段階縮小する、というような方法で3枚の画像データを用意することができる。この場合、1段階分の縮小倍率として例えばk=0.8のような1未満の定数kを用いて、この定数kの段階的なべき乗倍率で縮小することもできるし、或るいは、深さ毎に予め設定された最適な縮小倍率を使用してもよい。
【0100】
ステップS203で、画像コンバータは、深さ毎のn枚の画像データの各々のピクセルサイズと、選択されたメッシュサイズとから、各画像データをメッシュ分割したときに出来るメッシュの個数mを計算する。そして、このメッシュ数mに基づいて、画像コンバータは、メッシュデータを格納するためのフォルダの階層構造や、各フォルダの名称や、各メッシュデータファイルをどのフォルダに入れるかなどを決定し、そのような階層構造をもったフォルダ群をクライアントコンピュータ30内の所定ディレクトリに作成する。
【0101】
ステップ204で、画像コンバータは、深さ毎のn枚の画像データの各々を、その画像データ毎に計算されたメッシュ数m個のメッシュデータに分割する。そして、画像コンバータは、ステップS205で、分割された個々のメッシュデータを、選択された圧縮方法で圧縮されたファイルにして、ステップ206で、そのメッシュデータファイルを上記階層構造のフォルダ群中のしかるべきフォルダに保存する。n枚の全ての画像データについて上記の処理が行なわれて、コンバートが完了する。
【0102】
以上、本発明の実施形態を説明した、これらの実施形態は本発明の説明のための例示にすぎず、本発明の範囲を上記実施形態のみに限定する趣旨ではない。よって、本発明は、上記の実施形態以外の様々な形態でも実施することが可能である。
【0103】
例えば、視点毎の画像は、撮影画像に限らず、対象物を所定の視点から眺めた場合の画像であれば、他の手法で作成された画像(例えば、対象物がモデリングされた画像)であっても良い。
【0104】
また、例えば、撮影画像の視点やズーム倍率は所定の方法で変更できる。
【0105】
例えば、クライアント30は、表示されている撮影画像上で、マウスの所定ボタン(例えば左ボタン)が押された状態でマウスが動かされたときは、その撮影画像に写っている対象物の視点を変更することができる。その場合、クライアント30は、変更後の視点の撮影画像の必要メッシュを計算してそれを画像サーバ10へ要求する。画像サーバ10は、それに応答して、要求された必要メッシュをクライアント30にダウンロードしそれをクライアント30に表示させる。この一連の流れによって、ユーザは、マウスの左ボタンを押した状態でマウスを動かすことにより、実物を所望の方向から自由に見ることができる。
【0106】
また、例えば、クライアント30は、表示されている撮影画像上でマウスの所定ボタン(例えば右ボタン)を押された状態でマウスが動かされたときは、表示されている撮影画像を動かす、つまり表示画像をスクロールすることができる。
【0107】
また、例えば、クライアント30は、画面に表示されている所定のスライダーが動かされたときに、或いは、表示されている撮影画像がクリックされた後にダイヤル付きマウスのダイヤルが回転されたとき、撮影画像のズーム倍率を大きくする或いは小さくすることができる。
【図面の簡単な説明】
【図1】本発明が適用可能な画像表示システムの一実施形態の概略的な全体構成を示すブロック図。
【図2】画像サーバ10がもつ画像の種類と、クライアントコンピュータ30内の画像ビューワ32が画像サーバ10に対して画像データを要求する順序を説明した図。
【図3】各視点毎の撮影画像を用意するための方法を示す図。
【図4】図2に示した各画像格納領域内の内部の階層構造を示す説明図。
【図5】画像ビューワ32の機能的な構成を示すブロック図。
【図6】表示部320の動作のフローチャート。
【図7】ダウンローダ322の動作のフローチャート。
【図8】プログレッシブ表示の一例を示す画面の遷移図。
【図9】複数の画像サーバで負担を分散した実施形態を示すブロック図。
【図10】クライアントコンピュータ70がユーザの所望する表示範囲に必要なメッシュのファイルを複数台の画像サーバ50、50、…に要求するときの方法を示した説明図。
【図11】本発明の一実施形態にかかる画像コンバータが行う処理全体のフローチャート。
【図12】本発明の一実施形態にかかる画像コンバータのメッシュ分割処理のフローチャート。
【符号の説明】
10 画像サーバ 20 インターネット
30 クライアントコンピュータ
31 クライアントプログラム
32 画像ビューワ
34 マウス
【発明が属する技術分野】
本発明は、インターネットのような通信ネットワークを通じてクライアントコンピュータが画像サーバから画像データを受信して表示するための技術に関する。
【0002】
【従来の技術】
従来、通信ネットワークを用いた画像表示方法の一つに、所定の対象物が立体的に表されている感をユーザに与えることができる画像表示方法がある。その画像表示方法では、一般に、所定の対象物がモデル化されたものを示す三次元モデルデータをサーバからクライアントコンピュータに配信し、クライアントコンピュータに対するユーザの操作に応答して、クライアントコンピュータにおいて、その三次元モデルデータが解釈されて所定の対象物の三次元モデルがディスプレイ画面に表示される、すなわち、所定の対象物が立体的に表現される。
【0003】
【発明が解決しようとする課題】
この従来の画像表示方法で所定の対象物が立体的に表されている感をユーザに与えるためには、例えば以下の第1及び第2の問題点がある。
【0004】
第1の問題点は、対象物をモデル化した三次元モデルデータを作成して用意しなければならない点である。対象物を三次元モデル化しそれを表した三次元モデルデータを作成することは、楽な作業ではない。これは、特に、対象物が複雑な物である、対象物が多数の部品から成っている、或いは、対象物をできるだけ正確に表す等の場合には、なお更である。
【0005】
第2の問題点は、表示される対象物は実物ではなくて三次元モデル、すなわちモデル化されたものである点である。このため、ユーザにとって対象物のリアリティに乏しく、それ故、対象物について正確に把握することができる確実性は高くはない。これは、特に、表示される三次元モデルの形状精度が低い等の場合にはなお更である。
【0006】
従って、本発明の目的は、通信ネットワークを用いた画像表示システムにおいて、三次元モデルデータをわざわざ用意しなくても、ユーザに対して所定の対象物が立体的に表されている感を与えることができるようにすることにある。
【0007】
本発明の別の目的は、通信ネットワークを用いた画像表示システムであって、所定の対象物が立体的に表されている感をユーザに与えることができる画像表示システムにおいて、従来よりも対象物のリアリティをユーザに与えられるようにすることにある。
【0008】
【課題を解決するための手段】
本発明の第1の側面に従うシステムは、対象物が立体的に表されているかのように画像を表示するためのシステムであって、サーバマシンと、前記サーバマシンと通信ネットワークを介して通信可能なクライアントマシンとを備える。前記サーバマシンは、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループを有している。各視点の画像グループは、その視点から対象物を眺めて得られる解像度の異なる2以上の画像を含み、各解像度の画像は複数の断片画像に分割されている。また、前記サーバマシン又は前記クライアントマシンが、画像選択手段を有する。前記画像選択手段は、前記クライアントマシンに表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選択する。前記サーバマシンは、前記画像選択手段によって選ばれた1又は2以上の断片画像を前記通信ネットワークを介して前記クライアントマシンに配信する。前記クライアントマシンは、前記サーバマシンから受信した1又は2以上の断片画像を描画して表示する。
【0009】
本発明の第1の側面に従うシステムの第1の好適な実施形態では、前記画像選択手段は、前記選ばれた視点に対応した画像グループの中から、前記最適解像度の画像だけでなく、前記最適解像度よりも低い解像度の1又は複数の画像を選んで、選ばれた異なる解像度の画像のそれぞれから前記変更された画像の表示に必要な1又は2以上の断片画像を選び、前記サーバマシンは、前記画像選択手段によって選ばれた異なる解像度の1又は2以上の断片画像を、解像度のより低いものから優先して前記クライアントマシンに送信する。
【0010】
本発明の第1の側面に従うシステムの第2の好適な実施形態では、前記複数の異なる視点は、所定の視点移動線上に並ぶものであり、前記ユーザ操作が、表示されている画像の視点を、前記視点移動線に沿って移動させるものであるとき、前記画像選択手段は、前記視点移動線上に並ぶ視点を順次に選択する。
【0011】
本発明の第1の側面に従うシステムの第3の好適な実施形態では、前記クライアントマシンは、受信済みの複数の断片画像の中に、表示される位置が互いに重複している2以上の異なる解像度の断片画像があれば、解像度がより高い断片画像を優先して表示する。
【0012】
本発明の第1の側面に従うシステムの第4の好適な実施形態では、前記クライアントマシンが、前記画像選択手段を具備し、前記画像選択手段によって選択された1又は2以上の断片画像を前記サーバマシンに要求する。
【0013】
本発明の第1の側面に従うシステムの第5の好適な実施形態では、複数台の前記サーバマシンが備られ、前記複数台のサーバマシンのいずれからも、前記断片画像が前記クライアントマシンへ伝送され得るようになっている。
【0014】
本発明の第1の側面に従うシステムの第6の好適な実施形態では、或る1つの視点から対象物を眺めたオリジナルの解像度を持つ画像を用いて前記オリジナルの解像度の画像より低い解像度を持つ1又は2以上の画像を作成する画像作成手段と、前記オリジナルの解像度及びそれより低い解像度の画像を、それぞれ複数の断片画像に分割する画像分割手段と、前記複数の断片画像に分割された前記オリジナルの解像度及びそれより低い解像度の画像を、前記或る1つの視点に対応する画像グループとして前記サーバマシンに登録する画像登録手段とが更に備えられる。
【0015】
本発明の第2の側面に従う方法は、対象物が立体的に表されているかのように画像を表示するための方法であって、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶するステップと、ディスプレイ画面(例えば、クライアントマシンのディスプレイ画面)に表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選択するステップと、選択された前記1又は2以上の断片画像(例えば、サーバマシンからクライアントマシンに配信された断片画像)を描画して表示するステップとを有する。
【0016】
本発明の第3の側面に従うコンピュータプログラムは、対象物が立体的に表されているかのように画像を表示するための方法を可能にするためのコンピュータプログラムであって、ディスプレイ画面に表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選ぶステップと、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶している記憶手段内の、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選択するステップと、選択された前記1又は2以上の断片画像を描画して表示するステップとをコンピュータに実行させるためのコンピュータプログラムである。なお、このコンピュータプログラムは、選択された1又は2以上の断片画像を特定のサーバマシンに要求するステップもコンピュータに実行させるようにしても良く、その場合、前記表示するステップは、前記要求するステップでの要求に応答してサーバマシンから配信されて来た1又は2以上の断片画像を描画して表示する。
【0017】
本発明の第4の側面に従うデータ構造は、対象物が立体的に表されているかのように画像を表示するための方法で採用される画像のデータ構造であって、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループを有し、各視点の前記画像グループは、その視点から対象物を眺めて得られる解像度の異なる2以上の画像を含み、各解像度の画像が複数の断片画像に分割されていることを特徴とする。
【0018】
本発明の第5の側面に従うサーバは、対象物が立体的に表されているかのように画像を表示するためのシステムに備えられる画像サーバであって、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶する記憶手段と、前記記憶手段から選択された画像を通信ネットワークを介してクライアントマシンに配信する画像配信手段とを備え、前記サーバマシン又は前記クライアントマシンに画像選択手段が備えられ、前記画像選択手段は、前記クライアントマシンに表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選び、前記画像配信手段は、前記画像選択手段によって選ばれた前記1又は2以上の断片画像を前記クライアントシステムに配信する。
【0019】
【発明の実施の形態】
図1は、本発明が適用可能な画像表示システムの一実施形態の概略的な全体構成を示す。
【0020】
画像提供サービスを行う画像サーバ10と、多数のユーザがそれぞれ利用する多数のクライアントコンピュータ30とが、例えばインターネット20のような通信ネットワークを通じて通信可能になっている。画像サーバ10は広範な地域の画像データを格納した画像データベース11を有している。クライアントコンピュータ30は、画像サーバ10にアクセスするためのクライアントプログラム31を有する。クライアントプログラム31には、画像サーバ10に具体的な画像データの要求を送り画像サーバ10から受信した画像データを表示するための画像ビューワ32が、例えばプラグインのような形で付属している。クライアントコンピュータ30は、ディスプレイ装置33や、マウス34のようなコントローラも有している。
【0021】
(必ずしもそうである必要はないが、)この実施形態では、画像サーバ10はWWWサーバであり、クライアントコンピュータ30内のクライアントプログラム31はWWWブラウザであり、両者はHTTPプロトコルによって画像データの要求や画像データをやり取りする。
【0022】
図2は、画像サーバ10がもつ画像の種類と、クライアントコンピュータ30内の画像ビューワ32が画像サーバ10に対して画像データを要求するときの順序を説明したものである。
【0023】
この実施形態では、複数の異なる視点からそれぞれ撮影された対象物の電子的な撮影画像、つまり、複数の視点別に電子的な撮影画像が用意される。これらの撮影画像は、例えば以下の図3に示すような撮影方法で得られる。
【0024】
すなわち、図3に示すように、その撮影方法では、所定の視点移動線(例えば、仮想的な線)422上に、複数の(例えば3つの)異なる視点450A〜450Cが定められている。対象物453が各視点450A〜450Cからデジタルカメラ(又は光学式カメラ)451で撮影されることによって、各視点毎にオリジナルの解像度の撮影画像が得られる(光学式カメラで撮影された場合には、写真をスキャナで読込ませて電子化させることにより電子的な撮影画像が得られる)。なお、本明細書で言う「視点」とは、対象物を眺めるための位置のことを言い、この実施形態では、撮影位置のことを言う。また、説明及び図示の便宜上、視点の数は3つになっているが、勿論3つに限定する必要はなく、好適には、例えば、対象物453を取り囲むように多数の視点を設ける。対象物453がそれら多数の視点の各々から撮影されることで、対象物453を多数の視点から見た多数の画像が用意され、それら多数の画像を以下に詳述する方法で配信することで、ユーザに対して、三次元モデルではない実際の対象物453が立体的に表されているかのよう感を与えることができる。
【0025】
さて、図2に示すように、画像サーバ10には、複数の視点毎に撮影画像ディレクトリ400A〜400Cが設けられている(この実施形態では、説明の便宜上、視点は3つとし、そのため撮影画像ディレクトリの数は3つとする)。各撮影画像ディレクトリ400A〜400C内の構成はどれも同様なので、以下、第1の撮影画像ディレクトリ400Aを代表的に説明する。
【0026】
第1の撮影画像ディレクトリ400Aには、第1の視点から撮影されたオリジナルの解像度の撮影画像を格納するための格納領域(図示せず)と、そのオリジナルの解像度の撮影画像を基に後述する画像コンバータによって得られた複数種類(例えば3種類)の解像度の撮影画像がそれぞれ格納される格納領域401A〜403Aとが含まれている(参照番号401Aを、高解像度撮影画像が格納される高解像度画像格納領域とし、参照番号402Aを、中解像度撮影画像が格納される中解像度画像格納領域とし、参照番号403Aを、低解像度撮影画像が格納される低解像度画像格納領域とする)。各格納領域401A〜403A内にある撮影画像は、後に説明するように、矩形状に(換言すればメッシュ状に)細分化されており、複数の矩形の断片画像の集合体となっている。
【0027】
なお、ここでは「解像度」という用語を使っているが、これは、「ピクセルサイズ」又は「ピクセル数」(つまり、画像の縦横のピクセル数)という用語に置き換えて説明することもできる。例えば、画像の縦横の長さが同一である場合、「解像度」が高ければ、「ピクセルサイズ」は小さくて「ピクセル数」は多く、一方、「解像度」が低ければ、「ピクセルサイズ」は大きくて「ピクセル数」は少ない。
【0028】
また、後の説明では、「解像度」の段階的なレベルを指すために、「深さ」という用語も用いる。
【0029】
さて、上述した各種の解像度の撮影画像110〜112は、いずれも、前述したように、縦横方向で細かく分割した小さい矩形領域(以下、「メッシュ」という)単位の断片画像に分割されている。1つのメッシュを単位として、画像サーバ10から画像ビューワ32への画像の送信が行われる。すなわち、両者間の1回のHTTPセッションで、1つのメッシュの画像データ(つまり断片画像)が画像ビューワ32から画像サーバ10へ要求され、そして、その1つのメッシュの画像データが画像サーバ10から画像ビューワ32へ返信される。従って、メッシュのサイズ(面積)が小さいほど、メッシュの画像データの量が少なくなり、1回のHTTPセッションに要する時間は短くなるから、1つのメッシュの表示に要する時間は短くなる。しかし、メッシュのサイズ(面積)が小さいほど、ユーザが所望する画像の表示範囲に含まれるメッシュの個数が多くなるから、画像ビューワ32と画像サーバ10との間で行われるHTTPセッションの回数が増える。この観点から、ユーザが所望する画像の表示範囲を高速に表示し終わるようにする(または、そのようにユーザに感じさせる)ためには、1つのメッシュの画像データ量が適度であって、1回のHTTPセッションに要する時間が長すぎず、かつ、ユーザが所望する画像の表示範囲に必要なHTTPセッションの回数が多すぎないように、1つのメッシュのサイズ、換言すれば一つのメッシュのデータ量、を適度に設定することが肝要である。この理由から、画像の解像度が異なればメッシュのサイズも異なる。すなわち、解像度が低い画像ほど、同じ画像データ量でカバーできる表示範囲が大きくなるので、メッシュのサイズも大きく設定されている(但し、1つのメッシュのデータ量がどの画像110〜112でも同じというわけではない)。
【0030】
クライアントコンピュータ30内の画像ビューワ32は、ユーザのマウス34等の操作によるユーザ所望の視点(或いは、表示されている画像のスクロールや拡大又は縮小)の要求に応じて、その視点(同一の視点がない場合にはそれに最も近い視点)から撮影された撮影画像の表示範囲(画像のスクロールや拡大又は縮小の要求の場合は、スクロール後や拡大又は縮小後の表示範囲)を把握し、その表示範囲と重なる(つまり、その表示範囲に含まれるか、又は、その表示範囲を包含する)メッシュがどれであるかを、各解像度の撮影画像110〜112ごとに決定する。例えば、図2でディスプレイ装置33内に示された画像の表示範囲の例の場合、その表示範囲と重なっているメッシュは、高解像度画像110の16個のメッシュ110A〜110P(図中、破線で境界が示されている)と、中解像度画像111の4個のメッシュ111A〜111D(図中、実線で境界が示されている)と、低解像度画像112の1個のメッシュ112Aである。これらのメッシュ110A〜110P、111A〜111D、112Aを決定すると、続いて、画像ビューワ32は、それらのメッシュの画像データを画像サーバ10に要求する。その際、画像ビューワ32は、低解像度の断片画像から優先的に、すなわち、まず低解像度の撮影画像112のメッシュ112A、次に中解像度の画像111のメッシュ111A〜111D、最後に高解像度の画像110のメッシュメッシュ110A〜110Pという順序で、画像サーバ10にメッシュデータ要求を発する。但し、ユーザの操作によって決まる表示範囲が広域であって、そのために、或る解像度以上の解像度の画像(例えば、高解像度画像110)を表示する必要がない場合には、その不要な画像(例えば、高解像度画像110)のメッシュは要求しない。
【0031】
画像サーバ10は、要求された順序で各メッシュの画像データを画像データベース11から読み出して画像ビューワ32に返信する。結果として、画像ビューワ32は、(時には、通信ネットワークの事情によって順序が前後することがあるが)通常は、より低解像度の画像のメッシュデータから先に受信して表示することができる。より低解像度な画像ほど、前述したように、1つのメッシュのサイズがより大きいから、ユーザの所望する表示範囲の全域を少ない個数のメッシュでカバーできる。よって、より低解像度の画像が高速に、ユーザの所望する表示範囲の全域に表示される。その後に、より高解像度の画像が表示されていく。より高解像度の画像ほど、対象物がより詳細に表現されている。よって、ユーザの所望する表示範囲に、まず高速に、低解像度画像の大まかな対象物(又はその一部)の表示が出現し、その後に、より高解像度画像の詳細な対象物(又はその一部)の表示が現われてくる。
【0032】
このような一連の処理は、ユーザがマウス34等を操作して所望の視点(換言すれば視点)を切換える都度に行われる(或いは、表示されている撮影画像の拡大又は縮小を要求する都度に行われる)。
【0033】
以上のような、解像度の異なる複数種類の画像を用いたプログレッシブな画像表示方法を採用することで、ユーザが視点を切換えると、その視点から見た対象物の撮影画像が直ちに(大まかな低解像度画像ではあるが)表示され、撮影画像が不連続に切り替わる(つまり、しばらく待ってから切り替わる)という感覚をユーザに与えることがなくなる、換言すれば、視点の切換え(又は、表示されている画像のすくルールや拡大又は縮小)を連続的に円滑に行えるという操作感覚をユーザに与えることができる。これにより、所定の対象物の実物が立体的に表されているかのような感がユーザに与えられる。
【0034】
なお、上述の実施形態では、視点の切換えは所定の順番で自動的に行われても良い、具体的には例えば、ユーザの要求に応答して、上記の視点移動線上に並ぶ視点450A〜450Cが順次に自動的に選択されてもよい。それにより、各視点に対応した撮影画像が連続的に表示されるので、あたかも対象物の動画が再生されているような感をユーザに与えることができる。これは、同一の視点移動線上に並ぶ異なる視点の数が多い程大きい。
【0035】
また、上述の実施形態では、以下の方法で撮影画像を用意することができる。すなわち、例えば、デジタルビデオカメラで撮影することによって得られた動画から静止画を得る方法で各視点毎の撮影画像が得られても良い。
【0036】
また、上述の実施形態では、撮影画像は、視点毎に限らず、様々なズーム倍率毎、或いは、その他のカメラ視野パラメータ(例えば視線等)毎に用意されていても良い。
【0037】
さて、上述の実施形態では、各種解像度の撮影画像の全体的なサイズが大きい場合には、下記のメッシュ管理方法で、各種解像度の撮影画像別に、その撮影画像中のメッシュ(つまり断片画像)を管理することが好ましい。以下、そのメッシュ管理方法について説明する。
【0038】
前述したように、1つのメッシュのサイズは、ユーザに待つという実感を与えない程度の短時間で1回のHTTPセッションを終えられる程度に、適度に小さく設定されている。そのため、撮影画像の全体領域は複数のメッシュに分割されている。撮影画像の全体領域が広ければ広いほど、メッシュの数は膨大である。この膨大な数のメッシュのファイルを単純に1つのディレクトリに並列に格納したとすると、或るファイルの要求が来たとき、そのファイルを検索するのに非常に長い時間がかかってしまう。そこで、この実施形態では、図4に示すような階層構造のディレクトリで、その膨大な数のメッシュのファイルを管理する場合がある。
【0039】
図4は、各画像格納領域401A〜403A、401B〜403B、401C〜403C内の各々の内部の階層構造を示す。なお、以下の説明では、各種の解像度の撮影画像について、その撮影画像上での横方向の座標値(横方向のメッシュ番号)を「Xi」と表し、縦方向の座標値(縦方向をメッシュ番号)を「Yj」と表し、それぞれのメッシュにはメッシュ番号(Xi、Yj)と同じファイル名「XiYj」が付けられているものとする。
【0040】
このメッシュ管理方法では、図4(C)に示すような連続的な位置座標(つまりメッシュ番号、つまりファイル名)をもつ8×8配列の64個のメッシュのファイル131、131、…を1群に纏めて、図4(B)に示す1階層上(第2階層)のディレクトリ(以下、「フォルダ」という)132、132、…の一つに格納してある。そして、図4(B)に示す各フォルダ132のフォルダ名(ディレクトリ名)は、各フォルダに格納された64個のメッシュファイル131、131、…のファイル名「XiYj」の横成分「Xi」と縦成分「Yj」をそれぞれ横方向と縦方向のファイル数「8」で除算した商で表した名称、つまり
【0041】
【数1】
となっている。よって、この第2階層の各フォルダ132のフォルダ名は、各フォルダ132に格納されている64個のメッシュファイルがカバーする8×8メッシュ区域の位置座標に相当するということができる。
【0042】
そして、図4(B)に示すような連続的なフォルダ名(つまり図4(C)に示した8×8メッシュ区域の位置座標)をもつ8×8配列の64個の第2階層のフォルダ132、132、…を1群に纏めて、図4(A)に示す更に1階層上(第1階層)のフォルダ133、133、…の一つに格納してある。そして、図4(A)に示す各フォルダ133のフォルダ名(ディレクトリ名)は、各フォルダ133に格納された64個のフォルダ132、132、…のフォルダ名の横成分「Xi/8」と縦成分「Yj/8」をそれぞれ横方向と縦方向のフォルダ数「8」で除算した商で表した名称、つまり
【0043】
【数2】
となっている。よって、この第1階層の各フォルダ133のフォルダ名は、各フォルダ133に格納されている第2階層の8×8個のフォルダ(つまり、64×64個のメッシュファイル)がカバーする64×64メッシュ区域の位置座標に相当するということができる。
【0044】
さらに、図4(A)に示すような連続的なフォルダ名(つまり64×64メッシュ区域の位置座標)をもつ8×8配列の64個の第1階層のフォルダ133、133、…を1群に纏めて、図示しない更に上の階層のディレクトリ(例えば、第1の視点から撮影された、高解像度の撮影画像の場合は、図2に示した画像格納領域401A)に格納してある。
【0045】
なお、この実施形態では、図4(A)〜(C)に示したように、3階層の構造のディレクトリを用い、1つのディレクトリで64個のファイル又はフォルダを管理することで、全部で64×64×64=約26万個のメッシュのファイルを管理することができる。しかし、これは一例であり、メッシュの個数が更に多くなれば、更に階層数を増やしても良い。また、64個のファイル又はフォルダを1ディレクトリに管理するようにした理由は、米国マイクロソフト社のOS環境であるWindows(登録商標)環境(このOS環境では、1ディレクトリ内のファイル又はフォルダの数が100より少ないときに高い検索速度が得られる)で画像サーバ10を稼動させる場合には64個が扱いやすいと判断したためであり、一例に過ぎない。
【0046】
図4に示した階層構造のディレクトリで重要なことは、各階層のディレクトリの名称が、最終的な検索目的である特定のメッシュのファイル名から簡単に計算できるようになっている点である。すなわち、「XiYj」という名称のファイルが欲しいとき、そのファイル名「XiYj」の横成分Xiと縦成分Yjをそれぞれ8で割っていくことで、より上位のフォルダのフォルダ名が簡単に決定され、それを並べることで、目的のメッシュのファイルのへのパスが
【0047】
【数3】
というように簡単に決定される。因みに、n階層のディレクトリであるならば、目的のファイルのへのパスは
【0048】
【数4】
というように、簡単に計算で決定される。なお、ファイル名「XiYj」の横成分Xiと縦成分Yjをそれぞれ8で割っていくという上記の計算方法は一例にすぎず、別の計算方法を採用してもよい。
【0049】
どのような計算方法を用いるにせよ、目的のメッシュのファイル名から、そのファイルへのパスが所定の数値演算で演算できることは、各メッシュのファイル名がそのメッシュのメッシュ番号(位置座標)に相当するという前述の特徴と相俟って、画像ビューワ32が表示に必要なメッシュのファイルを画像サーバ10に要求するときの手間を大幅に簡単化し、画像表示の高速化に寄与する。
【0050】
図5は、画像ビューワ32の機能的な構成を示す。
【0051】
図5に示すように、画像ビューワ32は、表示部320とダウンローダ322を有する。表示部320の主たる役目は、ユーザによるマウス等を用いた視点の切換え操作(又は、画像のスクロールや拡大縮小等)の操作に応答して、画像の表示すべき範囲を決め、その表示範囲に必要なメッシュのファイル名(メッシュ番号)を決めて、そのメッシュのファイルをダウンローダ322に要求することと、ダウンローダ322から取得したメッシュのファイルに含まれるベクトルデータから表示すべき画像画像を描画することである。また、ダウンローダ322の主たる役割は、表示部320からファイルの要求を受けて、その要求されたファイルを画像サーバ10からダウンロードすることである。
【0052】
表示部320は、過去に取得したファイルのデータを最近のアクセス頻度などに応じた優先順位でメモリ内に保存しておくメモリ・キャッシュ321を有している。ダウンローダ326は、ダウンロード対象のファイルのファイル名(画像サーバ10内のそのファイルへのパス)をリストアップしたダウンロード・リクエスト・リスト325(表示部320は随時にこのリスト内のファイル名を消去する)と、新たなファイルがダウンロードされたか否かを表示部320に知らせるためのダウンロード・フラグ326と、各ファイルをダウンロードするときの各HTTPセッションをそれぞれ行う複数のHTTPセッション・スレッド324A〜324D(図示の例では4個のスレッドがあるが、その個数は可変である)、及び、ダウンロードしたファイルをハードディスクドライブなどの大容量の不揮発性ストレージに保存しておくディスク・キャッシュ323を有している。
【0053】
図6は、表示部320の動作の流れを示している。
【0054】
ユーザがマウスなどで視点切換え等の画像の表示範囲を変化させる操作を行うと(ステップS1)、表示部320はこれに応答して、次の動作を行う。すなわち、ダウンロード・リクエスト・リスト325に記載されている全てのファイル名を消去し(S2)、ダウンロード・フラグ326をリセットし(S4)、そして、変化後の新しい表示範囲を決定して、その表示範囲に必要なメッシュのファイル名(メッシュ番号)を決定する(S5)。ステップS5では、表示部320は、所定のアルゴリズムで(例えば、表示倍率に基づいて)、その表示範囲に表示すべき画像の解像度として最適な解像度を決定し、その最適解像度の画像について、新しい表示範囲に必要なファイル名を決定する(ここで決定したの最適解像度のファイルを、以下「必要ファイル」という)。それに加え、この最適解像度の必要ファイルが直ちに入手できなかったときの一時的な代替表示(つまり、前述したプログレッシブ表示を行う)ために、最適解像度よりも小さい各解像度の画像についても、新しい表示範囲と重なるメッシュのファイル名を決定する(この代替表示のためのより低解像度の画像のファイルを、以下、「代替ファイル」という)。
【0055】
続いて、表示部320は、その新しい表示範囲に画像を描画して表示するために、以下の処理に入る。
【0056】
まず、画像の表示が未完了の段階(S6でNO)では、ステップS5で決定したファイル名(メッシュ番号)をもつものを、メモリ・キャッシュ321から探す(S7)。このとき、各メッシュについて、まず、最適解像度の必要ファイルを探し、それが無ければ、それより1段階低解像度の代替ファイルを探し、それも無ければ、更に1段階低解像度の代替ファイルを探す。このように、最適解像度の必要ファイルを最優先に探し、それがない場合、段階的により低解像度の代替ファイルを探していく。メモリ・キャッシュ321内から目的のファイル(必要ファイルか又は代替ファイル)が見つかれば(S7でYES)、そのファイル中の画像を描画してディスプレイ画面の対応するメッシュの領域に表示する(S8)。このとき、より低解像度の画像が既に代替表示されていたところに、より高解像度の画像を表示しようとする場合には、その先に代替表示されていた低解像度の画像を消去して、より高解像度の画像を新たに表示することになる。
【0057】
全ての必要ファイルがメモリ・キャッシュ321から見つかれば(S9でNO)、画像の表示が完了するので、次に、表示範囲に変化がない限り(S15でNO)、上述したステップS6以下の処理に入る。
【0058】
一方、画像を表示しようとしているとき、メモリ・キャッシュ321からは見つからない必要ファイルが一つでもあった場合には(S9でYES)、表示部320は次に、その見つからなかった必要ファイルと、その見つからなかった必要ファイルのための代替ファイルであってメモリ・キャッシュ321から見つからなかったもの(これらの見つからなかった必要ファイルと代替ファイルを、以下、「不足ファイル」と総称する)を、ダウンローダ322に要求する(S10)。このときも、表示部320は、まず最適解像度の必要ファイルを最優先で要求し、続いて、段階的により低解像度の代替ファイルを要求する。
【0059】
後述するように、ダウンローダ322は、表示部320から不足ファイルの要求を受けると、要求された順番で(つまり、表示部320がメモリ・キャッシュ内を探したときと同様に、まず必要ファイル、それが見つからなければ、段階的により低解像度の代替ファイルの順で)、各不足ファイルをディスク・キャッシュ323の中から探し、見つかれば、ディスク・キャッシュ323内で見つかったそのファイルへのパスを表示部320に返し、見つからなければ、ファイル無しという回答を表示部320に返す。表示部320は、ダウンローダ322から、ディスク・キャッシュ323内で見つかったファイルへのパスを受けた場合には(S11でYES)、そのパスを用いてそのファイルをディスク・キャッシュ323から読み込んでメモリ・キャッシュ321に保存し(S12)、そしてそのファイルの画像を描画して、ディスプレイ画面の対応するメッシュの領域に表示する(S13)。前述したように、より低解像度の画像が既に代替表示されていたところに、より高解像度の画像を表示しようとする場合には、その先に代替表示されていた低解像度の画像を消去して、より高解像度の画像を新たに表示することになる。
【0060】
全ての必要ファイルがディスク・キャッシュ323から見つかれば(S14でNO)、画像の表示が完了するので、次に、表示範囲に変化がない限り(S15でNO)、既に説明したと同様に、S7以下に入る。
【0061】
このようにして、全ての必要ファイルがメモリ・キャッシュ321内か又はディスク・キャッシュ323内に存在すれば、新しい表示範囲の画像の表示は瞬時に完了する。新しい表示範囲の画像の表示が完了すれば(S6でYES)、処理は最初に戻る。
【0062】
一方、不足ファイルをダウンローダ322に要求したところ、ダウンローダ322からファイル無しという回答が返って来た必要ファイルが一つでもあった場合には(S14でYES)、表示部320の処理は最初に戻る。そして、表示部320は、表示範囲に変化が無い限り(S1でNO)、ダウンロード・フラグ326が立つのを待つ(S2)。後述するように、ダウンローダ322は、或るファイルについてファイル無しという回答を返した場合には、そのファイルを画像サーバ10からダウンロードする作業に入り、そのファイルのダウンロードが終わると、そのファイルをディスク・キャッシュ323に格納して、ダウンロード・フラグ326を立てる。ダウンロード・フラグ326が立ったことを知ると(S2でYES)、表示部320は、表示範囲が変化したときに行ったと同様のステップS3以下の処理を再び繰り返す。すなわち、ダウンロード・リクエスト・リスト325内の全てのファイル名を消去し(S2)、ダウンロード・フラグ326をリセットし(S4)、表示範囲を計算し直して、その表示範囲に必要なメッシュのファイル名(メッシュ番号)を決定し(S5)、そして、ファイルを取得して画像を描画して表示するためのステップS7以下の処理を繰り返す。それにより、表示部320は、既に描画して表示済みであったメッシュについては、再び同じ画像を描画して表示し直すことになり、また、ファイルがダウンロードされたメッシュについては、そのダウンロードされたファイルをディスク・キャッシュ323から読み込んで画像を描画してそのメッシュの領域に表示することになる。
【0063】
不足ファイルが1つダウンロードされる都度に、表示部320は、ステップS3からの処理を繰り返すので、ディスプレイ画面上の表示領域は1メッシュづつ順次に完成に近づいていく。ディスプレイ画面上の表示領域全域の画像が完成すると(S6でYES)、表示部320は、最初のステップS1に戻り、ユーザによって表示範囲が変更されるの待ち、変更されればステップS3以下の処理を再び繰り返す。
【0064】
また、ディスプレイ画面上の表示領域全域の画像が完成する前に、ユーザによって表示範囲が変更された場合(S15でYES)にも、表示部320は、ステップS3以下の処理を再び繰り返す。
【0065】
図7は、ダウンローダ322の動作の流れを示す。
【0066】
図7に示すように、ダウンローダ322は、表示部320からファイルの要求を受けると(S21)、まず、その要求されたファイルをディスク・キャッシュ323から探す(S22)。ディスク・キャッシュ323からその目的のファイルが見つかれば(S22でYES)、ダウンローダ322は、そのファイルのディスク・キャッシュ323内でのパスを表示部320に知らせる(S23)。表示部320から要求された全てのファイルがディスク・キャッシュ323から見つかって、それらのパスを表示部320に通知ことができれば(S24でNO)、ダウンローダ322は、最初のステップS21へ戻り、表示部320から再びファイルの要求が来るのを待つ。
【0067】
一方、表示部320から要求されたファイルの中にディスク・キャッシュ323から見つからなかったファイルがあれば(S24でYES)、ダウンローダ322は、その見つからなかったファイルについてファイル無しの旨を表示部320へ通知する(S25)と共に、その見つからなかったファイルのファイル名(画像サーバ10内でのそのファイルへのパスを含む)をダウンロード・リクエスト・リスト325に書く(S26)。このとき、ダウンロード・リクエスト・リスト325には、予め、既に説明した表示部320による図6のステップS3の処理により、過去に書いてあったファイル名は全て消去されているので、このときに見つからなかったファイルのファイル名だけが書かれることになる。このとき、ダウンローダ322は、見つからなかったファイルのうち、より低解像度の画像のファイルを優先的にダウンロード・リクエスト・リスト325に書いていく(つまり、低解像度のファイルほどリストの先頭近くに書かれる)。
【0068】
続いて、ダウンローダ322は、ダウンロード・リクエスト・リスト325に書かれているファイル名を、そのリスト325の先頭から順に(つまり、より低解像度の画像ファイルから優先的に)、アイドル状態にあるHTTPセッション・スレッド324A〜324Dへ割り当てていく(S28)。HTTPセッション・スレッド324A〜324Dは、ファイル名を割り当てられると直ちに画像サーバ10との間でHTTPセッションを実行して、それぞれに割り当てられたファイルを画像サーバ10からダウンロードする。より低解像度の画像のファイルから先にHTTPセッション・スレッド324A〜324Dに割り当てたので、ダウンロードも、より低解像度の画像のファイルから先に完了する。
【0069】
個々のファイルのダウンロードが完了する都度(S29でYes)、ダウンローダ322は、そのファイルのファイル名をダウンロード・リクエスト・リスト325から消去し(S30)、そのファイルをディスク・キャッシュ323に保存し(S31)、そして、ダウンロード・フラグ326を立てる(S32)。その後、ダウンローダ322は、最初のステップS21へ戻って、表示部320から再びファイル要求が来るのを待つ。ダウンロード・フラグ326を立てると、既に説明したように、表示部320が再びファイル要求を発し、ダウンロードされたファイルをディスク・キャッシュ323から読み出してその画像を描画し表示する。
【0070】
以上の表示部320とダウンローダ322の動作説明を要約すれば、ダウンローダ322は、ひたすら、不足したファイルをダウンロードする処理を単純に繰り返すだけである。また、表示部320は、表示範囲の変化又はファイルのダウンロード完了が発生する都度、ひたすら、表示範囲に必要な全てのファイルの入手を試みて、入手できたファイルのみで画像を描画する処理を単純に繰り返すだけである。そこには、表示範囲が変化したり、ファイルのダウンロードが完了したりする都度、既に描画済みのファイルも含めて必要な全てのファイルを入手して始めから描画し直すという、一見無駄に思える重複作業が入っているが、その見返りとして、どのファイルの描画が完了し、どのファイルの描画が完了してないかを判別して、未描画のファイルだけを選択的に描画するというような面倒な判断処理を行わずに済んでいる。また、表示部320とダウンローダ322は非同期で動作しており、両者の動作タイミングを合わせるというような面倒な同期処理も行っていない。これらのことから、結果的に、画像画像を高速に表示することが可能である。
【0071】
また、クライアントコンピュータ30で描画を行うため、画像サーバ10に描画の負担をかけさせないという点も、画像サーバ10の応答を高速化し、画像画像の高速表示に寄与する。
【0072】
それに加え、最終的に欲しい画像を一気に完成させようとするのではなく、より低解像度の画像ファイルを先にダウンロードして先に表示するという、解像度の異なる画像のプログレッシブ表示(つまり、最適解像度の画像が手元に無い時のより低解像度の画像によるを代替表示)の手法を用いることで、ユーザにダウンロード時間に起因する画像表示の遅さを実質的に感じさせることなく、連続的で円滑な視点の切換え(又はスクロールや拡大縮小等)の操作感を実感させることができる。
【0073】
図8は、このプログレッシブ表示の一例を示す。
【0074】
図8(A)に示すような、或る視点から撮影された対象物の高解像度画像を表示している状態から、ユーザが視点の切換え操作を行ったとする。すると、最終的には図8(C)に示すような、別の視点から撮影された対象物の別の高解像度画像が表示されることになるが、この図8(C)の最終的な画面に至るまでに、図8(B)に示す中間段階の画面が順番に表示される。
【0075】
図8(B)の画面は、視点切換え直後のものであり、図中の破線800、900は、メッシュの境界を示す。この視点切換え直後の画面では、右上の1つのメッシュ41についてだけ、高解像度画像のファイルが既にキャッシュ内にあったため、高解像度画像が表示されている(その旨を図8(B)に表すべく、高解像度画像上の対象物を実線で示す)。残りの3つのメッシュ42〜44については、まだ高解像度画像のファイルはダウンロード中であるため、高解像度画像は全く表示されていないが、しかし、中解像度画像のファイルがキャッシュ内にあったため、その中解像度画像が代替表示されている(その旨を図8(B)に表すべく、中解像度画像上の対象物を細かい点線で示す)。
【0076】
少し待つと、残り3つのメッシュ42〜44についても、高解像度画像のファイルのダウンロードが完了して、図8(C)に示すような最終的な画面が完成する。
【0077】
以上ような流れは、視点の切換え操作が行われた場合のみならず、画像のスクロールや拡大又は縮小等の操作が行われ場合にも行われる。
【0078】
この実施形態によれば、視点切換え操作をすると、直ぐに図8(B)のような画面が表示されて、段階的に図8(C)の最終画面へ完成されていくので、ユーザとしては、直ちに画像表示が開始されたという実感をもつことができ、別の視点から見た実物の撮影画像も即座に判断できるので連続的に視点が切換えられた感(換言すれば、実物が立体的に表されている感)が得られる。
【0079】
さらに、図8(B)のような不完全な画像が表示された段階でも、ユーザはそれがどの視点からの撮影画像であるかが分るから、更にもっと別の視点に切換えるべきか否かが即座に判断でき、必要なら、先へ先へと連続的に視点を切換えて所望の視点での画像を見ることができる。
【0080】
図9は、複数の画像サーバを設けて負担を分散するようにした本発明の別の実施形態を示す。
【0081】
複数台の画像サーバ50、50、…が、インターネット60などの通信ネットワークに接続されており、多数のクライアントコンピュータ70、70、…の各々は、それら複数台の画像サーバ50、50、…のいずれにもアクセスすることができる。複数台の画像サーバ50、50、…は、同じ画像データ(例えば、オリジナルの撮影画像を基に生成された高解像度撮影画像のデータ、中解像度撮影画像のデータ、及び低解像度画像のデータを含んだデータ)を格納した画像データベース51、51、…をそれぞれもつ。
【0082】
図10は、クライアントコンピュータ70がユーザの所望する表示範囲に必要なメッシュのファイルを複数台の画像サーバ50、50、…に要求するときの方法を示したものである。
【0083】
各クライアントコンピュータ70は、原則的に、図10(A)に示すように、表示範囲80と重なる複数のメッシュ81、81、…のファイルを、全部1台の画像サーバ50に要求するのではなく、最初のメッシュはAサーバに、次のメッシュはBサーバに、次のメッシュはCサーバにというように、複数のファイルを複数台のサーバ50、50、…にほぼ均等に分散して要求する。それにより、複数台のサーバ50、50、…で負荷が均等に分散され、より高速な画像表示が可能になる。また、複数台のサーバ50、50、…のどれもが同じ画像データをもっているので、それらサーバ50、50、…のメンテナンスも容易である。
【0084】
また、もし、複数台のサーバ50、50、…の中のどれか、例えばCサーバ、に障害が発生したとする。この場合、各クライアントコンピュータ70は、Cサーバから正常な応答が返って来ないことを知ると、図10(B)に示すように、残りの正常なAサーバとBサーバに対して、ファイルを均等に分散して要求する。このように、複数台のサーバ50、50、…のどれもが同じ画像データをもっているので、その中の一部のサーバで障害が発生しても、他のサーバが代わって対応することができる。
【0085】
複数のサーバによる負荷分散の形態には、上記以外にも色々なものが採用し得る。例えば、地域毎にサーバを分けても良い。例えば、アクセスの多い首都圏を1台か複数台のサーバが担当し、残りの地域を別の1台か複数台のサーバが担当するというようにである。或いは、解像度の異なる画像別にサーバを分けてもよい。例えば、データ量の多い高解像度画像を1台か複数台のサーバが担当し、残りの解像度の画像を別の1台か複数台のサーバが担当するというようにである。
【0086】
さて、上述した実施形態では、各種解像度の撮影画像を、以下の画像コンバータによって、オリジナルの解像度の撮影画像を基に得ることができる。以下、その画像コンバータについて説明する。
【0087】
次に、本発明に従う画像コンバータの一実施形態について説明する。
【0088】
この画像コンバータは、上述した画像表示システムのサーバ10に蓄積されるような、それぞれメッシュ分割された異なる解像度(ピクセルサイズ、深さ)を持った複数枚の画像データを作成して、それをサーバにアップロードするために用いられる。この画像コンバータは、例えば上述した画像表示システムのために使用される場合には、オリジナルの撮影画像から複数種類の解像度の撮影画像を作成し、且つ、各画像をメッシュ状に分割する。この画像コンバータは、以下の実施形態ではコンピュータプログラムをコンピュータで実行することによって実現されるが、それだけに限られるわけではなく専用ハードウェアを用いて実現することもできる。この画像コンバータを実現するコンピュータプログラムは、以下の実施形態では例えば図1に示したクライアントコンピュータ30にインストールされるが、それのみに限られるわけではなく、他のコンピュータにもインストールすることができる。
【0089】
図11は、この画像コンバータが行う処理の流れを示す。
【0090】
図11に示すように、画像コンバータは、ステップS101で、ユーザの指示によりコンバート対象の元画像データ(すなわち、オリジナルの解像度の撮影画像)を選択する。元画像データは原則的にビットマップ(ラスタ型)画像データであるが、それに限られるわけではなく、ベクタ型画像データであってもよく、その場合には、画像コンバータはそのベクタ型画像データを読み込んでビットマップ(ラスタ型)画像データに変換することになる。
【0091】
ステップS102とS103で、画像コンバータは、ユーザの指示により、メッシュサイズと圧縮方式を選択する。ここで、メッシュサイズとは、各メッシュデータ(この実施形態では正方形とする)の一辺のピクセル数である。例えば、64、128及び256ピクセルの3つのメッシュサイズの中からユーザ所望の一つが選択できる。例えば、画像の基礎として用いられる航空写真のように微細な変化を見逃せない画像では、64ピクセルのような比較的に小さいメッシュサイズを選ぶとよく、逆に、イラストのような微細な変化の少ない画像では、256ピクセルのように比較的に大きいメッシュサイズを選ぶとよい。風景や人物などの通常の写真画像では、128ピクセルのような中程度のメッシュサイズを選ぶことができる。
【0092】
また、圧縮方式とは、作成されたメッシュデータをファイル化する際に行う圧縮方式のことであり、例えば、特定の不可逆圧縮方式と特定の可逆圧縮方式の2通りの中からユーザ所望の一つを選ぶことができる。微細な変化を見逃せない画像では可逆圧縮方式がよいであろうし、通常の写真画像のような用途では不可逆圧縮方式でも十分であろう。
【0093】
ステップS104でユーザから実行要求を受けると、画像コンバータは、ステップS105で、元画像データを読み込んでメッシュ作成処理を行う。メッシュ作成処理の具体的な流れは、後に図12を参照して説明する。メッシュ作成処理の実行によって、元画像データは、それぞれメッシュ分割された解像度(ピクセルサイズ、深さ)の異なる複数枚の画像データにコンバートされ、コンバートされた画像データは、図4に示したような階層状のフォルダに分類格納された多数のメッシュデータファイルの形式で、クライアントコンピュータ30内の所定のディレクトリに保存される。
【0094】
ステップS106で、画像コンバータは、ユーザの指示により雛型HTMLファイルを選択する。ここで、雛型HTMLファイルとは、図1に示した画像ビューワ32(例えば、米国マイクロソフト社のActiveX技術を用いたプラグインプログラム)を実行するためのスクリプトや、その表示画面の背景の定義などが記述されたHTMLファイルである。
【0095】
ステップS107で、ユーザからのプレビューの要求を受けると、画像コンバータは、図1に示したWWWブラウザ31を起動して画像ビューワ32を実行させて、上述のコンバートされた画像データのプレビュー(予備的表示)を行わせる。すなわち、画像コンバータは上述した雛型HTMLファイルを読み込み、その雛型HTMLファイル内の画像ビューワ実行用のスクリプトを、上述のコンバートされた画像データが表示対象になるように書き換えた上で、その書き換え後のHTMLファイルを所定ディレクトリに新たに保存し、そして、WWWブラウザ31を起動して、その保存された書き換え後HTMLファイルをWWWブラウザ31に開かせる。WWWブラウザ31は、そのHTMLファイルを開き、その中のスクリプトに従って画像ビューワ32を実行して、上述の所定ディレクトリに保存されているコンバートされた画像データを表示する。
【0096】
ステップS108で、画像コンバータは、ユーザの指示により、上述の書き換え後HTMLファイルとコンバートされた画像データのそれぞれのアップロード先(例えば、図1に示したサーバ10内の所定場所を示すURL)を指定する。ステップS109で、ユーザからアップロード実行を要求されると、画像コンバータは、上述の書き換え後HTMLファイルとコンバートされた画像データとを、それぞれの指定されたアップロード先に、インターネットなどのネットワークを通じてアップロードする。
【0097】
図12は、上述のステップS105のメッシュ作成処理の具体的手順を示す。
【0098】
図12に示すように、ステップS201で、画像コンバータは、選択された元画像データを読み込み、その元画像データのピクセルサイズに基づいて、深さ数nを決定する。ここで、深さ数nとは、その元画像データをコンバートした結果出来上がる、ピクセルサイズの段階的に異なる複数枚のビットマップ画像データの枚数である。例えば、深さ数nが3であれば、コンバート結果として、例えば、元画像データと同じピクセルサイズと、それより1段階小さいピクセルサイズと、さらに1段階小さいピクセルサイズの、計3段階の深さ(ピクセルサイズ)のビットマップ画像データが出来上がることになる。深さ数nの決め方については、例えば、元画像データの縦横辺のうちの長辺のピクセル数、或いは、ピクセル総数(つまり、縦ピクセル数×横ピクセル数)などを、所定の複数の閾値と比較して、その比較結果に応じて、例えば最小閾値未満ならn=3、最小閾値以上2番目閾値未満ならn=4、2番目閾値以上ならn=5などというように決定することができる。
【0099】
ステップS202で、画像コンバータは、決定された深さ数nに従って、深さ(ピクセル)の異なるn枚の画像を、元画像データを用いて作成する。例えば、n=3の場合、第1の深さの画像データは元画像データであり、第2の深さの画像データは元画像データをピクセル数において1段階縮小することで作成し、第3の深さの画像データは元画像データをピクセル数において2段階縮小する、というような方法で3枚の画像データを用意することができる。この場合、1段階分の縮小倍率として例えばk=0.8のような1未満の定数kを用いて、この定数kの段階的なべき乗倍率で縮小することもできるし、或るいは、深さ毎に予め設定された最適な縮小倍率を使用してもよい。
【0100】
ステップS203で、画像コンバータは、深さ毎のn枚の画像データの各々のピクセルサイズと、選択されたメッシュサイズとから、各画像データをメッシュ分割したときに出来るメッシュの個数mを計算する。そして、このメッシュ数mに基づいて、画像コンバータは、メッシュデータを格納するためのフォルダの階層構造や、各フォルダの名称や、各メッシュデータファイルをどのフォルダに入れるかなどを決定し、そのような階層構造をもったフォルダ群をクライアントコンピュータ30内の所定ディレクトリに作成する。
【0101】
ステップ204で、画像コンバータは、深さ毎のn枚の画像データの各々を、その画像データ毎に計算されたメッシュ数m個のメッシュデータに分割する。そして、画像コンバータは、ステップS205で、分割された個々のメッシュデータを、選択された圧縮方法で圧縮されたファイルにして、ステップ206で、そのメッシュデータファイルを上記階層構造のフォルダ群中のしかるべきフォルダに保存する。n枚の全ての画像データについて上記の処理が行なわれて、コンバートが完了する。
【0102】
以上、本発明の実施形態を説明した、これらの実施形態は本発明の説明のための例示にすぎず、本発明の範囲を上記実施形態のみに限定する趣旨ではない。よって、本発明は、上記の実施形態以外の様々な形態でも実施することが可能である。
【0103】
例えば、視点毎の画像は、撮影画像に限らず、対象物を所定の視点から眺めた場合の画像であれば、他の手法で作成された画像(例えば、対象物がモデリングされた画像)であっても良い。
【0104】
また、例えば、撮影画像の視点やズーム倍率は所定の方法で変更できる。
【0105】
例えば、クライアント30は、表示されている撮影画像上で、マウスの所定ボタン(例えば左ボタン)が押された状態でマウスが動かされたときは、その撮影画像に写っている対象物の視点を変更することができる。その場合、クライアント30は、変更後の視点の撮影画像の必要メッシュを計算してそれを画像サーバ10へ要求する。画像サーバ10は、それに応答して、要求された必要メッシュをクライアント30にダウンロードしそれをクライアント30に表示させる。この一連の流れによって、ユーザは、マウスの左ボタンを押した状態でマウスを動かすことにより、実物を所望の方向から自由に見ることができる。
【0106】
また、例えば、クライアント30は、表示されている撮影画像上でマウスの所定ボタン(例えば右ボタン)を押された状態でマウスが動かされたときは、表示されている撮影画像を動かす、つまり表示画像をスクロールすることができる。
【0107】
また、例えば、クライアント30は、画面に表示されている所定のスライダーが動かされたときに、或いは、表示されている撮影画像がクリックされた後にダイヤル付きマウスのダイヤルが回転されたとき、撮影画像のズーム倍率を大きくする或いは小さくすることができる。
【図面の簡単な説明】
【図1】本発明が適用可能な画像表示システムの一実施形態の概略的な全体構成を示すブロック図。
【図2】画像サーバ10がもつ画像の種類と、クライアントコンピュータ30内の画像ビューワ32が画像サーバ10に対して画像データを要求する順序を説明した図。
【図3】各視点毎の撮影画像を用意するための方法を示す図。
【図4】図2に示した各画像格納領域内の内部の階層構造を示す説明図。
【図5】画像ビューワ32の機能的な構成を示すブロック図。
【図6】表示部320の動作のフローチャート。
【図7】ダウンローダ322の動作のフローチャート。
【図8】プログレッシブ表示の一例を示す画面の遷移図。
【図9】複数の画像サーバで負担を分散した実施形態を示すブロック図。
【図10】クライアントコンピュータ70がユーザの所望する表示範囲に必要なメッシュのファイルを複数台の画像サーバ50、50、…に要求するときの方法を示した説明図。
【図11】本発明の一実施形態にかかる画像コンバータが行う処理全体のフローチャート。
【図12】本発明の一実施形態にかかる画像コンバータのメッシュ分割処理のフローチャート。
【符号の説明】
10 画像サーバ 20 インターネット
30 クライアントコンピュータ
31 クライアントプログラム
32 画像ビューワ
34 マウス
Claims (11)
- 対象物が立体的に表されているかのように画像を表示するためのシステムであって、
サーバマシンと、
前記サーバマシンと通信ネットワークを介して通信可能なクライアントマシンと
を備え、
前記サーバマシンは、対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループを有し、各視点の画像グループは、その視点から対象物を眺めて得られる解像度の異なる2以上の画像を含み、各解像度の画像は複数の断片画像に分割されており、
前記サーバマシン又は前記クライアントマシンが、画像選択手段を有し、
前記画像選択手段は、前記クライアントマシンに表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選び、
前記サーバマシンが、前記画像選択手段によって選ばれた1又は2以上の断片画像を前記通信ネットワークを介して前記クライアントマシンに配信し、
前記クライアントマシンが、前記サーバマシンから受信した1又は2以上の断片画像を描画して表示する、
画像表示システム。 - 前記画像選択手段は、前記選ばれた視点に対応した画像グループの中から、前記最適解像度の画像だけでなく、前記最適解像度よりも低い解像度の1又は複数の画像を選んで、選ばれた異なる解像度の画像のそれぞれから前記変更された画像の表示に必要な1又は2以上の断片画像を選び、
前記サーバマシンは、前記画像選択手段によって選ばれた異なる解像度の1又は2以上の断片画像を、解像度のより低いものから優先して前記クライアントマシンに送信する、
請求項1記載の画像表示システム。 - 前記複数の異なる視点は、所定の視点移動線上に並ぶものであり、前記ユーザ操作が、表示されている画像の視点を、前記視点移動線に沿って移動させるものであるとき、
前記画像選択手段は、前記視点移動線上に並ぶ視点を順次に選択する、
請求項1記載の画像表示システム。 - 前記クライアントマシンは、受信済みの複数の断片画像の中に、表示される位置が互いに重複している2以上の異なる解像度の断片画像があれば、解像度がより高い断片画像を優先して表示する、
請求項1記載の画像表示システム。 - 前記クライアントマシンが、前記画像選択手段を具備し、前記画像選択手段によって選択された1又は2以上の断片画像を前記サーバマシンに要求する、
請求項1記載の画像表示システム。 - 複数台の前記サーバマシンを備え、
前記複数台のサーバマシンのいずれからも、前記断片画像が前記クライアントマシンへ伝送され得るようになっている、
請求項1記載の画像表示システム。 - 或る1つの視点から対象物を眺めたオリジナルの解像度を持つ画像を用いて、前記オリジナルの解像度の画像より低い解像度を持つ1又は2以上の画像を作成する画像作成手段と、
前記オリジナルの解像度及びそれより低い解像度の画像を、それぞれ複数の断片画像に分割する画像分割手段と、
前記複数の断片画像に分割された前記オリジナルの解像度及びそれより低い解像度の画像を、前記或る1つの視点に対応する画像グループとして前記サーバマシンに登録する画像登録手段と
を更に備える請求項1記載の画像表示システム。 - 対象物が立体的に表されているかのように画像を表示するための方法であって、
対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶するステップと、
ディスプレイ画面に表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選択するステップと、
選択された前記1又は2以上の断片画像を描画して表示するステップと
を有する画像表示方法。 - 対象物が立体的に表されているかのように画像を表示するための方法を可能にするためのコンピュータプログラムであって、
ディスプレイ画面に表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選ぶステップと、
対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶している記憶手段内の、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選択するステップと、
選択された前記1又は2以上の断片画像を描画して表示するステップと
をコンピュータに実行させるためのコンピュータプログラム。 - 対象物が立体的に表されているかのように画像を表示するための方法で採用される画像のデータ構造であって、
対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループを有し、各視点の前記画像グループは、その視点から対象物を眺めて得られる解像度の異なる2以上の画像を含み、各解像度の画像が複数の断片画像に分割されていることを特徴とするデータ構造。 - 対象物が立体的に表されているかのように画像を表示するためのシステムに備えられる画像サーバであって、
対象物に対する複数の異なる視点にそれぞれ対応した複数の画像グループであって、各画像グループには、対応する視点から対象物を眺めて得られる解像度の異なる2以上の画像が含まれ、各解像度の画像は複数の断片画像に分割されているような、前記複数の画像グループを記憶する記憶手段と、
前記記憶手段内から選択された画像を通信ネットワークを介してクライアントマシンに配信する画像配信手段と
を備え、
前記サーバマシン又は前記クライアントマシンに画像選択手段が備えられ、
前記画像選択手段は、前記クライアントマシンに表示された画像を変更するためのユーザ操作に応答して、前記ユーザ操作によって変更された画像を表示するのに必要な1つの視点を選び、選ばれた視点に対応した画像グループの中から前記変更された画像を表示するのに適した1つの最適解像度を持った画像を選び、選ばれた最適解像度の画像中から前記変更された画像を表示するのに必要な1又は2以上の断片画像を選び、
前記画像配信手段は、前記画像選択手段によって選ばれた前記1又は2以上の断片画像を前記クライアントシステムに配信する、
画像サーバ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002221917A JP2004062671A (ja) | 2002-07-30 | 2002-07-30 | 対象物が立体的に表されているかのように画像を表示するためのシステム及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002221917A JP2004062671A (ja) | 2002-07-30 | 2002-07-30 | 対象物が立体的に表されているかのように画像を表示するためのシステム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004062671A true JP2004062671A (ja) | 2004-02-26 |
Family
ID=31942100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002221917A Pending JP2004062671A (ja) | 2002-07-30 | 2002-07-30 | 対象物が立体的に表されているかのように画像を表示するためのシステム及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004062671A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011064918A1 (ja) * | 2009-11-24 | 2011-06-03 | 株式会社ソニー・コンピュータエンタテインメント | 画像データ作成支援装置および画像データ作成支援方法 |
WO2011067899A1 (ja) * | 2009-12-01 | 2011-06-09 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理システム |
WO2012147380A1 (ja) * | 2011-04-27 | 2012-11-01 | 楽天株式会社 | 端末装置、データ受信方法、データ受信プログラム及び記録媒体 |
WO2017057175A1 (ja) * | 2015-10-02 | 2017-04-06 | 国立大学法人東京大学 | 手術ナビゲーションシステムおよび手術ナビゲーション方法並びにプログラム |
CN110851752A (zh) * | 2019-09-25 | 2020-02-28 | 视联动力信息技术股份有限公司 | 一种图像传输方法及装置 |
-
2002
- 2002-07-30 JP JP2002221917A patent/JP2004062671A/ja active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011064918A1 (ja) * | 2009-11-24 | 2011-06-03 | 株式会社ソニー・コンピュータエンタテインメント | 画像データ作成支援装置および画像データ作成支援方法 |
JP2011114401A (ja) * | 2009-11-24 | 2011-06-09 | Sony Computer Entertainment Inc | 画像データ作成支援装置および画像データ作成支援方法 |
CN102668585A (zh) * | 2009-11-24 | 2012-09-12 | 索尼计算机娱乐公司 | 图像数据生成辅助装置和图像数据生成辅助方法 |
CN102668585B (zh) * | 2009-11-24 | 2015-09-30 | 索尼计算机娱乐公司 | 图像数据生成辅助装置和图像数据生成辅助方法 |
US8670046B2 (en) | 2009-11-24 | 2014-03-11 | Sony Corporation | Image data creation support device and image data creation support method |
WO2011067899A1 (ja) * | 2009-12-01 | 2011-06-09 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理システム |
JP2011118546A (ja) * | 2009-12-01 | 2011-06-16 | Sony Computer Entertainment Inc | 情報処理装置および情報処理システム |
US9230298B2 (en) | 2009-12-01 | 2016-01-05 | Sony Corporation | Information processing device, and information processing system |
US8849953B2 (en) | 2011-04-27 | 2014-09-30 | Rakuten, Inc. | Terminal device, data receiving method, data receiving program, and recording medium |
JP5161400B2 (ja) * | 2011-04-27 | 2013-03-13 | 楽天株式会社 | 端末装置、データ受信方法、データ受信プログラム |
WO2012147380A1 (ja) * | 2011-04-27 | 2012-11-01 | 楽天株式会社 | 端末装置、データ受信方法、データ受信プログラム及び記録媒体 |
WO2017057175A1 (ja) * | 2015-10-02 | 2017-04-06 | 国立大学法人東京大学 | 手術ナビゲーションシステムおよび手術ナビゲーション方法並びにプログラム |
JP2017064307A (ja) * | 2015-10-02 | 2017-04-06 | 国立大学法人 東京大学 | 手術ナビゲーションシステムおよび手術ナビゲーション方法並びにプログラム |
US10492872B2 (en) | 2015-10-02 | 2019-12-03 | The University Of Tokyo | Surgical navigation system, surgical navigation method and program |
CN110851752A (zh) * | 2019-09-25 | 2020-02-28 | 视联动力信息技术股份有限公司 | 一种图像传输方法及装置 |
CN110851752B (zh) * | 2019-09-25 | 2023-12-08 | 视联动力信息技术股份有限公司 | 一种图像传输方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11004120B2 (en) | Method for providing real-time service of huge and high quality digital image on internet | |
KR100405060B1 (ko) | 데이터 통신망을 통한 디지털 확대 이미지 제공방법,디지털 확대 이미지 제공장치 | |
US20240031568A1 (en) | Transferring system for huge and high quality images on network and method thereof | |
US9916070B1 (en) | Architectures and methods for creating and representing time-dependent imagery | |
US20050116966A1 (en) | Web imaging serving technology | |
CA2456033A1 (en) | Network image server | |
JP2006235760A (ja) | 情報閲覧システム、方法およびプログラム | |
US20130216096A1 (en) | Information processing apparatus, information processing method, program, and information processing system | |
JP2004062671A (ja) | 対象物が立体的に表されているかのように画像を表示するためのシステム及び方法 | |
JP2003208597A (ja) | 画像コンバータ及び画像コンバート方法 | |
JP3476805B2 (ja) | 画像表示システム及び方法 | |
AU2002322153B2 (en) | Network image server | |
DE202016007830U1 (de) | Systeme zur selektiven Einbindung von Bildmaterial in eine digitale Kartenanwendung mit geringer Bandbreite |