以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は、図示された構成に限定されるものではない。また、以下の実施例におけるコマンドは、例えばOpen Network Video Interface Forum(以下ONVIFと称する場合がある)規格に基づいて定められているものとする。
(実施例1)
以下に、図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に送信する。また、監視カメラ1000は、クライアント装置2000から受信した画角を変更するためのコマンドに応じて画角を変更する。
続いて、図2は、本実施例に係る監視カメラ1000のハードウェア構成の一例を示す図である。
図2における制御部1001は、監視カメラ1000の各構成要素を統括的に制御する。また、制御部1001は、CPU(Central Processing Unit)により構成される。そして、制御部1001は、記憶部1002に記憶されたプログラムを実行する。又は、制御部1001は、ハードウェアを用いて制御を行うこととしても良い。
記憶部1002は、主に制御部1001が実行するプログラム格納領域、プログラム実行中のワーク領域、後述する撮像部1004で生成される画像データの格納領域等、様々なデータの格納領域として使用される。また、通信部1003は、各制御コマンドをクライアント装置2000から受信する。また、通信部1003は、各制御コマンドをクライアント装置2000に送信する。
撮像部1004は、不図示の撮像光学系、及びCCDやCMOS等の撮像素子などから構成される。この撮像部1004は、この撮像光学系により結像された被写体の像を撮像することにより、アナログ信号を生成する。また、撮像部1004は、生成したアナログ信号をデジタルデータに変換する。
さらに、撮像部1004は、変換したデジタルデータを画像データとして、記憶部1002、画像処理部1005に出力する。
画像処理部1005は、撮像部1004から出力された画像データを解析し、画像処理設定の内容に基づき、この画像データに対して画像処理を行う。また、画像処理部1005は、画像処理を行った画像データを記憶部1002に出力する。
なお、本実施例における画像処理には、ノイズ低減処理が含まれる。ここで、ノイズ低減処理とは、撮像部1004から出力された画像データ(に対応する撮像画像)のノイズを低減する処理である。
また、本実施例における画像処理は、ノイズ低減処理の条件を設定する露出設定機能を備える。ここで、露出条件とは、撮像部1004に含まれる撮像光学系の絞りの値、及び撮像部1004に含まれる撮像素子の露光時間(蓄積時間)等が含まれる。
また、本実施例では、ノイズを低減する低減部としての役割を果たす画像処理部1005は、2次元ノイズ低減処理及び3次元ノイズ低減処理を実行することができる。ここで、2次元ノイズ低減処理としては、移動平均フィルタ処理やメディアン処理などがよく知られている。また、3次元ノイズ低減処理としては、2次元の平面画像に対して時間方向に差分検出を行いノイズの低減を行う処理が一般的に知られている。
圧縮符号化部1006は、撮像部1004、画像処理部1005が出力する画像データに対し、圧縮符号化設定の内容に基づき、JPEG、H.264、或いはH.265等の形式に基づき圧縮符号化処理を行う。そして、圧縮符号化部1006は、圧縮符号化処理を行った画像データを、記憶部1002に出力する。
なお、本実施例における監視カメラ1000は、ストリーミング配信をクライアント装置2000から要求された場合、この要求の内容に基づき、圧縮符号化部1006から出力された画像データを、通信部1003を介して外部にストリーミング配信する。
続いて、図3は、本実施例に係るクライアント装置2000のハードウェア構成の一例を示す図である。本実施例に係るクライアント装置2000は、IPネットワーク網1500に接続されるコンピュータ装置として構成される。
図3における制御部2001は、クライアント装置2000の全体の制御を行う。制御部2001は、例えば、CPUにより構成され、後述の記憶部2002に記憶されたプログラムを実行する。又は、制御部2001は、ハードウェアを用いて制御を行うこととしてもよい。そして、記憶部2002は、制御部2001が実行するプログラム格納領域、プログラム実行中のワーク領域、データの格納領域として使用される。
通信部2003は、制御部2001の指示を受け、監視カメラ1000にコマンド等を送信する。又、通信部2003は、監視カメラ1000から、コマンドのレスポンスやストリーミング配信された画像データ等を受信する。
入力部2004は、例えば、ボタン、十字キ―、タッチパネル、マウスなどで構成される。この入力部2004は、ユーザからの指示の入力を受け付ける。例えば、入力部2004は、ユーザからの指示として、監視カメラ1000に対する各種のコマンドの送信指示の入力を受け付けることができる。
また、入力部2004は、ユーザから監視カメラ1000に対する命令送信指示が入力されると、制御部2001にこの入力があった旨を通知する。そして、制御部2001は、入力部2004に入力された指示に応じて、監視カメラ1000に対する命令を生成する。次に、制御部2001は、通信部2003に指示し、生成した命令を監視カメラ1000に送信させる。
さらに、入力部2004は、制御部2001が記憶部2002に記憶されたプログラムを実行することにより生成されるユーザへの問い合わせメッセージ等に対するユーザの応答の入力を受け付けることができる。
復号部2005は、通信部2003から出力された画像データを復号し且つ伸長する。そして、復号部2005は、この復号し且つ伸長された画像データを表示部2006に出力する。これにより、表示部2006は、復号部2005から出力された画像データに対応する画像を表示する。
なお、表示部2006は、制御部2001が記憶部2002に記憶されたプログラムを実行することにより生成されるユーザへの問い合わせメッセージ等を表示させることができる。
以上、監視カメラ1000及びクライアント装置2000のそれぞれの内部構成について説明したが、図2及び図3に示す処理ブロックは、本発明における撮像装置及び外部装置の好適な実施例を説明したものであり、この限りではない。音声入力部や音声出力部を備えるなど、本発明の要旨の範囲内で、種々の変形及び変更が可能である。
続いて、図4は、監視カメラ1000とクライアント装置2000との間の、ストリーミング配信される画像データのパラメータの設定開始から画像データがストリーミング配信されるまでの、典型的なコマンドシーケンスを説明するためのシーケンス図である。
なお、本実施例におけるトランザクションとは、クライアント装置2000から監視カメラ1000へ送信されるコマンドと、それに対して監視カメラ1000がクライアント装置2000へ返送するレスポンスのペアのことを指している。
図4における6000は、ネットワーク機器接続のトランザクションである。クライアント装置2000は、ネットワーク機器を接続するためのProbeコマンドをユニキャスト、或いはマルチキャストでIPネットワーク網1500に送信する。ネットワークに接続されている監視カメラ1000は、コマンド受け付け可能となったことを示すProbeMatchレスポンスをクライアント装置2000へ返送する。
6001は、Subscribeのトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000に対し、イベント配信を行うよう指示することができる。
6002は、GetProfilesトランザクションである。このトランザクションは、配信プロファイルに相当するMediaProfileを取得するためのトランザクションである。ここで、MediaProfileとは、監視カメラ1000の各種設定項目を関連づけて記憶するためのパラメータセットである。
この各種設定項目は、このMediaProfileのIDであるProfileTokenと、後述のVideoSourceConfiguration、後述のVideoEncoderConfigurationのほか、音声のエンコーダ等を含む。そして、MediaProfileは、これら各種設定項目へのリンクを保持する。
クライアント装置2000は、GetProfilesコマンドを監視カメラ1000に送信する。そして、GetProfilesコマンドを受信した監視カメラ1000は、MediaProfileのリストをクライアント装置2000に送信する。
これにより、クライアント装置2000は、MediaProfileを識別するための配信プロファイルIDとともに、監視カメラ1000で現在使用可能なMediaProfileのリストを取得する。
なお、クライアント装置2000は、この取得したリストを記憶部2002に記憶させる。また、クライアント装置2000は、監視カメラ1000内に存在する配信可能な配信プロファイル設定を配信プロファイルIDで識別している。
6003は、GetVideoSourcesコマンドのトランザクションである。このコマンドにより、クライアント装置2000は、監視カメラ1000が保持するVideoSourceのリストを取得する。そして、クライアント装置2000は、この取得したリストを記憶部2002に記憶させる。
ここで、VideoSourceとは、監視カメラ1000が備える1つの撮像部1004の性能を示すパラメータの集合体である。また、VideoSourceは、VideoSourceのIDであるVideoSourceTokenと、撮像部1004が出力可能な画像データの解像度を示すResolutionを含む。
クライアント装置2000は、GetVideoSourcesコマンドを監視カメラ1000に送信する。そして、GetVideoSourcesコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
6004は、GetVideoSourceConfigurationsトランザクションである。このトランザクションは、監視カメラ1000の保持するVideoSourceConfigurationのリストを取得するためのトランザクションである。
ここで、VideoSourceConfigurationとは、監視カメラ1000が備えるVideoSourceをMediaProfileに関連付けるパラメータの集合体である。また、VideoSourceConfigurationは、VideoSourceが出力する画像データのうち、どの部分を切り出して配信画像とするかを指定するBoundsを含む。
なお、以下、VideoSourceConfigurationを、VSCと称することがある。
クライアント装置2000は、GetVideoSourceConfigurationsコマンドを監視カメラ1000に送信する。そして、GetVideoSourceConfigurationsコマンドを受信した監視カメラ1000は、監視カメラ1000が保持するVSCのIDを含むリストをクライアント装置2000に返送する。
なお、クライアント装置2000は、この返送されたリストを記憶部2002に記憶させる。
6005は、GetVideoEncorderConfigurationsトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000が保持するVideoEncorderConfigurationのリストを取得する。そして、クライアント装置2000は、この取得したリストを記憶部2002に記憶させる。
クライアント装置2000は、GetVideoEncorderConfigurationsコマンドを監視カメラ1000に送信する。又、このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。なお、クライアント装置2000は、このレスポンスに対応するVideoEncorderConfigurationを記憶部2002に記憶させる。
ここで、VideoEncoderConfigurationとは、画像データの圧縮符号化に関するエンコーダ設定をMediaProfileに関連付けるパラメータの集合体である。以下、VideoEncorderConfigurationをVECと称することがある。
VECは、VECのIDであるVECToken、圧縮符号化方式(JPEGやH.264等)を指定するEncoding、出力画像の解像度を指定するResolution、圧縮符号化品質を指定するQualityを含む。更に、VECは、監視カメラ1000から出力される画像データに関し、最大フレームレートを指定するFramerateLimit、及び最大ビットレートを指定するBitrateLimitを含む。
例えば、監視カメラ1000は、VideoSource、及びVSCの内容に基づいて出力された画像データを、このVEC内に設定されたパラメータに従って、圧縮符号化し、通信部1003を介してクライアント装置2000に配信する。
6006は、GetVideoEncorderConfigurationOptionsトランザクションである。このトランザクションにより、クライアント装置2000は、IDによって指定されたVECに関し、監視カメラ1000が受け付け可能な各パラメータの選択肢や設定値の範囲を取得することができる。
クライアント装置2000は、GetVideoEncorderConfigurationOptionsコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。このトランザクションにより、クライアント装置2000は、記憶部1002に記憶されている圧縮符号化設定のIDを含むリストを監視カメラ1000から取得する。
なお、クライアント装置2000は、この取得したリストを記憶部2002に記憶させる。
6007は、CreateProfileのトランザクションである。このトランザクションは、配信プロファイルの作成を要求するためのトランザクションである。クライアント装置2000は、CreateProfileコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
このトランザクションにより、クライアント装置2000は、配信プロファイルを監視カメラ1000内に新たに作成し、作成した配信プロファイルのIDを得ることができる。また、クライアント装置2000は、この得たIDを記憶部2002に記憶させる。一方、監視カメラ1000(の制御部1001)は、この新たに作成された配信プロファイルを記憶部1002に記憶させる。
このトランザクションのコマンド処理後、監視カメラ1000は、MediaProfile変更通知イベントをクライアント装置2000に送信することで、MediaProfileに何らかの変更があったことをクライアント装置2000に通知する。
6008は、AddVideoSourceConfigurationのトランザクションである。このトランザクションは、VSCの追加を要求するためのトランザクションである。クライアント装置2000は、AddVideoSourceConfigurationのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
このトランザクションにおいて、クライアント装置2000は、6007で取得した配信プロファイルIDと6004で取得したVSCのIDとを指定する。これにより、クライアント装置2000は、指定した配信プロファイルIDに対応するMediaProfileに対し、指定したVSCのIDに対応する所望のVSCを関連付けることができる。
監視カメラ1000は、クライアント装置2000により指定された配信プロファイルIDに対応するMediaProfileと、クライアント装置2000により指定されたVSCのIDに対応する所望のVSCと、を関連付けて記憶部1002に記憶させる。
6009は、AddVideoEncorderConfigurationのトランザクションである。このトランザクションは、VECの追加を要求するためのトランザクションである。クライアント装置2000は、AddVideoEncorderConfigurationのコマンドを監視カメラ1000に送信する。監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
このトランザクションにおいて、クライアント装置2000は、6007で取得した配信プロファイルIDと6005で取得したVECのIDとを指定する。これにより、クライアント装置2000は、指定した配信プロファイルIDに対応するMediaProfileに対し、指定したVECのIDに対応するVECを関連付けることができる。
監視カメラ1000は、クライアント装置2000により指定された配信プロファイルIDに対応するMediaProfileと、クライアント装置2000により指定されたVECのIDに対応する所望のVECと、を関連付けて記憶部2002に記憶させる。
6008、6009のトランザクションの処理後、監視カメラ1000は、MediaProfile変更通知イベントをクライアント装置2000に送信することで、MediaProfileに何らかの変更があったことをクライアント装置2000に通知する。
6010は、SetVideoEncorderConfigurationのトランザクションである。このトランザクションは、VECの各パラメータを設定するためのトランザクションである。クライアント装置2000は、SetVideoEncorderConfigurationのコマンドを監視カメラ1000に送信する。
このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。このトランザクションにより、クライアント装置2000は、6005で取得したVECの内容を、6006で取得した選択肢に基づいて設定する。例えば、圧縮符号化方式や切出しサイズを変更する。監視カメラ1000は、設定された圧縮符号化設定等の内容を記憶部1002に記憶させる。
このトランザクションの処理後、監視カメラ1000は、VEC変更通知イベントをクライアント装置2000に送信することにより、VECに何らかの変更があったことをクライアント装置2000に通知する。
6011は、GetStreamUriのトランザクションである。このトランザクションは、配信アドレスの取得を要求するためのトランザクションである。このトランザクションにて、クライアント装置2000は、6007で取得した配信プロファイルIDを指定し、指定した配信プロファイルの設定に基づいてストリーミング配信される画像データ等を取得するためのアドレス(URI)を取得する。
監視カメラ1000は、クライアント装置2000により指定された配信プロファイルIDに関連付けられているVSC、及びVECの内容に対応する画像データをストリーミング配信するためのアドレスを、クライアント装置2000に返送する。
6012は、DESCRIBEのトランザクションである。このトランザクションは、配信情報の取得を要求するためのトランザクションである。クライアント装置2000は、DESCRIBEのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
このトランザクションにおいて、クライアント装置2000は、6011で取得したURIを使用してDESCRIBEコマンドを実行することにより、監視カメラ1000がストリーミング配信するコンテンツの情報を要求して取得する。
6013は、SETUPのトランザクションである。このトランザクションは、配信設定を要求するためのトランザクションである。クライアント装置2000は、SETUPのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
このトランザクションにおいて、クライアント装置2000は、6012で取得した配信情報に関する詳細データに基づき、監視カメラ1000に対してストリーミングの準備を行わせる。このコマンドを実行することにより、クライアント装置2000と監視カメラ1000との間で、セッション番号を含むストリームの伝送方法が共有される。
6014は、PLAYのトランザクションである。このトランザクションは、ストリーミング配信を開始させるためのトランザクションである。クライアント装置2000は、PLAYのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
クライアント装置2000は、PLAYのコマンドを監視カメラ1000に送信する際、6013で取得したセッション番号を用いることで、監視カメラ1000にストリーミング配信の開始を要求することができる。
6015は、監視カメラ1000からクライアント装置2000に配信されるストリームである。6014で開始を要求されたストリームを6013において共有された伝送方法によって配信する。
6016は、TEARDOWNのトランザクションである。このトランザクションは、配信を停止させるためのトランザクションである。クライアント装置2000は、TEARDOWNのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
このトランザクションにおいて、クライアント装置2000は、6013にて取得したセッション番号を指定してTEARDOWNコマンドを実行することにより、監視カメラ1000に対してストリーミングの停止を要求することができる。
続いて、図5は、監視カメラ1000とクライアント装置2000との間における、画像処理設定に相当するImagingSettingを変更するための、典型的なコマンドシーケンスを説明するためのシーケンス図である。
図5における6050は、GetServicesのトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000がサポートしているWebサービスの種類と各Webサービスを利用するためのアドレスURIを取得することができる。
クライアント装置2000は、GetServicesコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
6051は、GetServiceCapabilitiesのトランザクションである。このトランザクションにより、クライアント装置2000は、6050で取得された各Webサービスの機能の一覧を取得することができる。
クライアント装置2000は、GetServiceCapabilitiesのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
6052は、GetImagingSettingsのトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000が保持するImagingSettingsのリストを取得することができる。なお、クライアント装置2000は、この取得したリストを記憶部2002に記憶させる。
クライアント装置2000は、GetImagingSettingsのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返信する。
6053は、GetOptionsコマンドのトランザクションである。このトランザクションにより、クライアント装置2000は、ImagingSettingsのパラメータに関し、監視カメラ1000が受け付け可能な選択肢を取得することができる。なお、クライアント装置2000は、この取得したリストを記憶部2002に記憶させる。
クライアント装置2000は、GetOptionsのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返信する。
6054は、SetImagingSettingsのトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000に対して新しいImagingSettingsを送信することで、ImagingSettingsの内容を変更することができる。
6055は、ImagingSetting変更通知イベントである。6054のコマンド処理後、監視カメラ1000は、ImagingSetting変更通知イベントをクライアント装置2000に送信することで、ImagingSettingsに何らかの変更があったことをクライアント装置2000に通知する。
続いて、図6は、本実施例に係る、ImagingSettings型の定義の一例を説明するための図である。このImagingSettings型は、6052のGetImagingSettingsレスポンス、及び6054のSetImagingSettingsのコマンドのデータを表すものである。
なお、本実施例では、このImagingSetttings型を定義するために、ONVIF規格で用いられる、XML Schema Definition言語(以下、XSDと称することがある)を用いるものとする。
図6(a)は、ImagingSettings型の内容を示す。図6(a)では、sequence指定子により、図6(a)の要素の順番が定義通りに出現することを指定している。
図6(a)において、BacklightCompensation(以下、BLCと称することがある)は、画像処理部1005の逆光補正処理をON及びOFFするためのパラメータである。このBLCは、XSDのminOccurs指定子により、省略されても良いようになっている。
Brightnessは、撮像部1004から出力された画像データに対応する画像の明るさを指定するためのパラメータである。このBrightnessは、XSDのminOccurs指定子により、省略されても良いようになっている。ColorSaturationは、撮像部1004から出力された画像データに対応する画像の明度を指定するためのパラメータである。このColorSaturationは、XSDのminOccurs指定子により、省略されても良いようになっている。
Contrastは、撮像部1004から出力された画像データに対応する画像の色の濃さを指定するためのパラメータである。このContrastは、XSDのminOccurs指定子により、省略されても良いようになっている。Exposureは、撮像部1004から出力された画像データに対応する画像の露出を変更するためのパラメータである。このExposureは、XSDのminOccurs指定子により、省略されても良いようになっている。
Focusは、撮像部1004のフォーカス設定を変更するためのパラメータである。このFocusは、XSDのminOccurs指定子により、省略されても良いようになっている。IrCutFilterは、撮像部1004に含まれる撮像光学系の光路に挿抜可能なIRCF(Infrared Cut Filter)の設定を変更するためのパラメータである。
なお、ここで、IRCFは、赤外線を遮断するためのフィルタ―である。また、IRCutFilterは、XSDのminOccurs指定子により、省略されても良いようになっている。
Sharpnessは、撮像部1004から出力される画像データに対応する画像のシャープネスの設定を変更するためのパラメータである。このSharpnessは、XSDのminOccurs指定子により、省略されても良いようになっている。
WideDynamicRangeは、画像処理部1005のWDR処理の設定を変更するためのパラメータである。このWideDynamicRangeの値には、ON及びOFFを設定することができる。また、このWideDynamicRangeは、XSDのminOccurs指定子により、省略されても良いようになっている。
WhiteBalanceは、撮像部1004から出力された画像データに対応する画像のホワイトバランスを調整するためのパラメータである。このWhiteBalanceは、XSDのminOccurs指定子により、省略されても良いようになっている。
また、Extentionは、図6(b)に展開される拡張されたパラメータを含む。このExtentionは、XSDのminOccurs指定子により、省略されても良いようになっている。
続いて、図6(b)乃至(i)は、いずれも図6(a)に示すImiagingSettingsに追加されるパラメータである。また、これらのパラメータは、図6(a)の各パラメータと同様に画像処理設定の一部である。
図6(b)におけるImageStabilizationは、撮像部1004から出力される画像データに対応する画像の防振機能を設定するためのパラメータである。なお、図6(b)では、sequence指定子により、図6(b)の要素の順番が定義通りに出現することを指定している。
図6(c)における、IrCutFilterAutoAdjustmentは、IRCFを挿入及び抜去それぞれの場合に用いられる情報(被写体の輝度や遅延時間)を設定するためのパラメータである。図6(c)では、sequence指定子により、図6(c)の要素の順番が定義通りに出現することを指定している。
なお、ImageStabilization及びIrCutFilterAutoAdjustmentのそれぞれは、XSDのminOccurs指定子により、省略されても良いようになっている。
図6(d)におけるNoiseReductionは、撮像部1004から出力された画像データに対応する画像のノイズを低減するノイズ低減処理を設定するためのパラメータである。このノイズ低減処理は、画像処理部1005により実行される。ここで、図6(d)では、sequence指定子により、図6(d)の要素の順番が定義通りに出現することを指定している。
なお、以下、NoiseReductionをNRと称することがある。また、このNoiseReductionは、XSDのminOccurs指定子により、省略されても良いようになっている。
図6(f)に示すように、このNRの値には、Mode、Priority、Extension、2DLevel、及び3DLevelを設定することができる。なお、これらPriority及びExtensionのそれぞれは、XSDのminOccurs指定子により、省略されても良いようになっている。また、2DLevel及び3DLevelのそれぞれは、単精度浮動小数点のデータである。
図6(h)に示すように、このModeの値には、OFF、ON、AUTO、及びExtendedのいずれか1つの値を設定することができる。また、図6(i)に示すように、このPriorityの値には、HighMotionScene、LowMotionScene、及びExtendedのいずれか1つの値を設定することができる。
このNRの値には、Mode、またはPriority、または2DLevel、および3DLevelを設定することができる。
なお、Modeの値がONに設定されたNRは、監視カメラ1000のノイズ低減処理を動作(ON)させることを示す。また、Modeの値がOFFに設定されたNRは、監視カメラ1000のノイズ低減処理を停止(OFF)させることを示す。さらに、Modeの値がAUTOに設定されたNRは、監視カメラ1000のノイズ低減処理を動作させるか否かを監視カメラ1000に自動で判定させることを示す。
また、Priorityの値がHighMotionSceneのNRは、監視カメラ1000のノイズ低減処理を動き優先ノイズ低減処理で動作させることを示す。ここで、動き優先ノイズ低減処理は、例えば、撮像部1004により撮像される被写体に動く物体が多く含まれる場合に適したノイズ低減処理である。
また、Priorityの値がLowMotionSceneのNRは、監視カメラ1000のノイズ低減処理を静止優先ノイズ低減処理で動作させることを示す。ここで、静止優先ノイズ低減処理は、撮像部1004により撮像される被写体に動く物体が多く含まれない場合に適したノイズ低減処理である。
NRにおける2DLevelの値は、ノイズ低減処理のうち2次元ノイズ低減処理のレベルを設定するためのものである。例えば、2DLevelの値が小さくなるに連れて、2次元ノイズ低減処理の強度も弱くなる。一方、2DLevelの値が大きくなるに連れて、2次元ノイズ低減処理の強度も強くなる。
NRにおける3DLevelの値は、ノイズ低減処理のうち3次元ノイズ低減処理のレベルを設定するためのものである。例えば、3DLevelの値が小さくなるに連れて、3次元ノイズ低減処理の強度も弱くなる。一方、3DLevelの値が大きくなるに連れて、3次元ノイズ低減処理の強度も強くなる。
よって、本実施例におけるSetImagingSettingsのコマンドは、ノイズ低減処理の動作を制御するためのノイズ低減処理コマンドに相当する。
なお、本実施例における監視カメラ1000は、NRのModeのそれぞれの値には、OFF、ON、AUTOのいずれか1つが設定可能である。一方、NRのPriorityの値には、HighMotionScene及びLowMotionSceneのうち、いずれか一方が設定可能である。さらに、NRの2DLevelおよび3DLevelのそれぞれの値には、別々にレベルを設定することができる。
従って、6053のGetOptionsのトランザクションでは、NRに関し、前述の選択肢が、設定可能パラメータとしてクライアント装置2000に返送されることとなる。
続いて、図7は、本実施例に係る監視カメラ1000における、ImagingOptions型の定義の一例を説明するための図である。このImagingOptions型は、6053のGetOptionsレスポンスのデータを表すものである。
なお、本実施例では、このImagingOptions型を定義するために、ONVIF規格で用いられる、XSDを用いるものとする。また、図7(a)〜(g)は、それぞれ図6の(a)〜(g)と対応しており、型が違うのみで内容は同じであるため、その説明を省略する。
続いて、図8は、本実施例に係る監視カメラ1000における、GetOptionsコマンド及びレスポンスのそれぞれの一例を示す。
また、図9は、本実施例に係る監視カメラ1000における、6053のGetOptionsレスポンスをクライアント装置2000に送信するGetOptionsレスポンス送信処理を説明するためのフローチャートである。これから、図9に示すフローチャートについて、図8を適宜参照しながら説明する。
ステップS9001では、制御部1001は、GetOptionsレスポンスを生成し、生成したGetOptionsレスポンスを記憶部1002に記憶させる。次に、制御部1001は、記憶部1002に記憶されている画像処理設定におけるNRの選択肢としてModeがあるか否かを判定する。
そして、制御部1001は、このNRの選択肢としてModeがあると判定した場合は、ステップS9002に処理を進める。一方、制御部1001は、このNRの選択肢としてModeがないと判定した場合には、ステップS9009に処理を進める。
ステップS9002では、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、1乃至3個のModeを記述する。これにより、例えば、図8(b)に示すように、<tt:NoiseReduction〜>タグに対し、3つの<tt:Mode>タグが対応付けられて記述される。
ステップS9003では、制御部1001は、記憶部1002に記憶されている画像処理設定のNRの選択肢としてOFFがあるか否かを判定する。そして、制御部1001は、このNRの選択肢としてOFFがあると判定した場合には、ステップS9004に処理を進める。一方、制御部1001は、このNRの選択肢としてOFFがないと判定した場合には、ステップS9005に処理を進める。
ステップS9004では、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、ステップS9002で記述したModeに対応付けてOFFを記述する。これにより、例えば、図8(b)に示すように、OFFの値が対応付けられた<tt:Mode>タグが記述される。
なお、値がOFFの<tt:Mode>タグは、ノイズ低減処理を停止させるための指示コマンドを、監視カメラ1000が受け付けることができることを示す。
ステップS9005では、制御部1001は、記憶部1002に記憶されている画像処理設定のNRの選択肢としてONがあるか否かを判定する。そして、制御部1001は、このNRの選択肢としてONがあると判定した場合には、ステップS9006に処理を進める。一方、制御部1001は、このNRの選択肢としてONがないと判定した場合には、ステップS9007に処理を進める。
ステップS9006では、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、ステップS9002で記述したModeに対応付けてONを記述する。これにより、例えば、図8(b)に示すように、ONの値が対応付けられた<tt:Mode>タグが記述される。
なお、値がONの<tt:Mode>タグは、ノイズ低減処理を動作させるための指示コマンドを、監視カメラ1000が受け付けることができることを示す。
ステップS9007では、制御部1001は、記憶部1002に記憶されている画像処理設定のNRの選択肢としてAUTOがあるか否かを判定する。そして、制御部1001は、このNRの選択肢としてAUTOがあると判定した場合には、ステップS9008に処理を進める。一方、制御部1001は、このNRの選択肢としてAUTOがないと判定した場合には、ステップS9009に処理を進める。
ステップS9008では、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、ステップS9002で記述したModeに対応付けてAUTOを記述する。これにより、例えば、図8(b)に示すように、AUTOの値が対応付けられた<tt:Mode>タグが記述される。
なお、値がAUTOの<tt:Mode>タグは、ノイズ低減処理を動作させるか否かを監視カメラ1000に自動で判定させるための指示コマンドを、監視カメラ1000が受け付けることができることを示す。
ステップS9009では、制御部1001は、記憶部1002に記憶されている画像処理設定におけるNRの選択肢としてPriorityが有るか否かを判定する。
そして、制御部1001は、このNRの選択肢としてPriorityがあると判定した場合には、ステップS9010に処理を進める。一方、制御部1001は、このNRの選択肢としてPriorityがないと判定した場合には、ステップS9014に処理を進める。
ステップS9010では、制御部1001は、記憶部1002に記憶されている画像処理設定のNR(のPriority)の選択肢として、HighMotionSceneがあるか否かを判定する。
そして、制御部1001は、この選択肢としてHighMotionSceneがあると判定した場合には、ステップS9011に処理を進める。一方、制御部1001は、この選択肢としてHighMotionSceneがないと判定した場合には、ステップS9012に処理を進める。
ステップS9011では、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、Priorityに対応付けてHighMotionSceneを記述する。これにより、例えば、図8(b)に示すように、HighMotionSceneの値が対応付けられた<tt:Priority>タグが記述される。
なお、値がHighMotionSceneの<tt:Priority>タグは、静止優先ノイズ低減処理を動作させるための指示コマンドを、監視カメラ1000が受け付けることができることを示す。
ステップS9012では、制御部1001は、記憶部1002に記憶されている画像処理設定(のPriority)の選択肢として、LowMotionSceneがあるか否かを判定する。
そして、制御部1001は、この選択肢として、LowMotionSceneがあると判定した場合には、ステップS9013に処理を進める。一方、制御部1001は、この選択肢として、LowMotionSceneがないと判定した場合には、ステップS9014に処理を進める。
ステップS9013では、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、Priorityに対応付けてLowMotionSceneを記述する。これにより、例えば、図8(b)に示すように、LowMotionSceneの値が対応付けられた<tt:Priority>タグが記述される。
なお、値がLowMotionSceneの<tt:Priority>タグは、動き優先ノイズ低減処理を動作させるための指示コマンドを、監視カメラ1000が受け付けることができることを示す。
ステップS9014では、制御部1001は、記憶部1002に記憶されている画像処理設定におけるNRのパラメータとして、2DLevelがあるか否かを判定する。そして、制御部1001は、このNRのパラメータとして、2DLevelがあると判定した場合には、ステップS9015に処理を進める。
一方、制御部1001は、このNRのパラメータとして、2DLevelがないと判定した場合には、ステップS9016に処理を進める。この場合、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、値が“false”の2DLevelを、<tt:NoiseReduction>に対応付けて記述する。
なお、<tt:NoiseReduction 2DLevel=“false”>は、2次元ノイズ低減処理を動作させるための指示コマンドを、監視カメラ1000が受け付けることができないことを示す。
ステップS9015では、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、値が“true”の2DLevelを、<tt:NoiseReduction>に対応付けて記述する。これにより、例えば、図8(b)に示すように、値が“true”の2DLevelが対応付けられた<tt:NoiseReduction>タグが記述される。
なお、<tt:NoiseReduction 2DLevel=“true”>は、2次元ノイズ低減処理を動作させるための指示コマンドを、監視カメラ1000が受け付けることができることを示す。
ステップS9016では、制御部1001は、記憶部1002に記憶されている画像処理設定におけるNRのパラメータとして、3DLevelがあるか否かを判定する。そして、制御部1001は、このNRのパラメータとして、3DLevelがあると判定した場合には、ステップS9017に処理を進める。
一方、制御部1001は、このNRのパラメータとして、3DLevelがないと判定した場合には、ステップS9018に処理を進める。この場合、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、値が“false”の3DLevelを、<tt:NoiseReduction>に対応付けて記述する。
なお、<tt:NoiseReduction 3DLevel=“false”>は、3次元ノイズ低減処理を動作させるための指示コマンドを、監視カメラ1000が受け付けることができないことを示す。
ステップS9017では、制御部1001は、ステップS9001で記憶部1002に記憶させたGetOptionsレスポンスに、値が“true”の3DLevelを、<tt:NoiseReduction>に対応付けて記述する。これにより、例えば、図8(b)に示すように、値が“true”の3DLevelが対応付けられた<tt:NoiseReduction>タグが記述される。
なお、<tt:NoiseReduction 3DLevel=“true”>は、3次元ノイズ低減処理を動作させるための指示コマンドを、監視カメラ1000が受け付けることができないことを示す。
ステップS9018では、制御部1001は、通信部1003に指示し、記憶部1002に記憶させたGetOptionsレスポンスを、クライアント装置2000にIPネットワーク網1500経由で送信させる。
なお、本実施例では、ステップS9018で送信されるGetOptionsResponseは、クライアント装置2000がNRに指定可能な値を示す動作情報に相当する。
続いて、図10は、監視カメラ1000のImagingSettingsを設定するためのImagingSettings設定画面の一例を説明するための図である。この画面は、制御部2001により表示部2006に表示される。
図10において、ImagingSettings設定画面8000は、NoiseReduction設定パラメータ入力エリア8010と、設定ボタン8020と、閉じるボタン8021と、を含む。
ここで、ユーザにより設定ボタン8020が押下された場合、クライアント装置2000は、ImagingSettings設定画面8000に設定された内容に応じたSetImagingSettingsのコマンドを監視カメラ1000に送信する。さらに、クライアント装置2000は、この送信とともに、ImagingSettings設定画面8000の表示を終了する。
なお、本実施例におけるImagingSettings設定画面8000は、SetImagingSettingsコマンドに含まれるNRのそれぞれの値をユーザに指定させるためのユーザーインターフェースに相当する。
また、ユーザにより閉じるボタン8021が押下された場合、クライアント装置2000は、SetImagingSettingsのコマンドを監視カメラ1000に送信することなく、ImagingSettings設定画面の表示を終了する。
続いて、図11は、本実施例に係るクライアント装置2000における、SetImagingSettings設定画面表示処理を説明するためのフローチャートである。この処理は、監視カメラ1000からストリーミング配信される画像データに対する画像処理設定をクライアント装置2000のユーザが変更する際に、クライアント装置2000にて実行される処理である。
なお、この処理は、制御部2001により実行される。また、この処理の結果、クライアント装置2000の表示部2006には、図10の画面が表示されることとなる。
また、図10の画面には、ImagingSettingsのうち、NRの値のみが設定可能に表示されているが、これに限られるものではない。例えば、図10の画面には、図6(a)乃至(h)に含まれる他のパラメータ(或いは全てのパラメータ)の値が設定可能に表示されていても良い。
図11におけるステップS9000では、制御部2001は、表示部2006に指示し、図10に示されるImagingSettings設定画面を表示させる。
ステップS9001では、制御部2001は、6052のトランザクションを実行することにより、監視カメラ1000からImagingSettingsのリストを取得する。
なお、この取得したリストに含まれるImagingSettingsの数は、監視カメラが備える撮像部の数と同等であることが通常である。本実施例における監視カメラ1000は、1つの撮像部1004を備えているので、ステップS9001で取得されたリストに含まれるImagingSettingsの数は、1つであるが、この限りではない。
例えば、監視カメラが複数の撮像部を備えているために、ステップS9001で取得されたリストに複数のImagingSettingsが含まれる場合も想定され得る。このような想定の場合は、これら複数のImagingSettingsの表示を切り替えるために、図10の画面内に複数のタブを設けても良い。
また、これら複数のImagingSettingsのそれぞれに図10の画面が表示されるように構成しても良い。例えば、ステップS9001で取得されたリストに2つのImagingSettingsが含まれている場合には、2つのImagingSettingsのそれぞれのために、図10の画面を2つ表示するように構成しても良い。
ステップS9002では、制御部2001は、6053のトランザクションを実行することにより、ImaginSettingsの各パラメータについて、監視カメラ1000が受け付け可能な選択肢等を監視カメラ1000から取得する。また、制御部2001は、この取得した選択肢等を示す情報を記憶部2002に記憶させる。
ステップS9003では、制御部2001は、図10の画面を表示部2006に表示させる。ここで、制御部2001は、ステップS9001で得られたImagingSettingsに含まれるNRの設定値に応じ、図10の画面における、それぞれの設定値に対応するラジオボタン、チェックボックス及びスライダを選択等された状態にする。
例えば、制御部2001は、ステップS9002で得られた選択肢の内容に基づき、図10の画面におけるラジオボタンのうち、監視カメラ1000が受け付け可能な選択肢以外のラジオボタンは、ユーザが選択することができないように表示させる。
ステップS9004では、制御部2001は、図10の画面におけるいずれかのボタンが押下されるまで、又は、6055のImagingSettings設定変更イベントを監視カメラ1000から受信するまで、待機する。
そして、制御部2001は、設定ボタン8020が押下されたと判定した場合には、ステップS9005に処理を進める。また、制御部2001は、閉じるボタン8021が押下されたと判定した場合には、ステップS9006に処理を進める。そして、制御部2001は、通信部2003により6055のImagingSettings設定変更イベントが受信された場合には、制御部2001は、ステップS9001に処理を戻す。
ステップS9005では、制御部2001は、8010のそれぞれの入力エリアで選択等されたラジオボタン、チェックボックス及びスライダに応じたパラメータを含むSetImaingSettingsコマンドを生成する。そして、制御部2001は、通信部2003に指示し、生成したSetImagingSettingコマンドを、監視カメラ1000に送信させる。
ステップS9006では、制御部2001は、表示部2006における図10の画面の表示を、終了させる。
以上のように、本実施例における監視カメラ1000は、画像処理部1005によるノイズ低減処理の強さに関する強度情報が指定可能か否かを示すことができるGetOptionsレスポンスを、クライアント装置2000に送信する。
これにより、クライアント装置2000は、ノイズ低減処理の強さに関する強度情報を、監視カメラ1000に対して指定することができるか否かを把握することができる。この結果、クライアント装置2000を操作するユーザは、監視カメラ1000のノイズ低減処理の設定を容易に行うことができるようになる。
(実施例2)
続いて、図12を用い、本発明の実施例2について説明する。なお、上述の実施例と同一の構成要素については同一の符号を付し、その説明を省略することがある。
ここで、上述の実施例1では、画像処理部1005のノイズ低減処理の強さに関する強度情報が指定可能か否かを示すことができる指定情報を、監視カメラ1000からIPネットワーク網1500経由で受信するクライアント装置2000について述べた。
これに対し、実施例2では、このクライアント装置2000からIPネットワーク網1500経由で受信した強度情報に基づき、ノイズ低減処理を実行する監視カメラ1000について述べる。
続いて、図12は、本実施例に係る、監視カメラ1000におけるSetImagingSettings受信処理を説明するためのフローチャートである。なお、この処理は、制御部1001により実行される。そして、制御部1001は、クライアント装置2000からSetImagingSettingsコマンドを受信した場合に、この処理の実行を開始する。
ステップS1201では、制御部1001は、通信部1003で受信されたSetImagingSettingsコマンドを記憶部1002に記憶させる。次に、制御部1001は、SetImagingSettingsコマンドを記憶部1002から読み出す。
ステップS1202では、制御部1001は、ステップS1201で読み出したコマンドにおいて、NRフィールドに対応付けられたModeフィールドの値がOFFであるのか、ONであるのか、それともAUTOであるのかを判定する。
そして、制御部1001は、このNRフィールドに対応付けられたModeフィールドの値がOFFであると判定した場合には、ステップS1203に処理を進める。また、制御部1001は、このNRフィールドに対応付けられたModeフィールドの値がONであると判定した場合には、ステップS1204に処理を進める。さらに、制御部1001は、このNRフィールドに対応付けられたModeフィールドの値がAUTOであると判定した場合には、ステップS1205に処理を進める。
ステップS1203では、制御部1001は、画像処理部1005におけるNRのModeをOFFに設定する。これにより、制御部1001は、画像処理部1005のノイズ低減処理の動作を停止させる。
ステップS1204では、制御部1001は、画像処理部1005におけるNRのModeをONに設定する。これにより、制御部1001は、画像処理部1005のノイズ低減処理を動作させる。例えば、画像処理部1005のNRのModeがONの場合において、画像処理部1005のノイズ低減処理は、このModeがOFF又はAUTOに設定されるまで、継続して動作する。
ステップS1205では、制御部1001は、画像処理部1005におけるNRのModeをAUTOに設定する。これにより、制御部1001は、画像処理部1005のノイズ低減処理の動作を自動で決定する。
ステップS1206では、制御部1001は、ステップS1201で読み出したコマンドにおいて、NRフィールドに対応付けられたLevelフィールド、及びPriorityフィールドが記述されているか否かを判定する。
そして、制御部1001は、このNRフィールドに対応付けられたLevelフィールドとして2DLevelフィールド及び3DLevelフィールドが記述されていると判定した場合には、ステップS1207に処理を進める。一方、制御部1001は、このNRフィールドに対応付けられたPriorityフィールドとしてLowMotionSceneが対応付けられていると判定した場合には、ステップS1209に処理を進める。
さらに、制御部1001は、このNRフィールドに対応付けられたPriorityフィールドとしてHighMotionSceneが対応付けられていると判定した場合には、ステップS1210に処理を進める。
ステップS1207では、制御部1001は、画像処理部1005のNRに、2DLevelフィールドの値及び3DLevelフィールドの値を設定する。そして、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに2次元ノイズ低減処理を実行させる。
この実行させる2次元ノイズ低減処理の強度は、ステップS1201で読み出したコマンドにおいて、NRフィールドに対応付けられた2DLevelフィールドの値に対応する強度である。
また、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに3次元ノイズ低減処理を実行させる。この実行させる3次元ノイズ低減処理の強度は、ステップS1201で読み出したコマンドにおけるNRフィールドに対応付けられた3DLevelフィールドの値に対応する強度である。
これにより、クライアント装置2000は、監視カメラ1000の2次元ノイズ低減処理及び3次元ノイズ低減処理のそれぞれの強度を別々に設定することができるようになる。
ステップS1208では、制御部1001は、通信部1003に指示し、SetImagingSettingsのレスポンスをクライアント装置2000に送信させる。
ステップS1209では、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに静止優先ノイズ低減処理を実行させる。ここで、静止優先ノイズ低減処理とは、撮像部1004から出力された画像データに対応する画像に含まれる物体が静止している場合に適したノイズ低減処理である。
また、制御部1001は、画像処理部1005のNRのPriorityにLowMotionSceneを設定する。例えば、画像処理部1005は、画像処理部1005のNRのPriorityがLowMotionSceneに設定された場合、2次元ノイズ低減処理の強度を第1の所定強度よりも弱くする。さらに、画像処理部1005は、このような場合、3次元ノイズ低減処理の強度を第2の所定強度よりも強くする。
これにより、撮像部1004から出力された画像データに対応する画像の解像感を維持しつつ、この画像のノイズを効果的に低減することが可能になる。
ステップS1210では、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに動き優先ノイズ低減処理を実行させる。ここで、動き優先ノイズ低減処理とは、撮像部1004から出力された画像データに対応する画像に含まれる物体が動いている場合に適したノイズ低減処理である。
また、制御部1001は、画像処理部1005のNRのPriorityにHighMotionSceneを設定する。例えば、画像処理部1005は、画像処理部1005のNRのPriorityがHighMotionSceneに設定された場合、2次元ノイズ低減処理の強度を第1の所定強度よりも強くする。さらに、画像処理部1005は、このような場合、3次元ノイズ低減処理の強度を第2の所定強度よりも弱くする。
これにより、撮像部1004から出力された画像データに対応する画像の被写体であって、動いている被写体の残像を抑えつつ、この画像のノイズを効果的に低減することが可能になる。
ステップS1211は、ステップS1206と同様であるので、その説明を省略する。
ステップS1212では、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに2次元ノイズ低減処理を実行するか否かを自動で判定させる。これにより、画像処理部1005は、この2次元ノイズ低減処理を実行すると判定した場合には、この2次元ノイズ低減処理を実行し、この2次元ノイズ低減処理を実行しないと判定した場合には、この2次元ノイズ低減処理を実行しない。
また、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに3次元ノイズ低減処理を実行するか否かを自動で判定させる。これにより、画像処理部1005は、この3次元ノイズ低減処理を実行すると判定した場合には、この3次元ノイズ低減処理を実行し、この3次元ノイズ低減処理を実行しないと判定した場合には、この3次元ノイズ低減処理を実行しない。
なお、制御部1001は、画像処理部1005のNRに、2DLevel及び3DLevelを設定する。
したがって、画像処理部1005により実行される2次元ノイズ低減処理の強度は、ステップS1201で読み出したコマンドにおけるNRフィールドに対応付けられた2DLevelフィールドの値に対応する強度である。同様に、画像処理部1005により実行される3次元ノイズ低減処理の強度は、このNRフィールドに対応付けられた3DLevelフィールドの値に対応する強度である。
ステップS1213では、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに静止優先ノイズ低減処理を実行するか否かを自動で判定させる。これにより、画像処理部1005は、この静止優先ノイズ低減処理を実行すると判定した場合には、この静止優先ノイズ低減処理を実行し、この静止優先ノイズ低減処理を実行しないと判定した場合には、この静止優先ノイズ低減処理を実行しない。
また、制御部1001は、画像処理部1005のNRのPriorityに対し、LowMotionSceneを設定する。
ステップS1214では、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに動き優先ノイズ低減処理を実行するか否かを自動で判定させる。これにより、画像処理部1005は、この動き優先ノイズ低減処理を実行すると判定した場合には、この動き優先ノイズ低減処理を実行し、この動き優先ノイズ低減処理を実行しないと判定した場合には、この動き優先ノイズ低減処理を実行しない。
また、制御部1001は、画像処理部1005のNRのPriorityの値に、HighMotionSceneを設定する。
以上のように、本実施例の監視カメラ1000は、画像処理部1005のノイズ低減処理の強さに関する強度情報をクライアント装置2000から受信する。そして、制御部1001は、受信した強度情報に基づき、画像処理部1005のノイズ低減処理を制御する。
これにより、監視カメラ1000は、クライアント装置2000からの強度情報に従って適切にノイズ低減処理を実行することができる。
なお、本実施例におけるステップS1207では、制御部1001は、画像処理部1005に指示し、撮像部1004から出力された画像データに対し、2次元ノイズ低減処理及び3次元ノイズ低減処理を実行させたが、これに限られるものではない。
例えば、制御部1001は、ステップS1206にて、ステップS1201で読み出したコマンドにおいて、NRフィールドに対応付けられたLevelフィールドに2DLevelフィールドだけが記述されているか否かを判定する。
次に、制御部1001は、このLevelフィールドに2DLevelフィールドだけが記述されていると判定した場合、ステップS1207にて、画像処理部1005に指示し、撮像部1004からの画像データに対し、2次元ノイズ低減処理だけを実行させる。
また、例えば、制御部1001は、ステップS1206にて、ステップS1201で読み出したコマンドにおいて、NRフィールドに対応付けられたLevelフィールドに3DLevelフィールドだけが記述されているか否かを判定する。
次に、制御部1001は、このLevelフィールドに3DLevelフィールドだけが記述されていると判定した場合、ステップS1207にて、画像処理部1005に指示し、撮像部1004からの画像データに対し、3次元ノイズ低減処理だけを実行させる。
また、本実施例のステップS1212では、画像処理部1005は、撮像部1004からの画像データのノイズの量又は撮像部1004が撮像する際の各種撮像パラメータに応じ、2次元ノイズ低減処理及び3次元ノイズ低減処理を実行するか否かを判定した。しかしながら、これに限られるものではない。
例えば、画像処理部1005は、ステップS1212にて、このノイズの量又はこの各種撮像パラメータに応じ、2次元ノイズ低減処理及び3次元ノイズ低減処理の強度を自動で判定する。
また例えば、制御部1001は、ステップS1206にて、ステップS1201で読み出したコマンドにおいて、NRフィールドに対応付けられたLevelフィールドに2DLevelフィールドだけが記述されているか否かを判定する。
次に、画像処理部1005は、ステップS1212にて、このLevelフィールドに2DLevelフィールドだけが記述されていると判定された場合、このノイズの量又はこの各種撮像パラメータに応じ、2次元ノイズ低減処理だけの強度を自動で判定する。
また例えば、制御部1001は、ステップS1206にて、ステップS1201で読み出したコマンドにおいて、NRフィールドに対応付けられたLevelフィールドに3DLevelフィールドだけが記述されているか否かを判定する。
次に、画像処理部1005は、ステップS1212にて、このLevelフィールドに3DLevelフィールドだけが記述されていると判定された場合、このノイズの量又はこの各種撮像パラメータに応じ、3次元ノイズ低減処理だけの強度を自動で判定する。
また、本実施例では、制御部1001は、ステップS1207にて、画像処理部1005に指示し、撮像部1004から出力された画像データに対し、2次元ノイズ低減処理及び3次元ノイズ低減処理のそれぞれを別々の強度で実行させた。
しかしながら、このように別々の強度で実行させることができない監視カメラも想定される。このような想定の監視カメラから送信されるGetOptionsレスポンスには、例えば、<tt:NoiseReduction 2DLevel=“false” 3DLevel=“false”>と記述される。
又、このような想定の監視カメラは、2DLevel及び3DLevelが別々に記述されたSetImagingSettingsコマンドをクライアント装置2000から受信した際、エラーである旨を示すレスポンスをクライアント装置2000に返送する。
また、本実施例における2次元ノイズ低減処理には、例えば、移動平均フィルタ(平均化フィルタ)を用いることにより、撮像部1004から出力された画像データに対応する画像のノイズを低減する処理がある。このような2次元ノイズ低減処理の一例は、この画像データにおける、注目画素の輝度値とこの注目画素を含む周辺画素(3×3、5×5など)の輝度値との平均値を、この注目画素の輝度値とする処理である。
この他にも、本実施例における2次元ノイズ低減処理には、例えば、ガウシアンフィルタを用いることにより、撮像部1004から出力された画像データに対応する画像のノイズを低減する処理である。このような2次元ノイズ低減処理の一例は、この画像データにおける、注目画素の輝度値とこの注目画素を含む周辺画素(3×3、5×5など)の輝度値との平均値を求め、この求めた平均値をこの注目画素の輝度値とする処理である。
なお、この求める際、周辺画素の輝度値は重み付けされ、この重み付けは、注目画素に近くなるほど大きく成るものである。
その他にも、本実施例における2次元ノイズ低減処理には、例えば、メディアンフィルタを用いることにより、撮像部1004から出力された画像データに対応する画像のノイズを低減する処理がある。このような2次元ノイズ低減処理の一例は、この画像データの局所領域における輝度(濃淡)のレベルの中央値を出力するものである。
また、本実施例における3次元ノイズ低減処理には、例えば、撮像部1004から出力された画像データ(画像フレーム)であって、時間的に前後する複数の画像データ(画像フレーム)の平均値を求めることにより、ノイズを低減する処理である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。