以下、本発明の実施の形態を図面に基づき説明する。
まず、本発明の一実施形態において前提となるネットワークシステムについて説明する。図1は、この発明のネットワークシステムの一例を示し、ネットワーク9を介して複数の情報処理装置1、2、3、4が接続されたものである。情報処理装置1、2、3、4は、例えば各種のAV機器やポータブル機器、上記表示装置等である。
情報処理装置1について示すと、情報処理装置1は、コンピュータ機能部として情報処理コントローラ11を備える。情報処理コントローラ11は、メインプロセッサ21−1、サブプロセッサ23−1,23−2,23−3、DMAC(ダイレクトメモリアクセスコントローラ)25−1及びDC(ディスクコントローラ)27−1を有する。
メインプロセッサ21−1は、サブプロセッサ23−1,23−2,23−3によるプログラム実行(データ処理)のスケジュール管理と、情報処理コントローラ11(情報処理装置1)の全般的な管理とを行う。ただし、メインプロセッサ21−1内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ21−1はサブプロセッサとしても機能することになる。メインプロセッサ21−1は、LS(ローカルストレージ)22−1を有する。
サブプロセッサは、1つでもよいが、望ましくは複数とする。本例は、複数の場合である。各サブプロセッサ23−1,23−2,23−3は、メインプロセッサ21−1の制御によって並列的かつ独立にプログラムを実行し、データを処理する。更に、場合によってメインプロセッサ21−1内のプログラムがサブプロセッサ23−1,23−2,23−3内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ21−1内で動作するプログラムである。各サブプロセッサ23−1,23−2,23−3も、LS(ローカルストレージ)24−1,24−2,24−3を有する。
DMAC25−1は、情報処理コントローラ11に接続されたDRAM(ダイナミックRAM)などからなるメインメモリ26−1に格納されているプログラム及びデータにアクセスするものであり、DC27−1は、情報処理コントローラ11に接続された外部記録部28−1,28−2にアクセスするものである。
外部記録部28−1,28−2は、固定ディスク(ハードディスク)でも、リムーバブルディスクでもよく、また、MO,CD±RW,DVD±RWなどの光ディスク、メモリディスク、SRAM(スタティックRAM)、ROMなど、各種のものを用いることができる。したがって、DC27−1は、ディスクコントローラと称するが、外部記録部コントローラである。図1の例のように、情報処理コントローラ11に対して外部記録部28を複数接続できるように、情報処理コントローラ11を構成することができる。
メインプロセッサ21−1、各サブプロセッサ23−1,23−2,23−3、DMAC25−1及びDC27−1は、バス29−1によって接続される。
情報処理コントローラ11には、当該の情報処理コントローラ11を備える情報処理装置1を、ネットワーク全体を通して一意的に識別できる識別子が、情報処理装置IDとして割り当てられる。
メインプロセッサ21−1及び各サブプロセッサ23−1,23−2,23−3に対しても同様に、それぞれを特定できる識別子が、メインプロセッサID及びサブプロセッサIDとして割り当てられる。
情報処理コントローラ11は、ワンチップIC(集積回路)として構成することが望ましい。他の情報処理装置2、3、4も、上記と同様に構成される。ここで、図1において親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
上述したように、1つの情報処理コントローラ内の各サブプロセッサ23は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ26内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ23からメインメモリ26へのアクセスは、以下のような手順によって行う。
図2(A)に示すように、メインメモリ26は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、F/Eビット、サブプロセッサID及びLSアドレス(ローカルストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。F/Eビットは、以下のように定義される。
F/Eビット=0は、サブプロセッサ23によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、F/Eビット=0は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に1に設定される。
F/Eビット=1は、当該メモリロケーションのデータがサブプロセッサ23によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ23によって読み出された後に0に設定される。また、F/Eビット=1は、当該メモリロケーションがデータ書き込み不可であることを示す。
更に、上記F/Eビット=0(読み出し不可/書き込み可)の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。F/Eビット=0のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ23は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ23のサブプロセッサID及びLSアドレスを書き込む。
その後、データ書き込み側のサブプロセッサ23によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビット=1(読み出し可/書き込み不可)に設定されたとき、予め読み出し予約情報として追加セグメントに書き込まれたサブプロセッサID及びLSアドレスに読み出される。
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し/書き込みを制御することによって、前段階の処理を行うサブプロセッサ23が、処理済みのデータをメインメモリ26上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ23が前処理後のデータを読み出すことが可能となる。
図2(B)に示すように、各サブプロセッサ23内のLS24も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
サブプロセッサ23がメインメモリ26内のデータを自身のLS24のメモリロケーションに読み出すときには、対応するビジービットを1に設定して予約する。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。LS24のメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
図2(A)に示すように、さらに、各情報処理コントローラと接続されたメインメモリ26には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ26内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ23に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ23は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ26は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
更に、メインメモリ26の排他的な制御を実現するために、図2(C)に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のSRAM等の比較的高速のメモリに格納され、DMAC25と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサID、サブプロセッサキー及びキーマスクが含まれる。
サブプロセッサ23がメインメモリ26を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ23はDMAC25に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサIDと、使用要求先であるメインメモリ26のアドレスが含まれる。
DMAC25は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、DMAC25は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ26内の図2(A)に示したメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、上記のコマンドを実行する。
図2(C)に示したキー管理テーブル上のキーマスクは、その任意のビットが1になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが0または1になることができる。例えば、サブプロセッサキーが1010であるとする。通常、このサブプロセッサキーによって1010のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが0001に設定されている場合には、キーマスクのビットが1に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー1010によってアクセスキーが1010または1011のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ26のサンドボックスの排他性が実現される。すなわち、1つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ26の所定アドレスにアクセスできるようになり、データを保護することができる。
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第1のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第2のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的な処理を可能にする。
より具体的には、他の情報処理装置からのデータ→第1のサブプロセッサによる処理→第1のメインメモリ領域→第2のサブプロセッサによる処理→第2のメインメモリ領域、という手順で多段階処理が行われるときには、
第1のサブプロセッサのサブプロセッサキー:0100、
第1のメインメモリ領域のアクセスキー :0100、
第2のサブプロセッサのサブプロセッサキー:0101、
第2のメインメモリ領域のアクセスキー :0101
というような設定のままだと、第2のサブプロセッサは第1のメインメモリ領域にアクセスすることができない。そこで、第2のサブプロセッサのキーマスクを0001にすることにより、第2のサブプロセッサによる第1のメインメモリ領域へのアクセスを可能にすることができる。
図1のネットワークシステムでは、情報処理装置1、2、3、4間での分散処理のために、情報処理装置1、2、3、4間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置に送信することによって、処理を分散することができる。
図3に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ID、送信先ID、応答先ID、セルインターフェース、DMAコマンド、プログラム及びデータによって構成される。
送信元IDには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置の情報処理装置ID、更に、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ21及び各サブプロセッサ23の識別子(メインプロセッサID及びサブプロセッサID)が含まれる。
送信先ID及び応答先IDには、それぞれ、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルID、必要なサブプロセッサの情報、サンドボックスサイズ及び前回のソフトウェアセルIDから構成される。
グローバルIDは、ネットワーク全体を通して当該ソフトウェアセルを一意的に識別できるものであり、送信元ID及びソフトウェアセルの作成または送信の日時(日付及び時刻)に基づいて作成される。
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数を設定する。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ26内及びサブプロセッサ23のLS24内のメモリ量を設定する。前回のソフトウェアセルIDは、ストリーミングデータなどのシーケンシャルな実行を要求する1グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
ソフトウェアセルの実行セクションは、DMAコマンド、プログラム及びデータから構成される。DMAコマンドには、プログラムの起動に必要な一連のDMAコマンドが含まれ、プログラムには、サブプロセッサ23によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
更に、DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
ロードコマンドは、メインメモリ26内の情報をサブプロセッサ23内のLS24にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサID及びLSアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ26内の所定領域のアドレスを示す。サブプロセッサID及びLSアドレスは、情報のロード先であるサブプロセッサ23の識別子及びLS24のアドレスを示す。
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサID及びプログラムカウンタを含む。サブプロセッサIDは、キック対象のサブプロセッサ23を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムIDによって、起動すべき機能プログラムを識別する。
ステータス要求コマンドは、送信先IDで示される情報処理装置の現在の動作状態(状況)に関する装置情報を、応答先IDで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図6に示す情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ26にロードされ、メインプロセッサ21により実行される。
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先IDで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
図4に、DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
情報処理装置IDは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のIDを示す。情報処理装置IDは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ23の数などに基づいて生成される。
情報処理装置種別IDには、当該情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、AV機器や後述の表示装置、サーバ等である。また、情報処理装置種別IDは、映像音声再生、画像表示、各種情報処理等の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別IDを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
MS(マスター/スレーブ)ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが0に設定されている場合にはマスター装置として動作していることを示し、1に設定されている場合にはスレーブ装置として動作していることを示す。
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ21の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ21で現在動作している全てのプログラムについての、メインプロセッサ21での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるMIPSを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ23の数を表す。サブプロセッサIDは、当該の情報処理コントローラ内の各サブプロセッサ23を識別するための識別子である。
サブプロセッサステータスは、各サブプロセッサ23の状態を表すものであり、unused,reserved,busyなどの状態がある。unusedは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。reservedは、現在は使用されていないが、予約されている状態を示す。busyは、現在使用中であることを示す。
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがbusyである場合には、現在の使用率を示し、サブプロセッサステータスがreservedである場合には、後に使用される予定の推定使用率を示す。
サブプロセッサID、サブプロセッサステータス及びサブプロセッサ使用率は、1つのサブプロセッサ23に対して一組設定され、1つの情報処理コントローラ内のサブプロセッサ23に対応する組数が設定される。
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ26の総容量及び現在使用中の容量を表す。
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部28の数を表す。外部記録部IDは、当該の情報処理コントローラに接続されている外部記録部28を一意的に識別する情報である。外部記録部種別IDは、当該の外部記録部の種類(例えば、ハードディスク、CD±RW、DVD±RW、メモリディスク、SRAM、ROMなど)を表す。
外部記録部総容量及び外部記録部使用量は、それぞれ、外部記録部IDによって識別される外部記録部28の総容量及び現在使用中の容量を表す。
外部記録部ID、外部記録部種別ID、外部記録部総容量及び外部記録部使用量は、1つの外部記録部28に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部28の数の組数だけ設定される。すなわち、1つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部IDが割り当てられ、外部記録部種別ID、外部記録部総容量及び外部記録部使用量も別々に管理される。
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、以上のような構成のソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ID、送信先ID及び応答先IDによって識別される。
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、そのソフトウェアセルをメインメモリ26に格納する。さらに、送信先のメインプロセッサ21は、ソフトウェアセルを読み出し、それに含まれるDMAコマンドを処理する。具体的には、送信先のメインプロセッサ21は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサID及びLSアドレスで特定されるサブプロセッサ内のLS24の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
次に、メインプロセッサ21は、キックコマンドを、これに含まれるサブプロセッサIDで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ26に格納した後、実行を完了したことをメインプロセッサ21に通知する。
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ23に限定されるものではなく、メインプロセッサ21がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、DMAコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ26にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサID、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムIDなどの識別子、及びプログラムカウンタを含み、DMAコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ21に当該メインメモリ用プログラムを実行させる。
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ23にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。更に、各サブプロセッサ間ではDMA方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、1つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
ソフトウェアセルの使用による分散処理の結果、図5の上段に示すようにネットワーク9に接続されている複数の情報処理装置1、2、3、4は、図5の下段に示すように、仮想的な1台の情報処理装置7として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
図6に、個々の情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成を示す。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部28に記録されているものである。各プログラムは、機能または特徴によって、制御プログラム、機能プログラム及びデバイスドライバにカテゴライズされる。
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ21が実行するもので、後述のMS(マスター/スレーブ)マネージャ及び能力交換プログラムを含む。
機能プログラムは、メインプロセッサ21が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
デバイスドライバは、情報処理コントローラ(情報処理装置)の入出力(送受信)用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
情報処理装置が物理的にネットワーク9に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク9に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ21は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ26にロードする。
ロード手順としては、メインプロセッサ21は、まず、DC27に読み出し命令を実行させることによって、外部記録部28からプログラムを読み出し、次に、DMAC25に書き込み命令を実行させることによって、そのプログラムをメインメモリ26に書き込む。
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部28に記録されている必要はなく、いずれか1つの情報処理装置の外部記録部28に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図5の下段に示すように、仮想的な1台の情報処理装置7として機能プログラムを実行することができる。
また、前述したようにメインプロセッサ21によって処理される機能プログラムは、サブプロセッサ23によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ21が外部記録部28から機能プログラムを読み出し、メインメモリ26に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ26に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは1個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ26に書き込むことになる。メインメモリ26に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ23内のLS24に書き込まれ、メインプロセッサ21によって処理される機能プログラムと連携動作する。
図3のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムIDとして割り当てられる。機能プログラムIDは、機能プログラムの作成の段階で、作成日時や情報処理装置IDなどから決定される。
そしてサブプロセッサプログラムにもサブプロセッサプログラムIDが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムIDは、連携動作する相手となる機能プログラムの機能プログラムIDと関連性のある識別子、例えば機能プログラムIDを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムIDとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムIDを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムIDを記憶しておくことになる。
メインプロセッサ21は、自身が動作する情報処理装置の装置情報(動作状態に関する情報)を格納するための領域をメインメモリ26に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図4に示した情報処理装置ID以下の各情報である。
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ21は、マスター/スレーブマネージャ(以下、MSマネージャ)をメインメモリ26にロードし、実行する。
MSマネージャは、自身が動作する情報処理装置がネットワーク9に接続されていることを検知すると、同じネットワーク9に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク9に接続されているだけでなく、電気的・機能的にもネットワーク9に接続されていることを示す。また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
MSマネージャが同じネットワーク9に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
MSマネージャは、DMAコマンドがステータス要求コマンドであり、送信元ID及び応答先IDが当該情報処理装置で、送信先IDを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば10分とされる。
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先IDで特定されるステータス要求コマンドを発行した情報処理装置に対して、DMAコマンドがステータス返信コマンドであり、かつデータとして自身(その他装置)の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報(情報処理装置ID、メインプロセッサに関する情報、サブプロセッサに関する情報など)及び当該他装置のMSステータスが含まれる。
ステータス要求コマンドを発行した情報処理装置のMSマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、MSステータス=0(マスター装置)を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるMSステータスを1に設定する。これによって、当該装置は、スレーブ装置となる。
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはMSステータス=0(マスター装置)を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるMSステータスを0に設定する。これによって、当該装置は、マスター装置となる。
すなわち、いずれの装置もネットワーク9に接続されていない状態、またはネットワーク9上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク9に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク9上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク9に接続されると、当該装置は自動的にスレーブ装置として設定される。
マスター装置及びスレーブ装置のいずれについても、MSマネージャは、定期的にステータス要求コマンドをネットワーク9上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク9に接続されている情報処理装置の主電源が遮断され、またはネットワーク9から情報処理装置が切り離されることにより、予め判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク9に新たな情報処理装置が接続された場合など、ネットワーク9の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
メインプロセッサ21は、MSマネージャから、ネットワーク9上の他装置の照会及び自装置のMSステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク9に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。他装置の装置情報の取得は、上述したように、DMAコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、DMAコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク9に接続されている全ての他装置(各スレーブ装置)の装置情報を格納するための領域を自装置のメインメモリ26に確保し、これら情報を他装置(スレーブ装置)の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ26には、自装置を含むネットワーク9に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
一方、自装置がスレーブ装置である場合には、能力交換プログラムは、ネットワーク9に接続されている全ての他装置の装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ID及びMSステータスを、自装置のメインメモリ26に記録する。すなわち、スレーブ装置のメインメモリ26には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク9に接続されているマスター装置及び各スレーブ装置についての情報処理装置ID及びMSステータスが、別の装置情報テーブルとして記録される。
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、新たにネットワーク9に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ26に記録する。
なお、MSマネージャ及び能力交換プログラムは、メインプロセッサ21で実行されることに限らず、いずれかのサブプロセッサ23で実行されてもよい。また、MSマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、ネットワーク9に接続されている情報処理装置の主電源が遮断され、またはネットワーク9から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ26から削除する。
更に、このようにネットワーク9から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
具体的には、例えば、ネットワーク9から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置IDを数値に置き換えて、自装置の情報処理装置IDを他装置の情報処理装置IDと比較し、自装置の情報処理装置IDがネットワーク9から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、MSステータスを0に設定し、マスター装置として、上述したように、ネットワーク9に接続されている全ての他装置(各スレーブ装置)の装置情報を取得して、メインメモリ26に記録する。
図5の下段に示したようにネットワーク9に接続されている複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
図7に、4台の情報処理装置が仮想的な1台の情報処理装置7として動作する様子を示す。情報処理装置1がマスター装置、情報処理装置2、3、4がスレーブ装置A、B、Cとして、動作しているものとする。
ユーザがネットワーク9に接続されている情報処理装置を操作した場合、操作対象がマスター装置1であれば、その操作情報は、マスター装置1において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置1に送信される。すなわち、ユーザの操作対象がマスター装置1とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置1において把握される。操作情報の送信は、例えば、DMAコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
そして、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、上記の方法によって自装置の外部記録部28−1、28−2からメインメモリ26−1に機能プログラムをロードするが、他の情報処理装置(スレーブ装置)がマスター装置1に機能プログラムを送信してもよい。
機能プログラムには、その実行単位毎に必要となる、図4に示した各情報として表される情報処理装置種別ID、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件等の、装置に関する要求スペックが規定されている。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、予め能力交換プログラムによってメインメモリ26−1に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図4に示した情報処理装置ID以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、ネットワーク9上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別IDに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。更に、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から1つの実行要求候補装置を特定して選択する。
実行要求するスレーブ装置が特定されたら、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ11に含まれるメインメモリ26−1に記録されている当該スレーブ装置の装置情報テーブルを更新する。
更に、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、DMAコマンドがロードコマンド及びキックコマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ(図3参照)を設定して、上記実行要求されるスレーブ装置に対して送信する。
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ21は、上記の方法によって自装置の外部記録部28からメインメモリ26に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
機能プログラムの実行を要求されたスレーブ装置の外部記録部28に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ21は、終了通知をマスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置1が当該機能プログラムを実行する。
図7の例で、ユーザがスレーブ装置A(情報処理装置2)を操作し、当該操作に応じた機能プログラムを別のスレーブ装置B(情報処理装置3)が実行する場合について、図8を用いてその分散処理の例を説明する。
図8の例では、ユーザがスレーブ装置Aを操作することによって、スレーブ装置Aを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Aは、ステップ81で、その操作情報をマスター装置1に送信する。
マスター装置1は、ステップ72で、その操作情報を受信し、さらにステップ73に進んで、自装置のメインメモリ26−1に記録されている自装置及び他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Bが選択される場合である。
次に、マスター装置1は、ステップ74で、その選択したスレーブ装置Bに対して機能プログラムの実行を要求する。
スレーブ装置Bは、ステップ95で、その実行要求を受信し、さらにステップ96に進んで、実行要求された機能プログラムを実行する。
以上のように、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させることができる。
次に、上記ネットワークシステムを前提として、本発明を、家庭内の遠隔制御システムに適用した場合の実施の形態について説明する。
図9は、本実施形態における表示システムの構成を示す図である。なお、同図において、上記図1で説明したネットワークシステムの構成及び機能等について同様のものは説明を簡略または省略し、異なる点を中心に説明する。
同図に示すように、本実施形態に係る表示システムは、サーバ30と、表示装置51〜58の8つの表示装置で構成される。なお、当該表示装置の数は8つに限定されるものではなく、何個でも構わない。上記サーバ30は表示装置51〜58と例えば無線LAN(Local Area Network)50により接続されて、互いに通信を行うことが可能となっている。
本システムにおいては、サーバ30が、一のビデオ画像を分割して作成した分割画像を上記表示装置51〜58へ送信し、各表示装置が全体として上記一の画像を形成するように各画像を表示するものとする。
なお、サーバ30は上述の図1等における情報処理装置1として、表示装置51〜58は情報処理装置2〜9として機能し、それぞれ上述のメインプロセッサ、サブプロセッサを含む情報処理コントローラを有し、上記DMAコマンド等によりソフトウェアセルを実行したり、各種データをやり取りしたりすることが可能である。よって、上記サーバ30及び各表示装置には、それぞれを識別するための上記情報処理装置IDが付与されている。
サーバ30は、情報コントローラ11等、上記情報処理装置1と同様の構成に加えて、画像出力部31〜38、表示装置情報入力部41〜48、通信部39及び画像入力部49を有し、それらはバス40により情報コントローラ11と接続されている。
サブプロセッサ23−1〜23−8は、各表示装置から受信した情報を基に、当該各表示装置に表示させるための各分割画像を上記表示装置毎に作成する。よって、当該サブプロセッサ23−1〜23−8は、表示装置の数に合わせて8つ設けられている。各サブプロセッサは、画像出力部31〜38と一対一で対応付けられており、例えばサブプロセッサ23−1が作成した画像は画像出力部31によって、またサブプロセッサ23−2が作成した画像は画像出力部32によって各表示装置に出力される。なお、予め各サブプロセッサを各上記画像出力部と対応付けておかずに、例えばサーバ30が各表示装置と接続した時点で、上記画像作成処理を担当するサブプロセッサを任意に割り当てるような態様であってもよい。
画像出力部31〜38は、上記表示装置51〜58とそれぞれ一対一で対応付けられて設けられており、各サブプロセッサが作成した分割画像をそれぞれ各表示装置へ出力する。すなわち、画像出力部31は表示装置51へ、画像出力部32は表示装置52へ、というように、それぞれ対応する表示装置へ分割画像を出力する。
表示装置情報入力部41〜48も、上記表示装置51〜58とそれぞれ一対一で対応付けられており、各表示装置から、当該表示装置が作成した隣接IDテーブル等の表示装置情報を入力する。すなわち、表示装置51が作成した表示装置情報は表示装置情報入力部41が、表示装置52が作成した表示装置情報は表示装置情報入力部42が入力する。入力された情報はメインメモリ26−1へ保存される。
通信部39は、インターネットや上記無線LAN50等のネットワークへ接続するためのインターフェースである。サーバ30は、当該通信部39により上記各表示装置と通信を行ったり、インターネット上から分割前の上記ビデオ画像を受信したり、図示しない他のサーバと通信を行ったりする。また画像入力部49は、上記通信部39により受信されたビデオ画像を入力する。当該ビデオ画像もメインメモリ26−1へ保存され、当該画像を分割する際には各サブプロセッサの各LSに呼び出されて処理される。
表示装置51〜58は全て同様の構成であり、情報処理コントローラ12〜19等のサーバ30と同様の構成に加えて、それぞれ表示部101、105・・・、通信部102、106・・・、ID送信部103、107・・・、及びID受信部104、108・・・を有する。
表示部は、例えばTFT(Thin Film Transistor)等のLCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、OEL(Organic Electroluminescence)、CRT(Cathode Ray Tube)等であり、上記サーバ30から受信した分割画像を表示する。
通信部は、上記サーバ30と通信を行うためのインターフェースであり、表示装置51〜58は、当該通信部から無線LAN50を介して上記各表示装置情報を送信したりする。
ID送信部は、各表示装置自身を識別する情報処理装置ID(以下、単にIDという)を、隣接する他の各表示装置へ送信し、ID受信部は、隣接する他の各表示装置から当該各表示装置のIDを受信する。当該ID送信部及びID受信部の詳細については後述する。
次に、上記各表示装置の詳細について述べる。図10は、表示装置51の外観を示した図である。なお、上述したように、表示装置52〜58も当該表示装置51と同様の構成を有するものとする。
同図(a)は、表示装置51の正面図、同図(b)は表示装置51の右側面図である。両図に示すように、表示装置51は、矩形の板状部材からなり、正面には上記表示部101が設けられている。また表示装置51の上面、底面及び側面であって、表示部101と平行な平面上には、上記ID送信部103及びID受信部104がそれぞれ表示装置51の中心から見て対称な位置に設けられている。ID送信部103aとID受信部104b、ID受信部104aとID送信部103b、ID受信部104cとID送信部103d、ID送信部103cとID受信部104dはそれぞれ同一直線上に設けられている。
ID送信部103a及び103bとID受信部104a及び104bとの間の距離はL1であり、ID送信部103c及び103dとID受信部104c及び104dとの間の距離はL2で、上記L1よりも短く設定してある。これにより、表示装置51の縦と横を区別することが可能となる。ID送信部103及びID受信部は、表示部101からL3だけ離れている。
ID送信部103は、例えば指向性があり信号強度を調整できる赤外線により、表示装置51自身を識別するためのIDを、上下左右で隣接する他の表示装置へ向けてそれぞれ送信する。指向性は、ID送信部103a及び104bについては表示装置51の上面に対して垂直な方向を、またID送信部103c及び103dについては表示装置51の側面に対して垂直な方向を向くように設定してある。また信号強度は、信号の到達距離を例えば2cm以下となるように設定する。より好ましくは、1cm以下とする。当該赤外線の送信は、例えば各表示装置において一定時間間隔で行う。
ID受信部103は、上下左右で隣接する他の表示装置のID送信部から送信された赤外線を受信する。
従って、表示装置51が他の表示装置と同一平面上でかつ高さ方向または幅方向で対向するように隣接した場合に初めて、上記ID送信部103は当該他の表示装置のID受信部に上記赤外線を送信することができ、またID受信部104は他の表示装置のID送信部から上記赤外線を受信することができる。また各表示装置は、全体として縦n台×横m台(n、mは任意の整数)の配置にある場合、すなわち全体として矩形を形成している場合に初めて画像を表示することができる。本実施形態において、各表示装置がこのような位置関係で隣接しているような配置を、以下「適切な配置」と表現するものとする。
なお、ID送信部103及びID受信部104は、上記赤外線以外でも、例えばRF‐IDを用いて、ID送信部103をRF−IDタグ、ID受信部104をRFアンテナとして、他の表示装置との電波の送受信により上記IDを送受信するようにしてもよい。また、その他にも、Bruetooth等の到達距離の短い微弱な電波を送受信できるものであればどのようなものでも構わない。
表示装置51は、上記ID送信部103及びID受信部104の配置、上記指向性及び信号強度により、他の表示装置が近づき、適切な配置にあることを検出することができる。
図11は、各表示装置がそれぞれ有する表示装置情報113を示した図である。当該表示装置情報には、隣接IDテーブル、表示画素数、自身のIDが含まれる。なお、本実施形態においては、上記表示装置51のIDを1、表示装置52のIDを2、同様に表示装置53〜58のIDを3〜8とする。表示装置情報113は、例えば表示装置51のメインメモリ26−2に保存される。
隣接IDテーブルは、当該表示装置に上下左右で隣接する他の表示装置のIDを記憶している。当該隣接IDテーブルは、各表示装置のID受信部が上記赤外線により受信したIDを基に構成され、その内容は、隣接する表示装置から一定時間間隔で送信されるIDを受信する毎に更新される。また、当該隣接IDテーブルの初期値及び隣接する表示装置が存在しない場合の値は、Top、Bottom、Left及びRightを全て無効なID値「0」に設定してある。
表示画素数は、各表示装置自身が表示可能な表示画素数(縦と横)を示しており、上記各表示部の構成により定まる固定値である。本実施形態においては、当該表示画素数は全ての表示装置において同一とする。
同図の場合は、表示装置51(ID=1)の表示装置情報133を示しており、当該表示装置51の上及び左には隣接する表示装置は存在せず、下にはID=2の表示装置52が、また右にはID=3の表示装置53が隣接していることを示している。表示画素数は、横(Width)1280画素×縦(Height)1024画素である。
次に、表示装置に画像が表示される場合の各表示装置の構成について説明する。なお、表示される画像の作成処理の詳細については後述する。
まず、表示装置1台のみで画像を表示する場合について述べる。図12は、この場合の表示装置の例及び上記表示装置情報133を示した図である。同図は、上記表示装置51が1台で表示する場合を想定している。
同図に示すように、隣接する表示装置は存在しないため、上記ID送信部103は赤外線を送信せず、上記ID受信部104も赤外線を受信しない。また、上記表示装置情報中、隣接IDテーブルは、上下左右全て、初期値0のままとなっている。
図13は、この場合の表示装置51の表示部101及び表示領域134を示した図である。なお、本実施形態において、サーバ30の上記画像入力部49に入力される上記ビデオ画像は、表示画素が横(W)×縦(H)=1920×1080のHD(Hi Definition:高精細度)画像とする。
同図に示すように、サーバ30は、表示装置51から表示装置情報入力部41に上記表示装置情報133を入力すると、上記画像入力部49により入力した上記ビデオ画像を、表示装置51の表示部101全体にアスペクト比を保ったまま表示させるために、上記表示装置情報に含まれる表示画素情報(1280×1024)を基に、以下のように入力画像の拡大/縮小比率を決定する。
1920:1080=1280:720
すなわち、上記入力画像の横の表示画素(1920)を上記表示装置51の表示画素(1280)へ縮小するのと同一の縮小比率で上記入力画像の縦の表示画素(1080)を縮小する。この計算により、表示部101に表示する画像の表示画素は、横1280×縦720となり、図13の表示領域134に示すように、表示部101の上下に表示されない領域が生じる。当該縮小後の画像は、表示部101の中央に表示される。
上記入力画像の縮小処理は、サブプロセッサが担当する。担当するサブプロセッサは、各表示装置にどの画像出力部が対応しているかによって割り当てられる。すなわち、上述したように、表示装置51(ID=1)には上記画像出力部31が対応しているため、上記縮小処理は上記サブプロセッサ23−1が担当する。上記表示装置52に表示される際にはサブプロセッサ23−2が割り当てられ、同様に表示装置53〜58に、サブプロセッサ23−3〜23−8が割り当てられる。
また、一つのサブプロセッサの負荷が重い場合には、図14に示すように、表示部101の表示領域を表示領域135と136の2つに分けて、上記縮小処理もそれぞれの表示領域毎に、サブプロセッサ23−1と23−2の2つのサブプロセッサが担当するようにしてもよい。表示装置が1台の場合には、どうしてもサブプロセッサが余ることになるため、このように例えば2つのサブプロセッサに処理を割り当てることにより処理効率も上がり、また低消費電力効果も得られる。
次に、表示装置が4台の場合について説明する。図15は、表示装置4台が適切な位置にある場合の様子を示した図である。
同図に示すように、表示装置51の右側には表示装置52が、下側には表示装置53が、そして表示装置52の下側かつ表示装置53の右側には表示装置54が、縦2台×横2台で配置されており、各表示装置間の距離L4、L5、L6及びL7も、上記赤外線を送受信するのに十分近い距離となっている。したがって、各表示装置のID送信部及びID受信部は上記赤外線によりそれぞれのIDを送受信することができ、表示装置51の隣接IDテーブルにおいては、受信したIDに基づいて、上及び左の隣接IDが初期値のID=0、右が表示装置51を示すID=2、下が表示装置53を示すID=3となっている。他の3台の表示装置についても同様にそれぞれ受信したIDに基づいて隣接IDテーブルが作成されている。
図16は、4台の表示装置が適切にない場合の例を示した図である。同図に示すように、表示装置51が表示装置52とL8だけ、表示装置53とL11だけ離れているため、表示装置51はどの表示装置との隣接も検出することができない。このような場合には、4台の表示装置によって上記各分割画像を表示することができないため、例えば4台とも画像を表示させないようにしてもよいし、各表示装置にそれぞれ分割されていないビデオ画像を、上記1台で表示されるのと同様の態様で縮小して表示させるようにしてもよい。
図17は、上記4台の表示装置が各分割画像を表示する場合の表示部及び表示領域を示した図である。
同図に示すように、4台の表示装置が縦2台×横2台で適切に配置されている場合には、全体としては、横方向の表示画素数の合計は2560、縦方向の表示画素数の合計は2048となる。サーバ30に入力されたビデオ画像をこれらの各表示装置の各表示部101、105、109及び113全体にアスペクト比を保ったまま表示させるためには、サーバ30は、上述の図13の場合と同様、以下のような計算を行う。
1920:1080=2560:1440
すなわち、上記入力画像の横の表示画素(1920)を上記横方向の合計の表示画素(2560)へ拡大するのと同一の拡大比率で上記入力画像の縦の表示画素(1080)を拡大する。この計算により、4台の表示装置の各表示部に表示される画像の合計の表示画素は、横2560×縦1440となる。
当該拡大された画像は、4台の表示装置の表示部全体の中央に配置され、表示領域137を表示装置51が、表示領域138を表示装置52が、表示領域139を表示装置53が、表示領域140を表示装置54がそれぞれの表示部101、105、109及び113に表示する。上記拡大処理により、4台の表示部全体の上下において、表示されない領域が生じるため、各表示装置は、各表示部の上または下に偏った分割画像を表示することになる。
また、上記各表示装置のID及びサーバ30の各画像出力部31〜34と、サブプロセッサ23−1〜23−4との上記対応付けに基づき、表示領域137の分割画像は、サブプロセッサ23−1が、表示領域138の分割画像はサブプロセッサ23−2が、表示領域139の分割画像はサブプロセッサ23−3が、そして表示領域140の分割画像はサブプロセッサ23−4が、それぞれ画像作成処理の担当として割り当てられる。
次に、表示装置が6台の場合について説明する。図18は、6台の表示装置が適切な位置にある場合の様子を示した図である。
同図に示すように、6台の表示装置が縦2台×横3台の配置になっており、上段に左から順に表示装置51、53、55が、下段に左から表示装置52、54、56が配置されている。各表示装置間の距離L12〜L17は上記赤外線を送受信するのに十分近い距離となっている。したがって、各表示装置のID送信部及びID受信部は上記赤外線によりそれぞれのIDを送受信することができ、例えば表示装置53の隣接IDテーブルにおいては、左右及び下側の3台の表示装置から受信したIDに基づいて、左の隣接IDが表示装置1を示すID=1、右が表示装置55を示すID=5、下が表示装置54を示すID=4となっている。他の5台の表示装置についても同様にそれぞれ受信したIDに基づいて隣接IDテーブルが作成されている。
図19は、上記6台の表示装置が各分割画像を表示する場合の表示部及び表示領域を示した図である。
同図に示すように、6台の表示装置が縦2台×横3台で適切に配置されている場合には、全体としては、横方向の表示画素数の合計は3840、縦方向の表示画素数の合計は2048となる。サーバ30に入力されたビデオ画像をこれらの各表示装置の各表示部101、105、109、113、117及び121全体にアスペクト比を保ったまま表示させるためには、サーバ30は、上述の図13及び図17の場合と同様、以下のような計算を行う。
1920:1080=3840:2160
すなわち、上記入力画像の横の表示画素(1920)を上記横方向の合計の表示画素(3840)へ拡大するのと同一の拡大比率で上記入力画像の縦の表示画素(1080)を拡大する。
なお、この場合、横方向の画素数に合わせて拡大することにより、縦方向の画素数は、実際の表示部の合計画素数2048よりも大きくなる。よって、当該超えた部分は表示されず、実際には2160画素のうち2048画素分が、各表示部全体の中央にくるように表示されるため、6台の表示部全体の上下に61画素ずつ表示されない領域ができる。もし縦方向の画像を全て表示させたい場合には、上記拡大処理を、縦方向の画素数に合わせて行えばよい。この場合には、拡大計算後の横方向画素数が、各表示部の合計の横方向の画素数よりも小さくなるため、6台の表示部全体の左右両端に表示されない領域が若干できることになる。
当該拡大された画像中、表示領域141を表示装置51が、表示領域142を表示装置52が、表示領域143を表示装置53が、表示領域144を表示装置54が、表示領域145を表示装置55が、そして表示領域146を表示装置56が、それぞれの表示部101、105、109、113、117及び121に表示する。
また、上記各表示装置のID及びサーバ30の各画像出力部31〜36と、サブプロセッサ23−1〜23−6との上記対応付けに基づき、表示領域141の分割画像は、サブプロセッサ23−1、表示領域146の分割画像はサブプロセッサ23−6、というように、対応する各サブプロセッサがそれぞれ分割画像作成処理の担当として割り当てられる。
次に、表示装置が8台の場合について説明する。図20は、8台の表示装置が適切な位置にある場合の様子を示した図である。
同図に示すように、8台の表示装置が縦2台×横4台の配置になっており、上段に左から表示装置51、52、55及び56、下段に左から表示装置53、54、57及び58が配置されている。上記図15及び図18の場合と同様、各表示装置間の距離L18〜L25は上記赤外線を送受信するのに十分近い距離となっており、各表示装置のID送信部及びID受信部は上記赤外線によりそれぞれのIDを送受信することができ、それぞれ受信したIDに基づいて隣接IDテーブルが作成されている。
図21は、上記8台の表示装置が各分割画像を表示する場合の表示部及び表示領域を示した図である。
同図に示すように、8台の表示装置が縦2台×横4台で適切に配置されている場合には、全体としては、横方向の表示画素数の合計は5120、縦方向の表示画素数の合計は2048となる。サーバ30に入力されたビデオ画像をこれらの各表示装置の各表示部101、105、109、113、117、121、125及び129の全体にアスペクト比を保ったまま表示させるためには、サーバ30は以下のような拡大計算を行う。
1920:1080=3840:2160
すなわち、上述の図13、図17及び図19の場合に比べて、2台×4台の8台の配置の場合には、横方向に長くなるため、上記入力画像を出来る限り大きく表示させるためには、上述の図13、図17等の場合と異なり、上記入力画像の縦の表示画素(1080)を上記縦方向の合計の表示画素(2048)に合わせて拡大する。そして、当該拡大比率と同一の拡大比率で上記入力画像の横の表示画素(1920)を拡大する。
なお、本実施形態においては、拡大/縮小処理の計算を、計算処理の簡略化のために整数比で行う。よって、上記拡大処理においては、拡大後の縦方向の表示画素数は、1080×2=2160となり、上記8台の表示部全体の縦方向の表示画素数2048よりも112画素分大きくなるため、表示部に実際に表示される画像の縦方向の画素数は、その分だけ小さくなる。また、横方向の画素数は表示部の合計の画素数5120に比べて1280画素分小さくなる。
よって、拡大後の画像は8台の表示装置の表示部全体の中央に表示するため、左右両端で、表示部に何も表示されない領域が生じることになる。
上記拡大処理を整数比で行わなければ、上記表示部全体の縦方向の表示画素数に正確に合わせて表示させることも勿論可能である。
当該拡大された画像中、表示領域147を表示装置51が、表示領域148を表示装置52が、表示領域149を表示装置53が、表示領域150を表示装置54が、表示領域151を表示装置55が、表示領域152を表示装置56が、表示領域153を表示装置57が、そして表示領域154を表示装置58がそれぞれの表示部101、105、109、113、117、121、125及び129に表示する。
また、上述の図17及び図19等の場合と同様、上記各表示装置のID及びサーバ30の各画像出力部31〜38と、サブプロセッサ23−1〜23−8との上記対応付けに基づき、表示領域147の分割画像は、サブプロセッサ23−1、表示領域154の分割画像はサブプロセッサ23−8、というように、対応する各サブプロセッサがそれぞれ分割画像作成処理の担当として割り当てられる。
次に、上記サーバ30が、各表示装置から受信した表示装置情報を基に、各表示装置の配置状態を確認する手法について説明する。図22は、当該各表示装置の配置状態を確認するためにサーバ30が作成するマップテーブル155を示した図である。
サーバ30は、例えばメインメモリ26−1に、マップテーブル155を格納する。当該マップテーブル155はマトリクス状になっており、各表示装置の配置を、IDを示す数字により擬似的に示している。
サーバ30は、各表示装置から隣接IDテーブル、表示画素情報、及び当該表示装置のIDを含む表示装置情報を受信する毎に、それらの情報を当該マップテーブル155の各要素に格納していく。以下、表示装置が6台の場合を例にとって、マップテーブル155の作成処理の詳細について説明する。
図23は、サーバ30が6台の表示装置から各表示装置情報を受信することにより各表示装置を検出し、受信した情報に基づいてマップテーブル155を作成するまでの大まかな流れを示した図である。
同図に示すように、マップテーブル155は、どの表示装置からも表示装置情報を受信していない初期状態においては、どの要素にも情報は格納されていないため、どの要素も無効な値=0となっている。
まず1台目の表示装置を検出した場合には、当該表示装置から受信した隣接IDテーブル及びその表示装置のIDを解析し、表示装置の配置状態をマップテーブル155に書き込む。この場合、表示装置51(ID=1)から表示装置情報を受信しているため、まずマップテーブル155中のある一つの要素にID=1を書き込み、その隣接IDテーブルに従い、下にID=2、右にID=3を書き込む。同様に、2台目に表示装置53(ID=3)、3台目に表示装置54(ID=4)、4台目に表示装置55(ID=5)、5台目に表示装置52(ID=2)、6台目に表示装置56(ID=6)を検出し、それぞれの隣接IDテーブルに従い、隣接する表示装置のIDを書き込んでいき、6台が隣接する場合のマップテーブル155を完成させる。以下、各表示装置を検出した際のそれぞれのマップテーブル155の作成処理の詳細について述べる。
図24は、1台目の表示装置を検出した場合のマップテーブル155の状態を示した図である。当該マップテーブル155中、太枠で囲んだ要素が検出した表示装置のID、また網掛けで表した要素が、検出した表示装置の隣接IDテーブルから位置が把握できるIDを示している。
同図に示すように、サーバ30は、受信した表示装置情報から、1台目に検出した表示装置が表示装置51(ID=1)であることを確認すると、まずマップテーブル155中の、ある要素に当該表示装置情報を書き込む。そして、隣接IDテーブルに従い、書き込んだ要素の下で隣接する要素に、表示装置52のID=2を、また右で隣接する要素に表示装置53のID=3を書き込む。当該隣接する各表示装置の表示装置情報中、隣接IDテーブル及び表示画素は不明のため、初期状態のままである。
図25は、2台目の表示装置を検出した場合のマップテーブル155の状態を示した図である。同図に示すように、サーバ30は、受信した表示装置情報から、2台目に検出した表示装置が表示装置53(ID=3)であることを確認すると、まずマップテーブル155中の対応する要素、すなわちID=1の要素の右隣の要素に当該ID=3の表示装置情報を書き込む。この場合は、上記1台目の検出時点で既に当該要素がID=3であることは分かっていたため、隣接IDテーブル及び表示画素の書き込みを行う。また、上記1台目の検出の場合と同様、当該ID=3の隣接IDテーブルに従い、ID=3の右隣の要素に表示装置55のID=5を書き込み、下隣の要素に表示装置54のID=4を書き込む。また、ID=3の左隣の要素については、既にID=1であることが既に書き込まれているため、処理は行わない。
なお、サーバ30は、ある表示装置の表示装置情報を受信した時点で、当該情報中に、それ以前に受信した表示装置情報から既に把握している配置情報と整合性が取れているか否かを常に確認し、矛盾するような情報が含まれている場合は書き込みを行わないようにする。
図26は、3台目の表示装置を検出した場合のマップテーブル155の状態を示した図である。上記1〜2台目の場合の処理と同様、サーバ30は、検出した表示装置54(ID=4)の表示装置情報を対応する要素に書き込み、また隣接IDテーブルに従って、隣接する要素中、初めてIDが認識されたID=6を書き込む。
図27は4台目(表示装置55)、図28は5台目(表示装置52)、図29は6台目の表示装置(表示装置56)を検出した場合のマップテーブル155の状態をそれぞれ示した図であり、上記1〜3台目を検出した場合と同様に、受信した情報に基づきマップテーブルに書き込みを行い、6台目のマップテーブル155への書き込みによりマップテーブル155が完成する。
図30は、以上説明したマップテーブル155の作成処理の流れを示したシーケンス図である。なお、本実施形態においては、サーバ30が上記マスター、各表示装置が上記スレーブとして機能するものとする。
同図に示すように、サーバ30と各表示装置は、表示装置情報の送受信の前に、サーバ30及び各表示装置のIDを送受信しておく。この場合、サーバ30は表示装置を特定せずにブロードキャストにより送信し、各表示装置はそれに応答する形で送信する。そして、サーバ30は、マップテーブル155を初期化した上で、当該受信したIDを基に、各表示装置に対して隣接IDテーブル及び表示画素情報の取得要求を行い、各表示装置はその要求に応答して隣接IDテーブル及び表示画素情報をサーバ30へ送信する。
そしてサーバ30は、上述したように、各表示装置から受信した情報を基にマップテーブル155を作成していき、6台目の表示装置に応じてマップテーブル155を書き込むことによりマップテーブル155が完成する。
なお、上記サーバ30と各表示装置は、表示装置情報の送受信の前処理としてそれぞれのIDを送受信せずに、サーバ30の取得要求に応答する形ではなく、各表示装置が能動的にサーバ30へ各表示装置の各表示装置情報を送信するような態様であっても構わない。
以上の処理で完成したマップテーブル155により、サーバ30は各表示装置の配置状態を確認することができ、それにより、各表示装置に表示させるための各分割画像の作成の仕方及び当該分割画像の送信先を決定することができる。また、各表示装置からその都度受信した表示装置情報を基にマップテーブル155を作成しているため、表示装置の配置状態が変更されても、変更後の配置を適切に把握することができ、それにより配置変更後の各表示装置に表示させるための分割画像を再作成して、適切に表示させることができる。
次に、上記サーバ30及び各表示装置間でやり取りされる上記ソフトウェアセルについて説明する。
図31は、上記サーバ30が各表示装置に対して表示装置情報を要求する場合に送信するソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元IDはサーバ30のID、送信先IDは各表示装置のID、応答先IDはサーバ30のIDである。また、DMAコマンドとして表示装置情報要求コマンドを送信する。
更に、このソフトウェアセルの送信以前に、上記サーバ30が各表示装置に当該表示装置情報要求コマンドを送信している場合には、セルインターフェース中、前回のソフトウェアセルIDとして、当該送信の際のソフトウェアセルのグローバルIDを送信する。当該ソフトウェアセルは、上記図30においてIDの送受信により認識した表示装置全てに対して送信される。
図32は、各表示装置が、上記サーバ30が送信した上記表示装置情報要求コマンドに応答して、サーバ30に対して送信するソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元IDは各表示装置のID、送信先IDはサーバ30のID、応答先IDは各表示装置のIDである。またDMAコマンドとして表示装置情報応答コマンドを送信し、データとして上記隣接IDテーブル及び表示画素情報を送信する。更に、このソフトウェアセルの送信以前に、上記各表示装置がサーバ30に当該表示装置情報応答コマンドを送信している場合には、前回のソフトウェアセルIDとして、当該送信の際のソフトウェアセルのグローバルIDを送信する。
図33は、サーバ30が、作成した分割画像を各表示装置に対して送信する場合のソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元IDは各表示装置のID、送信先IDはサーバ30のID、応答先IDは各表示装置のIDである。またDMAコマンドとして表示装置情報応答コマンドを送信し、データとして上記隣接IDテーブル及び表示画素情報を送信する。更に、このソフトウェアセルの送信以前に、上記各表示装置がサーバ30に当該表示装置情報応答コマンドを送信している場合には、前回のソフトウェアセルIDとして、当該送信の際のソフトウェアセルのグローバルIDを送信する。
次に、以上のように構成された表示システムにおいて、各表示装置に対して上記各分割画像が送信され、表示されるまでのサーバ30及び各表示装置の動作の詳細について説明する。
まず、各表示装置の動作について説明する。図34は、各表示装置の動作を示すフロー図である。当該動作は、全ての表示装置について共通である。
同図に示すように、各表示装置は、電源を起動すると(ステップ201)、まず隣接IDテーブルを初期化する(ステップ202)。そして、上述したように、各表示装置が適切に配置された場合には、上記各ID送信部により隣接する他の表示装置に対する自身のIDの送信を開始する(ステップ203)。また、当該隣接する他の表示装置から、当該他の表示装置のIDを上記各ID受信部により受信する(ステップ204)。当該IDの送受信は、上述したように、例えば一定時間毎に繰り返し行われる。
そして、当該IDが有効なIDであるか否かを確認する(ステップ205)。有効なIDではなかった場合(ステップ205のNO)、すなわち、IDを受信したものの当該IDを認識できなかった場合や、IDとしてあるはずのない数値を受信したような場合には、無効なIDとしてID=0をサーバ30へ送信する(ステップ210)。有効なIDであった場合には(ステップ205のYES)、一定時間スリープし、(ステップ206)、再度IDを受信する(ステップ207)。そして当該再度受信したIDが前回受信したIDと同一のIDであるか否かを確認し(ステップ208)、同一のIDであった場合(ステップ208のYES)には、受信したIDに基づいて上記表示装置情報133中の隣接IDテーブルを作成または更新する(ステップ209)。同じIDを再度受信したときに初めて当該隣接IDテーブルを作成または更新することにより、上記受信した赤外線に含まれるノイズ等の影響を除去することができ、隣接IDテーブルが誤って作成または更新されるのを防ぐことができる。
そして、当該隣接IDテーブルとともに、表示画素情報、自身のIDを含む表示装置情報133を上記ソフトウェアセルによってサーバ30に送信する(ステップ210)。同一のIDでなかった場合(ステップ208のNO)には、当該IDは無効なものとしてID=0を上記サーバ30へ送信する(ステップ210)。当該送信は、上述したようにサーバ30からの要求に応じて送信するものであってもよいし、各表示装置が能動的に例えば一定時間毎に送信するものであってもよい。
続いて、当該送信した情報を基に上記サーバ30が作成した分割画像を当該サーバ30から受信し(ステップ211)、当該分割画像を各表示部に表示する(ステップ212)。その後一定時間スリープした後(ステップ213)、同様の処理を繰り返す。
次に、サーバ30の動作について説明する。図35は、サーバ30の動作を示すフロー図である。
同図に示すように、サーバ30は、電源を起動すると(ステップ301)、まず上記マップテーブル155の初期化を行う(ステップ302)。そして、各表示装置から表示装置情報133を受信したか否かについて、各表示装置情報入力部をスキャンする(ステップ303)。
有効な表示装置情報133を受信できない場合(ステップ304のNO)、すなわち、上記隣接IDテーブル等以外の情報が混入していたり、他の表示装置から受信した隣接IDテーブルと矛盾する隣接IDテーブルを受信したりした場合には、一定時間スリープして(ステップ314)、上記の処理を繰り返す。
有効な表示装置情報133を受信した場合(ステップ304のYES)には、一定時間スリープした後(ステップ305)、再度入力部をスキャンする(ステップ306)。そして前回と同一の表示装置情報133を受信した場合(ステップ306のYES)には、メインプロセッサ21−1は、受信した情報に基づいて当該表示装置とサーバ30が接続されていることを確認し(ステップ308)、上述した処理により上記マップテーブル155を作成または更新する(ステップ309)。
そして、上記画像入力部49により、例えば通信部39を介してビデオ画像を入力する(ステップ311)。この際、当該入力したビデオ画像の同期信号をトリガとして上記DMAC25−1が起動し、当該入力画像は、当該DMAC25−1によりメインメモリ26−1の入力用の領域に転送される。
続いて、上述したように、メインプロセッサ21−1は、サーバ30の各画像出力部31〜36と、サブプロセッサ23−1〜23−6との上記対応付けに基づき、各分割画像の作成を担当するサブプロセッサを割り当て、また既に一度割り当てていた場合には、当該割り当てを更新する(ステップ310)。当該割り当ての際には、上記入力画像のどの領域の作成を担当するのかといった情報が送信される。
なお、上記ステップ309において、サブプロセッサ23−1は、マップテーブル155における各表示装置の配置が、n×mの矩形の配置になっているか否かを確認し、適切な配置にある判断した場合に初めて当該サブプロセッサの割り当てを行う。
次に、上記ステップ310により割り当てられたサブプロセッサは、当該ビデオ画像を、担当する領域を切り出した上で、当該切り出された分割画像を当該サブプロセッサのLSに取り込み、上述したような拡大/縮小処理を行う(ステップ312)。当該切り出し及び拡大/縮小処理は、表示装置が4台の場合、6台の場合8台の場合等でそれぞれ上述したように行われる。なお、表示装置が1台の場合には、分割は行われず、入力画像の縮小処理のみが行われる。
そして、サブプロセッサは当該処理結果の画像をメインプロセッサ21−1のメインメモリ26−1の出力用の領域に書き込む。メインプロセッサ21−1は、当該各分割画像を、各表示装置に適した同期信号に基づいて、DMAC25−1により各画像出力部へ転送し、当該画像出力部が各分割画像を各表示装置へ送信する(ステップ313)。その後は、一定時間スリープした後(ステップ314)、上記ステップ303からの動作が繰り返される。
図36は、以上の動作によりサーバ30及び各表示装置間でやり取りされる情報の流れを示すシーケンス図である。同図は、表示装置が6台の場合を示している。
同図に示すように、まず、隣接する各表示装置は、上述したように互いに上記ID送信部及びID受信部により自身のIDの送受信を行い、表示装置情報133を作成する。そして当該表示装置情報をそれぞれサーバ30へ送信する。
サーバ30は、当該表示装置情報133を受信すると、上述したように、マップテーブル155を作成し、それを基に、上記入力画像に拡大処理を施した分割画像を作成して各表示装置へ送信する。
そして、当該分割画像が各表示装置において表示部にそれぞれ表示され、各表示装置全体で一の画像を形成する。
以上の動作により、各表示装置は自身が隣接する表示装置との隣接関係を上記隣接IDテーブルとして自動的に上記サーバ30に送信することができ、サーバ30は、各表示装置を上記各IDにより認識し、また各表示装置同士の隣接関係を上記隣接IDテーブルにより認識することができるため、各表示装置がどのような配置にあり、またいくつ存在していても、当該配置や数に応じて適切な分割画像を作成して表示させることができる。
また、画像表示中に表示装置の配置が変更されても、各表示装置が自動的に当該変更後の隣接IDテーブルを送信し、サーバ30がマップテーブル155を更新することにより当該配置の変更を容易に反映させて、適切に表示を切り替えることができる。
なお、本発明は以上説明した実施の形態には限定されるものではなく、種々の変形が可能である。
例えば、上述の実施形態においては表示装置の数が1台、4台、6台及び8台の場合を説明したが、勿論これに限られず、全体として矩形を形成できる数であればいくつでも構わない。
また、入力されるビデオ画像や表示装置の表示部のサイズも、上述の例に限られず、どのようなサイズであっても適用することが可能である。
更に、上記サーバ30は、通信部39を介して他のサーバと通信を行い、複数のサーバで上記処理を分散処理することもできる。これにより、表示装置の数が膨大な場合等、処理負担が掛かるような場合にも対応することができる。