(57)【要約】【課題】応答速度が低下するのを防ぎつつ、ファームウェアの部分的なアップデートを可能とすることを目的とする。【解決手段】ユーザインターフェイス提供モジュールと、画像に対して処理を行う複数の処理モジュールとを有し、ユーザインターフェイス提供モジュールは、各処理モジュールに対し、処理内容を示す処理情報を設定し、複数の処理モジュールそれぞれは、ユーザインターフェイス提供モジュールにより設定された処理情報に従い、入力された画像に対して処理を行う。【選択図】図３
2019091993.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインターフェイス提供モジュールと、
画像に対して処理を行う複数の処理モジュールと
を有し、
前記ユーザインターフェイス提供モジュールは、各処理モジュールに対し、処理内容を示す処理情報を設定し、
前記複数の処理モジュールそれぞれは、前記ユーザインターフェイス提供モジュールにより設定された前記処理情報に従い、入力された画像に対して処理を行うことを特徴とする撮像装置。
【請求項２】
前記ユーザインターフェイス提供モジュールは、前記処理モジュールに設定する処理内容に情報の出力が含まれる場合に、前記処理情報と共に、出力先を示す出力先情報を前記処理モジュールに設定することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記ユーザインターフェイス提供モジュールは、前記複数の処理モジュールのうち第１の処理モジュールに対し、前記第１の処理モジュールの処理内容を示す第１の処理情報と、前記第１の処理モジュールから出力される前記情報に対して、前記第１の処理モジュールと異なる第２の処理モジュールにおいて施される処理内容を示す第２の処理情報と、を前記第１の処理モジュールに設定することを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記ユーザインターフェイス提供モジュールは、前記第１の処理モジュールに対し、前記出力データに対して施される処理内容を示す前記第２の処理情報として、前記第２の処理情報を識別する識別情報を設定することを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記ユーザインターフェイス提供モジュールは、前記第２の処理モジュールから前記識別情報を取得することを特徴とする請求項４に記載の撮像装置。
【請求項６】
前記第１の処理モジュールは、出力対象の情報と共に、前記識別情報を前記第２の処理モジュールへ出力することを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記出力先は、データを出力する処理モジュール自身、データを出力する処理モジュールと異なる他の処理モジュール及び前記ユーザインターフェイス提供モジュールのうち少なくとも１つであることを特徴とする請求項２乃至６の何れか１項に記載の撮像装置。
【請求項８】
コンピュータを、請求項１乃至７の何れか１項に記載の撮像装置の各モジュールとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置及びプログラムに関する。
【背景技術】
【０００２】
従来、カメラなどの撮像装置においては応答性を確保するためにリアルタイムＯＳが採用されており、このためにファームウェアのアップデートはファームウェア全体でしか行うことができなかった。他方でＡｎｄｒｏｉｄ（登録商標）などにおいては、ソフトウェアモジュールが複数に分かれており、個々のアップデートが可能である。ただし、ミドルウェア層とアプリケーション層との間で処理の主体が移動し、その間でデータがコピーされるため、高速の応答を確保することが困難であった。応答性を確保するためには、ミドルウェア層でユーザの介入なしに複数のモジュールが起動・処理されることが期待される。これに対し、特許文献１には、画像のキューレーションを行うための基準を生成する方法として、ユーザの介入なしに自動的に１つ又は複数のモジュールが起動される構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１５−５２９８９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術においては、高速の応答性とファームウェアの部分的なアップデートを可能とすることの両立が困難であるという問題があった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、応答速度が低下するのを防ぎつつ、ファームウェアの部分的なアップデートを可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、撮像装置であって、ユーザインターフェイス提供モジュールと、画像に対して処理を行う複数の処理モジュールとを有し、前記ユーザインターフェイス提供モジュールは、各処理モジュールに対し、処理内容を示す処理情報を設定し、前記複数の処理モジュールそれぞれは、前記ユーザインターフェイス提供モジュールにより設定された前記処理情報に従い、入力された画像に対して処理を行うことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、応答速度が低下するのを防ぎつつ、ファームウェアの部分的なアップデートを可能とすることができる。
【図面の簡単な説明】
【０００８】
【図１】撮像装置のハードウェアの構成図である。
【図２】撮像装置のソフトウェアの構成図である。
【図３】構成サービスの処理の説明図である。
【図４】設定処理を示すフローチャートである。
【図５】実行処理を示すフローチャートである。
【図６】構成サービスの処理の説明図である。
【図７】構成サービスの処理を示すフローチャートである。
【図８】第１のアプリケーションを示す図である。
【図９】第２のアプリケーションを示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
＜構成＞
図１は、本件実施形態に係る撮像装置１００のハードウェアの構成図である。レンズユニット１０１は、集光のための固定レンズ群、変倍レンズ群、絞り、変倍レンズ群の動きで移動した結像位置を補正する機能と焦点調節を行う機能とを兼ね備えた補正レンズ群により構成される。イメージセンサー１０２は、撮像素子であり、レンズユニット１０１によって集光された光から作られた光学像を、電気信号に変換する。信号処理回路１０３は、撮像素子で生成される電気信号に対して画像処理を行い、画像データを出力する。
【００１０】
ＣＰＵ１０４は、演算装置であって、装置全体の制御を司る。ＲＯＭ１０９は、不揮発性のメモリであって、ＣＰＵ１０４が実行するプログラムと、これが使用するパラメータ等を記憶している。ＲＡＭ１１０は、揮発性のメモリであって、プログラムをＣＰＵ１０４が実行する時のワークエリア等として用いられる。ｅＭＭＣ１１１は、不揮発性のメモリであって、プログラムと、プログラムが使用するパラメータや、画像ファイルなどのユーザデータを記憶している。ｅＭＭＣ１１１は、ハードディスクやＳＤカードなど書き換えが可能な、不揮発性の他の記憶手段によっても代替し得る。
【００１１】
ＬＣＤ１０６は、液晶ディスプレーパネルであり、コントローラ１０５は、ＬＣＤ１０６のコントロールを行う。ＬＣＤ１０６とコントローラ１０５は、プログラムやシステムによって処理中の情報、各種メッセージ、メニューなどの表示を行う。ＬＣＤ１０６とコントローラ１０５は、有機ＥＬディスプレーなど他のディスプレーとそのコントローラによっても代替し得る。タッチパネル１０８は、タッチパネルであり、コントローラ１０７は、タッチパネル１０８のコントロールを行う。タッチパネル１０８とコントローラ１０７は、ユーザからの入力を受け付け、ユーザがオペレーションを行うために用いられる。タッチパネル１０８とコントローラ１０７は、物理ボタンなど他の入力手段によっても代替し得る。バス１２０は、上述した各部を接続し、通信を可能とする。また上記説明したほかに外部接続用にインターフェイスを備えてもよい。
【００１２】
＜ソフトウェアモジュール構成＞
図２は、撮像装置１００のソフトウェアの構成図である。図２において、ユーザインターフェイス（ＵＩ）部２０１は、ユーザとのインタラクションをＬＣＤ１０６やタッチパネル１０８を通じて行うソフトウェアモジュールであって、ｅＭＭＣ１１１のプログラムの一部として存在する。ＵＩ部２０１は、ユーザインターフェイス提供モジュールの一例である。
【００１３】
サービスＡ２０２は、カメラ信号処理回路によって出力された画像データ、または、サービスＡ２０２、サービスＢ２０３もしくはサービスＣ２０４から出力された画像データを入力として、画像データを処理対象として処理を行う。サービスＡはさらに、処理後の画像データを、サービスＡ２０２、サービスＢ２０３、サービスＣ２０４またはＵＩ部２０１へ出力する。なお、サービスＡ２０２は、サービスＡ２０２、サービスＢ２０３、サービスＣ２０４またはＵＩ部２０１のうち少なくとも１つへ出力すればよい。他の例としては、サービスＡ２０２は、サービスＡ２０２とＵＩ部２０１というように２以上の出力先へ出力してもよい。また、他の例としては、サービスＡ２０２は、出力を行わなくともよい。サービスＡ２０２は、ｅＭＭＣ１１１のプログラムの一部として存在する。サービスＢ２０３及びサービスＣ２０４も、サービスＡ２０２と同様に動作する。このように、処理モジュールは、処理モジュールと異なる他の処理モジュールだけでなく、処理モジュール自身を出力データの出力先とすることができる。
【００１４】
さらに、撮像装置１００は、サービスＡ２０２、サービスＢ２０３及びサービスＣ２０４同様の機能を有するソフトウェアモジュールを、追加、削除することができる。以下では、サービスＡ２０２と同様に動作する一連のソフトウェアモジュールをサービス群といい、サービス群を構成する個々のソフトウェアモジュールを構成サービスと呼ぶ。図２の例では、サービス群は、サービスＡ２０２、サービスＢ２０３及びサービスＣ２０４で構成され、このサービス群を構成する構成サービスは、サービスＡ２０２、サービスＢ２０３またはサービスＣ２０４である。サービス群は、１つ以上の構成サービスにより構成される。図２の例では、サービス群を構成する構成サービスは３つであるが、構成サービスの数は限定されるものではなく、１つ以上あればよい。なお、撮像装置１００は、さらに、オペレーションシステム等、汎用的機能を有するソフトウェアモジュール群も有しているものとする。ここで、各構成サービスは、画像に対して処理を行う処理モジュールの一例である。
【００１５】
ＵＩ部２０１は、サービス群を管理する機構を有する。ＵＩ部２０１は、サービス群を構成する構成サービス毎に、ｅＭＭＣ１１１上の位置を表すファイルパス、プロセス間通信において識別するための識別子、構成サービスの情報を保持している。ここで、構成サービスの情報は、構成サービス毎に付されたＩＤであるサービスＩＤや、後述する処理設定を作る上で必要な情報等を含むものとする。構成サービスが追加されるときには、撮像装置１００は、ＵＩ部２０１が保持する構成サービスの情報に、追加する構成サービスに関する情報を追加する。撮像装置１００はまた、構成サービスを削除する時には、ＵＩ部２０１が保持する構成サービスの情報から、削除する構成サービスに関する情報を削除する。
【００１６】
ＵＩ部２０１が保持する構成サービスの情報について、ＵＩ部２０１自体が保持せず、構成サービス以外のソフトウェアモジュールを別に設け、このソフトウェアモジュールが保持することとしてもよい。この場合には、ＵＩ部２０１は、このソフトウェアモジュールの保持する構成サービスの情報を利用すればよい。またＵＩ部２０１は、構成サービスが入力に対してどのような処理をすべきかについて、設定を行うことができる。以下では、設定内容を処理設定と称する。処理設定は、入力データに対して行われる処理の指定、出力先の指定、出力される構成サービスにおける処理に使用される処理設定を識別する設定ＩＤの指定を含む。ここで、処理設定は、構成サービスにおける処理内容を示す処理情報の一例である。ここで、設定ＩＤは、処理設定の識別情報の一例である。また、出力先の指定は、出力先情報の一例である。
【００１７】
＜構成サービスでの処理＞
図３は、構成サービスが、他の構成サービスの出力を入力とする場合の処理の説明図である。なお、構成サービスが、信号処理回路１０３によって出力された画像データを入力とする場合については後述する。図３に示すＵＩ部３０１は、図２のＵＩ部２０１に対応する。また構成サービス３０２は、図２のサービスＡ２０２、サービスＢ２０３またはサービスＣ２０４に対応する。構成サービス３０２は、ＵＩ部３０１から設定された処理設定を保存するための領域３０３を有している。領域３０３は、複数設けられていてもよい。ＵＩ部３０１が構成サービス３０２に対して、処理設定３０４を設定する。そして、構成サービス３０２は、処理設定３０４を指定された入力に対して、処理設定３０４で指定された処理を行い、処理設定３０４で指定された構成サービスまたはＵＩ部３０１に対し出力する。
【００１８】
なお、処理設定３０４は、以下、（ａ）〜（ｃ）の３つの情報を含む。
（ａ）入力データに対して行われる処理の指定
（ｂ）出力先の指定
（ｃ）出力先の構成サービスにおける処理に使用される処理設定の設定ＩＤの指定
【００１９】
図４は、ＵＩ部３０１から構成サービス３０２に対して処理設定３０４が設定された場合の、構成サービス３０２による設定処理を示すフローチャートである。Ｓ４０１において、構成サービス３０２は、ＵＩ部３０１から処理設定を取得する。次に、Ｓ４０２において、構成サービス３０２は、取得した処理設定に対し、ユニークな設定ＩＤを付与する。さらに、構成サービス３０２は、ＵＩ部３０１に対し、設定ＩＤを通知する。次に、Ｓ４０３において、構成サービス３０２は、処理設定を設定ＩＤに紐付けて領域３０３に保存する。以上で処理が終了する。なお、構成サービス３０２は、処理設定そのものを保存するのに替えて、処理設定を、後の工程で使いやすい形に変換した上で、設定ＩＤに紐付けて保存してもよい。
【００２０】
図５は、構成サービス３０２への入力が他の構成サービスからの出力である場合の、構成サービス３０２による、入力された画像データに対する処理を示すフローチャートである。Ｓ５０１において、構成サービス３０２は、他の構成サービスから処理対象となる画像データを取得する。また、構成サービス３０２は、他の構成サービスより、入力の処理をどのように行うかの指定のために、処理設定を指定する情報として、設定ＩＤを取得する。次に、Ｓ５０２において、構成サービス３０２は、領域３０３より、設定ＩＤに紐付けられた処理設定を取り出す。以下、取り出された処理設定を、対象処理設定と称する。
【００２１】
次に、Ｓ５０３において、構成サービス３０２は、対象処理設定に含まれる「（ａ）入力データに対して行われる処理の指定」に基づいて、画像データに対する処理を行う。次に、Ｓ５０４において、構成サービス３０２は、対象処理設定に含まれる「（ｂ）出力先の指定」に基づいて、出力先を特定し、処理後の画像データを出力する処理を行う。構成サービス３０２は、出力先が構成サービスである場合、さらに処理設定に含まれる「（ｃ）出力される構成サービスにおける処理に使用される処理設定の設定ＩＤの指定」に基づき、出力先で実行される処理設定の設定ＩＤを特定する。そして、構成サービス３０２は、特定した設定ＩＤを出力対象の処理後の画像データと共に出力先に出力する。なお、出力先の構成サービスは、Ｓ５０４において出力された設定ＩＤと、画像データとを、Ｓ５０１の処理において取得する。なお、処理設定が、「（ｂ）出力先の指定の指定」を含まない場合、出力処理は不要である。
【００２２】
このようにサービス群を構成する各構成サービスは、連携して処理を連続的に行うことが可能となり、各構成サービスでの処理が完了する度に、ＵＩ部３０１に処理を戻す必要がない。また、入出力のためのデータのやり取りも減るので、高い応答性を実現できる。またＵＩ部３０１や各構成サービスは、それぞれ独立したソフトウェアモジュールであるから、それぞれ単独でのアップデートが可能であり、システムのアップデート時に一体となったアップデートが不要となる。
【００２３】
＜信号処理回路１０３によって出力された画像データを入力とする場合＞
図６は、信号処理回路１０３によって出力された画像データを入力とする場合の構成サービスの処理の説明図である。構成サービスの入力としては、他の構成サービスの出力も信号処理回路１０３によって出力された画像データも両方あり得るのであり、これら入力それぞれに対して別々の構成サービスが必要とされるわけでない。すなわち、図６に示すＵＩ部６０１、構成サービス６０２、領域６０３、処理設定６０４は、それぞれ図３に示すＵＩ部３０１、構成サービス３０２、領域３０３、処理設定３０４に対応する。また、図６に示す構成サービス６０２は、構成サービス３０２と同様に、図４に示す処理を行う。
【００２４】
しかしながら、信号処理回路１０３によって出力された画像データを入力とする場合において、この画像データに対する処理について、信号処理回路１０３など、ＵＩ部６０１以外で設定ＩＤを指定することができない。そこで、信号処理回路１０３によって出力された画像データが入力である場合には、ＵＩ部６０１が設定ＩＤを指定する必要がある。
【００２５】
開始指示６０５は、この指定を行うための、構成サービス６０２のインターフェイスであって、信号処理回路１０３によって出力された画像データが入力としてあった場合に使用される処理設定の設定ＩＤを引数として、呼び出される。構成サービス６０２は、開始指示６０５が呼び出されたときには、信号処理回路１０３によって出力された画像データを入力とした処理が開始されたことを示すフラグにＴＲＵＥを設定する。構成サービス６０２はさらに、信号処理回路１０３によって出力された画像データが入力されたときに使用される処理設定の設定ＩＤを保存する。以下ではこのフラグを画像データ入力フラグといい、この保存された設定ＩＤを画像データ入力用設定ＩＤと称する。
【００２６】
また終了指示６０６は、開始指示６０５での設定を無効化するために使用される構成サービス６０２のインターフェイスである。構成サービス６０２は、終了指示６０６が呼び出されたときには、画像データ入力フラグにＦＡＬＳＥを設定する。構成サービス６０２は、さらに、保存された画像データ入力用設定ＩＤを破棄する。
【００２７】
なお、構成サービスが、信号処理回路１０３によって出力された画像データを入力とする場合に常に同じ処理を行う場合もある。この場合には、構成サービスは、構成サービスの起動時から、構成サービスが実行する処理設定の設定ＩＤを画像データ入力用設定ＩＤとして指定しておき、画像データ入力フラグもＴＲＵＥに指定しておけばよい。さらに、この場合には、開始指示６０５や終了指示６０６を設ける必要はない。
【００２８】
図７は、信号処理回路１０３によって出力された画像データを入力とする場合の構成サービスの処理を示すフローチャートである。Ｓ７０１において、構成サービス６０２は、入力として、信号処理回路１０３によって出力された画像データを取得する。次に、Ｓ７０２において、構成サービス６０２は、画像データ入力フラグを確認する。構成サービス６０２は、画像入力フラグがＴＲＵＥの場合には（Ｓ７０２でＹＥＳ）、処理をＳ７０３へ進める。構成サービス６０２は、画像入力フラグがＦＡＬＳＥの場合には（Ｓ７０２でＮＯ）、処理を終了する。この場合には、入力された画像データは処理が施されることなく破棄される。
【００２９】
Ｓ７０３において、構成サービス６０２は、領域６０３より、画像データ入力用設定ＩＤに紐付けられた処理設定を取り出し、その後処理をＳ７０４へ進める。Ｓ７０４及びＳ７０５の処理は、それぞれ図５を参照しつつ説明したＳ５０３及びＳ５０４の処理と同様である。
【００３０】
＜第１のアプリケーション＞
次に、撮像装置１００の構成を用いたアプリケーション例について説明する。図８は、第１のアプリケーションを示す図である。第１のアプリケーションは、信号処理回路１０３によって出力された画像データに対し、画像処理１、画像処理２という２つの画像処理をかけ、Ｊｐｅｇに変換して、これをユーザに表示する。図８において、実線はソフトウェアモジュール間の通信を、破線はデータの受け渡しを示している。ＵＩ部８０１は、図２のＵＩ部２０１に対応する。また画像処理１サービス８０２は、画像処理１を行う機能を有する構成サービスである。画像処理２サービス８０３は、画像処理２を行う機能を有する構成サービスである。Ｊｐｅｇへの変換サービス８０４は、Ｊｐｅｇへの変換を行う機能を有する構成サービスである。なお、画像処理１及び画像処理２は、色の変換等画像データを用いた処理であればよく、特に限定されるものではない。
【００３１】
ＵＩ部８０１は、ユーザがこの処理（第１のアプリケーション）を選んだ場合には、Ｊｐｅｇへの変換サービス８０４、画像処理２サービス８０３、画像処理１サービス８０２それぞれに対して、処理設定の設定を行う（（１）〜（３））。（１）において、Ｊｐｅｇへの変換サービス８０４は、ＵＩ部８０１から処理設定を取得する。処理設定には、Ｊｐｅｇへの変換に必要なパラメータ、出力先をＵＩ部８０１とすること等が含まれている。Ｊｐｅｇへの変換サービス８０４は、ＵＩ部８０１から取得した処理設定に対し、設定ＩＤ「１」を付与し、設定ＩＤ「１」をＵＩ部８０１へ通知する。続いて、Ｊｐｅｇへの変換サービス８０４は、処理設定と設定ＩＤ「１」とを紐付けて保存する。
【００３２】
（２）において、画像処理２サービス８０３は、ＵＩ部８０１から処理設定を取得する。なお、ＵＩ部８０１は、（１）の処理においてＪｐｅｇへの変換サービス８０４から取得した設定ＩＤ「１」を画像処理２サービス８０３に処理設定として通知するものとする。すなわち、画像処理２サービス８０３が取得する処理設定には、画像処理２を行うために必要なパラメータ、出力先をＪｐｅｇへの変換サービス８０４とすること、出力先で利用される処理設定の設定ＩＤが「１」であること等の情報が含まれる。続いて、画像処理２サービス８０３は、ＵＩ部８０１から取得した処理設定に対し、設定ＩＤ「２」を付与し、設定ＩＤ「２」をＵＩ部８０１へ通知する。続いて、Ｊｐｅｇへの変換サービス８０４は、ＵＩ部８０１から取得した処理設定と、設定ＩＤ「２」とを紐付けて保存する。
【００３３】
（３）において、画像処理１サービス８０２は、ＵＩ部８０１から処理設定を取得する。なお、ＵＩ部８０１は、（２）の処理において画像処理２サービス８０３から取得した設定ＩＤ「２」を画像処理１サービス８０２に処理設定として通知するものとする。すなわち、画像処理１サービス８０２が取得する処理設定には、画像処理１を行うために必要なパラメータ、出力先を画像処理２サービス８０３とすること、出力先で利用される処理設定の設定ＩＤが「２」であること等の情報が含まれる。続いて、画像処理１サービス８０２は、ＵＩ部８０１から取得した処理設定に対し、設定ＩＤ「３」を付与し、設定ＩＤ「３」をＵＩ部８０１へ通知する。なお、図８では説明の便宜上、設定ＩＤを「１」、「２」、「３」としたが、設定ＩＤは、各処理設定を識別可能な識別情報であればよく、実施形態に限定されるものではない。このように、構成サービスに処理設定を設定する際には、下流の構成サービスから順に処理設定を行うものとする。
【００３４】
そして、ＵＩ部８０１が、画像処理１サービス８０２に対し、設定ＩＤ「３」の引数を伴う開始指示を行う（４）。その後、画像処理１サービス８０２は、設定ＩＤ「３」に対応した処理設定に従い、画像処理１を行う。そして、画像処理１サービス８０２は、処理後の画像データと、出力先の画像処理２サービス８０３において参照される処理設定に対応した設定ＩＤ「２」と、を画像処理２サービス８０３へ出力する。
【００３５】
画像処理２サービス８０３も、設定ＩＤ「２」の処理設定に従い、画像処理２を行う。そして、画像処理２サービス８０３は、処理後の画像データと、設定ＩＤ「１」と、をＪｐｅｇへの変換サービス８０４へ出力する。Ｊｐｅｇへの変換サービス８０４も、設定ＩＤ「１」の処理設定に従い、Ｊｐｅｇへの変換の処理を行う。そして、Ｊｐｅｇへの変換サービス８０４は、処理後の画像データをＵＩ部８０１へ出力する。
【００３６】
このように、画像処理１サービス８０２及び画像処理２サービス８０３それぞれの処理の後、ＵＩ部８０１に処理を戻す必要がなく、またＵＩ部８０１へデータを渡す必要もない。従って、撮像装置１００においては、高い応答性が実現できる。またＵＩ部８０１、画像処理１サービス８０２、画像処理２サービス８０３、Ｊｐｅｇへの変換サービス８０４は、それぞれ独立したソフトウェアモジュールである。このため、それぞれ単独でのアップデートが可能であり、システムのアップデート時に一体となったアップデートは必要ではない。例えば、画像処理１、画像処理２に加えて、画像処理３を行うための画像処理３サービスを追加するとする。この場合には、画像処理３サービスの追加と、ＵＩ部８０１の保持する構成サービスの情報の更新を要する。しかしながら、ＵＩ部８０１そのものや、画像処理１サービス８０２、画像処理２サービス８０３、Ｊｐｅｇへの変換サービス８０４の更新は要しない。
【００３７】
＜第２のアプリケーション＞
図９は、第２のアプリケーションを示す図である。第２のアプリケーションは、信号処理回路１０３によって出力された画像データに対し、被写体を判定する。そして、被写体が人であれば顔認証を行い、被写体となった人の氏名を表示し、被写体が犬であれば、被写体となった犬の犬種を表示する。図８と同様、図９において、実線はソフトウェアモジュール間の通信を、破線はデータの受け渡しを意味する。ＵＩ部９０１は、図２のＵＩ部２０１に対応する。被写体判定サービス９０２は、被写体の種別の判定を行う機能を有する構成サービスである。顔認証サービス９０３は、画像の被写体の人の顔から被写体の氏名を判断する機能を有する構成サービスである。犬種判定サービス９０４は、犬の画像中から犬種を判定する構成サービスである。
【００３８】
ＵＩ部９０１は、ユーザがこの処理（第２のアプリケーション）を選んだ場合には、被写体判定サービス９０２、顔認証サービス９０３、犬種判定サービス９０４それぞれに対して、処理設定の設定を行う（（１）〜（３））。（１）において、犬種判定サービス９０４は、ＵＩ部９０１から処理設定を取得する。処理設定には、判定の精度など犬種判定に必要なパラメータ、出力先をＵＩ部９０１とすること等が含まれている。犬種判定サービス９０４は、処理設定に対し、設定ＩＤ「１」を付与し、設定ＩＤ「１」をＵＩ部９０１へ通知する。犬種判定サービス９０４は、さらにＵＩ部９０１から取得した処理設定と設定ＩＤ「１」とを紐付けて保存する。
【００３９】
（２）において、顔認証サービス９０３は、ＵＩ部９０１から処理設定を取得する。処理設定には、顔認証に必要なパラメータ、出力先をＵＩ部９０１とすること等が含まれている。顔認証サービス９０３は、ＵＩ部９０１から取得した処理設定に対し、設定ＩＤ「２」を付与し、設定ＩＤ「２」をＵＩ部９０１へ通知する。顔認証サービス９０３は、さらにＵＩ部９０１から取得した処理設定と設定ＩＤ「２」とを紐付けて保存する。
【００４０】
（３）において、被写体判定サービス９０２は、ＵＩ部９０１から処理設定を取得する。なお、ＵＩ部９０１は、（１）の処理において犬種判定サービス９０４から取得した設定ＩＤ「１」と、（２）の処理において顔認証サービス９０３から取得した設定ＩＤ「２」と、を被写体判定サービス９０２へ処理設定として通知するものとする。すなわち、被写体判定サービス９０２が取得する処理設定には、被写体判定に必要なパラメータ、被写体が人と認識された場合には出力先を顔認証サービス９０３とすること、出力先で利用される処理設定が設定ＩＤ「２」であること等の情報が含まれる。被写体判定サービス９０２が取得する処理設定にはさらに、被写体が犬と認識された場合には出力先を犬種判定サービス９０４とすること、出力先で利用される処理設定が設定ＩＤ「１」であること等の情報が含まれる。そして、被写体判定サービス９０２は、ＵＩ部９０１から取得した処理設定に対し、設定ＩＤ「３」を付与し、設定ＩＤ「３」をＵＩ部９０１へ通知する。被写体判定サービス９０２は、さらにＵＩ部９０１から取得した処理設定と設定ＩＤ「３」とを紐付けて保存する。
【００４１】
そして、ＵＩ部９０１が、被写体判定サービス９０２に対し、設定ＩＤ「３」の引数を伴う開始指示を行う（４）。その後、被写体判定サービス９０２は、信号処理回路１０３から出力された画像データに対して、設定ＩＤ「３」の処理設定に従い、被写体判定を行う。被写体判定サービス９０２は、被写体が人と認識された場合には、画像データと、設定ＩＤ「２」と、を顔認証サービス９０３へ出力する。被写体判定サービス９０２は、被写体が犬と認識された場合には、画像データと、設定ＩＤ「１」と、を犬種判定サービス９０４へ出力する。顔認証サービス９０３は、設定ＩＤ「２」の処理設定に従い、顔認証を行い、被写体の氏名を判断し、その結果をＵＩ部９０１へ出力する。犬種判定サービス９０４は、設定ＩＤ「１」の処理設定に従い、犬種の判定を行い、判定結果をＵＩ部９０１へ出力する。
【００４２】
このように、被写体判定サービス９０２での処理の後、ＵＩ部９０１に処理を戻す必要がなく、またＵＩ部９０１へデータを渡す必要もない。従って、撮像装置１００においては、高い応答性が実現できる。またＵＩ部９０１、被写体判定サービス９０２、顔認証サービス９０３、犬種判定サービス９０４は、それぞれ独立したソフトウェアモジュールであるから、それぞれ単独でのアップデートが可能である。したがって、一部のソフトウェアモジュールをアップデートしたり、ソフトウェアモジュールを追加したりするような場合において、システム全体のアップデートを行わなくてよい。
【００４３】
例えば、顔認証サービス９０３、犬種判定サービス９０４に加えて、描種判定を行うための描種判定サービスを追加する場合には、描種判定サービスの追加と、ＵＩ部９０１の保持する構成サービスの情報の更新を要する。しかしながら、ＵＩ部９０１そのものや、被写体判定サービス９０２、顔認証サービス９０３、犬種判定サービス９０４の更新は要しない。描種判定サービスを追加した場合には、ＵＩ部９０１の更新がなくとも、被写体が猫の場合には、描種が表示されることとなる。またこれは猫種の表示機能をもったユーザインターフェイス部をユーザが明示的に起動することなく、猫種の表示を可能とすることも意味する。
【００４４】
以上のように、実施形態に係る撮像装置１００においては、入力データに対する処理を行うソフトウェアモジュール（構成サービス）は、ＵＩ部９０１との間でデータの受け渡しを行うことなく、処理を行うことができる。このため、処理に係る応答速度の低下を防ぐことができる。さらに、ソフトウェアモジュール単位での、ファームウェアの部分的なアップデートを可能とすることができる。このように、撮像装置１００は、応答速度が低下するのを防ぎつつ、ファームウェアの部分的なアップデートを可能とすることができる。
【００４５】
＜他の実施形態＞
実施形態の変形例としては、撮像装置１００に替えて、レンズユニットやイメージセンサーを備える汎用デバイスにおけるソフトウェアの一部が、図２のソフトウェアの構成を有してもよい。
【００４６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００４７】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４８】
１００  撮像装置
２０１  ユーザインターフェイス部
２０２  サービスＡ
２０３  サービスＢ
２０４  サービスＣ
【図１】
2019091993.tif 000003
【図２】
2019091993.tif 000004
【図３】
2019091993.tif 000005
【図４】
2019091993.tif 000006
【図５】
2019091993.tif 000007
【図６】
2019091993.tif 000008
【図７】
2019091993.tif 000009
【図８】
2019091993.tif 000010
【図９】
2019091993.tif 000011