(57)【要約】【課題】  仮想空間内をユーザの所望の視点から所望の視野で自在に閲覧することが可能なサーバ装置、表示装置、表示システム、表示方法及びそのプログラムを提供すること。【解決手段】  ユーザの視点から表示装置までの距離情報、ユーザの視点から表示装置に対する方向情報及び表示装置の姿勢情報を取得し、それらの情報から算出された視角情報を基に上記ユーザの視点から上記表示装置を通して見た仮想空間画像を作成し、上記表示装置へ送信して表示させることとした。これにより、ユーザは、所望の方向に当該表示装置をかざすことで当該表示装置に表示された上記仮想空間画像を閲覧することができるとともに、当該表示装置を自在に動かすことで、表示装置の大きさに関わらず、当該仮想空間を所望の視野で、あたかも上記仮想空間に向けた窓を覗くかのように閲覧することができる。【選択図】  図８
2005309638.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間の所定の範囲の画像情報を記憶する記憶手段と、
ユーザの視点から当該ユーザが所持しながら自在に移動させることが可能な表示装置までの距離情報と、前記ユーザの視点から前記表示装置に対する方向情報と、前記表示装置の姿勢情報とを取得する取得手段と、
前記取得された距離情報、方向情報及び姿勢情報を基に、前記ユーザの視点から前記表示装置に対する視角情報を算出する算出手段と、
前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成する生成手段と、
前記生成された仮想空間画像を前記表示装置に表示させるために、当該表示装置へ送信する送信手段と
を具備することを特徴とするサーバ装置。
【請求項２】
請求項１に記載のサーバ装置であって、
前記生成手段は、
前記仮想空間画像を前記表示装置の表示面の大きさに合わせて拡大縮小する手段と、
前記仮想空間画像の縦横比率を前記表示装置の姿勢に合わせて変更する手段と
を有することを特徴とするサーバ装置。
【請求項３】
請求項１に記載のサーバ装置であって、
上記表示装置は超音波センサを有し、
前記距離情報は、椅子に座っているユーザまたは当該椅子に反射した超音波により検出されることを特徴とするサーバ装置。
【請求項４】
請求項３に記載のサーバ装置であって、
前記椅子は、当該椅子の縦方向の軸を中心に回転することが可能であり、かつ、前記方向情報を検出するための回転角センサを有することを特徴とするサーバ装置。
【請求項５】
請求項１に記載のサーバ装置であって、
前記姿勢情報は、前記表示装置の表示面の縦方向の軸、横方向の軸及び奥行き方向の軸に対する傾き情報を含むことを特徴とするサーバ装置。
【請求項６】
請求項５に記載のサーバ装置であって、
前記表示装置は、前記縦方向、横方向及び奥行き方向の軸に対する各傾き情報のうち、少なくとも一つの傾き情報を検出するためのジャイロセンサを有することを特徴とするサーバ装置。
【請求項７】
請求項３に記載のサーバ装置であって、
前記椅子及び表示装置の上方空間にはカメラが設けられ、
前記表示装置は当該表示装置の表面に２次元バーコードを有し、
前記距離情報は、前記カメラで撮像された前記２次元バーコードが認識されることにより検出されることを特徴とするサーバ装置。
【請求項８】
請求項３に記載のサーバ装置であって、
前記椅子及び表示装置の周囲の空間には複数のカメラが設けられ、
前記距離情報、方向情報及び姿勢情報は、前記カメラによって撮像された複数の画像中の前記椅子及び表示装置の画像が解析されることにより検出されることを特徴とするサーバ装置。
【請求項９】
仮想空間の画像を表示させることが可能な表示装置であって、
当該表示装置から前記ユーザの視点までの距離情報及び当該表示装置の姿勢情報を検出する検出手段と、
前記検出された距離情報及び姿勢情報を、ネットワークを介して接続されたサーバ装置へ送信する送信手段と、
前記サーバ装置が前記送信された情報を基に生成した、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を、当該サーバ装置から受信する受信手段と、
前記受信された仮想空間画像を表示する表示手段と
を具備することを特徴とする表示装置。
【請求項１０】
サーバ装置と、ユーザが所持しながら自在に移動させることが可能な表示装置とがネットワークを介して互いに通信を行うことが可能なシステムであって、
前記サーバ装置は、
仮想空間の所定の範囲の画像情報を記憶する手段と、前記ユーザから前記表示装置までの距離情報と、前記ユーザに対する前記表示装置の方向情報と、前記表示装置の姿勢情報とを前記表示装置から受信する手段と、前記受信された距離情報、方向情報及び姿勢情報を基に、前記ユーザの前記表示装置に対する視角情報を算出する手段と、前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成する手段と、前記生成された仮想空間画像を前記表示装置に表示させるために当該表示装置へ送信する手段とを有し、
前記表示装置は、
前記距離情報、方向情報及び姿勢情報を検出する手段と、前記検出された距離情報、方向情報及び姿勢情報を前記サーバ装置へ送信する手段と、前記サーバ装置が当該送信された情報を基に生成した前記仮想空間画像を当該サーバ装置から受信する手段と、前記受信された仮想空間画像を表示する手段とを有する
ことを特徴とする表示システム。
【請求項１１】
仮想空間の所定の範囲の画像情報を記憶するステップと、
ユーザの視点から当該ユーザが所持しながら自在に移動させることが可能な表示装置までの距離情報と、前記ユーザの視点から前記表示装置に対する方向情報と、前記表示装置の姿勢情報とを取得するステップと、
前記取得された距離情報、方向情報及び姿勢情報を基に、前記ユーザの視点から前記表示装置に対する視角情報を算出するステップと、
前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成するステップと、
前記生成された仮想空間画像を前記表示装置に表示させるために、当該表示装置へ送信するステップと
を具備することを特徴とする表示方法。
【請求項１２】
サーバ装置を、
仮想空間の所定の範囲の画像情報を記憶するステップと、
ユーザの視点から当該ユーザが所持しながら自在に移動させることが可能な表示装置までの距離情報と、前記ユーザの視点から前記表示装置に対する方向情報と、前記表示装置の姿勢情報とを取得するステップと、
前記取得された距離情報、方向情報及び姿勢情報を基に、前記ユーザの視点から前記表示装置に対する視角情報を算出するステップと、
前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成するステップと、
前記生成された仮想空間画像を前記表示装置に表示させるために、当該表示装置へ送信するステップ
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間画像を表示することが可能なサーバ装置、表示装置、表示システム、表示方法及びそのプログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータにより生成される仮想的な空間の画像を、ユーザの視線に応じて表示する技術としては、予め全方位の仮想空間画像を用意しておき、ユーザが座っている椅子の横方向及び縦方向の回転角度及び速度を検出し、当該検出結果から上記仮想空間におけるユーザの視点及び視野を算出して、それに応じた画像を上記予め用意しておいた仮想空間画像のデータから抜き出して表示装置に表示するというものがある。（例えば、特許文献１参照）。
【特許文献１】特開２０００−１９９５３号公報（請求項１、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述の技術においては、視線の変動のみ検出しているため、視線が同一方向の画像は常に一定となる。すなわち、仮想空間内の同一方向においては、特定部分を拡大して見たり、より広範囲の画像を見たりすることはできないため、当該仮想空間内の詳細な情報を欲するユーザにとって、利便性を損ねることとなっていた。
【０００４】
以上のような事情に鑑み、本発明の目的は、仮想空間内をユーザの所望の視点から所望の視野で自在に閲覧することが可能なサーバ装置、表示装置、表示システム、表示方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上述の課題を解決するため、本発明のサーバ装置は、仮想空間の所定の範囲の画像情報を記憶する記憶手段と、ユーザの視点から当該ユーザが所持しながら自在に移動させることが可能な表示装置までの距離情報と、前記ユーザの視点から前記表示装置に対する方向情報と、前記表示装置の姿勢情報とを取得する取得手段と、前記取得された距離情報、方向情報及び姿勢情報を基に、前記ユーザの視点から前記表示装置に対する視角情報を算出する算出手段と、前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成する生成手段と、前記生成された仮想空間画像を前記表示装置に表示させるために、当該表示装置へ送信する送信手段とを具備することを特徴としている。
【０００６】
ここで上記仮想空間とは、例えばマンションのモデルルームの展示会や室内インテリアの販売において、ユーザが希望の間取りにしたり、希望のインテリアを設置したりした場合の室内の様子を仮想的に表現した空間や、ゲームにおいてキャラクターが存在する空間等、コンピュータで作成されたあらゆる空間をいう。また上記所定の範囲とは、例えば上記仮想空間の全方位（３６０°）や、２７０°、１８０°等の範囲をいう。
【０００７】
上記表示装置とは、例えばユーザが手に持って表示面を閲覧することが可能な大きさの板状のものである。
【０００８】
この構成によれば、上記距離情報等から算出された視角情報を基に上記ユーザの視点から上記表示装置を通して見た仮想空間画像を作成し、上記表示装置へ送信して表示させているため、ユーザは、例えば所望の方向に当該表示装置をかざすことで当該表示装置に表示された上記仮想空間画像を閲覧することができるとともに、当該表示装置を自在に動かすことで、表示装置の大きさに関わらず、当該仮想空間を所望の視野で閲覧することができる。換言すれば、上記サーバ装置は、上記表示装置を、ユーザがあたかも上記仮想空間に向けた窓のように機能させることができ、ユーザは当該窓から上記仮想空間を覗くような間隔で閲覧することができる。
【０００９】
上記サーバ装置において、前記生成手段は、前記仮想空間画像を前記表示装置の大きさに合わせて拡大縮小する手段と、前記仮想空間画像の縦横比率を前記表示装置の姿勢に合わせて変更する手段を有していてもよい。
【００１０】
これにより、ユーザが上記表示装置を視点に近づけ、または遠ざけたりした場合や、当該表示装置を回転させたりして姿勢を変更させたような場合にも、当該表示装置の大きさ及び姿勢に応じて、自然な感じで上記仮想空間画像を表示させることができる。すなわち、例えばユーザが表示装置を視点に近づけた場合には、ユーザからは、上記仮想空間内の見える範囲が広がるとともに、当該表示装置自体は近づける以前よりも大きく見えることになるため、そのような場合には、当該表示装置自体の見え方を考慮して、上記仮想空間画像に対しては、見える範囲を広げた上で、当該画像を表示装置の大きさに合わせて縮小することができる。
【００１１】
またユーザが表示装置を回転させた場合には、ユーザからは、例えば上記仮想空間の見える範囲が狭まるとともに、当該表示装置自体の縦横比は左右または上下で異なって見えることになるため（例えば上記表示装置がもともと長方形の場合には、回転させると台形に見えたりする等）、当該表示装置自体の見え方を考慮して、上記仮想空間画像に対して、表示装置の形に合わせて縦横比の変更処理を行って表示させることができる。
【００１２】
上記サーバ装置において、上記表示装置は超音波センサを有し、前記距離情報は、例えば地面に固定された椅子に座っているユーザまたは当該椅子に反射した超音波により検出されるものであってもよい。これにより、上記表示装置の超音波センサから出力されて上記ユーザまたは椅子に反射して戻ってきた超音波を認識することにより、当該椅子から表示装置までの距離情報、すなわちユーザの視点から表示装置までの距離情報を検出することが可能となる。
【００１３】
上記サーバ装置において、前記椅子は、当該椅子の縦方向の軸を中心に回転することが可能であり、かつ、前記方向情報を検出するための回転角センサを有していてもよい。これにより、上記椅子が回転した場合に、回転角センサにより検出される椅子の回転角を基に、前記ユーザの視点から前記表示装置に対する方向情報を検出することができる。
【００１４】
上記サーバ装置において、前記姿勢情報は、前記表示装置の表示面の縦方向の軸、横方向の軸及び奥行き方向の軸に対する傾き情報を含んでいてもよい。これにより、上記各方向の軸に対する傾きを、上記姿勢情報として検出し、上記サーバ装置へ送信することができる。
【００１５】
上記サーバ装置において、前記表示装置は、前記縦方向、横方向及び奥行き方向の軸に対する各傾き情報のうち、少なくとも一つの傾き情報を検出するためのジャイロセンサを有していてもよい。これにより、当該ジャイロセンサにより検出された各傾き情報を上記姿勢情報として上記サーバ装置へ送信することができる。
【００１６】
上記サーバ装置において、前記椅子及び表示装置の上方空間にはカメラが設けられ、前記表示装置は当該表示装置の表面に２次元バーコードを有し、前記距離情報は、前記カメラで撮像された前記２次元バーコードが認識されることにより検出されるようにしてもよい。これにより、撮像した画像中の、上記認識した２次元バーコードの位置を検出することで上記カメラから上記表示装置の方向が分かり、上記２次元バーコードの大きさを検出することで上記カメラから上記表示装置との距離が分かり、当該方向と距離から上記室内における表示装置の位置が特定できる。上記椅子の位置は固定であるため、当該表示装置の位置を基に、上記ユーザの視点から上記表示装置までの距離情報が検出できる。
【００１７】
上記サーバ装置において、前記椅子及び表示装置の周囲の空間には複数のカメラが設けられ、前記距離情報、方向情報及び姿勢情報は、前記カメラによって撮像された複数の画像中の前記椅子及び表示装置の画像が解析されることにより検出されるようにしてもよい。これにより、上記複数のカメラにより撮像された画像中の上記椅子及び表示装置の位置、大きさ及び形状をそれぞれ比較して解析することにより、上記距離情報、方向情報及び姿勢情報を検出することができる。
【００１８】
本発明の表示装置は、仮想空間の画像を表示させることが可能な表示装置であって、当該表示装置から前記ユーザの視点までの距離情報及び当該表示装置の姿勢情報を検出する検出手段と、前記検出された距離情報及び姿勢情報を、ネットワークを介して接続されたサーバ装置へ送信する送信手段と、前記サーバ装置が前記送信された情報を基に生成した、前記ユーザの視点から前記表示装置を通して見た前記仮想空間画像を、当該サーバ装置から受信する受信手段と、前記受信された仮想空間画像を表示する表示手段とを具備することを特徴としている。
【００１９】
この構成により、上記距離情報及び姿勢情報を検出して上記サーバ装置へ送信して、当該サーバ装置から上記仮想空間画像を受信して表示することとしたため、当該表示装置がどのような位置に移動し、どのような姿勢になっても、上記仮想空間画像を表示することが可能となる。
【００２０】
なお、当該表示装置は、上記ユーザの視点から当該表示装置に対する方向情報を検出する手段と、当該方向情報、上記距離情報及び姿勢情報を基に前記ユーザの視点から見た前記仮想空間画像を生成する手段と、前記ユーザの視点から前記表示装置に対する視角情報を算出する手段と、前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成する手段と、当該生成された仮想空間画像を表示する手段とを更に具備するようにしてもよい。
【００２１】
これにより、上記サーバ装置の処理を必要としなくとも、自ら上記仮想空間画像を生成して表示することが可能となる。
【００２２】
本発明の表示システムは、サーバ装置と、ユーザが所持しながら自在に移動させることが可能な表示装置とがネットワークを介して互いに通信を行うことが可能なシステムであって、前記サーバ装置は、仮想空間の所定の範囲の画像情報を記憶する手段と、前記ユーザから前記表示装置までの距離情報と、前記ユーザに対する前記表示装置の方向情報と、前記表示装置の姿勢情報とを前記表示装置から受信する手段と、前記受信された距離情報、方向情報及び姿勢情報を基に、前記ユーザの前記表示装置に対する視角情報を算出する手段と、前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成する手段と、前記生成された仮想空間画像を前記表示装置に表示させるために当該表示装置へ送信する手段とを有し、前記表示装置は、前記距離情報、方向情報及び姿勢情報を検出する手段と、前記検出された距離情報、方向情報及び姿勢情報を前記サーバ装置へ送信する手段と、前記サーバ装置が当該送信された情報を基に生成した前記仮想空間画像を当該サーバ装置から受信する手段と、前記受信された仮想空間画像を表示する手段とを有することを特徴としている。
【００２３】
この構成により、上記表示装置が上記距離情報、方向情報及び姿勢情報を検出して上記サーバ装置へ送信し、上記サーバ装置が、上記表示装置から受信した各情報を基に上記表示装置に対するユーザの視角情報を算出し、当該視角情報から上記仮想空間画像を生成して上記表示装置に表示させることとしたため、ユーザは、上記表示装置の大きさに関わらず、上記表示装置を自在に動かすことにより、所望の視点から所望の視野で上記仮想空間を閲覧することができる。
【００２４】
本発明の表示方法は、仮想空間の所定の範囲の画像情報を記憶するステップと、ユーザの視点から当該ユーザが所持しながら自在に移動させることが可能な表示装置までの距離情報と、前記ユーザの視点から前記表示装置に対する方向情報と、前記表示装置の姿勢情報とを取得するステップと、前記取得された距離情報、方向情報及び姿勢情報を基に、前記ユーザの視点から前記表示装置に対する視角情報を算出するステップと、前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成するステップと、前記生成された仮想空間画像を前記表示装置に表示させるために、当該表示装置へ送信するステップとを具備することを特徴としている。
【００２５】
本発明のプログラムは、サーバ装置を、仮想空間の所定の範囲の画像情報を記憶するステップと、ユーザの視点から当該ユーザが所持しながら自在に移動させることが可能な表示装置までの距離情報と、前記ユーザの視点から前記表示装置に対する方向情報と、前記表示装置の姿勢情報とを取得するステップと、前記取得された距離情報、方向情報及び姿勢情報を基に、前記ユーザの視点から前記表示装置に対する視角情報を算出するステップと、前記算出された視角情報及び前記記憶された画像情報を基に、前記ユーザの視点から前記表示装置を通して見た仮想空間画像を生成するステップと、前記生成された仮想空間画像を前記表示装置に表示させるために、当該表示装置へ送信するステップとして機能させるものである。
【発明の効果】
【００２６】
本発明によれば、仮想空間内をユーザの所望の視点から所望の視野で自在に閲覧することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態を図面に基づき説明する。
（第１の実施形態）
【００２８】
まず、本発明の第１の実施形態について説明する。図１は、本実施形態に係る表示システムの構成を示した図である。本表示システムは、サーバ１０１、表示装置１０２及び椅子１０３から構成され、例えばＬＡＮ（Local Area Network）１０４のようなネットワークを介して互いに通信を行うことが可能となっている。
【００２９】
サーバ１０１は、ＣＰＵ（Central Processing Unit）１０５、ＲＯＭ（Read Only Memory）１０６、ＲＡＭ（Random Access Memory）１０７、通信部１０８、情報入力部１０９、グラフィックコントローラ１１０、ＶＲＡＭ（Video RAM）１１１及びＨＤＤ（Hard Disk Drive）１１２で構成され、それらがバス１１３で接続されている。
【００３０】
ＣＰＵ１０５は、サーバ１０１全体の動作を制御するメインコントローラであり、ＯＳ（Operating System）により提供されるプラットフォーム上で、例えば仮想空間画像の生成等における各種のアプリケーションを実行する。
【００３１】
ＲＯＭ１０６は、サーバ１０１の電源オン時に実行するプログラムや、ハードウェア制御用の制御コードの他、上記仮想空間画像を生成するためのデータ等を格納する、読み出し専用の不揮発性のメモリである。またＲＡＭ１０７は、ＣＰＵ１０５が上記仮想空間画像の生成処理を実行するプログラムやその他のプログラムをロードしたり、当該プログラムの作業データを書き込んだりするために用いられる、書き込み可能な揮発性のメモリである。
【００３２】
通信部１０８は、ＬＡＮ１０４を介して上記表示装置１０２及び椅子１０３と通信を行い、各種データ等をやり取りするためのインターフェースとなる。
【００３３】
情報入力部１０９は、上記ユーザの視点から見た仮想空間画像を生成する前処理として、例えばユーザによるインテリア等の素材の選択により、当該素材を配置した室内等の全方位の仮想空間画像を生成する場合に、上記素材等、設定に必要な情報を入力する。
【００３４】
グラフィックコントローラ１１０は、上記全方位の仮想空間画像を描画処理したり、当該全方位の仮想空間画像から、ユーザの視点及び視角に応じた画像を切り出して、上記表示装置１０２に表示させるための、ユーザの視点から見た仮想空間画像を描画したりする。
【００３５】
ＶＲＡＭ１１１は、当該グラフィックコントローラ１１０が描画した画像を書き込むためのバッファであり、当該書き込まれた画像データが表示信号に変換された上で上記表示装置１０２へ送信され、当該表示装置１０２の表示部１１４へ表示される。上記グラフィックコントローラ１１０の描画処理と、上記表示装置１０２の表示部１１４への表示処理は並行して行われる。
【００３６】
ＨＤＤ１１２は、サーバ１０１が上記表示装置１０２の表示部１１４にユーザの視点から見た仮想空間画像を表示させる前に、上記グラフィックコントローラ１１０が描画した全方位の仮想空間画像及びその描画処理に必要なデータ等を記憶しておくための、ランダムアクセス可能な外部記憶装置である。グラフィックコントローラ１１０は、上記ユーザの視点から見た仮想空間画像を描画する際には、ＨＤＤ１１２から上記全方位の仮想空間画像をＶＲＡＭ１１１に呼び出して、上記ユーザの視点及び視角に応じた仮想空間画像の切り出しに必要な描画処理を行う。
【００３７】
表示装置１０２は、表示部１１４、超音波センサ部１１５、ジャイロセンサ部１１６及び通信部１１７から構成される。
【００３８】
表示部１１４は、例えばＴＦＴ（Thin Film Transistor）等のＬＣＤ（Liquid Crystal Display）からなり、上記サーバ１０１から受信した上記ユーザの視点から見た仮想空間画像を表示する。
【００３９】
超音波センサ部１１５は、例えば表示装置１０２の左右両端一つずつ設けられている。当該超音波センサは反射形となっており、出力した超音波が上記椅子１０３に座ったユーザ若しくは椅子１０３に反射して戻ってきた時間を計測して、その計測結果により表示装置１０２と上記ユーザの視点との距離を検出する。また、左右の超音波センサが計測した時間の差異を検出することで、ユーザの視点の正面からの表示装置１０２のずれ、すなわち表示装置１０２を正面から見た場合の縦方向の軸に対する傾きを検出する。当該距離情報の検出処理の詳細については後述する。
【００４０】
ジャイロセンサ部１１６は、例えば表示装置１０２の一端に設けられている。当該ジャイロセンサ部１１６は例えば２軸構造となっており、表示装置１０２の姿勢情報として、横方向及び奥行き方向の軸に対する傾きを検出する。当該姿勢情報の検出処理についても後述する。
【００４１】
通信部１１７は、上記超音波センサ部１１５及びジャイロセンサ部１１６により検出された上記距離情報及び姿勢情報を、上記ＬＡＮ１０４を介して上記サーバ１０１へ送信したり、上記サーバ１０１から上記仮想空間画像を受信したりする際のインターフェースとなる。
【００４２】
ユーザは、上記椅子１０３に座りながら上記表示装置１０２を手にとって翳し、上記表示部１１４に表示された仮想空間画像を閲覧する。当該表示装置１０２は、ユーザが持つのに不便のないよう、大きさは例えば１５インチ等、形状は例えば通常の液晶パネルと同様、横長の矩形とする。また、ユーザが持ちやすいように、表示装置１０２の左右の枠の外側に、取手を設けてもよい。
【００４３】
椅子１０３は、回転角センサ部１１８及び通信部１１９を有する。当該椅子１０３は室内の床に固定され予め室内における位置が決められており、また左右に回転可能となっている。回転角センサとしては、例えばロータリーエンコーダ等が用いられる。
【００４４】
回転角センサ部１１８は、ユーザによる椅子１０３の左右への回転を検出し、ユーザの視点から上記表示装置１０２までの方向を検出する。当該検出処理についても後述する。通信部１１９は、上記回転角センサ部１１８が検出した方向情報を、上記ＬＡＮ１０４を介して上記サーバ１０１へ送信する際のインターフェースとなる。
【００４５】
次に、上記距離情報、姿勢情報及び方向情報の検出処理について説明する。
【００４６】
まず、上記ユーザの視点から上記表示装置１０２までの距離情報及び縦方向の軸に対する傾きの検出処理について説明する。図２は、当該距離情報の検出の様子を示した図である。同図においては、表示装置１０２及びユーザの視点（ユーザ及び椅子１０３）を真上から見ているものとする。
【００４７】
同図に示すように、ユーザが表示装置１０２を視点に近づけた場合には、表示装置１０２と視点との距離が短くなる。超音波センサ１１５ａ及び１１５ｂは、それぞれ出力した超音波が視点（ユーザ若しくは椅子）に反射して戻ってきた時間を常に計測しており、当該時間から表示装置１０２と視点との距離を検出している。上記表示装置１０２が視点に近づいた場合には、上記時間が近づける前よりも短くなるため、上記距離も短くなったことを検出することができる。
【００４８】
また、上記表示装置１０２を横にずらした場合には、上記超音波センサ１１５ａと１１５ｂで、反射して戻ってくる時間が異なるため、当該時間の差異から、表示装置１０２の縦方向の軸に対する傾きも検出することができる。
【００４９】
なお、本表示システムが実施される室内の壁は超音波を吸収する構造となっており、超音波が壁に反射することにより上記検出に影響を与えないようになっている。また、超音波センサ部１１５から出力される超音波は、ユーザ及び椅子に反射しやすいように例えば表示装置１０２のやや内側に向けて出力されてもよいし、また反射した超音波を検出しやすいように指向性を広く設定しておいてもよい。
【００５０】
次に、視点から表示装置１０２に対する方向情報の検出処理について説明する。図３は、当該方向情報の検出の様子を示した図である。同図においても、上記図２と同様、表示装置１０２及びユーザの視点（ユーザ及び椅子１０３）を真上から見ているものとする。
【００５１】
同図に示すように、椅子１０３に座っているユーザが当該椅子１０３を回転させることにより、ユーザの視点が回転した場合には、椅子１０３の回転角センサ部１１８が当該回転を検知する。そして、当初の位置と回転後の位置とを比較することにより、表示装置１０２がどの方向に存在しているかを検出する。また、例えば、上記超音波センサ１１５ａ及び１１５ｂの検出結果と関連付けて、視点から両超音波センサまでの距離が、椅子１０３が回転しても変わらないことを検知した場合には、上記方向のみ変化し、表示装置１０２の縦方向の軸に対する傾きは変化していないということも検出できる。
【００５２】
次に、上記姿勢情報の検出処理について説明する。図４は、当該姿勢情報を検出する様子を示した図である。同図においては、表示装置１０２の姿勢の変化の前後における正面、上面及び側面の様子を示している。また、表示装置１０２の正面に対して横方向の軸をＸ軸、奥行き方向の軸をＹ軸、縦方向の軸をＺ軸とする。
【００５３】
同図に示すように、表示装置１０２には、例えば表示面の向かって右下隅の部分にジャイロセンサ部１１６が設けられている。当該ジャイロセンサ部は上記Ｘ軸及びＺ軸に対する傾きを検出することが可能な２軸のセンサである。勿論、３軸構造としても構わない。
【００５４】
同図（ａ）は、表示装置１０２が正立した状態から、ユーザがＸ軸を回転軸として手前方向に傾けた場合の図である。この場合、ジャイロセンサ部１１６のＸ軸の検出部がその傾きを検出する。また同図（ｂ）は、表示装置１０２が正立した状態から、Ｙ軸を回転軸として右方向に傾けた場合の図である。この場合、ジャイロセンサ部１１６のＹ軸の検出部がその傾きを検出する。
【００５５】
次に、表示装置１０２の表示部１１４に表示される仮想空間画像について説明する。図５は、ユーザの視点から表示装置１０２までの距離と、視野との関係を示した図である。
【００５６】
同図に示すように、ユーザが表示装置１０２を視点に近づけると、仮想空間内の視野が広がり、ユーザの視野に応じて切り取る仮想空間は広範囲となる。したがって、距離が近づいた場合に表示装置１０２に表示される仮想空間画像においては、同じ物体の大きさは仮想空間の範囲が広がった分、小さくなる。
【００５７】
なお、上記グラフィックコントローラ１１０は、上記仮想空間画像の描画の際、まず仮想空間の３次元空間の画像を切り取り、それを表示装置１０２の表示部１１４に表示させるため、ジオメトリ演算処理等により座標変換して２次元化する。同図に示した画像は、２次元化後のものである。
【００５８】
図６は、上記図５と同様、ユーザが表示装置１０２を視点に近づけた場合に表示部１１４に表示される画像について説明した図である。
【００５９】
同図（ａ）に示すように仮想物体を見ながら表示装置１０２を視点に近づけた場合には、同図（ｂ）に示すように、ユーザから見ると、仮想物体の大きさは変わらないまま、仮想空間内の視野が広がるとともに、表示装置１０２自体の大きさが大きくなる。これを表示装置１０２に表示する場合には、同図（ｃ）に示すように、表示装置１０２の大きさに合わせて、仮想物体の大きさが小さくなるようにズーム処理する。
【００６０】
図７は、表示装置１０２が上記図４におけるＺ軸で回転した場合に、表示部１１４に表示される仮想空間画像について説明した図である。
【００６１】
同図（ａ）に示すように仮想物体を見ながら表示装置１０２をＺ軸を回転軸として左回りに回転させた場合には、同図（ｂ）に示すように、ユーザからは、仮想物体の見え方は変わらないものの、表示装置１０２の向かって左側の方が視点に近いため、右側よりも大きく見える。グラフィックコントローラ１１０が仮想空間から切り出す画像はこの画像である。この場合に、表示装置を正面から見た場合には、仮想物体の向かって右側の方が近いため、左側に比べて大きく見える必要がある。よって、表示装置１０２に表示する場合には、上記切り出した画像における画角の歪みを補正した上で表示する。グラフィックコントローラ１１０は、当該画角補正の際は、具体的には例えば投影変換等の描画技術を用いる。なお、表示装置１０２がＸ軸で回転したような場合も同様の処理となる。
【００６２】
次に、以上のように構成された表示システムにおいて、表示装置にユーザの視点から見た仮想空間画像が表示されるまでの動作を説明する。図８は、当該動作の流れを示したフロー図である。同図においては、例として、ユーザが、室内インテリアの販売会場において、所望のインテリアを配置した仮想空間を、表示装置１０２を閲覧することにより仮想体験するような場合を想定して説明する。ユーザは、販売会場内に固定された椅子１０３に座っており、表示装置１０２を保持している。
【００６３】
同図に示すように、まず、ユーザは、所望の部屋の形状、窓、壁紙、装飾品等のインテリア及び室内における当該インテリアの配置等の空間構成要素を選択する（ステップ８０１）。選択された情報は上記情報入力部１０９により入力され、上記ＲＡＭ１０７へ記憶される。続いて、上記グラフィックコントローラ１１０は、上記ＲＡＭ１０７から当該選択された情報をＶＲＡＭ１１１へ呼び出し、当該情報に基づいて、上記ユーザの所望の全方位の仮想空間画像を作成する（ステップ８０２）。当該全方位の仮想空間画像は、例えば上記ＨＤＤ１１２へ記憶される。次に、上記表示装置１０２の位置情報等を初期化して、新たな情報を取得できる態勢を整える（ステップ８０３）。
【００６４】
そして、表示装置１０２は、ユーザが当該表示装置１０２を動かすと、上記図２において説明したように、超音波センサ部１１５の左右の超音波センサがそれぞれ視点との距離を測定し、また左右の超音波センサの反射速度の差異から、表示装置１０２のＺ軸方向の傾きを検出する（ステップ８０４）。また、上記図４で説明したように、ジャイロセンサ部１１６が、表示装置１０２のＸ軸及びＹ軸方向への傾きを検出する（ステップ８０５）。そして、上記検出した距離情報、及び姿勢情報としてのＸ軸、Ｙ軸、Ｚ軸に対する傾き情報を、通信部１１７を介してサーバ１０１へ送信する（ステップ８０６）。
【００６５】
一方、椅子１０３は、ユーザにより当該椅子１０３が回転した場合には、上記図３において説明したように、回転角センサ部１１８が当該回転角度を検出し（ステップ８０７）、当該検出結果を通信部１１９を介してサーバ１０１へ送信する（ステップ８０８）。
【００６６】
そして、サーバ１０１は上記表示装置１０２から距離情報及び姿勢情報を受信し（ステップ８０９）、椅子１０３から回転角度を受信すると（ステップ８１０）、当該受信結果から表示装置の方向、ユーザの視角を計算し、そこから仮想空間から切り出すための画像の切り出し位置、大きさを計算する（ステップ８１１）。続いて上記ＨＤＤ１１２から、作成しておいた全方位の仮想空間画像をＶＲＡＭ１１１へ呼び出し、上記計算結果から、ユーザの視点及び視野から見た仮想空間画像を切り出す（ステップ８１２）。このとき、上記図７において説明したように、表示装置１０２がＸ軸及びＺ軸に対して傾いているような場合には、上記歪んだ画像（台形）を含む長方形を切り出す。そして、上述したように、切り出した画像を３次元画像から２次元画像へと変換する。
【００６７】
次に、上記図７（ｃ）において説明したように、上記表示装置の姿勢、すなわちＸ軸またはＺ軸に対する傾き、回転角度に合わせて、上記歪んだ画像に対して画角補正を施し、実際に表示装置１０２の表示部１１４に表示できる状態にする。また、上記図５及び図６において説明したように、表示装置１０２が視点に対して近づいたり遠ざかったりした場合には、表示装置１０２の大きさに合わせてズーム処理を行う（ステップ８１３）。そして、画角修正及びズーム処理を施した仮想空間画像を上記通信部１０８を介して表示装置１０２へ送信する（ステップ８１４）。
【００６８】
そして、当該仮想空間画像を受信した（ステップ８１５）表示装置１０２が、当該仮想区間画像を表示部１１４に表示する（ステップ８１６）。
【００６９】
以上の動作により、サーバ１０１は、上記表示装置１０２及び椅子１０３から距離情報、方向情報及び姿勢情報を受信して、当該情報を基に上記ユーザの視点から見た仮想空間を切り出して、必要に応じて補正等を行って表示装置１０２に表示させることができる。
【００７０】
これにより、ユーザは、所望の方向に上記表示装置１０２をかざすことで、当該表示装置１０２に表示された仮想空間を閲覧することができるとともに、当該表示装置を自在に動かすことで、表示装置の大きさに関わらず、当該仮想空間を所望の視野で、あたかも上記仮想空間に向けた窓を覗くように閲覧することができる。
【００７１】
よって、上記表示装置１０２を視点に近づけたり遠ざけたりすることで、ユーザは仮想空間の広い範囲の様子を確認したり、特定の位置や物体に絞った詳細な閲覧をしたりすることができ、そのような疑似体験をすることで、希望通りのインテリアを購入し、実際にコーディネートすることが可能となる。
【００７２】
なお、本発明は以上説明した実施の形態には限定されるものではなく、種々の変形が可能である。以下、他の実施の形態について説明する。
（第２の実施形態）
【００７３】
上記第１の実施形態においては、上記表示装置１０２の超音波センサ部１１５によりユーザの視点から表示装置１０２までの距離情報を検出し、上記椅子１０３の回転角センサ部１１８により検出した椅子の回転角度から、ユーザの視点に対する表示装置１０２の方向情報を検出していたが、以下のような方法によっても当該距離情報及び方向情報を検出することができる。
【００７４】
図９は、本実施形態における表示システムが実施される室内を横から見た図である。なお、本実施形態において、上記第１の実施形態における表示システムと同様の構成を有する部分については同一の符号を付し、説明を省略または簡略化する。
【００７５】
同図に示すように、本システムにおける室内の天井には、カメラ９０１が設けられている。当該カメラ９０１は、椅子１０３に座っているユーザの垂直方向の位置に固定され、表示装置１０２の可動範囲、すなわちユーザが腕を伸ばせる範囲が少なくとも撮影範囲に入るようになっている。また、カメラ９０１は、上記サーバ１０１と例えばＬＡＮにより通信を行うことが可能となっている。
【００７６】
表示装置１０２の上部には、例えば２次元バーコード等、当該カメラ９０１で認識できるマークが添付されている。カメラ９０１は、撮影した映像中から、当該認識マーク９０２を探し、映像中の当該認識マーク９０２の位置から、カメラ９０１から見た表示装置１０２の方向を検知することができる。また、映像中の認識マーク９０２の大きさから、カメラ９０１から表示装置１０２までの距離を検知できる。当該認識マーク９０２の大きさ及びそれに対応するカメラ９０１からの距離は、予めデータベース等に登録しておけばよい。そして、上記表示装置１０２の方向と、カメラ９０１から表示装置１０２までの距離から、室内における表示装置１０２の位置を特定することができる。ユーザ（椅子１０３）の位置及び室内間取り等の情報は予め分かっているため、上記表示装置１０２の位置を検出することにより、ユーザの視点から表示装置１０２までの距離情報が検出できる。
【００７７】
図１０は、本実施形態における表示装置１０２を真上から見た図である。同図に示すように、上記認識マーク９０２は、表示装置１０２の上部の左右２箇所に設けられている。表示装置１０２がＸ軸で回転した場合には、上記カメラ９０１でこれらの認識マーク９０２ａ及び９０２ｂの位置関係を検知することにより、当該回転の角度及び方向情報を検出することが可能となる。
【００７８】
なお、表示装置１０２の姿勢情報については、上述の第１実施形態と同様、表示装置１０２のジャイロセンサ部１１６により検出する。
【００７９】
以上により、表示装置１０２と視点との距離情報、表示装置１０２の方向情報及び姿勢情報が検出でき、後は上記サーバ１０１へそれらの情報を送信する等、上記第１実施形態と同様の処理を行うことで、表示装置１０２に仮想空間画像を表示させることが可能となる。
（第３の実施形態）
【００８０】
上記距離情報、方向情報及び姿勢情報は、以下の方法によっても検出することができる。
【００８１】
図１１は、本実施形態における表示システムが実施される室内を真上から見た図である。
本実施形態においても、上述の２つの実施形態と同様の構成となる部分については同一の符号を付して説明を省略または簡略化する。
【００８２】
同図に示すように、本実施形態における表示システムにおいては、室内の天井及び壁の４方向に計５つのカメラ９０１ａ〜９０１ｅが設けられている。それぞれのカメラは、表示装置１０２の可動範囲、すなわちユーザが手を伸ばして表示装置を動せる範囲が撮影可能なようにそれぞれ設置する。
【００８３】
壁に設置した４台のカメラのうち、２台はユーザの影になって表示装置１０２を撮影できない場合も考えられるが、他の少なくとも２台の壁のカメラ及び天井のカメラは表示装置１０２を常に撮影することが可能である。また、これらのカメラは全て上記サーバ１０１と例えばＬＡＮを介して通信を行うことが可能である。
【００８４】
各カメラは、ユーザが保持する表示装置１０２を撮影し、当該撮影した画像中の表示装置１０２の位置、大きさ及び形状を画像認識によりそれぞれ検出する。そして、当該検出結果を組み合わせることにより、上記距離情報、方向情報及び姿勢情報の全てを検出することが可能である。
【００８５】
当該検出の後は、上述の２つの実施形態と同様の処理により、表示装置１０２に仮想空間画像を表示させることができる。
（第４の実施形態）
【００８６】
本発明を、以下に示すようなネットワークシステムに適用することも可能である。
【００８７】
まず、本実施形態において前提となるネットワークシステムについて説明する。
【００８８】
図１２は、この発明のネットワークシステムの一例を示し、ネットワーク９を介して複数の情報処理装置１、２、３、４が接続されたものである。情報処理装置１、２、３、４は、例えば各種のＡＶ機器やポータブル機器、上記表示装置等である。
【００８９】
情報処理装置１について示すと、情報処理装置１は、コンピュータ機能部として情報処理コントローラ１１を備える。情報処理コントローラ１１は、メインプロセッサ２１−１、サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−１及びＤＣ（ディスクコントローラ）２７−１を有する。
【００９０】
メインプロセッサ２１−１は、サブプロセッサ２３−１，２３−２，２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１（情報処理装置１）の全般的な管理とを行う。ただし、メインプロセッサ２１−１内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ２１−１はサブプロセッサとしても機能することになる。メインプロセッサ２１−１は、ＬＳ（ローカルストレージ）２２−１を有する。
【００９１】
サブプロセッサは、１つでもよいが、望ましくは複数とする。本例は、複数の場合である。各サブプロセッサ２３−１，２３−２，２３−３は、メインプロセッサ２１−１の制御によって並列的かつ独立にプログラムを実行し、データを処理する。更に、場合によってメインプロセッサ２１−１内のプログラムがサブプロセッサ２３−１，２３−２，２３−３内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ２１−１内で動作するプログラムである。各サブプロセッサ２３−１，２３−２，２３−３も、ＬＳ（ローカルストレージ）２４−１，２４−２，２４−３を有する。
【００９２】
ＤＭＡＣ２５−１は、情報処理コントローラ１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ２６−１に格納されているプログラム及びデータにアクセスするものであり、ＤＣ２７−１は、情報処理コントローラ１１に接続された外部記録部２８−１，２８−２にアクセスするものである。
【００９３】
外部記録部２８−１，２８−２は、固定ディスク（ハードディスク）でも、リムーバブルディスクでもよく、また、ＭＯ，ＣＤ±ＲＷ，ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど、各種のものを用いることができる。したがって、ＤＣ２７−１は、ディスクコントローラと称するが、外部記録部コントローラである。図１２の例のように、情報処理コントローラ１１に対して外部記録部２８を複数接続できるように、情報処理コントローラ１１を構成することができる。
【００９４】
メインプロセッサ２１−１、各サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ２５−１及びＤＣ２７−１は、バス２９−１によって接続される。
【００９５】
情報処理コントローラ１１には、当該の情報処理コントローラ１１を備える情報処理装置１を、ネットワーク全体を通して一意的に識別できる識別子が、情報処理装置ＩＤとして割り当てられる。
【００９６】
メインプロセッサ２１−１及び各サブプロセッサ２３−１，２３−２，２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤ及びサブプロセッサＩＤとして割り当てられる。
【００９７】
情報処理コントローラ１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。他の情報処理装置２、３、４も、上記と同様に構成される。ここで、図１２において親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
【００９８】
上述したように、１つの情報処理コントローラ内の各サブプロセッサ２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ２６内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ２３からメインメモリ２６へのアクセスは、以下のような手順によって行う。
【００９９】
図１３（Ａ）に示すように、メインメモリ２６は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤ及びＬＳアドレス（ローカルストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【０１００】
Ｆ／Ｅビット＝０は、サブプロセッサ２３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【０１０１】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリロケーションがデータ書き込み不可であることを示す。
【０１０２】
更に、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ２３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ２３のサブプロセッサＩＤ及びＬＳアドレスを書き込む。
【０１０３】
その後、データ書き込み側のサブプロセッサ２３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、予め読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ及びＬＳアドレスに読み出される。
【０１０４】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することによって、前段階の処理を行うサブプロセッサ２３が、処理済みのデータをメインメモリ２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ２３が前処理後のデータを読み出すことが可能となる。
【０１０５】
図１３（Ｂ）に示すように、各サブプロセッサ２３内のＬＳ２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【０１０６】
サブプロセッサ２３がメインメモリ２６内のデータを自身のＬＳ２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【０１０７】
図１３（Ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ２６には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ２６内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ２３に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
【０１０８】
更に、メインメモリ２６の排他的な制御を実現するために、図１３（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭ等の比較的高速のメモリに格納され、ＤＭＡＣ２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサキー及びキーマスクが含まれる。
【０１０９】
サブプロセッサ２３がメインメモリ２６を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ２３はＤＭＡＣ２５に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ２６のアドレスが含まれる。
【０１１０】
ＤＭＡＣ２５は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ２６内の図１３（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【０１１１】
図１３（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０または１になることができる。例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０または１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【０１１２】
以上のようにして、メインメモリ２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【０１１３】
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的な処理を可能にする。
【０１１４】
より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行われるときには、
【０１１５】
第１のサブプロセッサのサブプロセッサキー：０１００、
【０１１６】
第１のメインメモリ領域のアクセスキー    ：０１００、
【０１１７】
第２のサブプロセッサのサブプロセッサキー：０１０１、
【０１１８】
第２のメインメモリ領域のアクセスキー    ：０１０１
というような設定のままだと、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【０１１９】
図１２のネットワークシステムでは、情報処理装置１、２、３、４間での分散処理のために、情報処理装置１、２、３、４間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置に送信することによって、処理を分散することができる。
【０１２０】
図１４に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム及びデータによって構成される。
【０１２１】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置の情報処理装置ＩＤ、更に、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ２１及び各サブプロセッサ２３の識別子（メインプロセッサＩＤ及びサブプロセッサＩＤ）が含まれる。
【０１２２】
送信先ＩＤ及び応答先ＩＤには、それぞれ、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
【０１２３】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ及び前回のソフトウェアセルＩＤから構成される。
【０１２４】
グローバルＩＤは、ネットワーク全体を通して当該ソフトウェアセルを一意的に識別できるものであり、送信元ＩＤ及びソフトウェアセルの作成または送信の日時（日付及び時刻）に基づいて作成される。
【０１２５】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数を設定する。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ２６内及びサブプロセッサ２３のＬＳ２４内のメモリ量を設定する。前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【０１２６】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラム及びデータから構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【０１２７】
更に、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
【０１２８】
ロードコマンドは、メインメモリ２６内の情報をサブプロセッサ２３内のＬＳ２４にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサＩＤ及びＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ２６内の所定領域のアドレスを示す。サブプロセッサＩＤ及びＬＳアドレスは、情報のロード先であるサブプロセッサ２３の識別子及びＬＳ２４のアドレスを示す。
【０１２９】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサＩＤ及びプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【０１３０】
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムＩＤによって、起動すべき機能プログラムを識別する。
【０１３１】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図１７に示す情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ２６にロードされ、メインプロセッサ２１により実行される。
【０１３２】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【０１３３】
図１５に、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
【０１３４】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３の数などに基づいて生成される。
【０１３５】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、オーディオプレーヤや、後述の表示装置等である。また、情報処理装置種別ＩＤは、音声情報再生、画像表示等の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別ＩＤを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
【０１３６】
ＭＳ（マスター／スレーブ）ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【０１３７】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ２１で現在動作している全てのプログラムについての、メインプロセッサ２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【０１３８】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ２３を識別するための識別子である。
【０１３９】
サブプロセッサステータスは、各サブプロセッサ２３の状態を表すものであり、ｕｎｕｓｅｄ，ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【０１４０】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【０１４１】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサ２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ２３に対応する組数が設定される。
【０１４２】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ２６の総容量及び現在使用中の容量を表す。
【０１４３】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【０１４４】
外部記録部総容量及び外部記録部使用量は、それぞれ、外部記録部ＩＤによって識別される外部記録部２８の総容量及び現在使用中の容量を表す。
【０１４５】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部２８に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【０１４６】
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、以上のような構成のソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤ及び応答先ＩＤによって識別される。
【０１４７】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、そのソフトウェアセルをメインメモリ２６に格納する。さらに、送信先のメインプロセッサ２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。具体的には、送信先のメインプロセッサ２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤ及びＬＳアドレスで特定されるサブプロセッサ内のＬＳ２４の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
【０１４８】
次に、メインプロセッサ２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ２６に格納した後、実行を完了したことをメインプロセッサ２１に通知する。
【０１４９】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ２３に限定されるものではなく、メインプロセッサ２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【０１５０】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ２６にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、及びプログラムカウンタを含み、ＤＭＡコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ２１に当該メインメモリ用プログラムを実行させる。
【０１５１】
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【０１５２】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
【０１５３】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。更に、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
【０１５４】
ソフトウェアセルの使用による分散処理の結果、図１６の上段に示すようにネットワーク９に接続されている複数の情報処理装置１、２、３、４は、図１６の下段に示すように、仮想的な１台の情報処理装置７として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
【０１５５】
図１７に、個々の情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成を示す。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部２８に記録されているものである。各プログラムは、機能または特徴によって、制御プログラム、機能プログラム及びデバイスドライバにカテゴライズされる。
【０１５６】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャ及び能力交換プログラムを含む。
【０１５７】
機能プログラムは、メインプロセッサ２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
【０１５８】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【０１５９】
情報処理装置が物理的にネットワーク９に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ２６にロードする。
【０１６０】
ロード手順としては、メインプロセッサ２１は、まず、ＤＣ２７に読み出し命令を実行させることによって、外部記録部２８からプログラムを読み出し、次に、ＤＭＡＣ２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ２６に書き込む。
【０１６１】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【０１６２】
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図１６の下段に示すように、仮想的な１台の情報処理装置７として機能プログラムを実行することができる。
【０１６３】
また、前述したようにメインプロセッサ２１によって処理される機能プログラムは、サブプロセッサ２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ２１が外部記録部２８から機能プログラムを読み出し、メインメモリ２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ２６に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ２６に書き込むことになる。メインメモリ２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ２３内のＬＳ２４に書き込まれ、メインプロセッサ２１によって処理される機能プログラムと連携動作する。
【０１６４】
図１４のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【０１６５】
そしてサブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【０１６６】
メインプロセッサ２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図１５に示した情報処理装置ＩＤ以下の各情報である。
【０１６７】
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ２６にロードし、実行する。
【０１６８】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９に接続されていることを検知すると、同じネットワーク９に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク９に接続されているだけでなく、電気的・機能的にもネットワーク９に接続されていることを示す。また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【０１６９】
ＭＳマネージャが同じネットワーク９に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
【０１７０】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤ及び応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分とされる。
【０１７１】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドであり、かつデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）及び当該他装置のＭＳステータスが含まれる。
【０１７２】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置は、スレーブ装置となる。
【０１７３】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置は、マスター装置となる。
【０１７４】
すなわち、いずれの装置もネットワーク９に接続されていない状態、またはネットワーク９上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０１７５】
マスター装置及びスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されることにより、予め判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９に新たな情報処理装置が接続された場合など、ネットワーク９の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０１７６】
メインプロセッサ２１は、ＭＳマネージャから、ネットワーク９上の他装置の照会及び自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０１７７】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０１７８】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を格納するための領域を自装置のメインメモリ２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ２６には、自装置を含むネットワーク９に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
【０１７９】
一方、自装置がスレーブ装置である場合には、能力交換プログラムは、ネットワーク９に接続されている全ての他装置の装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤ及びＭＳステータスを、自装置のメインメモリ２６に記録する。すなわち、スレーブ装置のメインメモリ２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９に接続されているマスター装置及び各スレーブ装置についての情報処理装置ＩＤ及びＭＳステータスが、別の装置情報テーブルとして記録される。
【０１８０】
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ２６に記録する。
【０１８１】
なお、ＭＳマネージャ及び能力交換プログラムは、メインプロセッサ２１で実行されることに限らず、いずれかのサブプロセッサ２３で実行されてもよい。また、ＭＳマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１８２】
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ２６から削除する。
【０１８３】
更に、このようにネットワーク９から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０１８４】
具体的には、例えば、ネットワーク９から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置ＩＤを数値に置き換えて、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を取得して、メインメモリ２６に記録する。
【０１８５】
図１６の下段に示したようにネットワーク９に接続されている複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
【０１８６】
図１８に、４台の情報処理装置が仮想的な１台の情報処理装置７として動作する様子を示す。情報処理装置１がマスター装置、情報処理装置２、３、４がスレーブ装置Ａ、Ｂ、Ｃとして、動作しているものとする。
【０１８７】
ユーザがネットワーク９に接続されている情報処理装置を操作した場合、操作対象がマスター装置１であれば、その操作情報は、マスター装置１において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置１に送信される。すなわち、ユーザの操作対象がマスター装置１とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
【０１８８】
そして、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、上記の方法によって自装置の外部記録部２８−１、２８−２からメインメモリ２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１に機能プログラムを送信してもよい。
【０１８９】
機能プログラムには、その実行単位毎に必要となる、図１５に示した各情報として表される情報処理装置種別ＩＤ、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件等の、装置に関する要求スペックが規定されている。
【０１９０】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、予め能力交換プログラムによってメインメモリ２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図１５に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
【０１９１】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ネットワーク９上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０１９２】
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。更に、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０１９３】
実行要求するスレーブ装置が特定されたら、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１に含まれるメインメモリ２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０１９４】
更に、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ＤＭＡコマンドがロードコマンド及びキックコマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ（図１４参照）を設定して、上記実行要求されるスレーブ装置に対して送信する。
【０１９５】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上記の方法によって自装置の外部記録部２８からメインメモリ２６に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０１９６】
機能プログラムの実行を要求されたスレーブ装置の外部記録部２８に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０１９７】
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０１９８】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、終了通知をマスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０１９９】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１が当該機能プログラムを実行する。
【０２００】
図１８の例で、ユーザがスレーブ装置Ａ（情報処理装置２）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３）が実行する場合について、図１９を用いてその分散処理の例を説明する。
【０２０１】
図１９の例では、ユーザがスレーブ装置Ａを操作することによって、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Ａは、ステップ８１で、その操作情報をマスター装置１に送信する。
【０２０２】
マスター装置１は、ステップ７２で、その操作情報を受信し、さらにステップ７３に進んで、自装置のメインメモリ２６−１に記録されている自装置及び他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Ｂが選択される場合である。
【０２０３】
次に、マスター装置１は、ステップ７４で、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する。
【０２０４】
スレーブ装置Ｂは、ステップ９５で、その実行要求を受信し、さらにステップ９６に進んで、実行要求された機能プログラムを実行する。
【０２０５】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０２０６】
次に、以上説明したネットワークシステムを、本発明に適用した場合の実施の形態について説明する。図２０は、本実施形態における表示システムの構成を示した図である。同図においては、上述の図１２における情報処理装置１に上述のサーバ１０１を、情報処理装置２に表示装置１０２を、そして情報処理装置３に椅子１０３を適用している。同図において、上述の第１〜第３の実施形態と同様の構成となる部分については同一の符号を付して説明を簡略または省略し、異なる点を中心に説明する。なお、上記図１２における情報処理装置１のメインメモリ２６−１に、上記第１実施形態の図１におけるＲＡＭ１０７を、外部記憶部２６−１及び２６−２に、図１におけるＲＯＭ１０６及びＨＤＤ１１２を適用している。
【０２０７】
上記サーバ１０１、表示装置１０２及び椅子１０３は、それぞれ上述のメインプロセッサ、サブプロセッサを含む情報処理コントローラを有し、上記ＤＭＡコマンド等によりソフトウェアセルを実行したり、各種データをやり取りしたりすることが可能である。よって、各機器には、それぞれを識別するための上記情報処理装置ＩＤが付与されている。
【０２０８】
本実施形態においては、サーバ１０１は、上述の距離情報、方向情報及び姿勢情報等をソフトウェアセルにより受信し、また、それらを基に生成した仮想空間画像をソフトウェアセルにより表示装置１０２へ送信する。
【０２０９】
図２１は、表示装置１０２がサーバ１０１に対して送信するソフトウェアセルの例を示した図である。
【０２１０】
同図に示すように、このソフトウェアセルにおいて、送信元ＩＤは表示装置１０２の情報処理装置ＩＤ、送信先ＩＤ及び応答先ＩＤはサーバ１０１の情報処理装置ＩＤである。
【０２１１】
またＤＭＡコマンドとして仮想空間画像生成コマンドを送信し、データとして、表示装置１０２が上記超音波センサ部１１５及びジャイロセンサ部１１６により検出した表示装置と視点との距離情報及び表示装置の姿勢情報を送信する。具体的には、例えば距離情報としては２０ｃｍ、姿勢情報としては、Ｘ軸、Ｙ軸及びＺ軸それぞれに対する傾きとして、２０°、１０°、１５°といったデータを送信する。更に、表示装置１０２が当該ソフトウェアセル以前にもサーバ１０１に対してソフトウェアセルを送信している場合には、セルインターフェース中、前回のソフトウェアセルＩＤとして、前回送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０２１２】
図２２は、椅子１０３がサーバ１０１に対して送信するソフトウェアセルの例を示した図である。
【０２１３】
同図に示すように、このソフトウェアセルにおいて、送信元ＩＤは椅子１０３の情報処理装置ＩＤ、送信先ＩＤ及び応答先ＩＤはサーバ１０１の情報処理装置ＩＤである。
【０２１４】
またＤＭＡコマンドとして仮想空間画像生成コマンドを送信し、データとして、椅子１０３が回転角センサ部１１８により検出した椅子１０３の回転角度、例えば４５°等のデータを送信する。更に、椅子１０３が当該ソフトウェアセル以前にもサーバ１０１に対してソフトウェアセルを送信している場合には、セルインターフェース中、前回のソフトウェアセルＩＤとして、前回送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０２１５】
図２３は、サーバ１０１が表示装置１０２に対して送信するソフトウェアセルの例を示した図である。
【０２１６】
同図に示すように、このソフトウェアセルにおいて、送信元ＩＤはサーバ１０１の情報処理装置ＩＤ、送信先ＩＤ及び応答先ＩＤは表示装置１０２の情報処理装置ＩＤである。
【０２１７】
またＤＭＡコマンドとして仮想空間画像表示コマンドを送信し、データとして、サーバ１０１が生成した仮想空間画像を送信する。当該画像は、例えばＪＰＥＧ（Joint Photographic Experts Group）やＢｉｔｍａｐ等の形式である。更に、サーバ１０１が当該ソフトウェアセル以前にも表示装置１０２に対してソフトウェアセルを送信している場合には、セルインターフェース中、前回のソフトウェアセルＩＤとして、前回送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０２１８】
次に、本実施形態において以上のように構成された表示システムが、表示装置１０２へ仮想空間画像を送信するまでの動作を説明する。図２４は、当該動作の流れを示したフロー図である。同図において、上記図８と同様の処理となる部分については同一の符号を付し、説明を省略または簡略化し、異なる点を中心に説明する。なお、本実施形態においては、サーバ１０１が上記マスター装置、表示装置１０２及び椅子１０３がスレーブ装置として機能する。
【０２１９】
同図に示すように、サーバ１０１は、上記図８の場合と同様、ユーザの選択を基に全方位の仮想空間画像を作成して、表示装置１０２等の情報を初期化しておく（ステップ８０１〜８０３）。表示装置１０２も、同様に表示装置１０２と視点との距離及び表示装置１０２の姿勢を検出して（ステップ８０４、８０５）、当該距離及び姿勢のデータを上記図２１で示したソフトウェアセルによりサーバ１０１へ送信する（ステップ３１）
【０２２０】
一方椅子１０３も上記と同様にして椅子１０３の回転角度を検出し、当該回転角度データを上記図２２で示したソフトウェアセルによりサーバ１０１へ送信する（ステップ３２）。
【０２２１】
サーバ１０１は当該２つのソフトウェアセルを受信して（ステップ３３、３４）、後は上記と同様の処理によりユーザの視点及び視野に応じた仮想空間画像を生成し（ステップ８１１〜８１３）、当該画像を上記図２３で示したソフトウェアセルにより表示装置１０２へ送信する（ステップ３５）。表示装置１０２は当該ソフトウェアセルを受信し（ステップ３６）、上記と同様に仮想空間画像を表示部１１４に表示する（ステップ８１６）。
【０２２２】
以上の動作により、サーバ１０１、表示装置１０２及び椅子１０３を仮想的な１台の情報処理装置として動作させ、仮想空間画像を表示させることができる。
【０２２３】
なお、上記本実施形態におけるネットワークシステムに、上記第２の実施形態におけるカメラ９０１や上記第３の実施形態におけるカメラ９０１ａ〜９０１ｅを適用することも勿論可能である。その場合は、カメラがスレーブ装置として機能し、撮影した画像から検出したデータを、ソフトウェアセルを用いてマスター装置であるサーバ１０１へ送信するようにすればよい。
【０２２４】
また、当該ネットワークシステムは上記室内インテリアの展示会場だけでなく、例えば家庭内におけるバーチャルゲーム等、仮想空間を提供するための様々な環境に適用することが可能である。
【図面の簡単な説明】
【０２２５】
【図１】本発明の第１の実施形態に係る表示システムの構成を示した図である。
【図２】距離情報を検出する様子を示した図である。
【図３】方向情報を検出する様子を示した図である。
【図４】姿勢情報を検出する様子を示した図である。
【図５】ユーザの視点と表示装置の距離と、視野との関係を示した図である。
【図６】ユーザが表示装置を視点に近づけた場合に表示部に表示される画像について説明した図である。
【図７】表示装置が上記図４におけるＺ軸で回転した場合に、表示部に表示される仮想空間画像について説明した図である。
【図８】表示装置にユーザの視点から見た仮想空間画像が表示されるまでの動作の流れを示したフロー図である。
【図９】本発明の第２の実施形態における表示システムが実施される室内を横から見た図である。
【図１０】第２実施形態における表示装置を真上から見た図である。
【図１１】本発明の第３の実施形態における表示システムが実施される室内を真上から見た図である。
【図１２】本発明の第４の実施形態において前提となるネットワークシステムの一例を示す図である。
【図１３】情報処理装置が備える情報処理コントローラの説明に供する図である。
【図１４】ソフトウェアセルの一例を示す図である。
【図１５】ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示す図である。
【図１６】複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図１７】情報処理コントローラのソフトウェア構成の一例を示す図である。
【図１８】４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図１９】図１８のシステムにおける分散処理の例を示す図である。
【図２０】本発明の第４の実施形態における表示システムの構成を示す図である。
【図２１】表示装置がサーバに対して送信するソフトウェアセルの例を示した図である。
【図２２】椅子がサーバに対して送信するソフトウェアセルの例を示した図である。
【図２３】サーバが表示装置に対して送信するソフトウェアセルの例を示した図である。
【図２４】第４実施形態において、表示装置へ仮想空間画像を送信するまでの動作の流れを示したフロー図である。
【符号の説明】
【０２２６】
１０１…サーバ
１０２…表示装置
１０３…椅子
１０４…ＬＡＮ
１０５…ＣＰＵ
１０６…ＲＯＭ
１０７…ＲＡＭ
１０８…通信部
１０９…情報入力部
１１０…グラフィックコントローラ
１１１…ＶＲＡＭ
１１２…ＨＤＤ
１１３…バス
１１４…表示部
１１５…超音波センサ部
１１６…ジャイロセンサ部
１１７…通信部
１１８…回転角センサ部
１１９…通信部
９０１…カメラ
９０２…認識マーク
【図１】
2005309638.tif 000003
【図２】
2005309638.tif 000004
【図３】
2005309638.tif 000005
【図４】
2005309638.tif 000006
【図５】
2005309638.tif 000007
【図６】
2005309638.tif 000008
【図７】
2005309638.tif 000009
【図８】
2005309638.tif 000010
【図９】
2005309638.tif 000011
【図１０】
2005309638.tif 000012
【図１１】
2005309638.tif 000013
【図１２】
2005309638.tif 000014
【図１３】
2005309638.tif 000015
【図１４】
2005309638.tif 000016
【図１５】
2005309638.tif 000017
【図１６】
2005309638.tif 000018
【図１７】
2005309638.tif 000019
【図１８】
2005309638.tif 000020
【図１９】
2005309638.tif 000021
【図２０】
2005309638.tif 000022
【図２１】
2005309638.tif 000023
【図２２】
2005309638.tif 000024
【図２３】
2005309638.tif 000025
【図２４】
2005309638.tif 000026