(57)【要約】【課題】複数の情報信号についての同期処理、非同期処理双方を整合性を乱すことなく円滑に処理できるようにする。【解決手段】処理制御装置部３においては、処理時間見積り部３７１により、割り込ませようとする非同期処理の所要時間を見積もり、空き時間算出部３７２により、各処理装置部毎の空き時間を算出する。検索処理部３７３により、空き時間算出部３７２により算出された空き時間が最も長い処理装置部を検索すると共に、空き時間の最も長い処理装置部を検索する。この検索された空き時間の最も長い処理装置部において、見積もった所要時間がかかる非同期処理が実行可能かを判断し、当該非同期処理を割り込ませる処理装置を決定する。【選択図】図６
2005236466.tif 000002
【特許請求の範囲】
【請求項１】
同期処理と非同期処理との実行が可能な複数の処理装置部と、前記複数の処理装置部のそれぞれを制御するための処理制御装置部とを備え、
前記処理制御装置部は、
非同期処理を前記処理装置部に対して割り込ませる場合に、前記非同期処理にかかる時間を見積もるようにする見積もり手段と、
各処理装置部の空き時間を算出する空き時間算出手段と、
前記空き時間算出手段からの前記複数の処理装置部の空き時間に基づいて、最大の空き時間を有する処理装置部を検索する検索手段と、
前記検索手段の検索結果と、前記見積もり手段からの見積もった所要時間とから、前記非同期処理を割り込ませる処理装置部を決定するようにする決定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記処理装置部において実行される同期処理は、圧縮符号化処理と圧縮復号化処理との一方または両方であることを特徴とする情報処理装置。
【請求項３】
請求項１または請求項２に記載の情報処理装置であって、
前記複数の処理装置部は、リング状のバスによって接続されることを特徴とする情報処理装置。
【請求項４】
請求項１、請求項２または請求項３に記載の情報処理装置であって、
前記非同期処理は、映像データと音声データとの一方または両方を処理対象データとするものであることを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記処理対象データは、ＲＴＰ（real-time transport protocol）が用いられて提供されるものであり、
前記処理制御装置部は、
前記処理対象データをＲＴＰ／ＵＤＰ（user datagram protocol）／ＩＰ（internet protocol）の各レイヤーに分割する分割手段と、
前記分割手段により分割された各レイヤーの対象データを異なる処理装置部に供給するようにする分配手段と
を備えることを特徴とする情報処理装置。
【請求項６】
同期処理と非同期処理との実行が可能な複数の処理装置部と、前記複数の処理装置部のそれぞれを制御するための処理制御装置部とを備えた情報処理装置における情報処理方法であって、
前記処理制御装置部において、
非同期処理を前記処理装置部に対して割り込ませる場合に、前記非同期処理にかかる時間を見積もる見積もりステップと、
各処理装置部の空き時間を算出する空き時間算出ステップと、
前記空き時間算出ステップにおいての算出した前記複数の処理装置部の空き時間に基づいて、最大の空き時間を有する処理装置部を検索する検索ステップと、
前記検索ステップにおいての検索結果と、前記見積もりステップにおいて見積もった所要時間とから、前記非同期処理を割り込ませる処理装置部を決定するようにする決定ステップと
を有することを特徴とする情報処理方法。
【請求項７】
請求項６に記載の情報処理方法であって、
前記処理装置部において実行される同期処理は、圧縮符号化処理と圧縮復号化処理の一方または両方であることを特徴とする情報処理方法。
【請求項８】
請求項６または請求項７に記載の情報処理方法であって、
前記複数の処理装置部は、リング状のバスによって接続され、パイプライン処理を行うことが可能であることを特徴とする情報処理方法。
【請求項９】
請求項６、請求項７または請求項８に記載の情報処理方法であって、
前記非同期処理は、映像データと音声データとの一方または両方を処理対象データとするものであることを特徴とする情報処理方法。
【請求項１０】
請求項９に記載の情報処理方法であって、
前記処理対象データは、ＲＴＰ（real-time transport protocol）が用いられて提供されるものであり、
前記処理制御装置において、
前記処理対象データをＲＴＰ／ＵＤＰ（user datagram protocol）／ＩＰ（internet protocol）の各レイヤーに分割する分割ステップと、
前記分割ステップにおいて分割した各レイヤーの処理対象データを異なる処理装置部に供給するようにする分配ステップと
を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、複数のテレビ放送番組の同時再生や同時録画、多地点テレビ会議、多視点映像音声ストリームを利用した任意視点映像再生などの、複数の情報信号についての同期処理を破綻させることなく、非同期処理の割り込みを可能にする装置および方法に関する。
【背景技術】
【０００２】
例えば、後に記す特許文献１には、複数のテレビ信号入力部、複数の記録部、複数の再生部、複数のテレビ信号出力部を設けることによって、複数のテレビ放送チャンネルの同時録画、同時再生などを行うようにする技術が開示されている。このように、従来の放送受信装置では、複数番組の同時視聴、同時録画を行うためには、複数のチューナーを搭載する必要があり、このハードルが高かったため、現実的な実現性には乏しかった。ＢＳ（Broadcasting Satellite）デジタル放送や地上波デジタル放送においても、チューナー搭載数の制約は存在し、１００チャンネル放送といっても、１００チャンネル同時視聴・録画は不可能ではないものの、手軽に利用可能なものではない。
【０００３】
しかし、ネットワークを利用したストリーミング放送においては、この制約は存在せず、ネットワーク帯域幅に応じた複数チャンネル同時視聴・録画が実現可能である。すなわち、ネットワークという閉じた伝送路を通じてストリームを送受するので、複数の放送チャンネルを同時に受信選局するために複数のチューナーが必要になるなどのことがないためである。現在、ネットワークを利用したリアルタイム映像音声伝送を行うアプリケーションとしては、ＴＶ（Television）会議アプリケーションやストリーミングアプリケーションなどがある。
【０００４】
一般に、リアルタイム映像音声伝送においては、信頼性の低いＵＤＰ／ＩＰ（user datagram protocol/internet protocol）を使用したＲＦＣ（request for comments）−１８８９で規定されるＲＴＰ（real-time transport protocol）が用いられており、ネットワーク上でのパケットロス対応処理はアプリケーション依存である。リアルタイム映像音声パケットの到着間隔は、ネットワーク上での伝送遅延の影響を受けるが、このネットワーク上での伝送遅延は一定ではなく、ジッタを含む。さらにネットワークの経路上で輻輳が発生すると、パケットが消失するパケットロスを起こす。パケットロスに対する復旧処理というのは、リアルタイム性とのトレードオフの関係にあり、復旧処理の所要時間は非常にシビアなものがあり、応答性のよさが求められる。
【０００５】
近年、普及しつつあるＩＰ電話などでは、ＩＴＵ−Ｔ（International Telecommunication Union Telecommunication Standardization Sector）におけるＹ．１５４１として「Internet Protocol Communication Service - Performance Objectives」というタイトルで規定される、インターネットプロトコルコミュニケーションサービスの品質目標値が採用されており、国内でもＴＴＣ（Telecommunication Technology Committee）が採用している。ここでは、Ｅｎｄ−ｔｏ−Ｅｎｄの遅延（片方向遅延）として、クラスＡ（固定電話並）の場合が１００ｍｓｅｃ（ミリ秒）以下、クラスＢ（携帯電話並）の場合が１５０ｍｓｅｃ以下と規定されている。
【０００６】
この規定をベースにＴＶ電話（ＴＶ会議）を考えてみると、ＮＴＳＣ（National Television System Committee）映像信号の場合、フレーム周期が３３ｍｓｅｃ程度であり、圧縮符号化および復号化で少なくともそれぞれ１フレームの遅延があるため、６６ｍｓｅｃを使ってしまう。これにネットワーク経路での伝送遅延（国内ＡＤＳＬ（asymmetric digital subscriber line）回線で数十ｍｓｅｃ程度）が加わるため、ネットワークパケット処理に対する処理時間制約は数ｍｓｅｃのオーダーとなることが明らかである。
【０００７】
ここで、現時点でのアプリケーションが、使用しているネットワーク帯域幅は、数Ｍｂｐｓ（メガビット／秒）程度であり、ＴＶ会議で最大２Ｍｂｐｓ程度、ストリーミングで最大３Ｍｂｐｓ程度のものである。ＴＶ会議においてはＩＳＤＮ（integrated services digital network）主体であった経緯もあり、低ビットレート中心であったが、近年、ＬＡＮ（local area network）への移行が行われつつある。
【０００８】
ストリーミングもＡＤＳＬ主体であるうちは、数Ｍｂｐｓ中心と思われるが、ＦＴＴＨ（fiber to the home）の普及により、多チャンネル化も進むと考えられる。数チャンネル程度のストリームを扱うのであれば、例えば、後に記す特許文献２のように、ハードウェア実装されたリソースのうち、空いているものを使用するように通信相手とネゴシエーションするといった方法も考えられる。
【０００９】
このように、種々のネットワークを通じて、例えば、映像情報や音声情報などのリアルタイム情報をより多く伝送して利用するようにする環境が整ってきている。
【特許文献１】特開２００１−００８１４４号公報
【特許文献２】特開２００２−１５２３０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、インフラの帯域増加は非常に早く、数年後には、ネットワークの利用可能帯域もＧｂｐｓ（ギガビット／秒）のオーダーになっていることも十分に予想される。この場合、ストリーミングで１００チャンネル同時放送も可能であるし、ネットワーク経由の映像音声パケットとして、現在の１００倍以上の処理量が発生する可能性も考えられる。さて、伝送される映像音声データ（同期するようにされた映像データと音声データ（いわゆるＡＶ（Audio/Visual）データ））は、通常圧縮符号化されており、受信した映像音声データは、それぞれある決まった単位（フレーム）ごとに復号化される。
【００１１】
フレーム単位の復号化処理には、復号化処理時刻（DTS：decoding time stamp）という制約があり、また表示時刻（PTS：presentation time stamp）という制約も存在する。これらの制約条件を満たさない場合、再生映像音声に乱れが生じ、音声にノイズが乗ったり、映像フレームが飛んで映像がカクカクしたりする。例えば、映像音声フレームに同期しない、非同期の割り込み処理が頻発する場合、その処理で発生する処理遅延により、復号化処理時刻／表示時刻（DTS/PTS）といった時間的制約が守れなくなる恐れがある。
【００１２】
例えば、図２６に示すように、各処理装置（１）〜（ｎ）において、フレーム周期Ｔ内に圧縮符号化の復号化処理（デコード処理）または符号化処理（エンコード処理）を行っている場合を考える。ここではフレーム同期信号Ｆｄのタイミングで処理を開始し、次のフレーム信号のタイミングで表示を行うものとする。従って、復号化処理や符号化処理は次のフレーム信号のタイミングまでに処理を完了しなければならないという時間的制約を持つことになる。
【００１３】
なお、図２６においては、処理装置（１）では、ＭＰＥＧ（Moving Picture Experts Group）２−ＨＤの復号化処理を、処理装置（２）では、ＭＰＥＧ２−ＳＤの復号化処理を、処理装置（３）では、ＭＰＥＧ４の復号化処理を、また、処理装置（ｎ）では、ＭＰＥＧ２の符号化処理を行うようにしている場合を示している。そして、図２７は、図２６に示した各処理装置（１）〜（ｎ）の処理に対する時間的な余裕をフレーム内の空き時間として表している。図２７に示したように、処理装置（１）と処理装置（ｎ）とにおいては、空き時間は少なく、処理装置（２）と処理装置（３）とにおいては、比較的に空き時間が多い状態にあることが分かる。
【００１４】
図２８は、ネットワークからの非同期パケット処理を静的に対応付けられた処理装置で行う場合の例を示している。この図２８の例は、空き時間の少ない処理装置（１）で非同期パケットの割り込み処理を行う場合を示している。この場合、図２８に示したたように、２つ目と３つ目のフレーム周期（フレーム期間）においては、復号化処理が時間的制約条件を守れず、映像の復号化処理が破綻することを示している。
【００１５】
なお、図２８に示した例の場合には、ネットワークからの圧縮符号化映像音声パケットが、４ＭｂｐｓのＩＰパケットを想定している。ここで、ＩＰパケットを１５００バイトとすると、１秒当たりのパケット数は、４００００００／１５００／８＝３３３．３３（ｐｐｓ：pulse per second）となり、フレーム周期を３３ｍｓｅｃとすれば、平均して約１０パケット／フレーム（１フレームに１０パケット）の映像音声パケット処理が発生することになる。
【００１６】
そして、ネットワークパケットは、正に非同期パケットであり、その情報量は増大の一途にある。このため、図２８を用いて説明したようなフレーム周期Ｔ内で処理が完了せずに、処理の破綻をきたすフレームが多くなると考えられる。この場合には、例えば、特開平１１−１７７９５３号公報に開示されているように、ネットワークから入力される複数のストリームに優先度をつけておき、すべてのストリームに対する処理が間に合わない場合には、優先度の高いものを優先的に処理し、映像品質低下を防ぐといった技術を用いることが考えられる。
【００１７】
この場合、優先順位の低いストリームについては高品位に処理することができなくなってしまうことを意味する。特に、リアルタイム映像音声パケットは、最近の品質重視、ＱｏＳ（quality of service）という観点からも高い応答性が要求されるようになっているが、単一処理装置の処理能力向上だけでは、このような要求に十分に答えることができない。
【００１８】
以上のことにかんがみ、この発明は、上記問題点を一掃し、品質重視、ＱｏＳという観点からの要求に十分に答えつつ、複数の情報信号についての同期処理、非同期処理双方を整合性を乱すことなく円滑に処理できるようにする装置、方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記課題を解決するため、請求項１に記載の発明の情報処理装置は、
同期処理と非同期処理との実行が可能な複数の処理装置部と、前記複数の処理装置部のそれぞれを制御するための処理制御装置部とを備え、
前記処理制御装置部は、
非同期処理を前記処理装置部に対して割り込ませる場合に、前記非同期処理にかかる時間を見積もるようにする見積もり手段と、
各処理装置部の空き時間を算出する空き時間算出手段と、
前記空き時間算出手段からの前記複数の処理装置部の空き時間に基づいて、最大の空き時間を有する処理装置部を検索する検索手段と、
前記検索手段の検索結果と、前記見積もり手段からの見積もった所要時間とから、前記非同期処理を割り込ませる処理装置部を決定するようにする決定手段と
を備えることを特徴とする。
【００２０】
この請求項１に記載の発明の情報処理装置によれば、処理制御装置部においては、見積もり手段により、割り込ませようとする非同期処理の所要時間が見積もられ、空き時間算出手段により、各処理装置部毎の空き時間が算出される。そして、検索手段により、空き時間算出手段により算出された空き時間が最も長い処理装置部が検索される。そして、検索された空き時間の最も長い処理装置部において、見積もった所要時間がかかる非同期処理が実行可能かが決定手段により判断され、当該非同期処理を割り込ませる処理装置が決定するようにされる。
【００２１】
このように、処理制御装置部が各処理装置部における処理のスケジューリング機能を備えることにより、非同期処理を割り込ませるのにより適した処理装置部を割り当てることが可能となる。そして、各処理装置部における同期処理を破綻させることなく、非同期処理を割り込ませて処理することができるようにされる。
【００２２】
また、請求項２に記載の発明の情報処理装置は、請求項１に記載の情報処理装置であって、
前記処理装置部において実行される同期処理は、圧縮符号化処理と圧縮復号化処理の一方または両方であることを特徴とする。
【００２３】
この請求項２に記載の発明の情報処理装置によれば、各処理装置部において行われる同期処理は、例えば、映像データや音声データなどの種々のデータについての圧縮符号化処理と圧縮符号化処理の一方または両方であり、圧縮符号化処理や圧縮符号化処理を破綻させることなく、所定の周期内に同期処理を確実に終了させるようにすることができるようにされる。
【００２４】
また、請求項３に記載の発明の情報処理装置は、請求項１または請求項２に記載の情報処理装置であって、
前記複数の処理装置部は、リング状のバスによって接続されることを特徴とする。
【００２５】
この請求項３に記載の発明の情報処理装置によれば、各処理装置部はリング状のバスによって接続されるので、非同期処理のパイプライン処理の実行を可能にし、効率よく処理を実行させるようにすることができる。
【００２６】
また、請求項４に記載の発明の情報処理装置は、請求項１、請求項２または請求項３に記載の情報処理装置であって、
前記非同期処理は、映像データと音声データとの一方または両方を処理対象データとするものであることを特徴とする。
【００２７】
この請求項４に記載の発明の情報処理装置によれば、映像データや音声データを処理対象データとする非同期処理が割り込み処理として行うようにされる。この場合、映像データや音声データを処理する非同期処理を割り込み処理として高速に処理することができると共に、各処理装置部において実行されている同期処理を破綻させることもない。
【００２８】
また、請求項５に記載の発明の情報処理装置は、請求項４に記載の情報処理装置であって、
前記処理対象データは、ＲＴＰ（real-time transport protocol）が用いられて提供されるものであり、
前記処理制御装置部は、
前記処理対象データをＲＴＰ／ＵＤＰ（user datagram protocol）／ＩＰ（internet protocol）の各レイヤーに分割する分割手段と、
前記分割手段により分割された各レイヤーの対象データを異なる処理装置部に供給するようにする分配手段と
を備えることを特徴とする。
【００２９】
この請求項５に記載の発明の情報処理装置によれば、処理対象データは、ＲＴＰプロトコルが用いられて提供された映像パケットや音声パケットであり、処理対象のパケットが、分割手段によりＲＴＰ／ＵＤＰ／ＩＰの各レイヤーに分割され、分配手段によって各レイヤーのパケットが異なる処理装置部に供給されて処理するようにされる。
【００３０】
これにより、非同期処理にかかる時間を細かく見積もることができると共に、処理を細分化して、処理装置部にかかる負荷を分散し、割り込ませる非同期処理を効率よく処理することができると共に、各処理装置部において行われる同期処理を破綻させることもないようにされる。
【発明の効果】
【００３１】
この発明によれば、非同期処理を行うためのスケジューリング機能を有し、非同期処理を行うために、より適した処理装置を割り当てることが可能となる。
【００３２】
また、圧縮符号化処理または圧縮復号化処理のどちらか、もしくはその組み合わせを同期処理として行う際、その表示時刻制約を守るために、より適した処理装置を非同期処理に割り当てることが可能となり、映像音声の破綻を未然に防ぐ効果がある。
【００３３】
また、処理装置部がリング状のバスで接続されることにより、非同期処理のパイプライン処理を可能にし、より効率よく非同期処理を行うようにすることができる。そして、各処理装置部において同期処理が行われている場合には、同期処理を破綻させることなく、非同期処理を割り込ませて実行させることができる。
【００３４】
また、非同期処理が、映像データや音声データなどであっても、それらを高速に処理する環境を整えることができる。同期処理の時刻制約を守りつつ、例えば、ネットワーク経由で入力される映像音声パケット処理を割り込み処理として高速に処理することが可能となる。
【００３５】
また、圧縮符号化処理または圧縮復号化処理のどちらか、もしくはその組み合わせを同期処理として行う際、その時刻制約を守りつつ、例えば、ネットワーク経由で入力されるＲＴＰが用いられた映像音声パケット処理を割り込み処理として高速に処理するとともに、ＲＴＰ／ＵＤＰ／ＩＰパケット処理をレイヤー毎に分割し、それぞれ異なる処理装置部で処理することにより、さらに効率のよい制御、処理を行う要にすることができる。
【発明を実施するための最良の形態】
【００３６】
以下、図を参照しながら、この発明による装置、方法の一実施の形態について説明する。以下に説明する実施の形態においては、複数の圧縮符号化映像音声ストリームの同時デコードをアプリケーションとする機器に、この発明による装置、方法を適用した場合を例にして説明する。
【００３７】
なお、複数の圧縮符号化映像音声ストリームの同時デコードを行うアプリケーションとしては、例えば、複数のテレビ放送番組の同時視聴・録画や多地点ＴＶ会議などさまざまなものがあるが、以下に説明する実施の形態においては、多視点映像音声ストリームを用いる任意視点映像再生装置に、この発明による装置、方法を適用した場合を例にして説明する。
【００３８】
［任意視点映像マルチカメラシステムについて］
まず、この発明の一実施の形態が適用された任意視点映像再生装置において利用される多視点映像音声ストリームを形成してネットワークに送出する任意視点映像マルチカメラシステム（以下、単にマルチカメラシステムという。）について説明する。
【００３９】
図１、図２は、多視点映像音声ストリームの生成送出装置としてのマルチカメラシステムの一例を説明するための図である。この例のマルチカメラシステムは、図１に示すように、競技場（ここではバスケットコートＢｃｔ）を撮影する映像音声収録機であるカメラを複数台設けて構成したものである。
【００４０】
この例の場合には、図１Ａに示すように、バスケットコートＢｃｔの周囲を囲むように８台のカメラ５（１）〜５（８）を設ける共に、図１Ｂに示すように、バスケットコートＢｃｔをその上方向から撮影する３台のカメラ５（９）〜５（１１）を設けて構成したものである。したがって、この例のマルチカメラシステムの場合には、バスケットコートＢｃｔを異なる１１個の地点（視点）から同時に撮影することができるようにしたものである。
【００４１】
なお、上述もしたように、カメラ５（１）〜５（１１）のそれぞれは、映像音声収録機であり、映像だけでなく、音声も収録することができるものであり、映像と音声とを同時に収録し、それらを同期をとって処理することができるものである。
【００４２】
そして、カメラ５（１）〜５（１１）のそれぞれにおいて収録された映像信号と音声信号とは、図２に示したように、カメラ５（１）〜５（１１）のそれぞれに対応して設けられる映像音声圧縮符号化部６（１）〜６（１１）に供給されて、圧縮符号化処理される。
【００４３】
映像音声圧縮符号化部６（１）〜６（１１）のそれぞれにおいて圧縮符号化された映像データと音声データとを含む映像音声ストリームは、多重化部７に供給される。多重化部７は、これに供給された映像音声圧縮符号化部６（１）〜６（１１）のそれぞれからの映像音声ストリームを、カメラごとに分離可能なように多重化（具体的にはＩＰパケット化）して多視点映像音声ストリームを形成し、これをネットワークに送出する。
【００４４】
なお、映像音声圧縮符号化部６（１）〜６（１１）において用いられる圧縮符号化方式としては、映像では、例えば、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４、ＭＪＰＥＧ２０００などが考えられる。音声では、例えば、ＭＰＥＧ２−ＡＡＣ（MPEG2-advanced audio coding）、ＡＣ３（Dolby digital Audio code number 3）、ＡＴＲＡＣ−３（adaptive transform acoustic coding 3）などが考えられる。
【００４５】
また、多重化部７において用いられる多重化方式としては、ＭＰＥＧ２−ＴＳ（MPEG2-transport stream）やＭＰＥＧ２−ＰＳ（MPEG2-program stream）などがある。また、ネットワーク上での伝送プロトコルとしては、例えば、ＲＦＣ１８８９で定義される「ＲＴＰ：A Transport Protocol for Real-Time Applications.」をベースにしたものがあり、ＲＴＰを用いてＭＰＥＧ２を伝送する際には、ＲＦＣ２０３８で定義される「RTP Payload Format for MPEG1/MPEG2 Video.」などが用いられる。
【００４６】
また、ここでは、説明を簡単にするため、カメラ５（１）〜５（１１）が用いられた場合を説明した。しかし、設置されるカメラの台数は、この例の場合に限るものではなく、任意の台数を設けることが可能である。
【００４７】
このようにして、複数のカメラによって同時に収録された映像と音声とが多重化された多視点映像音声ストリーム（以下、単に映像音声ストリームという。）がネットワークを通じて配信され、後述する任意視点映像再生装置において利用され、任意の視点における映像を再生するようにすることができるようにされる。
【００４８】
［任意視点映像再生方式について］  
次に、任意視点映像再生方式の概要について説明する。図３は、任意視点映像再生方式について説明するための図である。ここでは説明を簡単にするため、図３に示すように、４台のカメラ（Ａ）〜（Ｄ）を格子状に配置したマルチカメラシステムからの映像音声ストリームを用いる場合を例にして説明する。
【００４９】
図３に示すように、カメラ（Ａ）のカメラ位置（設置位置）は位置（ｉ，ｊ）であり、カメラ（Ｂ）のカメラ位置は位置（ｉ＋１，ｊ）であり、カメラ（Ｃ）のカメラ位置は位置（ｉ＋１，ｊ＋１）であり、カメラ（Ｄ）のカメラ位置は位置（ｉ，ｊ＋１）であるとする。また、任意視点位置を位置（ｘ，ｙ）とする。
【００５０】
任意視点映像再生方式としては、以下に示すように、大きく分けると、  
（１）任意視点位置（ｘ，ｙ）から最も近いカメラ映像を使用する。  
（２）任意視点位置（ｘ，ｙ）の映像を近傍のカメラ映像より合成する。  
（３）複数カメラによる立体映像を生成する。  
の３つの方法が考えられる。
【００５１】
そして、（１）の場合には、切り替える可能性のあるカメラ位置のカメラからの映像は、複数本同時にデコードしておく必要がある。（２）の場合には、合成のための近傍のカメラ位置の複数のカメラからの複数の映像を同時にデコードしておく必要がある。（３）の場合には、立体映像生成に必要な複数のカメラからの映像を同時にデコードしておく必要がある。このように、（１）〜（３）の何れの方式の場合も近隣の圧縮符号化された複数映像音声ストリームを同時デコードしておく必要があることが分かる。
【００５２】
上述の（１）〜（３）のいずれかが用いられて、任意視点位置（ｘ，ｙ）から見た場合の映像が形成されて再生され、ユーザに提供するようにされる。そして、図１、図２を用いて説明したような、多くのカメラが用いられて構成されたマルチカメラシステムからの多視点映像音声ストリームを処理して任意視点位置から見た場合の映像を再生する場合には、同時に処理すべき映像データの数も、用いられらカメラの台数に応じて多くなり、その処理は膨大なものとなることが分かる。
【００５３】
［任意視点映像再生装置について］
次に、この発明による装置、方法が適用されたこの実施の形態の任意視点映像再生装置について説明する。ここでは、例えば、図１、図２を用いて説明したような、例えばｎ（ｎは２以上の整数）台のカメラを備えたマルチカメラシステムからのｎ個の映像音声ストリームが多重化された多視点映像音声ストリームを処理することが可能な任意視点映像再生装置を例にして説明する。
【００５４】
図４は、この実施の形態の任意視点映像再生装置を説明するための図である。図４に示すように、この実施の形態の任意視点映像再生装置は、ｎ個の処理装置部１（１）〜１（ｎ）と、それらをつなぐデータバス（この例ではリングバス）２と、処理制御装置部３とネットワークインターフェース４とを備えたものである。
【００５５】
ここで、ネットワークインターフェース４は、ネットワークを通じて提供される多視点映像音声ストリームを取り込んで、これを処理制御装置部３に供給するようにするものである。処理制御装置部３は、この実施の形態の任意視点映像再生装置の各部を制御するものであり、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等を備えて構成されたマイクロコンピュータである。
【００５６】
そして、処理制御装置部３は、各処理装置部１（１）〜１（ｎ）のそれぞれに対して、デコードすべき映像音声ストリームを割り振ったり、各処理装置部１（１）〜１（ｎ）における処理スケジュールを管理したり、また、具体的な任意視点映像再生方式を指示するようにするなどの処理を行う。
【００５７】
各処理装置部１（１）〜１（ｎ）のそれぞれは、割り当てられた映像音声ストリームのデコード（圧縮復号化）処理を行うと共に、処理制御装置部３からの制御に従い、図３を用いて説明したいずれかの方式に基づいて、他の処理装置部からのデコード処理後の映像データをも考慮し、任意視点における映像を再生するようにするものである。
【００５８】
そして、処理制御装置部３は、各処理装置部１（１）〜１（ｎ）において行うようにする同期処理だけでなく、非同期処理も制御することができるものである。図５は、同期処理や非同期処理を処理装置部１（１）〜１（ｎ）のそれぞれにおいて行わせるようにするために制御処理装置部３において形成されて、管理される制御情報の構成例を説明するための図である。
【００５９】
なお、この実施の形態において、処理装置部１（１）〜１（ｎ）のそれぞれにおいて行われる同期処理は、フレーム同期を遵守する必要がある自装置に割り当てられた映像音声ストリームのデコード処理であり、非同期処理は、それ以外の各種の処理が該当することになる。
【００６０】
そして、この実施の形態において、制御情報は、管理情報（図５Ａ）と、同期処理情報（図５Ｂ（１）、図５Ｂ（２））と、非同期処理情報（図５Ｃ（１）、図５Ｃ（２））とからなるようにされている。管理情報（図５Ａ）は、処理装置番号、状況、同期処理情報へのポインタ、非同期処理情報へのポインタからなるものであり、どの処理装置部にどのような処理を実行させるようにしているかを管理するための情報である。
【００６１】
同期処理情報（図５Ｂ（１）、図５Ｂ（２））は、同期処理番号、状況、次処理へのポインタ、処理装置番号、必要処理時間、完了制約時刻、開始予定時刻、開始時刻、完了予定時刻、完了時刻からなり、同期処理を完了制約時刻までに完了させるように管理すると共に、同期処理の状況を管理するための情報である。また、非同期処理情報（図５Ｃ（１）、図５Ｃ（２））は、非同期処理番号、状況、次処理へのポインタ、処理装置番号、受付時刻、開始予定時刻、開始時刻、完了予定時刻、完了時刻からなり、非同期処理の状況を管理するための情報である。
【００６２】
しかし、図５に示したように、同期処理情報、非同期処理情報を用いて各処理装置部１（１）〜１（ｎ）における同期処理と非同期処理との実行を管理しても、余裕なく同期処理を実行している処理装置部に対して非同期処理の実行を割り振ってしまうと、その処理装置部における同期処理が破綻してしまう。そこで、この実施の形態の任意視点映像再生装置においては、処理制御装置部３において、各処理装置部１（１）〜１（ｎ）で実行する処理のスケジューリングを詳細に行うことによって、同期処理の破綻を防止するようにしている。
【００６３】
［処理制御装置部３の構成について］
図６は、処理制御装置部３について説明するためのブロック図である。図６に示すように、処理制御装置部３は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）がＣＰＵバス３５を通じて接続されてマイクロコンピュータの構成とされた制御部３０と、各処理装置部１（１）〜１（ｎ）との通信を行うためのインターフェース（以下、Ｉ／Ｆと略称する。）３６と、スケジューリング部３７と、時計回路３８とを備えると共に、ネットワークインターフェース４が接続するようにされている。
【００６４】
そして、スケジューリング部３７は、図６に示したように、各処理装置部における処理時間を見積もる（予測する）ための処理時間見積り部３７１と、各処理装置部の空き時間を算出する空き時間算出部３７２と、目的とする非同期処理を割り当てる処理装置部を検索し、選択（決定）する処理を行う検索選択部３７３とを備えたものである。
【００６５】
なお、図６において、二重線で囲んだ処理時間見積り部３７１、空き時間算出部３７２、検索選択部３７３の各部の機能は、制御部３０のＣＰＵ３１によって実行されるプログラム（ソフトウェア）によって実現することも可能である。すなわち、スケジューリング部３７の機能は、ＣＰＵ３１において実行されるプログラムによっても実現することができる。
【００６６】
そして、以下に詳しく説明するように、処理制御装置部３は、スケジューリング部３７の機能により、非同期処理を実行するに際して、その処理の処理時間を見積もり（予測し）、各処理装置部１（１）〜１（ｎ）の空き時間を算出し、目的とする当該非同期処理を実行するのに十分な空き時間を有する処理装置部を検索し、当該非同期処理の実行を行う処理装置部を選択（決定）するようにしている。
【００６７】
なお、映像音声ストリームの各処理装置部への割り振りは、制御部３０の機能により行うようにされている。もちろん、映像音声ストリームの各処理装置部への割り振りを行う処理部を設けるようにすることも可能である。また、時計回路３８は、現在時刻を提供するものである。
【００６８】
そして、上述のようにスケジューリング部３７の機能により、任意視点映像再生処理を行うために、各処理装置部１（１）〜１（ｎ）において同期処理である映像音声ストリームのデコード処理を行うようにしていても、各処理装置部における同期処理を破綻させることなく、非同期処理を割り込ませて迅速かつ適正に実行させるようにすることができるようにしている。
【００６９】
以下、この実施の形態の任意視点映像再生装置の主に処理制御装置部３の動作について詳細に説明する。まず、同期処理に関して、ＭＰＥＧ２−ＰＥＳ（MPEG2-packetized elementary stream）形式の映像音声ストリームを処理する場合を例にして説明する。
【００７０】
ＭＰＥＧ２−ＰＥＳ形式の映像音声ストリームにおける映像信号では、これに含まれるＤＴＳ（Decode Time Stamp）とＰＴＳ（Presentation Time Stamp）を用いて、映像信号のデコードタイミングと表示タイミングを制御している。ＭＰＥＧ２において、Ｂピクチャー（Bidirectionally predictive picture）が存在する場合、ＤＴＳとＰＴＳは一致しない。双方向予測のためのフレーム入れ替えが必要となるためである。
【００７１】
ＰＴＳは表示フレーム周期であり、ＰＴＳが示す表示時刻には当該フレームのデコードが完了して表示可能となっていることが要求される。この時刻制約を表現するために、次の変数を定義する。  
（ａ）映像フレームデータ表示時刻：ＰＴＳ
（ｂ）フレーム復号化処理完了予定時刻：ＦＤＴＳ
（ｃ）フレーム復号化処理開始時刻：ＳＤＴＳ
（ｄ）現在時刻：ＣＴＳ。
【００７２】
フレーム復号化処理完了予定時刻（ＦＤＴＳ）は、以前のフレーム処理時間情報や現時点において処理中のマクロブロック位置情報などを統計的に処理することにより推定する。例えば、同一のフレームタイプを持つ、以前処理したフレームの処理時間情報を平均したものに対し、未処理マクロブロック数を乗じて、フレーム内全マクロブロック数で除算した結果などを用いる。このフレーム復号化処理完了予定時刻（ＦＤＴＳ）の算出が、図６に示した処理時間見積り部３７１で行われる。
【００７３】
また、映像フレームデータ表示時刻（ＰＴＳ）は、処理対象の映像信号に付加されているＰＴＳを用い、フレーム復号化処理開始時刻（ＳＤＴＳ）、現在時刻（ＣＴＳ）は、処理制御装置部３が備える時計回路３８から取得することが可能である。これら映像フレームデータ表示時刻（ＰＴＳ）、フレーム復号化処理開始時刻（ＳＤＴＳ）、現在時刻（ＣＴＳ）の取得は、制御部３０あるいは、処理時間見積り部３７１により行われる。
【００７４】
そして、フレーム復号化処理開始時刻（ＳＤＴＳ）と、フレーム復号化処理完了予定時刻（ＦＤＴＳ）とから、非同期処理にかかる時間（非同期処理の所要時間）を求めることができる。この非同期処理の所要時間の見積もりが、処理時間見積り部において行われることになる。
【００７５】
そして、表示時刻制約に対する処理の余裕度合いは、次の（式１）に示すように処理マージンＸとして表すことができる。  
処理マージンＸ＝ＰＴＳ−ＦＤＴＳ  …（式１）  
この（式１）により、処理マージンＸを求める処理が、図６に示した空き時間算出部３７２において行われる。
【００７６】
この（式１）に示すように、決められている映像フレームデータ表示時刻（ＰＴＳ）と、算出して求めたフレーム復号化処理完了予定時刻（ＦＤＴＳ）との差分を求めることにより、非同期割り込み処理に利用できる時間（空き時間）として、処理マージンＸを求めることができるのである。したがって、非同期割り込み処理に利用できる時間は処理マージンＸ以下であることが分かる。
【００７７】
そして、処理制御装置部３は、ｎ個の処理装置部１（１）〜１（ｎ）がそれぞれフレーム復号化処理（圧縮復号化処理）を行っている場合、それぞれの処理装置部１（１）〜１（ｎ）における処理マージンＸ（１）〜Ｘ（ｎ）を算出する。処理制御装置部３は、非同期処理を割り込みで実行させる処理装置部を、処理装置部１（１）〜１（ｎ）毎に求めた処理マージンＸ（１）〜Ｘ（ｎ）と、処理時間見積り部３７１において算出したフレーム復号化処理完了予定時刻ＦＤＴＳとフレーム復号化処理開始時刻（ＳＤＴＳ）とに基づいて算出される非同期処理の所要時間に基づいて選択する。
【００７８】
具体的には、例えば、その時点で最も処理マージンの大きい処理装置部を検索し、その処理装置部の処理マージンＸが、非同期処理の所要時間以上であれば、その処理装置部を非同期処理を割り込ませる処理装置部として選択（決定）する。この最も処理マージンの大きな処理装置部を検索し、非同期処理を割り込ませるに十分な処理マージンを有する処理装置部を選択する処理が、検索選択部３７３で行われる。
【００７９】
このようにすることによって、非同期処理を割り込ませても、既に実行するようにされている同期処理が破綻してしまう可能性を最小限に抑えることが可能となる。
【００８０】
ところで、処理装置部の動作状態が、フレーム復号化処理と次のフレーム復号化処理の間にあり、アイドル状態となっている場合があると考えられる。このような場合に、非同期割り込み処理を安易に実行させてしまうと、次のフレーム復号化処理の制約条件を守れなくなる恐れがある。したがって、この場合も同様なマージンを考える必要がある。
【００８１】
この場合には、さらに変数として、次フレーム復号化開始予定時刻：ＮＳＤＴＳを定義する。ＮＳＤＴＳの値は、次に復号化すべきフレームデータに付随するＤＴＳである。まだ、次のフレームデータを取得していない場合には、過去のＤＴＳ値間隔等に基づいて決められる。そして、この場合の１番目の処理装置部に対する処理マージンＸ（１）は、次の（式２）のようにして求めることができる。  
処理マージンＸ（１）＝ＮＳＤＴＳ（１）−ＣＴＳ  …（式２）  
この場合、割り込ませる非同期処理（非同期割り込み処理）に利用できる時間は処理マージンＸ（１）以下である。２番目からｎ番目までの処理装置部に対する処理マージンＸ（２）〜Ｘ（ｎ）も同様な方法で求めることができる。
【００８２】
さらに、まだデコードを開始していない次フレームでのフレーム復号化処理完了予定時刻が推定可能な状況であれば、そのマージン分を加算することも考えられる。この場合の処理マージンＸ（１）は、次の（式３）のように求めることができる。  
処理マージンＸ（１）＝（ＮＳＤＴＳ（１）−ＣＴＳ）  
＋（ＮＰＴＳ（１）−ＮＦＤＴＳ（１））…（式３）  
この場合、割り込ませる非同期処理（非同期割り込み処理）に利用できる時間は、（式３）により求めた処理マージンＸ（１）以下である。
【００８３】
なお、（式３）におけるＮＰＴＳ、ＮＦＤＴＳは、それぞれ次フレームに対するＰＴＳ、ＦＤＴＳを意味するものであり、ＮＰＴＳは、次のフレームの映像フレームデータ表示時刻であり、ＮＦＤＴＳは、次のフレームにおけるフレーム復号化処理完了予定時刻を示すものである。
【００８４】
そして、映像音声ストリームを構成する通常の各映像音声パケットは、例えばＲＴＰパケットの場合、ＩＰパケット長が１５００バイト程度であり、その処理時間を予測することは比較的に容易である。このため、上述した（式３）を利用し、フレーム復号化処理と次のフレーム復号化処理の間にあり、アイドル状態となっている処理装置部に対しても、非同期処理を割り込ませることが可能であるか否かを判断することができる。
【００８５】
しかしながら、例外的な処理が発生した場合や、処理対象のパケットが可変長パケットである場合においては、上述した仕組みでは対応しきれない場合が考えられる。これら例外的な処理が発生した場合と、処理対象のパケットが可変長パケットである場合とについて説明する。
【００８６】
［例外的な処理が発生した場合］
例えば、受信しているＲＴＰ映像ストリームにおいて、パケットロスが生じた場合を考える。この場合には、ロスしたパケットの特定とそれに対する何らかの復元処理を行う必要がある。復元処理には、ＦＥＣ（forward error correction）による誤り訂正やパケット再送要求などが考えられる。これらの例外的な処理が発生した場合には、その時点で再度スケジューリングを行う必要があり、処理マージンを利用して、当該処理を実行させる処理装置部を選択する。
【００８７】
復元処理のために異なる処理装置部を使用する場合には、処理装置部間でデータの授受が必要となるため、そのデータ転送のオーバヘッドも処理量として考慮する必要がある。例えば、図４に示したように、各処理装置がリングバスで接続される場合には、隣接する処理装置部へのデータ転送オーバヘッドは他の処理装置に対するものより小さいものとなる。したがって、処理装置部選択の際に、データ転送オーバヘッドもパラメータとして使用する。
【００８８】
このように、パケットロスが発生した場合であっても、復元処理をも考慮して、上述もしたように、各処理装置部を対象にして、非同期処理の再スケジューリングを行うことによって、所定期間内に終了させる必要のある同期処理が破綻することを確実に防止することが可能である。
【００８９】
［可変長パケットの場合］
上述もしたように、ネットワークを通じて提供を受ける映像音声ストリームのパケットは、可変長パケットである場合がある。したがって、パケット処理時間の見積もり誤差が問題となりうる。例えば、６４バイトのパケットと１５００バイトのパケットとでは処理時間の違いが顕著である。
【００９０】
この場合、映像音声ストリームがプロトコルとしてＲＴＰを用いているのであれば、ＲＴＰはＵＤＰ／ＩＰを利用しているので、処理対象のパケットをＩＰ（internet Protocol）／ＵＤＰ（user datagram protocol）／ＲＴＰ（real-time transport protocol）というように、レイヤー毎の処理に分割することにより、処理時間の見積もり誤差を減らし、かつ、スケジューリング制御単位を細かくすることにより、より柔軟な制御が可能となる。
【００９１】
また、図７に示すように、処理制御装置４が、各処理装置部１（１）〜１（ｎ）に対し、ＩＰ／ＵＤＰ／ＲＴＰといった各レイヤーの処理をそれぞれ割り振り、データバス（リングバス）２によるパイプライン処理を行うように構成すれば、各処理装置部１（１）〜１（ｎ）に対する所要プログラムメモリサイズを最小化しつつ、パイプライン処理による高速並列化処理が可能となる。
【００９２】
なお、図７に示した例の場合には、処理装置部１（１）に対してＩＰレイヤーの処理を割り当て、処理装置部１（２）に対してＵＤＰレイヤーの処理を割り当て、また、処理装置部１（３）に対してＲＴＰレイヤーの処理を割り当て、処理装置部１（１）、１（２）、１（３）における処理をパイプライン処理として、高速並列化処理することにより、処理対象のパケットが可変長パケットであっても、迅速な処理が可能となる。
【００９３】
［各同期タイミングが各処理装置部で異なる場合について］
また、各処理装置部１（１）〜１（ｎ）において実行される同期処理の同期タイミングがそもそも異なっているという場合もある。このような場合においても、各処理装置部における同期処理を考慮して、非同期処理のスケジューリングを行うことによって、所定期間内に終了させる必要のある各処理装置部１（１）〜１（ｎ）における同期処理が破綻することを確実に防止することが可能である。
【００９４】
図８は、処理装置部１（１）、１（２）、１（３）における同期処理について説明するための図である。図８に示したように、処理装置１（２）において実行されている同期処理は、処理装置部１（１）において実行されている同期処理とは位相が異なっているものである。また、図８に示したように、処理装置１（３）において実行されている同期処理は、処理装置部１（１）、１（２）において実行されている同期処理とは位相、周期とも異なっているものである。
【００９５】
このように、各処理装置部１（１）〜１（ｎ）で実行されている同期処理が、各処理装置間で位相、周期が異なっている場合であっても、処理制御装置部３は、図４を用いて説明したように、各処理装置部１（１）〜１（ｎ）の動作状態を把握しているので、各処理装置部１（１）〜１（ｎ）の動作状態に応じて、適切にスケジューリングを行うことが可能である。
【００９６】
［処理装置部の構成例について］
上述のようにして、処理制御装置部３によって、同期処理や非同期処理の処理スケジュールが管理される処理装置部１（１）〜１（ｎ）の構成例について説明する。図９は、処理装置部１の構成例を説明するためのブロック図である。
【００９７】
図９に示すように、この実施の形態の処理装置部１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＥＥＰＲＯＭ１４が、ＣＰＵバス１５を通じて接続されて、マイクロコンピュータの構とされた制御部１０と、データバス２への接続を実現するための通信インターフェース（図９においては、通信Ｉ／Ｆと記載。）１６、処理制御装置部３との間で種々の情報の送受を行うためのインターフェース（図９においては、Ｉ／Ｆと記載。）と、映像信号処理部１８、映像信号の出力端１９、音声信号処理部２０、音声信号の出力端２１を備えたものである。なお、映像信号処理部１８、音声信号処理部２０の機能は、制御部１０のＣＰＵによって実行されるプログラム（ソフトウェア）によっても実現することができる。
【００９８】
そして、上述もしたように、処理制御装置部３を通じて供給される映像音声ストリームと制御信号との供給を、Ｉ／Ｆ１７を通じて受け付けて、制御部１０が映像信号処理部１９８、音声信号処理部２０を制御し、映像データのデコード処理、音声データのデコード処理を行って、映像、音声を再生することができるようにしている。
【００９９】
そして、各処理装置部１（１）〜１（ｎ）においての処理は、非同期処理を割り込ませるようにいても、同期処理については破綻をきたすことがないように処理制御装置部３によりスケジューリングするようにされているので、複数の処理装置部１（１）〜１（ｎ）を備えた信頼性の高い任意視点映像再生装置を実現することができる。
【０１００】
なお、上述した任意視点映像再生方式に基づいて、任意視点における映像を再生するようにする処理は、処理制御装置部３の制御に応じて、処理装置部１（１）〜１（ｎ）のいずれかが各処理装置部からの再生信号の供給を受けて行うようにしたり、あるいは、各処理装置部からの再生信号の供給を受けて、処理制御装置部３が行うようにしたりすることができる。あるいは、各処理装置部からの再生信号の供給を受けて、任意視点における映像を再生するようにする任意視点映像再生装置部を設けるようにしてもよい。
【０１０１】
［処理制御装置２の動作のまとめ］
次に、この実施の形態の処理制御装置部３の動作について、図１０のフローチャートを参照しながらまとめておく。この図１１に示す処理は、図６に示した処理制御装置部３の制御部３０の制御により、主にスケジューリング部３７において行うようにされる処理である。
【０１０２】
処理制御装置部３の制御部３０は、例えば、ネットワークを通じて非同期処理すべき映像音声ストリームを受信した場合などにおいて、図１１に示す処理を開始する。そして、まず制御部３０は、処理時間見積り部３７１を制御して、フレーム復号化処理完了予定時刻（ＦＤＴＳ）を算出し、このフレーム復号化処理完了予定時刻（ＦＤＴＳ）とフレーム復号化処理開始時刻（ＳＤＴＳ）とから非同期パケット処理の所要時間Ｔａを見積もるようにする（ステップＳ１）。
【０１０３】
さらに、制御部３０は、空き時間算出部３７２を制御して、各処理装置部の映像フレームデータ表示時刻（ＰＴＳ）と、ステップＳ１で求めたフレーム復号化処理完了予定時刻（ＦＤＴＳ）とから、ｉ番目の処理装置部１（ｉ）に対する処理マージン（空き時間）Ｘ（ｉ）を処理装置部１（１）〜１（ｎ）に対して算出する（ステップＳ２）。そして、制御部３０は、検索選択部３７３を制御して、空き時間最大値Ｍａｘ（Ｘ（ｉ））を有する処理装置部Ｐｍを検索し（ステップＳ３）、空き時間最大値Ｍａｘ（Ｘ（ｉ））は、非同期パケット処理にかかる所要時間Ｔａよりも大きいか否かを判断する（ステップＳ４）。
【０１０４】
ステップＳ４の判断処理において、空き時間最大値Ｍａｘ（Ｘ（ｉ））が、所要時間Ｔａよりも大きいと判断したときには、空き時間最大値Ｍａｘ（Ｘ（ｉ））を有する処理装置部Ｐｍで実行するように制御し（ステップＳ５）、処理装置部Ｐｍに対する空き時間の更新を行う（ステップＳ６）。すなわち、処理制御装置部３の制御部３０は、自己が管理している処理装置部１（１）〜１（ｎ）の管理情報のうち、非同期処理を割り込ませた処理装置部Ｐｍの管理情報を更新する。
【０１０５】
そして、制御部３０は、レイヤー毎の処理か否か、すなわち、ＩＰ／ＵＤＰ／ＲＴＰのレイヤー毎に処理するようにされているか否かを判断する（ステップＳ７）。ステップＳ７の判断処理において、レイヤー毎の処理ではないと判断したときには、この図１１に示す処理を終了する。
【０１０６】
また、ステップＳ７の判断処理において、レイヤー毎の処理が行われていると判断したときには、制御部３０は、全レイヤーの処理が完了したか否かを判断し（ステップＳ８）、全レイヤーの処理が完了していないと判断したときには、ステップＳ１からの処理を繰り返すようにする。また、ステップＳ８の判断処理におい、全レイヤーについての処理が完了したと判断したときには、この図１１に示す処理を終了する。
【０１０７】
また、ステップＳ４の判断処理において、空き時間最大値Ｍａｘ（Ｘ（ｉ））は、非同期パケット処理にかかる所要時間Ｔａよりも大きくないと判断したときには、レイヤー毎の処理か否かを判断する（ステップＳ９）。ステップＳ９の判断処理において、レイヤー毎の処理であると判断したときには、レイヤーに分解しても、非同期処理を割り込ませるために十分な空き時間最大値Ｍａｘ（Ｘ（ｉ））を有する処理装置部は存在しないので、対応可能な処理装置部が存在しない場合の処理、例えば、メッセージ表示を行うなどして（ステップＳ１０）、この図１１に示す処理を終了する。
【０１０８】
また、ステップＳ９の判断処理において、レイヤー毎の処理ではないと判断したときには、制御部３０は、処理対象のパケットをＩＰ／ＵＤＰ／ＲＴＰの各レイヤーに分離し、レイヤー毎に処理を行うようにして（ステップＳ１１）、ステップＳ１からの処理を繰り返すようにする。
【０１０９】
これにより、上述もしたように、複数の処理装置部１（１）〜１（ｎ）のそれぞれにおける同期処理を破綻させることがないようにして、非同期処理を割り込ませる処理装置部を的確に選択し、割り込みの非同期処理をも確実かつ効率的に処理することができる。
【０１１０】
なお、各レイヤーの分割は処理装置部３０が行うようにし、分割したレイヤーの各処理装置部への分配は、制御部３０の制御部３０がＩ／Ｆ３６を制御して行う要にすればよい。もちろん、各レイヤーの分割処理を行う分割処理部や分配制御を行う分配制御部を設けるようにしてももちろんよい。
【０１１１】
また、上述した任意視点映像再生装置の場合には、各処理装置部１（１）〜１（ｎ）において映像音声ストリームのデコード処理を行うものとして説明した。しかし、これに限るものではない。映像音声データをエンコードする装置にもこの発明を適用することができる。すなわち、図１、図２に示したマルチカメラシステムにおいて、いずれかの映像音声圧縮符号化部６が処理制御装置部として機能するようにするか、別に処理制御装置部を設けるようにすることにより、同期処理の破綻を起こさせることなく、非同期処理の割り込みをも適切に行うようにすることができる。
【０１１２】
すなわち、同期処理としては、映像音声のデコード（圧縮復号化）処理と、エンコード（圧縮符号化）処理との一方、あるいは、両方である場合が考えられる。この他、映像信号や音声信号にかかる処理だけでなく、他のデータについての処理であっても、同期を取るようにして行わなければならない種々の処理を上述場合の同期処理として扱うようにすることももちろんできる。
【０１１３】
したがって、この発明は、映像や音声を処理する情報処理装置だけでなく、種々のデータを処理する各種の情報処理装置にこの発明を適用することができる。例えば、パーソナルコンピュータ、種々のゲーム機器、その他の各種の情報処理装置にこの発明を適用することができる。
【０１１４】
［情報処理装置の他の構成例について］
最近、グリッド・コンピューティングが注目されている。グリッド・コンピューティングは、ネットワークにつながる複数の情報処理装置を協調動作させて高い演算性能を実現する技術である。そして、グリッド・コンピューティングの技術が用いられ形成され、複数の情報処理装置間で分散処理を行うネットワークシステムで用いられる種々の情報処理装置において、マルチプロセッサシステムを用いることが考えられ、このような情報処理装置に、あるいは、そのような情報処理装置が用いられて形成されるネットワークシステムにこの発明を適用することが可能である。
【０１１５】
〔ネットワークシステムおよび情報処理装置の基本的構成：図１１〜図１４〕
図１１は、情報処理装置を複数設けて構成したネットワークシステムの一例を示し、ネットワーク９０を介して複数の情報処理装置１００、２００、３００、４００が接続されたものである。
【０１１６】
（情報処理装置および情報処理コントローラ）
情報処理装置１００、２００、３００、４００は、それぞれ後述のような各種のＡＶ（Ａｕｄｉｏ  ａｎｄ  Ｖｉｓｕａｌ）機器やポータブル機器として構成することが可能であり、上述した実施の形態の多視点映像再生装置として構成することができるものである。また、複数の情報処理装置によって構成するネットワークシステムを多視点映像再生装置として構成するようにすることもできるものである。
【０１１７】
そして、以下に説明するように、各情報処理装置１００、２００、３００、４００は、処理制御装置部３としてのメインプロセッサ１２１と、処理装置部1としての複数個のサブプロセッサ１２３とを備えたものである。
【０１１８】
情報処理装置１００について示すと、情報処理装置１００は、コンピュータ機能部として情報処理コントローラ１１１を備える。情報処理コントローラ１１１は、メインプロセッサ１２１−１、サブプロセッサ１２３−１，１２３−２，１２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）１２５−１およびＤＣ（ディスクコントローラ）１２７−１を有する。
【０１１９】
メインプロセッサ１２１−１は、サブプロセッサ１２３−１，１２３−２，１２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１１（情報処理装置１００）の全般的な管理とを行う。ただし、メインプロセッサ１２１−１内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ１２１−１はサブプロセッサとしても機能することになる。メインプロセッサ１２１−１は、ＬＳ（ローカルストレージ）１２２−１を有する。
【０１２０】
サブプロセッサは、１つでもよいが、望ましくは複数とする。この例は、複数の場合である。
【０１２１】
各サブプロセッサ１２３−１，１２３−２，１２３−３は、メインプロセッサ１２１−１の制御によって並列的かつ独立に、プログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ１２１−１内のプログラムがサブプロセッサ１２３−１，１２３−２，１２３−３内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ１２１−１内で動作するプログラムである。各サブプロセッサ１２３−１，１２３−２，１２３−３も、ＬＳ（ローカルストレージ）１２４−１，１２４−２，１２４−３を有する。
【０１２２】
ＤＭＡＣ１２５−１は、情報処理コントローラ１１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ１２６−１に格納されているプログラムおよびデータにアクセスするものであり、ＤＣ１２７−１は、情報処理コントローラ１１１に接続された外部記録部１２８−１，１２８−２にアクセスするものである。
【０１２３】
外部記録部１２８−１，１２８−２は、固定ディスク（ハードディスク）でも、リムーバブルディスクでもよく、また、ＭＯ,ＣＤ±ＲＷ，ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど、各種のものを用いることができる。したがって、ＤＣ１２７−１は、ディスクコントローラと称するが、外部記録部コントローラである。
【０１２４】
図１１の例のように、情報処理コントローラ１１１に対して外部記録部１２８を複数接続できるように、情報処理コントローラ１１１を構成することができる。
【０１２５】
メインプロセッサ１２１−１、各サブプロセッサ１２３−１，１２３−２，１２３−３、ＤＭＡＣ１２５−１およびＤＣ１２７−１は、バス１２９−１によって接続される。
【０１２６】
情報処理コントローラ１１１には、当該の情報処理コントローラ１１１を備える情報処理装置１００をネットワーク全体を通して一意的に識別できる識別子が、情報処理装置ＩＤとして割り当てられる。
【０１２７】
メインプロセッサ１２１−１および各サブプロセッサ１２３−１，１２３−２，１２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤおよびサブプロセッサＩＤとして割り当てられる。
【０１２８】
情報処理コントローラ１１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。
【０１２９】
他の情報処理装置２００、３００、４００も、同様に構成される。ここで、親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
【０１３０】
（各サブプロセッサからメインメモリへのアクセス）
上述したように、１つの情報処理コントローラ内の各サブプロセッサ１２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ１２６内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ１２３からメインメモリ１２６へのアクセスは、以下のような手順によって行う。
【０１３１】
図１２（Ａ）に示すように、メインメモリ１２６は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤおよびＬＳアドレス（ローカルストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【０１３２】
Ｆ／Ｅビット＝０は、サブプロセッサ１２３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【０１３３】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ１２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ１２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリロケーションがデータ書き込み不可であることを示す。
【０１３４】
さらに、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ１２３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ１２３のサブプロセッサＩＤおよびＬＳアドレスを書き込む。
【０１３５】
その後、データ書き込み側のサブプロセッサ１２３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤおよびＬＳアドレスに読み出される。
【０１３６】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することによって、前段階の処理を行うサブプロセッサ１２３が、処理済みのデータをメインメモリ１２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ１２３が前処理後のデータを読み出すことが可能となる。
【０１３７】
図１２（Ｂ）に示すように、各サブプロセッサ１２３内のＬＳ１２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【０１３８】
サブプロセッサ１２３がメインメモリ１２６内のデータを自身のＬＳ１２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ１２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【０１３９】
図１２（Ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ１２６には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ１２６内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ１２３に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ１２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。
【０１４０】
メインメモリ１２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
【０１４１】
さらに、メインメモリ１２６の排他的な制御を実現するために、図１２（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭのような比較的高速のメモリに格納され、ＤＭＡＣ１２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサキーおよびキーマスクが含まれる。
【０１４２】
サブプロセッサ１２３がメインメモリ１２６を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ１２３はＤＭＡＣ１２５に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ１２６のアドレスが含まれる。
【０１４３】
ＤＭＡＣ１２５は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ１２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ１２６内の図１２（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【０１４４】
図１２（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０または１になることができる。
【０１４５】
例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０または１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【０１４６】
以上のようにして、メインメモリ１２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ１２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【０１４７】
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的の処理を可能にする。
【０１４８】
より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行われるときには、
第１のサブプロセッサのサブプロセッサキー：０１００、
第１のメインメモリ領域のアクセスキー    ：０１００、
第２のサブプロセッサのサブプロセッサキー：０１０１、
第２のメインメモリ領域のアクセスキー    ：０１０１
のような設定のままだと、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【０１４９】
（ソフトウェアセルの生成および構成）
図１１のネットワークシステムでは、情報処理装置１００、２００、３００、４００間での分散処理のために、情報処理装置１００、２００、３００、４００間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ１２１は、コマンド、プログラムおよびデータを含むソフトウェアセルを生成し、ネットワーク９０を介して他の情報処理装置に送信することによって、処理を分散することができる。
【０１５０】
図１３に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム、およびデータによって構成される。
【０１５１】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレスおよび当該装置内の情報処理コントローラの情報処理装置ＩＤ、さらに、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ１２１および各サブプロセッサ１２３の識別子（メインプロセッサＩＤおよびサブプロセッサＩＤ）が含まれる。
【０１５２】
送信先ＩＤおよび応答先ＩＤには、それぞれ、ソフトウェアセルの送信先である情報処理装置、およびソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
【０１５３】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ、および前回のソフトウェアセルＩＤから構成される。
【０１５４】
グローバルＩＤは、ネットワーク全体を通して当該のソフトウェアセルを一意的に識別できるものであり、送信元ＩＤ、およびソフトウェアセルの作成または送信の日時（日付および時刻）に基づいて作成される。
【０１５５】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数が設定される。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ１２６内およびサブプロセッサ１２３のＬＳ１２４内のメモリ量が設定される。
【０１５６】
前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【０１５７】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラムおよびデータから構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ１２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【０１５８】
さらに、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、およびステータス返信コマンドが含まれる。
【０１５９】
ロードコマンドは、メインメモリ１２６内の情報をサブプロセッサ１２３内のＬＳ１２４にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサＩＤおよびＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ１２６内の所定領域のアドレスを示す。サブプロセッサＩＤおよびＬＳアドレスは、情報のロード先であるサブプロセッサ１２３の識別子およびＬＳ１２４のアドレスを示す。
【０１６０】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサＩＤおよびプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ１２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【０１６１】
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムＩＤによって、起動すべき機能プログラムを識別する。
【０１６２】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図１６に示す情報処理コントローラのメインメモリ１２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ１２６にロードされ、メインプロセッサ１２１により実行される。
【０１６３】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【０１６４】
図１４に、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
【０１６５】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ１２１によって、電源投入時の日時、情報処理装置のネットワークアドレスおよび情報処理装置内の情報処理コントローラに含まれるサブプロセッサ１２３の数などに基づいて生成される。
【０１６６】
情報処理装置種別ＩＤには、当該の情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、後述のハードディスクレコーダ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ポータブルＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）プレーヤなどである。また、情報処理装置種別ＩＤは、映像音声記録、映像音声再生など、情報処理装置の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別ＩＤを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
【０１６７】
ＭＳ（マスター／スレーブ）ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【０１６８】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ１２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ１２１で現在動作している全てのプログラムについての、メインプロセッサ１２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【０１６９】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ１２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ１２３を識別するための識別子である。
【０１７０】
サブプロセッサステータスは、各サブプロセッサ１２３の状態を表すものであり、ｕｎｕｓｅｄ，ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【０１７１】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【０１７２】
サブプロセッサＩＤ、サブプロセッサステータスおよびサブプロセッサ使用率は、１つのサブプロセッサ１２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ１２３に対応する組数が設定される。
【０１７３】
メインメモリ総容量およびメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ１２６の総容量および現在使用中の容量を表す。
【０１７４】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部１２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部１２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【０１７５】
外部記録部総容量および外部記録部使用量は、それぞれ、外部記録部ＩＤによって識別される外部記録部１２８の総容量および現在使用中の容量を表す。
【０１７６】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量および外部記録部使用量は、１つの外部記録部１２８に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部１２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量および外部記録部使用量も別々に管理される。
【０１７７】
（ソフトウェアセルの実行）
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ１２１は、以上のような構成のソフトウェアセルを生成し、ネットワーク９０を介して他の情報処理装置および当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、および各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤおよび応答先ＩＤによって識別される。
【０１７８】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ１２１は、そのソフトウェアセルをメインメモリ１２６に格納する。さらに、送信先のメインプロセッサ１２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。
【０１７９】
具体的に、送信先のメインプロセッサ１２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤおよびＬＳアドレスで特定されるサブプロセッサ内のＬＳ１２４の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
【０１８０】
次に、メインプロセッサ１２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。
【０１８１】
指示されたサブプロセッサは、そのキックコマンドおよびプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ１２６に格納した後、実行を完了したことをメインプロセッサ１２１に通知する。
【０１８２】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ１２３に限定されるものではなく、メインプロセッサ１２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【０１８３】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラムおよびそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ１２６にメインメモリ用プログラムおよびそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、およびプログラムカウンタを含み、ＤＭＡコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ１２１に当該メインメモリ用プログラムを実行させる。
【０１８４】
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ１２３にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【０１８５】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。
【０１８６】
したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
【０１８７】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。さらに、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
【０１８８】
〔ネットワークシステムとしての分散処理：図１５〜図２５〕
ソフトウェアセルの使用による分散処理の結果、図１５の上段に示すようにネットワーク９０に接続されている複数の情報処理装置１００、２００、３００、４００は、図１５の下段に示すように、仮想的な１台の情報処理装置７００として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
【０１８９】
（システムのソフトウェア構成とプログラムのロード）
図１６に、個々の情報処理コントローラのメインメモリ１２６が記憶するソフトウェアの構成を示す。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部１２８に記録されているものである。
【０１９０】
各プログラムは、機能または特徴によって、制御プログラム、機能プログラムおよびデバイスドライバにカテゴライズされる。
【０１９１】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ１２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャおよび能力交換プログラムを含む。
【０１９２】
機能プログラムは、メインプロセッサ１２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
【０１９３】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
【０１９４】
ケーブルの差し込みなどによって情報処理装置が物理的にネットワーク９０に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９０に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ１２１は、制御プログラムに属する各プログラム、およびデバイスドライバに属する各プログラムを、メインメモリ１２６にロードする。
【０１９５】
ロード手順としては、メインプロセッサ１２１は、まず、ＤＣ１２７に読み出し命令を実行させることによって、外部記録部１２８からプログラムを読み出し、次に、ＤＭＡＣ１２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ１２６に書き込む。
【０１９６】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【０１９７】
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部１２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部１２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図１５の下段に示すように、仮想的な１台の情報処理装置７００として機能プログラムを実行することができる。
【０１９８】
ここで前述したようにメインプロセッサ１２１によって処理される機能プログラムは、サブプロセッサ１２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ１２１が外部記録部１２８から機能プログラムを読み出し、メインメモリ１２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ１２６に書き込むものとする。
【０１９９】
この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ１２６に書き込むことになる。メインメモリ１２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ１２３内のＬＳ１２４に書き込まれ、メインプロセッサ１２１によって処理される機能プログラムと連携動作する。
【０２００】
図１３のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【０２０１】
そしてサブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。
【０２０２】
いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【０２０３】
メインプロセッサ１２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ１２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図１４に示した情報処理装置ＩＤ以下の各情報である。
【０２０４】
（システムにおけるマスター／スレーブの決定）
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ１２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ１２６にロードし、実行する。
【０２０５】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９０に接続されていることを検知すると、同じネットワーク９０に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク９０に接続されているだけでなく、電気的・機能的にもネットワーク９０に接続されていることを示す。
【０２０６】
また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【０２０７】
ＭＳマネージャが同じネットワーク９０に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
【０２０８】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤおよび応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分とされる。
【０２０９】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドで、かつデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）および当該他装置のＭＳステータスが含まれる。
【０２１０】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置は、スレーブ装置となる。
【０２１１】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置は、マスター装置となる。
【０２１２】
すなわち、いずれの装置もネットワーク９０に接続されていない状態、またはネットワーク９０上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９０に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９０上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９０に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０２１３】
マスター装置およびスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９０上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク９０に接続されている情報処理装置の主電源が遮断され、またはネットワーク９０から情報処理装置が切り離されることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９０に新たな情報処理装置が接続された場合など、ネットワーク９０の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０２１４】
（マスター装置およびスレーブ装置における装置情報の取得）
メインプロセッサ１２１は、ＭＳマネージャから、ネットワーク９０上の他装置の照会および自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０２１５】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９０に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。
【０２１６】
他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０２１７】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９０に接続されている全ての他装置（各スレーブ装置）の装置情報を格納するための領域を自装置のメインメモリ１２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。
【０２１８】
すなわち、マスター装置のメインメモリ１２６には、自装置を含むネットワーク９０に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
【０２１９】
一方、能力交換プログラムは、自装置がスレーブ装置である場合には、ネットワーク９０に接続されている全ての他装置の装置情報、すなわちマスター装置および自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤおよびＭＳステータスを、自装置のメインメモリ１２６に記録する。
【０２２０】
すなわち、スレーブ装置のメインメモリ１２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９０に接続されているマスター装置および各スレーブ装置についての情報処理装置ＩＤおよびＭＳステータスが、別の装置情報テーブルとして記録される。
【０２２１】
また、マスター装置およびスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９０に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ１２６に記録する。
【０２２２】
なお、ＭＳマネージャおよび能力交換プログラムは、メインプロセッサ１２１で実行されることに限らず、いずれかのサブプロセッサ１２３で実行されてもよい。また、ＭＳマネージャおよび能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０２２３】
（情報処理装置がネットワークから切断された場合）
マスター装置およびスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９０に接続されている情報処理装置の主電源が遮断され、またはネットワーク９０から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ１２６から削除する。
【０２２４】
さらに、このようにネットワーク９０から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０２２５】
具体的に、例えば、ネットワーク９０から切断されていない情報処理装置は、それぞれ、自装置および他装置の情報処理装置ＩＤを数値に置き換えて、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９０から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９０に接続されている全ての他装置（各スレーブ装置）の装置情報を取得して、メインメモリ１２６に記録する。
【０２２６】
（装置情報に基づく分散処理）
図１５の下段に示したようにネットワーク９０に接続されている複数の情報処理装置１００、２００、３００、４００を仮想的な１台の情報処理装置７００として動作させるためには、マスター装置がユーザの操作およびスレーブ装置の動作状態を把握する必要がある。
【０２２７】
図１７に、４台の情報処理装置が仮想的な１台の情報処理装置７００として動作する様子を示す。情報処理装置１００がマスター装置、情報処理装置２００、３００、４００がスレーブ装置Ａ、Ｂ、Ｃとして、動作しているものとする。
【０２２８】
ユーザがネットワーク９０に接続されている情報処理装置を操作した場合、操作対象がマスター装置１００であれば、その操作情報は、マスター装置１００において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置１００に送信される。すなわち、ユーザの操作対象がマスター装置１００とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１００において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
【０２２９】
そして、マスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、上記の方法によって自装置の外部記録部１２８−１、１２８−２からメインメモリ１２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１００に機能プログラムを送信してもよい。
【０２３０】
機能プログラムには、その実行単位ごとに必要となる、図１４に示した各情報として表される情報処理装置種別ＩＤ、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの、装置に関する要求スペックが規定されている。
【０２３１】
マスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、あらかじめ能力交換プログラムによってメインメモリ１２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図１４に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリおよび外部記録部に関する情報である。
【０２３２】
マスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、ネットワーク９０上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０２３３】
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。さらに、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０２３４】
実行要求するスレーブ装置が特定されたら、マスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１１に含まれるメインメモリ１２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０２３５】
さらに、マスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、ＤＭＡコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、当該機能プログラムに関する必要なサブプロセッサの情報およびサンドボックスサイズ（図１３参照）を設定して、上記実行要求されるスレーブ装置に対して送信する。
【０２３６】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ１２１は、上記の方法によって自装置の外部記録部１２８からメインメモリ１２６に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０２３７】
機能プログラムの実行を要求されたスレーブ装置の外部記録部１２８に、必要な機能プログラムがまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０２３８】
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０２３９】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ１２１は、終了通知をマスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０２４０】
マスター装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、自装置および他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１００が当該の機能プログラムを実行する。
【０２４１】
図１７の例で、ユーザがスレーブ装置Ａ（情報処理装置２００）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３００）が実行する場合につき、図１８に以上の分散処理の例を示す。
【０２４２】
図１８の例では、ユーザがスレーブ装置Ａを操作することによって、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Ａは、ステップ８１で、その操作情報をマスター装置１００に送信する。
【０２４３】
マスター装置１００は、ステップ７２で、その操作情報を受信し、さらにステップ７３に進んで、自装置のメインメモリ１２６−１に記録されている自装置および他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Ｂが選択される場合である。
【０２４４】
次に、マスター装置１００は、ステップ７４で、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する。
【０２４５】
スレーブ装置Ｂは、ステップ９５で、その実行要求を受信し、さらにステップ９６に進んで、実行要求された機能プログラムを実行する。
【０２４６】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１００、２００、３００、４００を仮想的な１台の情報処理装置７００として動作させることができる。
【０２４７】
（各情報処理装置およびシステムの具体例）
ネットワーク９０を介して互いに接続される情報処理装置１００、２００、３００、４００は、基本的に上記のような情報処理コントローラ１１１、１１２、１１３、１１４によって情報処理を行うものであれば、どのようなものでもよいが、図１９に、その一例を示す。
【０２４８】
この例では、情報処理コントローラ１１１を備える情報処理装置１００は、ハードディスクレコーダで、図２０に示すように、ハードウェア構成としては、図１１に示した外部記録部１２８−１として、ハードディスクを内蔵し、図１１に示した外部記録部１２８−２として、ＤＶＤ±Ｒ／ＲＷ、ＣＤ±Ｒ／ＲＷ、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標）などの光ディスクを装着できるように構成されるとともに、情報処理コントローラ１１１のバス１２９−１に接続されたバス１３１−１に、放送受信部１３２−１、映像入力部１３３−１、音声入力部１３４−１、映像出力部１３５−１、音声出力部１３６−１、操作パネル部１３７−１、リモコン受光部１３８−１およびネットワーク接続部１３９−１が接続されたものである。
【０２４９】
放送受信部１３２−１、映像入力部１３３−１および音声入力部１３４−１は、放送信号を受信し、または情報処理装置１００の外部から映像信号および音声信号を入力し、それぞれ所定フォーマットのデジタルデータに変換して、情報処理コントローラ１１１での処理のためにバス１３１−１に送出するものであり、映像出力部１３５−１および音声出力部１３６−１は、情報処理コントローラ１１１からバス１３１−１に送出された映像データおよび音声データを処理して、デジタルデータのまま、またはアナログ信号に変換して、情報処理装置１００の外部に送出するものであり、リモコン受光部１３８−１は、リモコン送信器１４３−１からのリモコン（遠隔操作）赤外線信号を受信するものである。
【０２５０】
図１９および図２０に示すように、情報処理装置（ハードディスクレコーダ）１の映像出力部１３５−１および音声出力部１３６−１には、モニタ表示装置１４１およびスピーカ装置１４２が接続される。
【０２５１】
図１９の例の、情報処理コントローラ１１２を備える情報処理装置２００も、ハードディスクレコーダで、図２０において括弧内に参照番号を付して示すように、情報処理装置１００と同様に構成されたものである。ただし、例えば、図１９に示すように、情報処理装置（ハードディスクレコーダ）２００には、モニタ表示装置およびスピーカ装置は接続されない。
【０２５２】
情報処理装置（ハードディスクレコーダ）１００および２００、すなわち情報処理コントローラ１１１および１１２のソフトウェア構成としては、図２１に示すように、制御プログラムとして、ＭＳマネージャおよび能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、素材検索および番組録画予約のためのプログラムを備え、デバイスドライバとして、放送受信、映像出力、音声出力、外部記録部入出力およびネットワーク入出力のためのプログラムを備える。
【０２５３】
図１９の例の、情報処理コントローラ１１３を備える情報処理装置３００は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）で、図２２に示すように、ハードウェア構成としては、図１１に示した外部記録部１２８−５として、メモリカードディスクを装着できるように構成されるとともに、情報処理コントローラ１１３のバス１２９−３に接続されたバス１５１に、液晶表示部１５２、音声出力部１５３、カメラ部１５４、音声入力部１５５、キーボード部１５６およびネットワーク接続部１５７が接続されたものである。
【０２５４】
なお、図１１では内部を省略した情報処理コントローラ１１３は、メインプロセッサ１２１−３、サブプロセッサ１２３−７，１２３−８，１２３−９、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）１２５−３、ＤＣ（ディスクコントローラ）１２７−３およびバス１２９−３を備え、そのメインプロセッサ１２１−３は、ＬＳ（ローカルストレージ）１２２−３を有し、各サブプロセッサ１２３−７，１２３−８，１２３−９は、ＬＳ（ローカルストレージ）１２４−７，１２４−８，１２４−９を有する。
【０２５５】
情報処理装置（ＰＤＡ）３００、すなわち情報処理コントローラ１１３のソフトウェア構成としては、図２３に示すように、制御プログラムとして、ＭＳマネージャおよび能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、電話帳、ワープロおよび表計算のためのプログラム、およびＷｅｂブラウザを備え、デバイスドライバとして、映像出力、音声出力、カメラ映像入力、マイク音声入力およびネットワーク入出力のためのプログラムを備える。
【０２５６】
図１９の例の、情報処理コントローラ１１４を備える情報処理装置４００は、ポータブルＣＤプレーヤで、図２４に示すように、ハードウェア構成としては、図１１に示した外部記録部１２８−６として、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）を装着できるように構成されるとともに、情報処理コントローラ１１４のバス１２９−４に接続されたバス１６１に、液晶表示部１６２、音声出力部１６３、操作ボタン部１６４およびネットワーク接続部１６５が接続されたものである。
【０２５７】
なお、図１１では内部を省略した情報処理コントローラ１１４は、メインプロセッサ１２１−４、サブプロセッサ１２３−１０，１２３−１１，１２３−１２、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）１２５−４、ＤＣ（ディスクコントローラ）１２７−４およびバス１２９−４を備え、そのメインプロセッサ１２１−４は、ＬＳ（ローカルストレージ）１２２−４を有し、各サブプロセッサ１２３−１０，１２３−１１，１２３−１２は、ＬＳ（ローカルストレージ）１２４−１０，１２４−１１，１２４−１２を有する。
【０２５８】
情報処理装置（ポータブルＣＤプレーヤ）４００、すなわち情報処理コントローラ１１４のソフトウェア構成としては、図２５に示すように、制御プログラムとして、ＭＳマネージャおよび能力交換プログラムを備え、機能プログラムとして、音楽再生のためのプログラムを備え、デバイスドライバとして、音声出力、ＣＤ制御およびネットワーク入出力のためのプログラムを備える。
【０２５９】
以上のような図１９の例のネットワークシステムにおいて、情報処理装置１００、３００および４００がネットワーク９０上に接続されており、情報処理装置１００がマスター装置（ＭＳステータス＝０）として、情報処理装置３００および４００がスレーブ装置（ＭＳステータス＝１）として、設定されているものとする。
【０２６０】
この状態で、新たに情報処理装置２００がネットワーク９０に接続されると、上述した方法によって、情報処理装置２００内の情報処理コントローラ１１２に含まれるメインプロセッサ１２１−２で実行されているＭＳマネージャは、他の情報処理装置１００、３００および４００にＭＳステータスを照会して、情報処理装置１００が既にマスター装置として存在することを認識し、自装置（情報処理装置２００）をスレーブ装置（ＭＳステータス＝１）に設定する。また、マスター装置に設定されている情報処理装置１００は、新たに追加された情報処理装置２００を含む各装置の装置情報を収集して、メインメモリ１２６−１内の装置情報テーブルを更新する。
【０２６１】
このような状態で、ユーザによってスレーブ装置である情報処理装置（ＰＤＡ）３００で２時間の放送番組の録画予約の操作が行われた場合を示す。
【０２６２】
この場合、スレーブ装置である情報処理装置（ＰＤＡ）３００は、ユーザから録画開始時刻、録画終了時刻、録画対象放送チャネル、録画品質などの情報を含む録画予約情報の入力を受け付け、当該録画予約情報およびＤＭＡコマンドとしての録画予約コマンドを含むソフトウェアセルを生成して、マスター装置である情報処理装置１００に送信する。
【０２６３】
ＤＭＡコマンドが録画予約コマンドであるソフトウェアセルを受信した情報処理装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、録画予約コマンドを読み出すとともに、メインメモリ１２６−１内の装置情報テーブルを参照して、当該録画予約コマンドを実行可能な情報処理装置を特定する。
【０２６４】
まず、メインプロセッサ１２１−１は、装置情報テーブルに含まれる各情報処理装置１００、２００、３００、４００の情報処理装置種別ＩＤを読み出して、録画予約コマンドに対応する機能プログラムを実行可能な情報処理装置を抽出する。ここでは、録画機能を示す情報処理装置種別ＩＤを有する情報処理装置１００、２００が候補装置として特定され、情報処理装置３００、４００は候補装置から除外される。
【０２６５】
次に、マスター装置である情報処理装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、装置情報テーブルを参照して、情報処理装置１００、２００のメインプロセッサまたはサブプロセッサの処理能力、メインメモリに関する情報などの、装置に関する情報を読み出し、情報処理装置１００、２００が録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するか否かを判断する。ここでは、情報処理装置１００、２００とも、録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するものとする。
【０２６６】
さらに、メインプロセッサ１２１−１は、装置情報テーブルを参照して、情報処理装置１００、２００の外部記録部に関する情報を読み出し、外部記録部の空き容量が当該録画予約コマンドの実行に必要な容量を満足するか否かを判断する。情報処理装置１００、２００はハードディスクレコーダであるので、それぞれハードディスク１２８−１、１２８−３の、総容量と使用量との差分が、それぞれの空き容量に相当する。
【０２６７】
この場合、情報処理装置１００のハードディスク１２８−１の空き容量が、録画時間に換算して１０分であり、情報処理装置２００のハードディスク１２８−３の空き容量が、録画時間に換算して２０時間であるとする。
【０２６８】
このとき、マスター装置である情報処理装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、当該録画予約コマンドの実行に必要な２時間分の空き容量を確保できる情報処理装置を、実行要求先スレーブ装置として特定する。
【０２６９】
その結果、情報処理装置２００のみが実行要求先スレーブ装置として選択され、マスター装置である情報処理装置１００内の情報処理コントローラ１１１に含まれるメインプロセッサ１２１−１は、ユーザにより操作された情報処理装置３００から送信された録画予約情報を含む当該録画予約コマンドを情報処理装置２００に送信して、上記２時間の放送番組の録画予約の実行を要求する。
【０２７０】
そして、情報処理装置２００内の情報処理コントローラ１１２に含まれるメインプロセッサ１２１−２は、当該録画予約コマンドを解析して、録画に必要な機能プログラムを外部記録部であるハードディスク１２８−３からメインメモリ１２６−２にロードし、録画予約情報に従って録画を実行する。その結果、録画予約された２時間の放送番組の映像音声データが情報処理装置２００のハードディスク１２８−３に記録される。
【０２７１】
このように、図１９の例のネットワークシステムにおいても、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１００、２００、３００、４００を仮想的な１台の情報処理装置７００として動作させることができる。
【０２７２】
以上説明したように、図１１に示した情報処理装置において、メインプロセッサ１２１を図４に示した処理制御装置部３とし、サブプロセッサ１２３を処理装置部とした多視点映像再生装置を構成することができる。
【０２７３】
また、複数の情報処理装置１００、２００、３００、４００、…からなるネットワークシステムを１つの情報処理装置とみなし、当該ネットワークシステムの各情報処理装置で映像音声ストリームの復号化処理を分散させるようにすることもできる。この場合、当該ネットワークシステムを構成する情報処理装置の１つに処理制御装置部としての機能を持たせるようにすればよい。
【０２７４】
また、ネットワークを通じて接続されたマルチプロセッサの複数の情報処理装置からなるネットワークシステムにおいて、各情報処理装置ごとに処理対象データを振り分けると共に、各情報処理装置においても、各サブプロセッサに処理対象データを振り分けるように制御する場合にも、この発明を適用することができる。
【０２７５】
なお、ネットワークは、例えばリングバスのような装置内部において各機器部を接続するものである場合もあるし、ローカルエリアネットワークや広域ネットワークである場合もある。すなわち、情報処理装置は、規模の違いはあるものの、複数の処理装置部がバスやネットワークに接続されて構成された装置（システム）に適用可能である。
【図面の簡単な説明】
【０２７６】
【図１】マルチカメラシステムの一例を説明するための図である。
【図２】マルチカメラシステムの一例を説明するための図である。
【図３】任意視点映像再生方式について説明するための図である。
【図４】この発明による装置、方法の一実施の形態が適用された任意視点映像再生装置を説明するための図である。
【図５】同期処理や非同期処理を行わせるようにするために制御処理装置部３において形成されて、管理される制御情報の構成例を説明するための図である。
【図６】処理制御装置部３について説明するためのブロック図である。
【図７】ＩＰ／ＵＤＰ／ＲＴＰといった各レイヤーの処理の割り振りを説明するための図である。
【図８】処理装置部１（１）、１（２）、１（３）における同期処理について説明するための図である。
【図９】処理装置部１の構成例を説明するためのブロック図である。
【図１０】処理制御装置部３の動作を説明するためのフローチャートである。
【図１１】この発明による装置、方法が適用される情報処理装置の例を説明するための図である。
【図１２】処理装置部として用いられる情報処理装置が備える情報処理コントローラの説明に供する図である。
【図１３】ソフトウェアセルの一例を示す図である。
【図１４】ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示す図である。
【図１５】複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図１６】情報処理コントローラのソフトウェア構成の一例を示す図である。
【図１７】４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図１８】図１７のシステムにおける分散処理の例を示す図である。
【図１９】各情報処理装置およびシステムの具体例を示す図である。
【図２０】図１９中のハードディスクレコーダのハードウェア構成を示す図である。
【図２１】図１９中のハードディスクレコーダのソフトウェア構成を示す図である。
【図２２】図１９中のＰＤＡのハードウェア構成を示す図である。
【図２３】図１９中のＰＤＡのソフトウェア構成を示す図である。
【図２４】図１９中のポータブルＣＤプレーヤのハードウェア構成を示す図である。
【図２５】図１９中のポータブルＣＤプレーヤのソフトウェア構成を示す図である。
【図２６】各処理装置で同期処理が行われた場合の例を説明するための図である。
【図２７】各処理装置で行われる同期処理と空き時間について示す図である。
【図２８】同期処理と非同期処理とが混在した場合の問題点を説明するための図である。
【符号の説明】
【０２７７】
１（１）〜１（ｎ）…処理装置部、２…データバス、３…処理制御装置部、３０…制御部、３１…ＣＰＵ、３２…ＲＯＭ、３３…ＲＡＭ、３４…ＥＥＰＲＯＭ、３５…ＣＰＵバス、３６…インターフェース、３７…スケジューリング部、３７１…処理時間見積り部、３７２…空き時間算出部、３７３…検索選択部、４…ネットワークインターフェース
【図１】
2005236466.tif 000003
【図２】
2005236466.tif 000004
【図３】
2005236466.tif 000005
【図４】
2005236466.tif 000006
【図５】
2005236466.tif 000007
【図６】
2005236466.tif 000008
【図７】
2005236466.tif 000009
【図８】
2005236466.tif 000010
【図９】
2005236466.tif 000011
【図１０】
2005236466.tif 000012
【図１１】
2005236466.tif 000013
【図１２】
2005236466.tif 000014
【図１３】
2005236466.tif 000015
【図１４】
2005236466.tif 000016
【図１５】
2005236466.tif 000017
【図１６】
2005236466.tif 000018
【図１７】
2005236466.tif 000019
【図１８】
2005236466.tif 000020
【図１９】
2005236466.tif 000021
【図２０】
2005236466.tif 000022
【図２１】
2005236466.tif 000023
【図２２】
2005236466.tif 000024
【図２３】
2005236466.tif 000025
【図２４】
2005236466.tif 000026
【図２５】
2005236466.tif 000027
【図２６】
2005236466.tif 000028
【図２７】
2005236466.tif 000029
【図２８】
2005236466.tif 000030