(57)【要約】【課題】  音声再生に係る処理負荷を各装置間で分散させながら連携動作することにより、総合的なマルチチャンネルサラウンドの再生環境を構築することができる情報処理装置、音声再生システム、音声再生方法及びそのプログラムを提供すること。【解決手段】  情報処理装置１は、音声を入力すると、情報処理装置２がオーディオポスト処理プログラムを有しているか否かを確認し、有していない場合には、入力した音声とともに情報処理装置２へ当該オーディオポスト処理プログラムを送信する。そして、同一空間において例えば情報処理装置１はフロント側、情報処理装置２はサラウンド側のそれぞれのチャンネルの音声に対してオーディオポスト処理を分散して実行し、処理後の音声を両情報処理装置で同期させて再生する。【選択図】  図１４
2006067074.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して他の情報処理装置と接続された情報処理装置であって、
音声データにエフェクト処理を施すためのエフェクトプログラムを記憶する記憶手段と、
前記音声データを入力する入力手段と、
前記入力された音声データを、当該情報処理装置及び前記他の情報処理装置において再生させるために、両情報処理装置にそれぞれ割り当てる割り当て手段と、
当該情報処理装置に対して割り当てられた音声データに、前記エフェクトプログラムを用いてエフェクト処理を施すエフェクト処理手段と、
前記他の情報処理装置に、当該他の情報処理装置に割り当てられた前記音声データにエフェクト処理を施させるために、当該割り当てられた音声データを送信する送信手段と、
前記エフェクト処理手段によりエフェクト処理を施された音声データを、前記他の情報処理装置においてエフェクト処理を施された音声データと同期させて再生する再生手段と
を具備することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記送信手段は、前記他の情報処理装置が前記エフェクトプログラムを有していない場合に、前記他の情報処理装置に対して前記エフェクトプログラムを送信し、
前記他の情報処理装置は、前記送信された音声データに対して、前記送信されたエフェクトプログラムによってエフェクト処理を施すことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記エフェクト処理手段は、前記エフェクト処理として少なくとも音質調整処理、残響音付加処理及び音像定位処理を施し、
前記送信手段は、前記エフェクト処理を構成する各処理のうち少なくとも一の処理に必要なプログラムを送信することを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置であって、
前記情報処理装置及び他の情報処理装置は同一空間内に存在し、
前記再生手段は、前記同一空間内の第１の方向から前記音声データを再生し、
前記他の情報処理装置は、前記同一空間内の第２の方向から音声データを再生することを特徴とする情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記入力された音声と同期した画像データを入力する手段と、
前記入力された画像データを前記他の情報処理装置へ送信する手段と、
前記入力された画像データを、前記エフェクト処理手段によりエフェクト処理を施された音声データ、前記他の情報処理装置においてエフェクト処理を施された音声データ及び前記送信された画像データと同期させて表示する手段と
を更に具備することを特徴とする情報処理装置。
【請求項６】
第１の情報処理装置と第２の情報処理装置がネットワークを介して接続されたシステムであって、
前記第１の情報処理装置は、
音声データにエフェクト処理を施すためのエフェクトプログラムを記憶する手段と、
前記音声データを入力する手段と、
前記入力された音声データを、当該第１の情報処理装置及び前記第２の情報処理装置において再生させるために、両情報処理装置にそれぞれ割り当てる手段と、
当該第１の情報処理装置に対して割り当てられた音声データに、前記エフェクトプログラムを用いてエフェクト処理を施す手段と、
前記第２の情報処理装置に、当該第２の情報処理装置に割り当てられた前記音声データにエフェクト処理を施させるために、前記割り当てられた音声データ及び前記エフェクトプログラムを送信する手段と、
前記エフェクト処理を施された音声データを再生する手段とを有し、
前記第２の情報処理装置は、
前記送信された音声データ及びエフェクトプログラムを受信する手段と、
前記受信された音声データに対して、前記受信されたエフェクトプログラムを用いてエフェクト処理を施す手段と、
当該第２の情報処理装置において前記エフェクト処理を施された音声データを、前記第１の情報処理装置においてエフェクト処理を施された音声データと同期させて再生する手段とを有することを特徴とする音声再生システム。
【請求項７】
ネットワークを介して他の情報処理装置と接続された情報処理装置が音声を再生する方法であって、
音声データにエフェクト処理を施すためのエフェクトプログラムを記憶するステップと、
前記音声データを入力するステップと、
前記入力された音声データを、当該情報処理装置及び前記他の情報処理装置において再生させるために、両情報処理装置にそれぞれ割り当てるステップと、
当該情報処理装置に対して割り当てられた音声データに、前記エフェクトプログラムを用いてエフェクト処理を施すステップと、
前記他の情報処理装置に、当該他の情報処理装置に割り当てられた前記音声データにエフェクト処理を施させるために、当該割り当てられた音声データを送信するステップと、
前記情報処理装置において前記エフェクト処理を施された音声データを、前記他の情報処理装置においてエフェクト処理を施された音声データと同期させて再生するステップと
を具備することを特徴とする音声再生方法。
【請求項８】
ネットワークを介して他の情報処理装置と接続された情報処理装置に、
音声データにエフェクト処理を施すためのエフェクトプログラムを記憶するステップと、
前記音声データを入力するステップと、
前記入力された音声データを、当該情報処理装置及び前記他の情報処理装置において再生させるために、両情報処理装置にそれぞれ割り当てるステップと、
当該情報処理装置に対して割り当てられた音声データに、前記エフェクトプログラムを用いてエフェクト処理を施すステップと、
前記他の情報処理装置に、当該他の情報処理装置に割り当てられた前記音声データにエフェクト処理を施させるために、当該割り当てられた音声データを送信するステップと、
前記情報処理装置において前記エフェクト処理を施された音声データを、前記他の情報処理装置においてエフェクト処理を施された音声データと同期させて再生するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された複数の情報処理装置とともに音声を再生することが可能な情報処理装置、音声再生システム、音声再生方法及びそのプログラムに関する。
【背景技術】
【０００２】
近年、ＡＶ（オーディオビジュアル）機器から再生される音声の臨場感を高めるために、複数台のスピーカを用意して、５．１ｃｈに代表される、いわゆるマルチチャンネル方式により音声を再生するシステムが実用化されている。
【０００３】
また、複数台の音声再生装置により音声を再生するシステムも考えられている。このような技術としては、例えば、複数台の音声再生装置をネットワークに接続して、音声の再生に必要な音声ファイルまたは音声ストリームを各音声再生装置へ送信し、各音声再生装置間で同期をとりながら一の装置として音声を再生するシステムがある（例えば、特許文献１参照）。  
【特許文献１】特開２００３−９２９８号公報（図１等）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記マルチチャンネル方式による音声再生システムにおいては、例えば前方と後方に複数のスピーカを設けて、前方に存在する一つの制御装置から各スピーカを制御しているため、音声再生に必要なプログラムを後方から能動的に実行することができず、例えばエフェクト処理等を行った場合に、上記制御装置の処理負荷が重くなっても処理を分散する手立てがない。
【０００５】
また、上記特許文献１に記載の技術においては、各音声再生装置（上記特許文献１における各音声出力サイト）がそれぞれ音声再生やエフェクト処理に必要なプログラムを有している必要があるため、例えば汎用のＰＣ（Personal Computer）のように上記プログラムを有していない装置を複数台用意しても上記システムを実現することはできない。
【０００６】
以上のような事情に鑑み、本発明の目的は、音声再生に係る処理負荷を各装置間で分散させながら連携動作することにより、総合的なマルチチャンネルサラウンドの再生環境を構築することができる情報処理装置、音声再生システム、音声再生方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の情報処理装置は、ネットワークを介して他の情報処理装置と接続された情報処理装置であって、音声データにエフェクト処理を施すためのエフェクトプログラムを記憶する記憶手段と、前記音声データを入力する入力手段と、前記入力された音声データを、当該情報処理装置及び前記他の情報処理装置において再生させるために、両情報処理装置にそれぞれ割り当てる割り当て手段と、当該情報処理装置に対して割り当てられた音声データに、前記エフェクトプログラムを用いてエフェクト処理を施すエフェクト処理手段と、前記他の情報処理装置に、当該他の情報処理装置に割り当てられた前記音声データにエフェクト処理を施させるために、当該割り当てられた音声データを送信する送信手段と、前記エフェクト処理手段によりエフェクト処理を施された音声データを、前記他の情報処理装置においてエフェクト処理を施された音声データと同期させて再生する再生手段とを具備する。
【０００８】
ここで上記エフェクト処理とは、音量調整、音色調整やパラメトリックイコライザ等の音質調整処理、残響音の付加処理、音像定位処理等をいう。
【０００９】
上記構成によれば、上記他の情報処理装置に音声データを送信して上記エフェクト処理を行わせることで、上記エフェクト処理に掛かる負荷を各情報処理装置で分散させながら、他の情報処理装置と協働してマルチチャンネルサラウンドの再生環境を効率よく構築することができる。
【００１０】
上記情報処理装置において、前記送信手段は、前記他の情報処理装置が前記エフェクトプログラムを有していない場合に、前記他の情報処理装置に対して前記エフェクトプログラムを送信し、前記他の情報処理装置は、前記送信された音声データに対して、前記送信されたエフェクトプログラムによってエフェクト処理を施すようにしてもよい。これにより、上記他の情報処理装置が上記エフェクトプログラムを有していない場合でも、当該エフェクトプログラムを送信することで他の情報処理装置に上記エフェクト処理を行わせることができるため、特別な機能を有する装置を用意しなくとも、上記他の情報処理装置として例えば汎用のコンピュータを用いて、複数台の装置によるマルチチャンネルサラウンドの再生環境を容易に構築することができる。
【００１１】
上記情報処理装置において、前記エフェクト処理手段は、前記エフェクト処理として少なくとも音質調整処理、残響音付加処理及び音像定位処理を施し、前記送信手段は、前記エフェクト処理を構成する各処理のうち少なくとも一の処理に必要なプログラムを送信するようにしてもよい。これにより、上記各処理を行うためのプログラムを上記他の情報処理装置が有していない場合でも、各プログラムをそれぞれ送信することで各処理を行わせることができるため、上記他の情報処理装置として、上記各処理に必要なプログラムを全く有していない装置は勿論、上記各プログラムのうち１つまたは２つしか有していない装置も採用することができ、マルチチャンネルサラウンドの再生環境をより柔軟に構築することができる。
【００１２】
なお、上記情報処理装置が上記他の情報処理装置に割り当てられた音声データに対して、上記各処理のうち少なくとも一の処理を施し、残りの処理を他の情報処理装置に施させるようにしても構わない。これにより、各情報処理装置の状態に応じて、各処理に掛かる負担を効率よく分散させることが可能となる。
【００１３】
上記情報処理装置及び他の情報処理装置は同一空間内に存在し、前記再生手段は、前記同一空間内の第１の方向から前記音声データを再生し、前記他の情報処理装置は、前記同一空間内の第２の方向から音声データを再生するようにしてもよい。これにより、上記同一空間において、当該空間の前方及び後方から、複数の情報処理装置を用いたマルチチャンネルサラウンドの再生環境の構築が可能となり、例えば大会議室におけるプレゼンテーションの場やパーティー会場における音楽の演奏等、様々な場面に適用することが可能となる。
【００１４】
上記情報処理装置は、前記入力された音声と同期した画像データを入力する手段と、前記入力された画像データを前記他の情報処理装置へ送信する手段と、前記入力された画像データを、前記エフェクト処理手段によりエフェクト処理を施された音声データ、前記他の情報処理装置においてエフェクト処理を施された音声データ及び前記送信された画像データと同期させて表示する手段とを更に具備していてもよい。これにより、上記音声データに加えて、それに同期した画像を表示することもできるため、上記マルチチャンネルサラウンドの再生環境を、例えばスクリーンを用いたプレゼンテーションや映画の上映、いわゆるフィルムコンサート等の場面にも適用することができる。
【００１５】
本発明の音声再生システムは、第１の情報処理装置と第２の情報処理装置がネットワークを介して接続されたシステムであって、前記第１の情報処理装置は、音声データにエフェクト処理を施すためのエフェクトプログラムを記憶する手段と、前記音声データを入力する手段と、前記入力された音声データを、当該第１の情報処理装置及び前記第２の情報処理装置において再生させるために、両情報処理装置にそれぞれ割り当てる手段と、当該第１の情報処理装置に対して割り当てられた音声データに、前記エフェクトプログラムを用いてエフェクト処理を施す手段と、前記第２の情報処理装置に、当該第２の情報処理装置に割り当てられた前記音声データにエフェクト処理を施させるために、前記割り当てられた音声データ及び前記エフェクトプログラムを送信する手段と、前記エフェクト処理を施された音声データを再生する手段とを有し、前記第２の情報処理装置は、前記送信された音声データ及びエフェクトプログラムを受信する手段と、前記受信された音声データに対して、前記受信されたエフェクトプログラムを用いてエフェクト処理を施す手段と、当該第２の情報処理装置において前記エフェクト処理を施された音声データを、前記第１の情報処理装置においてエフェクト処理を施された音声データと同期させて再生する手段とを有している。
【００１６】
また、本発明の音声再生方法は、ネットワークを介して他の情報処理装置と接続された情報処理装置が音声を再生する方法であって、音声データにエフェクト処理を施すためのエフェクトプログラムを記憶するステップと、前記音声データを入力するステップと、前記入力された音声データを、当該情報処理装置及び前記他の情報処理装置において再生させるために、両情報処理装置にそれぞれ割り当てるステップと、当該情報処理装置に対して割り当てられた音声データに、前記エフェクトプログラムを用いてエフェクト処理を施すステップと、前記他の情報処理装置に、当該他の情報処理装置に割り当てられた前記音声データにエフェクト処理を施させるために、当該割り当てられた音声データを送信するステップと、前記情報処理装置において前記エフェクト処理を施された音声データを、前記他の情報処理装置においてエフェクト処理を施された音声データと同期させて再生するステップとを具備する。
【００１７】
また、本発明のプログラムは、ネットワークを介して他の情報処理装置と接続された情報処理装置に、音声データにエフェクト処理を施すためのエフェクトプログラムを記憶するステップと、前記音声データを入力するステップと、前記入力された音声データを、当該情報処理装置及び前記他の情報処理装置において再生させるために、両情報処理装置にそれぞれ割り当てるステップと、当該情報処理装置に対して割り当てられた音声データに、前記エフェクトプログラムを用いてエフェクト処理を施すステップと、前記他の情報処理装置に、当該他の情報処理装置に割り当てられた前記音声データにエフェクト処理を施させるために、当該割り当てられた音声データを送信するステップと、前記情報処理装置において前記エフェクト処理を施された音声データを、前記他の情報処理装置においてエフェクト処理を施された音声データと同期させて再生するステップとを実行させるためのものである。
【発明の効果】
【００１８】
本発明によれば、音声再生に係る処理負荷を各装置間で分散させながら連携動作することにより、総合的なマルチチャンネルサラウンドの再生環境を構築することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面に基づき説明する。
【００２０】
まず、本実施形態において前提となるネットワークシステムについて説明する。図１は、当該ネットワークシステムの一例を示し、ネットワーク９を介して複数の情報処理装置１、２、３、４が接続されたものである。情報処理装置１、２、３、４は、例えばＰＣや各種のＡＶ機器、ポータブル機器等である。
【００２１】
情報処理装置１について示すと、情報処理装置１は、コンピュータ機能部として情報処理コントローラ１１を備える。情報処理コントローラ１１は、メインプロセッサ２１−１、サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−１及びＤＣ（ディスクコントローラ）２７−１を有する。
【００２２】
メインプロセッサ２１−１は、サブプロセッサ２３−１，２３−２，２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１（情報処理装置１）の全般的な管理とを行う。ただし、メインプロセッサ２１−１内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ２１−１はサブプロセッサとしても機能することになる。メインプロセッサ２１−１は、ＬＳ（ローカルストレージ）２２−１を有する。
【００２３】
サブプロセッサは、１つでもよいが、望ましくは複数とする。本例は、複数の場合である。各サブプロセッサ２３−１，２３−２，２３−３は、メインプロセッサ２１−１の制御によって並列的かつ独立にプログラムを実行し、データを処理する。更に、場合によってメインプロセッサ２１−１内のプログラムがサブプロセッサ２３−１，２３−２，２３−３内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ２１−１内で動作するプログラムである。各サブプロセッサ２３−１，２３−２，２３−３も、ＬＳ（ローカルストレージ）２４−１，２４−２，２４−３を有する。
【００２４】
ＤＭＡＣ２５−１は、情報処理コントローラ１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ２６−１に格納されているプログラム及びデータにアクセスするものであり、ＤＣ２７−１は、情報処理コントローラ１１に接続された外部記録部２８−１，２８−２にアクセスするものである。
【００２５】
外部記録部２８−１，２８−２は、固定ディスク（ハードディスク）でも、リムーバブルディスクでもよく、また、ＭＯ，ＣＤ±ＲＷ，ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど、各種のものを用いることができる。したがって、ＤＣ２７−１は、ディスクコントローラと称するが、外部記録部コントローラである。図１の例のように、情報処理コントローラ１１に対して外部記録部２８を複数接続できるように、情報処理コントローラ１１を構成することができる。
【００２６】
メインプロセッサ２１−１、各サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ２５−１及びＤＣ２７−１は、バス２９−１によって接続される。
【００２７】
情報処理コントローラ１１には、当該の情報処理コントローラ１１を備える情報処理装置１を、ネットワーク全体を通して一意的に識別できる識別子が、情報処理装置ＩＤとして割り当てられる。
【００２８】
メインプロセッサ２１−１及び各サブプロセッサ２３−１，２３−２，２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤ及びサブプロセッサＩＤとして割り当てられる。
【００２９】
情報処理コントローラ１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。他の情報処理装置２、３、４も、上記と同様に構成される。ここで、図１において親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
【００３０】
上述したように、１つの情報処理コントローラ内の各サブプロセッサ２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ２６内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ２３からメインメモリ２６へのアクセスは、以下のような手順によって行う。
【００３１】
図２（Ａ）に示すように、メインメモリ２６は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤ及びＬＳアドレス（ローカルストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【００３２】
Ｆ／Ｅビット＝０は、サブプロセッサ２３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【００３３】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリロケーションがデータ書き込み不可であることを示す。
【００３４】
更に、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ２３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ２３のサブプロセッサＩＤ及びＬＳアドレスを書き込む。
【００３５】
その後、データ書き込み側のサブプロセッサ２３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、予め読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ及びＬＳアドレスに読み出される。
【００３６】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することによって、前段階の処理を行うサブプロセッサ２３が、処理済みのデータをメインメモリ２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ２３が前処理後のデータを読み出すことが可能となる。
【００３７】
図２（Ｂ）に示すように、各サブプロセッサ２３内のＬＳ２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【００３８】
サブプロセッサ２３がメインメモリ２６内のデータを自身のＬＳ２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【００３９】
図２（Ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ２６には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ２６内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ２３に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
【００４０】
更に、メインメモリ２６の排他的な制御を実現するために、図２（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭ等の比較的高速のメモリに格納され、ＤＭＡＣ２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサキー及びキーマスクが含まれる。
【００４１】
サブプロセッサ２３がメインメモリ２６を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ２３はＤＭＡＣ２５に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ２６のアドレスが含まれる。
【００４２】
ＤＭＡＣ２５は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ２６内の図２（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【００４３】
図２（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０または１になることができる。例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０または１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【００４４】
以上のようにして、メインメモリ２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【００４５】
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的な処理を可能にする。
【００４６】
より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行われるときには、
第１のサブプロセッサのサブプロセッサキー：０１００、
第１のメインメモリ領域のアクセスキー    ：０１００、
第２のサブプロセッサのサブプロセッサキー：０１０１、
第２のメインメモリ領域のアクセスキー    ：０１０１
というような設定のままだと、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【００４７】
図１のネットワークシステムでは、情報処理装置１、２、３、４間での分散処理のために、情報処理装置１、２、３、４間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置に送信することによって、処理を分散することができる。
【００４８】
図３に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム及びデータによって構成される。
【００４９】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置の情報処理装置ＩＤ、更に、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ２１及び各サブプロセッサ２３の識別子（メインプロセッサＩＤ及びサブプロセッサＩＤ）が含まれる。
【００５０】
送信先ＩＤ及び応答先ＩＤには、それぞれ、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
【００５１】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ及び前回のソフトウェアセルＩＤから構成される。
【００５２】
グローバルＩＤは、ネットワーク全体を通して当該ソフトウェアセルを一意的に識別できるものであり、送信元ＩＤ及びソフトウェアセルの作成または送信の日時（日付及び時刻）に基づいて作成される。
【００５３】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数を設定する。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ２６内及びサブプロセッサ２３のＬＳ２４内のメモリ量を設定する。前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【００５４】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラム及びデータから構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【００５５】
更に、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
【００５６】
ロードコマンドは、メインメモリ２６内の情報をサブプロセッサ２３内のＬＳ２４にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサＩＤ及びＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ２６内の所定領域のアドレスを示す。サブプロセッサＩＤ及びＬＳアドレスは、情報のロード先であるサブプロセッサ２３の識別子及びＬＳ２４のアドレスを示す。
【００５７】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサＩＤ及びプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【００５８】
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムＩＤによって、起動すべき機能プログラムを識別する。
【００５９】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図６に示す情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ２６にロードされ、メインプロセッサ２１により実行される。
【００６０】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【００６１】
図４に、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
【００６２】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３の数などに基づいて生成される。
【００６３】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、オーディオプレーヤや、ハードディスクレコーダ等である。また、情報処理装置種別ＩＤは、音響再生、動画記録再生等の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別ＩＤを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
【００６４】
ＭＳ（マスター／スレーブ）ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【００６５】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ２１で現在動作している全てのプログラムについての、メインプロセッサ２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【００６６】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ２３を識別するための識別子である。
【００６７】
サブプロセッサステータスは、各サブプロセッサ２３の状態を表すものであり、ｕｎｕｓｅｄ，ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【００６８】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【００６９】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサ２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ２３に対応する組数が設定される。
【００７０】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ２６の総容量及び現在使用中の容量を表す。
【００７１】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【００７２】
外部記録部総容量及び外部記録部使用量は、それぞれ、外部記録部ＩＤによって識別される外部記録部２８の総容量及び現在使用中の容量を表す。
【００７３】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部２８に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【００７４】
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、以上のような構成のソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤ及び応答先ＩＤによって識別される。
【００７５】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、そのソフトウェアセルをメインメモリ２６に格納する。さらに、送信先のメインプロセッサ２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。具体的には、送信先のメインプロセッサ２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤ及びＬＳアドレスで特定されるサブプロセッサ内のＬＳ２４の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
【００７６】
次に、メインプロセッサ２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ２６に格納した後、実行を完了したことをメインプロセッサ２１に通知する。
【００７７】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ２３に限定されるものではなく、メインプロセッサ２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【００７８】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ２６にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、及びプログラムカウンタを含み、ＤＭＡコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ２１に当該メインメモリ用プログラムを実行させる。
【００７９】
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【００８０】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
【００８１】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。更に、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
【００８２】
ソフトウェアセルの使用による分散処理の結果、図５の上段に示すようにネットワーク９に接続されている複数の情報処理装置１、２、３、４は、図５の下段に示すように、仮想的な１台の情報処理装置７として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
【００８３】
図６に、個々の情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成を示す。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部２８に記録されているものである。各プログラムは、機能または特徴によって、制御プログラム、機能プログラム及びデバイスドライバにカテゴライズされる。
【００８４】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャ及び能力交換プログラムを含む。
【００８５】
機能プログラムは、メインプロセッサ２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
【００８６】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【００８７】
情報処理装置が物理的にネットワーク９に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ２６にロードする。
【００８８】
ロード手順としては、メインプロセッサ２１は、まず、ＤＣ２７に読み出し命令を実行させることによって、外部記録部２８からプログラムを読み出し、次に、ＤＭＡＣ２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ２６に書き込む。
【００８９】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【００９０】
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図５の下段に示すように、仮想的な１台の情報処理装置７として機能プログラムを実行することができる。
【００９１】
また、前述したようにメインプロセッサ２１によって処理される機能プログラムは、サブプロセッサ２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ２１が外部記録部２８から機能プログラムを読み出し、メインメモリ２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ２６に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ２６に書き込むことになる。メインメモリ２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ２３内のＬＳ２４に書き込まれ、メインプロセッサ２１によって処理される機能プログラムと連携動作する。
【００９２】
図３のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【００９３】
そしてサブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【００９４】
メインプロセッサ２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図４に示した情報処理装置ＩＤ以下の各情報である。
【００９５】
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ２６にロードし、実行する。
【００９６】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９に接続されていることを検知すると、同じネットワーク９に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク９に接続されているだけでなく、電気的・機能的にもネットワーク９に接続されていることを示す。また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【００９７】
ＭＳマネージャが同じネットワーク９に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
【００９８】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤ及び応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分とされる。
【００９９】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他の装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドであり、かつデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）及び当該他装置のＭＳステータスが含まれる。
【０１００】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置は、スレーブ装置となる。
【０１０１】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置は、マスター装置となる。
【０１０２】
すなわち、いずれの装置もネットワーク９に接続されていない状態、またはネットワーク９上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０１０３】
マスター装置及びスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されることにより、予め判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９に新たな情報処理装置が接続された場合など、ネットワーク９の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０１０４】
メインプロセッサ２１は、ＭＳマネージャから、ネットワーク９上の他装置の照会及び自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０１０５】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０１０６】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を格納するための領域を自装置のメインメモリ２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ２６には、自装置を含むネットワーク９に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
【０１０７】
一方、自装置がスレーブ装置である場合には、能力交換プログラムは、ネットワーク９に接続されている全ての他装置の装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤ及びＭＳステータスを、自装置のメインメモリ２６に記録する。すなわち、スレーブ装置のメインメモリ２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９に接続されているマスター装置及び各スレーブ装置についての情報処理装置ＩＤ及びＭＳステータスが、別の装置情報テーブルとして記録される。
【０１０８】
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ２６に記録する。
【０１０９】
なお、ＭＳマネージャ及び能力交換プログラムは、メインプロセッサ２１で実行されることに限らず、いずれかのサブプロセッサ２３で実行されてもよい。また、ＭＳマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１１０】
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ２６から削除する。
【０１１１】
更に、このようにネットワーク９から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０１１２】
具体的には、例えば、ネットワーク９から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置ＩＤを数値に置き換えて、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を取得して、メインメモリ２６に記録する。
【０１１３】
図５の下段に示したようにネットワーク９に接続されている複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
【０１１４】
図７に、４台の情報処理装置が仮想的な１台の情報処理装置７として動作する様子を示す。情報処理装置１がマスター装置、情報処理装置２、３、４がスレーブ装置Ａ、Ｂ、Ｃとして、動作しているものとする。
【０１１５】
ユーザがネットワーク９に接続されている情報処理装置を操作した場合、操作対象がマスター装置１であれば、その操作情報は、マスター装置１において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置１に送信される。すなわち、ユーザの操作対象がマスター装置１とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
【０１１６】
そして、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、上記の方法によって自装置の外部記録部２８−１、２８−２からメインメモリ２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１に機能プログラムを送信してもよい。
【０１１７】
機能プログラムには、その実行単位毎に必要となる、図４に示した各情報として表される情報処理装置種別ＩＤ、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件等の、装置に関する要求スペックが規定されている。
【０１１８】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、予め能力交換プログラムによってメインメモリ２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図４に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
【０１１９】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ネットワーク９上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０１２０】
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。更に、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０１２１】
実行要求するスレーブ装置が特定されたら、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１に含まれるメインメモリ２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０１２２】
更に、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ＤＭＡコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ（図３参照）を設定して、上記実行要求されるスレーブ装置に対して送信する。
【０１２３】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上記の方法によって自装置の外部記録部２８からメインメモリ２６に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０１２４】
機能プログラムの実行を要求されたスレーブ装置の外部記録部２８に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０１２５】
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０１２６】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、終了通知をマスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０１２７】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１が当該機能プログラムを実行する。
【０１２８】
図７の例で、ユーザがスレーブ装置Ａ（情報処理装置２）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３）が実行する場合について、図８を用いてその分散処理の例を説明する。
【０１２９】
図８の例では、ユーザがスレーブ装置Ａを操作することによって、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Ａは、ステップ８１で、その操作情報をマスター装置１に送信する。
【０１３０】
マスター装置１は、ステップ７２で、その操作情報を受信し、さらにステップ７３に進んで、自装置のメインメモリ２６−１に記録されている自装置及び他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Ｂが選択される場合である。
【０１３１】
次に、マスター装置１は、ステップ７４で、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する。
【０１３２】
スレーブ装置Ｂは、ステップ９５で、その実行要求を受信し、さらにステップ９６に進んで、実行要求された機能プログラムを実行する。
【０１３３】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０１３４】
次に、以上説明したネットワークシステムに、本発明を適用した場合の実施の形態について説明する。図９は、本実施形態におけるネットワークＡＶシステムの構成を示した図である。
【０１３５】
同図に示すように、本実施形態におけるネットワークＡＶシステムは、情報処理装置１及び情報処理装置２で構成され、各情報処理装置はネットワーク９で接続されている。情報処理装置１及び情報処理装置２は、例えばパーティー会場等の同一空間１０内において、当該空間１０の前方及び後方の２箇所の位置に設置される。ネットワーク９は例えばイーサネット（登録商標）等のＬＡＮ（Local Area Network）であるが、無線でも有線でも構わない。接続される情報処理装置の数も２台に限定されるものではない。
【０１３６】
情報処理装置１及び情報処理装置２は、それぞれ上述のメインプロセッサ、サブプロセッサを含む情報処理コントローラ１１及び１２をそれぞれ有し、上記ＤＭＡコマンド等によりソフトウェアセルを実行したり、各種データをやり取りしたりすることが可能である。よって、各機器には、それぞれを識別するための上記情報処理装置ＩＤが付与されている。
【０１３７】
図１０は、上記情報処理装置１のハードウェア構成を示した図である。同図において、上記図１における情報処理装置１と同様の構成となる部分については、同一の符号を付し、説明を簡略化または省略する。
【０１３８】
同図に示すように、情報処理コントローラ１１のバス２９−１に接続されたバス３１−１には、音声入力部３２−１、圧縮音声デコーダ３３−１、オーディオポスト処理部３４−１、操作入力部３５−１及び音声出力部３６−１が接続され、音声出力部３６−１にはスピーカ装置３７−１が接続されている。また、上記図１の外部記憶部２８−１としてＨＤＤ（Hard Disk Drive）を適用し、外部記憶部２８−２としてＤＶＤやＣＤ、ＭＤ等のディスクを適用している。
【０１３９】
音声入力部３２−１は、例えばＢＳ及びＣＳの衛星放送や地上波放送等の放送、上記ＨＤＤ２８−１及び上記ＤＶＤ、ＣＤ等のディスク２８−２に含まれる音声信号を入力する。なお、上記放送から音声信号を入力する場合には、情報処理装置１は、アンテナやチューナ等、放送を受信するための機構を有する。なお、当該音声入力部３２−１は、ハードウェアのみではなく、一部をソフトウェアで実現することも可能である。
【０１４０】
圧縮音声デコーダ３３−１は、上記音声信号が、デジタル放送における圧縮音声ストリームのように、圧縮されたデジタル音声信号の場合に、当該圧縮音声を復号化する。圧縮音声とは、ＭＰＥＧ（Moving Picture Experts Group） ＡＡＣ(Advanced Audio Coding)、Ｄｏｌｂｙ ＡＣ−３及びＤＴＳ（登録商標）等のフォーマットによりマルチチャンネルデコード処理されたノンリニアＰＣＭ（Pulse Code Modulation）方式の音声をいう。なお、当該圧縮音声デコーダ３３−１は、ハードウェアではなくソフトウェアのみで実現しても構わない。
【０１４１】
オーディオポスト処理部３４−１は、上記復号化されたデジタル音声またはアナログ音声に対してオーディオポスト処理を施す。オーディオポスト処理とは、例えばデジタルシネマサウンドに代表されるオーディオエフェクト処理を指し、より具体的には、トーンの調整やパラメトリックイコライザ等による音質調整、リバーブによる残響音の付加、及び音像定位処理等が含まれる。これらのエフェクト処理の詳細については後述する。なお、当該オーディオポスト処理部３４−１も、上記圧縮音声デコーダ３３−１と同様、ハードウェアではなくソフトウェアのみで実現しても構わない。
【０１４２】
操作入力部３５−１は、例えばキーボード、マウス等で構成され、情報処理装置１に対するユーザの操作を入力するためのインターフェースとなる。
【０１４３】
音声出力部３６−１は、Ｄ／Ａ（デジタル／アナログ）コンバータやアンプ等からなり、上記オーディオポスト処理部３４−１により処理された音声データのうちデジタルデータをアナログデータへ変換し、増幅してスピーカ装置３７−１に出力する。当該出力された音声データがスピーカ装置３７−１から再生される。なお、スピーカ装置３７−１は例えば３台設けられ、それぞれセンタースピーカ３７−１ａ、レフトスピーカ３７−１ｂ、ライトスピーカ３７−１ｃとして３方向からマルチチャンネルで音声を再生することが可能である。３台以上のスピーカ装置を有していても勿論構わない。
【０１４４】
なお、図示しないが、情報処理装置２も上記情報処理装置１と同様のハードウェア構成及び機能を有する。上記図９において説明したように、情報処理装置１及び情報処理装置２は、例えば空間１０内において、当該空間１０の前方と後方の２箇所に設置される。各情報処理装置は単独でも音声を再生することが可能であるが、ネットワーク９に接続することにより、一つのサラウンド環境（例えば５．１ｃｈサラウンド）を構築することができる。この場合、例えば情報処理装置１が有する３台のスピーカ装置が空間１０の前方の担当となり、それぞれセンタースピーカ、フロントレフトスピーカ及びフロントライトスピーカとして機能し、情報処理装置２が有する３台のスピーカ装置が空間１０の後方の担当となり、それぞれサラウンドバックスピーカ、サラウンドレフトスピーカ、サラウンドライトスピーカとして機能する。５．１ｃｈサラウンドの場合、サラウンドバック信号は、サラウンドレフト信号とサラウンドライト信号から擬似的に生成され、サラウンドバックスピーカから出力される。また、０．１ｃｈで表されるサブウーファーは、情報処理装置１または情報処理装置２が別途有していても構わないが、フロントレフトスピーカ及びフロントライトスピーカに混合することも可能である。
【０１４５】
図１１は、情報処理装置１が有するソフトウェアの構成を示した図である。同図に示すように、情報処理装置１は、オーディオポスト処理プログラム４０及び圧縮音声デコードプログラム４４を有する。
【０１４６】
オーディオポスト処理プログラム４０は、上記オーディオポスト処理部３４−１の処理を実行するためのプログラムであり、イコライザ処理プログラム４１、リバーブ処理プログラム４２及び３Ｄ処理プログラムの各プログラムで構成される。これらのプログラムは、例えばＨＤＤ２８−１に記憶され、メインプロセッサ２１−１またはいずれかのサブプロセッサ２３により実行される。
【０１４７】
イコライザ処理プログラム４１は、トーンコントロールやパラメトリックイコライザ等の音質調整を行なうためのプログラムである。具体的には、音声データを周波数帯域毎に分割し、当該帯域毎にレベル（音量）を調整する。イコライザにはグラフィックイコライザとパラメトリックイコライザがあるが、グラフィックイコライザにおいては各帯域の中心周波数は規格により決められているのに対して、パラメトリックイコライザにおいては当該中心周波数及び帯域毎のカーブの山または谷の鋭さ（Ｑ）を任意の値に設定できるため、より細かな音質調整が可能である。
【０１４８】
リバーブ処理プログラム４２は、音声データに残響音を付加するためのプログラムである。具体的には、ディレイタイムのランダムなディレイを多数発生させて、更にディレイタイムが長くなるほど音量を小さくする事によって残響音を付加する。ディレイとは、電気信号の変位を時間的に遅延させることで、スピーカから出力される音声を遅らせるエフェクト効果をいう。電気的な時間の流れを溜めておき、一定時間溜めた後に入力された順序で出力することで上記遅延を実現しており、上記ディレイタイムとはその溜める時間をいう。
【０１４９】
３Ｄ処理プログラム４３は、音像定位処理により音声を３次元的に表現するためのプログラムである。音像定位処理とは、音の発生位置を再現するエフェクト処理であり、特定の音源を自由に移動させ、聞き手に対して任意の方向から音を発生するような効果を作り出す。例えば、本実施形態においては、空間１０内の前方に設置された情報処理装置１の各スピーカから再生される音声が後方から聞こえるように処理を行なったり、逆に情報処理装置２の各スピーカから再生される音声が前方から聞こえるように処理を行なったりする。具体的には、音声を再生させようとする位置から各スピーカのまでの距離、スピーカの音圧、音の速度等の要素から、上記音源の位置までに到達する音声の時間差を計算して、当該時間差をつけて音声を再生する等の処理を行う。
【０１５０】
圧縮音声デコードプログラム４４は、上記圧縮音声デコーダ３３−１を動作させ、圧縮ストリームのデコードを実現するプログラムである。
【０１５１】
なお、上記圧縮音声デコーダ部３３−１及びオーディオポスト処理部３４−１の機能をソフトウェアのみで実現する場合には、それらの機能も上記オーディオポスト処理プログラム４０及び圧縮音声デコードプログラム４４が有し、上記メインプロセッサ２１−１または各サブプロセッサ２３により実行されるようにすればよい。
【０１５２】
また、これらのプログラムは、上述したソフトウェアセルを用いることにより各情報処理装置間でやり取りすることが可能である。従って、情報処理装置２が上記各プログラムの全てまたは一部を有していない場合には、情報処理装置１は、当該プログラムを上記ソフトウェアセルによって送信することにより、情報処理装置２に圧縮音声のデコード処理やオーディオポスト処理を実行させることができる。
【０１５３】
また、各情報処理装置が上記オーディオポスト処理プログラム４０を全て有している場合には、各情報処理装置がそれぞれ自らオーディオポスト処理を行うことが可能であるが、この場合、情報処理装置１が入力した音声データのうち情報処理装置２の再生に必要な分を情報処理装置２へ送信して、各情報処理装置が自装置で再生する分の音声データのオーディオポスト処理をそれぞれ行ってもよいし、また情報処理装置１が、情報処理装置２において再生される分の音声データのオーディオポスト処理も行い、処理後の音声データを情報処理装置２へ送信して再生させるようにしてもよい。
【０１５４】
なお、これらのプログラムは、各情報処理装置へ送信された場合には、各情報処理装置のメインメモリにロードされ、メインプロセッサやいずれかのサブプロセッサ及びオーディオポスト処理部により実行される。
【０１５５】
次に、本実施形態において情報処理装置１と情報処理装置２との間でやり取りされるソフトウェアセルについて説明する。
【０１５６】
図１２は、上記情報処理装置１が情報処理装置２に対して音声の再生を要求する場合に送信するソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元ＩＤは情報処理装置１の情報処理装置ＩＤ、送信先ＩＤは情報処理装置２のＩＤ、応答先ＩＤは情報処理装置１のＩＤである。
【０１５７】
ＤＭＡコマンドとしては、音声再生要求コマンドを送信する。また、情報処理装置２が上記オーディオポスト処理プログラム４０の全てまたはいずれかを有していない場合には、当該コマンドともに、サブプロセッサプログラムとして上記３つのオーディオポスト処理プログラム４０の全てまたはいずれかを送信する。更に、データとして、音声再生に必要な音声データ、再生時の音量を指定した音量データ及びオーディオポスト処理で実現するためのエフェクトを指定したエフェクト指定データを送信する。エフェクト指定データには、音声を再生させる位置、当該再生位置から情報処理装置２の各スピーカまでの距離等のデータや、情報処理装置１と情報処理装置２とで同期をとって音声を再生するためのタイムスタンプデータ等が含まれる。
【０１５８】
なお、情報処理装置１が、情報処理装置２で再生される音声に対するオーディオポスト処理も行う場合（オーディオポスト処理を分散しない場合）には、オーディオポスト処理プログラム４０及びエフェクト指定データは送信せずに、オーディオポスト処理後の音声データ及び音量データのみを送信する。
【０１５９】
また、このソフトウェアセルの送信以前に、上記情報処理装置１が情報処理装置２に上記音声再生要求コマンドを送信している場合には、セルインターフェース中、前回のソフトウェアセルＩＤとして、当該送信の際のソフトウェアセルのグローバルＩＤを送信する。
【０１６０】
情報処理装置２が圧縮音声デコードプログラムを有していない場合には、上記サブプロセッサプログラムとして、上記オーディオポスト処理プログラム４０に加えて、圧縮音声デコードプログラム４４も送信するようにしても構わない。
【０１６１】
図１３は、情報処理装置２が、上記情報処理装置１が送信した上記音声再生要求コマンドに応答して音声を再生した場合に、情報処理装置１に対して送信するソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元ＩＤは情報処理装置２のＩＤ、送信先ＩＤ及び応答先ＩＤは情報処理装置１のＩＤである。またＤＭＡコマンドとして音声再生応答コマンドを送信して、音声再生を完了した旨を知らせる。更に、このソフトウェアセルの送信以前に、情報処理装置２が情報処理装置１に当該音声再生応答コマンドを送信している場合には、前回のソフトウェアセルＩＤとして、当該送信の際のソフトウェアセルのグローバルＩＤを送信する。
【０１６２】
なお、図示しないが、情報処理装置１と情報処理装置２との間では上記ステータス要求コマンド及びステータス返信コマンドもソフトウェアセルにより送受信され、例えば情報処理装置１が情報処理装置２の装置情報や情報処理装置２が有しているプログラムに関する情報を取得したり、ＭＳステータスの設定を行なったりすることが可能である。本実施形態においては、情報処理装置１がマスター装置、情報処理装置２がスレーブ装置として機能するものとする。
【０１６３】
次に、以上のように構成された情報処理装置１及び情報処理装置２の動作について説明する。
【０１６４】
図１４は、情報処理装置１及び情報処理装置２において音声が再生される場合の情報処理装置１の動作の流れを示したフローチャートである。
【０１６５】
同図に示すように、まず、情報処理装置１は、上記音声入力部３２−１により、放送やＤＶＤ、ＣＤ等のディスク２３−２またはＨＤＤ２８−１から音声データを入力する（ステップ５１）。そして、当該入力された音声データが圧縮音声ストリームである場合（ステップ５２のＹＥＳ）には、圧縮音声デコーダ３３−１によりデコードする（ステップ５３）。
【０１６６】
上記入力された音声データが非圧縮のリニアＰＣＭであった場合（ステップ５２のＮＯ）及び上記ステップ５３によるデコードが完了した場合には、入力された音声データを、情報処理装置１と情報処理装置２で再生するためにそれぞれの装置へ割り当てる（ステップ５４）。具体的には、入力された音声データを例えば空間１０内の前方（フロント）から再生させる音声と後方（サラウンド）から再生させる音声に分割し、情報処理装置１がフロントの３チャンネルの担当、情報処理装置２がサラウンドの３チャンネルの担当として割り当てる。
【０１６７】
次に、情報処理装置１は、上記ステップ５４において割り当てた音声データに対して、各情報処理装置でオーディオポスト処理を分散して行うか否か、すなわち、情報処理装置２に対して割り当てた音声データに対して自らオーディオポスト処理を行うか、それとも情報処理装置２に行わせるかを決定する（ステップ５５）。分散処理を行うか否かは、情報処理装置１及び情報処理装置２の潜在的な処理能力や処理時の実行状態等によって適宜決定するが、分散処理可能な場合には極力分散処理を行うようにする。
【０１６８】
分散処理を行う場合（ステップ５５のＹＥＳ）には、情報処理装置２がオーディオポスト処理プログラム４０を有しているか否かを確認する（ステップ５８）。当該確認は、上述したステータス要求コマンド及びステータス返信コマンドの送受信によって行なわれる。
【０１６９】
情報処理装置２がオーディオポスト処理プログラム４０を有している場合（ステップ５８のＹＥＳ）には、上記情報処理装置２へ割り当てられた音声データ、音量データ及び上記エフェクト指定データを送信し、オーディオポスト処理を行わせる（ステップ６０）。一方、情報処理装置２がオーディオポスト処理プログラム４０を有していない場合（ステップ５８のＮＯ）には、上記音声データ、音量データ及びエフェクト指定データに加えて、オーディオポスト処理プログラム４０を送信して、オーディオポスト処理を行わせる（ステップ５９）。これらのデータ及びプログラムの送信は、上述したように、音声再生要求コマンドを含むソフトウェアセルによって行なわれる。
【０１７０】
そして、情報処理装置１は、上記ステップ５４において自装置の担当として割り当てた音声データに対してオーディオポスト処理を行い（ステップ６１）、入力時の音声データに含まれるタイムスタンプデータを参照しながら、当該処理後の音声データを情報処理装置２においてオーディオポスト処理が行われた音声データと同期させて、音声出力部３６−１からスピーカ装置３７−１を介して再生する（ステップ６２）。
【０１７１】
なお、上記ステップ５５においてオーディオポスト処理を分散させないと決定した場合には、自装置及び情報処理装置２に割り当てられた両方の音声データに対してオーディオポスト処理を行い（ステップ５６）、オーディオポスト処理後の音声データのうち、情報処理装置２に割り当てられた分の音声データ及び音量データを送信して（ステップ５７）、自装置においてオーディオポスト処理を行った音声データと同期させて再生する。
【０１７２】
図１５は、上記動作において、オーディオポスト処理を分散しない場合の音声データの流れを示した図である。
【０１７３】
同図に示すように、音声入力部３２−１が放送やディスク２８−２、ＨＤＤ２８−１等から音声データ入力すると、当該音声が圧縮音声ストリームである場合には圧縮音声デコーダ３３−１を介して、また非圧縮のリニアＰＣＭ音声である場合には非圧縮のまま、フロントとサラウンドのそれぞれ３つのチャンネルに分けて、オーディオポスト処理部３４−１へ送られる。
【０１７４】
オーディオポスト処理部３４−１では、まず、それぞれイコライザ（パラメトリックイコライザ）に送られ、イコライザ処理プログラム４１により、音質の調整を行なう。続いて、リバーブ処理プログラム４２により残響音の付加を行い、更に３Ｄ処理プログラム４３により音像定位処理を行う。この場合、リバーブ処理及び３Ｄ処理は、空間１０の前方、すなわち情報処理装置１のスピーカから再生される音声を後方にも反映させ、また逆に後方の情報処理装置２のスピーカから再生される音声を前方にも反映させるように、フロント及びサラウンドの６つ全てのチャンネルを総合的に調整して処理を行う。
【０１７５】
そして、オーディオポスト処理を経た音声データのうち、フロント側の３チャンネル分の音声データは情報処理装置１の音声出力部３６−１へチャンネル毎に送られ、Ｄ／Ａコンバータによりアナログ変換された後、各スピーカ３７−１へ送られて再生される。一方、サラウンド側の３チャンネル分の音声データは、ネットワーク９を介して情報処理装置２の音声出力部へ送信され、Ｄ／Ａコンバータを経て各スピーカに送られて再生される。
【０１７６】
このように、同図においては、空間１０内における音声再生処理をＤ／Ａコンバータの直前で切り分けて、情報処理装置１は、情報処理装置２において再生される音声データに対してもオーディオポスト処理を行い、当該処理後の音声データを情報処理装置２へ送信している。この場合のオーディオポスト処理において、特にリバーブ処理及び３Ｄ処理は６チャンネル分の処理をまとめて行っているため、よりきめ細かな音響効果が得られる半面、情報処理装置１にとっては処理負荷の高いものとなっている。
【０１７７】
そこで、これら２つの処理をフロント側及びサラウンド側で分散させて、サラウンド側のオーディオポスト処理を情報処理装置２に行わせることも可能である。図１６は、その場合の音声データの流れを示した図である。
【０１７８】
同図に示すように、リバーブ処理をフロントリバーブ処理とサラウンドリバーブ処理とで分けて、また３Ｄ処理も同様にフロント３Ｄ処理とサラウンド３Ｄ処理とで切り分けている。そして、当該切り分けに従い、オーディオポスト処理以降の処理を情報処理装置１と情報処理装置２とで切り分けて、圧縮音声デコーダ３３−１でデコードされ、または非圧縮のリニアＰＣＭ音声のうち、サラウンド成分の音声データが情報処理装置２へ送信される。この際、上述したように、情報処理装置２がオーディオポスト処理プログラム４０を有していない場合には、ソフトウェアセルを用いてオーディオポスト処理プログラム４０も送信される。
【０１７９】
そして、情報処理装置１においてフロント側の音声データに対するオーディオポスト処理が、また情報処理装置２においてサラウンド側の音声データに対するオーディオポスト処理がそれぞれ行われ、処理後の音声データが同期して各スピーカから再生される。
【０１８０】
なお、情報処理装置２が上記３つのオーディオポスト処理プログラム４０のうちいずれか１つまたは２つを有していない場合には、情報処理装置１は当該有していないプログラムを送信するようにしてもよい。そしてこの場合には、オーディオポスト処理のうちいずれか１つまたは２つを切り分けて、情報処理装置２に行わせるようにしても構わない。
【０１８１】
このように、オーディオポスト処理をフロントとサラウンドで切り分けて、サラウンド分の処理を情報処理装置２に行わせることにより、オーディオポスト処理において情報処理装置１に掛かる負荷を大幅に軽減させることが可能となる。またそのようにしても、音響効果の面でも、上記図１５にように６チャンネル分の処理をまとめて行う場合に比べると多少は劣るものの、空間１０内の聞き手にとっては十分な音響効果が得られる。
【０１８２】
以上説明したように、本実施形態によれば、音声再生、特にオーディオポスト処理に係る処理負荷を各情報処理装置間で分散させながら、各情報処理装置が連携動作することにより、総合的なマルチチャンネルサラウンドの再生環境を構築することができる。
【０１８３】
また、オーディオポスト処理プログラム４０を情報処理装置２が有していない場合には当該オーディオポスト処理プログラム４０を送信することができるため、オーディオポスト処理に必要な特別な機能を有していない汎用的なコンピュータを用いてもマルチチャンネルサラウンドの再生環境を構築することができる。
【０１８４】
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０１８５】
上述の実施形態においては、空間１０内に存在する情報処理装置の数は２台であったが、より多くの台数の情報処理装置により本発明を実施しても勿論構わない。
【０１８６】
図１７は、本発明を４台の情報処理装置で実現した場合のシステムの構成を示した図である。同図においては、情報処理装置１、情報処理装置２、情報処理装置３及び情報処理装置４が空間１０内の前後左右に配置されている。各情報処理装置３及び４の基本的なハードウェア構成は上記図１０の情報処理装置１と同様であり、それぞれ情報処理コントローラ１３及び１４を有している。
【０１８７】
図１８は、情報処理装置が４台の場合の音声データの流れを示した図である。同図に示すように、情報処理装置２がサラウンド側のオーディオポスト処理を担当するのは上記図１６の場合と同様であるが、情報処理装置２の当該オーディオポスト処理後のサラウンド側の音声データは、情報処理装置２、情報処理装置３及び情報処理装置４の３方向に分割され、情報処理装置２の３台のスピーカがサラウンドバックの音声を、情報処理装置３の３台のスピーカがサラウンドレフトの音声を、そして情報処理装置４の３台のスピーカがサラウンドライトの音声をそれぞれ再生し、４台の情報処理装置によりマルチチャンネルサラウンド環境を構築している。この場合も、上記音声再生コマンドを含むソフトウェアセルが情報処理装置２から情報処理装置３及び情報処理装置４へ送信され、当該ソフトウェアセルに含まれるデータとしてオーディオポスト処理後の音声データ及び音量データが送信される。
【０１８８】
このように、空間１０の４方に４台の情報処理装置を設置することにより、より大きな音響効果をあげることができる。なお、情報処理装置３及び情報処理装置４にそれぞれのオーディオポスト処理を行わせるようにしても構わない。この際、情報処理装置３または情報処理装置４がオーディオポスト処理プログラム４０を有していない場合には、情報処理装置２がそれぞれ送信してもよいし、情報処理装置１から情報処理装置２を通して転送するようにしてもよいし、また情報処理装置３または情報処理装置４のいずれかがオーディオポスト処理プログラム４０を有している場合には有していない情報処理装置へ送信する等、必要に応じて、送信可能な情報処理装置が適宜送信するようにすればよい。
【０１８９】
上述の実施形態においては、各情報処理装置は音声のみを再生していたが、各情報処理装置またはいずれかの情報処理装置は、音声と同期した映像または静止画像を表示するようにしても構わない。一台の情報処理装置のみが画像を表示する場合としては、例えば空間１０内で映画を上映する場合や、いわゆるフィルムコンサートを行なうような場合が考えられる。また、例えばプレゼンテーションやアトラクションの会場において、４台の情報処理装置がそれぞれ画像を逐次切り替えて表示するようにしてもよい。
【０１９０】
この場合、画像データの送受信も、上記ソフトウェアセルを用いて行われ、また圧縮画像デコードプログラムやその他画像処理に必要なプログラムを必要に応じて各情報処理装置間で送受信するようにしても構わない。またこの場合、各情報処理装置は、画像入力部、圧縮画像デコーダ、画像出力部等、画像の表示に必要なハードウェア及びその動作に必要なソフトウェア等（図示せず）を備える。
【０１９１】
このように、いずれかの情報処理装置または各情報処理装置が音声に加えて画像も表示することで、より臨場感があり、また動的で興趣のある総合的なマルチチャンネルサラウンドの音声画像再生環境を容易に構築することができる。また、例えば上記情報処理装置１が他の全ての情報処理装置のためのオーディオポスト処理を行う場合に比べて、当該処理を各情報処理措置に分散することによって、処理能力に余裕が生じ、その分例えばより高品位な画像を表示するようなことも可能となる。
【図面の簡単な説明】
【０１９２】
【図１】本発明の一実施形態において前提となるシステムの構成を示した図である。
【図２】情報処理装置が備える情報処理コントローラの説明に供する図である。
【図３】ソフトウェアセルの一例を示す図である。
【図４】ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示す図である。
【図５】複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図６】情報処理コントローラのソフトウェア構成の一例を示す図である。
【図７】４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図８】図７のシステムにおける分散処理の例を示す図である。
【図９】本発明の一実施形態におけるシステムの構成を示した図である。
【図１０】情報処理装置１のハードウェア構成を示した図である。
【図１１】情報処理装置１が有するソフトウェアの構成を示した図である。
【図１２】情報処理装置１が情報処理装置２に対して音声の再生を要求する場合に送信するソフトウェアセルの例を示した図である。
【図１３】情報処理装置２が情報処理装置１の音声再生要求に応答する場合に送信するソフトウェアセルの例を示した図である。
【図１４】情報処理装置１及び情報処理装置２において音声が再生される場合の情報処理装置１の動作の流れを示したフローチャートである。
【図１５】情報処理装置１と情報処理装置２でオーディオポスト処理を分散しない場合の音声データの流れを示した図である。
【図１６】情報処理装置１と情報処理装置２でオーディオポスト処理を分散する場合の音声データの流れを示した図である。
【図１７】本発明を４台の情報処理装置で実現した場合のシステムの構成を示した図である。
【図１８】情報処理装置が４台の場合の音声データの流れを示した図である。
【符号の説明】
【０１９３】
１、２、３、４…情報処理装置
３２…音声入力部
３３…圧縮音声デコーダ
３４…オーディオポスト処理部
３６…音声出力部
３７…スピーカ装置
４０…オーディオポスト処理プログラム
４１…イコライザ処理プログラム
４２…リバーブ処理プログラム
４３…３Ｄ処理プログラム
４４…圧縮音声デコードプログラム
【図１】
2006067074.tif 000003
【図２】
2006067074.tif 000004
【図３】
2006067074.tif 000005
【図４】
2006067074.tif 000006
【図５】
2006067074.tif 000007
【図６】
2006067074.tif 000008
【図７】
2006067074.tif 000009
【図８】
2006067074.tif 000010
【図９】
2006067074.tif 000011
【図１０】
2006067074.tif 000012
【図１１】
2006067074.tif 000013
【図１２】
2006067074.tif 000014
【図１３】
2006067074.tif 000015
【図１４】
2006067074.tif 000016
【図１５】
2006067074.tif 000017
【図１６】
2006067074.tif 000018
【図１７】
2006067074.tif 000019
【図１８】
2006067074.tif 000020