以下に、本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は、図示された構成に限定されるものではない。
また、以下の実施例における制御コマンド(以下コマンドと称することがある)は、例えばOpen Network Video Interface Forum(以下ONVIFと称することがある)規格に基づいて定められているものとする。そして、ONVIF規格では、例えば、XML Schema Definition言語(以下、XSDと称することがある)を用いることにより、このコマンドの定義を行う。
以下に、図1を参照して本実施例に係るネットワーク構成について説明する。より詳細には、図1は、本実施例に係る画像処理システムのシステム構成の一例を示す図である。
本実施例における画像処理システムにおいて、画像処理装置としての監視カメラ1000と外部装置2000とは、IPネットワーク網1500を介して(ネットワーク経由で)相互に通信可能な状態で接続される。これにより、監視カメラ1000は、画像をIPネットワーク網1500経由で外部装置2000に配信することができる。
なお、本実施例における外部装置2000は、PC等の外部装置の一例である。又、本実施例における監視システムは、画像処理システムに相当する。
また、IPネットワーク網1500は、例えばEthernet(登録商標)等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成されるものとする。しかしながら、本実施例においては、監視カメラ1000と外部装置2000との間の通信を行うことができるものであれば、その通信規格、規模、構成を問わない。
例えば、IPネットワーク網1500は、インターネットや有線LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)等により構成されていても良い。なお、本実施例における監視カメラ1000は、例えば、PoE(Power Over Ethernet(登録商標))に対応していても良く、LANケーブルを介して電力を供給されても良い。
外部装置2000は、監視カメラ1000に対し、各種制御コマンドであるコマンドを送信する。これらのコマンドは、例えば、監視カメラ1000の画像の一部(位置、サイズ等)を切り出す機能(以下トリミングと称することがある)のためのコマンド、撮像画像のストリーミングを開始させるためのコマンド等である。
一方、監視カメラ1000は、これらのコマンドに対する設定情報を含むレスポンスや撮像画像等を外部装置2000に送信する。
続いて、図2は本実施例に係る監視カメラ1000のハードウェア構成の一例を示す図である。
101は撮像部である。レンズと撮像素子を含み、被写体を撮像しデジタル情報として、取り込むことができる。また、不図示の撮像方向(パン、チルト、ズーム(以下PTZと称することが有る))を変更する変更動作を行う撮像方向変更手段を備える。102はトリミング部、103はトリミング設定部である。トリミング部102はトリミング設定部103が保持するトリミング設定情報(座標、範囲、移動速度、所定ID等)を参照し、その情報に従い撮像部101で撮影される映像から所定の領域を切り出すことで撮影映像に対するトリミングを実現する。切り出す領域等は動的変化させてもよい。またトリミング設定情報には座標情報等だけでなくトリミング機能の有効/無効に関する情報も含まれる。無効となっている場合は、切り出す前の映像が映像伸長部104に渡される。トリミング設定部103が保持するトリミング設定情報は制御部115により設定される。
104は映像伸長部、105は映像伸長設定部である。映像伸長部104は映像伸長設定部105が保持する映像サイズ設定情報を参照し、その情報に従いトリミング部102でトリミングされた映像を所望の映像サイズに伸長する。映像伸長設定部103が保持する映像サイズ設定情報は制御部115により設定される。
本実施例において、このトリミング部102と映像伸長部104の組み合わせにより画像切り出し機能が実現される。
106は符号化部である。映像伸長部104で所定のサイズに変更された映像の符号化を行う。107は付随情報(以下メタデータと称することがある)を生成する情報生成手段としてのメタデータ生成部である。トリミング設定部103の設定情報を参照し、トリミング設定情報等を含むメタデータを生成する。
108はデータ生成部、109はデータ設定管理部である。データ生成部108はデータ設定管理部109が保持する送信設定情報を参照し、その情報に従い符号化部106、メタデータ生成部107の出力を組み合わせてデータを生成する。データ設定管理部109が保持する送信設定情報は制御部115により設定される。本実施例において、送信設定情報とはONVIFで定義されているMediaProfile等を含む。
MediaProfileとは、ONVIFで定義されたストリーミングに関する管理データである。具体的には図9に示すデータ構成を有する。MediaProfileの識別IDとしてProfileTokenを持ち、符号化設定等に関するVideoEncoderConfiguration等を含む各種設定項目への関連付けのリンクを保持する。また、PTZの設定情報(変更情報)等に関するPTZConfiguration、メタデータの設定等に関するMetadataConfigurationのほか、音声のエンコーダ等を含む各種設定項目への関連付けのリンクも保持する。なお、本実施例において、ProfileTokenは、送信設定情報であるMediaProfileを識別するための設定識別情報に相当する。なお、本実施例において、符号化設定等に関するVideoEncoderConfigurationは、符号化情報に相当する。なお、本実施例において、PTZの設定に関するPTZConfigurationは、撮像方向設定に相当する。なお、本実施例において、メタデータ設定に関するMetadataConfigurationは、付随情報設定に相当する。110は記録処理部、111は記録設定管理部である。記録処理部110は記録設定管理部111が保持する記録処理の設定情報を参照し、その情報に従いデータ生成部108の出力を記録媒体113に所定のファイル形式で記録する。記録設定管理部111が保持する記録処理の設定情報は制御部115により操作される。本実施例において、記録処理の設定情報とはONVIFで定義されているRecordingJob等を含む。RecordingJobとは、ONVIFで定義された録画処理に関する録画設定の管理情報である。具体的には図10に示すデータ構成を有する。RecordingJobの識別IDとしてJobTokenを持ち、録画対象のデータを指し示すデータソースとしてのMediaProfileTokenの情報を保持する。また、MediaProfileTokenに従うストリーミングの録画先となるRecordingを示すRecordingToken、録画処理の状態を示すStatusの情報も保持する。Recordingに関しては後述する。本実施例において、JobTokenは、記録処理の設定情報であるRecordingJobを識別するための記録識別情報に相当する。
112はデータ処理部である。データ生成部108が出力するストリーミングデータを通信部117に送り出す処理を行う。データは通信部117を経由してネットワークに送出される。
113は記録媒体である。記憶手段として録画データや各種設定ファイルや制御プログラムの格納領域、プログラム実行中のワーク領域、データの格納領域等の情報を保持することが可能である。本実施例において録画データとは、メディアコンテナとしてONVIFが規定するRecording、メディアコンテナで管理される映像、メタデータのことである。ここでONVIFが規定するRecordingとは、具体的には図11に示すデータである。識別IDとしてRecordingTokenを持ち、VideoTrack、AudioTrack、MetadataTrackを保持する。各Trackは該当するメディアを記録したファイルへのリンクを保持する。なお、本実施例においてRecordingTokenは、データであるRecordingTokenを識別するためのデータ識別情報に相当する。
114は記録媒体制御部である。制御部115の指示に従い、記録媒体113に対して情報の読み書きを行う。
115は制御部である。各部に対する指示・操作などを行う中央演算処理回路(以下、CPUと称することがある)を含み、システム全体の制御や、コマンド処理部116から出力されるコマンドを処理することで外部装置からの指示に対応する。また、記録媒体制御部114等を介して、又は直接的に記録媒体113に保存されている画像を読み出し、各ブロックに送信することもできる。また、記憶媒体113に保持されているコンピュータプログラムを実行することで本発明の実施例等に係る動作を実行する。
116はコマンド処理部である。通信部117が受信した外部装置からのコマンドを受信し、制御部115に受け渡す。
117は通信部である。ネットワークを介して外部装置とやり取りされるコマンドの送受信や、データ処理部112が出力するデータをネットワークに送出する処理を行う。
本実施例においては、監視カメラ1000は撮像部101を有する構成としたが、記録媒体113に保存されている画像を送信する場合は、必ずしも撮像部101等を有しなくてもよい。
図3は、図1の監視カメラ1000とネットワーク経由で通信する外部装置2000のハードウェア構成の一例を示す図である。
201は通信部である。監視カメラ1000が送信するデータをネットワーク経由で受信する。また、ネットワーク経由で接続された監視カメラ1000に対し制御コマンドを送信することも可能である。なお、本実施例において、通信部201は制御コマンドを送信するためのコマンド送信手段に相当する。
202は復号化部である。データに含まれる符号化された映像データを復号化して表示データを生成する。
203は表示部である。復号化部202で復号化されたデータを表示し、ユーザーに監視カメラ1000が配信する映像を提供する。また、外部装置2000において実行可能なアプリケーションや操作に必要なユーザーインターフェース等を表示することも可能である。
204は入力部である。マウス、キーボード、タッチパネル等によりユーザーが行う操作情報を取り込み、後述する制御部205に入力内容を送信する。
205は制御部である。CPUを含み、外部装置2000を制御する。そして、通信部201、復号化部202、表示部203、入力部204、記憶部206への制御を行う。また、記憶部206に保持されているコンピュータプログラムを実行することで本発明の実施例等に係る動作を実行する。
206は記憶部である。各ブロックの制御に必要な設定データや、アプリケーション等のプログラム(コンピュータプログラムを含む)、ネットワークカメラとの通信の為のコマンド情報などが記憶されている。
図4は本実施例における、外部装置2000で動作するアプリケーションであり表示部203に表示される表示画面の一例である。
当該アプリケーションは、監視カメラ1000から送られる画像であるストリーミング画像を表示する画面410(以下ストリーミング画面と称することがある)と録画等の各種設定用の画面420(以下録画設定画面と称することがある)が表示可能である。本実施例の監視カメラ1000、外部装置2000、外部装置2000上で動作するアプリケーションはONVIFプロトコルに準拠している。ネットワークを介して監視カメラ1000と外部装置2000でやり取りされる制御コマンドもONVIFが規定するコマンド群となる。
ストリーミング画面410は、モニタリング用途の基本である監視カメラ1000から送信された映像データの表示を行う。具体的には、映像表示領域411で映像の表示を行う。また、ストリーミング状態領域412で表示されている映像の映像状態である映像情報、メタデータ等を表示する。
また、PTZ操作領域413は、画像の切り出し領域を設定するためのユーザーインターフェースである。そして、このPTZ操作領域413を操作することで、切り出し領域を操作することができる。つまり、この操作によって監視カメラ1000で撮像される画像の構図が変更される。具体的には、本実施例において、PTZ操作領域413を操作が操作された場合、制御部205は監視カメラ1000のトリミング設定部103が管理するトリミング設定情報を操作するためのコマンドを生成する。そして、このコマンドを通信部201経由で監視カメラ1000に送信する。ここで、この通信部201から送信されるコマンドはONVIFプロトコルに準拠している。そして、監視カメラ1000の制御部115は、受信したトリミング設定情報に応じて、トリミング設定部103の設定情報を更新する。
録画設定アイコン415は、表示画面を録画設定画面420に遷移させるためのインターフェースである。録画設定アイコン415を操作することで、表示画面を録画設定画面420に遷移させることができる。
次に録画設定画面420を説明する。該画面にて、ユーザーは録画処理のための設定を行う。本実施例において、録画設定とは、監視カメラ1000の記録設定管理部111で管理されるRecordingJobを設定することを意味する。
データソース設定領域421では、データソースを指定する。具体的には監視カメラ1000が保持するMediaProfileの一覧を、プルダウンメニューとして表示し、ユーザーに選択可能とする。そして、ユーザーが選択したMediaProfileに対応づけられた、MediaProfileTokenを指定することで、データソースを指定する。ここで、MediaProfileの一覧を表示するために、外部装置2000は予め後述する手順で監視カメラ1000からMediaProfileの情報を取得しておく必要がある。
記録先領域422では、MediaProfileTokenに従うデータソースの録画先の指定を行う。具体的には、監視カメラ1000が保持するRecordingの一覧を、プルダウンメニューとして表示し、ユーザーに選択可能とする。そして、ユーザーが選択したRecordingに対応づけられたRecordingTokenを指定することで、データソースの録画先を指定する。ここで、Recordingの一覧を表示するために、予め後述する手順で監視カメラ1000からRecordingの情報を取得しておく必要がある。
録画状態領域423では、録画処理の状態を示すStatusの情報を指定する。指定可能な状態としてはActiveとIdleの二種類であり、録画処理を動作させるか中断させるかを選択できる。所望の設定が完了したら、適用アイコン424をクリックすることで設定を有効にすることができる。このとき、外部装置2000はコマンドを発行する。そして、当該コマンドを受信した監視カメラ1000は記録設定管理部111で管理されているRecordingJobの情報を変更する。監視カメラ1000は、Status情報がActiveとなる変更だった場合、記録処理部110による記録処理動作が開始(有効化)する。
逆に録画設定を反映せずに辞める場合はキャンセルアイコン425をクリックすることで録画設定処理を辞めることが可能である。録画設定画面420での処理の完了により、表示画面をストリーミング画面410に遷移する。
そして、設定画面420にて設定した録画設定の内容は、録画状態領域416に表示される。
ユーザーは本アプリケーションを利用することにより、所望の設定に従う映像の表示や録画処理の設定又は、実行をすることが可能となる。
図5は、本実施例における監視カメラ1000と外部装置2000の間で送受信されるコマンドの一例を示したコマンドシーケンス図である。
401、402はGetProfilesコマンドのやり取り(以下トランザクションと称することがある)である。このトランザクションは、監視カメラ1000が保持する配信プロファイルに相当するMediaProfileを取得するためのトランザクションである。ここで、MediaProfileとは、監視カメラ1000の各種設定項目を関連づけて記憶するためのパラメータセットである。
この各種設定項目は、このMediaProfileのIDであるProfileTokenと、撮像部の情報、画像のエンコーダ、音声のエンコーダ等を含む。そして、MediaProfileは、これら各種設定項目へのリンクを保持する。
そして、外部装置2000が発行するGetProfilesコマンドは、監視カメラ1000が保持しているMediaProfileを取得する。加えて、MediaProfileを識別するためのIDに相当するProfileTokenも取得することを目的としたコマンドである。
ここで、GetProfilesコマンドを発行する外部装置2000の処理は、制御部205が記憶部206にコマンドデータを作成し、通信部201に書き出すことで実現可能である。
また監視カメラ1000の処理は、通信部117が当該コマンドを受信した後に、コマンド処理部116が適切にパケット処理等を行う。そして、コマンド処理部116が当該コマンドの受信を制御部115に通知する。その後、制御部115が、データ設定管理部109が保持するMediaProfileの情報を取得する。その上で、制御部115は、GetProfilesResponseメッセージを生成し、コマンド処理部116を経由し、通信部117から送信する。送信されたコマンドがGetProfilesResponse402となる。つまり、外部装置2000は、GetProfilesトランザクションにより、データソースとして利用可能なMediaProfileの情報を取得する。このコマンド処理により、データソース領域421のプルダウンメニューとしてMediaProfileの一覧を表示可能となる。
403、404はGetRecordingsトランザクションである。このトランザクションは、外部装置2000が発行するGetRecordingsコマンドによって、監視カメラ1000が保持しているRecordingの情報を取得するためのトランザクションである。加えて、Recordingを識別するためのIDに相当するRecordingTokenも取得することを目的としたコマンドである。
ここで、GetRecordingsコマンドを発行する外部装置2000の処理は、制御部205が記憶部206にコマンドデータを作成し、通信部201に書き出すことで実現可能である。
また監視カメラ1000の処理は、通信部117が当該コマンドを受信した後に、コマンド処理部116が適切にパケット処理等を行う。そして、コマンド処理部116が当該コマンドの受信を制御部115に通知する。その後、制御部115が、記録媒体113に保存されているRecordingの情報を、記録媒体制御部114を経由で取得する。その上で、制御部115は、GetRecordingsResponseメッセージを生成し、コマンド処理部116を経由し、通信部117から送信する。送信されたコマンドがGetRecordingsResponse404となる。つまり、外部装置2000は、GetRecordingトランザクションにより、録画設定情報として利用可能なRecordingの情報を取得する。このコマンド処理により、記録先領域422のプルダウンメニューとしてRecordingの一覧を表示可能となる。
405では、ユーザーによる録画設定画面420での録画設定処理である。これは、図10に記載のRecordingJobを生成するための処理である。具体的には、データソース設定領域421等をユーザーが操作することで、RecordingJobの生成に必要なでMediaProfileToken、RecordingTokenStatusを指定する。この操作により監視カメラ1000に設定するRecordingJobが指定される。そして、適用アイコン215のクリック等の操作によって録画設定を適用させるため、ONVIFのコマンドを発行する処理へ移行する。
406、408では、SetRecordingJobトランザクションである。このトランザクションは、外部装置2000が発行するSetRecordingJobコマンドによって、監視カメラ1000が保持するRecordingJobへの設定を行うことを目的としたコマンドである。
SetRecordingJobコマンドを発行する外部装置2000の処理は、制御部205が記憶部206にコマンドデータを作成し、通信部201に書き出すことで実現可能である。
また監視カメラ1000の処理は、通信部117が当該コマンドを受信した後に、コマンド処理部116が適切にパケット処理等を行う。そして、コマンド処理部116が当該コマンドの受信を制御部115に通知する。その後、制御部115が、記録設定管理部111で管理するRecordingJobに対する設定を行う。
この時の監視カメラ1000の処理が407である。407の詳細は図6に示すフローチャートで後述する。
407の処理後、SetRecordingJobResponseメッセージを生成し、コマンド処理部116を経由し、通信部117から送信する。送信されたコマンドがSetRecordingJobResponse408となる。つまり、ユーザーが録画設定画面420の適用アイコンを操作したことに連動して発行されるSetRecordingJobコマンドより、監視カメラ1000の録画処理を制御することができる。
ここで、図5における処理407について、図6のフローチャートを用いて制御部115の動作を説明する。制御部115に含まれるCPUが実行するプログラムは記憶媒体113に記憶されている。
制御部115は、ステップS500で処理を開始する。そして、ステップS501に処理を進める。
制御部115は、ステップS501において、受信したSetRecordingJobコマンドの内容に従い、RecordingJobの情報を更新する処理を行う。具体的には、コマンド処理部116が当該コマンドの受信を制御部115に通知後、制御部115が記録設定管理部111のRecordingJobの情報を更新する。そして、ステップS502に処理を進める。
制御部115は、ステップS502において、画像切り出しの設定が有効か否かの確認を行う。本実施例において、本設定は、外部装置2000のストリーミング画像410上のPTZ操作413等を用いて行われる。具体的には、PTZ操作413をユーザーが操作することで設定されたトリミング設定情報を外部装置2000は、ネットワーク経由で監視カメラ1000に送信する。トリミング設定情報を受信した制御部115は、当該トリミング設定情報をトリミング設定部103に設定することで、画像切り出し機能を制御することができる。
そして、制御部115がトリミング設定部103に設定されたトリミング情報を取得することにより切り出し処理が有効になっているか否かの確認が可能である。切り出し処理が有効な場合は、制御部115はステップS505へ処理をすすめ、無効となっている場合はステップS503へ処理を進める。
制御部115は、ステップS503では、ステップS501で更新したRecordingJobのデータソースとして設定されたMediaProfileに、MetadataConfigurationが存在するか否かを確認する。具体的には、制御部115がストリーミング設定管理部109のMediaProfileの情報を取得し確認する。
制御部115は、MediaProfileに、MetadataConfigurationが存在する場合はステップS505へ処理を進め、存在しない場合はステップS504へ処理を進める。
制御部115は、ステップS504ではRecordingJobのデータソースとなるMediaProfileにMetadataConfigurationを追加する。具体的には、制御部115がストリーミング設定管理部109に対して当該MediaProfileを更新する。
制御部115は、ステップS505では、SetRecordingJobコマンドに対するSetRecordingJobResponseコマンドを作成する。その後、制御部115は、ステップS506に処理を進める。
制御部115は、ステップS506に移行した時点で本プログラム処理は終了する。図6のフローチャートを処理することで、画像切り出し機能が有効な場合に、外部装置2000へ送信するデータにメタデータの記録が有効になる。これにより、画像切り出し機能の座標情報等がメタデータファイルに記録されることになる。外部装置2000は、監視カメラ意1000に対して、画像切り出し機能の設定及び、MetadataConfigurationの設定は個別に実施することが可能である。つまり、監視カメラ1000としては、MetadataConfigurationの設定がなされていない状態で、画像切り出し機能を有効にする設定がなされる可能性がある。このような場合においても、図6の示した動作を実施することで、監視カメラ1000が画像切り出し機能を有効にした状態で実行する録画処理において、録画処理を実行する際に、外部装置2000へ送信するデータにメタデータを含めることができる。
以上より、外部装置2000からのネットワーク経由で行われる設定に対して、切り出した画像の再生等に用いられる座標情報等を含むメタデータを得ることができる。そして、外部装置2000はユーザーが意図したように画像を表示することが可能となる。つまり、ユーザーは録画データの再生タイミングで、ユーザーが録画時に実行した画像切り出しによるトリミング映像を再現するために、メタデータの有無を意識する必要がない。こうしたことから、ユーザーに対し利便性の高い録画処理及び画像切り出し機能を有する監視カメラ等を提供できる。
本発明を適用した第一の実施例では、画像切り出し機能の有効時に、MediaProfileに対するMetadataConfigurationの追加を自動で行う方法を説明した。一方で、RecordingJobの内容を更新した際に、自動でMediaProfileからMetadataConfigurationを削除することも可能である。例えば、制御部115の処理がステップS503からステップS504に移行した場合、MediaProfileにMetadataConfigurationが存在していなかった事を覚えておく。そして、Status情報がIdleとなるSetRecordingJobコマンドを受信した時に、MetadataConfigurationを削除する方法等が考えられる。これにより、録画処理を停止(無効化)するとともにメタデータの関連付けを解除処理が可能となる。つまり、録画処理の期間だけ、MetadataConfigurationを有効にするといったことが可能である。
なお、本実施例においては、トリミング処理によって、PTZ動作を実現しているが、撮像方向変更手段を用い物理的に撮像部の撮影方向を変更して、PTZ動作を実現する場合においても、本実施例の動作を行うことで、同様の効果を得ることができる。
本発明の第2の実施例では、画像切り出し機能が有効な条件下での録画処理における外部装置2000に関する実施形態を説明する。監視カメラ1000および外部装置2000、外部装置2000上で動作するアプリケーションで構成されるシステムは第1の実施例の図1、図2、図3、図4と同じであるため詳細な説明は省略する。
図7は、本実施例における監視カメラ1000と外部装置2000の間で送受信されるコマンドの一例を示したコマンドシーケンス図である。
GetProfiles、GetRecordings、SetRecordingJobトランザクションは第1の実施例における図5の説明と同様である。本実施例では、第1の実施例との差分について説明する。
605、606はGetMetadataConfigurationsトランザクションである。このトランザクションは、監視カメラ1000が保持しているMetadataConfigurationの情報を取得するためのトランザクションである。
ここで、GetMetadataConfigurationsコマンドは、監視カメラ1000が保持しているすべてのMetadataConfigurationの情報を取得することを目的としたコマンドである。GetMetadataConfigurationsコマンドを発行する外部装置2000の処理は、制御部205が記憶部206にコマンドデータを作成し、通信部201に書き出すことで実現可能である。
また監視カメラ1000の処理は、通信部117が当該コマンドを受信した後に、コマンド処理部116が適切にパケット処理等を行う。そして、コマンド処理部116が当該コマンドの受信を制御部115に通知する。その後、制御部115が、メタデータ生成部107が管理するMetadataConfigurationの情報を取得する。その上で、制御部115は、GetMetadataConfigurationsResponseコマンドを生成し、コマンド処理部116を経由し、通信部117に対して送信する。送信されたコマンドがGetMetadataConfigurationsResponse606となる。つまり、外部装置2000は、録画設定画面420において、その後のAddMetadataConfigurationで指定することが可能となるMetadataConfigurationの情報を得る。
608、609はAddMetadataConfigurationトランザクションである。このトランザクションは、監視カメラ1000が保持する所定のMediaProfileに対して、MetadataConfigurationの追加を要求するためのトランザクションである。
AddMetadataConfigurationコマンドを発行する外部装置2000の処理は、制御部205が記憶部206にコマンドデータを作成し、通信部201に書き出すことで実現可能である。
また、監視カメラ1000の処理は、通信部117が当該コマンドを受信した後に、コマンド処理部116が適切にパケット処理等を行う。そして、コマンド処理部116が当該コマンドの受信を制御部115に通知する。その後、制御部115が、データ設定管理部109が管理するMediaProfileの情報を更新する。その上で、制御部115は、AddMetadataConfigurationResponseコマンドを生成し、コマンド処理部116を経由し、通信部117に対して送信する。送信されたコマンドがAddMetadataConfigurationResponse609となる。つまり、外部装置2000は、録画設定画面420において、録画設定をするとともにAddMetadataConfigurationコマンドを発行する。これにより、所望のMediaProfileに従うストリーミングにMetadataを付与することが可能となる。
ここで、図7におけるAddMetadataConfigurationトランザクションを含む処理607について、図8のフローチャートを用いて制御部205の動作を説明する。制御部205が実行するプログラムは記憶部206に記憶されている。
制御部205は、ステップS701で処理を開始する。そして、ステップS702に処理を進める。
制御部205は、ステップS702において、監視カメラ1000の画像切り出しの設定が有効であるか否かの確認を行う。この確認は、監視カメラ1000に画像切り出し設定の状態を確認するコマンドを発行してもよいし、外部装置2000のストリーミング画面のPTZ操作領域413の設定情報を用いてもよい。また、画像切り出し設定情報が記載されている特定URLへアクセスしてもよい。画像切り出しの設定が有効であると判断された場合、制御部205は処理をステップS703に進める。一方で、無効であると判断された場合は、制御部205は処理を終了する。
制御部205は、ステップS703において、録画設定画面420におけるデータソース設定領域421にてユーザーが設定したMediaProfileにMetadataConfigurationが含まれているか否かの確認を行う。制御部205は、MediaProfileにMetadataConfigurationが含まれていた場合は、処理を終了する。一方で、含まれていなかった場合は、ステップS704に処理を進める。
制御部205は、ステップS704ではAddMetadataConfigurationコマンドの作成が行う。具体的には、制御部205が記憶部206にAddMetadataConfigurationコマンドのデータを作成することで実現できる。その後、制御部205は、ステップS705に処理を進める。
制御部205は、ステップS705では、作成したコマンドを送信する。具体的には、ステップS704で生成したコマンドデータを制御部205が通信部201に書き出すことで実現可能である。これにより、AddMetadataConfigurationコマンド608が発行される。その後、制御部205は、ステップS706に処理を進める。
制御部205は、ステップS706ではAddMetadataConfigurationResponseメッセージが、監視カメラ1000からの受信を待機する。具体的には、制御部205が通信部201を監視することで実現できる。制御部205は、監視カメラ1000からのAddMetadataConfigurationResponseコマンド609を受信した時点で、処理をステップS707に移行し、処理を終了する。
以上より、画像切り出し機能を有効にした状態で実行する録画処理において、録画対象となるデータの中にメタデータを含む状態を外部装置2000の処理で実現できる。これにより、画像切り出しの対象となる座標情報を外部装置2000が取得可能となる。ユーザーは録画データの再生タイミングで、ユーザーが録画時に実行したトリミング映像を再現するためにメタデータの録画を意識する必要がない。こうしたことから、ユーザーに対しより利便性の高い録画処理を有するモニタリングシステムを提供できる。
本発明を適用した第2の実施例では、画像切り出し機能の有効時に、MediaProfileに対するMetadataConfigurationの追加を外部装置2000より自動で行う方法を説明した。一方で、外部装置2000がMediaProfileからMetadataConfigurationを削除することも可能である。例えば制御部205がステップS703からステップS704に移行した場合、MediaProfileにMetadataConfigurationが存在していなかった事を覚えておく。そして、Status情報がIdleとなるSetRecordingJobコマンドを送信するとき時に、併せてRemoveMetadataConfigurationコマンドを発行する方法等が考えられる。ここで、RemoveMetadataConfigurationコマンドは監視カメラ1000が保持する所定のMediaProfileからMetadataConfigurationを削除することを要求するコマンドである。RemoveMetadataConfigurationコマンドを発行する外部装置2000の処理は、制御部205が記憶部206にコマンドデータを作成し、通信部201に書き出すことで実現可能である。また監視カメラ1000の処理は、コマンド処理部116が該コマンドの受信を制御部115に通知後、制御部115が、ストリーミング設定管理部109が管理するMediaProfileの情報を更新する。その上で、RemoveMetadataConfigurationResponseメッセージに生成し、通信部117に対して送出する。これにより、録画処理の期間だけ、MetadataConfigurationを有効にするといったことが可能である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は読取可能な記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。