(57)【特許請求の範囲】
【請求項１】
パン、チルト、及びズームを制御可能なカメラを備えるカメラサーバからの画像の配信をネットワークを介して要求する画像表示装置において、
前記カメラサーバに要求する要求領域をユーザによる操作に基づいて設定する設定手段と、
前記カメラの撮像領域に関する情報を前記カメラサーバから取得する取得手段と、
前記カメラのパン、チルト、及びズームを制御することによって前記カメラにより撮像可能な領域を示す第１の枠を表示するとともに、前記撮像可能な領域の範囲内で前記設定手段により設定された要求領域を示す第２の枠と、前記カメラサーバから取得された前記カメラの撮像領域を示す第３の枠とを前記第１の枠内に表示する表示手段とを備えることを特徴とする画像表示装置。
【請求項２】
前記表示手段は、さらに前記設定手段により設定された要求領域の映像を表示することを特徴とする請求項１に記載の画像表示装置。
【請求項３】
パン、チルト、及びズームを制御可能なカメラを備えるカメラサーバからの画像の配信をネットワークを介して要求する画像表示装置において、前記カメラサーバに要求する要求領域をユーザによる操作に基づいて設定するとともに、前記カメラの撮像領域に関する情報を取得し、
前記カメラのパン、チルト、及びズームを制御することによって前記カメラにより撮像可能な領域を示す第１の枠を表示するとともに、前記撮像可能な領域の範囲内で設定された前記要求領域を示す第２の枠と、前記カメラサーバから取得された前記カメラの撮像領域を示す第３の枠とを前記第１の枠内に表示することを特徴とする画像表示方法。
【請求項４】
前記設定された要求領域の映像を表示することを特徴とする請求項３に記載の画像表示方法。
【請求項５】
パン、チルト、及びズームを制御可能なカメラを備えるカメラサーバからの画像の配信をネットワークを介して要求する画像表示装置において、前記カメラサーバに要求する要求領域をユーザによる操作に基づいて設定するとともに、前記カメラの撮像領域に関する情報を取得し、
前記カメラのパン、チルト、及びズームを制御することによって前記カメラにより撮像可能な領域を示す第１の枠を表示するとともに、前記撮像可能な領域の範囲内で前記設定された要求領域を示す第２の枠と、前記カメラサーバから取得された前記カメラの撮像領域を示す第３の枠とを前記第１の枠内に表示することを特徴とする画像表示方法の処理手順をコンピュータに実行させるためのコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像表示装置、画像表示方法、及びコンピュータ読み取り可能な記録媒体に関し、特に、パン、チルト、ズームを制御可能なカメラから、ネットワークを介して画像の配信を受けるために用いて好適なものに関する。
【背景技術】
【０００２】
従来、ある１つのカメラ等で撮影した映像を遠隔の複数地点にネットワークを介して配送して表示するシステムにおいて、各地点にいる複数のユーザがカメラの幾何的パラメータ（パン角度、チルト角度、ズーム倍率など）を交互に制御することで、自分が所望する視点や画角で映像を撮影できるようにしたカメラ制御システムが知られている。
【０００３】
【特許文献１】特開平１０−１６４５６２号公報
【特許文献２】特開平９−２６１５２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、この種の従来のカメラ制御システムでは、カメラの幾何的パラメータを同時に１人のユーザしか制御できないという問題があった。カメラを人数分用いることで複数のユーザがそれぞれのカメラを同時に制御することも考えられるが、その場合はカメラを複数台用意するために大きなコストがかかるという問題が生じていた。
【０００５】
また、カメラの最大画角で（光学ズームをワイド端にすることによって）映像を撮影し、その全体映像中から各ユーザが所望する領域の映像を切り出して各ユーザに配信する方法も考えられている。しかしながら、その場合はユーザに配信される映像が、公知の電子ズーム処理を施した場合などには粗くなってしまうという問題があった。
【０００６】
また、このような不都合を無くすために電子ズームのみではなくユーザがある程度幾何的パラメータを指定することができればよいが、その場合、カメラが得た全体映像の領域、ユーザの所望とする撮影領域、カメラが撮影可能な領域の間の幾何的パラメータの関係が複雑でわかりにくいものとなり、操作性の低下を招くおそれがある。
本発明は、このような問題を解決するためのものであり、カメラが得た全体映像の領域、ユーザの所望とする撮影領域、カメラが撮影可能な領域とを表示することで、幾何的パラメータの指定によるカメラ制御におけるユーザの操作性を向上させた画像表示装置、画像表示方法、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像表示装置は、パン、チルト、及びズームを制御可能なカメラを備えるカメラサーバからの画像の配信をネットワークを介して要求する画像表示装置において、前記カメラサーバに要求する要求領域をユーザによる操作に基づいて設定する設定手段と、前記カメラの撮像領域に関する情報を前記カメラサーバから取得する取得手段と、前記カメラのパン、チルト、及びズームを制御することによって前記カメラにより撮像可能な領域を示す第１の枠を表示するとともに、前記撮像可能な領域の範囲内で前記設定手段により設定された要求領域を示す第２の枠と、前記カメラサーバから取得された前記カメラの撮像領域を示す第３の枠とを前記第１の枠内に表示する表示手段とを備えることを特徴とする。
【０００８】
本発明の画像表示方法は、パン、チルト、及びズームを制御可能なカメラを備えるカメラサーバからの画像の配信をネットワークを介して要求する画像表示装置において、前記カメラサーバに要求する要求領域をユーザによる操作に基づいて設定するとともに、前記カメラの撮像領域に関する情報を取得し、前記カメラのパン、チルト、及びズームを制御することによって前記カメラにより撮像可能な領域を示す第１の枠を表示するとともに、前記撮像可能な領域の範囲内で設定された前記要求領域を示す第２の枠と、前記カメラサーバから取得された前記カメラの撮像領域を示す第３の枠とを前記第１の枠内に表示することを特徴とする。
【０００９】
本発明のコンピュータ読み取り可能な記録媒体は、パン、チルト、及びズームを制御可能なカメラを備えるカメラサーバからの画像の配信をネットワークを介して要求する画像表示装置において、前記カメラサーバに要求する要求領域をユーザによる操作に基づいて設定するとともに、前記カメラの撮像領域に関する情報を取得し、前記カメラのパン、チルト、及びズームを制御することによって前記カメラにより撮像可能な領域を示す第１の枠を表示するとともに、前記撮像可能な領域の範囲内で設定された前記要求領域を示す第２の枠と、前記カメラサーバから取得された前記カメラの撮像領域を示す第３の枠とを前記第１の枠内に表示することを特徴とする画像表示方法の処理手順をコンピュータに実行させるためのコンピュータプログラムを記録したことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、パン、チルト、及びズームの指定によるカメラ制御におけるユーザの操作性が向上するという効果がある。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の一実施形態を図面に基づいて説明する。
（第１の実施形態）
第１の実施形態におけるカメラ制御システムは、図１３のように構成される。図１３において、１３０１はカメラサーバであり、例えば６４０×４８０画素の映像を撮影できるカメラを備え、撮影した映像を配信する機能を有する。
【００１２】
また、１３０２，１３０３，１３０４，…はユーザが使用するコンピュータ端末であり、上記カメラサーバ１３０１とネットワークにより接続され、カメラの幾何的パラメータ（パン角度、チルト角度、ズーム倍率など）を制御することが可能であるとともに、配信された映像を受け取って表示する機能を有する（以下、これらをクライアントと呼ぶ）。
【００１３】
各クライアント１３０２，１３０３，１３０４，…のディスプレイには、例えば図１４に示すようなＧＵＩ画面が表示されている。この図１４において、１４０１はカメラサーバ１３０１でカメラの幾何的パラメータを変化させることによって撮影可能となる範囲（以下、撮影可能範囲と呼ぶ）を表す。１４０２は上記撮影可能範囲１４０１の中でクライアントユーザが撮影したい領域（以下、要求領域と呼ぶ）を表す。簡単のため、本実施形態における要求領域は、横対縦の比が６４０：４８０のような長方形であるとする。１４０３は上記要求領域１４０２に含まれる映像である（以下、要求映像と呼ぶ）。
【００１４】
また、１４０４は上記要求領域１４０２の位置や大きさを変更するためのスクロールバーである。各クライアント１３０２，１３０３，１３０４，…のユーザは、スクロールバー１４０４を用いて自分が所望する幾何的パラメータを設定し、それにより指定される要求領域１４０２の映像、すなわち要求映像１４０３を得ることができる。あるいは、撮影可能範囲１４０１において図示しないマウスのドラッグ操作等により要求領域１４０２を直接指定することも可能である。
【００１５】
一方、カメラサーバ１３０１は、各クライアントユーザが指定した要求領域１４０２の情報をもとに、すべての要求領域１４０２を含み、かつ画角が最小となる領域（以下、撮影領域と呼ぶ）を計算する。図１５は、この撮影領域に関する説明図である。図１５（ａ）において、１５００は撮影可能範囲（図１４の撮影可能範囲１４０１に対応）、１５０１，１５０２，１５０３は各ユーザの要求領域である。このとき、撮影領域は図１５（ｂ）に点線で示した領域１５０４となる。また、図１５（ｃ）の１５０５は、カメラの幾何的パラメータを変更して撮影領域１５０４の映像を撮影するようにした様子を示す。
【００１６】
次に、図１は、本実施形態によるカメラ制御システムのより詳細な構成を示すブロック図である。
図１において、１００はカメラサーバ（図１３のカメラサーバ１３０１に対応）であり、主に１０１〜１０８の各ブロックにより構成される。また、２００，３００，４００はクライアント（図１３のクライアント１３０２，１３０３，１３０４に対応）であり、それぞれ主に２０１〜２０５の各ブロックによって構成される。
【００１７】
カメラサーバ１００の構成において、映像入力部１０１は上記撮影領域の映像を入力するものであり、変倍のためのズーミングレンズ、合焦のためのフォーカシングレンズ、光量の調節などを行うための絞り、これらを介して入射した光学像を電気的な信号に変換するＣＣＤなどから成る。また、カメラの撮影姿勢を可変とする機能も有している。
要求映像作成部１０２は、映像入力部１０１より入力された撮影領域の映像から上記要求領域に対応する映像データを抽出して上記要求映像を作成する。
【００１８】
映像送信Ｉ／Ｆ１０３は、要求映像作成部１０２によって作成された要求映像に圧縮などの所定の処理を施し、各クライアント２００，３００，４００，…に送信する。
コマンド通信Ｉ／Ｆ１０４は、カメラサーバ１００と各クライアント２００，３００，４００，…との間でコマンドの送受信を行う。本実施形態におけるコマンドには、各クライアント２００，３００，４００，…がカメラサーバ１００に接続したときにカメラサーバ１００に送る要求領域追加コマンド、クライアントユーザが要求領域の位置や大きさを変更したときに当該クライアントがカメラサーバ１００に送る要求領域変更コマンド、各クライアント２００，３００，４００，…がカメラサーバ１００との接続を切断するときにカメラサーバ１００に送る要求領域削除コマンド、および上記コマンド実行の成否を各クライアント２００，３００，４００，…に伝えるためにカメラサーバ１００が各クライアント２００，３００，４００，…に送るＡｃｋコマンドがある。
【００１９】
要求領域記憶部１０５は、各ユーザの要求領域に関するデータを記憶する記憶手段である。本実施形態において、要求領域記憶部１０５は、要求領域のデータを例えば図１６のような形式で記憶している。図１６において、要求領域ＩＤは、要求領域ごとに付けられるユニークな識別子である。また、要求領域の位置および大きさは、撮影可能範囲内における要求領域の左端および右端の横軸座標、要求領域の上端および下端の縦軸座標で表すものとする。
【００２０】
撮影領域計算部１０６は、要求領域記憶部１０５に記憶されている各要求領域のデータをもとに、撮影領域を計算する。本実施形態では説明の簡単のため、カメラの幾何的パラメータとしてパン・チルト角度、ズーム倍率のみを考える。なお、他の幾何的パラメータとして、カメラのロール角度、カメラの位置などを考えてもよい。
【００２１】
撮影領域記憶部１０７は、撮影領域計算部１０６で計算された撮影領域に関するデータを記憶する。
幾何的パラメータ制御部１０８は、撮影領域記憶部１０７に記憶されている撮影領域を映像入力部１０１で撮影するようにカメラの幾何的パラメータを制御する。本実施形態における幾何的パラメータ制御部１０８を構成するものは、カメラの雲台およびそれを駆動するモータ類、ズーミングレンズおよびそれを駆動するモータ類などである。
【００２２】
ＣＰＵ１０９は、カメラサーバ１００全体を統括制御するものであり、ＲＯＭ１１０に格納されているプログラムをＲＡＭ１１１に読み出し、読み出したプログラムに基いて各動作処理を実行する。
【００２３】
次に、クライアント２００の構成について説明する。クライアント３００，４００，…はクライアント２００と同じ構成のため、説明を省略する。
映像受信Ｉ／Ｆ２０１は、カメラサーバ１００の映像送信Ｉ／Ｆ１０３から送られる映像データを受信し、要求映像を復元する。要求映像を復元する処理としては、圧縮されたデータの伸長や、画素の補完による映像の拡大などがある。
映像表示部２０２は、ＣＲＴあるいはＬＣＤなどであり、映像受信Ｉ／Ｆ２０１で受信して復元された要求映像を表示する。また、映像表示部２０２は、図１４のＧＵＩ画面なども表示する。
【００２４】
要求領域入力部２０３は、要求領域の位置や大きさなどの指示を入力するためのものである。本実施形態における要求領域入力部２０３を構成するものは、キーボード、マウスなどのポインティングデバイスなどである。
コマンド通信Ｉ／Ｆ２０４は、カメラサーバ１００とクライアント２００との間でやり取りされるコマンドの送受信を行う。コマンドの種類については上述した通りである。
【００２５】
要求領域記憶部２０５は、クライアントユーザの要求領域に関するデータを記憶する。
ＣＰＵ２０６は、クライアント２００全体を統括制御するものであり、ＲＯＭ２０７に格納されているプログラムをＲＡＭ２０８に読み出し、読み出したプログラムに基いて各動作処理を実行する。
【００２６】
次に、本実施形態におけるカメラ制御システムの動作を説明する。
図２は、クライアント２００の起動時における動作を示すフローチャートである。クライアント２００が起動すると、ステップＳ１０１で、要求領域記憶部２０５から要求領域の座標（クライアント２００が前回起動したときに保存した値またはデフォルト値）を読み出し、ステップＳ１０２でその要求領域をカメラサーバ１００に追加するための要求領域追加コマンドを作成する。この要求領域追加コマンドには、上記読み出した要求領域の座標を含める。
【００２７】
そして、ステップＳ１０３に進み、コマンド通信Ｉ／Ｆ２０４により、その作成した要求領域追加コマンドをカメラサーバ１００に送信する。その後、ステップＳ１０４に進み、要求領域追加コマンドに対応するＡｃｋコマンドをコマンド通信Ｉ／Ｆ２０４において受信したかどうかを調べる。受信していなければ、このステップＳ１０４の処理を繰り返す。
【００２８】
一方、カメラサーバ１００からＡｃｋコマンドを受信すれば、ステップＳ１０５に進んでその受信したＡｃｋコマンドの解析を行う。ステップＳ１０６では、Ａｃｋコマンドの解析結果に基づいて、要求領域追加コマンドの実行の成否を調べる。
【００２９】
成功していればステップＳ１０７に進み、上記受信したＡｃｋコマンドに記述されている要求領域ＩＤを要求領域記憶部２０５に格納する。そして、ステップＳ１０８に進み、ＧＵＩの書き換えなどの処理を行った後、クライアント起動時の処理を終了する。また、上記ステップＳ１０６で要求領域追加コマンドの実行が失敗したと判定すれば、ステップＳ１０９に進んでエラーの内容を表示し、処理を終了する。
【００３０】
図３は、カメラサーバ１００がクライアント２００から上記要求領域追加コマンドを受信するときのカメラサーバ１００の動作を示すフローチャートである。
ステップＳ２０１において、カメラサーバ１００がコマンド通信Ｉ／Ｆ１０４によって要求領域追加コマンドを受信したと判定されると、ステップＳ２０２に進んでその受信したコマンドの解析を行う。
【００３１】
そして、ステップＳ２０３に進み、その解析結果に基づいて、新しい要求領域に関するデータを要求領域記憶部１０５に記憶する。具体的には、新しい要求領域に関するフィールドを要求領域記憶部１０５に作成し、ユニークな要求領域ＩＤを生成して座標データと共にそのフィールドに格納する。次に、ステップＳ２０４に進み、撮影領域計算部１０６によって、要求領域記憶部１０５内に記憶されているすべての要求領域を含むような撮影領域を計算する。この処理についての説明は、図４および図５を用いて後述する。
【００３２】
ステップＳ２０５では、上記ステップＳ２０４の結果から撮影領域の計算に成功したかどうかを判定する。成功ならステップＳ２０６に進み、その計算結果である撮影領域のデータを撮影領域記憶部１０７に格納する。次に、ステップＳ２０７に進み、幾何的パラメータ制御部１０８によって、撮影領域記憶部１０７に格納されている撮影領域を撮影するようにカメラの幾何的パラメータを制御する。この制御方法は、図６を用いて後述する。
【００３３】
さらに、ステップＳ２０８に進み、要求領域追加の要求を行ったクライアントに確かに要求領域を追加したことを伝えるためのＡｃｋコマンドを作成する。このとき、Ａｃｋコマンド中には当該要求領域に付けられた要求領域ＩＤを含める。そして、ステップＳ２０９に進み、作成したＡｃｋコマンドを当該クライアントに送信する。
【００３４】
一方、上記ステップＳ２０５で、撮影領域の計算に失敗したと判定された場合は、ステップＳ２１０に進んで要求領域記憶部１０５から先ほどステップＳ２０３で追加した要求領域のフィールドを削除する。次に、ステップＳ２１１に進み、要求領域の追加に失敗したことを当該クライアントに伝えるためのＡｃｋコマンドを作成する。そして、ステップＳ２０９に進み、作成したＡｃｋコマンドを当該クライアントに送信する。
【００３５】
次に、図４および図５のフローチャートを用いて、上記ステップＳ２０４における撮影領域を計算するための動作を説明する。撮影領域を決定するに当たっては、原則として全要求領域の中心が撮影領域の中心となるようにする。その理由は、カメラで撮影する映像は、一般に中心に近いほど歪みが少ないためである。
ただし、そのために撮影領域が撮影可能範囲からはみ出ないような処理を施す必要がある。
【００３６】
図４において、まずステップＳ３０１で、要求領域記憶部１０５に要求領域のフィールドが存在するかどうかを確認する。存在していればステップＳ３０２に進み、初期設定として変数Ｘmin にＭ／２を、変数Ｘmax に−Ｍ／２を、変数Ｙmin にＮ／２を、変数Ｙmax に−Ｎ／２をそれぞれ代入する。ここで、（−Ｍ／２，−Ｎ／２）は撮影可能範囲の左上の座標を意味し、（Ｍ／２，Ｎ／２）は右下の座標を意味する。
【００３７】
次に、ステップＳ３０３に進み、要求領域記憶部１０５に記憶されている最初のフィールドの内容を参照する。そして、ステップＳ３０４で、現在参照している要求領域の左端の横軸座標を調べ、それを変数Ｘmin と比較する。ここで、変数Ｘmin の方が大きければ、ステップＳ３０５で当該変数Ｘmin に現在参照中の要求領域左端の横軸座標を代入する。
【００３８】
ステップＳ３０６では、現在参照している要求領域の右端の横軸座標と変数Ｘmax とを比較する。ここで、変数Ｘmax の方が小さければ、ステップＳ３０７で当該変数Ｘmax に現在参照中の要求領域右端の横軸座標を代入する。ステップＳ３０８では、現在参照している要求領域の上端の縦軸座標と変数Ｙmin とを比較する。ここで、変数Ｙmin の方が大きければ、ステップＳ３０９で変数Ｙmin に現在参照中の要求領域上端の縦軸座標を代入する。
【００３９】
ステップＳ３１０では、現在参照している要求領域の下端の縦軸座標と変数Ｙmax とを比較する。ここで、変数Ｙmax の方が小さければ、ステップＳ３１１で当該変数Ｙmax に現在参照中の要求領域下端の縦軸座標を代入する。そして、ステップＳ３１２で、要求領域記憶部１０５内のすべてのフィールドを調べたかどうかを判定する。まだ調べていないものがあれば、ステップＳ３１３に進んで次の要求領域フィールドを参照し、ステップＳ３０４に戻る。
【００４０】
一方、すべてのフィールドを調べ終えていれば、図５のステップＳ３１４に進む。この時点で、変数Ｘmin には全要求領域のうち最も左にある領域の左端の横軸座標、変数Ｘmax には最も右にある領域の右端の横軸座標、変数Ｙmin には最も上にある領域の上端の縦軸座標、変数Ｙmax には最も下にある領域の下端の縦軸座標が格納されている。
【００４１】
ステップＳ３１４では、（Ｙmax −Ｙmin ）／（Ｘmax −Ｘmin ）の値を計算し、その計算結果と（４８０／６４０）の値と比較する。前者の値の方が大きければ、各変数Ｘmin ，Ｘmax ，Ｙmin ，Ｙmax で決まる長方形領域の形が撮影可能範囲の形に比べて縦長となっているので、これを撮影可能範囲の相似形に矯正する必要がある。
【００４２】
この場合は、ステップＳ３１５に進み、変数Ｘに「Ｘmin ＋（Ｙmax −Ｙmin ）×（６４０／４８０）」の計算結果を代入する。次に、ステップＳ３１６に進み、変数ΔＸに「Ｘmax −Ｘ」の計算結果を代入する。次に、ステップＳ３１７に進み、変数Ｘmin の値をΔＸ／２だけ減らし、変数Ｘmax の値をΔＸ／２だけ増やす。このように、各変数Ｘmin ，Ｘmax ，Ｙmin ，Ｙmax で決まる長方形領域を左右方向にΔＸ／２ずつ広げることにより、撮影可能範囲と相似形の撮影領域を生成する。
【００４３】
一方、上記ステップＳ３１４で後者の値の方が大きければ、各変数Ｘmin ，Ｘmax ，Ｙmin ，Ｙmax で決まる長方形領域の形が撮影可能範囲の形に比べて横長となっているので、これを撮影可能範囲の相似形に矯正する必要がある。この場合は、ステップＳ３１８に進み、変数Ｙに「Ｙmin ＋（Ｘmax −Ｘmin ）×（４８０／６４０）」の計算結果を代入する。
【００４４】
次に、ステップＳ３１９に進み、変数ΔＹに「Ｙmax −Ｙ」の計算結果を代入する。次に、ステップＳ３２０に進み、変数Ｙmin の値をΔＹ／２だけ減らし、変数Ｙmax の値をΔＹ／２だけ増やす。このように、各変数Ｘmin ，Ｘmax ，Ｙmin ，Ｙmax で決まる長方形領域を上下方向にΔＹ／２ずつ広げることにより、撮影可能範囲と相似形の撮影領域を生成する。
なお、図１５（ｂ）に示したように、一方向にのみΔＸあるいはΔＹだけ領域を広げて撮影領域を生成するようにしても良い。
【００４５】
以上のようにして撮影可能範囲と相似形の撮影領域を生成したら、どちらの場合もステップＳ３２１に進む。ステップＳ３２１では、あらかじめ記録してあったカメラで撮影可能な最大の大きさと「Ｘmax −Ｘmin 」の値あるいは「Ｙmax −Ｙmin 」の値とを比較し、上記生成した撮影領域をカメラで撮影可能かどうかを判定する。撮影可能でなければ撮影領域の計算に失敗したと見なし、処理を終了する。
【００４６】
一方、撮影可能であった場合は、ステップＳ３２２に進み、上記生成した撮影領域が撮影可能範囲からはみ出ているかどうかを判定する。もし、はみ出していればステップＳ３２３に進み、撮影領域が撮影可能範囲内に含まれるように撮影領域の位置を補正する。
【００４７】
例えば、撮影領域が撮影可能範囲の下にはみ出ているかどうかの判定は、変数Ｙmax の値とＮ／２の値とを比較することで行える。また、撮影領域の補正は、変数Ｙmax とＮ／２の値との差分を求め、変数Ｙmin および変数Ｙmax からその差分値をそれぞれ引けばよい。撮影領域が撮影可能範囲の上、右、左にはみ出ているかどうかの判定および補正も同様にして行える。
【００４８】
以上の処理により、撮影領域の左上の座標（Ｘmin,Ｙmin ）と右下の座標（Ｘmax,Ｙmax ）とを求めることができる。このとき、撮影領域の計算に成功したと見なし、処理を終了する。
【００４９】
次に、図６のフローチャートを用いて、撮影領域記憶部１０７に格納されている撮影領域を撮影するようにカメラの幾何的パラメータを制御する上記ステップＳ２０７の動作を説明する。この処理を実行する前に、ステップＳ２０６において撮影領域記憶部１０７には、撮影領域の左端に対応する横軸座標Ｘmin 、右端に対応する横軸座標Ｘmax 、上端に対応する縦軸座標Ｙmin 、下端に対応する縦軸座標Ｙmax が格納されている。
【００５０】
図６において、まずステップＳ４０１で、カメラのパン角度を計算する。本実施形態では、カメラのパン角度は±８０度、チルト角度は±６０度まで可動であるとする。このとき、撮影領域の横軸座標とカメラのパン角度との関係は、図１７のようになる。
【００５１】
図１７において、１７００はカメラの視点である。撮影領域左端に対応するパン角度は「Ｘmin ×１６０／Ｍ」（図１７の１７０１）、右端に対応するパン角度は「Ｘmax ×１６０／Ｍ」（図１７の１７０２）となる。したがって、カメラが指すべきパン角度は、撮影領域の左端と右端との中点、すなわち「｛（Ｘmin＋Ｘmax ）／２｝×（１６０／Ｍ）」（図１７の１７０３）となる。また、１７０４はパン角度１７０３を設定したときの画角となる。
【００５２】
次に、ステップＳ４０２で、同様にカメラのチルト角度を計算する。撮影領域の上端に対応するチルト角度は「Ｙmin ×１２０／Ｎ」、下端に対応するチルト角度は「Ｙmax ×１２０／Ｎ」と表すことができる。したがって、カメラが指すべきチルト角度は、「｛（Ｙmin ＋Ｙmax ）／２｝×（１２０／Ｎ）」となる。
最後に、カメラのズーム倍率を計算する。ズーム倍率は、カメラのパン角度の画角（図１７の１７０４）から求めることができる。
【００５３】
すなわち、まずステップＳ４０３で、パン角度の画角を計算する。この場合、画角は図１７から明らかなように、「（Ｘmax −Ｘmin ）×（１６０／Ｍ）」となる。次に、ステップＳ４０４に進み、パン角度の画角とズーム倍率との対応を記述した表（テーブル情報）をＲＯＭ１１０からＲＡＭ１１１に読み出す。この表の例を、図１８に示す。そして、ステップＳ４０５に進み、上記ステップＳ４０３で求めた画角に対応するズーム倍率を表から求める。
【００５４】
図７は、クライアント２００の要求領域入力部２０３において、要求領域の大きさや位置などの変更操作が入力されたときのクライアント２００の動作を示すフローチャートである。図７において、要求領域の変更操作が入力されると、ステップＳ５０１で要求領域記憶部２０５から該当する要求領域ＩＤを取り出し、ステップＳ５０２で、その要求領域の座標を変更するための要求領域変更コマンドを作成する。この要求領域変更コマンドには、上記ステップＳ５０１で取り出した要求領域ＩＤおよび変更後の要求領域の座標を含める。
【００５５】
次に、ステップＳ５０３に進み、コマンド通信Ｉ／Ｆ２０４によって、上記作成した要求領域変更コマンドをカメラサーバ１００に送信する。そして、ステップＳ５０４に進み、送信した要求領域変更コマンドに対応するＡｃｋコマンドをコマンド通信Ｉ／Ｆ２０４において受信したかどうかを調べる。受信していなければ、このステップＳ５０４の処理を繰り返す。一方、Ａｃｋコマンドを受信した場合は、ステップＳ５０５に進んでそのＡｃｋコマンドの解析を行う。
【００５６】
ステップＳ５０６では、解析したＡｃｋコマンドの内容から要求領域変更コマンドの実行の成否を調べる。要求領域変更コマンドの実行が成功していれば、ステップＳ５０７に進んで要求領域記憶部２０５に新しい要求領域座標を格納し、ステップＳ５０８に進んでＧＵＩの書き換えなどの処理を行った後、要求領域変更操作時の処理を終了する。一方、要求領域変更コマンドの実行が失敗していれば、ステップＳ５０９に進み、エラーの内容を表示する。
【００５７】
図８は、カメラサーバ１００がクライアント２００から上記要求領域変更コマンドを受信するときのカメラサーバ１００の動作を示すフローチャートである。
図８において、ステップＳ６０１で、カメラサーバ１００がコマンド通信Ｉ／Ｆ１０４によって要求領域変更コマンドを受信したと判定した場合、ステップＳ６０２に進んでその受信したコマンドの解析を行い、要求領域ＩＤならびに変更後の座標を調べる。
【００５８】
そして、ステップＳ６０３に進み、上記ステップＳ６０２で調べた要求領域ＩＤに該当する要求領域フィールドを要求領域記憶部１０５から検索し、座標データを更新する。次に、ステップＳ６０４に進み、撮影領域計算部１０６によって、更新された要求領域記憶部１０５内のすべての要求領域を含むような撮影領域を計算する。この処理は、図３のステップＳ２０４の処理、すなわち図４および図５に示した処理と同じなので、説明は省略する。
【００５９】
次に、ステップＳ６０５に進み、上記ステップＳ６０４の結果から撮影領域の計算に成功したかどうかを判定する。成功していればステップＳ６０６に進み、その計算結果である撮影領域のデータを撮影領域記憶部１０７に格納する。次に、ステップＳ６０７に進み、幾何的パラメータ制御部１０８によって、撮影領域記憶部１０７に格納されている撮影領域を撮影するようにカメラの幾何的パラメータを制御する。この処理は、図３のステップＳ２０７の処理、すなわち図６に示した処理と同じなので、説明は省略する。
【００６０】
さらに、ステップＳ６０８に進み、要求領域変更の要求を行ったクライアントに要求領域の変更に成功したことを伝えるためのＡｃｋコマンドを作成する。そして、ステップＳ６０９に進み、作成したＡｃｋコマンドを当該クライアントに送信する。
【００６１】
一方、上記ステップＳ６０５で、撮影領域の計算に失敗したと判定された場合は、ステップＳ６１０に進んで要求領域記憶部１０５から先ほどステップＳ６０３で更新した要求領域のフィールドを削除する。その際、上記ステップＳ６０３でフィールドを更新するときに更新前のフィールドを退避しておき、これを元のフィールドに戻すようにしても良い。次に、ステップＳ６１１に進み、要求領域の更新に失敗したことを当該クライアントに伝えるためのＡｃｋコマンドを作成する。そして、ステップＳ６０９に進み、作成したＡｃｋコマンドを当該クライアントに送信する。
【００６２】
図９は、クライアント２００がカメラサーバ１００との接続を切断する際のクライアント２００の動作を示すフローチャートである。図９において、まずステップＳ７０１で、要求領域記憶部２０５から要求領域ＩＤを読み出す。次に、ステップＳ７０２に進み、クライアント２００の要求領域をカメラサーバ１００から削除するための要求領域削除コマンドを作成する。この要求領域削除コマンドには、上記ステップＳ７０１で取り出した要求領域ＩＤを含める。
【００６３】
次に、ステップＳ７０３に進み、コマンド通信Ｉ／Ｆ２０４によって、上記作成した要求領域削除コマンドをカメラサーバ１００に送信する。そして、ステップＳ７０４に進み、送信した要求領域削除コマンドに対応するＡｃｋコマンドをコマンド通信Ｉ／Ｆ２０４において受信したかどうかを調べる。受信していなければ、このステップＳ７０４の処理を繰り返す。一方、Ａｃｋコマンドを受信した場合は、ステップＳ７０５で接続を切断し、ステップＳ７０６でクライアント２００の終了処理を行う。
【００６４】
図１０は、カメラサーバ１００がクライアント２００から上記要求領域削除コマンドを受信したときのカメラサーバ１００の動作を示すフローチャートである。図１０において、ステップＳ８０１で、カメラサーバ１００がコマンド通信Ｉ／Ｆ１０４によって要求領域削除コマンドを受信したと判定されると、ステップＳ８０２でその受信したコマンドの解析を行い、要求領域ＩＤを調べる。
【００６５】
そして、ステップＳ８０３に進み、上記ステップＳ８０２で調べた要求領域ＩＤに該当する要求領域フィールドを要求領域記憶部１０５より削除する。次に、ステップＳ８０４に進み、撮影領域計算部１０６によって、更新された要求領域記憶部１０５内のすべての要求領域を含むような撮影領域を計算する。この処理は、図３のステップＳ２０４の処理、すなわち図４および図５に示した処理と同じなので、説明は省略する。
【００６６】
次に、ステップＳ８０５に進み、上記ステップＳ８０４の計算結果である撮影領域のデータを撮影領域記憶部１０７に格納する。次に、ステップＳ８０６に進み、幾何的パラメータ制御部１０８によって、撮影領域記憶部１０７に格納されている撮影領域を撮影するようにカメラの幾何的パラメータを制御する。この処理は、図３のステップＳ２０７の処理、すなわち図６に示した処理と同じなので、説明は省略する。
【００６７】
さらに、ステップＳ８０７に進み、要求領域削除の要求を行ったクライアントに要求領域の削除に成功したことを伝えるためのＡｃｋコマンドを作成する。そして、ステップＳ８０８に進み、作成したＡｃｋコマンドを当該クライアントに送信する。
【００６８】
図１１は、カメラサーバ１００の要求映像作成部１０２において、各要求領域に対応する要求映像を作成する手順を示すフローチャートである。図１１において、まずステップＳ９０１において、要求領域記憶部１０５に要求領域のフィールドが存在するかどうかを調べる。存在すれば、ステップＳ９０２に進んで要求領域の最初のフィールドを参照する。
【００６９】
次に、ステップＳ９０３に進み、撮影映像中における要求映像の左端の座標を計算する。このときの座標は、撮影映像の左上の座標を（０，０）、右下の座標を（６４０，４８０）とする座標系を用いて表す。この計算方法については、図１２を用いて後述する。次のステップＳ９０４では、同様に要求映像の右端の座標を計算する。ステップＳ９０５では、要求映像の上端の座標を計算する。ステップＳ９０６では、要求映像の下端の座標を計算する。
【００７０】
次に、ステップＳ９０７に進み、先ほどのステップＳ９０３〜Ｓ９０６の計算結果に基づいて要求映像を撮影領域の映像から切り出して拡大する。そして、ステップＳ９０８に進んで、映像送信Ｉ／Ｆ１０３によって上記作成した要求映像を対応するクライアントに送信する。次に、ステップＳ９０９に進み、要求領域記憶部１０５にまだ参照していないフィールドがあるかどうかを調べる。残っていればステップＳ９１０で次のフィールドを参照し、ステップＳ９０３に戻って処理を繰り返す。
【００７１】
図１２は、上記図１１のステップＳ９０３において撮影映像中における要求映像の左端の座標を求める動作手順を示すフローチャートである。なお、要求映像の右端、上端、下端の座標も同様の手続きで求めることができる。また、図１９は、カメラのパン角度と、撮影映像中における要求映像左端の横軸座標との関係を示す図である。ここで１９００はカメラの視点、１９０１は撮影映像、１９０２は要求映像、１９０３は要求映像の左端である。
【００７２】
図１２において、まずステップＳ１００１で、カメラのパン角度（図１７における１７０３）を変数Ｐ０に代入する。次に、ステップＳ１００２で、変数Ｘmin に対応するパン角度（図１７における１７０１）を変数Ｐmin に代入する。そして、ステップＳ１００３に進み、変数Ｐに「Ｐ０−Ｐmin 」の計算結果を代入する。
【００７３】
次に、ステップＳ１００４に進み、撮影映像１９０１の中心と要求映像の左端１９０３との間の画素数、すなわち図１９におけるｄの値を求める。ｄの値は、「３２０× tanＰ／ tanθ」（３２０は撮影映像の横方向の画素数の１／２、θはパン角度の画角）で求めることができる。そして、ステップＳ１００５に進み、撮影映像中における要求映像の左端の座標Ｘを求める。この座標Ｘは、「ｄ＋３２０」の計算によって得られる。
【００７４】
以上詳しく説明したように、本実施形態によれば、従来のようにカメラの最大画角で映像を撮影し、その全体映像中から各ユーザが所望する領域の映像を切り出して配信するのと異なり、各ユーザから要求されている全ての要求領域を含む最小の領域（撮影領域）のみを撮影し、その撮影映像中から各要求領域の映像を切り出して各ユーザに配信するようにしている。
【００７５】
これにより、１台のカメラの幾何的パラメータを各ユーザが同時に制御できるようにしつつも、カメラの最大画角で映像を撮影する場合に比べて配信する要求映像の電子ズーム倍率を小さく抑えることができ、要求映像の画質劣化を最小限に留めることができる。
【００７６】
なお、以上の実施形態においては、カメラが撮影する映像は長方形であり、また撮影可能範囲も長方形であったが、これに限定されるものではない。例えば、全方位を撮影可能なカメラを用いることで撮影可能範囲の制限を無くすことも考えられる。その場合は、要求領域や撮影領域の座標を極座標などで表すことになる。
【００７７】
（第２の実施形態）
上述の実施形態においては、クライアント側から新しい要求領域の追加や変更に関する要求があった場合に、サーバ側においてその要求が満たせるかどうかを判定して、満たせる場合にはその新たな要求領域を考慮して撮影領域を更新し、満たせない場合には要求が失敗するという場合について説明した。
【００７８】
これに対し、第２の実施形態では、要求領域の追加や変更がある度に、全要求のうち最大数を満たす撮影領域を計算する方法について説明する。このようにすることによって、常に最大（数）の要求を満たすシステムが実現される。
なお、クライアント２００，３００，４００…における要求領域の指定方法、カメラサーバ１００における要求領域の追加・削除・変更の方法、カメラ制御方法については上述の第１の実施形態で説明した通りであるので、省略する。
【００７９】
図２０は、カメラサーバ１００において、要求領域の追加・削除・変更があったときに撮影領域を計算する処理の流れを示したフローチャートである。
まず、ステップＳ２００１において、現在の要求領域の数を取得する。図２０では、要求領域の数がｎ個になっている場合について説明する。
【００８０】
本実施形態において、要求領域に関するデータは、図２１に示すようなリストの形式で管理するものとする。すなわち、本実施形態の要求領域リスト２１０１は、その先頭部分に現在の要求領域数を有しており、それに引き続いて当該要求数の分だけ要求領域データ２１０２のフィールドを有している。各々のフィールドは、図１６に示した例と比べて待機フラグが更に追加されている。
【００８１】
要求領域の追加があった場合は、対応する要求領域データ２１０２を要求領域リスト２１０１に追加し、要求領域の削除があった場合は、対応する要求領域データ２１０２を要求領域リスト２１０１から削除する。これら要求領域の追加または削除があった場合には、それに応じて要求領域リスト２１０１の先頭の要求数を更新する。また、要求領域の変更があった場合は、指定された要求領域ＩＤに対応する部分の情報を更新する。
【００８２】
また、本実施形態では、上記要求領域リスト２１０１の他に、撮影領域外要求領域リスト２１０３を備えており、以下に述べるように計算した撮影領域の中に入らない要求領域の個数と、それら要求領域に関するデータとが格納されている。この撮影領域外要求領域リスト２１０３については後述する。
【００８３】
上記要求領域リスト２１０１から現在の要求領域の数を取得したら、次にステップＳ２００２において、その取得した要求領域の数ｎを変数ｍに代入する。次に、ステップＳ２００３において、ｍ個の要求領域を包含する最小領域（撮影領域の候補）を計算する。ここで、ｍ＜ｎの場合には、
ｎ×（ｎ−１）×（ｎ−２）×…×（ｎ−ｍ＋１）
通りの組み合わせ全てについて撮影領域の候補を計算し、それぞれの計算結果をＲＡＭ１１１に格納する。ｍ個の要求領域を包含する最小領域の計算方法については、図１５で説明した通りであるので省略する。
【００８４】
そして、このように計算した複数の撮影領域の候補のうち、カメラを制御して撮影が可能なものを検索し、それ以外の候補はＲＡＭ１１１から削除する。この結果、ＲＡＭ１１１には、撮影可能な撮影領域の候補のみが残ることになる。次に、ステップＳ２００４において、要求を満たす撮影領域が存在するか否か、すなわち、撮影領域の候補がＲＡＭ１１１内に残っているかどうかの検査を行う。
【００８５】
もし、要求を満たす撮影領域の候補が存在する場合には、ステップＳ２００５において、それら撮影領域の候補の中から面積が最小のものを選び出す。これは、同じ数ｍの要求領域を含む組み合わせの中で、各要求映像の解像度が最も高くなるものを選択するためである。一方、ステップＳ２００４で撮影領域の候補がなかった場合は、ステップＳ２０１４において変数ｍの値をデクリメントし、ステップＳ２０１５において変数ｍの値が０になったかどうかの検査を行った後、ステップＳ２００３からの処理を繰り返す。
【００８６】
このように、ステップＳ２００３、Ｓ２００４、Ｓ２０１４、Ｓ２１０５のループを撮影可能な撮影領域の候補が出現するまで繰り返すことになる。もし、ステップＳ２０１５で変数ｍの値が０であった場合には、ステップＳ２０１６において、撮影領域のクリア処理を行う。この場合は、いずれの要求領域の組み合わせにおいても撮影可能な撮影領域が作り出せない場合のことであり、撮影領域を表わす情報（座標値）を０にする。このような状態が起こる場合としては、要求領域が１つで、その領域がカメラを最もズームアウトした領域よりも大きい場合などが考えられる。
【００８７】
図２２は、撮影領域の候補を選択する際の例を示す概念図である。２２０１はカメラがパン、チルトすることによって撮影可能な限界を示す範囲を示しており、２２０２，２２０３，２２０４，２２０５はそれぞれ要求領域を示している。
このような状態で撮影領域を求める場合、４つの要求領域２２０２〜２２０５を全て含む撮影領域は存在しない（カメラの最大画角を越えてしまっている）ものとする。また、３つの要求領域を含む撮影領域は、点線で示す領域２２０６，２２０７のように求まるものとする。
【００８８】
一方の撮影領域候補２２０６は、３つの要求領域２２０２，２２０３，２２０４を含み、他方の撮影領域候補２２０７は、３つの要求領域２２０３，２２０４，２２０５を含む。要求領域を３つ組み合わせる場合、他の組み合わせは、カメラの最大画角を越えてしまうために削除される。そして、残った２つの撮影領域候補２２０６，２２０７の面積を比較すると、一方の撮影領域候補２２０６の方が小さい。したがって、図２２の例では、領域２２０６が撮影領域として選択されることとなる。
【００８９】
ここまでの処理で、撮影領域が計算されると、次のステップＳ２００６において、撮影領域内にない要求領域を検索し、その結果をＲＡＭ１１１に格納する。
撮影領域内にない要求領域に関するデータは、図２１のようなリストの形式にて管理されており、撮影領域外要求領域リスト２１０３に追加される。なお、撮影領域外要求領域リスト２１０３は、ステップＳ２００６の処理の最初に初期化されており、要求領域データ２１０２を撮影領域外要求領域リスト２１０３に追加する度に、撮影領域外要求領域リスト２１０３の先頭の数をインクリメントし、登録した個数を記憶する。
【００９０】
次に、ステップＳ２００７において、撮影領域外要求領域リスト２１０３に登録された要求領域の個数を取得する。これは撮影領域外要求領域リスト２１０３の先頭に書かれているので、その値を参照する。本実施形態においては、この値はｐであるものとして説明する。次に、ステップＳ２００８において、上記ステップＳ２００７で取得した値ｐを変数ｋに代入する。
【００９１】
次に、ステップＳ２００９において、変数ｋの値が０かどうかを判定し、変数ｋの値が０のときは、未処理の撮影領域外要求領域がない状態であるので、処理を終了する。一方、変数ｋの値が０でなかった場合は、ステップＳ２０１０において、撮影領域外要求領域リスト２１０３のｋ番目に登録されている要求領域データ２１０２を取得する。つまり、撮影領域外要求領域リスト２１０３の最後に登録されている要求領域データ２１０２を参照する。このとき、撮影領域外要求領域リスト２１０３から最後（ｋ番目）の要求領域データ２１０２を外す。
【００９２】
次に、ステップＳ２０１１において、参照している要求領域データ２１０２の待機フラグがＯＮになっているかどうかを検査する。この待機フラグは、要求領域の追加や変更がクライアント２００，３００，４００…側から要求されたにも関わらず、撮影領域外と判定されたために、要求が保留されている状態を表わすフラグであり、要求領域データ２１０２の生成時にはＯＦＦで初期化されている。
【００９３】
ここで、待機フラグがＯＦＦであった場合には、ステップＳ２０１２において待機フラグをＯＮにセットする。次に、ステップＳ２０１３において、要求が満たされずに待機状態になったことをクライアント２００，３００，４００…の中の対応するものに対して通知するコマンドを作成し、そのコマンドを当該クライアントに送信する。そして、ステップＳ２０１７において、変数ｋの値をデクリメントし、ステップＳ２００９からの処理を繰り返す。
【００９４】
一方、上記ステップＳ２０１１で待機フラグがＯＮであった場合には、参照中の要求領域は既に待機中であるので、上記ステップＳ２０１２，Ｓ２０１３の処理は行わずにステップＳ２０１７の処理に進み、その後ステップＳ２００９からの処理を繰り返す。
なお、図示はしていないが、上記ステップＳ２００６において撮影領域外の要求領域を検索する処理の中で、撮影領域内と判定された要求領域データ２１０２の待機フラグはＯＦＦにセットする。
【００９５】
以上説明したように、第２の実施形態における全要求領域の中から最大数を満たす最小の撮影領域を計算する方式によれば、各クライアントからの要求内容が変更される度に、その時々の状況に応じて最大数の要求を満たし、かつ、その中で最高の画質を提供できる場合を選択することができるので、できる限り多くの要求を効率よく満たすことができる。
【００９６】
（第３の実施形態）
次に、各要求領域の位置的な偏りを判断して、要求の集中している領域を撮影する場合を説明する。
なお、クライアント２００，３００，４００…における要求領域の指定方法、カメラサーバ１００における要求領域の追加・削除・変更の方法、カメラ制御方法については、上述の第１の実施形態で説明した通りであるので、省略する。
【００９７】
図２３は、サーバ１００において、要求領域の追加・削除・変更があったときに撮影領域を計算する処理の流れを示したフローチャートである。
図２３において、まずステップＳ２３０１において、各要求領域の中心座標（方向）を求める。各要求領域に関するデータは、図２５に示すようなリスト形式で管理されており（要求領域候補リスト２５０３以外は図２１と同様）、要求領域データ２５０２として記憶されている。要求領域の中心座標は、この要求領域データ２５０２中に書かれている左端の横軸座標、右端の横軸座標、上端の縦軸座標、下端の縦軸座標から求まる。
【００９８】
次に、ステップＳ２３０２において、上記ステップＳ２３０１で求めた各要求領域の中心座標の平均値と標準偏差値とを計算する。次に、ステップＳ２３０３において、現在の要求領域の数を取得する。図２３では、要求領域の数がｎ個になっている場合について説明する。なお、要求領域の数は、図２５に示すような要求領域リスト２５０１の先頭部分で管理しており、要求領域の追加があった場合には要求領域データ２５０２を要求領域リスト２５０１に追加し、削除があった場合には要求領域データ２５０２を要求領域リスト２５０１から削除し、変更があった場合は指定された要求領域ＩＤに対応する部分の情報を更新する。
【００９９】
そして、ステップＳ２３０４において、上記取得した要求領域の数ｎを変数ｍに代入する。次に、ステップＳ２３０５において、ｍ番目の要求領域の中心座標について偏差値を計算する。この値は、上記ステップＳ２３０２で計算した標準偏差値を基にして計算される。そして、ステップＳ２３０６において、その計算した偏差値が基準偏差範囲内に入っているかどうかを判定する。この様子を図示したのが、図２４である。
【０１００】
図２４において、２４０１，２４０２，２４０３，２４０４はそれぞれ要求領域を示しており、２４０５は各要求領域２４０１〜２４０４の中心座標の平均値を示している。また、２４０６は中心座標の平均値２４０５からの基準偏差範囲を示しており、指定された偏差量を半径とする円で描いている。２４０７はカメラがパン、チルトすることによって撮影可能な限界を示す範囲を示している。
【０１０１】
与えられる基準偏差量は、システム起動時に、ＲＯＭ１１０もしくは外部記憶装置（図示せず）からＲＡＭ１１１に読み込まれるか、ユーザの入力によって指定される。また、偏差量は、カメラの性能（パン、チルトの可動角度、ズーム倍率の可動範囲）によって異なるので、使用するカメラに応じて基準偏差量を設定する。なお、図２４の例では、要求領域２４０１，２４０２，２４０３の中心座標の偏差値が基準偏差範囲２４０６内に入っており、要求領域２４０４のそれは基準偏差範囲２４０６から外れている様子を表している。
【０１０２】
上記ステップＳ２３０６でｍ番目の要求領域の中心座標の偏差値が基準偏差範囲内に入っていると判断した場合には、ステップＳ２３０７において、そのｍ番目の要求領域を候補として登録する。候補の要求領域は、図２５に示した要求領域候補リスト２５０３に要求領域データ２５０２へのポインタを登録することによって追加される。そして、ステップＳ２３０８において、ｍ番目の要求領域データ２５０２の待機フラグをＯＦＦにする。
【０１０３】
一方、上記ステップＳ２３０６でｍ番目の要求領域が基準偏差範囲内に入っていないと判断した場合には、ステップＳ２３１２において、そのｍ番目の要求領域データ２５０２の待機フラグがＯＦＦになっているかどうかを判定する。ここで、待機フラグがＯＦＦであった場合には、ステップＳ２３１３において、ｍ番目の要求領域データ２５０２の待機フラグをＯＮにセットする。
【０１０４】
そして、ステップＳ２３１４において、要求が満たされずに待機状態になったことをクライアント２００，３００，４００…の中の対応するものに対して通知するコマンドを作成して、そのコマンドを当該クライアントに送信する。また、上記ステップＳ２３１２で待機フラグがＯＮであった場合には、ステップＳ２３１３，Ｓ２３１４の処理は行わない。
【０１０５】
上記ステップＳ２３０８、ステップＳ２３１２もしくはステップＳ２３１４の処理が終了すると、次にステップＳ２３０９において、変数ｍの値をデクリメントする。次に、ステップＳ２３１０において、変数ｍの値が０であるかどうかを判定する。ここで、変数ｍの値が０でない場合は、まだ未処理の要求領域が残っているので、ステップＳ２３０５からの処理を繰り返す。
【０１０６】
一方、変数ｍの値が０であった場合には、全ての要求領域に対して上記の処理を行ったので、ステップＳ２３１１において、撮影領域の計算を行う。この計算は、要求領域候補リスト２５０３に登録されている要求領域データ２５０２を基にして計算する。すなわち、候補になった要求領域の全てを包含する最小の領域を撮影領域として計算する。
【０１０７】
以上説明したように、第３の実施形態においては、クライアントから要求領域の追加、削除、変更がなされる度に、各要求領域の中心座標の偏差値が基準偏差範囲内に入っているか否かに応じて撮影領域を決定するので、最も要求の集中している部分を撮影領域として選択できる。
また、上述した第２の実施形態のように、複数の要求を満たし、撮影範囲外の要求に対しては待機フラグおよび待機通知コマンドによって管理すると、同時に複数の要求を満たすことが可能な操作権管理を実現することができる。
【０１０８】
以下に、第２および第３の実施形態で説明したような、同時に複数の要求を満たすことが可能な操作権管理がなされる場合について、その画面例を説明する。
図２６は、クライアント２００，３００，４００…上に表示される画面例を示す図である。２６０１はカメラサーバ１００の撮影可能範囲を示しており、２６０２はカメラが現在実際に撮影している撮影領域を示している。なお、カメラが現在撮影している領域に関する情報は、カメラサーバ１００から取得される。
【０１０９】
また、２６０３は自クライアントの要求領域を示している。また、２６０４はクライアントユーザが要求した領域の要求映像であり、２６０５はカメラを制御して要求領域２６０３の位置や大きさを変更するための操作パネル（スクロールバー）である。
【０１１０】
各クライアント２００，３００，４００…において、要求領域２６０３をカメラの撮影領域２６０２内に指定した場合には、待機状態になることはないので、要求領域２６０３を自由に操作できる。つまり、要求領域２６０３の指定において、指定した場合に確実に映像が得られる範囲である撮影領域２６０２を示すことにより、撮影領域２６０２の部分において操作権を得ているような状態が実現されている。
【０１１１】
また、撮影領域２６０２の範囲外に要求領域２６０３を指定した場合には、上記第２の実施形態もしくは第３の実施形態で説明したような処理により、撮影領域範囲外と判定され、要求映像が得られなくなるかも知れない。ただし、カメラサーバ１００からは待機通知コマンドが送信されるので、それを見たクライアントユーザは、そのまま待機するか、要求を変更するか、要求を取り消すかのいずれかを選択することになる。
【０１１２】
本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出して実行することによっても達成できる。この場合、記録媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成する。
【０１１３】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１１４】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も本発明に含まれる。
【０１１５】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示にもとづき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も本発明に含まれる。
【０１１６】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、本発明のカメラ制御システムに不可欠なモジュールを、記録媒体に格納することになる。
【０１１７】
上述した実施形態では、各ユーザから要求されている全ての要求領域を含む最小の領域のみを撮影し、その撮影映像中から各要求領域の映像を切り出して各ユーザに配信するようにしたので、同時に複数のユーザがカメラの幾何的パラメータを擬似的に制御し、所望する視点や画角の映像を得ることが可能となる。しかも、このとき用いるカメラは１台だけなので、システム構成に必要なコストを低く抑えることができる。さらに、カメラの最大画角で映像を撮影する場合に比べて配信する要求映像の電子ズーム倍率を小さく抑えることができるので、従来の方法では避けられなかった要求映像の画質の劣化を最小限に留めることも可能となる。
【０１１８】
また、上述した実施形態の他の特徴によれば、複数のユーザから要求されている各要求領域のうち、撮影可能範囲内で最大個数の要求を満たす最小の領域のみを撮影し、その撮影映像中から各要求領域の映像を切り出して各ユーザに配信するようにしたので、各ユーザからの要求内容が変更される度に、その時々の状況に応じて最大数の要求を満たし、かつ、その中で最高の画質を提供できる画角を選択して撮影することができ、できる限り多くの要求を効率よく満たすことができる。
【０１１９】
また、上述した実施形態のその他の特徴によれば、複数のユーザから要求されている各要求領域のうち、各要求領域の統計情報に応じて決められる範囲内に或る統計値が存在する要求領域を含む最小の領域のみを撮影し、その撮影映像中から各要求領域の映像を切り出して各ユーザ端末に配信するようにしたので、各ユーザから要求領域の追加、削除、変更がなされる度に、最も要求の集中している部分を撮影領域として選択することができ、効率の良い撮影領域の管理を行うことができる。
【図面の簡単な説明】
【０１２０】
【図１】本発明の一実施形態に係るカメラ制御システムの詳細な構成を示すブロック図である。
【図２】本実施形態における制御を示す図であり、クライアントの起動時の動作を示すフローチャートである。
【図３】本実施形態における制御を示す図であり、カメラサーバの要求領域追加コマンド受信時の動作を示すフローチャートである。
【図４】本実施形態における制御を示す図であり、撮影領域を計算する動作を示すフローチャートである。
【図５】本実施形態における制御を示す図であり、撮影領域を計算する動作を示すフローチャートである。
【図６】本実施形態における制御を示す図であり、カメラの幾何的パラメータ制御の動作を示すフローチャートである。
【図７】本実施形態における制御を示す図であり、クライアントの要求領域変更操作入力時の動作を示すフローチャートである。
【図８】本実施形態における制御を示す図であり、カメラサーバの要求領域変更コマンド受信時の動作を示すフローチャートである。
【図９】本実施形態における制御を示す図であり、クライアントの終了時の動作を示すフローチャートである。
【図１０】本実施形態における制御を示す図であり、カメラサーバの要求領域削除コマンド受信時の動作を示すフローチャートである。
【図１１】本実施形態における制御を示す図であり、カメラサーバの要求映像作成の動作を示すフローチャートである。
【図１２】本実施形態における制御を示す図であり、撮影映像中における要求映像の左端の座標を求める動作を示すフローチャートである。
【図１３】本実施形態によるカメラ制御システムの概略構成を示すブロック図である。
【図１４】第１の実施形態のクライアントのＧＵＩ画面の例を示す図である。
【図１５】第１の実施形態における要求領域および撮影領域に関する説明図である。
【図１６】第１の実施形態における要求領域記憶部のデータ構造の例を示す図である。
【図１７】撮影領域の横軸座標とカメラのパン角度との関係を説明する図である。
【図１８】パン画角とズーム倍率との対応表の例を示す図である。
【図１９】カメラのパン角度と撮影映像中における要求映像の左端の横軸座標との関係を示す図である。
【図２０】第２の実施形態における制御を示す図であり、要求領域の追加・削除・変更があったときに撮影領域を計算する処理の流れを示すフローチャートである。
【図２１】第２の実施形態における要求領域記憶部のデータ構造の例を示す図である。
【図２２】第２の実施形態において撮影領域の候補を選択する例を示す図である。
【図２３】第３の実施形態における制御を示す図であり、要求領域の追加・削除・変更があったときに撮影領域を計算する処理の流れを示すフローチャートである。
【図２４】第３の実施形態において撮影領域の候補を選択する例を示す図である。
【図２５】第３の実施形態における要求領域記憶部のデータ構造の例を示す図である。
【図２６】第２および第３の実施形態におけるクライアントのＧＵＩ画面の例を示す図である。
【符号の説明】
【０１２１】
１００  カメラサーバ
１０１  映像入力部
１０２  要求映像作成部
１０３  映像送信Ｉ／Ｆ
１０４  コマンド通信Ｉ／Ｆ
１０５  要求領域記憶部
１０６  撮影領域計算部
１０７  撮影領域記憶部
１０８  幾何的パラメータ制御部
２００  クライアント
２０１  映像受信Ｉ／Ｆ
２０２  映像表示部
２０３  要求領域入力部
２０４  コマンド通信Ｉ／Ｆ
２０５  要求領域記憶部
【図１】
0004307437.tif 000002
【図２】
0004307437.tif 000003
【図３】
0004307437.tif 000004
【図４】
0004307437.tif 000005
【図５】
0004307437.tif 000006
【図６】
0004307437.tif 000007
【図７】
0004307437.tif 000008
【図８】
0004307437.tif 000009
【図９】
0004307437.tif 000010
【図１０】
0004307437.tif 000011
【図１１】
0004307437.tif 000012
【図１２】
0004307437.tif 000013
【図１３】
0004307437.tif 000014
【図１４】
0004307437.tif 000015
【図１５】
0004307437.tif 000016
【図１６】
0004307437.tif 000017
【図１７】
0004307437.tif 000018
【図１８】
0004307437.tif 000019
【図１９】
0004307437.tif 000020
【図２０】
0004307437.tif 000021
【図２１】
0004307437.tif 000022
【図２２】
0004307437.tif 000023
【図２３】
0004307437.tif 000024
【図２４】
0004307437.tif 000025
【図２５】
0004307437.tif 000026
【図２６】
0004307437.tif 000027