以下、本発明の実施例を図面を参照しながら説明する。ただし、以下の実施例はあくまでも一例であって、本発明は以下の実施例に限定されるものではない。
[実施例1]
図1は、本発明の実施例1に係る通信システムの一例を示す図である。図2は、本発明の実施例1に係る通信装置100及び外部装置200の構成の一例を示すブロック図である。
実施例1に係る通信システムは、図1及び図2に示すように、通信装置100、外部装置200及び接続ケーブル300を有し、通信装置100と外部装置200とは、接続ケーブル300を介して接続されている。
実施例1において、通信装置100、外部装置200及び接続ケーブル300は、HDMI規格に準拠するものとする。したがって、通信装置100は、HDMI規格におけるソース(Source)として機能し、外部装置200は、HDMI規格におけるシンク(Sink)として機能し、接続ケーブル300は、HDMI規格におけるHDMIケーブルとして機能する。
また、実施例1において、通信装置100及び外部装置200は、HDMI規格が規定しているCEC(Consumer Electronics Control)規格に準拠するものとする。通信装置100と外部装置200との間で双方向に送信される制御コマンドは、CEC規格に準拠する。以下、CEC規格に準拠した制御コマンドを「CECコマンド」と呼ぶ。
実施例1では、通信装置100の一例としてビデオカメラを用いる。なお、通信装置100は、接続ケーブル300を介して映像(video)データ、音声(audio)データ及び補助データを外部装置200に送信できる映像出力装置であれば、スチルカメラ、レコーダ、DVDプレイヤ等の装置であってもよい。
実施例1では、外部装置200の一例としてテレビジョン受像機(以下、「テレビ」と呼ぶ。)を用いる。なお、外部装置200は、通信装置100から受信した映像データを表示器に表示し、通信装置100から受信した音声データをスピーカから出力する表示装置であれば、プロジェクタやパーソナルコンピュータ等の装置であってもよい。
以下、通信装置100を「ビデオカメラ100」と呼び、外部装置200を「テレビ200」と呼び、接続ケーブル300を「HDMIケーブル300」と呼ぶ。
<HDMIケーブル300>
次に、図2を参照して、HDMIケーブル300を説明する。
HDMIケーブル300は、+5Vパワーライン、HPD(Hot Plug Detect)ライン301、DDC(Display Data Channel)ライン302を有する。HDMIケーブル300はさらに、TMDS(Transition Minimized Differential Singnaling)ライン303及びCECライン304を有する。
+5Vパワーラインは、ビデオカメラ100からテレビ200に+5Vを供給するための電力供給ラインである。
HPDライン301は、高電圧レベル(以下、Hレベル)または低電圧レベル(以下、Lレベル)のHPD信号をテレビ200からビデオカメラ100に伝送するための伝送ラインである。
DDCライン302は、テレビ200のデバイス情報をテレビ200からビデオカメラ100に伝送するための伝送ラインである。テレビ200のデバイス情報とは、テレビ200のEDID(Extended display identification data)またはE−EDID(Enhanced EDID)である。EDID及びE−EDIDはいずれも、テレビ200のデバイス情報として、テレビ200に関するテレビ200の識別情報、テレビ200の画像表示能力などに関する情報等を含む。例えば、EDID及びE−EDIDには、テレビ200がサポートしている解像度、走査周波数、アスペクト比、色空間などに関する情報が含まれている。E−EDIDは、EDIDを拡張したものであり、EDIDよりも多くの能力情報を含む。例えば、E−EDIDには、テレビ200がサポートしている映像データ及び音声データのフォーマットなどに関する情報が含まれている。以下、EDID及びE−EDIDをいずれも「EDID」と呼ぶ。
テレビ200のEDIDを受信したビデオカメラ100は、テレビ200のEDIDを解析することにより、テレビ200の画像表示能力、音声処理能力などを自動的に知ることができる。さらに、CPU101は、テレビ200の画像表示能力及び音声処理能力に適した映像フォーマット及び音声フォーマットを自動的に知ることができる。ビデオカメラ100の設定をテレビ200に適した設定にすることにより、ビデオカメラ100は、ビデオカメラ100からテレビ200に送信される映像データ及び音声データをテレビ200の能力に適した映像データ及び音声データにすることができる。
TMDSライン303は、ビデオカメラ100からテレビ200に映像データ、音声データ及び補助データを伝送するための伝送ラインである。TMDSライン303は、TMDSチャンネル0、TMDSチャンネル1、TMDSチャンネル2及びTMDSクロックチャンネルを含む。
CECライン304は、ビデオカメラ100とテレビ200との間で様々なCECコマンドを双方向に伝送するための伝送ラインである。テレビ200はCECライン304を介してビデオカメラ100にビデオカメラ100を制御するためのCECコマンドを送信することができ、ビデオカメラ100はテレビ200にテレビ200を制御するためのCECコマンドを送信することができる。
<ビデオカメラ100>
次に、図2を参照して、ビデオカメラ100の構成の一例を説明する。
ビデオカメラ100は、図2に示すように、CPU(Central Processing Unit)101、メモリ102、通信部103、撮像部104、記録部105、表示部106、操作部107及び電力供給部108を有する。以下、ビデオカメラ100について説明する。
CPU101は、メモリ102に格納されているコンピュータプログラムに従って、ビデオカメラ100全体の動作を制御する。CPU101は、テレビ200から取得したテレビ200のEDIDを解析することにより、テレビ200の画像表示能力及び音声処理能力を知ることができる。CPU101は、テレビ200の画像表示能力及び音声処理能力に適した映像データ及び音声データを生成する。CPU101は、ビデオカメラ100の各部から供給されたデータを解析することによってビデオカメラ100全体を制御する。また、CPU101は、電力供給部108から各部に電力を供給するように制御したり、電力の供給を停止するように制御する。
メモリ102は、CPU101のワークエリアとして機能する。メモリ102には、テレビ200のEDID、テレビ200の識別情報、ビデオカメラ100の各部の動作に対するフラグの設定、CPU101によって行われた演算や解析の結果等の情報が記録される。なお、CPU101のワークエリアは、メモリ102に限られるものではなく、ハードディスク装置等の外部記録装置等であってもよい。
通信部103は、HDMIケーブル300を接続するためのビデオカメラ100の接続端子を有し、ビデオカメラ100の接続端子を介して、テレビ200のEDIDの取得し、CECコマンドの送受信や、映像データ、音声データ及び補助データの送信を行う。通信部103は、第1の接続検出部103aと第2の接続検出部103bとデータ処理部103cとコマンド処理部103dとを有する。
第1の接続検出部103aは、テレビ200から送信されるHPD信号を、HPDライン301を介して受信することができる。第1の接続検出部103aは、HPDライン301を介してHレベルのHPD信号を受信した場合、HレベルのHPD信号を受信した旨をCPU101に通知する。また、同様に、第1の接続検出部103aは、HPDライン301を介してLレベルのHPD信号を受信した場合、LレベルのHPD信号を受信した旨をCPU101に通知する。
第2の接続検出部103bは、テレビ200の存在を検出するために、TMDSライン303がテレビ200側の終端抵抗に接続されたか否かを継続的に検出することができる。TMDSライン303がテレビ200側の終端抵抗に接続されたか否かを検出するものの一例として、「Receiver Sense(以下、Rxセンス)」と呼ばれる情報がある。HレベルのRxセンスは、TMDSライン303がテレビ200側の終端抵抗に接続されたことを示す。LレベルのRxセンスは、TMDSライン303がテレビ200側の終端抵抗に接続されていないことを示す。TMDSライン303がテレビ200側の終端抵抗に接続された場合、第2の接続検出部103bは、HレベルのRxセンスを検出する。また、TMDSライン303がテレビ200側の終端抵抗に接続されていない場合、第2の接続検出部103bは、LレベルのRxセンスを検出する。
TMDSライン303がテレビ200側の終端抵抗に接続されている状況とは、テレビ200がアクティブ状態であるときに想定される。なお、アクティブ状態とは、テレビ200が電源オン状態であり、かつ、テレビ200が出力するデータとして、ビデオカメラ100からTMDSライン303を介して送信されるデータが選択されている状態である。
TMDSライン303がテレビ200側の終端抵抗に接続されていない状況とは、テレビ200が非アクティブ状態であるときに想定される。なお、非アクティブ状態とは、テレビ200が電源オフ状態、またはテレビ200が出力するデータとして、ビデオカメラ100からTMDSライン303を介して送信されるデータ以外のデータが選択されている状態である。第2の接続検出部103bは、検出したRxセンスがHレベルであるかLレベルであるかをCPU101に通知する。このため、CPU101は、テレビ200がアクティブ状態であるか非アクティブ状態であるかを判定することができる。
データ処理部103cは、映像データ、音声データ及び補助データを、TMDSライン303を介してテレビ200に送信することができる。TMDSライン303を介してテレビ200に送信される映像データ及び音声データは、テレビ200の画像表示能力及び音声処理能力に適したものである。
ビデオカメラ100の動作モードが撮影モードである場合、データ処理部103cは、撮像部104で生成された映像データと、不図示のマイクロフォン部で生成された音声データとをTMDSライン303を介してテレビ200に送信することができる。この場合、CPU101で生成された補助データも、映像データ及び音声データとともにTMDSライン303を介してテレビ200に送信される。ビデオカメラ100の動作モードが再生モードである場合、データ処理部103cは、記録部105が記録媒体105aから再生した映像データ及び音声データをTMDSライン303を介してテレビ200に送信することができる。この場合、CPU101で生成された補助データも、映像データ及び音声データとともにTMDSライン303を介してテレビ200に送信される。
コマンド処理部103dは、テレビ200から送信されたCECコマンドを、CECライン304を介して受信し、CPU101で生成されたテレビ200を制御するためのCECコマンドをCECライン304を介してテレビ200に送信する。テレビ200から受信したCECコマンドは、コマンド処理部103dからCPU101に供給され、CPU101は、テレビ200から受信したCECコマンドに応じてビデオカメラ100を制御することができる。
また、ビデオカメラ100がテレビ200にCECコマンドを送信した場合に、テレビ200がビデオカメラ100からのCECコマンドを受信できたとき、テレビ200はCECコマンドに対する応答信号をビデオカメラ100に送信する。そのため、コマンド処理部103dは、CECコマンドに対する応答信号をテレビ200から受信することができる。CECコマンドに対する応答信号には、肯定の応答を示すACK(Acknowledge)信号(肯定応答信号)と否定の応答を示すNACK(Negative Acknowledge)信号(否定応答信号)とがある。
撮像部104は、ビデオカメラ100の動作モードが撮影モードである場合は、被写体を撮影し、当該被写体の光学像から映像データを生成する。撮像部104で生成される映像データは、動画、静止画のいずれでもよい。撮像部104で生成された映像データは、撮像部104からデータ処理部103c、記録部105及び表示部106に供給される。テレビ200からEDIDを受信できた場合、CPU101は、撮像部104からデータ処理部103cに供給される映像データを、テレビ200の画像表示能力に適した映像データに変換する。撮像部104からデータ処理部103cに供給された映像データは、TMDSライン303を介してテレビ200に送信される。撮像部104から記録部105に供給された映像データは、記録媒体105aに記録される。撮像部104から表示部106に供給された映像データは、表示部106に表示される。
撮像部104が映像データを生成する場合、不図示のマイクロフォン部は、音声データを生成する。マイクロフォン部で生成された音声データは、マイクロフォン部からデータ処理部103c、記録部105及び不図示のスピーカ部に供給される。テレビ200からEDIDを受信できた場合、CPU101は、マイクロフォン部からデータ処理部103cに供給される音声データを、テレビ200の音声処理能力に適した音声データに変換する。マイクロフォン部からデータ処理部103cに供給された音声データは、TMDSライン303を介してテレビ200に送信される。マイクロフォン部から記録部105に供給された音声データは、記録媒体105aに記録される。マイクロフォン部から表示部106に供給された音声データは、スピーカ部から出力される。
撮像部104は、ビデオカメラ100の動作モードが再生モードである場合は、被写体の撮影を停止し、当該被写体の光学像からの映像データの生成を停止する。
記録部105は、ビデオカメラ100の動作モードが撮影モードである場合は、撮像部104で生成された映像データと、マイクロフォン部で生成された音声データとを記録媒体105aに記録することができる。撮像部104及びマイクロフォン部で生成された映像データ及び音声データの記録媒体105aへの記録は、操作部107を介して入力されたユーザの指示に従ってCPU101が制御する。なお、記録媒体105aには、映像データと音声データとが単独で記録されてもよく、特に種別について特定するものではない。
記録部105は、ビデオカメラ100の動作モードが再生モードである場合は、ユーザによって選択された映像データ及び音声データを記録媒体105aから再生することができる。記録媒体105aから再生される映像データ及び音声データの選択は、操作部107を介して入力されたユーザの指示に従ってCPU101が制御する。
記録部105が記録媒体105aから再生した映像データは、記録部105からデータ処理部103c及び表示部106に供給される。テレビ200からEDIDを受信できた場合、CPU101は、記録部105からデータ処理部103cに供給される映像データを、テレビ200の画像表示能力に適した映像データに変換する。記録部105からデータ処理部103cに供給された映像データは、TMDSライン303を介してテレビ200に送信される。記録部105から表示部106に供給された映像データは、表示部106に表示される。
記録部105が記録媒体105aから再生した音声データは、記録部105からデータ処理部103c及び不図示のスピーカ部に供給される。テレビ200からEDIDを受信できた場合、CPU101は、記録部105からデータ処理部103cに供給される音声データを、テレビ200の音声処理能力に適した音声データに変換する。記録部105からデータ処理部103cに供給された音声データは、TMDSライン303を介してテレビ200に送信される。記録部105からスピーカ部に供給された音声データは、スピーカ部から出力される。
記録媒体105aは、メモリカード、ハードディスク装置などの記録媒体である。記録媒体105aは、ビデオカメラ100に内蔵された記録媒体であっても、ビデオカメラ100から取り外し可能な記録媒体であってもよい。
表示部106は、液晶ディスプレイなどの表示器により構成される。ビデオカメラ100の動作モードが撮影モードである場合、表示部106は、撮像部104で生成された映像データを表示する。ビデオカメラ100の動作モードが再生モードである場合、表示部106は、記録部105が記録媒体105aから再生した映像データを表示する。
操作部107は、ビデオカメラ100を操作するためのユーザインターフェースを提供する。操作部107は、ビデオカメラ100を操作するための複数のボタンを有する。操作部107に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。CPU101は、操作部107を介して入力されたユーザの指示に従ってビデオカメラ100を制御することができる。
電力供給部108は、ビデオカメラ100に着脱可能なバッテリ、AC電源等の電源からビデオカメラ100の各部に必要な電力を供給する。
<テレビ200>
次に、図2を参照して、テレビ200の構成の一例を説明する。
テレビ200は、図2に示すように、CPU201、チューナ部202、通信部203、表示部204、操作部205、メモリ206及び電力供給部207を有する。
CPU201は、メモリ206に格納されているコンピュータプログラムに従ってテレビ200全体の動作を制御する。
チューナ部202は、ユーザによって選択されたテレビジョンチャンネルのテレビジョン放送を受信する。
通信部203は、HDMIケーブル300を接続するためのテレビ200の接続端子を有する。通信部203は、ビデオカメラ100から送信された映像データ、音声データ及び補助データを、TMDSライン303を介して受信し、受信したこれらのデータを表示部204、不図示のスピーカ部及びCPU201に供給する。
通信部203は、ビデオカメラ100から送信されたCECコマンドをCECライン304を介して受信し、CPU201で生成されたビデオカメラ100を制御するためのCECコマンドをCECライン304を介してビデオカメラ100に送信する。ビデオカメラ100から受信したCECコマンドは、通信部203からCPU201に供給され、CPU201は、ビデオカメラ100から受信したCECコマンドに従ってテレビ200を制御することができる。
通信部203は、ビデオカメラ100が+5Vパワーラインを介してテレビ200に+5Vを供給しているか否かを判定する。ビデオカメラ100から+5Vパワーラインを介してテレビ200に+5Vが供給されている場合、テレビ200のEDIDをビデオカメラ100に送信できるか否かを判定する。通信部203は、テレビ200のEDIDをビデオカメラ100に送信できる場合、HPDライン301を介してHレベルのHPD信号をビデオカメラ100に送信する。また、通信部203は、テレビ200のEDIDをビデオカメラ100に送信できない場合、HPDライン301を介してLレベルのHPD信号をビデオカメラ100に送信する。ビデオカメラ100からテレビ200に+5Vが供給されていない場合にも、通信部203は、HPDライン301を介してLレベルのHPD信号をビデオカメラ100に送信する。なお、テレビ200のEDIDは、メモリ206に格納されている。
通信部203は、テレビ200のEDIDを、DDCライン302を介してビデオカメラ100に送信することができる。
表示部204は、液晶ディスプレイ等の表示器により構成される。表示部204は、チューナ部202によって受信されたテレビジョン放送の映像データ及び通信部203によってビデオカメラ100から受信した映像データのいずれか1つを表示する。
操作部205は、テレビ200を操作するためのユーザインターフェースを提供し、CPU201は、操作部205を介して入力されたユーザの指示に従ってテレビ200を制御することができる。また、操作部205は、テレビ200を操作するための複数のボタンを有する。操作部205に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。操作部205は、テレビ200を操作するための電源ボタン、外部入力ボタン等を有する。
電源ボタンは、テレビ200を電源オン(ON)状態または電源オフ(OFF)状態に変更することをCPU201に指示するためのボタンである。電源オン状態とは、CPU201がテレビ200全体に必要な電力を供給するように電力供給部207を制御している状態である。また、電源オフ状態とは、CPU201がテレビ200の一部またはテレビ200の全体への電力の供給を停止させるように電力供給部207を制御している状態である。
外部入力ボタンは、チューナ部202が受信したテレビジョン放送に含まれる映像データまたはHDMIケーブル300を介して接続されたソース装置から受信した映像データを選択し、選択した映像データを表示部204に表示させるためのボタンである。
電力供給部207は、AC電源等の電源からテレビ200の各部に必要な電力を供給する。
<接続確認処理>
次に、図3を参照して、実施例1に係るビデオカメラ100で行われる接続確認処理について説明する。
図3は、実施例1に係るビデオカメラ100で行われる接続確認処理の一例を説明するためのフローチャートである。
実施例1では、接続確認処理が、ビデオカメラ100が+5Vパワーラインを介して+5Vをテレビ200に供給しているときに行われる場合を説明する。また、実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って接続確認処理を制御する場合を説明する。
ステップS301において、CPU101は、第1の接続検出部103aで検出されたHPD信号がHレベルであるか否かを判定する。ステップS301で行われる判定を「第1の判定」と呼ぶ。
HPD信号がHレベルである場合(ステップS301でYES)、CPU101は、ビデオカメラ100がテレビ200のEDIDをテレビ200から取得できる状態であると判定する。HPD信号がHレベルである場合、CPU101は、テレビ200のEDIDをテレビ200から取得することを通信部103に指示する。テレビ200のEDIDをテレビ200から取得することを示す指示をCPU101から受けた場合、通信部103は、DDCライン302を介してテレビ200のEDIDをテレビ200から取得する。通信部103によって取得されたテレビ200のEDIDは、メモリ102に格納される。テレビ200のEDIDがメモリ102に格納された後、本フローチャートはステップS301からステップS302に進む。
HPD信号がLレベルである場合(ステップS301でNO)は、CPU101は、CPU101は、ビデオカメラ100がテレビ200のEDIDをテレビ200から取得できない状態であると判定する。テレビ200のEDIDをテレビ200から取得することができない場合、ビデオカメラ100は、テレビ200に適した映像データ及び音声データをテレビ200に送信することができない。そこで、ステップS301でNOの場合、映像データ、音声データ及び補助データの送信を停止するために、本フローチャートはステップS301からステップS305に進む。
ステップS302において、CPU101は、第2の接続検出部103bで検出されたRxセンスがHレベルであるか否かを判定する。ステップS302で行われる判定を「第2の判定」と呼ぶ。
RxセンスがHレベルである場合(ステップS302でYES)、CPU101は、テレビ200がアクティブ状態であると判定する。テレビ200がアクティブ状態である場合、テレビ200は、データ処理部103cから受信した映像データを表示部204に表示することも、データ処理部103cから受信した音声データをスピーカ部から出力することもできる状態である。そこで、ステップS302でYESの場合、映像データ、音声データ及び補助データの送信を開始または継続するために、本フローチャートはステップS302からステップS303に進む。
RxセンスがLレベルである場合(ステップS302でNO)、CPU101は、テレビ200が非アクティブ状態であると判定する。テレビ200が非アクティブ状態である場合、テレビ200は、データ処理部103cから受信した映像データを表示部204に表示することも、データ処理部103cから受信した音声データをスピーカ部から出力することもできない状態である。そこで、ステップS302でNOの場合、映像データ、音声データ及び補助データの送信を停止するために、本フローチャートはステップS302からステップS305に進む。
ステップS303において、CPU101は、データ処理部103cが低消費電力状態であるか、通常状態であるかを判定する。
データ処理部103cが通常状態である場合、データ処理部103cは、TMDSライン303を介して映像データ、音声データ及び補助データをテレビ200に送信することができる。この場合、本フローチャートはステップS303からステップS304に進む。
データ処理部103cが低消費電力状態である場合、データ処理部103cは、TMDSライン303を介して映像データ、音声データ及び補助データをテレビ200に送信することができない。そこで、データ処理部103cが低消費電力状態である場合、CPU101は、データ処理部103cを低消費電力状態から通常状態に変更する。データ処理部103cが通常状態である場合、電力供給部108は、データ処理部103cが映像データ、音声データ及び補助データをテレビ200に送信するのに必要な電力をデータ処理部103cに供給する。データ処理部103cが低消費電力状態から通常状態に変更された後、本フローチャートはステップS303からステップS304に進む。
ステップS304において、CPU101は、データ処理部103cがTMDSライン303を介して映像データ、音声データ及び補助データをテレビ200に送信しているか否かを判定する。
データ処理部103cがTMDSライン303を介して映像データ、音声データ及び補助データをテレビ200に送信している場合、本フローチャートはステップS304からステップS307に進む。
データ処理部103cがTMDSライン303を介して映像データ、音声データ及び補助データをテレビ200に送信していない場合、CPU101は、映像データ、音声データ及び補助データの送信を開始するようにビデオカメラ100を制御する。ビデオカメラ100の動作モードが撮影モードである場合、データ処理部103cは、撮像部104で生成された映像データの送信と、マイクロフォン部で生成された音声データの送信とを開始する。ビデオカメラ100の動作モードが再生モードである場合、データ処理部103cは、所定の映像データ(メニュー画面等)の送信を開始する。ビデオカメラ100の動作モードが再生モードである場合、データ処理部103cは、記録部105が記録媒体105aから再生した映像データ及び音声データをテレビ200に送信することもできる。映像データ、音声データ及び補助データの送信が開始された後、本フローチャートはステップS304からステップS307に進む。
ステップS305において、CPU101は、データ処理部103cが通常状態であるか、低消費電力状態であるかを判定する。
データ処理部103cが低消費電力状態である場合、データ処理部103cは、すでに映像データ、音声データ及び補助データの送信を停止している。また、データ処理部103cが低消費電力状態である場合、電力供給部108は、データ処理部103cへの電力供給を停止することができる。データ処理部103cへの電力供給を停止した場合、ビデオカメラ100の消費電力を削減することができる。データ処理部103cが低消費電力状態である場合、本フローチャートはステップS305からステップS306に進む。
データ処理部103cが通常状態である場合、CPU101は、映像データ、音声データ及び補助データの送信を停止するために、データ処理部103cを通常状態から低消費電力状態に変更する。データ処理部103cが通常状態から低消費電力状態に変更された場合、データ処理部103cは、TMDSライン303を介して映像データ、音声データ及び補助データをテレビ200に送信できなくなる。データ処理部103cが通常状態から低消費電力状態に変更された場合、電力供給部108は、データ処理部103cへの電力供給を停止することができる。データ処理部103cへの電力供給を停止した場合、ビデオカメラ100の消費電力を削減することができる。データ処理部103cが低消費電力状態から通常状態に変更された後、本フローチャートはステップS305からステップS306に進む。
なお、ステップS305において、CPU101は、第1の接続検出部103a、第2の接続検出部103b及びコマンド処理部103dへの電力供給を停止しないようにする。これにより、第1の接続検出部103aは、データ処理部103cが低消費電力状態である間であっても、テレビ200から送信されるHPD信号の変化を検出することができる。また、第2の接続検出部103bは、データ処理部103cが低消費電力状態である間であっても、テレビ200から送信されるRxセンスの変化を検出することができる。また、コマンド処理部103dは、データ処理部103cが低消費電力状態である間であっても、テレビ200からのCECコマンドを受信することができる。
ステップS306において、CPU101は、メモリ102に格納されている接続フラグを0にリセットする。CPU101が接続フラグを0にリセットした後、本フローチャートはステップS306からステップS307に進む。
ステップS307において、CPU101は、メモリ102に格納されている接続フラグが1であるか否かを判定する。
HPD信号およびRxセンスの少なくとも一つがLレベルである場合、接続フラグは0である。HPD信号およびRxセンスがHレベルであっても、テレビ200がCEC規格に準拠した装置でない場合も、接続フラグは0である。接続フラグが1でない場合(ステップS307でNO)、<Polling Message>コマンドをテレビ200に送信するために、本フローチャートはステップS307からステップS308に進む。<Polling Message>コマンドは、ビデオカメラ100とテレビ200とが接続状態であるか否かを確かめるための確認コマンドである。
HPD信号およびRxセンスがHレベルであり、テレビ200がCEC規格に準拠した装置である場合、接続フラグは1である。接続フラグが1である場合(ステップS307でYES)は、ビデオカメラ100とテレビ200とが接続状態であることがすでに確かめられているので、<Polling Message>コマンドを繰り返し送信する必要がない。そこで、実施例1では、CPU101は、接続フラグが0にリセットされるまでの間、<Polling Message>コマンドの送信を停止するようにビデオカメラ100を制御する。接続フラグは、HPD信号およびRxセンスの少なくとも一つがHレベルからLレベルに変化した場合に0にリセットされる。したがって、CPU101は、HPD信号およびRxセンスの少なくとも一つがHレベルからLレベルに変化するまで、<Polling Message>コマンドの送信を停止するようにビデオカメラ100を制御する。これにより、ビデオカメラ100は、<Polling Message>コマンドを繰り返し送信しなくてもよくなる。ステップS307でYESの場合、<Polling Message>コマンドを繰り返し送信しないようにするために、本フローチャートはステップS307からステップS301に戻る。
ステップS308において、CPU101は、<Polling Message>コマンドを生成し、生成した<Polling Message>コマンドをコマンド処理部103dに供給する。コマンド処理部103dは、CECライン304を介して<Polling Message>コマンドをテレビ200に送信する。コマンド処理部103dが<Polling Message>コマンドをテレビ200に送信した後、本フローチャートはステップS308からステップS309に進む。
実施例1では、HPD信号がLレベルである場合(ステップS301でNO)であっても、CPU101は、<Polling Message>コマンドをテレビ200に送信するようにコマンド処理部103dを制御する。<Polling Message>コマンドを受信したテレビ200がHPD信号及びRxセンスをLレベルからHレベルに変更する可能性があるからである。
また、実施例1では、RxセンスがLレベルである場合(ステップS302でNO)であっても、CPU101は、<Polling Message>コマンドをテレビ200に送信するようにコマンド処理部103dを制御する。<Polling Message>コマンドを受信したテレビ200がRxセンスをLレベルからHレベルに変更する可能性があるからである。
テレビ200がCEC規格に準拠している場合、テレビ200は<Polling Message>コマンドを受け付けることができる。テレビ200がCEC規格に準拠しており、<Polling Message>コマンドを受け付けた場合、テレビ200は、<Polling Message>コマンドに対するACK信号をビデオカメラ100に送信する。
テレビ200がCEC規格に準拠していても、テレビ200<Polling Message>コマンドの受信に失敗した場合、テレビ200は、<Polling Message>コマンドに対するACK信号をビデオカメラ100に送信することはできない。この場合、テレビ200は、ACK信号をビデオカメラ100に送信しないか、NACK信号をビデオカメラ100に送信する。
テレビ200がCEC規格に準拠していない場合、テレビ200は<Polling Message>コマンドを受け付けることができない。この場合、テレビ200は、ACK信号をビデオカメラ100に送信しないか、NACK信号をビデオカメラ100に送信する。
ステップS309において、CPU101は、コマンド処理部103dが<Polling Message>コマンドに対するACK信号をテレビ200から受信できたか否かを判定する。ステップS309で行われる判定を「第3の判定」と呼ぶ。コマンド処理部103dが所定時間以内にACK信号をテレビ200から受信できた場合、コマンド処理部103dは、ACK信号をテレビ200から受信できたことをCPU101に通知する。コマンド処理部103dが所定時間以内にACK信号をテレビ200から受信できなかった場合、コマンド処理部103dは、ACK信号をテレビ200から受信できなかったことをCPU101に通知する。
コマンド処理部103dが<Polling Message>コマンドに対するACK信号をテレビ200から受信できなかった場合(ステップS309でNO)、CPU101は、ビデオカメラ100とテレビ200とが接続状態でないと判定する。この場合、CPU101は、テレビ200がCEC規格に準拠した装置でないと判定する。ステップS309でNOの場合、本フローチャートはステップS309からステップS310に進む。
コマンド処理部103dが<Polling Message>コマンドに対するACK信号をテレビ200から受信できた場合(ステップS309でYES)、CPU101は、ビデオカメラ100とテレビ200とが接続状態であると判定する。この場合、CPU101は、テレビ200がCEC規格に準拠した装置であると判定する。ステップS309でYESの場合、接続フラグを1にセットするために、本フローチャートはステップS309からステップS311に進む。
ステップS310において、CPU101は、CECコマンド無効処理が実行されているか否かを判定する。CECコマンド無効処理は、テレビ200からのCECコマンドを無効にするための処理である。<Polling Message>コマンドに対するACK信号がテレビ200から受信できなかった場合、ビデオカメラ100とテレビ200とは非接続状態である。そのため、CPU101はCECコマンド無効処理の実行を開始又は継続するようにコマンド処理部103dを制御する。
CECコマンド無効処理が実行されている場合、本フローチャートはステップS310からステップS301に戻る。
CECコマンド無効処理が実行されていない場合、CPU101は、CECコマンド無効処理の実行の開始をコマンド処理部103dに指示する。CECコマンド無効処理の実行の開始を示す指示をCPU101から受けた場合、コマンド処理部103dは、CECコマンド無効処理の実行を開始する。CECコマンド無効処理が実行されている間、コマンド処理部103dは、テレビ200からのCECコマンドを受け付けずに廃棄する。ただし、コマンド処理部103dは、CECコマンド無効処理が実行されている間であっても、テレビ200以外の装置からのCECコマンドは受け付ける。したがって、CECコマンド無効処理が実行されている間であっても、テレビ200以外の装置は、ビデオカメラ100をCECコマンドを用いて制御することができる。コマンド処理部103dがCECコマンド無効処理の実行を開始した後、本フローチャートはステップS310からステップS301に戻る。
ステップS311において、CPU101は、接続フラグを1にセットする前に、CECコマンド無効処理が実行されているか否かを判定する。
CECコマンド無効処理が実行されていない場合、CPU101は、メモリ102に格納されている接続フラグを1にセットする。接続フラグが1にセットされた後、本フローチャートはステップS311からステップS301に戻る。
CECコマンド無効処理が実行されている場合、CPU101は、CECコマンド無効処理の実行の停止をコマンド処理部103dに指示する。CECコマンド無効処理の実行の停止を示す指示をCPU101から受けた場合、コマンド処理部103dは、CECコマンド無効処理の実行を停止する。CECコマンド無効処理の実行が停止された後、コマンド処理部103dは、テレビ200からのCECコマンドは受け付けることができるようになる。コマンド処理部103dがCECコマンド無効処理の実行を停止した後、CPU101は、メモリ102に格納されている接続フラグを1にセットする。接続フラグが1にセットされた後、本フローチャートはステップS311からステップS301に戻る。
このように、実施例1では、接続フラグが1である場合(ステップS307でYES)、ビデオカメラ100は、<Polling Message>コマンドをテレビ200に繰り返し送信しないようにすることができる。これにより、接続フラグが1である場合は、<Polling Message>コマンドをテレビ200に送信する送信処理と、テレビ200からのCECコマンドを受信する受信処理とが重なることがなくなる。その結果、ビデオカメラ100の負荷を軽減させることができ、テレビ200からのCECコマンドの受信が失敗してしまう可能性を低くすることができる。
なお、実施例1では、ビデオカメラ100とテレビ200とが接続状態であるか否かの判定を、<Polling Message>コマンドを用いて行う例を説明したが、実施例1はこれに限るものではない。例えば、ビデオカメラ100とテレビ200とが接続状態であるか否かの判定は、<Polling Message>コマンド以外のCECコマンドを用いて行うこともできる。
また、HDMIケーブル300は、High−Definition Multimedia Interface Specification Version1.3a規格に準拠した接続ケーブルとして説明を行った。しかし、HDMIケーブル300は、High−Definition Multimedia Interface Specification Version1.4a規格に準拠した接続ケーブルであっても良い。
また、実施例1では、通信装置100及び外部装置200がHDMI規格に準拠している例を説明したが、実施例1はこれに限るものではない。例えば、実施例1は、HDMI規格をHDMI規格以外の通信インターフェース規格に置き換えて実現することもできる。HDMI規格以外の通信インターフェース規格には、例えば、USB(Universal Serial Bus)規格、DiiVA(Digital Interactive for Video and Audio)規格がある。
[他の実施例]
本発明に係る通信装置は、実施例1で説明した通信装置100に限定されるものではない。本発明に係る通信装置は、例えば、複数の装置から構成されるシステムにより実現することも可能である。
また、実施例1において説明した構成及び機能は、コンピュータで実行可能なコンピュータプログラムによって実現することもできる。この場合、当該コンピュータプログラムは、コンピュータ読取可能な記録媒体から当該コンピュータによって読み出され、当該コンピュータで実行される。またこの場合、当該コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。なお、当該コンピュータプログラムは、通信インターフェースを介して外部装置から当該コンピュータに提供され、当該コンピュータで実行されるようにしてもよい。