(57)【要約】【課題】  サブプロセッサが、メインメモリ上の参照フレームデータをマクロブロック単位でキャッシュして、高いパフォーマンスで復号処理する。【解決手段】  本来はそれぞれ画像サイズに合わせて個別のプレーン上に展開される輝度成分、色差成分など複数の画像情報を、マクロブロック単位でアドレスが線形的となるようにメインメモリ上に配置する。復号化の際、マクロブロック単位でのメモリ配列を行なうことにより、１回のデータ転送で必要となるアドレス計算が削減されるので、データ転送効率が著しく短縮し、復号システムのパフォーマンスが向上する。【選択図】  図２１
2006067247.tif 000002
【特許請求の範囲】
【請求項１】
複数のプレーンからなる画像情報を所定のマクロブロック単位で符号化／復号化する情報処理システムであって、
画像情報を保持するフレームメモリと、
前記フレームメモリ上に画像情報を配列するメモリ配列手段と、
前記フレームメモリからマクロブロック毎の画像情報を取得して符号化復号化処理を行なう符号化復号化手段とを備え、
前記メモリ配列手段は、プレーン毎の画像情報をマクロブロック単位でまとめて前記フレームメモリ上に配列する、
を具備することを特徴とする情報処理システム。
【請求項２】
前記メモリ配列手段は、マクロブロック毎に各プレーンの画像情報が連続的となるようにマクロブロック単位でまとめて前記フレームメモリ上に配置し、
前記符号化復号化手段は、マクロブロックのアドレスとサイズを指定した１回のデータ要求により前記フレームメモリから１マクロブロック分のデータを取得する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記メモリ配列手段は、フレーム内予測された圧縮ストリームを入力し、これをストリーム復号並びに画像伸張処理した後、復号結果をマクロブロック単位で線形的に前記フレームメモリ上に配置していく、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記メモリ配列手段は、フレーム間予測された圧縮ストリームを入力し、これをストリーム復号し、参照フレームより復号結果をマクロブロック単位で入力して画像伸張処理した後、復号結果をマクロブロック単位で線形的に前記フレームメモリ上に配置していく、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項５】
前記メモリ配列手段は、マクロブロック毎の前記フレームメモリのバス幅に適合するように各プレーンの画像情報をまとめ、マクロブロック単位で前記フレームメモリ上に配置し、
前記符号化復号化手段は、前記フレームメモリのバス幅に合わせた転送単位でデータ転送を繰り返す、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項６】
前記符号化復号化手段は所定バイト分の演算をまとめて行なうことが可能なアーキテクチャを備え、
前記メモリ配列手段は、前記所定バイト単位で１ラインを構成するように各プレーンの画像情報をまとめ、マクロブロック単位で前記フレームメモリ上に配置する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項７】
前記画像情報は輝度成分と２つの色差成分からなり、マクロブロックは１ラインが１６バイトの輝度成分と１ラインが８バイトの各色差成分で構成され、
前記符号化復号化手段は輝度成分１ライン分の演算をまとめて行なうことが可能なアーキテクチャを備え、
前記メモリ配列手段は、前記２つの色差成分を１６バイトで１ラインとなるようにまとめて、マクロブロック単位で前記フレームメモリ上に配置する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項８】
前記符号化復号化手段は、取得するデータが複数のマクロブロックにまたがる場合には、必要なマクロブロック数の単位でアドレス計算し、所望のマクロブロックの先頭アドレスを指定して各マクロブロックのデータを取得する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項９】
自己のローカルストレージ上に展開されたプログラムを実行可能な１以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサと、各プロセッサが共有するメインメモリとを備えたマルチプロセッサシステムとして構成され、
前記フレームメモリとしての前記メインメモリ上には、各プレーンの画像情報がマクロブロック単位で配列され、
前記符号化復号化手段は、前記メインプロセッサから画像の符号化復号化処理が依頼されたサブプロセッサにより構成され、前記メインメモリに格納されている画像情報をマクロブロック単位でローカルストレージ上に配列して画像の符号化復号化処理を行なう、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項１０】
複数のプレーンからなる画像情報を所定のマクロブロック単位で符号化／復号化する情報処理方法であって、
各プレーンの画像情報をマクロブロック単位でまとめて前記フレームメモリ上に配列するメモリ配列ステップと、
前記フレームメモリからマクロブロック毎の画像情報をライン毎のアドレス計算なしに取得して符号化復号化処理を行なう符号化復号化ステップと、
を具備することを特徴とする情報処理方法。
【請求項１１】
前記メモリ配列ステップでは、マクロブロック毎に各プレーンの画像情報が連続的となるようにマクロブロック単位でまとめて前記フレームメモリ上に配置し、
前記符号化復号化ステップでは、マクロブロックのアドレスとサイズを指定した１回のデータ要求により前記フレームメモリから１マクロブロック分のデータを取得する、
ことを特徴とする請求項１０に記載の情報処理方法。
【請求項１２】
前記メモリ配列ステップでは、フレーム内予測された圧縮ストリームを入力し、これをストリーム復号並びに画像伸張処理した後、復号結果をマクロブロック単位で線形的に前記フレームメモリ上に配置していく、
ことを特徴とする請求項１０に記載の情報処理方法。
【請求項１３】
前記メモリ配列ステップでは、フレーム間予測された圧縮ストリームを入力し、これをストリーム復号し、参照フレームより復号結果をマクロブロック単位で入力して画像伸張処理した後、復号結果をマクロブロック単位で線形的に前記フレームメモリ上に配置していく、
ことを特徴とする請求項１０に記載の情報処理方法。
【請求項１４】
前記メモリ配列ステップでは、マクロブロック毎の前記フレームメモリのバス幅に適合するように各プレーンの画像情報をまとめ、マクロブロック単位で前記フレームメモリ上に配置し、
前記符号化復号化ステップでは、前記フレームメモリのバス幅に合わせた転送単位でデータ転送を繰り返す、
ことを特徴とする請求項１０に記載の情報処理方法。
【請求項１５】
前記符号化復号化ステップでは所定バイト分の演算をまとめて行なうことが可能であり、
前記メモリ配列ステップでは、前記所定バイト単位で１ラインを構成するように各プレーンの画像情報をまとめ、マクロブロック単位で前記フレームメモリ上に配置する、
ことを特徴とする請求項１０に記載の情報処理方法。
【請求項１６】
前記画像情報は輝度成分と２つの色差成分からなり、マクロブロックは１ラインが１６バイトの輝度成分と１ラインが８バイトの各色差成分で構成され、
前記符号化復号化ステップでは輝度成分１ライン分の演算をまとめて行なうことが可能であり、
前記メモリ配列ステップでは、前記２つの色差成分を１６バイトで１ラインとなるようにまとめて、マクロブロック単位で前記フレームメモリ上に配置する、
ことを特徴とする請求項１０に記載の情報処理方法。
【請求項１７】
前記符号化復号化ステップでは、取得するデータが複数のマクロブロックにまたがる場合には、必要なマクロブロック数の単位でアドレス計算し、所望のマクロブロックの先頭アドレスを指定してマクロブロックのデータを取得する、
ことを特徴とする請求項１０に記載の情報処理方法。
【請求項１８】
複数のプレーンからなる画像情報を所定のマクロブロック単位で符号化／復号化するための処理をコンピュータシステム上で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって、
各プレーンの画像情報をマクロブロック単位でまとめて前記フレームメモリ上に配列するメモリ配列ステップと、
前記フレームメモリからマクロブロック毎の画像情報をライン毎のアドレス計算なしに取得して符号化復号化処理を行なう符号化復号化ステップと、
を具備することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２以上の機器間における動作を連携させる情報処理システム及び情報処理方法、並びにコンピュータプログラムに係り、特に、複数の機器が協調動作により分散処理を行なうことで、仮想的に１台の機器として動作する情報処理システム及び情報処理方法、並びにコンピュータプログラムに関する。
【０００２】
さらに詳しくは、本発明は、１以上のサブプロセッサと各サブプロセッサにプログラムの実行を命令するメインプロセッサからなるマルチプロセッサ構成の情報処理装置において各プロセッサが好適に連携動作する情報処理システム及び情報処理方法、並びにコンピュータプログラムに係り、特に、各サブプロセッサが、メインプロセッサから割り当てられた処理を、高いパフォーマンスで且つシステム全体の性能を低下させることなく実行する情報処理システム及び情報処理方法、並びにコンピュータプログラムに関する。
【背景技術】
【０００３】
複数のコンピュータ同士をネットワークで相互接続することにより、情報資源の共有、ハードウェア資源の共有、複数のユーザ間でのコラボレーションが実現することが知られている。コンピュータ間の接続メディアとして、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどさまざまである。
【０００４】
特に最近では、一般家庭内にもコンピュータやネットワークなどの技術が深く浸透してきている。家庭内のパーソナルコンピュータやＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）などの情報機器、さらにはテレビ受像機やビデオ再生装置などＡＶ機器や、各種の情報家電、ＣＥ（Ｃｏｎｓｕｍｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ）機器などがホームネットワーク経由で相互接続されている。また、このようなホームネットワークは、多くの場合、ルータ経由でインターネットを始めとする外部の広域ネットワークに相互接続されている。
【０００５】
上述したようにホームネットワーク上に複数のＡＶ機器が接続されるという利用形態が想定されるが、いままでは、ＡＶ機器間で充分な連携がなされていない、という問題がある。このような問題に対し、最近では、ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するというグリッドコンピューティング技術に関する研究開発が進められている（例えば、特許文献１〜５を参照のこと）。
【０００６】
このグリッドコンピューティング技術によれば、ネットワーク上の複数の情報処理装置が強調動作して分散処理を行ない、ユーザからは仮想的に１台の情報処理装置として動作することができる。
【０００７】
例えば、録画予約機能を持つ複数台の情報処理装置がネットワーク上に接続されている場合、録画予約の連携動作を実現することができる。すなわち、複数台の情報処理装置がホームネットワーク経由で録画予約の動作を連携させている場合、ホームネットワーク上では仮想的に１台の録画機器として動作する。そして、ユーザは、いずれかの機器のユーザ・インターフェースを用いて、ホームネットワークに接続されている任意の機器を用いて録画予約を行なうことができる。
【０００８】
さらにこのような録画予約機能の連携により、予約時間が重複した番組（いわゆる裏番組）を同時録画することが可能である。同様に、記録したコンテンツの再生動作を複数の機器間で連携させ、同時・同期的なコンテンツ再生を実現することができる。このコンテンツ再生機能の連携を利用して、別々の機器で記録されたコンテンツの再生を同時、同期的に進行させることにより、コンテンツ再生においてチャンネル切り換えの概念を導入することができる。
【０００９】
このような仮想的な１台の機器によれば、１台の機器のハードウェア資源や処理能力だけではユーザからの要求に応じることができない場合であっても、ネットワーク上で連携・協調動作する他の機器における余剰の処理能力を活用することで、ユーザの要求に応じることができ、さらに通常の１台の機器では現実的ではないサービスを実現することができる。
【００１０】
グリッドコンピューティングを実現する個々の情報処理装置は、例えばマルチプロセッサシステムとして構成される。この場合、情報処理装置には、自己のローカルストレージ上に展開されたプログラムを実行可能な１以上のサブプロセッサと、サブプロセッサにプログラムの実行を命令するメインプロセッサが装備されている。
【００１１】
このような情報処理装置においては、メインプロセッサは各サブプロセッサが持つ余剰処理能力などの資源管理を行ない、複数の機能を同時並行して実行することができる。例えば、テレビ番組の録画予約や、録画コンテンツの再生や、シーン認識、再エンコード・画質改善などの録画コンテンツに関する付加的な処理を、サブプロセッサを用いて分散処理することができる。
【００１２】
図２９には、グリッドコンピューティングを実現する情報処理システムの構成例を模式的に示している。
【００１３】
図示のシステムは、メインプロセッサと、１以上のサブプロセッサからなるマルチプロセッサ構成であり、各プロセッサは自己のローカルストレージ上に展開されたプログラムを実行することができる。メインプロセッサは、サブプロセッサのローカルストレージ上に処理を依頼するサブプロセッサプログラムをロードし、サブプロセッサに対しそのプログラムの実行を命令することができる。
【００１４】
また、図示のステムでは、システムバスを介して各プロセッサで共有するメインメモリが設けられている。メインプロセッサは、このメインメモリ上に展開されている各データの処理をサブプロセッサ毎に割り当てることにより、複数の処理を分散し、同時並行して実行することができる。
【００１５】
例えば、サブプロセッサは、メインメモリから自分のローカルストレージに転送されたデータを演算に使用する。サブプロセッサ内部の演算器は、演算中は自分のローカルストレージにのみアクセスし、直接メインメモリをアクセスすることはしない。演算が終了すると、ローカルストレージ内に格納された演算結果がメインメモリに書き戻される。すなわち、サブプロセッサは、逐次メインメモリにアクセスせず、自分のローカルストレージをいわばキャッシュメモリとして使用する。このような動作手順をとることで、以下の問題が解決される。
【００１６】
（１）メインメモリを共有することによるアクセス競合の防止
（２）低速なメインメモリを使うことによるパフォーマンス低下
（３）システムバスのトラヒック増加防止
【００１７】
但し、ローカルストレージにおけるキャッシュのヒット率が十分に高くないと、データ処理中のメインメモリへのアクセス回数が増えるため、サブプロセッサにおけるデータ処理のパフォーマンスが低下してしまう。また、メインメモリへアクセスする度にシステムバスのトラフィックが増加するので、システム全体の性能も低下してしまう。
【００１８】
ところで、上述したようなマルチプロセッサ構成の情報処理システムで画像処理を扱う場合に、メインプロセッサは、圧縮された画像の復号処理を、１つのサブプロセッサに割り当てることができる。この場合、さらに他のサブプロセッサに対し、画像データをユーザの好みの品質に編集する画質改善や、他の符号化方式へ再符号化するリエンコードなど、復号された画像データに対する他の処理を指示し、システム全体として連携動作を行なうことができる。
【００１９】
画像の圧縮処理では一般に、フレーム全体をマクロブロックと呼ばれる小さな領域に分割して信号処理が行なわれる。例えば、標準的な画像圧縮規格の１つであるＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）における基本的な圧縮アルゴリズムは以下の通りである。すなわち、
【００２０】
（１）マクロブロックを符号化単位として時間的画面相関に基づく情報圧縮を行なう。
（２）マクロブロックをサブブロックに細分化して、ＤＣＴによる空間的情報圧縮を行なう。
（３）動き補償フレーム間予測などを利用して可変長符号化を行なう。
（４）ＤＣＴ係数の量子化スケール制御により、全体の符号発生量の制御を行なう。
【００２１】
また、画像圧縮では、一般に、圧縮対象のフレームと参照となるフレーム間の差分情報を圧縮するフレーム間符号化が行なわれる。例えばＭＰＥＧでは、ある画素の信号値を別の時間での画素の信号値との差分で表す「予測符号化」を用いるが、特に、フレーム内で予測する「フレーム内予測」、この再生画面を基に予測する「フレーム間順方向予測」と、過去再生画面と未来再生画面の双方を用いて現在画面を予測する「フレーム間双方向予測」の組み合わせで実現される。このため、ＭＰＥＧで扱う画像タイプは、イントラ符号化（フレーム内予測）画面のみからなるＩピクチャ（Ｉｎｔｒａ−Ｐｉｃｔｕｒｅ）、フレーム間順方向予測により生成されるＰピクチャ（Ｐｒｅｄｉｃｔｉｖｅ−Ｐｉｃｔｕｒｅ）、フレーム間双方向予測により生成されるＢピクチャ（Ｂｉｄｉｒｅｃｔｉｏｎａｌｌｙ ｐｒｅｄｉｃｔｉｖｅ Ｐｉｃｔｕｒｅ）の３種類となる。
【００２２】
ここで、フレームメモリのサイズはＨＤ（Ｈｉｇｈ  Ｄｉｆｉｎｉｔｉｏｎ）サイズの画像では１フレーム当たり３Ｍバイトから６Ｍバイト程度にのぼる。このため、画像符号化・復号化など画像フレームを扱うシステムでは、ビット当たりの単価が安いＤＲＡＭがフレームメモリとして使われる。そして、ＤＲＡＭは低速であることから、通常のプロセッサはキャッシュを有するシステムをとることが多い。一般的なキャッシュの動作としては、プロセッサがアクセスしたメモリアドレスに連続した領域のデータがキャッシュメモリに格納される。
【００２３】
一般に、キャッシュメモリのサイズはメインメモリよりも小さく、参照するデータが異なる度に、メインメモリとキャッシュメモリ間のデータ転送が発生する。
【００２４】
図２９に示したマルチプロセッサ構成のシステムでは、メインメモリとサブプロセッサ間を繋ぐバスは複数のモジュールが共通して使用すること、メインメモリは低速なＤＲＡＭが用いられる場合が多いことなどから、メインメモリ−サブプロセッサ間のデータ転送がシステム全体の性能を低下させる要因となる。そこで、各サブプロセッサは自己のローカルストレージをキャッシュとして利用する。キャッシュを実装することでメインメモリへのアクセス回数を減らし、結果として復号処理全体の性能低下を防ぐことが可能になる。
【００２５】
例えば、圧縮画像の復号処理を実現する場合、圧縮画像データ、復号結果を格納するフレームメモリなどの大容量メモリを必要とするデータは、システム全体で共用するメインメモリにその領域が確保される。画像フレームのサイズは、ＨＤサイズ画像では１フレーム当たり３Ｍから６Ｍバイト程度に登るため、ビット（記憶容量）当たりの単価が安いＤＲＡＭで構成されるメインメモリ上に展開されることが多い。一方、プロセッサは一般に、キャッシュ若しくはプロセッサ固有のワークメモリ（ローカルストレージ）を備えており、メインメモリ上のデータの一部をキャッシュに保持し、転送時間の遅いメインメモリとプロセッサ間でのデータ転送の機会を減らすことができる。キャッシュ及びワークメモリのサイズは一般的にメインメモリよりも小さく、参照するデータが異なる場合は、メインメモリとキャッシュメモリとでデータ転送が発生する。
【００２６】
上述したマルチプロセッサシステムにおいては、サブプロセッサは、マクロブロックの復号処理に応じて、キャッシュとしてのローカルストレージに必要な一部分のデータのみを転送して、復号処理をする。
【００２７】
ここで、ＭＰＥＧのようにフレーム間の予測符号化が行なわれている圧縮画像を復号する場合、以下のようにメインメモリとローカルストレージ間でデータ転送が発生する。
【００２８】
（１）圧縮された差分信号の転送（メインメモリからローカルストレージへ）
（２）予測画像データの転送（メインメモリからローカルストレージへ）
（３）復号結果の転送（ローカルストレージからメインメモリへ）
【００２９】
圧縮信号の転送を行なう（１）の場合、圧縮されたストリームデータは時間軸に沿って逐次的に処理されるものであることから、サブプロセッサがアクセスしたメモリアドレスに連続した領域のデータをキャッシュするという通常のキャッシュ動作により、常にキャッシュに有効なデータを置いておくことが容易に実現できる。
【００３０】
また、復号結果をフレームメモリへの書き戻す（３）の場合、転送結果を用いて次の処理を行なう必要がないため、サブプロセッサ側で転送終了待ちによるパフォーマンス低下が発生することはない。
【００３１】
これに対し、（２）の予測画像データは、画像の特徴、つまりフレーム間での画像の動く方向や速度などに応じて変動するため、キャッシュをミスする確率が変わってくる。すなわち、サブプロセッサがアクセスしたメモリアドレスに連続した領域のデータをキャッシュするという通常のキャッシュ動作では、十分なキャッシュヒット率を得ることができない。また、システムバスの大きさや、システム・アーキテクチャに応じて最適な転送サイズ、データアクセス可能アドレスの問題や、参照フレームのデータ構造によっては、アドレス計算の回数が多くなり、パフォーマンスの低下を招来し、復号システム全体の性能低下につながってしまう。
【００３２】
ＭＰＥＧ２などのデコーダはマクロブロック単位で処理が行なわれる。これに対し、ＭＰＥＧなどにおける画像符号化で用いられるフレームメモリのデータ構造は、輝度成分、色差成分などをそれぞれ画像サイズに合わせて保持している。すなわち、これら複数のプレーンな画像情報からなるデータ構造である。このため、サブプロセッサにおいて復号化の演算を行なう際は、処理単位を分けて行なう。フレームメモリのデータ構造上、マクロデータのデータを取得する際には、１ライン毎にアドレス計算を行なう必要がある。すなわち、輝度成分、色差成分などのプレーン毎に、マクロブロックの領域を割り出し、そこから１ライン毎に逐次アドレス計算してデータ転送しなければならない。このようなアドレス計算がデータ取得処理の多大なオーバーヘッドとなってしまう。
【００３３】
一般的にＤＭＡなどによってデータを取得するオーバーヘッドは、デコードデータの他の処理によって隠蔽化する方法が一般的に知られているが、オーバーヘッドの時間が減らされる訳ではなく、データの取得時間を隠蔽かできない場合は、処理ができない時間が増える。
【００３４】
【特許文献１】特開２００２−３４２１６５号公報
【特許文献２】特開２００２−３５１８５０号公報
【特許文献３】特開２００２−３５８２８９号公報
【特許文献４】特開２００２−３６６５３３号公報
【特許文献５】特開２００２−３６６５３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００３５】
本発明の目的は、１以上のサブプロセッサと各サブプロセッサにプログラムの実行を命令するメインプロセッサからなるマルチプロセッサ構成の情報処理装置において各プロセッサが好適に連携動作することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することにある。
【００３６】
本発明のさらなる目的は、各サブプロセッサが、メインプロセッサから割り当てられた処理を、高いパフォーマンスで且つシステム全体の性能を低下させることなく実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することにある。
【００３７】
本発明のさらなる目的は、システム全体で共有するメモリ上の各データの処理をサブプロセッサ毎に割り当て、システム全体の性能を低下させることなく各サブプロセッサが割り当てられた処理を実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することにある。
【００３８】
本発明のさらなる目的は、サブプロセッサが、システム全体で共有するメモリ上の圧縮画像の復号処理を、高いパフォーマンスで且つシステム全体の性能を低下させることなく実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することにある。
【００３９】
本発明のさらなる目的は、サブプロセッサが、システム全体で共有するメモリからマクロブロックデータの取得を行なう際に、１ライン毎のアドレス計算に伴うオーバーヘッドを低減することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００４０】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、複数のプレーンからなる画像情報を所定のマクロブロック単位で符号化／復号化する情報処理システムであって、
画像情報を保持するフレームメモリと、
前記フレームメモリ上に画像情報を配列するメモリ配列手段と、
前記フレームメモリからマクロブロック毎の画像情報を取得して符号化復号化処理を行なう符号化復号化手段とを備え、
前記メモリ配列手段は、プレーン毎の画像情報をマクロブロック単位で前記フレームメモリ上に配列する、
ことを特徴とする情報処理システムである。
【００４１】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００４２】
本発明に係る情報処理システムは、自己のローカルストレージ上に展開されたプログラムを実行可能な１以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサと、各プロセッサが共有するメインメモリとを備えたマルチプロセッサシステムとして構成することができる。この場合、フレームメモリとしての前記メインメモリ上には、各プレーンの画像情報がマクロブロック単位で配列される。そして、前記符号化復号化手段は、前記メインプロセッサから画像の符号化復号化処理が依頼されたサブプロセッサにより構成され、前記メインメモリに格納されている画像情報をマクロブロック単位でローカルストレージ上に配列して画像の符号化復号化処理を行なう。この種のマルチプロセッサ構成の情報処理システムによれば、各サブプロセッサの連携により、１つのプロセッサでは負荷の高い処理を分散して実現可能となり、あるいは関連する２以上のデータ処理を同期・協調して実行することができるようになるので、ユーザに対し高機能・高付加価値のサービスを提供することができる。
【００４３】
ここで、マルチプロセッサシステムを構成する１つのサブプロセッサを用いて、ＭＰＥＧのようにフレーム間の差分情報のみを圧縮符号化した圧縮画像の復号化処理を行なう場合、符号化された差分情報と、差分情報抽出に使用した参照フレームデータが必要であることから、保存されている参照フレームデータを適宜読み込んで画像データの復号処理を行なう必要がある。
【００４４】
マルチプロセッサ上においてＭＰＥＧなどの処理においてマクロブロック単位での処理がある場合、ＭＰＥＧ２を例にすると、参照フレームデータを使用してデコードデータを計算する。その際、フレームデータを格納するメインメモリと演算を行なっているプロセッサ間でマクロブロックデータ単位のＤＭＡ転送する際には、１ライン毎にデータのアドレス再計算が行なわなければならず、データ取得の際の多大なオーバーヘッドとなってしまう。
【００４５】
そこで、本発明では、マルチプロセッサアーキテクチャを考慮し、ＭＰＥＧなどのフレーム差分情報を、アドレス計算がなるべく少なくなるようなデータ構造を採用してメインメモリ上に展開することとし、ＤＭＡデータ取得時のアドレス計算に伴うコストを減らすようにした。変更したデータはサブプロセッサにおいて演算のためのデータアライメントを考慮した構造とする。
【００４６】
具体的には、本来はそれぞれ画像サイズに合わせて個別のプレーン上に展開されている輝度成分、色差成分など複数のプレーンからなる画像情報を、マクロブロック単位でアドレスが線形的となるようにメインメモリ上に配置するというデータ構造を採用する。この場合、画像圧縮／復号化を行なうときには、マクロブロック単位でのメモリ配列を行なうことにより、１回のデータ（ＤＭＡ）転送で必要となるアドレス計算が削減されるので、データ転送効率が著しく短縮される。また、メインメモリとキャッシュメモリ間のデータ取得時間の短縮化により、復号システムのパフォーマンスが向上する。
【００４７】
例えば、前記メモリ配列手段は、各プレーンの画像情報をマクロブロック単位でまとめ、マクロブロックを構成するプレーン毎の画像情報を前記フレームメモリ上に連続的に配置するようにする。このような場合、前記符号化復号化手段は、マクロブロックのアドレスとサイズを指定した１回のデータ要求により前記フレームメモリからマクロブロックを取得することができる。マクロブロックの転送を開始するときには、ＤＭＡのデータリストを用いる必要はなく、マクロブロックの先頭アドレスとマクロブロックのサイズを指定したＤＭＡ要求を１回行なうだけでブロックデータを一度に取得することができ、その間にアドレス計算は発生しない。
【００４８】
また、前記メモリ配列手段は、マクロブロック毎の前記フレームメモリのバス幅に適合するように各プレーンの画像情報をまとめ、マクロブロック単位で前記フレームメモリ上に配置するようにしてもよい。このような場合、前記符号化復号化手段は、前記フレームメモリのバス幅に合わせた転送単位でデータ転送を繰り返すことで、メモリのバス幅に合わせた転送単位で効率的にデータ転送を繰り返すことができるので、処理時間を最短にすることができる。また、符号化復号化の演算の際にアライメント処理が簡略化される。
【００４９】
また、前記符号化復号化手段が所定バイト数からなる１ライン分のデータの演算をまとめて行なうことが可能なアーキテクチャを備えている場合には、前記メモリ配列手段は、前記所定バイト単位で１ラインを構成するように各プレーンの画像情報をまとめ、マクロブロック単位で前記フレームメモリ上に配置するようにしてもよい。具体的には、前記画像情報は輝度成分と２つの色差成分からなり、マクロブロックは１ラインが１６バイトの輝度成分と１ラインが８バイトの書く色差成分で構成され、前記符号化復号化手段は輝度成分１ライン分の演算をまとめて行なうことが可能なアーキテクチャを備えている場合には、前記メモリ配列手段は、前記２つの色差成分を１６バイトで１ラインとなるようにまとめ、マクロブロック単位で前記フレームメモリ上に配置するようにする。この場合、符号化復号化手段は、フレームメモリからマクロブロックデータを１ラインずつ読み出し、まとめて演算を行なうことができる。
【００５０】
復号システムがマクロブロックの輝度成分１ライン分(１６バイト)の演算をまとめて行なうことが可能なアーキテクチャである場合には、それぞれ８バイト×８ラインからなる２つの色差信号のデータ構造をまとめて１６バイト単位で１ラインを構成することにより、演算量を減少させることができる。このように、マクロブロック単位でメモリ上に連続配置するようなデータ構造を持ち、なお且つマクロブロック内では演算の処理単位に等しいバイト数のラインが連続して配列するデータ構造を備えているので、復号システムのパフォーマンスの向上させることができる。
【００５１】
また、前記符号化復号化手段は、取得するデータが複数のマクロブロックにまたがる場合には、マクロブロックデータのアドレス計算をライン単位で計算するのではなく、必要なマクロブロック数の単位でアドレス計算し、所望のマクロブロックの先頭アドレスを指定すれば、必要なすべてのマクロブロックのデータを取得することができ、アドレスアライメントが簡略化される。
【００５２】
また、本発明の第２の側面は、複数のプレーンからなる画像情報を所定のマクロブロック単位で符号化／復号化するための処理をコンピュータシステム上で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって、
各プレーンの画像情報をマクロブロック単位でまとめて前記フレームメモリ上に配列するメモリ配列ステップと、
前記フレームメモリからマクロブロック毎の画像情報をライン毎のアドレス計算なしに取得して符号化復号化処理を行なう符号化復号化ステップと、
を具備することを特徴とするコンピュータプログラムである。
【００５３】
本発明の第２の側面に係るコンピュータプログラムは、コンピュータシステム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータプログラムを定義したものである。換言すれば、本発明の第２の側面に係るコンピュータプログラムをコンピュータシステムにインストールすることによって、コンピュータシステム上では協働的作用が発揮され、本発明の第１側面に係る情報処理システムと同様の作用効果を得ることができる。
【発明の効果】
【００５４】
本発明によれば、１以上のサブプロセッサと各サブプロセッサにプログラムの実行を命令するメインプロセッサからなるマルチプロセッサ構成の情報処理システムにおいて、各サブプロセッサが、メインプロセッサから割り当てられた処理を、システム全体の性能を低下させることなく実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することができる。
【００５５】
また、本発明によれば、システム全体で共有するメモリ上の各データの処理をサブプロセッサ毎に割り当て、システム全体の性能を低下させることなく各サブプロセッサが割り当てられた処理を実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することができる。
【００５６】
また、本発明によれば、システム全体で共有するメモリ上の圧縮画像の復号処理を、あるサブプロセッサを用いて、システム全体の性能を低下させることなく実行することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することができる。
【００５７】
また、本発明によれば、サブプロセッサが、システム全体で共有するメモリからマクロブロックデータの取得を行なう際に、１ライン毎のアドレス計算に伴うオーバーヘッドを低減することができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログラムを提供することができる。
【００５８】
本発明によれば、マルチプロセッサ構成の情報処理システムにおいて、ＭＰＥＧなどのフレーム差分情報を利用したデータの復号化を行なう際に、データ転送時間を短縮するようなデータ構造を採用して参照フレームをメインメモリ上に展開することにより、メインメモリからキャッシュへデータをＤＭＡ転送する際の逐次的なアドレス計算を省略してデータ取得時間を短縮することができる。したがって、アドレス計算減少やデータ転送要求回数の低下に伴って、復号システムのパフォーマンスを向上させることができる。また、アーキテクチャに合わせたデータ構造に変更することにより、データアライメント処理が減少する。
【００５９】
また、本発明によれば、マルチプロセッサ構成の情報処理システムにおいて、ＭＰＥＧなどのフレーム差分情報を利用したデータの復号化を行なう際に、アーキテクチャの特徴に合わせた参照画像のマクロブロックデータの取得を行なうことにより、転送待ちを減少させ、また演算し易い構造でメインメモリ上に参照画像を展開することにより、復号システムの処理速度の向上を図ることができる。
【００６０】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００６１】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００６２】
Ａ．システム構成
本発明は、２以上の情報処理装置間における動作をホームネットワーク経由で好適に連携させることにより、別々の場所に設定されている各機器における録画予約操作を簡易且つ効率的にするものである。ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するためのグリッドコンピューティング技術を活用する。
【００６３】
図１には、グリッドコンピューティングを適用して構成される、ネットワークシステムの構成を模式的に示している。
【００６４】
ネットワークは、インターネットやその他の広域ネットワーク、並びに、広域ネットワークとはゲートウェイなどを介して接続されるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やホームネットワークなどのプライベートなネットワークで構成される。ホームネットワークは、物理的には、１０ＢａｓｅＴや１００ＢａｓｅＴＸ、Ｇｉｇａ  ｅａｔｈｅｒなどの標準的なネットワークインターフェースで構成することができる。また、ホームネットワーク上で他の機器を発見する仕組みとしてＵｐｎｐ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）を利用することができる。Ｕｐｎｐによれば、ネットワーク接続された機器間で、ＸＭＬ（ｅＸｔｅｎｄｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述された定義ファイルを交換し、アドレッシング処理、ディスカバリ処理、サービス要求処理を経て相互認証を行なう。あるいは同一セグメント内での規定の機器情報を記述したパケットのブロードキャストすることによっても実現可能である。
【００６５】
ネットワーク上には、複数の情報処理装置が接続されている。情報処理装置の例として、ＤＶＤレコーダやＨＤレコーダのような、記録メディアを搭載し録画予約機能を備えたＡＶ機器、あるいはコンパクトディスクなどの記録機能を持たない再生専用のＡＶ機器、その他の情報処理装置が挙げられる。また、情報処理装置の他の例は、ＰＤＡやパーソナルコンピュータなどの計算機処理システムを挙げることができる。図１に示す例では、ネットワーク９を介して複数の情報処理装置１、２、３、４が接続されている。
【００６６】
Ａ−１．情報処理装置及び情報処理コントローラ
情報処理装置１、２、３、４は、例えば各種のＡＶ（Ａｕｄｉｏ  ａｎｄ  Ｖｉｓｕａｌ）機器やポータブル機器である（後述）。
【００６７】
図示の通り、情報処理装置１は、コンピュータ機能部として情報処理コントローラ１１を備える。情報処理コントローラ１１は、メインプロセッサ２１−１、サブプロセッサ２３−１、２３−２、２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−１、及びＤＣ（ディスクコントローラ）２７−１を備えている。情報処理コントローラ１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。
【００６８】
メインプロセッサ２１−１は、サブプロセッサ２３−１、２３−２、２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１（情報処理装置１）の全般的な管理とを行なう。但し、メインプロセッサ２１−１内で管理を行なうためのプログラム以外のプログラムが動作するように構成することもできる。この場合、メインプロセッサ２１−１はサブプロセッサとしても機能することになる。メインプロセッサ２１−１は、ＬＳ（ローカル・ストレージ）２２−１を備えている。
【００６９】
１つの情報処理コントローラに備わるサブプロセッサは１つでもよいが、望ましくは複数とする。図示の例では、複数の場合である。各サブプロセッサ２３−１、２３−２、２３−３は、メインプロセッサ２１−１の制御下で、並列的且つ独立にプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ２１−１内のプログラムがサブプロセッサ２３−１、２３−２、２３−３内のプログラムと連携して動作することもできる。各サブプロセッサ２３−１、２３−２、２３−３も、それぞれＬＳ（ローカルストレージ）２４−１、２４−２、２４−３を備えている。
【００７０】
ＤＭＡＣ（直接メモリアクセスコントローラ）２５−１は、情報処理コントローラ１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ２６−１に格納されているプログラム及びデータにプロセッサの介在なしにアクセスするものである。また、ＤＣ（ディスクコントローラ）２７−１は、情報処理コントローラ１１に接続された外部記録部２８−１、２８−２へのアクセス動作を制御する。
【００７１】
外部記録部２８−１、２８−２は、固定ディスク（ハードディスク）、あるいはリムーバブルディスクのいずれの形態でもよい。また、リムーバブルディスクとして、ＭＯ（磁気ディスク）、ＣＤ±ＲＷ、ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど各種の記録メディアを用いることができる。ＤＣ２７−１は、ディスクコントローラと称するが、要するに外部記録部コントローラである。図１に示すように、外部記録部２８を複数接続できるように、情報処理コントローラ１１を構成することができる。
【００７２】
メインプロセッサ２１−１、各サブプロセッサ２３−１、２３−２、２３−３、ＤＭＡＣ２５−１、及びＤＣ２７−１は、バス２９−１によって相互接続されている。
【００７３】
情報処理コントローラ１１には、当該情報処理コントローラ１１を搭載する情報処理装置１をネットワーク全体を通して一意に識別できる識別子が、情報処理装置ＩＤとして割り当てられている。また、メインプロセッサ２１−１及び各サブプロセッサ２３−１、２３−２、２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤ及びサブプロセッサＩＤとして割り当てられる。
【００７４】
他の情報処理装置２、３、４も同様に構成されるので、ここでは説明を省略する。ここで、親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いによる差異を生じないものとする。
【００７５】
Ａ−２．各サブプロセッサからメインメモリへのアクセス
上述したように、１つの情報処理コントローラ内の各サブプロセッサ２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ２６内の同一領域に対して同時に読み出し又は書き込みを行なった場合には、データの不整合を生じ得る。そこで、サブプロセッサ２３からメインメモリ２６へのアクセスは、以下のような手順によって行なう。
【００７６】
図２（Ａ）には、メインメモリ２６内のロケーションを示している。同図に示すように、メインメモリ２６は複数のアドレスを指定できるメモリロケーションによって構成され、各メモリロケーションに対してデータの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤ及びＬＳアドレス（ローカル・ストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセス・キーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【００７７】
Ｆ／Ｅビット＝０は、サブプロセッサ２３によって読み出されている処理中のデータ、又は空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリ・ロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【００７８】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリ・ロケーションのデータは読み出し可能であり、サブプロセッサ２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリ・ロケーションがデータ書き込み不可であることを示す。
【００７９】
さらに、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリ・ロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行なう場合には、サブプロセッサ２３は、読み出し予約を行なうメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ２３のサブプロセッサＩＤ及びＬＳアドレスを書き込む。
【００８０】
その後、データ書き込み側のサブプロセッサ２３により、読み出し予約されたメモリ・ロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ及びＬＳアドレスに読み出される。
【００８１】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することにより、前段階の処理を行なうサブプロセッサ２３が処理済みのデータをメインメモリ２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行なう別のサブプロセッサ２３が前処理後のデータを読み出すことが可能となる。
【００８２】
また、図２（Ｂ）には、各サブプロセッサ２３内のＬＳ２４におけるメモリロケーションを示している。同図に示すように、各サブプロセッサ２３内のＬＳ２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【００８３】
サブプロセッサ２３がメインメモリ２６内のデータを自身のＬＳ２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【００８４】
図２（Ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ２６には、メインメモリ２６内の領域を画定する複数のサンドボックスが含まれる。メインメモリ２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。各サンドボックスは、サブプロセッサ２３毎に割り当てられ、該当するサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行なうことはできない。
【００８５】
さらに、メインメモリ２６の排他的な制御を実現するために、図２（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭのような比較的高速のメモリに格納され、ＤＭＡＣ２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサ・キー及びキーマスクが含まれる。
【００８６】
サブプロセッサ２３がメインメモリ２６を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ２３はＤＭＡＣ２５に、読み出し又は書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ２６のアドレスが含まれる。
【００８７】
ＤＭＡＣ２５は、このコマンドを実行する前にキー管理テーブルを参照し、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ２６内の図２（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【００８８】
図２（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０又は１になることができる。
【００８９】
例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０又は１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【００９０】
以上のようにして、メインメモリ２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内に配置された複数のサブプロセッサによってデータを多段階に処理する必要がある場合、前段階の処理を行なうサブプロセッサと、後段階の処理を行なうサブプロセッサのみが、メインメモリ２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【００９１】
このようなメモリの排他制御は、例えば以下のように使用することができる。まず、情報処理装置の起動直後においては、キーマスクの値はすべてゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。このような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的の処理を可能にする。より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行なわれるときには、以下のような設定のままでは、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。
【００９２】
第１のサブプロセッサのサブプロセッサ・キー：０１００、
第１のメインメモリ領域のアクセス・キー    ：０１００、
第２のサブプロセッサのサブプロセッサ・キー：０１０１、
第２のメインメモリ領域のアクセス・キー    ：０１０１
【００９３】
そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【００９４】
Ａ−３．ソフトウェアセルの生成及び構成
図１のネットワークシステムでは、情報処理装置１、２、３、４間での分散処理のために、情報処理装置１、２、３、４間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置に送信することによって、処理を分散することができる。
【００９５】
図３には、ソフトウェアセルの構成の一例を示している。図示のソフトウェアセルは、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム、及びデータによって構成される。
【００９６】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置内の情報処理コントローラの情報処理装置ＩＤ、さらに、当該情報処理装置内の情報処理コントローラが備えるメインプロセッサ２１及び各サブプロセッサ２３の識別子（メインプロセッサＩＤ及びサブプロセッサＩＤ）が含まれる。
【００９７】
送信先ＩＤ及び応答先ＩＤには、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての同じ情報がそれぞれ含まれる。
【００９８】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ、及び前回のソフトウェアセルＩＤで構成される。
【００９９】
グローバルＩＤは、ネットワーク全体を通して当該のソフトウェアセルを一意的に識別できるものであり、送信元ＩＤと、ソフトウェアセルの作成又は送信の日時（日付及び時刻）に基づいて作成される。
【０１００】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数が設定される。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ２６内及びサブプロセッサ２３のＬＳ２４内のメモリ量が設定される。
【０１０１】
前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【０１０２】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラム及びデータで構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【０１０３】
さらに、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
【０１０４】
ロードコマンドは、メインメモリ２６内の情報をサブプロセッサ２３内のＬＳ２４にロードするコマンドであり、ロードコマンド自体の他に、メインメモリアドレス、サブプロセッサＩＤ及びＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ２６内の所定領域のアドレスを示す。サブプロセッサＩＤ及びＬＳアドレスは、情報のロード先であるサブプロセッサ２３の識別子及びＬＳ２４のアドレスを示す。
【０１０５】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体の他に、サブプロセッサＩＤ及びプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【０１０６】
機能プログラム実行コマンドは、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである（後述）。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、機能プログラムＩＤ（後述）によって、起動すべき機能プログラムを識別する。
【０１０７】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図６に示す情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ２６にロードされ、メインプロセッサ２１により実行される。
【０１０８】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【０１０９】
図４には、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示している。
【０１１０】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時に、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３の数などに基づいて生成される。
【０１１１】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。ここで言う情報処理装置の特徴とは、例えば、ハードディスクレコーダ（後述）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ポータブルＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）プレーヤなどである。また、情報処理装置種別ＩＤは、映像音声記録、映像音声再生など、情報処理装置が持つ機能を表すものであってもよい、情報処理装置の特徴や機能を表す値はあらかじめ決められているものとし、情報処理装置種別ＩＤを呼び出すことにより当該情報処理装置の特徴や機能を把握することが可能である。
【０１１２】
ＭＳ（マスター／スレーブ）ステータスは、後述するように情報処理装置がマスター装置又はスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【０１１３】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ２１で現在動作しているすべてのプログラムについての、メインプロセッサ２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳ［Ｍｉｌｌｉｏｎ Ｉｎｓｔｒｕｃｔｉｏｎｓ Ｐｅｒ Ｓｅｃｏｎｄ］を単位として算出され、又は単位時間当りのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【０１１４】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ２３を識別するための識別子である。
【０１１５】
サブプロセッサステータスは、各サブプロセッサ２３の状態を表すものであり、ｕｎｕｓｅｄ、ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該サブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【０１１６】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、又は当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【０１１７】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサ２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ２３に対応する組数が設定される。
【０１１８】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ２６の総容量及び現在使用中の容量を表す。
【０１１９】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【０１２０】
外部記録部総容量及び外部記録部使用量は、それぞれ外部記録部ＩＤによって識別される外部記録部２８の総容量及び現在使用中の容量を表す。
【０１２１】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部２８に対して１組設定されるものであり、当該情報処理コントローラに接続されている外部記録部２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、それぞれの外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【０１２２】
Ａ−４ソフトウェアセルの実行
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上述したような構成のソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤ及び応答先ＩＤによって識別される。
【０１２３】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、そのソフトウェアセルをメインメモリ２６に格納する。さらに、送信先のメインプロセッサ２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。
【０１２４】
具体的には、送信先のメインプロセッサ２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤ及びＬＳアドレスで特定されるサブプロセッサ内のＬＳ２４の所定領域に情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラム又はデータ、あるいはその他の指示されたデータである。
【０１２５】
次に、メインプロセッサ２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタとともに出力する。
【０１２６】
指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ２６に格納した後、実行を完了したことをメインプロセッサ２１に通知する。
【０１２７】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ２３に限定されるものではなく、メインプロセッサ２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【０１２８】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ２６にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。
【０１２９】
次に、送信元の情報処理装置は、送信先の情報処理装置宛てに、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリ・アドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、及びプログラムカウンタを含み、ＤＭＡコマンドがキックコマンド又は機能プログラム実行コマンドであるソフトウェアセルを送信し、メインプロセッサ２１に当該メインメモリ用プログラムを実行させる。
【０１３０】
以上のように、本実施形態に係るネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラム又はメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３にロードさせ、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【０１３１】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラム又はメインメモリ用プログラムを実行させる。
【０１３２】
したがって、ユーザが送信先の情報処理装置を操作しなくても、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラにおいて自動的に実行させることができる。
【０１３３】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラム又は機能プログラムなどのメインメモリ用プログラムを備えていない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。さらに、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行ない、また上述したサンドボックスを使用することにより、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速且つ高セキュリティに処理を実行することができる。
【０１３４】
Ａ−５．ネットワークシステムとしての分散処理
図５には、複数の情報処理装置が仮想的な１台の情報処理装置として動作している様子を示している。ソフトウェアセルの使用による分散処理の結果、同図の上段に示すように、ネットワーク９に接続されている複数の情報処理装置１、２、３、４は、同図の下段に示すように、仮想的な１台の情報処理装置７として動作する。但し、このような仮想的な動作を実現するためには、以下のような構成によって、以下のような処理が実行される必要がある。
【０１３５】
Ａ−６．システムのソフトウェア構成とプログラムのロード
図６には、個々の情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成を示している。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前に、当該の情報処理コントローラに接続される外部記録部２８に記録されているものである。各プログラムは、機能又は特徴により、制御プログラム、機能プログラム及びデバイスドライバに分類される。
【０１３６】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャ及び能力交換プログラムを含む。
【０１３７】
機能プログラムは、メインプロセッサ２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【０１３８】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【０１３９】
ケーブルの差し込みなどによって情報処理装置が物理的にネットワーク９に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ２６にロードする。
【０１４０】
プログラムのロード手順としては、メインプロセッサ２１は、まず、ＤＣ２７に読み出し命令を実行させることによって、外部記録部２８からプログラムを読み出し、次に、ＤＭＡＣ２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ２６に書き込む。
【０１４１】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをメモリにロードするように構成してもよく、あるいは他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【０１４２】
機能プログラムに属する各プログラムは、ネットワークに接続されたすべての情報処理装置の外部記録部２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図５の下段に示すように、仮想的な１台の情報処理装置７として機能プログラムを実行することができる。
【０１４３】
ここで、前述したようにメインプロセッサ２１によって処理される機能プログラムは、サブプロセッサ２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ２１が外部記録部２８から機能プログラムを読み出し、メインメモリ２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ２６に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、すべての連携動作するサブプロセッサプログラムをメインメモリ２６に書き込むことになる。メインメモリ２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ２３内のＬＳ２４に書き込まれ、メインプロセッサ２１によって処理される機能プログラムと連携動作する。
【０１４４】
そして、サブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたものなどであることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個あるすべてのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【０１４５】
図３のソフトウェアセルに示したように、機能プログラムには、プログラム毎にプログラムを一意的に識別できる識別子が機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【０１４６】
メインプロセッサ２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここで言う装置情報は、図４に示したステータス返信コマンドのデータ領域における情報処理装置ＩＤ以下の各情報である。
【０１４７】
Ａ−７．システムにおけるマスター／スレーブの決定
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ２６にロードし、実行する。
【０１４８】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９に接続されていることを検知すると、同じネットワーク９に接続されている他の情報処理装置の存在を確認する。ここでの「接続」又は「存在」は、上述したように、情報処理装置が物理的にネットワーク９に接続されているだけでなく、電気的・機能的にもネットワーク９に接続されていることを示す。
【０１４９】
また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【０１５０】
ＭＳマネージャが同じネットワーク９に接続されている他の情報処理装置の存在を確認する方法について以下に説明する。
【０１５１】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤ及び応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成し、当該情報処理装置が接続されたネットワーク上に送信し、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分である。
【０１５２】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドで、且つデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）、及び当該他装置のＭＳステータスが含まれる。
【０１５３】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置はスレーブ装置となる。
【０１５４】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドがまったく受信されなかった場合、又はＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置はマスター装置となる。
【０１５５】
すなわち、いずれの装置もネットワーク９に接続されていない状態、又はネットワーク９上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０１５６】
マスター装置及びスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。この結果、ネットワーク９に接続されている情報処理装置の主電源が遮断され、又はネットワーク９から情報処理装置が切り離されることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９に新たな情報処理装置が接続された場合など、ネットワーク９の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０１５７】
Ａ−８．マスター装置及びスレーブ装置における装置情報の取得
メインプロセッサ２１は、ＭＳマネージャから、ネットワーク９に接続された他の情報処理装置の照会及び自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０１５８】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９に接続されている他のすべての情報処理装置についての装置情報、すなわち各スレーブ装置の装置情報を取得する。
【０１５９】
他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、且つデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０１６０】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９に接続されている他のすべての装置（各スレーブ装置）についての装置情報を格納するための領域を自装置のメインメモリ２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ２６には、自装置を含むネットワーク９に接続されているすべての情報処理装置の装置情報が装置情報テーブルとして記録される。
【０１６１】
一方、能力交換プログラムは、自装置がスレーブ装置である場合には、ネットワーク９に接続されている他のすべての装置についての装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤ及びＭＳステータスを、自装置のメインメモリ２６に記録する。すなわち、スレーブ装置のメインメモリ２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９に接続されているマスター装置及び各スレーブ装置についての情報処理装置ＩＤ及びＭＳステータスが、別の装置情報テーブルとして記録される。
【０１６２】
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ２６に記録する。
【０１６３】
なお、ＭＳマネージャ及び能力交換プログラムは、メインプロセッサ２１で実行されることに限らず、いずれかのサブプロセッサ２３で実行されてもよい。また、ＭＳマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１６４】
Ａ−９．情報処理装置がネットワークから切断された場合
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９に接続されている情報処理装置の主電源が遮断され、又はネットワーク９から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ２６から削除する。
【０１６５】
さらに、このようにネットワーク９から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０１６６】
例えば、ネットワーク９から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置ＩＤを数値に置き換え、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行し、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９に接続されている他のすべての情報処理装置（各スレーブ装置）から装置情報を取得して、メインメモリ２６に記録する。
【０１６７】
Ａ−１０．装置情報に基づく分散処理
図５の下段に示したようにネットワーク９に接続されている複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
【０１６８】
図７には、４台の情報処理装置が仮想的な１台の情報処理装置７として動作する様子を示している。図示の例では、情報処理装置１がマスター装置、情報処理装置２、３、４がスレーブ装置Ａ、Ｂ、Ｃとしてそれぞれ動作しているものとする。
【０１６９】
ユーザがネットワーク９に接続されている情報処理装置を操作した場合、操作対象がマスター装置１であれば、その操作情報はマスター装置１において直接把握される。また、操作対象がスレーブ装置であれば、その操作情報は操作されたスレーブ装置からマスター装置１に送信される。すなわち、ユーザの操作対象がマスター装置１とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行なわれる。
【０１７０】
そして、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、上記の方法によって自装置の外部記録部２８−１、２８−２からメインメモリ２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１に機能プログラムを送信してもよい。
【０１７１】
機能プログラムには、その実行単位毎に必要となる、情報処理装置種別ＩＤ、メインプロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの装置に関する要求スペック（図４を参照のこと）が規定されている。
【０１７２】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、各機能プログラムについて必要となる上記の要求スペックを読み出す。また、あらかじめ能力交換プログラムによってメインメモリ２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図４に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
【０１７３】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ネットワーク９上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０１７４】
例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。さらに、機能プログラムを実行するために必要なメインプロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０１７５】
実行要求するスレーブ装置が特定されたら、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１に含まれるメインメモリ２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０１７６】
さらに、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ＤＭＡコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、当該機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ（図３を参照のこと）を設定し、上記実行要求されるスレーブ装置に対して送信する。
【０１７７】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上記の方法によって自装置の外部記録部２８からメインメモリ２６に機能プログラム及び当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０１７８】
機能プログラムの実行を要求されたスレーブ装置の外部記録部２８に必要な機能プログラム又は当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラム又はサブプロセッサプログラムをその機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０１７９】
サブプロセッサプログラムについては、前述のロードコマンド及びキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０１８０】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、終了通知をマスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０１８１】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１が当該の機能プログラムを実行する。
【０１８２】
図７に示した例で、ユーザがスレーブ装置Ａ（情報処理装置２）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３）が実行する場合の分散処理について、図８を参照しながら説明する。
【０１８３】
図８に示す例では、ユーザがスレーブ装置Ａを操作することにより、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始し、まず、スレーブ装置Ａは、その操作情報をマスター装置１に送信する（ステップ８１）。
【０１８４】
マスター装置１は、その操作情報を受信し（ステップ７２）、さらに自装置のメインメモリ２６−１に記録されている自装置及び他装置の装置情報テーブルから各情報処理装置の動作状態を調べ、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する（ステップ７３）。図示の例では、スレーブ装置Ｂが選択される場合を示している。
【０１８５】
次に、マスター装置１は、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する（ステップ７４）。
【０１８６】
スレーブ装置Ｂは、その実行要求を受信し（ステップ９５）、さらに、実行要求された機能プログラムを実行する（ステップ９６）。
【０１８７】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０１８８】
Ａ−１１．各情報処理装置及びシステムの具体例
ネットワーク９を介して互いに接続される情報処理装置１、２、３、４は、上記のような情報処理コントローラ１１、１２、１３、１４によって情報処理を行なうものであれば、基本的にはどのような構成でもよい。図９には、情報処理装置の一構成例を示している。
【０１８９】
情報処理コントローラ１１を備える情報処理装置１の一例は、ハードディスクレコーダである。図１０並びに図１１には、同図中のハードディスクレコーダのハードウェア構成及びソフトウェア構成をそれぞれ示している。ハードディスクレコーダのハードウェア構成としては、図１に示した外部記録部２８−１としてハードディスクを内蔵し、図１に示した外部記録部２８−２としてＤＶＤ±Ｒ／ＲＷ、ＣＤ±Ｒ／ＲＷ、Ｂｌｕｒａｙ−Ｄｉｓｃ（登録商標）などの光ディスクを装着できるように構成されるとともに、情報処理コントローラ１１のバス２９−１に接続されたバス３１−１に、放送受信部３２−１、映像入力部３３−１、音声入力部３４−１、映像出力部３５−１、音声出力部３６−１、操作パネル部３７−１、リモコン受光部３８−１及びネットワーク接続部３９−１が接続されている。
【０１９０】
放送受信部３２−１、映像入力部３３−１及び音声入力部３４−１は、放送信号を受信し、又は情報処理装置１の外部から映像信号及び音声信号を入力し、それぞれ所定フォーマットのデジタルデータに変換し、情報処理コントローラ１１での処理のためにバス３１−１に送出する。映像出力部３５−１及び音声出力部３６−１は、情報処理コントローラ１１からバス３１−１に送出された映像データ及び音声データを処理して、デジタルデータのまま、又はアナログ信号に変換して、情報処理装置１の外部に送出するものであり、リモコン受光部３８−１は、リモコン送信器４３−１からのリモコン（遠隔操作）赤外線信号を受信する。
【０１９１】
図９及び図１０に示すように、情報処理装置（ハードディスクレコーダ）１の映像出力部３５−１及び音声出力部３６−１には、モニタ表示装置４１及びスピーカ装置４２が接続される。
【０１９２】
図９に例示した情報処理コントローラ１２を備える情報処理装置２も、ハードディスクレコーダで、図１０において括弧内に参照番号を付して示すように、情報処理装置１と同様に構成される。但し、図９に示すように、情報処理装置（ハードディスクレコーダ）２には、モニタ表示装置及びスピーカ装置は接続されない。
【０１９３】
情報処理装置（ハードディスクレコーダ）１及び２、すなわち情報処理コントローラ１１及び１２のソフトウェア構成としては、図１１に示すように、制御プログラムとして、ＭＳマネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、素材検索及び番組録画予約のためのプログラムを備え、デバイスドライバとして、放送受信、映像出力、音声出力、外部記録部入出力及びネットワーク入出力のためのプログラムを備える。
【０１９４】
また、情報処理コントローラ１３を備える情報処理装置３の他の例は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）である。図１２には、ＰＤＡとして構成される情報処理装置３のハードウェア構成を示している。同図に示す例では、図１に示した外部記録部２８−５として、メモリカードディスクを装着できるように構成され、情報処理コントローラ１３のバス２９−３に接続されたバス５１に、液晶表示部５２、音声出力部５３、カメラ部５４、音声入力部５５、キーボード部５６及びネットワーク接続部５７が接続されている。
【０１９５】
なお、図１では内部を省略した情報処理コントローラ１３は、メインプロセッサ２１−３、サブプロセッサ２３−７、２３−８、２３−９、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−３、ＤＣ（ディスクコントローラ）２７−３及びバス２９−３を備え、そのメインプロセッサ２１−３は、ＬＳ（ローカル・ストレージ）２２−３を有し、各サブプロセッサ２３−７、２３−８、２３−９は、ＬＳ（ローカル・ストレージ）２４−７、２４−８、２４−９を備えている。
【０１９６】
また、図１３には、情報処理装置（ＰＤＡ）３、すなわち情報処理コントローラ１３のソフトウェア構成を示している。同図に示すように、制御プログラムとして、ＭＳマネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、電話帳、ワープロ及び表計算のためのプログラム、及びＷｅｂブラウザを備え、デバイスドライバとして、映像出力、音声出力、カメラ映像入力、マイク音声入力及びネットワーク入出力のためのプログラムを備えている。
【０１９７】
また、情報処理コントローラ１４を備える情報処理装置４は、ポータブルＣＤプレーヤである。図１４には、ポータブルＣＤプレーヤのハードウェア構成を示している。図示の例では、ポータブルＣＤプレーヤは、図１に示した外部記録部２８−６として、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）を装着できるように構成され、情報処理コントローラ１４のバス２９−４に接続されたバス６１に、液晶表示部６２、音声出力部６３、操作ボタン部６４及びネットワーク接続部６５が接続されている。
【０１９８】
なお、図１では内部を省略した情報処理コントローラ１４は、メインプロセッサ２１−４、サブプロセッサ２３−１０、２３−１１、２３−１２、ＤＭＡＣ２５−４、ＤＣ２７−４及びバス２９−４を備え、そのメインプロセッサ２１−４は、ＬＳ２２−４を有し、各サブプロセッサ２３−１０、２３−１１、２３−１２は、ＬＳ２４−１０、２４−１１、２４−１２を有する。
【０１９９】
図１５には、情報処理装置（ポータブルＣＤプレーヤ）４、すなわち情報処理コントローラ１４のソフトウェア構成を示している。図示のように、制御プログラムとして、ＭＳマネージャ及び能力交換プログラムを備え、機能プログラムとして、音楽再生のためのプログラムを備え、デバイスドライバとして、音声出力、ＣＤ制御及びネットワーク入出力のためのプログラムを備える。
【０２００】
図９に例示したネットワークシステムでは、情報処理装置１、３及び４がネットワーク９上に接続されており、情報処理装置１がマスター装置（ＭＳステータス＝０）として、情報処理装置３及び４がスレーブ装置（ＭＳステータス＝１）として、設定されているものとする。
【０２０１】
この状態で、新たに情報処理装置２がネットワーク９に接続されると、上述した方法によって、情報処理装置２内の情報処理コントローラ１２に含まれるメインプロセッサ２１−２で実行されているＭＳマネージャは、他の情報処理装置１、３及び４にＭＳステータスを照会して、情報処理装置１が既にマスター装置として存在することを認識し、自装置（情報処理装置２）をスレーブ装置（ＭＳステータス＝１）に設定する。また、マスター装置に設定されている情報処理装置１は、新たに追加された情報処理装置２を含む各装置の装置情報を収集して、メインメモリ２６−１内の装置情報テーブルを更新する。
【０２０２】
このような状態で、ユーザによってスレーブ装置である情報処理装置（ＰＤＡ）３で２時間の放送番組を録画予約するための操作が行なわれた場合について、以下に説明する。
【０２０３】
この場合、スレーブ装置である情報処理装置（ＰＤＡ）３は、ユーザから録画開始時刻、録画終了時刻、録画対象放送チャネル、録画品質などの情報を含む録画予約情報の入力を受け付け、当該録画予約情報及びＤＭＡコマンドとしての録画予約コマンドを含むソフトウェアセルを生成して、マスター装置である情報処理装置１に送信する。
【０２０４】
ＤＭＡコマンドが録画予約コマンドであるソフトウェアセルを受信した情報処理装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、録画予約コマンドを読み出すとともに、メインメモリ２６−１内の装置情報テーブルを参照し、当該録画予約コマンドを実行可能な情報処理装置を特定する。
【０２０５】
まず、メインプロセッサ２１−１は、装置情報テーブルに含まれる各情報処理装置１、２、３、４の情報処理装置種別ＩＤを読み出して、録画予約コマンドに対応する機能プログラムを実行可能な情報処理装置を抽出する。ここでは、録画機能を示す情報処理装置種別ＩＤを有する情報処理装置１、２が候補装置として特定され、情報処理装置３、４は候補装置から除外される。
【０２０６】
次に、マスター装置である情報処理装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、装置情報テーブルを参照して、情報処理装置１、２のメインプロセッサ又はサブプロセッサの処理能力、メインメモリに関する情報などの装置に関する情報を読み出し、情報処理装置１、２が録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するか否かを判断する。ここでは、情報処理装置１、２とも、録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するものとする。
【０２０７】
さらに、メインプロセッサ２１−１は、装置情報テーブルを参照して、情報処理装置１、２の外部記録部に関する情報を読み出し、外部記録部の空き容量が当該録画予約コマンドの実行に必要な容量を満足するか否かを判断する。情報処理装置１、２はハードディスクレコーダであるので、それぞれハードディスク２８−１、２８−３の、総容量と使用量との差分が、それぞれの空き容量に相当する。
【０２０８】
この場合、情報処理装置１のハードディスク２８−１の空き容量が、録画時間に換算して１０分であり、情報処理装置２のハードディスク２８−３の空き容量が、録画時間に換算して２０時間であるとする。
【０２０９】
このとき、マスター装置である情報処理装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、当該録画予約コマンドの実行に必要な２時間分の空き容量を確保できる情報処理装置を、実行要求先スレーブ装置として特定する。
【０２１０】
その結果、情報処理装置２のみが実行要求先スレーブ装置として選択され、マスター装置である情報処理装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ユーザにより操作された情報処理装置３から送信された録画予約情報を含む当該録画予約コマンドを情報処理装置２に送信して、上記２時間の放送番組の録画予約の実行を要求する。
【０２１１】
そして、情報処理装置２内の情報処理コントローラ１２に含まれるメインプロセッサ２１−２は、当該録画予約コマンドを解析して、録画に必要な機能プログラムを外部記録部であるハードディスク２８−３からメインメモリ２６−２にロードし、録画予約情報に従って録画を実行する。その結果、録画予約された２時間の放送番組の映像音声データが情報処理装置２のハードディスク２８−３に記録される。
【０２１２】
このように、図９の例のネットワークシステムにおいても、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０２１３】
Ｂ．サブプロセッサによる画像処理の実行
上述したように、本発明に係る情報処理システムは、自己のローカルストレージ上に展開されたプログラムを実行可能な１以上のサブプロセッサと、サブプロセッサにプログラムの実行を命令するメインプロセッサとを備えたマルチプロセッサ構成である。このようなマルチプロセッサ構成の情報処理システムによれば、各サブプロセッサの連携により、１つのプロセッサでは負荷の高い処理を分散して実現可能となり、あるいは関連する２以上のデータ処理を同期・協調して実行することができるようになるので、ユーザに対し高機能・高付加価値のサービスを提供することができる。
【０２１４】
各プロセッサはシステムバスを介してメインメモリを共有しており、システムの処理データはメインメモリ上に展開される。メインプロセッサは、メインメモリ上のデータ処理を各サブプロセッサに割り当て、その処理実行を指示する。サブプロセッサは、データ処理を実行するためのサブプロセッサプログラムをロードし、メインプロセッサからの指示によりプログラムを起動して、メインメモリ上のデータの処理を実行する。
【０２１５】
本発明に係るマルチプロセッサ構成のシステムでは、各サブプロセッサはそれぞれ専用のローカルストレージを備えており、メインメモリ上にあるデータの処理を行なう際に、自己のローカルストレージをいわゆるキャッシュメモリとして使用する。これによって、メインプロセッサ並びに複数のサブプロセッサからメインメモリへのアクセス競合を回避するとともに、システムバスのトラフィック増加を抑止することができる。
【０２１６】
ところが、メインメモリからローカルストレージへデータをＤＭＡ転送する度にアドレス計算を行なう必要があるため、データ取得時間が長くなり、復号システムのパフォーマンスを低下させてしまうという問題がある。
【０２１７】
例えば、マルチプロセッサシステムを構成する１つのサブプロセッサを用いて、ＭＰＥＧのようにフレーム間の差分情報のみを圧縮符号化した圧縮画像の復号化処理を行なうという復号システムでは、符号化された差分情報と、差分情報抽出に使用した参照フレームデータが必要であることから、保存されている参照フレームデータを適宜読み込んで画像データの復号処理を行なう必要がある。画像フレームのサイズは、ＨＤサイズ画像では１フレーム当たり３Ｍから６Ｍバイト程度に登るため、記憶容量当たりの単価が安いメインメモリがフレームメモリとして用いられる。そして、サブプロセッサのローカルストレージのサイズはメインメモリよりも小さいことから、参照するデータが異なる場合にメインメモリとローカルストレージ間でデータ転送が発生する。
【０２１８】
具体的には、マルチプロセッサ上においてＭＰＥＧなどの処理においてマクロブロック単位での処理がある場合、ＭＰＥＧ２を例にすると、参照フレームデータを使用してデコードデータを計算する。その際フレームデータと演算を行なっているプロセッサ間でＤＭＡが必要となり、取得までのオーバーヘッドが問題となる。
【０２１９】
一般的にＤＭＡなどによってデータを取得するオーバーヘッドは、デコードデータの他の処理によって隠蔽化する方法が一般的に知られている。しかしながら、オーバーヘッドの時間が減らされる訳ではなく、データの取得時間を隠蔽かできない場合は、処理ができない時間が増える。
【０２２０】
ＭＰＥＧ２などのデコーダはマクロブロック単位で処理が行なわれる。これに対し、ＭＰＥＧなどにおける画像符号化で用いられるフレームメモリのデータ構造は、輝度成分、色差成分などをそれぞれ画像サイズに合わせて保持している。言い換えれば、輝度成分と色差成分はそれぞれ別のプレーン上に展開されており、同じマクロブロックの輝度成分データ、色差成分データであってもこれらのアドレスは線形的でない。このため、マクロブロックデータ単位でＤＭＡ転送する際には、１ライン毎にデータのアドレス再計算が行なわなければならず、データ取得の際の多大なオーバーヘッドとなってしまう。
【０２２１】
本発明者らは、ＭＰＥＧなどのフレーム差分情報を、アドレス計算がなるべく少なくなるようなデータ構造を採用してメインメモリ上に展開することが必要であると思料する。そこで、本発明では、マルチプロセッサアーキテクチャを考慮してデータ転送のデータ構造を変更してフレーム差分情報をメインメモリ上に配置することで、ＤＭＡデータ取得時のアドレス計算に伴うコストを減らすようにした。変更したデータはサブプロセッサにおいて演算のためのデータアライメントを考慮した構造とする。
【０２２２】
具体的には、本来はそれぞれ画像サイズに合わせて個別のプレーン上に展開される輝度成分、色差成分など複数の画像情報を、マクロブロック単位でアドレスが線形的となるようにメインメモリ上に配置するというデータ構造を採用する。すなわち、各プレーンの画像情報をマクロブロック単位でまとめ、マクロブロックを構成するプレーン毎の画像情報をメインメモリ上に連続的に配置するようにする。この場合、画像圧縮／復号化を行なうときには、マクロブロック単位でのメモリ配列を行なうことにより、１回のデータ（ＤＭＡ）転送で必要となるアドレス計算が削減されるので、データ転送効率が著しく短縮される。また、メインメモリとキャッシュメモリ間のデータ取得時間の短縮化により、復号システムのパフォーマンスが向上する。
【０２２３】
以下では、マルチプロセッサ構成の情報処理システムで画像処理を扱うという実施形態における、サブプロセッサがマクロブロックデータを取得する際のアドレス計算を減少しデータ取得時間の短縮することによりパフォーマンスを向上させる復号システムについて詳解する。
【０２２４】
メインプロセッサは、圧縮された画像の復号処理を１つのサブプロセッサに割り当てることができる。この場合、さらに他のサブプロセッサに対し、画像データをユーザの好みの品質に編集する画質改善や、他の符号化方式へ再符号化するリエンコードなど、復号された画像データに対する他の処理を指示し、システム全体として連携動作を行なうことができる。
【０２２５】
図１６には、１つのサブプロセッサが画像復号処理を行なう場合のマルチプロセッサ構成システムの機能構成を模式的に示している。図示のシステムでは、以下の特徴を持つものとする。
【０２２６】
（１）サブプロセッサ毎に専用のローカルストレージを有する。
（２）サブプロセッサは自己のローカルストレージ以外に直接アクセスしない。
（３）メインメモリはＤＲＡＭのような比較的低速のメモリ素子が使用される。
（４）サブプロセッサは必要に応じてメインメモリの一部のエリアをローカルストレージにキャッシュする機構を有する。
（５）メインメモリ上のデータを取得する際に、アドレスのアライメントがなされていないと転送効率が低下する。
【０２２７】
画像の符号化・復号化処理では、フレーム全体をマクロブロックと呼ばれる小さな領域に分割して信号処理が行なわれる。例えば、標準的な画像圧縮規格の１つであるＭＰＥＧにおける基本的な圧縮アルゴリズムは以下の通りである。すなわち、
【０２２８】
（１）マクロブロックを符号化単位として時間的画面相関に基づく情報圧縮を行なう。
（２）マクロブロックをサブブロックに細分化して、ＤＣＴによる空間的情報圧縮を行なう。
（３）動き補償フレーム間予測などを利用して可変長符号化を行なう。
（４）ＤＣＴ係数の量子化スケール制御により、全体の符号発生量の制御を行なう。
【０２２９】
また、画像圧縮では、圧縮対象のフレームと参照となるフレーム間の差分情報を圧縮するフレーム間符号化が行なわれる。図１７には、圧縮された画像信号の復号を行なう場合の基本的な動作手順をフローチャートの形式で示している。
【０２３０】
図示の通り、圧縮画像の復号処理フローは、圧縮ストリームの入力（ステップＳ１）、ストリームの復号（ステップＳ２）、参照フレームの入力（ステップＳ３）、画像伸張処理（ステップＳ４）、復号結果の出力（ステップＳ５）という一連の処理が、ブロック数判定により（ステップＳ６）１フレーム毎に行なわれる。
【０２３１】
ここで、ステップＳ１、Ｓ３、Ｓ５の各処理において、メインメモリとローカルストレージ間でのデータ転送が発生する。メモリ間のデータ転送は複数のモジュールが共通で使用するシステムバスを介して行なわれることから、メインメモリとローカルストレージ間でのデータ転送の処理時間の悪化は、復号システム全体の性能劣化につながる。このため、転送待ちを減少させるような処理方法が求められる。
【０２３２】
ステップＳ１におけるストリーム入力のための転送では、ストリームはメモリ上に連続して配置され、且つ、逐次的に処理されるものなので、データアクセスするためのアドレス計算や、アーキテクチャに依存するようなデータサイズの設定なども実装が容易である。また、サブプロセッサが演算している間に、次のストリームデータを転送しておくことで、転送待ちの処理が問題にならない手法を容易に行なうことができる。
【０２３３】
また、ステップＳ５における復号結果の出力では、複数のマクロブロックが同じアドレスに対して出力結果を書き込むことはなく、またフレーム全体の復号処理が終わるまでの間は出力結果が他のマクロブロックの処理で読み込まれることもない。したがって、デコード結果を後続マクロブロックのデコード処理とは非同期にメインメモリへ転送することができ、これにより性能低下を抑制することができるため、キャッシュ適用の対象外になる。
【０２３４】
ここで、ステップＳ３の参照フレームの入力について考える。画像の圧縮処理では、圧縮対象のフレームと参照となるフレームの差分情報のみを伝送して圧縮効率を高めるフレーム間符号化が行なわれている（前述）。この場合、復号処理には差分情報の生成に使用した参照画像のデータを取得する必要がある。
【０２３５】
参照フレーム内の予測に使用した画像データの位置取得には、ストリーム中に符号化されている動きベクトルを用いることで可能となる。参照画像を取得するための手順としては図１８にフローチャートの形式で示す処理手順により実現される。
【０２３６】
まず、動きベクトルを基に、参照フレーム内の参照位置情報を計算する（ステップＳ１１）。そして、算出された参照位置情報から取得ブロックデータを決定する（ステップＳ１２）。
【０２３７】
次いで、取得するべきメモリアドレスを計算し（ステップＳ１３）、取得するべきデータをリスト化する（ステップＳ１４）。そして、このリスト情報を基に、メインメモリからローカルストレージへのデータ転送を開始する（ステップＳ１５）。
【０２３８】
このデータ転送が終了するまで待機し（ステップＳ１６）、所望のデータ取得が完了すると（ステップＳ１７）、本処理ルーチン全体を終了する。
【０２３９】
ここで、画像情報は、輝度成分Ｙと、色差成分Ｃｂ及びＣｒに分離される。従来のメモリ配置方式では、これらの画像情報はデータ構造が分かれており、図１９に示すように、それぞれ画像サイズに合わせて個別のプレーン上に展開されている。すなわち、輝度成分Ｙはｍ_Ｙ_ｈｅｉｇｈｔ×ｍ_Ｙ_ｗｉｄｔｈという画像サイズを持ち、色差成分Ｃｒ並びにＣｂはｍ_Ｃ_ｈｅｉｇｈｔ×ｍ_Ｃ_ｗｉｄｔｈという画像サイズを持つプレーンである。
【０２４０】
このような場合、マクロブロックデータを取得する際には、上述したようなフレームメモリ構造のために、図２０に示すように、輝度成分Ｙ、及び色差成分Ｃｂ、Ｃｒ毎にマクロブロックに該当するデータブロックを特定するとともに、各成分のデータブロックにおいて１ライン毎にアドレス計算してＤＭＡ転送しなければならない。輝度成分Ｙ、及び色差成分Ｃｂ、Ｃｒはそれぞれ別のプレーン上に配置されている。したがって、各プレーンからマクロブロックに相当する領域を特定し、輝度成分Ｙ、及び色差成分Ｃｂ、Ｃｒそれぞれのプレーン上の該当領域からマクロブロックのデータを１ライン毎にアドレス計算してデータ転送を繰り返す。
【０２４１】
すなわち、図１８に示した処理手順のステップＳ１５では、ＤＭＡ要求元から受け取ったリスト情報を基にメインメモリからローカルストレージへのデータ転送を開始するが、実際には、図２１に示すように、ライン単位でリスト情報を基に１ライン分のＤＭＡ転送を行ない（ステップＳ１５−１）、１ラインのＤＭＡ転送が終わると次のラインのアドレスをセットする（ステップＳ１５−２）、という処理をリストの全エントリについて繰り返し行なわなければならない（ステップＳ１５−３）。
【０２４２】
このように、輝度成分Ｙ、及び色差成分Ｃｂ、Ｃｒをライン毎にデータ転送し、データ転送の度にアドレス計算が発生し、データ取得の際の多大なオーバーヘッドとなってしまう。輝度成分Ｙが１６ライン、色差成分Ｃｂ並びにＣｒが８ラインで構成される場合、１つのマクロブロックをＤＭＡ転送するのに３２回のアドレス計算を行なわなければならない。
【０２４３】
また、図２０に示した例では、輝度成分Ｙのマクロブロックのサイズが１６バイト×１６ラインであるのに対し、色差成分Ｃｂ及びＣｒのマクロブロックのサイズは８バイト×８ラインである。１ライン毎にＤＭＡ転送を行なうというアーキテクチャの制限などにおいては、例えばメモリのバス幅が１６バイトである場合であっても、色差成分Ｃｂ及びＣｒのマクロブロックの読み出しは１ラインすなわちメモリのバス幅よりも小さい８バイトという転送単位で繰り返されることになるため、処理時間の悪化に繋がる。
【０２４４】
そこで、本実施形態では、メインメモリ上に置かれる参照フレームデータを、輝度成分Ｙと色差成分Ｃｂ及びＣｒに分離されたデータ構造から、マクロブロック単位で各成分のデータがメモリ上に連続的に配置されるというデータ構造に変更する。すなわち、これら輝度成分及び色差成分など複数のプレーンからなる画像情報をマクロブロック単位でアドレスが線形的となるようにメインメモリ上に配置する。
【０２４５】
このように、マクロブロック単位でアドレスが線形的となるようにメインメモリ上に配置するという、マクロブロック単位でのメモリ配列を行なうことで、１回のデータ（ＤＭＡ）転送で必要となるアドレス計算が削減される。メインメモリからマクロブロックのデータを取得する際のアドレス計算の回数が減少し、データ取得時間が短縮化することにより、復号システムとしてのパフォーマンスが向上する。
【０２４６】
図２２には、輝度成分Ｙと色差成分Ｃｒ及びＣｂからなる参照フレームデータをマクロブロック単位でメモリ上に連続的に配置されるデータ構造を示している。このような場合、マクロブロックの転送を開始するときには、ＤＭＡのデータリストを用いる必要はなく、マクロブロックの先頭アドレスとマクロブロックのサイズを指定したＤＭＡ要求を１回行なうだけでブロックデータを一度に取得することができ、その間にアドレス計算は発生しない。
【０２４７】
また、上述のように参照フレームデータのメモリ配列を変更する際に、サブプロセッサにおいて演算のためのデータアライメントを考慮した構造とするようにしてもよい。すなわち、参照フレームデータをマクロブロック毎にメモリ配列する際に、１ラインのサイズ、メモリのバス幅に合わせることにより、マクロブロックのデータ転送を適当な転送単位で繰り返しなうことにより効率化され、演算などのアーキテクチャに合わせた構造によりパフォーマンス向上に貢献にする。
【０２４８】
図２３並びに図２４には、輝度成分Ｙと色差成分Ｃｂ及びＣｒからなるフレームデータを図２２に示すようにマクロブロック単位でメモリ上に連続的に配列するための処理手順をフローチャートの形式で示している。但し、ＭＰＥＧなどの画像圧縮技術で扱う画像タイプはフレーム内予測を行なうＩピクチャと、フレーム間予測を行なうＰピクチャ及びＢピクチャに大別され、図２３にはフレームない予測画像フレームについてのメモリ配列手順を、図２４にはフレーム間予測画像フレームについてのメモリ配列手順を、それぞれ示している。
【０２４９】
Ｉピクチャなどのフレーム内予測画像をメモリ配列する場合、圧縮ストリームを入力し（ステップＳ２１）、これをストリーム復号（ステップＳ２２）並びに画像伸張処理した後（ステップＳ２３）、復号結果をマクロブロック単位で線形的にメインメモリ上に配置していく（ステップＳ２４）。そして、このような処理を所定の処理ブロック数分だけ繰り返し行なう（ステップＳ２５）。
【０２５０】
また、ＰピクチャやＢピクチャなどのフレーム間予測画像をメモリ配列する場合、圧縮ストリームを入力し（ステップＳ３１）、これをストリーム復号する（ステップＳ３２）。そして、参照フレームより復号結果をマクロブロック単位で入力して（ステップＳ３３）、画像伸張処理した後（ステップＳ３４）、復号結果をマクロブロック単位で線形的にメインメモリ上に配置していく（ステップＳ３５）。そして、このような処理を所定の処理ブロック数分だけ繰り返し行なう（ステップＳ３６）。
【０２５１】
図２５には、輝度成分Ｙと色差成分Ｃｂ及びＣｒからなるフレームデータが図２２に示すようにメインメモリ上にマクロブロック単位で連続的に配列されている場合に、サブプロセッサがメインメモリから自己のローカルストレージへマクロブロックデータを取得するための処理手順をフローチャートの形式で示している。
【０２５２】
まず、動きベクトルを基に、参照フレーム内の参照位置情報を計算する（ステップＳ４１）。そして、算出された参照位置情報から取得ブロックデータを決定する（ステップＳ４２）。
【０２５３】
次いで、取得するべきマクロブロックのアドレスを利用して、マクロブロックデータの転送を開始する（ステップＳ４３）。ここで行なわれるデータ転送は、マクロブロックの先頭アドレスを開始アドレスとして、マクロブロックのサイズ分だけのＤＭＡ転送である。マクロブロックの先頭アドレスのみアドレス計算し、先頭アドレスを指定した以降は、アドレスの計算を含まない。
【０２５４】
このデータ転送が終了するまで待機し（ステップＳ４４）、所望のデータ取得が完了すると（ステップＳ４５）、本処理ルーチン全体を終了する。
【０２５５】
図２５に示したマクロブロックのデータ転送処理手順によれは、アドレス位置情報取得によるアドレス計算回数を減少させ、必要なデータを取得することが可能になる。
【０２５６】
図２６には、輝度成分Ｙと色差成分Ｃｂ及びＣｒからなる参照フレームデータをマクロブロック単位でメモリ上に配置したデータ構造についての他の例を示している。同図では、色差成分Ｃｂ及びＣｒをまとめて、１６バイトすなわちメモリのバス幅に合わせた配列を行なう。このような場合、図２２に示したメモリ配置方法の場合と同様に、マクロブロックの転送を開始するときには、ＤＭＡのデータリストを用いる必要はなく、マクロブロックの先頭アドレスとマクロブロックのサイズを指定したＤＭＡ要求を１回行なうだけでブロックデータを一度に取得することができ、その間にアドレス計算は発生しない。
【０２５７】
図２０に示した例では、色差成分Ｃｂ及びＣｒへは８バイト単位すなわちメモリのバス幅以下でのアクセスを行なわなければならなかった。これに対し、図２６では、色差成分Ｃｂ及びＣｒをまとめて、１６バイトすなわちメモリのバス幅に合わせた配列を行なっているので、メモリのバス幅に合わせた転送単位で効率的にデータ転送を繰り返すことが可能であり、処理時間を最短にすることができる。また、サブプロセッサにおける演算の際にアライメント処理が簡略化される。
【０２５８】
また、復号化を行なうサブプロセッサがマクロブロックの輝度成分１ライン分（１６バイト）の演算をまとめて行なうことが可能なアーキテクチャである場合には、図２６に示したようにそれぞれ８バイト×８ラインからなる２つの色差信号のデータ構造をまとめて１６バイト単位で１ラインを構成することにより、演算量を減少させることができる。このように、マクロブロック単位でメモリ上に連続配置するようなデータ構造を持ち、なお且つマクロブロック内では各成分のデータをズ２６に示すようにまとめたデータ構造を持つことにより、まとめてデータを取得し且つ処理することが可能となり、復号システムのパフォーマンスの向上させることができる。
【０２５９】
なお、図２６に示した例では、ＭＰＥＧ２デコーダの４：２：０フォーマット（輝度成分（ｙ）が１６×１６ラインで、色差成分（Ｃｂ，Ｃｒ）８×８ライン×２、３８４バイト／ＭＢ）について、２つの色差信号のデータ構造をまとめて１６バイト単位で１ラインを構成するように示されているが、他のフォーマットにおいても同様に２つの色差信号のデータ構造をまとめて１６バイト単位で１ラインを構成することにより、演算量を減少させることができる。例えば４：２：２（輝度成分（ｙ）が１６×１６ライン、色差成分（Ｃｂ，Ｃｒ）８×１６ライン×２、５１２バイト／ＭＢ）の場合には、図３０に示すように、それぞれ８バイト×１６ラインからなる２つの色差信号をまとめて１６バイト単位で１ラインを構成する構造にすることにより、同様に対応することができる。図２６との相違は、色差成分のライン数が、８ラインから１６ラインに変わる点である。Ｃｂ及びＣｒの１ラインに関わるデータは図２６と同じである。
【０２６０】
図２７には、図２６に示すように色差成分Ｃｂ及びＣｒをまとめてメモリのバス幅に合わせてメインメモリ上にマクロブロック単位で配列されている場合に、サブプロセッサがメインメモリから自己のローカルストレージへマクロブロックデータを取得するための処理手順をフローチャートの形式で示している。
【０２６１】
まず、動きベクトルを基に、参照フレーム内の参照位置情報を計算する（ステップＳ５１）。そして、算出された参照位置情報から取得ブロックデータを決定する（ステップＳ５２）。
【０２６２】
次いで、取得するべきマクロブロックのアドレスを利用して、マクロブロックデータの転送を開始する（ステップＳ５３）。ここで行なわれるデータ転送は、マクロブロックの戦闘アドレスを開始アドレスとして、マクロブロックのサイズ分だけのＤＭＡ転送である。マクロブロックの先頭アドレスのみアドレス計算し、先頭アドレスを指定した以降は、アドレスの計算を含まない。
【０２６３】
このデータ転送が終了するまで待機し（ステップＳ５４）、所望のデータ取得が完了すると（ステップＳ５５）、取得データのアライメント調整を行なう（ステップＳ５６）。そして、参照画像の演算処理を行なう（ステップＳ５７）。
【０２６４】
図２７に示した処理手順によれば、動きベクトルから参照画像の位置情報を計算し、必要なマクロブロックデータの転送を開始する。このとき必要なマクロブロックデータを取得する際に、ライン毎にアドレス計算を行なう必要はなく、必要なマクロブロックデータの先頭アドレスを指定するだけでマクロブロックデータを取得することが可能になる。そして、マクロブロックのデータ構造を変更することによる処理の減少と、アーキテクチャの特徴に合わせて実装することによって取得データアライメント処理、演算においても効果を得ることができる。
【０２６５】
参照画像を転送する際、取得するデータによっては、図２８に示すように、複数のマクロブロックにまたがる場合がある。その際、アーキテクチャの特徴によりアドレスにアクセスする際には一定のアドレスアライメントされていないと、データ転送ができない条件がよく問題となっている。この場合、取得後に実際に使用するデータのアライメント処理が必要になる。
【０２６６】
本実施形態では、アーキテクチャでアドレスアライメントが１６×Ｎ倍に制限される場合でも、マクロブロックデータのアドレス計算をライン単位にアドレス計算するのではなく、必要なマクロブロック数の単位でアドレス計算すればよく、所望のマクロブロックの先頭アドレスを指定すればライン毎のアドレス再計算を伴うことなくマクロブロックのデータを取得することが可能であるので、パフォーマンスの向上に繋がる。
【０２６７】
図２８に示した例では、取得したいマクロブロックが、メインメモリ上に配列された４つのマクロブロックにまたがる場合には、これらすべてをサブプロセッサのローカルストレージへＤＭＡ転送する。本発明によれば、マクロブロックデータを取得するのに１ライン毎のアドレス計算は不要であり、各マクロブロックの先頭アドレスを指定するだけでよく、オーバーヘッドが少ない。
【０２６８】
また、画像の符号化吻合か処理を行なうサブプロセッサがマクロブロックの輝度成分１ライン分（１６バイト）の演算をまとめて行なうことが可能なアーキテクチャである場合には、図２６示したように８バイト×８ラインからなるデータ構造を持つ２つの色差信号Ｃｂ及びＣｒも、まとめて１６バイト単位で１ラインからなるデータ構成を作成することで演算量を減少させることが可能になる。
【０２６９】
以上説明したように、マクロブロック単位でメモリ上に連続配置するようなデータ構造を持ち、なお且つマクロブロック内のデータ構造を図２６に示したようにまとめたデータを取得し、処理させることで、復号システムのシステムパフォーマンスの向上させることができる。
【産業上の利用可能性】
【０２７０】
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０２７１】
本明細書では、自己のローカルストレージ上に展開されたプログラムを実行可能な１以上のサブプロセッサと、サブプロセッサにプログラムの実行を命令するメインプロセッサとを備えたマルチプロセッサシステム上でフレーム間符号化が行なわれた圧縮画像データを復号する場合を例にとって、本発明の一実施形態について説明してきたが、本発明の要旨はこれに限定されるものではない。マルチプロセッサ構成以外のシステム上でＭＰＥＧなどのフレーム差分情報を利用した画像データの復号処理を行なう場合であっても、本発明を適用することにより、キャッシュヒット率を増加させ、キャッシュを用いた処理のパフォーマンス並びにシステム全体の性能を向上させることができる。
【０２７２】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０２７３】
【図１】図１は、本発明の一実施形態に係るネットワーク・システムの構成を示した図である。
【図２】図２は、サブプロセッサ２３からメインメモリ２４へのアクセス手順を説明するための図である。
【図３】図３は、ソフトウェアセルの構成例を示した図である。
【図４】図４は、ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示した図である。
【図５】図５は、複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示した図である。
【図６】図６は、情報処理コントローラのソフトウェア構成の一例を示した図である。
【図７】図７は、４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示した図である。
【図８】図８は、図７に示したシステムにおける分散処理の例を示した図である。
【図９】図９は、各情報処理装置及びシステムの具体例を示した図である。
【図１０】図１０は、図９中のハード・ディスク・レコーダのハードウェア構成を示した図である。
【図１１】図１１は、図９中のハード・ディスク・レコーダのソフトウェア構成を示した図である。
【図１２】図１２は、図９中のＰＤＡのハードウェア構成を示した図である。
【図１３】図１３は、図９中のＰＤＡのソフトウェア構成を示した図である。
【図１４】図１４は、図９中のポータブルＣＤプレーヤのハードウェア構成を示した図である。
【図１５】図１５は、図９中のポータブルＣＤプレーヤのソフトウェア構成を示した図である。
【図１６】図１６は、１つのサブプロセッサが画像復号処理を行なう場合のマルチプロセッサ構成システムの機能構成を模式的に示した図である。
【図１７】図１７は、圧縮された画像信号の復号を行なう場合の基本的な動作手順を示したフローチャートである。
【図１８】図１８は、マクロブロック単位で参照画像を取得するための処理手順を示したフローチャートである。
【図１９】図１９は、輝度成分Ｙと、色差成分Ｃｒ及びＣｂに分離される画像情報のデータ構造を模式的に示した図である。
【図２０】図２０は、それぞれ別のプレーン上に配置されている輝度成分Ｙ、及び色差成分Ｃｒ、Ｃｂの各データをそれぞれ１ライン毎にアドレス計算してＤＭＡ転送する様子を示した図である。
【図２１】図２１は、図１８のステップＳ１５の処理動作を詳細に示したフローチャートである。
【図２２】図２２は、輝度成分Ｙと色差成分Ｃｒ及びＣｂからなる参照フレームデータをマクロブロック単位でメモリ上に連続的に配置されるデータ構造を示した図である。
【図２３】図２３は、輝度成分Ｙと色差成分Ｃｒ及びＣｂからなるフレームデータ（但し、フレーム内予測画像）をマクロブロック単位でメモリ上に連続的に配列するための処理手順をフローチャートの形式で示した図である。
【図２４】図２４は、輝度成分Ｙと色差成分Ｃｒ及びＣｂからなるフレームデータ（但し、フレーム間予測画像）をマクロブロック単位でメモリ上に連続的に配列するための処理手順をフローチャートの形式で示した図である。
【図２５】図２５は、輝度成分Ｙと色差成分Ｃｒ及びＣｂからなるフレームデータが図２２に示すようにメインメモリ上にマクロブロック単位で連続的に配列されている場合に、サブプロセッサがメインメモリから自己のローカルストレージへマクロブロックデータを取得するための処理手順を示したフローチャートである。
【図２６】図２６は、色差成分Ｃｒ及びＣｂをまとめてメモリのバス幅に合わせたメモリ配列方法を示した図である。
【図２７】図２７は、図２６に示すように色差成分Ｃｒ及びＣｂをまとめてメモリのバス幅に合わせてメインメモリ上にマクロブロック単位で配列されている場合に、サブプロセッサがメインメモリから自己のローカルストレージへマクロブロックデータを取得するための処理手順を示したフローチャートである。
【図２８】図２８は、複数のマクロブロックにまたがる場合の処理を説明するための図である。
【図２９】図２９は、グリッドコンピューティングを実現する情報処理システムの構成例（従来例）を模式的に示した図である。
【図３０】図３０は、色差成分Ｃｒ及びＣｂをまとめてメモリのバス幅に合わせたメモリ配列方法を示した図である（但し、４：２：２フォーマットの場合）。
【符号の説明】
【０２７４】
１０，１１，１２…情報処理装置
２０…仮想情報処理装置
３０…ローカルネットワーク
４０…通信ネットワーク
５０…サーバ
６０…機能情報データベース
６１…ソフトウェアデータベース
７１…情報処理装置機能データベース
７２…機能データベース
７３…連携機能データベース
【図１】
2006067247.tif 000003
【図２】
2006067247.tif 000004
【図３】
2006067247.tif 000005
【図４】
2006067247.tif 000006
【図５】
2006067247.tif 000007
【図６】
2006067247.tif 000008
【図７】
2006067247.tif 000009
【図８】
2006067247.tif 000010
【図９】
2006067247.tif 000011
【図１０】
2006067247.tif 000012
【図１１】
2006067247.tif 000013
【図１２】
2006067247.tif 000014
【図１３】
2006067247.tif 000015
【図１４】
2006067247.tif 000016
【図１５】
2006067247.tif 000017
【図１６】
2006067247.tif 000018
【図１７】
2006067247.tif 000019
【図１８】
2006067247.tif 000020
【図１９】
2006067247.tif 000021
【図２０】
2006067247.tif 000022
【図２１】
2006067247.tif 000023
【図２２】
2006067247.tif 000024
【図２３】
2006067247.tif 000025
【図２４】
2006067247.tif 000026
【図２５】
2006067247.tif 000027
【図２６】
2006067247.tif 000028
【図２７】
2006067247.tif 000029
【図２８】
2006067247.tif 000030
【図２９】
2006067247.tif 000031
【図３０】
2006067247.tif 000032