(57)【特許請求の範囲】
【請求項１】
複数のカメラの連係動作を制御するために、ユーザが遠隔的に向き及びズーム倍率を操作する第１のカメラの向き及びズーム倍率の値を示した開始条件、前記第１のカメラと連係動作させる第２のカメラの情報、及び前記連係動作により前記第２のカメラの向き及びズーム倍率の値をどのように制御するかを示した連携動作内容がユーザにより予め設定された連係制御情報に基づき、ネットワークを介して当該複数のカメラを制御するカメラ制御方法において、
検出手段が、前記第１のカメラの向きとズーム倍率の値を検出する工程と、
制御手段が、前記検出する工程で検出された前記第１のカメラの向き及びズーム倍率の値が、前記連係制御情報において設定された開始条件を満たす場合、前記連係制御情報において前記第１のカメラと連係動作するカメラとして設定された前記第２のカメラの向き及びズーム倍率の値を、前記連係制御情報において設定された前記連係動作内容にしたがって制御する工程とを具備することを特徴とするカメラ制御方法。
【請求項２】
複数のカメラの連係動作を制御するために、ユーザが遠隔的に向き及びズーム倍率を操作する第１のカメラの向き及びズーム倍率の値を示した開始条件、前記第１のカメラと連係動作させる第２のカメラの情報、及び前記連係動作により前記第２のカメラの向き及びズーム倍率の値をどのように制御するかを示した連携動作内容がユーザにより予め設定された連係制御情報に基づき、ネットワークを介して当該複数のカメラを制御するカメラ制御サーバであって、
前記第１のカメラの向きとズーム倍率の値を検出する検出手段と、
前記検出手段によって検出された前記第１のカメラの向き及びズーム倍率の値が、前記連係制御情報において設定された開始条件を満たす場合、前記連係制御情報において前記第１のカメラと連係動作するカメラとして設定された前記第２のカメラの向き及びズーム倍率の値を、前記連係制御情報において設定された前記連係動作内容にしたがって制御する制御手段とを具備することを特徴とするカメラ制御サーバ。
【請求項３】
複数のカメラの連係動作を制御するために、ユーザが遠隔的に向き及びズーム倍率を操作する第１のカメラの向き及びズーム倍率の値を示した開始条件、前記第１のカメラと連係動作させる第２のカメラの情報、及び前記連係動作により前記第２のカメラの向き及びズーム倍率の値をどのように制御するかを示した連携動作内容がユーザにより予め設定された連係制御情報に基づき、ネットワークを介して当該複数のカメラを制御するカメラ制御手順をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記第１のカメラの向きとズーム倍率の値を検出する手順と、
前記検出する手順で検出された前記第１のカメラの向き及びズーム倍率の値が、前記連係制御情報において設定された開始条件を満たす場合、前記連係制御情報において前記第１のカメラと連係動作するカメラとして設定された前記第２のカメラの向き及びズーム倍率の値を、前記連係制御情報において設定された前記連係動作内容にしたがって制御する手順とを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばインターネットやイントラネットなどのコンピュータネットワークを介した映像の配信のための、カメラ制御システム、カメラ制御方法、カメラ制御サーバ、カメラ装置、ユーザインタフェース装置などに関するものである。特に、映像配信サービスにおいて遠隔地に設定されているビデオカメラの操作の改良に関するものである。
【０００２】
【従来の技術】
近年、インターネットやイントラネット等のコンピュータネットワークの普及に伴い、遠隔地に設置されたプリンタやスキャナ等の周辺機器をコンピュータ・ネットワークを介して操作することを可能にする「遠隔機器サービス・システム」の製品化が盛んになってきている。
【０００３】
このような製品の１つに「遠隔カメラシステム」がある。遠隔カメラシステムは、遠隔地に設置されたビデオカメラの映像をコンピュータ・ネットワークを介して世界のどこからでも鑑賞できるようにするシステムである。このような遠隔カメラシステムでは、単にカメラの映像を見ることができるだけでなく、カメラの向きやズーム倍率を遠隔地から操作することができることを大きな特徴としている。
【０００４】
図１は、従来の遠隔カメラシステムの概念を説明するための図である。図から分かるように、システムは以下の４つの構成要素から成り立っている。
・映像を撮影するビデオカメラ（２０１，２０２，２０３）、
・ビデオカメラ（２０１-２０３）を遠隔地から操作することを可能にするカメラ制御モジュール（２０４）、
・利用者がカメラ映像を鑑賞したりカメラを操作するためのユーザインタフェースを提供するカメラ・クライアント（２０５，２０６，２０７）、
・カメラ・クライアント（２０５-２０７）とカメラ制御モジュール（２０４）の間をつなぐコンピュータ・ネットワーク（２０８）。
【０００５】
遠隔カメラシステムの主な機能はカメラ制御モジュール２０４によって提供される。図１ではカメラ制御モジュール２０４をどのようなハードウェアによっても実現することはできるが、通常は一般的なパーソナルコンピュータ（以下、ＰCと呼ぶ）上のソフトウェアとしてカメラ制御モジュールを実装する。この場合、ビデオカメラはＲS２３２Cなどの手段でＰCに接続される。また、カメラ制御モジュール２０４をビデオカメラと一体化してしまうような従来例も存在する。
【０００６】
いずれの従来例の方式においても、カメラ制御モジュール（２０４）は、カメラ・クライアントから送信されてくる「カメラ操作要求」を解釈／実行するためのカメラコマンド解釈実行手段と、複数のカメラ・クライアント（２０５，２０６，２０７）が同じカメラの操作を同時に要求したときに、どのクライアントにカメラの操作権を提供するかを決定するためのカメラ操作権調停手段を必要とする。
【０００７】
【発明が解決しようとする課題】
しかしながら、従来の遠隔カメラシステムは１つのカメラ制御モジュールが１つのカメラを操作するのが通常である。１つのカメラ制御モジュールが複数のカメラを管理下におくような従来システムも存在するが、実際に操作できるのはそのうちの１台だけで、他のカメラを同時に操作することはできない。
【０００８】
カメラ制御モジュールを複数用意することで、見かけ上は複数のカメラ操作を可能にすることは可能である。しかし、この場合も各カメラは専用のモジュールにより独立に操作されるだけであり、複数のカメラが協調しながらあるいは連係しながらの処理、例えば互いに死角を補いながら連係して動作するような処理を行わせることは困難である。
【０００９】
本発明は、所定のカメラが所定の向きの撮影をするように、複数のカメラに所定の連係動作を行わせることを目的とする。
【００１０】
【課題を解決するための手段】
上記課題を達成するための請求項１に係る、複数のカメラの連係動作を制御するために、ユーザが遠隔的に向き及びズーム倍率を操作する第１のカメラの向き及びズーム倍率の値を示した開始条件、前記第１のカメラと連係動作させる第２のカメラの情報、及び前記連係動作により前記第２のカメラの向き及びズーム倍率の値をどのように制御するかを示した連携動作内容がユーザにより予め設定された連係制御情報に基づいてネットワークを介して当該複数のカメラを制御するカメラ制御方法は、
検出手段が、前記第１のカメラの向きとズーム倍率の値を検出する工程と、
制御手段が、前記検出する工程で検出された前記第１のカメラの向き及びズーム倍率の値が、前記連携制御情報において設定された開始条件を満たす場合、前記連携制御情報において前記第１のカメラと連係動作するカメラとして設定された前記第２のカメラの向き及びズーム倍率の値を、前記連携制御情報において設定された前記連係動作内容にしたがって制御する工程とを具備することを特徴とする。
【００３１】
【発明の実施の形態】
以下、添付図面を参照しながら本発明の好適な実施形態を説明する。
〈構成〉…第１実施形態
本実施形態は、図１で示した従来の遠隔カメラシステムを改良し、カメラ制御モジュールの他に「カメラ連係制御サーバ」というソフトウェアを導入するものである。
【００３２】
図２は本実施形態の遠隔カメラシステムのシステム構成の概要を表す図である。
同図において、実施形態の遠隔カメラシステムは、夫々がカメラ制御モジュール４１０ａ，４１０ｂ，４１０ｃを有する複数のカメラサーバ４００ａ，４００ｂ，４００ｃと、複数のカメラ・クライアント６００ａ，６００ｂと、それが接続されたコンピュータネットワーク３０１，３０２と、ネットワーク３０１とネットワーク３０２との間に設けられたカメラ連係制御サーバ５００とを有する。
【００３３】
カメラ・クライアントは、遠隔のカメラをネットワークを介して利用しようとするユーザであり、実際は、そのユーザは所定のクライアントアプリケーションプログラムを稼働することのできる、例えば、パソコンシステム、ワークステーションシステム、メインフレームコンピュータシステムである。また、カメラ制御モジュール４１０ａ，４１０ｂ，４１０ｃの夫々は、単体として、個々のカメラサーバにインストールされている。
【００３４】
カメラ連係制御サーバ５００は、カメラ・クライアントとカメラサーバカメラ制御モジュールとの間に設置された適当なＰC等で起動され、コンピュータ・ネットワーク３０１，３０２を介して、夫々のカメラ・クライアントとカメラサーバと通信を行う。
コンピュータネットワーク３０２上のカメラクライアントは制御サーバ５００を介して複数のカメラを利用することができるようにするために、個々のカメラクライアントのシステムは図３のようなユーザインタフェースを提供することが好ましい。
【００３５】
図３のユーザインタフェースでは、映像ウィンドウ６０１上に複数のカメラからの映像６０２〜６１３を夫々表示するウインドを有する。カメラクライアントのユーザは、所望の映像ウインドの上をマウス等で選択することにより、目的のシーンを、即ち目的のカメラを選択する。即ち、ユーザは、連係して制御されるべきカメラを、夫々のカメラが現在撮像している映像に基づいて指定することが許される。選択したカメラの撮像方向は、コントローラアイコン６１４で指定する。また、撮像方向を指定するときは、ウインド６０１の下方に表示されるカメラコントローラ６１４上の矢印の部分をマウス等で選択する。
【００３６】
カメラ操作要求（連係されるべきカメラの指定、撮像方向の指定）がカメラ連係制御サーバ５００を経由して、指定されたカメラサーバのカメラ制御モジュールに送信され、カメラの向きが変更される。
図３で示したカメラコントローラアイコン６１４は、カメラの撮像方向の変更のみを指定できるものであるが、実際には、カメラに対して他の操作（例えばズーム倍率の指定）等が必要な場合は、対応した適当なボタン等のユーザインタフェースを追加すればよい。
【００３７】
本実施形態でのカメラ連係制御サーバ５００によるカメラの連係処理の結果を利用者から見ると、あるカメラ（例えば映像６０３を撮影するカメラ）を操作したとき、そのカメラに連係するように指定されたカメラにも、所定のカメラ操作が人手を介さずに制御サーバ５００により行われ、例えば映像６０５を撮影するカメラの撮影方向が変化されるといった動きとなってあらわれる。
【００３８】
〈カメラ連係制御サーバの構成〉…第１実施形態
図４を用いて、図２に示した制御サーバ５００、カメラサーバ４００、カメラクライアント６００の構成について説明する。尚、同図では、図示の便宜上、夫々一台のカメラクライアント６００とカメラサーバ４００とがネットワーク７００に接続されていることとする。
【００３９】
カメラ連係制御サーバ５００はCPU５０８、主メモリ５０９、ハードディスク５１０から構成されており、各ソフトウェアはハードディスク５１０から主メモリ５０９にロードされ、CＰＵ５０８で実行される。カメラサーバ４００及びカメラクライアント６００も同じようにCPU、主メモリ、ハードディスクなどを有する。尚、カメラサーバ４００には映像を撮影するためのビデオカメラ４２０が設置される。
【００４０】
前述したように、カメラクライアント６００には、利用者がカメラ・クライアント６００を操作するためのディスプレイおよびマウス等の入出力デバイスが設置され、カメラ制御モジュール４１０にカメラ操作要求を送信する機能を有し、この要求がカメラサーバ４００に送信されて、カメラクライアントのユーザはビデオカメラ４２０を操作することができる。
【００４１】
カメラサーバのカメラ制御モジュール４１０にはカメラ４２０を制御するためのカメラ操作部４１２と、カメラ４２０の操作権を調整するための操作権制御部４１３が含まれている。カメラ操作部４１２はカメラ・クライアント等からのカメラ操作要求をカメラに内蔵されているモータの駆動信号に変換する機構によって実現される。
【００４２】
操作権制御部４１３は、カメラ操作を要求した複数のカメラ・クライアントの１つにカメラ対する操作権を与えるものである。操作権制御部４１３を実現するには、たとえば、最初にカメラ操作を要求したクライアントに操作権を与え、一定時間（例えば３０秒程度）経過したところで、次に操作を要求したクライアントに操作権を与えるといった処理を実装する。操作権を与えられたクライアントから送信されてくるカメラ操作要求のみがカメラ制御部４１２に渡されるようにすればよい。
【００４３】
また、カメラ制御モジュール４１０は、カメラの状態（向き等）や制御権の取得状況をカメラ・クライアント６００やカメラ連係制御サーバ５００に通知するカメラ情報通知部４１４を有する。
カメラ制御モジュール４１０ならびにカメラ・クライアント６００は、カメラ連係制御サーバ５００と同様に、送受信モジュールを有する。これらの送受信モジュールは、カメラサーバのカメラ制御モジュール４１０と、カメラクライアントのクライアント制御モジュール６０１と、カメラ連係制御サーバ５００のアプリケーションプログラム５０７間の通信手段を提供するもので、ソケット等の一般的なプロセス間通信機構を用いている。カメラサーバのカメラ情報通知部４１４も、送受信モジュールを利用して適当なタイミングで他のソフトにカメラ状態情報を送信することで実現される。
【００４４】
カメラ連係制御サーバアプリケーションプログラム５０７を構成するソフトウェア・モジュールを説明する。ここで「ソフトウェア・モジュール」とはソフトウェアの内部的な機能単位のことである。ソフトウェア・モジュールは、通常は、関数の集まりやオブジェクト指向におけるクラスやオブジェクトなどの形で実装される。カメラ制御モジュール４１０も実装次第ではソフトウェアモジュールとして実現することが可能である。そこで以降は特に断らないかぎり「モジュール」と記述したときは「ソフトウェア・モジュール」のことを意味することにする。カメラ連係制御サーバアプリケーションプログラム５０７は、図４に示されているように、
送受信モジュール５１５
CS管理モジュール５１６
CC管理モジュール５１７
カメラ状態管理モジュール５１８
カメラ連係制御モジュール５１９
カメラ操作サブモジュール５２０
操作権制御サブモジュール５２１
〈送受信モジュール５１５〉…第１実施形態
以下の説明では、この送受信モジュール５１５は、例示として、ソケットを実装したものとして説明するものとし、機能として、カメラ制御モジュール４１０やクライアント制御モジュール６０１から送信されてくる要求やリプライを受信するモジュールである。受信したメッセージは内部的なメッセージ形式に変換して他のモジュールに転送する。通常、この内部的なやりとりのためのメッセージ形式はC＋＋等のオブジェクト指向言語のメッセージとして実装することができる。また、オブジェクト指向ではない言語を利用するときも、一般的な関数呼び出しとして実装することが可能である。
【００４５】
また、送受信モジュール５１５は、逆に要求やリプライを他のソフトウェアに送信する機能も提供する。他のモジュールから送信されてきた内部メッセージをプロセス間通信機構であつかえるメッセージ形式に変換する。
〈CS管理モジュール５１６〉…第１実施形態
CS(camera server)管理モジュール５１６は、カメラ制御モジュールに関する情報（CS情報と呼ぶ）を管理するモジュールである。カメラサーバ(CS)情報は、図５に示された「CS-ID」，「ホスト名」，「ポート番号」，「ソケット番号」，「カメラID」などの項目から構成されている。
【００４６】
「CS-ID」は、各カメラ制御モジュールを識別するために予め付けられた一意なIDである。本実施形態では１以上の整数として実装される。CS-IDは、アプリケーションプログラム５０７が、CS情報を検索する時のキーとして使用することができる。「ホスト名」は、カメラ制御モジュールが稼動しているコンピュータの「名前」である。また、「ポート番号」は、カメラ制御モジュール４１０が提供するプロセス間通信用のポートに付された番号である。「ホスト名」と「ポート番号」とを指定することで、アプリケーションプログラム５０７は、カメラ制御モジュール４１０と通信を行うことが可能となる。
【００４７】
「ソケット番号」は、「ホスト名」と「ポート番号」によってカメラ制御モジュール４１０との間に形成された通信路、即ち「ソケット」を表す番号である。アプリケーションプログラム５０７は、「ソケット番号」を送受信モジュール５１５に渡すことで、メッセージの送信先を、即ち、カメラサーバを指定することができる。「カメラID」はカメラ制御モジュール４１０の管理下におかれているカメラに割り当てられた一意な識別子IDである。この「カメラID」も１以上の整数として実装される。カメラ制御モジュールは複数のカメラを管理下におくこともあり得る。その場合は、「カメラID」のリストがCS情報に追加される。このとき「カメラID」の並び順がカメラ制御モジュール側でのカメラの識別子（特に「ローカルカメラID」と呼ぶ）と対応している。カメラIDのことを、「ローカル・カメラID」を特に区別する場合には、「グローバル・カメラID」とも呼ぶ。
【００４８】
「カメラID」のリストの最初のものがカメラ制御モジュール側ではローカル「カメラID」１番として扱われる。例えば、図４では３台のカメラがカメラ制御モジュール４１０の管理下にある。仮に最前列のカメラから順にその「ローカル・カメラID」を、“１”，“２”，“３”とする。これらのカメラのグローバル・「カメラID」を102, 501, 405とすると、CS情報内の「カメラID」項目には102, 501, 405の順で並べられる。
【００４９】
CS管理モジュール５１６はCS情報を図５の如く一般的なテーブルの形式で管理する。このテーブルのことを「CS管理テーブル」と呼ぶ。このテーブルの実装においてはハードディスクやデータベースシステムを用いてデータを永続化することが出来る。また、データを永続化しないならばメモリ上でテーブルを作成してもよい。ただし、その場合は、連係制御サーバが終了してしまうとCS管理モジュール内の情報が失われてしまう。このため、次の起動時に起動オプションや初期化ファイルを用いてCS情報を与える必要がある。
【００５０】
〈CC管理モジュール５１７〉…第１実施形態
CC(camera client)管理モジュール５１７では、カメラ・クライアントの情報CC情報を管理する。CC情報は、図６のように、「CC-ID」，「ソケット番号」，「カメラID」などの項目から成り立っている。
「CC-ID」は、CC管理モジュール５１７によって個々のカメラ・クライアントに割り当てられる一意な識別子である。本実施形態では１以上の整数として実装される。「CC-ID」はカメラ・クライアントからカメラ連係制御サーバアプリケーションプログラム５０７へ接続要求が送られてきた時に、CC管理モジュール５１７によって割り当てられる。「CC-ID」は、「CS-ID」と同様に、CC情報取得のキーとして使用することができる。
【００５１】
図６の「ソケット番号」は、「CC-ID」によって識別されるカメラ・クライアントとの通信のために送受信モジュール５１５に渡すソケットの番号である。また、「カメラID」は、そのクライアントが現在使用中のカメラの「カメラID」である。
CC管理モジュールの実装もCS管理モジュールをまったく同じくテーブル（CC管理テーブル）で実施することができる。ただし、CC管理モジュール５１７では、CC情報を予め用意する必要はないので、CS管理モジュールのような初期化処理は不要である。
【００５２】
〈カメラ状態管理モジュール５１８〉…第１実施形態
アプリケーションプログラム５０７のカメラ状態管理モジュール１１８は、個々のカメラに関する情報、即ち、カメラ状態情報を管理するモジュールである。ここで管理されるカメラ状態情報を図７に示す。尚、図７では、カメラIDがnであるカメラの情報を主に示す。
【００５３】
カメラ状態管理テーブルは、複数のカメラの関する状態を管理するテーブルであり、特定のカメラの状態に関する情報を検索するには、「カメラID」をキーとして検索を行う。連係制御サーバ５００は、最新のカメラ状態情報を、そのカメラnを管理するカメラサーバのカメラ制御モジュールに問い合わせを行うことで取得する。一方、カメラ制御モジュールによってカメラの状態（撮像方向の向きや操作権）が変更されたときには、カメラ制御モジュール内のカメラ情報通知部４１４が連係制御サーバ５００に通知する。この通知に基づき、随時カメラ状態情報を更新することができる。カメラ状態管理モジュールそのものはCS管理モジュールと同様なテーブル（図７）として実装することが可能である。
【００５４】
〈連係制御モジュール５１９〉…第１実施形態
カメラ連係制御サーバ５００の連係制御モジュール５１９は、複数のカメラ間の連係動作を制御するモジュールである。どのようにして連係を制御するかを記述したカメラ連係情報テーブル（図８）を管理し、その内容にもとづいて連係処理を実施する。連係制御モジュールは、図４に示すように、内部的に２つのサブモジュール（カメラ操作サブモジュール５２０と操作権制御サブモジュール５２１）とから構成されている。
【００５５】
カメラ操作サブモジュール５２０は、カメラ連係情報を解釈・実行し、カメラの操作をカメラ制御モジュール４１０に指示するモジュールである。操作権制御サブモジュール５２１は、連係の対象となるカメラの操作権の取得処理を実行するモジュールである。
本実施形態では、複数のカメラ・クライアントが１つのカメラに対してカメラ操作を要求することができる。このため、連係処理を実行する時に、連係させたいカメラが別のクライアントによって既に使用されており、操作権を取得できない場合が想定される。操作権制御サブモジュール５２１は上記の如く操作権の衝突が発生したときに、カメラ連係情報テーブル内の記述に基づいて衝突解消処理を実行する。本実施形態で準備されている衝突調停処理の態様は以下のものである。即ち、既に使用されているカメラｐに対する要求が発生したときに、
-操作権が解放されるまで待つ
-カメラｐに対する操作権を強制的に取得する
-替りのカメラ（例えばカメラｑ）の操作権を取得する
-カメラｐに対する操作を断念する
連係制御モジュール５１９が使用するカメラ連係情報管理テーブル（図８）は、例えば後述の図９に示すところの、連係制御モジュール５１９が提供するユーザインタフェースを用いて作成することができる。本実施形態のウィンドウ５０１（図９）上で設定できる項目は、以下の通りである。
【００５６】
-カメラリスト５３２
-アクションリスト５３３
-アクション名５３４
-関始条件５３５
-連係対象カメラ５３６
-衝突時処理５３７
-操作内容５３８
-代理カメラフラグ５３９
即ち、図９のウインドを介して入力された各項目は、図８のカメラ連係情報管理テーブルの対応記憶領域に格納される。
【００５７】
カメラ状態管理モジュール５１８により管理されている全てのカメラの「カメラID」は、図８のカメラ連係情報管理テーブルの「カメラリスト」記憶領域に記憶される。そこで、図９の表示領域「カメラリスト」５３２には、カメラ連係情報管理テーブルの「カメラリスト」内の「カメラID」がリスト表示される。図９の例では、「カメラI」と「カメラII」と「カメラIII」である。
【００５８】
表示領域「アクションリスト」５３３には、領域５３２に表示されているカメラリストの中でユーザが選択したカメラ（図９では「カメラI」）に対して設定されている「連係動作」のリストが表示される。各カメラに設定されている「連係動作」、即ちアクションは、カメラ連係情報管理テーブルの「アクションリスト」に格納されている。カメラ連係情報管理テーブルの「アクションリスト」は、連係動作を新たに設定したときに生成される。即ち、「連係動作」、即ちアクションを新たに設定する場合は、まず「カメラリスト」表示領域５３２で目的の「カメラID」を選択し、この目的のカメラに設定すべき「アクション名」と「開始条件」とを領域５３４と５３５において設定する。ここで、「アクション名」は、ユーザがこの連係情報に任意に付した名前である。図９の例では、「映像切替」という名前が付された。「アクション名」はアクションリスト５３３に表示される名前でもある。アクション名の値には任意の文字列を指定することが可能である。
【００５９】
「開始条件」を入力する領域５３５は、この連係処理が開始されるべき条件を設定する。本実施形態ではカメラリストで選択したカメラのパン正面を０度とした左右方向に亘るPan角度、チルト正面を０度とした上下方向でのTilt角、そしてズーム倍率Zoomを指定する。指定された値は、カメラ連係情報管理テーブル内で、当該「カメラID」の当該「アクション」の夫々の領域に格納される。図８の例では、カメラ＝「カメラI」に設定されたアクション名「映像切替」に設定された「開始条件」は、
Pan = pp1 度
Tilt = tt1 度
Zoom = zz1 度
である。カメラIの実際の撮像方向の向きやズーム倍率が、上記カメラ連係情報管理テーブルの「開始条件」に記憶されている値と一致すると、連係処理が実行される。
【００６０】
図９において、「連係対象カメラ」の入力表示領域５３６は、連係処理の対象となるカメラを選択するものである。領域５３６で指定された連係カメラの識別子は、カメラ連係情報管理テーブルの該当領域に記憶される。尚、「連係対象カメラ」として複数のカメラを選択することが可能である。
チェックボックス５３９は、カメラに対する使用要求が衝突したときにおいて代理カメラを用いるべきか否かを指定する。この代理カメラは衝突時処理として「別のカメラの操作権を取得」が選択されているときに用いられる。即ち、衝突時処理の「別のカメラの操作権を取得」が選択されて、この代理カメラのフラグがＯＮにされると、領域５３６に表示されているカメラが、衝突時処理における代理カメラとして使用される。
【００６１】
「操作内容」入力領域５３８は、連係処理後の連係対象カメラの向きとズーム倍率を設定する領域である。また、「衝突時処理」入力領域５３７は操作権衝突時の対処方法を指定する。尚、「衝突時処理」として「別のカメラの操作権取得」を選択したときは、操作権取得に失敗した時に使用される代理のカメラの「カメラID」も選択しなければならない。
【００６２】
図９のユーザインタフェースで作成されるカメラ連係情報は以下の項目から成るテキストデータとして主メモリや２次記憶装置上に図８のようにおかれる。ただし//で始まる行は注釈である。
//開始条件
Action-Name＝＜アクション名＞
Camera-Id＝＜開始条件を定義するカメラのID＞
Pan＝＜開始条件の左右角＞
Tilt＝＜開始条件の上下角＞
Zoom＝＜開始条件のズーム倍率＞
//連係処理の設定
Target＝＜連係の対象となるカメラのｌＤ＞
Type＝＜カメラのタイプ＞
Policy＝＜衝突時処理の選択された項目の番号＞
Alternative＝＜代理カメラのID＞
nPan＝＜操作内容の左右角＞
nTilt＝＜操作内容の上下角＞
nZoom＝＜操作内容のズーム倍率＞
ここで、Typeの値は、Targetに指定したカメラが通常の対象カメラなら文字列“target”が設定される。カメラが代理カメラとして指定されたのならば、Typeの値は“alternative”になる。また、Policyの値は図９における衝突解消処理の選択項目を上から数えた番号である。従って１から４までの整数になる。Alternativeの値である代理カメラはPolicyの値が“４”の時のみ参照される。Policyの値“４”は「別のカメラの操作権を取得する」を選択した時に設定される。
【００６３】
本実施形態では、カメラのパン、チルト、ズームのみ設定可能であるとしてユーザインタフェースが設計されているが、カメラの機種によってはそれ以外にも制御可能な設定項目が用意されることが考えられる。本実施形態の連係情報はテキストとして管理されるので、図９のGUIユーザインタフェースを使用しなくても、テキストエディタ等を用いて直接項目を設定することが可能である。
【００６４】
また、本実施形態ではパン、チルト、ズームの値を直接数値で入力しなければならないが、これを実際にカメラ・クライアントに表示される映像を見ながら設定できるようにすることも可能である。この実現は、適当なカメラ・クライアントを使ってユーザにカメラを操作させ、設定するカメラの向きやズーム倍率が決定したら、その時点でのカメラ状態情報をカメラ状態管理モジュールから取得すればよい。
【００６５】
〈動作概要〉…第１実施形態
では、次に本実施形態の動作概要について説明する。本実施形態の動作フェーズには以下のものがある。
１．連係制御サーバの起動
２．カメラ・クライアントの起動
３．カメラ・クライアントによるカメラ操作
３-1．カメラの操作
３-2．カメラ操作の通知
４カメラの連係動作
４-1．カメラ操作権の制御
４-2．カメラ操作
各フェーズについて図１０から図１９を用いて説明する。
【００６６】
以下の説明では、連係制御の対象となるカメラの電源がすべてＯＮになっていると仮定する。また、各カメラを管理するカメラ制御モジュールも正常に動作しているものとする。
〈連係制御サーバの起動〉
連係制御サーバの起動については図１０と図１５を用いて説明する。図１０は動作の様子を表す概念図、図１５は制御手順を示すフローチャートである。
【００６７】
連係制御サーバアプリケーションプログラム５０７が起動されると、「CS管理モジュールの初期化」、「カメラ状態管理モジュールの初期化」、「連係制御モジュールの初期化」などの処理が実行される。
CS管理モジュールの初期化は以下のようにする。
カメラ連係制御サーバアプリケーションプログラム５０７が起動されると、CS管理モジュール５１７はCS管理情報をハードディスク５１０からロードしてCS管理情報のテーブル（図５）を作成する。すなわち、まずCS管理モジュール５１７はCS情報をハードディスク５１０から取り出す（図１５のS１１０１）。通常、CS情報は複数保存されている。ハードディスク５１０上では、CS情報として、カメラ制御モジュール４１０の稼動しているホストの「名前」と、通信のための「ポート番号」のみが保存されている。CS管理モジュール５１７は、「ホスト名」と「ポート番号」以外のCS情報を作成するために、最初にCS情報にCS-IDを割り当てる（S１１０２）。つぎに、CS情報内の各カメラサーバについての「ホスト名」と「ポート番号」を送受信モジュール５１５に渡して、各カメラサーバの夫々のカメラ制御モジュール４１０とのコネクション作成を指示する（S１１０３）。
【００６８】
コネクション作成指示を受け取った送受信モジュール５１５では、渡された各カメラサーバの「ホスト名」と「ポート番号」とを利用して、各カメラサーバのカメラ制御モジュールとの通信のためのソケットを作成する（S１１０４）。作成されたソケットの番号（「ソケット番号」）は、CS管理モジュール５１７に、コネクション作成指示に対するリプライとして返送される（S１１０５）。CS管理モジュール５１７がこのソケット番号を受け取ると、そのソケット番号をCS管理情報に追加する（S１１０６）。
【００６９】
ここまで処理が行われると、次に制御は「カメラ状態管理モジュールの初期化処理」に移行する。
〈カメラ状態管理モジュールの初期化〉…第１実施形態
カメラ状態管理モジュールの初期化は図７のテーブルを作成する。
カメラ制御管理モジュールの初期化処理に制御が移ると、まずカメラ状態管理モジュール５１８は、上述の初期化の終了したCS管理モジュール５１７から、すべての「CS-ID」と「ソケット番号」を取得する（図１５のS１１０７）。そして、取得した「ソケット番号」を送受信モジュール５１５に渡し、カメラ状態情報取得要求を全カメラ制御モジュールに対して送信するように指示する（S１１０８）。
【００７０】
送受信モジュール５１７側では、指定された「ソケット番号」を使って各カメラ制御モジュール４１０に対してカメラ状態情報取得要求を送信する（S１１０９）。
カメラ制御モジュール４１０では、連係制御サーバからのカメラ状態情報取得要求を受け取ると、そのカメラ制御モジュールの管理下にあるカメラのカメラ状態情報（カメラの機種、キャプションカメラの向き、ズーム倍率）を返送する。ここで、１つのカメラ制御モジュール４１０が複数のカメラを管理している場合も、そのカメラの台数分のカメラ状態情報を返送する。
【００７１】
連係制御サーバの送受信モジュール５１５は、カメラ制御モジュール４１０から返送されてくるカメラ状態情報を受信すると（S１１１０）、受信したカメラ状態情報をさらにカメラ状態管理モジュール５１８に転送する（S１１１１）。カメラ状態管理モジュール５１８側では受信したカメラ状態情報に「カメラID」を割り当て（S１１１２）、カメラ状態管理テーブルに追加する（S１１１３）。ここで「カメラID」の割り当てのとき、カメラ制御モジュール４１０側での「カメラID」（「ローカルカメラID」）と、カメラ状態管理モジュール５１８側での「カメラID」（「グローバルカメラID」）の大小関係が保存されるように、「グローバルカメラID」の割り当てをおこなわなければならない。また、最初に取得した「CS-ID」の値をカメラ状態情報内の「CS-ID」項目の値に設定する（S１１１４）。
【００７２】
以上のカメラ状態管理モジュール５１８の初期化が終了すると、再度、CS管理モジュールの初期化処理に制御が戻る。
まず、CS管理モジュール５１７はカメラ状態管理モジュール５１８から全てのカメラ状態情報を取得し（S１１１５）、カメラ状態情報内の「カメラID」と「CS-ID」項目の値を基にして、CS情報側の「カメラID」項目の値を設定する（S１１１６）。
【００７３】
〈連係制御モジュールの初期化〉…第１実施形態
この処理は、連係制御情報をハードディスクからロードしその内容を主メモリにコピーするだけである（S１１１７）。CS管理モジュール５１７とカメラ状態管理モジュール５１８の初期化は、互いに関連をもって処理されるが、連係制御モジュール５１９の初期化処理はこれらの処理とは無関係に動作することができる。
【００７４】
〈カメラ・クライアントの起動〉…第１実施形態
カメラ・クライアント６０１が利用者によって起動され、さらにカメラ連係制御サーバ５００とのコネクションを要求してきたときは以下の処理が行われる。
この処理を図１１と図１６を用いて説明する。
利用者がカメラ・クライアント６０１を起動して、カメラ連係制御サーバアプリケーションプログラム５０７とのコネクション処理を実行すると、連係制御サーバ５００の送受信モジュール５１５によってコネクション処理が検知され、通信のためのソケットが生成される（S１２０１）。送受信モジュール５１５はこの接続を検知すると、CC管理モジュール５１７に生成した「ソケット番号」を通知する（S１２０２）。通知を受けたCC管理モジュール５１７側では取得した「ソケット番号」にCC-IDを割り当てた後、CC情報管理テーブルにこれを登録する（S１２０３）。次に、カメラ状態管理モジュール５１８に対して、全てのカメラ状態情報の「カメラID」および「キャプション項目」の取得を指示する（S１２０４）。
【００７５】
指示を受け取ったカメラ状態管理モジュール５１８側では、カメラ状態管理テーブル内のすべての「カメラID」と「キャプション項目」を取り出し（S１２０５）、CC管理モジュール５１７に返送する（S１２０６）。
CC管理モジュール５１７で「カメラID」と「キャプション項目」のリストを取得すると（S１２０７）、送受信モジュール５１５に対して、取得したこのリストを転送し、カメラ・クライアント６０１にリストを送信するように指示する（S１２０８）。送受信モジュール５１５ではリストを取得すると、カメラ・クライアント６０１にその内容を送信する（S１２０９）。
【００７６】
カメラ・クライアント６０１側では、取得した「カメラID」と「キャプション項目」をディスプレイ等に表示し、利用者が操作したいカメラに関する情報と、カメラを選択するためのユーザインタフェースを提供する。
また、カメラ・クライアント６０１との接続が終了したときも、開始の時と同様である。即ち、コネクションの終了処理が送受信モジュール５１５によって検知されると、終了されたソケットの番号がCC管理モジュール５１７に転送される。CC管理モジュール５１７では転送されてきた「ソケット番号」と、その「ソケット番号」に対応するCC-IDをCC管理テーブル（図６）から削除する。削除されたCC-IDはカメラ状態管理モジュール５１８にも送信され、カメラ状態情報からも削除される。
【００７７】
〈カメラ・クライアント６０１によるカメラ操作〉…第１実施形態
利用者がカメラ・クライアント６０１を利用してカメラ操作を要求すると、以下の処理が行われる。実際にカメラ操作を行うには、まずカメラの操作権を要求して操作権を取得してからでないと、カメラ操作を行うことができない。しかし、カメラ連係制御サーバ５００では、カメラの操作権取得処理とカメラ操作処理もまったく同じ方式で処理される。以下で図１２と図１７を用いてカメラ・クライアント６０１によるカメラ操作について説明する。
【００７８】
利用者が行った操作は、カメラ・クライアント６０１によつて、カメラ連係制御サーバ５００が認識可能なメッセージ形式（カメラ操作要求）に変換されて送信される。送受信モジュール５１５がカメラ操作要求を受信すると（S１３０１）、その要求はCC管理モジュール５１７に転送される（S１３０２）。
受け取ったカメラ操作要求の内容は、略そのままカメラ制御モジュール４１０で解釈・実行できる形式のものである。ただし、そこで指定されている「カメラID」は「グローバル・カメラID」なので、これをカメラ制御モジュール４１０側の「ローカル・カメラID」に変換しなければならない。そこで、カメラ操作要求を受け取ったCC管理モジュール５１７は、受け取った操作要求からまず、「カメラID」を抽出する（S１３０３）。この「カメラID」は「グローバル・カメラID」である。この「カメラID」をカメラ状態管理モジュール５１８に渡して、そのカメラを管理しているカメラ制御モジュール４１０のCS-ID取得を指示する（S１３０４）。
【００７９】
カメラ状態管理モジュール５１８では、渡された「カメラID」をキーとしてカメラ状態情報（図７）を検索する（S１３０５）。それから、カメラ状態情報内のCS-ID項目の値をCC管理モジュール５１７に返送する（S１３０６）。
「CS-ID」を受け取ったCC管理モジュール５１７では、「CS-ID」と「カメラID」をCS管理モジュール５１６に渡し、「ローカルカメラID」と、カメラ制御モジュール４１０と通信するための「ソケット番号」との取得を指示する（S１３０７）。
【００８０】
CS管理モジュール５１６では、まず「CS-ID」をキーとしてCS情報を取得し（S１３０２）、そこから「ソケット番号」を抽出する。また、「カメラID」項目の値と渡されたカメラ項目を比較し、「カメラID」項目内の何番目の「カメラID」と一致するかを調べる。一致した場合は、その「カメラID」の「カメラID」項目内における順番が「ローカル・カメラID」として使用される。このようにして得られた「ソケット番号」と「ローカル・カメラID」はCC管理モジュール５１７に返送される（S１３０９）。
【００８１】
CC管理モジュール５１７側では、操作要求内の「カメラID」を「ローカルカメラID」に置換してから（S１３１０）、「ソケット番号」と操作要求を送受信モジュール５１５に渡し、カメラ制御モジュール４１０への送信を指示する（S１３１１）。送受信モジュール５１５では要求をカメラ制御モジュール４１０に送信する。
【００８２】
〈カメラ操作通知〉…第１実施形態
カメラ・クライアント６０１によってカメラ操作が行われると、カメラ制御モジュール４１０の「カメラ情報通知部」によりカメラ操作通知が送信されてくる。カメラ連係制御サーバは、この通知内容をもとにしてカメラ状態管理モジュール５１８内のカメラ状態情報を更新したり、連係制御の開始条件のチェックを行う。
【００８３】
以下図１３と図１８を用いて説明する。
カメラ制御モジュール４１０からカメラ操作通知が送信され、カメラ連係制御サーバ５０７内の送受信モジュール５１５によって受信されると（S１４０１）、その送受信モジュール５１５はCS管理モジュール５１６にカメラ操作通知を転送する（S１４０２）。
【００８４】
CS管理モジュール５１６では、まず、カメラ操作通知に含まれている「ローカル・カメラID」を抽出し（S１４０３、これを「カメラID」（「グローバル・カメラID」）に変換する（S１４０４）。この変換は、カメラ操作通知を送信してきたカメラ制御モジュール４１０に対応するCS情報（図５）内の「カメラID」項目を参照し、その「ローカル・カメラID」番目に記入されている「カメラID」を取り出せばよい。「カメラID」の変換を行うと、カメラ操作通知内に書かれている「ローカル・カメラID」を「グローバル・カメラID」で置換する（S１４０５）。次に、この書き変えたカメラ操作通知を連係制御モジュール５１９とカメラ状態管理モジュール５１８に転送する（S１４０６，S１４０７）。ここで図１８のフローチャートでは、ステップS１４０６とステップS１４０７を順番に行うように書かれているが、実際は、S１４０６とS１４０７は同時に実行される。
【００８５】
また、ステップS１４０６によりカメラ操作通知は連係制御モジュール５１９によって処理されるが、その処理内容は後に説明することとし、ここでは、ステップS１４０７によって実行されるカメラ状態管理モジュール５１８側の処理について説明する。
CS管理モジュール５１６からカメラ操作通知を転送されたカメラ状態管理モジュール５１８では、カメラ操作通知から、「カメラID」とカメラの「向き」、「ズーム倍率」等のカメラ状態情報を抽出する（S１４０８）。それからその情報でカメラ状態管理テーブル（図７）内のカメラ状態情報を更新する（S１４０９）。さらにカメラ状態情報からCC-ID項目の値を取り出し（S１４１０）、CC管理モジュール５１７にCC-IDを渡して、カメラ操作通知の転送を指示する。
【００８６】
転送を指示されたCC管理モジュール５１７では、操作されたカメラを参照しようとしているすべてのカメラ・クライアント６０１に対してカメラ操作通知を転送するための処理をおこなう。各カメラ・クライアント６０１にカメラ操作通知を転送することで、カメラ・クライアント６０１側でもカメラ動作をディスプレイ上の表示に反映させる等の処理が可能となる。CC管理モジュール５１７はカメラ状態管理モジュール５１８から渡されたCC-IDをキーとして、カメラ・クライアント６０１と通信するために必要な「ソケット番号」を検索する（S１４１２）。この「ソケット番号」が得られると、CC管理モジュール５１７は、送受信モジュール５１５に、「ソケット番号」と「カメラID」とが書き換えられたカメラ操作通知を転送し、カメラ操作通知のカメラ・クライアント６０１ヘの送信を指示する（S１４１３）。最後に、送受信モジュール（S１４１４）では、指定されたカメラクライアント６０１（ソケット番号）にカメラ操作通知を送信する（S１６１４）。
【００８７】
〈カメラ連係の制御〉…第１実施形態
ここではカメラの連係制御が行われる様子について図１４および図１９，図２０を用いて説明する。ここで、図１９の処理は主に操作権制御サブモジュール５２１によって実行され、図２０に書かれた処理はカメラ操作サブモジュール５２０によって実行される。
【００８８】
連係制御モジュール５１９は、カメラ操作通知をCS管理モジュール５１６から受け取ると（S１５０１）、受け取ったカメラ操作通知から「カメラID」を抽出する（S１５０２）。ここで、受け取ったカメラ操作通知の内容を直接参照することによりカメラ状態情報を得ることもできるが、本実施形態ではカメラ状態情報をカメラ状態管理モジュール５１８経由で取得するものである。このようにすることで、カメラ操作通知そのものを扱うモジュールを限定し、システムの変更を容易にすることができる。すなわち、抽出した「カメラID」をカメラ状態管理モジュール５１８に渡すことにより、このモジュール５１８にカメラ状態情報の取得を依頼する（S１５０３）。カメラ状態管理モジュール５１８では、この依頼に対して、「カメラID」に基づいてカメラ状態情報を検索し、検索したカメラ状態情報を連係制御モジュール５１９に返送する（S１５０４）。カメラ状態情報を得たカメラ連係制御モジュール５１９では、このカメラ状態情報と、カメラ連係制御サーバ５０７の起動時にハードディスク５１０から主メモリにロードしておいたところの連係制御情報（図８）の「Camera-Id」項目および「Pan」，「Tilt」，「Zoom」項目の値と比較して一致したものがないかチェックする。その結果、カメラ状態情報に一致する連係制御情報が見つからなければ（S１５０５）、そのまま処理は終了する。
【００８９】
カメラ状態情報に一致する連係制御情報が見つかった場合は（S１５０５）、その連係制御情報に含まれるすべての「連係対象カメラ」（Target）の項目の値を取り出し（S１５０６）、その１つ１つにステップS１５０７以降の処理を適用していく。
本実施形態では、同一の「開始条件」をもつ連係制御情報は指定できないものと仮定している。ただし、複数の同一開始条件を許すような制御手順も容易である。その場合には、ステップS１５０５以降を同一の開始条件をもつ連係制御情報がなくなるまで繰り返してやればよい。
【００９０】
すなわち、まず、Target項目の値である「カメラID」を１つ取得し（S１５０７）、カメラ状態管理モジュール５１８にこの「カメラID」を渡して「CS-ID」の取得を指示する（S１５０８）。カメラ状態管理モジュール５１８では、「カメラID」をキーとしてカメラ状態情報を検索し、さらにカメラ状態情報から「CS-ID」項目の値を取り出して連係制御モジュール５１９に返送する（S１５０９。連係制御モジュール５１９ではCS管理モジュール５１６に「CS-ID」と「カメラID」に渡して、カメラの操作権の取得を依頼する（S１５１０）。
【００９１】
CS管理モジュール５１６では、この依頼を受けると、依頼中の「CS-ID」から、カメラ制御モジュールと通信するための「ソケット番号」を検索し（S１５１１）、さらに「カメラID」から「ローカル・カメラID」への変換を行う（S１５１２）。次に送受信モジュール５１５に「ソケット番号」と「ローカル・カメラID」を渡して操作権取得要求の送信を指示する（S１５１３）。
【００９２】
送受信モジュール５１５では、上記の指示を受けて操作権取得要求をカメラ制御モジュール４１０に送信する（S１５１４）。その結果がカメラ制御モジュール４１０から連係制御サーバ５００の送受信モジュール５１５に返送されてくるので、これを受信する（S１５１６）。この結果はさらに連係制御モジュール５１９に転送される（S１５１７）。操作権を得ることができたならば（S１５１８）、連係制御モジュール５１９はステップS１５２０以降の処理を即座に実行する。
【００９３】
操作権の取得に失敗した場合（S１５１８）、即ち、他のカメラクライアント６０１がそのカメラを既に使用していた場合には、連係制御情報内のPolicy項目に指定された操作権衝突回避処理を実行する（S１５１９）。ここで、Policyに指定可能な項目は前述のように、
-操作権が解放されるまで待つ
-カメラｐに対する操作権を強制的に取得する
-替りのカメラ（例えばカメラｑ）の操作権を取得する
-カメラｐに対する操作を断念する
である。この設定は、図９のウインドダイアログによって設定されることは前述した。
【００９４】
「解放されるまで待つ」が指定されていた場合は、ステップS１５１９の「操作権衝突回避処理」は一旦中断され、新たなカメラ操作通知がカメラ制御モジュール４１０から送信されてくるまで、ステップＳ１５１９においてサスペンド状態になる。
当該カメラに対する他のクライアントによる操作の終了はカメラ制御モジュール４１０によって検知される。そこで、カメラ制御モジュール４１０からカメラの操作権が放棄された旨のカメラ操作通知を送受信モジュール５１５経由で連係制御モジュール５１９が受信した時点で、サスペンドされていた処理は再開される。
【００９５】
一方、操作権衝突回避処理として、「強制的に操作権を取得する」が選択されていた場合には、再度、送受信モジュール５１５に操作権取得要求の送信を指示する。ただし、今回の操作権取得要求には「強制取得フラグ」をＯＮにしておく。当然のことながら、カメラ制御モジュール４１０側で、強制取得機能をサポートしていない場合、この回避方法は無効である。強制取得フラグがサポートされており、操作権の強制取得に成功した場合は、ステップS１５２０以降の処理を再開する。
【００９６】
また、操作権衝突回避処理として、「そのカメラ操作を断念する」が選択されていた場合には、ステップS１５２０以降の処理を中止し、ステップS１５０７から処理を再開する。
また、操作権衝突回避処理として、「替りのカメラ操作権を取得する」が選択されていた場合には、連係制御情報のAlternative項目の値を取り出し、そこに指定されている「カメラID」についてステップS１５０８以降の処理を再度行う。
【００９７】
以上の操作権衝突回避処理の結果、なんらかのかたちで操作権を取得した場合（S１５１８）、連係情報から「nPan」，「nTilt」，「nZoom」項目の値を抽出し（S１５２０）、さらに先ほど取得した「カメラID」，「CS-ID」をCS管理モジュール５１６に渡して、カメラ操作要求の送信を指示する（S１５２１）。CS管理モジュール５１６では先ほどと同様に「CS-ID」から「ソケット番号」を取得（S１５２２）し、「カメラID」を「ローカルカメラID」に変換する（S１５２３）。得られた「ローカル・カメラID」、「ソケット番号」および「nPan」，「nTilt」，「nZoom」の値を送受信モジュール５１５に渡してカメラ操作要求の送信を指示する（S１５２４）。最後に送受信モジュール５１５がカメラ操作要求をカメラ制御モジュール４１０に送信する（S１５２５）。
【００９８】
以上の処理をすべてのTarget（連係対象カメラ）項目について繰り返す（S１５２６）。
以上のようにしてカメラの連係を制御する。
Targetを複数連係制御情報に含ませることで、複数のカメラを連動させることが可能となる。
【００９９】
以上、述べたように本実施形態では、
-個々のカメラの操作部
-個々のカメラの操作権制御部
-複数のカメラの操作権を管理するための連係制御モジュール内の操作権
制御サブモジュール
-カメラの連係の発生条件および具体的な連係の内容を管理し実行するた
めの連係制御モジュール内のカメラ操作サブモジュール
-カメラの連係の発生条件の検出のための各カメラの情報向きやズーム
倍率などを管理するためのカメラ状態管理モジュール
-上記カメラ状態情報管理部で管理されるカメラ状態情報を取得を可能にする
送受信モジュール、CS管理モジュール、およびCC管理モジュールを提供している。
【０１００】
以上の構成により、本案施例では従来のカメラ制御モジュールによる個々のカメラ操作と共存可能なカメラ連係制御を可能している。カメラ・クライアントは従来どおりカメラ制御モジュールを使用して個々のカメラの操作が可能であると同時に、複数のカメラを連係させることが可能である。
〈第２の実施形態〉
ここでは、本発明の第２の実施形態について説明する。図２１は第２実施形態の概念を表す図である。
【０１０１】
第１の実施形態ではカメラ連係のための各部がマルチカメラ制御サーバという形の独立したソフトウェアとして実現されていた。第２実施形態では、カメラ連係のための各部をカメラ制御モジュールに組み込んでいる。また、カメラ制御モジュール自体も、カメラとは独立なＰCで動作するのではなく、カメラ自体に組み込まれたCＰＵや主メモリ上で動作するものとする。
【０１０２】
このため図２１に示すように、第２実施形態では、カメラ１４００ａ，１４００ｂ，１４００ｃの内部にカメラ制御モジュール１４０１ａ，１４０１ｂ，１４０１ｃが夫々組み込まれている。ただし、このカメラ制御モジュール１４０１ａ，１４０１ｂ，１４０１ｃは、機能的には、第１実施形態のカメラ制御モジュールと同等な機能をもっているものとする。各カメラ制御モジュールは、第１実施形態のようなマルチカメラ制御サーバを仲介とすることなく、コンピュータネットワーク１７００を使用して、カメラ・クライアント１６００ａ，１６００ｂ，１６００ｃ，１６００ｄと通信を行う。複数カメラの連係動作は、カメラ制御サーバ同士で通信を行うことによって実現される。
【０１０３】
第２実施形態の構成要素について図２２を用いて説明する。
図２２において、カメラ１４１１とカメラ・クライアント１６００が存在し、コンピュータネットワーク１７１２で接続されている。図には記載されていないが、カメラ１４１１はCＰＵと主メモリを持ちプログラムを実行することができる。また、カメラ１４１１にはデータベース管理システム１４１０が接続されている。カメラ１４１１内で動作するプログラムは、データベース管理システム１４１０を利用してデータの管理を行うことができる。
【０１０４】
カメラ１４１１内の主メモリにはカメラ制御モジュール１４０１が置かれている。カメラ制御モジュールは内部的に２つのモジュールに分割される。コア制御モジュール１４０２は、第１実施形態のカメラ制御モジュールに相当し、カメラ１４１１の操作を行うためのローカルカメラ操作サブモジュール１４０３と、カメラの制御権を管理するためのローカル操作権制御サブモジュール１４０４から構成される。もう一つのモジュールであるリモート制御モジュール１４０８は、第１実施形態のマルチカメラ制御サーバ（５００）に相当し、複数カメラの操作権を制御するためのリモート操作権制御サブモジュール１４０５と、カメラの連動を制御するリモート連係制御サブモジュール１４０７と、カメラ１４１１だけでなく他カメラ制御モジュールの管理下にあるカメラに関する情報を管理するリモートカメラ情報管理サブモジュール１４０６とから構成されている。
【０１０５】
第２実施形態において、第１実施形態のカメラ状態管理モジュール５１８、カメラ操作サブモジュール５２０、操作権制御サブモジュール５２１に相当する構成要素として、リモートカメラ状態管理モジュール１４０６、リモート連係制御サブモジュール１４０７、リモート操作権制御サブモジュール１４０５が提供されている。しかし、第１実施形態の、送受信モジュール５１５、CS管理モジュール５１６、CC管理モジュール５１７に相当する構成要素は図２２に明記されていない。しかしながら、CC管理モジュール５１７に相当する機能はローカル操作権制御サブモジュール１４０４によって提供される。また、CS管理モジュール５１６に相当する機能は、リモートカメラ情報管理サブモジュール１４０６に組み込まれている。これは、第２実施形態ではカメラとカメラ制御モジュールが必ず１；１に対応しているので、カメラ情報とCS情報を個別に扱う必要がないためである。
【０１０６】
第２実施形態では、ソケット等のプロセス間通信機能を使用せず、データベース管理システム１４１０が「変更通知機能」を提供していると仮定する。「変更通知機能」は、データベース上で管理されているデータに変更がなされた時、そのデータを参照している各クライアントに通知を行う機能である。送受信モジュールに相当する機能は変更通知機能によって提供される。ただし、データベース管理システム１４１０が「変更通知機能」を提供していない場合は、第１実施形態と同様な送受信モジュールをカメラ制御モジュール１４０１に追加する必要がある。
【０１０７】
第２実施形態で、各モジュールが使用するカメラ情報やCC情報は第１実施形態で示したものと同じである。ただし、CS情報の各項目はカメラ情報内に含まれているものとする。これらの情報はデータベース管理システム１４１０上で管理される。このため各モジュールでテーブルを作成する必要はない。また、データベース上の情報はすべてのカメラ制御モジュールから参照することができる。
【０１０８】
第２実施形態の動作において、各モジュールの動作は第１実施形態と同じである。即ち、第１実施形態の各モジュール名を第２実施形態における各サブモジュール名で読み替えることとし、第１実施形態でCS情報を参照する制御はカメラ情報を参照する制御に変更解釈すればよい。
ただし、第２実施形態では第１実施形態のように送受信モジュールを有さないので、送受信モジュールを使用して通信を行う第１実施形態の制御部分は以下のように変更される。
【０１０９】
すなわち、カメラ操作要求などの要求メッセージを、他のカメラ制御モジュールに送信する処理を実現するために、処理を行わせたいカメラ制御モジュールのカメラ情報に「要求」という項目を追加する。要求項目の値には、要求の種類（操作権取得要求など）を指定するための識別子（例えば、要求の名前を表す文字列など）を指定しておく。
【０１１０】
カメラ情報に項目を追加されたカメラ制御モジュールには、データベース管理モジュール１４１０から変更が通知されてくるので、カメラ情報に追加された要求項目の値をチェックする。チェックの結果、たとえば「カメラ制御要求」が指定されていることが分かれば、カメラ制御要求を送受信モジュールから受け取る第１実施形態の場合と同様にして、処理を実行することができる。
【０１１１】
また、上記のような要求に対するリプライは、リプライを通知したいカメラ制御モジュールのカメラ情報に「リプライ」項目を追加し、リプライの内容を値として設定すればよい。「要求」と「リプライ」項目は必要がなくなれば、適宜削除してよい。
カメラ・クライアントとカメラ制御モジュール間の通信も同様にして実現される。すなわち、CC情報に「要求」項目および「リプライ」項目を追加し、適当な値を設定すればよい。
【０１１２】
以上述べたように、第２実施形態は、
・個々のカメラの操作部であるローカルカメラ操作サブモジュール、
・個々のカメラの操作権制御部であるローカル操作権利御サブモジュー
ル、
・複数のカメラの操作権を管理するためのリモート操作権利御サブモジュ
ール
・カメラの連係の発生条件および具体的な連係の内容を管理し実行するた
めのリモート連係制御サブモジュール
・カメラの連係の発生条件の検出のための各カメラの情報向きやズーム
倍率などを管理するためのカメラ状態管理モジュール
・上記カメラ情報管理部で管理されるカメラ情報の共有を可能にするデ
ータベース管理システム
から構成されているカメラ制御モジュールを提供する。
【０１１３】
以上のように第２実施形態ではデータベース管理システムを使用してデータ管理機構を実現しており、さらにカメラ連係のための部を各カメラ制御モジュールに組み込んでいるため、カメラの台数の増減が行われてもデータベース上のカメラ情報を操作するだけでシステムを稼動させつづけることが可能となる。また、カメラ連係処理の負荷が特定のコンピュータに集中することなく、個々のカメラ制御モジュールに分散されるので、システム全体の利用効率が第１実施形態で示したものより向上するという利点をもっている。
【０１１４】
【他の実施形態】
なお、本発明は、複数の機器例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなどから構成されるシステムに適用しても、一つの機器からなる装置例えば、複写機，ファクシミリ装置などに適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータまたはCＰＵやＭＰＵが記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１１５】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，CＤ-ＲＯＭ，CＤ-Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１１６】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯSオペレーティングシステムなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１７】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１８】
【発明の効果】
以上述べたように本発明によれば、所定のカメラが所定の向きの撮影をするように、複数のカメラに所定の連係動作を行わせることが可能になる。
【図面の簡単な説明】
【図１】  従来の技術である遠隔カメラシステムを説明するための図である。
【図２】  本発明の第１の実施形態のネットワーク構成図である。
【図３】  第１の実施形態におけるクライアントのユーザインタフェースを説明するための図である。
【図４】  第１の実施形態の概念を説明するための図である。
【図５】  第１実施形態に用いられるCS管理テーブルの構成を説明する図。
【図６】  第１実施形態に用いられるCC管理テーブルの構成を説明する図。
【図７】  第１実施形態に用いられるカメラ状態管理テーブルの構成を説明する図。
【図８】  第１実施形態に用いられる連係情報管理テーブルの構成を説明する図。
【図９】  カメラの連係情報を作成するためのユーザインタフェースを示す図である。
【図１０】  連係制御サーバの起動処理を説明するための図である。
【図１１】  カメラ・クライアントの起動処理を説明するための図である。
【図１２】  カメラ・クライアントによるカメラ操作の処理を説明するための図である。
【図１３】  カメラ制御モジュールからのカメラ操作通知の処理を説明するための図である。
【図１４】  カメラ連係処理を説明するための図である。
【図１５】  連係制御サーバの起動処理を表すフローチャートである。
【図１６】  カメラ・クライアントの起動処理を表すフローチャートである。
【図１７】  カメラ・クライアントによるカメラ操作の処理を表すフローチャートである。
【図１８】  カメラ制御モジュールからのカメラ操作通知の処理を表すフローチャートである。
【図１９】  カメラ連係処理を表すフローチャートである。
【図２０】  カメラ連係処理を表すフローチャートである。
【図２１】  本発明の第２実施形態の概念図である。
【図２２】  第２の実施形態の構成図である。
【図１】
0004702911.tif 000002
【図２】
0004702911.tif 000003
【図３】
0004702911.tif 000004
【図４】
0004702911.tif 000005
【図５】
0004702911.tif 000006
【図６】
0004702911.tif 000007
【図７】
0004702911.tif 000008
【図８】
0004702911.tif 000009
【図９】
0004702911.tif 000010
【図１０】
0004702911.tif 000011
【図１１】
0004702911.tif 000012
【図１２】
0004702911.tif 000013
【図１３】
0004702911.tif 000014
【図１４】
0004702911.tif 000015
【図１５】
0004702911.tif 000016
【図１６】
0004702911.tif 000017
【図１７】
0004702911.tif 000018
【図１８】
0004702911.tif 000019
【図１９】
0004702911.tif 000020
【図２０】
0004702911.tif 000021
【図２１】
0004702911.tif 000022
【図２２】
0004702911.tif 000023