以下、本発明の実施例を図面を参照しながら説明する。ただし、以下の実施例はあくまでも一例であって、本発明は以下の実施例に限定されるものではない。
[実施例1]
図1は、本発明の実施例1に係る通信システム(HDMIシステム)の一例を示す図である。図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及び2におけるHDMI規格は、Version 1.3aに限るものではなく、Version 1.4a以降でもよい。
また、実施例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のデバイス情報である。EDID及びE−EDIDはいずれも、テレビ200の識別情報、テレビ200の画像表示能力、物理アドレス(Physical Address)等を含む。例えば、EDID及びE−EDIDには、テレビ200がサポートしている解像度、走査周波数、アスペクト比、色空間などに関する情報が含まれている。E−EDIDは、EDIDを拡張したものであり、EDIDよりも多くの能力情報を含む。例えば、E−EDIDには、テレビ200がサポートしている映像データ及び音声データのフォーマットなどに関する情報が含まれている。以下、EDID及びE−EDIDをいずれも「EDID」と呼ぶ。
テレビ200のEDIDを受信したビデオカメラ100は、テレビ200のEDIDを解析することにより、テレビ200の画像表示能力、音声処理能力などを自動的に知ることができる。さらに、ビデオカメラ100は、テレビ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を制御するためのCECコマンドをビデオカメラ100に送信することができる。ビデオカメラ100は、CECライン304を介して、テレビ200を制御するためのCECコマンドをテレビ200に送信することができる。
<ビデオカメラ100>
次に、図2を参照して、ビデオカメラ100の構成の一例を説明する。
ビデオカメラ100は、図2に示すように、CPU(Central Processing Unit)101、メモリ102、通信部103、撮像部104、記録部105、表示部106及び操作部107を有する。
CPU101は、メモリ102に格納されているコンピュータプログラムに従って、ビデオカメラ100全体の動作を制御する。CPU101は、テレビ200から取得したテレビ200のEDIDを解析することにより、テレビ200の画像表示能力及び音声処理能力を知ることができる。これにより、CPU101は、テレビ200の画像表示能力及び音声処理能力に適した映像データ及び音声データを生成することができる。
メモリ102は、CPU101のワークエリアとして機能する。メモリ102には、テレビ200のEDID(ビデオカメラ100の物理アドレスを含む)、ビデオカメラ100に関する情報、CPU101による解析の結果等も格納される。なお、CPU101のワークエリアは、メモリ102に限られるものではなく、ハードディスク装置等の外部記録装置等であってもよい。
通信部103は、HDMIケーブル300を接続するための接続端子(コネクタ)を有する。通信部103は、接続検出部103aとデバイス情報取得部103bとデータ処理部103cとコマンド処理部103dとを有する。
接続検出部103aは、テレビ200から送信されるHPD信号を、HPDライン301を介して受信することができる。接続検出部103aは、HPDライン301を介してHレベルのHPD信号を受信した場合、HレベルのHPD信号を受信した旨をCPU101に通知する。また、同様に、接続検出部103aは、HPDライン301を介してLレベルのHPD信号を受信した場合、LレベルのHPD信号を受信した旨をCPU101に通知する。
デバイス情報取得部103bは、接続検出部103aで検出されたHPD信号がHレベルである場合、DDCライン302を介してテレビ200のEDIDをテレビ200から取得する。ただし、デバイス情報取得部103bは、接続検出部103aで検出されたHPD信号がLレベルである場合、DDCライン302を介してテレビ200のEDIDをテレビ200から取得することはできない。テレビ200のEDIDをテレビ200から取得した場合、デバイス情報取得部103bは、テレビ200のEDIDをCPU101に供給する。
データ処理部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は、ビデオカメラ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が制御する。
記録部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を操作するための電源ボタン、再生ボタン、モード切換ボタン等を有し、各ボタンはスイッチ、タッチパネル等により構成される。CPU101は、操作部107を介して入力されたユーザの指示に従ってビデオカメラ100を制御することができる。
<テレビ200>
次に、図2を参照して、テレビ200の構成の一例を説明する。
テレビ200は、図2に示すように、CPU201、チューナ部202、通信部203、表示部204、操作部205及びメモリ206を有する。
CPU201は、メモリ206に格納されているコンピュータプログラムに従ってテレビ200全体の動作を制御する。
チューナ部202は、ユーザによって選択されたテレビジョンチャンネルのテレビジョン放送を受信する。
通信部203は、2つ以上の接続端子(コネクタ)を有する。2つ以上の接続端子の一つは、HDMIケーブル300と接続される。通信部203は、ビデオカメラ100から送信された映像データ、音声データ及び補助データをTMDSライン303を介して受信する。通信部203がビデオカメラ100から受信した映像データは表示部204に供給され、通信部203がビデオカメラ100から受信した音声データは不図示のスピーカ部に供給される。通信部203がビデオカメラ100から受信した補助データは、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に送信することができる。
通信部203が2つ以上の接続端子を有するため、テレビ200は、接続端子ごとにテレビ200のEDIDを有する。各接続端子に対応するテレビ200のEDIDは、メモリ206に格納されている。各接続端子に対応するテレビ200のEDIDは、テレビ200がその接続端子に接続されているソース装置に割り当てた物理アドレスを含む。1つの接続端子に1つのソース装置が接続されている場合、テレビ200は、そのソース装置に物理アドレスを割り当てる。2つ以上の接続端子に2つ以上のソース装置が接続されている場合、テレビ200は、それらのソース装置に物理アドレスを割り当てる。
表示部204は、液晶ディスプレイ等の表示器により構成される。表示部204は、チューナ部202及び通信部203の少なくとも一つから供給された映像データを表示することができる。
操作部205は、テレビ200を操作するためのユーザインターフェースを提供し、CPU201は、操作部205を介して入力されたユーザの指示に従ってテレビ200を制御することができる。また、操作部205は、テレビ200を操作するための複数のボタンを有する。操作部205に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。
<EDID取得処理>
次に、図3を参照して、ビデオカメラ100で行われるEDID取得処理を説明する。
図3は、実施例1及び2に係るビデオカメラ100で行われるEDID取得処理を説明するためのフローチャートである。EDID取得処理は、ビデオカメラ100がテレビ200のEDIDを取得するための処理である。
図3のEDID取得処理は、例えば、ビデオカメラ100がHDMIケーブル300を介して+5Vをテレビ200に供給している場合に行われる処理である。なお、実施例1及び2では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って図3のEDID取得処理を制御する場合を説明する。
ステップS301において、CPU101は、接続検出部103aが検出したHPD信号がLレベルからHレベルに変化したか否かを判定する。
HPD信号がLレベルからHレベルに変化した場合(ステップS301でYES)、CPU101は、テレビ200のEDIDをテレビ200から取得できると判定する。ステップS301でYESの場合、本フローチャートはステップS301からステップS302に進む。
HPD信号がLレベルからHレベルに変化していない場合(ステップS301でNO)、CPU101は、テレビ200のEDIDをテレビ200から取得できないと判定する。ステップS301でNOの場合、本フローチャートはステップS301に戻る。
ステップS302において、CPU101は、テレビ200のEDIDをテレビ200から取得することをデバイス情報取得部103bに指示する。テレビ200のEDIDをテレビ200から再取得すること示す指示をCPU101から受けた場合、デバイス情報取得部103bは、DDCライン302を介してテレビ200のEDIDをテレビ200から取得する。以下、ステップS302でデバイス情報取得部103bがテレビ200から取得したテレビ200のEDIDを「第1のEDID」と呼ぶ。第1のEDID(第1のデバイス情報)は、テレビ200がビデオカメラ100に割り当てた物理アドレスを含むため、CPU101は、テレビ200がビデオカメラ100に割り当てた物理アドレスを知ることができる。以下、第1のEDIDに含まれるビデオカメラ100の物理アドレスを「第1の物理アドレス」と呼ぶ。
ステップS303において、CPU101は、デバイス情報取得部103bがテレビ200から取得したテレビ200のEDIDをメモリ102に格納する。CPU101は、第1のEDIDを解析することにより、テレビ200の画像表示能力及び音声処理能力に適した映像フォーマット及び音声フォーマットを知ることができる。第1のEDIDがメモリ102に格納された後、本フローチャートはステップS303からS301に戻る。
<ワンタッチプレイ処理>
次に、図4を参照して、実施例1に係る通信システム(HDMIシステム)で行われるワンタッチプレイ処理(再生映像出力処理)を説明する。
図4は、実施例1に係る通信システム(HDMIシステム)で行われるワンタッチプレイ処理(再生映像出力処理)を説明するためのフローチャートである。図4のワンタッチプレイ処理は、CEC規格に記載されているOne Touch Playを実現するために行われる処理である。
One Touch Playとは、ユーザによって選択された映像データの再生を要求する指示がビデオカメラ100に入力された場合に、その映像データをテレビ200の表示部204に表示させる機能である。One Touch Playは、ビデオカメラ100がCECコマンドを用いてテレビ200を制御することにより実現される。<Image View On>コマンド、<Text View On>コマンド及び<Active Source>コマンドは、One Touch Playを実現するためのCECコマンドである。<Image View On>コマンド及び<Text View On>コマンドはソース装置の物理アドレスを含まないCECコマンドであるが、<Active Source>コマンドはソース装置の物理アドレスを含むコマンドである。
<Image View On>コマンド及び<Text View On>コマンドは、テレビ200の状態を、映像データを表示部204に表示できる状態に変更するためのCECコマンドである。
<Active Source>コマンドは、<Active Source>コマンドに含まれる物理アドレスに対応する接続端子をテレビ200に選択させるためのCECコマンドである。<Active Source>コマンドを受信した場合、テレビ200は、<Active Source>コマンドに含まれる物理アドレスに対応する接続端子に接続されているソース装置からの映像データを表示部204に表示させる。したがって、<Active Source>コマンドは、ソース装置がテレビ200に送信する映像データを表示部204に表示させることをテレビ200に要求するためのCECコマンドでもある。
図4のワンタッチプレイ処理は、例えば、ビデオカメラ100が再生モードであり、HDMIケーブル300を介して+5Vをテレビ200に供給している場合に行われる処理である。なお、実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って図4のワンタッチプレイ処理を制御する場合を説明する。
ステップS401において、CPU101は、ワンタッチプレイの開始が指示されたか否かを判定する。実施例1では、操作部107内の再生ボタンが押されたか否かによってワンタッチプレイの開始が指示されか否かを判定するが、これに限るものではない。操作部107内の再生ボタンが押されたと判定した場合、CPU101は、ワンタッチプレイの開始が指示されたと判定する(ステップS401でYES)。操作部107内の再生ボタンが押されていないと判定した場合、CPU101は、ワンタッチプレイの開始が指示されていないと判定する(ステップS401でNO)。
ステップS401でYESの場合、本フローチャートはステップS401からステップS402に進む。ステップS401でNOの場合、本フローチャートはステップS401に戻る。
ステップS402において、CPU101は、<Polling Message>コマンドを生成する。<Polling Message>コマンドは、CECコマンドの一つである。実施例1では、テレビ200がCEC規格に準拠した装置であるか否かを確かめるために、<Polling Message>コマンドを用いる。CPU101で生成された<Polling Message>コマンドは、コマンド処理部103dに供給される。コマンド処理部103dは、CECライン304を介して<Polling Message>コマンドをテレビ200に送信する。
ビデオカメラ100からの<Polling Message>コマンドを受信できなかった場合、テレビ200は、ACK信号(肯定応答信号)をビデオカメラ100に送信することができない。ビデオカメラ100からの<Polling Message>コマンドを受信できた場合、テレビ200は、<Polling Message>コマンドを受け付けることができるか否かを判定する。<Polling Message>コマンドを受け付けることができる場合、テレビ200は、ACK信号(肯定応答信号)をビデオカメラ100に送信する。<Polling Message>コマンドを受け付けることができない場合、テレビ200は、ACK信号(肯定応答信号)をビデオカメラ100に送信しないか、NACK信号(否定応答信号)をビデオカメラ100に送信する。
コマンド処理部103dが<Polling Message>コマンドをテレビ200に送信した後、本フローチャートはステップS402からステップS403に進む。
ステップS403において、CPU101は、コマンド処理部103dが<Polling Message>コマンドに対するACK信号をテレビ200から受信できたか否かを判定する。ステップS403で行われる判定を「第1の判定」と呼ぶ。
<Polling Message>コマンドに対するACK信号を所定時間以内にテレビ200から受信できた場合、コマンド処理部103dは、ACK信号をテレビ200から受信できたことをCPU101に通知する。この場合、CPU101は、<Polling Message>コマンドに対するACK信号をテレビ200から受信できたと判定する(ステップS403でYES)。ステップS403でYESの場合、CPU101は、テレビ200がCEC規格に準拠した装置であると判定する。ステップS403でYESの場合、本フローチャートはステップS403からステップS404に進む。
<Polling Message>コマンドに対するACK信号を所定時間以内にテレビ200から受信できなかった場合、コマンド処理部103dは、ACK信号をテレビ200から受信できなかったことをCPU101に通知する。この場合、CPU101は、<Polling Message>コマンドに対するACK信号をテレビ200から受信できなかったと判定する(ステップS403でNO)。ステップS403でNOの場合、CPU101は、テレビ200がCEC規格に準拠した装置でないと判定する。ステップS403でNOの場合、本フローチャートは終了する。
ステップS404において、CPU101は、<Image View On>コマンド(または<Text View On>コマンド)を生成する。CPU101で生成された<Image View On>コマンド(または<Text View On>コマンド)は、コマンド処理部103dに供給される。コマンド処理部103dは、CECライン304を介して<Image View On>コマンド(または<Text View On>コマンド)をテレビ200に送信する。上述したように、<Image View On>コマンド及び<Text View On>コマンドは、ビデオカメラ 100の物理アドレスを含まないCECコマンドである。
通信部203は、CECライン304を介して<Image View On>コマンド(または<Text View On>コマンド)を受信する。通信部203で受信された<Image View On>コマンド(または<Text View On>コマンド)は、CPU201に供給される。<Image View On>コマンド(または<Text View On>コマンド)を通信部203から受け取った場合、CPU201は、テレビ200の状態を、映像データを表示部204に表示できる状態に変更する。また、<Image View On>コマンド(または<Text View On>コマンド)を通信部203から受け取った場合、CPU201は、HPD信号をLレベルからHレベルに変更することを通信部203に指示する。通信部203がHPD信号をLレベルからHレベルに変更することにより、テレビ200は、テレビ200の最新のEDIDをビデオカメラ100に提供できる状態になる。
通信部203は、<Image View On>コマンド(または<Text View On>コマンド)の受信に失敗する可能性がある。<Image View On>コマンド(または<Text View On>コマンド)の受信に失敗した場合、通信部203は、HPD信号をLレベルからHレベルに変更することができない。そこで、ステップS405において、CPU101は、接続検出部103aが検出したHPD信号がHレベルであるか否かを判定する。ステップS405で行われる判定を「第2の判定」と呼ぶ。
HPD信号がHレベルであるとCPU101が判定した場合(ステップS405でYES)、CPU101は、ビデオカメラ100とテレビ200との接続が有効であると判定する。また、ステップS405でYESの場合、CPU101は、ビデオカメラ100とテレビ200とが接続状態であると判定し、テレビ200のEDIDをテレビ200から取得できると判定する。また、ステップS405でYESの場合、CPU101は、カウンタ値Tを0にリセットすることをカウンタ101aに指示する。カウンタ値Tを0にリセットすることを示す指示をCPU101から受けた場合、カウンタ101aは、カウンタ値Tを0にリセットする。ステップS405でYESの場合、本フローチャートはステップS405からステップS406に進む。
HPD信号がLレベルであるとCPU101が判定した場合(ステップS405でNO)、CPU101は、ビデオカメラ100とテレビ200との接続が有効でないと判定する。また、ステップS405でNOの場合、CPU101は、ビデオカメラ100とテレビ200とが非接続状態であると判定し、テレビ200のEDIDをテレビ200から取得できないと判定する。ステップS405でNOの場合、本フローチャートはステップS405からステップS409に進む。
ステップS406において、CPU101は、テレビ200の最新のEDIDをテレビ200から再取得することをデバイス情報取得部103bに指示する。テレビ200のEDIDをテレビ200から再取得すること示す指示をCPU101から受けた場合、デバイス情報取得部103bは、DDCライン302を介してテレビ200のEDIDをテレビ200から取得する。以下、ステップS406でデバイス情報取得部103bがテレビ200から再取得したテレビ200の最新のEDIDを「第2のEDID」と呼ぶ。第2のEDID(第2のデバイス情報)は、テレビ200がビデオカメラ100に割り当てた最新の物理アドレスを含むため、CPU101は、テレビ200がビデオカメラ100に割り当てた最新の物理アドレスを知ることができる。以下、第2のEDIDに含まれるビデオカメラ100の物理アドレスを「第2の物理アドレス」と呼ぶ。CPU101は、第1のEDIDをメモリ102から削除し、デバイス情報取得部103bがテレビ200から再取得した第2のEDIDをメモリ102に格納する。第2のEDIDがメモリ102に格納された後、本フローチャートはステップS406からステップS407に進む。
なお、ステップS406で行われるEDID取得処理は、第1のEDIDがすでにメモリ102に格納されている場合であっても行われる。なぜなら、第1のEDIDに含まれる第1の物理アドレスが、ビデオカメラ100に割り当てされた最新の物理アドレスでない可能性があるからである。
ステップS407において、CPU101は、メモリ102に格納されている第2のEDIDの中から、第2の物理アドレスを取り出す。CPU101が第2の物理アドレスを第2のEDIDの中から取り出した後、本フローチャートはステップS407からステップS408に進む。
ステップS408において、CPU101は、第2の物理アドレスを含む<Active Source>コマンドを生成する。CPU101で生成された<Active Source>コマンドは、コマンド処理部103dに供給される。コマンド処理部103dは、CECライン304を介して<Active Source>コマンドをテレビ200に送信する。コマンド処理部103dが<Active Source>コマンドをテレビ200に送信した後、本フローチャートはステップS408からステップS414に進む。
通信部203は、CECライン304を介して<Active Source>コマンドを受信する。通信部203で受信された<Active Source>コマンドは、CPU201に供給される。<Active Source>コマンドを通信部203から受け取った場合、CPU201は、<Active Source>コマンドから第2の物理アドレスを取り出し、第2の物理アドレスに対応する接続端子を選択する。ここで、第2の物理アドレスは、ビデオカメラ100に割り当てられている最新の物理アドレスであるので、CPU201は、ビデオカメラ100が接続されている接続端子を選択する。ビデオカメラ100が接続されている接続端子が選択された後、CPU201は、ビデオカメラ100が接続されている接続端子を有効にすることを通信部203に指示する。通信部203は、ビデオカメラ100が接続されている接続端子を有効にし、ビデオカメラ100からの映像データ、音声データ及び補助データの受信を開始する。
ステップS409において、CPU101は、カウンタ値Tに1を加算することをカウンタ101aに指示する。カウンタ値Tに1を加算することを示す指示をCPU101から受けた場合、カウンタ101aは、カウンタ値Tに1を加算する。カウンタ値Tは、ステップS405でHPD信号がLレベルであると判定された回数を示す。カウンタ101aがカウンタ値Tに1を加算した後、本フローチャートはステップS409からステップS410に進む。
ステップS410において、CPU101は、カウンタ値Tと、メモリ102に記録されている閾値Mとを比較する。閾値Mは、所定時間(例えば、1秒〜10秒)に相当する回数を示す。
カウンタ値Tが閾値M以下である場合(ステップS410でNO)、本フローチャートはステップS410からステップS404に戻る。これにより、CPU101は、所定時間が経過するまでの間、HPD信号がLレベルからHレベルに変化した否かを判定することができる。所定時間が経過するまでの間にHPD信号がLレベルからHレベルに変化した場合、ビデオカメラ100は、第2の物理アドレスを含む<Active Source>コマンドをテレビ200に送信することができる。
カウンタ値Tが閾値Mを超えている場合(ステップS410でYES)、本フローチャートはステップS410からステップS411に進む。ステップS410でYESの場合、CPU101は、カウンタ値Tを0にリセットすることをカウンタ101aに指示する。カウンタ値Tを0にリセットすることを示す指示をCPU101から受けた場合、カウンタ101aは、カウンタ値Tを0にリセットする。
ステップS411において、CPU101は、第1のEDIDがメモリ102に格納されているか否かを判定する。
第1のEDIDがメモリ102に格納されているとCPU101が判定した場合(ステップS411でYES)、CPU101は、テレビ200のEDIDがすでにテレビ200から取得されていると判定する。ただし、第1のEDIDは、テレビ200の最新のEDIDでない可能性がある。ステップS411でYESの場合、本フローチャートはステップS411からステップS412に進む。
第1のEDIDがメモリ102に格納されていないとCPU101が判定した場合(ステップS411でNO)、CPU101は、テレビ200のEDIDが未だテレビ200から取得されていないと判定する。ステップS411でNOの場合、本フローチャートは終了する。つまり、ステップS411でNOの場合、CPU101は<Active Source>コマンドを生成することができない。そのため、CPU101は、<Active Source>コマンドをテレビ200に送信しないことをコマンド処理部103dに指示する。その結果、ビデオカメラ100は、<Active Source>コマンドをテレビ200に送信することができない。
ステップS412において、CPU101は、メモリ102に格納されている第1のEDIDの中から、第1の物理アドレスを取り出す。ただし、第1の物理アドレスは、第1のEDIDに含まれる物理アドレスであるので、ビデオカメラ100に割り当てされた最新の物理アドレスでない可能性がある。CPU101が第1の物理アドレスを第1のEDIDの中から取り出した後、本フローチャートはステップS412からステップS413に進む。
ステップS413において、CPU101は、第1の物理アドレスを含む<Active Source>コマンドを生成する。CPU101で生成された<Active Source>コマンドは、コマンド処理部103dに供給される。コマンド処理部103dは、CECライン304を介して<Active Source>コマンドをテレビ200に送信する。コマンド処理部103dが<Active Source>コマンドをテレビ200に送信した後、本フローチャートはステップS413からステップS414に進む。
通信部203は、CECライン304を介して<Active Source>コマンドを受信する。通信部203で受信された<Active Source>コマンドは、CPU201に供給される。<Active Source>コマンドを通信部203から受け取った場合、CPU201は、<Active Source>コマンドから第1の物理アドレスを取り出し、第1の物理アドレスに対応する接続端子を選択する。第1の物理アドレスに対応する接続端子が選択された後、CPU201は、第1の物理アドレスに対応する接続端子を有効にすることを通信部203に指示する。通信部203は、第1の物理アドレスに対応する接続端子を有効にし、その接続端子に接続されているソース装置からの映像データ、音声データ及び補助データの受信を開始する。第1の物理アドレスに対応する接続端子を有効にした場合、通信部203は、HPD信号をLレベルからHレベルに変更する。第1の物理アドレスがビデオカメラ100に割り当てられている最新の物理アドレスである場合、CPU201は、ビデオカメラ100が接続されている接続端子を選択する。第1の物理アドレスがビデオカメラ100に割り当てられている最新の物理アドレスである場合、通信部203は、ビデオカメラ100からの映像データ、音声データ及び補助データの受信を開始する。
ステップS414において、CPU101は、ユーザ又はビデオカメラ100によって選択された映像データと、その映像データに対応する音声データの再生を記録部105に指示する。記録部105は、ユーザ又はビデオカメラ100によって選択された映像データと、その映像データに対応する音声データとを記録媒体105aから再生する。記録媒体105aから再生された映像データ及び音声データは、データ処理部103cに供給される。データ処理部103cは、TMDSライン303を介して、映像データ、音声データ及び補助データをテレビ200に送信する。記録媒体105aから再生された映像データ及び音声データは、表示部106及びスピーカ部にも供給される。CPU101は、記録媒体105aから再生された映像データの表示を表示部106に指示し、記録媒体105aから再生された音声データの出力をスピーカ部に指示する。表示部106は、記録媒体105aから再生された映像データを表示する。ビデオカメラ100のスピーカ部は、記録媒体105aから再生された音声データを出力する。
ビデオカメラ100が接続されている接続端子を有効である場合、通信部203は、TMDSライン303を介して、データ処理部103cから送信された映像データ、音声データ及び補助データを受信する。CPU201は、通信部203によって受信された映像データの表示を表示部204に指示し、通信部203によって受信された音声データの出力をスピーカ部に指示する。表示部204は、通信部203によって受信された映像データを表示する。テレビ200のスピーカ部は、通信部203によって受信された音声データを出力する。通信部203によって受信された補助データは、CPU201に供給される。
このように、実施例1では、ビデオカメラ100とテレビ200との間の接続が有効である場合、ビデオカメラ100は、ビデオカメラ100に割り当てられた最新の物理アドレスをテレビ200から取得することができる(ステップS406)。これにより、ビデオカメラ100は、最新の物理アドレスを含む<Active Source>コマンドをテレビ200に送信することができる(ステップS408)。その結果、ビデオカメラ100以外のソース装置が接続されている接続端子をテレビ200が選択してしまうことを防止することができ、テレビ200はビデオカメラ100で再生された映像データを表示することができる(ステップS414)。
また、実施例1では、ビデオカメラ100とテレビ200との間の接続が有効でない場合、ビデオカメラ100は、所定時間が経過するまでの間、HPD信号がHレベルに変化した否かを判定することができる(ステップS410)。そして、所定時間が経過するまでの間にHPD信号がHレベルに変化した場合、ビデオカメラ100は、最新の物理アドレスを含む<Active Source>コマンドをテレビ200に送信することができる(ステップS408)。これにより、ビデオカメラ100以外のソース装置が接続されている接続端子をテレビ200が選択してしまう可能性を低くすることができ、テレビ200はビデオカメラ100で再生された映像データを表示することができる(ステップS414)。
また、実施例1では、ビデオカメラ100とテレビ200との間の接続が有効でない場合、ビデオカメラ100は、第1のEDIDがメモリ102に格納されているか否かを判定することができる(ステップS411)。そして、第1のEDIDがメモリ102に格納されている場合(ステップS411でYES)、ビデオカメラ100は、第1の物理アドレスを含む<Active Source>コマンドをテレビ200に送信することができる(ステップS413)。これにより、第1の物理アドレスがビデオカメラ100の最新の物理アドレスである場合、テレビ200は、ビデオカメラ100が接続されている接続端子を選択することができる(ステップS414)。また、第1の物理アドレスがビデオカメラ100の最新の物理アドレスである場合、テレビ200は、ビデオカメラ100で再生された映像データを表示することができる(ステップS414)。
また、実施例1では、第1のEDIDがメモリ102に格納されていない場合(ステップS411でNO)、ビデオカメラ100は、<Active Source>コマンドがテレビ200に送信されないようにすることもできる。
なお、<Image View On>コマンド(または<Text View On>コマンド)をテレビ200に送信する処理は、ステップS404ではなく、ステップS408で行ってもよい。この場合、コマンド処理部103dは、<Image View On>コマンドをテレビ200に送信した後に、<Active Source>コマンドをテレビ200に送信する。
また、One Touch Playの機能を実現するためのCECコマンドは、<Image View On>コマンド、<Text View On>コマンド及び<Active Source>コマンドに限るものではない。One Touch Playの機能は、これらのCECコマンド以外のCECコマンドを用いて実現してもよい。
[実施例2]
次に、図1〜図5を参照して、実施例2を説明する。なお、実施例2では、実施例1と同様の箇所の説明を省略し、実施例1と異なる箇所について説明する。
図5は、実施例2に係る通信システム(HDMIシステム)で行われるワンタッチプレイ処理(再生映像出力処理)を説明するためのフローチャートである。図5のワンタッチプレイ処理も、図4のワンタッチプレイ処理と同様に、CEC規格に記載されているOne Touch Playを実現するために行われる処理である。図5に示すフローチャートのステップS401〜S404及びS406〜S414で行われる処理は、図4に示すフローチャートのステップS401〜S404及びS406〜S414で行われる処理と同様である。したがって、実施例2では、ステップS401〜S404及びS406〜S414の説明を省略する。
図5のワンタッチプレイ処理は、例えば、ビデオカメラ100が再生モードであり、HDMIケーブル300を介して+5Vをテレビ200に供給している場合に行われる処理である。なお、実施例2では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って図5のワンタッチプレイ処理を制御する場合を説明する。
ステップS501において、CPU101は、接続検出部103aが検出したHPD信号がHレベルであるか否かを判定する。ステップS501で行われる判定もステップS405で行われる判定と同様に「第2の判定」と呼ぶ。
HPD信号がHレベルであるとCPU101が判定した場合(ステップS501でYES)、CPU101は、ビデオカメラ100とテレビ200との接続が有効であると判定する。また、ステップS501でYESの場合、CPU101は、ビデオカメラ100とテレビ200とが接続状態であると判定し、テレビ200のEDIDをテレビ200から取得できると判定する。また、ステップS501でYESの場合、CPU101は、カウンタ値Tを0にリセットすることをカウンタ101aに指示する。カウンタ値Tを0にリセットすることを示す指示をCPU101から受けた場合、カウンタ101aは、カウンタ値Tを0にリセットする。ステップS501でYESの場合、本フローチャートはステップS501からステップS406に進む。
HPD信号がLレベルであるとCPU101が判定した場合(ステップS501でNO)、CPU101は、ビデオカメラ100とテレビ200との接続が有効でないと判定する。また、ステップS501でNOの場合、CPU101は、ビデオカメラ100とテレビ200とが非接続状態であると判定し、テレビ200のEDIDをテレビ200から取得できないと判定する。ステップS501でNOの場合、本フローチャートはステップS501からステップS502に進む。
ステップS502において、CPU101は、物理アドレス要求コマンドを生成する。物理アドレス要求コマンドは、テレビ200がビデオカメラ100に割り当てた最新の物理アドレスをテレビ200に要求するためのCECコマンドである。実施例2では、物理アドレス要求コマンドが、ビデオカメラ100のベンダーが独自に定義したベンダーコマンドによって構成されている場合を説明する。CPU101で生成された物理アドレス要求コマンドは、コマンド処理部103dに供給される。コマンド処理部103dは、CECライン304を介して物理アドレス要求コマンドをテレビ200に送信する。
通信部203は、CECライン304を介してビデオカメラ100からの物理アドレス要求コマンドを受信する。通信部203で受信された物理アドレス要求コマンドは、CPU201に供給される。通信部203から物理アドレス要求コマンドを受け取った場合、CPU201は、テレビ200がビデオカメラ100に割り当てた最新の物理アドレスをメモリ206から読み出し、その物理アドレスを含む物理アドレス通知コマンドを生成する。物理アドレス通知コマンドは、テレビ200がビデオカメラ100に割り当てた最新の物理アドレスをビデオカメラ100に通知するためのCECコマンドである。実施例2では、物理アドレス通知コマンドが、ビデオカメラ100のベンダーが独自に定義したベンダーコマンドによって構成されている場合を説明する。CPU101で生成された物理アドレス通知コマンドは、通信部203に供給される。通信部203は、CECライン304を介して物理アドレス通知コマンドをビデオカメラ100に送信する。
ステップS503において、CPU101は、コマンド処理部103dが物理アドレス通知コマンドをテレビ200から受信できたか否かを判定する。ステップS503で行われる判定を「第3の判定」と呼ぶ。
物理アドレス通知コマンドを所定時間以内にテレビ200から受信できた場合、コマンド処理部103dは、物理アドレス通知コマンドをCPU101に供給する。この場合、CPU101は、物理アドレス通知コマンドをテレビ200から受信できたと判定する(ステップS503でYES)。ステップS503でYESの場合、本フローチャートはステップS503からステップS504に進む。
物理アドレス通知コマンドを所定時間以内にテレビ200から受信できなかった場合、コマンド処理部103dは、物理アドレス通知コマンドをテレビ200から受信できなかったことをCPU101に通知する。この場合、CPU101は、物理アドレス通知コマンドをテレビ200から受信できなかったと判定する(ステップS503でNO)。ステップS503でNOの場合、本フローチャートはステップS503からステップS409に進む。
ステップS504において、CPU101は、物理アドレス通知コマンドの中から、テレビ200がビデオカメラ100に割り当てた最新の物理アドレスを取り出す。以下、ステップS504で物理アドレス通知コマンドの中から取り出されたビデオカメラ100の最新の物理アドレスを「第3の物理アドレス」と呼ぶ。物理アドレス通知コマンドから取り出された第3の物理アドレスは、メモリ102に格納される。第3の物理アドレスがメモリ102に格納された後、本フローチャートはステップS504からステップS505に進む。
ステップS505において、CPU101は、第3の物理アドレスを含む<Active Source>コマンドを生成する。CPU101で生成された<Active Source>コマンドは、コマンド処理部103dに供給される。コマンド処理部103dは、CECライン304を介して<Active Source>コマンドをテレビ200に送信する。コマンド処理部103dが<Active Source>コマンドをテレビ200に送信した後、本フローチャートはステップS505からステップS414に進む。
通信部203は、CECライン304を介して<Active Source>コマンドを受信する。通信部203で受信された<Active Source>コマンドは、CPU201に供給される。<Active Source>コマンドを通信部203から受け取った場合、CPU201は、<Active Source>コマンドから第3の物理アドレスを取り出し、第3の物理アドレスに対応する接続端子を選択する。ここで、第3の物理アドレスは、ビデオカメラ100に割り当てられている最新の物理アドレスであるので、CPU201は、ビデオカメラ100が接続されている接続端子を選択する。ビデオカメラ100が接続されている接続端子が選択された後、CPU201は、ビデオカメラ100が接続されている接続端子を有効にすることを通信部203に指示する。通信部203は、ビデオカメラ100が接続されている接続端子を有効にし、ビデオカメラ100からの映像データ、音声データ及び補助データの受信を開始する。ビデオカメラ100が接続されている接続端子を有効にした場合、通信部203は、HPD信号をLレベルからHレベルに変更する。
このように、実施例2では、ビデオカメラ100とテレビ200との間の接続が有効でない場合であっても、ビデオカメラ100は、ビデオカメラ100に割り当てられた最新の物理アドレスをテレビ200から取得することができる(ステップS504)。これにより、ビデオカメラ100は、最新の物理アドレスを含む<Active Source>コマンドをテレビ200に送信することができる(ステップS505)。その結果、ビデオカメラ100以外のソース装置が接続されている接続端子をテレビ200が選択してしまうことを防止することができ、テレビ200はビデオカメラ100で再生された映像データを表示することができる(ステップS414)。
なお、実施例2では、図5のステップS409〜S410を省略してもよい。この場合において、ステップS503でNOのときは、図5のフローチャートはステップS503からS411に進む。
また、実施例2では、図5のステップS409〜S413を省略してもよい。この場合において、ステップS503でNOのときは、図5のフローチャートは終了する。
[他の実施例]
本発明に係る通信装置は、実施例1から2で説明した通信装置100に限定されるものではない。本発明に係る通信装置は、例えば、複数の装置から構成されるシステムにより実現することも可能である。
また、実施例1から2において説明した構成及び機能は、コンピュータ(CPU(Central Processing Unit)を含む)で実行可能なコンピュータプログラムによって実現することもできる。この場合、当該コンピュータプログラムは、コンピュータ読取可能な記録媒体から当該コンピュータによって読み出され、当該コンピュータで実行される。またこの場合、当該コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。なお、当該コンピュータプログラムは、通信インターフェースを介して外部装置から当該コンピュータに提供され、当該コンピュータで実行されるようにしてもよい。