以下、本発明の実施形態は図面を参照しながら説明する。ただし、以下の実施形態はあくまでも一例であって、本発明は以下の実施形態に限定されるものではない。
[実施形態1]
図1は、本発明の実施形態1に係る通信システムの一例を示す図である。図2は、本発明の実施形態1に係る通信装置100、外部表示装置200及び送信装置400の構成の一例を示すブロック図である。
実施形態1に係る通信システムは、図1及び図2に示すように、通信装置100、外部表示装置200、送信装置400、接続ケーブル300及び接続ケーブル500を有する。通信装置100と外部表示装置200とは、接続ケーブル300を介して接続され、外部表示装置200と送信装置400とは、接続ケーブル500を介して接続されている。また、通信装置100と送信装置400とは、接続ケーブル300、外部表示装置200及び接続ケーブル500を介して接続されている。
実施形態1において、通信装置100、外部表示装置200、送信装置400、接続ケーブル300及び接続ケーブル500は、HDMI規格に準拠するものとする。したがって、通信装置100及び送信装置400は、HDMI規格におけるソース(Source)として機能する。外部表示装置200は、HDMI規格におけるシンク(Sink)として機能する。接続ケーブル300及び接続ケーブル500は、HDMI規格におけるHDMIケーブルとして機能する。通信装置100と外部表示装置200とは、接続ケーブル300を介して映像データの伝送及び制御コマンドの送受信を行う。送信装置400と外部表示装置200とは、接続ケーブル500を介して映像データの伝送及び制御コマンドの送受信を行う。通信装置100と送信装置400とは、接続ケーブル300、外部表示装置200及び接続ケーブル500を介して制御コマンドの送受信を行う。
また、実施形態1において、通信装置100、外部表示装置200及び送信装置400は、HDMI規格に含まれるCEC(Consumer Electronics Control)規格に準拠するものとする。通信装置100と外部表示装置200との間で双方向に送信される制御コマンドは、CEC規格に準拠する。また、外部表示装置200と送信装置400との間で双方向に送信される制御コマンドは、CEC規格に準拠する。また、通信装置100と送信装置400との間で双方向に送信される制御コマンドは、CEC規格に準拠する。以下、CEC規格に準拠した制御コマンドを「CECコマンド」と呼ぶ。
実施形態1では、通信装置100の一例としてビデオカメラを用いる。なお、通信装置100は、接続ケーブル300を介して映像(video)データ、音声(audio)データ及び補助データ等を外部表示装置200に送信する送信装置であれば、スチルカメラ、レコーダ等の装置であってもよい。
実施形態1では、外部表示装置200の一例としてテレビジョン受像機(以下、「テレビ」と呼ぶ)を用いる。なお、外部表示装置200は、通信装置100、または送信装置400から受信した映像データを表示器に表示するデータ受信装置であれば、プロジェクタやパーソナルコンピュータ等の装置であってもよい。
実施形態1では、送信装置400の一例としてハードディスクドライブ(以下、「HDD」と呼ぶ)を用いる。なお、送信装置400は、接続ケーブル500を介して映像データを外部表示装置200に送信する送信装置であれば、DVDプレイヤ、レコーダ等の装置であってもよい。
実施形態1では、接続ケーブル300の一例として「HDMIケーブル300」、接続ケーブル500の一例として「HDMIケーブル500」を用いる。
なお、実施例1におけるHDMI規格は、Version 1.3aであっても、Version 1.4a以降の規格であっても良い。
<HDMIケーブル300>
次に、図2を参照して、HDMIケーブル300を説明する。
HDMIケーブル300は、パワーライン、HPD(Hot Plug Detect)ライン301、DDC(Display Data Channel)ライン302を有する。HDMIケーブル300は、さらに、TMDS(Transition Minimized Differential Singnaling)ライン303及びCECライン304を有する。
パワーラインは、ビデオカメラ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コマンドを双方向に伝送するための伝送ラインである。
<HDMIケーブル500>
次に、図2を参照して、HDMIケーブル500を説明する。HDMIケーブル500では、HDMIケーブル300と共通する箇所の説明については、説明を省略する。
HDMIケーブル500は、パワーライン、HPDライン501、DDCライン502、TMDSライン503及びCECライン504を有する。
パワーラインは、HDD400からテレビ200に+5Vを供給するための電力供給ラインである。
HPDライン501は、Hレベル、またはLレベルのHPD信号をテレビ200からHDD400に伝送するための伝送ラインである。
DDCライン502は、テレビ200のEDIDをテレビ200からHDD400に伝送するための伝送ラインである。
TMDSライン503は、HDD400からテレビ200に映像データ、音声データ及び補助データを伝送するための伝送ラインである。
CECライン504は、HDD400とテレビ200との間で、CECコマンドを双方向に伝送するための伝送ラインである。
<テレビ200>
次に、図2を参照して、テレビ200の構成の一例を説明する。
テレビ200は、図2に示すように、CPU201(Central Processing Unit)、チューナ部202、通信部203、表示部204、操作部205、メモリ206、電源供給部207及びリモコン信号受信部208を有する。さらに、テレビ200は、リモコン209を有する。
CPU201は、メモリ206に記録されているコンピュータプログラムに従ってテレビ200全体の動作を制御する。また、CPU201は、操作部205からの入力信号により、ビデオカメラ100、またはHDD400を制御するためのCECコマンドを生成する。また、CPU201は、リモコン信号受信部208からの入力信号により、ビデオカメラ100、またはHDD400を制御するためのCECコマンドを生成する。
チューナ部202は、ユーザによって選択されたテレビジョンチャンネルのテレビジョン放送を受信する。
通信部203は、HDMI端子203a、HDMI端子203b、第1のEDIDメモリ203c及び第2のEDIDメモリ203dを有する。
HDMI端子203aは、HDMIケーブル300を接続するための接続端子である。
HDMI端子203bは、HDMIケーブル500を接続するための接続端子である。
第1のEDIDメモリ203cは、HDMI端子203aに対応したテレビ200のEDIDを記録するメモリである。以下、HDMI端子203aに対応したテレビ200のEDIDを「第1のEDID」と呼ぶ。第1のEDIDには、テレビ200の識別情報、テレビ200の画像表示能力に関する情報、テレビ200の音声処理能力に関する情報及びHDMI端子203aを識別するための物理アドレスなどが含まれる。第1のEDIDに含まれる物理アドレスは、実施形態1に係る通信システムにおいて、HDMI端子203aを他のHDMI端子と識別するための情報である。実施形態1では、第1のEDIDに含まれる物理アドレスを「1.0.0.0」として説明を行う。
ユーザによって操作部205が操作され、第1のEDIDに含まれる情報が変更された場合、CPU201は、テレビ200の画像表示能力に関する情報、テレビ200の音声処理能力に関する情報及びHDMI端子203aの物理アドレスを書き換える。CPU201は、第1のEDIDに含まれる情報を書き換えた後、書き換えた情報を第1のEDIDメモリ203cに記録し、第1のEDIDメモリ203cに記録される第1のEDIDに含まれる情報を更新する。
第2のEDIDメモリ203dは、HDMI端子203bに対応したテレビ200のEDIDを記録するメモリである。以下、HDMI端子203bに対応したテレビ200のEDIDを「第2のEDID」と呼ぶ。第2のEDIDには、テレビ200の識別情報、テレビ200の画像表示能力に関する情報、テレビ200の音声処理能力に関する情報及びHDMI端子203bを識別するための物理アドレスなどが含まれる。第2のEDIDに含まれる物理アドレスは、実施形態1に係る通信システムにおいて、HDMI端子203bを他のHDMI端子と識別するための情報である。実施形態1では、第2のEDIDに含まれる物理アドレスを「2.0.0.0」として説明を行う。
ユーザによって操作部205が操作され、第2のEDIDに含まれる情報が変更された場合、CPU201は、第2のEDIDに含まれる情報を書き換える。CPU201は、第2のEDIDに含まれる情報を書き換えた後、書き換えた情報を第2のEDIDメモリ203dに記録し、第2のEDIDメモリ203dに記録される第2のEDIDに含まれる情報を更新する。
通信部203は、ビデオカメラ100から送信された映像データ、音声データ及び補助データをTMDSライン303及びHDMI端子203aを介して受信する。また、通信部203は、HDD400から送信された映像データ、音声データ及び補助データをTMDSライン503及びHDMI端子203bを介して受信する。
通信部203は、ビデオカメラ100から送信されたCECコマンドをCECライン304及びHDMI端子203aを介して受信する。また、CPU201で生成されたビデオカメラ100を制御するためのCECコマンドをCECライン304及びHDMI端子203aを介してビデオカメラ100に送信する。
また、通信部203は、HDD400から送信されたCECコマンドをCECライン504及びHDMI端子203bを介して受信する。また、CPU201で生成されたHDD400を制御するためのCECコマンドをCECライン504及びHDMI端子203bを介してHDD400に送信する。
通信部203は、ビデオカメラ100、またはHDD400から受信したCECコマンドをCPU201に供給する。CPU201は、通信部203から供給されたビデオカメラ100、またはHDD400から受信したCECコマンドに従ってテレビ200を制御する。
CPU201は、CEC規格で規定されているブロードキャストメッセージであるCECコマンド生成した場合、ブロードキャストメッセージであるCECコマンドをビデオカメラ100及びHDD400に送信するように通信部203を制御する。
また、CPU201は、通信部203がビデオカメラ100から受信したCECコマンドがブロードキャストメッセージである場合、ビデオカメラ100から受信したCECコマンドをHDD400にも送信するように通信部203を制御する。また、CPU201は、通信部203がHDD400から受信したCECコマンドがブロードキャストメッセージである場合、HDD400から受信したCECコマンドをビデオカメラ100にも送信するように通信部203を制御する。なお、ブロードキャストメッセージとは、通信システム内に存在する全てのHDMI規格に準拠した装置に送信されるようにCEC規格で規定されているCECコマンドである。
通信部203は、ビデオカメラ100がパワーライン及びHDMI端子203aを介してテレビ200に+5Vを供給しているか否かを判定する。通信部203は、ビデオカメラ100からパワーライン及びHDMI端子203aを介してテレビ200に+5Vが供給されている場合、第1のEDIDをビデオカメラ100に送信できるか否かを判定する。通信部203は、第1のEDIDをビデオカメラ100に送信できる場合、HレベルのHPD信号をHPDライン301及びHDMI端子203aを介してビデオカメラ100に送信する。また、通信部203は、ビデオカメラ100からテレビ200に+5Vが供給されていない場合、LレベルのHPD信号をHPDライン301及びHDMI端子203aを介してビデオカメラ100に送信する。また、CPU201が第1のEDIDに含まれる情報を書き換えている際も、通信部203は、LレベルのHPD信号をHPDライン301及びHDMI端子203aを介してビデオカメラ100に送信する。
また、通信部203は、HDD400がパワーライン及びHDMI端子203bを介してテレビ200に+5Vを供給しているか否かを判定する。HDD400からパワーライン及びHDMI端子203bを介してテレビ200に+5Vが供給されている場合、通信部203は、第2のEDIDをHDD400に送信できるか否かを判定する。通信部203は、第2のEDIDをHDD400に送信できる場合、HレベルのHPD信号をHPDライン501及びHDMI端子203bを介してHDD400に送信する。また、通信部203は、HDD400からテレビ200に+5Vが供給されていない場合にも、LレベルのHPD信号をHPDライン501及びHDMI端子203bを介してHDD400に送信する。また、CPU201が第2のEDIDに含まれる情報を書き換えている際も、通信部203は、LレベルのHPD信号をHPDライン501及びHDMI端子203bを介してHDD400に送信する。
通信部203は、ビデオカメラ100からの要求に応じて、第1のEDIDメモリ203cから第1のEDIDを読み出して、DDCライン302及びHDMI端子203aを介してビデオカメラ100に送信する。また、通信部203は、HDD400からの要求に応じて、第2のEDIDメモリ203dから第2のEDIDを読み出して、DDCライン502及びHDMI端子203bを介してHDD400に送信する。
表示部204は、液晶ディスプレイ等の表示器により構成される。表示部204は、チューナ部202が受信したテレビジョン放送、通信部203がビデオカメラ100から受信した映像データ及び通信部203がHDD400から受信した映像データのいずれか1つが供給された場合、供給された映像データを表示する。
操作部205は、テレビ200を操作するためのユーザインターフェースを提供する。操作部205がユーザによって操作された場合、操作部205は、入力されたユーザの指示に応じた入力信号をCPU201に出力し、CPU201は入力信号に応じてテレビ200を制御する。また、操作部205はテレビ200を操作するための複数のボタンを有する。操作部205に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。操作部205はテレビ200を操作するための電源ボタン、外部入力ボタン等を有する。
電源ボタンは、テレビ200を電源オン(ON)状態、スタンバイ状態及び電源オフ(OFF)状態のいずれか一つの状態に変更することをCPU201に指示するためのボタンである。電源オン状態とは、CPU201がテレビ200全体に必要な電力を供給するように電源供給部207を制御している状態である。スタンバイ状態とは、CPU201がテレビ200の一部に電力供給を行うように電源供給部207を制御している状態である。また、電源オフ状態とは、CPU201がテレビ200の全体への電力の供給を停止させるように電源供給部207を制御している状態である。
外部入力ボタンは、HDMI端子203aを介して受信した映像データを表示部204に表示するか、HDMI端子203bを介して受信した映像データを表示部204に表示するかを選択するためのボタンである。
外部入力ボタンによって、HDMI端子203aを介して受信した映像データを表示部204に表示することが選択された場合、CPU201は、HDMI端子203aを選択する。この場合、CPU201は、HDMI端子203aを介して通信部203が受信した映像データを表示部204に供給し、HDMI端子203aを介して通信部203が受信した音声データを不図示のスピーカ部に供給するように通信部203を制御する。この場合、さらに、CPU201は、HDMI端子203aを介して通信部203が受信した補助データをCPU201に供給するように通信部203を制御する。
これによって、CPU201がHDMI端子203aを選択している場合、表示部204は、HDMI端子203aから通信部203が受信した映像データを表示し、スピーカ部は、HDMI端子203aから通信部203が受信した音声データを出力する。さらに、CPU201がHDMI端子203aを選択している場合、CPU201は、リモコン209によって遠隔制御する操作対象を、HDMI端子203aを介して接続されているビデオカメラ100に設定する。
外部入力ボタンによって、HDMI端子203bを介して受信した映像データを表示部204に表示することが選択された場合、CPU201は、HDMI端子203bを選択する。この場合、CPU201は、HDMI端子203bを介して通信部203が受信した映像データを表示部204に供給し、HDMI端子203bを介して通信部203が受信した音声データを不図示のスピーカ部に供給するように通信部203を制御する。この場合、さらに、CPU201は、HDMI端子203bを介して通信部203が受信した補助データをCPU201に供給するように通信部203を制御する。
これによって、CPU201がHDMI端子203bを選択している場合、表示部204は、HDMI端子203bから通信部203が受信した映像データを表示し、スピーカ部は、HDMI端子203bから通信部203が受信した音声データを出力する。さらに、CPU201がHDMI端子203bを選択している場合、CPU201は、リモコン209によって遠隔制御する操作対象を、HDMI端子203bを介して接続されているHDD400に設定する。
電源供給部207は、AC電源等からテレビ200の各部に必要な電力を供給する。
リモコン信号受信部208は、リモコン209から送信されたリモコン信号を受信した場合、受信したリモコン信号を入力信号として、CPU201に供給する。これにより、ユーザからの指示は、入力信号として、リモコン209及びリモコン信号受信部208を介してCPU201に入力される。CPU201は、リモコン信号受信部208からのリモコン信号に対応するCECコマンドを生成し、生成したCECコマンドを通信部203に供給する。このとき、CPU201がHDMI端子203aを選択している場合、通信部203に供給されたCECコマンドは、CECライン304及びHDMI端子203aを介してビデオカメラ100に伝送される。また、CPU201がHDMI端子203bを選択している場合、通信部203に供給されたCECコマンドは、CECライン504及びHDMI端子203bを介してHDD400に伝送される。
リモコン209(remote control)は、ビデオカメラ100、テレビ200及びHDD400を操作するためのユーザインターフェースを提供する。また、リモコン209は、ビデオカメラ100を操作するための複数のボタンと、テレビ200を操作するための複数のボタンと、HDD400を操作するための複数のボタンとを有する。リモコン209内の各ボタンは、スイッチ、タッチパネル等により構成される。
また、リモコン209は、テレビ200と無線により通信することができるが、ビデオカメラ100、またはHDD400と無線により通信することはできないように構成されている。
そのため、ユーザは、リモコン209を用いて、テレビ200を直接的に遠隔制御することができる。また、ユーザは、リモコン209を用いて、ビデオカメラ100、またはHDD400を間接的に遠隔制御することができる。
ユーザは、外部入力ボタンによって、HDMI端子203aを介して受信した映像データを表示部204に表示するように選択した場合、リモコン209を用いてビデオカメラ100をCECコマンドによって遠隔制御することができる。しかし、この場合、ユーザはリモコン209を用いて、HDD400をCECコマンドによって遠隔制御することはできない。
また、ユーザは、外部入力ボタンによって、HDMI端子203bを介して受信した映像データを表示部204に表示するように選択した場合、リモコン209を用いてHDD400をCECコマンドによって遠隔制御することができる。しかし、この場合、ユーザはリモコン209を用いて、ビデオカメラ100をCECコマンドによって遠隔制御することはできない。
なお、通信部203が有するHDMI端子は、HDMI端子203a及びHDMI端子203bに限られない。通信部203が3つ以上のHDMI端子を有するものであってもよい。また、HDMI端子203aの物理アドレスは、[1.0.0.0]に限られない。また、HDMI端子203bの物理アドレスは、[2.0.0.0]に限られない。
<ビデオカメラ100>
次に、図2を参照して、ビデオカメラ100の構成の一例を説明する。
ビデオカメラ100は、図2に示すように、CPU101、メモリ102、通信部103、撮像部104、記録部105、表示部106、操作部107及び電源供給部108を有する。以下、ビデオカメラ100について説明する。
CPU101は、メモリ102に記録されているコンピュータプログラムに従って、ビデオカメラ100全体の動作を制御する。CPU101は、テレビ200から取得したテレビ200のEDIDを解析することにより、テレビ200の画像表示能力及び音声処理能力などを知ることができる。また、CPU101はテレビ200の画像表示能力及び音声処理能力に基づいて、テレビ200に適した映像データ及び音声データを生成することができる。CPU101は、ビデオカメラ100の各部から供給されたデータを解析することによってビデオカメラ100全体を制御する。また、CPU101は、操作部107からの入力信号により、テレビ200、またはHDD400を制御するためのCECコマンドを生成する。
メモリ102は、CPU101のワークエリアとして機能する。また、メモリ102には、各部の動作に対するフラグの設定等が記録される。また、メモリ102には、テレビ200から取得した情報及びビデオカメラ100に関する情報が記録されている。
また、メモリ102にはCPU101によって行われた演算や解析の結果等も記録される。なお、CPU101のワークエリアは、メモリ102に限られるものではなく、ハードディスク装置等の外部記録装置等であってもよい。
通信部103は、HDMIケーブル300を接続するためのHDMI端子を有する。また、通信部103は、HDMI端子を介して、CECコマンドの送受信や、映像データ、音声データ及び補助データの送信を行う。通信部103は、第1の接続検出部103aと第2の接続検出部103bとデバイス情報取得部103cとデータ送信部103dとコマンド処理部103eとを有する。
第1の接続検出部103aは、テレビ200から送信されるHPD信号を、HPDライン301を介して受信することができる。第1の接続検出部103aは、HPDライン301を介してHレベルのHPD信号を受信した場合、HレベルのHPD信号を受信した旨をCPU101に通知する。また、同様に、第1の接続検出部103aは、HPDライン301を介してLレベルのHPD信号を受信した場合、LレベルのHPD信号を受信した旨をCPU101に通知する。また、第1の接続検出部103aは、HPD信号がHレベルからLレベルに変化した場合、またはHPD信号がLレベルからHレベルに変化した場合、HPD信号が変化した旨をCPU101に通知する。
第2の接続検出部103bは、テレビ200の存在を検出するために、TMDSライン303がテレビ200側の終端抵抗に接続されたか否かを継続的に検出することができる。TMDSライン303がテレビ200側の終端抵抗に接続されたか否かを検出するものの一例として、「Receiver Sense(以下、「Rxセンス」と呼ぶ)」と呼ばれる情報がある。Rxセンスには、TMDSライン303がテレビ200側の終端抵抗に接続されたことを示すHレベルのRxセンスと、TMDSライン303がテレビ200側の終端抵抗に接続されていないことを示すLレベルのRxセンスとがある。TMDSライン303がテレビ200側の終端抵抗に接続された場合、第2の接続検出部103bによってHレベルのRxセンスが検出される。また、TMDSライン303がテレビ200側の終端抵抗に接続されていない場合、第2の接続検出部103bによってLレベルのRxセンスが検出される。
TMDSライン303がテレビ200側の終端抵抗に接続されている状況とは、テレビ200が電源オン状態であり、かつ、テレビ200が、ビデオカメラ100のHDMI端子に対応するHDMI端子203aから受信した映像データを表示している状態である。
TMDSライン303がテレビ200側の終端抵抗に接続されていない状況は、テレビ200が電源オフ状態の場合である。また、TMDSライン303がテレビ200側の終端抵抗に接続されていない状況は、テレビ200がTMDSライン303及びビデオカメラ100のHDMI端子に対応するHDMI端子203aから受信した映像データ以外の映像データを表示する状態である。
第2の接続検出部103bは、検出したRxセンスがHレベルであるか、LレベルであるかをCPU101に通知する。また、第2の接続検出部103bは、RxセンスがHレベルからLレベルに変化した場合、またはRxセンスがLレベルからHレベルに変化した場合、Rxセンスが変化した旨をCPU101に通知する。
デバイス情報取得部103cは、第1の接続検出部103aによってHレベルのHPD信号が検出された場合、DDCライン302を介してテレビ200のEDIDをテレビ200に要求する。この場合、デバイス情報取得部103cは、テレビ200から送信される第1のEDIDをDDCライン302を介して取得する。デバイス情報取得部103cがDDCライン302を介して、テレビ200から第1のEDIDを受信した場合、デバイス情報取得部103cは、第1のEDIDをテレビ200から受信したと判定し、第1のEDIDを受信した旨をCPU101に通知する。テレビ200から受信した第1のEDIDは、デバイス情報取得部103cを介してCPU101に供給される。CPU101は、デバイス情報取得部103cから供給された第1のEDIDをメモリ102に記録する。
また、デバイス情報取得部103cは、第1の接続検出部103aによってLレベルのHPD信号が検出された場合、DDCライン302を介してテレビ200のEDIDをテレビ200に要求しない。
データ送信部103dはテレビ200の画像表示能力に適した映像データと、テレビ200の音声処理能力に適した音声データと、補助データとをTMDSライン303を介してテレビ200に送信する。
第1の接続検出部103aで検出されるHPD信号及び第2の接続検出部103bで検出されるRxセンスがHレベルの場合、データ送信部103dは、CPU101によって生成された映像データ及び音声データをテレビ200に送信できる状態になる。この場合、ビデオカメラ100は、第1のEDIDに応じてCPU101に生成された映像データ及び音声データをTMDSライン303を介してテレビ200に送信できる状態になる。以下、ビデオカメラ100が第1のEDIDに応じてCPU101に生成された映像データ及び音声データをTMDSライン303を介してテレビ200に送信できる状態を「アクティブ状態」と呼ぶ。
第1の接続検出部103aで検出されるHPD信号がLレベルの場合、データ送信部103dは、CPU101によって生成された映像データ及び音声データをテレビ200に送信できない。また、第2の接続検出部103bで検出されるRxセンスがLレベルの場合、データ送信部103dは、CPU101によって生成された映像データ及び音声データをテレビ200に送信できない。データ送信部103dがCPU101によって生成された映像データ及び音声データをテレビ200に送信できない場合、ビデオカメラ100は、アクティブ状態にならない。
ビデオカメラ100の動作モードが撮影モードである場合、データ送信部103dは、撮像部104で生成された映像データと、不図示のマイクロフォン部で生成された音声データとをTMDSライン303を介してテレビ200に送信する。この場合、CPU101で生成された補助データも、映像データ及び音声データとともにTMDSライン303を介してテレビ200に送信される。ビデオカメラ100の動作モードが再生モードである場合、データ送信部103dは、記録部105が記録媒体105aから再生した映像データ及び音声データをTMDSライン303を介してテレビ200に送信する。この場合、CPU101で生成された補助データも、映像データ及び音声データとともにTMDSライン303を介してテレビ200に送信される。
コマンド処理部103eは、テレビ200から送信されたCECコマンドを、CECライン304を介して受信する。テレビ200から受信したCECコマンドは、コマンド処理部103eからCPU101に供給される。CPU101は、テレビ200から受信したCECコマンドに応じてビデオカメラ100を制御する。
また、コマンド処理部103eは、テレビ200、またはHDD400を制御するためのCECコマンドを、CECライン304を介してテレビ200に送信する。テレビ200、またはHDD400を制御するためのCECコマンドは、CPU101で生成され、CPU101からコマンド処理部103eに供給される。
また、ビデオカメラ100がテレビ200にCECコマンドを送信した場合に、テレビ200がビデオカメラ100からのCECコマンドを受信できたとき、テレビ200はCECコマンドに対する応答信号をビデオカメラ100に送信する。そのため、コマンド処理部103eは、CECコマンドに対する応答信号をテレビ200から受信することができる。CECコマンドに対する応答信号には、肯定の応答を示すACK(Acknowledge)信号(肯定応答信号)と否定の応答を示すNACK(Negative Acknowledge)信号(否定応答信号)とがある。
撮像部104は、ビデオカメラ100の動作モードが撮影モードである場合は、被写体を撮影し、当該被写体の光学像から映像データを生成する。撮像部104で生成される映像データは、動画、静止画のいずれでもよい。撮像部104で生成された映像データは、撮像部104からデータ送信部103d、記録部105及び表示部106に供給される。テレビ200から第1のEDIDを受信した場合、撮像部104は、撮像部104からデータ送信部103dに供給される映像データを、テレビ200の画像表示能力に適した映像データに変換する。撮像部104から通信部103に供給された映像データは、TMDSライン303を介してテレビ200に送信される。撮像部104から記録部105に供給された映像データは、記録媒体105aに記録される。撮像部104から表示部106に供給された映像データは、表示部106に表示される。
撮像部104が映像データを生成する場合、不図示のマイクロフォン部は音声データを生成する。マイクロフォン部で生成された音声データは、マイクロフォン部からデータ送信部103d、記録部105及び不図示のスピーカ部に供給される。テレビ200から第1のEDIDを受信した場合、マイクロフォン部は、マイクロフォン部からデータ送信部103dに供給される音声データを、テレビ200の音声処理能力に適した音声データに変換する。マイクロフォン部からデータ送信部103dに供給された音声データは、TMDSライン303を介してテレビ200に送信される。マイクロフォン部から記録部105に供給された音声データは、記録媒体105aに記録される。マイクロフォン部から表示部106に供給された音声データは、スピーカ部から出力される。
撮像部104は、ビデオカメラ100の動作モードが再生モードである場合は、被写体の撮影を停止し、当該被写体の光学像からの映像データの生成を停止する。
記録部105は、ビデオカメラ100の動作モードが撮影モードである場合は、撮像部104で生成された映像データと、マイクロフォン部で生成された音声データとを記録媒体105aに記録することができる。撮像部104及びマイクロフォン部で生成された映像データ及び音声データの記録媒体105aへの記録は、操作部107を介して入力されたユーザの指示に従ってCPU101が制御する。CPU101は、撮像部104及びマイクロフォン部で生成された映像データ及び音声データの記録媒体105aへの記録を、テレビ200から受信したCECコマンドに従って制御することもできる。
記録部105は、ビデオカメラ100の動作モードが再生モードである場合は、ユーザによって選択された映像データ及び音声データを記録媒体105aから再生することができる。記録媒体105aから再生される映像データ及び音声データの選択は、操作部107を介して入力されたユーザの指示に従ってCPU101が制御する。CPU101は、記録媒体105aから再生される映像データ及び音声データの選択を、テレビ200から受信したCECコマンドに従って制御することもできる。
記録部105が記録媒体105aから再生した映像データは、記録部105からデータ送信部103d及び表示部106に供給される。テレビ200から第1のEDIDを受信できた場合、記録部105は、記録部105からデータ送信部103dに供給される映像データを、第1のEDIDに応じてテレビ200の画像表示能力に適した映像データに変換する。記録部105からデータ送信部103dに供給された映像データは、TMDSライン303を介してテレビ200に送信される。記録部105から表示部106に供給された映像データは、表示部106に表示される。記録部105が記録媒体105aから再生した音声データは、記録部105からデータ送信部103d及び不図示のスピーカ部に供給される。テレビ200から第1のEDIDを受信できた場合、記録部105は、記録部105からデータ送信部103dに供給される音声データを、第1のEDIDに応じてテレビ200の音声処理能力に適した音声データに変換する。記録部105からデータ送信部103dに供給された音声データは、TMDSライン303を介してテレビ200に送信される。記録部105からスピーカ部に供給された音声データは、スピーカ部から出力される。
記録媒体105aは、メモリカード、SDカードなどの記録媒体である。記録媒体105aは、ビデオカメラ100に内蔵された記録媒体であっても、ビデオカメラ100から取り外し可能な記録媒体であってもよい。
表示部106は、液晶ディスプレイなどの表示器により構成される。ビデオカメラ100の動作モードが撮影モードである場合、表示部106は、撮像部104で生成された映像データを表示する。ビデオカメラ100の動作モードが再生モードである場合、表示部106は、記録部105が記録媒体105aから再生した映像データを表示する。
操作部107は、ビデオカメラ100を操作するためのユーザインターフェースを提供する。操作部107は、ビデオカメラ100を操作するための複数のボタンを有する。操作部107に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。CPU101は、操作部107を介して入力されたユーザの指示に対応した入力信号に従ってビデオカメラ100を制御することができる。
<HDD400>
次に、図2を参照して、HDD400の構成の一例を説明する。
HDD400は、図2に示すように、CPU401、メモリ402、通信部403、記録媒体404、記録部405、表示部406及び操作部407を有する。以下、HDD400について説明する。
CPU401は、メモリ402に記録されているコンピュータプログラムに従って、HDD400全体の動作を制御する。また、CPU401は、操作部407からの入力信号により、テレビ200、またはビデオカメラ100を制御するためのCECコマンドを生成する。
メモリ402は、CPU401のワークエリアとして機能する。
通信部403は、HDMIケーブル500を接続するためのHDMI端子を有する。通信部403は、HDMI端子を介して、第2のEDIDの取得を行う。また、通信部403は、テレビ200からCECライン504を介してCECコマンドを受信したり、テレビ200にCECライン504を介してCECコマンドを送信したりする。また、通信部403は、映像データ、音声データ及び補助データの送信を行う。通信部403は、接続検出部403aとデバイス情報取得部403bとデータ送信部403cとコマンド処理部403dとを有する。
接続検出部403aは、テレビ200から送信されるHPD信号を、HPDライン501を介して受信する。
デバイス情報取得部403bは、接続検出部403aによってHレベルのHPD信号が検出された場合、DDCライン502を介して、テレビ200にテレビ200のEDIDを要求し、テレビ200から第2のEDIDを取得する。デバイス情報取得部403bは、第2のEDIDを受信した場合、第2のEDIDをCPU401に供給する。CPU401は、第2のEDIDを解析し、第2のEDIDの解析結果から物理アドレス[2.0.0.0]を取得し、これを「HDD400の物理アドレス」としてメモリ402に記録する。
データ送信部403cは、第2のEDIDに応じて生成された映像データ、音声データ、及び補助データを、TMDSライン503を介してテレビ200に送信する。
コマンド処理部403dは、テレビ200から送信されたCECコマンドを、CECライン504を介して受信し、テレビ200、またはビデオカメラ100を制御するためのCECコマンドを、CECライン504を介してテレビ200に送信する。
記録媒体404は、映像データ及び音声データを記録する記録媒体である。記録媒体404は、HDD400に内蔵された記録媒体であっても、HDD400から取り外し可能な記録媒体であってもよい。
記録部405は、ユーザによって選択された映像データ及び音声データを記録媒体404から読み出し、映像データ及び音声データを再生する。記録媒体404から再生される映像データ及び音声データの選択は、操作部407を介して入力されたユーザの指示に従ってCPU401が制御する。
記録部405が記録媒体404から再生した映像データは、記録部405からデータ送信部403cに供給される。テレビ200から第2のEDIDを受信した場合、記録部405は、記録部405からデータ送信部403cに供給される映像データ等を、第2のEDIDに応じてテレビ200の表示フォーマットに適した映像データに変換する。記録部105からデータ送信部403cに供給された映像データは、TMDSライン503を介してテレビ200に送信される。
表示部406は、液晶ディスプレイなどの表示器により構成される。表示部406は、HDD400の状態を文字情報等によって表示する。
操作部407は、HDD400を操作するためのユーザインターフェースを提供する。操作部107は、HDD400を操作するための複数のボタンを有する。CPU401は、操作部407を介して入力されたユーザの指示に対応する入力信号に従ってHDD400を制御する。
<第1の物理アドレス取得処理>
次に、図3を参照して、実施形態1に係るビデオカメラ100で行われる第1の物理アドレス取得処理について説明する。
図3は、実施形態1に係るビデオカメラ100で行われる第1の物理アドレス取得処理の一例を説明するためのフローチャートである。
実施形態1では、第1の物理アドレス取得処理が、ビデオカメラ100がパワーラインを介して+5Vをテレビ200に供給しているときに行われる場合を説明する。また、実施形態1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って第1の物理アドレス取得処理を制御する場合を説明する。
ステップS301において、CPU101は、第1の接続検出部103aで検出されるHPD信号が変化したか否かを判定する。HPD信号が変化していない場合(ステップS301でNO)、本フローチャートは終了する。HPD信号が変化した場合(ステップS301でYES)、テレビ200から第1のEDIDを取得するため、HPD信号がLレベルからHレベルに変化したか否かを判定する。そこで、ステップS301でYESの場合、本フローチャートはステップS301からステップS302に進む。
ステップS302において、CPU101は、第1の接続検出部103aで検出されるHPD信号が、LレベルからHレベルに変化したか否かを判定する。HPD信号がHレベルからLレベルに変化した場合(ステップS302でNO)、CPU101は、ビデオカメラ100がテレビ200から第1のEDIDを取得できない状態であると判定する。この場合(ステップS302でNO)、本フローチャートは終了する。
HPD信号がLレベルからHレベルに変化した場合(ステップS302でYES)、CPU101は、ビデオカメラ100がテレビ200から第1のEDIDを取得できる状態であると判定する。この場合(ステップS302でYES)、CPU101は、テレビ200の画像表示能力に適した映像データの生成を行うため、テレビ200から第1のEDIDを取得する。そこで、ステップS302でYESの場合、本フローチャートはステップS302からステップS303に進む。
ステップS303において、デバイス情報取得部103cは、DDCライン302を介してテレビ200にテレビ200のEDIDを要求する。テレビ200がDDCライン302を介して第1のEDIDをビデオカメラ100に送信した場合、デバイス情報取得部103cは、第1のEDIDをDDCライン302を介して受信する。
デバイス情報取得部103cは、第1のEDIDを受信した旨をCPU101に通知するとともに、受信した第1のEDIDをCPU101に供給する。CPU101がデバイス情報取得部103cから供給された第1のEDIDをメモリ102に記録した後、本フローチャートは、ステップS303からステップS304に進む。
ステップS304において、CPU101は、メモリ102に記録されている第1のEDIDを解析する。CPU101は、第1のEDIDを解析した結果、第1のEDIDに含まれている物理アドレスやテレビ200の識別情報、画像表示能力に関する情報及び音声処理能力に関する情報を取得する。
以下、デバイス情報取得部103cがテレビ200から取得した、テレビ200の第1のEDIDに含まれている物理アドレスを「第1の物理アドレス」と呼ぶ。CPU101は、第1のEDIDの解析結果から得られた第1の物理アドレス[1.0.0.0]を「ビデオカメラ100の物理アドレス」としてメモリ102に記録する。ビデオカメラ100の物理アドレスとは、ビデオカメラ100のHDMI端子が、テレビ200のHDMI端子203a及びHDMI端子203bのいずれか一つに対応していることを識別するための情報である。ビデオカメラ100がビデオカメラ100の物理アドレスをテレビ200に通知することによって、テレビ200はビデオカメラ100がHDMI端子203a及びHDMI端子203bのいずれか一つに対応していることを知ることができる。CPU101によって、第1の物理アドレス(ビデオカメラ100の物理アドレス)がメモリ102に記録された場合、本フローチャートは終了する。
<第2の物理アドレス取得処理>
次に、図4を参照して、実施形態1に係るビデオカメラ100で行われる第2の物理アドレス取得処理について説明する。
図4は、実施形態1に係るビデオカメラ100で行われる第2の物理アドレス取得処理の一例を説明するためのフローチャートである。
実施形態1では、第2の物理アドレス取得処理が、ビデオカメラ100がパワーラインを介して+5Vをテレビ200に供給しているときに行われる場合を説明する。また、実施形態1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って第2の物理アドレス取得処理を制御する場合を説明する。なお、第2の物理アドレスについては後述する。
ステップS401において、CPU101は<Polling Message>コマンドを生成する。<Polling Message>コマンドとは、テレビ200がCEC規格に対応していることを確認するためのCECコマンドである。CPU101は生成した<Polling Message>コマンドをコマンド処理部103eに出力する。CPU101は、<Polling Message>コマンドをテレビ200にCECライン304を介して送信するようにコマンド処理部103eを制御する。コマンド処理部103eが<Polling Message>コマンドをテレビ200にCECライン304を介して送信した場合、本フローチャートはステップS401からステップS402に進む。
ステップS402において、CPU101は、コマンド処理部103eが<Polling Message>コマンドに対するACK信号をテレビ200から受信したか否かを判定する。
ACK信号を受信しなかった場合(ステップS402でNO)、CPU101は、テレビ200がCEC規格に対応していないと判定する。また、NACK信号を受信した場合も同様に、CPU101は、テレビ200がCEC規格に対応していないと判定する。ステップS402でNOの場合、本フローチャートは終了する。
ACK信号を受信した場合(ステップS402でYES)、CPU101は、テレビ200がCEC規格に対応していると判定する。この場合(ステップS402でYES)、CPU101は、CECライン304を介してCECコマンドをテレビ200に送信したり、CECライン304を介してCECコマンドをテレビ200から受信するようにコマンド処理部103eを制御する。ステップS402でYESの場合、本フローチャートはステップS402からステップS403に進む。
ステップS403において、CPU101は、コマンド処理部103eがCECライン304を介してテレビ200から<Set Stream Path>コマンドを受信したか否かを判定する。
<Set Stream Path>コマンドは、テレビ200がHDMI端子203a及びHDMI端子203bのいずれか一つを選択したことを示すCECコマンドである。さらに、<Set Stream Path>コマンドは、HDMI端子203a及びHDMI端子203bのいずれか一つに対応する物理アドレスをオペランドとして含んでいる。このため、テレビ200は、<Set Stream Path>コマンドをビデオカメラ100に送信することによって、テレビ200がHDMI端子203a及びHDMI端子203bのいずれか一つを選択したことをビデオカメラ100に通知することができる。さらに、<Set Stream Path>コマンドは、映像データ及び<Set Stream Path>コマンドに対する返答コマンドをテレビ200に送信することを促すCECコマンドである。そのため、<Set Stream Path>コマンドに含まれる物理アドレスと一致する物理アドレスを有する装置は、映像データ及び<Set Stream Path>コマンドに対する返答コマンドをテレビ200に送信するように動作する。なお、<Set Stream Path>コマンドは、CEC規格に規定されているブロードキャストメッセージである。
テレビ200がHDMI端子203aを選択した場合、テレビ200は、HDMI端子203aに対応した物理アドレス[1.0.0.0]をオペランドとして含む<Set Stream Path>コマンドをビデオカメラ100及びHDD400に送信する。テレビ200がHDMI端子203bを選択した場合、テレビ200は、HDMI端子203bに対応した物理アドレス[2.0.0.0]をオペランドとして含む<Set Stream Path>コマンドをビデオカメラ100及びHDD400に送信する。
<Set Stream Path>コマンドを受信した場合、(ステップS403でYES)、CPU101は、<Set Stream Path>コマンドに含まれる物理アドレスを取得する。以下、コマンド処理部103eがテレビ200から受信したCECコマンドに含まれている物理アドレスを「第2の物理アドレス」と呼ぶ。
<Set Stream Path>コマンドを受信しなかった場合、(ステップS403でNO)、本フローチャートはステップS403からステップS409に進む。<Set Stream Path>コマンドを受信した場合(ステップS403でYES)、本フローチャートはステップS403からステップS404に進む。
ステップS404において、CPU101は、コマンド処理部103eが受信した<Set Stream Path>コマンドを解析する。CPU101は、<Set Stream Path>コマンドの解析結果から第2の物理アドレスを取得し、メモリ102に記録する。また、既にメモリ102に第2の物理アドレスが記録されている場合、CPU101は、新しく取得した第2の物理アドレスを上書きして、第2の物理アドレスを更新する。なお、CPU101は、ビデオカメラ100の物理アドレスとして記録された第1の物理アドレスと、第2の物理アドレスとを別々にメモリ102に記録する。
これは、映像データ及び<Set Stream Path>コマンドへの返答コマンドをテレビ200に送信するか否かを判定するために、CPU101が第2の物理アドレスを用いるためである。
第2の物理アドレスがメモリ102に記録された場合、CPU101は、第1の物理アドレスと第2の物理アドレスとを比較することで、映像データ及び<Set Stream Path>コマンドへの返答コマンドをテレビ200に送信するか否かを判定する。そこで、CPU101はメモリ102に第1の物理アドレスが記録されていることを確認する。第2の物理アドレスがメモリ102に記録された場合、本フローチャートはステップS404からステップS405に進む。
ステップS405において、CPU101は、メモリ102に第1の物理アドレス(ビデオカメラ100の物理アドレス)が記録されているか否かを判定する。メモリ102に第1の物理アドレスが記録されている場合(ステップS405でYES)、CPU101は、第1のEDID及び第1の物理アドレスがメモリ102に記録されていると判定する。CPU101は、メモリ102に第1の物理アドレスが記録されている場合、第1の物理アドレスと第2の物理アドレスを比較する。そこで、ステップS405でYESの場合、本フローチャートはステップS405からステップS406に進む。
メモリ102に第1の物理アドレスが記録されていない場合(ステップS405でNO)、CPU101は、第1のEDID及び第1の物理アドレスがメモリ102に記録されていないと判定する。この場合(ステップS405でNO)、CPU101は、メモリ102にビデオカメラ100の物理アドレスとして、第1の物理アドレスが記録されるまで、第1の物理アドレスと第2の物理アドレスとを比較することができない。そこで、CPU101は、メモリ102に第1のEDID及び第1の物理アドレスが記録されるまで、映像データ及び<Set Stream Path>コマンドへの返答コマンドをテレビ200に送信しないようにする。ステップS405でNOの場合、本フローチャートはステップS405からステップS405に戻る。
ステップS406において、CPU101は、メモリ102に記録されている第1の物理アドレス[1.0.0.0]と第2の物理アドレスとが一致するか否かを判定する。これは、第1の物理アドレス[1.0.0.0]と第2の物理アドレスとが一致するか否かによって、ビデオカメラ100に対応しているHDMI端子203aをテレビ200が選択しているか否かをCPU101が判定するためである。ビデオカメラ100に対応しているHDMI端子203aをテレビ200が選択しているか否かによって、CPU101は、映像データ及び<Set Stream Path>コマンドへの返答コマンドをテレビ200に送信するか否かを判定する。
第1の物理アドレス[1.0.0.0]と第2の物理アドレスとが一致しない場合(ステップS406でNO)、CPU101は、第2の物理アドレスは、HDMI端子203bに対応した物理アドレス[2.0.0.0]であると判定する。これにより、CPU101は、ビデオカメラ100に対応していないHDMI端子203bをテレビ200が選択している、つまり、ビデオカメラ100に対応するHDMI端子203aをテレビ200が選択していないと判定する。ステップS406でNOの場合、テレビ200がHDD400に対応するHDMI端子203bを選択しているので、CPU101は、映像データ及び<Set Stream Path>コマンドに対する返答コマンドをテレビ200に送信しないと判定する。そこで、ステップS406でNOの場合、CPU101は、映像データをテレビ200に送信しないようにデータ送信部103dを制御する。さらに、ステップS406でNOの場合、CPU101は、<Set Stream Path>コマンドに対する返答コマンドをテレビ200に送信しないようにコマンド処理部103eを制御する。この場合(ステップS406でNO)、本フローチャートはステップS406からステップS409に進む。
第1の物理アドレス[1.0.0.0]と第2の物理アドレスとが一致する場合(ステップS406でYes)、CPU101は、第2の物理アドレスは、HDMI端子203aに対応した物理アドレス[1.0.0.0]であると判定する。これにより、CPU101は、ビデオカメラ100に対応するHDMI端子203aをテレビ200が選択していると判定する。ステップS406でYESの場合、テレビ200がビデオカメラ100に対応するHDMI端子203aを選択しているので、CPU101は、映像データ及び<Set Stream Path>コマンドに対する返答コマンドをテレビ200に送信すると判定する。そこで、ステップS406でYesの場合、本フローチャートはステップS406からステップS407に進む。
ステップS407において、CPU101は、メモリ102に記録されている第1のEDIDに応じて映像データを生成する。CPU101は、生成した映像データをデータ送信部103dに出力し、テレビ200に送信するようにデータ送信部103dを制御する。この場合、本フローチャートはステップS407からステップS408に進む。
ステップS408において、CPU101は、コマンド処理部103eが受信した<Set Stream Path>コマンドに対する返答コマンドを生成する。
CPU101が生成する<Set Stream Path>コマンドに対する返答コマンドは、第1の物理アドレスをオペランドとして含む<Active Source>コマンドである。第1の物理アドレスを含む<Active Source>コマンドは、ビデオカメラ100が、第1の物理アドレス[1.0.0.0]によって示されるHDMI端子203aに対応していることをテレビ200に通知するためのCECコマンドである。なお、第1の物理アドレスを含む<Active Source>コマンドは、CEC規格に規定されているブロードキャストメッセージである。
さらに、CPU101は、第1の物理アドレスを含む<Active Source>コマンドをコマンド処理部103eに供給する。さらに、CPU101は、第1の物理アドレスを含む<Active Source>コマンドをテレビ200及びHDD400に送信するようにコマンド処理部103eを制御する。なお、第1の物理アドレスを含む<Active Source>コマンドは、ビデオカメラ100のデータ送信部103dがテレビ200の画像表示能力に適した映像データをテレビ200に送信する場合に、テレビ200及びHDD400に送信される。
このため、第1の物理アドレスを含む<Active Source>コマンドをビデオカメラ100から受信したテレビ200は、ビデオカメラ100がアクティブ状態であることを認識する。さらに、テレビ200は、アクティブ状態であるビデオカメラ100が、テレビ200が選択しているHDMI端子203aに対応していることを認識する。第1の物理アドレスを含む<Active Source>コマンドをビデオカメラ100から受信したテレビ200は、受信した第1の物理アドレスを含む<Active Source>コマンドをHDD400にも送信するように通信部203を制御する。また、第1の物理アドレスを含む<Active Source>コマンドを受信したHDD400は、ビデオカメラ100がアクティブ状態であること、及びテレビ200がビデオカメラ100から受信した映像データを表示していることを認識する。
コマンド処理部103eが第1の物理アドレスを含む<Active Source>コマンドをテレビ200に送信した場合、本フローチャートは終了する。
なお、以下、第1の物理アドレス(ビデオカメラ100の物理アドレス)を含む<Active Source>コマンドを「第2のCECコマンド」と呼ぶ。
なお、以下、第1の物理アドレス(ビデオカメラ100の物理アドレス)と一致する物理アドレスを含む<Set Stream Path>コマンドを「第3のCECコマンド」と呼ぶ。
なお、以下、第1の物理アドレス(ビデオカメラ100の物理アドレス)と一致しない物理アドレスを含む<Set Stream Path>コマンドを「第4のCECコマンド」と呼ぶ。
ステップS409において、CPU101は、コマンド処理部103eが<Active Source>コマンドをテレビ200からCECライン304を介して受信したか否かを判定する。<Active Source>コマンドを受信しなかった場合(ステップS409でNO)、CPU101は、テレビ200がHDD400の物理アドレスを含む<Active Source>コマンドをHDD400から受信していないと判定する。ステップS409でNOの場合、本フローチャートは終了する。<Active Source>コマンドを受信した場合(ステップS409でYES)、CPU101は、テレビ200がHDD400の物理アドレスを含む<Active Source>コマンドをHDD400から受信したと判定する。ステップS409でYESの場合、本フローチャートはステップS409からステップS410に進む。
ステップS410において、CPU101は、コマンド処理部103eが受信した<Active Source>コマンドを解析する。CPU101は、<Active Source>コマンドの解析結果から<Active Source>コマンドに含まれている物理アドレスを取得し、これの物理アドレスをメモリ102に記録する。<Active Source>コマンドの解析結果から取得した物理アドレスも、以下「第2の物理アドレス」と呼ぶ。CPU101は、メモリ102に<Set Stream Path>コマンドの解析結果から取得した物理アドレスが記録されている場合(ステップS404)、<Active Source>コマンドから新しく取得した第2の物理アドレスを上書きする。第2の物理アドレスが<Active Source>コマンドに含まれている物理アドレスに更新された場合、本フローチャートは終了する。
<表示処理>
次に、図5を参照して、実施形態1に係るテレビ200で行われる表示処理について説明する。
図5は、実施形態1に係るテレビ200で行われる表示処理の一例を説明するためのフローチャートである。表示処理とは、テレビ200が、ビデオカメラ100から受信した映像データ、またはHDD400から受信した映像データを表示部204に表示させるために行う処理である。なお、図5を参照して説明する表示処理は、CPU201がメモリ206に記録されているコンピュータプログラムを実行することによって制御される。
実施形態1では、表示処理が、ビデオカメラ100及びHDD400がCEC規格に対応していることが確認されているときに行われる場合を説明する。また、実施形態1では、CPU201が、メモリ206に格納されているコンピュータプログラムに従って表示処理を制御する場合を説明する。
ステップS501において、CPU201は、テレビ200が電源オフ状態であるか否かを判定する。テレビ200が電源オフ状態である場合(ステップS501でYES)、本フローチャートはステップS501からステップS501に戻る。テレビ200が電源オフ状態でない場合(ステップS501でNO)、本フローチャートはステップS501からステップS502に進む。
ステップS502において、CPU201は、テレビ200がスタンバイ状態であるか否かを判定する。テレビ200がスタンバイ状態である場合(ステップS502でYES)、本フローチャートはステップS502からステップS501に戻る。テレビ200がスタンバイ状態でない場合、CPU201は、テレビ200が電源オン状態であると判定する。この場合(ステップS502でNO)、本フローチャートはステップS502からステップS503に進む。なお、テレビ200は、電源オフ状態から電源オン状態に変化するまでの間、スタンバイ状態になる。また、テレビ200が電源オン状態である場合に、一定の時間、操作部205、またはリモコン209からの入力信号がCPU201に入力されなかったとき、テレビ200は電源オン状態からスタンバイ状態になる。なお、スタンバイ状態とは、例えば、テレビ200の表示部204に電源供給部207からの電力が供給されていない状態である。
ステップS503において、CPU201は、<Request Active Source>コマンドを生成する。さらに、CPU201は、生成した<Request Active Source>コマンドを通信部203に供給し、<Request Active Source>コマンドをビデオカメラ100及びHDD400に送信するように通信部203を制御する。
<Request Active Source>コマンドは、ビデオカメラ100が映像データをテレビ200に送信できる状態か、HDD400が映像データをテレビ200に送信できる状態かを確認するためのCECコマンドである。なお、<Request Active Source>コマンドは、CEC規格に規定されているブロードキャストメッセージである。以下、<Request Active Source>コマンドを「第1のCECコマンド」と呼ぶ。
通信部203が第1のCECコマンドをビデオカメラ100及びHDD400に送信した場合、本フローチャートはステップS503からステップS504に進む。
ステップS504において、CPU201は、通信部203が、第1のCECコマンドに対する返答コマンドとして<Active Source>コマンドを受信したか否かを判定する。
これは、テレビ200から第1のCECコマンドを受信したビデオカメラ100は、アクティブ状態である場合、受信した第1のCECコマンドに対して、第2のCECコマンドをテレビ200に送信するからである。
また、テレビ200から第1のCECコマンドを受信したHDD400は、第1のCECコマンドに対して、HDD400の物理アドレスをオペランドとして含む<Active Source>コマンドをテレビ200に送信する場合があるからである。なお、テレビ200から第1のCECコマンドを受信したHDD400は、映像データをテレビ200に送信できる場合に、HDD400の物理アドレスをオペランドとして含む<Active Source>コマンドをテレビ200に送信する。
通信部203が<Active Source>コマンドを受信していない場合(ステップS504でNO)、本フローチャートはステップS504からステップS504に戻る。
<Active Source>コマンドを受信した場合(ステップS504でYES)、<Active Source>コマンドを送信してきた装置以外の装置にも送信するように通信部203を制御する。この場合(ステップS504でYES)、本フローチャートはステップS504からステップS505に進む。
ステップS505において、CPU201は、通信部203が受信した<Active Source>コマンドを解析する。CPU201は、<Active Source>コマンドの解析結果から、<Active Source>コマンドに含まれている物理アドレスを取得し、メモリ206に記録する。なお、以下、通信部203が受信した<Active Source>コマンドから取得された物理アドレスを「第3の物理アドレス」と呼ぶ。
第3の物理アドレスがメモリ102に記録された場合、CPU201は第3の物理アドレスに応じて、HDMI端子203a及びHDMI端子203bのいずれか一つを選択する。そこで、第3の物理アドレスがメモリ102に記録された場合、本フローチャートはステップS505からステップS506に進む。
ステップS506において、CPU201は、第3の物理アドレスと、HDMI端子203aに対応する物理アドレス[1.0.0.0]とが一致するか否かを判定する。
第3の物理アドレスとHDMI端子203aに対応する物理アドレス[1.0.0.0]とが一致しない場合(ステップS506でNO)、CPU201は、第3の物理アドレスが[1.0.0.0]でないと判定する。ステップS506でNOの場合、CPU201は、本フローチャートはステップS506からステップS509に進む。
第3の物理アドレスとHDMI端子203aに対応する物理アドレス[1.0.0.0]とが一致する場合(ステップS506でYES)、CPU201は、第3の物理アドレスが[1.0.0.0]であると判定する。
ステップS506でYESの場合、CPU201は、第3の物理アドレス[1.0.0.0]に応じてHDMI端子203aを選択するために、本フローチャートはステップS506からステップS507に進む。
ステップS507において、CPU201は、HDMI端子203aを選択する。さらに、CPU201は、HDMI端子203aを介して受信した映像データを表示部204に供給するように通信部203を制御し、HDMI端子203aを介して受信した音声データをスピーカ部に供給するように通信部203を制御する。さらに、CPU201は、HDMI端子203aを介して受信した補助データをCPU201に供給するように通信部203を制御する。この場合、CPU201は、HDMI端子203bを介して受信した映像データを表示部204に供給しないように通信部203を制御し、HDMI端子203bを介して受信した音声データをスピーカ部に供給しないように通信部203を制御する。さらに、CPU201は、HDMI端子203bを介して受信した補助データをCPU201に供給しないように通信部203を制御する。この場合、本フローチャートはステップS507からステップS508に進む。以下、ステップS507の処理を「表示制御」と呼ぶ。
ステップS508において、CPU201は、リモコンの操作対象を、HDMI端子203aにHDMIケーブル300を介して接続されているビデオカメラ100に設定するようにリモコン信号受信部208及びリモコン209を制御する。リモコン209の操作対象がビデオカメラ100に設定された場合、リモコンからの入力信号に応じて、CPU201がCECコマンドを生成し、生成したCECコマンドをビデオカメラ100に送信するように通信部203を制御する。これによって、ビデオカメラ100は、リモコン209の操作に応じて生成されたCECコマンドによって遠隔制御される。この場合、本フローチャートは終了する。
ステップS509において、CPU201は、第3の物理アドレスとHDMI端子203bに対応する物理アドレスとが一致するか否かを判定し、その判定結果に応じてHDMI端子203bを選択する。CPU201は、第3の物理アドレスとHDMI端子203bに対応する物理アドレスとが一致した場合、
HDMI端子203bを介して受信した映像データを表示部204に供給するように通信部203を制御する。また、この場合、CPU201は、HDMI端子203bを介して受信した音声データをスピーカ部に供給するように通信部203を制御する。さらに、CPU201は、HDMI端子203bを介して受信した補助データをCPU201に供給するように通信部203を制御する。この場合、CPU201は、HDMI端子203aを介して受信した映像データを表示部204に供給しないように通信部203を制御し、HDMI端子203aを介して受信した音声データをスピーカ部に供給しないように通信部203を制御する。さらに、CPU201は、HDMI端子203aを介して受信した補助データをCPU201に供給しないように通信部203を制御する。この場合、本フローチャートはステップS509からステップS510に進む。なお、CPU201は、第3の物理アドレスとHDMI端子203bに対応する物理アドレスとが一致しない場合、以後のステップS509及びステップS510の処理を実行しないようにし、本フローチャートは終了する。
ステップS510において、CPU201は、リモコンの操作対象を、HDMI端子203bにHDMIケーブル500を介して接続されているHDD400に設定するようにリモコン信号受信部208及びリモコン209を制御する。リモコン209の操作対象がHDD400に設定された場合、本フローチャートは終了する。
<物理アドレス判定処理>
次に、図6を参照して、実施形態1に係るビデオカメラ100で行われる物理アドレス判定処理について説明する。
図6は、実施形態1に係るビデオカメラ100で行われる物理アドレス判定処理の一例を説明するためのフローチャートである。
実施形態1では、物理アドレス判定処理が、ビデオカメラ100がパワーラインを介して+5Vをテレビ200に供給している場合であって、かつ、テレビ200が図5の表示処理を実行しているときに行われる場合を説明する。また、実施形態1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って物理アドレス判定処理を制御する場合を説明する。
ステップS601において、CPU101は<Polling Message>コマンドを生成し、<Polling Message>コマンドをテレビ200にCECライン304を介して送信するようにコマンド処理部103eを制御する。コマンド処理部103eが<Polling Message>コマンドをテレビ200に送信した場合、本フローチャートはステップS601からステップS602に進む。
ステップS602において、CPU101は、コマンド処理部103eが<Polling Message>コマンドに対するACK信号をテレビ200から受信したか否かを判定する。ACK信号を受信しなかった場合、(ステップS602でNO)、本フローチャートはステップS602からステップS601に戻る。また、NACK信号を受信したと判定された場合も同様に、本フローチャートはステップS602からステップS601に戻る。ACK信号を受信した場合(ステップS602でYES)、本フローチャートはステップS602からステップS603に進む。
ステップS603において、CPU101は、コマンド処理部103eが第1のCECコマンドをテレビ200からCECライン304を介して受信したか否かを判定する。以下、ステップS603の処理を「第1の判定」と呼ぶ。
第1のCECコマンドを受信しなかった場合(ステップS603でNO)、本フローチャートはステップS603からステップS601に戻る。
第1のCECコマンドを受信した場合(ステップS603でYES)、コマンド処理部103eが<Active Source>コマンドをテレビ200から受信したか否かを判定する処理を行う。そこで、ステップS603でYESの場合、本フローチャートはステップS603からステップS604に進む。なお、コマンド処理部103eが受信した第1のCECコマンドは、テレビ200がステップS503の処理を行うことによって、テレビ200からビデオカメラ100に送信されたものである。
ステップS604において、CPU101は、コマンド処理部103eが<Active Source>コマンドをテレビ200からCECライン304を介して受信したか否かを判定する。
<Active Source>コマンドを受信した場合(ステップS604でYES)、CPU101は、テレビ200がHDD400の物理アドレスを含む<Active Source>コマンドをHDD400から受信したと判定する。HDD400の物理アドレスを含む<Active Source>コマンドをHDD400から受信したテレビ200は、ステップS504でYESと判定し、ステップS505以後の処理を実行する。
ステップS604でYESの場合、CPU101は、テレビ200が既にHDMI端子203bを選択したと判定する。また、ステップS604でYESの場合、CPU101は、第1のCECコマンドに対して、第2のCECコマンドをテレビ200に送信しないようにコマンド処理部103eを制御する。ステップS604でYESの場合、本フローチャートは終了する。
<Active Source>コマンドを受信していない場合(ステップS604でNO)、CPU101は、テレビ200がHDD400の物理アドレスを含む<Active Source>コマンドをHDD400から受信していないと判定する。HDD400の物理アドレスを含む<Active Source>コマンドをHDD400から受信していないテレビ200は、ビデオカメラ100から第2のCECコマンドを受信するまで、ステップS504の処理を実行する。この場合、テレビ200は、HDMI端子203a及びHDMI端子203bのどちらも選択しないように動作する。<Active Source>コマンドを受信していない場合(ステップS604でNO)、CPU101は、テレビ200に第2のCECコマンドを送信するようにコマンド処理部103eを制御する。そのため、CPU101は、第2のCECコマンドを生成することができるか否かを判定する必要がある。そこで、ステップS604でNOの場合、本フローチャートはステップS604からステップS605に進む。
ステップS605において、CPU101は、メモリ102に第1の物理アドレスが記録されているか否かを判定する。これは、第1の物理アドレスがメモリ102に記録されているか否かによって、第2のCECコマンドを生成できるか否かを判定するためである。
メモリ102に第1の物理アドレスが記録されていない場合(ステップS605でNO)、CPU101は、メモリ102に第1のEDID及び第1の物理アドレスが記録されていないと判定する。メモリ102に第1のEDID及び第1の物理アドレスが記録されていない場合、CPU101は、テレビ200に送信するための第1のEDIDに応じた映像データ及び第2のCECコマンドを生成することができないと判定する。そのため、CPU101は、第1のEDID及び第1の物理アドレスをテレビ200から取得するための処理を行う。そこで、ステップS605でNOの場合、本フローチャートはステップS605からステップS612に進む。
メモリ102に第1の物理アドレスが記録されている場合(ステップS605でYES)、CPU101は、メモリ102に第1の物理アドレス及び第1のEDIDが記録されていると判定する。ステップS605でYESの場合、本フローチャートはステップS605からステップS606に進む。ステップS605でYESの場合、CPU101は、テレビ200に送信するための第1のEDIDに応じた映像データ及び第2のCECコマンドを生成することができると判定する。そこで、CPU101は、第2のCECコマンドを生成する前に、ビデオカメラ100がアクティブ状態であるか否かを判定するために、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信できるか否かを判定する。これは、第2のCECコマンドが、ビデオカメラ100がアクティブ状態である場合に、第1のCECコマンドに対する返答コマンドとして、テレビ200に送信されるようにCEC規格によって規定されているためである。さらにCPU101は、第2のCECコマンドを生成する前に、第1の物理アドレスが正しいか否かの判定を行う。これは、ビデオカメラ100がテレビ200に正しくない第1の物理アドレスを送信することによって、テレビ200がリモコンの操作対象をアクティブ状態であるビデオカメラ100以外の装置に選択しないようにするためである。
ステップS606において、CPU101は、メモリ102に第2の物理アドレスが記録されているか否かを判定する。これは、第1の物理アドレスと第2の物理アドレスとの比較によって、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信できるか否かを判定し、第1の物理アドレスが正しいか否かを判定するためである。メモリ102に第2の物理アドレスが記録されていない場合(ステップS606でNO)、CPU101は、第1の物理アドレスと第2の物理アドレスとを比較できない。ステップS606でNOの場合、CPU101は、第1の物理アドレスと第2の物理アドレスとの比較により、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信できるか否かを判定することができない。また、ステップS606でNOの場合、CPU101は、第1の物理アドレスと第2の物理アドレスとの比較により、第1の物理アドレスが正しいか否かを判定することができない。そのため、ステップS606でNOの場合、CPU101は、HPD信号及びRxセンスを用いて、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信できるか否かを判定し、第1の物理アドレスが正しいか否かを判定する。そこで、ステップS606でNOの場合、本フローチャートは、ステップS606からステップS608に進む。
メモリ102に第2の物理アドレスが記録されている場合(ステップS606でYES)、CPU101は、第1の物理アドレスと第2の物理アドレスとを比較することができる。ステップS606でYESの場合、CPU101は第1の物理アドレスと第2の物理アドレスとを比較する。ステップS606でYESの場合、本フローチャートは、ステップS606からステップS607に進む。
ステップS607において、CPU101は、メモリ102に記録されている第1の物理アドレスと第2の物理アドレスとが一致するか否かを比較する。以下、ステップS607の処理を「第3の判定」と呼ぶ。
第1の物理アドレスと第2の物理アドレスとが一致する場合(ステップS607でYES)、CPU101は、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信できると判定し、第1の物理アドレスが正しいと判定する。
これは、ステップS607でYESの場合、第2の物理アドレス取得処理のステップS406でYESの場合と同様に、テレビ200がビデオカメラ100に対応しているHDMI端子203aを選択しているとCPU101が判定するためである。さらに、ステップS607でYESの場合、CPU101は、データ送信部103dが映像データを送信し(ステップS407)、コマンド処理部103eが第2のCECコマンドがテレビ200に送信する(S408)ように動作していると判定する。
そのため、ステップS607でYESの場合、CPU101は、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信していることを確認しているので、ビデオカメラ100がアクティブ状態であると判定する。また、そのため、ステップS607でYESの場合、CPU101は、第1の物理アドレスとテレビ200が選択しているHDMI端子203aの物理アドレスとが一致していることを確認しているので、第1の物理アドレスが正しいと判定する。ステップS607でYESの場合、本フローチャートはステップS607からステップS610に進む。
第1の物理アドレスと第2の物理アドレスとが一致しない場合(ステップS607でNO)、CPU101は、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信できるか否かを判定することができない。また、ステップS607でNOの場合、CPU101は、第1の物理アドレスが正しいと判定することができない。
これは、第1の物理アドレスと第2の物理アドレスとが一致しない状態は、テレビ200がHDD400に対応するHDMI端子203bを選択している場合、または第1の物理アドレスが正しくない場合に想定されるからである。テレビ200がHDD400に対応するHDMI端子203bを選択している場合、第1の物理アドレスと、HDMI端子203bを示す第2の物理アドレスとは一致しない。第1の物理アドレスが正しくない場合、第2の物理アドレスがHDMI端子203aの物理アドレスを示していたとしても、第1の物理アドレスとHDMI端子203aの物理アドレスを示す第2の物理アドレスとは一致しない。
ステップS607でNOの場合、CPU101は、第1の物理アドレスと第2の物理アドレスとの比較により、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信できるか否かを判定することができない。また、ステップS607でNOの場合、CPU101は、第1の物理アドレスと第2の物理アドレスとの比較により、第1の物理アドレスが正しいか否かを判定することができない。そのため、ステップS607でNOの場合、CPU101は、HPD信号及びRxセンスを用いて、データ送信部103dが第1のEDIDに応じた映像データをテレビ200に送信できるか否かを判定し、第1の物理アドレスが正しいか否かを判定する。そこで、ステップS607でNOの場合、本フローチャートは、ステップS607からステップS608に進む。
ステップS608において、CPU101は、第1の接続検出部103aで検出されるHPD信号がHレベルであるか否かを判定する。CPU101は、HPD信号がHレベルであるか否かによって、テレビ200から第1のEDIDが正しく取得されたか否かを判定する。
HPD信号がLレベルである場合(ステップS608でNO)、CPU101は、テレビ200が、第1のEDIDメモリ203cに記録されている第1のEDIDに含まれる情報を書き換えていると判定する。そのため、ビデオカメラ100のメモリ102に記録されている第1のEDIDと、テレビ200の第1のEDIDメモリ203cに記録されている第1のEDIDとが一致しない可能性がある。そのため、ステップS608でNOの場合、CPU101は、メモリ102に記録されている第1のEDIDが正しく取得されたものではないと判定し、正しく取得されていない第1のEDIDに含まれる第1の物理アドレスも正しくないと判定する。
ステップS608でNOの場合、CPU101は、第1のEDIDに応じてテレビ200に送信するための映像データを生成しないので、データ送信部103dは映像データをテレビ200に送信できない。ステップS608でNOの場合、第1のEDID及び第1の物理アドレスを消去する処理を行うため、本フローチャートはステップS607からステップS611に進む。
HPD信号がHレベルである場合(ステップS608でYES)、CPU101は、テレビ200が、第1のEDIDメモリ203cに記録されている第1のEDIDに含まれる情報を書き換えていないと判定する。ステップS608でYESの場合、CPU101は、メモリ102に記録されている第1のEDIDが正しく取得されたものであると判定し、正しく取得された第1のEDIDに含まれる第1の物理アドレスも正しく取得されたものであると判定する。
ステップS608でYESの場合、CPU101は、第1のEDIDに応じてテレビ200に送信するための映像データを生成する。そこで、ステップS608でYESの場合、本フローチャートはステップS608からステップS609に進む。
ステップS609において、CPU101は第2の接続検出部103bで検出されたRxセンスがHレベルであるか否かを判定する。
ステップS608でYESの場合、CPU101は、RxセンスがHレベルであるか否かに応じて、第1のEDIDに応じた映像データをデータ送信部103dがテレビ200に送信できるか否かを判定し、かつ、第1の物理アドレスが正しいか否かを判定する。
RxセンスがLレベルである場合(ステップS609でNO)、CPU101は、データ送信部103dがテレビ200に第1のEDIDに応じた映像データを送信できないと判定する。ステップS609でNOの場合、CPU101は、RxセンスがLレベルからHレベルになるまで、第1のEDIDに応じた映像データをテレビ200に送信しないようにデータ送信部103dを制御する。さらに、ステップS609でNOの場合、CPU101は、RxセンスがLレベルからHレベルになるまで、第2のCECコマンドをテレビ200に送信しないようにコマンド処理部103eを制御する。RxセンスがLレベルである場合(ステップS609でNO)、本フローチャートはステップS609からステップS604に戻る。
RxセンスがHレベルである場合(ステップS609でYES)、CPU101は、データ送信部103dが映像データをテレビ200に送信できるので、ビデオカメラ100がアクティブ状態であると判定する。さらに、ステップS609でYESの場合、CPU101は、ビデオカメラ100に対応したHDMI端子203aとテレビ200が選択しているHDMI端子203aとが一致しているので、CPU101は、第1の物理アドレスは正しいと判定する。この場合(ステップS609でYES)、本フローチャートはステップS609からステップS610に進む。
以下、ステップS608の処理及びステップS609の処理を「第2の判定」と呼ぶ。
ステップS610において、CPU101は、第2のCECコマンドを生成する。CPU101は、生成した第2のCECコマンドをコマンド処理部103eに供給し、生成した第2のCECコマンドをテレビ200及びHDD400に送信するようにコマンド処理部103eを制御する。コマンド処理部103eが第2のCECコマンドをテレビ200及びHDD400に送信した場合、本フローチャートは終了する。
ステップS611において、CPU101は、メモリ102に記録されている第1の物理アドレス、第1のEDID及び第1のEDIDの解析結果から取得した情報を消去する。これは、正しく取得されなかった第1のEDIDに応じた映像データをデータ送信部103dがテレビ200に送信しないようにするためである。さらに、CPU101によって、正しく取得されなかった第1のEDIDに含まれる第1の物理アドレスに応じたCECコマンドをコマンド処理部103eがテレビ200に送信しないようにするためである。CPU101によって、メモリ102に記録されている第1の物理アドレス、第1のEDID及び第1のEDIDの解析結果から取得した情報が消去された場合、本フローチャートはステップS611からステップS612に進む。
ステップS612において、CPU101は、図3の第1の物理アドレス取得処理を実行する。CPU101が、図3の第1の物理アドレス取得処理を実行した場合、本フローチャートはステップS612からステップS604に戻る。
このように、実施形態1に係るビデオカメラ100は、テレビ200から第1のCECコマンドを受信した場合、第2のCECコマンドを生成する前に、第2のCECコマンドに含まれる第1の物理アドレスが正しいか否かを判定するようにした。
さらに、ビデオカメラ100は、第1の物理アドレスと第2の物理アドレスとを比較することによって、第1の物理アドレスが正しいか否かの判定するようにした。
これにより、ビデオカメラ100は、第1の物理アドレスと第1の物理アドレスとが一致する場合(ステップS607でYES)、アクティブ状態のビデオカメラ100に対応するHDMI端子203aをテレビ200が選択していると判定する。この場合(ステップS607でYES)、ビデオカメラ100は、ビデオカメラ100自身がアクティブ状態であることを判定するとともに、第1の物理アドレスが正しいと判定する。
さらに、ビデオカメラ100は、第2の物理アドレスを取得していない場合(ステップS606でNO)、第1の物理アドレスと第2の物理アドレスとの比較する方法以外の方法によって、ビデオカメラ100がアクティブ状態か否かを判定するようにした。また、ビデオカメラ100は、第1の物理アドレスと第2の物理アドレスとが一致しない場合(ステップS607でNO)も、第1の物理アドレスと第2の物理アドレスとの比較する方法以外の方法によって、第1の物理アドレスが正しいか否かを判定するようにした。
ビデオカメラ100は、第1の物理アドレスと第2の物理アドレスとの比較する方法以外の方法として、HPD信号及びRxセンスによりビデオカメラ100自身がアクティブ状態であるか否かの判定及び第1の物理アドレスが正しいか否か判定を行うようにした。
これにより、ビデオカメラ100は、HPD信号及びRxセンスがHレベルである場合(ステップS608及びS609でYES)、アクティブ状態のビデオカメラ100に対応するHDMI端子203aをテレビ200が選択していると判定する。この場合(ステップS608及びS609でYES)、ビデオカメラ100は、ビデオカメラ100自身がアクティブ状態であることを判定するとともに、第1の物理アドレスが正しいと判定する。
以上のことから、ビデオカメラ100は、ビデオカメラ100の物理アドレス(第1の物理アドレス)が正しいことを判定した場合、ビデオカメラ100の物理アドレスを含む<Active Source>コマンドをテレビ200に送信するようにした。
その結果、テレビ200が、ビデオカメラ100の物理アドレスを含む<Active Source>コマンドを受信した場合、ビデオカメラ100の物理アドレスに応じて、ビデオカメラ100をCECコマンドによって制御する操作対象に選択する。このため、テレビ200が、ビデオカメラ100の物理アドレスを含む<Active Source>コマンドを受信した場合、ビデオカメラ100以外の装置をCECコマンドによって制御する操作対象に選択するという問題を解消することができる。さらに、テレビ200は、ビデオカメラ100の物理アドレスを含む<Active Source>コマンドを受信した場合、ビデオカメラ100から受信した映像データを正しく表示することができる。
また、ビデオカメラ100は、HPD信号がLレベル、またはRxセンスがLレベルである場合(ステップS608、またはS609でNO)、ビデオカメラ100自身がアクティブ状態でないと判定し、または第1の物理アドレスが正しくないと判定する。この場合、ビデオカメラ100は、第1の物理アドレスを含む第2のCECコマンドをテレビ200に送信しないようにした。
このため、テレビ200が正しくないビデオカメラ100の物理アドレスを含む<Active Source>コマンドを受信した場合、ビデオカメラ100以外の装置をCECコマンドによって制御する操作対象に選択するという問題を解消することができる。さらに、テレビ200が正しくないビデオカメラ100の物理アドレスを含む<Active Source>コマンドを受信した場合、ビデオカメラ100以外の装置から受信した映像データをテレビ200に表示させないようにする。
[他の実施形態]
本発明に係る通信装置は、実施形態1で説明した通信装置100に限定されるものではない。本発明に係る通信装置は、例えば、複数の装置から構成されるシステムにより実現することも可能である。
また、実施形態1において説明した構成及び機能は、コンピュータで実行可能なコンピュータプログラムによって実現することもできる。この場合、当該コンピュータプログラムは、コンピュータ読取可能な記録媒体から当該コンピュータによって読み出され、当該コンピュータで実行される。またこの場合、当該コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。なお、当該コンピュータプログラムは、通信インターフェースを介して外部装置から当該コンピュータに提供され、当該コンピュータで実行されるようにしてもよい。