[実施例1]
実施例1に係る通信システムは、図1及び図2に示すように、通信装置100、外部装置300、接続ケーブル200を有する。通信装置100と外部装置300は、接続ケーブル200を介して接続されている。
通信装置100は、接続ケーブル200を介して映像(video)データ、音声(audio)データ及び補助データを外部装置300に送信することができる映像出力装置である。外部装置300は、通信装置100から受信した映像データを表示器に表示し、通信装置100から受信した音声データをスピーカから出力する表示装置である。通信装置100及び外部装置300はいずれも、接続ケーブル200を介して様々な制御コマンドを双方向に送信することができる。
実施例1において、通信装置100、外部装置300及び接続ケーブル200は、HDMI(High−Definition Multimedia Interface)規格に準拠するものとする。したがって、通信装置100は、HDMI規格におけるHDMIソース(Source)として機能するソース装置であり、外部装置300は、HDMI規格におけるHDMIシンク(Sink)として機能するシンク装置である。
実施例1において、通信装置100及び外部装置300は、HDMI規格が規定しているCEC(Consumer Electronics Control)プロトコルに準拠するものとする。通信装置100と外部装置300との間で双方向に送信される制御コマンドは、CECプロトコルに準拠する。以下、CECプロトコルに準拠した制御コマンドを「CECコマンド」と呼ぶ。
実施例1では、通信装置100の一例としてデジタル一眼レフカメラを用いる。もちろん、通信装置100は、デジタル一眼レフカメラに限るものではなく、HDMIソースとしての機能を持つ装置であれば、デジタルスチルカメラ、デジタルビデオカメラ、レコーダ、DVDプレイヤなどの映像出力装置を通信装置100として用いてもよい。
実施例1では、外部装置300の一例としてテレビジョン受像機(以下、「テレビ」と呼ぶ)を用いる。もちろん、外部装置300は、テレビに限るものではなく、HDMIシンクとしての機能を持つ装置であれば、プロジェクタやパーソナルコンピュータなどの表示装置を外部装置300として用いてもよい。
以下、通信装置100を「カメラ100」と呼び、接続ケーブル200を「HDMIケーブル200」と呼び、外部装置300を「テレビ300」と呼ぶ。
<HDMIケーブル200>
次に、図2を参照して、HDMIケーブル200を説明する。
HDMIケーブル200は、+5Vパワーライン、HPD(Hot Plug Detect)ライン201、DDC(Display Data Channel)ライン202を有する。HDMIケーブル200はさらに、TMDS(Transition Minimized Differential Signaling)ライン203、CECライン204を有する。
+5Vパワーラインは、カメラ100からテレビ300に+5Vを供給するための電源供給ラインである。HPDライン201は、高電圧レベル(以下、Hレベル)又は低電圧レベル(以下、Lレベル)のHPD(Hot Plug Detect)信号をテレビ300からカメラ100に伝送するための伝送ラインである。DDCライン202は、テレビ300のデバイス情報をテレビ300からカメラ100に伝送するための伝送ラインである。テレビ300のデバイス情報とは、例えば、テレビ300のEDID(Extended Display Identification Data)又はE−EDID(Enhanced EDID)である。EDID及びE−EDIDはいずれも、テレビ300のデバイス情報として、テレビ300に関するテレビ300の識別情報、テレビ300の表示能力やテレビ300の音声出力能力などに関する情報、テレビ300の接続端子を示す物理アドレス等を含む。例えば、EDID及びE−EDIDには、テレビ300がサポートしている解像度、走査周波数、アスペクト比、色空間などに関する情報が含まれている。E−EDIDは、EDIDを拡張したものであり、EDIDよりも多くの能力情報を含む。例えば、E−EDIDには、テレビ300がサポートしている映像データ及び音声データのフォーマットなどに関する情報が含まれている。以下、EDID及びE−EDIDをいずれも「EDID」と呼ぶ。
TMDSライン203は、カメラ100からテレビ300に映像データ、音声データ及び補助データを伝送するための伝送ラインである。
CECライン204は、カメラ100とテレビ300との間で様々なCECコマンドを双方向に伝送するための伝送ラインである。テレビ300は、カメラ100を制御するためのCECコマンドをカメラ100にCECライン204を介して送信することにより、カメラ100を制御することができる。
なお、接続ケーブル200は、HDMIケーブルに限るものではなく、HDMI規格と互換性のある通信インターフェースであってもよい。また、カメラ100とテレビ300はHDMI規格に準拠したネットワークを無線通信によって行うものであってもよい。なお、接続ケーブルがHDMI1.4規格に準拠する場合、カメラ100は+5Vパワーラインを介してテレビ300に+3.3Vを供給することもできる。
<カメラ100>
次に、図2を参照して、カメラ100の構成の一例を説明する。
カメラ100は、図2に示すように、CPU(Central Processing Unit)101、メモリ102、通信部103、撮像部104、記録部105、表示部106、操作部107及び電源供給部108を有する。以下、カメラ100について説明する。
CPU101は、カメラ100全体の制御を行う。また、CPU101は、テレビ300から受信したCECコマンドにしたがってカメラ100を制御したり、操作部107からの入力信号によりカメラ100を制御する。また、CPU101は、テレビ300から取得したテレビ300のEDIDを解析し、解析した結果を取得したEDIDとともにメモリ102に記録する。また、CPU101は、CPU101で行われる処理等の回数を算出するためのカウンタ101aを有する。
メモリ102は、CPU101のワークエリアとして機能するメモリであり、記録部105によって読み出された映像データや音声データ等を一時的に記録することもできる。また、メモリ102は、CPU101によって解析されたEDIDの解析結果及びテレビ300のEDIDに含まれる物理アドレスを記録する。メモリ102に記録される物理アドレスは、カメラ100がHDMIケーブル200を介して接続されているテレビ300の接続端子を示す情報である。なお、メモリ102には、後述のデータベースが記録される。メモリ102は、RAMに限られるものではなく、ハードディスク装置等の外部記憶装置であってもよい。
通信部103は、検出部103a、取得部103b、送信部103c及びコマンド処理部103dを有する。通信部103は、不図示のHDMI接続端子を有し、HDMIケーブル200と接続される。
検出部103aは、テレビ300から送信されるHPD信号を、HPDライン201を介して受信する。カメラ100が+5Vパワーラインを介してテレビ300に+5Vを供給している場合、テレビ300は、テレビ300のEDIDをカメラ100に送信できるか否かによって、HレベルのHPD信号又はLレベルのHPD信号をカメラ100に送信する。テレビ300にカメラ100から+5Vが供給されている場合、テレビ300がEDIDをカメラ100に送信できるとき、テレビ300はHレベルのHPD信号をカメラ100にHPDライン201を介して送信する。そこで、検出部103aは、HレベルのHPD信号を検出した場合、テレビ300からテレビ300のEDIDを取得できることをCPU101に知らせる。
また、カメラ100からテレビ300に+5Vが供給されていない場合、テレビ300はLレベルのHPD信号をカメラ100にHPDライン201を介して送信する。なお、カメラ100からテレビ300に+5Vが供給されている場合であっても、テレビ300がテレビ300のEDIDをカメラ100に送信できないときも同様に、テレビ300はLレベルのHPD信号をカメラ100にHPDライン201を介して送信する。
検出部103aは、HPDライン201を介して受信するHPD信号を監視する。また、検出部103aは、受信したHPD信号がHレベルからLレベルに変化したことを検出した場合、HPD信号がHレベルからLレベルに変化した旨をCPU101に通知する。また、検出部103aは、受信したHPD信号がLレベルからHレベルに変化したことを検出した場合も同様にHPD信号がLレベルからHレベルに変化した旨をCPU101に通知する。
取得部103bは、検出部103aで検出されたHPD信号がHレベルである場合、DDCライン202を介して、テレビ300にテレビ300のEDIDを取得するための取得要求を送信し、テレビ300よりEDIDを取得する。検出部103aで検出されたHPD信号がLレベルである場合、通信部103はDDCライン202を介してテレビ300にEDIDの取得要求を送信しない。
送信部103cは、撮像部104により生成された映像データや記録部105により記録媒体105aから読み出された映像データをTMDSライン203を介してテレビ300に送信する。また、送信部103cは、不図示のマイクロフォン部により生成された音声データや記録部105により記録媒体105aから読み出された音声データもTMDSライン203を介してテレビ300に送信する。また、送信部103cは、映像データをテレビ300に表示させるための補助データや音声データをテレビ300のスピーカから出力させるための補助データ等もテレビ300にTMDSライン203を介して送信する。
コマンド処理部103dは、テレビ300からCECライン204を介してテレビ300から送信されたCECコマンドを受信し、受信したCECコマンドを解析する。コマンド処理部103dは、CECコマンドの解析結果をCPU101に供給する。また、コマンド処理部103dは、CECライン204を介して送信するCECコマンドによってテレビ300を制御することができる。なお、テレビ300を制御するためのCECコマンドは、CPU101によって決定される。
コマンド処理部103dは、テレビ300を制御するためのCECコマンドをCECライン204を介してテレビ300に送信した場合、テレビ300から応答としてカメラ100に送信される応答信号を受信する。なお、応答信号には、コマンド処理部103dがテレビ300に送信したCECコマンドに対して肯定の応答を示すAck信号と、コマンド処理部103dがテレビ300に送信したCECコマンドに対して否定の応答を示すNack信号とがある。
撮像部104は、カメラ100の動作モードが撮影モードである場合は、被写体を撮影し、当該被写体の光学像から映像データを生成する。また、撮像部104は、被写体を撮影するためのCCD等の撮像素子や被写体の光学像を不図示の光学ファインダーに導くためのミラー手段等を有する。撮像部104で生成される映像データは、動画データ、静止画データのいずれでもよい。撮像部104で生成された映像データは、撮像部104から送信部103c及び記録部105に供給される。メモリ102に取得部103bにより取得したテレビ300のEDIDが記録されている場合、撮像部104は、送信部103cに供給する映像データを、メモリ102内のテレビ300のEDIDに応じてテレビ300の表示能力に適した映像データに変換する。CPU101は、送信部103cによってテレビ300に送信する映像データが、テレビ300の表示能力に適しているか否かを判断し、テレビ300への送信を行うか否かを判定するようにする。
撮像部104が動画データを生成する場合、不図示のマイクロフォン部は音声データを生成する。マイクロフォン部で生成された音声データは、マイクロフォン部から送信部103c、記録部105及び不図示のスピーカ部に供給される。メモリ102に取得部103bが取得したテレビ300のEDIDが記録されている場合、マイクロフォン部は、送信部103cに供給する音声データを、メモリ102内のテレビ300のEDIDに応じてテレビ300の音声出力能力に適した音声データに変換する。CPU101は、送信部103cによってテレビ300に送信する音声データが、テレビ300の音声出力能力に適しているか否かを判断し、テレビ300への送信を行うか否かを判定するようにする。マイクロフォン部から送信部103cに供給された音声データは、TMDSライン203を介してテレビ300に送信される。マイクロフォン部から記録部105に供給された音声データは、記録媒体105aに記録される。撮像部104は、カメラ100の動作モードが再生モードである場合は、被写体の撮影を停止し、当該被写体の光学像からの映像データの生成を停止する。
記録部105は、カメラ100の動作モードが撮影モードである場合は、撮像部104で生成された映像データと、マイクロフォン部で生成された音声データを一旦メモリ102に記録した後、記録媒体105aに記録する。撮像部104及びマイクロフォン部で生成された映像データ及び音声データの記録媒体105aへの記録は、操作部107を介して入力されたユーザの指示に従って、CPU101が制御する。CPU101は、撮像部104及びマイクロフォン部で生成された映像データ及び音声データの記録媒体105aへの記録を、テレビ300から受信したCECコマンドに従って制御する。
また、記録部105は、カメラ100の動作モードが再生モードである場合、記録媒体105aに記録されている映像データや音声データをメモリ102に読み出す。さらに、メモリ102に供給された映像データ及び音声データをメモリ102から送信部103cや表示部106に供給される。なお、記録部105が記録媒体105aに記録する映像データや音声データは、撮像部104で生成された映像データであってもよい。また、記録部105は、カメラ100の動作モードが撮影モードである場合は、映像データや音声データの読み出しを停止する。
なお、記録媒体105aは、カメラ100に内蔵されたものであっても、カメラ100から取り外し可能なものであってもよい。また、記録媒体105aに記録されるデータは、静止画データや動画データ等であってもよく、映像データと音声データとが別々に記録されるものであってもよい。
表示部106は、液晶ディスプレイなどの表示器により構成される。カメラ100の動作モードが撮影モードである場合、表示部106は、撮像部104で生成された映像データを表示する。カメラ100の動作モードが再生モードである場合、表示部106は、記録部105が記録媒体105aから再生した映像データを表示する。
操作部107は、カメラ100を操作するためのユーザインターフェースを提供する。操作部107は、カメラ100を操作するための複数のボタンを有する。操作部107に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。
操作部107は、カメラ100の動作モードを変更するためのモード変更ボタン107a、カメラ100が撮影モードである場合に、カメラ100にライブビュー撮影を指示するためのLVボタン107b及びレリーズボタン107c等を有する。カメラ100の動作モードが再生モードである場合に、ユーザによってモード変更ボタン107aが押された場合、操作部107からカメラ100の動作モードを再生モードから撮影モードに変更するための指示がCPU101に入力される。
また、カメラ100の動作モードが撮影モードである場合に、ユーザによってモード変更ボタン107aが押された場合、操作部107からカメラ100の動作モードを撮影モードから再生モードに変更するための指示がCPU101に入力される。また、カメラ100の動作モードが撮影モードである場合に、ユーザによってLVボタン107bが押された場合、操作部107からカメラ100の動作モードを撮影モードからライブビュー撮影モードに変更するための指示がCPU101に入力される。カメラ100の動作モードがライブビュー撮影モードである場合に、ユーザによってLVボタン107bが押された場合、操作部107からカメラ100の動作モードをライブビュー撮影モードから撮影モードに変更するための指示がCPU101に入力される。カメラ100が撮影モードである場合、レリーズボタン107cが押されるまで、被写体の光学像は、撮像部104のミラー手段によって光学ファインダーに導かれ、レリーズボタン107cが押された場合、静止画データの撮影が行われる。カメラ100がライブビュー撮影モードである場合、被写体の光学像は撮像素子に導かれる状態のままで、レリーズボタン107cが押された場合、静止画データの撮影が行われる。
電源供給部108は、AC電源、または不図示のバッテリーからカメラ100の各部に必要な電源を供給する。電源オン状態は、電源供給部108からカメラ100全体に必要な電源が供給されている状態である。電源オフ状態は、電源供給部108からカメラ100の各部の一部に電源が供給されていない状態である。また、通信部103から+5Vラインを介してテレビ300に送信される+5V電源も電源供給部108によって供給される。
<テレビ300>
次に、図2を参照して、テレビ300の構成の一例を説明する。
テレビ300は、図2に示すように、CPU301、チューナ部302、通信部303、表示部304、操作部305、メモリ306及び電源供給部307を有する。
CPU301は、メモリ306に格納されているコンピュータプログラムに従ってテレビ300全体の動作を制御する。また、CPU301は電源供給部307から各部に電力を供給するように制御したり、電力の供給を停止するように制御する。
チューナ部302は、ユーザによって選択されたテレビジョンチャンネルのテレビジョン放送を受信する。テレビジョンチャンネルの選択は、操作部305もしくは不図示のリモコン等を用いて行う。
通信部303は、HDMIケーブルを接続するための複数の接続端子を有する。通信部303は、カメラ100から送信される映像データ、音声データ及び補助データを、TMDSライン203を介して受信する。カメラ100がHDMIケーブル200を介して接続されている接続端子をテレビ300が選択している場合、カメラ100から受信した映像データは、表示部304に表示される。この場合、カメラ100から受信した音声データは、不図示のスピーカ部から出力され、カメラ100から受信した補助データは、CPU301に供給される。CPU301は、カメラ100から受信した補助データに従ってテレビ300を制御する。
カメラ100とは別のソース装置が接続されている別の接続端子をテレビ300が選択している場合、カメラ100から送信される映像データは表示部304に表示されない。このとき、カメラ100から送信される音声データは通信部303によって、不図示のスピーカ部から出力されない。この場合、別のソース装置から通信部303が受信した映像データが表示部304に表示され、別のソース装置から通信部303が受信した音声データがスピーカ部から出力される。
なお、通信部303が有する接続端子の数はテレビ300によって任意であり、テレビ300は接続端子の数だけHDMIケーブルを介してカメラ100以外のソース装置を接続する。
通信部303は、カメラ100から送信されたCECコマンドをCECライン204を介して受信し、カメラ100から受信したCECコマンドを通信部303からCPU301に供給する。また、通信部303は、CPU301で生成され、CPU301から通信部303に供給されるカメラ100を制御するためのCECコマンドを、CECライン204を介してカメラ100に送信する。
通信部303は、カメラ100がHDMIケーブル200を介して接続されている接続端子をテレビ300が選択している場合、カメラ100から+5Vパワーラインを介してテレビ300に+5Vが供給されているか否かを判定する。さらに、通信部303は、この判定結果に応じてHレベルのHPD信号またはLレベルのHPD信号をカメラ100にHPDライン201を介して送信する。通信部303が+5Vパワーラインを介してカメラ100から+5Vを供給されていない場合、CPU101はLレベルのHPD信号をカメラ100にHPDライン201を介して送信するように通信部303を制御する。
通信部303が+5Vパワーラインを介してカメラ100から+5Vが供給された場合、CPU301はHレベルのHPD信号をHPDライン201を介して送信できるか否かを判定する。メモリ306には、各接続端子に対応するテレビ300のEDIDが別々に格納されている。+5Vがカメラ100から供給される場合、カメラ100が接続されている接続端子に対応するEDIDに含まれる情報が変更されていない場合、CPU301は、テレビ300のEDIDをカメラ100にDDCライン202を介して送信できると判定する。なお、CPU301がカメラ100に送信できると判定したテレビ300のEDIDは、カメラ100が接続されている接続端子に対応するEDIDである。この場合、CPU301は、カメラ100からのEDIDの取得要求によりカメラ100にテレビ300のEDIDを送信できることをカメラ100に通知するため、HレベルのHPD信号をカメラ100に送信するように通信部303を制御する。
テレビ300の設定の変更により、カメラ100が接続されている接続端子に対応するEDIDに含まれる情報が変更された場合、CPU301はカメラ100が接続されている接続端子に対応するテレビ300のEDIDをカメラ100に送信できないと判定する。この場合も、CPU301はLレベルのHPD信号をHPDライン201を介してカメラ100に送信するように通信部303を制御する。また、通信部303は、HレベルのHPD信号をHPDライン201を介してカメラ100に送信する場合、カメラ100からの要求に応じて、カメラ100が接続されている接続端子に対応するテレビ300のEDIDをカメラ100に送信する。
表示部304は、液晶ディスプレイ等の表示器により構成される。表示部304は、チューナ部302及び通信部303の少なくとも一つから供給された映像データを表示する。通信部303によってカメラ100から受信した映像データが供給された場合、表示部304はカメラ100から受信した映像データを表示する。
操作部305は、テレビ300を操作するためのユーザインターフェースを提供する。操作部305は、テレビ300を操作するための複数のボタンを有し、CPU301は、操作部305を介して入力されたユーザの指示に従ってテレビ300を制御する。操作部305に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。操作部305はテレビ300を操作するための電源ボタン、チャンネル選択ボタン、外部入力ボタンなどを有する。
電源供給部307は、AC電源等からテレビ300の各部に必要な電力を供給する。テレビ300が電源オン状態である場合、電源供給部307からテレビ300全体に電力が供給される。テレビ300がスリープ状態である場合、電源供給部307からテレビ300の一部には、電力は供給されない。
<第1のEDID取得処理>
次に、図3を参照して、電源オン状態であるカメラ100で行われる第1のEDID取得処理を説明する。図3は、実施例1に係るカメラ100で行われる第1のEDID取得処理を説明するためのフローチャートである。第1のEDID取得処理は、カメラ100がテレビ300に送信する映像データを生成するためにテレビ300からEDIDを取得するための処理である。なお、第1のEDID取得処理が行われる場合、CPU101は、テレビ300を制御するためのCECコマンドをCECライン203を介してテレビ300に送信しないようにコマンド処理部103dを制御する。
図3に示す第1のEDID取得処理は、例えば、カメラ100が+5Vパワーラインを介して+5Vをテレビ300に供給している場合に行われる処理である。なお、実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って、第1のEDID取得処理を制御する場合を説明する。
S101において、CPU101は、検出部103aで検出されたHPD信号が変化したか否かを判定する。CPU101によって、HPD信号が変化したと判定された場合(S101でYES)、本フローチャートは、S101からS102に進む。CPU101によって、HPD信号が変化したと判定された場合(S101でNO)、本フローチャートは、S101からS101に戻る。
S102において、CPU101は、第1の判定として、HレベルのHPD信号が検出部103aで検出されたか否かを判定する。CPU101によって、HレベルのHPD信号が検出部103aで検出されたと判定された場合(S102でYES)、本フローチャートは、S102からS103に進む。CPU101によって、LレベルのHPD信号が検出部103aで検出されたと判定された場合(S102でNO)、本フローチャートは終了する。CPU101によって、LレベルのHPD信号が検出部103aで検出されたと判定された場合(S102でNO)、CPU101は、送信部103cに電源を供給しないように電源供給部108を制御する。
CPU101によって、HレベルのHPD信号が検出部103aで検出されたと判定された場合(S102でYES)、CPU101は、カメラ100の動作モードが変更されているか否かを確認する。そこで、S103において、CPU101は、第2の判定として、カメラ100が撮影モードから再生モードに変更中であるか否かを判定する。
ユーザがモード変更ボタン107aを操作することで、撮影モードであるカメラ100を再生モードに変更した場合、カメラ100を撮影モードから再生モードに変更するための指示がCPU101に入力される。このとき、CPU101は、カメラ100を撮影モードから再生モードに変更するための処理を行う。カメラ100を撮影モードから再生モードに変更するための処理は、映像データの生成を停止するように撮像部104を制御する処理と、記録媒体105aへの映像データの書き込みを停止するように記録部105を制御する処理とが含まれる。さらに、カメラ100を撮影モードから再生モードに変更するための処理には、記録媒体105aに対して映像データを書き込む状態から記録媒体105aから映像データを読み出す状態になるように記録部105を制御する処理が含まれる。
CPU101は、S103において、カメラ100を撮影モードから再生モードに変更するための処理が終了したか否かによって、カメラ100が撮影モードから再生モードに変更中であるか否かを判定する。なお以下、撮影モードを「第1のモード」と呼び、再生モードを「第2のモード」と呼ぶ。
CPU101は、カメラ100を第1のモードから第2のモードに変更するための処理が終了したと判定した場合、カメラ100の動作モードが第1のモードから第2のモードに変更されたと判定する(S103でNO)。この場合(S103でNO)、本フローチャートはS103からS104に進む。なお、操作部107のモード変更ボタン107aが操作されていない場合は、そもそもCPU101によって、カメラ100を第1のモードから第2のモードに変更するための処理が行われないので、この場合も、本フローチャートはS103からS104に進む。また、操作部107が操作されたとしても、カメラ100が第1のモードのままである場合は、CPU101によって、カメラ100を第1のモードから第2のモードに変更するための処理が行われない。この場合も、本フローチャートはS103からS104に進む。
CPU101は、カメラ100を第1のモードから第2のモードに変更するための処理が終了していないと判定した場合、カメラ100の動作モードが第1のモードから第2のモードに変更中であると判定する(S103でYES)。この場合(S103でYES)、本フローチャートはS103からS109に進む。
S104において、CPU101は、DDCライン202を介してテレビ300のEDIDを取得するように、取得部103bを制御する。取得部103bは、テレビ300のEDIDを取得した場合、テレビ300のEDIDをCPU101に供給する。この場合、本フローチャートはS104からS105に進む。
S105において、CPU101は、既にメモリ102にEDIDが記録されているか否かを判定する。メモリ102にEDIDが既に記録されている場合(S105でYES)、本フローチャートはS105からS106に進む。メモリ102にEDIDが既に記録されていない場合(S105でNO)、本フローチャートはS105からS107に進む。
S106において、CPU101は、メモリ102に既に記録されているEDIDとS105で取得部103bによって供給されたテレビ300のEDIDとが一致するか否かを判定する。CPU101は、取得部103bにより供給されたテレビ300のEDIDから少なくとも、テレビ300固有の機種名、テレビ300の表示能力を示す情報及びテレビ300の音声出力能力を示す情報を取得するようにテレビ300のEDIDを解析する。CPU101は、テレビ300のEDIDの解析の結果、テレビ300固有の機種名、テレビ300の表示能力を示す情報及びテレビ300の音声出力能力を示す情報を取得したことを確認した場合、テレビ300のEDIDの解析を一旦停止する。その後、CPU101は、メモリ102に既に記録されているEDIDの解析結果から取得したデバイス固有の機種名、表示能力を示す情報及び音声出力能力を示す情報をメモリ102から読み出す。さらに、CPU101は、デバイス固有の機種名、表示能力を示す情報及び音声出力能力を示す情報と、テレビ300固有の機種名、テレビ300の表示能力を示す情報及びテレビ300の音声出力能力を示す情報とを比較する。
メモリ102内のEDIDの解析結果から得られた情報と、取得部103bから供給されたテレビ300のEDIDの解析結果から得られた情報が一致した場合、CPU101は、メモリ102のEDIDとS105で取得されたEDIDが一致すると判定する。メモリ102内のEDIDの解析結果から得られた情報と、取得部103bから供給されたテレビ300のEDIDの解析結果から得られた情報が一致しない場合、CPU101は、メモリ102のEDIDとS105で取得されたEDIDが一致しないと判定する。
CPU101によって、メモリ102に既に記録されているEDIDとS105で取得部103bによって供給されたテレビ300のEDIDとが一致すると判定された場合(S106でYES)、本フローチャートはS106からS108に進む。
CPU101によって、メモリ102に既に記録されているEDIDとS105で取得部103bによって供給されたテレビ300のEDIDとが一致しないと判定された場合(S106でNO)、本フローチャートはS106からS107に進む。なお、メモリ102に既に記録されているEDIDを以下「第1の所定の情報」と呼び、S105で取得部103bによって供給されたテレビ300のEDIDを「第2の所定の情報」と呼ぶ。S106では、CPU101は、テレビ300のEDIDからテレビ300固有の機種名、テレビ300の表示能力を示す情報及びテレビ300の音声出力能力を示す情報を取得した後、一旦、テレビ300のEDIDの解析を停止する。この場合、CPU101は、メモリ102に既に記録されているEDIDに含まれる全ての情報と、S105で取得部103bによって供給されたテレビ300のEDIDに含まれる全ての情報とが一致するか否かを判定しない。そのため、CPU101は、S105で取得部103bによって供給されたテレビ300のEDIDに含まれる情報を全て解析することなく、第1の所定の情報と第2の所定の情報とが一致するか否かを判定することができる。これにより、取得部103bによって供給されたテレビ300のEDIDに含まれる情報を解析する処理を軽減することができる。
S107において、CPU101は、テレビ300固有の機種名、テレビ300の表示能力を示す情報及びテレビ300の音声出力能力を示す情報以外の情報も取得するため、S106で停止していたテレビ300のEDIDの解析を再開する。これは、メモリ102内のEDIDとS105で取得部103bにより供給されたテレビ300のEDIDとが一致しないため(S106でNO)、メモリ102内のEDIDの解析結果から得られる情報がテレビ300に対応していない可能性が高いからである。この場合、メモリ102内のEDIDの解析結果から得られる情報を用いて映像データを生成するようにしたとしても、テレビ300の表示能力に対応していない映像データとなる。そこで、CPU101は、S105で取得部103bにより供給されたテレビ300のEDIDに含まれる情報を解析することによって、テレビ300に対応する情報をテレビ300のEDIDから取得する。テレビ300のEDIDの解析が終了した場合、CPU101は、テレビ300のEDIDと、そのテレビ300のEDIDの解析結果とをメモリ102に記録する。この場合、本フローチャートは、S107からS108に進む。なお、S107において、CPU101は、テレビ300のEDIDがメモリ102に記録される前に既にメモリ102に記録されているEDID及びその解析結果を消去する。また、CPU101は、テレビ300のEDIDがメモリ102に記録される前にメモリ102に記録されているEDID及びその解析結果をテレビ300に送信する映像データ及び音声データを生成するために使用しないように設定した状態で保持してもよい。なお、この場合、映像データ及び音声データを生成するために使用しないように設定されたEDID及びその解析結果は、S107でメモリ102に記録されるテレビ300のEDID及び解析結果とは、別々にメモリ102内で保持されるものとする。
S108において、CPU101は、メモリ102に記録されたテレビ300のEDIDの解析結果から得られた情報に応じた映像データを生成し、TMDSライン203を介してテレビ300に送信するように送信部103cを制御する。
なお、第1の所定の情報と第2の所定の情報とが一致する場合(S106でYES)、CPU101は、第1の所定の情報及び第1の所定の情報の解析結果から得られた情報に応じて映像データを生成する。また、なお、第1の所定の情報と第2の所定の情報とが一致しない場合(S106でNO)、CPU101は、第2の所定の情報及び第2の所定の情報の解析結果から得られたに応じて映像データを生成する。映像データが送信部103cによってテレビ300に送信された場合、本フローチャートは終了する。
S109において、CPU101は、S101と同様に、検出部103aで検出されたHPD信号が変化したか否かを判定する。CPU101によって、HPD信号が変化したと判定された場合(S109でYES)、本フローチャートは、S109からS103に戻る。CPU101によって、HPD信号が変化したと判定された場合(S109でNO)、本フローチャートは、終了する。
このように、実施例1に係るカメラ100において、カメラ100の動作モードが変更された場合に、カメラ100の動作モードが第1のモードから第2のモードに変更されている途中では、テレビ300からEDIDを取得しないようにした。また、カメラ100の動作モードが変更された場合に、カメラ100の動作モードの変更が完了した後に、テレビ300からEDIDを取得し、テレビ300から取得したEDIDに応じた映像データを送信するようにした。
これにより、テレビ300がEDIDをカメラ100に送信した場合にもかかわらず、カメラ100からテレビ300に映像データが送信されないという事態を軽減するようにすることができる。この場合、カメラ100の動作モードが変更された場合に、テレビ300は、カメラ100との通信を切断しないようにするので、カメラ100は、テレビ300から繰り返しEDIDを取得するという処理を軽減することができる。さらに、カメラ100は、テレビ300から取得したEDIDを解析するための処理を軽減することができるので、既に解析されたEDIDの解析結果を用いてテレビ300に送信するための映像データを生成することができる。これにより、カメラ100は、テレビ300への映像データの送信が遅れないようにすることができる。
なお、S103において、CPU101は、カメラ100が第1のモード(撮影モード)から第2のモード(再生モード)に変更中であるか否かを判定するようにしたが、これに限定されないものとする。第2のモードは、第1のモードに対して異なる動作モードであればよいものとする。
例えば、第1のモードを再生モードとし、第2のモードを撮影モードとしてもよい。この場合、ユーザが操作部107を操作することによって、第1のモード(再生モード)であるカメラ100を第2のモード(撮影モード)に変更した場合、CPU101は、カメラ100を再生モードから撮影モードに変更するための処理を行う。S103において、カメラ100が第1のモードから第2のモードに変更中であるか否かをCPU101が判定するようにした場合、CPU101は、カメラ100を再生モードから撮影モードに変更するための処理が終了したか否かを判定する。このことによって、カメラ100が第1のモードから第2のモードに変更中であるか否かを判定する。
再生モードから撮影モードに変更するための処理は、記録媒体105aに記録されている映像データの再生を停止するように記録部105を制御し、記録媒体105aからの映像データの読み込みを停止するように記録部105を制御する処理が含まれる。さらにカメラ100を再生モードから撮影モードに変更するための処理には、記録媒体105aから映像データを読み込む状態から記録媒体105aに対して映像データを書き込む状態になるように記録部105を制御する処理が含まれる。さらに、カメラ100を再生モードから撮影モードに変更するための処理には、撮像部104を起動させ、映像データを被写体から生成させるための処理が含まれる。
CPU101は、再生モードから撮影モードに変更するための処理が終了したと判定した場合は、カメラ100が再生モードから撮影モードに変更中でないと判定し、本フローチャートは、S103からS104に進む。
CPU101は、再生モードから撮影モードに変更するための処理が終了していないと判定した場合は、カメラ100が再生モードから撮影モードに変更中であると判定し、本フローチャートは、S103からS109に進む。
また、他の一例として、第1のモードを撮影モードとし、第2のモードをライブビュー撮影モードとしてもよい。
なお、カメラ100を再生モードから撮影モードに変更するための指示は、操作部107を介してユーザが行うものであっても、テレビ300からCECライン204を介して受信したCECコマンドによって行われるものであってもよいものとする。なお、カメラ100を再生モードから撮影モードに変更するための指示も、カメラ100の動作モードを撮影モードからライブビュー撮影モードに変更するための指示も、カメラ100を再生モードから撮影モードに変更するための指示と同様であるものとする。
カメラ100を再生モードから撮影モードに変更するための指示は、S102で、HレベルのHPD信号が検出された後にCPU101に入力されたものであっても、S101でHPD信号の変化が検出される前にCPU101に入力されたものであってもよい。また、撮影モードから再生モードに変更するための指示も、カメラ100の動作モードを撮影モードからライブビュー撮影モードに変更するための指示も、カメラ100を再生モードから撮影モードに変更するための指示と同様であるものとする。カメラ100の動作モードをライブビュー撮影モードから撮影モードに変更するための指示も、カメラ100の動作モードが現在の動作モードから他の動作モードに変更するための指示も、同様であるものとする。また、S103において、CPU101は、カメラ100がカメラ100全体を起動している状態からカメラ100の起動が終了した状態になったか否かを判定するようにしてもよい。この場合、CPU101は、カメラ100の起動が終了したと判定した場合は(S103でNO)、本フローチャートは、S103からS104に進む。また、この場合、CPU101は、カメラ100が起動している状態、つまり、カメラ100の起動が終了していないと判定した場合は(S103でYES)、本フローチャートは、S103からS109に進む。
なお、S106において、CPU101が比較するメモリ102内のEDIDに含まれる情報と、取得部103bにより供給されたテレビ300のEDIDに含まれる情報とは、上述した情報以外のものであってもよい。その場合、上述した情報の他に、例えば、物理アドレスを示す情報や製造者名を示す情報等をさらに含んでいてもよいものとする。
[実施例2]
次に、図1、2、4及び5を参照して、実施例2を説明する。なお、実施例2では、実施例1と同様の箇所の説明を省略し、実施例1と異なる箇所について説明する。
実施例2に係る取得部103bは、HレベルのHPD信号が検出部103aで検出されている場合に、テレビ300から2回以上EDIDを取得できる。
また、実施例2に係るCPU101は、テレビ300から2回以上取得部103bがEDIDを取得した場合、テレビ300から取得部103bが取得したEDIDが、既にメモリ102に記録されているEDIDと一致するか否かを判定することができる。
実施例2に係るカメラ100のカウンタ101aは、既にメモリ102に記録されているEDIDと一致するとCPU101により判定されたEDIDを取得部103bが取得した回数を示す値Tを計測する。CPU101によって既にメモリ102に記録されているEDIDと一致するとCPU101により判定されたEDIDを取得部103bが取得した回数を示す値Tを以下、「取得回数T」と呼ぶ。
実施例2に係るカメラ100のメモリ102には、取得回数T及び取得回数Tに対する閾値を示す所定の回数Nが格納される。
図4は、実施例2に係るカメラ100で行われる第1のEDID取得処理を説明するためのフローチャートである。なお、実施例2においても、第1のEDID取得処理が行われる場合、CPU101は、テレビ300を制御するためのCECコマンドをCECライン203を介してテレビ300に送信しないようにコマンド処理部103dを制御する。
図4に示す第1のEDID取得処理は、例えば、カメラ100が+5Vパワーラインを介して+5Vをテレビ300に供給している場合に行われる処理である。なお、実施例2では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って、第1のEDID取得処理を制御する場合を説明する。図4に示すフローチャートのS101〜S109で行われる処理は、図3に示すフローチャートのS101〜S109で行われる処理と同様である。したがって、実施例2では、ステップS101〜S109の説明を省略する。なお、実施例2では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って第1のEDID取得処理を制御する場合を説明する。
カメラ100が+5Vパワーラインを介して+5Vをテレビ300に供給している場合、CPU101によって、HPD信号が変化したと判定された場合(S101でYES)、本フローチャートは、S101からS201に進む。S201において、CPU101は、メモリ102に記録されている取得回数Tを0に設定する。取得回数Tが0に設定された場合、本フローチャートはS201からS102に進む。
CPU101によって、LレベルのHPD信号が検出部103aで検出されたと判定された場合(S102でNO)、本フローチャートは、S102からS202に進む。このとき、CPU101は、送信部103cに必要な電源を供給しないように電源供給部108を制御する。S202において、CPU101は、メモリ102に記録されている取得回数Tを0に設定する。取得回数Tが0に設定された場合、本フローチャートは終了する。
CPU101は、カメラ100を第1のモードから第2のモードに変更するための処理が終了していないと判定した場合(S103でYES)、本フローチャートはS103からS203に進む。S203において、CPU101は、第2のEDID取得処理を行う。CPU101によって第2のEDID取得処理が行われた場合、本フローチャートはS203からS109に進む。
次に図5に示す第2のEDID取得処理について、説明を行う。なお、実施例2において、第2のEDID取得処理が行われる場合も、CPU101は、テレビ300を制御するためのCECコマンドをCECライン203を介してテレビ300に送信しないようにコマンド処理部103dを制御する。
S301において、CPU101は、メモリ102に記録された取得回数Tと所定の回数Nとを比較する。なお、実施例2における所定の回数Nは2であるものとする。所定の回数Nは、CPU101によって、カメラ100の動作モードが変更中であると判定されている場合に、取得部103bがテレビ300にEDIDを要求する回数を制限するための値である。
CPU101によって、取得回数Tが所定の回数N以上である場合(S301でYES)、本フローチャートは終了し、図4に示されるS109の処理に進む。
カメラ100の動作モードが変更中である場合、取得回数Tが所定の回数N以上であるとき、CPU101は、カメラ100が第1のモードから第2のモードに変更される前は、テレビ300にEDIDを要求しないように取得部103bを制御する。
CPU101によって、取得回数Tが所定の回数Nより少ない場合(S301でNO)、本フローチャートはS301からS302に進む。カメラ100の動作モードが変更中である場合、取得回数Tが所定の回数Nより少ないとき、CPU101は、カメラ100が第1のモードから第2のモードに変更される前であっても、テレビ300にEDIDを要求するように取得部103bを制御する。これは、カメラ100の動作モードが変更中であっても、テレビ300からEDIDを取得することによって、カメラ100が第1のモードから第2のモードに変更された後にテレビ300から取得したEDIDを解析するための処理を軽減させるためである。なお、S302における所定の回数Nは、2以上の値であればよく、2以外の値であってもよいものとする。
S302において、CPU101は、DDCライン202を介してテレビ300のEDIDを取得するように、取得部103bを制御する。取得部103bは、テレビ300のEDIDを取得した場合、テレビ300のEDIDをCPU101に供給する。この場合、本フローチャートはS302からS303に進む。
S303において、CPU101は、メモリ102にEDIDが既に記録されているか否かを判定する。メモリ102にEDIDが既に記録されている場合(S303でYES)、本フローチャートはS303からS304に進む。メモリ102にEDIDが記録されていない場合(S303でNO)、本フローチャートはS303からS305に進む。
S304において、CPU101は、第3の判定として、S106と同様にメモリ102に既に記録されているEDIDとS302で取得部103bによって供給されたテレビ300のEDIDとが一致するか否かを判定する。
CPU101によって、メモリ102に既に記録されているEDIDとS302で取得部103bによって供給されたテレビ300のEDIDとが一致すると判定された場合(S304でYES)、本フローチャートはS304からS307に進む。
CPU101によって、メモリ102に既に記録されているテレビ300のEDIDとS302で取得部103bによって供給されたEDIDとが一致しないと判定された場合(S304でNO)、本フローチャートはS304からS305に進む。
S305において、CPU101は、取得回数Tを1に設定するようにカウンタ101aを制御する。この場合、メモリ102に記録される取得回数Tは1に設定される。取得回数Tが1に設定された場合、本フローチャートは、S305からS306に進む。これは、S302において、取得部103bが既にメモリ102に記録されたEDIDと一致しないEDIDをテレビ300から取得したためである。
S306において、CPU101は、S107と同様にS302で取得部103bから供給されたテレビ300のEDIDを解析し、テレビ300のEDIDと、その解析結果とをメモリ102に記録する。この場合、本フローチャートは終了し、図4に示されるS109の処理に進む。
S307において、CPU101は、取得回数Tに1を加算するようにカウンタ101aを制御する。この場合、メモリ102に記録される取得回数Tは1回増加する。すなわち、Tは、取得部103bが取得したEDIDがメモリ102に既に記録されているEDIDと一致するとの判定が連続してCPU101によって行われたことを示す回数と等しくなる。取得回数Tが1回増加した場合、本フローチャートは終了し、図4に示されるS109の処理に進む。
このように、実施例2に係るカメラ100では、カメラ100の動作モードが変更中であり、既に取得したEDIDと一致するテレビ300のEDIDを所定の回数取得した場合、テレビ300からEDIDを取得しないようにした。これにより、テレビ300が同一のEDIDをカメラ100に所定の回数以上送信した場合、カメラ100からテレビ300に映像データが送信されないという事態を軽減するようにすることができる。
さらに、カメラ100の動作モードが変更され、かつ、カメラ100の動作モードが変更中である場合、既に取得したEDIDと一致するテレビ300のEDIDを所定の回数取得していないとき、テレビ300からテレビ300のEDIDを取得するようにした。これにより、カメラ100の動作モードが変更され、かつ、カメラ100の動作モードが変更中である場合に、カメラ100は、テレビ300からテレビ300のEDIDを少なくとも1回は取得する。カメラ100の動作モードが変更中である場合に、映像データをカメラ100がテレビ300に送信できない場合であっても、テレビ300から取得したテレビ300のEDIDを解析する処理を行うことができる。そのため、カメラ100の動作モードが変更された後、既に解析が完了したEDIDと一致するEDIDを新たに取得した場合、CPU101は、既に解析されたEDIDの解析結果を用いて映像データ及び音声データを生成する。このことから、新たに取得したEDIDを解析する処理を軽減することができる。したがって、カメラ100は、カメラ100の動作モードが変更された後に、新たにEDIDを取得したとしても、取得したEDIDを解析する処理によってテレビ300に送信するための映像データを生成する処理が遅れてしまうことを防ぐことができる。
また、実施例2で行われる図4の第1のEDID取得処理及び図5の第2のEDID取得処理において、カメラ100は、実施例1で行われる図3の第1のEDID取得処理と共通する処理については実施例1と同様な効果を得ることができる。
[他の実施例]
本発明に係る通信装置100は、実施例1及び2で説明した通信装置100に限定されるものではない。例えば、本発明に係る通信装置100は、複数の装置から構成されるシステムにより実現することも可能である。
また、実施例1及び2で説明した様々な処理及び機能は、コンピュータプログラムにより実現することも可能である。この場合、本発明に係るコンピュータプログラムは、コンピュータ(CPU等を含む)で実行可能であり、実施例1で説明した様々な機能を実現することになる。
本発明に係るコンピュータプログラムは、コンピュータ上で稼動しているOS(Operating System)などを利用して、実施例1で説明した様々な処理及び機能を実現してもよいことは言うまでもない。
本発明に係るコンピュータプログラムは、コンピュータ読取可能な記録媒体から読み出され、コンピュータで実行されることになる。コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。また、本発明に係るコンピュータプログラムは、通信インターフェースを介して外部装置からコンピュータに提供され、当該コンピュータで実行されるようにしてもよい。