以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。図1は、本発明の実施形態にかかわるブロック図である。
[実施例1]
図1は、本発明の実施例1に係る通信システム(HDMIシステム)の一例を示す図である。図2は、本発明の実施例1に係る通信装置100、第1の外部装置200及び第2の外部装置400の構成の一例を示すブロック図である。
実施例1に係る通信システムは、図1及び図2に示すように、通信装置100、第1の外部装置200及び接続ケーブル300を有し、通信装置100と外部装置200とは、接続ケーブル300を介して接続されている。また、実施例1に係る通信システムは、図1及び図2に示すように、通信装置100、第2の外部装置400及び接続ケーブル500を有し、通信装置100と第2の外部装置400とは、接続ケーブル500を介して接続されている。
実施例1において、通信装置100、第1の外部装置200及び接続ケーブル300は、HDMI規格に準拠するものとする。したがって、通信装置100は、HDMI規格におけるソース(Source)として機能し、第1の外部装置200は、HDMI規格におけるシンク(Sink)として機能し、接続ケーブル300は、HDMI規格におけるHDMIケーブルとして機能する。なお、実施例1及び2におけるHDMI規格は、Version 1.3aに限るものではなく、Version 1.4a以降でもよい。
また、実施例1において、通信装置100、第2の外部装置400及び接続ケーブル500は、USB(Universal Serial Bus)規格に準拠するものとする。したがって、通信装置100は、USB規格における「デバイス」として機能し、第2の外部装置400は、USB規格における「ホスト(HOST)」として機能し、接続ケーブル500は、USB規格におけるUSBケーブルとして機能する。なお、実施例1におけるUSB規格は、Version 2.0に限るものではなく、Version 3.0以降でもよい。
また、実施例1において、通信装置100及び第1の外部装置200は、HDMI規格が規定しているCEC(Consumer Electronics Control)規格に準拠するものとする。通信装置100と第1の外部装置200との間で双方向に送信されるコマンドは、CEC規格に準拠する。以下、CEC規格に準拠したコマンドを「CECコマンド」と呼ぶ。
実施例1では、通信装置100の一例として一眼レフカメラ(以下、カメラと呼ぶ)を用いる。なお、通信装置100は、接続ケーブル300を介して映像(video)データ、音声(audio)データ及び補助データを第1の外部装置200に送信できる映像出力装置であればよい。また、通信装置100は、接続ケーブル500を介して映像データ及び補助データを第2の外部装置400に送信できる映像出力装置であればよい。
実施例1では、第1の外部装置200の一例として、テレビジョン受像機(以下、「テレビ」と呼ぶ。)を用いる。なお、第1の外部装置200は、通信装置100から受信した映像データを表示器に表示し、通信装置100から受信した音声データをスピーカから出力する表示装置であれば、プロジェクタやパーソナルコンピュータ等の装置であってもよい。
実施例1では、第2の外部装置400の一例として、プリンタを用いる。なお、第2の外部装置400は、通信装置100から映像データを受信できる装置であれば、パーソナルコンピュータやハードディスクであっても良い。
以下、通信装置100を「カメラ100」と呼び、第1の外部装置200を「テレビ200」と呼び、第2の外部装置400を「プリンタ400」と呼ぶ。以下、接続ケーブル300を「HDMIケーブル300」と呼び、接続ケーブル500を「USBケーブル500」と呼ぶ。
<HDMIケーブル300>
次に、図2を参照して、HDMIケーブル300を説明する。
HDMIケーブル300は、+5Vパワーライン、HPD(Hot Plug Detect)ライン、DDC(Display Data Channel)ラインを有する。HDMIケーブル300はさらに、TMDS(Transition Minimized Differential Singnaling)ライン301及びCECライン302を有する。
TMDSライン301は、カメラ100からテレビ200に映像データ、音声データ及び補助データを伝送するための伝送ラインである。TMDSライン301は、TMDSチャンネル0、TMDSチャンネル1、TMDSチャンネル2及びTMDSクロックチャンネルを含む。
CECライン302は、カメラ100とテレビ200との間で様々なCECコマンドを双方向に伝送するための伝送ラインである。テレビ200は、CECライン302を介して、カメラ100を制御するためのCECコマンドをカメラ100に送信することができる。カメラ100は、CECライン302を介して、テレビ200を制御するためのCECコマンドをテレビ200に送信することができる。
<USBケーブル500>
USBケーブル500は、一組の差動型のデータライン501及び電源ライン等を有する。
データライン501には、プリンタ400に接続したカメラ100を制御するためのプロトコルが用意されている。このプロトコルによってUSB対応のプリンタ400とカメラ100との装置間において、映像データ及び音声データの双方向の伝送ができる。また、このプロトコルによってUSB対応のプリンタ400とカメラ100との装置間において、プリンタ400からカメラ100に送信される制御コマンドによってプリンタ400はカメラ100の制御を行うことができる。
電源ラインは、プリンタ400からカメラ100に対して必要に応じて電源を供給するラインである。
なお、接続ケーブル300は、USBケーブルに限るものではない。画像データ、音声データ及び補助データを伝送するラインを有する接続ケーブルであれば、USBケーブル以外の接続ケーブルであってもよい。また、プリンタ400とカメラ100との通信を行うための接続ケーブル300としてUSBケーブルを使用したが、カメラ100とプリンタ400との通信を無線通信によって行うものであってもよい。また、USBケーブル以外にもIEEE1394規格に準拠したインターフェースによって通信を行うものであっても良い。
<カメラ100>
次に、図2を参照して、カメラ100の構成の一例を説明する。
カメラ100は、図2に示すように、CPU(Central Processing Unit)101、メモリ102、通信部103、撮像部104、画像処理部105、記録部106、表示部107、操作部108及び電源供給部109を有する。
CPU101は、メモリ102に格納されているコンピュータプログラムに従って、カメラ100全体の動作を制御する。CPU101は、テレビ200から取得したテレビ200のデバイス情報を解析することにより、テレビ200の画像表示能力及び音声処理能力を知ることができる。テレビ200のデバイス情報とは、テレビ200のEDID(Extended display identification data)またはE−EDID(Enhanced EDID)である。EDID及びE−EDIDはいずれも、テレビ200の識別情報、テレビ200がサポートしている解像度、走査周波数、アスペクト比、色空間などに関する情報等が含まれている。E−EDIDは、EDIDを拡張したものであり、EDIDよりも多くの能力情報を含む。例えば、E−EDIDには、テレビ200がサポートしている映像データ及び音声データのフォーマットなどに関する情報が含まれている。以下、EDID及びE−EDIDをいずれも「EDID」と呼ぶ。
テレビ200のEDIDを受信したカメラ100は、テレビ200のEDIDを解析することにより、テレビ200の画像表示能力、音声処理能力などを自動的に知ることができる。さらに、カメラ100は、テレビ200の画像表示能力及び音声処理能力に適した映像データ及び音声データを生成することができる。
また、CPU101は不図示のタイマーを有し、不図示のタイマーを制御することによって計測時間Kを計測することができる。
メモリ102は、CPU101のワークエリアとして機能する。メモリ102には、テレビ200から取得したテレビ200のEDID、カメラ100に関する情報、プリンタ400から取得したプリンタ400に関する情報及びCPU101による解析の結果等も格納される。
また、メモリ102には、プリンタ400に関する情報として、プリンタ400とカメラ100との接続状態を示す接続状態情報、プリンタ400の印刷能力に関するプリンタ400の印刷設定情報等も格納される。さらにメモリ102には、プリンタ400の製品名を示す情報、プリンタ400の製造者名を示す情報及びプリンタ400の製品種別を示す情報等のプリンタ400のデバイス情報も格納される。なお、これらのプリンタ400に関する情報は、カメラ100とプリンタ400とがUSBケーブル500を介してUSB規格における通信の認証を行う際にプリンタ400から取得されたものである。
また、メモリ102には、プリンタ400の製品名を示す情報に対応した製品名リスト、プリンタ400の製造者名を示す情報に対応した製造者名リスト及びプリンタ400の製品種別を示す情報に対応した製品種別リスト等が記録されている。そのため、CPU101は、プリンタ400から取得したプリンタ400のデバイス情報とこれらのリストを照合することができる。CPU101は、プリンタ400のデバイス情報とこれらのリストを照合した結果、プリンタ400の製品名、製造者名及び製品種別を判定し、これをメモリ102に記録する。
また、不図示のタイマーによって計測される計測時間Kもメモリ102に格納される。
なお、CPU101のワークエリアは、メモリ102に限られるものではなく、ハードディスクドライブ等の外部記録装置等であってもよい。
通信部103は、HDMI端子103aとUSB端子103bとデータ送信部103cとコマンド処理部103dとデータ処理部103eとを有する。
HDMI端子103aは、HDMIケーブル300を接続するための接続端子(コネクタ)である。HDMI端子103aは、映像データ、音声データ及び補助データをTMDSライン301を介してテレビ200に送信する。また、HDMI端子103aは、テレビ200から送信されたCECコマンドを、CECライン302を介して受信する。また、HDMI端子103aは、CPU101で生成されたテレビ200を制御するためのCECコマンドをCECライン302を介してテレビ200に送信する。また、HDMI端子103aは、テレビ200のEDIDをテレビ200に要求し、不図示のDDCラインを介してテレビ200からテレビ200のEDIDを取得する。
USB端子103bは、USBケーブル500を接続するための接続端子(コネクタ)である。USB端子103bは、映像データ、音声データ、制御コマンド及び制御コマンドに対する応答信号をデータライン501を介してプリンタ400に送信する。また、USB端子103bは、映像データ、音声データ、制御コマンド及び制御コマンドに対する応答信号をデータライン501を介してプリンタ400から受信する。なお、制御コマンドと制御コマンドに対する応答信号は、USB規格に規定されているものである。
データ送信部103cは、テレビ200の画像表示能力に適した映像データ、テレビ200の音声処理能力に適した音声データ及び補助データを、HDMI端子103a及びTMDSライン301を介してテレビ200に送信する。
カメラ100の動作モードが撮影モードである場合、データ送信部103cは、撮像部104で生成された映像データと、不図示のマイクロフォン部で生成された音声データとをHDMI端子103a及びTMDSライン301を介してテレビ200に送信する。この場合、CPU101で生成された補助データも、映像データ及び音声データとともにHDMI端子103a及びTMDSライン301を介してテレビ200に送信される。カメラ100の動作モードが再生モードである場合、データ送信部103cは、記録部106が記録媒体106aから再生した映像データ及び音声データをHDMI端子103a及びTMDSライン301を介してテレビ200に送信する。この場合、CPU101で生成された補助データも、映像データ及び音声データとともにHDMI端子103a及びTMDSライン301を介してテレビ200に送信される。
コマンド処理部103dは、テレビ200から送信されたCECコマンドを、HDMI端子103a及びCECライン302を介して受信する。テレビ200から受信したCECコマンドは、コマンド処理部103dからCPU101に供給される。CPU101は、テレビ200から受信したCECコマンドに応じてカメラ100を制御する。
また、コマンド処理部103dは、テレビ200を制御するためのCECコマンドを、HDMI端子103a及びCECライン302を介してテレビ200に送信する。テレビ200を制御するためのCECコマンドは、CPU101で生成され、CPU101からコマンド処理部103dに供給される。
また、カメラ100がテレビ200にCECコマンドを送信した場合に、テレビ200がカメラ100からのCECコマンドを受信できたとき、テレビ200はCECコマンドに対する応答信号をカメラ100に送信する。そのため、コマンド処理部103dは、CECコマンドに対する応答信号をテレビ200から受信することができる。CECコマンドに対する応答信号には、肯定の応答を示すACK(Acknowledge)信号(肯定応答信号)と否定の応答を示すNACK(Negative Acknowledge)信号(否定応答信号)とがある。
データ処理部103eは、映像データ、制御コマンド及び制御コマンドに対する応答信号を、USB端子103b及びデータライン501を介してプリンタ400から受信することができる。
データ処理部103eは、プリンタ400からUSB端子103b及びデータライン501を介して映像データを受信した場合、映像データを記録部106及び表示部107に供給する。また、データ処理部103eは、プリンタ400からUSB端子103b及びデータライン501を介して音声データを受信した場合、音声データを記録部106及びスピーカ部に供給する。
また、データ処理部103eは、プリンタ400からUSB端子103b及びデータライン501を介して制御コマンドを受信した場合、制御コマンドをCPU101に供給する。データ処理部103eから制御コマンドを供給されたCPU101は、制御コマンドに応じてカメラ100の各部を制御する。また、データ処理部103eは、プリンタ400からUSB端子103b及びデータライン501を介して制御コマンドに対する応答信号を受信した場合、制御コマンドに対する応答信号をCPU101に供給する。
また、データ処理部103eは、映像データ、音声データ、制御コマンド及び制御コマンドに対する応答信号を、USB端子103b及びデータライン501を介してプリンタ400に送信することができる。
なお、データ処理部103eがUSB端子103b及びデータライン501を介してプリンタ400に送信する映像データは、プリンタ400の印刷能力に適した映像データである。
撮像部104は、不図示のレンズユニットと接続可能な接続端子を有する。レンズユニットは、バリエータレンズやフォーカシングレンズ等の撮影レンズ郡や絞り及びそれらの駆動回路等を含んでいる。また、撮像部104は、フォーカルプレーン式のシャッター、撮像素子104a、ミラー手段104b、A/D変換部、タイミング発生回路、ファインダー104c等を備える。
撮像素子104aは、撮像部104の接続端子に接続された不図示のレンズユニットを介して入射した被写体の光学像を電気信号である画像信号に変換する。撮像素子の一例として、例えばCCDイメージセンサやCMOSセンサがある。ミラー手段104bは、レンズユニットを介して入射した被写体の光学像を撮像素子104aに導く位置、またはレンズユニットを介して入射した被写体の光学像をファインダー104cに導く位置に移動する。被写体の光学像を撮像素子104aに導く位置とは、ミラー手段104bが被写体の光学像から退避している位置である。被写体の光学像をファインダー104cに導く位置とは、被写体の光学像をファインダー104cに導くためにミラー手段104bが被写体の光学像をファインダー104cに向けて反射している位置である。
A/D変換部は撮像素子104aから出力される画像信号(アナログデータ)をデジタルデータ(映像データ)に変換し、メモリ102、通信部103、画像処理部105、記録部106及び表示部107に供給する。タイミング発生回路は、撮像部104の各部にクロック信号や制御信号を供給する。また、撮像部104は、カメラ100の動作モードが撮影モードである場合は、被写体を撮影し、当該被写体の光学像から映像データを生成する。撮像部104は、カメラ100の動作モードが再生モードである場合は、被写体の撮影を停止し、当該被写体の光学像からの映像データの生成を停止する。なお、撮像部104によって生成される映像データは、静止画データであっても、動画データであってもよい。
画像処理部105は、撮像部104から出力された映像データ、またはメモリ102や記録媒体106aから読み出された映像データに対して画素補間処理や色変換処理等の画像処理を行う。画像処理部105は、適応離散コサイン変換(ADCT)等により映像データを公知の圧縮方法を用いて圧縮し、圧縮された映像データを伸長する圧縮伸長回路を備えている。なお、映像データを圧縮する圧縮方式として、JPEG方式、MPEG方式、RAW方式等が挙げられる。メモリ102から読み出された映像データは、圧縮伸長回路において、圧縮処理、または伸長処理が行われ、画像処理部105は、圧縮処理または伸長処理を終えた映像データを記録部106、または通信部103に出力する。
また、画像処理部105は、メモリ102に格納されているテレビ200のEDIDに応じて撮像部104、または記録部106から供給された映像データからテレビ200の画像表示能力に適した映像データを生成する。この場合、画像処理部105は、生成したテレビ200の画像表示能力に適した映像データを通信部103、または記録部106に供給する。
また、画像処理部105は、メモリ102に格納されているまたはプリンタ400の印刷設定情報に応じて撮像部104、または記録部106から供給された映像データからプリンタ400の印刷能力に適した映像データを生成する。この場合、画像処理部105は、生成したプリンタ400の印刷能力に適した映像データを通信部103、または記録部106に供給する。
撮像部104及び画像処理部105は、CPU101によって、AF処理及びAE処理を行うように制御される。CPU101からAF処理及びAE処理を開始するように指示された場合、画像処理部105は、撮像部104から出力される映像データを用いて演算処理を行う。撮像部104及び画像処理部105は、この演算結果に基づいて、TTL(スルー・ザ・レンズ)方式のAF処理及びAE処理を行う。
また、撮像部104及び画像処理部105は、CPU101によって、静止画の撮影を行うように制御される。CPU101から静止画の撮影を開始するように指示された場合、撮像部104及び画像処理部105は露光処理や現像処理等の処理を含む撮影処理を実行する。撮像素子104aから出力されたアナログデータはA/D変換部を介してデジタルデータに変換され、映像データとしてメモリ102に書き込まれる。撮像部104及び画像処理部105は、メモリ102に書き込まれた映像データに対して現像処理や圧縮処理が行う。現像処理や圧縮処理が行われた映像データは、メモリ102から記録媒体106aに静止画データとして書き込まれる。
記録部106は、カメラ100の動作モードが撮影モードである場合は、撮像部104で生成された映像データと、マイクロフォン部で生成された音声データとを記録媒体106aに記録する。また、記録部106は、画像処理部105によって、画像処理が行われた映像データを記録媒体106aに記録する。撮像部104及びマイクロフォン部で生成された映像データ及び音声データの記録媒体106aへの記録は、操作部108を介して入力されたユーザの指示に従ってCPU101が制御する。同様に画像処理部105によって画像処理が行われた映像データの記録媒体106aへの記録は、操作部108を介して入力されたユーザの指示に従ってCPU101が制御する。
記録部106は、カメラ100の動作モードが再生モードである場合は、ユーザによって選択された映像データ及び音声データを記録媒体106aから再生する。記録媒体106aから再生される映像データ及び音声データの選択は、操作部108を介して入力されたユーザの指示に従ってCPU101が制御する。
記録部106が記録媒体106aから再生した映像データは、記録部106から通信部103及び表示部107に供給される。記録部106から通信部103に供給された映像データは、テレビ200、またはプリンタ400に送信される。記録部106から表示部107に供給された映像データは、表示部107に表示される。
記録部106が記録媒体106aから再生した音声データは、記録部106から通信部103及び不図示のスピーカ部に供給される。記録部106から通信部103に供給された音声データは、テレビ200、またはプリンタ400に送信される。記録部106からスピーカ部に供給された音声データは、スピーカ部から出力される。
記録媒体106aは、メモリカード、ハードディスクドライブなどの記録媒体である。記録媒体106aは、カメラ100に内蔵された記録媒体であっても、カメラ100から取り外し可能な記録媒体であってもよい。
表示部107は、液晶ディスプレイなどの表示器により構成される。カメラ100の動作モードが撮影モードである場合、表示部107は、撮像部104で生成された映像データを表示する。カメラ100の動作モードが再生モードである場合、表示部107は、記録部106が記録媒体106aから再生した映像データを表示する。
操作部108は、カメラ100を操作するためのユーザインターフェースを提供する。操作部108は、カメラ100を操作するための電源ボタン108a、モード変更ボタン108b、シャッターボタン108c、十字ボタン、メニューボタン等を有し、各ボタンはスイッチ、タッチパネル等により構成される。CPU101は、操作部108を介して入力されたユーザの指示に従ってカメラ100を制御することができる。ユーザによって操作部108のボタンが操作された場合、操作部108から各ボタンに応じた操作信号がCPU101に入力される。CPU101は操作部108から入力された操作信号を解析し、解析結果に応じて操作信号に対応した処理を判定する。CPU101は、操作部108から入力された操作信号に対応した処理を実行するようにカメラ100の各部を制御する。
電源ボタン108aは、カメラ100を電源オン状態、または電源オフ状態にすることをCPU101に指示するためのボタンである。電源ボタン108aから操作信号が入力された場合、CPU101は、カメラ100を電源オン状態、または電源オフ状態にするために電源供給部109を制御する。なお、カメラ100における電源オン状態とは、電源供給部109が電源をカメラ100の全体に供給している状態である。以下、電源オン状態を「第1の状態」と呼ぶ。
カメラ100における電源オフ状態とは、電源供給部109が電源をカメラ100全体に供給していない状態である。なお、通信部103のデータ処理部103eに電源を供給する電源供給部109を「第1の電源供給手段」と呼ぶ。また、記録部106に電源を供給する電源供給部109を「第2の電源供給手段」と呼ぶ。また、撮像部104に電源を供給する電源供給部109を「第3の電源供給手段」と呼ぶ。
モード変更ボタン108bは、カメラ100の動作モードを撮影モード、再生モード等のいずれかに変更することをCPU101に指示するボタンである。撮影モードとは、撮像部104及び画像処理部105によって静止画データを生成するモードである。なお、撮影モードには、連写撮影モード、自動撮影モード、シャッター速度優先撮影モード、絞り優先撮影モード、マニュアル撮影モード等が含まれているものとする。
シャッターボタン108cは、シャッターボタン108cが半押しされた状態S1とシャッターボタン108cが全押しされた状態S2との2つの状態を持つボタンである。カメラ100の動作モードが撮影モードである場合、シャッターボタン108cが押下され、S1の状態になったときは、シャッターボタン108cからAF処理及びAE処理を指示するための操作信号がCPU101に入力される。この場合、CPU101は、AF処理及びAE処理を行うように撮像部104及び画像処理部105を制御する。
シャッターボタン108cが押下され、S2の状態になったときは、シャッターボタン108cから静止画の撮影を指示するための操作信号がCPU101に入力される。この場合、CPU101は、静止画の生成を行うように撮像部104及び画像処理部105を制御する。
メニューボタンは、メモリ102に記憶されているカメラ100の設定を変更するためのメニュー画面の表示又は非表示をCPU101に指示するボタンである。これらのメニュー画面をユーザが操作することによって、カメラ100にライブビュー撮影の設定を行うことができる。ユーザは、メニューボタンを押下し、表示部107にメニュー画面を表示させ、十字ボタンによってライブビュー撮影の項目を選択し、ライブビュー撮影を行うように設定することができる。
なお、ユーザによってライブビュー撮影の設定が「ON」に設定された場合、CPU101はメモリ102に格納されているライブビュー撮影の有無を示すライブビュー撮影設定フラグを「ON」にする。また、ライブビュー撮影の設定が「OFF」に設定された場合、CPU101はメモリ102内のライブビュー撮影設定フラグを「OFF」にする。
電源供給部109は、AC電源、または不図示のバッテリーからカメラ100の各部に必要な電源を供給する。電源供給部109は、カメラ100を電源オン状態、電源オフ状態及びスタンバイ状態のいずれか一つの状態に変更するためにCPU101によって制御される。なお、カメラ100におけるスタンバイ状態とは、省電のために、電源供給部109が電源をカメラ100の一部に供給している状態である。また、カメラ100がスタンバイ状態である場合、電源供給部109は、カメラ100の一部に電源を供給するようにCPU101によって制御される。以下、スタンバイ状態を「第2の状態」と呼ぶ。また、スタンバイ状態(第2の状態)は、電源オン状態(第1の状態)よりもカメラ100全体の消費電力が低い状態であり、電源オフ状態よりもカメラ100全体の消費電力が高い状態である。また、CPU101は、カメラ100をスタンバイ状態から電源オン状態に変更する場合の方がカメラ100を電源オフ状態から電源オン状態に変更する場合よりも、早くカメラ100を電源オン状態に変更することができる。スタンバイ状態とは、例えば、電源供給部109が電源をカメラ100のCPU101、メモリ102及び操作部108に供給している状態である。なお、カメラ100がスタンバイ状態である場合、電源供給部109は、電源を通信部103、撮像部104、画像処理部105、記録部106及び表示部107に供給しない。また、カメラ100がスタンバイ状態である場合、電源ボタン108a、モード変更ボタン108b及びシャッターボタン108cのいずれか一つが操作されたとき、CPU101は、カメラ100を電源オン状態に変更するために電源供給部109を制御する。
カメラ100を自動的に電源オン状態からスタンバイ状態に変更する機能として、「オートパワーオフ」機能と呼ばれるものがある。このオートパワーオフ機能は、CPU101に操作信号、CECコマンド及び制御コマンドの少なくとも一つが供給されない場合に設定時間Tが経過したとき、省電のためにカメラ100を自動的にスタンバイ状態に変更する機能である。
オートパワーオフ機能が有効であるカメラ100において、CPU101は、設定時間Tが経過するまでに操作部108から操作信号が供給されない場合、カメラ100を電源オン状態からスタンバイ状態に変更するように電源供給部109を制御する。また、オートパワーオフ機能が有効であるカメラ100において、CPU101は、設定時間Tが経過するまでに通信部103からCECコマンド及び制御コマンドの少なくとも一つが供給されない場合も、同様にカメラ100を自動的にスタンバイ状態に変更する。なお、設定時間Tとは、ユーザによって設定できる所定の時間である。また、オートパワーオフ機能が有効であるカメラ100において、CPU101は、設定時間Tが経過するまでに操作信号、CECコマンド及び制御コマンドのいずれか一つが供給されない場合、カメラ100を自動的にスタンバイ状態に変更しないようにする。オートパワーオフ機能が有効であるカメラ100において、操作信号、CECコマンド及び制御コマンドのいずれか一つが供給されない場合に、設定時間Tが経過していないとき、CPU101は、カメラ100を自動的にスタンバイ状態に変更しないようにする。
「オートパワーオフ」機能は、ユーザが、メニューボタンを押下し、表示部107にメニュー画面を表示させ、十字ボタンによってオートパワーオフの項目を選択し、オートパワーオフ機能を有効にするように設定することができる。また、オートパワーオフ機能を有効にするように設定された場合、ユーザは、表示部107に表示されているメニュー画面において、十字ボタンを操作することにより、「オートパワーオフ」機能の設定時間Tを設定することができる。ユーザは、例えば、1分、4分及び8分のいずれか一つの時間を設定時間Tに設定することができる。なお、設定時間Tは、0分よりも長い時間であれば、どのような時間であってもよいものとする。
なお、オートパワーオフの設定が「ON」に設定された場合、CPU101はメモリ102に格納されているオートパワーオフの有無を示すオートパワーオフフラグを「ON」にするとともに、ユーザによって設定された設定時間Tを記録する。また、オートパワーオフの設定が「OFF」に設定された場合、CPU101はメモリ102内のオートパワーオフフラグを「OFF」にする。オートパワーオフフラグが「ON」である場合、オートパワーオフ機能は有効となり、オートパワーオフフラグが「OFF」である場合、オートパワーオフ機能は無効となる。
なお、カメラ100は、スチルカメラ、レコーダ、ハードディスクドライブ等の装置であっても良い。
<テレビ200>
次に、図2を参照して、テレビ200の構成の一例を説明する。
テレビ200は、図2に示すように、CPU201(Central Processing Unit)、チューナ部202、通信部203、表示部204、操作部205、メモリ206、電源供給部207及びリモコン信号受信部208を有する。さらに、テレビ200は、リモコン209を有する。
CPU201は、メモリ206に記録されているコンピュータプログラムに従ってテレビ200全体の動作を制御する。また、CPU201は、操作部205からの操作信号により、カメラ100を制御するためのCECコマンドを生成する。また、CPU201は、リモコン信号受信部208からのリモコン信号により、カメラ100を制御するためのCECコマンドを生成する。
チューナ部202は、ユーザによって選択されたテレビジョンチャンネルのテレビジョン放送を受信する。
通信部203は、HDMIケーブル300を接続するための接続端子であるHDMI端子203aを有する。
通信部203は、カメラ100から送信された映像データ、音声データ及び補助データをTMDSライン301及びHDMI端子203aを介して受信する。
通信部203は、カメラ100から送信されたCECコマンドをCECライン302及びHDMI端子203aを介して受信する。また、CPU201で生成されたカメラ100を制御するためのCECコマンドをCECライン302及びHDMI端子203aを介してカメラ100に送信する。
通信部203は、カメラ100から受信したCECコマンドをCPU201に供給する。CPU201は、通信部203から供給されたカメラ100から受信したCECコマンドに従ってテレビ200を制御する。
通信部203は、カメラ100からの要求に応じて、テレビ200のEDIDを不図示のDDCライン及びHDMI端子203aを介してカメラ100に送信する。なお、テレビ200のEDIDはメモリ206に記録されているものとする。
表示部204は、液晶ディスプレイ等の表示器により構成される。表示部204は、チューナ部202が受信したテレビジョン放送及び通信部203がカメラ100から受信した映像データのいずれか1つが供給された場合、供給された映像データを表示する。
操作部205は、テレビ200を操作するためのユーザインターフェースを提供する。操作部205がユーザによって操作された場合、操作部205は、入力されたユーザの指示に応じた操作信号をCPU201に出力し、CPU201は操作信号に応じてテレビ200を制御する。また、操作部205はテレビ200を操作するための複数のボタンを有する。操作部205に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。操作部205はテレビ200を操作するための電源ボタン205a、外部入力ボタン等を有する。
電源ボタン205aは、テレビ200を電源オン状態、または電源オフ状態にすることをCPU201に指示するためのボタンである。電源ボタン205aから操作信号が入力された場合、CPU201は、テレビ200を電源オン状態、または電源オフ状態にするために電源供給部207を制御する。なお、テレビ200における電源オン状態とは、テレビ200の全てに電源供給部207から必要な電源が供給されている状態である。また、テレビ200における電源オフ状態とは、テレビ200の一部に電源供給部207から必要な電源が供給されていない状態である。例えば、CPU201、メモリ206、通信部203、操作部205及びリモコン信号受信部208に電源供給部207から必要な電源が供給されている状態である。この場合、テレビ200が電源オフ状態である場合、チューナ部202及び表示部204には、電源供給部109から必要な電源が供給されない。
電源供給部207は、AC電源等からテレビ200の各部に必要な電源を供給する。
リモコン信号受信部208は、リモコン209から送信されたリモコン信号を受信した場合、受信したリモコン信号を操作信号として、CPU201に供給する。これにより、ユーザからの指示は、操作信号として、リモコン209及びリモコン信号受信部208を介してCPU201に入力される。CPU201は、リモコン信号受信部208からの操作信号に対応するCECコマンドを生成し、生成したCECコマンドを通信部203に供給する。
リモコン209(remote control)は、テレビ200を操作するためのユーザインターフェースを提供する。また、リモコン209は、テレビ200を操作するための複数のボタンを有する。リモコン209内の各ボタンは、スイッチ、タッチパネル等により構成される。リモコン209は、電源ボタン209aを持つ。電源ボタン209aは、テレビ200を電源オン状態、または電源オフ状態にすることを示す電源制御リモコン信号をリモコン信号受信部208に送信する。リモコン信号受信部208は、リモコン209から電源制御リモコン信号を受信した場合、テレビ200を電源オン状態、または電源オフ状態にすることを示す操作信号をCPU201に入力する。リモコン信号受信部208からテレビ200を電源オン状態、または電源オフ状態にすることを示す操作信号が入力された場合、CPU201は、テレビ200を電源オン状態、または電源オフ状態にするために電源供給部207を制御する。
また、リモコン209は、テレビ200と無線により通信することができるが、カメラ100及びプリンタ400と無線により通信することはできないように構成されている。
そのため、ユーザは、リモコン209を用いて、テレビ200を直接的に遠隔制御することができる。
<ライブビュー撮影処理>
次に、図3を参照して、実施例1及び2に係るカメラ100で行われるライブビュー撮影処理について説明する。
図3は、実施例1に係るカメラ100で行われるライブビュー撮影処理の一例を説明するためのフローチャートである。
なお、ライブビュー撮影処理は、カメラ100の電源オン状態になっている場合において、カメラ100の動作モードが撮影モードであり、かつ、ライブビュー撮影の設定が「ON」に設定されているときに実行される。実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従ってライブビュー撮影処理を制御する場合を説明する。
ステップS301において、CPU101は、メモリ102に格納されているライブビュー撮影設定フラグが「ON」に設定されているか「OFF」に設定されているかを判定する。メモリ102内のライブビュー撮影設定フラグが「ON」に設定されている場合、CPU101は、ライブビュー機能が有効であると判定する。また、CPU101はライブビュー撮影設定フラグが「OFF」が設定されている場合、CPU101は、ライブビュー機能が無効であると判定する。ライブビュー機能が有効であると判定された場合、CPU101はライブビュー撮影を開始するために、被写体の光学像をファインダー104cに導く位置から撮像素子104aに導く位置にミラー手段104bを移動(ミラーアップ)させるように制御する。この場合、CPU101は撮像部104及び画像処理部105を制御して、撮像素子104aに導かれた被写体光からデジタルデータを生成する。デジタルデータは、画像処理部105によって所定の画素補間処理や色変換処理が行なわれる。所定の画素補間処理や色変換処理が行われたデジタルデータは、映像データとしてメモリ102へ格納される。なお、撮像部104及び画像処理部105は、ミラー手段104bが被写体の光学像を撮像素子104aに導く位置にいる間、被写体の光学像から映像データを生成し、この映像データをメモリ102に記録する処理を実行し続ける。被写体光から生成された映像データがメモリ102に記録された場合(ステップS301でYES)、本フローチャートはステップS301からステップS302に進む。
CPU101によってライブビュー機能が無効であると判定された場合(ステップS301でNO)、本フローチャートはステップS301からステップS301に戻る。
ステップS302において、CPU101は、操作部108のシャッターボタン108cが半押し(SW1が押下)されることによりAF処理及びAE処理を指示するための操作信号が入力されたか否かを判定する。
CPU101によって、AF処理及びAE処理を指示するための操作信号が入力されたと判定された場合(ステップS302でYES)、本フローチャートはステップS302からステップS303に進む。CPU101によって、AF処理及びAE処理を指示するための操作信号が入力されなかったと判定された場合(ステップS302でNO)、本フローチャートはステップS302からステップS302に戻る。
ステップS303において、CPU101はAF処理及びAE処理を実行するように撮像部104及び画像処理部105を制御する。撮像部104及び画像処理部105によって、AF処理及びAE処理を実行された場合、本フローチャートはステップS303からステップS304に進む。なお、ステップS303において、撮像部104及び画像処理部105はAF処理及びAE処理以外にもオートホワイトバランス(Auto White Balance)処理等を行ってもよい。
ステップS304において、CPU101は、CPU101は、操作部108のシャッターボタン108cが全押し(SW2が押下)されることにより静止画の撮影を指示するための操作信号が入力されたか否かを判定する。CPU101によって、静止画の撮影を指示するための操作信号が入力されたと判定された場合(ステップS304でYES)、本フローチャートはステップS304からステップS305に進む。CPU101によって、静止画の撮影を指示するための操作信号が入力されなかったと判定された場合(ステップS304でNO)、本フローチャートはステップS304からステップS302に戻る。
ステップS305において、CPU101は、撮影処理を実行するように撮像部104及び画像処理部105を制御する。なお、撮像部104及び画像処理部105によって撮影処理を実行された場合、記録部106は撮影された静止画データを含む静止画ファイルを作成して記録媒体106aに記録する。撮影された静止画データがメモリ102から記録媒体106aに記録された場合、本フローチャートはステップS305からステップS306に進む。
ステップS306において、CPU101は、ライブビュー撮影を中断することを撮像部104及び画像処理部105に指示するための操作信号が操作部108から入力されたか否かを判定する。以下、ライブビュー撮影を中断することを撮像部104及び画像処理部105に指示するための操作信号を「ライブビュー撮影停止信号」と呼ぶ。ライブビュー撮影停止信号は、カメラ100がライブビュー撮影を行っている場合、電源ボタン108aが操作されることによってカメラ100が電源オン状態から電源オフ状態に変更されたときに操作部108からCPU101に入力される。また、カメラ100がライブビュー撮影を行っている場合、モード変更ボタン108bが操作されることによってカメラ100の動作モードが撮影モードから再生モードに変更されたときにライブビュー撮影停止信号は操作部108からCPU101に入力される。
また、ライブビュー撮影停止信号は、カメラ100がライブビュー撮影を行っている場合、ユーザがメニュー画面上で、ライブビュー撮影の設定を「ON」から「OFF」に変更したときに操作部108からCPU101に入力される。
CPU101によって、ライブビュー撮影停止信号が入力されたと判定された場合(ステップS306でYES)、CPU101は、ライブビュー撮影を中断させるように撮像部104及び画像処理部105を制御する。CPU101は、撮像部104及び画像処理部105を制御した後、被写体の光学像を撮像素子104aに導く位置からファインダー104cに導く位置にミラー手段104bを移動(ミラーダウン)させるように制御する。この場合、CPU101はメモリ102に格納されているライブビュー撮影設定フラグを「ON」から「OFF」に変更する。メモリ102に格納されているライブビュー設定フラグが「OFF」に変更された場合、本フローチャートは終了する。CPU101によって、ライブビュー撮影停止信号が入力されなかったと判定された場合(ステップS306でNO)、本フローチャートはステップS306からステップS302に戻る。
<システムスタンバイ処理>
次に、図4を参照して、実施例1及び2に係るテレビ200で行われるシステムスタンバイ処理について説明する。
図4は、実施例1及び2に係るテレビ200で行われるシステムスタンバイ処理の一例を説明するためのフローチャートである。
なお、図4のシステムスタンバイ処理は、テレビ200がユーザによって電源オン状態から電源オフ状態に操作された場合に行われる処理である。なお、以下、CPU201が、メモリ206に格納されているコンピュータプログラムに従ってシステムスタンバイ処理を制御する場合を説明する。
図4のシステムスタンバイ処理は、CEC規格に規定されているシステムスタンバイ(System Standby)を実現するために行われる処理である。
システムスタンバイとは、ユーザによってテレビ200を電源オン状態から電源オフ状態にする操作信号がテレビ200に入力された場合、テレビ200にHDMIケーブルを介して接続されている装置を電源オン状態からスタンバイ状態にするための機能である。システムスタンバイは、テレビ200がCECコマンドを用いてカメラ100を制御することにより実現される。<Standby>コマンドは、System Standbyを実現するためのCECコマンドである。以下、<Standby>コマンドを「電源オフコマンド」と呼ぶ。
電源オフコマンドは、テレビ200にHDMIケーブル300を介して接続されているカメラ100を電源オン状態からスタンバイ状態に変更するためのCECコマンドである。
ステップS401において、CPU201は、テレビ200が電源オン状態であるか否かを判定する。テレビ200が電源オン状態である場合(ステップS401でYES)、本フローチャートはステップS401からステップS402に進む。テレビ200が電源オン状態でない場合(ステップS401でNO)、本フローチャートはステップS401からステップS401に戻る。
ステップS402において、CPU201は、電源オフ信号が入力されたか否かを判定する。電源オフ信号とは、操作部205の電源ボタン205aからCPU201に入力されるテレビ200を電源オフ状態にするための操作信号である。また、電源オフ信号は、リモコン209のテレビ200を制御する電源ボタン209aからリモコン信号受信部208を介してCPU201に入力されるテレビ200を電源オフ状態にするための電源制御リモコン信号であってもいい。操作部205の電源ボタン205a及びリモコン209の電源ボタン209aのいずれか一つから電源オフ信号が入力された場合(ステップS402でYES)、本フローチャートはステップS402からステップS403に進む。操作部205の電源ボタン205a及びリモコン209の電源ボタン209aから電源オフ信号が入力されていない場合(ステップS402でNO)、本フローチャートは終了する。
ステップS403において、CPU201は、電源オフコマンドを生成する。さらに、CPU201は、生成した電源オフコマンドを通信部203に供給し、電源オフコマンドをHDMI端子203a及びCECライン302を介して、カメラ100に送信するように通信部203を制御する。
通信部203が電源オフコマンドをカメラ100に送信した場合、本フローチャートはステップS403からステップS404に進む。
ステップS404において、CPU201は、テレビ200を電源オン状態から電源オフ状態に変更するように電源供給部207を制御する。テレビ200が電源オフ状態になった場合、本フローチャートは終了する。
なお、図4のシステムスタンバイ処理は、省電のためにCPU201がテレビ200を自動的に電源オン状態から電源オフ状態に変更させるように制御した場合に行われても良いものとする。例えば、電源オン状態であるテレビ200において、操作部205からの操作信号、またはリモコン信号受信部208からの操作信号が一定期間CPU201に入力されなかった場合、CPU201によりステップS403及びS404の処理が行われるようにする。
<電源オフ処理>
次に、図5を参照して、実施例1に係るカメラ100で行われる電源オフ処理について説明する。図5は、実施例1に係るカメラ100で行われる電源オフ処理の一例を説明するためのフローチャートである。
なお、図5の電源オフ処理は、テレビ200から電源オフコマンドを受信した場合に行われる処理である。なお、実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って電源オフ処理を制御する場合を説明する。
ステップS501において、CPU101は<Polling Message>コマンドを生成する。<Polling Message>コマンドとは、テレビ200がCEC規格に対応していることを確認するためのCECコマンドである。CPU101は生成した<Polling Message>コマンドをコマンド処理部103dに出力する。CPU101は、<Polling Message>コマンドをテレビ200にHDMI端子103a及びCECライン302を介して送信するようにコマンド処理部103dを制御する。コマンド処理部103dが<Polling Message>コマンドをテレビ200に送信した場合、本フローチャートはステップS501からステップS502に進む。
ステップS502において、CPU101は、コマンド処理部103dが<Polling Message>コマンドに対するACK信号をテレビ200から受信したか否かを判定する。
コマンド処理部103dがACK信号を受信しなかった場合(ステップS502でNO)、CPU101は、テレビ200がCEC規格に対応していないと判定する。この場合(ステップS502でNO)、本フローチャートは終了する。また、コマンド処理部103dがNACK信号を受信した場合も同様に、CPU101は、テレビ200がCEC規格に対応していないと判定するので、本フローチャートは終了する。
コマンド処理部103dがACK信号を受信した場合(ステップS502でYES)、CPU101は、テレビ200がCEC規格に対応していると判定する。この場合(ステップS502でYES)、本フローチャートはステップS502からステップS503に進む。テレビ200がCEC規格に対応していると判定された場合、CPU101は、HDMI端子103a及びCECライン302を介してCECコマンドをテレビ200から受信するようにコマンド処理部103dを制御する。
ステップS503において、CPU101は、コマンド処理部103dが電源オフコマンドをテレビ200から受信したか否かを判定する。CPU101によって、コマンド処理部103dが電源オフコマンドをテレビ200から受信しなかったと判定された場合(ステップS503でNO)、本フローチャートは終了する。CPU101によって、コマンド処理部103dが電源オフコマンドをテレビ200から受信したと判定された場合(ステップS503でYES)、本フローチャートはステップS503からステップ504に進む。
ステップS504において、CPU101は、カメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続している状態であるか否かを判定する。
コマンド処理部103dが電源オフコマンドをテレビ200から受信した場合(ステップS503でYES)、CPU101は電源オフコマンドを実行し、カメラ100を電源オン状態からスタンバイ状態に変更するように電源供給部109を制御する。カメラ100がスタンバイ状態である場合、電源供給部109は通信部103への電源の供給を停止してしまうので、通信部103は、プリンタ400とのUSBケーブル500を介した通信を切断してしまう。これにより、カメラ100とプリンタ400とは、USBケーブル500を介してデータの伝送ができなくなってしまう。
そのため、例えば、プリンタ400の印刷能力に適した映像データをカメラ100がプリンタ400に送信する場合、カメラ100がスタンバイ状態に変更されたとき、プリンタ400がカメラ100からの映像データを受信できなくなるという問題があった。再びカメラ100がスタンバイ状態から電源オン状態に変更されたとしても、カメラ100は、通信部103によってプリンタ400にUSBケーブル500を介したデータの伝送を行うための通信の認証を行う必要があった。さらに、カメラ100は、プリンタ400にUSBケーブル500を介したデータの伝送を行うための通信の認証が行われた後に、画像処理部105によってプリンタ400の印刷能力に適した映像データを再び生成する必要があった。このことにより、カメラ100の利便性は低下していた。
そこで、ステップS504において、CPU101は、カメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続している状態であるか否かを判定し、その判定結果に応じて電源オフコマンドを実行しないようにする。
CPU101は、カメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続している状態であるか否かの判定をメモリ102に格納されているカメラ100とプリンタ400との接続状態を示す接続状態情報によって判定する。なお、ステップS504の処理を「第1の判定処理」と呼ぶ。
接続状態情報とは、USB規格で規定されているカメラ100のデバイスステート(device state)を示す情報である。カメラ100のデバイスステートは、USB規格によって6つに規定されており、接続状態情報には、6つのデバイスステートの中から一つのカメラ100のデバイスステートを示す情報が記録されている。6つのデバイスステートは、USB規格によって、「attached」ステート、「powered」ステート、「default」ステート、「address」ステート、「configured」ステート、「suspended」ステートと規定されている。「attached」ステートとは、カメラ100にUSBケーブル500が取り付けられていない状態である。「powered」ステートは、カメラ100にUSBケーブル500が取り付けられているが、プリンタ400からの電源がカメラ100にUSBケーブルを介して供給されていない状態である。「default」ステートとは、プリンタ400からの電源がカメラ100にUSBケーブルを介して供給されている場合、カメラ100が初期化処理をおこなっていない状態である。なお、初期化処理とは、カメラ100とプリンタ400とで通信の認証を行う前にカメラ100がUSBケーブル500を介して取得したデバイス情報及び接続状態情報をメモリ102から消去するための処理である。「address」ステートとは、プリンタ400からの電源がカメラ100にUSBケーブルを介して供給され、かつ、カメラ100が初期化処理を行った場合に、プリンタ400からカメラ100にユニークアドレスが割り当てられていない状態である。
「configured」ステートとは、プリンタ400からの電源がカメラ100にUSBケーブルを介して供給され、かつ、カメラ100が初期化処理を行った場合に、プリンタ400からカメラ100にユニークアドレスが割り当てられている状態である。さらに「configured」ステートは、プリンタ400でカメラ100の機能を使えるようにするためのカメラ100とプリンタ400との通信の認証が完了した状態である。このため、カメラ100が「configured」ステートの場合、データ処理部103eは、映像データをプリンタ400に送信することができ、プリンタ400から映像データを受信することができる。また、カメラ100が「configured」ステートの場合、データ処理部103eは、プリンタ400から送信された制御コマンドを受信することができ、制御コマンドをプリンタ400に送信することができる。
「suspended」ステートとは、カメラ100とプリンタ400との通信の認証が完了した状態であるが、省電のためにプリンタ400とカメラ100との通信を一時的に中止している状態である。なお、この場合、カメラ100はメモリ102にプリンタ400のデバイス情報及びプリンタ400との接続状態情報を保持したまま、プリンタ400との通信を停止する。このため、カメラ100が「suspended」ステートの場合、データ処理部103eは、映像データ及び制御コマンドをプリンタ400から受信することができなくなる。また、カメラ100が「suspended」ステートの場合、データ処理部103eは、映像データ及び制御コマンドをプリンタ400に送信することができなくなる。以下、「configured」ステートを「通信可能状態」と呼ぶものとする。
CPU101がメモリ102に記録されている接続状態情報から、カメラ100が通信可能状態であると判定した場合、CPU101は、カメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続している状態であると判定する。
CPU101によって、カメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続している状態と判定された場合(ステップS504でYES)、本フローチャートはステップS504からステップS511に進む。
CPU101がメモリ102に記録されている接続状態情報からカメラ100が「configured」ステート以外のステートであると判定した場合、CPU101は、カメラ100が通信可能状態でないと判定する。CPU101によって、カメラ100が通信可能状態でないと判定された場合、CPU101は、カメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続していないと判定される。
CPU101によって、カメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続していないと判定された場合(ステップS504でNO)、本フローチャートはステップS504からステップS505に進む。
ステップS505において、CPU101は、記録部106が記録媒体106aに映像データを書き込んでいるか否かを判定する。
コマンド処理部103dが電源オフコマンドをテレビ200から受信した場合(ステップS503でYES)、CPU101は電源オフコマンドを実行し、カメラ100を電源オン状態からスタンバイ状態に変更するように電源供給部109を制御する。記録部106が記録媒体106aに映像データを書き込んでいる場合に、カメラ100が電源オン状態からスタンバイ状態に変更されたときは、電源供給部109は記録部106への電源の供給を停止してしまう。これにより、記録部106は記録媒体106aへの映像データの書き込みを中断してしまう。そのため、例えば、カメラ100が静止画を撮影している際に、コマンド処理部103dが電源オフコマンドをテレビ200から受信した場合、撮影された静止画データが記録媒体106aに記録されなくなってしまうという問題があった。カメラ100撮影された静止画データが記録媒体106aに記録されなくなってしまうという問題があった。この場合、再びカメラ100がスタンバイ状態から電源オン状態に変更されたとしても、撮影された静止画データが記録媒体106aに記録されていないので、ユーザにとってカメラ100の利便性は低下していた。
そこで、ステップS505において、CPU101は、記録部106が記録媒体106aに映像データを書き込んでいるか否かを判定し、その判定結果に応じて電源オフコマンドを実行しないようにする。なお、ステップS505の処理を「第2の判定処理」と呼ぶ。
CPU101によって、記録部106が記録媒体106aに映像データを書き込んでいると判定された場合(ステップS505でYES)、本フローチャートはステップS505からステップS511に進む。なお、記録部106が記録媒体106aに映像データを書き込んでいる状況とは、例えば、図3のライブビュー撮影処理におけるステップS305の処理がCPU101によって行われているような状況である。ステップS305の処理以外に、カメラ100の動作モードが連写撮影モードであり、連続的に記録部106が静止画データを記録媒体106aに書き込んでいる場合、CPU101は、記録部106が記録媒体106aに映像データを書き込んでいると判定する。また、他の記録媒体に記録されている映像データをバックアップのために記録媒体106aに書き込んでいる場合も、CPU101は、記録部106が記録媒体106aに映像データを書き込んでいると判定する。
CPU101によって、記録部106が記録媒体106aに映像データを書き込んでいないと判定された場合(ステップS505でNO)、本フローチャートはステップS505からステップS506に進む。なお、CPU101によって、記録部106による記録媒体106aへの映像データの書き込みが既に終了していると判定された場合もステップS505でNOと同様に、本フローチャートはステップS505からステップS506に進む。
ステップS506において、CPU101は、カメラ100がライブビュー撮影を行っているか否かを判定する。
コマンド処理部103dが電源オフコマンドをテレビ200から受信した場合(ステップS503でYES)、CPU101は電源オフコマンドを実行し、カメラ100を電源オン状態からスタンバイ状態に変更するように電源供給部109を制御する。カメラ100がライブビュー撮影を行っている場合に、カメラ100が電源オン状態からスタンバイ状態に変更されたときは、電源供給部109は撮像部104及び画像処理部105への電源の供給を停止してしまう。これにより、撮像部104及び画像処理部105はライブビュー撮影を中断してしまう。そのため、ユーザがカメラ100によってライブビュー撮影を行っている場合、シャッターチャンスを逃してしまうという事態が発生し、カメラ100の利便性は低下していた。
そこで、ステップS506において、CPU101は、カメラ100がライブビュー撮影を行っているか否かを判定し、その判定結果に応じて電源オフコマンドを実行しないようにする。なお、ステップS506の処理を「第3の判定処理」と呼ぶ。
カメラ100がライブビュー撮影を行っているか否かの判定は、撮像部104及び画像処理部105が被写体の光学像から映像データを生成しているか否かによって判定する。
撮像部104及び画像処理部105が被写体の光学像から映像データを生成している場合、CPU101はカメラ100がライブビュー撮影を行っていると判定する。CPU101によって、カメラ100がライブビュー撮影を行っていると判定された場合(ステップS506でYES)、本フローチャートはステップS506からステップS511に進む。
撮像部104及び画像処理部105が被写体の光学像から映像データを生成していない場合、CPU101はカメラ100がライブビュー撮影を行っていないと判定する。
CPU101によって、カメラ100がライブビュー撮影を行っていないと判定された場合(ステップS506でNO)、本フローチャートはステップS506からステップS507に進む。
なお、ステップS506の判定は、ミラー手段104bが被写体の光学像をファインダー104cに導く位置から撮像素子104aに導く位置に移動(ミラーアップ)するようにCPU101によって制御されているか否かによって判定してもよい。この場合、ミラー手段104bが被写体の光学像を撮像素子104aに導く位置にあるとき、CPU101は、カメラ100がライブビュー撮影を行っていると判定する。また、ミラー手段104bが被写体の光学像をファインダー104cに導く位置にあるとき、CPU101は、カメラ100がライブビュー撮影を行っていないと判定する。
ステップS507において、CPU101は、コマンド処理部103dがテレビ200から受信した電源オフコマンドを実行する。CPU101は、電源オフコマンドが通信部103から供給された場合、メモリ102に格納されているオートパワーオフフラグを「OFF」から「ON」に設定する。CPU101によって、メモリ102に格納されているオートパワーオフフラグを「ON」に設定された場合、本フローチャートはステップS507からステップS508に進む。
なお、メモリ102に格納されているオートパワーオフフラグが既に「ON」に設定されている場合、CPU101は、ステップS507の処理を省略してもよい。
ステップS508において、CPU101は、メモリ102に格納されている設定時間Tを設定時間Tよりも短い時間である設定時間Sに変更する。例えば、メモリ102に格納されている設定時間Tが「1分」である場合、CPU101は、設定時間Tを設定時間Sである「30秒」に変更する。また、例えば、設定時間Tが「4分」である場合、CPU101は、設定時間Tを設定時間Sである「1分」に変更してもよい。また、設定時間Sは設定時間Tよりも短い所定の時間であれば、0分であってもよく、1〜10秒であってもよい。なお、CPU101によって、設定時間Tが設定時間Sに変更された場合、設定時間Tの代わりに設定時間Sが上書きされてメモリ102に格納される。メモリ102に設定時間Sが格納された場合、不図示のタイマーが計測時間Kを計測していないとき、CPU101は計測時間Kの計測を開始するように不図示のタイマーを制御する。この場合、CPU101は、計測時間Kが設定時間Sに達するまでの間、カメラ100を電源オン状態からスタンバイ状態に変更しない。CPU101によって、設定時間Tが設定時間Sに変更された場合、本フローチャートはステップS508からステップS509に進む。
なお、メモリ102に設定時間Tの代わりに設定時間Sが既に格納されている場合、CPU101は、ステップS508の設定時間Tを設定時間Sに変更する処理を省略してもよい。この場合、不図示のタイマーが計測時間Kを計測していないとき、CPU101は計測時間Kの計測を開始するように不図示のタイマーを制御する。
ステップS509において、CPU101は不図示のタイマーによって計測される計測時間Kが設定時間Sに達したか否かを判定する。CPU101によって、計測時間Kが設定時間Sに達していないと判定された場合(ステップS509でNO)、本フローチャートはステップS509からステップS504に戻る。
計測時間Kが設定時間Sに達する前に操作部108から操作信号がCPU101に供給された場合、CPU101は不図示のタイマーによる計測時間Kの計測を停止させ、メモリ102に格納されている計測時間Kを消去する。この場合も、ステップS509でNOと同様に本フローチャートはステップS509からステップS504に戻る。また、計測時間Kが設定時間Sに達する前に通信部103からCECコマンド及び制御コマンドのいずれか一つがCPU101に供給された場合も、CPU101は不図示のタイマーによる計測時間Kの計測を停止させ、計測時間Kをメモリ102から消去する。この場合も、ステップS509でNOと同様に本フローチャートはステップS509からステップS504に戻る。
計測時間Kが設定時間Sに達する前に操作信号、CECコマンド及び制御コマンドのいずれか一つがCPU101に供給された場合、CPU101は計測時間Kの計測を停止させるので、カメラ100を電源オン状態から電源オフ状態に変更しない。これにより、カメラ100は電源オフコマンドを実行したとしても、計測時間Kが設定時間Sに達するまでの間、操作信号、CECコマンド及び制御コマンドを受け付ける。そのため、計測時間Kが設定時間Sに達するまでの間、カメラ100を電源オン状態にするための操作信号がCPU101に供給された場合、CPU101はカメラ100を電源オン状態から電源オフ状態に変更せずに、カメラ100を電源オン状態のまま保持する。同様に、計測時間Kが設定時間Sに達するまでの間、カメラ100を電源オン状態にするためのCECコマンドがCPU101に供給された場合、CPU101はカメラ100を電源オン状態から電源オフ状態に変更せず、カメラ100を電源オン状態のまま保持する。同様に、計測時間Kが設定時間Sに達するまでの間、カメラ100を電源オン状態にするための制御コマンドがCPU101に供給された場合、CPU101はカメラ100を電源オン状態から電源オフ状態に変更せずに、カメラ100を電源オン状態のまま保持する。
CPU101によって、計測時間Kが設定時間Sに達したと判定された場合(ステップS509でYES)、本フローチャートはステップS509からステップS510に進む。なお、設定時間Sが「0分」である場合、CPU101は、ステップS509の処理を省略し、本フローチャートはステップS508からステップS510に進む。
ステップS510において、CPU101は、通信部103、撮像部104、画像処理部105、記録部106及び表示部107への電源供給を停止するように電源供給部109を制御する。なお、この場合、CPU101は、CPU101、メモリ102及び操作部108への電源供給を停止しないように電源供給部109を制御する。テレビ200から受信した電源オフコマンドをCPU101が実行することによって、カメラ100はオートパワーオフの設定が「ON」にされ、設定時間Tよりも短い設定時間Sが経過した場合、カメラ100は電源オン状態からスタンバイ状態に変更される。カメラ100は、テレビ200から受信した電源オフコマンドを受信した場合、オートパワーオフ機能に従ってカメラ100をスタンバイ状態に変更する。そのため、ユーザがカメラ100を再び電源オン状態にしたい場合、カメラ100は、カメラ100を電源オフ状態から電源オン状態に変更する場合よりも早くカメラ100を電源オン状態に変更することができる。また、カメラ100のオートパワーオフ機能が既に有効になっている場合、テレビ200が電源オフ状態に変更されたことに連動して、設定時間Tが経過するよりも早くカメラ100をスタンバイ状態に変更することができる。
電源供給部109がCPU101、メモリ102及び操作部108に電源を供給している状態で、通信部103、撮像部104、表示部107、記録部106及び表示部204への電源供給を停止した場合、本フローチャートは終了する。
ステップS511において、CPU101は、コマンド処理部103dから供給された電源オフコマンドを実行することなく破棄する。この場合、CPU101は、通信部103、撮像部104、画像処理部105、記録部106及び表示部107への電源供給を停止するように電源供給部109を制御しないので、カメラ100は電源オン状態からスタンバイ状態に変更されない。CPU101によって、コマンド処理部103dがテレビ200から受信した電源オフコマンドが破棄された場合、本フローチャートは終了する。
このように、実施例1に係るカメラ100は、テレビ200から<Standby>コマンドを受信した場合、プリンタ400と接続されている状態であるとき、<Standby>コマンドを実行せずにカメラ100をスタンバイ状態に変更しないようにした。
これにより、カメラ100とプリンタ400との通信状態は、テレビ200から送信される<Standby>コマンドによって中断されない。このため、カメラ100がプリンタ400に映像データを送信する際にテレビ200から<Standby>コマンドを受信したとしても、カメラ100は映像データをプリンタ400に送信することができる。その結果、カメラ100は、カメラ100とプリンタ400との通信の認証とプリンタ400の印刷能力に適した映像データの生成とをやり直す必要がなくなるため、カメラの利便性を向上させることができる。
さらに、実施例1に係るカメラ100は、テレビ200から<Standby>コマンドを受信した場合、映像データを記録媒体に記録しているとき、<Standby>コマンドを実行せずにカメラ100をスタンバイ状態に変更しないようにした。
これにより、カメラ100が行っている映像データを記録媒体に記録する処理は、テレビ200から送信される<Standby>コマンドによって中断されない。
このため、カメラ100が映像データを記録媒体に記録している際にテレビ200から<Standby>コマンドを受信したとしても、カメラ100は映像データを記録媒体に記録する処理を続ける。その結果、映像データが記録媒体に記録されていないにもかかわらず、カメラ100がスタンバイ状態に変更されてしまうという事態がなくなるので、カメラ100の利便性を向上させることができる。
さらに、実施例1に係るカメラ100は、テレビ200から<Standby>コマンドを受信した場合、ライブビュー撮影を行っているとき、<Standby>コマンドを実行せずにカメラ100をスタンバイ状態に変更しないようにした。
これにより、カメラ100によるライブビュー撮影は、テレビ200から送信される<Standby>コマンドによって中断されないので、ユーザは、ライブビュー撮影を続行することができる。その結果、ユーザはシャッターチャンスを逃してしまうという事態を防止することができるので、カメラ100の利便性を向上させることができる。
さらに、実施例1に係るカメラ100は、プリンタ400と接続されていない状態であり、映像データの記録媒体への記録及びライブビュー撮影を行っていない場合、テレビ200から送信される<Standby>コマンドを実行するようにした。
<Standby>コマンドを実行したカメラ100は、オートパワーオフ機能を有効にし、所定の時間が経過した後にカメラ100を電源オン状態からスタンバイ状態に変更する。また、<Standby>コマンドを実行したカメラ100は、オートパワーオフ機能が既に有効になっている場合、既に設定されている時間よりも短い所定の時間が経過した後にカメラ100を電源オン状態からスタンバイ状態に変更する。そのため、既に設定されている時間が経過するよりも速くカメラ100を電源オン状態からスタンバイ状態に変更する。
これにより、カメラ100は電源オン状態からスタンバイ状態に変更されるので、カメラ100で消費される消費電力を低減することができる。
また、ユーザは誤ってテレビ200を電源オフ状態にしてしまった場合、所定の時間が経過するまでの間、テレビ200に連動してカメラ100をスタンバイ状態に変更しないので、カメラ100の利便性を向上させることができる。そのため、<Standby>コマンドを実行したカメラ100は、所定の時間が経過する前にカメラ100を電源オン状態にするための操作がされた場合、カメラ100を電源オン状態からスタンバイ状態に変更することなく、電源オン状態のまま保持する。
なお、第1の判定処理(ステップS504)において、CPU101は接続状態情報以外の情報によってカメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続している状態であるか否かを判定してもよい。
なお、カメラ100におけるスタンバイ状態は、電源供給部109が電源をカメラ100のCPU101、メモリ102、操作部108及び通信部103に供給している状態であってもよい。
この場合、ステップS510において、CPU101は、撮像部104、画像処理部105、記録部106及び表示部107への電源供給を停止するように電源供給部109を制御する。なお、この場合、CPU101は、CPU101、メモリ102、通信部103及び操作部108への電源供給を停止しないように電源供給部109を制御する。これにより、通信部103は、テレビ200からHDMIケーブル300を介して送信されたCECコマンドを受信することができる。
そのため、カメラ100はテレビ200からカメラ100を電源オン状態にするためのCECコマンドを受信した場合、ユーザがカメラ100を電源オン状態にするための操作を行わなくても、カメラ100を電源オン状態に変更することができる。さらに、カメラ100は、カメラ100全体の消費電力を低減するとともに、テレビ200とのHDMIケーブル300を介した通信及びプリンタ400とのUSBケーブル500を介した通信を継続することができる。
[実施例2]
次に、図1〜4、及び図6を参照して、実施例2を説明する。なお、実施例2では、実施例1と同様の箇所の説明を省略し、実施例1と異なる箇所について説明する。
図6は、実施例2に係る通信システム(HDMIシステム)で行われる電源オフ処理を説明するためのフローチャートである。図6の電源オフ処理も、図5の電源オフ処理と同様に、CEC規格に記載されているSystem standbyを実現するために行われる処理である。図6に示すフローチャートのステップS501〜S511で行われる処理は、図5に示すフローチャートのステップS501〜S511で行われる処理と同様である。したがって、実施例2では、ステップS501〜S511の説明を省略する。
なお、図6の電源オフ処理は、テレビ200から電源オフコマンドを受信した場合に行われる処理である。なお、実施例2では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って電源オフ処理を制御する場合を説明する。
CPU101によって、カメラ100がUSB端子103b及びUSBケーブル500を介してプリンタ400と接続している状態であると判定された場合(ステップS504でYES)、本フローチャートはステップS504からステップS601に進む。
ステップS601において、CPU101は、カメラ100がUSB端子103b及びUSBケーブル500を介して接続されているプリンタ400が所定の装置であるか否かを判定する。なお、ステップS601の処理を「第4の判定処理」と呼ぶ。
所定の装置とは、ハードディスクドライブ(以下HDD)等の記録装置である。
カメラ100がUSB端子103b及びUSBケーブル500を介してHDDと接続されている場合、HDDに記録されている映像データはカメラ100に送信され、表示部107において、HDDから受信した映像データを閲覧している可能性が高い。この場合、HDDはカメラ100に着脱可能な記録媒体106aと同じように映像データ及び音声データをカメラ100に供給するため、カメラ100が電源オン状態からスタンバイ状態に変更されたとしても、ユーザにとってさほど負担はかからないと考えられる。
CPU101はメモリ102内のプリンタ400のデバイス情報と所定の装置を示す識別情報とに基づいて、カメラ100とUSB端子103b及びUSBケーブル500を介して接続されているプリンタ400が所定の装置であるか否かを判定する。なお、所定の装置を示す識別情報はメモリ102に記録されているものとする。
プリンタ400のデバイス情報と所定の装置を示す識別情報とが一致する場合、(ステップS601でYES)、CPU101は、カメラ100とUSB端子103b及びUSBケーブル500を介して接続されているプリンタ400が所定の装置であると判定する。この場合(ステップS601でYES)、本フローチャートはステップS601からステップS505に進む。
プリンタ400のデバイス情報と所定の装置を示す識別情報とが一致しない場合、CPU101は、カメラ100がUSB端子103b及びUSBケーブル500を介して接続されているプリンタ400が所定の装置でないと判定する。この場合(ステップS601でNO)、本フローチャートはステップS601からステップS511に進む。
なお、所定の装置は、記録媒体から映像データ、または音声データを読み出す読み出し手段を有し、記録媒体から読み出した映像データ、または音声データをカメラ100に送信する送信装置であれば、HDD以外の装置であってもよいものとする。また、所定の装置はユーザによって設定されるものであってもよい。
このように、実施例2に係るカメラ100は、テレビ200から<Standby>コマンドを受信した場合、カメラ100が所定の装置と接続されていないとき、<Standby>コマンドを実行せずにカメラ100をスタンバイ状態に変更しないようにした。
これにより、カメラ100と所定の装置以外の装置との通信状態は、テレビ200から送信される<Standby>コマンドによって中断されない。その結果、ユーザは、カメラ100と所定の装置以外の装置との通信の認証とカメラ100が所定の装置以外の装置に映像データを送信するために伴う操作とをやり直す必要がなくなるため、カメラの利便性を向上させることができる。
また、実施例2に係るカメラ100は、図6のステップS601で行われる処理以外の処理は、実施例1と同様の処理を行うので、実施例1と同様の利点を得ることもできる。
[他の実施形態]
本発明に係る通信装置は、実施例1で説明した通信装置100に限定されるものではない。本発明に係る通信装置は、例えば、複数の装置から構成されるシステムにより実現することも可能である。
また、実施例1において説明した構成及び機能は、コンピュータで実行可能なコンピュータプログラムによって実現することもできる。この場合、当該コンピュータプログラムは、コンピュータ読取可能な記録媒体から当該コンピュータによって読み出され、当該コンピュータで実行される。またこの場合、当該コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。なお、当該コンピュータプログラムは、通信インターフェースを介して外部装置から当該コンピュータに提供され、当該コンピュータで実行されるようにしてもよい。