(実施例1)
本発明の実施例1では、上述のVideoSourceの拡張機能としてVideoSourceModeがOnvifで定義されることを仮に想定する。このVideoSourceModeは、その対応するVideoSourceをネットワークカメラが使用する場合の映像に関する設定値の設定上限を動作モードとして定めるものである。
ユーザーは所望のVideoSourceModeをVideoSourceに紐付けることで、よりネットワークカメラの映像配信に関わる動作モードを切り替えることが可能となる。また、入れ替えにより再起動が必要なVideoSourceModeは、再起動フラグにより切り換えで再起動が発生することを示すことも可能である。
なお、このVideoSourceModeを生成/削除/変更といった操作を行うコマンドはなく、予め製造元により用意されておくものである。
また、ONVIFに対応したモニタリングシステムにおいて、ネットワークカメラが保持するVideoSourceModeの情報をやり取りする際、再起動フラグの取り扱いはネットワークカメラの製造元の実装に依存する。
つまりVideoSourceModeの切り換えに伴い、常に再起動を発生させ、ユーザーに視聴不可時間を強いるなど、モニタリングシステムとしての利便性を損なう実装が存在する可能性があるという問題がある。
本実施例は、このような問題を解決するためのものであり、モニタリングシステムを利用するユーザーが、ネットワークカメラで発生する再起動を適時認識し、それにともなう視聴不可時間を回避できる機能を実現する再起動フラグの扱い方の提案を課題とする。
本実施例によれば、VideoSourceModeの切り換えに伴う再起動発生の有無を、ネットワークカメラの状態を加味した動的な情報としてユーザーに提供できる。
これによりユーザーは、再起動を希望しない状況におけるVideoSourceModeの切り換えにおいて、次に選択するVideoSourceModeでの再起動の必要性を認識しながら、自らの選択により視聴不可期間を避けることができる。つまり、ユーザーの希望に柔軟に対応できるモニタリングシステムを提供できるという効果が期待できる。
続いて、図1には、ネットワークカメラ100のブロック図である。なお、本実施例におけるネットワークカメラ100は、動画像を撮影する監視カメラである。また、本実施例におけるネットワークカメラ100は、壁面や天井に設置されるものとする。なおかつ、本実施例におけるネットワークカメラ100は、PoE(Power Over Ethernet(登録商標))に対応しており、LANケーブルを介して電力を供給されるものとする。
図1において、101はレンズと撮像素子で構成されるビデオソース部である。レンズで取り込まれる光を撮像素子で受光し、デジタル映像データに変換する。なお、本実施例では、ビデオソース部101を構成する撮像素子は、被写体を撮像して画像信号を生成するイメージセンサーに相当する。
102は画像処理部である。ビデオソース部101が生成した映像データに対し、輝度/色味/ホワイトバランスなどの画作りに関わるパラメータ調整を行う。103は符号化部である。画像処理部102で画作りされた映像データに対し、所定の符号化方式に従った符号化処理を施す。本実施例ではMJPEG,MPEG4,H.264の各種符号化方式に従う符号化方式に対応できる符号化部である。
104は、通信部である。符号化部103で符号化された映像データをネットワークに配信することが可能である。また、ネットワークに繋がるクライアント端末200が送信するネットワークカメラ100への制御コマンドを受信することもできる。
なお、本実施例における通信部104は、クライアント端末200からのコマンドを、ネットワークを介して受け付ける受け付け部としての役割を果たす。また、本実施例における通信部104は、このように受け付けたコマンドに対するレスポンスを、ネットワークを介してこのクライアント端末200に送信する送信部としての役割を果たす。
105はコントローラーであり、ネットワークカメラ100の制御を司る。コントローラー105は、ビデオソース部101、画像処理部102、符号化部103、通信部104、メモリー106への制御を行う。また、コントローラー105は、メモリー106に記憶されるプログラムを実行することも可能である。
106はメモリーである。各ブロックの制御に必要な設定データや、コントローラー105が実行するプログラム、クライアント端末200との通信の為のコマンド情報などが記憶されている。したがって、本実施例におけるメモリー106は、記憶部に相当し、本実施例におけるコントローラー105は、記憶制御部に相当する。
図2は、図1のネットワークカメラ100と通信するクライアント端末200のブロック図が記載されている。なお、本実施例におけるクライアント端末200は、外部のクライアント装置に相当する。
201は通信部である。映像データをネットワークから受信することが可能である。また、ネットワーク経由で接続されたネットワークカメラ100に対し、制御コマンドを送信することもできる。
202は復号化部である。ネットワーク経由で受信する符号化された映像データを復号化し、表示データを生成する。本実施例ではMJPEG,MPEG4,H.264の各種符号化方式で符号化された映像データの復号化に対応できる復号化部である。
203は表示部である。復号化部202で復号化されたデータを表示し、ユーザーにネットワークカメラ100が撮影した映像を提供する。また、クライアント端末200において実行可能なアプリケーションのGUIを表示することも可能である。204は入力部である。マウスやキーボードによりユーザーが行う操作情報を取り込むことが可能である。
205はコントローラーであり、クライアント端末200の制御を司る。このコントローラー205は、通信部201、復号化部202、表示部203、入力部204、メモリー206への制御を行う。206はメモリーである。このメモリー206には、各ブロックの制御に必要な設定データや、アプリケーション等のプログラム、ネットワークカメラとの通信の為のコマンド情報などが記憶されている。
図3はネットワークカメラ100とクライアント端末200で構成されるモニタリングシステムが記載されている。つまり、クライアント端末200は、ネットワークを介してネットワークカメラ100と接続されており、コマンドのやり取りを通してユーザーが期待するモニタリング環境を提供する。
本実施例では、ネットワークカメラ100とクライアント端末200双方がONVIF規格に準拠するものとし、やり取りされるコマンドはONVIFで定義されたコマンドを想定する。
なお、これらのコマンドは、例えば、XML Schema Definition言語(以下XSDと称することがある)を用いて定義される。また、ネットワークカメラ100およびクライアント端末200は、XSDで定義されたコマンドをファイル形式で記憶する。
ネットワークカメラ100は、図7に示すようなONVIF情報をメモリー106に保持することを想定する。705は、ビデオソース部101を示す情報であるVideoSourceである。また、706は、VideoSource705の設定情報であるVideoSourceConfigurationである。
そして、701〜704は、VideoSource705に関連付けられ、VideoSourceにモードの属性を付与するものとしてのVideoSourceModeである。ここで、VideoSourceModeは複数存在し、VideoSource705への関連付けを切り替えることで、VideoSource705のモードを切り替えることができる。
なお、本実施例では、VideoSource705は、イメージセンサー情報に相当し、VideoSourceMode701〜704は、イメージセンサーモード情報に相当する。また、複数のVideoSourceMode701〜704は、第1のイメージセンサーモード情報に相当し、第2のイメージセンサーモード情報を含む。
符号化部103に対する設定としてVideoEncoderConfiguration707が存在する。VideoEncoderConfiguration707も複数存在し、異なる符号化設定を独立に管理できる。したがって、本実施例におけるVideoEncorderConfiguration707は、符号化設定情報に相当する。
さらに、ネットワークカメラ100は、VideoSourceConfiguration706とVideoEncoderConfiguration707とをMediaProfile708の単位で管理する。これにより、ネットワークカメラ100が通信部104から配信するストリーミング映像の特性を管理できる。なお、本実施例におけるMediaProfile708は、メディアプロファイル情報に相当する。
また、MediaProfile708に属するVideoSourceConfiguration706やVideoEncoderConfiguration707の幾つかの映像に関わる設定項目の上限値は、次のものにより定められる。即ち、VideoSource705に関連付けられたVideoSourceMode701である。
例えば、図7の例では”VS−1”をTokenに持つVideoSource705に”VSM−1”をTokenに持つVideoSourceMode701が関連付けられている。この時、符号化方式としては”VSM−1”に記載される”H.264”に制限され、VideoEncoderConfiguration707に設定できる符号化方式も”H.264”に制限される。
つまりGetVideoEncoderConfigurationOptionsコマンドのレスポンスメッセージに”H.264”しか含めないことを意味する。このレスポンスメッセージは、ネットワークカメラ100からネットワークを介してクライアント端末200に送信される。なお、これらONVIF情報は、全てメモリー106上で管理され、コントローラー105による操作が可能である。
また、各データはTokenと呼ばれる識別情報で区別される。クライアント端末200は、Tokenを指定することで所望のデータにアクセスすることが可能である。
さらに第一の実施例におけるネットワークカメラ100の特徴として、撮影できる最大解像度を変更するためには、システムの再起動が必要になるという制約があることを想定する。
クライアント端末200はONVIFに準拠したコマンドを発行できる。各種コマンドを発行することでネットワークカメラ100が管理する図7の各種設定データを操作し、所望の映像データの設定ができる。また、この設定した映像配信の開始・停止などの制御により設定した映像データを受信できる。
図4は本発明を適用したネットワークカメラ100とクライアント端末200がONVIFに準拠したコマンドのやり取りを行う際のシーケンス図である。401のコマンドセットは、GetVideoSourceModesコマンドとGetVideoSourceModesResponseメッセージである。
GetVideoSourceModesコマンドは、クライアント端末200からネットワークカメラ100へネットワークを介して送信される。このGetVideoSourceModesコマンドは、VideoSource705のTokenを引数とする。
このGetVideoSourceModesコマンドにより、対象のVideoSource705で利用可能な全VideoSourceModeの情報を、ネットワークカメラ100からクライアント端末200へ送信させることが可能となる。この場合に送信される情報は、GetVideoSourceModesResponseメッセージとしてクライアント端末200に送信される。
なお、本実施例では、GetVideoSourceModesコマンドは、イメージセンサーモード情報を取得するための取得コマンドに相当する。
402のコマンドセットは、SetVideoSourceModeコマンドとSetVideoSourceModeResponseメッセージである。SetVideoSourceModeコマンドは、クライアント端末200からネットワークカメラ100へ送信される。
このSetVideoSourceModeコマンドは、VideoSource705のTokenと、VideoSourceMode701〜704のうちのいずれか1つのTokenと、を引数とする。このSetVideoSourceModeコマンドにより、所望のVideoSourceに対するVideoSourceModeの設定を依頼することが可能となる。
SetVideoSourceModeResponseメッセージは、ネットワークカメラ100からクライアント端末200から送信される。このSetVideoSourceModeResponseメッセージは、所望のVideoSourceに対するVideoSourceModeの設定処理が成功したか否かを通知するためのものである。
これらSetVideoSourceModeコマンドとSetVideoSourceModeResponseメッセージとで、VideoSourceModeの設定が可能となる。
図5は、本発明を適用したネットワークカメラ100がクライアント端末200からONVIF規格に従うGetVideoSourceModesコマンドを受信した時の振舞いを示すフローチャートである。
本実施例では、クライアント端末200が図6に示すような「ストリーミングモード設定」画面を表示したタイミングでGetVideoSourceModesコマンドを発行することを想定し、それに対するネットワークカメラ100の振る舞いを示した。
S501において、ネットワークカメラ100はGetVideoSourceModesコマンドを受信したか否かの確認が行われる。確認された場合はS502に移行し、GetVideoSourceModesコマンドではなかった場合は、S512を処理する。具体的には、S501では、コントローラー105は、GetVideoSourceModesコマンドをクライアント端末200から受信したか否かを判定する。
コントローラー105は、GetVideoSourceModesコマンドをクライアント端末200から受信したと判定した場合には、S502に処理を進める。一方、コントローラー105は、GetVideoSourceModesコマンドをクライアント端末から受信していないと判定した場合には、S512に処理を進める。なお、S512の処理は後述する。
ここでは、GetVideoSourceModesコマンドをクライアント端末200から受信した場合を想定する。コントローラー105は、通信部104で受信したデータをメモリー106に展開し、受信処理が完了する。
なお、本実施例におけるコントローラー105は、クライアント端末200からのコマンドがイメージセンサーモード情報を取得するための取得コマンドであるか否かを判定するコマンド判定部としての役割を果たす。
S502では、S501で受信したコマンドの引数として指定されるVideoSourceのToken情報を確認する。コントローラー105により、メモリー106上のコマンドデータの確認が行われる。本実施例としては、Token情報として”VS−1”が取得できたことを意味する。
S503では、コントローラー105は、S502で得られたToken名に該当するVideoSourceに関連付けられているVideoSourceModeの情報を解析する。
本実施例では、VideoSourceModeの情報の内、最大解像度(MaxResolution)に関する情報を取得することを想定する。この最大解像度に関する情報は、コントローラー105がメモリー106上にあるVideoSourceModeの情報を解析することにより、取得できる。
本実施例では、Token=”VS−1”のVideoSource705に関連付けられているVideoSourceMode701としてToken=”VMS−1”となっている。つまり、コントローラー105は、VideoSourceMode701の最大解像度(MaxResolution)として、”1920x1080”を取得することを意味する。
S504より、コントローラー105は、GetVideoSourceModesコマンドに対するレスポンスデータの生成のための処理として、全VideoSourceMode情報の調査を開始する。
たとえば、S504では、コントローラー105は、メモリー106に記憶されたVideoSourceModeの中から1つのVideoSourceModeを、後述のS505における処理対象のVideoSourceModeとして、選択する。
S505では、処理対象のVideoSourceModeに設定されている最大解像度の情報とS502で指定されているVideoSourceに関連付けられているVideoSourceModeの最大解像度の情報とを比較する処理が行われる。(ここで、最大解像度の情報は、「MaxResolution」に相当する。)
これは、コントローラー105がメモリー106上にあるVideoSourceModeの情報を取得し、比較処理を行うことで実現できる。
なお、本実施例では、S502で指定されているVideoSourceに関連付けられているVideoSourceModeは、現在のイメージセンサーモード情報に相当する。また、本実施例における最大解像度は、画像解像度に相当する。
S506では、コントローラー105は、S505の比較処理の結果を判定する。解像度が同じである場合、ネットワークカメラ100として再起動が必要ではないため、S507で対象のVideoSourceModeの再起動フラグを”Reboot=false”に設定する。
逆に解像度に違いがある場合、ネットワークカメラ100として再起動が必要なため、S508で再起動フラグを”Reboot=true”に設定する。コントローラー105がメモリー106上のVideoSourceModeの所望の領域に書き込みを行うことで実現できる。
具体的には、S506では、コントローラー105は、処理対象のVideoSourceModeの最大解像度とS502で指定されたVideoSourceModeの最大解像度とが同じであるとS505で判定した場合には、S507に処理を進める。
一方、コントローラー105は、処理対象のVideoSourceModeの最大解像度とS502で指定されたVideoSourceModeの最大解像度とが異なるとS505で判定した場合には、S508に処理を進める。
また、具体的には、S507では、コントローラー105は、VideoSourceModeに含まれるRebootの値を“true”に設定する。そして、S508では、コントローラー105は、VideoSourceModeに含まれるRebootの値を“false”に設定する。
なお、本実施例におけるコントローラー105は、各イメージセンサーモード情報の変更の必要性を判定する必要性判定部としての役割を果たす。また、本実施例におけるコントローラー105は、イメージセンサーモード情報を、この必要性判定部の出力に従って、更新する更新部としての役割を果たす。
S509では、ネットワークカメラ100が保持する全てのVideoSourceModeの確認が完了したか否かの確認が行われる。完了した場合はS510に移行し、完了していない場合はS505に戻り次のVideoSourceModeの処理を行う。
具体的には、コントローラー105は、メモリー106に記憶された全てのVideoSourceModeが、S505における処理対象のVideoSourceModeとして、選択されたか否かを判定する。そして、コントローラー105は、メモリー106に記憶された全てのVideoSourceModeがS505における処理対象のVideoSourceModeとして選択されたと判定した場合には、S510に処理を進める。
一方、コントローラー105は、メモリー106に記憶された全てのVideoSourceModeがS505における処理対象のVideoSourceModeとして選択されていないと判定した場合には、S505に処理を戻す。
この判定の際、コントローラー105は、メモリー106に記憶された全てのVideoSourceModeの中から新たなVideoSourceModeを1つ、処理対象のVideoSourceModeとして、選択する。
本実施例ではS505からS509までのループ処理の結果、次のようになることを意味する。即ち、図7のように”VSM−1”と”VSM−4”のTokenを持つVideoSourceModeは”Reboot=false”となることである。なおかつ、”VSM−2”と”VSM−3”のTokenを持つVideoSourceModeは”Reboot=true”となることである。
S510では、S505からS509までのループ処理の結果を元にGetVideoSourceModesコマンドに対するGetVideoSourceModesResponseメッセージの生成が行われる。
具体的には、S510では、コントローラー105は、メモリー106に記憶された全てのVideoSourceModeの情報を読み出す。次に、コントローラー105は、読み出したVideoSourceModeのリストを含むGetVideoSourceModesResponseメッセージをメモリー106上に記憶させる。
本実施例では、コントローラー105は、メモリー106上に”VSM−1”から”VSM−4”のVideoSourceModeをリストに持つGetVideoSourceModesResponseメッセージを生成する。
S511では、コントローラー105は、S510でメモリー106上に生成されたレスポンスデータをGetVideoSourceModesResponseメッセージとしてクライアント端末200に送信する処理が行われる。この処理は、コントローラー105がメモリー106上のデータを通信部104に送出することで実行される。
S511のメッセージ送信処理をもってGetVideoSourceModesコマンドに対するネットワークカメラ100の処理が完了する。
401のコマンドセットに従い、GetVideoSourceModesResponseメッセージはクライアント端末200で受け取られる。これにより、クライアント端末200は、ネットワークカメラ100に設定できるVideoSourceModeの情報から撮影モードとして最大解像度と、フレームレート、それに符号化方式の組み合わせをユーザーに提供することができる。
図6はその一例である。受信したVideoSourceModeを「ストリーミングモード設定」画面の「選択モード」欄に表示することでユーザーにモードの選択機能を提供することができる。
また受け取ったVideoSourceModeの中で”Reboot=true”となっているものには601のような再起動マークを付ける。この再起動マークは、このマークが付されたVideoSourceModeに切り換えることにより、ネットワークカメラ100の再起動が発生することを示すためのものである。
これにより、VideoSourceModeの切り換えによりネットワークカメラ100の再起動が発生してしまうことをユーザーに伝えることが可能となる。
図6の例のように、ユーザーがVSM−2に該当する「3840x2160 @ 7fps [H.264]」を選択すると、クライアント端末200からネットワークカメラ100へ、SetVideoSourceModeコマンドが発行される。
SetVideoSourceModeコマンドは、引数としてVideoSourceTokenに”VS−1”、VideoSourceModeTokenに”VSM−2”を持つコマンドとなる。”Reboot=true”のVideoSourceModeが”VS−1”のVideoSourceに設定されることで、ネットワークカメラ100は再起動することになる。
SetVideoSourceModeコマンドに対するネットワークカメラ100の具体的な処理はS512からの処理となる。
S512では、ネットワークカメラ100は、SetVideoSourceModeコマンドを受信したか否かの確認が行われる。確認された場合は、コントローラー105が通信部104で受信したデータをメモリー106に展開することで受信処理を実行後、S513に移行する。逆に確認できなかった場合は、S501の処理に戻る。具体的には、S512では、コントローラー105は、SetVideoSourceModeコマンドを受信したか否かを判定する。
コントローラー105は、SetVideoSourceModeコマンドをクライアント端末200から受信したと判定した場合には、SS513へ処理を進める。一方、SetVideoSourceModeコマンドをクライアント端末200から受信していないと判定した場合には、S501へ処理を戻す。
S513では、ネットワークカメラ100により、SetVideoSourceModeコマンドの引数の確認が行われる。コントローラー105により、メモリー106上のSetVideoSourceModeコマンドデータの確認が行われる。
本実施例としては、クライアント端末200よりVideoSourceTokenに”VS−1”、VideoSourceModeTokenに”VSM−2”を引数に持つSetVideoSourceModeコマンドを想定している。
S514では、S513のコマンド情報を元に、指定されたVideoSourceModeとVideoSourceを関連付ける処理が行われる。この処理は、コントローラー105がメモリー106上のONVIF情報を操作することで実現される。
たとえば、コントローラー105は、ステップS512で受信されたSetVideoSourceModeコマンドに含まれるVideoSourceTokenに対応するVideoSourceに、次のVideoSourceModeを関連付ける。すなわち、ステップS512で受信されたSetVideoSourceModeコマンドに含まれるVideoSourceModeに対応するVideoSourceModeである。
本実施例では、”VSM−2”のVideoSourceModeが、”VS−1”のVideoSourceに関連付けられることを意味する。
S515では、SetVideoSourceModeResponseメッセージの生成が行われる。これは、コントローラー105がメモリー106上に生成することで実現できる。
その後、S516において、生成されたSetVideoSourceModeResponseメッセージの送信が行われる。コントローラー105がメモリー106上のデータを通信部104に送出することで処理を実行する。これにより、ネットワークカメラ100からクライアント端末200へSetVideoSourceModeResponseメッセージが送信される。
S517では、SetVideoSourceModeコマンドの結果、再起動が必要か否かの確認を行う。本実施例のように”Reboot=true”であるVideoSourceModeが選択された場合は、S517で再起動処理を実行後、処理を終了する。
具体的には、コントローラー105は、VideoSourceModeに含まれるRebootの値が“true”であるか否かを判定する。そして、コントローラー105は、Rebootの値が“true”であると判定された場合には、ステップS518へ処理を進める。一方、コントローラー105は、Rebootの値が“true”ではないと判定された場合には、処理を終了する。
本実施例として、”VSM−2”をTokenに持つVideoSourceModeが設定されたことによる再起動の結果として、図8に示すような各ONVIFパラメータを保持した状態でネットワークに復帰することが考えられる。
VideoSource805/VideoSourceMode802/VideoEncoderConfiguration807の各ONVIFパラメータが”VSM−2”による制約に従っていることが見て取れる。この再起動により、VideoSourceConfiguration806やVideoEncoderConfiguration807に設定可能な値も変化することを意味している。
つまり再起動により、GetVideoSourceConfigurationOptionsコマンドやGetVideoEncoderConfigurationOptionsコマンドに対するレスポンスメッセージも変化することを意味する。
ユーザーは、VideoSourceModeで特徴づけられる設定範囲の中でモニタリングを行うことが可能となる。なお、GetVideoSourceConfigurationOptionsコマンドやGetVideoEncoderConfigurationOptionsコマンドがONVIFで規定されることは言うまでもない。
なお、図8において、808は、VideoSourceConfiguration806と、VideoEncorderConfiguration807と、を管理するためのMediaProfileである。また、801、802および804は、VideoSourceModeである。
また、図6の例においてユーザーが、Tokenが”VSM−4”のVideoSourceMode704に該当する「1920x1080 @ 30fps [H.264/MJPEG]」を選択する。この結果、再起動フラグが”false”のVideoSourceMode704が、SetVideoSourceModeコマンドにより、VideoSource705に設定されることになる。
この場合、ネットワークカメラ100は、S517において再起動不要と判定され、再起動することなくONVIF情報も図7の状態を保つ。さらにGetVideoSourceConfigurationOptionsコマンドやGetVideoEncoderConfigurationOptionsコマンドに対するレスポンスメッセージも変化はない。
以上より、VideoSourceModeをストリーミングモードとして利用する監視システムにおいて、VideoSourceModeに含まれる最大解像度値の変更に応じて再起動が必要なネットワークカメラ100の場合、次の処理を行う。
つまり、GetVideoSourceModesコマンドのレスポンスメッセージにおけるVideoSourceModeの再起動フラグを動的に変更してクライアント端末200とのコマンドのやり取りを行う。(なお、VideoSourceModeに含まれる最大解像度値は、「MaxResolution」に相当する。)
クライアント端末200は、ネットワークカメラ100が送信するGetVideoSourceModesResponseの結果に応じてユーザーにストリーミングモードの選択画面を提供する。その上でユーザーの選択に応じたSetVideoSourceModeコマンドを発行することで、その時々のネットワークカメラ100のストリーミングモードに応じた必要最低限の再起動のみでモニタリングをユーザーに提供できる。
本実施例においては、クライアント端末200上のアプリケーションとして、ストリーミングモードの変更にともなる再起動の必要性の有無を、「再起動マーク601」でユーザーに通知する方法を例に説明した。
しかしながらこの実装に限定されるものではない。例えば、ユーザーがストリーミングモードを選択したことにあわせて再起動が必要になる旨を通知するポップアップウィンドウを表示する実装でも構わない。警告がポップアップすることによりユーザーはより明確に再起動の存在を意識することが可能となる。
本実施例において、図5のフローチャートのS518でのネットワークカメラ100の再起動処理として、ネットワークカメラとして定義できる「再起動」として幾つか考えられる。
一般的なシステム全体の再起動だけでなく、ソフトウェアの階層で実行するプロセス再起動に適用することも可能である。例えばVideoSourceModeの切り換えにより、ビデオソース部101や符号化部103を制御するソフトウェアを再起動する必要があるシステムの場合、ソフトウェアの再起動をS518の再起動処理として実行してもよい。この場合、S507やS508のVideoSourceModeのRebootフラグに対する設定は、ソフトウェア階層での再起動の発生を示す。
また、システム再起動やソフトウェア再起動を実際に行わない場合を、再起動として定義することも可能である。例えばVideoSourceModeの切り換えにより、ビデオソース部101や符号化部103の設定情報を変更(設定変更)することにより映像が途切れる場合、映像の途切れの発生をネットワークカメラ100としての再起動として定義しても構わない。この場合、S507やS508のVideoSourceModeのRebootフラグに対する設定は映像の途切れの有無を示す(表現する)。
ここで、本実施例におけるRebootフラグは、フラグ情報(換言すれば、再起動情報)に相当する。
(実施例2)
本発明の第2の実施例では、使用する符号化方式に変更が発生した場合に再起動処理が必要なネットワークカメラ100を想定した実施形態を説明する。ここで、ネットワークカメラ100およびクライアント端末200で構成されるシステム、また使用されるONVIFコマンドフローは、第1の実施例の図1、図2、図3、図4と同じであるため詳細な説明は省略する。
図9のフローチャートは、本発明の第2の実施例としてのネットワークカメラ100がGetVideoSourceModesコマンドを受信した際に従う処理を記載したものである。なお、この処理は、コントローラー105により実行される。
図9における処理の流れは、図5のフローチャートと同じであるが、S903、S905、S906の処理の対象がVideoSourceModeの最大解像度(MaxResolution)ではなく符号化方式(Encoding)となっている。
つまり、GetVideoSourceModesコマンドの引数のToken名で指定されるVideoSourceに対して、VideoSourceModeを関連付けた際に符号化方式の観点から再起動が必要になるのか否かを判定する。
S903では、コントローラー105は、S902で取得されたVideoSourceToken情報に関連付けられたVideoSourceMode情報から、符号化方式を示す符号化方式情報を取得する。
たとえば、本実施例では、図10に示すように、Token=“VS−1”のVideoSource1005は、Token=“VSM−1”のVideoSourceMode1001に関連付けられている。したがって、コントローラー105は、VideoSourceMode1001の符号化方式情報として“H.264”を取得する。
S905では、コントローラー105は、処理対象のVideoSourceModeの符号化方式情報と、S902で取得されたVideoSourceToken情報に関連付けられたVideoSourceMode情報の符号化方式情報と、を比較する。
S906では、コントローラー105は、S905で比較された2つの符号化方式情報が同じ場合には、S907に処理を進め、S905で比較された2つの符号化方式情報が異なる場合には、S908に処理を進める。
第2の実施例におけるONVIF情報として図10を想定する。この例では、GetVideoSourceModesコマンド受信時に、”VS−1”のTokenのVideoSource1005に関連付けられているVideoSourceMode1001のTokenが”VSM−1”である。また、このVideoSourceMode1001の符号化方式がH.264である。
つまり、切り換えにより再起動が必要になるVideoSourceModeは、VideoSourceMode1004であることを示すVideoSourceModeの情報が送られる。ここで、VideoSourceMode1004は、その符号化方式情報は”JPEG”であり、且つそのTokenは、”VSM−4”である。また、このVideoSourceModeの情報は、具体的には、GetVideoSourceModesResponseメッセージとしてクライアント端末200に送られる。
続いて、図11は、GetVideoSourceModesResponseメッセージを受け取ったクライアント端末200がユーザーに提供するUIを示している。この受け取ったVideoSourceModeの情報を「選択モード」欄に表示することで、ユーザーにストリーミングモードの選択機能を提供することができる。
第1の実施例の時と同じく、再起動が必要になる項目(選択肢)に再起動マークを表示することで、ユーザーにストリーミングモード変更に再起動が必要な設定(選択肢)が存在することを通知することが可能である。
ユーザーの選択に応じて402のSetVideoSourceModeコマンドのやり取りが行われ、図11でユーザーが選択したVideoSourceModeの設定に応じて再起動が行われることになる。
以上より、VideoSourceModeをストリーミングモードとして利用する監視システムでは、VideoSourceModeに含まれる符号化方式(Encoding)の変更に応じ、再起動が必要なネットワークカメラ100の場合、次の処理を行う。
つまり、GetVideoSourceModesコマンドのレスポンスメッセージにおけるVideoSourceModeの再起動フラグを動的に変更してクライアント端末200とのコマンドのやり取りを行う。クライアント端末200は、ネットワークカメラ100が送信するGetVideoSourceModesResponseの結果に応じてユーザーにストリーミングモードの選択画面を提供する。
その上でユーザーの選択に応じたSetVideoSourceModeコマンドを発行することで、その時々のネットワークカメラ100のストリーミングモードに応じた必要最低限の再起動のみでモニタリングをユーザーに提供できる。
なお、上述の実施例におけるS506では、VideoSourceModeに含まれる最大解像度情報に基づき、当該VideoSourceModeに含まれるRebootフラグを更新するように、コントローラー105を構成した。
また、上述の実施例におけるS906では、VideoSourceModeに含まれる符号化方式情報に基づき、当該VideoSourceModeに含まれるRebootフラグを更新するように、コントローラー105を構成した。しかしながら、これらに限られるものではない。
たとえば、VideoSourceModeに含まれるフレームレート情報に基づき、当該VideoSourceModeに含まれるRebootフラグを更新するように、コントローラー105を構成しても良い。
より詳細には、S903において、S902で取得されたVideoSourceToken情報に関連付けられたVideoSourceMode情報から、フレームレート情報を取得するように、コントローラー105を構成しても良い。
ここで、フレームレート情報とは、ビデオソース部101から出力された画像信号をクライアント端末200に送信する際のフレームレートを示す情報である。具体的には、VideoSourceMode情報における最大フレームレート情報(MaxFramerate)に相当する。
さらに、S905において、次のような処理をするようにコントローラー105を構成しても良い。すなわち、処理対象のVideoSourceModeのフレームレート情報と、S902で取得されたVideoSourceToken情報に関連付けられたVideoSourceMode情報のフレームレート情報と、を比較する処理である。
なおかつ、S906において、S905で比較された2つの符号化方式情報が同じ場合には、S907に処理を進め、S905で比較された2つの符号化方式情報が異なる場合には、S908に処理を進めるように、コントローラー105を構成しても良い。
また、上述の実施例では、2つのVideoSourceMode情報を比較し、VideoSourceModeに含まれるRebootフラグを更新するように、コントローラー105を構成したが、これに限られるものではない。
たとえば、VideoSourceMode情報とVideoEncorderConfiguration情報とを比較して、VideoSourceMode情報に含まれるRebootフラグを更新するように、コントローラー105を構成しても良い。
たとえば、VideoSourceModeとVideoEncorderConfigurationとが整合するか否かを判定するように、コントローラー105を構成しても良い。
さらに、整合しないと判定した場合には、VideoSourceModeに含まれるRebootの値を“true”に設定するように、コントローラー105を構成しても良い。なおかつ、整合すると判定した場合には、VideoSourceModeに含まれるRebootの値を“false”に設定するように、コントローラー105を構成しても良い。
なお、VideoSourceModeとVideoEncorderConfigurationとが整合するか否かの判定については、コントローラー105を以下のように構成しても良い。
たとえば、VideoSourceModeの符号化方式とVideoEncorderConfigurationの符号化方式とが同じである場合には、次のように判定するように、コントローラー105を構成してもよい。すなわち、VideoSourceModeとVideoEncorderConfigurationは整合するという判定である。
一方、VideoSourceModeの符号化方式とVideoEncorderConfigurationの符号化方式とが異なる場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeとVideoEncorderConfigurationは整合しないという判定である。
あるいは、VideoSourceModeの最大解像度がVideoEncorderConfigurationの解像度よりも大きい場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeとVideoEncorderConfigurationは整合するという判定である。
一方、VideoSourceModeの最大解像度がVideoEncorderConfigurationの解像度よりも小さい場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeとVideoEncorderConfigurationとが整合しないという判定である。
他にも、VideoSourceModeの最大フレームレートがVideoEncorderConfiguratioのフレームレートよりも大きい場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeとVideoEncorderConfigurationとが整合すると判定するという判定である。
一方、VideoSourceModeの最大フレームレートがVideoEncorderConfiguratioのフレームレートよりも小さい場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeとVideoEncorderConfigurationとが整合しないという判定である。
続いて、VideoSourceModeの情報と、MediaProfileの情報とを比較して、VideoSourceModeに含まれるRebootフラグを更新するように、コントローラー105を構成しても良い。
たとえば、VideoSourceModeの情報とMediaProfileの情報とが整合するか否かを判定するように、コントローラー105を構成しても良い。
さらに、整合しないと判定した場合には、VideoSourceModeに含まれるRebootの値を“true”に設定するように、コントローラー105を構成しても良い。なおかつ、整合すると判定した場合には、VideoSourceModeに含まれるRebootの値を“false”に設定するように、コントローラー105を構成しても良い。
なお、VideoSourceModeとMediaProfileとが整合するか否かの判定については、コントローラー105を以下のように構成しても良い。 たとえば、VideoSourceModeの符号化方式とMediaProfileに対応する符号化方式とが同じである場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeとMediaProfileとが整合するという判定である。
一方、VideoSourceModeの符号化方式とMediaProfileに対応する符号化方式とが異なる場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeの符号化方式とMediaProfileとが整合しないという判定である。
ここで、MediaProfileに対応する符号化方式とは、このMediaProfileが関連付けられたVideoEncorderConfigurationの符号化方式である。
あるいは、VideoSourceModeの最大解像度がMediaProfileに対応する解像値を“false”に度よりも大きい場合には、次のように判定するようにコントローラー105を構成しても良い。すなわち、VideoSourceModeとMediaProfileとが整合するという判定である。
一方、VideoSourceModeの最大解像度がMediaProfileに対応する解像度よりも小さい場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeとMediaProfileとが整合しないという判定である。
ここで、MediaProfileに対応する解像度とは、このMediaProfileが関連付けられたVideoEncorderConfigurationの解像度である。
他にも、VideoSourceModeの最大フレームレートがMediaProfileに対応する解像度よりも大きい場合には、次のように判定するようにコントローラー105を構成しても良い。すなわち、VideoSourceModeとMediaProfileとが整合すると判定するという判定である。
一方、VideoSourceModeの最大フレームレートがMediaProfileに対応する解像度よりも小さい場合には、次のように判定するように、コントローラー105を構成しても良い。すなわち、VideoSourceModeの最大フレームレートがMediaProfileとが整合しないという判定である。
ここで、MediaProfileに対応する最大フレームレートとは、このMediaProfileが関連付けられたVideoEncorderConfigurationのフレームレートである。
続いて、VideoSourceModeの情報と、複数のMediaProfileのそれぞれとを比較して、VideoSourceModeに含まれるRebootフラグを更新するように、コントローラー105を構成しても良い。
たとえば、複数のMediaProfileのそれぞれについて、VideoSourceModeと整合するか否かを判定するように、コントローラー105を構成しても良い。
さらに、次のような場合には、Rebootの値を“true”に設定するよう、コントローラー105を構成しても良い。すなわち、VideoSourceModeと整合しないと判定されたMediaProfileの数がVideoSourceModeと整合すると判定されたMediaProfileの数よりも多い場合である。
一方、次のような場合には、Rebootの値を“false”に設定するよう、コントローラー105を構成しても良い。すなわち、VideoSourceModeと整合しないと判定されたMediaProfileの数がVideoSourceModeと整合すると判定されたMediaProfileの数よりも少ない場合である。
なお、VideoSourceModeとMediaProfileが整合しているか否かの判定は、上述したものと同様である。
続いて、MediaProfileが生成されているか否かに応じ、VideoSourceModeに含まれるRebootの値を更新するように、コントローラー105を構成しても良い。
具体的には、MediaProfileが生成されていると判定した場合には、VideoSourceModeに含まれるRebootの値を“true”に設定するように、コントローラー105を構成しても良い。さらに、MediaProfileが生成されていると判定しない場合には、VideoSourceModeに含まれるRebootの値を“false”に設定するように、コントローラー105を構成しても良い。
続いて、クライアント端末200によりMediaProfileがアクセスされているか否かに応じ、VideoSourceModeに含まれるRebootの値を更新するように、コントローラー105を構成しても良い。
具体的には、MediaProfileがアクセスされていると判定した場合には、VideoSourceModeに含まれるRebootの値を“true”に設定するように、コントローラー105を構成しても良い。さらに、MediaProfileがアクセスされていると判定しない場合には、VideoSourceModeに含まれるRebootの値を“false”に設定するように、コントローラー105を構成しても良い。
続いて、MediaProfileが存在しているか否かに応じ、VideoSourceModeに含まれるRebootの値を更新するように、コントローラー105を構成しても良い。
具体的には、MediaProfileが存在していると判定した場合には、VideoSourceModeに含まれるRebootの値を“true”に設定するように、コントローラー105を構成しても良い。さらに、MediaProfileが存在していると判定しない場合には、VideoSourceModeに含まれるRebootの値を“false”に設定するように、コントローラー105を構成しても良い。
続いて、上述の実施例において、GetVideoSourceModesコマンド、GetVideoSourceModesResponseメッセージは、OnvifにおけるMediaサービスに対応するものである。同様に、上述の実施例において、SetVideoSourceModeコマンド、SetVideoSourceModeコマンド、SetVideoSourceModeResponseメッセージも、OnvifにおけるMediaサービスに対応する。
なお、上述の実施例において、ネットワークカメラ100が提供するサービスであってOnvifで定義されているサービスには、PTZサービス、Mediaサービス、VideoAnalyticsサービス、Imagingサービスが含まれる。ここで、本実施例では、これらのサービスを示すネットワーク上のアドレスのそれぞれは、同じであるものとするが、これに限られるものではない。
たとえば、これらのネットワーク上のアドレスのそれぞれは、互いに異なっていても良い。
続いて、本実施例におけるネットワークカメラ100に対してステッピングモーターなどの動力源を追加し、追加した動力源により、ビデオソース部101がパン方向またはチルト方向に回転するように構成しても良い。さらに、本実施例におけるネットワークカメラ100に対し、半球形状に形成されたドームカバーを追加しても良い。このドームカバーは、透明性を有し、半球形状に形成されるものとする。
また、本実施例における符号化部103が対応できる符号化方式は、MJPEG,MPEG4,H.264などに限られるものではない。たとえば、符号化される映像データにおいて、複数の画素から構成されるブロックであって量子化の単位となるブロックの大きさを選択可能な符号化方式に対応していても良い。