(57)【要約】【課題】  複雑な登録作業や特殊な入力デバイスによる操作をしなくとも、単純な入力操作により複雑な機能を呼び出すことができ、かつユーザがその操作を直感的に記憶して実行することができる電子機器装置、サーバ装置、制御方法及び提供すること。【解決手段】  ユーザの操作による一連の入力信号のリズムパターンを、ユーザが指定した機能コマンドと対応付けて予め記憶し、再度ユーザが操作を行って入力信号が入力されたときに、その入力信号のリズムパターンと上記記憶したリズムパターンとを比較して、両者が同一または類似の場合に、当該リズムパターンに対応する上記機能コマンドを実行させることとした。【選択図】  図５
2005293408.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの操作による一連の入力信号を検出する第１の検出手段と、
前記検出された入力信号のリズムパターン情報を、ユーザが指定した制御命令情報と対応付けて記憶する記憶手段と、
前記リズムパターン情報の記憶後のユーザの操作による入力信号を検出する第２の検出手段と、
前記第２の入力手段により検出された入力信号のリズムパターン情報と前記記憶されたリズムパターン情報とを比較する比較手段と、
前記比較手段により、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を実行する実行手段と
を具備することを特徴とする電子機器装置。
【請求項２】
請求項１に記載の電子機器装置であって、
前記記憶手段は、前記リズムパターン情報として、前記第１の検出手段により検出された入力信号の数情報、各入力信号間の時間間隔情報及び入力信号の総時間情報を記憶することを特徴とする電子機器装置。
【請求項３】
請求項２に記載の電子機器装置であって、
前記判断手段は、前記記憶手段により記憶されたリズムパターン情報と、前記第２の検出手段により検出されたリズムパターン情報とをそれぞれのリズムパターン情報に含まれる総時間情報により正規化したした上で両者を比較することにより類似を判断することを特徴とする電子機器装置。
【請求項４】
請求項１に記載の電子機器装置であって、
前記記憶手段により記憶されたリズムパターン情報は、前記ユーザが指定した制御命令から連想されるイメージと関連することを特徴とする電子機器装置。
【請求項５】
請求項１に記載の電子機器装置であって、
前記ユーザの操作は、ボタンまたはキーボードの押下操作であることを特徴とする電子機器装置。
【請求項６】
ユーザの操作による一連の入力信号のリズムパターン情報を、ユーザが指定した制御命令情報及び制御対象の機器に関する機器情報と対応付けて記憶する記憶手段と、
前記リズムパターン情報の記憶後のユーザの操作による入力信号のリズムパターン情報を受信する受信手段と、
前記受信されたリズムパターン情報と前記記憶されたリズムパターン情報とを比較する比較手段と、
前記比較手段により、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報及び機器情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を前記制御対象の機器へ送信する送信手段と
を具備することを特徴とするサーバ装置。
【請求項７】
ユーザの操作を入力するステップと、
前記入力された操作のリズムパターン情報を、ユーザが指定した制御命令情報と対応付けて記憶するステップと、
前記リズムパターン情報の記憶後のユーザの操作を入力するステップと、
前記リズムパターン情報の記憶後に入力された操作のリズムパターン情報と前記記憶されたリズムパターン情報とを比較するステップと、
前記比較の結果、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を実行するステップと
を具備することを特徴とする制御方法。
【請求項８】
ユーザにより入力された操作のリズムパターン情報を、ユーザが指定した制御命令情報及び制御対象の機器に関する機器情報と対応付けて記憶するステップと、
前記リズムパターン情報の記憶後のユーザの操作のリズムパターン情報を受信するステップと、
前記受信されたリズムパターン情報と前記記憶されたリズムパターン情報とを比較するステップと、
前記比較の結果、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報及び機器情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を前記制御対象の機器へ送信するステップと
を具備することを特徴とする制御方法。
【請求項９】
電子機器装置を、
ユーザの操作を入力するステップと、
前記入力された操作のリズムパターン情報を、ユーザが指定した制御命令情報と対応付けて記憶するステップと、
前記リズムパターン情報の記憶後のユーザの操作を入力するステップと、
前記リズムパターン情報の記憶後に入力された操作のリズムパターン情報と前記記憶されたリズムパターン情報とを比較するステップと、
前記比較の結果、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を実行するステップ
として機能させるプログラム。
【請求項１０】
サーバ装置を、
ユーザにより入力された操作のリズムパターン情報を、ユーザが指定した制御命令情報及び制御対象の機器に関する機器情報と対応付けて記憶するステップと、
前記リズムパターン情報の記憶後のユーザの操作のリズムパターン情報を受信するステップと、
前記受信されたリズムパターン情報と前記記憶されたリズムパターン情報とを比較するステップと、
前記比較の結果、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報及び機器情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を前記制御対象の機器へ送信するステップ
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力信号のリズムパターンに応じて各種の制御命令を実行することが可能な電子機器装置、サーバ装置、制御方法及びそのプログラムに関する。
【背景技術】
【０００２】
電子機器等に様々な命令を実行させる際、当該電子機器の機能が多様化するほどその命令入力方法も複雑になる傾向がある。特に近年においては、ＰＣ（Personal Computer）等の情報処理装置や携帯電話等が多機能化し、ユーザは目的の機能を実行するために多くの複雑な操作手続を踏まなくてはならなかったり、特別な入力デバイス等を搭載しなければならなかったりするという問題がある。
【０００３】
そこで、複数の操作手続を単純化するために、従来から採られている手法として、短縮コマンドやショートカット機能といった技術が存在する。短縮コマンドの例としては、電話において、電話番号を入力して発信するという一連の操作を一つのボタンに登録して当該ボタンの押下により実行可能にするという機能があり、またショートカット機能の例としては、ＰＣの階層ファイルシステムの奥深い領域に格納されたデータに直接アクセスするためのショートカットアイコン等を提供するMicrosoft Windows（登録商標）等のショートカット機能がある。（例えば、非特許文献１参照）。
【非特許文献１】http://support.microsoft.com/default.aspx?scid=kb;ja;404019（出願日現在）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の電話の例においては、ユーザはどの短縮ボタンにどの電話番号の発信機能を登録したかを覚えておく必要があり、登録作業には登録ボタンなどを駆使して複雑な作業を予め行う必要がある。また、上述のショートカット機能の例においては、ショートカットアイコンのようなＧＵＩ（Graphical User Interface）が提供されて初めて実現できる機能であり、マウス等を駆使した登録作業もＰＣに不慣れなユーザにとっては難しく、ショートカット機能の概念を理解すること自体も困難である。
【０００５】
更に、操作する電子機器や入力デバイスの大きさが小さい場合には、様々な操作が不便になることが多い。よって、例えば画面上にリストアップされた多数の項目から一つを選択するような操作を行う場合には、テレビリモコン等においては上下左右のカーソルキーを搭載したり、携帯電話等においてはジョグダイヤルを搭載したりするなど、ユーザの操作を簡便にしようとすると、特殊な入力デバイスを追加する必要がある場合が多い。
【０００６】
以上のような事情に鑑み、本発明の目的は、複雑な登録作業や特殊な入力デバイスによる操作をしなくとも、単純な入力操作により複雑な機能を呼び出すことができ、かつユーザがその操作を直感的に記憶して実行することができる電子機器装置、サーバ装置、制御方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明の電子機器装置は、ユーザの操作による一連の入力信号を検出する第１の検出手段と、前記検出された入力信号のリズムパターン情報を、ユーザが指定した制御命令情報と対応付けて記憶する記憶手段と、前記リズムパターン情報の記憶後のユーザの操作による入力信号を検出する第２の検出手段と、前記第２の入力手段により検出された入力信号のリズムパターン情報と前記記憶されたリズムパターン情報とを比較する比較手段と、前記比較手段により、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を実行する実行手段とを具備することを特徴としている。
【０００８】
ここでユーザの操作とは、例えばプッシュボタン、キーボード、タッチパネル等の入力デバイスによる押下操作や、マウスを動かしたり、ジョグダイヤルを回したりする操作をいい、一連の入力信号とは、例えば各入力信号間の時間間隔が０．５秒から１秒以内の場合等、短い間隔の信号をいう。
【０００９】
また制御命令とは、例えば上記電子機器装置がＨＤＤ（Hard Disk Drive）レコーダやオーディオプレーヤの場合には、動画や音楽の再生、一時停止等を実行させる命令をいい、携帯電話の場合には、所望の相手に電話をかける動作を実行させる命令等をいう。
【００１０】
上記リズムとは、例えばユーザが行った一連のボタン押下操作における押下のタイミングを示した「トトントントトン」、「トントトントトン」等の調子をいう。また上記類似とは、例えばリズムパターンが同一でテンポが異なる場合や、テンポが同一で、リズムパターンも例えば１００分の１秒から１０分の１秒程度の差異しかない場合等、ほぼ同一に近い場合をいう。
【００１１】
この構成により、上記ユーザの操作による一連の入力信号のリズムパターン情報を、ユーザが指定した制御命令情報と対応付けて予め記憶し、再度ユーザが操作を行って入力信号が入力されたときに、その入力信号のリズムパターン情報と上記記憶したリズムパターン情報とを比較して、両者が同一または類似の場合に当該リズムパターン情報に対応する上記制御命令を実行させることとしたため、ユーザは自らの意思により上記リズムパターンと制御命令とを対応付けて直感的に記憶しておくことができ、当該リズムパターンの入力という単純な入力操作により上記制御命令を容易に実行させることができる。
【００１２】
上記電子機器装置において、前記記憶手段は、前記リズムパターン情報として、前記第１の検出手段により検出された入力信号の数情報、各入力信号間の時間間隔情報及び入力信号の総時間情報を記憶するようにしてもよい。これらの情報を上記リズムパターンのパラメータとすることで、様々なリズムパターンを一元的に記憶し、検出することができる。
【００１３】
ところで、上記リズムパターンの入力毎に同一のテンポで入力することはユーザにとって困難であるため、上記記憶したリズムパターンと、その後にユーザが入力するリズムパターンが同一または類似でも、入力毎にテンポが異なる場合が想定される。よって、それにより両者が非類似と判断されてしまうと、上記制御命令が実行できないことになる。
【００１４】
そこで、上記電子機器装置において、前記判断手段は、前記記憶手段により記憶されたリズムパターン情報と、前記第２の検出手段により検出されたリズムパターン情報とをそれぞれのリズムパターン情報に含まれる総時間情報により正規化したした上で両者を比較することにより類似を判断するようにしてもよい。
【００１５】
ここで正規化とは、上記各リズムパターン情報をそれぞれの総時間情報により除算して、各リズムパターン情報をそれぞれ一定の時間当たりにおける情報に変形して統一することをいう。
【００１６】
これにより、予め記憶したリズムパターンと、その後に入力されたリズムパターンを、それぞれの上記総時間により正規化することで、両者のテンポが異なっていても、リズムパターン自体が同一または類似であれば、両者は類似と判断されるため、ユーザが意図しない微妙なリズムパターンの違いにより制御命令が実行されないことを防止することができる。
【００１７】
前記電子機器装置において、前記記憶手段により記憶されたリズムパターン情報は、前記ユーザが指定した制御命令から連想されるイメージと関連していてもよい。これにより、ユーザは上記リズムパターンと上記制御命令を自己の意思で関連付けることができ、またその関連付けを直感的に覚えておくことができるため、当該対応関係を苦労して覚える必要も無く、容易に制御命令を実行させることができる。
【００１８】
上記電子機器装置において、前記ユーザの操作は、ボタンまたはキーボードの押下操作であってもよい。これにより、ユーザはリモートコントローラ等のボタンまたはキーボードの押下操作により上記リズムパターンを入力して上記制御命令と対応付けて記憶させ、再度当該リズムパターンを入力することにより上記制御命令を容易に実行させることができる。
【００１９】
本発明のサーバ装置は、ユーザの操作による一連の入力信号のリズムパターン情報を、ユーザが指定した制御命令情報及び制御対象の機器に関する機器情報と対応付けて記憶する記憶手段と、前記リズムパターン情報の記憶後のユーザの操作による入力信号のリズムパターン情報を受信する受信手段と、前記受信されたリズムパターン情報と前記記憶されたリズムパターン情報とを比較する比較手段と、前記比較手段により、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報及び機器情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を前記制御対象の機器へ送信する送信手段とを具備することを特徴としている。
【００２０】
上記機器とは、例えば各種ＡＶ（Audio and Visual）機器、テレビ、ＨＤＤレコーダ等の家電機器である。
【００２１】
この構成により、上記制御対象の機器に制御命令を実行させるためのリズムパターン情報を、当該制御命令情報及び上記機器情報と対応付けて記憶しておき、上記リズムパターンを受信した場合にそれに対応する制御命令を上記制御対象の機器に転送することができるため、例えばユーザが制御対象の機器の近隣に存在せず、直接当該機器を操作することができない場合でも、ユーザの代わりに当該機器に上記制御命令を転送することで、当該機器を制御することが可能となる。
【００２２】
また、例えば上記制御対象の機器の記憶容量が小さく、上記リズムパターン情報及び上記制御命令情報を記憶することができない場合に、当該機器の代わりにそれらの情報を記憶して、当該機器に対するリズムパターンの入力があった場合にそれに対応する制御命令を検索して当該機器に送信することにより、当該機器を制御させることも可能となる。
【００２３】
本発明の主たる観点に係る制御方法は、ユーザの操作を入力するステップと、前記入力された操作のリズムパターン情報を、ユーザが指定した制御命令情報と対応付けて記憶するステップと、前記リズムパターン情報の記憶後のユーザの操作を入力するステップと、前記リズムパターン情報の記憶後に入力された操作のリズムパターン情報と前記記憶されたリズムパターン情報とを比較するステップと、前記比較の結果、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を実行するステップとを具備することを特徴としている。
【００２４】
また、本発明の他の観点に係る制御方法は、ユーザにより入力された操作のリズムパターン情報を、ユーザが指定した制御命令情報及び制御対象の機器に関する機器情報と対応付けて記憶するステップと、前記リズムパターン情報の記憶後のユーザの操作のリズムパターン情報を受信するステップと、前記受信されたリズムパターン情報と前記記憶されたリズムパターン情報とを比較するステップと、前記比較の結果、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報及び機器情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を前記制御対象の機器へ送信するステップとを具備することを特徴としている。
【００２５】
本発明の主たる観点に係るプログラムは、電子機器装置を、ユーザの操作を入力するステップと、前記入力された操作のリズムパターン情報を、ユーザが指定した制御命令情報と対応付けて記憶するステップと、前記リズムパターン情報の記憶後のユーザの操作を入力するステップと、前記リズムパターン情報の記憶後に入力された操作のリズムパターン情報と前記記憶されたリズムパターン情報とを比較するステップと、前記比較の結果、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を実行するステップとして機能させることを特徴としている。
【００２６】
また、本発明の他の観点に係るプログラムは、サーバ装置を、ユーザにより入力された操作のリズムパターン情報を、ユーザが指定した制御命令情報及び制御対象の機器に関する機器情報と対応付けて記憶するステップと、前記リズムパターン情報の記憶後のユーザの操作のリズムパターン情報を受信するステップと、前記受信されたリズムパターン情報と前記記憶されたリズムパターン情報とを比較するステップと、前記比較の結果、上記両リズムパターン情報が同一または類似であると判断された場合に、前記記憶された制御命令情報及び機器情報を基に、前記記憶されたリズムパターン情報に対応する制御命令を前記制御対象の機器へ送信するステップとして機能させることを特徴としている。
【発明の効果】
【００２７】
本発明によれば、複雑な登録作業や特殊な入力デバイスによる操作をしなくとも、単純な入力操作により複雑な機能を呼び出すことができ、かつユーザがその操作を直感的に記憶して実行することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面に基づき説明する。
（第１の実施形態）
【００２９】
まず、本発明をＨＤＤレコーダに適用した場合の実施の形態について説明する。図１は、本実施形態におけるＨＤＤレコーダの構成を示したブロック図である。当該ＨＤＤレコーダ１００は、ＡＶ機器として実装することができ、テレビジョン受信機（以下、単にテレビと記述する）と一体で構成することができる。
【００３０】
同図に示すように、ＨＤＤレコーダ１００は、チューナ１０１、映像・音声符号化部１０２、ＨＤＤ１０３、映像・音声復号化部１０４、表示部１０５、音響部１０６、通信部１０７、赤外線受信部１０８、ＣＰＵ（Central Processing Unit）１０９、ＲＡＭ（Random Access Memory）１１０及びＲＯＭ（Read Only Memory）１１１から構成され、各部はバス１１２で接続されている。
【００３１】
チューナ１０１は、ＣＰＵ１０９の制御に基づいて、衛星放送波、地上波等の所定チャンネルの放送波の選局を行い、受信したテレビ番組等のビデオコンテンツの映像信号及び音声信号を映像・音声符号化部１０２へ出力する。チューナ１０１の構成は、送信されてくる放送波がアナログであるかデジタルであるかに応じて適宜変更または拡張することができる。
【００３２】
映像・音声符号化部１０２は、チューナ１０１から出力された映像信号及び音声信号のうち、映像信号を例えばＭＰＥＧ（Moving Picture Experts Group）−２圧縮符号化方式を用いて圧縮し、また音声信号を例えばドルビーデジタルＡＣ−３（Audio Code number 3）等の圧縮方式を用いて符号化し、両者を多重化して圧縮ストリームを生成する。符号化されたデータはＨＤＤ１０３へ記録される。
【００３３】
ＨＤＤ１０３は、上記符号化されたテレビ番組等の映像・音声データの他、各種プログラムやデータ等を蓄積することができる、ランダムアクセスが可能な外部記憶装置であり、例えば１００ＧＢ以上の大容量を備えている。映像・音声復号化部１０４は、上記映像・音声データを再生する場合に、上記ＨＤＤ１０３から当該データを入力し、映像信号と音声信号とにそれぞれ復号化した上で、映像信号を表示部１０５へ、また音声信号を音響部１０６へ出力する。
【００３４】
表示部１０５は例えばＴＦＴ（Thin Film Transistor）等のＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）、ＰＤＰ(Plasma Display Panel)、ＯＥＬ(Organic Electroluminescence)等からなり、上記映像信号を表示する。また上記音響部１０６は、図示しないアンプ及びスピーカ等からなり、上記音声信号を出力する。
【００３５】
通信部１０７は、インターネットに接続して例えばテレビ番組の予約の際に必要なＥＰＧ（Electronic Program Guide）データをダウンロードしたり、また他の機器と例えばＬＡＮ（Local Area Network）を介してデータの送受信を行ったりする。
【００３６】
赤外線受信部１０８は、リモートコントローラ（以下リモコンと記述する）１１３から送信される、各種制御命令またはリズムパターン情報としての赤外線信号を受信し、ＣＰＵ１０９へ出力する。
【００３７】
ＣＰＵ１０９は、ＨＤＤレコーダ１００全体の動作を制御するメインコントローラであり、ＯＳ（Operating System）により提供されるプラットフォーム上で各種のアプリケーションを実行する。例えば、上記リモコン１１３により送信された赤外線信号のリズムパターンに基づいて、上記ビデオコンテンツの録画や再生等、対応する制御命令を実行する。
【００３８】
ＲＡＭ１１０は、ＣＰＵ１０９の実行プログラムをロードしたり、実行プログラムの作業データを書き込んだりするために用いられる、書き込み可能な揮発性のメモリである。またＲＯＭ１１１は、ＨＤＤレコーダ１００の電源オン時に実行するプログラムや、ハードウェア制御用の制御コードの他、上記リズムパターン情報を処理するためのデータ等を格納する、読み出し専用の不揮発性のメモリである。
【００３９】
また、リモコン１１３は、図示しないプッシュボタン等のユーザの操作により、ＨＤＤレコーダ１００の所定の機能を実行させるための制御命令として、上記赤外線受信部１０８へ赤外線信号を送信する。また、上記各種制御命令に対応するリズムパターンを登録する際には、ユーザによる上記ボタンの一連の押下操作により、リズムパターンを構成する赤外線信号を上記赤外線受信部１０８へ送信する。
【００４０】
次に、本実施形態において、上記リズムパターン情報を処理するために必要なソフトウェア及びデータベースについて説明する。図２は、当該ソフトウェア及びデータベースの構成を示した図である。
【００４１】
同図に示すように、ＨＤＤレコーダ１００は、リズムパターン入力部２０１、機能コマンド登録ソフトウェア部、リズムパターン照合・検索部２０３及び登録機能コマンド呼出部２０４の各ソフトウェア及びリズムパターン‐コマンド対応情報データベース２０５（以下、単に対応情報データベース２０５と記述する）を有する。
【００４２】
リズムパターン入力部２０１は、ユーザから上記リモコン１１３の押下操作により送信され上記赤外線受信部１０８により受信された複数回の一連の赤外線信号を検出し、当該信号をリズムパターンとして記録する。具体的には、上記赤外線受信部１０８から上記一連の赤外線信号を受け取り、当該信号をデジタルデータに変換して、各信号の入力イベントが発生した時刻及びその入力回数、入力に要した総時間のデータを一つのリズムパターンとして例えば上記ＲＡＭ１１０に一時的に記録する。
【００４３】
機能コマンド登録部２０２は、上記リズムパターン入力部２０１により入力されたリズムパターンデータと、ユーザが指定した機能コマンドを対応付け、それらをリズムパターン‐コマンド対応情報データベース２０５に記録する。機能コマンドとは例えばＨＤＤレコーダ１００に録画してある所定のテレビ番組等のＭＰＥＧ２動画コンテンツファイルを再生する等、ＨＤＤレコーダ１００が有する具体的な機能を実行させるためのコマンドである。上記リズムパターンはユーザが任意に指定することができ、例えば上記機能コマンドにより再生される動画コンテンツのテーマ音楽のリズムを表したり、番組のタイトルや出演者名等をリズムで表したりするなど、上記機能コマンドから連想されるイメージをリズムパターンとして関連付けてもよい。
【００４４】
リズムパターン照合・検索部２０３は、ユーザがＨＤＤレコーダ１００のある機能を実行させようと上記リモコン１１３から入力したリズムパターンを上記リズムパターン入力部２０１から受け取り、当該リズムパターンと一致するリズムパターンを上記対応情報データベース２０５から検索する。そして、当該検索の結果、一致または類似するリズムパターンを検出すると、当該リズムパターンに対応する機能コマンドを呼び出すため、登録機能コマンド呼出部２０４に要請する。
【００４５】
登録機能コマンド呼出部２０４は、上記リズムパターン照合・検索部２０３からの要請を受けて、当該機能コマンドを呼び出して実際に実行させる。
【００４６】
上記各ソフトウェア及び上記対応情報データベース２０５は上記ＨＤＤ１０３に記憶され、必要に応じて上記ＲＡＭ１１０へ呼び出されて実行及び参照される。
【００４７】
次に、上記対応情報データベース２０５の詳細について述べる。図３は、当該対応情報データベース２０５に格納されたデータを示した図である。
【００４８】
同図に示すように、対応情報データベース２０５には、各リズムパターンを識別するためのリズムパターンＩＤ、リズムパターンを構成する各入力イベントの発生時刻、入力イベントの回数、入力に要した総入力時間及び当該リズムパターンに対応する機能コマンドの各データが格納されている。
【００４９】
入力イベント発生時刻は、最初に入力イベントが発生した時点を０として、その後の入力イベントが発生したタイミングを時刻（例えば秒単位）で表している。例えば、リズムパターンを「ト」または「トン」で表現するものとすると、同図においてリズムパターンＩＤが０００１のリズムパターンは、入力イベント回数は４回で、１回目と２回目の各イベント間及び３回目と４回目の各イベント間の時間間隔が０．２秒で等しく、２回目と３回目の入力イベント間の時間間隔のみ０．４秒と２倍になっているため、「トトントトン」というリズムパターンを示している。またリズムパターンＩＤが０００３のリズムパターンは、入力イベント回数が５回で、入力イベント発生時刻は１回目と２回目の間及び４回目と５回目の間の時間間隔が０．４秒で等しく、２回目と３回目の入力イベント間及び３回目と４回目の入力イベント間の時間間隔がその２倍の０．８秒であるため、「トトントントトン」というリズムパターンを示している。
【００５０】
また、各リズムパターンに対応する機能コマンドは、上述したように、例えばＨＤＤレコーダ１００に記憶してある動画コンテンツを再生させる際には当該コンテンツを連想させるようなリズムを登録するようにしてもよい。より具体的には、当該動画コンテンツが映画のコンテンツであって、当該映画のテーマ音楽が例えば「ダダッダッダダン」というリズムであれば、当該リズムを連想させる上記「トトントントトン」というリズムパターンを登録するようにしてもよい。また、例えばサッカーのワールドカップ（登録商標）を録画した動画コンテンツであれば、「ワールドカップ」という言葉のリズムを連想させる「トントトトントン」というリズムパターンを登録するようにしてもよい。これにより、ユーザはコマンド毎にリズムパターンを記憶しておかなくても、当該コマンドを直感的に覚えておくことができる。
【００５１】
次に、以上のように構成されたＨＤＤレコーダ１００において、上記リズムパターンの入力により所定の機能が実行されるまでの動作を説明する。当該動作は、上記機能コマンドの登録と、当該登録された機能コマンドの呼び出しの２つの段階に分かれる。機能コマンドの登録動作においては、上記ソフトウェアのうち、リズムパターン入力部２０１及び機能コマンド登録部２０２が用いられ、機能コマンドの呼び出し動作においてはリズムパターン入力部２０１、リズムパターン照合・検索部２０３及び登録機能コマンド呼出部２０４が用いられる。
【００５２】
まず、機能コマンドを登録するまでの動作について説明する。図４は、当該動作の流れを示したフロー図である。同図においては、機能コマンドとして、所定の動画コンテンツの再生を実行させるコマンドを登録するものとする。
【００５３】
同図に示すように、まず、ユーザがリモコン１１３を操作することにより、例えばＨＤＤレコーダ１００の表示部１０５またはリモコン１１３の図示しない液晶表示部に、「リズムコマンドの登録」といったメニュー画面を呼び出して、機能コマンドとリズムパターンの対応付けを登録するモードに入る（ステップ４０１）。続いて、記録済みの動画コンテンツの一覧画面を呼び出して、登録したい動画コンテンツを選択する（ステップ４０２）。
【００５４】
次に、例えば「リズムコマンド登録を開始」といったボタンを押下した後、ユーザがリモコン１１３を複数回押下操作して赤外線信号を送信すると、上記赤外線受信部１０８及びリズムパターン入力部２０１が当該赤外線信号を検出して、当該信号のリズムパターンの時間間隔を示すための上記入力イベント発生時刻、入力イベント回数及び総入力時間をデジタルデータとして入力する（ステップ４０３）。
【００５５】
そして、上記機能コマンド登録部２０２が、当該入力されたリズムパターンと、上記選択した機能コマンド、すなわち『動画コンテンツ「○○○」の再生』というコマンドとを関連付けて、上記対応情報データベース２０５に記録する（ステップ４０４）ことにより、コマンド登録動作は終了する。
【００５６】
なお、上記対応情報データベース２０５には、入力イベント発生時刻を記録することにより、リズムパターンを、時間間隔をパラメータとして記録しているが、例えばユーザがボタンを押している時間長を示す情報も更にパラメータとして用いた、モールス信号のようなリズムパターン入力も可能である。また、入力信号のパワーも入力可能な入力デバイスを用いれば、ユーザの押圧力のようなパワーを示す値もパラメータとして用いて、リズムパターンを入力することも可能である。
【００５７】
次に、上記登録した機能コマンドを呼び出して実行するまでの動作について説明する。図５は、当該動作の流れを示したフロー図である。
【００５８】
同図に示すように、まず、ユーザがリモコン１１３を操作することにより、例えばリモコン１１３の図示しない液晶表示部に、「リズムコマンドの入力」といったメニュー画面を呼び出して、上記登録したリズムパターンの入力により機能コマンドを実行するモードに入る（ステップ５０１）。続いて、ユーザは当該モードにおいて、同じくリモコン１１３のボタンの押下操作により、上記登録したリズムパターンを入力する。なお、上記メニュー画面以外にも、例えば「リズムコマンド入力専用ボタン」のようなボタンを上記リモコン１１３に設けて、当該ボタンの押下操作によりリズムコマンドの入力を行ってもよい。
【００５９】
次に、ＨＤＤレコーダ１００のリズムパターン入力部２０１は、上記赤外線受信部１０８を介して当該リズムパターンを入力し（ステップ５０２）、上記入力イベント発生時刻等、当該リズムパターンを示すデータを上記リズムパターン照合・検索部２０３へ送信する。
【００６０】
続いて、リズムパターン照合・検索部２０３は、リズムパターン入力部２０１から受信したリズムパターンと一致または類似するリズムパターンが上記対応情報データベース２０５に保存されているか否かを検索及び照合する（ステップ５０３）。この場合のリズムパターンの照合には、例えばＤＰ（Dynamic Programming）マッチング（動的計画法）といった時間伸縮に対応した各種パターンマッチング手法を用いることができる。ＤＰマッチングは、異なる要素数の物を比較する際、最小限の計算で比較するアルゴリズムで、音声認識、言語解析等に使用されている。
【００６１】
当該ＤＰマッチングを用いたリズムパターンの具体的な照合処理について、図６を参照しながら説明する。同図は、入力されたリズムパターンと、当該リズムパターンの比較対象となる上記対応情報データベース２０５中のデータとの関係を示した図である。
【００６２】
同図（ａ）は、上記ステップ５０２において入力されたリズムパターンと、上記対応情報データベース２０５に登録されている３つのリズムパターンの入力イベント発生時刻、入力イベント回数及び総入力時間を示している。上記リズムパターン照合・検索部２０３は、入力されたリズムパターンと同一と思われるリズムパターンを当該３つのパターンの中から検索することになる。まず入力イベント回数が異なるパターン０００１は候補から外され、０００２及び０００３の２つのパターンから検索する。
【００６３】
ところで、ユーザが毎回同じリズムパターンを入力する場合でも、その都度当該入力のテンポが速くなったり遅くなったりすることが考えられため、当該事情を考慮してパターンの照合を行う必要がある。そこで、リズムパターン照合・検索部２０３は、同図（ｂ）に示すように、各リズムパターンの入力イベント発生時刻をそれぞれの総入力時間で正規化した上で両者を比較する。
【００６４】
すなわち、各リズムパターンの入力イベント発生時刻をそれぞれの総入力時間で除算して、それぞれについて総入力時間１秒当たりのテンポに換算して比較すると、パターン０００２と０００３はタイミングが明らかに異なっており、上記入力されたリズムパターンは、パターン０００３と同一のパターンであることが分かる。なお、上記入力パターンの総入力時間は上記パターン０００３の総入力時間の２分の１であるから、同図の場合、ユーザは登録時よりも２倍早いテンポで入力を行ったことを示している。また、ユーザが入力するリズムパターンは、テンポが同一でも、毎回厳密に同一の時間間隔で入力されるわけではなく、微妙なずれも生じることから、総入力時間で正規化した場合でも、全く同一パターンだけではなく、ほぼ同一に近い類似のパターンを該当パターンとして認識するようにしてもよい。
【００６５】
このように、総入力時間で各リズムパターンを正規化して比較することで、ユーザの入力テンポが登録された入力パターンと異なる場合でも同一または類似のパターンとして認識することができ、ユーザが意図せずに非類似のリズムパターンと判断されることを防ぐことができる。
【００６６】
なお、リズムパターンの照合には、上記ＤＰマッチング以外にも、例えば隠れマルコフモデル（ＨＭＭ：Hidden Markov Model）等、様々な手法を用いることが可能である。一般に、ある事象の確率がその直前のN個の事象だけに依存するとき、これをN重マルコフ過程といい、隠れマルコフモデルは、「システムがパラメータ未知のマルコフ過程である」と仮定し、観測可能な情報からその未知のパラメータを推定する確率モデルの一つである。
【００６７】
以上のような照合・検索手法により、入力されたリズムパターンと同一または類似のリズムパターンを抽出すると、リズムパターン照合・検索部２０３は、上記対応情報データベース２０５を参照して、抽出したリズムパターンに対応付けられた機能コマンドを取得する（ステップ５０４）。例えば、ユーザにより「トトントントトン」というリズムパターンが正しく入力された場合には、当該リズムパターンに対応する『動画コンテンツ「○○○」の再生』というコマンドを取得する。
【００６８】
そして、リズムパターン照合・検索部２０３が、上記当該取得したコマンドを上記登録機能コマンド呼出部２０４へ送信して実行させることにより、ユーザが上記リズムパターンの入力により所望した上記動画コンテンツの再生という動作が実行される（ステップ５０５）。
【００６９】
以上のコマンド登録及びコマンド呼出の動作により、従来ならば例えばメニュー画面から項目を選択するといった何段階かの複雑な操作や複数の操作が必要であった機能を、ユーザはリズムパターンの入力という単純で分かりやすいインターフェースにより、容易に実行させることができる。
【００７０】
またユーザは、上記機能コマンドを、当該機能コマンドに対するユーザのイメージをリズムパターンとして結びつけて登録させておくことができるため、当該結びつきを直感的に記憶し、または思い出すことができ、わざわざ記憶したりその操作に慣れたりする等しなくとも、容易に操作を行うことができる。
【００７１】
更に、例えばプッシュボタンしか有さないリモコン１１３のような単純な入力デバイスであっても、複雑な機能を上記リズムパターンと関連付けて登録し、かつ当該機能を瞬時に呼び出し、実行することができる。
【００７２】
なお、本発明は以上説明した実施の形態には限定されるものではなく、種々の変形が可能である。
【００７３】
上述の実施形態においては、本発明をＨＤＤレコーダ１００に適用して、所望の動画コンテンツを再生するという操作を実行させる例について説明したが、それ以外にも、例えばオーディオプレーヤや携帯電話等、何らかの入力デバイスが存在する機器であればどのような機器にも適用することができる。
【００７４】
オーディオプレーヤに適用した場合には、所望の曲を再生させる場合に、曲を呼び出して再生モードにし、再生ボタンを押すというような処理を、例えば曲の代表的なフレーズやアーティスト名をリズムパターンとして登録しておけば、当該リズムパターンの入力により所望の曲を瞬時に再生させることが可能である。
【００７５】
携帯電話に適用した場合には、例えば電子メール機能付きの携帯電話においては、メール文書作成においてよく使う「いってらっしゃーい」のような文字列に対して、これを発音した時のリズムを「トットトントーン」のようなリズムパターンとして登録しておき、ボタン一つで瞬時に文章入力を行うようにしてもよい。これにより、携帯電話のような文字入力手段が限られている機器においても容易に文字入力を行うことができる。
【００７６】
また、相手に電話をかける場合に、所望の電話番号を呼び出してダイヤルするまでの操作について、例えばその相手から連想されるイメージをリズムパターンと関連付けて登録しておくことも可能である。これにより、従来の短縮コマンドのような機能に比べて、登録した短縮コマンドの番号をいちいち覚えておく必要がないため、多くの人についてリズムパターンを登録した場合でも、単純なリズム入力で各人に容易に電話をかけることが可能となる。
【００７７】
上述の実施形態においてはリモコン１１３を入力デバイスとして用いていたが、マウス、キーボード、ジョグダイヤル等、様々な入力デバイスを用いることができる。キーボードの場合には、例えばキーボードのいくつかのキーをピアノの鍵盤に見立てて、ある旋律をリズムパターンとして登録しておくことも可能である。更に、カメラ及び撮像した画像の画像認識機能を有する機器であれば、例えばユーザがカメラの前で所定の方向に手を振る等の動作を画像認識させて機能コマンドと対応付けて登録しておき、ユーザが再度手を振った場合に当該機能を実行させるような態様も可能である。
【００７８】
また、本発明においてはユーザの感情を上記リズムパターンと関連付けることもできるため、例えばＰＣのディスプレイにおいて、予め明るい気分を連想させるようなリズムパターンを明るい感じのデザインのデスクトップテーマに関連付けて登録しておき、後に当該リズムパターンを入力することによってテーマの変更を行ったりすることも可能である。
【００７９】
更に、本発明を以下の実施形態において説明するようなネットワークシステムに適用することも可能である。
（第２の実施形態）
【００８０】
まず、本実施形態において前提となるネットワークシステムについて説明する。
【００８１】
図７は、この発明のネットワークシステムの一例を示し、ネットワーク９を介して複数の情報処理装置１、２、３、４が接続されたものである。情報処理装置１、２、３、４は、例えば各種のＡＶ機器やポータブル機器、後述するＨＤＤレコーダ、ＰＣ等である。
【００８２】
情報処理装置１について示すと、情報処理装置１は、コンピュータ機能部として情報処理コントローラ１１を備える。情報処理コントローラ１１は、メインプロセッサ２１−１、サブプロセッサ２３−１、２３−２、２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−１及びＤＣ（ディスクコントローラ）２７−１を有する。
【００８３】
メインプロセッサ２１−１は、サブプロセッサ２３−１、２３−２、２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１（情報処理装置１）の全般的な管理とを行う。ただし、メインプロセッサ２１−１内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ２１−１はサブプロセッサとしても機能することになる。メインプロセッサ２１−１は、ＬＳ（ローカルストレージ）２２−１を有する。
【００８４】
サブプロセッサは、１つでもよいが、望ましくは複数とする。本例は、複数の場合である。各サブプロセッサ２３−１、２３−２、２３−３は、メインプロセッサ２１−１の制御によって並列的かつ独立にプログラムを実行し、データを処理する。更に、場合によってメインプロセッサ２１−１内のプログラムがサブプロセッサ２３−１、２３−２、２３−３内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ２１−１内で動作するプログラムである。各サブプロセッサ２３−１、２３−２、２３−３も、ＬＳ（ローカルストレージ）２４−１、２４−２、２４−３を有する。
【００８５】
ＤＭＡＣ２５−１は、情報処理コントローラ１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ２６−１に格納されているプログラム及びデータにアクセスするものであり、ＤＣ２７−１は、情報処理コントローラ１１に接続された外部記録部２８−１、２８−２にアクセスするものである。
【００８６】
外部記録部２８−１、２８−２は、固定ディスク（ハードディスク）でも、リムーバブルディスクでもよく、また、ＭＯ、ＣＤ±ＲＷ、ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど、各種のものを用いることができる。したがって、ＤＣ２７−１は、ディスクコントローラと称するが、外部記録部コントローラである。図７の例のように、情報処理コントローラ１１に対して外部記録部２８を複数接続できるように、情報処理コントローラ１１を構成することができる。
【００８７】
メインプロセッサ２１−１、各サブプロセッサ２３−１、２３−２、２３−３、ＤＭＡＣ２５−１及びＤＣ２７−１は、バス２９−１によって接続される。
【００８８】
情報処理コントローラ１１には、当該の情報処理コントローラ１１を備える情報処理装置１を、ネットワーク全体を通して一意的に識別できる識別子が、情報処理装置ＩＤとして割り当てられる。
【００８９】
メインプロセッサ２１−１及び各サブプロセッサ２３−１、２３−２、２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤ及びサブプロセッサＩＤとして割り当てられる。
【００９０】
情報処理コントローラ１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。他の情報処理装置２、３、４も、上記と同様に構成される。ここで、図７において親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
【００９１】
上述したように、１つの情報処理コントローラ内の各サブプロセッサ２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ２６内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ２３からメインメモリ２６へのアクセスは、以下のような手順によって行う。
【００９２】
図８（Ａ）に示すように、メインメモリ２６は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤ及びＬＳアドレス（ローカルストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【００９３】
Ｆ／Ｅビット＝０は、サブプロセッサ２３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【００９４】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリロケーションがデータ書き込み不可であることを示す。
【００９５】
更に、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ２３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ２３のサブプロセッサＩＤ及びＬＳアドレスを書き込む。
【００９６】
その後、データ書き込み側のサブプロセッサ２３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、予め読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ及びＬＳアドレスに読み出される。
【００９７】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することによって、前段階の処理を行うサブプロセッサ２３が、処理済みのデータをメインメモリ２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ２３が前処理後のデータを読み出すことが可能となる。
【００９８】
図８（Ｂ）に示すように、各サブプロセッサ２３内のＬＳ２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【００９９】
サブプロセッサ２３がメインメモリ２６内のデータを自身のＬＳ２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【０１００】
図８（Ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ２６には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ２６内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ２３に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
【０１０１】
更に、メインメモリ２６の排他的な制御を実現するために、図８（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭ等の比較的高速のメモリに格納され、ＤＭＡＣ２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサキー及びキーマスクが含まれる。
【０１０２】
サブプロセッサ２３がメインメモリ２６を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ２３はＤＭＡＣ２５に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ２６のアドレスが含まれる。
【０１０３】
ＤＭＡＣ２５は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ２６内の図８（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【０１０４】
図８（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０または１になることができる。例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０または１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【０１０５】
以上のようにして、メインメモリ２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【０１０６】
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的な処理を可能にする。
【０１０７】
より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行われるときには、
【０１０８】
第１のサブプロセッサのサブプロセッサキー：０１００、
【０１０９】
第１のメインメモリ領域のアクセスキー    ：０１００、
【０１１０】
第２のサブプロセッサのサブプロセッサキー：０１０１、
【０１１１】
第２のメインメモリ領域のアクセスキー    ：０１０１
というような設定のままだと、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【０１１２】
図７のネットワークシステムでは、情報処理装置１、２、３、４間での分散処理のために、情報処理装置１、２、３、４間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置に送信することによって、処理を分散することができる。
【０１１３】
図９に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム及びデータによって構成される。
【０１１４】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置の情報処理装置ＩＤ、更に、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ２１及び各サブプロセッサ２３の識別子（メインプロセッサＩＤ及びサブプロセッサＩＤ）が含まれる。
【０１１５】
送信先ＩＤ及び応答先ＩＤには、それぞれ、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
【０１１６】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ及び前回のソフトウェアセルＩＤから構成される。
【０１１７】
グローバルＩＤは、ネットワーク全体を通して当該ソフトウェアセルを一意的に識別できるものであり、送信元ＩＤ及びソフトウェアセルの作成または送信の日時（日付及び時刻）に基づいて作成される。
【０１１８】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数を設定する。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ２６内及びサブプロセッサ２３のＬＳ２４内のメモリ量を設定する。前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【０１１９】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラム及びデータから構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【０１２０】
更に、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
【０１２１】
ロードコマンドは、メインメモリ２６内の情報をサブプロセッサ２３内のＬＳ２４にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサＩＤ及びＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ２６内の所定領域のアドレスを示す。サブプロセッサＩＤ及びＬＳアドレスは、情報のロード先であるサブプロセッサ２３の識別子及びＬＳ２４のアドレスを示す。
【０１２２】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサＩＤ及びプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【０１２３】
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムＩＤによって、起動すべき機能プログラムを識別する。
【０１２４】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図１２に示す情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ２６にロードされ、メインプロセッサ２１により実行される。
【０１２５】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【０１２６】
図１０に、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
【０１２７】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３の数などに基づいて生成される。
【０１２８】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、オーディオプレーヤや後述のＨＤＤレコーダ等である。また、情報処理装置種別ＩＤは、音声情報再生、映像記録再生等の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別ＩＤを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
【０１２９】
ＭＳ（マスター／スレーブ）ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【０１３０】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ２１で現在動作している全てのプログラムについての、メインプロセッサ２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【０１３１】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ２３を識別するための識別子である。
【０１３２】
サブプロセッサステータスは、各サブプロセッサ２３の状態を表すものであり、ｕｎｕｓｅｄ、ｒｅｓｅｒｖｅｄ、ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【０１３３】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【０１３４】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサ２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ２３に対応する組数が設定される。
【０１３５】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ２６の総容量及び現在使用中の容量を表す。
【０１３６】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ＨＤＤ、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【０１３７】
外部記録部総容量及び外部記録部使用量は、それぞれ、外部記録部ＩＤによって識別される外部記録部２８の総容量及び現在使用中の容量を表す。
【０１３８】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部２８に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【０１３９】
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、以上のような構成のソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤ及び応答先ＩＤによって識別される。
【０１４０】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、そのソフトウェアセルをメインメモリ２６に格納する。さらに、送信先のメインプロセッサ２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。具体的には、送信先のメインプロセッサ２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤ及びＬＳアドレスで特定されるサブプロセッサ内のＬＳ２４の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
【０１４１】
次に、メインプロセッサ２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ２６に格納した後、実行を完了したことをメインプロセッサ２１に通知する。
【０１４２】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ２３に限定されるものではなく、メインプロセッサ２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【０１４３】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ２６にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、及びプログラムカウンタを含み、ＤＭＡコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ２１に当該メインメモリ用プログラムを実行させる。
【０１４４】
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【０１４５】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
【０１４６】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。更に、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
【０１４７】
ソフトウェアセルの使用による分散処理の結果、図１１の上段に示すようにネットワーク９に接続されている複数の情報処理装置１、２、３、４は、図１１の下段に示すように、仮想的な１台の情報処理装置７として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
【０１４８】
図１２に、個々の情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成を示す。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部２８に記録されているものである。各プログラムは、機能または特徴によって、制御プログラム、機能プログラム及びデバイスドライバにカテゴライズされる。
【０１４９】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャ及び能力交換プログラムを含む。
【０１５０】
機能プログラムは、メインプロセッサ２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
【０１５１】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【０１５２】
情報処理装置が物理的にネットワーク９に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ２６にロードする。
【０１５３】
ロード手順としては、メインプロセッサ２１は、まず、ＤＣ２７に読み出し命令を実行させることによって、外部記録部２８からプログラムを読み出し、次に、ＤＭＡＣ２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ２６に書き込む。
【０１５４】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【０１５５】
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図１１の下段に示すように、仮想的な１台の情報処理装置７として機能プログラムを実行することができる。
【０１５６】
また、前述したようにメインプロセッサ２１によって処理される機能プログラムは、サブプロセッサ２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ２１が外部記録部２８から機能プログラムを読み出し、メインメモリ２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ２６に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ２６に書き込むことになる。メインメモリ２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ２３内のＬＳ２４に書き込まれ、メインプロセッサ２１によって処理される機能プログラムと連携動作する。
【０１５７】
図９のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【０１５８】
そしてサブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【０１５９】
メインプロセッサ２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図１０に示した情報処理装置ＩＤ以下の各情報である。
【０１６０】
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ２６にロードし、実行する。
【０１６１】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９に接続されていることを検知すると、同じネットワーク９に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク９に接続されているだけでなく、電気的・機能的にもネットワーク９に接続されていることを示す。また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【０１６２】
ＭＳマネージャが同じネットワーク９に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
【０１６３】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤ及び応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分とされる。
【０１６４】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドであり、かつデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）及び当該他装置のＭＳステータスが含まれる。
【０１６５】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置は、スレーブ装置となる。
【０１６６】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置は、マスター装置となる。
【０１６７】
すなわち、いずれの装置もネットワーク９に接続されていない状態、またはネットワーク９上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０１６８】
マスター装置及びスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されることにより、予め判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９に新たな情報処理装置が接続された場合など、ネットワーク９の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０１６９】
メインプロセッサ２１は、ＭＳマネージャから、ネットワーク９上の他装置の照会及び自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０１７０】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０１７１】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を格納するための領域を自装置のメインメモリ２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ２６には、自装置を含むネットワーク９に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
【０１７２】
一方、自装置がスレーブ装置である場合には、能力交換プログラムは、ネットワーク９に接続されている全ての他装置の装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤ及びＭＳステータスを、自装置のメインメモリ２６に記録する。すなわち、スレーブ装置のメインメモリ２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９に接続されているマスター装置及び各スレーブ装置についての情報処理装置ＩＤ及びＭＳステータスが、別の装置情報テーブルとして記録される。
【０１７３】
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ２６に記録する。
【０１７４】
なお、ＭＳマネージャ及び能力交換プログラムは、メインプロセッサ２１で実行されることに限らず、いずれかのサブプロセッサ２３で実行されてもよい。また、ＭＳマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１７５】
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ２６から削除する。
【０１７６】
更に、このようにネットワーク９から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０１７７】
具体的には、例えば、ネットワーク９から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置ＩＤを数値に置き換えて、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を取得して、メインメモリ２６に記録する。
【０１７８】
図１１の下段に示したようにネットワーク９に接続されている複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
【０１７９】
図１３に、４台の情報処理装置が仮想的な１台の情報処理装置７として動作する様子を示す。情報処理装置１がマスター装置、情報処理装置２、３、４がスレーブ装置Ａ、Ｂ、Ｃとして、動作しているものとする。
【０１８０】
ユーザがネットワーク９に接続されている情報処理装置を操作した場合、操作対象がマスター装置１であれば、その操作情報は、マスター装置１において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置１に送信される。すなわち、ユーザの操作対象がマスター装置１とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
【０１８１】
そして、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、上記の方法によって自装置の外部記録部２８−１、２８−２からメインメモリ２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１に機能プログラムを送信してもよい。
【０１８２】
機能プログラムには、その実行単位毎に必要となる、図１０に示した各情報として表される情報処理装置種別ＩＤ、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件等の、装置に関する要求スペックが規定されている。
【０１８３】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、予め能力交換プログラムによってメインメモリ２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図１０に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
【０１８４】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ネットワーク９上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０１８５】
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。更に、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０１８６】
実行要求するスレーブ装置が特定されたら、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１に含まれるメインメモリ２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０１８７】
更に、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ＤＭＡコマンドがロードコマンド及びキックコマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ（図９参照）を設定して、上記実行要求されるスレーブ装置に対して送信する。
【０１８８】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上記の方法によって自装置の外部記録部２８からメインメモリ２６に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０１８９】
機能プログラムの実行を要求されたスレーブ装置の外部記録部２８に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０１９０】
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０１９１】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、終了通知をマスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０１９２】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１が当該機能プログラムを実行する。
【０１９３】
図１３の例で、ユーザがスレーブ装置Ａ（情報処理装置２）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３）が実行する場合について、図１４を用いてその分散処理の例を説明する。
【０１９４】
図１４の例では、ユーザがスレーブ装置Ａを操作することによって、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Ａは、ステップ８１で、その操作情報をマスター装置１に送信する。
【０１９５】
マスター装置１は、ステップ７２で、その操作情報を受信し、さらにステップ７３に進んで、自装置のメインメモリ２６−１に記録されている自装置及び他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Ｂが選択される場合である。
【０１９６】
次に、マスター装置１は、ステップ７４で、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する。
【０１９７】
スレーブ装置Ｂは、ステップ９５で、その実行要求を受信し、さらにステップ９６に進んで、実行要求された機能プログラムを実行する。
【０１９８】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０１９９】
次に、以上説明したネットワークシステムを、家庭内制御システムに適用した場合の実施の形態について説明する。図１５は、本実施形態におけるシステムの構成を示した図である。同図においては、上述の図７における情報処理装置１に上述のＨＤＤレコーダ１００を適用している。同図において、図１、図７等と同様の構成となる部分については同一の符号を付して説明を簡略または省略し、異なる点を中心に説明する。
【０２００】
図示しないが、ＨＤＤレコーダ１００は、上記図２で説明したような各種ソフトウェア２０１〜２０４及び対応情報データベース２０５を有し、機能コマンドをリズムパターンと対応付けて予め登録して、リズムパターンの入力により対応する機能コマンドを実行することが可能である。また、上記図７における情報処理装置１のメインメモリ２６−１に上記第１実施形態の図１におけるＲＡＭ１１０を、外部記憶部２６−１及び２６−２に図１におけるＲＯＭ１１１及びＨＤＤ１０３を適用している。
【０２０１】
ＨＤＤレコーダ１００は上述の図７等における情報処理装置１として、デスクトップＰＣ３１は情報処理装置２として、ノートＰＣ３２は情報処理装置３として機能し、それぞれ上述のメインプロセッサ、サブプロセッサを含む情報処理コントローラを有し、上記ＤＭＡコマンド等によりソフトウェアセルを実行したり、各種データをやり取りしたりすることが可能である。よって、各機器には、それぞれを識別するための上記情報処理装置ＩＤが付与されている。
【０２０２】
図１５に示すように、本実施形態においては、ＨＤＤレコーダと１００とデスクトップＰＣ３１及びノートＰＣ３２がＬＡＮ（Local Area Network）３０を介して接続されており、互いに通信を行うことが可能である。そして、ＨＤＤレコーダ１００は、上述した自身の機能を実行することができるほか、ホームサーバとして上記対応情報データベース２０５に自身のデータともにデスクトップＰＣ３１及びノートＰＣ３２の各対応情報データベースを集約して有しており、ＨＤＤレコーダ１００上で照合されたリズムパターンが他の機器の機能に対応するものであっても、その情報をＬＡＮ３０を介して対象機器に受け渡して、当該機器においてユーザが所望の機能を実行させることが可能である。なお、この場合、ＨＤＤレコーダ１００は上記マスター装置として、デスクトップＰＣ３１及びノートＰＣ３２は上記スレーブ装置として機能する。
【０２０３】
より具体的には、ＨＤＤレコーダ１００は、上記デスクトップＰＣ３１またはノートＰＣ３２に入力されたリズムパターンを受信し、上記対応情報データベース２０５を参照して当該リズムパターンを照合して対応する機能コマンドを検索し、検索した機能コマンドを上記ノートＰＣ３２またはデスクトップＰＣ３１に送信して実行させるようなことが可能である。なお、図示しないが、上記対応情報データベース２０５には、上記第１の実施形態において説明したデータの他、ＨＤＤレコーダ１００、デスクトップＰＣ３１及びノートＰＣ３２の各機器を識別する上記情報処理装置ＩＤが上記リズムパターン情報と関連付けられており、どの機器の機能コマンドを実行させるためのリズムパターンであるかが認識できるようになっている。
【０２０４】
例として、ユーザがノートＰＣ３２においてＭＰ３（MPEG-1 Audio Layer-3）ファイルを再生させたい場合に、デスクトップＰＣ３１の図示しないマウスまたはキーボードの入力により上記ＭＰ３ファイルの再生という機能コマンドと予め対応付けて登録しておいたリズムパターンの入力を行い、当該入力を上記ＨＤＤレコーダ１００が認識して、それに対応する機能コマンドをノートＰＣ３２へ送信して再生させるという場合について説明する。
【０２０５】
この場合は、例えばユーザがＭＰ３プレイヤ及びデコーダを有さないデスクトップＰＣ３１上で作業を行っている最中に、ユーザとは離れた位置に存在するノートＰＣ３２上でＭＰ３ファイルを再生させたいような場合を想定している。
【０２０６】
図１６は、この場合にまずデスクトップＰＣ３１がＨＤＤレコーダ１００に対して送信するソフトウェアセルの例を示した図である。
【０２０７】
同図に示すように、このソフトウェアセルにおいて、送信元ＩＤはデスクトップＰＣ３１の情報処理装置ＩＤ、送信先ＩＤはＨＤＤレコーダ１００の情報処理装置ＩＤ、応答先ＩＤはノートＰＣ３２の情報処理装置ＩＤである。
【０２０８】
またＤＭＡコマンドとしてコマンド検索・実行要求コマンドを送信し、データとして、デスクトップＰＣ３１においてユーザが上記マウスまたはキーボードにより入力したリズムパターンを示す上記入力イベント発生時刻、入力イベント回数及び総入力時間のデジタルデータを送信する。更に、デスクトップＰＣ３１が当該ソフトウェアセル以前にもＨＤＤレコーダ１００に対してソフトウェアセルを送信している場合には、セルインターフェース中、前回のソフトウェアセルＩＤとして、前回送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０２０９】
図１７は、上記コマンド検索・実行要求コマンドを含むソフトウェアセルを受信したＨＤＤレコーダ１００が、上記ノートＰＣ３２に対して送信するソフトウェアセルの例を示した図である。
【０２１０】
同図に示すように、このソフトウェアセルにおいて、送信元ＩＤはＨＤＤレコーダ１００の情報処理装置ＩＤ、送信先ＩＤ及び応答先ＩＤはノートＰＣ３２の情報処理装置ＩＤである。
【０２１１】
またＤＭＡコマンドとして、ＨＤＤレコーダが上記リズムパターンの照合・検索により抽出した機能コマンド、すなわちＭＰ３ファイルの再生実行要求コマンドを送信する。更に、ＨＤＤレコーダ１００が当該ソフトウェアセル以前にもノートＰＣ３２に対してソフトウェアセルを送信している場合には、セルインターフェース中、前回のソフトウェアセルＩＤとして、前回送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０２１２】
次に、以上のように構成された家庭内制御システムにおいて、デスクトップＰＣ３１から送信されたリズムパターンに対応する機能コマンドがノートＰＣ３２において実行されるまでの動作を説明する。図１８は当該動作の流れを示したシーケンス図である。
【０２１３】
同図に示すように、まず、デスクトップＰＣ３１は、ユーザからマウスまたはキーボードによるリズムパターンの入力があると、当該リズムパターンを入力し（ステップ４１）、当該リズムパターンを示す上記入力イベント発生時刻、入力イベント回数の各データを記録する。そして、当該データとともに、上記コマンド検索・実行要求コマンドを含むソフトウェアセルをＨＤＤレコーダ１００へ送信する（ステップ４２）。
【０２１４】
続いて、ＨＤＤレコーダ１００は、上記ソフトウェアセルを受信し（ステップ４３）、当該ソフトウェアセルに含まれる上記各データを基に、上記対応情報データベース２０５を参照して上記リズムパターンの照合及び検索を行う（ステップ４４）。当該照合及び検索処理は、上述の第１実施形態における処理と同様である。次に、ＨＤＤレコーダ１００は、検索されたリズムパターンに対応する機能コマンドを検索する（ステップ４５）。本例においては、当該機能コマンドは、『ＭＰ３ファイル○○○の再生』というコマンドである。続いて、当該コマンドを、再生実行要求コマンドとして、上記ソフトウェアセルによりノートＰＣ３２へ送信する（ステップ４６）。
【０２１５】
そして、ノートＰＣ３２が上記ソフトウェアセルを受信して（ステップ４７）、当該ソフトウェアセルに含まれる再生実行要求コマンドを実行することにより、ユーザの所望するＭＰ３ファイルの再生処理が実行される（ステップ４８）。
【０２１６】
以上の動作により、ＨＤＤレコーダ１００、デスクトップＰＣ３１及びノートＰＣ３２が協働して一台の仮想的な情報処理装置として機能することにより、ユーザはデスクトップＰＣ３１からマウス等によりリズムパターンを入力するだけでノートＰＣ３２において所望の機能を実行させることができる。
【０２１７】
なお、上述の場合とは逆に、ノートＰＣ３２からリズムパターンの入力を行い、ＨＤＤレコーダ１００を介して、デスクトップＰＣ３１に対応する機能を実行させるような態様であっても勿論構わない。
【０２１８】
また、上記デスクトップＰＣ３１またはノートＰＣ３２が、ユーザから入力されたリズムパターンを上記ＨＤＤレコーダ１００に送信して、対応する機能コマンドを検索させ、ＨＤＤレコーダ１００から当該対応する機能コマンドを応答させて、当該機能コマンドを自ら実行するような態様であってもよい。すなわち、この場合に送信されるソフトウェアセルにおいて、送信先ＩＤはＨＤＤレコーダ１００の情報処理装置ＩＤであり、送信元ＩＤ及び応答先ＩＤは、上記デスクトップＰＣ３１またはノートＰＣ３２を示す同一のＩＤとなる。
【０２１９】
また、本実施形態においては、リズムパターンを照合するためのパラメータとして入力イベント発生時刻、入力イベント回数及び総入力時間を用いたが、上記第１の実施形態と同様、ボタンを押下している時間長を示す情報や、入力信号のパワーを示す値等もパラメータとして用いることが可能である。
【０２２０】
更に、本実施形態においては、本発明を家庭内の制御システムに適用した例について説明したが、家庭外でも例えばオフィスや店舗等様々な環境で適用することができる。
【図面の簡単な説明】
【０２２１】
【図１】第１の実施形態におけるＨＤＤレコーダの構成を示したブロック図である。
【図２】リズムパターン情報を処理するために必要なソフトウェア及びデータベースの構成を示した図である。
【図３】リズムパターン‐コマンド対応情報データベース２０５に格納されたデータを示した図である。
【図４】機能コマンドを登録するまでの動作の流れを示したフロー図である。
【図５】登録した機能コマンドを呼び出して実行するまでの動作の流れを示したフロー図である。
【図６】入力されたリズムパターンと、当該リズムパターンの比較対象となる上記対応情報データベース２０５中のデータとの関係を示した図である。
【図７】本発明の第２の実施形態において前提となるネットワークシステムの一例を示す図である。
【図８】情報処理装置が備える情報処理コントローラの説明に供する図である。
【図９】ソフトウェアセルの一例を示す図である。
【図１０】ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示す図である。
【図１１】複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図１２】情報処理コントローラのソフトウェア構成の一例を示す図である。
【図１３】４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図１４】図１３のシステムにおける分散処理の例を示す図である。
【図１５】本発明の第２の実施形態における家庭内制御システムの構成を示す図である。
【図１６】第２実施形態において、デスクトップＰＣ３１がＨＤＤレコーダ１００に対して送信するソフトウェアセルの例を示した図である。
【図１７】第２実施形態において、ＨＤＤレコーダ１００が上記ノートＰＣ３２に対して送信するソフトウェアセルの例を示した図である。
【図１８】デスクトップＰＣ３１から送信されたリズムパターンに対応する機能コマンドがノートＰＣ３２において実行されるまでの動作の流れを示したシーケンス図である。
【符号の説明】
【０２２２】
１００…ＨＤＤレコーダ
１０３…ＨＤＤ
１０７…通信部
１０８…赤外線受信部
１０９…ＣＰＵ
１１０…ＲＡＭ
１１１…ＲＯＭ
１１３…リモートコントローラ
２０１…リズムパターン入力部
２０２…機能コマンド登録部
２０３…リズムパターン照合・検索部
２０４…登録機能コマンド呼出部
２０５…リズムパターン‐コマンド対応情報データベース
【図１】
2005293408.tif 000003
【図２】
2005293408.tif 000004
【図３】
2005293408.tif 000005
【図４】
2005293408.tif 000006
【図５】
2005293408.tif 000007
【図６】
2005293408.tif 000008
【図７】
2005293408.tif 000009
【図８】
2005293408.tif 000010
【図９】
2005293408.tif 000011
【図１０】
2005293408.tif 000012
【図１１】
2005293408.tif 000013
【図１２】
2005293408.tif 000014
【図１３】
2005293408.tif 000015
【図１４】
2005293408.tif 000016
【図１５】
2005293408.tif 000017
【図１６】
2005293408.tif 000018
【図１７】
2005293408.tif 000019
【図１８】
2005293408.tif 000020