以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、発明者(ら)は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
(実施形態1)
実施形態1では、本開示の通信装置及び制御装置を含む撮像システムについて説明する。
1-1.構成
図1は、本開示の実施形態1に係る撮像システム1の構成を説明するための図である。図1の撮像システム1は、通信装置の一例としてデジタルカメラ100と、制御装置の一例としてパーソナルコンピュータ(PC)200とを含む。
撮像システム1は、デジタルカメラ100とPC200との間で、例えばPicture Transfer Protocol(以下「PTP」と略記)といった画像転送用のプロトコルにおけるデータ通信が可能に構成される。デジタルカメラ100とPC200間のデータ通信により、例えばデジタルカメラ100は撮影中の画像をPC200へリアルタイムに転送し、PC200においてライブビュー表示を行うことができる。ライブビュー(以下「LV」と略記)は、デジタルカメラ100により撮像された画像をリアルタイムの動画等として表示する機能である。
本システム1では、例えばデジタルカメラ100における種々の状態(以下「カメラ状態」という)に関する通知がデジタルカメラ100からPC200に送信される。PC200は、通知されるカメラ状態について各種の制御を行うように構成される。例えば、デジタルカメラ100とのデータ通信に関する制御信号がPC200から発行される。また、PC200からデジタルカメラ100に、遠隔操作のための制御信号が送信されてもよい。この場合、PC200からデジタルカメラ100を遠隔操作することが可能である。
以下、デジタルカメラ100及びPC200の構成について、それぞれ図2及び図3を用いて説明する。
1-1-1.デジタルカメラの構成
図2は、本実施形態に係るデジタルカメラ100の構成を示す図である。本実施形態のデジタルカメラ100は、イメージセンサ115と、画像処理エンジン120と、表示モニタ130と、コントローラ135とを備える。さらに、デジタルカメラ100は、バッファメモリ125と、カードスロット140と、フラッシュメモリ145と、操作部150と、USBコネクタ155と、Wi-Fiモジュール165とを備える。また、デジタルカメラ100は、例えば光学系110及びレンズ駆動部112を備える。
光学系110は、フォーカスレンズ、ズームレンズ、光学式手ぶれ補正レンズ(OIS)、絞り、シャッタ等を含む。フォーカスレンズは、イメージセンサ115上に形成される被写体像のフォーカス状態を変化させるためのレンズである。ズームレンズは、光学系で形成される被写体像の倍率を変化させるためのレンズである。フォーカスレンズ等は、それぞれ1枚又は複数枚のレンズで構成される。
レンズ駆動部112は、光学系110におけるフォーカスレンズ等を駆動する。レンズ駆動部112はモータを含み、コントローラ135の制御に基づいてフォーカスレンズを光学系110の光軸に沿って移動させる。レンズ駆動部112においてフォーカスレンズを駆動する構成は、DCモータ、ステッピングモータ、サーボモータ、または超音波モータなどで実現できる。レンズ駆動部112は、コントローラ135の制御に基づいて光学系110における絞りを駆動する絞りアクチュエータを含む。
イメージセンサ115は、光学系110を介して形成された被写体像を撮像して、撮像データを生成する。撮像データは、イメージセンサ115による撮像画像を示す画像データを構成する。イメージセンサ115は、所定のフレームレート(例えば、30フレーム/秒)で新しいフレームの画像データを生成する。イメージセンサ115における、撮像データの生成タイミングおよび電子シャッタ動作は、コントローラ135によって制御される。イメージセンサ115は、CMOSイメージセンサ、CCDイメージセンサ、またはNMOSイメージセンサなど、種々のイメージセンサを用いることができる。
イメージセンサ115は、動画像、静止画像、またはLV表示に用いられるLV画像の撮像動作等を実行する。LV画像は主に動画像であり、ユーザが例えば静止画像の撮像のための構図を決めるために表示モニタ130に表示される。イメージセンサ115は、露光、電子シャッタ等の各種動作を実行する。
画像処理エンジン120は、イメージセンサ115から出力された撮像データに対して各種の処理を施して画像データを生成したり、画像データに各種の処理を施して、表示モニタ130に表示するための画像を生成したりする。各種処理としては、ホワイトバランス補正、ガンマ補正、YC変換処理、電子ズーム処理、圧縮処理、伸張処理等が挙げられるが、これらに限定されない。画像処理エンジン120は、ハードワイヤードな電子回路で構成してもよいし、プログラムを用いたマイクロコンピュータ、プロセッサなどで構成してもよい。
表示モニタ130は、種々の情報を表示する表示部の一例である。例えば、表示モニタ130は、イメージセンサ115で撮像され、画像処理エンジン120で画像処理された画像データが示す画像(LV画像等)を表示する。また、表示モニタ130は、ユーザがデジタルカメラ100に対して種々の設定を行うためのメニュー画面等を表示する。表示モニタ130は、例えば、液晶ディスプレイデバイスまたは有機ELデバイスで構成できる。
操作部150は、デジタルカメラ100の外装に設けられた操作釦や操作ダイヤル等のハードキー及びソフトキーの総称であり、ユーザによる操作を受け付ける。操作部150は、例えば、レリーズ釦、モードダイヤル、表示モニタ130のタッチパネル、ジョイスティックなどを含む。操作部150はユーザによる操作を受け付けると、ユーザ操作に対応した操作信号をコントローラ135に送信する。
コントローラ135は、ハードウェアコントローラであり、デジタルカメラ100全体の動作を統括制御する。コントローラ135はCPU等を含み、CPUがプログラム(ソフトウェア)を実行することで所定の機能を実現する。コントローラ135は、CPUに代えて、所定の機能を実現するように設計された専用の電子回路で構成されるプロセッサを含んでもよい。すなわち、コントローラ135は、CPU、MPU、GPU、DSU、FPGA、ASIC等の種々のプロセッサで実現できる。コントローラ135は1つまたは複数のプロセッサで構成してもよい。また、コントローラ135は、画像処理エンジン120などと共に1つの半導体チップで構成してもよい。
コントローラ135は、例えばUSBコネクタ155を介したデジタルカメラ100とPC200間のデータ通信を制御する。例えば、コントローラ135は、USBコネクタ155を介して、PC200にLV画像及び各種通知を送信するための制御を行う。さらに、コントローラ135は、例えばオートフォーカス制御(AF制御)やオート露出制御(AE制御)などを実行する。コントローラ135は、露出制御において、例えば絞り値、シャッタ速度、及びISO感度の変更により露出を調整する。コントローラ135は、本実施形態の通信装置における制御部の一例である。
バッファメモリ125は、画像処理エンジン120やコントローラ135のワークメモリとして機能する記録媒体である。バッファメモリ125は、DRAM(Dynamic Random Access Memory)等により実現される。フラッシュメモリ145は不揮発性の記録媒体である。例えばバッファメモリ125は、後述するイベント通知の設定データD1、及びデジタルカメラ100における各種の設定情報などを記憶する。各メモリ125,145は、それぞれ本実施形態における記憶部の一例である。
また、図示していないが、コントローラ135は各種の内部メモリを有してもよく、例えばROMを内蔵してもよい。ROMには、コントローラ135が実行する様々なプログラムが記憶されている。また、コントローラ135は、CPUの作業領域として機能するRAMを内蔵してもよい。上記各種メモリも、本実施形態における記憶部の一例である。
カードスロット140は、着脱可能なメモリカード142が挿入される手段である。カードスロット140は、メモリカード142を電気的及び機械的に接続可能である。メモリカード142は、内部にフラッシュメモリ等の記録素子を備えた外部メモリである。メモリカード142は、画像処理エンジン120で生成される画像データなどのデータを格納できる。
USBコネクタ155は、USB規格に準拠して、デジタルカメラ100にPC200のような外部機器を接続するための回路である。USBコネクタ155は、コントローラ135による制御に従って、USB規格に準拠した通信により、外部機器から諸情報を受信したり外部機器に諸情報を送信したりする。USBコネクタ155は、本実施形態の通信装置における通信部の一例である。
Wi-Fiモジュール165は、Wi-Fi(登録商標)規格に準拠した通信を行う回路である。デジタルカメラ100は、Wi-Fiモジュール165を介して、他の機器と通信することができる。デジタルカメラ100は、Wi-Fiモジュール165を介して、他の機器と直接通信を行ってもよいし、アクセスポイント経由で通信を行ってもよい。Wi-Fiモジュール165は、インターネット等の通信ネットワークに接続可能であってもよい。
1-1-2.PCの構成
図3は、本実施形態に係るPC200の構成を例示するブロック図である。図3のPC200は、表示部215と、操作部230と、コントローラ235と、記憶部245と、機器インターフェース255と、ネットワークインターフェース265とを備える。以下、「インターフェース」を「I/F」と略記する。
表示部215は、例えば、液晶ディスプレイ又は有機ELディスプレイで構成される。表示部215は、デジタルカメラ100から受信されたLV画像及び各種通知等を表示する。表示部215は、操作部230を操作するための各種アイコン及び操作部230から入力された情報などを表示してもよい。
操作部230は、ユーザが操作を行う操作部材の総称である。操作部230は、例えばキーボード、マウス、タッチパッド、ボタン及び/またはスイッチ等を含む。操作部230は、表示部215と共にタッチパネルを構成してもよい。操作部230は、ユーザによる操作を受け付けると、ユーザ操作に対応した操作信号をコントローラ235に送信する。
コントローラ235は、PC200を構成する各部に電気的に接続され、各部の動作を制御する。コントローラ235はCPU等を含み、CPUがプログラム(ソフトウェア)を実行することで所定の機能を実現する。コントローラ235は、所定の機能を実現するように専用に設計されたハードウェア回路のみで実現してもよい。コントローラ235は、CPU以外に、MPU、GPU、DSP、FPGA、またはASIC等の種々の回路で構成することができる。コントローラ235は、各種のデータ及びプログラムを保持する一時的な記憶領域として内部メモリを備えてもよい。コントローラ235は、本実施形態の制御装置における制御部の一例である。
記憶部245は、PC200において、所定の機能を実現するために必要なデータ及びプログラム等を記憶する記録媒体である。記憶部245は、例えばハードディスク(HDD)、半導体記憶装置(SSD)または半導体メモリ(RAM)等で構成される。記憶部245は、コントローラ235の作業エリアとして機能してもよく、コントローラ235の内部メモリにおける記憶領域で構成されてもよい。
機器I/F255は、PC200にデジタルカメラ100のような外部機器を接続するための回路である。機器I/F255は、USB規格またはBluetooth(登録商標)規格等に準拠した通信を行う。本実施形態の機器I/F255は、例えばUSB規格に準拠した通信により、コントローラ235による制御に従って、外部機器から諸情報を受信したり外部機器に諸情報を送信したりする。機器I/F255は、本実施形態の制御装置における通信部の一例である。
ネットワークI/F265は、通信規格IEEE802.11またはWi-Fi規格等に準拠した通信を行う回路である。PC200は、ネットワークI/F265を介して、他の機器と直接またはアクセスポイント経由で通信することができる。ネットワークI/F265は、通信ネットワークに接続可能であってもよい。
1-2.動作
以上のように構成されるデジタルカメラ100及びPC200の動作を、以下説明する。
本実施形態の撮像システム1(図1)において、デジタルカメラ100とPC200とは、例えばUSB規格に準拠したデータ通信を行う。例えば、デジタルカメラ100はPC200に、LV画像を周期的に転送するとともに、カメラ状態の変化を示すイベントの発生を通知するイベント通知を送信する。PC200は、デジタルカメラ100からのイベント通知により、例えば表示部215にLV画像を表示中に、デジタルカメラ100におけるリアルタイムのカメラ状態を表示することができる。
2-1.イベント通知の課題
上述のイベント通知に関するデータ通信時の課題について、図4を用いて説明する。図4は、撮像システム1についてのイベント通知の課題を説明するためのシーケンス図である。図4のシーケンスは、撮像システム1において、後述するイベント通知の設定が特に行われていない場合におけるLV表示の動作例を示す。
図4の動作例では、LV表示のためにデジタルカメラ100からPC200がLV画像を取得する処理(S400)が、例えばフレーム周期で実行される。例えば1フレーム分のLV画像取得のステップS400において、PC200のコントローラ235が、デジタルカメラ100にLV画像の転送を要求し(S401)、転送要求を受けた応答としてデジタルカメラ100のコントローラ135が、PC200にLV画像の画像データを送信する(S402)。
図4の例では、デジタルカメラ100において、設定メニューにおける設定情報を示す設定メニュー情報の変更(S10)、並びにISO感度、絞り値及びシャッタ速度の変更(S20)といった各種のイベントが発生している。図4の例では、デジタルカメラ100は、ステップS10,S20の各イベントの発生に応じてイベント通知を行う(S411~S423)。
デジタルカメラ100は、例えばフレーム毎のLV画像取得の処理(S400)に割り込みで、各々のイベント通知を実行する(S411~S423)。こうした各イベント通知による割り込み処理が多発すると、例えばステップS400の実行遅れによるLV表示のフレーム遅延、及びデジタルカメラ100とPC200間のデータ通信における各種の処理負荷が生じてしまう影響が考えられる。
又、1回のイベント通知において、ステップS400と同様にデジタルカメラ100がPC200から転送要求(S401)を受けてからデータ送信(S402)を行う場合、各々の処理負荷が過大になることが懸念される。さらに、図4の例では、ステップS20において複数のイベントが同時に発生している。この場合、各イベントに応じた複数回のイベント通知を行うと(S421~S423)、さらに処理負荷が増大する事態が懸念される。
そこで、本実施形態では、デジタルカメラ100とPC200間のデータ通信において、以上のようなイベント通知による処理負荷を低減することができるイベント通知の通信方法を提供する。
1-2-2.動作の概要
本実施形態の撮像システム1においてLV表示中にイベント通知を行う動作の概要を、図5を用いて説明する。
図5は、本実施形態の撮像システム1におけるLV表示中のイベント通知動作を説明するためのシーケンス図である。図5では、本システム1においてイベント通知の設定(後述)がされた場合における、図4と同様の動作例を示す。
本システム1では、デジタルカメラ100からPC200に通知するイベントを選択的に設定可能である。図5の例では、デジタルカメラ100において、設定メニュー情報を変更するイベントが通知されないように設定されている。この場合、図4の例とは異なり、設定メニュー情報を変更するイベントが発生しても(S10)、デジタルカメラ100はイベント通知を送信せず、PC200は、対応するイベントデータの取得を行わない。こうした選択的なイベント通知によれば、例えば割り込み処理の多発を回避して、LV表示の遅延を抑制でき、デジタルカメラ100とPC200間の通信負荷も低減できる。
また、本システム1では、複数種類のイベントをまとめて1つのイベント通知により通知可能に設定することができる。図5の例では、デジタルカメラ100は、AE制御に関するカメラ状態の変化として、ISO感度、絞り値及びシャッタ速度を変更する各イベントを一度に通知するように設定されている。この場合、ISO感度、絞り値及びシャッタを変更するイベントが同時に発生すると(S20)、デジタルカメラ100は、当該複数のイベントに応じた1つのイベント通知のみを送信する(S420)。これにより、複数種類のイベントの発生に伴うデジタルカメラ100とPC200間の通信にかかる処理負荷が低減される。
また、ステップS420において、本実施形態の撮像システム1は、後述する通知データのデータ構造によって、イベント通知自体に各イベントのイベントデータを格納して送信する。これにより、例えばLV画像の取得処理(S400)と同様のPC200からのデータ転送要求(S401)、及びデジタルカメラ100からの応答するデータ送信(S402)を行わなくても、PC200はイベントデータを取得することができる。したがって、更にデジタルカメラ100とPC200間の通信による処理負荷等を低減することができる。以下、本システム1の動作の詳細を説明する。
1-2-3.イベント通知の設定
本実施形態の撮像システム1では、例えば以上のようなイベント通知を実行する前に予めイベント通知の設定を行う。撮像システム1においてイベント通知設定を行う動作について、図6及び図7を用いて説明する。
図6は、本実施形態の撮像システム1におけるイベント通知設定の動作を例示するシーケンス図である。図7は、撮像システム1におけるイベント通知の設定データD1を例示する図である。
図6の動作において、まず、PC200は、デジタルカメラ100にイベント通知の設定要求を送信する(S301)。PC200は、例えば操作部230において、イベント通知の設定を開始するユーザ操作が入力されたとき、デジタルカメラ100にイベント通知の設定を要求する(S301)。
次に、PC200は、イベント通知に含めるイベントの種類を規定する設定データD1(図7参照)をデジタルカメラ100に送信する(S302)。例えば、図5の動作例の前に、ISO感度、絞り値及びシャッタ速度の変更の各イベントをまとめて通知するように規定する設定データD1が送信される。イベント通知の設定データD1は、例えばPC200の表示部215に設定メニュー等を表示し、設定メニューを利用してユーザが操作部230において情報を入力する操作を受け付ける処理により、生成される。
デジタルカメラ100は、設定データD1を受信すると、例えばバッファメモリ125に設定データD1を格納して、イベント通知の設定応答をPC200に返す(S303)。例えばデジタルカメラ100のコントローラ135が読み取り可能な設定データD1を正常に受信及び格納した場合の設定応答は「OK」である。一方、設定データD1の受信または格納に異常があった場合等の設定応答は「Error」である。
以上のイベント通知設定の動作によれば、撮像システム1において、PC200から、イベント通知の設定データD1をデジタルカメラ100に設定することができる(S302)。
なお、図6に例示するシーケンスは、例えばPC200においてコントローラ235の処理負荷をモニタリングしておき、処理負荷が所定の閾値以上に増大したときに開始されてもよい。この場合、図6のシーケンスは、例えばPC200の記憶部245に予め格納された設定データD1を用いて実行されてもよい。
1-2-3-1.イベント通知の設定データ
イベント通知の設定データD1の詳細について、図7を用いて説明する。
図7に例示するイベント通知の設定データD1は、設定項目を示す「項目」と、各項目の設定値を示す「値」とを含む。また、図7の例の設定データD1は、イベントグループ1~3の3つのイベントグループを含む。イベントグループは、複数の種類のイベントにおいて、1つのイベント通知によってまとめて通知する1種類以上のイベントを規定する。
本システム1は、例えばPTPをUSB規格において用いるStill Image Capture Deviceクラスを各種データの転送に利用する。そこで、本例では当該クラスの規定に応じて、各イベントグループには上限3つまでのイベントが設定可能である。図7の設定データD1は、2つのイベントグループ1,2において上限の各イベントに関する通知イベントタグ1~3を含む。
設定データD1の項目は、通知するイベントの種類の個数を示す「イベント設定数」、各イベントグループを示す「イベントグループコード」、通知イベントタグ1~3毎の「タグ定義」及び「最大データサイズ」を含む。タグ定義は、通知する対象のイベントの種類を示す項目であり、例えば所定の規定コードに従い設定される。最大データサイズは、タグ定義のイベントによるイベントデータをイベント通知に含めて送信する際に、格納可能な最大のデータサイズを示す。
図7の設定データD1では、イベント設定数の値は「6」に設定されている。図7の例では、イベントグループ1の各通知イベントタグ1~3により、それぞれISO感度、シャッタ速度及び絞り値のイベントを通知するように設定されている。また、イベントグループ2は、画像の記録に関する3つのイベントを通知するように設定されている。イベントグループ1,2のイベントグループコードは、それぞれ16進数で「0xC000」、「0xC010」に設定され、イベントグループ3のイベントグループコードは、未使用を示す「0x0000」に設定されている。
以上のようなデータ構造を有するイベント通知の設定データD1によれば、本実施形態の撮像システム1は、各イベントグループによって複数のイベントをまとめて、イベントグループ毎に異なるイベントを通知可能である。また、何れのイベントグループにも設定されないイベントは通知されず、各イベントグループに設定されたイベントのみを選択的に通知することができる。さらに、イベント毎の最大データサイズまで、イベントデータをイベント通知に格納することができる。
なお、設定データD1において設定可能なイベントグループ数は、3つに限らず、1つまたは2つであってもよく、4つ以上であってもよい。例えば、イベントグループコードにおいてPTPの予約ビットを除くビットにより表現可能な数の範囲であれば、4つ以上のイベントグループを設けることができる。また、設定データD1のイベント設定数から、イベントグループ3が未使用であることがデジタルカメラ100及びPC200により認識されてもよい。この場合、設定データD1はイベントグループ3のイベントグループコードを含まなくてもよい。また、各イベントグループにおいて通知イベントタグにより設定されるイベントの数は、3つに限らず、例えば2つであってもよい。
また、イベント通知の設定データD1は、図7の例に限らず、例えば、デジタルカメラ100におけるAF制御に関する設定情報の変更、または各種撮影設定の変更等によるカメラ状態の変化を示すイベントを含んで設定されてもよい。また、例えば全てのイベント通知を停止する場合には、設定データにおけるイベント設定数をゼロ値に設定し、各グループのイベントグループコードが未使用の値に設定されてもよい。一方、イベント通知の設定を解除して、図4のように発生する全イベントについてイベント毎に通知を行う場合、例えば設定データのイベント設定数を「0xFFFF」に設定し、各グループのイベントグループコードが未使用の値に設定されてもよい。
1-2-3-2.イベント通知設定の変更
本実施形態の撮像システム1は、以上のようなイベント通知の設定後、例えばユーザが設定された内容を確認して、イベント通知の設定を変更可能な機能を有してもよい。撮像システム1において設定変更を行う動作について、図8及び図9を用いて説明する。
図8は、撮像システム1におけるイベント通知の設定変更の動作を例示するシーケンス図である。図9は、図7の例から変更された設定データD11を例示する。
まず、PC200のコントローラ235は、デジタルカメラ100に、イベント通知の設定状態情報の取得要求を送信する(S311)。設定状態情報は、デジタルカメラ100におけるイベント通知の設定状態を示す。
デジタルカメラ100のコントローラ135は、PC200からの取得要求を受信すると、例えば設定状態情報として、取得要求の受信時にバッファメモリ125に格納されている設定データD1をPC200に送信する(S312)。
PC200は、例えば受信した設定状態情報を表示部215に表示する。その後、PC200は、例えばイベント通知の設定を開始するユーザ操作により、図6と同様のステップS301~S303を実行する。
以上の動作によれば、PC200は、例えばデジタルカメラ100からの設定状態情報の取得により(S311,S312)、現在のイベント通知の設定を参照して、設定の変更を行うことができる。なお、以上の動作は、例えばデジタルカメラ100が画像の撮影を行う動作モードから、再生を行う動作モードに切り替えられたとき(或いは逆に、再生から撮影の動作モードに切り替えられたとき)に開始されてもよい。
図9は、図8の設定変更の動作により図7の設定データD1から変更された設定データD11を例示する。例えば設定データD11は、イベントグループ1の通知イベントタグ3において、元の設定データD1での絞り値を示すタグ定義から、未使用を示すタグ定義に変更され、最大データサイズが「0」(バイト)に変更されている。
また、元の設定データD1(図7)のイベントグループ2において通知イベントタグ1に格納されていたイベントが、図9の例では除外されている。これに伴い、元の設定データD1のイベントグループ2における通知イベントタグ2,3の各イベントの格納先が、変更後の設定データD11では通知イベントタグ1,2に繰り上げられている。
さらに、元の設定データD1(図7)では未使用であったイベントグループ3において、図9の設定データD11ではイベントグループコードが「0xC020」に変更されている。本例の設定データD11のイベントグループ3では、「設定メニュー情報」のイベントが通知イベントタグ1に設定され、他の通知イベントタグ2,3は未使用である。
上記の例では、元の設定データD1(図7)からイベントを除外する変更に伴い、設定データD11において残りのイベントを繰り上げたが、特に繰り上げなくてもよい。この場合、例えば除外されたイベントの通知イベントタグ1において、タグ定義を未使用の値に変更して、最大データサイズをゼロ値に変更してもよい。
1-2-4.イベント通知動作の詳細
以上のようなイベント通知の設定後にデジタルカメラ100がPC200にイベントを通知する動作について、図10及び図11を用いて説明する。
図10は、本実施形態の撮像システム1におけるイベント通知動作を例示するシーケンス図である。図11は、イベント通知の通知データを例示する図である。図10に例示するシーケンスは、例えば、図7に示すイベント通知の設定データD1が設定された状態で図5と同様の動作中に実行される。図10では、LV画像取得の処理(S400)は図示を省略している。
本例のデジタルカメラ100において、ISO感度を変更するイベントが発生した場合(S20A)、コントローラ135は、イベントコード「0xC001」のイベント通知を示す通知データを生成して、PC200に送信する(S420A)。イベントコードは、設定データD1におけるイベントグループコードとの対応付けにより、通知対象のイベントの種類を示す。イベント通知の通知データは、対応する通知対象のイベントによって変化したカメラ状態、即ちイベントデータを含む。ステップS420Aにおけるイベント通知の通知データD20aを図11(A)に例示する。
ステップS420Aにおいて、コントローラ135は、イベント通知に、イベントデータとして変更後のISO感度のデータを格納した通知データD20aを、USBコネクタ155に送信させる。PC200のコントローラ235は、例えば機器I/F255から当該イベント通知を受信して、格納されたイベントデータを取得する。
図11(A)に例示する通知データD20aのイベントコード「0xC001」は、設定データD1のイベントグループ1のイベントグループコードの下位4ビット(2進数)のうち1ビット目を「1」に変更した値である。これは、当該グループ1の通知イベントタグ1が有効、即ち「ISO感度」が通知内容に有ることを示す。このようにイベントコードは、イベントグループコードの下位ビットを用いて、各通知イベントタグに設定されたイベントの通知の有無を示す。
通知データD20aは、さらに、イベントコードで有効/無効が示された通知イベントタグ1~3に対応するイベントのデータをそれぞれ示すパラメータ1~3を含む。図11(A)の例では、パラメータ1には、有効な通知イベントタグ1に対応するISO感度の変更後の値「100」を16進数で示すデータ値が格納される。また、パラメータ2,3には、通知イベントタグ2,3が無効、即ちシャッタ速度及び絞り値の通知は無いことに応じて、それぞれゼロ値が格納される。
デジタルカメラ100においてISO感度及び絞り値の両方が同時とみなせる所定期間内に変更された場合(S20B)、コントローラ135は、イベントコード「0xC005」の通知データを生成して、PC200に送信する(S420B)。当該イベントコードは、イベントグループ1のイベントグループコードから下位1,3ビットを「1」にして、通知イベントタグ1,3の有効を示す。
ステップS420Bにおいて、コントローラ135は、例えば図11(A)の通知データD20aと同様のデータ構造において、パラメータ1のISO感度に加えてパラメータ3に絞り値のイベントデータを格納するように、イベント通知の通知データを生成する。
さらに、デジタルカメラ100において図5の例と同様にISO感度、絞り値及びシャッタ速度が変更された場合(S20)、コントローラ135は、イベントコード「0xC007」の通知データをPC200に送信する(S420)。当該イベントコードは、設定データD1におけるイベントグループ1のイベントグループコードの下位1~3ビットを「1」にして、通知イベントタグ1~3の有効を示す。図11(B)は、ステップS420における通知データD20を例示する。通知データD20は、各パラメータ1~3にISO感度、シャッタ速度及び絞り値のイベントデータをそれぞれ格納する。
また、デジタルカメラ100において、例えば撮影中に静止画の撮影可能枚数が変わるイベントが発生した場合(S30A)、コントローラ135は、イベントコード「0xC011」の通知データをPC200に送信する(S430A)。当該イベントコードは、設定データD1のイベントグループ2のイベントグループコードの下位1ビットを「1」にして、通知イベントタグ1の有効を示す。ステップS430Aにおける通知データでは、パラメータ1に撮影可能枚数のイベントデータが格納され、パラメータ2,3には通知イベントタグ2,3の無効に応じたゼロ値が格納される。
デジタルカメラ100において動画記録可能時間及び動画記録経過時間の両方が同時とみなせる所定期間内に変更された場合(S30B)、コントローラ135は、イベントコード「0xC016」の通知データをPC200に送信する(S430B)。当該イベントコードは、設定データD1のイベントグループ2のイベントグループコードの下位2,3ビットを「1」にして、通知イベントタグ2,3の有効を示す。図11(C)は、ステップS430Bにおける通知データD30bを例示する。通知データD30bでは、パラメータ1に通知イベントタグ1の無効に応じたゼロ値が格納され、パラメータ2,3にそれぞれ動画記録可能時間及び動画記録経過時間のイベントデータが格納されている。
以上のイベント通知動作によれば、デジタルカメラ100におけるイベントに応じて(S20A~S30B)、イベント通知を示す通知データD20~D30bが生成されて、PC200に送信される(S420~S430B)。各通知データD20~D30bは、複数種類のイベントにおける各イベントのイベントデータを格納可能なパラメータ1~3、及びイベント通知に含めるイベントの種類を示すイベントコードを有する。
これにより、各通知データD20~D30bにおいて、デジタルカメラ100における複数のイベントをまとめてPC200に通知することができる。また、設定データD1に基づき特定のイベントのみが選択的に通知され、各通知データD20~D30bにおけるイベントコードにより、PC200では何れのイベントが通知されたかを認識することができる。さらに、通知データD20~D30bにおいて、イベント通知と合わせて、パラメータ1~3に各イベントのイベントデータを格納して送信することができる。こうしたイベント通知動作及び通知データD20~D30bのデータ構造により、デジタルカメラ100のイベントをPC200に通知する通信における処理負荷を低減することができる。
1-2-5.イベントデータの取得
本実施形態の撮像システム1は、以上のようなイベント通知の動作に加えて、イベントの発生時以外であっても、PC200からイベント等を指定して所望のイベントデータをデジタルカメラ100から取得する機能を備えてもよい。こうしたイベントデータを取得する動作について、図12~図14を用いて説明する。
図12は、撮像システム1におけるイベントデータ取得の動作を例示するシーケンス図である。図13は、撮像システム1におけるイベントデータ取得コマンドを例示する。図14は、図13のコマンドの応答として取得されるデータを例示する。
PC200は、デジタルカメラ100に、イベントデータの取得を要求するコマンドを送信する(S321)。このイベントデータ取得コマンドは、例えばイベントグループ1~3毎にイベントデータの取得対象とするイベントを指定する複数のパラメータを含む。
図13(A),(B)は、イベントデータ取得コマンドにおけるパラメータの設定例を示す。図13(A),(B)に例示するイベントデータ取得コマンドD21a,D21bにおける各パラメータ1~3は、それぞれ図7に例示する設定データD1におけるイベントグループ1~3に対応する。
図13(A)のイベントデータ取得コマンドD21aは、パラメータ1に、設定データD1のイベントグループコードに対応するイベントコード「0xC000」を含む。当該イベントコードによると、例えばイベントグループ1に設定された全てのイベントが指定される。図13(A)の例では、パラメータ2はイベントグループ2について上記と同様である一方、パラメータ3には未使用状態を示すゼロ値が格納される。
図13(B)のイベントデータ取得コマンドD21bは、例えば、パラメータ1にイベントコード「0xC007」を含む。こうしたイベントコードでは、例えば通知データD20と同様に、イベントグループコードの下位ビットのうちの特定のビットのみを「1」にすることで、当該ビットに対応付けられた通知イベントタグのイベントが指定される。
図12に戻り、デジタルカメラ100のコントローラ135は、以上のようなイベントデータ取得コマンドD21a,D21bを受けて、各々のパラメータにより指定されたイベントデータをPC200に送信する(S322)。例えば、イベントデータ取得コマンドD21aの応答として、各イベントグループ1,2の全ての通知イベントタグ1~3のイベントデータが送信される。図14に、イベントデータ取得コマンドD21aの応答におけるイベントグループ2のイベントデータのデータ構造を例示する。
以上のイベントデータの取得動作によれば、デジタルカメラ100は、PC200からのイベントデータ取得コマンドにより指定されたイベントデータをPC200に送信する(S321,S322)。これにより、例えばイベント通知時に限らない任意のタイミングで、PC200において所望のイベントデータを取得することができる。
1-3.効果等
以上のように、本実施形態のデジタルカメラ100は、外部のPC200(制御装置の一例)に、自装置における情報を通知する通信装置の一例である。デジタルカメラ100は、USBコネクタ155(通信部の一例)と、コントローラ135(制御部の一例)とを備える。USBコネクタ155は、PC200との間でデータ通信を行う。コントローラ135は、デジタルカメラ100における状態が変化するイベント(S20~S30B)に応じて通知データD20~D30bを生成して、通知データD20~D30bをPC200に送信するようにUSBコネクタ155を制御する(S420~S430B)。通知データD20~D30bは、複数種類のイベントにおける各々の状態を示すデータの一例として、イベントデータを格納可能なパラメータ1~3(データ格納部の一例)を有する。
以上のデジタルカメラ100によれば、各種イベントに応じて、イベントデータを格納可能な通知データD20~D30bが生成され、PC200に送信される。通知データD20~D30bのデータ構造によれば、デジタルカメラ100のカメラ状態の変化、即ちイベントをPC200に通知するデータ通信における処理負荷を低減することができる。
本実施形態において、コントローラ135は、デジタルカメラ100においてイベントが発生すると(S20~S30B)通知データD20~D30bを生成して、生成した通知データD20~D30bにおけるパラメータ1~3に、発生したイベントのデータの一例としてイベントデータを格納し、発生したイベントのイベントデータを格納した通知データD20~D30bをPC200に送信するように、USBコネクタ155を制御する(S420~S430B)。これにより、図4に例示するLV画像の取得処理(S400)のようにデジタルカメラ100が、PC200から転送要求(S401)を受けてからデータ送信(S402)を行わなくても、PC200はイベントデータを取得可能である。
本実施形態において、コントローラ135は、デジタルカメラ100において複数種類のイベントが発生したとき(S20,S30B等)、発生した複数種類のイベントの各イベントデータをパラメータ1~3にそれぞれ格納する一の通知データD20,D30bを生成し、一の通知データD20,D30bをPC200に送信するように、USBコネクタ155を制御する(S420,S430B)。これにより、複数種類のイベントをまとめてPC200に通知可能であり、イベント通知による割り込み処理を削減することができる。
本実施形態において、パラメータ1~3にイベントデータが格納可能なイベントの種類は、予め設定されている(図7、図9参照)。コントローラ135は、デジタルカメラ100において設定された種類のイベントが発生したとき(S20)、通知データD20をUSBコネクタ155に送信させ(S420)、デジタルカメラ100において設定された種類とは異なる種類のイベントが発生したとき(S10)、通知データをUSBコネクタ155に送信させない(図5参照)。これにより、複数の種類のイベントにおいて、設定されたイベントのみを選択的に通知することができ、過剰なイベント通知を抑制して、デジタルカメラ100とPC200間のデータ通信にかかる処理負荷を低減することができる。
本実施形態において、USBコネクタ155は、PC200から、パラメータ1~3にイベントデータが格納可能なイベントの種類を規定する設定データD1を受信する(S302)。これによりデジタルカメラ100は、USBコネクタ155により受信した設定データD1に基づき、イベント通知動作を行うことができる(S420~S430B)。
本実施形態において、通知データD20~D30bは、パラメータ1~3においてイベントデータを格納したイベントの種類を示すイベントコード(イベント識別部の一例)をさらに有する。これにより、PC200において、受信された通知データD20~D30bにイベントデータが含まれるイベントの種類を認識することができる。
本実施形態において、パラメータ1~3に格納可能な複数種類のイベントを分類する複数のグループの一例として、イベントグループが予め設定される(図7、図9参照)。コントローラ135は、イベントグループ毎に、当該イベントグループに含まれる複数種類のイベントの各イベントデータをパラメータ1~3に格納するように、通知データD20~D30bを生成する(S420~S430B)。これにより、例えば一度にまとめて通知する複数種類のイベントを管理し易くすることができる。
本実施形態において、デジタルカメラ100は、画像を撮影して画像データを生成する撮像装置を構成する。イベントは、デジタルカメラ100における画像撮影についての合焦状態と、露出状態と、記録状態と、デジタルカメラ100のユーザの操作状態との一例として、AF制御に関する設定情報と、AE制御に関する設定情報と、撮影可能枚数及び動画記録可能時間等の画像記録に関する情報と、設定メニュー情報とのうちの少なくとも一つの状態の変化である。
本実施形態において、コントローラ135は、LV画像(撮影中の画像データの一例)を順次、USBコネクタ155からPC200に送信している際に(S400)、デジタルカメラ100において発生したイベントに応じて、通知データD20~D30bの送信を制御する(S420~S430B)。こうしたイベント通知動作(S420~S430B)によれば、PC200において、デジタルカメラ100から各種イベント通知を受けながら、LV画像の取得(S400)を低遅延で実行することができる。撮像システム1は、例えばデジタルカメラ100とPC200とを接続するテザーシステムを構成してもよい。
本実施形態のPC200は、外部のデジタルカメラ100(通信装置の一例)から情報を通知される制御装置の一例である。PC200は、機器I/F255(通信部の一例)と、コントローラ235(制御部の一例)とを備える。機器I/F255は、デジタルカメラ100との間でデータ通信を行う。コントローラ235は、デジタルカメラ100から機器I/F255を介して、デジタルカメラ100における状態が変化するイベントに応じた通知データD20~D30bを受信する動作を制御する(S420~S430B)。通知データD20~D30bは、複数種類のイベントにおける各々の状態を示すデータの一例として、イベントデータを格納可能なパラメータ1~3(データ格納部の一例)を有する。コントローラ235は、通知データD20~D30bにおけるパラメータ1~3にイベントデータが格納可能なイベントの種類を規定する設定データD1を設定し、機器I/F255を介してデジタルカメラ100に、設定した設定データD1を送信する(S301,S302)。
以上のPC200によれば、デジタルカメラ100に送信した設定データD1に基づき、通知データD20~D30bの受信が制御されることで、デジタルカメラ100のイベントをPC200に通知するデータ通信における処理負荷を低減することができる。
また、本実施形態のデジタルカメラ100において、コントローラ135は、デジタルカメラ100においてイベントが発生すると(S20~S30B)、発生したイベントにおいて変化した状態を示すデータの一例としてイベントデータを通知データD20~D30bに含めて、当該通知データD20~D30bをPC200に送信するように、USBコネクタ155を制御する(S420~S430B)。これにより、通知データD20~D30bにおいて、イベント通知と合わせて各イベントのイベントデータを送信することができる。
また、本実施形態のデジタルカメラ100において、コントローラ135は、デジタルカメラ100において複数種類のイベントが発生したとき(S20、S30B等)、発生した複数種類のイベントの各データを含む一の通知データD20,D30bを生成し、一の通知データD20,D30bをPC200に送信するように、USBコネクタ155を制御する(S420,S430B)。これにより、複数種類のイベントをまとめて、一の通知データD20,D20b等によりPC200に通知することができる。
また、本実施形態のデジタルカメラ100において、コントローラ135は、デジタルカメラ100において予め設定された種類のイベントが発生したとき(S20~S30B)、通知データD20~D30bをUSBコネクタ155に送信させ(S420~S430B)、デジタルカメラ100において設定された種類とは異なる種類のイベントが発生したとき(S10)、通知データをUSBコネクタ155に送信させない(図5参照)。これにより、予め設定された種類のイベントのみを選択的にPC200に通知することができる。
(実施形態1の変形例)
上記の実施形態1では、PC200からイベント通知の設定を行う(図6)撮像システム1の動作を説明したが、イベント通知の設定はデジタルカメラ100において行われてもよい。こうした変形例について、図15を用いて説明する。図15は、実施形態1の変形例の撮像システム1におけるイベント通知設定の動作を例示するシーケンス図である。
本変形例において、デジタルカメラ100は、例えば操作部150において、イベント通知に含めるイベントの種類を設定するユーザ操作を受け付けて、イベント通知の設定を要求する通知設定要求のイベント通知をPC200に送信する(S331)。ステップS331では、デジタルカメラ100は、例えばユーザ操作に応じた設定データD1を生成してバッファメモリ125等に格納する。デジタルカメラ100は、通知設定要求を受信したPC200から設定データD1の転送要求(S332)を受けて、設定データD1をPC200に送信する(S333)。PC200は、受信した設定データD1を用いて、例えば図6と同様にイベント通知設定の動作を行う(S301~S303)。
以上の動作によれば、実施形態1と共通するイベント通知設定のシーケンス(図6)を利用して、デジタルカメラ100からイベント通知の設定を行うことができる(S331~S333,S301~S303)。なお、デジタルカメラ100におけるイベント通知の設定は、上記の例に限らない。例えばデジタルカメラ100において、ステップS333で送信する設定データD1に基づいてイベント通知の設定が行われてもよく、ステップS301~S303の処理が省略されてもよい。
また、通知設定要求のイベント通知(S331)は、デジタルカメラ100でのユーザ操作に限らず、例えばデジタルカメラ100またはPC200の各コントローラ135,235における処理負荷の増大が想定される場合に実行されてもよい。この場合、例えばデジタルカメラ100において予め設定されてバッファメモリ125等に格納された設定データD1を用いて、ステップS333が実行されてもよい。
以上のように、本実施形態において、デジタルカメラ100(通信装置の一例)は、パラメータ1~3(データ格納部の一例)にイベントデータが格納可能なイベントの種類を設定するユーザ操作を受け付ける操作部150をさらに備える。これにより、当該ユーザ操作に応じて設定データD1を生成して、生成した設定データD1に基づくイベント通知動作を行うことができる(S420~S430B)。
(実施形態2)
以下、図16~図20を用いて、本開示の実施形態2を説明する。実施形態1では、イベントの種類に基づいてイベント通知を制御する撮像システム1を説明した。実施形態2では、複数回のイベントにおいてイベント通知を間引く撮像システム1を説明する。
以下、実施形態1に係る撮像システム1と同様の構成、動作の説明は適宜、省略して、本実施形態に係る撮像システム1を説明する。
2-1.イベント通知動作
本実施形態の撮像システム1におけるイベント通知動作について、図16及び図17を用いて説明する。本システム1では、イベント通知を間引く間隔として、デジタルカメラ100において複数回のイベントが発生する時間間隔、または発生回数の割合といった間引き間隔が設定可能である。
図16は、本実施形態の撮像システム1における時間間隔に応じたイベント通知動作を説明するためのシーケンス図である。図17は、本システム1における回数に応じたイベント通知動作を説明するためのシーケンス図である。
図16及び図17は、本システム1においてイベント間引き設定(後述)が予め行われた場合に、図4と同様のLV表示中に設定メニュー情報の変更(S22)、及び複数回の絞り値の変更(S21,S23~S25)といったイベントが発生する例を示す。
図16の例では、デジタルカメラ100において、絞り値の変更といった特定の種類のイベントについて所定の時間間隔T1(例えば100ミリ秒(ms))が間引き間隔に設定されている。この場合、デジタルカメラ100は、当該種類のイベントについては、時間間隔T1を置いて発生したイベント(S21,S25)に制限して通知する(S431,S433)。即ち、デジタルカメラ100は、間引き対象のイベントを1回通知してから(S431)、時間間隔T1内に発生したイベント(S23,S24)を通知しない。
一方、間引き間隔が設定された種類のイベントとは異なる種類のイベント、例えば設定メニュー情報の変更(S22)については、デジタルカメラ100は、時間間隔T1内であっても、イベント通知を行う(S432)。デジタルカメラ100は、各イベント通知の動作において(S431~S433)、例えば実施形態1と同様にイベントデータを含む通知データをPC200に送信する。
図17の例では、図16と同様に絞り値の変更を間引き対象として、所定の発生回数の割合(例えば2回に1回)が間引き間隔に設定されている。この場合、デジタルカメラ100は、ステップS21の絞り値の変更をPC200に通知後(S431)、当該種類のイベントについて、2回の間隔を置かずに発生した場合(S23)には通知せず、2回の間隔を置いて発生した場合(S24)に通知する(S433A)。同様に、ステップS433Aの通知から1回目の絞り値の変更(S25)は通知されない。一方、図16の例と同様に、間引き対象とは異なる種類のイベント(S22)については、発生回数の割合に関わらず通知される(S432)。
以上のように、本実施形態のデジタルカメラ100は、時間間隔及び発生回数の割合といった間引き間隔において、発生する複数回のイベントを間引いて通知するように、PC200への通知データの送信を制御する。こうした間引き間隔によりイベント通知を制限することで、複数回のイベントの発生に伴うデジタルカメラ100とPC200間の通信にかかる処理負荷を低減でき、例えば割り込み処理の多発を回避して、LV表示の遅延も抑制することができる。
2-2.イベント間引き設定
撮像システム1において、間引き間隔を設定するイベント間引き設定の動作について、図18及び図19を用いて説明する。
図18は、本実施形態の撮像システム1におけるイベント間引き設定の動作を例示するシーケンス図である。図19は、イベント通知の間引き設定データD50を例示する図である。
まず、PC200は、例えばイベント通知設定のシーケンス(図6)と同様に、機器I/F255を介して、デジタルカメラ100にイベント通知の間引き設定を要求するためのコマンドを発行する(S351)。PC200は、イベント通知の間引き間隔を規定する間引き設定データD50(図19参照)のコマンドを、デジタルカメラ100に送信する(S352)。間引き設定データD50は、例えばPC200において予め生成されて、記憶部245等に保持される。
ステップS351,S352においてデジタルカメラ100は、例えばUSBコネクタ155により設定要求及び間引き設定データD50を受信する。デジタルカメラ100は、間引き設定データD50を受信すると、例えば「OK」または「Error」の設定応答をPC200に送信する(S353)。
以上の間引き設定の動作によれば、撮像システム1において、PC200からイベント通知の間引き設定データD50をデジタルカメラ100に設定することができる。図19に例示するシーケンスは、例えばPC200において設定を開始するユーザ操作に応じて、またはコントローラ235における処理負荷に応じて開始されてもよい。以下、間引き設定データD50について、図19を用いて説明する。
図19に例示する間引き設定データD50は、「項目」と各項目の「値」とを含む。図19の例では、設定データD50の項目は、間引き間隔を適用するイベントを指定する「間引き対象イベント」、間引き間隔に時間間隔または回数を指定する「間引きタイプ」、間引きタイプに応じた「更新間隔」及び「設定回数」を含む。「更新間隔」は、間引きタイプが時間間隔である場合に有効な値、即ちイベント通知を間引く処理で参照可能な値を示す。「設定回数」は間引きタイプが回数である場合に有効な値を示す。図19では、値の「*」は16進数で「0」から「F」までの任意の整数を示す。
間引き対象イベントは、例えば4バイトの値において各ビットにイベントの種類を対応付けた所定の規定コードに従い設定される。例えば各種類のイベントは、規定コードの対応するビットが「1」である場合、間引き対象イベントに設定され、対応するビットが「0」の場合、間引き対象イベントに設定されない。例えば規定コードの値(16進数)が「0x00000004」、即ち下位3ビット目(2進数)が「1」のとき、ISO感度の変更に関するイベントが間引き制御の対象に設定されてもよい。また、複数のビットが「1」のとき対応する複数のイベントが間引き制御の対象に設定されてもよい。また、例えば全ビットが最大値「F」のとき、全種類のイベントが間引き対象イベントに設定されてもよい。
間引きタイプは、例えば1バイトの値において、「0x*1」のとき時間間隔が間引き間隔に設定され、「0x*2」のとき回数が間引き間隔に設定される。また、間引き対象イベントに複数種類のイベントが設定される場合、例えば間引きタイプに各種類のイベントに対応する複数の値が格納されてもよい。例えばこの場合、間引きタイプの値の上位4ビットにより、間引き対象イベントの値の降順に、間引きタイプを設定するイベントが指定されてもよい。例えば「0x01」であれば、間引き対象イベントに設定されたイベントのうちの最小値で指定されたイベントについて、時間間隔が間引き間隔に設定される。
更新間隔は、例えば所定の単位(例えばミリ秒)で時間間隔を示す2バイトの値により、所定の下限値(例えば10ミリ秒)以上の時間間隔T1を設定可能である。設定回数は、例えば2バイトの値により2回以上の発生回数の割合を示す値を設定可能である。更新間隔及び設定回数は、例えば最大値が設定された場合に、イベント通知動作において参照されないように規定されてもよい。
以上のような間引き設定データD50は、例えばPC200において、操作部230に入力されるユーザ操作に応じて生成される。また、PC200は、ユーザ操作に限らず、例えばコントローラ235の処理負荷に応じて間引き設定データD50を自動で生成してもよい。また、間引き設定データD50は、PC200に限らず、例えばデジタルカメラ100において操作部150に入力されたユーザ操作に応じて設定されてもよい。
2-3.デジタルカメラの動作
本実施形態の撮像システム1では、例えば以上のような間引き設定データD50に基づき、図16及び図17に例示するイベント通知動作が実行される。本実施形態のイベント通知動作において、デジタルカメラ100がイベント通知を間引く処理について、図20を用いて説明する。
図20は、本実施形態のデジタルカメラ100におけるイベント通知動作を例示するフローチャートである。本フローチャートは、例えばPC200からコマンド発行された間引き設定データD50が、バッファメモリ125等に格納された状態で開始される。本フローチャートの各処理は、例えばデジタルカメラ100のコントローラ135により実行され、フレーム周期などの所定の周期で繰り返される。
まず、コントローラ135は、デジタルカメラ100において、イベントが発生したか否かを検知する(S0)。例えば、コントローラ135は、デジタルカメラ100の動作状態および各種ユーザ操作の入力に基づき、各種カメラ状態の変更の有無を検知する。コントローラ135は、イベントの発生が検知されないとき(S0でNO)、例えば所定の周期でステップS1の検知を繰り返す。
イベントの発生が検知されたとき(S0でYES)、コントローラ135は、例えば間引き設定データD50を参照して、検知されたイベントが間引き対象イベントに該当するか否かを判断する(S1)。
検知されたイベントが間引き対象イベントに該当しない場合(S1でNO)、コントローラ135は、特にイベント通知を間引く処理、即ち間引き制御を行わず、後述のように検知されたイベントをPC200に通知する(S6)。
検知されたイベントが間引き対象イベントに該当する場合(S0でYES)、コントローラ135は、例えば間引き設定データD50を参照して、検知されたイベントの間引きタイプが「1」であるか否かを判断する(S2)。
(1)時間間隔による間引き制御
検知されたイベントの間引きタイプが「1」である場合(S2でYES)、図16に例示したように、時間間隔による間引き制御が実行される(S3A~S6)。
例えば、コントローラ135は、間引き対象のイベントについて、今回の検知時(S0)が、前回PC200に通知した当該種類のイベントの検知時から、間引き設定データD50において設定された時間間隔、即ち更新間隔の範囲内か否かを判断する(S3A)。デジタルカメラ100は、例えばイベント毎に検知時刻を管理するタイマ変数をバッファメモリ125等に保持してもよい。図16の例では、絞り値の変更についてイベント通知(S431)後、当該種類のイベントの各検知時(S23~S25)がステップS21の検知時から時間間隔T1の範囲内か否かが判断される(S3A)。
今回の検知時(S0)が、前回の通知から更新間隔の範囲内でない場合(S3AでNO)、コントローラ135は、前回のイベント通知時におけるイベントデータと、今回のイベントデータとの差分を計算する(S4)。イベントデータは、例えばイベント通知時(S6)にバッファメモリ125等に格納される。図16の例では、ステップS25の検知時が、ステップS21の検知時から時間間隔T1の範囲内でなく(S3AでNO)。前回の通知時(S431)と、ステップS25とのイベントデータの差分が計算される。
コントローラ135は、計算したイベントデータの差分に基づき、ステップS0で検知されたイベントの前回の通知時から、当該種類のイベントについてのカメラ状態に差異があるか否かを判断する(S5)。
前回の通知時から差異がある場合(S5でYES)、コントローラ135は、ステップS0で検知されたイベントのイベントデータを含む通知データを、USBコネクタ155を介してPC200に送信する(S6)。図16の例では、ステップS25での検知時に、前回の通知時(S431)から絞り値が異なる場合(S5でYES)に制限して、通知データが送信される(S433)。PC200のコントローラ235は、例えば機器I/F255から通知データを受信して格納されたイベントデータを取得する(S433)。
一方、前回の通知時から差異がない場合(S5でNO)、及び今回の検知時(S0)が前回の通知から更新間隔の範囲内である場合(S3AでYES)、コントローラ135は、通知データの送信(S6)を行わず、本フローチャートの処理を終了する。図16の例では、更新間隔T1の範囲内における絞り値の変更(S23,S24)は、PC200に通知されない。
(2)イベント回数による間引き制御
一方、検知されたイベントの間引きタイプが「2」であり「1」でない場合(S2でNO)、図17に例示したようにイベントが発生した回数に応じたイベント通知動作が実行される(S3B~S6)。
例えば、コントローラ135は、間引き設定データD50に基づき、間引き対象のイベントについて前回の通知後に検知された回数が、設定回数未満であるか否かを判断する(S3B)。デジタルカメラ100は、例えばイベント毎に検知回数を管理するカウンタをバッファメモリ125等に保持してもよい。
ステップS0で検知されたイベントについて、前回の通知後の検知回数が、設定回数未満でない場合(S3BでNO)、コントローラ135は、例えば前回のイベント通知時と、今回の検知時との各イベントデータの差分を計算する(S4)。その後、コントローラ135は、時間間隔による間引き制御の場合と同様に前回の通知時からカメラ状態に差異があるか否かを判断し(S5)、差異がある場合(S5でYES)、ステップS1で検知されたイベントの通知データをPC200に送信する(S6)。図17の例では、絞り値の変更について設定回数が「2回」であり、前回の通知(S431)後、当該種類のイベントが2回目に検知されたとき(S24)、通知データが送信される(S3BでNO,S433A)。
前回の通知時からカメラ状態に差異がない場合(S5でNO)、または前回のイベント通知後の検知回数が、設定回数未満の場合(S3BでYES)、コントローラ135は、通知データを送信せず、本フローチャートの処理を終了する。図17の例では、絞り値の変更について、前回の通知(S431)後、1回目に検知されたとき(S23,S3BでYES)には、通知データは送信されない。
以上の処理によれば、デジタルカメラ100は、例えば予め設定された時間間隔及び回数といった間引き間隔に基づいて、デジタルカメラ100において発生する複数回のイベント(S21~S25)から、PC200に通知するイベントを制限する(S431~S433A)。このように、本実施形態のデジタルカメラ100は、簡単に設定可能な間引き間隔を用いて、過剰なイベント通知を抑制することで、イベントの発生に応じたデジタルカメラ100とPC200間の通信にかかる処理負荷を低減し易くすることができる。
又、以上の処理において、デジタルカメラ100は、設定された時間間隔が経過してから間引き対象イベントが再び発生した際に(S0でYES)、前回の通知時からの、当該イベントに関するカメラ状態の変化の有無を判断する(S5)。これにより、特に前回の通知時からカメラ状態が同じといった、不要なイベント通知を省略できる。デジタルカメラ100は、設定された時間間隔の経過時に、特に当該イベントの発生有無に関わらずステップS5の判断を行い、変化がある場合には通知データを送信してもよい。
2-4.効果等
以上のように、本実施形態のデジタルカメラ100は、外部のPC200(制御装置の一例)に、自装置における情報を通知する通信装置の一例である。デジタルカメラ100は、USBコネクタ155(通信部の一例)と、コントローラ135(制御部の一例)とを備える。USBコネクタ155は、PC200との間でデータ通信を行う。コントローラ135は、カメラ状態(デジタルカメラ100における状態の一例)が変化するイベント(S21~S25)に応じて通知データを生成して、通知データをPC200に送信するようにUSBコネクタ155を制御する(S431~S433A)。コントローラ135は、予め設定された間引き間隔に基づいて、デジタルカメラ100において発生する複数回のイベントのうちの(S21,S23~S25)、間引き間隔を置いて発生した(S3AでNO,S3BでNO)イベントに制限して通知データをPC200に送信する(S6)ように、USBコネクタ155を制御する(S431,S433,S433A)。
以上のデジタルカメラ100によれば、予め設定された間引き間隔に基づき、複数回のイベントのうちのPC200に通知するイベントが制限される。これにより、複数回のイベントの発生に伴うデジタルカメラ100とPC200間の通信にかかる処理負荷を低減することができる。
本実施形態において、コントローラ135は、間引き間隔を置かずに発生した(S3AでYES,S3BでYES)イベントについては通知データをPC200に送信せず、間引き間隔を置いて発生した(S3AでNO,S3BでNO)イベント毎に通知データをPC200に送信する(S6,S433,S433A)ように、USBコネクタ155を制御する。これにより、複数回のイベントの発生に伴うデジタルカメラ100とPC200との通信負荷を低減しながら、通知データを送信するイベントに対応した変化後のカメラ状態をPC200に通知することができる。
本実施形態において、間引き間隔は、時間間隔と、イベントの発生回数の割合とのうちの少なくとも一方に設定される。本実施形態では、図19に例示する間引き設定データD50において、イベントの種類毎に時間間隔または発生回数の割合の何れかを間引き間隔として設定可能である。なお、間引き設定データD50の間引きタイプに1つの値のみが格納され、全ての間引き対象イベントに同じタイプの間引き間隔が設定されてもよい。
本実施形態において、USBコネクタ155は、間引き間隔を設定するコマンドをPC200から受信する(S351,S352)。コントローラ135は、USBコネクタ155が受信したコマンドに従い、コマンドにより設定された間引き間隔において発生したイベントに制限して通知データをPC200に送信するように、USBコネクタ155を制御する(S431~S433A)。これにより、PC200から設定した間引き間隔に基づいてイベント通知を制限することができる。
本実施形態において、デジタルカメラ100は、通知データが送信された第1のイベントの一例として、ステップS21の絞り値を変更するイベントに対応する、デジタルカメラ100における変更前の絞り値に関するカメラ状態(第1の状態の一例)を示すイベントデータを格納するバッファメモリ125(記憶部の一例)をさらに備える。コントローラ135は、第1のイベントから間引き間隔を置いた第2のイベントの一例として、ステップS25の絞り値を変更するイベントが発生したときに、バッファメモリ125に格納されたイベントデータに基づいて、第2のイベントに対応する、デジタルカメラ100における変更後の絞り値に関するカメラ状態(第2の状態の一例)が、第1の状態から変化した否かを判断し(S4,S5)、第2の状態が第1の状態から変化した場合(S5でYES)、第2のイベントに応じて通知データをUSBコネクタ155に送信させ(S6)、第2の状態が第1の状態から変化していない場合(S5でNO)、第2のイベントに応じて通知データをUSBコネクタ155に送信させない。これにより、間引き間隔を置いてイベントが発生しても、当該イベントの前回の通知時からカメラ状態が変化していない場合には、通知データを送信せず、デジタルカメラ100とPC200との通信負荷を更に削減することができる。
PC200は、外部のデジタルカメラ100(通信装置の一例)から情報を通知される制御装置の一例である。PC200は、機器I/F255(通信部の一例)と、コントローラ235(制御部の一例)とを備える。機器I/F255は、デジタルカメラ100との間でデータ通信を行う。コントローラ235は、デジタルカメラ100から機器I/F255を介して、カメラ状態(デジタルカメラ100における状態)が変化するイベントに応じた通知データを受信する動作を制御する(S431~S433A)。コントローラ235は、通知データの送信を制限するための間引き間隔を設定するコマンドを、機器I/F255を介してデジタルカメラ100に送信する(S351,S352)。コントローラ235は、デジタルカメラ100から機器I/F255を介して、デジタルカメラ100において発生する複数回のイベントのうちの(S21~S25)、間引き間隔を置いて発生したイベントに制限された通知データを受信する(S431~S433A)。
以上のPC200によれば、デジタルカメラ100に送信した、間引き間隔を設定するコマンドに従い、イベント通知が制限される。これにより、例えばPC200から所望の間引き間隔等を設定して、デジタルカメラ100からのイベント通知動作を制御することができる。
本実施形態では、デジタルカメラ100(通信装置の一例)からPC200(制御装置の一例)に、デジタルカメラ100における情報を通知する通信方法が提供される。本方法は、PC200が、カメラ状態(デジタルカメラ100における状態の一例)が変化するイベントに応じた通知データの送信を制限するための間引き間隔を設定するコマンドを、デジタルカメラ100に送信するステップ(S351,S352)と、デジタルカメラ100が、コマンドにより設定された間引き間隔に基づいて、デジタルカメラ100において発生する複数回のイベントのうちの(S21~S25)、間引き間隔を置いて発生した(S3AでNO,S3BでNO)イベントに制限して通知データをPC200に送信するステップ(S6,S431~S432)とを含む。
以上の通信方法によれば、デジタルカメラ100で発生する複数回のイベントに関して、カメラ状態の変化をPC200に通知するデータ通信における処理負荷を低減することができる。
(実施形態3)
以下、図21を用いて、本開示の実施形態3を説明する。実施形態3では、実施形態1と同様に通知するイベントの種類を制限し、かつ実施形態2と同様にイベント通知を間引く撮像システム1を説明する。
以下、実施形態1,2に係る撮像システム1と同様の構成、動作の説明は適宜、省略して、本実施形態に係る撮像システム1を説明する。
図21は、本実施形態のデジタルカメラ100におけるイベント通知動作を例示するフローチャートである。本実施形態のデジタルカメラ100は、実施形態2の間引き制御(図20)と同様の処理(S0~S6)を行うことに加えて、例えば図21に示すように、特定のイベントのみを通知するための処理を行う(S11)。
例えば、コントローラ135は、イベントが検知されると(S0でYES)、当該イベントがイベント通知の設定データD1(図7参照)に含まれるか否かを判断する(S11)。例えば、コントローラ135は、検知されたイベントが設定データD1におけるイベントグループの通知イベントタグに設定されているか否かを判断する(S11)。
検知されたイベントがイベント通知の設定データD1にある場合(S11でYES)、コントローラ135は、例えば間引き設定データD50を参照して、当該イベントの間引きタイプを判断して(S2)、図20と同様の間引き制御を行う。
一方、検知されたイベントがイベント通知の設定データD1にない場合(S11でNO)、コントローラ135は、例えばステップS2以降の処理を実行せず、本フローチャートの処理を終了する。これにより、設定データD1にないイベントが発生しても、イベント通知が生成されないようにすることができる。
以上の処理によると、設定データD1において通知対象に設定されたイベントについてのみ(S11でYES)、間引き間隔により通知を制限するイベント通知動作が実行される(S2~S6)。これにより、撮像システム1において、例えばデジタルカメラ100におけるイベント通知の多発を抑制しつつ、ユーザが通知対象に設定した所望のイベントについては、通知データをPC200に送信することができる。
なお、ステップS6で送信される通知データは、1種類のイベントに限らず、複数種類のイベントのイベントデータを含んでもよい。この場合、コントローラ135は、各種類のイベント毎に、ステップS2以降の処理を実行してもよい。また、例えば設定データD1で設定されたイベントグループ毎に、間引き制御が行われてもよく、ステップS3A,S3Bでは、イベントグループ毎にタイマ変数またはカウンタが管理されてもよい。この場合、イベントグループ内の何れかのイベントの発生に応じて、時間間隔の経過(S3A)または回数(S3B)が判断されてもよい。同様にステップS4~S5では、イベントグループ内の何れかのイベントに関してカメラ状態が変化していれば、前回から差異があった(S5でYES)と判断されてもよい。
さらに、実施形態1と同様の設定データD1におけるイベントグループに限らず、デジタルカメラ100において、AF制御に関する複数種類のイベント等、同種のイベントをまとめたグループを用いて、図21の処理が実行されてもよい。
以上のように、本実施形態において、コントローラ135(制御部の一例)は、デジタルカメラ100(通信装置の一例)において予め設定された種類のイベントが発生したとき(S11でYES)、通知データをUSBコネクタ155(通信部の一例)に送信させ(S6)、デジタルカメラ100において設定された種類とは異なる種類のイベントが発生したとき(S11でNO)、通知データをUSBコネクタ155に送信させない。これにより、間引き間隔に基づくイベント通知の制限と合わせて、イベントの種類によっても通知を制限することができ、カメラ状態の変化に伴うデジタルカメラ100とPC200との通信にかかる処理負荷をさらに低減することができる。
(他の実施形態)
以上のように、本開示における技術の例示として実施形態1~3を説明した。そのために、添付図面および詳細な説明を提供した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
上記の実施形態1では、イベント通知の設定に応じて(1)各イベントグループにより複数のイベントをまとめて通知し、(2)各イベントグループに設定されたイベントのみを選択的に通知し、及び(3)イベントデータをイベント通知に格納する例を説明した。本実施形態の撮像システムは、上記(1)~(3)に挙げた機能のうち、何れか1つまたは2つの機能のみを備えていてもよい。
上記の実施形態2では、イベント通知を行う際に(S431~S433A)、実施形態1と同様に、イベントデータを含む通知データをPC200に送信する例を説明した。本実施形態では、各ステップS431~S433Aにおいて、例えばデジタルカメラ100はイベント通知のみを送信してもよい。この場合、図4のLV画像の取得処理(S400)と同様に、イベント通知を受けたPC200がイベントデータの取得を要求することに応じて、デジタルカメラ100がイベントデータを送信してもよい。
上記の各実施形態では、デジタルカメラ100とPC200間の通信を、USB規格に準拠して、USBコネクタ155と機器I/F255との接続により行う例を説明した。デジタルカメラ100とPC200間の通信は、USB規格に限らず、種々の通信規格を用いて実現可能である。本実施形態では、USBコネクタ155及び機器I/F255に限らず、例えばWi-Fiモジュール165及びネットワークI/F265により、IEEE802.3またはWi-Fi規格等に準拠した通信が行われてもよい。また、例えばUSBコネクタ155とネットワークI/F265とをUSB-LANアダプタを介して接続することで、デジタルカメラ100とPC200間の通信が実現されてもよい。
また、本実施形態では、イベント通知の設定データは、図7に例示する設定データD1と同様のデータ構造において、各イベントグループに3つのイベントに限らず、4つ以上のイベントを含んでもよい。
上記の各実施形態では、撮像システム1において、1台のデジタルカメラ100とPC200間で通信を行う例を説明した。本実施形態では、撮像システムにおいて、複数台のデジタルカメラとPC200との間で通信を行ってもよい。この場合、各デジタルカメラにおいて発生するイベントがPC200に通知され、イベントの取得が行われると、PC200のコントローラ235では処理負荷が更に増大する事態が想定される。このような場合であっても、例えば各デジタルカメラとPC200間で、上記の各実施形態と同様に設定されたイベント通知を行うことで、PC200の処理負荷を低減することができる。
上記の各実施形態では、撮像システム1において、デジタルカメラ100でのイベント発生に伴う処理負荷の増大により、遅延が問題となり得る動作の一例として、LV動作を説明した。本実施形態の撮像システムでは、LV動作が実行されなくてもよく、他の動作が行われてもよい。
上記の各実施形態では、通信装置と制御装置との一例として、デジタルカメラ100とPC200とを説明した。本実施形態では、通信装置及び制御装置は、これらに限らず、互いにデータ通信可能な通信機能を有する種々の電子機器であってもよい。例えば、通信装置がビデオカメラであってもよく、制御装置がスマートフォンまたはタブレット端末であってもよい。また、通信装置及び制御装置が同種の電子機器であってもよい。
上記の各実施形態では、通信装置が構成する撮像装置の例としてデジタルカメラ100を説明した。本実施形態では、撮像装置はデジタルカメラに限らず、画像撮影機能と通信機能を有する電子機器であればよい。例えば撮像装置は、ビデオカメラ、スマートフォン、またはタブレット端末等として構成されてもよい。
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。