(57)【要約】【課題】  遠隔制御対象の機器に一切の機能を追加することなく、複数の対象機器を遠隔制御することができる遠隔制御装置、遠隔制御方法及びそのプログラムを提供すること。【解決手段】  カメラ部１０１から撮像した機器の画像から文字列を認識し、当該認識した文字列から、機器情報データベース１０８を参照することにより遠隔制御対象の機器を特定して、操作部１０５を当該特定された機器の操作部として設定した上で、当該操作部の操作により当該機器に対して遠隔制御用の赤外線信号を出力することとした。これにより、ユーザは上記機器を撮像するだけで、上記機器に一切の機能を追加することなく複数の機器を容易に遠隔制御することができる。【選択図】  図６
2005268941.tif 000002
【特許請求の範囲】
【請求項１】
操作部と、
遠隔制御対象の機器に関する機器情報を記憶する第１の記憶手段と、
前記機器を撮像する撮像手段と、
前記撮像された機器の画像情報から、文字情報を抽出する抽出手段と、
前記抽出された文字情報及び前記記憶手段により記憶した機器情報を基に、遠隔制御対象の機器を決定する第１の決定手段と、
前記操作部の操作により、前記決定された機器へ、当該機器を遠隔制御するための遠隔制御情報を送信する第１の送信手段と
を具備することを特徴とする遠隔制御装置。
【請求項２】
請求項１に記載の遠隔制御装置であって、
前記操作部と当該操作部の操作により送信される前記遠隔制御情報との関係を示した操作部情報を、前記機器情報と対応付けて記憶する第２の記憶手段と、
前記記憶された操作部情報を基に、前記操作部を、前記第１の決定手段により決定した機器を遠隔制御するための操作部として設定する設定手段とを更に具備し、
前記第１の送信手段は、前記設定した前記操作部の操作により前記遠隔制御情報を送信することを特徴とする遠隔制御装置。
【請求項３】
請求項１に記載の遠隔制御装置であって、
前記第１の決定手段により決定された機器に対応する前記操作部の操作方法を示す操作方法情報を表示する表示手段を更に具備することを特徴とする遠隔制御装置。
【請求項４】
請求項３に記載の遠隔制御装置であって、
前記撮像手段により撮像された画像情報を前記機器情報と対応付けて記憶する第３の記憶手段と、
前記記憶された前記画像情報を抽出する手段とを更に具備し、
前記第１の決定手段は、前記抽出された画像情報に対応する前記機器情報を基に、遠隔制御するための機器を決定することを特徴とする遠隔制御装置。
【請求項５】
請求項２に記載の遠隔制御装置であって、
前記機器情報及び操作部情報を更新する更新手段を更に具備することを特徴とする遠隔制御装置。
【請求項６】
請求項１に記載の遠隔制御装置であって、
前記機器情報は、当該機器の製造業者名情報、型名情報及び種類情報を含むことを特徴とする遠隔制御装置。
【請求項７】
請求項４に記載の遠隔制御装置であって、
前記遠隔制御装置は複数存在し、
当該遠隔制御装置は、
前記遠隔制御情報を前記機器へ転送させるために、当該遠隔制御情報を他の遠隔制御装置へ送信する第２の送信手段を更に具備することを特徴とする遠隔制御装置。
【請求項８】
請求項７に記載の遠隔制御装置であって、
前記他の遠隔制御装置から送信された前記機器を遠隔制御するための遠隔制御情報を受信する受信手段と、
前記受信された遠隔制御情報を前記機器へ転送する転送手段とを更に具備することを特徴とする遠隔制御装置。
【請求項９】
請求項８に記載の遠隔制御装置であって、
前記遠隔制御情報を前記第１の送信手段と前記第２の送信手段のどちらの送信手段により送信するかを決定する第２の決定手段を更に具備することを特徴とする遠隔制御装置。
【請求項１０】
遠隔制御対象の機器に関する機器情報を記憶するステップと、
前記機器を撮像するステップと、
前記撮像された機器の画像情報から、文字情報を抽出するステップと、
前記抽出された文字情報及び前記記憶された機器情報を基に、遠隔制御対象の機器を決定するステップと、
操作部の操作により、前記決定された機器へ、前記当該機器を遠隔制御するための遠隔制御情報を送信するステップと
を具備することを特徴とする遠隔制御方法。
【請求項１１】
遠隔制御装置を、
遠隔制御対象の機器に関する機器情報を記憶するステップと、
前記機器を撮像するステップと、
前記撮像された機器の画像情報から、文字情報を抽出するステップと、
前記抽出された文字情報及び前記記憶された機器情報を基に、遠隔制御対象の機器を決定するステップと、
操作部の操作により、前記決定された機器へ、前記当該機器を遠隔制御するための遠隔制御情報を送信するステップ
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器を遠隔制御することが可能な遠隔制御装置、遠隔制御方法及びそのプログラムに関する。
【背景技術】
【０００２】
従来から、複数の機器を単一のリモートコントローラで遠隔制御する技術として、各機器にＩＤを与えておき、当該ＩＤを示すために機器に付されたバーコードのパターン等から上記ＩＤをリモートコントローラが認識して、当該認識されたＩＤに対応する機器を制御するための画面をリモートコントローラのタッチパネルに表示させて、当該タッチパネルの操作により当該機器へ制御信号を送信する、というものが知られている（例えば、特許文献１参照）。  
【特許文献１】特開２００１−８２７９号公報（段落[００１２]、図１等）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述の技術においては、上記各機器に予めバーコードを付す等、各機器に何らかの機能を追加する必要があるため、当該機能を有しない既存の機器を遠隔制御することはできず、各機器を設計及び製造する際に手間及びコストが掛かってしまうという問題があった。
【０００４】
以上のような事情に鑑み、本発明の目的は、遠隔制御対象の機器に一切の機能を追加することなく、複数の対象機器を遠隔制御することができる遠隔制御装置、遠隔制御方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上述の課題を解決するため、本発明の遠隔制御装置は、操作部と、遠隔制御対象の機器に関する機器情報を記憶する第１の記憶手段と、前記機器を撮像する撮像手段と、前記撮像された機器の画像情報から、文字情報を抽出する抽出手段と、前記抽出された文字情報及び前記記憶手段により記憶した機器情報を基に、遠隔制御対象の機器を決定する第１の決定手段と、前記操作部の操作により、前記決定された機器へ当該機器を遠隔制御するための遠隔制御情報を送信する第１の送信手段とを具備することを特徴としている。
【０００６】
ここで上記機器とは、例えば各種ＡＶ（Audio and Visual）機器、テレビ、ＤＶＤ（Digital Versatile Disk）レコーダ等の家電機器等、遠隔制御装置により遠隔制御が可能なあらゆる機器である。
【０００７】
また上記遠隔制御情報とは、例えば上記遠隔制御装置から発せられる赤外線信号であり、上記機器に対してユーザが所望する所定の制御信号を含んでいる。
【０００８】
この構成によれば、上記撮像手段により撮像した画像情報から文字情報を抽出することにより遠隔制御対象の機器を特定し、当該特定した機器に対して遠隔制御情報を送信することができるため、上記機器を撮像するだけで、上記機器に一切の機能を追加することなく複数の機器を容易に遠隔制御することができる。また、それにより、遠隔制御対象の機器の製造時期及び発売時期に関係なく、どのような機器でも遠隔制御することが可能となる。
【０００９】
上記遠隔制御装置は、前記操作部と当該操作部の操作により送信される前記遠隔制御情報との関係を示した操作部情報を、前記機器情報と対応付けて記憶する第２の記憶手段と、前記記憶した操作部情報を基に、前記操作部を、前記第１の決定手段により決定した機器を遠隔制御するための操作部として設定する設定手段とを更に具備し、前記第１の送信手段は、前記設定した前記操作部の操作により前記遠隔制御情報を送信するようにしてもよい。
【００１０】
ここで上記操作部とは、例えばプッシュボタン、十字ボタン、タッチパネル、ジョグダイヤル等である。当該操作部には、上記機器の種類によって、例えばオーディオプレーヤなら再生や一時停止、テレビならチャンネル変更や音量変更等、各機器が有する機能が割り当てられている。
【００１１】
また上記操作部情報とは、例えば、オーディオプレーヤで「再生」及び「一時停止」といった遠隔制御情報を送信する場合には、ボタンＡは再生ボタン、ボタンＢは一時停止ボタンというように、当該操作部と操作部の操作により送信される遠隔制御情報との対応関係を示した情報である。
【００１２】
これにより、上記機器に対応する操作部情報を記憶しておき、各機器に遠隔制御情報を送信する際には当該操作部情報を切り替えることにより、操作部を当該遠隔制御対象の機器の操作部として機能させることができ、各機器に遠隔制御情報を的確に送信することができる。
【００１３】
上記遠隔制御装置は、前記第１の決定手段により決定された機器に対応する前記操作部の操作方法を示す操作方法情報を表示する表示手段を更に具備していてもよい。これにより、ユーザは上記操作方法情報を参照することで上記操作部の操作を容易に行うことができる。
【００１４】
上記遠隔制御装置は、前記撮像手段により撮像された画像情報を前記機器情報と対応付けて記憶する第３の記憶手段と、前記記憶された前記画像情報を抽出する手段とを更に具備し、前記第１の決定手段は、前記抽出された画像情報に対応する前記機器情報を基に、遠隔制御するための機器を決定するようにしてもよい。
【００１５】
これにより、上記機器の画像情報を上記機器情報と対応付けて記憶しておくことで、例えば、撮像した画像情報から文字情報を抽出し、遠隔制御対象の機器を決定して遠隔制御を行った後に、再度遠隔制御を行う場合には、上記画像情報から再度文字情報を抽出して機器を決定しなくとも、上記記憶した画像情報から容易に機器を決定することができる。よって、再度の撮像や上記文字情報の再度の抽出処理に要する手間を省略することができ、また上記遠隔制御装置の消費電力を抑えることもできる。
【００１６】
上記遠隔制御装置は、前記機器情報及び操作部情報を更新する更新手段を更に具備していてもよい。
【００１７】
ここで上記更新とは、情報を追加または削除したり、書き換えたりすることをいう。
【００１８】
これにより、例えば遠隔制御対象の機器が追加された場合には、上記機器情報を追加することで当該追加された機器も遠隔制御することが可能となり、逆にある機器を使用しなくなった場合には、当該機器の機器情報を削除することで、機器情報を整理し、遠隔制御装置内の記憶領域を効率よく使用することができる。また、上記操作部情報を書き換えることで、上記操作部の操作方法をユーザの嗜好に適合するように変更したりすることが可能となる。
【００１９】
上記遠隔制御装置において、前記機器情報は、当該機器の製造業者名情報、型名情報及び種類情報を含んでいてもよい。これにより、例えば上記機器表面に記載された製造業者名情報、型名情報を上記画像情報から文字情報として認識して上記機器情報に含まれる上記各情報と比較することで、遠隔制御対象の機器を特定することができる。
【００２０】
なお、上記表示手段は、上記第１の決定手段により、遠隔制御対象の機器が決定された場合には、上記操作方法情報を表示する前または操作方法情報とともに、当該決定された機器の上記製造業者名情報、型名情報及びそれに対応する種類情報も表示するようにしてもよい。
【００２１】
上記遠隔制御装置は複数存在し、前記遠隔制御情報を前記機器へ転送させるために、当該遠隔制御情報を他の遠隔制御装置へ送信する第２の送信手段を更に具備していてもよい。
【００２２】
これにより、例えば上記画像情報から文字情報を抽出して一度機器の遠隔制御を行った後、上記第３の記憶手段により記憶された画像情報を基に遠隔制御対象の機器を決定し、再度当該機器の遠隔制御を行う場合であって、ユーザが前回とは異なる位置に存在し、かつ当該位置から上記機器までの間に障害物が存在したり、当該機器との距離が遠く離れていたりして上記遠隔制御情報を送信することができない場合に、上記他の遠隔制御装置に当該遠隔制御情報を送信してそれを上記機器へ転送させることで、当該機器の遠隔制御を行うことが可能となる。
【００２３】
上記遠隔制御装置は、前記他の遠隔制御装置から送信された前記機器を遠隔制御するための遠隔制御情報を受信する受信手段と、前記受信された遠隔制御情報を前記機器へ転送する転送手段とを更に具備していてもよい。
【００２４】
これにより、上述した他の遠隔制御装置に上記遠隔制御情報を転送させる場合とは逆に、当該他の遠隔制御装置が遠隔制御情報を送信できない位置に存在している場合に、当該他の遠隔制御装置から送信された遠隔制御装置を受信して上記機器へ転送することで、当該他の遠隔制御装置が遠隔制御対象とする機器の遠隔制御を行うことができる。
【００２５】
上記遠隔制御装置は、前記遠隔制御情報を前記第１の送信手段と前記第２の送信手段のどちらの送信手段により送信するかを決定する第２の決定手段を更に具備していてもよい。これにより、ユーザが上記遠隔制御情報を直接機器へ送信可能な位置に存在しているか否かといった状況に応じて、上記第１の送信手段と上記第２の送信手段とを適宜選択して、遠隔制御対象の機器を的確に制御することができる。
【００２６】
本発明の遠隔制御方法は、遠隔制御対象の機器に関する機器情報を記憶するステップと、前記機器を撮像するステップと、前記撮像された機器の画像情報から、文字情報を抽出するステップと、前記抽出された文字情報及び前記記憶された機器情報を基に、遠隔制御対象の機器を決定するステップと、操作部の操作により、前記決定された機器へ、前記当該機器を遠隔制御するための遠隔制御情報を送信するステップとを具備することを特徴としている。
【００２７】
また本発明のプログラムは、遠隔制御装置を、遠隔制御対象の機器に関する機器情報を記憶するステップと、前記機器を撮像するステップと、前記撮像された機器の画像情報から、文字情報を抽出するステップと、前記抽出された文字情報及び前記記憶された機器情報を基に、遠隔制御対象の機器を決定するステップと、操作部の操作により、前記決定された機器へ、前記当該機器を遠隔制御するための遠隔制御情報を送信するステップとして機能させることを特徴としている。
【発明の効果】
【００２８】
本発明によれば、遠隔制御対象の機器に一切の機能を追加することなく、複数の対象機器を遠隔制御することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態を図面に基づき説明する。
（第１の実施形態）
まず、本発明の第１の実施形態について説明する。図１は、本発明を適用した遠隔制御装置（リモートコントローラ；以下、リモコンと記述する）１００の構成を示したブロック図である。本実施形態において、ユーザはリモコン１００を用いて家庭内の各機器の遠隔制御を行う。
【００３０】
同図に示すように、本発明のリモコン１００は、カメラ部１０１、赤外線出力部１０２、赤外線入力部１０３、液晶表示部１０４、操作部１０５、演算部１０６、フレームメモリ１０７及び機器情報データベース１０８で構成される。
【００３１】
カメラ部１０１は、図示しないレンズ、ＣＣＤ（Charge Coupled Devices）等からなり、各機器の画像を撮像する。撮像した画像は、フレーム単位で上記フレームメモリ１０７に蓄積される。
【００３２】
赤外線出力部１０２は、各機器を遠隔制御するための遠隔制御情報として、各機器へ赤外線信号を出力する。また赤外線入力部１０３は、リモコン１００が、家庭内の他のリモコンから出力された赤外線信号を上記機器へ転送する際に、当該他のリモコンから上記赤外線信号を入力する。
【００３３】
液晶表示部１０４は、例えばＴＦＴ（Thin Film Transistor）等からなり、各機器を遠隔制御する際の操作部１０５の操作方法や、その遠隔制御対象の機器のメーカー名、型名及び種類を表示したり、上記カメラ部１０１により撮像されフレームメモリ１０７に蓄積された機器の画像を表示させたりする。
【００３４】
操作部１０５は、プッシュボタン、十字ボタン等の各種ボタン群から構成され、各機器を遠隔制御するための赤外線信号を上記赤外線出力部１０２から出力する際のインターフェースとなる。また、上記液晶表示部１０４に表示される各メニューから選択を行う際のインターフェースにもなる。当該操作部１０５の詳細については後述する。なお、当該操作部１０５は、ボタンの代わりに上記液晶表示部１０４をタッチパネルとして、当該タッチパネルを上の仮想的なボタンを押下することで操作を行うようにしてもよい。
【００３５】
演算部１０６は、上記カメラ部１０１により撮像されフレームメモリ１０７に蓄積された機器の画像から文字列を抽出して文字認識を行い、遠隔制御対象の機器を特定する際の演算処理等、各種演算を行ったり、各部と情報をやりとりしてリモコン１００全体の制御を行ったりする。上記遠隔制御対象の機器を特定する際には、機器情報データベース１０８が参照される。当該機器情報データベース１０８の詳細についても後述する。
【００３６】
図２は、上記リモコン１００の外観を示した図である。同図に示すように、リモコン１００の上端には、上述のカメラ部１０１、赤外線出力部１０２、赤外線入力部１０３が設けられ、リモコン１００の上部表面には上記液晶表示部１０４が設けられている。
【００３７】
また、液晶表示部１０４の下方には、上記操作部１０５として、画像ボタン２０１、中継ボタン２０２、十字ボタン２０３、数字ボタン２０４及びＵｐ／Ｄｏｗｎボタン２０５がそれぞれ設けられている。
【００３８】
上記カメラ部１０１は、当該カメラ部１０１が機器へ向けられた状態で、ユーザにより上記画像ボタン２０１が押下された場合に、機器の画像を撮像する。また中継ボタン２０２は、機器に対する赤外線信号を他のリモコンに中継させて当該機器に転送させる際に用いられる。当該中継をさせる際の動作の詳細については後述する。
【００３９】
十字ボタン２０３は、上下左右の４つのボタンで構成され、例えば液晶表示部１０４に表示された各種メニューから一つのメニューを選択する場合等に用いられる。また、当該十字ボタン２０３を、遠隔制御する機器毎に、各機器が有するそれぞれの機能を実行させるためのボタンとして設定することもできる。
【００４０】
数字ボタン２０４は例えば１から１２の１２個のボタンで構成され、各機器が有する機能によってそれぞれの機能に対応する赤外線信号のコードが一対一で割り当てられている。例えばリモコン１００がテレビのリモコンとして機能する場合には、数字ボタン２０４の各ボタンはテレビの各チャンネルの数字と対応し、またオーディオプレーヤのリモコンとして機能する場合には、各ボタンは再生対象のＣＤやＭＤ等の曲の番号に対応している。
【００４１】
またＵｐ／Ｄｏｗｎボタン２０５は、ＵｐボタンとＤｏｗｎボタンを一組として例えば４組設けられている。上記数字ボタン２０４と同様、当該Ｕｐ／Ｄｏｗｎボタン２０５にも各機器の機能が割り与えられており、例えばテレビのリモコンとして機能する場合には、左端のＵｐ／Ｄｏｗｎボタン２０５は音量の上げ下げを行い、その隣のＵｐ／Ｄｏｗｎボタン２０５はチャンネルを一つ前または後の番号のチャンネルに切り替える際に用いる。またオーディオプレーヤのリモコンとして機能する場合には、例えば音量の上げ下げや、一つ前の曲に戻ったり一つ後の曲に進んだりする場合に用いるようにしてもよい。
【００４２】
リモコン１００が各機器のリモコンとしてそれぞれ機能する場合には、上記機器情報データベース１０８に記憶してある上記各ボタンの設定を参照して、遠隔制御対象の機器が特定されたときにその設定を切り替えて使用する。
【００４３】
図３は、上記機器情報データベース１０８に記憶されたデータを示した図である。同図に示すように、機器情報データベース１０８には、各機器のメーカー名（Maker）、型名（Type）、テレビ、ＤＶＤレコーダ等の機器の種類（Class）及び操作部１０５の各ボタンの設定情報（Setting）の各データが記憶されている。
【００４４】
リモコン１００のカメラ部１０１から撮像した機器の画像情報から、上記演算部１０６が文字列を抽出して機器を特定する際には、当該抽出した文字列と一致するデータを当該機器情報データベース１０８中の各メーカー名及び型名から検索し、その一致を確認することにより機器の特定が行われる。
【００４５】
また、機器が特定された場合には、上記メーカー名及び型名とともに、その機器の種類が上記機器情報データベース１０８から抽出されて、液晶表示部１０４に表示される。
【００４６】
なお、遠隔制御対象の機器が追加された場合や、逆に機器を使用しなくなった場合などは、当該機器情報データベース１０８中のデータを追加または削除することにより、データを更新することができる。当該更新は、例えば液晶表示部にデータ更新のためのメニュー画面を表示させて、上記十字ボタン２０３、数字ボタン２０４等で適宜選択したり入力したりして行うようにすればよい。
【００４７】
更に、上記液晶表示部には、上記設定情報に従って、操作部１０５を操作する際の各ボタンの操作方法も表示される。
【００４８】
図４は、上記各ボタンの設定情報の詳細を示した図である。同図に示すように、設定情報には、各機器の種類及び型毎に、十字（Cross）ボタン２０３、数字（Number）ボタン２０４及びＵｐ／Ｄｏｗｎボタンの各ボタンによって出力される赤外線信号のコードが割り当てられ、遠隔制御対象の機器全てについて記憶されている。
【００４９】
同図においては、Ｓｅｔｔｉｎｇ１−１及びＳｅｔｔｉｎｇ１−２がテレビ、Ｓｅｔｔｉｎｇ３−３がオーディオプレーヤの設定情報を示している。遠隔制御対象の機器が特定された場合には、演算部１０６は、当該機器に対応する当該設定情報を呼び出して、各ボタンをその設定情報通りに機能するように設定する。
【００５０】
なお、当該設定情報も変更することが可能なため、例えばユーザの嗜好に合わせて、各ボタンをカスタマイズすることができる。当該カスタマイズも、上述したデータの更新と同様に、液晶表示部１０４にカスタマイズのためのメニュー画面を表示させて、当該画面上で適宜選択や入力等を行うことにより実行するようにすればよい。
【００５１】
上述したように、遠隔制御対象の機器が特定された場合には、当該機器に赤外線データを送信するための操作部１０５の操作方法が液晶表示部１０４に表示される。図５は、当該画面の例を示した図である。
【００５２】
同図は、遠隔制御対象の機器がテレビと特定された場合の画面の例を示している。同図に示すように、当該画面の最上部には遠隔制御対象の機器のメーカー名（Sony（登録商標））、型名（KV−XXXX）及び種類（TV）が表示される。その下方には、十字ボタン２０３、数字ボタン２０４及びＵｐ／Ｄｏｗｎボタン２０５のそれぞれの操作方法が表示される。本例では、十字ボタン２０３は上下のボタンがテレビのチャンネルを一つ上または下のチャンネルに切り替える場合、左右のボタンが音量の上げ下げする場合に用いられる。また数字ボタン２０４はその数字がテレビの各チャンネルに対応している。Ｕｐ／Ｄｏｗｎボタン２０５は左端（１）の一組のボタンが音量の上げ下げに用いられ、その他のＵｐ／Ｄｏｗｎボタン２０５は、この場合は使用されない。
【００５３】
当該画面上の情報は、遠隔制御対象の機器が特定された段階で、演算部１０６により上記機器情報データベース１０８から抽出され、表示される際の文字列の位置、サイズ、色等の態様を設定した後、液晶表示部１０４に送られる。図示しないが、当該文字列の位置、サイズ及び色等も、データとして上記機器情報データベース１０８中の設定情報に記憶されており、当該データを基に、機器毎に設定される。このデータもユーザが書き換えることによりユーザの嗜好に合わせて上記文字列等の表示形態をカスタマイズすることが可能である。
【００５４】
次に、以上のように構成されたリモコン１００において、機器が遠隔制御されるまでの動作について説明する。図６は、リモコン１００が機器を遠隔制御するまでの動作の流れを示したフロー図である。
【００５５】
同図に示すように、まずリモコン１００の演算部１０６は、操作部１０５の各ボタンをスキャンして、ユーザから操作部１０５のボタンが押下されたか否かを確認する（ステップ３０１）。どのボタンも押下されていないと判断した場合（ステップ３０１のＮＯ）には、押下されるまで繰り返し確認する。
【００５６】
そして、ユーザが何らかのボタンを押下したと判断した場合（ステップ３０１のＹＥＳ）には、当該押下されたボタンが上記画像ボタン２０１か、その他のボタンかを確認する（ステップ３０２）。画像ボタン２０１の押下であった場合（ステップ３０２のＹＥＳ）には、上記カメラ部１０１により機器を撮像その画像を取り込む（ステップ３０３）。取り込まれた画像はフレームメモリ１０７へ転送され、フレーム単位で蓄積される。画像ボタン２０１以外のボタンの押下であった場合（ステップ３０２のＮＯ）には、押下されたボタンに対応する送信コードを赤外線出力部１０２へ送信する。このとき遠隔制御対象の機器の特定が完了していない場合には、機器の特定を促すメッセージ（例えば、「機器が特定されていません。」等）を液晶表示部１０４に出力し、ボタンの押下操作を無視する。
【００５７】
なお、遠隔制御対象の機器を特定するためには上記画像がカラーである必要はないため、フレームメモリ１０７に蓄積する際には、当該画像データから色差信号は受信しなくてもよい。色差信号を間引くことにより、データ量が少なくなり、メモリサイズを小さくすることができるとともに、カメラ部１０１からフレームメモリ１０７への転送時間も短縮することができる。
【００５８】
次に、演算部１０６は、遠隔制御対象の機器を特定するため、取り込んだ画像から文字列を抽出する（ステップ３０４）。
【００５９】
具体的には、まず、画像中で高輝度の画素から構成される部分を検出して、そこから輝度分散を求めて輝度分散画像を作成する。一方で、画像中で高いエッジがある部分から当該エッジを検出し、得られた値をエッジの強度に基づき、一定の値を基準に２値化して２値化画像を作成する。ここでエッジとは、画像の濃度値、色、模様等の特徴が似ている部分を１つの領域とした場合の、当該領域と他の領域との境界をいい、エッジでは上記特徴が急激に変化している。
【００６０】
そして、上記輝度分散画像と２値化画像の論理積を求めることにより、文字列抽出候補画像を作成し、当該文字列抽出候補画像から大まかな文字列領域を背景から切り出す。なお、一定の時間が経過しても、演算部１０６が画像から文字列領域を抽出できないと判断した場合には、ユーザに対して再度画像を取り込むことを促すメッセージ（例えば、「画像から文字列を抽出できません。もう一度画像を取り込んで下さい。」等）を液晶表示部１０４に表示させる。
【００６１】
次に、上記文字列領域から文字列の認識を行う（ステップ３０５）。具体的には、上記文字列領域の画像を１文字分毎に分割し、分割した各画像をｍ行×ｎ行の画素数に分解して、各画像から更に輝度分散及びエッジを求め、文字部分を切り出す。そして、当該文字部分にＯＣＲ（Optical Character Reader）処理を施して文字列を特定する。
【００６２】
続いて、上記認識した文字列を基に、遠隔制御対象の機器の特定を行う（ステップ３０６）。具体的には、上記処理により連続した３文字を認識できた段階で、当該文字列と、機器情報データベース１０８中のメーカー名及び型名とを比較してその合致を確認する。メーカー名で合致した場合には、更に型名を特定するため上記機器情報データベース１０８中を検索する。型名が特定できた場合には機器の特定は完了となるが、型名が特定できない場合には、再度画像を取り込むことを促すメッセージ（例えば、「機器の特定ができません。もう一度画像を取り込んでください。」等）を液晶表示部１０４表示させる。
【００６３】
一方、最初に型名が特定できた場合には、上記機器情報データベース１０８中で型名に連動しているメーカー名で機器を特定できるため、その時点で機器特定処理は完了となる。メーカー名、型名共に特定できない場合には、上述と同様、再度画像を取り込むことを促すメッセージを液晶表示部１０４に表示させる。
【００６４】
そして、機器の特定が完了すると、演算部１０６は、上記図５で示したように、特定した機器のメーカー名、型名及びそれらに連動して上記機器情報データベース１０８に記憶してある機器の種類を液晶表示部１０４に表示させる。また、演算部１０６は、上記図４で示した機器情報データベース中の各ボタンの設定情報を参照して、操作部１０５のボタン群を、特定された機器のリモコン１００として、当該機器を遠隔制御するための赤外線コードが送信できるように設定し、起動させる（ステップ３０７）。
【００６５】
続いて、上記図５で示したように、当該操作部１０５の各ボタンの操作方法を示す画面を上記メーカー名等とともに液晶表示部１０４に表示させる（ステップ３０８）。このとき、例えば操作部１０５のボタン群の中で使われ得るボタンのバックライトは点灯し、使われ得ないボタンのバックライトは消灯する等して、ユーザに対してボタンの選択の範囲を限定するようにしてもよい。一度機器を特定すると、上記操作部１０５の設定等は、異なる機器を特定するまで有効となる。
【００６６】
なお、ユーザが操作を繰り返すことにより、当該操作方法の画面を参照しなくても操作できるほど操作に慣れた場合には、当該操作情報を表示させずに、例えば現在遠隔制御対象となっている機器の画像を表示させるようにしてもよい。
【００６７】
そして、演算部１０６は、画像の取り込みが無い場合または遠隔制御対象の機器の特定が完了した場合に、操作部１０５のボタン群が押下されているか否かを再度確認する（ステップ３０１）。画像ボタン以外のボタンの押下を検出した場合（ステップ３０２のＮＯ）には、押下されたボタンに対応する送信コードを赤外線出力部１０２に送る。そして赤外線出力部１０２は、受信したコードを基に赤外線等で変調して、遠隔制御対象の機器に対して遠隔制御用の赤外線信号を出力する（ステップ３０９）。これにより、当該機器が遠隔制御される。リモコン１００は、ユーザから操作部１０５の操作がある限り上記動作を繰り返し、また新たに画像ボタン２０１が押下される毎に、上記処理により遠隔制御対象の機器を切り替えて遠隔制御を行う。
【００６８】
以上の動作により、リモコン１００は、カメラ部１０１から撮像した機器の画像から文字列を認識し、当該認識した文字列から、上記機器情報データベース１０８を参照することにより機器を特定して、当該特定された機器に対して遠隔制御用の赤外線信号を出力することができるため、上記機器を撮像するだけで、上記機器に一切の機能を追加することなく複数の機器を容易に遠隔制御することができる。
【００６９】
ところで、一の機器を特定して当該機器を遠隔制御した後、別の機器を特定して遠隔制御し、再度上記一の機器を遠隔制御するような場合には、当該一の機器を一度撮像して特定しているのにも関わらず、再度撮像しなければならないことになり、当該作業はユーザにとって面倒な場合がある。例えば、一度テレビを撮像して遠隔制御対象の機器としてテレビを特定し、当該テレビを遠隔制御した後に、テレビを視聴しながらＤＶＤレコーダを撮像して当該ＤＶＤレコーダを特定して遠隔制御して、再びユーザがテレビの遠隔制御を所望する場合には、テレビを特定するために、当該テレビを再度撮像しなければならないことになる。
【００７０】
そこで本実施形態に係るリモコン１００は、一度特定した機器については再度撮像しなくとも、当該撮像した画像を利用することにより遠隔制御対象の機器を切り替えることができる。以下、当該切り替え処理について説明する。
【００７１】
上述したように、カメラ部１０１により機器を撮像した場合、撮像した画像はフレームメモリ１０７へ蓄積される。そして、当該画像から上述の文字認識処理により機器を特定した後は、当該画像と、特定した機器のメーカー名、型名及び種類とを対応付けて記憶しておき、既に特定済みの機器をユーザが再度遠隔制御する場合には、液晶表示部１０４に、機器の画像の一覧を表示させる。そして、ユーザが当該画面上で一の機器の画像を選択することにより、当該画像に対応する機器が遠隔制御対象として設定される。
【００７２】
図７は、液晶表示部１０４に表示される上記画面の例を示した図である。同図に示すように、液晶表示部１０４には、例えば４分割された画面上に、既に撮像して特定された機器の画像がそれぞれ表示される。同図においては、左上の画像がテレビ、右上がＤＶＤレコーダ、左下がオーディオプレーヤを示している。当該画面は、例えば操作部１０５に画像表示ボタンを用意しておき、当該ボタンを押下することにより表示させるようにすればよい。ユーザは当該画面上において、例えば十字ボタン２０３を押下して遠隔制御対象の機器を選択し、決定することにより当該機器が遠隔制御対象の機器として決定される。同図においては、太枠で囲まれたテレビが選択されている。
【００７３】
上記機器の画像は、撮像されて遠隔制御対象の機器が特定された画像のうち、例えば過去一時間以内等、過去の所定時間内に特定されたものをフレームメモリ１０７に蓄積しておいて液晶表示部１０４に表示させるようにしてもよいし、例えば過去４枚等、過去に特定された所定枚数の画像を表示させるようにしてもよい。
【００７４】
これにより、ユーザは、一度撮像して遠隔制御した機器であれば、再度の遠隔制御の際にその都度撮像しなくとも、上記画像の切り替え処理により容易に遠隔制御対象の機器を決定して遠隔制御することができる。
【００７５】
また、一度遠隔操作対象の機器を決定して当該機器を遠隔制御した後、ユーザが別の位置に移動した場合には、リモコン１００を所持していても、例えばリモコン１００と当該機器との間に障害物が存在したり、当該機器までの距離が長かったりして赤外線信号が当該機器まで到達せず、遠隔制御を行えないような場合が考えられる。そこで、本実施形態におけるリモコン１００は、当該リモコン１００からは直接赤外線信号を出力できないような場合でも、当該機器の近隣に存在する他のリモコンに赤外線信号を中継させることにより、当該機器を遠隔制御することができる。
【００７６】
図８は、他のリモコンに赤外線信号を中継させる場合の様子を示した図である。同図に示すように、遠隔制御対象のテレビとリモコン１００との間には障害物が存在しており、リモコン１００の赤外線信号はテレビに出力することができない。よってリモコン１００は、当該赤外線信号をテレビの近隣に存在する他のリモコン１００´（以下、中継リモコンと記述する）に出力し、当該中継リモコン１００′に赤外線信号を中継させてテレビに転送させる。また障害物が存在しなくとも、リモコン１００がテレビとは遠く離れた位置に存在して赤外線信号が届かないような場合も同様の処理が行われる。なお、当該中継リモコン１００′は、リモコン１００と同様の構成及び機能を有しており、当該中継リモコン１００′の説明においては、リモコン１００と同様の構成の部分については例えば赤外線出力部１０２′、赤外線入力部１０３′のように、「′」を付して説明するものとする。
【００７７】
この場合、リモコン１００においては、上記操作部１０５の中継ボタン２０２を押下しながら十字ボタン２０３や数字ボタン２０４等、その赤外線信号を送信するためのボタンを押下することにより、中継リモコン１００′に当該赤外線信号が送信される。なお、この場合は上記障害物等により機器を撮像することも困難であったり、撮像できても文字列を抽出することが困難であったりするため、ユーザは、上述したように、既に撮像した機器の画像を表示させてそこから選択することにより、遠隔制御対象の機器を決定した上で操作を行っている。
【００７８】
具体的には、中継リモコン１００′は、まず赤外線入力部１０３′によりリモコン１００からの赤外線信号を受信する。当該赤外線信号には、遠隔制御のためのコードのほか、遠隔制御対象の機器のメーカー名、型名、種類といった機器情報を示すコードが追加されている。中継リモコン１００′は、演算部１０６′により上記赤外線信号中に含まれるメーカー名、型名及び種類を抽出し、例えばテレビ等の遠隔制御対象の機器を特定する。そして当該特定された機器に対して赤外線出力部１０２′を介して赤外線信号が出力されることにより当該機器が遠隔制御される。中継リモコン１００′におけるこれら一連の処理は、自動的に行われる。
【００７９】
なお、中継リモコン１００′のリモコン１００に対する向きや、中継リモコン１００の機器に対する向きによって赤外線信号が送信できない場合を想定して、例えば放射状に広範囲に送信されるような赤外線の規格を当該リモコン１００及び中継リモコン１００′に採用するようにしてもよい。
【００８０】
これにより、例えばユーザがリモコン１００により遠隔制御を行った後、前回とは異なる位置に存在する場合であって、かつ当該位置から上記機器までの間に障害物が存在したり、当該機器との距離が遠く離れていたりして上記赤外線信号を送信することができない場合でも、上記中継リモコン１００′に当該赤外線信号を送信してそれを上記機器へ転送させることで、当該機器の遠隔制御を行うことが可能となる。
【００８１】
また、リモコン１００も上記中継リモコン１００′と同様に、他のリモコンから赤外線信号を受信して当該赤外線信号を中継し、中継リモコン１００′として機器に当該赤外線信号を転送することも勿論可能である。
【００８２】
なお、本発明は以上説明した実施の形態には限定されるものではなく、種々の変形が可能である。
【００８３】
例えば、本発明を、赤外線入出力機能を持った携帯電話に適用することも可能である。これにより、上述したリモコン１００の処理を実行させるために必要なプログラム及びデータを既存の携帯電話にインストールさせるだけで、別途リモコンを用意する必要なく、あらゆる機器を用意に遠隔操作することが可能となる。更に、インターネットや無線ＬＡＮ等のネットワーク接続が可能な携帯電話に本発明を適用すれば、例えばインターネット上のＷｅｂサイトから上記機器情報データベース１０８内に記憶するデータをダウンロードしたり、他人の携帯電話との間で当該データを自由にやり取りしたりすることが可能となり、ユーザの利便性がより向上する。
【００８４】
また、上述の実施形態においては家庭内の機器を遠隔制御する例を説明したが、本発明は家庭内に限られず、例えばオフィスや店舗等、リモコンによって遠隔制御することができる機器が存在する環境であればどのような環境においても適用が可能である。
【００８５】
更に、本発明を以下の実施形態において説明するようなネットワークシステムに適用することも可能である。
（第２の実施形態）
まず、本実施形態において前提となるネットワークシステムについて説明する。
【００８６】
図９は、この発明のネットワークシステムの一例を示し、ネットワーク９を介して複数の情報処理装置１、２、３、４が接続されたものである。情報処理装置１、２、３、４は、例えば各種のＡＶ機器やポータブル機器である。
【００８７】
情報処理装置１について示すと、情報処理装置１は、コンピュータ機能部として情報処理コントローラ１１を備える。情報処理コントローラ１１は、メインプロセッサ２１−１、サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−１及びＤＣ（ディスクコントローラ）２７−１を有する。
【００８８】
メインプロセッサ２１−１は、サブプロセッサ２３−１，２３−２，２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１（情報処理装置１）の全般的な管理とを行う。ただし、メインプロセッサ２１−１内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ２１−１はサブプロセッサとしても機能することになる。メインプロセッサ２１−１は、ＬＳ（ローカルストレージ）２２−１を有する。
【００８９】
サブプロセッサは、１つでもよいが、望ましくは複数とする。本例は、複数の場合である。各サブプロセッサ２３−１，２３−２，２３−３は、メインプロセッサ２１−１の制御によって並列的かつ独立にプログラムを実行し、データを処理する。更に、場合によってメインプロセッサ２１−１内のプログラムがサブプロセッサ２３−１，２３−２，２３−３内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ２１−１内で動作するプログラムである。各サブプロセッサ２３−１，２３−２，２３−３も、ＬＳ（ローカルストレージ）２４−１，２４−２，２４−３を有する。
【００９０】
ＤＭＡＣ２５−１は、情報処理コントローラ１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ２６−１に格納されているプログラム及びデータにアクセスするものであり、ＤＣ２７−１は、情報処理コントローラ１１に接続された外部記録部２８−１，２８−２にアクセスするものである。
【００９１】
外部記録部２８−１，２８−２は、固定ディスク（ハードディスク）でも、リムーバブルディスクでもよく、また、ＭＯ，ＣＤ±ＲＷ，ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど、各種のものを用いることができる。したがって、ＤＣ２７−１は、ディスクコントローラと称するが、外部記録部コントローラである。図９の例のように、情報処理コントローラ１１に対して外部記録部２８を複数接続できるように、情報処理コントローラ１１を構成することができる。
【００９２】
メインプロセッサ２１−１、各サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ２５−１及びＤＣ２７−１は、バス２９−１によって接続される。
【００９３】
情報処理コントローラ１１には、当該の情報処理コントローラ１１を備える情報処理装置１を、ネットワーク全体を通して一意的に識別できる識別子が、情報処理装置ＩＤとして割り当てられる。
【００９４】
メインプロセッサ２１−１及び各サブプロセッサ２３−１，２３−２，２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤ及びサブプロセッサＩＤとして割り当てられる。
【００９５】
情報処理コントローラ１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。他の情報処理装置２、３、４も、上記と同様に構成される。ここで、図９において親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
【００９６】
上述したように、１つの情報処理コントローラ内の各サブプロセッサ２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ２６内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ２３からメインメモリ２６へのアクセスは、以下のような手順によって行う。
【００９７】
図１０（Ａ）に示すように、メインメモリ２６は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤ及びＬＳアドレス（ローカルストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【００９８】
Ｆ／Ｅビット＝０は、サブプロセッサ２３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【００９９】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリロケーションがデータ書き込み不可であることを示す。
【０１００】
更に、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ２３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ２３のサブプロセッサＩＤ及びＬＳアドレスを書き込む。
【０１０１】
その後、データ書き込み側のサブプロセッサ２３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、予め読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ及びＬＳアドレスに読み出される。
【０１０２】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することによって、前段階の処理を行うサブプロセッサ２３が、処理済みのデータをメインメモリ２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ２３が前処理後のデータを読み出すことが可能となる。
【０１０３】
図１０（Ｂ）に示すように、各サブプロセッサ２３内のＬＳ２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【０１０４】
サブプロセッサ２３がメインメモリ２６内のデータを自身のＬＳ２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【０１０５】
図１０（Ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ２６には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ２６内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ２３に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
【０１０６】
更に、メインメモリ２６の排他的な制御を実現するために、図１０（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭ等の比較的高速のメモリに格納され、ＤＭＡＣ２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサキー及びキーマスクが含まれる。
【０１０７】
サブプロセッサ２３がメインメモリ２６を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ２３はＤＭＡＣ２５に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ２６のアドレスが含まれる。
【０１０８】
ＤＭＡＣ２５は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ２６内の図１０（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【０１０９】
図１０（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０または１になることができる。例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０または１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【０１１０】
以上のようにして、メインメモリ２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【０１１１】
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的な処理を可能にする。
【０１１２】
より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行われるときには、
第１のサブプロセッサのサブプロセッサキー：０１００、
第１のメインメモリ領域のアクセスキー    ：０１００、
第２のサブプロセッサのサブプロセッサキー：０１０１、
第２のメインメモリ領域のアクセスキー    ：０１０１
というような設定のままだと、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【０１１３】
図９のネットワークシステムでは、情報処理装置１、２、３、４間での分散処理のために、情報処理装置１、２、３、４間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置に送信することによって、処理を分散することができる。
【０１１４】
図１１に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム及びデータによって構成される。
【０１１５】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置の情報処理装置ＩＤ、更に、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ２１及び各サブプロセッサ２３の識別子（メインプロセッサＩＤ及びサブプロセッサＩＤ）が含まれる。
【０１１６】
送信先ＩＤ及び応答先ＩＤには、それぞれ、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
【０１１７】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ及び前回のソフトウェアセルＩＤから構成される。
【０１１８】
グローバルＩＤは、ネットワーク全体を通して当該ソフトウェアセルを一意的に識別できるものであり、送信元ＩＤ及びソフトウェアセルの作成または送信の日時（日付及び時刻）に基づいて作成される。
【０１１９】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数を設定する。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ２６内及びサブプロセッサ２３のＬＳ２４内のメモリ量を設定する。前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【０１２０】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラム及びデータから構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【０１２１】
更に、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
【０１２２】
ロードコマンドは、メインメモリ２６内の情報をサブプロセッサ２３内のＬＳ２４にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサＩＤ及びＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ２６内の所定領域のアドレスを示す。サブプロセッサＩＤ及びＬＳアドレスは、情報のロード先であるサブプロセッサ２３の識別子及びＬＳ２４のアドレスを示す。
【０１２３】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサＩＤ及びプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【０１２４】
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムＩＤによって、起動すべき機能プログラムを識別する。
【０１２５】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図１４に示す情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ２６にロードされ、メインプロセッサ２１により実行される。
【０１２６】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【０１２７】
図１２に、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
【０１２８】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３の数などに基づいて生成される。
【０１２９】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、オーディオプレーヤや後述のリモコン等である。また、情報処理装置種別ＩＤは、音声情報再生、遠隔制御等の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別ＩＤを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
【０１３０】
ＭＳ（マスター／スレーブ）ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【０１３１】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ２１で現在動作している全てのプログラムについての、メインプロセッサ２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【０１３２】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ２３を識別するための識別子である。
【０１３３】
サブプロセッサステータスは、各サブプロセッサ２３の状態を表すものであり、ｕｎｕｓｅｄ，ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【０１３４】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【０１３５】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサ２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ２３に対応する組数が設定される。
【０１３６】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ２６の総容量及び現在使用中の容量を表す。
【０１３７】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【０１３８】
外部記録部総容量及び外部記録部使用量は、それぞれ、外部記録部ＩＤによって識別される外部記録部２８の総容量及び現在使用中の容量を表す。
【０１３９】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部２８に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【０１４０】
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、以上のような構成のソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤ及び応答先ＩＤによって識別される。
【０１４１】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、そのソフトウェアセルをメインメモリ２６に格納する。さらに、送信先のメインプロセッサ２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。具体的には、送信先のメインプロセッサ２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤ及びＬＳアドレスで特定されるサブプロセッサ内のＬＳ２４の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
【０１４２】
次に、メインプロセッサ２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ２６に格納した後、実行を完了したことをメインプロセッサ２１に通知する。
【０１４３】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ２３に限定されるものではなく、メインプロセッサ２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【０１４４】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ２６にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、及びプログラムカウンタを含み、ＤＭＡコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ２１に当該メインメモリ用プログラムを実行させる。
【０１４５】
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【０１４６】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
【０１４７】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。更に、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
【０１４８】
ソフトウェアセルの使用による分散処理の結果、図１３の上段に示すようにネットワーク９に接続されている複数の情報処理装置１、２、３、４は、図１３の下段に示すように、仮想的な１台の情報処理装置７として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
【０１４９】
図１４に、個々の情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成を示す。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部２８に記録されているものである。各プログラムは、機能または特徴によって、制御プログラム、機能プログラム及びデバイスドライバにカテゴライズされる。
【０１５０】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャ及び能力交換プログラムを含む。
【０１５１】
機能プログラムは、メインプロセッサ２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
【０１５２】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【０１５３】
情報処理装置が物理的にネットワーク９に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ２６にロードする。
【０１５４】
ロード手順としては、メインプロセッサ２１は、まず、ＤＣ２７に読み出し命令を実行させることによって、外部記録部２８からプログラムを読み出し、次に、ＤＭＡＣ２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ２６に書き込む。
【０１５５】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【０１５６】
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図１３の下段に示すように、仮想的な１台の情報処理装置７として機能プログラムを実行することができる。
【０１５７】
また、前述したようにメインプロセッサ２１によって処理される機能プログラムは、サブプロセッサ２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ２１が外部記録部２８から機能プログラムを読み出し、メインメモリ２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ２６に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ２６に書き込むことになる。メインメモリ２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ２３内のＬＳ２４に書き込まれ、メインプロセッサ２１によって処理される機能プログラムと連携動作する。
【０１５８】
図１１のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【０１５９】
そしてサブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【０１６０】
メインプロセッサ２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図１２に示した情報処理装置ＩＤ以下の各情報である。
【０１６１】
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ２６にロードし、実行する。
【０１６２】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９に接続されていることを検知すると、同じネットワーク９に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク９に接続されているだけでなく、電気的・機能的にもネットワーク９に接続されていることを示す。また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【０１６３】
ＭＳマネージャが同じネットワーク９に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
【０１６４】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤ及び応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分とされる。
【０１６５】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドであり、かつデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）及び当該他装置のＭＳステータスが含まれる。
【０１６６】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置は、スレーブ装置となる。
【０１６７】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置は、マスター装置となる。
【０１６８】
すなわち、いずれの装置もネットワーク９に接続されていない状態、またはネットワーク９上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０１６９】
マスター装置及びスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されることにより、予め判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９に新たな情報処理装置が接続された場合など、ネットワーク９の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０１７０】
メインプロセッサ２１は、ＭＳマネージャから、ネットワーク９上の他装置の照会及び自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０１７１】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０１７２】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を格納するための領域を自装置のメインメモリ２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ２６には、自装置を含むネットワーク９に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
【０１７３】
一方、自装置がスレーブ装置である場合には、能力交換プログラムは、ネットワーク９に接続されている全ての他装置の装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤ及びＭＳステータスを、自装置のメインメモリ２６に記録する。すなわち、スレーブ装置のメインメモリ２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９に接続されているマスター装置及び各スレーブ装置についての情報処理装置ＩＤ及びＭＳステータスが、別の装置情報テーブルとして記録される。
【０１７４】
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ２６に記録する。
【０１７５】
なお、ＭＳマネージャ及び能力交換プログラムは、メインプロセッサ２１で実行されることに限らず、いずれかのサブプロセッサ２３で実行されてもよい。また、ＭＳマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１７６】
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ２６から削除する。
【０１７７】
更に、このようにネットワーク９から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０１７８】
具体的には、例えば、ネットワーク９から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置ＩＤを数値に置き換えて、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を取得して、メインメモリ２６に記録する。
【０１７９】
図１３の下段に示したようにネットワーク９に接続されている複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
【０１８０】
図１５に、４台の情報処理装置が仮想的な１台の情報処理装置７として動作する様子を示す。情報処理装置１がマスター装置、情報処理装置２、３、４がスレーブ装置Ａ、Ｂ、Ｃとして、動作しているものとする。
【０１８１】
ユーザがネットワーク９に接続されている情報処理装置を操作した場合、操作対象がマスター装置１であれば、その操作情報は、マスター装置１において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置１に送信される。すなわち、ユーザの操作対象がマスター装置１とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
【０１８２】
そして、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、上記の方法によって自装置の外部記録部２８−１、２８−２からメインメモリ２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１に機能プログラムを送信してもよい。
【０１８３】
機能プログラムには、その実行単位毎に必要となる、図１２に示した各情報として表される情報処理装置種別ＩＤ、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件等の、装置に関する要求スペックが規定されている。
【０１８４】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、予め能力交換プログラムによってメインメモリ２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図１２に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
【０１８５】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ネットワーク９上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０１８６】
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。更に、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０１８７】
実行要求するスレーブ装置が特定されたら、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１に含まれるメインメモリ２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０１８８】
更に、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ＤＭＡコマンドがロードコマンド及びキックコマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ（図１１参照）を設定して、上記実行要求されるスレーブ装置に対して送信する。
【０１８９】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上記の方法によって自装置の外部記録部２８からメインメモリ２６に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０１９０】
機能プログラムの実行を要求されたスレーブ装置の外部記録部２８に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０１９１】
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０１９２】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、終了通知をマスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０１９３】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１が当該機能プログラムを実行する。
【０１９４】
図１５の例で、ユーザがスレーブ装置Ａ（情報処理装置２）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３）が実行する場合について、図１６を用いてその分散処理の例を説明する。
【０１９５】
図１６の例では、ユーザがスレーブ装置Ａを操作することによって、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Ａは、ステップ８１で、その操作情報をマスター装置１に送信する。
【０１９６】
マスター装置１は、ステップ７２で、その操作情報を受信し、さらにステップ７３に進んで、自装置のメインメモリ２６−１に記録されている自装置及び他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Ｂが選択される場合である。
【０１９７】
次に、マスター装置１は、ステップ７４で、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する。
【０１９８】
スレーブ装置Ｂは、ステップ９５で、その実行要求を受信し、さらにステップ９６に進んで、実行要求された機能プログラムを実行する。
【０１９９】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０２００】
次に、以上説明したネットワークシステムを、本発明に適用した場合の実施の形態について説明する。図１７は、本実施形態における遠隔制御システムの構成を示した図である。同図においては、上述の図９における情報処理装置に上述のリモコン１００及び中継リモコン１００´を適用しており、図１、図９等と同様の構成となる部分については説明を簡略または省略し、異なる点を中心に説明する。
【０２０１】
同図に示すように、リモコン１００と中継リモコン１００´はネットワーク９を介して接続されており、例えば赤外線により通信を行うことが可能である。
【０２０２】
また、リモコン１００は上述の図１等における情報処理装置１として、中継リモコン１００´は情報処理装置２として機能し、それぞれ上述のメインプロセッサ、サブプロセッサを含む情報処理コントローラを有し、上記ＤＭＡコマンド等によりソフトウェアセルを実行したり、各種データをやり取りしたりすることが可能である。よって、両リモコンには、それぞれを識別するための上記情報処理装置ＩＤが付与されている。
【０２０３】
本システムにおいては、ユーザが上記リモコン１００により一度機器の遠隔制御を行った後、例えば位置を移動したこと等により、赤外線信号を当該機器に送信できないような位置に存在している場合に、上記中継リモコン１００´に当該赤外線信号を中継させて機器を制御するものとする。
【０２０４】
図１８は、本実施形態において、リモコン１００から中継リモコン１００´に対して送信されるソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元ＩＤはリモコン１００の情報処理装置ＩＤ、送信先ＩＤ及び応答先ＩＤは中継リモコン１００´の情報処理装置ＩＤである。またＤＭＡコマンドとしてリモートコマンドを送信し、データとして、上記機器に対する遠隔制御の内容を示す赤外線信号（例えばオーディオプレーヤに対しては再生、一時停止等）とともに、当該遠隔制御対象の機器のメーカー名、型名及び種類を送信する。更に、リモコン１００が当該ソフトウェアセル以前にも中継リモコン１００´に対してソフトウェアセルを送信している場合には、セルインターフェース中、前回のソフトウェアセルＩＤとして、前回送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０２０５】
次に、以上のように構成された遠隔制御システムにおいて、リモコン１００及び中継リモコン１００´により機器が遠隔制御されるまでの動作を説明する。図１９は当該動作の流れを示したシーケンス図である。なお、この場合リモコン１００が上記マスター装置として、中継リモコン１００´がスレーブ装置となる。
【０２０６】
同図に示すように、まず、リモコン１００は、ユーザから上記中継ボタンが押下された状態で上記操作部１０５の数字ボタン２０４やＵｐ／Ｄｏｗｎボタン２０５等、遠隔制御するために設定されたボタンが押下されると、当該制御内容の赤外線信号をソフトウェアセルにより中継リモコン１００´へ送信する（ステップ６１）。なお、このときユーザは、上述の第１実施形態で説明したように、機器を撮像することも困難な位置に存在しているため、既に撮像した機器の画像を選択することにより遠隔制御対象の機器を決定し、操作部１０５の操作を行っている。
【０２０７】
次に、中継リモコン１００´は、上記ソフトウェアセルを受信すると（ステップ６２）、当該ソフトウェアセルを解析し、リモートコマンドが含まれていることを確認する（ステップ６３）。リモートコマンドであることを確認すると、当該リモートコマンドに含まれているメーカー名、型名及び種類の各データを抽出して自己の機器情報データベース１０８´と比較することにより、遠隔制御対象の機器を特定する（ステップ６４）。そして、特定された機器に対して、上記リモートコマンドに含まれる制御内容を示した赤外線信号を、赤外線出力部１０２´を介して送信する（ステップ６５）。なお、当該中継リモコンの一連の処理は自動的に行われる。
【０２０８】
そして当該制御対象の機器が、赤外線信号を受信すると（ステップ６６）、当該信号に従って自身の制御を行うことにより、遠隔制御処理が終了する（ステップ６７）。
【０２０９】
以上の動作により、リモコン１００と中継リモコン１００´が協働して一台の仮想的なリモコンとして機能することにより、ユーザはリモコン１００を操作するだけで所望の機器を遠隔制御することができる。
【図面の簡単な説明】
【０２１０】
【図１】本発明の第１の実施形態におけるリモコン１００の構成を示したブロック図である。
【図２】リモコン１００の外観を示した図である。
【図３】機器情報データベース１０８に記憶されたデータを示した図である。
【図４】各ボタンの設定情報の詳細を示した図である。
【図５】遠隔制御対象の機器が特定された場合に、上記液晶表示部１０４に表示される画面の例を示した図である。
【図６】リモコン１００が機器を遠隔制御するまでの動作の流れを示したフロー図である。
【図７】既に撮像した機器の画像を基に、遠隔制御対象の機器を切り替える場合に、液晶表示部１０４に表示される画面の例を示した図である。
【図８】他のリモコンに赤外線信号を中継させる場合の様子を示した図である。
【図９】本発明の第２の実施形態において前提となるネットワークシステムの一例を示す図である。
【図１０】情報処理装置が備える情報処理コントローラの説明に供する図である。
【図１１】ソフトウェアセルの一例を示す図である。
【図１２】ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示す図である。
【図１３】複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図１４】情報処理コントローラのソフトウェア構成の一例を示す図である。
【図１５】４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図１６】図１５のシステムにおける分散処理の例を示す図である。
【図１７】本発明の第２の実施形態における遠隔制御システムの構成を示す図である。
【図１８】第２実施形態において、リモコン１００から中継リモコン１００´に対して送信されるソフトウェアセルの例を示した図である。
【図１９】第２実施形態において、リモコン１００及び中継リモコン１００´により機器が遠隔制御されるまでの動作の流れを示したシーケンス図である。
【符号の説明】
【０２１１】
１００…リモコン
１００´…中継リモコン
１０１…カメラ部
１０２…赤外線出力部
１０３…赤外線入力部
１０４…液晶表示部
１０５…操作部
１０６…演算部
１０７…フレームメモリ
１０８…機器情報データベース
２０１…画像ボタン
２０２…中継ボタン
２０３…十字ボタン
２０４…数字ボタン
【図１】
2005268941.tif 000003
【図２】
2005268941.tif 000004
【図３】
2005268941.tif 000005
【図４】
2005268941.tif 000006
【図５】
2005268941.tif 000007
【図６】
2005268941.tif 000008
【図７】
2005268941.tif 000009
【図８】
2005268941.tif 000010
【図９】
2005268941.tif 000011
【図１０】
2005268941.tif 000012
【図１１】
2005268941.tif 000013
【図１２】
2005268941.tif 000014
【図１３】
2005268941.tif 000015
【図１４】
2005268941.tif 000016
【図１５】
2005268941.tif 000017
【図１６】
2005268941.tif 000018
【図１７】
2005268941.tif 000019
【図１８】
2005268941.tif 000020
【図１９】
2005268941.tif 000021