(57)【要約】【課題】取得された映像の一部を切り出す第１のモードと、切り出された複数の映像に基づいて補間された映像を生成する第２のモードとをビューワ装置からの制御情報に応じて好適に切り替える。【解決手段】映像配信システムは、映像取得手段、映像加工手段、配信手段およびモード切り替え手段を含む。映像加工手段は、取得された映像の一部を切り出す第１のモードを有する。また、映像加工手段は、取得された映像の一部を切り出すとともに、切り出された複数の映像に基づいて補間された映像を生成する第２のモードを有する。モード切り替え手段は、ビューワ装置から送信された制御情報に基づいて第１のモードと第２のモードとを切り替える。【選択図】図６
2007166583.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される映像配信装置であって、
映像を取得するための映像取得手段と、
取得された前記映像の一部を切り出す第１のモードと、取得された前記映像の一部を切り出すとともに、切り出された複数の映像に基づいて映像を補間する第２のモードとを有する映像加工手段と、
加工された映像を、ネットワークを介して前記映像配信装置に接続されるビューワ装置に配信する配信手段と、
前記ビューワ装置から送信される制御情報に基づいて前記第１のモードと前記第２のモードとを切り替えるモード切り替え手段と
を含むことを特徴とする映像配信装置。
【請求項２】
前記第１のモードは、電子的にパン、チルトまたはズームされた映像を生成する映像モードであり、前記第２のモードは、電子的にパン、チルトまたはズームされた映像を生成するとともに、パン、チルトまたはズームが適用される前後の映像から途中の映像を生成する映像モードであることを特徴とする請求項１に記載の映像配信装置。
【請求項３】
前記モード切り替え手段は、
前記ビューワ装置から送信されるモード指定情報に応じて前記第１のモードと前記第２のモードとを切り替えることを特徴とする請求項１または２に記載の映像配信装置。
【請求項４】
前記モード切り替え手段は、
前記ビューワ装置から送信される制御情報と、適用されるべきモードとの対応関係を登録したマッピングテーブルを記憶する記憶手段と、
前記ビューワ装置から送信される制御情報に基づいて、前記マッピングテーブルから前記第１のモードまたは前記第２のモードを特定する特定手段と
を含むことを特徴とする請求項１または２に記載の映像配信装置。
【請求項５】
ネットワークを介して接続される映像配信装置から配信される映像を表示するビューワ装置であって、
映像の一部を切り出す第１のモードと、映像の一部を切り出すとともに、切り出された複数の映像に基づいて映像を補間する第２のモードとのいずれかを指定するモード指定情報を前記映像配信装置に送信する送信手段と、
前記モード指定情報が適用されて生成された映像を前記映像配信装置から受信する受信手段と、
受信した前記映像を表示する表示手段と
を含むことを特徴とするビューワ装置。
【請求項６】
前記表示手段に表示されるビューワインタフェース上に配置される複数の操作コントロールに応じて、前記モード指定情報を決定する決定手段をさらに含むことを特徴とする請求項５に記載のビューワ装置。
【請求項７】
前記決定手段は、
複数の前記操作コントロールと、送信されるべき前記モード指定情報との対応関係を登録したマッピングテーブルを記憶する記憶手段を含むことを特徴とする請求項６に記載のビューワ装置。
【請求項８】
前記決定手段は、前記操作コントロールに適用される操作スタイルの違いに応じて、前記モード指定情報を決定することを特徴とする請求項６に記載のビューワ装置。
【請求項９】
ネットワークを介して接続される映像配信装置とビューワ装置とを含む映像配信システムであって、
前記映像配信システムは、
映像を取得するための映像取得手段と、
取得された前記映像の一部を切り出す第１のモードと、取得された前記映像の一部を切り出すとともに、切り出された複数の映像に基づいて映像を補間する第２のモードとを有する映像加工手段と、
加工された映像を、ネットワークを介して前記映像配信装置に接続されるビューワ装置に配信する配信手段と、
前記ビューワ装置から送信される制御情報に基づいて前記第１のモードと前記第２のモードとを切り替えるモード切り替え手段と
を含み、
前記ビューワ装置は、
前記第１のモードと、前記第２のモードとのいずれかを指定するモード指定情報を、前記制御情報として前記映像配信装置に送信する送信手段と、
前記モード指定情報が適用されて生成された映像を前記映像配信装置から受信する受信手段と、
受信した前記映像を表示する表示手段と
を含むことを特徴とする映像配信システム。
【請求項１０】
ネットワークに接続される映像配信装置の制御方法であって、
映像を取得するための映像取得工程と、
取得された前記映像の一部を切り出す第１のモードと、取得された前記映像の一部を切り出すとともに、切り出された複数の映像に基づいて映像を補間する第２のモードとを有する映像加工工程と、
加工された映像を、ネットワークを介して前記映像配信装置に接続されるビューワ装置に配信する配信工程と
を含み、さらに、
前記ビューワ装置から送信された制御情報に基づいて前記第１のモードと前記第２のモードとを切り替えるモード切り替え工程を含むことを特徴とする映像配信装置の制御方法。
【請求項１１】
ネットワークを介して接続される映像配信装置から配信される映像を表示するビューワ装置の制御方法であって、
映像の一部を切り出す第１のモードと、映像の一部を切り出すとともに、切り出された複数の映像に基づいて映像を補間する第２のモードとのいずれかを指定するモード指定情報を前記映像配信装置に送信する送信工程と、
前記モード指定情報が適用されて生成された映像を前記映像配信装置から受信する受信工程と、
受信した前記映像を表示する表示工程と
を含むことを特徴とするビューワ装置の制御方法。
【請求項１２】
ネットワークに接続される映像配信装置において実行されるコンピュータプログラムであって、
映像を取得するための映像取得工程と、
取得された前記映像の一部を切り出す第１のモードと、取得された前記映像の一部を切り出すとともに、切り出された複数の映像に基づいて映像を補間する第２のモードとを有する映像加工工程と、
加工された映像を、ネットワークを介して前記映像配信装置に接続されるビューワ装置に配信する配信工程と
を実行するとともに、さらに、
前記ビューワ装置から送信された制御情報に基づいて前記第１のモードと前記第２のモードとを切り替えるモード切り替え工程
を実行することを特徴とするコンピュータプログラム。
【請求項１３】
ネットワークを介して接続される映像配信装置から配信される映像を表示するビューワ装置において実行されるコンピュータプログラムであって、
映像の一部を切り出す第１のモードと、映像の一部を切り出すとともに、切り出された複数の映像に基づいて映像を補間する第２のモードとのいずれかを指定するモード指定情報を前記映像配信装置に送信する送信工程と、
前記モード指定情報が適用されて生成された映像を前記映像配信装置から受信する受信工程と、
受信した前記映像を表示する表示工程と
を実行することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して映像を配信する映像配信技術に関する。
【背景技術】
【０００２】
近年、ライブ映像を、インターネットなどのネットワークを介して配信する映像配信システムが登場しつつある。このようなシステムでは、ビューワ装置から、カメラ制御サーバに対して、パン、チルト、ズーム、逆光補正といったカメラ制御を実行できることが望ましい。
【０００３】
ところで、パン、チルト、ズーム（これらはその頭文字からＰＴＺと呼ばれることもある。）には、伝統的な機械式による方法（メカニカルＰＴＺ）と、画像処理による電子的な方法（電子ＰＴＺ）とが存在する。メカニカルＰＴＺでは、レンズなどの光学系や雲台機構をモータにより駆動することで、パン、チルト、ズームが達成される。一方、電子ＰＴＺでは、撮影された広角画像から、部分画像の切り出し、さらに部分画像を画像処理することで所望のパン、チルト、ズームされた画像が得られる（特許文献１、２）。
【特許文献１】特開平０９−２８９６０７号公報
【特許文献２】特開平０９−２６１５２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
電子ＰＴＺは、メカニカルＰＴＺで必須となる雲台機構が不要となる利点がある。反対に、一般的な電子ＰＴＺは、メカニカルＰＴＺが提供できるようなパン、チルト、ズーム中の映像（途中映像）を提供できない欠点がある。これを解決すべく、メカニカルＰＴＺエミュレーションと呼ばれる関連技術がある。この関連技術では、パン、チルト、ズームが適用される際の前後の映像から補間により途中映像を生成して、配信することができる。
【０００５】
しかしながら、従来は、電子ＰＴＺによる配信モードと、メカニカルＰＴＺエミュレーションによる配信モードとを好適に切り替えるシステムが提供されていなかった。
【０００６】
そこで、本発明は、このような課題および他の課題のうち、少なくとも１つを解決することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【０００７】
本発明は、例えば、ネットワークを介して接続される映像配信装置とビューワ装置とを含む映像配信システムにおいて好適に適用される。映像配信システムは、映像取得手段、映像加工手段、配信手段およびモード切り替え手段を含む。映像加工手段は、取得された映像の一部を切り出す第１のモードを有する。また、映像加工手段は、取得された映像の一部を切り出すとともに、切り出された複数の映像に基づいて映像を補間する第２のモードを有する。モード切り替え手段は、ビューワ装置から送信される制御情報に基づいて第１のモードと第２のモードとを切り替える。
【０００８】
一方、ビューワ装置は、送信手段、受信手段および表示手段を含む。送信手段は、第１のモードと、第２のモードとのいずれかを指定するモード指定情報を映像配信装置に送信する。受信手段は、モード指定情報に対応するモードが適用されて生成された映像を映像配信装置から受信する。表示手段は、受信された映像を表示する。
【発明の効果】
【０００９】
本発明によれば、取得された映像の一部を切り出す第１のモードと、切り出された複数の映像に基づいて補間された映像を生成する第２のモードとをビューワ装置からの制御情報に応じて好適に切り替えることができる。
【発明を実施するための最良の形態】
【００１０】
以下に本発明の一実施形態を示す。もちろん以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１１】
［第１の実施形態］
第１の実施形態では、ネットワーク上に配置された、電子ＰＴＺ機能を備える映像配信装置（例：カメラ制御サーバやネットワークカメラ）からビューワ装置（例：ビューワプログラムを実行するＰＣ）へと映像を配信するものとする。とりわけ、本実施形態では、操作者の操作に応じてビューワ装置から送信される制御情報（例：リクエストやコマンド）に応じて、映像モード（例：電子ＰＴＺモードとメカニカルＰＴＺエミュレーションモード）を切り替える方法について説明する。
【００１２】
ここでは、ビューワインタフェースの一部である操作コントロール（例：スクロールバーやセレクトボックス）の操作に応じて、モードを切り替える例について説明する。なお、操作コントロール（操作コンポーネントと呼ばれることもある。）と、モードを指定するための情報との対応関係は、例えば、ビューワ装置に備えられるマッピングテーブルにより保持される。
【００１３】
図１は、実施形態に係る例示的な映像配信システムを示す図である。カメラサーバ１０１は、映像配信装置の一例である。ビューワ１０２は、ビューワ装置の一例である。カメラサーバ１０１とビューワ１０２は、それぞれネットワークに接続されている。ビューワ１０２から送信されたリクエストをカメラサーバ１０１が受信すると、カメラサーバ１０１がビューワ１０２へ映像データを配信する。ビューワ１０２は、受信した映像データを表示する。
【００１４】
また、ビューワ１０２は、ズーム、パン、チルトなどのカメラ制御コマンドをカメラサーバ１０１に送信しうる。カメラサーバ１０１は、受信したカメラ制御コマンドに応じて電子ＰＴＺやメカニカルＰＴＺエミュレーションを実行する。なお、ネットワークは、イントラネットであってもよいし、インターネットであってもよい。
【００１５】
図２は、実施形態に係る他の例示的な映像配信システムを示す図である。このシステムは、広く普及したＷｅｂ技術を応用している。ＷＷＷサーバ１０３は、カメラサーバ１０１へのリンクを含むＷｅｂページデータをビューワ１０２に提供しうる。ビューワ１０２は、所望のリンクを指定することで、所望のカメラ制御サーバへと接続できる。なお、ＷＷＷサーバ１０３は、カメラサーバ１０１に統合されてもよい。
【００１６】
図３は、実施形態に係るカメラ制御サーバのハードウェア構成例を示す図である。この例のカメラサーバ１０１は、コンピュータ（ＰＣ）３００とカメラ装置３１０とを備えている。
【００１７】
とりわけ、ＰＣ３００には、ＣＰＵ３０１、メモリ３０２、ネットワークＩ／Ｆ３０３、映像キャプチャボード３０４、シリアルＩ／Ｆ３０５、ＦＤ装置３０６、およびＨＤ装置３０７を備えている。ＣＰＵ３０１は、コンピュータプログラムに応じて各種の処理を実行する。メモリ３０２は、ＲＯＭやＲＡＭなどの記憶装置である。ネットワークＩ／Ｆ３０３は、ネットワークと接続するための通信ユニットである。映像キャプチャボード３０４は、カメラ装置３１０から映像データを取り込むための映像処理ユニットである。
【００１８】
シリアルＩ／Ｆ３０５は、カメラ装置３１０にリクエストやコマンドなどの制御情報を送信するための通信ユニットである。ＦＤ装置３０６は、フレキシブルディスクに記憶されたコンピュータプログラムをＨＤ装置３０７にインストールためのドライブである。ＨＤ装置３０７は、ハードディスクドライブである。カメラ装置３１０は、広角レンズなどの広角光学系と、撮像素子とを含む映像取得ユニットである。広角光学系は、広角レンズや魚眼レンズの他に、回転双曲面ミラーなどを用いた全周囲光学系であってもよい。
【００１９】
図４は、実施形態に係るビューワ装置のハードウェア構成例を示す図である。ビューワ１０２は、一般的なＰＣを採用することができる。
【００２０】
ＰＣ４００には、ＣＰＵ４０１、メモリ４０２、ネットワークＩ／Ｆ４０３、周辺コントローラ４０４、表示ボード４０５、ＦＤ装置４０６、およびＨＤ装置４０７を備えている。ＣＰＵ４０１は、コンピュータプログラムに応じて各種の処理を実行する。メモリ４０２は、ＲＯＭやＲＡＭなどの記憶装置である。ネットワークＩ／Ｆ４０３は、ネットワークと接続するための通信ユニットである。
【００２１】
周辺コントローラ４０４には、操作者の操作を入力するマウス４０８やキーボード４０９などの入力ユニットが接続されている。表示ボード４０５には、操作者に映像やユーザインタフェース（ＵＩ）を出力するためのディスプレイ装置４１０が接続されている。
【００２２】
図５は、実施形態に係るコンピュータプログラムの主要モジュールを例示した図である。カメラサーバ１０１には、カメラ装置３１０の制御をつかさどるカメラ制御サーバ５０１と、映像への画像処理と配信処理をつかさどる映像サーバ５０２とが含まれている。ビューワ１０２には、カメラサーバ１０１への制御情報を送信したり、カメラサーバ１０１からの状態通知を処理したりするカメラ制御部５０３と、カメラ映像の表示を担当する映像表示部５０４とが含まれる。
【００２３】
カメラ制御サーバ５０１は、接続しているビューワ１０２ごとに視野情報をメモリ３０２に保持している。カメラ制御サーバ５０１は、ビューワ１０２からのカメラ制御情報に従って視野情報を変更する。映像サーバ５０２は、ビューワ１０２ごとに保持している視野情報に従って、座標変換処理、映像切出し処理、および、画像補正処理などを実行する。
【００２４】
ここで、視野情報とは、カメラ装置３１０が広角光学系を用いて撮影可能な全視野において、切り出される映像の位置とサイズに関する情報である（図１０）。映像サーバ５０２は、この視野情報に加えて、画質レベル（例：ビットレート、圧縮率）、解像度、配信方式（例：コーデック、配信プロトコル）などの情報を、接続しているビューワごとにメモリ３０２に保持している。映像サーバ５０２は、これらの情報に従って、映像を加工し、加工された映像をビューワ１０２へ送信する。
【００２５】
図６は、実施形態に係るカメラ制御サーバの制御処理を示す例示的なフローチャートである。ステップＳ６０１において、カメラサーバ１０１のＣＰＵ３０１は、ネットワークＩ／Ｆ３０３を通じてビューワ１０２から受信した制御情報に基づいてモードを切り替えるか否かを判定する。ＣＰＵ３０１は、例えば、制御情報がモードの切り替えを明示的に示唆する情報（モード指定情報）を含むか否かを判定してもよい。あるいは、第２の実施形態において詳述するように、所定の制御情報とモードとの対応関係を登録したマッピングテーブルに基づいて、ＣＰＵ３０１が判定を行なってもよい。マッピングテーブルは、例えば、メモリ３０２やＨＤ装置３０７などに記憶されている。モードを切り替える場合は、さらに、ＣＰＵ３０１が、どのモードに切り替えるかを決定し、ステップＳ６０２に進む。一方、モードを切り替えない場合はステップＳ６０３に進む。
【００２６】
ステップＳ６０２において、ＣＰＵ３０１は、映像キャプチャボード３０４に映像取得命令を送出する。映像キャプチャボード３０４は、カメラ装置３１０から映像信号を取得し、映像データを生成する。
【００２７】
ステップＳ６０４において、ＣＰＵ３０１は、決定されたモードに従って、取得した映像を映像キャプチャボード３０４により加工する。例えば、電子ＰＴＺモードの場合、映像キャプチャボード３０４は、取得した映像の一部を切り出す。なお、メカニカルＰＴＺエミュレーションモードの場合、さらに、映像キャプチャボード３０４は、切り出された複数の映像に基づいて補間された映像（途中映像）を生成する。なお、ここでいう補間には、例えば、全視野画像において、パン前の画像の位置とパン後の画像の位置との間に位置する１以上の画像を切り出す処理も含まれるものとする。この場合は、位置を特定するだけで所望の画像が得られることになる。よって、複雑な画像処理が不要となるので望ましいであろう。
【００２８】
ステップＳ６０５において、ＣＰＵ３０１は、ネットワークＩ／Ｆ３０３を介してビューワ１０２へと加工された映像を配信する。ステップＳ６０６において、ＣＰＵ３０１は、映像の配信を終了するか否かを判定する。終了しない場合は、ステップＳ６０１に戻る。
【００２９】
図７は、実施形態に係るビューワの制御処理を示す例示的なフローチャートである。ステップＳ７０１において、ＣＰＵ４０１は、周辺コントローラ４０４において、ビューワＵＩ上のモード指定に関与するいずれかの操作コントロールに対する操作がなされたか否かを検出する。操作コントロールは、例えば、パン、チルト、またはズームを実行するためのスクロールバーなどである。モード指定に関与する操作コントロールが操作された場合は、ステップＳ７０２に進む。モード指定に関与する操作コントロールが操作されたのでなければ、ステップＳ７０３に進む。
【００３０】
ステップＳ７０２において、ＣＰＵ４０１は、ネットワークＩ／Ｆ４０３を通じて、電子ＰＴＺモードとメカニカルＰＴＺエミュレーションモードとのいずれかを指定するモード指定情報を含む制御情報をカメラサーバ１０１へと送信する。モード指定情報は、操作された操作コントロールに応じてＣＰＵ４０１が決定する。この際に、ＣＰＵ４０１は、メモリ４０２またはＨＤ装置４０７に記憶されているマッピングテーブルを利用してもよい。なお、第２の実施形態で説明するように、カメラサーバ１０１がマッピングテーブルを有している場合は、モード指定情報を制御情報に含める必要はない。
【００３１】
ステップＳ７０３において、ＣＰＵ４０１は、ネットワークＩ／Ｆ４０３を通じて、カメラサーバ１０１から映像データを受信する。この映像は、ビューワ１０２から送信された制御情報に応じて加工された途中映像が含まれうる。
【００３２】
ステップＳ７０４において、ＣＰＵ４０１は、受信した映像を表示ボード４０５に渡すことで、ディスプレイ装置４１０に表示する。ステップＳ７０５において、ＣＰＵ４０１は、映像の表示を終了するか否かを判定する。終了しない場合は、ステップＳ７０１に戻る。
【００３３】
図８は、実施形態に係るビューワのコンピュータプログラムの例示的な動作を示すフローチャートである。なお、以下では、各ステップをコンピュータプログラムまたはプログラムモジュールの動作として説明するが、ハードウェア上の実行主体がＣＰＵ４０１であることは言うまでもない。上述のカメラ制御部５０３および映像表示部５０４は、Ｗｅｂブラウザプログラム（以下、Ｗｅｂブラウザ）によって実現されるものとする。なお、Ｊａｖａ（登録商標）、各種の映像プログラインソフトウエア、またはアプリケーションソフトウエアがＷｅｂブラウザと連携して動作してもよい。
【００３４】
ステップＳ８０１において、Ｗｅｂブラウザは、キーボード４０９等から指示されたＵＲＬに対応するＷＷＷサーバ１０３へと接続する。ＷＷＷサーバ１０３は、カメラサーバ１０１の実行されているＰＣ上で実行されていてもよいし、あるいは他のＰＣ上で実行されていてもよい。続いて、Ｗｅｂブラウザは、例えば、ＨＴＭＬなどの記述言語で記述されたＷｅｂページデータをＷＷＷサーバ１０３へリクエストする。
【００３５】
ステップＳ８０２において、Ｗｅｂブラウザは、ＷＷＷサーバ１０３からＷｅｂページデータを受信して表示を開始する。受信したＷｅｂページデータの中には、例えば、ビューワ用の連携プログラム（ビューワプログラム）を起動するための情報とともに、カメラサーバ１０１へと接続するために必要となる情報も含まれていてもよい。この情報には、例えば、以下のようなｅｍｂｅｄタグまたは同等の機能を有するハイパーリンクが含まれうる。
【００３６】
＜ｅｍｂｅｄ  ｓｒｃ＝”ｃａｍｅｒａ１．ｗｖｐ”  ｗｉｄｔｈ＝４８０  ｈｅｉｇｈｔ＝３２０＞。
【００３７】
ステップＳ８０３において、Ｗｅｂブラウザは、ＷＷＷサーバ１０３へアクセスし、ｅｍｂｅｄタグにより指定されたデータファイル（例：ｃａｍｅｒａ１．ｗｖｐ）をダウンロードする。
【００３８】
ステップＳ８０４において、Ｗｅｂブラウザは、データファイルの識別子に対応するプログラム（例：ビューワプログラム）を起動する。すなわち、このビューワプログラムは、映像表示部５０４として機能することになる。
【００３９】
ステップＳ８０５おいて、ビューワプログラムは、映像サーバ５０２に接続する。なお、カメラサーバ１０１を構成する映像サーバ５０２のアドレスおよび接続ポートの情報は、ダウンロードされたデータファイルに記載されているものとする。次に、ビューワプログラムは、接続以降の処理を行なうためのプログラムモジュール（例：スレッドやプロセス）を起動する。このプログラムモジュールは、Ｓ８１１において終了されるまで、映像サーバ５０２からの映像データを受信して表示する。
【００４０】
一方、メインとなるビューワプログラム（カメラ制御部５０３）は、ステップＳ８０６において、カメラ制御サーバ５０１へ接続する。ダウンロードしたデータファイルには、カメラ制御サーバ５０１のアドレスおよび接続ポートの情報が含まれているものとする。
【００４１】
ステップＳ８０７において、ビューワプログラムは、マウス４０８、キーボード４０９からの操作要求を受け付ける。この操作要求がカメラ制御に関するものであれば、ステップＳ８０８において、ビューワプログラムは、カメラ制御サーバ５０１へリクエストやコマンドを送出する。一方、操作要求が映像サーバ５０２に関するものであれば、ステップＳ８０９において、ビューワプログラムは、映像サーバ５０２へリクエストやコマンドを送出する。さらに、操作要求がビューワの状態（例：表示サイズ）を変更するものであれば、ステップＳ８１０において、ビューワプログラムは、内部状態を更新する。なお、操作要求が終了を意味するものであれば、ビューワプログラムは、ビューワ１０２の動作に関連する各プログラムを順次終了する。Ｓ８０８〜Ｓ８１０の処理が完了すると、ビューワプログラムは、Ｓ８０７へ戻り、ユーザの操作要求を待つ。
【００４２】
図９は、実施形態に係るカメラ制御サーバの動作例を示すフローチャートである。ステップＳ９０１において、カメラ制御サーバ５０１は、特定のファイル（例：レジストリなどのシステムデータベース）から設定情報を読み出す。カメラ制御サーバ５０１は、設定情報に基づいて動作を開始する。カメラ制御サーバ５０１は、例えば、クライアントであるビューワプログラムからのリクエストを受け付けるためのポートを開く。
【００４３】
ステップＳ９０２において、カメラ制御サーバ５０１は、リクエスト受付状態に入る。ステップＳ９０３において、カメラ制御サーバ５０１は、制御情報（例：リクエストやコマンド）を受け付ける。制御情報が接続リクエストであればステップＳ９０３に進み、カメラ制御サーバ５０１は、接続の可否を判定する。カメラ制御サーバ５０１は、例えば、ＩＤとパスワードにより認証処理によって、接続の可否を判定してもよい。
【００４４】
接続を拒否する場合、カメラ制御サーバ５０１は、接続拒否のエラーコードを返し、Ｓ９０２へと戻る。一方、接続を許可する場合、ステップＳ９０５に進み、カメラ制御サーバ５０１は、接続処理を実行する。例えば、カメラ制御サーバ５０１は、クライアントからのコマンドを受け付けるためのスレッドを生成する。さらに、カメラ制御サーバ５０１は、クライアントの登録を行って、Ｓ９０２に戻る。
【００４５】
生成されたスレッドは、ステップＳ９０８において、対応するクライアントからのコマンドの受け付を行なう。すなわち、スレッドは、受け付けたコマンドを、カメラ操作を行なうためのメインプログラムへ渡す。メインプログラムは、ステップＳ９０２で、スレッドからコマンドを受け取る。このコマンドが、パン、チルトなどの操作コマンドであれば、ステップＳ９０６へ進み、メインプログラムは、カメラ操作を行って、その結果（例：操作が成功か失敗かを示すコード）を、クライアント（ビューワプログラム）に対応するスレッドへ伝達する。ステップＳ９０９において、クライアントに対応するスレッド（以下、クライアント対応スレッドと称す。）は、伝達され結果をクライアントへ送信する。
【００４６】
一方、メインプログラムは、ステップＳ９０７において、カメラの操作により変化した状態（例：パン、チルト、ズームの各値）を、クライアント対応スレッドに伝達する。クライアント対応スレッドは、ステップＳ９１０において、カメラ制御状態の変化をクライアントへ送信する。その後、ステップＳ９０８に戻り、クライアント対応スレッドは、クライアントから接続終了のコマンドを受信したならば、それをメインプログラムへと渡す。さらにステップＳ９１１において、スレッドは、自身を終了させる。
【００４７】
カメラ操作（Ｓ９０６）において、メインプログラムは、接続しているビューワごとに保持している視野情報をビューワからの制御情報（コマンド）に従って変更する。つまり、メインプログラムは、全視野座標における、切り出される画像の位置とサイズを変更する。具体的に、メインプログラムは、パン操作コマンドであれば、視野情報に含まれるｘ座標を変更する。チルト操作コマンドであれば、メインプログラムは、視野情報に含まれるｙ座標を変更する。また、ズーム操作コマンドであれば、メインプログラムは、視野情報に含まれるサイズ（幅と高さ）の情報を変更する。
【００４８】
図１０は、実施形態に係る視野情報を説明するための図である。１０００は、広角光学系の全視野画像（広角視野画像）を表している。１００１は、視野情報により指定された映像をあらわしている。この映像１００１は、パン操作コマンドが受信されると、映像１００２へと変更される。また、映像１００１に対して、チルト操作コマンドが受信されると、映像１００３へと変更される。また、映像１００１に対して、ズーム操作コマンドが受信されると、映像１００４へと変更される。
【００４９】
本実施形態によれば、カメラサーバ１０１は、少なくとも電子ＰＴＺモードとメカニカルＰＴＺエミュレーションモードとを備えている。そして、カメラサーバ１０１は、制御情報に付与されるモード指定情報に従い、上記のカメラ制御コマンドを実行する。すなわち、電子ＰＴＺモードが指定されている場合、カメラサーバ１０１は、映像を即座に変更する。すなわち、途中映像は生成されず、配信もされない。
【００５０】
一方で、メカニカルＰＴＺエミュレーションモードが指定されている場合、カメラサーバ１０１は、予め設定された速度に従った時間経過を伴って映像を変更する。例えば、パン角１５度のパン操作がビューワ１０２から要求されとする。さらに、毎秒６０度のパン速度が設定されているとすると、カメラサーバ１０１は、０．２５秒の時間経過を伴って、視野情報のｘ座標を変更する。図１０の例では、映像の左上端の座標がｘ１からｘ２へと変更される。
【００５１】
このとき、映像配信のフレームレートが３０ｆｐｓであるならば、カメラの制御が要求された後の８フレームの映像は、それぞれｘ座標方向の視野が段階的に変更されていくことになる。すなわち、これらの８フレームの映像、補間により生成された途中映像となる。例えば、これらの８フレームの映像は、全視野画像１０００から切り出された部分映像であってもよい。本発明においては、このような切り出し処理も補間処理の一種であるものとする。
【００５２】
なお、カメラサーバ１０１は、ビューワ１０２からコマンドが発行される前に、カメラ操作権の割り当てを実行してもよい。これによって、カメラ操作権を有しないビューワ１０２はカメラの操作を要求できなくなる。その結果、複数のビューワ１０２がカメラの操作を要求するような状況で発生しうる混乱を抑制できる。
【００５３】
この場合、ビューワ１０２のカメラ制御部５０３は、カメラ操作権を獲得するための要求コマンドをカメラサーバ１０１のカメラ制御サーバ５０１へと送出する。カメラ制御サーバ５０１は、現在のカメラ操作権の割り当て状態に基づいて、拒絶、割り当て、または順番待ちを選択し、選択結果をカメラ制御部５０３へ送信する。
【００５４】
なお、カメラ制御サーバ５０１は、所定時間の経過後、またはビューワ１０２が接続を終了した時刻のいずれか早い時刻に、カメラ操作権を剥奪してもよい。この場合、カメラ制御サーバ５０１は、次の順番のビューワ１０２にカメラ操作権を割り当てる。順番待ち人数（ビューワ数）は、所定数（例：５人または５台）に制限されてもよい。この場合、カメラ制御サーバ５０１は、所定数を超えるビューワ１０２からのリクエストを拒絶する。
【００５５】
図１１は、実施形態に係る映像サーバの動作例を示すフローチャートである。なお、以下では、ソフトウエアの処理を中心に説明するが、ＣＰＵ３０１が処理の主体となることは上述した通りである。
【００５６】
ステップＳ１１０１において、カメラサーバ１０１の映像サーバ５０２は、特定のファイル（例：レジストリなどのシステムデータベース）から、映像サーバ５０２の設定情報を読み出して、それに基づき動作を開始する。また、映像サーバ５０２は、各種のスレッドを生成する。なお、生成されたスレッドは、当初、休止状態となっているものとする。各種のスレッドとしては、例えば、映像取得のためのスレッドや、符号化を行なうためのスレッドなどがある。なお、これらのスレッドは、クライアントであるビューワ１０２ごとに生成される。
【００５７】
ステップＳ１１０２において、映像サーバ５０２は、ビューワプログラムである映像表示部５０４からのリクエストやコマンドを受け付けるためのポートを開く。リクエストが受信された場合、ステップＳ１１０３において、映像サーバ５０２は、ビューワ１０２からのリクエストを受け付ける。一方、コマンドが受信された場合は、ステップＳ１１０６に進む。
【００５８】
ステップＳ１１０４において、映像サーバ５０２は、リクエストを処理する。例えば、接続リクエストであれば、映像サーバ５０２は、接続の可否を判定する。接続を許可しない場合、映像サーバ５０２は、接続拒否を表すエラーコードを返信する。
【００５９】
一方、接続を許可する場合、ステップＳ１１０５に進み、映像サーバ５０２は、接続処理を実行する。例えば、映像サーバ５０２は、ビューワ１０２の映像表示部５０４から送信されるコマンドの受付処理を行なうためのスレッドを生成する。映像サーバ５０２は、リクエストを送信してきたクライアントの識別情報を、映像の配信先を管理するためのリストに登録する。また、映像サーバ５０２は、休止している映像取得スレッドや符号化スレッドの動作を開始させる。その後、Ｓ１１０２に戻る。
【００６０】
ところで、スレッドは、ステップＳ１１０９において、対応するクライアントから送信されるコマンドを受け付ける。スレッドは、映像処理を行なうメインプログラムへ受信したコマンドを渡す。
【００６１】
当該コマンドが操作コマンドであれば、ステップＳ１１０６に進む。ステップＳ１１０６において、メインプログラムは、映像取得、符号化、送信などに関する設定の変更処理を実行する。メインプログラムは、実行結果（処理の成功や失敗を示すコード）をスレッドへ伝達する。このクライアント対応のスレッドは、ステップＳ１１１０において、コマンドの実行結果を、クライアントであるビューワ１０２へと送信する。
【００６２】
一方、ステップＳ１１０７において、映像取得スレッドおよび符号化スレッドは、映像キャプチャボード３０４を制御し、所定の時間間隔で映像データを取得する。また、映像取得スレッドおよび符号化スレッドは、カメラ装置３１０に備えられる広角光学系の光学特性に合わせて、映像を変換したり補正したりする。そして、映像取得スレッドおよび符号化スレッドは、加工された映像を最新の全視野画像データとしてメモリ３０２に保持する。
【００６３】
ステップＳ１１０８において、映像取得スレッドおよび符号化スレッドは、全視野画像データをすべてのクライアントごとのスレッド（クライアント対応スレッド）に渡す。
【００６４】
ステップＳ１１１１において、各クライアント対応スレッドは、ビューア１０２から映像フレームの送信要求を受信したか否かを判定する。映像フレームの送信要求は、一般に、ビューワ１０２により映像データの受け取りが完了されると送り返される。この送信要求を受信した場合、当該スレッドは、全視野画像１０００から、ビューワ１０２ごとの視野情報に従って配送用画像を切り出し、ビューワ１０２へと配信する。この際に、当該スレッドは、ビューワ１０２により指定されたコーデック、画質（圧縮率）、配信プロトコルなどを適用することはいうまでもない。
【００６５】
また、ステップＳ１１０９においてビューワ１０２から接続終了のコマンドを受信した場合、クライアント対応スレッドは、接続終了をメインプログラムに伝達する。さらに、ステップＳ１１１２に進み、当該スレッドは、自身を終了させる。
【００６６】
図１２は、実施形態に係るビューワのユーザインタフェースの一例を示す図である。１２０１は、Ｗｅｂブラウザプログラムの表示ウインドウである。１２０２は、表示ウインドウ１２０１内で動作するビューワプログラムのユーザインタフェース（ＵＩ）である。このユーザインタフェースには、各種の操作コントロールが配置されている。
【００６７】
１２０３は、ステップＳ７０４やＳ８１１においてカメラ制御サーバ５０１から受信した映像を表示する映像表示エリアである。１２０４は、パン（カメラの横振り）操作用のスクロールバーである。１２０５は、チルト（カメラの縦振り）操作用のスクロールバーである。１２０６は、ズーム操作用のスクロールバーである。
【００６８】
１２０７は、カメラ操作権を要求するためのボタンである。１２０８は、カメラ操作権の状態を表示する表示エリアである。１２０９は、逆光補正用のボタンである。１２１０は、プリセット選択用のセレクトボックスである。１２１１は、パノラマ画像から直接視野位置を指定するための指定ボタンである。なお、カメラ制御サーバを選択するためのメニューや、画像サイズを変更するためのメニューなどの操作コントロールもユーザインタフェースに設けられていてもよい。
【００６９】
これらのスクロールバーや操作ボタンが操作されると、操作に応じた制御情報がカメラサーバ１０１へと送信される（Ｓ７０１、Ｓ７０２）。また、送信されル制御情報は、ステップＳ８０７においてカメラサーバ１０１により受信される。
【００７０】
さらに、ユーザインタフェース上に設けられた操作コントロールには、それぞれ、電子ＰＴＺモードとメカニカルＰＴＺエミュレーションモードとが割り当てられている。なお、操作コントロールとモードとの対応関係は、例えば、マッピングテーブルによって保持されている。マッピングテーブルは、例えば、メモリ４０２などに記憶されている。
【００７１】
図１３は、実施形態に係るマッピングテーブルの一例を示す図である。この例では、プリセット選択用のセレクトボックス１２１０、映像表示エリア１２０３などには、電子ＰＴＺモードが割り当てられている。一方、パン用のスクロールバー１２０４やチルト用のスクロールバー１２０５などにはメカニカルＰＴＺエミュレーションモードが割り当てられている。ＣＰＵ４０１は、操作された操作コントロールに対応するモードをこのテーブルから特定することができる。ＣＰＵ４０１は、特定されたモードを表すモード指定情報を制御情報に付与した上でカメラ制御サーバ５０１あるいは映像サーバ５０２へ送信する。
【００７２】
本発明によれば、カメラサーバ１０１は、取得された映像の一部を切り出す第１のモードと、切り出された複数の映像に基づいて補間された映像を生成する第２のモードを有している。例えば、第１のモードは、電子的にパン、チルトまたはズームされた映像を生成する映像モード（例：電子ＰＴＺモード）である。また、第２のモードは、パン、チルトまたはズームが適用される前後の映像に応じて途中映像を生成する映像モード（例：メカニカルＰＴＺエミュレーションモード）である。さらに、カメラサーバ１０１は、ビューワ１０２から送信された制御情報に基づいて第１のモードと第２のモードとを切り替える。よって、ビューワ１０２の操作者は、好適に切り替えられたモードが適用された映像を閲覧することができるようになる。
【００７３】
例えば、カメラサーバ１０１は、ビューワ１０２から送信される明示的なモード指定情報に応じて第１のモードと第２のモードとを切り替えてもよい。この場合、カメラサーバ１０１は、モード指定情報に応じてモードを切り替えれば済むため、カメラサーバ１０１の制御を簡易にすることができる。
【００７４】
例えば、ビューワ１０２は、ディスプレイ装置４１０に表示されるビューワのユーザインタフェース上に配置される複数の操作コントロールに応じて、モード指定情報を決定してもよい。パン、チルトまたはズームなどの操作コントロールが操作された場合は、パン、チルトまたはズーム中の映像（途中映像）を追加することが望ましい。よって、この場合は、第２のモードを指定するモード指定情報が選択されることになる。一方で、プリセット選択用のセレクトボックスなどの操作が実行されるときは、一般に、途中映像は不要であろう。よって、この場合は、第１のモードを指定するモード指定情報が選択されることになる。
【００７５】
例えば、ビューワ１０２は、コマンド（例：操作コントロールによるコマンドなど）と、適用されるべきモードとの対応関係を登録したマッピングテーブルをメモリ４０２などに記憶していてもよい。この場合、ビューワ１０２は、送信すべきコマンドに基づいて、マッピングテーブルからモードを容易に特定することができる利点がある。
【００７６】
［第２の実施形態］
第１の実施形態は、ビューワ１０２が、テーブルなどを用いてモードを指定していた。この場合、ビューワ１０２のソフトウエアを改変する必要が生じてしまう。しかしながら、カメラサーバ１０１のソフトウエアを改変した方が、簡単なケースもあろう。そこで、第２の実施形態では、カメラサーバ１０１において、モードを決定する例について説明する。なお、第１の実施形態と共通する部分については、説明の繰り返しや重複を回避するために、説明を省略する。
【００７７】
図１４は、実施形態に係るビューワの例示的な制御方法を示すフローチャートである。図７と比較すると、ステップＳ７０２に代えてステップＳ１４０２が採用されている。ステップＳ１４０２において、ＣＰＵ４０１は、操作に応じた通常の制御情報（例：リクエストやコマンド）をカメラサーバ１０１に送信する。通常の制御情報は、上述のモード指定情報を含まない制御情報のことである。すなわち、第２の実施形態では、ビューワ１０２が明示的なモードの切り替えを指示することはない。そのため、ビューワ１０２は、映像モードと操作コントロールとの対応関係を保持するためのマッピングテーブルを保持する必要はない。但し、通常の制御情報は、暗示的なモード指定情報として機能しうる。
【００７８】
図１５は、実施形態に係るカメラ制御サーバの例示的な制御方法を示すフローチャートである。図６と比較すると、ステップＳ６０１およびＳ６０２がそれぞれＳ１５０１とＳ１５０２に置換されている。ステップＳ１５０１において、ＣＰＵ３０１は、ビューワ１０２から送信される通常の制御情報を受信する。ステップＳ１５０２において、ＣＰＵ３０１は、受信した制御情報に対応する映像モードを特定する。
【００７９】
例えば、メモリ３０２は、ビューワ１０２から送信される制御情報と、適用されるべき映像モードとの対応関係を登録したマッピングテーブルを記憶していてもよい。この場合、ＣＰＵ３０１は、受信した制御情報に対応する映像モードをマッピングテーブルから取得できることになる。
【００８０】
ソフトウエアについて説明すると、上述のカメラ制御サーバ５０１は、カメラ制御要求などの制御情報を受信した時点で、映像モードを自ら決定する（Ｓ９０６）。
【００８１】
図１６は、実施形態に係る例示的なマッピングテーブルを示す図である。この例のマッピングテーブルでは、制御情報の内容と、映像モードとが１対１で対応付けられている。よって、カメラ制御サーバ５０１は、具体的な制御内容を特定し、次に、特定された制御内容に対応する映像モードをマッピングテーブルにより特定することができる。
【００８２】
本実施形態によれば、カメラサーバ１０１は、ビューワ１０２から受信した制御情報の内容に応じて、好適に映像モードを切り替えることができる。第１の実施形態と比較すると、ビューワ１０２には、映像モードの明示的な切り替え指示を送信するための機構を必要としない利点がある。さらに、第２の実施形態は、第１の実施形態と共通する構成に関しては、同一の効果を奏することはいうまでもない。
【００８３】
図１７は、実施形態に係る他の例示的なユーザインタフェースを示す図である。図１７に示すように、図１２のＵＩに比較し、相対的に粗い粒度の操作コントロールごとに、それぞれ映像モードとをマッピングしてもよい。例えば、プリセット選択用のセレクトボックス１２１０とプリセット巡回用のボタン１７０２とには、電子ＰＴＺモードを対応付けてもよい。また、オートパン用のボタン１７０３と全視野スキャン用のボタン１７０４とには、メカニカルＰＴＺエミュレーションモードを対応付けてもよい。
【００８４】
これらの場合のマッピング手法は、第１の実施形態によるものであってもよいし、第２の実施形態によるものであってもよい。なお、オートパンとは、一定量だけ自動的にパンを実行することをいう。また、プリセット巡回とは、予め定められたカメラ制御サーバを順番に巡回する処理や、全視野画像内の予め定められたエリアを順番に表示する処理をいう。また、全視野スキャンは、全視野画像内の全てのエリアを順番に表示する処理をいう。
【００８５】
［第３の実施形態］
第１の実施形態および第２の実施形態では、ビューワ１０２あるいはカメラサーバ１０１が、操作コントロールや操作コマンドに応じた適切なモードにより、カメラを制御する例を説明した。
【００８６】
第３の実施形態では、第１の実施形態と同様、ビューワのユーザインターフェースに対する操作に応じた適切なモードが指定されて、指定されたモードに従ってカメラを制御する一例を説明する。特に、個々のカメラ制御コマンドあるいは映像制御コマンドの発行、処理およびビューワのユーザインタフェースの関係について説明する。なお、第１の実施形態または第２の実施形態と共通する部分については、説明の繰り返しや重複を回避するために説明を省略する。
【００８７】
図１８は、ビューワ１０２が、映像サーバ５０２およびカメラ制御サーバ５０１に接続し、ユーザからの操作を受け取り、カメラ制御サーバ５０１および映像サーバ５０２へパン操作コマンドを発行する処理のフローチャートである。基本的な動作は、図８のステップＳ８０７、ステップＳ８０８およびステップＳ８０９について説明された通りである。ここでは、ビューワプログラムのユーザインタフェース（図１２）上に配置されているパンスクロールバー１２０４をユーザが操作した際のビューワ１０２の動作を説明する。
【００８８】
なお、この図では、パンスクロールバー１２０４を用いた例を説明しているが、チルトスクロールバー１２０５を用いて、チルト角度パラメータを指定する場合もまったく同様に説明できる。ズームスクロールバー１２０６の場合も同様である。
【００８９】
ステップＳ１８０１で、ビューワ１０２は、ユーザ操作を受け取る。具体的には、ユーザが、マウス４０８やキーボード４０９などを用いて、ビューワ１０２のユーザインタフェース上のパンスクロールバー１２０４を選択（クリック）またはドラッグしたことを、ＣＰＵ４０１が検出し、対応する指示を発行する。
【００９０】
ステップＳ１８０２で、ＣＰＵ４０１は、パンスクロールバー１２０４の変位を検出する。スクロールバーの変位の検出方法は、例えば、スクロールバーを提供するウィンドウシステムに備わる公知の技術により実現可能である。簡単に説明すると以下の通りである。
【００９１】
（１）まず、スクロールバーのタブがドラッグされた場合、絶対位置が指定される。ＣＰＵ４０１は、スクロールバーの変位可能量に対する現在のタブの位置を検出し、検出された位置のデータを絶対位置へと換算する。絶対値は、例えば、スクロールバーの左端からプラス２０％離れた位置の如くである。
【００９２】
（２）スクロールバーの空白（タブのない部分）がクリックされた場合も、絶対位置が指定される。これは、クリックされた位置へとタブをドラッグしたことと同じ意味を持つ。
【００９３】
（３）スクロールバーの両端に配置された矢印がクリックされた場合は、相対位置が指定される。ビューワ１０２の事前設定またはカメラサーバ１０１との能力情報の交換によって、予め設定された一定値を変位量とする。例えば、右矢印が操作されたときは、右方向にプラス１０％だけ、角度などが変更されることを意味する。
【００９４】
（４）キーボード上の矢印キーなどが、水平または垂直のスクロールバーに割り当てられていることもある。この場合、キーボード上の矢印キーの押し下げは、スクロールバーの両端に配置された矢印をクリックしたことと同一の意味を有する。また、シフトキーなどの装飾キーとの組み合わせにより、角度などの変位量が加減される例もある。
【００９５】
ステップＳ１８０３で、ＣＰＵ４０１は、取得された変位量をパン角度パラメータに変換する。ＣＰＵ４０１は、カメラサーバ１０１からパン制御可能角度の情報を事前に取得する。さらに、ＣＰＵ４０１は、取得したパン可能角度をパンスクロールバー１２０４の変位可能量に変換しておく。そして、ＣＰＵ４０１は、ステップＳ１８０２で検出された変位量を変位可能量に基づいてパン角度パラメータなどのカメラ制御パラメータへ変換する。
【００９６】
なお、以下の説明では、パン制御可能角度が全体で１５０度（例えば、正面から左方向７５度、右方向７５度）である場合について説明する。パン制御可能角度は、カメラサーバ１０１と接続した際に実行される能力情報の交換において変更されたり、カメラ制御可能領域の変更イベントが発生した際にも変更されたりする。
【００９７】
（１）スクロールバーのタブがドラッグされた場合（絶対位置指定）、ＣＰＵ４０１は、検出した絶対位置をパン制御可能角度（１５０度）に基づいて絶対パン位置に変換する。スクロールバーの左端からプラス２０％はなれた位置が検出された場合、ＣＰＵ４０１は、パン位置左端から３０度を意味するパラメータに変換する。つまり、パン正面位置から左方向へマイナス４５度が指定される。
【００９８】
（２）スクロールバーの空白（タブのない部分）がクリックされた場合（絶対位置指定）も同様である。
【００９９】
（３）スクロールバーの両端に配置された矢印をクリックされた場合（相対位置指定）、１クリックは、プラス１０％の変位量を意味することから、ＣＰＵ４０１は、パン角度を１５度増加させるためのパラメータを生成する。
【０１００】
（４）キーボード上の矢印キーなどの場合も同様である。
【０１０１】
ステップＳ１８０４で、ＣＰＵ４０１は、パン操作コマンドとともに、パン角度パラメータをカメラサーバ１０１に送信する。この時、ＣＰＵ４０１は、図１３で説明したマッピングテーブルを参照する。ＣＰＵ４０１は、パンスクロールバーによる操作であることから、メカニカルＰＴＺエミュレーションモードを選択する。
【０１０２】
例えば、メカニカルＰＴＺエミュレーションモードで、パン角度１５度の増加を指定する場合のコマンドは、以下の通りである。
”ＯｐｅｒａｔｅＣａｍｅｒａ？ｐａｎ＝ｄ＋１５００＆ｍｏｄｅ＝ｓｍｏｏｔｈＰＴＺｅｍｕｒａｔｉｏｎ”。
【０１０３】
図１９は、ビューワ１０２がカメラサーバ１０１からの映像配信によって、ユーザインタフェースの表示内容を変更する処理を示すフローチャートである。これには、ビューワ１０２が映像サーバ５０２から受け取った映像データの表示ステップが含まれる。ビューワ１０２における表示内容の更新処理に関する基本的な動作は、図８のステップＳ８１０、ステップＳ８１１に関して説明した通りである。すなわち、『映像受信→映像デコード→映像表示』が繰り返えされる。
【０１０４】
ここでは、図１０と同じく、メカニカルＰＴＺエミュレーションモードで、パン角を１５度増加することを指示する場合に、ビューワ１０２の表示例について説明する。このような指示は、例えば、ビューワ１０２上でのパンスクロールバー１２０４の右矢印がクリックされることなどによって実現される。
【０１０５】
映像配信フレームレートが３０ｆｐｓ、パン速度が毎秒６０度、かつ、パン角が１５度増加することがビューワ１０２により指示されると、カメラサーバ１０１は、１フレームあたりパン角を２度づつ増加（右方向への視野移動）させながら映像を配信する。６０［度／秒］／３０［ｆｐｓ］＝２［度／フレーム］。
【０１０６】
結果として、カメラサーバ１０１によって、パン操作コマンドが受け取られた後は、８フレーム分の映像が配信される間、パン動作中（メカニカルＰＴＺエミュレーション中）の映像がビューワ１０２上の映像表示エリア１２０３に表示される。
【０１０７】
つまり、以下の通りである：
１フレーム目（パン操作前の視野から右方向へ２度移動）
２フレーム目（パン操作前の視野から右方向へ４度移動）
３フレーム目（パン操作前の視野から右方向へ６度移動）
４フレーム目（パン操作前の視野から右方向へ８度移動）
５フレーム目（パン操作前の視野から右方向へ１０度移動）
６フレーム目（パン操作前の視野から右方向へ１２度移動）
７フレーム目（パン操作前の視野から右方向へ１４度移動）
８フレーム目（パン操作前の視野から右方向へ１５度移動）。
【０１０８】
ステップＳ１９０１で、ビューワ１０２のＣＰＵ４０１は、カメラサーバ１０１から映像データを受信する。映像受信するためのプロトコロとしては、例えば、ＲＴＰ（Ｒｅａｌ−ｔｉｍｅ Ｔｒａｎｓｐｏｒｔ Ｐｒｏｔｏｃｏｌ）などが使用される。なお、ビューワ１０２からの映像更新リクエストへのレスポンスは、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ ＴｒａｎｓｆｅｒＰｒｏｔｏｃｏｌ）などの他のプロトコル従って受信されてもよい。
【０１０９】
ステップＳ１９０２で、ＣＰＵ４０１は、受信した映像データをデコードする。この時、ＣＰＵ４０１は、受信した映像データまたはレスポンスに含まれる付加情報を取り出し、必要に応じてビューワ１０２のユーザインタフェースに反映させる。
【０１１０】
例えば、ビューワ１０２から送信されたパン操作コマンドに対するカメラサーバ１０１からのレスポンスは次の通りである。当該コマンドがカメラサーバ１０１により受信されたこと（制御権限などによって拒否されなかったこと）を意味する同期的なレスポンス。カメラサーバ１０１上でパン角度や視野情報が変更されたことを意味する非同期的なレスポンス。ビューワ１０２は、このようなレスポンスを受信すると、ユーザインタフェースに反映させる。
【０１１１】
本実施形態におけるカメラサーバ１０１が送信する変更通知としては、映像データの属性情報として通知されるパン角度情報などがある。また、デコードされる映像データには、ＭＰＥＧ−２などの差分コーデックが適用されてもよいし、ＪＰＥＧ２０００のような非差分コーデックが適用されてもよい。
【０１１２】
ステップＳ１９０３で、ＣＰＵ４０１は、デコードされた映像を表示する。具体的には、ＣＰＵ４０１が、デコードした映像データをビューワ１０２の映像表示エリア１２０３に相当するウィンドウシステムの表示コンポーネントに与え、その表示を指示する。ＣＰＵ４０１は、表示コンポーネントのサイズやウィンドウシステム上の配置に応じて、スケーリングやクリッピングを実行することもある。なお、これらの処理は、ウィンドウシステムに関する公知の技術であるので、説明を省略する。
【０１１３】
ステップＳ１９０４で、ＣＰＵ４０１は、次の映像データの到着を待つ。次の映像データが到着することが予想されると、ステップＳ１９０１へ戻り、ＣＰＵ４０１は、上述したように映像データを受信する。このステップＳ１９０４で、ＣＰＵ４０１は、必要に応じて映像更新リクエストをカメラサーバ１０１に送信してもよい。
【０１１４】
図２０は、パン操作が実行されたときの表示の遷移例を示す図である。２００１は、ビューワ１０２がパン操作の指示をカメラサーバ１０１へ送信したときの表示例である。２００１は、パン操作の実行直後（１フレーム目、パン角を２度変更したとき）における表示例である。２００２は、パン操作の完了時（８フレーム目、パン角を１５度変更したとき）の表示例である。
【０１１５】
このように、ビューワ１０２は、カメラ装置３１０がパンを実行しているときの映像を表示するだけでなく、受信した映像データに含まれているパン角度の情報を取り出し、スクロールバーのタブ位置に反映させる。
【０１１６】
図２１は、カメラサーバ１０１における映像データの配信処理を示すフローチャートである。ここで説明するメカニカルＰＴＺエミュレーションモードによる映像データの配信処理は、カメラ制御サーバ５０１によって指示された視野情報（図１０で説明したカメラ制御状態を反映した情報）に基づいて実行される。基本的な動作は、図１１のステップＳ１１０７、ステップＳ１１０８およびステップＳ１１１１に関して説明した通りである。
【０１１７】
とりわけ、メカニカルＰＴＺエミュレーションモードにおいて、配信される映像の配信手順と配信タイミングについて詳しく説明する。本発明は、映像キャプチャレートと配信フレームレートとが一致しない場合でも適用できることはいうまでもない。例えば、１５ｆｐｓでキャプチャされた映像（全視野画像）を、３０ｆｐｓの配信フレームレートにより配信する場合、フレームを補間する必要がある。この場合、カメラサーバ１０１は、連続する２つのフレームとして、同じ全視野画像から切り出された映像を配信してもよい。この２つのフレームは、視野情報に応じて切り出された映像となるため、完全に一致しないこともある。
【０１１８】
ステップＳ２１０１で、ＣＰＵ３０１は、設定されたフレームレートに合わせて、映像配信のタイミングが到来するのを待ち合わせる。例えば、フレームレートが３０ｆｐｓである場合、ＣＰＵ３０１は、約３０ミリ秒周期で映像送信処理を実行する。フレームレートは、配信先（ビューワ）ごとに、異なってもよい。また、一定のフレームレートでなくてもよい。例えば、ＣＰＵ３０１は、配信先（ビューワ）から映像更新リクエストを受信するたびに映像を配信してもよいからである。この場合、ＣＰＵ３０１は、ステップＳ２１０１で、映像更新リクエストの受信を待ち合わせる。
【０１１９】
ステップＳ２１０２で、ＣＰＵ３０１は、ビューワ１０２により指定されたカメラ制御情報に従って視野情報を取得する。視野情報の更新自体は、カメラサーバ１０１のカメラ制御サーバ５０１によって実行される（図１０）。ビューワから新しいカメラ操作コマンドを受信すると、カメラ制御サーバ５０１を実現するＣＰＵ３０１は、カメラ制御情報の集約やマージも、必要に応じて実行する。
【０１２０】
ステップＳ２１０３で、ＣＰＵ３０１は、最新の全視野画像から、視野情報に従って配信用の画像を切り出す。全視野画像は、一般に、フレームレートとは独立したタイミングで、カメラ装置３１０および映像キャプチャボード３０４により取得（キャプチャ）される。
【０１２１】
ステップＳ２１０４で、ＣＰＵ３０１は、視野情報に従って切り出した配信用画像を配信先に合わせてエンコードする。配信先によって、異なるコーデック（ＪＰＥＧ２０００やＭＰＥＧ−２など）や画質（圧縮率など）などを要求されることがあるからである。
【０１２２】
ステップＳ２１０５で、ＣＰＵ３０１は、エンコード済みの映像データに付加情報を付与する。具体的には、タイムスタンプ（全視野画像のキャプチャ時刻、配信時刻など）、パンチルトズーム値、視野情報（切り出し位置）、エンコードパラメータ（圧縮率など）、アクセス制御情報（著作権保護情報など）、顔検出情報やセンサー検出情報などである。
【０１２３】
これらの付加情報は、エンコード済みの映像データに埋め込まれてもよいし、映像データの先頭や末尾に追加されてもよい。例えば、画像データのフォーマットがＪＰＥＧである場合、ＣＰＵ３０１は、ＪＦＩＦ（ＪＰＥＧ Ｆｉｌｅ Ｉｎｔｅｒｃｈａｎｇｅ Ｆｏｒｍａｔ）のＡＰＰ（０）マーカーとして、付加情報を付与する。
【０１２４】
ステップＳ２１０６で、ＣＰＵ３０１は、配信用の映像データを配信先（ビューワ）へ送信する。送信用のプロトコルとしては、例えば、ＲＴＰなどが使用されてもよい。また、ビューワ１０２から受信した映像更新リクエストに対するレスポンスを送信するためには、ＨＴＴＰが使用されてもよい。その後、ステップＳ２１０１ないしＳ２１０６が繰り返される。
【０１２５】
本実施形態によれば、ビューワ１０２のＧＵＩへの操作に応じた適切な動作モードをカメラサーバに指定することができる。とりわけ、本実施形態では、個々のカメラ制御コマンドや映像制御コマンドの発行、処理およびビューワのＧＵＩの対応関係に特徴がある。
【０１２６】
例えば、本実施形態では、ビューワ１０２が、操作コントロールの変位をパン角度パラメータやチルト角度パラメータへと変換していたが、本発明は、これに限定されることはない。例えば、この変換処理をカメラ制御サーバ５０１が実行してもよい。この場合、ビューワ１０２は、操作コントロールの変位量をカメラ制御サーバ５０１へと送信するだけでよい。
【０１２７】
本実施形態では、メカニカルＰＴＺエミュレーションモードで、ビューワ１０２が、パンスクロールバー１２０４などを用いてカメラ操作を実行する例であった。しかし、ビューワ１０２の操作コントロールは、パンスクロールバー１２０４に限定されることはない。
【０１２８】
例えば、映像表示エリア１２０３が操作コントロールの１つであってもよい。映像表示エリア１２０３がクリックされると、ＣＰＵ４０１は、メカニカルＰＴＺエミュレーションモードで動作するようカメラサーバ１０１に指示してもよい。但し、操作コントロールの変位を検出する方法、パンチルト角度パラメータへの変換方法などが、上述した実施形態とは異なることになろう。例えば、映像表示エリア１２０３のどこかの位置がクリックされると、ＣＰＵ４０１は、クリックされた位置に応じてパン方向の変位とチルト方向の変位を同時に特定できる。
【０１２９】
典型的な例として、映像表示エリア１２０３内の特定位置がクリックされ、当該特定位置が映像表示エリア１２０３の中心位置に来るようにカメラ装置３１０を制御することを考えてみる。ＣＰＵ４０１は、現在の中心位置と特定位置との差異（画素数）を算出する。次に、ＣＰＵ４０１は、算出された差異をパン角度パラメータやチルト角度パラメータへ変換する。なお、ＣＰＵ４０１は、現在のズーム倍率を加味して、これらのパラメータを算出してもよい。
【０１３０】
例えば、パン角度を相対的に１５度増加し、かつ、チルト角度を相対的に５度減少させる場合、ＣＰＵ４０１は、以下のようなカメラ操作コマンドを発行する。
”ＯｐｅｒａｔｅＣａｍｅｒａ？ｐａｎ＝ｄ＋１５００＆ｔｉｌｔ＝ｄ−５００＆ｍｏｄｅ＝ｓｍｏｏｔｈＰＴＺｅｍｕｒａｔｉｏｎ”。
【０１３１】
［他の実施形態］
上述の実施形態のカメラサーバ１０１は、取得した映像に対して、座標変換および画像補正などの画像処理を施すことで、補正済みの全視野画像を生成する。しかしながら、カメラサーバ１０１は、ビューワ１０２へと配信される映像に対してこれらの画像処理を実行してもよい。図１０から明らかなように、全視野画像のサイズは、配信される映像のサイズに比較して大きい。一般に、画像処理に必要となる処理量や処理時間は、サイズに比例する。よって、配信される映像に対して画像処理を施す方が、処理量や処理時間の観点からは好ましい。
【０１３２】
上述の実施形態のカメラサーバ１０１については、メカニカルＰＴＺエミュレーションの速度を予め設定されているものとして説明している。しかしながら、この速度は、動的に変更されてもよい。例えば、例えば、ビューワ１０２が、カメラ制御コマンドを送信する際に、速度を指定してもよい。
【０１３３】
上述の実施形態によれば、配信映像の圧縮率（画質）が、ビューワ１０２ごとに異なる例について説明されている。しかしながら、圧縮率（画質）は、カメラサーバ１０１ごとに設定されていてもよい。さらに、カメラサーバ１０１は、映像モードごとに圧縮率（画質）等の映像パラメータを変更してもよい。
【０１３４】
上述の実施形態によれば、ビューワ１０２のＵＩに設けられた１以上の操作コントロールごとに映像モードがマッピングされていた。しかしながら、本発明における映像モードのマッピング対象は、操作コントロールに限定されることはない。例えば、それぞれの操作コントロールへの操作スタイルまで含めて、映像モードがマッピングされてもよい。例えば、スクロールバー１２０４のノブがドラッグ操作された場合と、スクロールバー１２０４の上下矢印ボタンが操作された場合とで、ビューワ１０２は、異なる映像モードを選択してもよい。これにより、ビューワ１０２の操作者は、操作コントロールへの操作スタイルを変更することで、好みの映像モードを適用できる利点がある。
【０１３５】
上述の実施形態によれば、カメラ操作権の要求ボタン１２０７と、カメラ操作権の状態表示エリア１２０８とがＵＩ上に設けられていた。もちろん、本発明に係る映像配信システムでは、操作権による排他制御が必須ではないので、操作権の要求ボタン１２０７などは省略されてもよい。
【０１３６】
なお、メカニカルＰＴＺエミュレーションに関して操作権の有無を反映させてもよい。例えば、操作権を有していない他のビューワ１０２に対して、操作権を有しているビューワ１０２の視野を強制的に適用してもよい。
【０１３７】
上述の実施形態によれば、映像モードと操作コントロールとの対応関係を保持するマッピングテーブルについて説明した。もちろん、マッピングテーブルについては、操作者ごとカスタマイズされてもよい。操作者によっては、映像モードと操作コントロールとの対応関係をカスタマイズすることを希望することもあるからである。また、ユーザグループごとにマッピングテーブルが用意されてもよい。これらのマッピングテーブルは、特権レベルの違いや操作権の有無に応じて、異なるマッピングテーブルが用意されてもよい。
【０１３８】
上述の実施形態によれば、パン、チルト、ズームといった細かなカメラ制御用の操作コントロールごとに映像モードをマッピングするものとして説明している。しかしながら、操作コントロールの粒度は、このように細かい必要はない。
【０１３９】
なお、第２の実施形態では、ビューワ１０２から送信される制御内容に応じて、カメラサーバ１０１が、映像モードを決定していた。もちろん、カメラサーバ１０１は、他の条件に基づいて映像モードを決定してもよい。例えば、全視野画像１０００に、映像の配信が制限される画像エリアが設定されているものとする。この場合、ビューワ１０２からのパンやチルトの要求が、当該画像エリアを通過するようなカメラ動作を要求するものであれば、カメラサーバ１０１は、電子ＰＴＺモードで映像を配信する。少なくとも映像の配信が制限される画像エリアについては、カメラサーバ１０１が、電子ＰＴＺモードを適用する。なお、制限のない画像エリアについては、カメラサーバ１０１が、メカニカルＰＴＺエミュレーションモードを適用してもよい。
【０１４０】
カメラ制御サーバ５０１は、１以上のビューワ１０２から受信した制御情報についてログ（履歴情報）を作成し、作成したログをＨＤ装置３０７などに保持する。さらに、カメラ制御サーバ５０１は、ログに記録されている制御情報と動作コマンドとの対応件関係を統計処理し、受信した制御情報に対して、過去に最も多く採用された映像モードを今回の映像モードとして決定する。また、メカニカルＰＴＺエミュレーションモードの動作速度などについても、カメラ制御サーバ５０１は、ログに基づいて決定してもよい。
【０１４１】
ビューワ１０２は、カメラ制御サーバ５０１の映像配信処理に関する各種のパラメータを設定してもよい。このようなパラメータとしては、カメラ制御の通信用のＴＣＰポート番号、ＣＯＭ（シリアル）ポートの番号、シャッタースピード、カメラ制御関連のログ情報の有無とそのログファイル名などがある。また、このようなパラメータとしては、映像関連の通信用のＴＣＰポート番号、映像のフレームレート、圧縮の品質を決めるＱ−Ｆａｃｔｏｒ、圧縮の元データの画面サイズ、１つのビューワあたりの最大接続時間などもある。なた、このようなパラメータとしては、カメラ制御に関する操作権の順番待ち人数、１つのビューワが操作権を占有できる時間、映像とカメラ制御に関する接続可能な最大クライアント数などもある。
【０１４２】
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１４３】
本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【０１４４】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【０１４５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１４６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１４７】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネットのホームページからダウンロードしてもよい。すなわち、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【０１４８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【０１４９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【０１５０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【０１５１】
【図１】実施形態に係る例示的な映像配信システムを示す図である。
【図２】実施形態に係る他の例示的な映像配信システムを示す図である。
【図３】実施形態に係るカメラ制御サーバのハードウェア構成例を示す図である。
【図４】実施形態に係るビューワ装置のハードウェア構成例を示す図である。
【図５】実施形態に係るコンピュータプログラムの主要モジュールを例示した図である。
【図６】実施形態に係るカメラ制御サーバの例示的な制御処理を示すフローチャートである。
【図７】実施形態に係るビューワの例示的な制御処理を示すフローチャートである。
【図８】実施形態に係るビューワのコンピュータプログラムの例示的な動作を示すフローチャートである。
【図９】実施形態に係るカメラ制御サーバの動作例を示すフローチャートである。
【図１０】実施形態に係る視野情報を説明するための図である。
【図１１】実施形態に係る映像サーバの動作例を示すフローチャートである。
【図１２】実施形態に係るビューワのユーザインタフェースの一例を示す図である。
【図１３】実施形態に係るマッピングテーブルの一例を示す図である。
【図１４】実施形態に係るビューワの例示的な制御方法を示すフローチャートである。
【図１５】実施形態に係るカメラ制御サーバの例示的な制御方法を示すフローチャートである。
【図１６】実施形態に係る例示的なマッピングテーブルを示す図である。
【図１７】実施形態に係る他の例示的なユーザインタフェースを示す図である。
【図１８】実施形態に係るビューワのコマンド発行処理を示すフローチャートである。
【図１９】実施形態に係るビューワの表示更新処理を示すフローチャートでである。
【図２０】実施形態に係るビューワの表示例を示す図である。
【図２１】第３の実施形態に係るカメラサーバの映像データ配信処理を示すフローチャートでである。
【図１】
2007166583.tif 000003
【図２】
2007166583.tif 000004
【図３】
2007166583.tif 000005
【図４】
2007166583.tif 000006
【図５】
2007166583.tif 000007
【図６】
2007166583.tif 000008
【図７】
2007166583.tif 000009
【図８】
2007166583.tif 000010
【図９】
2007166583.tif 000011
【図１０】
2007166583.tif 000012
【図１１】
2007166583.tif 000013
【図１２】
2007166583.tif 000014
【図１３】
2007166583.tif 000015
【図１４】
2007166583.tif 000016
【図１５】
2007166583.tif 000017
【図１６】
2007166583.tif 000018
【図１７】
2007166583.tif 000019
【図１８】
2007166583.tif 000020
【図１９】
2007166583.tif 000021
【図２０】
2007166583.tif 000022
【図２１】
2007166583.tif 000023